hs-bibutils-6.10.0.0/0000755000000000000000000000000007346545000012352 5ustar0000000000000000hs-bibutils-6.10.0.0/ChangeLog.md0000755000000000000000000000132507346545000014527 0ustar0000000000000000# 6.10.0.0 - Import Bibutils 6.10 # 6.8.0.0 - Import Bibutils 6.8 # 6.7.0.0 - Import Bibutils 6.7 # 6.6.0.0 - Import Bibutils 6.6. - Expose NBIB output support. # 6.5.0.0 - Import Bibutils 6.5. # 6.4.0.0 - Import Bibutils 6.4. # 6.3.0.1 - Fix MacOS X compilation. # 6.3.0.0 - Update to Bibutils 6.3. - Enable NBIB support. - Expose additional options values. # 6.2.0.1 - This is a patch release fixing MacOS X compilation. - Patched few minor warnings in imported Bibutils source. - Implemented Travis-CI builds through Cabal and Stack. # 6.2 - This release has removed `wordout_dropkey` because the corresponding constant in Bibutils has also been removed. hs-bibutils-6.10.0.0/LICENSE0000644000000000000000000004311307346545000013361 0ustar0000000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. hs-bibutils-6.10.0.0/README.md0000755000000000000000000000471207346545000013640 0ustar0000000000000000About ----- [hs-bibutils] is library with Haskell bindings to Chris Putnam's [bibutils], a library that interconverts between various bibliography formats using a common MODS-format XML intermediate. [hs-bibutils] can be used with [pandoc-citeproc] to read and use various bibliographic database formats for processing and automatically formatting citations and references according to a [CSL] style. [pandoc-citeproc] adds to [pandoc], the famous [Haskell] text processing tool, a Bibtex like citation and bibliographic formatting and generation facility. [CSL] is an XML language for specifying citation and bibliographic formatting, similar in principle to BibTeX `.bst` files or the binary style files in commercial products like Endnote or Reference Manager. Documentation ------------- The [Haddock] generated documentation is available here: Bug Reports ----------- To submit bug reports you can use the [hs-bibutils] bug tracking system available at the following address: Credits ------- Thanks to [Chris Putnam] for his help. Author ------ Andrea Rossato `andrea.rossato at unitn dot it` Maintainer ---------- Václav Haisman `vhaisman at gmail dot com` Links to Related Projects ---------------- Bibutils : Pandoc : Pandoc-Citeproc : Citeproc-hs: : CSL : Legal ----- This software is released under the GNU GPL. See LICENSE for more details. This is an early, "alpha" release. It carries no warranties of any kind. Copyright © 2008 – 2010 Andrea Rossato [hs-bibutils]: https://github.com/wilx/hs-bibutils [bibutils]: https://sourceforge.net/p/bibutils/home/Bibutils/ [Hackage]: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hs-bibutils [citeproc-hs]: http://istitutocolli.org/repos/citeproc-hs/ [CSL]: http://citationstyles.org/ [pandoc]: http://pandoc.org/ [pandoc-citeproc]: https://github.com/jgm/pandoc-citeproc [Zotero]: http://www.zotero.org [MODS]: http://www.loc.gov/mods/ [Bruce D'Arcus]: http://community.muohio.edu/blogs/darcusb/ [John MacFarlane]: http://johnmacfarlane.net/ [Chris Putnam]: http://www.scripps.edu/~cdputnam/ [Haskell]: http://www.haskell.org/ [Haddock]: http://www.haskell.org/haddock/ hs-bibutils-6.10.0.0/Setup.lhs0000644000000000000000000000011407346545000014156 0ustar0000000000000000#!/usr/bin/env runhaskell > import Distribution.Simple > main = defaultMain hs-bibutils-6.10.0.0/bibutils/0000755000000000000000000000000007346545000014167 5ustar0000000000000000hs-bibutils-6.10.0.0/bibutils/adsout.c0000644000000000000000000004640407346545000015642 0ustar0000000000000000/* * adsout.c * * Copyright (c) Richard Mathar 2007-2020 * Copyright (c) Chris Putnam 2007-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "generic.h" #include "name.h" #include "title.h" #include "type.h" #include "url.h" #include "bibformats.h" /***************************************************** PUBLIC: int adsout_initparams() *****************************************************/ static int adsout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static int adsout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int adsout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_ADSABSOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; if ( pm->charsetout == BIBL_CHARSET_UNICODE ) { pm->utf8out = pm->utf8bom = 1; } pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = adsout_assemble; pm->writef = adsout_write; if ( !pm->progname ) { if ( !progname ) pm->progname=NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int adsout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_GENERIC, TYPE_ARTICLE, TYPE_MAGARTICLE, TYPE_BOOK, TYPE_INBOOK, TYPE_INPROCEEDINGS, TYPE_HEARING, TYPE_BILL, TYPE_CASE, TYPE_NEWSPAPER, TYPE_COMMUNICATION, TYPE_BROADCAST, TYPE_MANUSCRIPT, TYPE_REPORT, TYPE_THESIS, TYPE_MASTERSTHESIS, TYPE_PHDTHESIS, TYPE_DIPLOMATHESIS, TYPE_DOCTORALTHESIS, TYPE_HABILITATIONTHESIS, TYPE_LICENTIATETHESIS, TYPE_PATENT, TYPE_PROGRAM }; static int get_type( fields *in ) { match_type genre_matches[] = { { "academic journal", TYPE_ARTICLE, LEVEL_ANY }, { "communication", TYPE_COMMUNICATION, LEVEL_ANY }, { "conference publication", TYPE_INPROCEEDINGS, LEVEL_ANY }, { "Diploma thesis", TYPE_DIPLOMATHESIS, LEVEL_ANY }, { "Doctoral thesis", TYPE_DOCTORALTHESIS, LEVEL_ANY }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS, LEVEL_ANY }, { "hearing", TYPE_HEARING, LEVEL_ANY }, { "legal case and case notes", TYPE_CASE, LEVEL_ANY }, { "legislation", TYPE_BILL, LEVEL_ANY }, { "Licentiate thesis", TYPE_LICENTIATETHESIS, LEVEL_ANY }, { "magazine", TYPE_MAGARTICLE, LEVEL_ANY }, { "manuscript", TYPE_MANUSCRIPT, LEVEL_ANY }, { "Masters thesis", TYPE_MASTERSTHESIS, LEVEL_ANY }, { "newspaper", TYPE_NEWSPAPER, LEVEL_ANY }, { "patent", TYPE_PATENT, LEVEL_ANY }, { "Ph.D. thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "report", TYPE_REPORT, LEVEL_ANY }, { "technical report", TYPE_REPORT, LEVEL_ANY }, { "unpublished", TYPE_MANUSCRIPT, LEVEL_ANY }, { "periodical", TYPE_ARTICLE, LEVEL_ANY }, { "thesis", TYPE_THESIS, LEVEL_ANY }, { "book", TYPE_BOOK, LEVEL_MAIN }, { "book", TYPE_INBOOK, LEVEL_ANY }, { "collection", TYPE_BOOK, LEVEL_MAIN }, { "collection", TYPE_INBOOK, LEVEL_ANY }, }; int ngenre_matches = sizeof( genre_matches ) / sizeof( genre_matches[0] ); match_type resource_matches[] = { { "moving image", TYPE_BROADCAST, LEVEL_ANY }, { "software, multimedia", TYPE_PROGRAM, LEVEL_ANY }, }; int nresource_matches = sizeof( resource_matches ) /sizeof( resource_matches[0] ); match_type issuance_matches[] = { { "monographic", TYPE_BOOK, LEVEL_MAIN }, { "monographic", TYPE_INBOOK, LEVEL_ANY }, }; int nissuance_matches = sizeof( issuance_matches ) /sizeof( issuance_matches[0] ); int type; type = type_from_mods_hints( in, TYPE_FROM_GENRE, genre_matches, ngenre_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_RESOURCE, resource_matches, nresource_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_ISSUANCE, issuance_matches, nissuance_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = TYPE_GENERIC; return type; } static int append_title( fields *in, char *ttl, char *sub, char *adstag, int level, fields *out, int *status ) { str fulltitle, *title, *subtitle, *vol, *iss, *sn, *en, *ar; int fstatus, output = 0; str_init( &fulltitle ); title = fields_findv( in, level, FIELDS_STRP, ttl ); subtitle = fields_findv( in, level, FIELDS_STRP, sub ); if ( str_has_value( title ) ) { output = 1; title_combine( &fulltitle, title, subtitle ); vol = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "VOLUME" ); if ( str_has_value( vol ) ) { str_strcatc( &fulltitle, ", vol. " ); str_strcat( &fulltitle, vol ); } iss = fields_findv_firstof( in, LEVEL_ANY, FIELDS_STRP, "ISSUE", "NUMBER", NULL ); if ( str_has_value( iss ) ) { str_strcatc( &fulltitle, ", no. " ); str_strcat( &fulltitle, iss ); } sn = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "PAGES:START" ); en = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "PAGES:STOP" ); ar = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "ARTICLENUMBER" ); if ( str_has_value( sn ) ) { if ( str_has_value( en ) ) { str_strcatc( &fulltitle, ", pp. " ); } else { str_strcatc( &fulltitle, ", p. " ); } str_strcat( &fulltitle, sn ); } else if ( str_has_value( ar ) ) { str_strcatc( &fulltitle, ", p. " ); str_strcat( &fulltitle, ar ); } if ( str_has_value( en ) ) { str_addchar( &fulltitle, '-' ); str_strcat( &fulltitle, en ); } if ( str_memerr( &fulltitle ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, adstag, str_cstr( &fulltitle ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } out: str_free( &fulltitle ); return output; } static void append_titles( fields *in, int type, fields *out, int *status ) { int added; if ( type==TYPE_ARTICLE || type==TYPE_MAGARTICLE ) { added = append_title( in, "TITLE", "SUBTITLE", "%J", LEVEL_HOST, out, status ); if ( added==0 ) (void) append_title( in, "SHORTTITLE", "SHORTSUBTITLE", "%J", LEVEL_HOST, out, status ); } } static void append_people( fields *in, char *tag1, char *tag2, char *tag3, char *adstag, int level, fields *out, int *status ) { str oneperson, allpeople; vplist_index i; int fstatus; vplist a; str_init( &oneperson ); str_init( &allpeople ); vplist_init( &a ); fields_findv_eachof( in, level, FIELDS_CHRP, &a, tag1, tag2, tag3, NULL ); if ( a.n ) { for ( i=0; i9999, will fit in buf[6] */ #ifdef WIN32 sprintf( buf, "%I64d", n ); #else sprintf( buf, "%lld", n ); #endif if ( n < 10 ) strncpy( pos+3, buf, 1 ); else if ( n < 100 ) strncpy( pos+2, buf, 2 ); else if ( n < 1000 ) strncpy( pos+1, buf, 3 ); else strncpy( pos, buf, 4 ); } static char initial_ascii( const char *name ) { int b1, b2; if ( isascii( name[0] ) ) return name[0]; b1 = name[0]+256; b2 = name[1]+256; switch( b1 ) { case 0xc3: if ( b2 >= 0x80 && b2 <= 0x86 ) return 'A'; else if ( b2 == 0x87 ) return 'C'; else if ( b2 >= 0x88 && b2 <= 0x8b ) return 'E'; else if ( b2 >= 0x8c && b2 <= 0x8f ) return 'I'; else if ( b2 == 0x90 ) return 'D'; else if ( b2 == 0x91 ) return 'N'; else if ( b2 >= 0x92 && b2 <= 0x98 ) return 'O'; else if ( b2 >= 0x99 && b2 <= 0x9c ) return 'U'; else if ( b2 == 0x9d ) return 'Y'; else if ( b2 == 0x9f ) return 'S'; else if ( b2 >= 0xa0 && b2 <= 0xa6 ) return 'A'; else if ( b2 == 0xa7 ) return 'C'; else if ( b2 >= 0xa8 && b2 <= 0xab ) return 'E'; else if ( b2 >= 0xac && b2 <= 0xaf ) return 'I'; else if ( b2 == 0xb0 ) return 'D'; else if ( b2 == 0xb1 ) return 'N'; else if ( b2 >= 0xb2 && b2 <= 0xb8 ) return 'O'; else if ( b2 >= 0xb9 && b2 <= 0xbc ) return 'U'; else if ( b2 >= 0xbd && b2 <= 0xbf ) return 'Y'; break; case 0xc4: if ( b2 >= 0x80 && b2 <= 0x85 ) return 'A'; else if ( b2 >= 0x86 && b2 <= 0x8d ) return 'C'; else if ( b2 >= 0x8e || b2 <= 0x91 ) return 'D'; else if ( b2 >= 0x92 && b2 <= 0x9b ) return 'E'; else if ( b2 >= 0x9c && b2 <= 0xa3 ) return 'G'; else if ( b2 >= 0xa4 && b2 <= 0xa7 ) return 'H'; else if ( b2 >= 0xa8 && b2 <= 0xb3 ) return 'I'; else if ( b2 >= 0xb4 && b2 <= 0xb5 ) return 'J'; else if ( b2 >= 0xb6 && b2 <= 0xb8 ) return 'K'; else if ( b2 >= 0xb9 && b2 <= 0xbf ) return 'L'; break; case 0xc5: if ( b2 >= 0x80 && b2 <= 0x82 ) return 'L'; else if ( b2 >= 0x83 && b2 <= 0x8b ) return 'N'; else if ( b2 >= 0x8c || b2 <= 0x93 ) return 'O'; else if ( b2 >= 0x94 && b2 <= 0x99 ) return 'R'; else if ( b2 >= 0x9a && b2 <= 0xa1 ) return 'S'; else if ( b2 >= 0xa2 && b2 <= 0xa7 ) return 'T'; else if ( b2 >= 0xa8 && b2 <= 0xb3 ) return 'U'; else if ( b2 >= 0xb4 && b2 <= 0xb5 ) return 'W'; else if ( b2 >= 0xb6 && b2 <= 0xb8 ) return 'Y'; else if ( b2 >= 0xb9 && b2 <= 0xbf ) return 'Z'; break; case 0xc6: if ( b2 >= 0x80 && b2 <= 0x85 ) return 'B'; else if ( b2 >= 0x86 && b2 <= 0x88 ) return 'C'; else if ( b2 >= 0x89 || b2 <= 0x8d ) return 'D'; else if ( b2 >= 0x8e && b2 <= 0x90 ) return 'E'; else if ( b2 >= 0x91 && b2 <= 0x92 ) return 'F'; else if ( b2 >= 0x93 && b2 <= 0x94 ) return 'G'; else if ( b2 == 0x95 ) return 'H'; else if ( b2 >= 0x96 && b2 <= 0x97 ) return 'I'; else if ( b2 >= 0x98 && b2 <= 0x99 ) return 'K'; else if ( b2 >= 0xba && b2 <= 0x9b ) return 'L'; else if ( b2 == 0xbc ) return 'M'; else if ( b2 >= 0x9d && b2 <= 0x9e ) return 'N'; else if ( b2 >= 0x9f && b2 <= 0xa3 ) return 'O'; else if ( b2 >= 0xa4 && b2 <= 0xa5 ) return 'P'; else if ( b2 == 0xa6 ) return 'R'; else if ( b2 >= 0xa7 && b2 <= 0xaa ) return 'S'; else if ( b2 >= 0xab && b2 <= 0xae ) return 'T'; else if ( b2 >= 0xaf && b2 <= 0xb1 ) return 'U'; else if ( b2 == 0xb2 ) return 'V'; else if ( b2 >= 0xb3 && b2 <= 0xb4 ) return 'Y'; else if ( b2 >= 0xb5 && b2 <= 0xbe ) return 'Z'; break; } return '.'; } static char get_firstinitial( fields *in ) { char *name; int n; n = fields_find( in, "AUTHOR", LEVEL_MAIN ); if ( n==FIELDS_NOTFOUND ) n = fields_find( in, "AUTHOR", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { name = fields_value( in, n, FIELDS_CHRP ); return initial_ascii( name ); } else return '\0'; } static int get_journalabbr( fields *in ) { char *jrnl; int n, j; n = fields_find( in, "TITLE", LEVEL_HOST ); if ( n!=FIELDS_NOTFOUND ) { jrnl = fields_value( in, n, FIELDS_CHRP ); for ( j=0; j=10000 ) { ch = 'a' + (page/10000); outstr[13] = ch; } } /** A */ ch = toupper( (unsigned char) get_firstinitial( in ) ); if ( ch!='\0' ) outstr[18] = ch; fstatus = fields_add( out, adstag, outstr, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_easyall( fields *in, char *tag, char *adstag, int level, fields *out, char *prefix, int *status ) { vplist_index i; int fstatus; str output; char *val; vplist a; vplist_init( &a ); if ( prefix ) str_init( &output ); fields_findv_each( in, level, FIELDS_CHRP, &a, tag ); for ( i=0; i0 ) str_strcatc( &allkeys, ", " ); str_strcatc( &allkeys, (char *) vplist_get( &a, i ) ); } fstatus = fields_add( out, adstag, str_cstr( &allkeys ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &allkeys ); vplist_free( &a ); } static void append_urls( fields *in, fields *out, int *status ) { int lstatus; slist types; /* skip DOI as we'll add that separately */ lstatus = slist_init_valuesc( &types, "URL", "PMID", "PMC", "ARXIV", "JSTOR", "MRNUMBER", "FILEATTACH", "FIGATTACH", NULL ); if ( lstatus!=SLIST_OK ) { *status = BIBL_ERR_MEMERR; return; } *status = urls_merge_and_add( in, LEVEL_ANY, out, "%U", LEVEL_MAIN, &types ); slist_free( &types ); } static void append_trailer( fields *out, int *status ) { int fstatus; fstatus = fields_add( out, "%W", "PHY", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } fstatus = fields_add( out, "%G", "AUTHOR", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } static int adsout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ) { int type, status = BIBL_OK; fields_clear_used( in ); type = get_type( in ); append_Rtag ( in, "%R", type, out, &status ); append_people ( in, "AUTHOR", "AUTHOR:ASIS", "AUTHOR:CORP", "%A", LEVEL_MAIN, out, &status ); append_people ( in, "EDITOR", "EDITOR:ASIS", "EDITOR:CORP", "%E", LEVEL_ANY, out, &status ); append_easy ( in, "TITLE", "%T", LEVEL_ANY, out, &status ); append_titles ( in, type, out, &status ); append_date ( in, "%D", LEVEL_ANY, out, &status ); append_easy ( in, "VOLUME", "%V", LEVEL_ANY, out, &status ); append_easy ( in, "ISSUE", "%N", LEVEL_ANY, out, &status ); append_easy ( in, "NUMBER", "%N", LEVEL_ANY, out, &status ); append_easy ( in, "LANGUAGE", "%M", LEVEL_ANY, out, &status ); append_easyall( in, "NOTES", "%X", LEVEL_ANY, out, NULL, &status ); append_easy ( in, "ABSTRACT", "%B", LEVEL_ANY, out, &status ); append_keys ( in, "KEYWORD", "%K", LEVEL_ANY, out, &status ); append_urls ( in, out, &status ); append_pages ( in, out, &status ); append_easyall( in, "DOI", "%Y", LEVEL_ANY, out, "DOI:", &status ); append_trailer( out, &status ); return status; } /***************************************************** PUBLIC: int adsout_write() *****************************************************/ static int adsout_write( fields *out, FILE *fp, param *p, unsigned long refnum ) { const char *tag, *value; int i; for ( i=0; in; ++i ) { tag = fields_tag( out, i, FIELDS_CHRP ); value = fields_value( out, i, FIELDS_CHRP ); fprintf( fp, "%s %s\n", tag, value ); } fprintf( fp, "\n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/adsout.c0000755000000000000000000004640407346545000015645 0ustar0000000000000000/* * adsout.c * * Copyright (c) Richard Mathar 2007-2020 * Copyright (c) Chris Putnam 2007-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "generic.h" #include "name.h" #include "title.h" #include "type.h" #include "url.h" #include "bibformats.h" /***************************************************** PUBLIC: int adsout_initparams() *****************************************************/ static int adsout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static int adsout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int adsout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_ADSABSOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; if ( pm->charsetout == BIBL_CHARSET_UNICODE ) { pm->utf8out = pm->utf8bom = 1; } pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = adsout_assemble; pm->writef = adsout_write; if ( !pm->progname ) { if ( !progname ) pm->progname=NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int adsout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_GENERIC, TYPE_ARTICLE, TYPE_MAGARTICLE, TYPE_BOOK, TYPE_INBOOK, TYPE_INPROCEEDINGS, TYPE_HEARING, TYPE_BILL, TYPE_CASE, TYPE_NEWSPAPER, TYPE_COMMUNICATION, TYPE_BROADCAST, TYPE_MANUSCRIPT, TYPE_REPORT, TYPE_THESIS, TYPE_MASTERSTHESIS, TYPE_PHDTHESIS, TYPE_DIPLOMATHESIS, TYPE_DOCTORALTHESIS, TYPE_HABILITATIONTHESIS, TYPE_LICENTIATETHESIS, TYPE_PATENT, TYPE_PROGRAM }; static int get_type( fields *in ) { match_type genre_matches[] = { { "academic journal", TYPE_ARTICLE, LEVEL_ANY }, { "communication", TYPE_COMMUNICATION, LEVEL_ANY }, { "conference publication", TYPE_INPROCEEDINGS, LEVEL_ANY }, { "Diploma thesis", TYPE_DIPLOMATHESIS, LEVEL_ANY }, { "Doctoral thesis", TYPE_DOCTORALTHESIS, LEVEL_ANY }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS, LEVEL_ANY }, { "hearing", TYPE_HEARING, LEVEL_ANY }, { "legal case and case notes", TYPE_CASE, LEVEL_ANY }, { "legislation", TYPE_BILL, LEVEL_ANY }, { "Licentiate thesis", TYPE_LICENTIATETHESIS, LEVEL_ANY }, { "magazine", TYPE_MAGARTICLE, LEVEL_ANY }, { "manuscript", TYPE_MANUSCRIPT, LEVEL_ANY }, { "Masters thesis", TYPE_MASTERSTHESIS, LEVEL_ANY }, { "newspaper", TYPE_NEWSPAPER, LEVEL_ANY }, { "patent", TYPE_PATENT, LEVEL_ANY }, { "Ph.D. thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "report", TYPE_REPORT, LEVEL_ANY }, { "technical report", TYPE_REPORT, LEVEL_ANY }, { "unpublished", TYPE_MANUSCRIPT, LEVEL_ANY }, { "periodical", TYPE_ARTICLE, LEVEL_ANY }, { "thesis", TYPE_THESIS, LEVEL_ANY }, { "book", TYPE_BOOK, LEVEL_MAIN }, { "book", TYPE_INBOOK, LEVEL_ANY }, { "collection", TYPE_BOOK, LEVEL_MAIN }, { "collection", TYPE_INBOOK, LEVEL_ANY }, }; int ngenre_matches = sizeof( genre_matches ) / sizeof( genre_matches[0] ); match_type resource_matches[] = { { "moving image", TYPE_BROADCAST, LEVEL_ANY }, { "software, multimedia", TYPE_PROGRAM, LEVEL_ANY }, }; int nresource_matches = sizeof( resource_matches ) /sizeof( resource_matches[0] ); match_type issuance_matches[] = { { "monographic", TYPE_BOOK, LEVEL_MAIN }, { "monographic", TYPE_INBOOK, LEVEL_ANY }, }; int nissuance_matches = sizeof( issuance_matches ) /sizeof( issuance_matches[0] ); int type; type = type_from_mods_hints( in, TYPE_FROM_GENRE, genre_matches, ngenre_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_RESOURCE, resource_matches, nresource_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_ISSUANCE, issuance_matches, nissuance_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = TYPE_GENERIC; return type; } static int append_title( fields *in, char *ttl, char *sub, char *adstag, int level, fields *out, int *status ) { str fulltitle, *title, *subtitle, *vol, *iss, *sn, *en, *ar; int fstatus, output = 0; str_init( &fulltitle ); title = fields_findv( in, level, FIELDS_STRP, ttl ); subtitle = fields_findv( in, level, FIELDS_STRP, sub ); if ( str_has_value( title ) ) { output = 1; title_combine( &fulltitle, title, subtitle ); vol = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "VOLUME" ); if ( str_has_value( vol ) ) { str_strcatc( &fulltitle, ", vol. " ); str_strcat( &fulltitle, vol ); } iss = fields_findv_firstof( in, LEVEL_ANY, FIELDS_STRP, "ISSUE", "NUMBER", NULL ); if ( str_has_value( iss ) ) { str_strcatc( &fulltitle, ", no. " ); str_strcat( &fulltitle, iss ); } sn = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "PAGES:START" ); en = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "PAGES:STOP" ); ar = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "ARTICLENUMBER" ); if ( str_has_value( sn ) ) { if ( str_has_value( en ) ) { str_strcatc( &fulltitle, ", pp. " ); } else { str_strcatc( &fulltitle, ", p. " ); } str_strcat( &fulltitle, sn ); } else if ( str_has_value( ar ) ) { str_strcatc( &fulltitle, ", p. " ); str_strcat( &fulltitle, ar ); } if ( str_has_value( en ) ) { str_addchar( &fulltitle, '-' ); str_strcat( &fulltitle, en ); } if ( str_memerr( &fulltitle ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, adstag, str_cstr( &fulltitle ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } out: str_free( &fulltitle ); return output; } static void append_titles( fields *in, int type, fields *out, int *status ) { int added; if ( type==TYPE_ARTICLE || type==TYPE_MAGARTICLE ) { added = append_title( in, "TITLE", "SUBTITLE", "%J", LEVEL_HOST, out, status ); if ( added==0 ) (void) append_title( in, "SHORTTITLE", "SHORTSUBTITLE", "%J", LEVEL_HOST, out, status ); } } static void append_people( fields *in, char *tag1, char *tag2, char *tag3, char *adstag, int level, fields *out, int *status ) { str oneperson, allpeople; vplist_index i; int fstatus; vplist a; str_init( &oneperson ); str_init( &allpeople ); vplist_init( &a ); fields_findv_eachof( in, level, FIELDS_CHRP, &a, tag1, tag2, tag3, NULL ); if ( a.n ) { for ( i=0; i9999, will fit in buf[6] */ #ifdef WIN32 sprintf( buf, "%I64d", n ); #else sprintf( buf, "%lld", n ); #endif if ( n < 10 ) strncpy( pos+3, buf, 1 ); else if ( n < 100 ) strncpy( pos+2, buf, 2 ); else if ( n < 1000 ) strncpy( pos+1, buf, 3 ); else strncpy( pos, buf, 4 ); } static char initial_ascii( const char *name ) { int b1, b2; if ( isascii( name[0] ) ) return name[0]; b1 = name[0]+256; b2 = name[1]+256; switch( b1 ) { case 0xc3: if ( b2 >= 0x80 && b2 <= 0x86 ) return 'A'; else if ( b2 == 0x87 ) return 'C'; else if ( b2 >= 0x88 && b2 <= 0x8b ) return 'E'; else if ( b2 >= 0x8c && b2 <= 0x8f ) return 'I'; else if ( b2 == 0x90 ) return 'D'; else if ( b2 == 0x91 ) return 'N'; else if ( b2 >= 0x92 && b2 <= 0x98 ) return 'O'; else if ( b2 >= 0x99 && b2 <= 0x9c ) return 'U'; else if ( b2 == 0x9d ) return 'Y'; else if ( b2 == 0x9f ) return 'S'; else if ( b2 >= 0xa0 && b2 <= 0xa6 ) return 'A'; else if ( b2 == 0xa7 ) return 'C'; else if ( b2 >= 0xa8 && b2 <= 0xab ) return 'E'; else if ( b2 >= 0xac && b2 <= 0xaf ) return 'I'; else if ( b2 == 0xb0 ) return 'D'; else if ( b2 == 0xb1 ) return 'N'; else if ( b2 >= 0xb2 && b2 <= 0xb8 ) return 'O'; else if ( b2 >= 0xb9 && b2 <= 0xbc ) return 'U'; else if ( b2 >= 0xbd && b2 <= 0xbf ) return 'Y'; break; case 0xc4: if ( b2 >= 0x80 && b2 <= 0x85 ) return 'A'; else if ( b2 >= 0x86 && b2 <= 0x8d ) return 'C'; else if ( b2 >= 0x8e || b2 <= 0x91 ) return 'D'; else if ( b2 >= 0x92 && b2 <= 0x9b ) return 'E'; else if ( b2 >= 0x9c && b2 <= 0xa3 ) return 'G'; else if ( b2 >= 0xa4 && b2 <= 0xa7 ) return 'H'; else if ( b2 >= 0xa8 && b2 <= 0xb3 ) return 'I'; else if ( b2 >= 0xb4 && b2 <= 0xb5 ) return 'J'; else if ( b2 >= 0xb6 && b2 <= 0xb8 ) return 'K'; else if ( b2 >= 0xb9 && b2 <= 0xbf ) return 'L'; break; case 0xc5: if ( b2 >= 0x80 && b2 <= 0x82 ) return 'L'; else if ( b2 >= 0x83 && b2 <= 0x8b ) return 'N'; else if ( b2 >= 0x8c || b2 <= 0x93 ) return 'O'; else if ( b2 >= 0x94 && b2 <= 0x99 ) return 'R'; else if ( b2 >= 0x9a && b2 <= 0xa1 ) return 'S'; else if ( b2 >= 0xa2 && b2 <= 0xa7 ) return 'T'; else if ( b2 >= 0xa8 && b2 <= 0xb3 ) return 'U'; else if ( b2 >= 0xb4 && b2 <= 0xb5 ) return 'W'; else if ( b2 >= 0xb6 && b2 <= 0xb8 ) return 'Y'; else if ( b2 >= 0xb9 && b2 <= 0xbf ) return 'Z'; break; case 0xc6: if ( b2 >= 0x80 && b2 <= 0x85 ) return 'B'; else if ( b2 >= 0x86 && b2 <= 0x88 ) return 'C'; else if ( b2 >= 0x89 || b2 <= 0x8d ) return 'D'; else if ( b2 >= 0x8e && b2 <= 0x90 ) return 'E'; else if ( b2 >= 0x91 && b2 <= 0x92 ) return 'F'; else if ( b2 >= 0x93 && b2 <= 0x94 ) return 'G'; else if ( b2 == 0x95 ) return 'H'; else if ( b2 >= 0x96 && b2 <= 0x97 ) return 'I'; else if ( b2 >= 0x98 && b2 <= 0x99 ) return 'K'; else if ( b2 >= 0xba && b2 <= 0x9b ) return 'L'; else if ( b2 == 0xbc ) return 'M'; else if ( b2 >= 0x9d && b2 <= 0x9e ) return 'N'; else if ( b2 >= 0x9f && b2 <= 0xa3 ) return 'O'; else if ( b2 >= 0xa4 && b2 <= 0xa5 ) return 'P'; else if ( b2 == 0xa6 ) return 'R'; else if ( b2 >= 0xa7 && b2 <= 0xaa ) return 'S'; else if ( b2 >= 0xab && b2 <= 0xae ) return 'T'; else if ( b2 >= 0xaf && b2 <= 0xb1 ) return 'U'; else if ( b2 == 0xb2 ) return 'V'; else if ( b2 >= 0xb3 && b2 <= 0xb4 ) return 'Y'; else if ( b2 >= 0xb5 && b2 <= 0xbe ) return 'Z'; break; } return '.'; } static char get_firstinitial( fields *in ) { char *name; int n; n = fields_find( in, "AUTHOR", LEVEL_MAIN ); if ( n==FIELDS_NOTFOUND ) n = fields_find( in, "AUTHOR", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { name = fields_value( in, n, FIELDS_CHRP ); return initial_ascii( name ); } else return '\0'; } static int get_journalabbr( fields *in ) { char *jrnl; int n, j; n = fields_find( in, "TITLE", LEVEL_HOST ); if ( n!=FIELDS_NOTFOUND ) { jrnl = fields_value( in, n, FIELDS_CHRP ); for ( j=0; j=10000 ) { ch = 'a' + (page/10000); outstr[13] = ch; } } /** A */ ch = toupper( (unsigned char) get_firstinitial( in ) ); if ( ch!='\0' ) outstr[18] = ch; fstatus = fields_add( out, adstag, outstr, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_easyall( fields *in, char *tag, char *adstag, int level, fields *out, char *prefix, int *status ) { vplist_index i; int fstatus; str output; char *val; vplist a; vplist_init( &a ); if ( prefix ) str_init( &output ); fields_findv_each( in, level, FIELDS_CHRP, &a, tag ); for ( i=0; i0 ) str_strcatc( &allkeys, ", " ); str_strcatc( &allkeys, (char *) vplist_get( &a, i ) ); } fstatus = fields_add( out, adstag, str_cstr( &allkeys ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &allkeys ); vplist_free( &a ); } static void append_urls( fields *in, fields *out, int *status ) { int lstatus; slist types; /* skip DOI as we'll add that separately */ lstatus = slist_init_valuesc( &types, "URL", "PMID", "PMC", "ARXIV", "JSTOR", "MRNUMBER", "FILEATTACH", "FIGATTACH", NULL ); if ( lstatus!=SLIST_OK ) { *status = BIBL_ERR_MEMERR; return; } *status = urls_merge_and_add( in, LEVEL_ANY, out, "%U", LEVEL_MAIN, &types ); slist_free( &types ); } static void append_trailer( fields *out, int *status ) { int fstatus; fstatus = fields_add( out, "%W", "PHY", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } fstatus = fields_add( out, "%G", "AUTHOR", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } static int adsout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ) { int type, status = BIBL_OK; fields_clear_used( in ); type = get_type( in ); append_Rtag ( in, "%R", type, out, &status ); append_people ( in, "AUTHOR", "AUTHOR:ASIS", "AUTHOR:CORP", "%A", LEVEL_MAIN, out, &status ); append_people ( in, "EDITOR", "EDITOR:ASIS", "EDITOR:CORP", "%E", LEVEL_ANY, out, &status ); append_easy ( in, "TITLE", "%T", LEVEL_ANY, out, &status ); append_titles ( in, type, out, &status ); append_date ( in, "%D", LEVEL_ANY, out, &status ); append_easy ( in, "VOLUME", "%V", LEVEL_ANY, out, &status ); append_easy ( in, "ISSUE", "%N", LEVEL_ANY, out, &status ); append_easy ( in, "NUMBER", "%N", LEVEL_ANY, out, &status ); append_easy ( in, "LANGUAGE", "%M", LEVEL_ANY, out, &status ); append_easyall( in, "NOTES", "%X", LEVEL_ANY, out, NULL, &status ); append_easy ( in, "ABSTRACT", "%B", LEVEL_ANY, out, &status ); append_keys ( in, "KEYWORD", "%K", LEVEL_ANY, out, &status ); append_urls ( in, out, &status ); append_pages ( in, out, &status ); append_easyall( in, "DOI", "%Y", LEVEL_ANY, out, "DOI:", &status ); append_trailer( out, &status ); return status; } /***************************************************** PUBLIC: int adsout_write() *****************************************************/ static int adsout_write( fields *out, FILE *fp, param *p, unsigned long refnum ) { const char *tag, *value; int i; for ( i=0; in; ++i ) { tag = fields_tag( out, i, FIELDS_CHRP ); value = fields_value( out, i, FIELDS_CHRP ); fprintf( fp, "%s %s\n", tag, value ); } fprintf( fp, "\n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/adsout_journals.c0000644000000000000000000061665307346545000017570 0ustar0000000000000000/* http://adsabs.harvard.edu/abs_doc/journals1.html * download URL source then parse with * fgrep setfields journals1.html | awk -F ';' '{printf "%s\n",$2}' * | cut -c 7-12,24- | sed 's/"//g' * | awk '{ for(i=1;i<=length($0);++i){c=substr($0,i,1);if(c==" "&&i<6) { printf(".");} else {printf("%s",c);}}printf("\n");}' * | awk '{printf "\"%s\",\n",$0 }' | sort -n -k2 * */ static const char *journals[] = { "A&AA. Astronomy and Astrophysics Abstracts Heidelberg", "AAABS Asociacion Argentina de Astronomia La Plata Argentina Book Series", "AAAN. Astronomische Abhandlungen als Erganzungshefte zu den Astronomische Nachrichten", "AAAR. Arctic, Antarctic and Alpine Research", "A&A.. Astronomy and Astrophysics", "A&AC. Astronomy &", "AADDR Abhandlungen Akad. Wiss. DDR", "AAfz. Astrometriia i Astrofizika", "AAGot Abhandlungen Akad. Wiss. Gö", "AAHam Astronomische Abhandlungen der Hamburger Sternwarte", "AAIzN Alma Ata Izdatel Nauka", "AALST Atti Accad. Ligure Sci. Lett.", "AAM.. Archive of Applied Mechanics", "AAMOP Advances in Atomic Molecular and Optical Physics", "AAMS. Adv. Appl. Mech. Suppl.", "AAN.. AAVSO Alert Notice", "AAnST Advances in Astronautics Science and Technology", "AAONw Anglo-Australian Observatory Epping Newsletter", "AAOPr Anglo-Australian Observatory Epping Preprint", "AAPon Atti Accad. Pontaniana", "A&ARv Astronomy and Astrophysics Review", "A&AS. Astronomy and Astrophysics Supplement Series", "AASF. Ann. Acad. Sci. Fennicae", "AASHS AAS Hist. Ser.", "AASP. Advances in Astronomy and Space Physics", "AASPB AAS Photo Bulletin", "AASPP Astrononomy and Astrophysics Series", "AAST. Atti Accad. Sco. Torino I", "A&AT. Astronomical and Astrophysical Transactions", "AAVNw AAVSO Newsletter", "AAVSB AAVSO Solar Bulletin", "AAVSC AAVSO Circular", "AAVSN AAVSO Special Notice", "AbaOB Abastumanskaia Astrofizicheskaia Observatoriia Byulleten", "AbApA Abstract and Applied Analysis", "AbAst Abenteuer Astronomie", "AbbOO Abbadia Observatory Observations", "AbhBr Abh. naturwiss. Verein Bremen", "AbhKP Abh. Konigl. Preuss. Akad. Wissenschaften Jahre 1906,92, Berlin,1907", "AbhP. Abh. der Preuß", "AbICA Abstracts of the ICA", "ABKie Astronomische Beobachtungen auf der Sternwarte der Koeniglichen Christian-Albrechts-Universitaet zu Kiel", "ABMun Astronomische Beobachtungen angestellt auf der K. Sternwarte zu Bogenhausen bei Muenchen", "ABSBe Astronomische Beobachtungen auf der Koniglichen Sternwarte zu Berlin", "ABWG. Abh. Braunschweigische Wissenschaftliche Ges.", "AcA.. Acta Astronomica", "AcAAS Acta Aeronautica et Astronautica Sinica", "AcAau Acta Astronautica", "AcAcu Acta Acustica", "AcAer Acta Aerodynamica Sinica", "AcApS Acta Astrophysica Sinica", "AcAri Acta Arithmetica", "AcArm Acta Armamentarii", "AcASn Acta Astronomica Sinica", "A&C.. Astronomy and Computing", "AcAuS Acta Automatica Sinica", "AcBu. Acoust. Bull.", "AcC.. Acta Cosmologica", "AcChR Accounts Chem. Res.", "AcCrA Acta Crystallographica Section A", "AcCrD Acta Crystallographica Section D", "AcEle Acta Electronica", "AcElS Acta Electronica Sinica", "ACESJ Applied Computational Electromagnetics Society Journal", "AcESn Acta Electron. Sinica", "AcGdG Acta Geodynamica et Geomaterialia", "AcGeo Acta Geophysica", "AcGeP Acta Geophysica Polonica", "AcGG. Acta Geod. Geophys.", "ACGIS Advances in Cartography and GIScience of the ICA", "AcGSn Acta Geophys. Sinica", "AcHA. Acta Historica Astronomiae", "AcHPh Helvetica Physica Acta", "AcHPS Helvetica Physica Acta Supplementum", "ACiCh Astronomical Circular", "ACIP. Acta Cienc. Indica Phys.", "AcMa. Acta Mathematica", "ACMan Astronomical Contributions from the University of Manchester", "AcMaS Acta Mathematica Sinica", "AcMat Acta Materialia", "AcMCS Acta Materiae Compositae Sinica", "AcMec Acta Mechanica", "AcMeS Acta Meteorologica Sinica", "AcMet Acta Metallurgica", "AcMik Mikrochimica Acta", "AcM&M Acta Metallurgica et Materialia", "AcMPh Acta Universitatis Caroliae. Mathematica et Physica", "AcMPS Acta Universitatis Caroliae. Mathematica et Physica Supplement", "AcMSn Acta Mechanica Sinica", "AcMSS Acta Mechanica Solida Sinica", "AcMSw Acta Mathematica Sweden", "AcMT. Acta Materialia Transylvanica", "AcNum Acta Numerica", "AcO.. Acta Oecologica", "AcOpS Acta Optica Sinica", "AcOpt Optica Acta", "AcOSi Acta Oceanica Sinica", "AcouL Acoustics Letters", "AcPAS Acta Physica Austriaca Supplement", "ACP.. Atmospheric Chemistry & Physics", "ACPD. Atmospheric Chemistry & Physics Discussions", "AcPhA Acta Physica Austriaca", "AcPhC Acta Physica et Chemica", "AcPhH Acta Physica Hungarica", "AcPhS Acta Physiologica Scandinavica", "AcPhy Acta Physica", "AcPol Acta Polytechnica", "AcPPA Acta Physica Polonica A", "AcPP. Acta Physica Polonica", "AcPPB Acta Physica Polonica B", "AcPPP Acta Polytechnica CTU Proceedings", "AcPPS Acta Physica Polonica B, Proceedings Supplement", "AcPSc Acta Polytechnica Scandinavica Applied Physics Series", "AcPSi Acta Photonica Sinica", "AcPSl Acta Physica Slovaca", "AcPSn Acta Physica Sinica", "AcRhe Rheologica Acta", "ACSB. American Ceramic Society Bulletin", "ACSC. American Ceramic Society Communications", "ACSJ. American Ceramic Society Journal", "AcSN. Acta Scientifica Naturalis", "AcSpA Spectrochimica Acta Part A: Molecular Spectroscopy", "AcSpe Spectrochimica Acta", "AcSSn Acta Seismologica Sinica", "ACTAp Automatic Control Theory Applications", "AcTC. Theoretica Chimica Acta", "AcTec Acta Technica", "Acu.. Acustica", "AcUnC Acta Universitatis Cibiniensis", "AcUni Acta Universitaria", "AdA&A Advances in Astronomy and Astrophysics", "AdAer Advances in Aeronautics", "AdAMP Advances in Atomic and Molecular Physics", "AdAnS Advances in the Astronautical Sciences", "AdAp. Advances in Astrophysics", "AdApM Advances in Applied Mathematics", "adap.pNASA ADAP Proposal", "AdAs. Ad Astra", "adass Astronomical Data Analysis Software and Systems", "AdAst Advances in Astronomy", "AD... Atomic Data", "AdAtS Advances in Atmospheric Sciences", "ADCBu Astronomical Data Center Bulletin", "AdChP Advances in Chemical Physics", "AdCIS Advances in Colloid and Interface Science", "AdCM. Advanced Ceramic Materials", "AdCMP Advances in Condensed Matter Physics", "AdCoL Advanced Composites Letters", "AdEl. Advanced Electromagnetics", "AdEPS Advances in Earth and Planetary Sciences", "AdG.. Advances in Geosciences", "AdGeo Advances in Geophysics", "AdHEP Advances in High Energy Physics", "ADIL. Astronomy Data Image Library", "AdMaP Advances in Mathematical Physics", "AdMet Advances in Meteorology", "AdMPC Advances in Materials Physics and Chemistry", "AdMRe Advances in Magnetic Resonance", "AdMS. Advances in Materials Science", "AdMSE Advances in Materials Science and Engineering", "AdMUM Advances in Mechanics Uspekhi Mekhaniki", "ADNDT Atomic Data and Nuclear Data Tables", "AdNOp Advances in Nonlinear Optics", "AdNuP Advances in Nuclear Physics", "AdOP. Advances in Optics and Photonics", "AdOT. Advanced Optical Technologies", "AdPho Advanced Photonics", "AdPhy Advances in Physics", "AdPlP Advances in Plasma Physics", "AdQC. Advances in Quantum Chemistry", "AdRS. Advances in Radio Science", "AdSAC Advanced Series in Astrophysics and Cosmology", "AdSpR Advances in Space Research", "AdSR. Advances in Science and Research", "AdTAM Advances in Theoretical and Applied Mechanics", "AdThP Advances in Theoretical Physics", "AdTMP Advances in Theoretical and Mathematical Physics", "AdWR. Advances in Water Resources", "AeAm. Aerospace America", "AeCh. Aerospace China", "AeCM. Aerospace Composites and Materials", "AEdRv Astronomy Education Review", "AeDy. Aerospace Dynamics", "AeEn. Aerospace Engineering", "AEEP. Advances in Electronics and Electron Physics", "AEEPS Advances in Electronics and Electron Physics Supplement", "AeIBu Aerokosmicheski Izsledvaniia B lgariia", "AeJ.. Aeronautical Journal", "Aekv. Aerodinamika kanalov i ventiliatorov", "AeMat Aerospace Materials", "AeMed Aerospace Medicine", "AeMiS Aerotecnica Missili &", "AeoRe Aeolian Research", "AeQ.. Aeronautical Quarterly", "AeRaG Aerodinamika Razrezhennykh Gazov", "AerAs L'Aeronautique et L'Astronautique", "AerMS L'Aerotecnica Missili e Spazio", "Aero. Aerospace UK", "AerRv Revue Aerospatiale", "AerSE Aerosol Science and Engineering", "AerST Aerosol Science Technology", "AerSy Aerospace Systems", "AerTe Aerojet Technology", "AeSIJ Aeronautical Society India Journal", "AeTJa Aerospace Technology Japan", "AExpr Astronomy Express", "AFChr Annales Francaises de Chronometrie", "AFGL. AFGL-TR-0208 Environemental Research papers", "AFLB. Annales de la Fondation Louis de Broglie", "AFMa. Air Force Magazine", "AFOEV Bulletin de l'Association Francaise d'Observateurs d'Etoiles Variables", "AFRE. Alta Frequenza Rivista di Elettronica", "AfrSk African Skies", "AfRvP The African Review of Physics", "Afz.. Astrofizika", "A&G.. Astronomy and Geophysics", "AgFM. Agricultural and Forest Meteorology", "Agrph The Astrograph", "AGUA. AGU Advances", "AGUFM AGU Fall Meeting Abstracts", "AGUSM AGU Spring Meeting Abstracts", "AHEEM Archives of Hydro-Engineering and Environmental Mechanics", "AHES. Archive for History of Exact Sciences", "AHSJ. American Helicopter Society Journal", "AIAAJ AIAA Journal", "AIASJ AIAA Student Journal", "AIChE AIChE Journal", "AIH.. Acoustical Imaging and Holography", "AIHAJ AIHA Journal", "AIHPA Annales de L'Institut Henri Poincare Section (A) Physique Theorique", "AIHPB Annales de L'Institut Henri Poincare Section (B) Probability and Statistics", "AIHPC Annales de L'Institut Henri Poincare Section (C) Non Linear Analysis", "AiInt Air International", "AIMSG AIMS Geosciences", "AIPA. AIP Advances", "AIQSY Annals of the IQSY", "AirCo Air et Cosmos", "AirE. Aircraft Engineering", "AirSp Air and Space", "AISAO Astrofizicheskie Issledovaniia Izvestiya Spetsial'noj Astrofizicheskoj Observatorii", "AISof Astrofizicheskie Issledovaniya Sofia", "AJB.. Astronomischer Jahresbericht", "AJCh. Australian Journal of Chemistry", "AJGeo American Journal of Geoscience", "AJSE. Arabian Journal of Science Engineering", "AJSEd Atlas Journal of Science Education", "AJS.. The Astronomical Journal Supplement", "AJ... The Astronomical Journal", "AkAtP Akademia Athenon Praktika", "AkTek Akustika i Ul trazvukovaia Tekhnika", "AkZh. Akusticheskii Zhurnal", "AlFr. Alta Frequenza", "ALMAN ALMA Newsletter", "AMat. Applied Mathematics", "Ambio Ambio", "AMGBA Archives for Meteorology Geophysics and Bioclimatology Series A Meteorology and Atmopsheric Physics", "AMGBB Archives for Meteorology Geophysics and Bioclimatology Series B Theoretical and Applied Climatology", "AMGBK Archiv Meteorologie Geophysik und Bioklimatologie Serie B Klimatologie und Umweltmeteorologie Strahlungsforschung", "AMGBS Archiv Meteorologie Geophysik und Bioklimatologie Serie Meteorologie und Geophysik", "AmJC. American Journal of Cardiology", "AmJM. American Journal of Mathematics", "AmJPh American Journal of Physics", "AmJSA American Journal of Science and Arts", "AmJS. American Journal of Science", "AMM.. Applied Mechanics and Materials", "AmMin American Mineralogist", "AMP.. Advanced Materials and Processes", "AMR.. Antarctic Meteorite Research", "AmSci American Scientist", "AMT.. Atmospheric Measurement Techniques", "AMTD. Atmospheric Measurement Techniques Discussions", "AMTM. Archives of Mechanical Technology and Materials", "AnaCh Analytical Chemistry", "AnAIK Annales de l'Observatoire astronomique de l'Université", "AnaIn Analytical Instrumentation", "AnAp. Annales d'Astrophysique", "AnAPM Annales de l'Observatoire d'astronomie physique de Paris, Section d'astrophysique, à", "AnApS Annals of Applied Statistics", "AN... Astronomische Nachrichten", "Ana.. The Analyst", "AnBes Annales de l'Observatoire de Besancon", "AnBog Neue Annalen der Koeniglichen Sternwarte in Bogenhausen bei Muenchen", "AnBor Annales de l'Observatoire de Bordeaux", "AnBos Annals of the Bosscha Observatory Lembang (Java) Indonesia", "AnBru Annales de l'Observatoire Royal de Bruxelles", "AnCap Annals of the Cape Observatory", "AnCGH Annals of Royal Observatory, Cape of Good Hope", "AnCPh Annales de Chimie et de Physique", "AnDea Annals of the Dearborn Observatory", "AnDud Annals of the Dudley Observatory", "AnEdi Annals of the Royal Observatory, Edinburgh", "AnErg Ergaenzungshefte zu den Astronomischen Nachrichten", "Anews ASTRON Newsletter", "AnFis Anales de Fisica", "AnG.. Annales de Geophysique", "AnGeo Annales Geophysicae", "AnGla Annals of Glaciology", "AnGp. Annals of Geophysics", "AnGVP Annales du Bureau des Longitudes, Gauthier-Villars, Paris", "AnHar Annals of Harvard College Observatory", "AnHP. Annales Henri Poincaré", "AnIPS Annals of the Israel Physical Society", "ANLAF Accademia Nazionale dei Lincei Atti Rendiconti Classe di Scienze Fisiche e Naturali", "ANLAM Accademia Nazionale dei Lincei Atti Rendiconti Classe di Matematica e Applicazioni", "ANLAR Accademia Nazionale dei Lincei Atti Rendiconti Classe di Scienze Fisiche Matematiche e Naturali", "AnLei Annalen van de Sterrewacht te Leiden", "AnLL. Annals of the Observatory of Lucien Libert", "AnLow Annals of the Lowell Observatory", "AnLun Annals of the Observatory of Lund", "AnLuS Annals of the Observatory of Lund Supplement", "AnMat Annals of Mathematics", "AnMet Annalen Meteorologie", "AnMN. Antarctic Meteorite Newsletter", "AnMP. Analysis and Mathematical Physics", "AnMun Annalen der Koeniglichen Sternwarte bei Muenchen", "AnMuS Supplementband zu den Annalen der Munchener Sternwarte", "AnNic Annales de l'Observatoire de Nice", "AnOB. Annales de l'Observatoire Royal de Belgique", "AnOBN Annales de l'Observatoire Royal de Belgique Nouvelle serie", "AnOLL Annals of the Private Observatory of Lucien Libert", "AnOSt Annales de l'Observatoire de Strasbourg", "AnP.. Annalen der Physik", "AnPar Annales de l'Observatoire de Paris", "AnPCS Annales de Physique Colloque Supplement", "AnPh. Annales de Physique", "AnPhy Annals of Physics", "AnPOb Annales de l'Observatoire de Paris. Observations", "AnRE. Annual Review of Energy", "AnRFM Annual Review of Fluid Mechanics", "AnRio Annales de l'Observatoire Imperial de Rio de Janeiro", "AnRMS Annual Review of Materials Science", "AnRSA Annual Review of Statistics and Its Application", "AnSAO Annals of the Astrophysical Observatory of the Smithsonian Institution", "ANS.. Astronomische Nachrichten Supplement", "AnSci Annals of Science", "AnShO Shanghai Observatory Annals", "ANSNN Advances in Natural Sciences: Nanoscience and Nanotechnology", "AnSPC Annals of the Solar Physics Observatory Cambridge England", "AnSSM Annals of Solid and Structural Mechanics", "AnSta Annals of Statistics", "AnStr Annalen der Kaiserlichen Universitats-Sternwarte in Strassburg", "AntAs The Antiquarian Astronomer", "AnTec Annales Tectonicae", "AnTel Annales des Telecommunications", "Anten Antenny", "Antk. Antarktika", "AnTok Annals of the Tokyo Astronomical Observatory", "AnTou Annales de l'Observatoire Astron. et Meteo. de Toulouse", "AntSc Antarctic Science", "AnUCP Annals of the University of Craiova Physics AUC", "AnWiD Annalen der Universitaets-Sternwarte Wien, Dritter Folge", "AnWie Annalen der K.K. Sternwarte Wien", "ANZi. Beobachtungs-Zirkular der Astronomischen Nachrichten", "AnZoC Annales de l'Observatoire astronomique de Zô", "AOIJ. Academic Open Internet Journal", "AOTok Annales de l'Observatoire astronomique de Tokyo", "ApAc. Applied Acoustics", "ApAN. Apatity Akademiia Nauk SSSR", "Ap... Astrophysics", "APCAJ Air Pollution Control Association Journal", "ApCM. Applied Composite Materials", "Apei. Apeiron", "ApEn. Applied Energy", "ApEnM Applied Environmental Microbiology", "APExp Applied Physics Express", "APFUS Annals of the Physics Faculty of the University of Sofia", "ApGC. pplied Geochemistry", "ApGeo Applied Geophysics", "APh.. Astroparticle Physics", "APHHI Acta Physica Hungarica Heavy Ion Physics", "APHQE Acta Physica Hungarica Quantum Electronics", "APhy. Acoustical Physics", "ApHyd Applied Hydrogeology", "ApInv Astrophysical Investigations", "APJAS Asia-Pacific Journal of Atmospheric Sciences", "ApJS. The Astrophysical Journal Supplement Series", "ApJ.. The Astrophysical Journal", "ApKF. Apatity Kol skii Filial AN SSSR", "ApL.. Astrophysical Letters", "ApL&C Astrophysical Letters and Communications", "APLM. APL Materials", "APLP. APL Photonics", "ApMaC Applied Mathematics Computation", "ApMaL Applied Mathematics Letters", "ApMaM Applied Mathematics Mechanics English Edition", "ApMaO Applied Mathematics Optimization", "ApMat Aplikace Matematiky, Applied Mathematics", "ApMic Applied Microbiology", "ApMM. Applied Mathematics and Mechanics", "ApMRv Applied Mechanics Reviews", "ApMT. Applied Microgravity Technology", "ApNan Applied Nanoscience", "ApNM. Applied Numerical Mathematics", "ApNr. Astrophysica Norvegica", "ApOpt Applied Optics", "AppAn Applicable Analysis", "ApPhA Applied Physics A: Materials Science & Processing", "ApPhB Applied Physics B: Lasers and Optics", "ApPhC Applied Physics Communications", "ApPhL Applied Physics Letters", "ApPhR Applied Physics Research", "ApPhy Applied Physics", "ApPPL Applied Physics B Photophysics Laser Chemistry", "ApPRv Applied Physics Reviews", "apra.pNASA APRA Proposal", "ApScR Applied Scientific Research", "ApSE. Applied Solar Energy", "ApSpe Applied Spectroscopy", "ApSRA Applied Scientific Research Section A", "ApSRB Applied Scientific Research Section B", "ApSRv Applied Spectroscopy Reviews", "ApSS. Applied Surface Science", "Ap&SS Astrophysics and Space Science", "ApSSP Astrophysics and Space Science Proceedings", "ApSSS Astrophysics and Space Science Supplement", "ApSup Applied Superconductivity", "ApT.. Astrophysics Today", "ApWS. Applied Water Science", "ARA&A Annual Review of Astronomy and Astrophysics", "ArA.. Arkiv for Astronomi", "ARAC. Annual Review of Analytical Chemistry", "ArAco Archives Acoustics", "ArAku Archiwum Akustyki", "ARAOJ Annual Report of the National Astronomical Observatory of Japan", "A&R.. Astronomie und Raumfahrt", "ArAuT Archiwum Automatyki i Telemechaniki", "ArBei Astrophysics Reports Publications of the Beijing Astronomical Observatory", "ARBl. Aerospace Research in Bulgaria", "ArBuM Archiwum Budowy Maszyn", "Arch. Archaeoastronomy", "ArchS Archaeoastronomy Supplement", "ARCMP Annual Review of Condensed Matter Physics", "ArCom Archivum Combustionis", "AReg. Astronomical register", "ArEle Archiwum Elektrotechniki", "ArElU Archiv Elektronik und Uebertragungstechnik", "ARep. Astronomy Reports", "AREPS Annual Review of Earth and Planetary Sciences", "ArG.. Arkiv for Geofysik", "ARIJ. An Interdisciplinary Journal of Physical and Engineering Sciences", "ARIST Annual Review of Information Science and Technology", "ArJPh Armenian Journal of Physics", "ArMAF Arkiv for Matematik, Astronomi och Fysik", "ArMaN Archiv for Mathematik og Naturvidenskab", "ArM.. Arkiv for Matematik", "ArMeS Archiv of Mechanics, Archiwum Mechaniki Stosowanej", "ArMiS Archives of Mining Sciences", "ARMS. Annual Review of Marine Science", "ARNPS Annual Review of Nuclear and Particle Science", "ArNSc Archives Neerlandaises des Sciences Exactes et Naturelles", "ARPC. Annual Review of Physical Chemistry", "ARPM. Adgeziia Rasplavov i Paika Materialov", "ArPSp Archiwum Procesow Spalania", "ArRMA Archive for Rational Mechanics and Analysis", "ArS.. Archives des Sciences", "ArSPN Archives des Sciences Physiques et Naturelles", "AR&T. Astronomical Research and Technology", "ArTh. Archives of Thermodynamics", "ArTr. Archives of Transport", "ArtSa Artificial Satellites", "ArTSp Archiwum Termodynamiki i Spalania", "arXiv arXiv e-prints", "AsAc. Astronautica Acta", "AsAer Astronautics Aeronautics", "ASAJ. Acoustical Society of America Journal", "AsBio Astrobiology", "ASBTV Archenhold-Sternwarte Berlin-Treptow, Vortrage Schr.", "ascl.sAstrophysics Source Code Library", "ASCMO Advances in Statistical Climatology Meteorology and Oceanography", "asc..rSpace Telescope ASC Instrument Science Report", "asd..sAstrophysics Software Database", "AsDyn Astrodynamics", "ASFAS Academia Scientiarum Fennica Annales Series Physica", "As&Ge Astronomiya i geodeziya", "ASHRA ASHRAE Journal", "AsJES Austrian Journal of Earth Sciences", "AsJPh Asian Journal of Physics", "ASL.. Advanced Science Letters", "ASLLR Accademia di Scienze e Lettere Istituto Lombardo Rendiconti Serie della Classe di Scienze Matematiche e Naturali Sezione Scienze Matematiche Fisiche Chimiche e Geologiche", "ASME. American Society of Mechanical Engineers", "Asnau Astronautik", "AsNot Astronomical Notices", "AsNow Astronomy Now", "ASNYN News Letter of the Astronomical Society of New York", "ASPL. Leaflet of the Astronomical Society of the Pacific", "ASPLS Leaflet of the Astronomical Society of the Pacific (Supplement)", "ASPRv Astrophysics and Space Physics Reviews", "ASSAB Academie Serbe des Sciences et des Arts Bulletin Classe des Sciences Techniques", "ASSB. Annales de la Socié", "AsSch Astronomie in der Schule", "ASSFA Acta Societatis Scientarum Fennicae Series A", "ASSF. Acta Societatis Scientarum Fennicae", "ASSP. Astrophysics and Space Science Proceedings", "AstAp Astronomy and Astro-Physics (formerly The Sidereal Messenger)", "Ast.. Astronomy", "AstBa Biblioteca Astrei Basarabene", "AstBu Astrophysical Bulletin", "Aster Aster", "AstHe Astronomical Herald", "AstL. Astronomy Letters", "Astnm Astronomia UAI", "AstPo Astropolitics", "AstQ. Astronomy Quarterly", "ASTRA Astrophysics and Space Sciences Transactions", "astro arXiv Astrophysics e-prints", "Astro Astronomy", "ASTRP ASTRA Proceedings", "Astr. The Astronomer", "AstRv The Astronomical Review", "AstSR Astronomical School's Report", "AsUAI Astronomia. La rivista dell' Unione Astrofili Italiani", "ATel1 The Astronomer's Telegram", "ATel. The Astronomer's Telegram", "AtEn. Atomnaia Energiia", "AtERv Atomic Energy Review", "ATi.. Astronomisk Tidsskrift", "ATJAM ASME Transactions Series E Journal of Applied Mechanics", "ATJDS ASME Transactions Journal of Dynamic Systems and Measurement Control B", "ATJEG ASME Transactions Journal of Engineering Gas Turbines and Power", "ATJEl ASME Transactions Journal of Electronic Packaging", "ATJEM ASME Transactions Journal Engineering Materials and Technology", "ATJEP ASME Transactions Journal of Engineering Power", "ATJFE ASME Transactions Journal of Fluids Engineering", "ATJHT ASME Transactions Journal of Heat Transfer", "ATJLT ASME Transactions Journal of Lubrication Technology", "ATJSE ASME Transactions Journal of Solar Energy and Engineering", "ATJTr ASME Transactions Journal of Tribology", "ATJTu ASME Transactions Journal of Turbomachinery", "ATJVA ASME Transactions Journal of Vibration Acoustics", "AtKe. Atomkernenergie", "AtlVS Atlas Poiskovykh Kart Peremennykh Zvezd", "ATMAB Association Technique Maritime et Aeronautique Bulletin", "ATMAS Association Technique Maritime et Aeronautique Session Paris France ONERA TP", "AtmEn Atmospheric Environment", "Atmos Atmosphere", "AtmRe Atmospheric Research", "AtmTe Atmospheric Technology", "atnf.pATNF Proposal", "AtO.. Atmosphere Ocean", "Atoms Atoms", "AtOO. Atmospheric and Oceanic Optics", "AtOpt Atmosphere Optics", "AtPhy Atomic Physics", "atp..pNASA ATP Proposal", "ATR.. ATR Australian Telecommunication Research", "AtSc. Atmospheric Science", "AtScL Atmospheric Science Letters", "ATsir Astronomicheskij Tsirkulyar", "AtST. Atomisation Spray Technology", "ATTM. AEG Telefunken Technische Mitteilungen", "ATTTJ AT T Technical Journal", "AUGGM Annales UMCS, Geographia, Geologia, Mineralogia et Petrographia", "AuJA. Australian Journal of Astronomy", "AuJES Australian Journal of Earth Sciences", "AuJPA Australian Journal of Physics Astrophysical Supplement", "AuJPh Australian Journal of Physics", "AuMM. Australian Meteorological Magazine", "AuMSJ Australian Mathematical Society Journal Series B -- Applied Mathematics", "AuRob Autonomous Robots", "AurPh Auroral physics", "AUSPh Annales UMCS, Sectio AAA: PHYSICA", "AuSRA Australian Journal of Scientific Research A Physical Sciences", "Autom Automatica", "AVest Astronomicheskii Vestnik", "AVET. Atomno Vodorodnaia Energetika i Tekhnologiia", "AVISS Astronomicheskii Vestnik Issledovaniia Solnechnoi Sistemy", "AvKos Aviatsiia i Kosmonavtika", "AvPE. Avtomatizatsiia Proektirovaniia Elektronike", "AvSeM Aviation Space and Environmental Medicine", "AVSOM American Association of Variable Stars Observers Monographs", "AVSOR American Association of Variable Stars Observers Reports", "AVSQS AVS Quantum Science", "AvTek Aviatsionnaia Tekhnika", "AvTel Avtomatika i Telemekhanika", "Avtme Avtometriia", "AvWST Aviation Week Space Technology", "AWUTP Annals of West University of Timisoara - Physics", "AzAJ. Azerbaijani Astronomical Journal", "AZh.. Astronomicheskii Zhurnal", "AZWis Astronomisches Zirkular der Akademie der Wissenschaften der UdSSR", "BAAA. Boletin de la Asociacion Argentina de Astronomia La Plata Argentina", "BAAPG Bulletin of the American Association of Petroleum Geologists", "BAAS. Bulletin of the American Astronomical Society", "BAAVC British Astronomical Association Variable Star Section Circular", "BABel Bulletin Astronomique de Belgrade", "BADPG Berlin East Germany Akademie Verlag GmbH Ergebnisse Plasmaphysik und Gaselektronik", "BAFOE Bulletin Association Fran. Obs. Etoiles Variables", "BAICz Bulletin of the Astronomical Institutes of Czechoslovakia", "BaltA Baltic Astronomy", "BAMaS Bulletin of the American Mathematical Society", "BAMS. Bulletin of the American Meteorological Society", "BAN.. Bulletin of the Astronomical Institutes of the Netherlands", "BANS. Bulletin of the Astronomical Institutes of the Netherlands Supplement Series", "BAOM. Boletin de la Astronomico Observatorio de Madrid", "BAORB Bulletin of the Astronomical Observatoire Royale de Belgique", "BaPhL Balkan Physics Letters", "BAPS. Bulletin of the American Physical Society", "BAPSS Bulletin de l'Academie Polonaise des Sciences Series des Sciences Mathematiques Astronomiques et Physiques", "BARB. Bulletin de l'Academie Royale de Belgique", "BASBr Bulletin of the Astronomical Society of Brazil", "BASI. Bulletin of the Astronomical Society of India", "BasR. Basin Research", "BAth. National Observatory of Athens Greece Bulletin of the Astronomical Institute", "BAVMM Berlin East Germany Akademie Verlag GmbH Shriftenreihe des Zentralinstituts Mathematik und Mechanik", "BAVSM Berliner Arbeitsgemeinschaft fuer Veraenderliche Sterne - Mitteilungen", "BAVSO Bulletin of the American Association of Variable Stars Observers", "BAVSR BAV Rundbrief - Mitteilungsblatt der Berliner Arbeits-gemeinschaft fuer Veraenderliche Sterne", "BAWMN Bayerische Akademie Wissenschaften mathematisch naturwissenschaftliche Klasse Sitzungsberichte", "BayAn Bayesian Analysis", "BBCEn BBC Engineering", "BBGPC Berichte der Bunsen-Gesellschaft Physical Chemistry Chemical Physics Berichte", "BBSAG Bulletin der Bedeckungsveraenderlichen-Beobachter der Schweizerischen Astronomischen Gesellschaft", "BBUSM Babes Bolyai Universitas Studia Series Physica", "BBUSS Babes Bolyai Universitas Studia Series Mathematica", "BCAIC Bulletin of the Central Astronomical Institute of Czechoslovakia", "BCFHT Bulletin d'information du telescope Canada-France-Hawaii", "BCNRC Canada National Research Council Division Mechanical Engineering National Aeronautical Establishment Quarterly Bulletin", "BCNRS Bulletin Signaletique - Centre National de la Recherche Scientifique", "BCrAO Bulletin Crimean Astrophysical Observatory", "BCSAB Bulletin Cl. Science Academy Royal de Belgique", "BDus. Byulleten' Instituta Astrofiziki Dushanbe Akademiya Nauk Tadzhikskoj SSR", "BdWis Bild der Wissenschaften", "BeElM Beskontaktnye Elektricheskie Mashiny", "BeiGe Beitraege zur Geophysik", "BeiMP Beitraege zur Mineralogie und Petrographie", "BeiRe Reprints Beijing Astronomical Observatory Academia Sinica", "BePl. Beitraege Plasmaphysik", "BEPM. Bielefeld Encounters in Physics and Mathematics", "BerAJ Berliner Astronomisches Jarbuch", "Bes1K Observatoire de Besancon", "BESBe Beobachtungs-Ergebnisse der Koniglichen Sternwarte zu Berlin", "BeSN. Be Star Newsletter", "BFWSG Braunschweig Friedr Vieweg und Sohn GmbH", "BGBGM Berlin Gebrueder Borntraeger Geoexploration Monographs Series", "BGD.. Biogeosciences Discussions", "BGeo. Biogeosciences", "BGeod Bulletin Geodesique", "BGNS. Bulletin Geodesique, Nouvelle Series", "BGSA. Bollettino Geod. Scienzi Affini", "BHarO Harvard College Observatory Bulletin", "BIAst Bjull. Inst. Astrofizikii", "BIBGI Bulletin d'Information du Bureau Gravimetrique International", "BiBi. Bioinspiration and Biomimetics", "BICDS Bulletin d'Information du Centre de Donnees Stellaires", "BIEBe Bulletin d'Information d'Etoiles Be", "BIHCD Bureau Internationale Heure, Paris, Circulaire", "BiLuf Bildmessung und Luftbildwessen", "BIMAF Boletin del Instituto de Matematica Astronomica y Fisica Universidad Nacional de Cordoba Argentina", "BIMIA Bulletin of the Institute of Mathematics and Its Applications", "BioFa Biofabrication", "BioMa Biomedical Materials", "Bion. Bionika", "Biopk Biophysik", "BioSc BioScience", "BIRM. Brussels Institute Royal Meteorologique de Belgique", "BITA. Byulleten' Instituta Teoreticheskoj Astronomii (Leningrad)", "BITad Biulletini of the Astronomical Institute Akademiia Nauk Tadzhikskoi", "BIT.. Behaviour & Information Technology", "BITon Boletin del Instituto de Tonantzintla", "BJAP. British Journal of Applied Physics", "BJHS. The British Journal for the History of Science", "BKAD. Beobachtungen der Kaiserlichen Universitaets-Sternwarte Dorpat", "BKoAS Bulletin of Korean Astronomical Society", "BKobO Bulletin of the Kobe Marine Observatory Kobe Japan", "BKUJ. Beobachtungen der Kaiserlichen Universitaets-Sternwarte Jurjew", "BLabR AT&", "BlazD BLAZAR Data", "BlDok Bolgarska Akademiia Nauk Doklady", "BlgAJ Bulgarian Astronomical Journal", "BlGeo Bulgarska Akademiia Naukite Geofizichni Institut Izvestiia", "BlGJ. Bulgarian Geophysical Journal", "BlGSp Bulgarsko Geofizichno Spisanie", "BlJMH Bulgarian Journal of Meteorology and Hydrology", "BlJPh Bulgarian Journal of Physics", "BlJPS Bulgarian Journal of Physics Supplement", "BlMat Bulgarska Akademiia Naukite Matematicheski Institut Izvestiia", "BLPI. Bulletin of the Lebedev Physics Institute", "BlSpi Bulgarska Akademiia Naukite Spisanie", "BlTek Bulgarska Akademiia Naukite Institut Tekhnicheska Kibernetika Izvestiia", "BlTse Bulgarska Akademiia Naukite Tsentralna Laboratoriia Geodeziia Izvestiia", "BMai. Bulletin de la Station Astrophotographique de Mainterne", "BMFRS Biographical Memoirs of Fellows of the Royal Society", "BMNAS Biographical Memoirs National Academy of Sciences", "BMOE. Boletin mensual del Observatorio del Ebro", "BMP.. Biological and Medical Physics", "BOBeo Bulletin de l'Observatoire Astronomique de Belgrade", "BoLMe Boundary-Layer Meteorology", "BOOde Odesskij Gosudarstvennyi Universitet im. I. I. Mechnikova Byulletin Astronomicheskoj Observatorii", "BOPul Bulletin (Izvestiya) de l'Observatoire Central a Poulkovo", "BoSAI Bollettino della Societa Astronomica Italiana", "BOTor Biuletyn Obserwatoium Astronomicznego Uniwersytetu M. Kopernika w Toruniu", "BOTT. Boletin de los Observatorios Tonantzintla y Tacubaya", "BPAS. Bulletin of Pure and Applied Science (Physics)", "BpBeS Biophysics and Bioengineering Series", "BpJ.. Biophysical Journal", "BpRL. Biophysical Reviews and Letters", "BRASP Bulletin of the Russian Academy of Sciences, Physics", "BrJPh Brazilian Journal of Physics", "BRMIC Behavior Research Methods Instruments and Computers", "BROA. Boletin Real Instituto y Observatorio de la Armada (San Fernando, Cadiz)", "BROGS Belgian Royal Observatory Communications Series Geophysics Series", "BrWK. Brennstoff Waerme Kraft", "BSAE. Bulletin of the Soviet Antarctic Expedition", "BSAF. Bulletin de la Societe Astronomique de France", "BSAFR Bulletin de la Societe Astronomique de France et Revue Mensuelle d'Astronomie, de Meteorologie et de Physique du Globe", "BSAL. Bulletin de la Societe Astronomique de Liege", "BSAO. Bulletin of the Special Astrophysics Observatory", "BSASP Bulletin de la Societe des Amis des Sciences et des Lettres de Poznan", "BSAst Bulletin of the Section of Astronomy", "BSBA. Bulletin de la Societe Belge d'Astronomie", "BSD.. Hamburger Sternwarte Bergedorf", "BSEEA Iasi Institutul Politehnic Buletinul Sectia Electrotehnica Electronica Automatizari", "BSMMT Iasi Institutul Politehnic Buletinul Sectia Matematica Mecanica Teoretica Fizica", "BSMT. Iasi Institutul Politehnic Buletinul Sectia Mecanica Tehnica", "BSolD Byulletin Solnechnye Dannye Akademie Nauk SSSR", "BSRSL Bulletin de la Societe Royale des Sciences de Liege", "BSSR. AN BSSR Institut Teplo i Massoobmena Vsesoiuznaia Konferentsiia Teplomassoobmenu Minsk Belorussian SSR Preprint", "BStaO Byulleten' Stalinabadskoj Astronomicheskoj Observatorii Akademiya Nauk Tadzhikskoj SSR", "BSTJ. Bell System Technical Journal", "BTasO Bulletin of the Tashkent Observatory", "BTE.. British Telecommunications Engineering", "BToIT Bulletin of the Tokyo Institute of Technology", "BTok. Bulletin of the Tokyo Astronomical Observatory", "BTSNU Bulletin of Taras Shevchenko National University of Kyiv Astronomy", "BTUM. Braunschweig Technische Universitaet Mitteilungen", "BUAAJ Beijing University Aeronautics and Astronautics Journal", "BuAkK Budapest Akademiai Kiado", "BuAsI Bulletin Astronomique, Serie I", "BuAsR Bulletin Astronomique, Revue Generale des Travaux Astronomiques", "BuAst Bulletin Astronomique", "BuAtS Bulletin of the Atomic Scientists", "BUBes Bulletin of the University of Besancon Observatory", "BuChr Bulletin Chronometrique (Besancon)", "BuENS Osaka Prefecture University Bulletin Series Engineering Natural Sciences", "BUEOP Bulletin of Ukrainian Earth Orientation Parameters Laboratory", "BuGeo Bulletin of Geosciences", "BuIPS Bulletin of the Israel Physical Society", "BuKwa Bulletin of the Kwasan Observatory, Kyoto", "BuLMS Bulletin of the London Mathematical Society", "BuLPI Bulletin of the Lebedev Physics Institute", "BuLyo Bulletin de l'Observatoire de Lyon", "BuMat Bulletin Mathematique", "BuONC Bulletin of the Special Astrophysical Observatory, Northern Caucasus", "BuSSA The Bulletin of the Seismological Society of America", "BVol. Bulletin of Volcanology", "BVVSA Bratislava Veda Vydavatelstvo Slovenskej Akademie Vied", "BYam. Bulletin of the Yamagata University Yamagata Japan", "ByuRe Byurakan Astrophysical Observatory Armenia USSR Reprints", "CaASJ Canadian Aeronautics and Space Journal", "CAD.. Computer-Aided Design", "CAGHS Correspondance Astronomique, Geographique, Hydrographique et statistique", "CahPh Cahiers de Physique", "CaJCh Canadian Journal of Chemistry", "CaJES Canadian Journal of Earth Sciences", "CaJPh Canadian Journal of Physics", "CaJPS Canadian Journal of Physics Supplement", "CaJRS Canadian Journal of Remote Sensing", "CANM. Communications in Applied Numerical Methods", "CAP.. Current Applied Physics", "CAPJ. Communicating Astronomy with the Public Journal", "CaRes Cancer Research", "CarOB Carter Observatory Wellington New Zealand Astronomical Bulletins", "CAS.. Cambridge Astrophysics Series", "CASI. CASI Transactions", "CASJ. Canadian Aeronautics and Space Journal", "CASJQ Canadian Aeronautics and Space Journal Quarter", "CBET. Central Bureau Electronic Telegrams", "CBOAA Comet Bulletin of the Oriental Astronomical Association", "CCCUK Comet Circular of the Chevchenkov University Kiev", "CCDA. CCD Astronomy", "CCM.. Clays and Clay Minerals", "CCoPh Communications in Computational Physics", "CCpFS Ceskoslovensky Casopis pro Fyziku Sekce", "CEAB. Central European Astrophysical Bulletin", "CEAS. CEAS Space Journal", "C&E.. Ciel et Espace", "CEE.. Computers and Electrical Engineering", "CEEJ. Canadian Electrical Engineering Journal", "CEEng Civil And Environmental Engineering Reports", "CEER. Civil And Environmental Engineering Reports", "CEGB. CEGB Research", "CEJ.. Chemistry A European Journal", "CEJE. Central European Journal of Engineering", "CEJG. Central European Journal of Geosciences", "CEJGl Central European Journal of Geology", "CEJPh Central European Journal of Physics", "CeMDA Celestial Mechanics and Dynamical Astronomy", "CeMec Celestial Mechanics", "Cent. Centaurus", "CEnTp Engineering Thermophysics China", "CEST. Communications Gillies Inc Electronic Systems in Transportation", "CESW. Combustion, Explosion and Shock Waves", "CF... Computers and Fluids", "CG... Computers and Geosciences", "CGDAM Conformal Geometry and Dynamics of the American Mathematical Society", "CGIP. Computer Graphics Image Processing", "ChA&A Chinese Astronomy and Astrophysics", "ChA.. Chinese Astronomy", "Chall Challenges", "Chaos Chaos", "ChCom Chemical Communications", "ChEG. Chemie der Erde / Geochemistry", "ChEnC Chemical Engineering Communications", "ChEnN Chemical Engineering News", "ChEnS Chemical Engineering Science", "ChGCS Chemosphere - Global Change Science", "ChGeo Chemical Geology", "ChIEJ Chinese Institute of Engineers Journal", "ChJAA Chinese Journal of Astronomy and Astrophysics", "ChJA. Chinese Journal of Aeronautics", "ChJAS Chinese Journal of Astronomy and Astrophysics Supplement", "ChJCP Chinese Journal of Chemical Physics", "ChJG. Chinese Journal of Geophysics", "ChJIR Chinese Journal of Infrared Research", "ChJLB Chinese Journal of Lasers B", "ChJL. Chinese Journal of Lasers", "ChJME Chinese Journal of Mechanical Engineering", "ChJNP Chinese Journal of Nuclear Physics", "ChJOL Chinese Journal of Oceanology and Limnology", "ChJPh Chinese Journal of Physics", "ChJS. Chinese Journal of Semiconductors", "ChJSS Chinese Journal of Space Science", "Chmsp Chemosphere", "ChNew Chandra News", "CHOCS CHOCS", "ChOE. China Ocean Engineering", "ChOpL Chinese Optics Letters", "ChPAS Republic of China National Science Council Proceedings Applied Sciences", "ChPhB Chinese Physics B", "ChPhC Chinese Physics C", "ChPhL Chinese Physics Letters", "ChPhy Chinese Physics", "ChRST China Rept Sci Technol JPRS CST", "ChRv. Chemical Reviews", "ChSAJ Chinese Society of Astronautics Journal", "ChSBu Chinese Science Bulletin", "ChSMJ Chinese Society of Mechanical Engineers Journal", "Chsph Chemosphere", "ChSST Chinese Space Science Technology", "CiARI Circular of the Astronomisches Recheninstitut", "CiBAA Circular of the British Astronomical Association", "CIBu. COSPAR Information Bulletin", "CIDA. CIDA", "Ciel. Le Ciel", "CiInf Circ. Inf.", "CiPoJ Circumpolar Journal", "CIPSG Canadian Information Processing Society Graphics Interface", "CiSSV Circolare Interna della Sezione Stelle Variabili dell'Unione Astrofili Italiani", "CITM. Chubu Institute Technology Memoirs", "CiUO. Circular of the Union Observatory Johannesburg", "CJChE Canadian Journal of Chemical Engineering", "CJECE Canadian Journal of Electrical Computer Engineering", "CJLTP Chinese Journal of Low Temperature Physics", "CJRes Canadian Journal of Research", "CJSMT Canadian Journal of Science Mathematics and Technology Education", "CKH.. Chagyo Kenkyu Hokoku (Tea Research Journal)", "ClCh. Climatic Change", "ClDy. Climate Dynamics", "CLic2 Contributions of Lick Observatory, Series II", "CliPa Climate of the Past", "CliPD Climate of the Past Discussions", "ClMin Clay Minerals", "ClRes Climate Research", "CLS.. Curved and Layered Structures", "CMAME Computer Methods in Applied Mechanics and Engineering", "CMaPh Communications in Mathematical Physics", "CMDRG Chislennye Metody Dinamike Razrezhennykh Gazov", "CMMPh Computational Mathematics and Mathematical Physics", "CmpEn Composites Engineering", "CmPhy Communications Physics", "CMPhy Condensed Matter Physics", "Cmplx Complexity", "CmpMa Composites Manufacturing", "CMPNC Cambridge Monographs on Particle Physics, Nuclear Physics and Cosmology", "CMPPh Cambridge Monographs on Plasma Physics", "CmpSt Composite Structures", "CMT.. Continuum Mechanics and Thermodynamics", "CMwA. Computers and Mathematics with Applications", "CMWCI Contributions from the Mount Wilson Observatory / Carnegie Institution of Washington", "CNan. Current Nanoscience", "CNME. Communications in Numerical Methods in Engineering", "CNRAe CNR Aeritalia S", "CNSMP Comet News Service, McDonnell Planetarium", "CNSNS Communications in Nonlinear Science and Numerical Simulations", "CoAMP Comments on Atomic and Molecular Physics", "CoAnk Communications of the Department of Astronomy of Ankara University", "CoAsi Contributi dell'Osservatorio Astrofisica dell'Universita di Padova in Asiago", "CoASP Comments on Astrophysics and Space Physics", "CoAst Communications in Asteroseismology", "CoBAO Communications of the Byurakan Astrophysical Observatory", "CoBos Contributions from the Bosscha Observervatory", "CoBrn Contributions of the Public Observatory and Planetarium in Brno", "CoCam Contributions from the Cambridge Observatory England", "CoCMP Comments on Condensed Matter Physics", "CoCoi Comunicacoes do Observatonio Astronomico da Universidade de Coimbra", "CoCom Control and Computers", "CODAB CODATA Bulletin", "CoDAO Contributions from the Dominion Astrophysical Observatory in Victoria", "CoDDO Communications from the David Dunlap Observatory", "CoDun Contributions from the Dunsink Observatory Dublin Ireland", "Coel. Coelum Periodico Bimestrale per la Divulgazione dell'Astronomia", "CoFl. Combustion and Flame", "CoFra Consiglio Nazionale delle Ricerche Italia. Laboratorio di Astrofisica Frascati Roma Contributi", "CoGG. Contributions to Geophysics and Geodesy", "CogPh Cogent Physics", "CoIAP Contributions de l'Institut d'Astrophysique de Paris Serie A", "CoKit Contributions from the Kitt Peak National Observatory", "CoKon Commmunications of the Konkoly Observatory Hungary", "CoKwa Contributions from the Kwasan and Hida Observatories University of Kyoto", "CoKyo Contributions from the Institute of Astrophysics and Kwasan Observatory Kyoto", "CoLic Contributions of Lick Observatory", "CoLon Communications of the University of London Observatory", "CoLou Contributions of the Louisiana State University Observatory Baton Rouge Louisiana", "CoLPL Communications of the Lunar and Planetary Laboratory", "ColSu Colloids and Surfaces", "ComAC Computational Astrophysics and Cosmology", "ComAp Comments on Astrophysics", "CoMar Circulaires de l'Observatoire de Marseille", "CoMat Communications Materials", "ComBr Communication Broadcasting", "CoMcD Contributions from the McDonald Observatory University of Texas Fort Davis", "CoMil Contributions dell'Osservatorio Astrononia di Milano-Merate", "ComMP Comments in Modern Physics", "ComMS Computational Materials Science", "Commu Communications", "CoMP. Contributions to Mineralogy and Petrology", "ComPh Computers in Physics", "CompJ The Computer Journal", "CompM Computational Mechanics", "Compo Composites", "Compr Computer", "Compu Computing", "CoMRA Concepts in Magnetic Resonances A", "CoMRB Concepts in Magnetic Resonances B", "ComSE Computing Systems in Engineering", "ComSo Communications Society", "ComSp Commercial Space", "ComST Composites Science Technology", "COMTR COMSAT Technical Review", "ConAP Contributions to Atmospheric Physics/Beitraege zur Physik der Atmosphaere", "ConCP Contemporary Concepts in Physics", "CoNet Journal of Communications and Networks", "CONMS Contributions of the Observatory of New Mexico State University, Las Cruces Special Series", "ConPh Contemporary Physics", "CoNPP Comments on Nuclear and Particle Physics", "ConSc Connection Science", "CoOpt Computer Optics", "CoORB Communications de l'Observatoire Royal de Belgique", "COP.. Coherent Optical Phenomena", "CoPer Contributions of Perkins Observatory", "CoPhC Computer Physics Communications", "CoPhR Computer Physics Reports", "CoPPC Comments on Plasma Physics and Controlled Fusion", "CoPP. Contributions to Plasma Physics", "CoPri Contributions from the Princeton University Observatory", "CoROE Communications from the Royal Observatory Edinburgh", "CorRe Coral Reefs", "CoRSE Royal Society Edinburgh Communications Physical Sciences", "CoRut Contributions from the Rutherford Observatory of Columbia University New York", "CosEl Cosmic Electrodynamics", "CoSka Contributions of the Astronomical Observatory Skalnate Pleso", "CoSkL Contributions of the Astronomical Observatory Skalnate Pleso Letters", "CoSkS Contributions of the Astronomical Observatory Skalnate Pleso Supplement", "Cosmo COSMOS", "CosRe Cosmic Research", "CosSe Cosmic Search", "COSSM Current Opinion in Solid State and Materials Science", "CoStA Communications from the University Observatory St Andrews Scotland", "CoStr Computers and Structures", "CoThe Contributions from the Astronomical Department of the University of Thessaloniki", "CoTok Contributions from the Department of Astronomy University of Tokyo", "CoTol Contributions from the Cerro Tololo Inter-American Observatory", "CoTPh Communications in Theoretical Physics", "CoVVO Contributions of the Van Vleck Observatory", "CoWas Contributions from the Washburn Observatory of the University of Wisconsin", "CoWat Contributions of the University of Waterloo Observatory", "CPAM. Communications in Pure Applied Mathematics", "CP... Chemical Physics", "CPh.. Coherent Phenomena", "CPhD. Cape Photographic Durchmusterung", "CPL.. Chemical Physics Letters", "CPMCM Commentationes Physico-Mathematicae et Chemico-Medicae", "CPM.. Computational Particle Mechanics", "CPPM. Clinical Physics and Physiological Measurement", "CPR.. Chemical Physics Reports", "CPSS. Chemical Physics of Solid Surfaces", "CQGra Classical and Quantum Gravity", "CR2.. Academie des Sciences Comptes Rendus Serie Mecanique Physique Chimie Sciences de la Terre et de l Univers", "CRABS Comptes Rendus de l'Academie Bulgare des Sciences", "CRASA Academie des Sciences Paris Comptes Rendus Vie Academique Semester Supplement", "CRAS. Academie des Sciences Paris Comptes Rendus", "CRASB Academie des Sciences Paris Comptes Rendus Serie B Sciences Physiques", "CRASE Comptes Rendus de l'Acadé", "CRASG Academie des Sciences Paris Comptes Rendus Serie Generale La Vie des Sciences", "CRASM Academie des Sciences Paris Comptes Rendus Serie Sciences Mathematiques", "CRASP Academie des Sciences Paris Comptes Rendus Serie Physique Astrophysique", "CRB.. C.R. Acad. Sci. Ser. B1", "CR... Comptes Rendus Academie des Sciences (serie non specifiee)", "CRGeo Comptes Rendus Geoscience", "CRJS. Comptes Rendus sur les Journees de Strasbourg", "CRLJ. Communications Research Laboratory Journal", "CRLRv Communications Research Laboratory Review", "CRMat Comptes Rendus Mathematique", "CRMec Comptes Rendus Mecanique", "CRPhy Comptes Rendus Physique", "CRSPH Compte Rendu des Seances de la Societe de Physique et d'Histoire Naturelle de Geneve", "CRSSM Critical Reviews in Solid State & Materials Sciences", "Cryo. Cryogenics", "CryRp Crystallography Reports", "CSASG Contributions of the Slovak Academy Sciences Geophysical Institute", "CSci. Current Science", "CS&D. Computational Science and Discovery", "CSE.. Computing in Science and Engineering", "CSEd. Computer Science Education", "CSF.. Chaos Solitons and Fractals", "CSFX. Chaos Solitons and Fractals: X", "CSMA. Computational Structural Mechanics and Applications", "CSMPA Ankara University Faculty of Science Communications, Series A2-Ad Physical Sciences and Engineering", "CSPSE Ankara Universite Faculte des Sciences Communications Serie Mathematiques Physique et Astronomie", "CSR.. Continental Shelf Research", "CSSE. Cultural Studies of Science Education", "CSSP. Circuits Systems and Signal Processing", "CST.. Combustion Science and Technology", "C&T.. Ciel et Terre", "CTE.. Ciencias de la Tierra y del Espacio", "CTGeo Contemporary Trends in Geoscience", "CTM.. Combustion Theory and Modelling", "CTMPC Cambridge Topics in Mineral Physics and Chemistry", "CTmp. Connaissance des Temps", "CuCo. Culture and Cosmos", "CVGIP Computer Vision Graphics and Image Processing", "CzJPh Czechoslovak Journal of Physics", "CzJPS Czechoslovak Journal of Physics Supplement", "CzMJ. Czechoslovak Mathematical Journal", "DatSJ Data Science Journal", "Defek Defektoskopiia", "DefEl Defense Electronics", "DeHyZ Deutsche Hydrographische Zeitschrift", "DeScE Defense Science Electronics", "DFVLR DFVLR", "DGKBA Deutsche Geodaetische Kommission Bayer. Akad. Wiss.", "DGKBB Deutsche Geodaetische Kommission Bayer. Akad. Wiss. B", "DGKGN Deutsche Geodaetische Kommission Gravity Network West Germany DSGN Data Adjustment", "Dimen Dimensions", "DImTe Display Imaging Technology", "DIO.. DIO", "DiRaG Dinamika razrezhennykh gazov", "DISA. DISA Information", "Disc. Discover", "DISER Disciplinary and Interdisciplinary Science Education Research", "DiSis Dinamicheskie Sistemy", "Displ Displays", "DLGRM DLGR Magnetofluiddyn", "Dlib. D-Lib Magazine", "DLRNa DLR Nachrichten", "DMJ.. Defense Management Journal", "DnU.. Differentsialnye Uravneniia", "DoANT Doklady Akademiia Nauk TadzhSSR", "DoArm Akademiia Nauk Armianskoi SSR Doklady", "DoAze Akademiia Nauk Azerbaidzhanskoi SSR Doklady", "DoBan Doklady Bolgarskoi Akademiia Nauk", "DoBel Akademiia Nauk BSSR Doklady", "DOIAP Documentation des Observateurs Institut d'Astrophysique de Paris", "DokAN Doklady Akad Nauk Minerologia USSR", "DokES Doklady Earth Sciences", "DokPh Physics - Doklady", "DorPo Dornier Post", "DoSSR Akademiia Nauk SSSR Doklady", "DoTad Akademiia Nauk Tadzhikskoi SSR Doklady", "DoUkr Akademiia Nauk Ukrains koi RSR Dopovidi Seriia Fiziko Matematichni ta Tekhnichni Nauki", "DoUzb Akademiia Nauk Uzbekskoi SSR Doklady", "DPhyG Deutsche Physikalische Gesellschaft", "DPM.. Dinamika i Prochnost Mashin", "DRM.. Diamond and Related Materials", "DSCS. Dynamics and Statistics of the Climate System", "DSE.. Distributed Systems Engineering", "DSJ.. Defense Science Journal", "DSNPR Deep Space Network Progress Report", "DSO.. Double Star Observer", "DSP.. Digital Signal Processing", "DSRA. Deep Sea Research A", "DSRB. Deep Sea Research B", "DSR.. Deep Sea Research", "DSRI. Deep Sea Research Part I: Oceanographic Research", "DSRII Deep Sea Research Part II: Topical Studies in Oceanography", "DSRMC Defense Systems Review Military Communications", "DSROA Deep Sea Research and Oceanographic Abstracts", "DSSC. Double Star Section Circulars", "DSSN. Delta Scuti Star Newsletter", "DudOR Dudley Observatory Reports", "DunOP Dunsink Observatory Publications", "DunRe Dunsink Observatory Reprints", "DWES. Drinking Water Engineering and Science", "DyAtO Dynamics of Atmospheres and Oceans", "DynCo Dynamics and Control", "EaEvS Earth and Evolution Sciences", "EaFut Earth's Future", "EaInt Earth Interactions", "EartD eEarth Discussions", "Earth eEarth", "EaSci Earthquake Science", "EBBT. Emerging Biochemical and Biophysical Techniques", "EBCi. Eclipsing Binaries Circulars", "E&C.. Electronics and Communications", "EcGH. Eclogae geologae Helvetii", "EcGou Ecole de Goutelas", "ECLRv Electrical Communication Laboratories Review", "ECM.. Energy Conversion Management", "ECMS. Estuarine and Coastal Marine Science", "ECSS. Estuarine Coastal and Shelf Science", "E&E.. Elektromashinostroenie i Elektrooborudovanie", "EEEV. Earthquake Engineering and Engineering Vibration", "EERSA East Europe Rept Sci Affairs JPRS", "EERST East European Rept Sci. Technol. JPRS ESA", "EES.. Environmental Earth Sciences", "EET.. Electrochemical Energy Technology", "EExSc Earth and Extraterrestrial Sciences", "EFM.. Environmental Fluid Mechanics", "EGSGA E&", "EIUEN ESA IUE Newsletter", "EJASP EURASIP Journal on Applied Signal Processing", "EJCM. European Journal of Computational Mechanics", "EJEE. European Journal of Engineering Education", "EJMF. European Journal of Mechanics B Fluids", "EJMin European Journal of Mineralogy", "EJMS. European Journal of Mechanics Solids", "EJPh. European Journal of Physics", "EJSE. European Journal of Science Education", "EJSM. e-Journal of Soft Materials", "EJSta Electronic Journal of Statistics", "EJTP. Electronic Journal of Theoretical Physics", "Elast Elastic", "ElBah Elektrische Bahnen", "Elecm Electromagnetics", "Elek. Elektronika", "Eleme Elements", "Elem. Elektromekhanika", "EL... EPL (Europhysics Letters)", "EleSt Electronic Structure", "ElLC. Electrotechnical Laboratory Circulars", "ElL.. Electronics Letters", "ElMod Elektronnoe Modelirovanie", "ElP.. Electronics Power", "ElPro Electronic Progress", "ElTA. Elektronnaia Tekhnika Avtomatike", "ElUn. El Universo", "ElW.. Electrowaerme International", "EMCT. EMC Technology", "E&M.. Elektrotechnik und Maschinenbau", "eMetN eMeteorNews", "EML.. Electronic Materials Letters", "EM&P. Earth Moon and Planets", "EnAt. Energia es Atomtechnika", "EnC.. Energy Conversion", "Endvr Endeavour", "EnEng Environmental Engineering", "Energ Energetika", "ENews Europhysics News", "EnFM. Engineering Fracture Mechanics", "EngAn Engineering Analysis", "EngCo Engineering Computations", "EnGeo Environmental Geology", "EnMan Environmental Management", "EnOp. Engineering Optimization", "EnSci Engineering and Science", "EnST. Environmental Science and Technology", "EntIS Enterprise Information Systems", "EnTR. Energy Technology Review", "Entro Entropie", "Entrp Entropy", "EnUK. Energy", "EOAST Earth-Oriented Applications and Space Technology", "EObsC Einstein Observatory Catalog of IPC X-ray Sources", "EOSD. Electro Optical Systems Design", "EOSTr EOS Transactions", "EPJA. European Physical Journal A", "EPJAM EPJ Applied Metamaterials", "EPJAP European Physical Journal Applied Physics", "EPJAS European Physical Journal A Supplement", "EPJB. European Physical Journal B", "EPJC. European Physical Journal C", "EPJCS European Physical Journal C Supplement", "EPJD. European Physical Journal D", "EPJE. European Physical Journal E", "EPJH. European Physical Journal H", "EPJNS EPJ Nuclear Sciences &", "EPJP. European Physical Journal Plus", "EPJPv EPJ Photovoltaics", "EPJQT EPJ Quantum Technology", "EPJST European Physical Journal Special Topics", "E&PP. Earth and Planetary Physics", "EPRIJ EPRI Journal", "EPSC. European Planetary Science Congress", "EP&S. Earth, Planets, and Space", "E&PSL Earth and Planetary Science Letters", "eRad. eRadiant, Journal of the Dutch Meteor Society", "ERCom Environmental Research Communications", "ER... Environmental Research", "ERExp Engineering Research Express", "ERL.. Environmental Research Letters", "ErNW. Ergebnisse der exakten Naturwissenschaften", "ERST. Europe Report Science Technology", "ESABu ESA Bulletin", "ESAHR ESA History Study Reports", "ESAJ. ESA Journal", "ESASM ESA Scientific & Technical Memoranda", "ESAST ESA Scientific Technical Review", "ESATM ESA Training Manual", "ESC.. ACS Earth and Space Chemistry", "ESDD. Earth System Dynamics Discussion", "ESD.. Earth System Dynamics", "E&S.. Earth in Space", "ESE.. Earth Systems and Environment", "ESF.. Earth Science Frontiers", "ESIL. Eruptive Stars Information Letter", "ESN.. European Science Notes", "ESOB. European Southern Observatory ESO Bulletin", "ESOSP European Southern Observatory Scientific Preprints", "ESOSR European Southern Observatory Scientific Report", "ESPL. Earth Surface Processes and Landforms", "ESRv. Earth Science Reviews", "ESSDD Earth System Science Data Discussions", "ESSD. Earth System Science Data", "E&SS. Earth and Space Science", "ESSFR IEICE ESS Fundamentals Review", "EssPh Essays in Physics", "ESuDD Earth Surface Dynamics Discussions", "ESuD. Earth Surface Dynamics", "ETATF Eesti NSV Teaduste Akadeemia Toimetised Fuusika Matemaatika", "ETRE. Elektrosviaz Telecommunications Radio Engineering Telecommunications", "ETTRT European Transactions Telecommunications Related Technologies", "ETWQ. Environmental Toxicology and Water Quality", "EUCAS EUCASS Proceedings Series", "EURPE EUREKA: Physics and Engineering", "EurSS Eurasian Soil Science", "EuRv. European Review", "EVest Elektrotehniski Vestnik", "ExA.. Experimental Astronomy", "ExFl. Experiments in Fluids", "ExG.. Exploration Geophysics", "ExHT. Experimental Heat Transfer", "ExM.. Experimental Mechanics", "EXOSA EXOSAT Express", "ExT.. Experimental Techniques", "ExTFS Experimental Thermal Fluid Science", "Extr. Extraction", "FACM. Functiones et Approximatio Commentarii Mathematici", "FaDi. Faraday Discussions", "FaTr. Faraday Transactions", "FBS.. Few-Body Systems", "FCPh. Fundamentals of Cosmic Physics", "F&CRe Flower and Cook Observatory Reprints", "FCS.. Functional Composites and Structures", "FFEMS Fatigue and Fracture of Engineering Materials and Structures", "F&IER Forschung im Ingenieurwesen Engineering Research", "F&I.. Forschung im Ingenieurwesen", "FiIO. Fiber and Integrated Optics", "FiMek Fizicheskaia Mekhanika", "FiMos Akademiia Nauk SSSR Otdelenie Obshchei Fiziki i Astronomii Nauchnaia Sessiia Moscow USSR Uspekhi Fizicheskikh Nauk", "FiSSR Akademiia Nauk Tadzhikskoi SSR Fiziko Tekhnicheskii Institut Dyushambe Tadzhik SSR Akademiia Nauk Tadzhikskoi SSR Doklady", "FiUkr Akademiia Nauk Ukrain skoi RSR Dopovidi Seriia Fiziko Matematichni ta Tekhnichni Nauki", "FizA. Fizika A", "FizAO Akademiia Nauk SSSR Fizika Atmosfery i Okeana", "FizAS Fizika Aerodispersnykh Sistem", "FizB. Fizika B", "FizCh Fizyki i Chemii Seria Fizyka", "FizEl Fizicheskaia Elektronika", "Fiz.. Fizika", "FizGV Fizika Goreniia i Vzryva", "FizKM Fiziko Khimicheskaia Mekhanika Materialov", "FizKO Fizika i Khimiia Obrabotki Materialov", "FizMM Fizika Metallov i Metallovedenie", "FizMS Fizika Mnogochastichnykh Sistem", "FizNT Fizika Nizkikh Temperatur", "FizPl Fizika Plazmy", "FizSz Fizika Sz.", "FizTT Fizika Tverdogo Tela", "FizTV Fizika i Tekhnika Vysokikh Davlenii", "FizZS Fizika Zhidkogo Sostoianiia", "FlDy. Fluid Dynamics", "FlDyR Fluid Dynamics Research", "FlDyT Fluid Dynamics Transactions", "FlMSR Fluid Mechanics Soviet Research", "Fluid Fluidika", "FluQ. Fluids Quarterly", "FMEC. Frontiers of Mechanical Engineering in China", "F&M.. Feinwerktechnik und Messtechnik", "FML.. Functional Materials Letters", "FNCN. Fullerene Nanotubes and Carbon Nanostructures", "FNL.. Fluctuation and Noise Letters", "FoGeo Fotointerpretacja w Geografii", "FoPh. Foundations of Physics", "FoPhL Foundations of Physics Letters", "ForPh Fortschritte der Physik", "ForPW Fortschritte der Physikalischen Wissenschaften", "Fract Fractals", "FrASS Frontiers in Astronomy and Space Sciences", "FrCh. Frontiers in Chemistry", "FrEaS Frontiers in Earth Science", "Freq. Frequenz", "FrES. Frontiers of Earth Science", "FRFI. Flug Revue Flugwelt International", "FrInJ Journal of The Franklin Institute", "FrMat Frontiers in Materials", "FrME. Frontiers of Mechanical Engineering", "FrMS. Frontiers of Materials Science", "FrP.. Frontiers in Physics", "FrPhC Frontiers of Physics in China", "FrPhy Frontiers of Physics", "FST.. Fullerene Science and Technology", "FSTJ. Fujitsu Scientific Technical Journal", "FTC.. Flow, Turbulence and Combustion", "FTP.. Fundamental Theories of Physics", "Fut.. Futures", "Futur Future Spring", "Gaea. Gaea - Journal of Geoscience", "GAe.. Geomagnetizm i Aeronomiia", "Galax Galaxies", "GalEl Galilean Electrodynamics", "galx.pGALEX Proposal", "GAM.. Geophysics and Astrophysics Monographs", "GaMuM Gesellschaft Angewandte Mathematik und Mechanik Workshop Paris France", "GApFD Geophysical and Astrophysical Fluid Dynamics", "GAst. Giornale di Astronomia", "GATAN Gesellschaft Aerosolforschung Tagung ueber Aerosole Naturwissenschaft Medizin und Technik Messtechnik und technische Anwendung", "GazA. Gazette Astronomique", "GazAM Gazette Astronomique Memoires", "GazT. Gazodinamika i Teploobmen", "GBioC Global Biogeochemical Cycles", "GBzG. Gerlands Beitraege zur Geophysik", "GCarp Geologica Carpathica", "GCBio Global Change Biology", "GCN1. GRB Coordinates Network", "GCN2. GRB Coordinates Network", "GCNew Galactic Center Newsletter", "GCN.. GRB Coordinates Network", "GCNR. GCN Report", "GCRV. Carnegie Institute Washington D.C. Publication", "GDS.. Geophysical Developments Series", "Ge&Ae Geomagnetism and Aeronomy", "GeAer Geodeziia i Aerofotos", "GeCar Geodesy and Cartography", "GeCAS Geochimica et Cosmochimica Acta Supplement", "GeChr Geochronology", "GECJR GEC Journal Research", "GeCoA Geochimica et Cosmochimica Acta", "GeGe. Geophysica et Geodaetica", "GeIss Geoinformation Issues", "GeKaA Geodeziia Kartografiia i Aerofotos", "GeKar Geodeziia i Kartografiia", "Gelio Geliotekhnika", "Gemin GEMINI Newsletter Royal Greenwich Observatory", "Gen1K Observatoire de Geneve", "GeoAc Geodinamica Acta", "GEOCA GEOS Circular on Small-Amplitude Variables", "GEOCE GEOS Circular on Eclipsing Binaries", "Geoch Geochemistry", "GeocI Geochemistry International", "GeocJ Geochemical Journal", "GEOCR GEOS Circular on RR Lyr Type Variables", "GEOCS Semi-Regular Variables", "Geode Geofisica Internacional", "GeofI Geofisica Internacional", "Geo.. Geology", "GeoGl Geodetski Glasnik", "GeoIn Geocarto International", "GeoIs Geomagnitnye Issledovaniia", "GeoJ. Geophysical Journal", "GeoJI Geophysical Journal International", "GeoK. Geodezja i Kartografia", "Geokh Geokhimiia", "Geolg Geologos", "Geolo Geologija", "Geoma Geomatik", "GeoM. Geological Magazine", "Geomo Geomorphology", "GeoNr Geophysica Norvegica", "GeoOD Geology of Ore Deposits", "GeoPA Geofisica Pura e Applicata", "Geop. Geophysics", "Geoph Geophysica", "GeopP Geophysical Prospecting", "GeoRL Geophysical Research Letters", "GeoRu Geologische Rundschau", "GeoSb Geofizicheskii Sbornik", "Geosc Geosciences", "GeoSJ Geological Society Journal", "GEOSN GEOS Note Circulaire", "Geosp Geosphere", "GeosR Geoscience Records", "GeoSu Geophysical Surveys", "Geote Geotectonics", "Geot. Geotimes", "Geoth Geothermics", "GeoZh Geofizicheskii Zhurnal", "Gerb. Gerbertvs, International Academic Publication on History of Medieval Science", "GescJ Geosciences Journal", "GGG.. Geochemistry, Geophysics, Geosystems", "GGMit Gauss-Gesellschaft e.V. Gö", "GGMM. Greenhouse Gas Measurement & Management", "GID.. Geoscientific Instrumentation, Methods and Data Systems Discussions", "Gidro Gidromekhanika", "GI... Geoscientific Instrumentation, Methods and Data Systems", "GiGi. Gidroprivod i Gidropnevmoavtomatika", "GIPol Geoinformatica Polonica", "GiSan Gigiena i Sanitariia", "GKA.. Geodeziia i Kartografiia Aehrofotosemka, L'vov", "GMDD. Geoscientific Model Development Discussions", "GMD.. Geoscientific Model Development", "GML.. Geo-Marine Letters", "GMMWJ Gesellschaft angewandte Mathematik und Mechanik Jahrestagung Goettingen West Germany Zeitschrift Flugwissenschaften", "GMS.. Washington DC American Geophysical Union Geophysical Monograph Series", "GMuD. Gesellschaft Mathematik und Datenverarbeitung mbH Multigrid Methods Special Topics Applications", "GOAM. Greenwich Observations in Astronomy, Magnetism and Meteorology made at the Royal Observatory, Series 3", "GOAMM Greenwich Observations in Astronomy, Magnetism and Meteorology made at the Royal Observatory, Series 2", "GondR Gondwana Research", "GORO. Greenwich Observations made at the Royal Observatory", "GPC.. Global and Planetary Change", "GPSW. GPS World", "GrAeH Grumman Aerospace Horizons", "GrCo. Gravitation and Cosmology", "GReGr General Relativity and Gravitation", "GriO. Griffith Observer", "gr.qc arXiv General Relativity and Quantum Cosmology e-prints", "GrTOn Gravitatsiia i Teoriia Otnositelnosti", "Grund Grundwasser", "GSAB. Geological Society of America Bulletin", "GSAMm Geological Society of America Memoir", "GSASP Geological Society of America Special Papers", "GSDJ. Geoscience Data Journal", "GSEng GeoScience Engineering", "GSL.. Geoscience Letters", "GSLSP Geological Society of London Special Publications", "GTES. Geothermal Energy Science", "GTPZ. Gigiena Truda i Professionalnye Zabolevaniia", "GUL.. Geschichte und Lichtwechsel der Veraenderlichen Sterne (Potsdam)", "GVMK. Gibridnye Vychislitelnye Mashiny i Kompleksy", "HAAG. Handbook of Astronomy Astrophysics and Geophysics", "HadJ. Hadronic Journal", "HadJS Hadronic Journal Supplement", "HamS. Hamburger Sternwarte Sonderdrucke", "HarAC Harvard College Observatory Announcement Card", "HarCi Harvard College Observatory Circular", "HarMo Harvard Observatory Monographs", "HarOR Report of the Committee of the Overseers of Harvard College appointed to visit the Observatory", "HarRe Harvard College Observatory Reprints", "HARSB Histoire de l'Academie Royale des Sciences et des Belles-Lettres de Berlin", "HarZi Harthaer Beobachtungs-Zirkular", "HCHy. Hovering Craft and Hydrofoil", "HDA.. Handbuch der Astrophysik", "HDP.. Handbuch der Physik", "HDSTS Herald of Dagestan State Technical University Technical Sciences", "HeaPh Health Physics", "Heavn Heavens", "HEDP. High Energy Density Physics", "HelOB Helwan Institute of Astronomy and Geophysics Bulletins", "HelR. Observatory and Astrophysics Laboratory University of Helsinki Report", "HemD. Hemel en Dampkring", "hep.exarXiv High Energy Physics - Experiment e-prints", "hep.laarXiv High Energy Physics - Lattice e-prints", "HEPNP High Energy Physics and Nuclear Physics", "hep.pharXiv High Energy Physics - Phenomenology e-prints", "hep.tharXiv High Energy Physics - Theory e-prints", "HESSD Hydrology and Earth System Sciences Discussions", "HESS. Hydrology and Earth System Sciences", "HFC.. Hydrogen and Fuel Cells", "HGSS. History of Geo- and Space Sciences", "HiA.. Highlights of Astronomy", "HisSc History of Science", "HiTec High Technology", "HMR.. Helgoland Marine Research", "HMT.. Heat and Mass Transfer", "Holoc The Holocene", "HPCRE Handbook on the Physics and Chemistry of Rare Earths", "HPR.. High Pressure Research", "HRL.. Hydrological Research Letters", "HTemS High Temperature Science", "HTHP. High Temperatures and High Pressures", "HTJR. Heat Transfer Japanese Research", "HTMP. High Temperature Materials and Processes", "HTrEn Heat Transfer Engineering", "HTSR. Heat Transfer Soviet Research", "HUFEB Hokkaido University Faculty Engineering Bulletin", "HUFEM Hokkaido University Faculty Engineering Memoirs", "HvaOB Hvar Observatory Bulletin", "HvOBS Hvar Observatory Bulletin Supplement", "HWM.. Helgolä", "HWP.. Horizons in World Physics", "HyBio Hydrobiologia", "HydJ. Hydrogeology Journal", "HyInt Hyperfine Interactions", "HyPr. Hydrological Processes", "IA&A. Ingenieria Aeronautica y Astronautica", "IadEn Iadernaia Energiia", "IAESM IEEE Aerospace Electronic Systems Magazine", "IAFET Instituto de Astronomia y Fisica del Espacio Buenos Aires", "IAIss Istoriko-Astronomicheskie Issledovaniya", "IAL1K Institut d'Astronomie de Lausanne", "IAM.. International Applied Mechanics", "IANT. International Advances in Nondestructive Testing", "IAOIT Informo of the Astronomia-Optika Institucio, Universitato de Turku", "IAPM. IEEE Antennas and Propagation Magazine", "IAPPP International Amateur-Professional Photoelectric Photometry Communications", "IASSP IEEE ASSP Magazine", "IAUCB IAU Commission on Close Binary Stars", "IAUC. International Astronomical Union Circular", "IAUDS IAU Commission on Double Stars", "IAUFM IAU Focus Meeting", "IAUGA IAU General Assembly", "IAUIB IAU Information Bulletin", "IAUIn IAU Commission on Instruments", "IAUSS IAU Special Session", "IAUTA Transactions of the International Astronomical Union, Series A", "IAUTB Transactions of the International Astronomical Union, Series B", "IAWPL IEEE Antennas and Wireless Propagation Letters", "IBCP. An International Journal at the Interface Between Chemistry and Physics", "IBMJ. IBM Journal of Research and Development", "IBSAE Sovetskaia Antarkticheskaia Ekspeditsiia Informatsionnyi Byulleten", "IBSH. Informational Bulletin of the Southern Hemisphere", "IBUAA Informational Bulletin of the Ukrainian Astronomical Association", "IBVS. Information Bulletin on Variable Stars", "ICAOB ICAO Bulletin", "Icar. Icarus", "ICGA. IEEE Computer Graphics Applications", "ICHIN Newsletters of the Interdivisional Commission on History of the IAGA", "ICHMT International Communications in Heat and Mass Transfer", "ICiSM IEEE Circuits Systems Magazine", "ICML. International Conference on Machine Learning", "IComM IEEE Communications Magazine", "ICQ.. International Comet Quarterly", "ICSE. Impact of Computing in Science and Engineering", "ICSEn IEEE Computational Science and Engineering", "ICSM. IEEE Computer Systems Magazine", "IDAQP Infinite Dimensional Analysis, Quantum Probability and Related Topics", "IDTC. IEEE Design Test Computers", "IEDL. IEEE Electron Device Letters", "IEEEN IEEE Network", "IEEEP IEEE Proceedings", "IEEES IEEE Spectrum", "IEEP. Institution of Electrical Engineers Proceedings", "IEERv IEE Reviews", "IEITC IEICE Transactions on Communications", "IEITE IEICE Transactions on Electronics", "IEITF IEICE Transactions on Fundamentals of Electronics Communications and Computer Sciences", "IEITI IEICE Transactions on Information and Systems", "IEREJ Institution of Electronic Radio Engineers Journal", "IER.. Internationale Elektronische Rundschau", "IESJ. IES Journal", "IETE. Institution of Electronics Telecommunication Engineers", "IET.. Instruments and Experimental Techniques", "IEWS. Stevenage Herts England Peter Peregrinus Ltd IEE Electromagnetic Waves Series", "IExp. IEEE Expert", "IFBel Akademiia Nauk Belorusskoi SSR Institut Fiziki Nauchnaia Sessiia Minsk Belorussian SSR Zhurnal Prikladnoi Spektroskopii", "IGAFS Issledovaniia Geomagnetizmu Aeronomii i Fizike Solntsa", "IGRSL IEEE Geoscience and Remote Sensing Letters", "IGRv. International Geology Review", "IGS.. Orlando FL Academic Press Inc International Geophysics Series", "IHERv Ishikawajima Harima Engineering Review", "IHWN. IHW Newsletter", "IIApN Indian Institute of Astrophysics Newsletter", "IINA. Istituto Italiano di Navigazione Atti", "IISys IEEE Intelligent Systems", "IJAA. International Journal of Astronomy and Astrophysics", "IJACS International Journal of Adaptive Control and Signal Processing", "IJAdA International Journal of Adhesion Adhesives", "IJAEM International Journal of Analytical and Experimental Modal Analysis", "IJAEO International Journal of Applied Earth Observation and Geoinformation", "IJA.. International Journal of Astronomy", "IJAIS International Journal of Applied Information Systems", "IJAME International Journal of Applied Mechanics and Engineering", "IJAM. International Journal of Applied Mechanics", "IJAP. IOSR Journal of Applied Physics", "IJART International Journal of Advancements in Research &", "IJAsB International Journal of Astrobiology", "IJASE International Journal of Advanced Structural Engineering", "IJASS International Journal of Aeronautical and Space Sciences", "IJBB. International Journal of Bioclimatology Biometeorology", "IJBC. International Journal of Bifurcation and Chaos", "IJBm. International Journal of Biometeorology", "IJCA. International Journal of Computer Applications", "IJCAT International Journal of Computer Applications and Technology", "IJCEM International Journal for Computational Methods in Engineering Science and Mechanics", "IJCFD International Journal of Computational Fluid Dynamics", "IJC.. International Journal of Control", "IJCli International Journal of Climatology", "IJCMB International Journal of Computer Mathematics Section B", "IJCMS International Journal of Computational Materials Science and Engineering", "IJDE. International Journal of Digital Earth", "IJDM. International Journal of Damage Mechanics", "IJEaS International Journal of Earth Sciences", "IJEEP International Journal of Emerging Electric Power Systems", "IJEFM International Journal of Engineering and Fluid Mechanics Spring", "IJEG. International Journal of Engineering and Geosciences", "IJE.. International Journal of Electronics", "IJEnR International Journal of Environmental Research", "IJERA International Journal of Enginnering Research and Applications", "IJER. International Journal of Energy Research", "IJES. International Journal of Engineering Science", "IJESS IEEE Journal on Exploratory Solid-State Computational Devices and Circuits", "IJEST IEEE Journal on Emerging and Selected Topics in Circuits and Systems", "IJFa. International Journal of Fatigue", "IJFD. International Journal of Fluid Dynamics", "IJFE. International Journal of Fusion Energy", "IJFr. International Journal of Fracture", "IJGA. International Journal of Geomagnetism and Aeronomy", "IJGeo International Journal of Geophysics", "IJGI. ISPRS International Journal of Geo-Information", "IJG.. International Journal of Geosciences", "IJGMM International Journal of Geometric Methods in Modern Physics", "IJGNP International Journal of Green Nanotechnology Physics and Chemistry", "IJGS. International Journal of General Systems", "IJHE. International Journal of Hydrogen Energy", "IJHFF International Journal of Heat and Fluid Flow", "IJHM. International Journal of Hybrid Microelectronics Fall", "IJHMT International Journal of Heat and Mass Transfer", "IJIDF International Journal of Image and Data Fusion", "IJIE. International Journal of Impact Engineering", "IJIMW International Journal of Infrared and Millimeter Waves", "IJIST International Journal of Imaging Systems Technology", "IJMES International Journal of Mathematical Education in Science and Technology", "IJMF. International Journal of Multiphase Flow", "IJMHG Indian Journal of Meteorology Hydrology and Geophysics", "IJMIP International Journal of Mass Spectrometry and Ion Physics", "IJMMC IEEE Journal on Multiscale and Multiphysics Computational Techniques", "IJMMD International Journal of Mechanics and Materials in Design", "IJMM. International Journal of Mini Microcomputers", "IJMMM International Journal of Minerals, Metallurgy, and Materials", "IJMoS International Journal of Modelling and Simulation", "IJMPA International Journal of Modern Physics A", "IJMPB International Journal of Modern Physics B", "IJMPC International Journal of Modern Physics C", "IJMPD International Journal of Modern Physics D", "IJMPE International Journal of Modern Physics E", "IJMQE International Journal of Metrology and Quality Engineering", "IJMSE International Journal of Mars Science and Exploration", "IJMSI International Journal of Mass Spectrometry and Ion Processes", "IJMS. International Journal of Mechanical Sciences", "IJMSp International Journal of Mass Spectrometry", "IJMW. International Journal of Mine Water", "IJNA. IMA Journal of Numerical Analysis", "IJNAM International Journal for Numerical and Analytical Methods in Geomechanics", "IJNAO International Journal of Naval Architecture and Ocean Engineering", "IJN.. International Journal of Nanoscience", "IJNLM International Journal of Non Linear Mechanics", "IJNME International Journal for Numerical Methods in Engineering", "IJNMF International Journal for Numerical Methods in Fluids", "IJNS. International Journal of Neural Systems", "IJNT. International Journal of Nanotechnology", "IJOE. IEEE Journal of Oceanic Engineering", "IJO.. International Journal of Optomechatronics", "IJOpt International Journal of Optics", "IJPAM Indian Journal of Pure and Applied Mathematics", "IJPAP Indian Journal of Pure and Applied Physics", "IJP.. International Journal of Plasticity", "IJPRS International Journal of Photogrammetry and Remote Sensing", "IJQC. International Journal of Quantum Chemistry", "IJQE. IEEE Journal of Quantum Electronics", "IJQI. International Journal of Quantum Information", "IJRA. IEEE Journal of Robotics Automation", "IJRAI International Journal of Radiation Applications and Instrumentation D Nuclear Tracks and Radiation Measurements", "IJRFI IEEE Journal of Radio Frequency Identification", "IJRPC International Journal for Radiation Physics and Chemistry", "IJRR. International Journal of Robotics Research", "IJRS. International Journal of Remote Sensing", "IJRSP Indian Journal of Radio and Space Physics", "IJSAC IEEE Journal on Selected Areas in Communications", "IJScA International Journal of Supercomputer Applications", "IJSC. International Journal of Satellite Communications", "IJSEd International Journal of Science Education", "IJSE. International Journal of Solar Energy", "IJSMD International Journal for Simulation and Multidisciplinary Design Optimization", "IJSME International Journal of Science and Mathematics Education", "IJSNM International Journal of Smart and Nano Materials", "IJSSC IEEE Journal of Solid-State Circuits", "IJSS. International Journal of Solids and Structures", "IJSTA IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing", "IJSTQ IEEE Journal of Selected Topics in Quantum Electronics", "IJSyS International Journal of Systems Science", "IJTFM IEEJ Transactions on Fundamentals and Materials", "IJTIA IEEJ Transactions on Industry Applications", "IJT.. International Journal of Thermophysics", "IJTJE International Journal of Turbo and Jet Engines", "IJTPE IEEJ Transactions on Power and Energy", "IJTP. International Journal of Theoretical Physics", "IJTSM IEEJ Transactions on Sensors and Micromachines", "ILCSM IEEE LCS Magazine", "IllOB Bulletin of the Astronomical Observatory of the University of Illinois", "ILOMP Publications of the International Latitude Observatory at Mizusawa", "ILSJ. International Lunar Society Journal", "ILTS. IEEE LTS", "IMA.. Institute for Mathematics and Its Applications", "IMeRv International Metals Reviews", "IMGWL IEEE Microwave and Guided Wave Letters", "IMMag IEEE Microwave Magazine", "IMPA. Interscience Monographs in Physics and Astronomy", "IMRv. International Materials Reviews", "imsd.cIEEE MTT-S International Microwave Symposium Digest", "InAgr International Agrophysics", "InASP Indian Academy of Sciences Proceedings Section", "INASR INASAN Science Reports", "InCh. Inorganic Chemistry", "InEPS Indian Academy of Sciences Proceedings: Earth and Planetary Sciences", "InES. Indian Academy of Sciences Proceedings: Section C Engineering Sciences", "InfCo Information Control", "InfD. Information Display", "InFiZ Inzhenerno Fizicheskii Zhurnal", "InfPh Infrared Physics", "InFuJ Institute Fuel Journal", "IngAr Ingenieur Archiv", "Ingeg Ingegneria", "InGeo International Geophysics Series", "INGN. The Newsletter of the Isaac Newton Group of Telescopes", "InISA Indian Institute of Science Journal of Aeronautical Society of India", "InISJ Indian Institute of Science Journal", "InJAE Indian Journal of Aerospace Engineering Division", "InJET Indian Journal of Electronics Telecommunication Engineering Division", "InJHS Indian Journal of the History of Science", "InJME Indian Journal of Mechanical Engineering Division", "InJPA Indian Journal of Physics Section A", "InJPB Indian Journal of Physics Section B", "InJPh Indian Journal of Physics", "InJP. Indian Journal of Physics and Proceedings of the Indian Assocatiation for the Cultivation of Science", "InJTP Indian Journal of Theoretical Physics", "INL.. International Nano Letters", "InLoP Instytut Lotnictwa Prace", "InMat Inventiones Mathematicae", "InMPP Instytut Maszyn Przeplywowych Prace", "InMS. Indian Academy of Sciences Proceedings Mathematical Sciences", "InPhT Infrared Physics and Technology", "INSAP Indian National Science Academy Proceedings Supplement", "IntaC Inta Conie", "Inter Interavia", "INTMK Itogi Nauki i Tekhniki Seriia Meteorologiia i Klimatologiia", "INTSA Itogi Nauki i Tekhniki Seriia Astronomiia", "INTSF Itogi Nauki i Tekhniki Seriia Fizika Plazmy", "INTSI Itogi Nauki i Tekhniki Seriia Issledovanie Kosmicheskogo Prostranstva", "IntSM Interavia Space Markets", "INTSO Itogi Nauki i Tekhniki Seriia Okeanologiia", "INTSR Itogi Nauki i Tekhniki Seriia Radiotekhnika", "INTSS Itogi Nauki i Tekhniki Seriia Sovremennye Problemy Matematiki", "INTSV Itogi Nauki i Tekhniki Seriia Vozdushnyi Transport", "InvPr Inverse Problems", "IonIs Ionosfernye Issledovaniia", "Iono. Ionosphere", "IORAS Anuario publicado pelo Imperial Observatorio do Rio de Janeiro Suplemento", "IPAUC INTERKOSMOS Prague Astronomicky Ustav Ceskoslovenske Akademie Ved", "IPBS. Isotopes in the Physical and Biomedical Sciences", "IPCDT IEE Proceedings E: Computers and Digital Techniques", "IPCI. IEEE Press Series on Computational Intelligence", "IPCRS IEE Proceedings F: Communications Radar and Signal Processing", "IPCSV IEE Proceedings: Communications Speech and Vision", "IPCTA IEE Proceedings D: Control Theory Applications", "IPDMC IEEE Press Series on Digital &", "IPElT IEEE Press Series on Electronics Technology", "IPEPA IEE Proceedings B: Electric Power Applications", "IPETS IEEE Power and Energy Technology Systems Journal", "IPEWT IEEE Press Series on Electromagnetic Wave Theory", "IPGTD IEE Proceedings C: Generation Transmission Distribution", "IPhoJ IEEE Photonics Journal", "IPMAP IEE Proceedings H: Microwaves Antennas and Propagation", "IPM.. Information Processing and Management", "IPMOA IEE Proceedings H: Microwaves Optics and Antennas", "IPMS. IEEE Press Series on Microelectronic Systems", "IPNPR Interplanetary Network Progress Report", "IPOpt IEE Proceedings J: Optoelectronics", "Ippa. Ipparchos", "IPPE. IEEE Press Series on Power Engineering", "IPPSM IEE Proceedings: Physical Science Measurement and Instrumentation Management and Education Reviews", "IPRSP IEE Proceedings F: Radar and Signal Processing", "IPSSE IEE Proceedings: Solid-State Electron Devices", "IPTHS IEEE Press Telecommunications Handbook Series", "IPTL. IEEE Photonics Technology Letters", "IRA.. Infrared Astronomy", "IrAJ. Irish Astronomical Journal", "IrAJS Irish Astronomical Journal Supplement", "IREdu International Review of Education", "IRETE IRE Transactions on Education", "IRH.. International Review of Hydrobiology", "IrJST Iranian Journal of Science Technology", "IRMBP Institut Royal Meteorologique de Belgique Publications Serie", "IRNvP International Review of Nuclear Physics", "IRPC. International Reviews in Physical Chemistry", "ISAP. ISA Proceedings", "ISASS Institute of Space and Astronautical Science Report", "ISAT. ISA Transactions", "ISBRv International Space Business Review", "iSci. iScience", "ISCJS ISRO Satellite Centre Journal of Spacecraft Technology", "ISenJ IEEE Sensors Journal", "Isis. Isis. Journal of the History of Science Society", "IsJAP Istanbul University Faculty of Science Journal of Astronomy Physics", "IsJT. Israel Journal of Technology", "ISKZ. Issledovaniya Solntsa i Krasnykh Zvezd", "IsMTD Issledovaniia Mekhanike i Teploobmenu Dvukhfaznykh Sred", "ISNL. Information Systems Newsletter", "ISPAn ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences", "ISPAr ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences", "ISPL. IEEE Signal Processing Letters", "ISPM. IEEE Signal Processing Magazine", "ISRAA ISRN Astronomy and Astrophysics", "IsRvC Istanbul University Faculty Science Review Serie C", "ISRv. Interdisciplinary Science Reviews", "ISSIR ISSI Scientific Reports Series", "IsSRT Israel Space Research and Technology Information Bulletin", "IssUP Issledovaniia Uprugosti i Plastichnosti", "IssZK Issledovanie Zemli Fiz Kosmosa", "IS&T. Instrumentation Science &", "IST.. Issues in Science and Technology", "ISTSP IEEE Journal of Selected Topics in Signal Processing", "ISysJ IEEE Systems Journal", "ITAB. Institut Teoreticheskoi Astronomii Byulleten", "ITABO Institute of Theoretical Astrophysics, Blindern-Oslo", "ITAC. IEEE Transactions on Automatic Control", "ITAer IEEE Transactions on Aerospace", "ITAES IEEE Transactions on Aerospace Electronic Systems", "ITANE IEEE Transactions on Aerospace and Navigational Electronics", "ITAP. IEEE Transactions on Antennas and Propagation", "ITAS. IEEE Transactions on Applied Superconductivity", "ITASS IEEE Transactions on Acoustics Speech and Signal Processing", "ITBE. IEEE Transactions on Biomedical Engineering", "ITB.. IEEE Transactions on Broadcasting", "ITCAD IEEE Transactions on Computer Aided Design", "ITCHM IEEE Transactions on Components Hybrids and Manufacturing Technology", "ITCJ. ITC Journal", "ITCmp IEEE Transactions on Computers", "ITCom IEEE Transactions on Communications", "ITCS. IEEE Transactions on Circuits Systems", "ITED. IEEE Transactions on Electron Devices", "ITEdu IEEE Transactions on Education", "ITEI. IEEE Transactions on Electrical Insulation", "ITEIS IEEJ Transactions on Electronics, Information and Systems", "ITElC IEEE Transactions on Electromagnetic Compatibility", "ITEM. IEEE Transactions on Engineering Management", "ITEnC IEEE Transactions on Energy Conversion", "ITGE. IEEE Transactions on Geoscience Electronics", "ITGRS IEEE Transactions on Geoscience and Remote Sensing", "ITIA. IEEE Transactions on Industry Applications", "ITIEC IEEE Transactions on Industrial Electronics and Control Instrumentation", "ITIE. IEEE Transactions on Industrial Electronics", "ITIM. IEEE Transactions on Instrumentation Measurement", "ITIP. IEEE Transactions on Image Processing", "ITIT. IEEE Transactions on Information Theory", "ITJSE Indian Institute of Technology Journal on Section Engineering Technology", "ITME. IEEE Transactions on Military Electronics", "ITM.. IEEE Transactions on Magnetics", "ITMTT IEEE Transactions on Microwave Theory Techniques", "ITNan IEEE Transactions on Nanotechnology", "ITN.. IERS Technical Note", "ITNN. IEEE Transactions on Neural Networks", "ITNS. IEEE Transactions on Nuclear Science", "ITPA. Interscience Tracts on Physics and Astronomy", "ITPAM IEEE Transactions on Pattern Analysis and Machine Intelligence", "ITPAS IEEE Transactions on Power Apparatus Systems", "ITPE. IEEE Transactions on Power Electronics", "ITPHP IEEE Transactions on Parts Hybrids and Packaging", "ITPS. IEEE Transactions on Plasma Science", "ITPSy IEEE Transactions on Power Systems", "ITRA. IEEE Transactions on Robotics Automation", "ITRFI IEEE Transactions on Radio Frequency Interference", "ITR.. IEEE Transactions on Reliability", "ITSE. IEEE Transactions on Sustainable Energy", "ITSET IEEE Transactions on Space Electronics and Telemetry", "ITSMC IEEE Transactions on Systems Man and Cybernetics", "ITSP. IEEE Transactions on Signal Processing", "ITSU. IEEE Transactions on Sonics Ultrasonics", "ITTST IEEE Transactions on Terahertz Science and Technology", "ITUFF IEEE Transactions on Ultrasonics Ferroelectrics and Frequency Control", "ITUTJ ITU Telecommunication Journal", "ITVT. IEEE Transactions on Vehicular Technology", "IUEEN IUE ESA Newsletter", "IUENN IUE NASA Newsletter", "IUGG. International Union of Geodesy and Geophysics General Assembly", "IUMJ. Indiana University Mathematics Journal", "IzAlm Izvestiya Astrofizicheskogo Instituta Alma-Ata", "IzAOP Izvestiya Atmospheric and Oceanic Physics", "IzArm Izvestiya Akademiya Nauk Armyanskoi", "IzAsh Izvestiya Akademii Nauk Turkmenskoj SSR Ashkhabad", "IzAvT Izvestiya VUZ Aviatsionnaya Tekhnika", "IzAze Akademiia Nauk Azerbaidzhanskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh i Matematicheskikh Nauk", "IzDus Dushanbe Izdatel Donish", "IzEhn Izvestiya Astronomicheskoj Engel'gardt obskoj Observatorii Kazan", "IzET. Izvestiia Energetika i Transport", "IzFru Frunze Izdatel Ilim", "IzFZ. Akademiia Nauk SSSR, Izvestiia, Fizika Zemli", "IzGeo Tbilisi Georgian SSR Izdatel Metsniereba", "IzGla Izvestiia Glavnoi rossiiskoi astronomicheskoi observatorii", "IzKie Izvestiya Glavnoj Astronomicheskoj Observatorii Kiev", "IzKry Izvestiya Ordena Trudovogo Krasnogo Znameni Krymskoj Astrofizicheskoj Observatorii", "IzLat Akademiia Nauk Latviiskoi SSR Izvestiia Seriia Fizicheskikh i Tekhnicheskikh Nauk", "IzLen Leningrad, Izdatel'stvo Nauka", "IzMat Izvestiya: Mathematics", "IzMin Minsk Izdatel BGU", "IzMol Akademiia Nauk Moldavskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh i Matematicheskikh Nauk", "IzMZG Akademiia Nauk SSSR Izvestiia Mekhanika Zhidkosti i Gaza", "IzOde Odesskij Gosudarstvennyi Universitet im. I. I. Mechnikova Izvestiya Astronomicheskoj Observatorii", "IzPSE Izvestiya Physics of the Solid Earth", "IzPul Izvestiya Glavnoj Astronomicheskoj Observatorii v Pulkove", "IzRad Izvestiya VUZ Radiofizika", "IzSF. Izvestiia Akademii Nauk Seriya Fizicheskaya", "IzSib Akademiia Nauk SSSR Sibirskoe Otdelenie Izvestiia", "IzSSR Akademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "IzTad Izvestiia Akademiia Nauk TadzhSSR", "IzTas Tashkent Izdatel Fan", "IzTif Tiflis Izdatel Tbilisskogo Universiteta", "IzTur Akademiia Nauk Turkmenskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh Khimicheskikh i Geologicheskikh Nauk", "IzUkr Akademiia Nauk Ukrainian SSSR Izvestiia Seriia Fizicheskaia", "IzUzb Akademiia Nauk Uzbekskoi SSR Izvestiia Seriia Fiziko Matematicheskikh Nauk", "IzVF. Izvestiya Vysshikh Uchebnykh Zavedenij. Fizika", "IzVGA Izvestiia vuzov. Geodeziia Aehrofotosemka", "IzVil Vilnius Izdatel Mokslas", "IzVUZ Izvestiia Vysshaia Uchebn. Zaved., Radiofizika", "IzYak Vsesoiuznaia Konferentsiia Kosmicheskim Lucham Yakutsk USSR Akademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "IzYer Vsesoiuznaia Konferentsiia Kosmicheskim Lucham Yerevan Armenian SSR Aademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "JAChS Journal of the American Chemical Society", "JAco. Journal d'Acoustique", "JACS. Journal of American Ceramic Society", "JAdD. Journal of Advanced Dielectrics", "JAD.. Journal of Astronomical Data", "JAdR. Journal of Advanced Research", "JAE.. Journal of Acoustic Emission", "JAerE Journal of Aerospace Engineering", "JAerP Journal of Aerospace Power", "JAerS Journal of Aerosol Science", "JAESc Journal of Asian Earth Sciences", "JAESE Journal of Astronomy &", "JAES. Journal of Audio Engineering Society", "JAfES Journal of African Earth Sciences", "JAF.. Journal des Astronomes Francais", "JAGeo Journal of Applied Geodesy", "JAGI. Journal of Artificial General Intelligence", "JAG.. Journal of Applied Geophysics", "JAHH. Journal of Astronomical History and Heritage", "JAI.. Journal of Astronomical Instrumentation", "JaIMJ Japan Institute of Metals Journal", "JAir. Journal of Aircraft", "JaJAG Japanese Journal of Astronomy and Geophysics", "JaJAP Japanese Journal of Applied Physics", "JAllC Journal of Alloys and Compounds", "JALPO Journal of the Association of Lunar and Planetary Observers, the Strolling Astronomer", "JAMDS Journal of Advanced Mechanical Design, Systems, and Manufacturing", "JAMES Journal of Advances in Modeling Earth Systems", "JAM.. Journal of Applied Mechanics", "JAMOP Journal of Atomic, Molecular and Optical Physics", "JAMS. Journal of the American Mathematical Society", "JAMTP Journal of Applied Mechanics and Technical Physics", "JAnSc Journal of the Astronautical Sciences", "JApA. Journal of Astrophysics and Astronomy", "JApAS Journal of Astrophysics and Astronomy Supplement", "JApCr Journal of Applied Crystallography", "JAPE. Journal of Applied Photographic Engineering", "JApEl Journal of Applied Electrochemistry", "JAPh. Journal of Applied Physiology", "JAP.. Journal of Applied Physics", "JApMa IMA Journal of Applied Mathematics", "JApMC Journal of Applied Meteorology and Climatology", "JApMe Journal of Applied Meteorology", "JApMM Journal of Applied Mathematics and Mechanics", "JApMw Journal of Applied Metalworking", "JApSc Journal of Applied Sciences", "JApSp Journal of Applied Spectroscopy", "JArEn Journal of Arid Environments", "JARS. Journal of Applied Remote Sensing", "JASAC Japan Astronomical Study Association Circulars", "JASCE Journal of the American Society of Civil Engineers", "JASEg Journal of the Astronomical Society of Egypt", "JASE. Journal of Applied Science and Engineering Section on Electrical Power and Information Systems", "JAsGe NRIAG Journal of Astronomy and Geophysics", "JASIS Journal of the American Society for Information Science and Technology", "JASJa Journal of the Acoustical Society of Japan", "JASMS Journal of The American Society for Mass Spectrometry", "JAsPh Journal of Astronomy and Physics (Turkey)", "JASSA Journal of the Astronomical Society of Southern Africa", "JASS. Journal of Astronomy and Space Sciences", "JAS.. The Journal of Agricultural Science", "JASTP Journal of Atmospheric and Solar-Terrestrial Physics", "JASV. Journal of the Astronomical Society of Victoria Melbourne", "JASWA Journal of the Astronomical Society of Western Australia", "JAtC. Journal of Atmospheric Chemistry", "JATIS Journal of Astronomical Telescopes, Instruments, and Systems", "JAtOT Journal of Atmospheric and Oceanic Technology", "JATP. Journal of Atmospheric and Terrestrial Physics", "JAtS. Journal of Atmospheric Sciences", "JATSo Journal of the Antique Telescope Society", "JAuGG Journal of Australian Geology and Geophysics", "JAVSO Journal of the American Association of Variable Star Observers (JAAVSO)", "JAWRA Journal of the American Water Resources Association", "JBAA. Journal of the British Astronomical Association", "JBall Journal of Ballistics", "JBAS. Journal of the British Astronomical Society", "JBASP Jodrell Bank Ann Ser Pt", "JBH.. Journal of Big History", "JBiom Journal of Biomechanics", "JBiop Journal of Biophysics", "JBIS. Journal of the British Interplanetary Society", "JBO.. Journal of Biomedical Optics", "JBR.. Journal of Breath Research", "JCAMD Journal of Computer-Aided Molecular Design", "JCAM. Journal of Climate and Applied Meteorology", "JCAP. Journal of Cosmology and Astroparticle Physics", "JChEd Journal of Chemical Education", "JCh.. Journal of Chromatography", "JChPh Journal of Chemical Physics", "JChS. Journal of Chromatographic Science", "JCHyd Journal of Contaminant Hydrology", "JCIS. Journal of Colloid and Interface Science", "JCli. Journal of Climate", "JClim Journal of Climatology", "JClP. Journal of Clinical Pharmacology", "JClR. Journal of Climate Research", "JCMD. Journal of Computer-Aided Materials Design", "JCM.. Journal of Computational Mathematics", "JCMSI SICE Journal of Control, Measurement, and System Integration", "JCoAM Journal of Computational and Applied Mathematics", "JCoCh Journal of Computational Chemistry", "JCoMa Journal of Composite Materials", "JCom. Journal of Communications", "JComp Journal of Complexity", "JComS Journal of Computational Science", "JConP Journal of Contemporary Physics (Armenian Academy of Sciences)", "JCoPh Journal of Computational Physics", "JCoSc Journal of Colloid Science", "JCos. Journal of Cosmology", "JCP.. Journal de Chimie Physique", "JCPX. Journal of Computational Physics: X", "JCrGr Journal of Crystal Growth", "JCSS. Journal of the Chinese Silicate Society", "JCSTe Journal of College Science Teaching", "JCST. Journal of Computational Science and Technology", "JCTR. Journal of Composites and Technology Research", "JDBM. Journal of Dynamic Behavior of Materials", "JDDE. Journal of Dynamics and Differential Equations", "JDE.. Journal of Differential Equations", "JDGeo Journal of Differential Geometry", "JDisT Journal of Display Technology", "JDSO. Journal of Double Star Observations", "JDST. Journal of Dispersion Science and Technology", "JEAA. Journal of Electromagnetic Analysis and Application", "JEAS. Journal of Engineering and Applied Sciences", "JECE. Journal of Environmental Conservation Engineering", "JECS. Journal of Electronic Circuits and Systems", "JECTC Journal of Electronics Cooling and Thermal Control", "JEEEA Journal of Electrical and Electronics Engineering Australia", "JEE.. Journal of Electrical Engineering", "JEEM. Journal of Environmental and Economics Management", "JEER. Journal of Engineering Education Research", "JEET. Journal of Electrical Engineering &", "JEI.. Journal of Electronic Imaging", "JElas Journal of Elasticity", "JElCo Electronics Communications of Japan", "JElEn Electrical Engineering of Japan", "JElS. Journal of the Electrochemical Society", "JEMat Journal of Electronic Materials", "JEMT. Journal of Electron Microscopy Technique", "JENan Journal of Experimental Nanoscience", "JEner Journal of Energy", "JEngM Journal of Engineering and Mechanics", "JEngS Journal of Engineering Sciences", "JEnMa Journal of Engineering Mathematics", "JEnM. Journal of Energetic Materials", "JenRu Jenaer Rundschau", "JenRv Jena Review", "JEnvS Journal of Environmental Sciences", "JEOS. Journal of the European Optical Society", "JEP.. Journal of Engineering Physics", "JEPT. Journal of Engineering Physics and Thermophysics", "JEPub Journal of Electronic Publishing", "JESEd Journal of Elementary Science Education", "JESRP Journal of Electron Spectroscopy and Related Phenomena", "JESS. Journal of Earth System Science", "JETAI Journal of Experimental & Theoretical Artificial Intelligence", "JETh. Journal of Engineering and Thermophysics", "JETPL Soviet Journal of Experimental and Theoretical Physics Letters", "JETP. Soviet Journal of Experimental and Theoretical Physics", "JEWA. Journal of Electromagnetic Waves and Applications", "JFAA. Journal of Fourier Analysis and Applications", "JFC.. Journal of Fluid Control", "JFF.. Journal of Fire Flammability", "JFM.. Journal of Fluid Mechanics", "JFS.. Journal of Fluids and Structures", "JFST. Journal of Fluid Science and Technology", "JFuA. Journal of Functional Analysis", "JFuE. Journal of Funsion Energy", "JGCD. Journal of Guidance Control Dynamics", "JGeEd Journal of Geoscience Education", "JGE.. Journal of Geophysics and Engineering", "JGeod Journal of Geodesy", "JGeoE Journal of Geological Education", "JGeo. Journal of Geodynamics", "JGeop Journal of Geophysics", "JGeoS Journal of Geodetic Science", "JGG.. Journal of Geomagnetism and Geoelectricity", "JGGS. Journal of Geomagnetism and Geoelectricity Supplement", "JGHyd Journal of Groundwater Hydrology", "JGIS. Journal of Geographic Information System", "JG... Journal of Geology", "JGlac Journal of Glaciology", "JGP.. Journal of Geometry and Physics", "JGRA. Journal of Geophysical Research (Space Physics)", "JGRB. Journal of Geophysical Research (Solid Earth)", "JGRC. Journal of Geophysical Research (Oceans)", "JGRD. Journal of Geophysical Research (Atmospheres)", "JGRE. Journal of Geophysical Research (Planets)", "JGRF. Journal of Geophysical Research (Earth Surface)", "JGRG. Journal of Geophysical Research (Biogeosciences)", "JGR.. Journal of Geophysical Research", "JGrPh Journal of Gravitational Physics", "JGRS. Journal of Geophysical Research Supplement", "JGSJ. Journal of the Geodetic Society of Japan", "JGS.. Journal of Geographical Systems", "JGSoc Journal of the Geological Society", "JGuC. Journal of Guidance Control", "JGZG. Journal of Geophysics Zeitschrift Geophysik", "JHA.. Journal for the History of Astronomy", "JHAS. Journal for the History of Astronomy Supplement", "JHATD Johns Hopkins APL Technical Digest", "JHEAp Journal of High Energy Astrophysics", "JHENP Journal of High Energy and Nuclear Physics", "JHEP. Journal of High Energy Physics", "JHTS. Journal of High Temperature Society", "JHyd. Journal of Hydrology", "JHyDy Journal of Hydrodynamics", "JHyMe Journal of Hydrometeorology", "JHyn. Journal of Hydronautics", "JIECE Institute of Electronics Communication Engineers of Japan Transactions Section E English", "JIEEJ Journal of The Institute of Electrical Engineers of Japan", "JIEIA Journal of The Institution of Engineers (India): Series A", "JIEIB Journal of The Institution of Engineers (India): Series B", "JIEIC Journal of The Institution of Engineers (India): Series C", "JIEID Journal of The Institution of Engineers (India): Series D", "JIEIE Journal of The Institution of Engineers (India): Series E", "JIEI. Journal of Industrial Engineering International", "JIEq. Journal of Integral Equations", "JIETE Journal of the Institution of Electronics and Telecommunication Engineers", "JIEx. Journal of Ion Exchange", "JIMIA Journal of the Institute of Mathematics and Its Applications", "JIMO. WGN, Journal of the International Meteor Organization", "JIMSS Journal of Intelligent Material Systems and Structures", "JIMW. Journal of Infrared and Millimeter Waves", "JInfo Journal of Informetrics", "JInst Journal of Instrumentation", "JIntS Journal of Integer Sequences", "JIPM. Journal of Information Processing and Management", "JIPNT Journal of the Institute of Positioning, Navigation and Timing of Japan", "JIST. Journal of Imaging Science and Technology", "JJAEE Journal of Japan Association for Earthquake Engineering", "JJAHS Journal of Japanese Association of Hydrological Sciences", "JJAPL Japanese Journal of Applied Physics Letters B", "JJAPR Japanese Journal of Applied Physics Regular Papers Short Notes and Review Papers", "JJAPS Japanese Journal of Applied Physics Supplement", "JJSEE Journal of Japanese Society for Engineering Education", "JJSMS Journal of the Japan Society for Marine Surveys and Technology", "JJTST Journal of Thermal Science and Technology", "JKAS. Journal of Korean Astronomical Society", "JKASS Journal of Korean Astronomical Society Supplement", "JKPS. Journal of Korean Physical Society", "JKSAS Journal of the Korean Society for Aeronautical & Space Sciences", "JLasA Journal of Laser Applications", "JLCM. Journal of Less Common Metals", "JLMS. Journal of the London Mathematical Society", "JLTP. Journal of Low Temperature Physics", "JLum. Journal of Luminescence", "JLVEn Journal of Light & Visual Environment", "JLwT. Journal of Lightwave Technology", "JMAA. Journal of Mathematical Analysis and Applications", "JMaCh Journal of Mathematical Chemistry", "JMagR Journal of Magnetic Resonance", "JMaMe Journal of Mathematics and Mechanics", "JMaPh Journal of Mathematics and Physics", "JMarA Journal of Maritime Archaeology", "JMaSc Journal of Mathematical Sciences", "JMatR Journal of Materials Research", "JMatS Journal of Materials Science", "JMBM. Journal of the Mechanical Behavior of Materials", "JMCS. Journal of Mathematical and Computational Science", "JMecA Journal de Mecanique Appliquee", "JMecE Journal of Mechanical and Engineering Science", "JMec. Journal de Mecanique", "JMecT Journal de Mecanique Theorique et Appliquee", "JMEM. Journal of Molecular and Engineering Materials", "JMemS Journal of Microelectromechanical Systems", "JMeOp Jemna Mechanika Optika", "JMEP. Journal of Materials Engineering and Performance", "JMetG Journal of Metamorphic Geology", "JMet. Journal of Metals", "JMetR Journal of Meteorological Research", "JMFM. Journal of Mathematical Fluid Mechanics", "JMic. Journal of Microscopy", "JMicP Journal of Micropaleontology", "JMiMi Journal of Micromechanics and Microengineering", "JMMM. Journal of Magnetism and Magnetic Materials", "JMM&M Journal of Micro/Nanolithography, MEMS, and MOEMS", "JMMPS Japanese Magazine of Mineralogical and Petrological Sciences", "JMOA. IEE Journal of Microwaves Optics and Acoustics", "JMoEl Journal of Molecular Electronics", "JMolE Journal of Molecular Evolution", "JMOp. Journal of Modern Optics", "JMoSp Journal of Molecular Spectroscopy", "JMoSt Journal of Molecular Structure", "JMPeS Journal of Mineralogical and Petrological Sciences", "JMPh. Journal of Modern Physics", "JMP.. Journal of Mathematical Physics", "JMPMS Journal of Materials Processing and Manufacturing Science", "JMPS. Journal of Mathematical and Physical Sciences", "JMPSo Journal of Mechanics Physics of Solids", "JMRB. Journal of Magnetic Resonance", "JMR.. Journal of Marine Research", "JMSA. Journal of Marine Science and Application", "JMSB. Journal of Macromolecular Science, Part B", "JMSJ. Journal of the Mineralogical Society of Japan", "JMS.. Journal of Marine Systems", "JMSL. Journal of Materials Science Letters", "JMSME Journal of Materials Science and Materials Electronics", "JMSp. Journal of Mass Spectrometry", "JMSTL Journal of Mechanical Systems for Transportation and Logistics", "JMTAS Journal de Mecanique Theorique et Appliquee Supplement", "JMTPR Journal of Modern Trends in Physics Research", "JMuMo Journal of Multiscale Modelling", "JNano Journal of Nanophotonics", "JNanU Journal Nanjing Univ", "JNav. Journal of Navigation", "JNCS. Journal of Non Crystalline Solids", "JNCSX Journal of Non Crystalline Solids: X", "JNE.. Journal of Nondestructive Evaluation", "JNEng Journal of Neural Engineering", "JNET. Journal of Non Equilibrium Thermodynamics", "JNeur Journal of Neurochemistry", "JNIRE Journal NIRE", "JNIS. Journal of Near Infrared Spectroscopy", "JNLM. Journal of Non Linear Mechanics", "JNMP. Journal of Nonlinear Mathematical Physics", "JNOPM Journal of Nonlinear Optical Physics and Materials", "JNR.. Journal of Nanoparticle Research", "JNS.. Journal of NonLinear Science", "JNuE. Journal of Nuclear Energy", "JNuM. Journal of Nuclear Materials", "JNUNS Journal of Nanjing University (Natural Sciences)", "JOA.. Journal for Occultation Astronomy", "JoBaA Jodrell Bank Annals", "JOC.. Journal of Optical Communications", "JOCN. Journal of Optical Communications and Networking", "JoDI. Journal of Digital Information", "JO... Journal des Observateurs", "JOL.. Journal of Oceanology and Limnology", "JOM.. JOM - Journal of the Minerals, Metals and Materials Society", "JON.. Journal of Optical Networking", "JOptA Journal of Optics A: Pure and Applied Optics", "JOptB Journal of Optics B: Quantum and Semiclassical Optics", "JOpt. Journal of Optics", "JOptT Journal of Optical Technology", "JORS. Journal of Open Research Software", "JOSAA Journal of the Optical Society of America A", "JOSAB Journal of the Optical Society of America B Optical Physics", "JOSA. Journal of the Optical Society of America (1917-1983)", "JOSS. The Journal of Open Source Software", "JOTA. Journal of Optimization Theory Applications", "JOUC. Journal of Ocean University of China", "JPalA Journal of Paleolithic Archaeology", "JPalg Journal of Palaeogeography", "JPal. Journal of Paleontology", "JPall Journal of Palaeolimnology", "JPApS Journal of Pure Applied Sciences", "JPAS. Journal of Practical Applications in Space", "JPCA. Journal of Physical Chemistry A", "JPCB. Journal of Physical Chemistry B", "JPCM. Journal of Physics Condensed Matter", "JPCRD Journal of Physical and Chemical Reference Data", "JPCS. Journal of Physics and Chemistry of Solids", "JPDC. Journal of Parallel and Distributed Computing", "JPE.. Journal of Physics of the Earth", "JPEle Journal of Power Electronics", "JPEn. Journal of Physics: Energy", "JPES. Journal of Power and Energy Systems", "JPetG Journal of Petroleum Geology", "JPet. Journal of Petrology", "JPFR. Journal of Plasma and Fusion Research", "JPhA. Journal of Physics A Mathematical General", "JPhB. Journal of Physics B Atomic Molecular Physics", "JPhCh Journal of Physical Chemistry", "JPhC. Journal of Physics C Solid State Physics", "JPhCo Journal of Physics Communications", "JPhD. Journal of Physics D Applied Physics", "JPhE. Journal of Physics E Scientific Instruments", "JPhEn Journal of Photonics for Energy", "JPhF. Journal of Physics F Metal Physics", "JPhG. Journal of Physics G Nuclear Physics", "JPhGS Journal of Physics G Nuclear Physics Supplement", "JPhM. Journal of Physics: Materials", "JPhP. Journal of Physics: Photonics", "JPhSt Journal of Physical Studies", "JPhSu Supplement au Journal de Physique", "JPhTA Journal de Physique Theorique et Apliquee", "JPhy1 Journal de Physique I", "JPhy2 Journal de Physique II", "JPhy3 Journal de Physique III", "JPhy4 Journal de Physique IV", "JPhyC Journal de Physique Colloque", "JPhys Journal de Physique", "JPlPh Journal of Plasma Physics", "JPLSP Jet Propulsion Lab. Space Programs Summary", "JPO.. Journal of Physical Oceanography", "JPoSA Journal of Polymer Science A Polymer Chemistry", "JPoSB Journal of Polymer Science B Polymer Physics", "JPoSc Journal of Polymer Science", "JPoSL Journal of Polymer Science: Polymer Letters Edition", "JPP.. Journal of Propulsion and Power", "JPRG. Journal of Photogrammetry, Remote Sensing and Geoinformation Science", "JPRS. ISPRS Journal of Photogrammetry and Remote Sensing", "JPSCP JPS Conference Proceedings", "JPSJ. Journal of the Physical Society of Japan", "JPS.. Journal of Power Sources", "JPSJS Journal of the Physical Society of Japan Supplement", "JPT.. Journal of Propulsion Technology", "JQS.. Journal of Quaternary Science", "JQSRT Journal of Quantitative Spectroscopy and Radiative Transfer", "JQT.. Journal of Quality Technology", "JRAC. Journal of Radioanalytical Chemistry", "JRadR Journal of Radiation Research", "JRAEO Journal and Review of Astronomy Education and Outreach", "JRAM. Journal fur die reine und angewandte Mathematik", "JRASA Journal of the Royal Aeronautical Society of London", "JRASC Journal of the Royal Astronomical Society of Canada", "JReAt Journal de Recherches Atmospheriques", "JRE.. Jahrbuch der Radioaktivitä", "JResB Journal of Research Section B Mathematical Sciences B", "JRes. Journal of Research", "JRheo Journal of Rheology", "JRIST Journal of Research Institute of Science and Technology, College of Science and Technology, Nihon University", "JRNBA Journal of Research of the National Bureau of Standards A Physica and Chemsitry", "JRNBB Journal of Research of the National Bureau of Standards B Mathematical Sciences", "JRNBS Journal of Research of the National Bureau of Standards", "JRNC. Journal of Radioanalytical and Nuclear Chemistry", "JRoS. Journal of Robotic Systems", "JRPC. Journal of Reinforced Plastics and Composites", "JRPhy Journal of Research in Physics", "JRP.. Journal of Radiological Protection", "JRScT Journal of Research in Science Teaching", "JRSp. Journal of Raman Spectroscopy", "JSAES Journal of South American Earth Sciences", "JSAPJ Japan Society of Air Pollution Journal", "JSARA Journal of the Southeastern Association for Research in Astronomy", "JSAR. Journal of Space Astronomy Research", "JSASS Japan Society of Aeronautical Space Sciences", "JSAST Japan Society of Aeronautical Space Sciences Transactions", "JSCAI Journal of Japan Society of Civil Engineers, Ser. D1 (Architecture of Infrastructure and Environment)", "JSCAM Journal of Japan Society of Civil Engineers, Ser. A2 (Applied Mechanics (AM))", "JSCCE Journal of Japan Society of Civil Engineers, Ser. F3 (Civil Engineering Informatics)", "JSCCM Journal of Japan Society of Civil Engineers, Ser. F4 (Construction and Management)", "JSCER Journal of Japan Society of Civil Engineers, Ser. G (Environmental Research)", "JSCGE Journal of Japan Society of Civil Engineers, Ser. C (Geosphere Engineering)", "JSCHE Journal of Japan Society of Civil Engineers, Ser. B1 (Hydraulic Engineering)", "JSCHS Journal of Japan Society of Civil Engineers, Ser. D2 (Historical Studies in Civil Engineering)", "JScI. Journal of Scientific Instruments", "JSCIP Journal of Japan Society of Civil Engineers, Ser. D3 (Infrastructure Planning and Management)", "JSCMC Journal of Japan Society of Civil Engineers, Ser. E2 (Materials and Concrete Structures)", "JSCMJ Japan Society of Composite Materials Journal", "JSCom Journal of Scientific Computing", "JSCPE Journal of Japan Society of Civil Engineers, Ser. E1 (Pavement Engineering)", "JSCPP Journal of Japan Society of Civil Engineers, Ser. F5 (Professional Practices in Civil Engineering)", "JSCSE Journal of Japan Society of Civil Engineers, Ser. A1 (Structural Engineering &", "JSCSP Journal of Japan Society of Civil Engineers, Ser. F6 (Safety Problem)", "JSCTE Journal of Japan Society of Civil Engineers, Ser. F1 (Tunnel Engineering)", "JSCUS Journal of Japan Society of Civil Engineers, Ser. F2 (Underground Space Research)", "JSDD. Journal of System Design and Dynamics", "JSD.. Journal of the Structural Division, American Society of Civil Engineers", "JSedR Journal of Sedimentary Research", "JSEdT Journal of Science Education and Technology", "JSeis Journal of Seismology", "JSemi Journal of Semiconductors", "JSER. Journal for STEM Education Research", "JSGeo Journal of Series Geophysics", "JSG.. Journal of Structural Geology", "JShR. Journal of Ship Research", "JSLEJ Japan Society of Lubrication Engineers Journal", "JSLR. Journal of Soviet Laser Research", "JSMAJ JASMA Japan Society of Microgravity Application Journal", "JSMEA JSME International Journal Series A", "JSMEB JSME International Journal Series B", "JSMEC JSME International Journal Series C", "JSMEJ JSME International Journal", "JSMET JSME Transactions", "JSM.. Journal of Structural Mechanics", "JSMME Journal of Solid Mechanics and Materials Engineering", "JSMSJ Japan Society of Materials Science Journal", "JSMTE Journal of Statistical Mechanics: Theory and Experiment", "JSpEn Journal of Space Engineering", "JSP.. Journal of Statistical Physics", "JSpRo Journal of Spacecraft and Rockets", "JSPS. Japan Society of Promotion Science", "JSPST Journal of The Society of Photographic Science and Technology of Japan", "JSpT. Journal of Spacecraft Technology", "JSR.. Journal of Sea Research", "JSRP. Journal of the Society for Radiological Protection", "JSSat Journal of Small Satellites", "JSSCh Journal of Solid State Chemistry France", "JSSED IEE Journal of Solid-State Electron Devices", "JStA. Journal of Strain Analysis and Engineering Design", "JSTEd Journal of Science Teacher Education", "JSup. Journal of Superconductivity", "JSV.. Journal of Sound Vibration", "JSWSC Journal of Space Weather and Space Climate", "JSymC Journal of Symbolic Computation", "JTAM. Journal of Theoretical and Applied Mechanics", "JTAP. Journal of Theoretical and Applied Physics", "JTCN. Journal of Computatational and Theoretical Nanoscience", "JTech Journal of Technology", "JTeEv Journal of Testing Evaluation", "JTePh Journal of Technical Physics", "JTF.. Journal of Time and Frequency", "JThCM Journal of Thermoplastic Composite Materials", "JTh.. Journal of Thermodynamics", "JThSc Journal of Thermal Science", "JThSt Journal of Thermal Stresses", "JTHT. Journal of Thermophysics and Heat Transfer", "JTP.. Journal for Technology of Plasticity", "JTST. Journal of Thermal Spray Technology", "JTurb Journal of Turbulence", "JURP. Journal of Undergraduate Reports in Physics", "JVCIR Journal of Visual Communication and Image Representation", "JVE.. Journal of Vibration Engineering", "JVGR. Journal of Volcanology and Geothermal Research", "JVSJ. Journal of the Vacuum Society of Japan", "JVSTA Journal of Vacuum Science Technology A: Vacuum Surfaces and Films", "JVSTB Journal of Vacuum Science Technology B: Microelectronics and Nanometer Structures", "JVST. Journal of Vacuum Science Technology", "JWMSE Journal of Women and Minorities in Science and Engineering", "JWUDF Jahns Wö", "JXST. Journal of X-Ray Science and Technology", "KazOB Astronomicheskoj Observatorii Kazan Byulleten", "KEIJ. Kansei Engineering International Journal", "KernR Kernforschungsanlage Rept Res Results Solid State Nucl Phys", "KexT. Kexue Tongbao", "KFNT. Kinematika i Fizika Nebesnykh Tel", "KFNTS Kinematika i Fizika Nebesnykh Tel Supplement", "Khago Khagol", "KharI Kharkov Izdanie IRE AN USSR", "KhPl. Khimiia Plazmy", "KiIND Kiev Izdatel Naukova Dumka", "KiInF Kiev Institut Fiziki AN USSR", "KiInM Kiev Institut Matematiki AN USSR", "KiIzT Kiev Izdatel Tekhnika", "KIMMJ Korean Institute of Metals and Materials Journal", "KIMS. Knowledge: An Illustrated Magazine of Science", "KIPME Kiev Institut Problem Modelirovaniia Energetike AN USSR", "KIzIM Kiev Izdanie Instituta Matematiki AN USSR", "KIzKU Kazan Izdatel Kazanskogo Universiteta", "KIzS. Kishinev Izdatel Shtiintsa", "KIzVS Kiev Izdatel Vishcha Shkola", "KKR.. Kagaku Kogaku Ronbunshu", "KlBer Kleinheubacher Berichte", "KNAB. Koninklijke Nederlandse Akademie van Wetenschappen Proceedings Series B Physical Sciences", "KNT.. Kosmicheskaia Nauka i Tekhnika", "KodOB Kodaikanal Observatory Bulletins", "KodRe Kodaikanal Observatory Reprints", "KomMe Komety i Meteory", "KomTs Kometnyj Tsirkulyar", "KosIs Kosmicheskie Issledovaniia", "KosIU Kosmicheskie Issledovaniia Ukraine", "KosLu Kosmicheskie Luchi", "KosNT Kosmichna Nauka i Tekhnologiya", "KosRo Kosmicke Rozhledy", "Kozmo Kozmos", "KPCB. Kinematics and Physics of Celestial Bodies", "KPCBS Kinematics and Physics of Celestial Bodies, Supplement", "KPNON Kitt Peak National Observatory Newsletter", "KSVH. Kungl. Svenska Vetenskapsakademiens Handlingar", "KTTM. Khimiia i Tekhnologiia Topliv i Masel", "KUFEM Kyushu University Faculty Engineering Memoirs", "KvanE Kvantovaia Elektronika Moscow", "KVeBB Kleine Veroeffentlichungen der Universitaetssternwarte zu Berlin Babelsberg", "KVnT. Kibernetika i Vychislitelnaia Tekhnika", "KyITB Kyushu Institute Technology Bulletin", "KyoMe Kyoto University Faculty Engineering Memoirs", "KyUAM Kyushu University Research Institute Applied Mechanics Reports", "KyUSR Kyushu University Research Institute Industrial Science Reports", "KyUTR Kyushu University Technology Reports", "KzSib Akademiia Nauk SSSR Sibirskoi Otdelenie Izvestiia Seriia Tekhnicheskikh Nauk", "LaEO. Laser Elektro Optik", "LAES. Letters in Applied and Engineering Sciences", "LaFoc Laser Focus", "LaJ.. Lapidary Journal", "LanB. Landolt Bö", "Langm Langmuir", "Lapa. Majalah LAPAN", "LaPhL Laser Physics Letters", "LaPhy Laser Physics", "LasJ. Laser Journal", "LAstr L'Astronomie", "LatJP Latvian Journal of Physics and Technical Sciences", "LatME Latviiskii Matematicheskii Ezhegodnik", "LawOB Laws Observatory Bulletin, University of Missouri", "LBLRR LBL Research Review", "LCEC. Luxembourg Commission European Communities", "LeBAN Leningrad Biblioteka Akademii Nauk SSSR", "LeEne Leningrad Energoizdat", "LeGid Leningrad Gidrometeoizdat", "LeIzE Leningrad Izdatel Energiia", "LeIzG Leningrad Izdatel Gidrometeoizdat", "LeIzK Leningrad Izdatel Khimiia", "LeIzM Leningrad Izdatel Mashinostroenie", "LeIzN Leningrad Izdatel Nauka", "LeIzS Leningrad Izdatel Sudostroenie", "LeIzU Leningrad Izdatel Leningradskogo Universiteta", "LeLen Leningrad Lenizdat", "LePub Learned Publishing", "LeRad Le Radium", "LERec L'Echo des Recherches", "LFR.. Lietuvos Fizikos Rinkinys", "LFTR. LEST Foundation, Technical Report", "LGUPM Leningradskii Gosudarstvennyi Universitet Problemy Matematicheskoi Fiziki", "LHBl. La Houille Blanche", "LHMT. Letters Heat Mass Transfer", "LicOB Lick Observatory Bulletin", "LiCr. Liquid Crystals", "Life. Life", "LimOc Limnology and Oceanography", "Litho Lithos", "LitJP Lithuanian Journal of Physics and Technical Sciences", "LIVS. Lvov Izdatel Vishcha Shkola", "LIzNe Leningrad Izdatel Nedra", "LLabJ Lincoln Laboratory Journal", "LMaPh Letters in Mathematical Physics", "LMMP. Lasers in Manufacturing and Materials Processing", "LNCS. Lecture Notes in Computer Science", "LNEA. Lecture Notes and Essays in Astrophysics", "LNEn. Lecture Notes in Engineering, Berlin Springer Verlag", "LNES. Lecture Notes in Earth Sciences, Berlin Springer Verlag", "LNM.. Lecture Notes in Mathematics, Berlin Springer Verlag", "LNP.. Lecture Notes in Physics, Berlin Springer Verlag", "LNSP. Lecture Notes and Supplements in Physics", "LockH Lockheed Horizons", "LOEle L'Onde Electrique", "LowOB Lowell Observatory Bulletin", "LPB.. Laser and Particle Beams", "LPIBu LPI Bulletin", "LPICo LPI Contributions", "LPlaC Observatorio Astronomico de La Plata Circular", "LPlaS Observatorio Astronomico de La Plata Separata Astronomica", "LPRv. Laser & Photonics Review", "LPSC. Lunar and Planetary Science Conference Proceedings", "LRCA. Living Reviews in Computational Astrophysics", "LR... Luft und Raumfahrt", "LRR.. Living Reviews in Relativity", "LRSP. Living Reviews in Solar Physics", "LSA.. Light: Science & Applications", "LS... Hamburger Sternw. Warner & Swasey Obs.", "Lsphe Lithoshere", "LSSR. Life Sciences and Space Research", "LTerm La Termotecnica", "LTP.. Low Temperature Physics", "LubEn Lubrication Engineering", "LunOC Lund Observatory Circular", "LuRaQ Luft und Raumfahrt Quarter", "LvoTs L'vovskij Ordena Lenina Gosudarstvennyj Universitet Tsirkulyar", "MAA.. Mediterranean Archaeology and Archaeometry", "MaCom Mathematics of Computation", "MaDes Machine Design", "MadOb Madras Observatory Observations", "MadOO Madras Observatory Astronomical Observations", "MaFiz Matematicheskaia Fizika", "MagFE Magnetic Fusion Energy", "MagGi Magnitnaia Gidrodinamika", "MagIs Magnitosfernye Issledovaniia", "MaHT. Materials at High Temperatures", "MaMeA Sankt Peterburgskii Universitet Vestnik Seriia Matematika Mekhanika Astronomiia", "MAMMP Mechanics of Advanced Materials and Modern Processes", "MaMol Macromolecules", "ManGe Manuscripta Geodaetica", "ManRv Manufacturing Review", "MApAn Methods and Applications of Analysis", "MaPEJ Mathematical Physics Electronic Journal", "MApFl Methods and Applications in Fluorescence", "MaPhS Mathematical Physics Studies", "MAP.. Meteorology and Atmospheric Physics", "MaPr. Mathematical Proceedings", "MAPSE Mission Analysis Program Solar Electric Propulsion MAPSEP", "MaRBu Materials Research Bulletin", "MarEc Marine Ecology", "MarGe Marine Geodesy", "MarGR Marine Geophysical Research", "MarMP Marine Micropaleontology", "MarPG Marine and Petroleum Geology", "MarRv Marconi Review", "Mashi Mashinostroenie", "MatAn Mathematische Annalen", "MaTeJ ManTech Journal", "Mate. Materials", "Mater Materialpruefung", "MatEv Materials Evaluation", "MatG. Mathematical Geology", "math. arXiv Mathematics e-prints", "math.parXiv Mathematical Physics e-prints", "MatIs Matematicheskie Issledovaniia", "MatL. Materials Letters", "MatM. Mathematical Modelling", "MatMo The Mathemtical Monthly", "MatNa Mathematische Nachrichten", "MAtom Moscow Atomizdat", "MatPr Mathematical Programming", "MatRv Mathematical Reviews", "MatSP Materials Science Poland", "MatST Materials Science Technology", "MatTe Materiaux et Techniques", "MatTh Materials Theory", "MatTr Materials Transactions JIM", "MatVe Matematichki Vesnik", "MatZe Mathematische Zeitschrift", "MAUTx University of Texas Monographs in Astronomy", "MAWMN Mainz Akademie Wissenschaften Mathematisch Naturwissenschaftliche Klasse", "MBB.. Molecular Biology and Biophysics", "MCBEH Monatliche Correspondenz zur Beforderung der Erd- und Himmels-kunde", "MCM.. Mechanics of Composite Materials", "MComM Mathematical and Computer Modelling", "MComP Methods in Computational Physics", "MeAar Meddelser fra Ole Romer Observatoriet Aarhus", "MeApp Meteorological Applications", "MeARB Academie Royale de Belgique Classe des Sciences Memoires", "Meas. Measurements", "MeAut Meres es Automatika", "Mecc. Meccanica", "MecEn Mechanical Engineering", "MecSM Mechanics of Soft Materials", "MedPh Medical Physics", "MEdRJ Mathematics Education Research Journal", "MEE.. Materials of Electronics Engineering", "MEEP. Monographs on Environment, Earth and Planets", "MeeRe Kenneth Mees Observatory Reprints", "MeGen Mededelingen Universiteit te Gent Sterrenkundig Instituut", "MeGid Meteorologiia i Gidrologiia", "MEI.. Mathematical Engineering Industry", "MeInd Mechanics and Industry", "MekGS Mekhanika Giroskopicheskikh Sistem", "MekKM Mekhanika Kompozitnykh Materialov", "MekP. Mekhanika Polimerov", "MekTT Mekhanika Tverdogo Tela", "MeLeu Mededelingen van het Astronomisch Instituut van de Katholieke Universiteit Leuven", "MelOO Melbourne Observatory Observations", "MeLuF Meddelanden fran Lunds Astronomiska Observatorium Serie I", "MeLuS Meddelanden fran Lunds Astronomiska Observatorium Serie II", "MeMaT Mechanism and Machine Theory", "MEner Moscow Energoizdat", "MEPS. Marine Ecology Progress Series", "MeRAu Mesures Regulation Automatisme", "Mercu Mercury", "MeReC Mechanics Research Communications", "MerRe Instituto Venezolano de Astronomia Merida Venezuela", "MeRR. Meteornoe Rasprostranenie Radiovoln, Kazan", "MeScR Measurement Science Review", "MeScT Measurement Science and Technology", "MeSJJ Meteorological Society of Japan Journal", "MeSol Mechanics of Solids", "MeSRM Memoires Scientifiques de la Revue de Metallurgie", "MeSSR Akademiia Nauk SSSR Mekhanika Zhidkosti i Gaza", "Metal Metallofizika", "MetaM Metamaterials", "MetAP Meteorology Atmospheric Physics", "Meteo La Meteorologie", "MeTeS Mechanika Teoretyczna i Stosowana", "MetHy Meteorology Hydrology JPRS", "Metic Meteoritics", "Metik Meteoritika", "MetIs Meteornye Issledovaniia", "Metit Meteorites", "MetMa Meteorological Magazine", "Met.. Meteorite - The International Quarterly of Meteorites and Meteorite Science", "MetMo Meteorological Monographs", "Metoo Meteoor", "Metro Metrologia", "MetRT Metallurgical Research &", "MetRu Meteorologische Rundschau", "MetVy Metody Vychislenii", "MetZe Meteorologische Zeitschrift", "MetZp Meteorologicke Zpravy", "Meu1K Observatoire de Meudon", "MeUpp Meddelanden fran Astronomiska Observatorium Uppsala", "MExP. Methods of Experimental Physics", "MFiNM Matematicheskaia Fizika i Nelineinaia Mekhanika", "MGeoE Materials and Geoenvironment", "MGeol Marine Geology", "MGeo. Manuscr. Geod.", "MGIMO Moskovskii Gosudarstvennyi Universitet Institut Mekhaniki Otchet", "MGQG. Marine Geology &", "MGTVM Moskovskij Gosudarstvennyj Tekhnicheskij Universitet Vestnik Seriya Mashinostroenie", "MGTVP Moskovskij Gosudarstvennyj Tekhnicheskij Universitet Vestnik Seriya Priborostroenie", "MGUkr Akademiia Nauk Ukrainskoi SSR Morskie Gidrofizicheskie Issledovaniia", "MGUMN Moskovskii Gosudarstvennyi Universitet Institut Mekhaniki Nauchnye Trudy", "MHD.. Magnetohydrodynamics", "MHITR Mitsubishi Heavy Industries Technical Review", "MiARB Astronomisches Rechen-Institut Heidelberg Mitteilungen Serie B", "MiARI Astronomisches Rechen-Institut Heidelberg Mitteilungen Serie A", "MiBas Mitteilungen der Astronomisch-Meteorologischen Anstalt der Universitaet Basel Astronomische Reihe", "MiBon Mitteilungen der Astronomischen Institute der Universitaet Bonn", "MiBre Astronomische Mitteilungen der Koeniglichen Universitaets-Sternwarte zu Breslau", "MicEc Microbial Ecology", "MicgQ Microgravity Quarterly", "MicNa Microsystems & Nanoengineering", "MicST Microgravity Science and Technology", "MicWa Microwaves", "MIEBA Moscow Izdatel Energiia Biblioteka Avtomatike", "MIEBR Moscow Izdatel Energiia Biblioteka Radioelektronike", "MiElC Military Electronics Countermeasures", "MiGIR Mitteilungen Geod. Institut Rheinischen Friedrich-Wilhelms-Universitaets. Bonn", "MiGoe Astronomische Mitteilungen der Universitaets-Sternwarte zu Goettingen", "MiGra Mitteilungen der Universitaets-Sternwarte Graz", "MiHam Mitteilungen der Hamburger Sternwarte in Bergedorf", "MiHar Mitteilungen der Bruno-H.-Buergel-Sternwarte Hartha DDR", "MiInn Mitteilungen der Sternwarte Innsbruck", "MiINT Minsk Izdatel Nauka i Tekhnika", "MiJen Mitteilungen der Universitaets-Sternwarte zu Jena", "MiJo. Microwave Journal", "MiKon Mitteilungen der Konkoly Sternwarte Budapest-Szabadsaghegy", "Mikro Mikroelektronika", "MikSb Mikroelektronika Sbornik", "MiMic Microscopy and Microanalysis", "MIMPE Modern Instrumentation and Measurements in Physics and Engineering", "MiMue Mitteilungen des Astronomischen Instituts des Universitaet Munster", "MiMun Mitteilungen der Sternwarte Munchen", "MINCV Moscow Izdatel Nauka AN SSSR Chteniia imeni Vernadskogo", "MinDe Mineralium Deposita", "Miner Mineralogia", "MINFI Moscow Izdatel Nauka AN SSR Fizicheskii Institut Trudy", "MINGI Moscow Izdatel Nauka AN SSSR Geologicheskoi Institut Trudy", "MinJ. Mineralogical Journal", "MINMI Moscow Izdatel Nauka AN SSSR Matematicheskii Institut Trudy", "MinM. Mineralogical Magazine", "MinPe Mineralogy and Petrology", "MINTF Moscow Izdatel Nauka Teoreticheskaia Fizika", "MINVS Moscow Izdatel Nauka Vychislitelnaia Seismologiia", "MiOTL Microwave and Optical Technology Letters", "MiPot Mitteilungen des Astrophysikalischen Observatoriums Potsdam", "MiPul Mitteilungen der Nikolai-Hauptsternwarte zu Pulkowo", "MiRe. Microelectronics Reliability", "MiSon Mitteilungen der Sternwarte zu Sonneberg", "MisSp Missiles Spacecraft", "MISST Moscow Izdatel Sviaz Statisticheskaia Teoriia sviazi", "MISTr Matematicheskii Institut imeni Steklova Trudy", "MitAe Max Planck Institut Aeronomie Mitteilungen", "MitAG Mitteilungen der Astronomischen Gesellschaft Hamburg", "MiTau Zentralinstitut fuer Astrophysik Mitteilungen des Karl-Schwarzschild-Observatoriums Tautenburg", "MitSI Mitteilungen Mitt. Staatl. Astr. Sternberg-Inst.", "MitSZ Astronomischen Mitteilungen Eidgen. Sternwarte Zurich", "MiTue Mitteilungen des Astronomischen Instituts der Universitaet Tuebingen", "MitVS Zentralinstitut fuer Astrophysik Sternwarte Sonneberg Mitteilungen ueber Veraenderliche Sterne", "MiWie Mitteilungen der Universitaets-Sternwarte Wien", "MIzLI Moscow Izdatel Legkaia Industriia", "MIzMa Moscow Izdatel Mashinostroenie", "MIzMe Moscow Izdatel Metallurgiia", "MIzMU Moscow Izdatel Moskovskogo Universiteta Pt", "MIzNe Moscow Izdatel Nedra", "MIZNZ Moscow Izdatel Znanie Novoe Zhizni Nauke Tekhnike Seriia Fizika", "MIzRS Moscow Izdatel Radio Sviaz", "MIzSR Moscow Izdatel Sovetskoe Radio", "MiZur Astronomische Mitteilungen der Eidgenö", "MIzVS Moscow Izdatel Vysshaia Shkola", "MJPS. Moldavian Journal of the Physical Sciences", "MKAtl Astrophysics monographs University of Chicago Press", "MLST. Marine Life Science & Technology", "MMAAR Annual Report of the Maria Mitchell Association", "MmARB Memoires of the Academie Royale de Belgique", "MmArc Osservazioni e memorie dell'Osservatorio astrofisico di Arcetri", "MmArS Osservazioni e memorie dell'Osservatorio astrofisico di Arcetri - Appendici", "MmASI Memoirs of the Astronomical Society of India", "MMAS. Mathematical Methods in the Applied Sciences", "MmBAA Memoirs of the British Astronomical Association", "MmCP. Macromolecular Chemistry and Physics", "MMFMP Matematicheskie Metody i Fiziko Mekhanicheskie Polia", "MMI.. Metals and Materials International", "MmKMO Kakioka Magnetic Observatory Memoirs", "MmKyo Memoirs Faculty of Sciences University of Kyoto", "MM... Metals and Materials", "MmMtS Memoires of the Mount Stromlo Observervatory", "MMNA. Mathematical Modelling Numerical Analysis", "MmNap Memorie del R. Osservatorio di Capodimonte in Napoli", "MmRAS Memoirs of the Royal Astronomical Society", "MmSAI Memorie della Societa Astronomica Italiana", "MmSGI Memorie della Societa Geologica Italiana", "MmSSI Memorie della Societa Degli Spettroscopisti Italiani", "MmSS. Memorie della Societa Degli Spettroscopisti Italiani, serie 2", "MMTA. Metallurgical and Materials Transactions A", "MMTB. Metallurgical and Materials Transactions B", "MMTE. Metallurgical and Materials Transactions E", "MMTET Matematicheskoe Modelirovanie i Teoriia Elektricheskikh Tsepei", "MNRAS Monthly Notices of the Royal Astronomical Society", "MNSL. Micro and Nano Systems Letters", "MNSSA Monthly Notes of the Astronomical Society of South Africa", "MNSSJ Monthly notes of the Astronomical Society of South Africa", "ModGe Modern Geology", "ModIn Modern Instrumentation", "ModPh Modern Physics", "MoEBA Moscow Energoatomizdat Biblioteka Automatike", "MoEIT Moskovskii Energeticheskii Institut Trudy", "MoGid Moscow Gidrometeoizdat", "MoIKI Moscow Institut Kosmicheskikh Issledovanii AN SSSR", "MoINI Moscow Izdatel Nauka Issledovaniia Geomagnetizmu Aeronomii i Fizike Solntsa", "MoIPM Moscow Institut Prikladnoi Matematiki AN SSSR", "MoIzA Moscow Izdatel Atomizdat", "MoIzE Moscow Izdatel Energiia", "MoIzK Moscow Izdatel Khimiia", "MoIzM Moscow Izdatel Moskovskogo Universiteta", "MoIzN Moscow Izdatel Nauka", "MoIzS Moscow Izdatel Sviaz", "MoIzT Moscow Izdatel Transport", "MoIzV Moscow Izdatel VINITI", "MoIzZ Moscow Izdatel Znanie", "MolAs Molecular Astrophysics", "MoLLP Moshchnye lazery i lazernaia plazma", "MolPh Molecular Physics", "MoMGK Moscow Mezhduvedomstvennyi Geofizicheskii Komitet", "MoMTN Moscow Mezhdunarodnyi Tsentr Nauchnoi i Tekhnicheskoi Informatsii", "MonAP Communications du Departement d'Astrophysique de la Faculte des Sciences de Mons Mons Astrophysical Papers", "Moon. Moon", "MorGI Morskie Gidrofizicheskie Issledovaniia", "MoSim Molecular Simulation", "MosIZ Moscow IZMIRAN", "MosVI Moscow Voennoe Izdatel", "MosVo Moscow Voenizdat", "MotZe Motortechnische Zeitschrift", "MoVIN Moscow VINITI", "MoVNT Moscow Vychislitelnyi Tsentr AN SSSR", "MoVyS Moscow Vysshaia Shkola", "MPAG. Mathematical Physics, Analysis and Geometry", "MPARp Max Planck Institut fur Astrophysik Report", "MPBu. Minor Planet Bulletin", "MPC.. Minor Planet Circulars", "MPCPS Mathematical Proceedings of the Cambridge Philosophical Society", "MPDS. Mechanics and Physics of Discrete Systems", "MPEC. Minor Planet Electronic Circulars", "MPERp MPE Report", "MPFD. Microdevices: Physics and Fabrication Technologies", "MPLA. Modern Physics Letters A", "MPLB. Modern Physics Letters B", "M&P.. Moon and Planets", "M&PSA Meteoritics and Planetary Science Supplement", "M&PS. Meteoritics and Planetary Science", "MRE.. Materials Research Express", "MROVG Munich R Oldenbourg Verlag GmbH", "MRRev Magnetic Resonance Review", "MRSBu MRS Bulletin", "MRSSP Materials Research Society Symposia Proceedings", "MSAIQ Societa Astronomica Italiana Memorie Quarter", "MSAIS Memorie della Societa Astronomica Italiana Supplementi", "MSB.. Methods in Subnuclear Physics", "MSCTN Meteorological Satellite Center Technical Note", "MSE.. Multiscale Science and Engineering", "MSEnA Materials Science and Engineering A", "MSEnB Materials Science and Engineering B", "MSEnC Materials Science and Engineering C", "MSEng Materials Science and Engineering", "MSEnR Materials Science and Engineering R Reports", "MSF.. Materials Science Forum", "MSHT. Metal Science and Heat Treatment", "MSHTM Metal Science and Heat Treatment of Metals", "MSMFR Milano Seminario Matematico e Fisico Rendiconti", "MSM.. Mechanics of Structures and Machines", "MSMSE Modelling Simul. Mater. Sci. Eng.", "Msngr The Messenger", "MSPE. Management Systems in Production Engineering", "MSRSL Memoires of the Societe Royale des Sciences de Liege", "MSRv. Mass Spectrometry Reviews", "MSSP. Mechanical Systems and Signal Processing", "MsT.. Masters Thesis", "MTA.. Metallurgical Transactions A", "MTB.. Metallurgical Transactions B", "MTDM. Mechanics of Time-Dependent Materials", "MTEng Microscale Thermophysical Engineering", "MT... Metallurgical Transactions", "MTObM Metallovedenie i Termicheskaia Obrabotka Metallov", "MtoIs Meteorologicheskie Issledovaniia", "MTPMM Metallurgical Transactions Physical Metallurgy Materials Science", "MTRMA Meteor Forschungsergebnisse Reihe B Meteorologie und Aeronomie", "MtSOM Mount Stromlo Observatory Mimeographs", "MtWAR Mount Wilson and Palomar Observatory Annual Report", "MulSE Multiscale Science and Engineering", "MuMat Multifunctional Materials", "MUPB. Moscow University Physics Bulletin", "MURJE Mehran University Research Journal of Engineering and Technology", "MUSS. Muenchen Universitaets Schriften Serie", "MUVSK Moskovskii Universitet Vestnik Seriia Khimiia", "MVMP. Methoden und Verfahren der Mathematischen Physik", "MVSFA Moskovskii Universitet Vestnik Seriia Fizika Astronomiia", "MVSMM Moskovskii Universitet Vestnik Seriia Matematika Mekhanika", "MWE.. Mine Water and The Environment", "MWGBI Mannheim West Germany Bibliographisches Institut AG", "MWOAR Mount Wilson Observatory Annual Report", "MWRv. Monthly Weather Review", "NaAIJ Nanjing Aeronautical Institute Journal", "NacEl Nachrichten Elektronik", "NacZe Nachrichtentechnische Zeitschrift", "NaGe. National Geographic", "NanMe Nanomanufacturing and Metrology", "NanoA Nanoscale Advances", "NanoF Nano Futures", "NanoH Nanoscale Horizons", "NanoL Nano Letters", "Nanop Nanophotonics", "NanoR Nanoscale Reports", "Nanos Nanoscale", "Nanot Nanotechnology", "Nansp Nanospectroscopy", "NanSy Nanoelectromechanical Systems", "Nanth Nanothermoelectrics", "NapCo Osservatorio Astronomico di Capodimonte Napoli Contributi Astronomici", "NaPho Nature Photonics", "NASCL NASA Circular Letter", "NASRP NASA Reference Publication", "NASSP NASA Special Publication", "NASTM NASA Technical Memo", "NatAs Nature Astronomy", "NatBi Nature Biotechnology", "NatCC Nature Climate Change", "NatCh Nature Chemistry", "NatCo Nature Communications", "NatEn Nature Energy", "NatGe Nature Geoscience", "NatH. Natural History", "NATi. Nordisk Astronomisk Tidsskrift", "NatMa Nature Materials", "NATM. Nonlinear Analysis Theory Methods Applications", "NatNa Nature Nanotechnology", "NatPh Nature Physics", "NatRM Nature Reviews Materials", "NatRP Nature Reviews Physics", "NatSc Natural Science", "NatSR Scientific Reports", "Natur Nature", "NavAu Navigation Australia", "Navig Navigation", "NavPa Navigation Paris", "NAZ.. Nachrichtenblatt der Astronomischen Zentralstelle Heidelberg", "NBSSP National Bureau of Standards Special Publication", "NBSTN National Bureau of Standards Technical Note", "NCE.. Noise Control Engineering Journal", "NCimA Nuovo Cimento A Serie", "NCimB Nuovo Cimento B Serie", "NCimC Nuovo Cimento C Geophysics Space Physics C", "NCimD Nuovo Cimento D Serie", "NCim. Il Nuovo Cimento", "NCimL Nuovo Cimento Lettere", "NCimR Nuovo Cimento Rivista Serie", "NCimS Nuovo Cimento Serie", "NCNS. Network: Computation in Neural Systems", "NDS.. Nuclear Data Sheets", "NDTI. Nondestructive Testing and Evaluation International", "NDT.. Nuclear Data Tables", "NeuL. Neuroscience Letters", "NewA. New Astronomy", "NewAR New Astronomy Reviews", "NewSc New Scientist", "NewSp New Space", "NGFAW Nachrichtentechnische Gesellschaft Fachtagung ueber Antennen", "NHCWP North Hollywood Calif Western Periodicals Co", "NHESD Natural Hazards and Earth System Sciences Discussions", "NHESS Natural Hazards and Earth System Sciences", "NHTA. Numerical Heat Transfer Part A - Applications", "NHTB. Numerical Heat Transfer Part B - Fundamentals", "Nic1K Observatoire de Nice", "nicm.rSpace Telescope NICMOS Instrument Science Report", "NihOC Nihondaira Observatory Circular", "NIMPA Nuclear Instruments and Methods in Physics Research A", "NIMPB Nuclear Instruments and Methods in Physics Research B", "NIMPR Nuclear Instruments and Methods in Physics Research", "NInfo Nauchnye Informatsii", "NINT. Nablyud. Iskusstvennykh Nebesnykh Tel", "NISTJ National Institute of Standards and Technology Journal of Research", "NISZ. Nabliudeniia Iskusstvennykh Sputnikov Zemli", "NIUNA Napoli Istituto Universitario Navale Annali", "NJMM. Neues Jahrbuch Mineralogie Monatshefte", "NJPh. New Journal of Physics", "NJSR. Netherlands Journal of Sea Research", "NKG.. Nihon Kessho Gakkaishi", "NLE.. Nonlinear Engineering", "NML.. Nano-Micro Letters", "NMTE. Nanoscale and Microscale Thermophysical Engineering", "NN... Neural Networks", "noao.pNOAO Proposal", "NoDef Not Defined", "NOGB. Nachr. Olbers-Ges. Bremen", "NOHIC Nizamiah JAPAL Rangapur Observatories Hyderabad India Contributions", "NoIGG Novosibirsk Institut Geologii i Geofiziki SO AN SSSR", "NoIzN Novosibirsk Izdatel Nauka", "Nonli Nonlinearity", "NoPar Notes et Informations", "NOSCA Observaciones Astronomicas Hechas en el Observatorio de Santiago de Chile", "nova.pAAS Nova Highlights", "NovIG Novosibirsk Institut Gidrodinamiki SO AN SSSR Dinamika Sploshnoi Sredy", "NPAE. Nuclear Physics and Atomic Energy", "NPGD. Nonlinear Processes in Geophysics Discussions", "NPGeo Nonlinear Processes in Geophysics", "NPhS. Nature Physical Science", "npjAM npj Asia Materials", "npjCA npj Climate and Atmospheric Science", "npjCM npj Computational Mathematics", "npjMG npj Microgravity", "npjQI npj Quantum Information", "npjQM npj Quantum Materials", "npjRM npj Regenerative Medicine", "npjSL npj Scientific of Learning", "NPNDS Neutron Physics and Nuclear Data in Science and Technology", "NPPP. Nuclear and Particle Physics Proceedings", "NPPSB Nonequilibrium Problems in the Physical Sciences and Biology", "NPUJ. Northwestern Polytechnical University Journal", "NRA&A Nouvelle Revue d'Aeronautique et d'Astronautique", "NRAON National Radio Astronomy Observatory Newsletter", "nrao.pNational Radio Astronomy Observatory Press Release", "NRAOP National Radio Astronomy Observatory Publications", "NRAOR National Radio Astronomy Observatory Reprints", "NRAOW National Radio Astronomy Observatory Workshop", "NRL.. Nanoscale Research Letters", "NROA. Nouvelle Revue d'Optique Appliquee", "NROpt Nouvelle Revue d'Optique", "NRRv. Naval Research Reviews", "NRvEE Nature Reviews Earth and Environment", "NRvHM New Review of Hypermedia and Multimedia", "NSAP. Nonlinear, Statistical and Applied Physics", "NSE.. Nuclear Science Engineering", "NSMMT Nanoscale Systems Mathematical Modeling Theory and Applications", "NSM.. Novel Superconducting Materials", "NSSDC NSSDC Publication", "NSTBL Notes Scientifiques et Techniques du Bureau des Longitudes", "NSTIM Notes Scientifiques et Techniques de l'Institut de Mecanique Celeste", "NTA.. Nonlinear Theory and Its Applications, IEICE", "NTCo. Nondestructive Testing Communications", "NTE.. Nondestructive Testing and Evaluation", "NTN.. New Technology News", "NTTRv NTT Review", "NTvA. Novaya tekhn. v astron.", "NUAAJ Nanjing University Aeronautics and Astronautics Journal", "NuAlg Numerical Algorithms", "NucFS Nuclear Fusion Special Supplement", "NucFu Nuclear Fusion", "NucIM Nuclear Instruments and Methods", "nucl.earXiv Nuclear Experiment e-prints", "nucl.tarXiv Nuclear Theory e-prints", "NucPh Nuclear Physics", "NucTe Nuclear Technology", "NucTF Nuclear Technology Fusion", "NUDTJ National University Defense Technology Journal", "NuEnD Nuclear Engineering and Design", "NUFEM Nagoya University Faculty Engineering Memoirs", "NuGeo Nuclear Geophysics", "NuMat Numerische Mathematik", "NumHT Numerical Heat Transfer", "NuPhA Nuclear Physics A", "NuPhB Nuclear Physics B", "NuPhS Nuclear Physics B Proceedings Supplements", "NURIA Nagoya University Research Institute of Atmospherics Proceedings", "NUSEM Nagoya University School Engineering Memoirs", "NVS.. Nachrichtenblatt der Vereinigung der Sternfreunde", "NWGot Nachrichten von der Gesellschaft der Wissenschaften zu Goettingen, Mathematisch-Physikalische Klasse", "NW... Naturwissenschaften", "NYASA Annals of the New York Academy of Sciences", "NZJS. New Zealand Journal of Science", "OAcJ. The Open Acoustics Journal", "OACSC Observatorio Astronomico de Cordoba, Serie Contribuciones", "OAeEJ The Open Aerospace Engineering Journal", "OAJ.. The Open Astronomy Journal", "OAORP Observations astronomiques faites a l'Observatoire royal de Paris", "OAPJ. The Open Applied Physics Journal", "OAP.. Odessa Astronomical Publications", "OASJ. The Open Atmospheric Science Journal", "OAst. Open Astronomy", "OAWMN Oesterreichische Akademie Wissenschaften Mathematisch naturwissenschaftliche Klasse Sitzungsberichte Abteilung", "OBN1K Observatoire de Besancon - CNES", "Obser Observation pi", "Obs.. The Observatory", "ObVyS Obzory Vysokotemperaturnoi Sverkhprovodimosti", "OCAM. Optimal Control Applications and Methods", "OccN. Occultation Newsletter, International Occultation Timing Association (IOTA)", "OcDyn Ocean Dynamics", "Ocean Oceanus Summer", "OcEng Ocean Engineering", "Ocgy. Oceanology", "OcMod Ocean Modelling", "OCMPJ The Open Condensed Matter Physics Journal", "OCPJ. The Open Chemical Physics Journal", "OcScD Ocean Science Discussions", "OcSci Ocean Science", "OCSC. OAA Compututer Section Circular", "OCzAS Ondrejov Czechoslovakia Czechoslovak Academy Sciences CAS Astronomical Institute Publications", "Oecol Oecologia", "OED.. El Observador de Estrellas Dobles", "OEJV. Open European Journal on Variable Stars", "OEng. Open Engineering", "OERv. Opto-Electronics Review", "OExpr Optics Express", "OGC.. The Open Geology Journal", "OGeo. Open Geosciences", "OHJ.. The Open Hydrology Journal", "OIDP. Optoelectronics, Instrumentation and Data Processing", "OISNP Oxford Pergamon Press International Series on Natural Philosophy", "OISTS Oxford Pergamon Press International Tables Selected Constants", "OJA.. Open Journal of Acoustics", "OJAp. The Open Journal of Astrophysics", "OJAS. Open Journal of Applied Sciences", "OJBp. Open Journal of Biophysics", "OJFD. Open Journal of Fluid Dynamics", "OJGeo Open Journal of Geology", "OJMic Open Journal of Microphysics", "Okean Okeanologiia", "OLEB. Origins of Life and Evolution of the Biosphere", "OMatS Open Material Sciences", "OMEJ. The Open Mechanical Engineering Journal", "OMExp Optical Materials Express", "OMJ.. The Open Mechanics Journal", "OMnJ. The Open Mineralogy Journal", "OMN.. Optofluidics, Microfluidics and Nanofluidics", "OMPJ. The Open Mineral Processing Journal", "OMX.. Optical Materials: X", "ONCP. Old and New Concepts of Physics", "ONERA ONERA TP", "ONJ.. The Open Nanoscience Journal", "ONMJ. The Open Numerical Methods Journal", "ONPPJ The Open Nuclear &", "ONRAS Occasional Notes of the Royal Astronomical Society", "OOcJ. The Open Oceanagraphy Journalurnal", "OOEJ. The Open Ocean Engineering Journal", "OOJ.. The Open Optics Journal", "OOPS. Fundamentalnye Osnovy Opticheskoi Pamiati i Sredy", "OOVRO Observations Owens Valley Radio Observatory", "OPalJ The Open Paleontology Journal", "OpAtO Optika Atmosfery i Okeana", "OpAt. Optika Atmosfery", "OPCJ. The Open Physical Chemistry Journal", "OPhyJ Open Physics Journal", "OPhy. Open Physics", "OPJ.. Optics and Photonics Journal", "OpMeP Optiko Mekhanicheskaia Promyshlennost", "OPPJ. The Open Plasma Physics Journal", "OPP.. Organic Photonics and Photovoltaics", "OpPuT Optoelektronika i Poluprovodnikovaia Tekhnika", "OpSCN Optical Sciences Center Newsletter", "OpSp. Optika i Spektroskopiia", "OptCo Optics Communications", "OptEL Optoelectronics Letters", "OptEn Optical Engineering", "Optfl Optofluidics", "OptFT Optical Fiber Technology", "Optic Optica", "Optik Optik", "OptLE Optics and Lasers in Engineering", "OptL. Optics Letters", "OptLT Optics Laser Technology", "OptMa Optical Materials", "OptNa Optical Nanoscopy", "OptN. Optics News", "OptPE Optical Physics and Engineering", "OptPN Optics & Photonics News", "OptRv Optical Review", "OptSp Optics and Spectroscopy", "OQEle Optical and Quantum Electronics", "OREJ. The Open Renewable Energy Journal", "OrGeo Organic Geochemistry", "Orion Orion: Zeitschrift fü", "Ori.. Orione", "OrLi. Origins of Life", "OrNav Ortung und Navigation", "ORROE Occasional Reports of the Royal Observatory Edinburgh", "ORSJ. The Open Remote Sensing Journal", "OSFOT Observatoire de la Socié", "OSID. Open Systems and Information Dynamics", "Osir. Osiris", "OSJaJ Oceanographical Society of Japan Journal", "OSJ.. Ocean Science Journal", "OslR. Institute of Theoretical Astrophysics Blindern Oslo Reports", "OSpeJ The Open Spectroscopy Journal", "OSPJ. The Open Signal Processing Journal", "OSSJ. The Open Surface Science Journal", "oss..pNASA OSS Proposal", "OSUC. Observationes Astronomicas Insitutas in Specula Universitatis Caesareae Dorpatensis", "OSuJ. The Open Superconductors Journal", "OsUTR Osaka University Technology Reports", "OtObI Otbor i Obrabotka Informatsii", "O&T.. Observations et Travaux", "OtPI. Otbor i Peredacha Informatsii", "OVS.. Observation of Variable Stars", "OxfOO Oxford University Observatory Observations", "PABei Progress in Astronomy", "PAB.. Publications of The Astrophysics Branch Ottawa", "PadCR Osservatorio Astronomico di Padova Comunicazioni e Rassegne", "PADEU Publications of the Astronomy Department of the Eotvos Lorand University", "PAIB. Publications of the Astronomy Institute of Bonn", "PAICU Publications of the Astronomical Institute of the Charles University", "PAICz Publications of the Astronomical Institute of the Czechoslovak Academy of Sciences", "PAIJ. Physics &", "PAIKH Publikationen des Astrophysikalischen Instituts Koenigstuhl-Heidelberg", "Palai PALAIOS", "PAllO Publications of the Allegheny Observatory of the University of Pittsburgh", "PalOc Paleoceanography", "PAM.. Physics of Atoms and Molecules", "PAN.. Physics of Atomic Nuclei", "PAOS. Publications of the Astronomical Observatory of Sarajevo", "PApCh Pure & Applied Chemistry", "PApGe Pure and Applied Geophysics", "PAPhS Proceedings of the American Philosophical Society", "PApOp Pure Applied Optics", "PA... Popular Astronomy", "PApPh Pure and Applied Physics", "ParC. Parallel Computing", "PaReL Pattern Recognition Letters", "PASAM Polish Academy of Science Arch Mech", "PASA. Publications of the Astronomical Society of Australia", "PASAS Polish Academy of Science Artificial Satellites", "PASAu Proceedings of the Astronomical Society of Australia", "PASIG Polish Academy of Sciences Institute of Geophysics Publications", "PASJ. Publications of the Astronomical Society of Japan", "PASK. Publications of the Academy of Science Kasakstan Sect. Astrobotanics", "PASP. Publications of the Astronomical Society of the Pacific", "PASRB Publications of the Astronomical Society Rudjer Boskovic", "PAth. Publications of the Laborotory of Astronomy University of Athens", "PATid PATid___Popular Astronomisk Tidskrift", "PAUTx University of Texas Publications in Astronomy", "PAZh. Pisma v Astronomicheskii Zhurnal", "PBeiO Publications of the Beijing Astronomical Observatory", "PBosO Publications of the Bosscha Observatory Lembang Indonesia", "PBrn. Publications of the Astronomical Institute of the University of Borneo", "PCAS. Proceedings of the California Academy of Sciences", "PCat. Publications of Osservatorio Astrofisico di Catania", "PCCP. Physical Chemistry Chemical Physics (Incorporating Faraday Transactions)", "PCEA. Physics and Chemistry of the Earth A", "PCEB. Physics and Chemistry of the Earth B", "PCEC. Physics and Chemistry of the Earth C", "PCED. Physics and Chemistry of the Earth Delta", "PCE.. Physics and Chemistry of the Earth", "PCHEI Physics in Collision: High-Energy ee/ep/pp Interactions", "PCinO Publications of the Cincinnati Observatory", "PCMLA Physics and Chemistry of Materials with Low-Dimensional Structures Series A", "PCMLB Physics and Chemistry of Materials with Low-Dimensional Structures Series B", "PCMLC Physics and Chemistry of Materials with Low-Dimensional Structures Series C", "PCMLD Physics and Chemistry of Materials with Low-Dimensional Structures", "PCM.. Physics and Chemistry of Minerals", "PCMPS Protection and Control of Modern Power Systems", "PCooO Publications of the Cook Observatory", "PCopO Publikationer og mindre Meddeler fra Kobenhavns Observatorium", "PCPS. Proceedings of the Cambridge Philosophical Society", "PCSE. Physical Chemistry: Science and Engineering", "PCS.. Physics and Chemistry in Space", "PCTM. Physikalisch-Chemische Trenn- und Messmethoden", "PCZNN Politechnika Czestochowska Zeszyty Naukowe Nauki Techniczne Mechanika", "PDAO. Publications of the Dominion Astrophysical Observatory Victoria", "PDAUC Publications of the Department of Astronomy University of Chile", "PDDO. Publications of the David Dunlap Observatory", "PDHO. Publications of Debrecen Heliophysical Observatory", "PDiff Powder Diffraction", "PDO.. Publications of the Dominion Observatory Ottawa", "PDreO Publications of the Dresden Observatory", "PDSS. NASA Planetary Data System", "PDU.. Physics of the Dark Universe", "PEEI. Physics and Evolution of the Earth's Interior", "PEFPN Physica Energiae Fortis et Physica Nuclearis", "PEPI. Physics of the Earth and Planetary Interiors", "PEPS. Progress in Earth and Planetary Science", "PerCo Perkins Observatory Contributions", "PerMS Perceptual Motor Skills", "PerOC Perth Observatory Communication", "PFG.. PFG - Journal of Photogrammetry, Remote Sensing and Geoinformation Science", "PFP.. Philosophy and Foundations of Physics", "PFR.. Plasma and Fusion Research", "PGAOI Pulkovo Glavnaia Astronomicheskaia Observatoriia Izvestiia", "PGC.. Papers on Global Change IGBP", "PGenA Publications of the Observatoire Geneve Series A", "PGenB Publications of the Observatoire Geneve Series B", "PgE.. Photogrammetric Engineering", "PgERS Photogrammetric Engineering and Remote Sensing", "PGLO. Publications of the Goethe Link Observatory", "PGooO Publications of the Goodsell Observatory, Carleton College", "Pg... Photogrammetria", "PGro. Publications of the Kapteyn Astronomical Laboratory Groningen", "PGZNM Politechnika Gdanska Zeszyty Naukowe Mechanika", "PhApp Physics and its Applications", "PhaTr Phase Transitions, A Multinational Journal", "PhBio Physical Biology", "PhB.. Physics Bulletin", "PhChE Physics and Chemistry of Earth", "PhChH PhysicoChemical Hydrodynamics", "PhDT. Ph.D. Thesis", "PhFlA Physics of Fluids A", "PhFlB Physics of Fluids B", "PhFl. Physics of Fluids", "PhiJR Philips Journal Research", "PhInt Photo Interpretation", "PhiRR Philips Research Reports", "PhiTR Philips Technical Review", "PhLA. Physics Letters A", "PhLB. Physics Letters B", "PhLC. Physics Letters Section C Physics Reports C", "PhLF. Physics Laser Fusion", "PhL.. Physics Letters", "PhLRv Physics of Life Reviews", "PhMet Physics of Metals", "PhNan Photonics and Nanostructures", "Phoen Phoenix Mitteilungsblatt fuer Veraenderlichenbeobachter", "PhoSp Photonics Spectra", "Phot. Photoniques", "PhPl. Physics of Plasmas", "PhP.. Physics in Perspective", "PhPro Physics Procedia", "PhQE. Physics of Quantum Electronics", "PhR.. Physics Reports", "PhRvA Physical Review A", "PhRvB Physical Review B", "PhRvC Physical Review C", "PhRvD Physical Review D", "PhRvE Physical Review E", "PhRvF Physical Review Fluids", "PhRvI Physical Review Series I", "PhRvL Physical Review Letters", "PhRvM Physical Review Materials", "PhRv. Physical Review", "PhRvP Physical Review Applied", "PhRvR Physical Review Research", "PhRvS Physical Review Accelerators and Beams", "PhRvX Physical Review X", "PhSen Photonic Sensors", "PhSRv Physical Sciences Reviews", "PhSS. Physics of the Solid State", "PhST. Physica Scripta Volume T", "PhTea The Physics Teacher", "PhTec Physics in Technology", "PhT.. Physics Today", "PhuZ. Physik in unserer Zeit", "PhyA. Physica A Statistical Mechanics and its Applications", "PhyBC Physica B+C", "PhyBl Physikalische Blä", "PhyB. Physica B Condensed Matter", "PhyC. Physica C Superconductivity", "PhyD. Physica D Nonlinear Phenomena", "PhyEd Physics Education", "PhyE. Physica E Low-Dimensional Systems and Nanostructures", "PhyEs Physics Essays", "PhyG. Physikalische Gesellschaft", "PhyGZ Physikalische Gesellschaft Zü", "PhyIn Physics International", "PhylS Physiologist Supplement", "PhyMe Physical Mesomechanics", "PhyM. Physiological Measurement", "PhyN. Physics Notes", "PhyNr Physica Norvegica", "PhyNY Physics New York", "PhyOJ Physics Online Journal", "PhyO. Physics Open", "Phy.. Physica", "PhyR. Physical Research", "PhySB Physica Scripta B", "physicarXiv Physics e-prints", "Physi Physics", "PhyS. Physica Scripta", "PhyU. Physics Uspekhi", "PhyW. Physics World", "PhyZ. Physikalische Zeitschrift", "PIAGL Publications de l'Institut d'Astronomie et de Geophysique Georges Lemaitre", "PIAHS Proceedings of the International Association of Hydrological Sciences", "PIASE Proceedings of the Indian Academy of Science, Earth and Planetary Sciences", "PIGP. Proceedings of the Institute of General Physics, Adademy of the Sciences of Russia", "PILOM Proceedings of the International Latitude Observatory at Mizusawa", "PINSA Proceedings of the Indian National Science Academy Part A", "PINSB Proceedings of the Indian National Science Academy Part B", "PIRE. Proceedings of the IRE", "PIstO Publications of the Istanbul University Observatory", "PJAB. Proceeding of the Japan Academy, Series B", "PJGeo Pakistan Journal of Geology", "PJMPE Polish Journal of Medical Physics And Engineering", "PKAO. Pyublikatskii Kievskoj Astronomicheskoj Observatorii", "PKAS. Publication of Korean Astronomical Society", "PKCat Publ. House Czech. Acad. Sci.", "PKirO Publications of the Kirkwood Observatory of Indiana University", "PKM.. Physik der Kondensierten Materie", "PKUJ. Publikationen der Kaiserlichen Universitaets-Sternwarte Jurjew", "PlAst Planetary Astronomy", "PLDS. Physics of Low-Dimensional Structures", "PLicO Publications of Lick Observatory", "PLoSO PLoS ONE", "PlPh. Plasma Physics", "PlPhR Plasma Physics Reports", "PLPla Observatory Astronomical La Plata Series Astronomies", "PlREx Plasma Research Express", "PlR.. Planetary Report", "PLSCB PLoS Computational Biology", "PlSci Planetary Science", "PlST. Plasma Science and Technology", "PMagA Philosophical Magazine, Part A", "PMagB Philosophical Magazine, Part B", "PMagL Philosophical Magazine Letters", "PMag. Philosophical Magazine", "PManO Publications of the Manila Observatory", "PMatP Progress in Mathematical Physics", "PMB.. Physics in Medicine and Biology", "PMcCO Publications of the Leander McCormick Observatory", "PMCPA PMC Physics A", "PMCPB PMC Physics B", "PMCPC PMC Physics C", "PMetP Progress in Metal Physics", "PMetR Papers in Meteorological Research", "PMG.. Papers Meteorology Geophysics", "PMMin Proper Motion Survey, University of Minnesota", "PMM.. Physics of Metals and Metallography", "PMO.. Perth Meridien Observations", "PMP.. Powder Metallurgy Progress", "PMRP. Progress in Medical Radiation Physics", "PMTF. PMTF Zhurnal Prikladnoi Mekhaniki i Tekhnicheskoi Fiziki", "PMtv. Facultad de Humanidades y Ciencias Universidad de la Republica Montevideo", "PMunO Publications of the Munich Observatory", "PNAOC Publications of the National Astronomical Observatories of China", "PNAOJ Publications of the National Astronomical Observatory of Japan", "PNAS. Proceedings of the National Academy of Science", "PNAU. Proceedings of National Aviation University", "PnGid Pnevmatika i Gidravlika", "PNSBP Proceedings of the National Society of Black Physicists", "PNSci Progress in Natural Science", "PNSC. Proceedings of the National Science Council", "POANC Publications of the Observatorie Astronomie Nacional Cerro Calan", "PoAn. Postepy Astronautyki", "PoAst Postepy Astronomii Krakow", "POBeo Publications de l'Observatoire Astronomique de Beograd", "POBol Publications of dell'Osservatorio Astronomie de Bologna", "PoCom Polymer Composites", "PODE. Dun Echt Observatory Publications", "POHel Publications of the Astronomical Observatory Helsinki", "POHP. Publications of the Observatoire Haute-Provence", "PolAt Pollution Atmospherique", "PolPh Polymer Physics", "PolPP Poluprovodnikovye Pribory i ikh Primenenie", "PolRe National Institute Polar Research Memoirs", "PolSc Polar Science", "PolSi Poliarnye Siianiia", "PolTM Poluprovodnikovaia Tekhnika i Mikroelektronika", "POLyo Publications of the Observatoire de Lyon", "Polyt Polytechnica", "PomAK Pomiary Automatyka Kontrola", "PoMec Polymer Mechanics", "POMic Publications of Michigan Observatory", "POMil Pubblicazioni dell'Osservatorio Astronomico di Milano-Merate", "POMin Publications of the Astronomical Observatory University of Minnesota", "POPad Pubblicazioni dell'Osservatorio Astronomico di Padova", "POPot Publikationen des Astrophysikalischen Observatoriums zu Potsdam", "POrCo Progress in Organic Coatings", "PorMe Poroshkovaia Metallurgiia", "PoS.. Proceedings of Science", "POStr Publication de l'Observatoire de Strasbourg", "POTor Pubblicazioni Varie Fuori Serie dell'Osservatorio Astronomico di Torino", "PotUr Potins d'Uranie", "POVRO Publications of the Owens Valley Observatory", "POxf. Publications University of Oxford Department of Astrophysics", "PPCAS Publication of the Pomona College Astronomical Society", "PPCF. Plasma Physics and Controlled Fusion", "PPcPp Progress in Photochemistry and Photophysics", "PPEE. Periodica Polytechnica Electrical Engineering", "PPhI. Particle Physics Insights", "PPh.. Papers in Physics", "PPHTS Physical Properties of High Temperature Superconductors", "PPME. Periodica Polytechnica Mechanical Engineering", "PPMtO Publications of the Purple Mountain Observatory", "PPNL. Physics of Particles and Nuclei Letters", "PPN.. Physics of Particles and Nuclei", "PPPLR Princeton Plasma Physics Laboratory Report", "PPP.. Palaeogeography Palaeoclimatology Palaeoecology", "PPSA. Proceedings of the Physical Society A", "PPSB. Proceedings of the Physical Society B", "PPSL. Proceedings of the Physical Society of London", "PPS.. Proceedings of the Physical Society", "PPTE. Periodica Polytechnica Transportation Engineering", "PQE.. Progress in Quantum Electronics", "PraAc Prague Academia", "PrAA. Progress in Astronautics and Aeronautics", "PrAeS Progress in Aerospace Sciences", "PrAiA Problemy Arktiki i Antarktiki", "Prama Pramana", "PrA.. Progress in Astronomy", "PrAst Practical Astronomy", "PrAtO Leningrad Gidrometeoizdat Sovremennye Problemy Atmosfernoi Optiki", "PrBio Problemy Bioniki", "PrCmg Problems of Cosmogeny", "PRCO. Publications of the Riverview College Observatory", "PrDRV Problemy Difraktsii i Rasprostraneniia Voln", "PrECS Progress in Energy and Combustion Science", "PrEM. Probabilistic Engineering Mechanics", "PrEne Progress in Energy", "PrEPS Procedia Earth and Planetary Science", "PreR. Precambrian Research", "PrExP Propellants and Explosives Pyrotechnics", "PrEx. Propellants and Explosives", "PrFA. Problemy Fiziki Atmosfery", "PrFKL Problemy Iadernoi Fiziki i Kosmicheskikh Luchei", "PRFVT Plastiques Renforces Fibres de Verre Textile", "PRIAA Proceedings of the Royal Irish Academy Section A", "PRIAN Proceedings of the Research Institute of Atmospherics, Nagoya University", "Prib. Priborostroenie", "PrICA Proceedings of the ICA", "PriMM Prikladnaia Matematika i Mekhanika", "PriMP Prikladnaia Matematika i Programmirovanie", "PriM. Prikladnaia Mekhanika", "PRI.. Physics Research International", "Prir. Priroda", "PriTE Pribory i Tekhnika Eksperimenta", "Priv. Private Communication", "PrKFi Problemy Kosmicheskoi Fiziki", "PrMas Problemy Mashinostroeniia", "PrMS. Progress in Materials Science", "PRNAA Proceedings of the Royal Netherlands Academy of Arts and Sciences", "PrOce Progress in Oceanography", "PROE. Publications of the Royal Observatory of Edinburgh", "PrOpt Progess in Optics", "ProTe Promyshlennaia Teplotekhnika", "PRPER Physical Review Physics Education Research", "PrPG. Progress in Physical Geography", "PrPh. Progress in Physics", "PrPNP Progress in Particle and Nuclear Physics", "PRP.. Pattern Recognition in Physics", "PrPro Problemy Prochnosti", "PrSP. Problemy Sluchainogo Poiska", "PrSS. Progress In Surface Science", "PRSTP Physical Review Special Topics Physics Education", "PrTE. Problemy Tekhnicheskoi Elektrodinamiki", "PrTGE Problemy Teorii Gravitatsii i Elementarnykh Chastits", "PrTPT Problemy Teploenergetiki i Prikladnoi Teplofiziki", "PrUkr Akademiia Nauk Ukrains koi RSR Dopovidi Matematika Prirodoznavstvo Tekhnichni Nauki", "PrVP. Proceedings of Vibration Problems", "PSAIL Pubblicazioni della Stazione Astronomica Internazionale di Latitudine", "PSAO. Publications of the Shaanxi Astronomical Observatory", "PSCDS Publication Speciale du Centre de Donnees Stellaires", "PSCEC Physical Sciences Series of the Commission of European Communities", "PSci. Pour la Science", "PShaO Publications of the Shaanxi Astronomy Observatory", "PSJ.. The Planetary Science Journal", "PSL.. Physics of Solids and Liquids", "PSprO Publications of the Sproul Observatory", "PSSAR Physica Status Solidi Applied Research", "PSSBR Physica Status Solidi B Basic Research", "PSSCR Physica Status Solidi C Current Topics", "PSSNN Poliarnye Siianiia i Svechenie Nochnogo Neba", "P&SS. Planetary and Space Science", "PSSRR Physica Status Solidi Rapid Research Letters", "PSST. Plasma Sources Science Technology", "PSZNM Politechnika Slaska Zeszyty Naukowe Mechanika", "PTarO Publications of the Tartu Astrofizica Observatory", "PTasO Publications of the Tashkent Astronomical Observatory", "PTCP. Progress in Theoretical Chemistry and Physics", "PTEP. Progress of Theoretical and Experimental Physics", "PThPh Progress of Theoretical Physics", "PThPS Progress of Theoretical Physics Supplement", "PTPPB Physics and Technology of Particle and Photon Beams", "PUAMA Poznan Uniwersytet im Adama Mickiewicza Seria Akustyka", "PUAMF Poznan Uniwersytet im Adama Mickiewicza Seria Fizyka", "PUAms Publications of the Astronomical Institute of the University of Amsterdam", "PUPFA Publications of the University of Pennsylvania Flower Astronomical Observatory", "PUSK. Publication der Koeniglichen Sternwarte in Kiel", "PUSNO Publications of the U.S. Naval Observatory Second Series", "PVasO Publications of the Vassar College Observatory", "PVSS. Royal Astronomical Society of New Zealand Publications of Variable Star Section", "PVVO. Publications of the Van Vleck Observatory", "PWasO Publications of the Washburn Observatory", "PWHHO Publications of West Hendon House Observatory, Sunderland", "PWP.. Physics of Wave Phenomena", "PW&SO Publications of the Warner & Swasey Observatory", "PYerO Publications of the Yerkes Observatory", "PYunO Publications of the Yunnan Observatory", "PZETF Pisma v Zhurnal Eksperimentalnoi i Teoreticheskoi Fiziki", "PZhTF Pisma v Zhurnal Tekhnischeskoi Fiziki", "PZ... Peremennye Zvezdy", "PZP.. Peremennye Zvezdy Prilozhenie", "QApMa Quarterly of Applied Mathematics", "QBSA. Quarterly Bulletin on Solar Activity", "QBS.. Quantum Beam Science", "QJMAM Quarterly Journal of Mechanics and Applied Mathematics", "QJMat The Quarterly Journal of Mathematics", "QJPAM The Quarterly Journal of Pure and Applied Mathematics", "QJRAS Quarterly Journal of the Royal Astronomical Society", "QJRMS Quarterly Journal of the Royal Meteorological Society", "QMQM. Quantum Measurements and Quantum Metrology", "QREI. Quality Reliability Engineering International", "QSRv. Quaternary Science Reviews", "QS&T. Quantum Science and Technology", "QuEle Quantum Electronics", "QuFin Quantitative Finance", "QuInt Quaternary International", "QuIP. Quantum Information Processing", "QuOpt Quantum Optics", "QuRes Quaternary Research", "RAA.. Research in Astronomy and Astrophysics", "RadA. Radio Astronomy: Journal of the Society of Amateur Radio Astronomers,", "RadEf Radiation Effects", "Radel Radioehlektronika", "RadIn Radio industry", "RadM. Radiation Measurements", "Rad.. Radiant, Journal of the Dutch Meteor Society", "RadR. Radiation Research", "RaEE. Radio and Electronic Engineer", "RaEl. Radiotekhnika i Elektronika", "RaF.. Radiofizika", "RALR. Rutherford Appleton Laboratory Report", "RAOU. Recherches Astronomiques de l'Observatoire d'Utrecht", "RaPC. Radiation Physics and Chemistry", "RA... Ricerche Astronomiche", "RaRLJ Radio Research Laboratory, Journal", "RaRLR Radio Research Laboratory, Review", "RAROC Results of Astronomical Observations made at the Royal Observatory, Cape of Good Hope", "RArtR Rock Art Research", "RaSc. Radio Science", "RaT.. Radiotekhnika", "RBrFi Revista Brasileira de Fisica", "RCD.. Regular and Chaotic Dynamics", "RCMS. Rapid Communications in Mass Spectrometry", "RDTM. Radiation Detection Technology and Methods", "Rech. La Recherche", "REDS. Radiation Effects and Defects in Solids", "REEP. Radio Engineering and Electronic Physics", "REES. Renewable Energy and Environmental Sustainability", "RELEA Latin American Journal of Astronomy Education", "RemS. Remote Sensing", "ReNEv Research in Nondestructive Evaluation", "ResPh Results in Physics", "RF... Raumfahrtforschung", "RFrG. Revue Francaise de Geotechnique", "RFrM. Revue Francaise de Mecanique", "RGAO. Astronomical Observations made at the Royal Observatory at Greenwich", "RGG.. Reports on Geodesy and Geoinformatics", "RGOB. Royal Greenwich Observatory Bulletins", "RGRH. Rep. Hydrograph. Res. Japan", "RHRJ. Report of Hydrographic Researches in Japan", "RIG.. Rivista Italiana di Geofisica", "Rise. Rise Hvezd", "RJARA Russian Journal of Astrophysical Research Series A", "RJMP. Russian Journal of Mathematical Physics", "RJPCA Russian Journal of Physical Chemistry A", "RLOpt Research Letters in Optics", "RLPhy Research Letters in Physics", "RLSFN Rendiconti Lincei. Scienze Fisiche e Naturali", "RMFMR Rock Mechanics Felsmechanik Mecanique des Roches", "RMRE. Rock Mechanics and Rock Engineering", "RMTME USSR Rept Machine Tools Metalworking Equipment JPRS UMM", "RMxAA Revista Mexicana de Astronomia y Astrofisica", "RMxFE Revista Mexicana de Fisica E", "RMxF. Revista Mexicana de Fisica", "RMxFS Revista Mexicana de Fisica Supplement", "RNAAS Research Notes of the American Astronomical Society", "RNAOJ Report of the National Astronomical Observatory of Japan", "RNAO. Resultados del Observatorio Nacional Argentino", "RNISZ Rezultaty Nabliudenii Iskusstvennykh Sputnikov Zemli", "RNOST Research News & Opportunities in Science and Theology", "RoAJ. Romanian Astronomical Journal", "ROAn. Royal Observatory Annals", "Robot Robotica", "ROCi. Republic Observatory Johannesburg Circular", "ROCor Resultados del Observatorio Nacional Argentino en Cordoba", "Roczn Rocznik Astronomiczny Observatorjum Krakowskiego Krakow", "RoDok Rossijskaya Akademiya Nauk Doklady", "RoIE. Rossiiskaia Akademiia Nauk Izvestiia Energetika", "RoIET Rozprawy Inzynierskie Engineering Transactions", "RoIMT Rossijskaya Akademiya Nauk Izvestiya Mekhanika Tverdogo Tela", "RoIMZ Rossiiskaia Akademiia Nauk Izvestiia Mekhanika Zhidkosti i Gaza", "RoIn. Rozprawy Inzynierskie", "RoISF Rossiiskaia Akademiia Nauk Izvestiia Seriia Fizicheskaia", "RoIzF Rossijskaya Akademiya Nauk Izvestiya Seriya Fizicheskaya", "RoJPh Romanian Journal of Physics", "ROLun Reports of the Lund Observatory", "RomCo Osservatorio Astronomico di Roma su Monte Mario Contributi Scientifici", "RoRPh Romanian Reports in Physics", "RosOB Observatorio Astronomico Municipal de Rosario Argentia Boletin", "RpBAM USSR Report Space Biology Aerospace Medicine JPRS USB", "RpCCA USSR Report Cybernetics Computers Automation Technology JPRS UCC", "RpEEE USSR Rept Electron Elec Eng JPRS UEE", "RpEE. USSR Rept Eng Equipment JPRS UEQ", "RpEn. USSR Rept Energy JPRS UEN", "RpESc USSR Report Earth Sciences JPRS UES", "RPFSU Research Papers Faculty of Materials Science and Technology Slovak University of Technology", "RpMP. Reports on Mathematical Physics", "RpMSM USSR Rept Mater Sci Met JPRS", "RpPhM USSR Rept Phys Math JPRS UPM", "RPPh. Reports on Progress in Physics", "RPRA. Radio Physics and Radio Astronomy", "RpSBA USSR Rept Space Biol Aerospace Med Sep", "RpScT JPRS Report Science Technology USSR Space", "RpSpR USSR Report Space", "RpTr. USSR Rept Transportation JPRS UTR", "R&QE. Radiophysics and Quantum Electronics", "RRDAP Recent Research Development in Applied Physics", "RRDBB Recent Research Development in Biophysics and Biochemistry", "RRDBC Recent Research Development in Biophysical Chemistry", "RRDCP Recent Research Development in Chemical Physics", "RRDPC Recent Research Development in Physical Chemistry", "RRDPF Recent Research Development in Physics of Fluids", "RRDP. Recent Research Development in Physics", "RRDSP Recent Research Development in Statistical Physics", "RRMPA Revue Roumaine de Mathematiques Pures et Appliquees", "RRPRA Russian Radio Physics and Radio Astronomy", "RRP.. Research Reports in Physics", "RScEd Research in Science Education", "RScI. Review of Scientific Instruments", "RSCT. Transactions of the Royal Society of Canada", "RSEMS Remote Sensing Electro Magnetic Spectrum", "RSEnv Remote Sensing of Environment", "RSEPS Proceedings of the Royal Society of Edinburgh", "RSESS Remote Sensing in Earth Systems Sciences", "RSET. Transaction of the Royal Society of Edinburgh", "RSN&R Royal Society of London Notes & Records", "RSNSW Journal and Proceedings of the Royal Society of New South Wales", "RSOS. Royal Society Open Science", "RSPSA Proceedings of the Royal Society of London Series A", "RSPSB Proceedings of the Royal Society of London Series B", "RSPS. Proceedings of the Royal Society of London Series I", "RSPTA Philosophical Transactions of the Royal Society of London Series A", "RSPTB Philosophical Transactions of the Royal Society of London Series B", "RSPT. Philosophical Transactions of the Royal Society of London Series I", "RSPUT Report Series of the Department of Physics and Science, University of Turku", "RSQ.. Remote Sensing Quarterly", "RSTEd Research in Science and Technological Education", "RST.. Revue Scientifique et Technique CECLES CERS", "RTP.. Research Trends in Physics", "RTRE. Radiotekhnika Tecommunications Radio Engineering Radio Engineering", "RTrTe Revista Transporturilor si Telecomunicatiilor", "RTSRE Robotic Telescope, Student Research and Education Proceedings", "RuAer Russian Aeronautics", "RuCRv Russian Chemical Reviews", "RuGG. Russian Geology and Geophysics", "Ruimt Ruimtevaart", "RuMaS Russian Mathematical Surveys", "RuMet Russian Metallurgy", "RuPhJ Russian Physics Journal", "RvAc. Revue d'Acoustique", "RvAMS Reviews on Advanced Materials Science", "RvAqS Reviews in Aquatic Sciences", "RvA.. Revista Astronomica Organo de la Asociacion Argengina Amigos de la Astronomia Buenos Aires", "RvAST Reviews of Accelerator Science and Technology", "RvCF. Revista Colombiana de Fisica", "RvGeo Reviews of Geophysics", "RvGeS Reviews of Geophysics Supplement", "RvGSP Reviews of Geophysics and Space Physics", "RvMad Revista Real Acad. Ciencias Exact. Fis. Nat. Madrid", "RvMaP Reviews in Mathematical Physics", "RvMA. Reviews in Modern Astronomy", "RvMG. Reviews in Mineralogy and Geochemistry", "RvMin Reviews of Mineralogy", "RvMPP Reviews of Modern Plasma Physics", "RvMP. Reviews of Modern Physics", "RvMPS Reviews of Modern Physics Supplement", "RvOp. Reviews of Optics", "RvPA. Revue de Physique Appliquee", "RvPD. Revue du Palais de la Decouverte", "RvPhy Reviews in Physics", "RvPP. Reviews of Plasma Physics", "RvPT. Review of Physics in Technology", "RvRP. Revue Roumaine de Physique", "RvRRL Reviews of the Radio Research Laboratory", "RvRST Revue Roumaine des Sciences Techniques Serie de Mecanique Appliquee", "RvT.. Revue Technique Thomson CSF", "RvTS. Rivista Tecnica Selenia", "RWPWZ Rostock Wilhelm Pieck Universitaet Wissenschaftliche Zeitschrift Mathematisch Naturwissenschaftliche Reihe", "RWTHA Rheinisch Westfaelische Technische Hochschule Aerodynamisches Institut Abhandlungen", "rxte.pRXTE Proposal", "RZh.. Referationyj Zhurnal", "SAAOC South African Astronomical Observatory Circular", "SAAOR South African Astronomical Observatory Republic", "Sadha Sadhana", "SAERI Seoul Korea Atomic Energy Research Institute", "SAJPh South African Journal of Physics", "SAJSc South African Journal of Science", "SAMPJ SAMPE Journal", "SAMPQ SAMPE Quarterly", "SAnAp Supplements aux Annales d'Astrophysique", "SanS. Separata Universidad de Chile Departamento de Astronomia Santiago", "SANUG Srpska Akademiia Nauka i Umetnosti Glas Odeljenje Tekhnichkikh Nauka", "SAOSR SAO Special Report", "SASn. Studia Astronomica Sinica", "SASS. Society for Astronomical Sciences Annual Symposium", "SatCo Satellite Communications", "SBARM SBARMO Bulletin", "SbMat Sbornik: Mathematics", "SBuil Sustainable Buildings", "SCA.. Studii si Cercetari de Astronomie Bucuresti", "SCB.. Seminars in Cancer Biology", "ScChA Science in China A: Mathematics", "ScChB Science in China B: Chemistry", "ScChD Science China Earth Sciences", "ScChE Science in China E: Technological Sciences", "ScChG Science in China: Physics, Mechanics and Astronomy", "ScChM Science in China e-Engineering & Materials Science", "ScEdR Science Education Research", "Sc&Ed Science & Education", "SchpJ Scholarpedia", "SciAm Scientific American", "SciA. Science Advances", "SciB. Scientia (Bologna)", "SciDi Science Dimension", "SciDr Scientific Drilling", "SciEd Science Education", "SciIn Science and Innovation", "SciMo The Scientific Monthly", "Scim. Scientometrics", "SciNa The Science of Nature", "SciN. Science News", "Sci.. Science", "SciSn Scientia Sinica", "Scis. Sciences", "ScMM. Scripta Metallurgica et Materialia", "SCMP. Studies in Condensed Matter Physics", "ScM.. Scripta Metallurgica", "SCoA. Smithsonian Contributions to Astrophysics", "SCoK. Smithsonian Contributions to Knowledge", "SCPMA Science China Physics, Mechanics, and Astronomy", "ScPPL SciPost Physics Lecture Notes", "ScPPP SciPost Physics Proceedings", "ScPP. SciPost Physics", "ScPr. Science Progress", "ScReE Scholarly Research Exchange", "SCSA. Science and Culture Series: Astrophysics", "SCSMP Science China Series Mathematics Physics Astronomy Technological Sciences", "SCSP. Science and Culture Series: Physics", "ScTea The Science Teacher", "ScTEn Science of the Total Environment", "Sc&Te Sciences et Techniques", "SeAc. Sensors and Actuators", "SECM. Science and Engineering of Composite Materials", "SedG. Sedimentary Geology", "Sedim Sedimentology", "SEEJ. Society of Environmental Engineers Journal", "SEGeo Seismology and Exploration Geophysics", "SeiKa Seikei-Kakou", "Semic Semiconductors", "SenAR Sendai Astronomiaj Raportoj", "SenIm Sensing and Imaging", "SerAJ Serbian Astronomical Journal", "SeScT Semiconductor Science Technology", "SFCh. Science Foundation in China", "SFPTB Societe Francaise de Photogrammetrie et de Teledetection Bulletin", "SFSN. Scripta Faculty Science Nat. Ujep Brunensis Physica", "SGC.. Stratigraphy and Geological Correlation", "SGeo. Surveys in Geophysics", "SGORS Studies in Geophysical Optics and Remote Sensing", "S&GS. Science and Global Security", "SHAN. Society for History of Astronomy News", "SHEP. Surveys in High Energy Physics", "SHH.. Stochastic Hydrology and Hydraulics", "ShMeS Shape Memory and Superelasticity", "SHMPS Sources in the History of Mathematics and Physical Sciences", "SHM.. Self-Healing Materials", "SHPMP Studies in the History and Philosophy of Modern Physics", "ShWav Shock Waves", "SIAMR SIAM Review", "SIAM. Society of Industrial and Applied Mathematics", "SIBAN Sofia Izdatel Bolgarskoi Akademii Nauk", "SIDPQ SID Proceedings Quarter", "SiFoE Siemens Forschungs und Entwicklungsberichte", "SiFTZ Sibirskii Fiziko Tekhnicheskii Zhurnal", "SIGMA SIGMA", "SigPr Signal Processing", "Sig.. Signal", "SiMol Single Molecules", "SImpa Software Impacts", "Simul Simulation", "SISN. Science Information Systems Newsletter", "SiSSR Akademiia Nauk SSSR Sibirskoe Otdelenie Izvestiia Seriia Tekhnicheskie Nauki", "Situ. Situ", "SJADS SIAM Journal on Applied Dynamical Systems", "SJAM. SIAM Journal of Applied Mathematics", "SJCE. Slovak Journal of Civil Engineering", "SJCO. SIAM Journal of Control Optimization", "SJMA. SIAM Journal of Mathematical Analysis", "SJNA. SIAM Journal on Numerical Analysis", "SJRUE Scientific Journal of Riga Technical University. Environmental and Climate Technologies", "SJRUP Scientific Journal of Riga Technical University. Power and Electrical Engineering", "SkInq Skeptical Inquirer", "SkyN. Sky News", "SlaOb Slaboproudy Obzor", "SLSci Space Life Sciences", "SMArc Solid Mechanics Archives", "SMaS. Smart Material Structures", "SMat. Soft Matter", "SmCES Smithsonian Contributions to the Earth Sciences", "Smith Smithsonian", "SMSPS Stephan Mueller Special Publication Series", "SMS.. Scientific Modeling and Simulation SMNS", "SMTS. Soprotivlenie Materialov i Teoriia Sooruzhenii", "SNG.. Schweizerische Naturforschende Gesellschaft", "SoByu Soobshcheniya Byurakanskoj Observatorii Akademiya Nauk Armyanskoj SSR Erevan", "SoCe. Solar Cells", "SoEnM Solar Energy Materials", "SoEn. Solar Energy", "SoftX SoftwareX", "SoGru Akademiia Nauk Gruzii Soobshcheniia", "SOILD SOIL Discussions", "SoilS Soil Science", "SoKie Sonderdrucke der Sternwarte Kiel", "SOLA. SOLA - Scientific Online Letters on the Atmosphere", "SolED Solid Earth Discussions", "SolE. Solid Earth", "SoMue Sonderdrucke Universitaet Muenster Astronomisches Institut", "Sonne Sonne", "SoPh. Solar Physics", "SoSAO Soobshcheniya Spetsial'noj Astrofizicheskoj Observatorii", "SoShe Soobshchenie Shemakhinskoj Astrofizicheskoj Observatorii", "SoSht Soobshcheniya Gosudarstvennogo Astronomicheskogo Instituta", "SoSyR Solar System Research", "SouSt Southern Stars", "SovAe Soviet Aeronomii", "Space Space", "Spark Spark, the AAS Education Newsletter", "SPBra Scientific Proceedings Faculty of Mechanical Engineering STU in Bratislava", "SpCoB Space Communication Broadcasting", "SpCom Space Communications", "SpecL Spectroscopy Letters", "SpEd. Space Education", "SpFl. Spaceflight", "SPhAc Soviet Physics Acoustics", "SPhD. Soviet Physics Doklady", "Spika Spika", "Spin. Spin", "SPJCE Selected Scientific Papers - Journal of Civil Engineering", "SpMar Space Markets", "SpMME Space Medicine Medical Engineering", "SpPol Space Policy", "SpPow Space Power", "SpRBu Space Research Bulgaria", "SpReT Space Research Today", "SPRMD Space Power - Resources, Manufacturing and Development", "SpScT Space Science and Technology", "SPTP. Soviet Physics Technical Physics", "SpT.. Space Technology", "SPTS. Sensor Physics and Technology Series", "sptz.pSpitzer Proposal", "Spvw. Spaceview", "SpWd. Space World", "SpWdU Space World U", "SpWdW Space World W", "SpWdY Space World Y", "SpWea Space Weather", "SrLJP Sri Lankan Journal of Physics", "SRL.. Surface Review and Letters", "SRMO. Specula Regia Monachiensi Observationes astronomicae", "SRPI. Safety and Reliability of Power Industry", "SRToh Sci. Rep. Tohoku Univ. Eighth Ser.", "SRXPh SRX Physics", "SSASJ Soil Science Society of America Journal", "SScEd Studies in Science Education", "SSCom Solid State Communications", "SSCP. Springer Verlag Springer Series on Chemical Physics", "SScT. Speculations in Science and Technology", "SSEle Solid State Electronics", "SSEp. Springer Verlag Springer Series on Electrophysics", "SSGSR Springer Verlag Springer Series on Group Geophysics Space Research", "SSHMP Sources and Studies in the History of Mathematics and Physical Sciences", "SSI.. Space Science Instrumentation", "SSOS. Springer Verlag Springer Series on Optical Sciences", "SSPAR Solid State Physics Advances in Research and Applications", "SSPAS Solid State Physics Advances in Research and Applications Supplement", "SSPMA Scientia Sinica Physica, Mechanica &", "SSPRv Space and Solar Power Review", "SSRvA Soviet Scientific Reviews A Physics Reviews", "SSRvC Soviet Scientific Reviews C Mathematical Physics Reviews", "SSRvD Soviet Scientific Reviews D Physicochemical Biology Reviews", "SSRv. Space Science Reviews", "SSSAJ Soil Science Society of America Journal", "SSSci Solid State Sciences", "SSSMP Scientia Sinica Series Mathematical Physical Technical Sciences", "SSSSc Springer Series in Surface Sciences", "SSS.. Social Studies of Science", "SSSSS Springer Verlag Springer Series on Solid State Sciences", "SSSyn Springer Verlag Springer Series on Synergetics", "SSTec Solid State Technology", "SSTor Studia Societatis Scientiarum Torunensis Sectio F Astronomia", "SSWP. Springer Verlag Springer Series on Wave Phenomena", "STAdM Science and Technology of Advanced Materials", "StaGP Starlink General Paper", "StAM. Studies in Applied Mathematics", "StarB Starlink Bulletin", "StarC Starlink Cookbook", "StarD StarDate Magazine", "StarG Starlink Guide", "StaSc Statistical Science", "StaSN Starlink System Note", "StAst Strolling Astronomer", "StaUN Starlink User Note", "StCeF Studii si Cercetari de Fizica", "StCeM Studii si Cercetari Matematice", "StCMA Studii si Cercetary de Mecanica Aplicata", "STECF Space Telescope European Coordinating Facility Newsletter", "Sterb Der Sternenbote Monatsschrift fuer Oesterreichs Amateur-astronomen", "STERJ Solar Terrestrial and Environmental Research Japan", "Stern Die Sterne", "Sterz Sternzeit Mitteilungen der Astrnomischen Vereinigungen Aachen", "StGeo Studies in Geophysics", "StGG. Studia Geophysica et Geodaetica", "StGM. Studia Geotechnica et Mechanica", "StHCG Studies in High Energy Physics Cosmology and Gravitation", "StHEP Studies in High Energy Physics", "StHMP Studies in the History of Mathematics and the Physical Sciences", "STIA. NASA STI/Recon Technical Report A", "STICA Space Technology Industrial and Commercial Applications", "Stiin Stiinta", "STIN. NASA STI/Recon Technical Report N", "stis.rSpace Telescope STIS Instrument Science Report", "StMat Strength of Materials", "StMet Statistical Methodology", "STMP. Springer Tracts in Modern Physics", "StNws ASTM Standardization News", "StoAn Stockholms Observatoriums Annaler", "StoOR Stockholms Observatoriums Reports", "STP.. Solar-Terrestrial Physics", "Strai Strain", "StReL Staub Reinhaltung Luft", "Stroj Strojarstvo", "StrOp Structural Optimization", "S&T.. Sky and Telescope", "StSky Star Sky", "STSSP Selected Topics in Solid State Physics", "Sttur Studies in turbulence", "StuMa Studia Mathematica", "STVF. Samoletostroenie Tekhnika Vozdushnogo Flota", "suba.pSubaru Proposal", "SuEa. Sustainable Earth", "SuMi. Superlattices and Microstructures", "SunGe Sun and Geosphere", "Sunwo Sunworld", "SurIA Surface and Interface Analysis", "SurSc Surface Science", "SurSL Surface Science Letters", "SurSR Surface Science Reports", "SurSS Surface Science Spectra", "SuScT Superconductor Science Technology", "Sust. Sustainability", "SuTMP Surface Topography: Metrology and Properties", "SUVSR Scandinavian Union of Amateur Astronomers Variable Star Section", "SvAer Soviet Aeronautics", "SvAL. Soviet Astronomy Letters", "SvApM Soviet Applied Mechanics", "SvA.. Soviet Astronomy", "SVD.. Shock Vibration Digest", "SvGeo Soviet Geologia", "SVICB Shock Vibration Information Center Shock Vibration Bulletin", "SVICD Shock Vibration Information Center Shock Vibration Digest", "SVICI Shock Vibration Information Center Shock Vibration Inform Digest", "SVICP Shock Vibration Information Center Shock Vibration Computer Programs", "SvJNP Soviet Journal of Nuclear Physics", "SvJOT Soviet Journal of Optical Technology", "SvJPP Soviet Journal of Plasma Physics", "SvJQE Soviet Journal of Quantum Electronics", "SVPCS Springer Verlag Springer Series on Physics Chemistry Space", "SvPhA Soviet Physics Astronomy", "SvPhJ Soviet Physics Journal", "SvPhU Soviet Physics Uspekhi", "SvPro Svarochnoe Proizvodstvo", "SvRP. Soviet Radiophysics", "SvUNT Sverdlovsk Uralskii Nauchnyi Tsentr AN SSSR", "S&W.. Sterne und Weltraum", "SydOP Sydney Observatory Papers", "SyTec Systems Technology", "SZF.. Solnechno-Zemnaya Fizika", "SZPA. SIRIUS. Zeitschrift fuer Populaere Astronomie", "TAASS Topics in Astrophysics, Astrononmy, and Space Science", "TAEMm Tokyo Metropolitan College Aeronautical Engineering Memoirs", "TamCo Astronomical Contributions from the University of South Florida Tampa", "TAM.. Theoretical and Applied Mechanics", "TANEs Tartu Akademiia Nauk Estonskoi SSR", "TApPh Topics in Applied Physics", "TAPS. Transactions of the American Philosophical Society", "TarOT Tartu Astrofuusika Observatoorium Teated", "TBBM. Techniques of Biochemical and Biophysical Morphology", "TCaPS Transactions of the Cambridge Philosophical Society", "TCD.. The Cryosphere Discussions", "TCPh. Topics in Current Physics", "TCry. The Cryosphere", "TDAPR Telecommunications and Data Acquisition Progress Report", "Tech. Technology", "TecN. Technical News", "TecRv Technology Review", "Tecto Tectonics", "Tectp Tectonophysics", "TeEng Technological Engineering,", "TekEl Tekhnicheskaia Elektrodinamika", "Telet Telettra S", "TelIn Telematics Informatics", "TellA Tellus Series A", "TellB Tellus Series B Chemical and Physical Meteorology B", "Tell. Tellus", "TeLoA Technika Lotnicza i Astronautyczna", "TeMAE Terrestrial Magnetism and Atmospheric Electricity (Journal of Geophysical Research)", "TeMag Terrestrial Magnetism (Journal of Geophysical Research)", "TeNov Terra Nova", "TeoEl Teoreticheskaia Elektrotekhnika", "TeoPM Teoreticheskaia i Prikladnaia Mekhanika", "TeoVP Teoriia Veroiatnostei i ee Primeneniia", "TePhL Technical Physics Letters", "Teplo Teploenergetika", "Tepsg Teplofizicheskie svoistva gazov", "TepT. Teplofizika i Teplotekhnika", "TepVT Teplofizika Vysokikh Temperatur", "TerCo Osservatorio Astronomico di Collurania Teramo Contributi", "TerMm Osservatorio Astronomico di Collurania Teramo Memorie ed Osservazioni", "TerNC Osservatorio Astronomico di Collurania Teramo Note e Comunicazioni", "Tesla TESLA Electronics", "TETB. Thyssen Edelstahl Technische Berichte", "TFFAP Teoriia Funktsii Funktsionalnyi Analiz i ikh Prilozheniia", "TFizG Teploobmen i Fizicheskaia Gazodinamika", "Th&Ae Thermophysics and Aeromechanics", "ThAFM Theoretical and Applied Fracture Mechanics", "ThApC Theoretical and Applied Climatology", "ThAst Theoretical Astrophysics", "ThCFD Theoretical and Computational Fluid Dynamics", "ThEng Thermal Engineering", "TIOA. Tomsk Institut Optiki Atmosfery CO AN SSSR", "TISCI Transactions of the Institute of Systems, Control and Information Engineers", "TITas Tsirkulyar Astronomicheskogo Instituta Akademiya Nauk Uzbekskoj SSR", "TIUCS Transactions of the International Union for Cooperation in Solar Research", "TIzSS Tbilisi Izdatel Sabchota Sakartvelo", "TJAu. Telecommunication Journal of Australia", "TJJPT Tuijin Jishu Journal of Propulsion Technology", "TJPh. Turkish Journal of Physics", "TJSAI Transactions of the Japanese Society for Artificial Intelligence", "TJSIE Transactions of The Japanese Society of Irrigation, Drainage and Rural Engineering", "TLHSQ Transactions of the Literary and Historical Society of Quebec", "TMatR Translational Materials Research", "TMKF. Technische Mitteilungen Krupp Forschungsberichte", "TMOPR Telecommunications and Mission Operations Progress Report", "TMPGO Tagung ueber Mathematische Probleme Geodaesie Oberwolfach West Germany Bulleting Geodesique", "TMP.. Theoretical and Mathematical Physics", "TNEK. Teplovye Napriazheniia Elementakh Konstruktsii", "TNKS. Tochnost i Nadezhnost Kiberneticheskikh Sistem", "TNSAN Transient Name Server AstroNote", "TNSCR Transient Name Server Classification Report", "TNSFR Transient Name Server Fast Radio Bursts", "TNSTR Transient Name Server Discovery Report", "ToASC Torino Accademia delle Scienze Classe di Scienze Fisiche Matematiche e Naturali Atti", "ToIzL Technisch oekonomische Informationen zivilen Luftfahrt", "TokAB Tokyo Astronomical Bulletin", "TokRe Tokyo Astronomical Observatory Reprints", "TOMar Travaux de l'Observatoire de Marseille", "TosRv Toshiba Review", "TouCE Toulouse Cepadues Editions", "TOYal Transactions of the Astronomical Observatory of Yale University", "TPAG. Theory and Practice of Applied Geophysics", "TPhCh Topics in Physical Chemistry", "TPhy. Techniques of Physics", "TRACE Transactions of the Japan Society of Refrigerating and Air Conditioning Engineers", "TrAeR Transactions on Aerospace Research", "TraGe Travaux Geophysiques", "TrAGU Transactions, American Geophysical Union", "TrAlm Trudy Astrofizicheskogo Instituta Alma-Ata", "TrDus Trudy Instituta Astrofiziki Dushanbe", "TreP. Osservatorio Privato Specola Ariel Treviso Italia Pubblicazione", "TRET. Telecommunications and Radio Engineering Telecommunications", "TrGeo Treatise on Geochemistry", "TrGRC Geothermal Resources Council Transactions", "TrGru Tiflis Izdatel Metsniereba Akademiia Nauk Gruzinskoi SSR Matematicheskii Institut Trudy", "TriP. Osservatorio Astronomico di Trieste Pubblicazioni", "TrITA Institut Teoreticheskoi Astronomii Trudy", "TriTr STLE Tribology Transactions", "TrKaz Trudy Kazanskaia Gorodkoj Astronomicheskoj Observatorii", "TrKra Seminar Kraevym Zadacham Trudy", "TrLen Trudy Astronomicheskoj Observatorii Leningrad", "TrLit Trudy Akademiia Nauk Litovskoi", "TrMMO Trudy Moskovskoe Matematicheskoe Obshchestvo", "TrOS. Transactions of the Optical Society", "TrPet Trudy Seminar imeni G Petrovskogo", "TrPul Trudy Glavnoj Astronomicheskoj Observatorii v Pulkovo", "TrRig Trudy Astrofiz. Lab. Riga", "TrSht Trudy Gosudarstvennogo Astronomicheskogo Instituta", "TrSpT Transactions of Space Technology Japan", "TrSSR Trudy Akademiia Nauk SSSR Fizicheskii Institut", "TrSta Trudy Instituta Astrofiziki Stalinabad", "TrTas Trudy Tashkentskoj Astronomicheskoj Observatorii", "TrTIM Tiflis Izdatel Metsniereba Akademiia Nauk Gruzinskoi SSR Institut Geofiziki Trudy", "TrTsA TsAGI Trudy", "TrTsI TsIAM Trudy", "TSDMO Tellus Series Dynamic Meteorology and Oceanography", "TSE.. Thermal Science and Engineering", "TSF.. Thin Solid Films", "TsHUJ Tsing Hua University Journal", "TSICE Transactions of the Society of Instrument and Control Engineers", "TsLvo Tsirkulyar Astronomicheskoj Observatorii Lvov", "TsPul Tsirkulyary Glavnoj Astronomicheskoj Observatorii i Pulkove", "TSRSG Tohoku University Science Reports Series Geophysics", "TsShe Tsirkulyar Shemakhinskoj Astrofizicheskoj Observatorii", "TSSLW Travaux de la Societe des Sciences et des Letters de Wroclaw", "TsSta Tsirkulyar Stalinabadskoj Astronomicheskoj Observatorii", "TsTas Tsirkulyar Tashkentskoj Astronomicheskoj Observatorii", "TsVse Tsirkulyar Vses. astron.-geod. o-va", "TTP.. Trends in Theoretical Physics", "TTSP. Transport Theory and Statistical Physics", "TUAID Tuebingen Universitaet Astronomisches Institut Diplomarbeit", "TUASB Tokyo University Institute of Space and Aeronautical Science Bulletin", "TUASR Tokyo University Institute of Space and Aeronautical Science Report", "TUFEJ Tokyo University Faculty of Engineering Journal Series", "TUFER Tokyo Denki University Faculty of Engineering Research Reports", "TUISR Tokyo University Institute Industrial Science Report", "TUnGG Technische Univ Geodesy Global Geodyn", "TurTe Turbulentnye techeniia", "TvOC. Transvaal Observatory Circular", "UCAFR Universitas Comeniana Acta Facultatis Rerum Naturalium Physica", "UCLAP Astronomical Papers University of California Los Angeles", "UECBu University Electro Communications Bulletin", "UGC.. Nova Acta Regiae Soc. Sci. Upsaliensis Ser. V", "UGSJR U S Geological Survey Journal Research", "UISTS San Diego CA Univelt Inc Science Technology Series", "UkFiZ Ukrainskii Fizicheskii Zhurnal", "UkJPO Ukrainian Journal of Physical Optics", "UkMaZ Ukrainskii Matematicheskii Zhurnal", "UltIm Ultrasonic Imaging", "Ultmi Ultramicroscopy", "Ultra Ultrasonics", "UMAM. Uspekhi Mekhaniki Advances Mechanics", "UMIB. Unione Matematica Italiana Bollettino", "Umsch Umschau", "UMt1K Universite de Montpellier", "UNAer Universita di Napoli Aeritalia S", "UnECR University Electro Communications Reports", "UniCl Universe Classroom", "Unive Universitas", "Univ. Universe", "UNPSA United Nations Programme on Space Applications", "UppAn Uppsala Astronomical Observatory Annals", "UppOR Uppsala Astronomical Observatory Reports", "Urani Urania (Krakow)", "UrBar Urania (Bracelona)", "UsFiN Uspekhi Fizicheskikh Nauk", "USGSP U.S. Geological Survey Professional Paper", "USGS. U.S. Geological Survey Report", "USNOA Astronomical Observations made at the U.S. Naval Observatory", "USNOC U.S. Naval Observatory Circulars", "USNOM Astronomical and Meteorological Observations made at the U.S. Naval Observatory", "USNOO Observations made at the U.S. Naval Observatory", "USOC. Unified System Orbit Computation USOC", "UtMat Utilitas Mathematica", "UtrOv Utrechtse Sterrekundige Overdrukken", "Vacuu Vacuum", "VAC.. Voies Aviation Civile Fall Winter", "VADMT VKI New Approaches in the Description and Modeling of Turbulence", "VADVS VKI Advanced Design of Ventilation Systems", "VAFC. VKI Axial Flow Compressors", "VAG.. Vierteljahresschrift der Astronomischen Gesellschaft", "VANTS Voprosy Atomnoi Nauki i Tekhniki Seriia Fizika Plazmy i Problemy Upravliaemykh Termoiadernykh Reaktsii", "Vasio Vasiona", "VatAR Specola Astronomica Vaticana Annual Reports", "VatCo Specola Astronomica Vaticana Comunicazione", "VatMA Specola Astronomica Vaticana Miscellanea Astronomica", "VatOP Vatican Observatory Publications", "VatPS Specola Astronomica Vaticana Pubblicazioni Serie Seconda", "VatRA Specola Astronomica Vaticana Richerche Astronomiche", "VatRS Specola Astronomica Vaticana Ricerche Spettroscopiche", "VA... Vistas in Astronomy", "VBLT. VKI Boundary Layers in Turbomachines", "VCCPP VKI Combined Cycles for Power Plants", "VCFDI VKI Computational Fluid Dynamics for Industrial Flows", "VCGFV VKI Computer Graphics Flow Visualization and Computational Fluid Dynamics", "VDIF. VDI Forschungsheft", "VDIZF VDI Zeitschriften Fortschritt Berichte Reihe Stroemungstechnik", "VDIZ. VDI Z", "VeABD Veroeffentlichungen des Astronomischen Rechen-Instituts zu Berlin-Dahlem", "VeARI Veroeffentlichungen des Astronomischen Rechen-Instituts Heidelberg", "VeBab Veroeffentlichungen der Sternwarte Babelsberg", "VeBam Veroeffentlichungen der Remeis-Sternwarte zu Bamberg", "VeBB. Veroeffentlichungen der Universitaetssternwarte zu Berlin-Babelsberg", "VeBKI Veroeffentlichungen des Bayerische Kommission Int. Erdmessung", "VeBoc Veroeffentlichungen des Astronomischen Instituts der Ruhr-Universitaet Bochum", "VeBon Veroeffentlichungen des Astronomisches Institute der Universitaet Bonn", "VeFra Veroeffentlichungen des Astronomisches Institute der Universitaet Frankfurt", "VeGG. Veroeffentlichungen der Geod. Geophys", "VeGoe Veroeffentlichungen der Universitaets-Sternwarte zu Goettingen", "VeHei Veroeffentlichungen der Badischen Sternwarte zu Heidelberg", "VeJen Veroeffentlichungen der Universitaets-Sternwarte zu Jena", "VeKAB Veroeffentlichungen des Koeniglichen Astronomischen Rechen-Instituts zu Berlin", "VeKar Veroeffentlichungen der Grossherzoglichen Sternwarte zu Karlsruhe", "VeKaz Akademiia Nauk Kazakhskoi SSR Vestnik", "VeKha Vestnik Khar'kov Universitet", "VeKie Vestnik Kievskogo Universiteta Seriya Astronomii", "VeKoe Veroeffentlichungen der Universitaets-Sternwarte Koenigsberg Pr.", "VeLdn Verslag van den staat der Sterrewacht te Leiden", "VeLei Veroeffentlichungen der Universitaetssternwarte zu Leipzig", "VeLen Leningradskii Universitet Vestnik Matematika Mekhanika Astronomiia", "VeLGU Vestnik LGU", "VeMos Vestnik Moskovskogo Universiteta Seriya 3 Fizika Astronomiya", "VeMun Veroeffentlichungen der Sternwarte Munchen", "VeNav Akademiia Navuk BSSR Vestsi Seryia Fizika Tekhnichnykh Navuk", "Verme Vermessungstechnik", "Vertf Vertiflite", "Vert. Vertica", "Vesmi Vesmir", "VeSon Veroeffentlichungen der Sternwarte Sonneberg", "VeSSR Akademiia Nauk SSSR Vestnik", "VETT. Voprosy Elektroniki Tverdogo Tela", "VeWFS Veroeffentlichung der Wilhelm Foerster Sterwarte", "VeZPE Veroffentlichungen des Zentralinstituts Physik der Erde", "VGTET VKI Gas Turbine Engine Transient Behaviour", "VIAEA Vienna International Atomic Energy Agency", "VICFD VKI An Introduction to Computational Fluid Dynamics", "ViGeo Vissha Geodeziia", "ViHei Veroeffentlichungen der Badischen Landes-Sternwarte zu Heidelberg", "VIHE. VKI Industrial Heat Exchangers", "VilCo Villanova University Observatory Contributions", "VilOB Vilnius Astronomijos Observatorijos Biuletenis", "VIMT. VKI An Introduction to Modeling Turbulence", "VISBD Vibration Inst Shock Vibration Digest", "VisKi Visnik Kiiv. Univ., Fiz.-Mat. Nauki, Astron", "ViUkr Akademiia Nauk Ukrains koi RSR Visnik", "VJS.. Virginia Journal of Science", "VKAWA Verhandelingen der Koninklijke Akademie van Wetenschappen te Amsterdam", "VKha. Vestnik Khar'kovskogo Universiteta", "VKie. Veroeffentlichungen der Universitaets-Sternwarte Kiel", "VKILV VKI Laser Velocimetry", "VKIMT VKI Measurement and Techniques", "VKIRT VKI Radial Turbines", "VKISP VKI Spacecraft Propulsion", "VMATP VKI Modeling and Applications of Transport Phenomena in Porous Media", "VMed. Vierteljahrschrift fü", "VMHT. VKI Methodology Hypersonic Testing", "VMKAN Verslagen en Mededeelingen der Kon. Academie van Wetenschappen, Afd. Natuurkunde", "VMOIP Voprosy Metrologicheskogo Obespecheniia Izmereniia Parametrov Tekhnologicheskikh Lazerov", "VMSAI Video Memorie della Societa Astronomica Italiana", "VMTA. VKI Measurement Techniques in Aerodynamics", "VNGG. VKI Numerical Grid Generation", "VNG.. Vierteljahrsschrift der Naturforschenden Gesellschaft in Zü", "VNMFT VKI Numerical Methods for Flows in Turbomachinery", "VnMP. Vychislitelnye Metody i Programmirovanie", "VnPM. Vychislitelnaia i Prikladnaia Matematika", "VopDP Voprosy Dinamiki i Prochnosti", "VopGA Voprosy Gidrodinamiki Atmosfery", "VopK. Voprosy Kibernetiki", "VopTP Voprosy Teorii Plazmy", "VossZ Vossische Zeitung", "VoTAS Voprosy Teorii Atomnykh Stolknovenii", "VPIDV VKI Particle Image Displacement Velocimetry", "VSD.. Vehicle System Dynamics, International Journal of Vehicle Mechanics and Mobility", "VSSCi Royal Astronomical Society of New Zealand Variable Star Section Circulars", "VTJ.. Vitro Technical Journal", "VTSAU Voprosy Teorii Sistem Avtomaticheskogo Upravleniia", "VTSF. VKI Turbulent Shear Flows", "VVRD. VKI Vibration Rotor Dynamics", "WaMot Wave Motion", "WASP. Water Air and Soil Pollution", "WatWa Water Waves", "WavEl Wave Electronics", "WBWA. Weltraumfahrt. Beitraege zur Weltraumforschung und Astronautik", "WCD.. Weather and Climate Dynamics", "WCRp. World Climate Report", "WCS.. Weather, Climate and Society", "WearB Wear B", "Wear. Wear", "WeiEn Weight Engineering", "WeldJ Welding Journal", "Welt. Die Weltall", "Werk. Werkgroepnieuws", "wfc..rSpace Telescope WFC Instrument Science Report", "WFINw IAU Working Group on Wide-Field Imaging, Newsletter", "wfir.pNASA WFIRST Proposal", "wfpc.rSpace Telescope WFPC2 Instrument Science Report", "WiEng Wind Engineering", "WiEn. Wind Energy", "WinAR Annual Report of the Windsor Observatory, New South Wales", "WisBB Monatsber. Deutsch. Akad Wissenschaftliche Berlin", "WisBT Wissenschaftliche Berichte AEG Telefunken", "WisZe Wissenschaftliche Zeitschrift", "WJCMP World Journal of Condensed Matter Physics", "WJM.. World Journal of Mechanics", "WJNSE World Journal of Nano Science and Engineering", "WJNST World Journal of Nuclear Science and Technology", "wps..pNASA WPS Proposal", "WRCM. Waves in Random and Complex Media", "WRM.. Waves in Random Media", "WRR.. Water Resources Research", "WSAAA Workshop Series of the Asociacion Argentina de Astronomia", "W&S.. Waerme und Stoffuebertragung", "Wszec Wszechswiat", "WtFor Weather and Forecasting", "Wthr. Weather", "Wuli. Wuli", "xmm..pXMM-Newton Press Release", "xmm..pXMM-Newton Proposal", "XRS.. X-ray Spectrometry", "YaFiz Yadernaya Fizika", "YalAR Annual report of the Astronomer of the Winchester Observatory of Yale College", "YalRY Reports for the year presented by the Board of Managers of the Observatory of Yale University to the President and Fellows", "YamC. Yamamoto Circular", "yCatp VizieR Online Data Catalog (other)", "yCat. VizieR Online Data Catalog", "YerOB Bulletin of the Yerkes Observatory of the University of Chicago", "YUFEM Yamaguchi University Faculty of Engineering Memoirs", "YUTR. Yamaguchi University Technology Reports", "ZaDN. Zagadnienia Drgan Nieliniowych", "ZAGeo Zeitschrift fur Angewandte Geographie", "ZaLab Zavodskaia Laboratoriia", "ZaMM. Zeitschrift Angewandte Mathematik und Mechanik", "ZaMP. Zeitschrift Angewandte Mathematik und Physik", "ZAPhy Zeitschrift fur Angewandte Physik", "ZaTsA TsAGI Uchenye Zapiski", "ZA... Zeitschrift fur Astrophysik", "ZEAPC Zeitschrift fü", "ZeIE. Zeitschrift elektrische Informations und Energietechnik", "ZeMet Zeitschrift fur Meteorologie", "ZemVs Zemlia i Vselennaia", "Zenit Zenit", "ZePAN Zeitschrift Physik Atomic Nuclei", "ZEVGA Zeitschrift fur Eisenbahnwesen und Verkehrstechnik Glasers Annalen", "ZFlu. Zeitschrift fur Flugwissenschaften", "ZFlWe Zeitschrift fur Flugwissenschaften und Weltraumforschung", "ZGeo. Zeitschrift fur Geophysik", "ZGlGl Zeitschrift fur Gletscherkunde und Glazialgeologie", "ZGmS. Zeitschrift fur Geomorphologie Supplement", "ZGm.. Zeitschrift fur Geomorphologie", "ZhETF Zhurnal Eksperimentalnoi i Teoreticheskoi Fiziki", "ZhPhy Zhurnal Physik", "ZhPmR ZhETF Pisma Redaktsiiu", "ZhPS. Zhurnal Prikladnoi Spektroskopii", "ZhTFi Zhurnal Tekhnicheskoi Fiziki", "ZiZa. Ziran Zazhi", "ZKMP. Zeitschrift fur Kristallographie Mineralogie und Petrographie", "ZKS.. Zeitschrift fur Kristallographie Supplements", "ZK... Zeitschrift fur Kristallographie", "ZMetl Zeitschrift fur Metallkunde", "ZMP.. Zeitschrift fü", "ZNatA Zeitschrift Naturforschung Teil A", "ZNPFK Zhurnal Nauchnoi i Prikladnoi Fotografii i Kinematografii", "ZPCF. Zeitschrift fur Physikalische Chemie Frankfurt", "ZPCNF Zeitschrift fur Physikalische Chemie Neue Folge", "ZPCW. Zeitschrift fur Physikalische Chemie Wiesbaden", "ZPC.. Zeitschrift fur Physikalische Chemie", "ZPhyA Zeitschrift fur Physik A Hadrons and Nuclei", "ZPhyB Zeitschrift fur Physik B Condensed Matter", "ZPhyC Zeitschrift fur Physik C Particles and Fields", "ZPhyD Zeitschrift fur Physik D Atoms Molecules Clusters", "ZPhy. Zeitschrift fur Physik", "Zprav Zpravodaj VZLU", "ZvDeb Zvaigsnota Debess", "ZVer. Zeitschrift Vermessungswes.", "ZVMMF Zhurnal Vychislitelnoi Matematiki i Matematicheskoi Fiziki", "ZWer. Zeitschrift Werkstofftechnik", "TDM.. 2D Materials", "TDR.. 3D Research", }; static const int njournals = sizeof( journals ) / sizeof( journals[0] ); hs-bibutils-6.10.0.0/bibutils/adsout_journals.c0000755000000000000000000061665307346545000017573 0ustar0000000000000000/* http://adsabs.harvard.edu/abs_doc/journals1.html * download URL source then parse with * fgrep setfields journals1.html | awk -F ';' '{printf "%s\n",$2}' * | cut -c 7-12,24- | sed 's/"//g' * | awk '{ for(i=1;i<=length($0);++i){c=substr($0,i,1);if(c==" "&&i<6) { printf(".");} else {printf("%s",c);}}printf("\n");}' * | awk '{printf "\"%s\",\n",$0 }' | sort -n -k2 * */ static const char *journals[] = { "A&AA. Astronomy and Astrophysics Abstracts Heidelberg", "AAABS Asociacion Argentina de Astronomia La Plata Argentina Book Series", "AAAN. Astronomische Abhandlungen als Erganzungshefte zu den Astronomische Nachrichten", "AAAR. Arctic, Antarctic and Alpine Research", "A&A.. Astronomy and Astrophysics", "A&AC. Astronomy &", "AADDR Abhandlungen Akad. Wiss. DDR", "AAfz. Astrometriia i Astrofizika", "AAGot Abhandlungen Akad. Wiss. Gö", "AAHam Astronomische Abhandlungen der Hamburger Sternwarte", "AAIzN Alma Ata Izdatel Nauka", "AALST Atti Accad. Ligure Sci. Lett.", "AAM.. Archive of Applied Mechanics", "AAMOP Advances in Atomic Molecular and Optical Physics", "AAMS. Adv. Appl. Mech. Suppl.", "AAN.. AAVSO Alert Notice", "AAnST Advances in Astronautics Science and Technology", "AAONw Anglo-Australian Observatory Epping Newsletter", "AAOPr Anglo-Australian Observatory Epping Preprint", "AAPon Atti Accad. Pontaniana", "A&ARv Astronomy and Astrophysics Review", "A&AS. Astronomy and Astrophysics Supplement Series", "AASF. Ann. Acad. Sci. Fennicae", "AASHS AAS Hist. Ser.", "AASP. Advances in Astronomy and Space Physics", "AASPB AAS Photo Bulletin", "AASPP Astrononomy and Astrophysics Series", "AAST. Atti Accad. Sco. Torino I", "A&AT. Astronomical and Astrophysical Transactions", "AAVNw AAVSO Newsletter", "AAVSB AAVSO Solar Bulletin", "AAVSC AAVSO Circular", "AAVSN AAVSO Special Notice", "AbaOB Abastumanskaia Astrofizicheskaia Observatoriia Byulleten", "AbApA Abstract and Applied Analysis", "AbAst Abenteuer Astronomie", "AbbOO Abbadia Observatory Observations", "AbhBr Abh. naturwiss. Verein Bremen", "AbhKP Abh. Konigl. Preuss. Akad. Wissenschaften Jahre 1906,92, Berlin,1907", "AbhP. Abh. der Preuß", "AbICA Abstracts of the ICA", "ABKie Astronomische Beobachtungen auf der Sternwarte der Koeniglichen Christian-Albrechts-Universitaet zu Kiel", "ABMun Astronomische Beobachtungen angestellt auf der K. Sternwarte zu Bogenhausen bei Muenchen", "ABSBe Astronomische Beobachtungen auf der Koniglichen Sternwarte zu Berlin", "ABWG. Abh. Braunschweigische Wissenschaftliche Ges.", "AcA.. Acta Astronomica", "AcAAS Acta Aeronautica et Astronautica Sinica", "AcAau Acta Astronautica", "AcAcu Acta Acustica", "AcAer Acta Aerodynamica Sinica", "AcApS Acta Astrophysica Sinica", "AcAri Acta Arithmetica", "AcArm Acta Armamentarii", "AcASn Acta Astronomica Sinica", "A&C.. Astronomy and Computing", "AcAuS Acta Automatica Sinica", "AcBu. Acoust. Bull.", "AcC.. Acta Cosmologica", "AcChR Accounts Chem. Res.", "AcCrA Acta Crystallographica Section A", "AcCrD Acta Crystallographica Section D", "AcEle Acta Electronica", "AcElS Acta Electronica Sinica", "ACESJ Applied Computational Electromagnetics Society Journal", "AcESn Acta Electron. Sinica", "AcGdG Acta Geodynamica et Geomaterialia", "AcGeo Acta Geophysica", "AcGeP Acta Geophysica Polonica", "AcGG. Acta Geod. Geophys.", "ACGIS Advances in Cartography and GIScience of the ICA", "AcGSn Acta Geophys. Sinica", "AcHA. Acta Historica Astronomiae", "AcHPh Helvetica Physica Acta", "AcHPS Helvetica Physica Acta Supplementum", "ACiCh Astronomical Circular", "ACIP. Acta Cienc. Indica Phys.", "AcMa. Acta Mathematica", "ACMan Astronomical Contributions from the University of Manchester", "AcMaS Acta Mathematica Sinica", "AcMat Acta Materialia", "AcMCS Acta Materiae Compositae Sinica", "AcMec Acta Mechanica", "AcMeS Acta Meteorologica Sinica", "AcMet Acta Metallurgica", "AcMik Mikrochimica Acta", "AcM&M Acta Metallurgica et Materialia", "AcMPh Acta Universitatis Caroliae. Mathematica et Physica", "AcMPS Acta Universitatis Caroliae. Mathematica et Physica Supplement", "AcMSn Acta Mechanica Sinica", "AcMSS Acta Mechanica Solida Sinica", "AcMSw Acta Mathematica Sweden", "AcMT. Acta Materialia Transylvanica", "AcNum Acta Numerica", "AcO.. Acta Oecologica", "AcOpS Acta Optica Sinica", "AcOpt Optica Acta", "AcOSi Acta Oceanica Sinica", "AcouL Acoustics Letters", "AcPAS Acta Physica Austriaca Supplement", "ACP.. Atmospheric Chemistry & Physics", "ACPD. Atmospheric Chemistry & Physics Discussions", "AcPhA Acta Physica Austriaca", "AcPhC Acta Physica et Chemica", "AcPhH Acta Physica Hungarica", "AcPhS Acta Physiologica Scandinavica", "AcPhy Acta Physica", "AcPol Acta Polytechnica", "AcPPA Acta Physica Polonica A", "AcPP. Acta Physica Polonica", "AcPPB Acta Physica Polonica B", "AcPPP Acta Polytechnica CTU Proceedings", "AcPPS Acta Physica Polonica B, Proceedings Supplement", "AcPSc Acta Polytechnica Scandinavica Applied Physics Series", "AcPSi Acta Photonica Sinica", "AcPSl Acta Physica Slovaca", "AcPSn Acta Physica Sinica", "AcRhe Rheologica Acta", "ACSB. American Ceramic Society Bulletin", "ACSC. American Ceramic Society Communications", "ACSJ. American Ceramic Society Journal", "AcSN. Acta Scientifica Naturalis", "AcSpA Spectrochimica Acta Part A: Molecular Spectroscopy", "AcSpe Spectrochimica Acta", "AcSSn Acta Seismologica Sinica", "ACTAp Automatic Control Theory Applications", "AcTC. Theoretica Chimica Acta", "AcTec Acta Technica", "Acu.. Acustica", "AcUnC Acta Universitatis Cibiniensis", "AcUni Acta Universitaria", "AdA&A Advances in Astronomy and Astrophysics", "AdAer Advances in Aeronautics", "AdAMP Advances in Atomic and Molecular Physics", "AdAnS Advances in the Astronautical Sciences", "AdAp. Advances in Astrophysics", "AdApM Advances in Applied Mathematics", "adap.pNASA ADAP Proposal", "AdAs. Ad Astra", "adass Astronomical Data Analysis Software and Systems", "AdAst Advances in Astronomy", "AD... Atomic Data", "AdAtS Advances in Atmospheric Sciences", "ADCBu Astronomical Data Center Bulletin", "AdChP Advances in Chemical Physics", "AdCIS Advances in Colloid and Interface Science", "AdCM. Advanced Ceramic Materials", "AdCMP Advances in Condensed Matter Physics", "AdCoL Advanced Composites Letters", "AdEl. Advanced Electromagnetics", "AdEPS Advances in Earth and Planetary Sciences", "AdG.. Advances in Geosciences", "AdGeo Advances in Geophysics", "AdHEP Advances in High Energy Physics", "ADIL. Astronomy Data Image Library", "AdMaP Advances in Mathematical Physics", "AdMet Advances in Meteorology", "AdMPC Advances in Materials Physics and Chemistry", "AdMRe Advances in Magnetic Resonance", "AdMS. Advances in Materials Science", "AdMSE Advances in Materials Science and Engineering", "AdMUM Advances in Mechanics Uspekhi Mekhaniki", "ADNDT Atomic Data and Nuclear Data Tables", "AdNOp Advances in Nonlinear Optics", "AdNuP Advances in Nuclear Physics", "AdOP. Advances in Optics and Photonics", "AdOT. Advanced Optical Technologies", "AdPho Advanced Photonics", "AdPhy Advances in Physics", "AdPlP Advances in Plasma Physics", "AdQC. Advances in Quantum Chemistry", "AdRS. Advances in Radio Science", "AdSAC Advanced Series in Astrophysics and Cosmology", "AdSpR Advances in Space Research", "AdSR. Advances in Science and Research", "AdTAM Advances in Theoretical and Applied Mechanics", "AdThP Advances in Theoretical Physics", "AdTMP Advances in Theoretical and Mathematical Physics", "AdWR. Advances in Water Resources", "AeAm. Aerospace America", "AeCh. Aerospace China", "AeCM. Aerospace Composites and Materials", "AEdRv Astronomy Education Review", "AeDy. Aerospace Dynamics", "AeEn. Aerospace Engineering", "AEEP. Advances in Electronics and Electron Physics", "AEEPS Advances in Electronics and Electron Physics Supplement", "AeIBu Aerokosmicheski Izsledvaniia B lgariia", "AeJ.. Aeronautical Journal", "Aekv. Aerodinamika kanalov i ventiliatorov", "AeMat Aerospace Materials", "AeMed Aerospace Medicine", "AeMiS Aerotecnica Missili &", "AeoRe Aeolian Research", "AeQ.. Aeronautical Quarterly", "AeRaG Aerodinamika Razrezhennykh Gazov", "AerAs L'Aeronautique et L'Astronautique", "AerMS L'Aerotecnica Missili e Spazio", "Aero. Aerospace UK", "AerRv Revue Aerospatiale", "AerSE Aerosol Science and Engineering", "AerST Aerosol Science Technology", "AerSy Aerospace Systems", "AerTe Aerojet Technology", "AeSIJ Aeronautical Society India Journal", "AeTJa Aerospace Technology Japan", "AExpr Astronomy Express", "AFChr Annales Francaises de Chronometrie", "AFGL. AFGL-TR-0208 Environemental Research papers", "AFLB. Annales de la Fondation Louis de Broglie", "AFMa. Air Force Magazine", "AFOEV Bulletin de l'Association Francaise d'Observateurs d'Etoiles Variables", "AFRE. Alta Frequenza Rivista di Elettronica", "AfrSk African Skies", "AfRvP The African Review of Physics", "Afz.. Astrofizika", "A&G.. Astronomy and Geophysics", "AgFM. Agricultural and Forest Meteorology", "Agrph The Astrograph", "AGUA. AGU Advances", "AGUFM AGU Fall Meeting Abstracts", "AGUSM AGU Spring Meeting Abstracts", "AHEEM Archives of Hydro-Engineering and Environmental Mechanics", "AHES. Archive for History of Exact Sciences", "AHSJ. American Helicopter Society Journal", "AIAAJ AIAA Journal", "AIASJ AIAA Student Journal", "AIChE AIChE Journal", "AIH.. Acoustical Imaging and Holography", "AIHAJ AIHA Journal", "AIHPA Annales de L'Institut Henri Poincare Section (A) Physique Theorique", "AIHPB Annales de L'Institut Henri Poincare Section (B) Probability and Statistics", "AIHPC Annales de L'Institut Henri Poincare Section (C) Non Linear Analysis", "AiInt Air International", "AIMSG AIMS Geosciences", "AIPA. AIP Advances", "AIQSY Annals of the IQSY", "AirCo Air et Cosmos", "AirE. Aircraft Engineering", "AirSp Air and Space", "AISAO Astrofizicheskie Issledovaniia Izvestiya Spetsial'noj Astrofizicheskoj Observatorii", "AISof Astrofizicheskie Issledovaniya Sofia", "AJB.. Astronomischer Jahresbericht", "AJCh. Australian Journal of Chemistry", "AJGeo American Journal of Geoscience", "AJSE. Arabian Journal of Science Engineering", "AJSEd Atlas Journal of Science Education", "AJS.. The Astronomical Journal Supplement", "AJ... The Astronomical Journal", "AkAtP Akademia Athenon Praktika", "AkTek Akustika i Ul trazvukovaia Tekhnika", "AkZh. Akusticheskii Zhurnal", "AlFr. Alta Frequenza", "ALMAN ALMA Newsletter", "AMat. Applied Mathematics", "Ambio Ambio", "AMGBA Archives for Meteorology Geophysics and Bioclimatology Series A Meteorology and Atmopsheric Physics", "AMGBB Archives for Meteorology Geophysics and Bioclimatology Series B Theoretical and Applied Climatology", "AMGBK Archiv Meteorologie Geophysik und Bioklimatologie Serie B Klimatologie und Umweltmeteorologie Strahlungsforschung", "AMGBS Archiv Meteorologie Geophysik und Bioklimatologie Serie Meteorologie und Geophysik", "AmJC. American Journal of Cardiology", "AmJM. American Journal of Mathematics", "AmJPh American Journal of Physics", "AmJSA American Journal of Science and Arts", "AmJS. American Journal of Science", "AMM.. Applied Mechanics and Materials", "AmMin American Mineralogist", "AMP.. Advanced Materials and Processes", "AMR.. Antarctic Meteorite Research", "AmSci American Scientist", "AMT.. Atmospheric Measurement Techniques", "AMTD. Atmospheric Measurement Techniques Discussions", "AMTM. Archives of Mechanical Technology and Materials", "AnaCh Analytical Chemistry", "AnAIK Annales de l'Observatoire astronomique de l'Université", "AnaIn Analytical Instrumentation", "AnAp. Annales d'Astrophysique", "AnAPM Annales de l'Observatoire d'astronomie physique de Paris, Section d'astrophysique, à", "AnApS Annals of Applied Statistics", "AN... Astronomische Nachrichten", "Ana.. The Analyst", "AnBes Annales de l'Observatoire de Besancon", "AnBog Neue Annalen der Koeniglichen Sternwarte in Bogenhausen bei Muenchen", "AnBor Annales de l'Observatoire de Bordeaux", "AnBos Annals of the Bosscha Observatory Lembang (Java) Indonesia", "AnBru Annales de l'Observatoire Royal de Bruxelles", "AnCap Annals of the Cape Observatory", "AnCGH Annals of Royal Observatory, Cape of Good Hope", "AnCPh Annales de Chimie et de Physique", "AnDea Annals of the Dearborn Observatory", "AnDud Annals of the Dudley Observatory", "AnEdi Annals of the Royal Observatory, Edinburgh", "AnErg Ergaenzungshefte zu den Astronomischen Nachrichten", "Anews ASTRON Newsletter", "AnFis Anales de Fisica", "AnG.. Annales de Geophysique", "AnGeo Annales Geophysicae", "AnGla Annals of Glaciology", "AnGp. Annals of Geophysics", "AnGVP Annales du Bureau des Longitudes, Gauthier-Villars, Paris", "AnHar Annals of Harvard College Observatory", "AnHP. Annales Henri Poincaré", "AnIPS Annals of the Israel Physical Society", "ANLAF Accademia Nazionale dei Lincei Atti Rendiconti Classe di Scienze Fisiche e Naturali", "ANLAM Accademia Nazionale dei Lincei Atti Rendiconti Classe di Matematica e Applicazioni", "ANLAR Accademia Nazionale dei Lincei Atti Rendiconti Classe di Scienze Fisiche Matematiche e Naturali", "AnLei Annalen van de Sterrewacht te Leiden", "AnLL. Annals of the Observatory of Lucien Libert", "AnLow Annals of the Lowell Observatory", "AnLun Annals of the Observatory of Lund", "AnLuS Annals of the Observatory of Lund Supplement", "AnMat Annals of Mathematics", "AnMet Annalen Meteorologie", "AnMN. Antarctic Meteorite Newsletter", "AnMP. Analysis and Mathematical Physics", "AnMun Annalen der Koeniglichen Sternwarte bei Muenchen", "AnMuS Supplementband zu den Annalen der Munchener Sternwarte", "AnNic Annales de l'Observatoire de Nice", "AnOB. Annales de l'Observatoire Royal de Belgique", "AnOBN Annales de l'Observatoire Royal de Belgique Nouvelle serie", "AnOLL Annals of the Private Observatory of Lucien Libert", "AnOSt Annales de l'Observatoire de Strasbourg", "AnP.. Annalen der Physik", "AnPar Annales de l'Observatoire de Paris", "AnPCS Annales de Physique Colloque Supplement", "AnPh. Annales de Physique", "AnPhy Annals of Physics", "AnPOb Annales de l'Observatoire de Paris. Observations", "AnRE. Annual Review of Energy", "AnRFM Annual Review of Fluid Mechanics", "AnRio Annales de l'Observatoire Imperial de Rio de Janeiro", "AnRMS Annual Review of Materials Science", "AnRSA Annual Review of Statistics and Its Application", "AnSAO Annals of the Astrophysical Observatory of the Smithsonian Institution", "ANS.. Astronomische Nachrichten Supplement", "AnSci Annals of Science", "AnShO Shanghai Observatory Annals", "ANSNN Advances in Natural Sciences: Nanoscience and Nanotechnology", "AnSPC Annals of the Solar Physics Observatory Cambridge England", "AnSSM Annals of Solid and Structural Mechanics", "AnSta Annals of Statistics", "AnStr Annalen der Kaiserlichen Universitats-Sternwarte in Strassburg", "AntAs The Antiquarian Astronomer", "AnTec Annales Tectonicae", "AnTel Annales des Telecommunications", "Anten Antenny", "Antk. Antarktika", "AnTok Annals of the Tokyo Astronomical Observatory", "AnTou Annales de l'Observatoire Astron. et Meteo. de Toulouse", "AntSc Antarctic Science", "AnUCP Annals of the University of Craiova Physics AUC", "AnWiD Annalen der Universitaets-Sternwarte Wien, Dritter Folge", "AnWie Annalen der K.K. Sternwarte Wien", "ANZi. Beobachtungs-Zirkular der Astronomischen Nachrichten", "AnZoC Annales de l'Observatoire astronomique de Zô", "AOIJ. Academic Open Internet Journal", "AOTok Annales de l'Observatoire astronomique de Tokyo", "ApAc. Applied Acoustics", "ApAN. Apatity Akademiia Nauk SSSR", "Ap... Astrophysics", "APCAJ Air Pollution Control Association Journal", "ApCM. Applied Composite Materials", "Apei. Apeiron", "ApEn. Applied Energy", "ApEnM Applied Environmental Microbiology", "APExp Applied Physics Express", "APFUS Annals of the Physics Faculty of the University of Sofia", "ApGC. pplied Geochemistry", "ApGeo Applied Geophysics", "APh.. Astroparticle Physics", "APHHI Acta Physica Hungarica Heavy Ion Physics", "APHQE Acta Physica Hungarica Quantum Electronics", "APhy. Acoustical Physics", "ApHyd Applied Hydrogeology", "ApInv Astrophysical Investigations", "APJAS Asia-Pacific Journal of Atmospheric Sciences", "ApJS. The Astrophysical Journal Supplement Series", "ApJ.. The Astrophysical Journal", "ApKF. Apatity Kol skii Filial AN SSSR", "ApL.. Astrophysical Letters", "ApL&C Astrophysical Letters and Communications", "APLM. APL Materials", "APLP. APL Photonics", "ApMaC Applied Mathematics Computation", "ApMaL Applied Mathematics Letters", "ApMaM Applied Mathematics Mechanics English Edition", "ApMaO Applied Mathematics Optimization", "ApMat Aplikace Matematiky, Applied Mathematics", "ApMic Applied Microbiology", "ApMM. Applied Mathematics and Mechanics", "ApMRv Applied Mechanics Reviews", "ApMT. Applied Microgravity Technology", "ApNan Applied Nanoscience", "ApNM. Applied Numerical Mathematics", "ApNr. Astrophysica Norvegica", "ApOpt Applied Optics", "AppAn Applicable Analysis", "ApPhA Applied Physics A: Materials Science & Processing", "ApPhB Applied Physics B: Lasers and Optics", "ApPhC Applied Physics Communications", "ApPhL Applied Physics Letters", "ApPhR Applied Physics Research", "ApPhy Applied Physics", "ApPPL Applied Physics B Photophysics Laser Chemistry", "ApPRv Applied Physics Reviews", "apra.pNASA APRA Proposal", "ApScR Applied Scientific Research", "ApSE. Applied Solar Energy", "ApSpe Applied Spectroscopy", "ApSRA Applied Scientific Research Section A", "ApSRB Applied Scientific Research Section B", "ApSRv Applied Spectroscopy Reviews", "ApSS. Applied Surface Science", "Ap&SS Astrophysics and Space Science", "ApSSP Astrophysics and Space Science Proceedings", "ApSSS Astrophysics and Space Science Supplement", "ApSup Applied Superconductivity", "ApT.. Astrophysics Today", "ApWS. Applied Water Science", "ARA&A Annual Review of Astronomy and Astrophysics", "ArA.. Arkiv for Astronomi", "ARAC. Annual Review of Analytical Chemistry", "ArAco Archives Acoustics", "ArAku Archiwum Akustyki", "ARAOJ Annual Report of the National Astronomical Observatory of Japan", "A&R.. Astronomie und Raumfahrt", "ArAuT Archiwum Automatyki i Telemechaniki", "ArBei Astrophysics Reports Publications of the Beijing Astronomical Observatory", "ARBl. Aerospace Research in Bulgaria", "ArBuM Archiwum Budowy Maszyn", "Arch. Archaeoastronomy", "ArchS Archaeoastronomy Supplement", "ARCMP Annual Review of Condensed Matter Physics", "ArCom Archivum Combustionis", "AReg. Astronomical register", "ArEle Archiwum Elektrotechniki", "ArElU Archiv Elektronik und Uebertragungstechnik", "ARep. Astronomy Reports", "AREPS Annual Review of Earth and Planetary Sciences", "ArG.. Arkiv for Geofysik", "ARIJ. An Interdisciplinary Journal of Physical and Engineering Sciences", "ARIST Annual Review of Information Science and Technology", "ArJPh Armenian Journal of Physics", "ArMAF Arkiv for Matematik, Astronomi och Fysik", "ArMaN Archiv for Mathematik og Naturvidenskab", "ArM.. Arkiv for Matematik", "ArMeS Archiv of Mechanics, Archiwum Mechaniki Stosowanej", "ArMiS Archives of Mining Sciences", "ARMS. Annual Review of Marine Science", "ARNPS Annual Review of Nuclear and Particle Science", "ArNSc Archives Neerlandaises des Sciences Exactes et Naturelles", "ARPC. Annual Review of Physical Chemistry", "ARPM. Adgeziia Rasplavov i Paika Materialov", "ArPSp Archiwum Procesow Spalania", "ArRMA Archive for Rational Mechanics and Analysis", "ArS.. Archives des Sciences", "ArSPN Archives des Sciences Physiques et Naturelles", "AR&T. Astronomical Research and Technology", "ArTh. Archives of Thermodynamics", "ArTr. Archives of Transport", "ArtSa Artificial Satellites", "ArTSp Archiwum Termodynamiki i Spalania", "arXiv arXiv e-prints", "AsAc. Astronautica Acta", "AsAer Astronautics Aeronautics", "ASAJ. Acoustical Society of America Journal", "AsBio Astrobiology", "ASBTV Archenhold-Sternwarte Berlin-Treptow, Vortrage Schr.", "ascl.sAstrophysics Source Code Library", "ASCMO Advances in Statistical Climatology Meteorology and Oceanography", "asc..rSpace Telescope ASC Instrument Science Report", "asd..sAstrophysics Software Database", "AsDyn Astrodynamics", "ASFAS Academia Scientiarum Fennica Annales Series Physica", "As&Ge Astronomiya i geodeziya", "ASHRA ASHRAE Journal", "AsJES Austrian Journal of Earth Sciences", "AsJPh Asian Journal of Physics", "ASL.. Advanced Science Letters", "ASLLR Accademia di Scienze e Lettere Istituto Lombardo Rendiconti Serie della Classe di Scienze Matematiche e Naturali Sezione Scienze Matematiche Fisiche Chimiche e Geologiche", "ASME. American Society of Mechanical Engineers", "Asnau Astronautik", "AsNot Astronomical Notices", "AsNow Astronomy Now", "ASNYN News Letter of the Astronomical Society of New York", "ASPL. Leaflet of the Astronomical Society of the Pacific", "ASPLS Leaflet of the Astronomical Society of the Pacific (Supplement)", "ASPRv Astrophysics and Space Physics Reviews", "ASSAB Academie Serbe des Sciences et des Arts Bulletin Classe des Sciences Techniques", "ASSB. Annales de la Socié", "AsSch Astronomie in der Schule", "ASSFA Acta Societatis Scientarum Fennicae Series A", "ASSF. Acta Societatis Scientarum Fennicae", "ASSP. Astrophysics and Space Science Proceedings", "AstAp Astronomy and Astro-Physics (formerly The Sidereal Messenger)", "Ast.. Astronomy", "AstBa Biblioteca Astrei Basarabene", "AstBu Astrophysical Bulletin", "Aster Aster", "AstHe Astronomical Herald", "AstL. Astronomy Letters", "Astnm Astronomia UAI", "AstPo Astropolitics", "AstQ. Astronomy Quarterly", "ASTRA Astrophysics and Space Sciences Transactions", "astro arXiv Astrophysics e-prints", "Astro Astronomy", "ASTRP ASTRA Proceedings", "Astr. The Astronomer", "AstRv The Astronomical Review", "AstSR Astronomical School's Report", "AsUAI Astronomia. La rivista dell' Unione Astrofili Italiani", "ATel1 The Astronomer's Telegram", "ATel. The Astronomer's Telegram", "AtEn. Atomnaia Energiia", "AtERv Atomic Energy Review", "ATi.. Astronomisk Tidsskrift", "ATJAM ASME Transactions Series E Journal of Applied Mechanics", "ATJDS ASME Transactions Journal of Dynamic Systems and Measurement Control B", "ATJEG ASME Transactions Journal of Engineering Gas Turbines and Power", "ATJEl ASME Transactions Journal of Electronic Packaging", "ATJEM ASME Transactions Journal Engineering Materials and Technology", "ATJEP ASME Transactions Journal of Engineering Power", "ATJFE ASME Transactions Journal of Fluids Engineering", "ATJHT ASME Transactions Journal of Heat Transfer", "ATJLT ASME Transactions Journal of Lubrication Technology", "ATJSE ASME Transactions Journal of Solar Energy and Engineering", "ATJTr ASME Transactions Journal of Tribology", "ATJTu ASME Transactions Journal of Turbomachinery", "ATJVA ASME Transactions Journal of Vibration Acoustics", "AtKe. Atomkernenergie", "AtlVS Atlas Poiskovykh Kart Peremennykh Zvezd", "ATMAB Association Technique Maritime et Aeronautique Bulletin", "ATMAS Association Technique Maritime et Aeronautique Session Paris France ONERA TP", "AtmEn Atmospheric Environment", "Atmos Atmosphere", "AtmRe Atmospheric Research", "AtmTe Atmospheric Technology", "atnf.pATNF Proposal", "AtO.. Atmosphere Ocean", "Atoms Atoms", "AtOO. Atmospheric and Oceanic Optics", "AtOpt Atmosphere Optics", "AtPhy Atomic Physics", "atp..pNASA ATP Proposal", "ATR.. ATR Australian Telecommunication Research", "AtSc. Atmospheric Science", "AtScL Atmospheric Science Letters", "ATsir Astronomicheskij Tsirkulyar", "AtST. Atomisation Spray Technology", "ATTM. AEG Telefunken Technische Mitteilungen", "ATTTJ AT T Technical Journal", "AUGGM Annales UMCS, Geographia, Geologia, Mineralogia et Petrographia", "AuJA. Australian Journal of Astronomy", "AuJES Australian Journal of Earth Sciences", "AuJPA Australian Journal of Physics Astrophysical Supplement", "AuJPh Australian Journal of Physics", "AuMM. Australian Meteorological Magazine", "AuMSJ Australian Mathematical Society Journal Series B -- Applied Mathematics", "AuRob Autonomous Robots", "AurPh Auroral physics", "AUSPh Annales UMCS, Sectio AAA: PHYSICA", "AuSRA Australian Journal of Scientific Research A Physical Sciences", "Autom Automatica", "AVest Astronomicheskii Vestnik", "AVET. Atomno Vodorodnaia Energetika i Tekhnologiia", "AVISS Astronomicheskii Vestnik Issledovaniia Solnechnoi Sistemy", "AvKos Aviatsiia i Kosmonavtika", "AvPE. Avtomatizatsiia Proektirovaniia Elektronike", "AvSeM Aviation Space and Environmental Medicine", "AVSOM American Association of Variable Stars Observers Monographs", "AVSOR American Association of Variable Stars Observers Reports", "AVSQS AVS Quantum Science", "AvTek Aviatsionnaia Tekhnika", "AvTel Avtomatika i Telemekhanika", "Avtme Avtometriia", "AvWST Aviation Week Space Technology", "AWUTP Annals of West University of Timisoara - Physics", "AzAJ. Azerbaijani Astronomical Journal", "AZh.. Astronomicheskii Zhurnal", "AZWis Astronomisches Zirkular der Akademie der Wissenschaften der UdSSR", "BAAA. Boletin de la Asociacion Argentina de Astronomia La Plata Argentina", "BAAPG Bulletin of the American Association of Petroleum Geologists", "BAAS. Bulletin of the American Astronomical Society", "BAAVC British Astronomical Association Variable Star Section Circular", "BABel Bulletin Astronomique de Belgrade", "BADPG Berlin East Germany Akademie Verlag GmbH Ergebnisse Plasmaphysik und Gaselektronik", "BAFOE Bulletin Association Fran. Obs. Etoiles Variables", "BAICz Bulletin of the Astronomical Institutes of Czechoslovakia", "BaltA Baltic Astronomy", "BAMaS Bulletin of the American Mathematical Society", "BAMS. Bulletin of the American Meteorological Society", "BAN.. Bulletin of the Astronomical Institutes of the Netherlands", "BANS. Bulletin of the Astronomical Institutes of the Netherlands Supplement Series", "BAOM. Boletin de la Astronomico Observatorio de Madrid", "BAORB Bulletin of the Astronomical Observatoire Royale de Belgique", "BaPhL Balkan Physics Letters", "BAPS. Bulletin of the American Physical Society", "BAPSS Bulletin de l'Academie Polonaise des Sciences Series des Sciences Mathematiques Astronomiques et Physiques", "BARB. Bulletin de l'Academie Royale de Belgique", "BASBr Bulletin of the Astronomical Society of Brazil", "BASI. Bulletin of the Astronomical Society of India", "BasR. Basin Research", "BAth. National Observatory of Athens Greece Bulletin of the Astronomical Institute", "BAVMM Berlin East Germany Akademie Verlag GmbH Shriftenreihe des Zentralinstituts Mathematik und Mechanik", "BAVSM Berliner Arbeitsgemeinschaft fuer Veraenderliche Sterne - Mitteilungen", "BAVSO Bulletin of the American Association of Variable Stars Observers", "BAVSR BAV Rundbrief - Mitteilungsblatt der Berliner Arbeits-gemeinschaft fuer Veraenderliche Sterne", "BAWMN Bayerische Akademie Wissenschaften mathematisch naturwissenschaftliche Klasse Sitzungsberichte", "BayAn Bayesian Analysis", "BBCEn BBC Engineering", "BBGPC Berichte der Bunsen-Gesellschaft Physical Chemistry Chemical Physics Berichte", "BBSAG Bulletin der Bedeckungsveraenderlichen-Beobachter der Schweizerischen Astronomischen Gesellschaft", "BBUSM Babes Bolyai Universitas Studia Series Physica", "BBUSS Babes Bolyai Universitas Studia Series Mathematica", "BCAIC Bulletin of the Central Astronomical Institute of Czechoslovakia", "BCFHT Bulletin d'information du telescope Canada-France-Hawaii", "BCNRC Canada National Research Council Division Mechanical Engineering National Aeronautical Establishment Quarterly Bulletin", "BCNRS Bulletin Signaletique - Centre National de la Recherche Scientifique", "BCrAO Bulletin Crimean Astrophysical Observatory", "BCSAB Bulletin Cl. Science Academy Royal de Belgique", "BDus. Byulleten' Instituta Astrofiziki Dushanbe Akademiya Nauk Tadzhikskoj SSR", "BdWis Bild der Wissenschaften", "BeElM Beskontaktnye Elektricheskie Mashiny", "BeiGe Beitraege zur Geophysik", "BeiMP Beitraege zur Mineralogie und Petrographie", "BeiRe Reprints Beijing Astronomical Observatory Academia Sinica", "BePl. Beitraege Plasmaphysik", "BEPM. Bielefeld Encounters in Physics and Mathematics", "BerAJ Berliner Astronomisches Jarbuch", "Bes1K Observatoire de Besancon", "BESBe Beobachtungs-Ergebnisse der Koniglichen Sternwarte zu Berlin", "BeSN. Be Star Newsletter", "BFWSG Braunschweig Friedr Vieweg und Sohn GmbH", "BGBGM Berlin Gebrueder Borntraeger Geoexploration Monographs Series", "BGD.. Biogeosciences Discussions", "BGeo. Biogeosciences", "BGeod Bulletin Geodesique", "BGNS. Bulletin Geodesique, Nouvelle Series", "BGSA. Bollettino Geod. Scienzi Affini", "BHarO Harvard College Observatory Bulletin", "BIAst Bjull. Inst. Astrofizikii", "BIBGI Bulletin d'Information du Bureau Gravimetrique International", "BiBi. Bioinspiration and Biomimetics", "BICDS Bulletin d'Information du Centre de Donnees Stellaires", "BIEBe Bulletin d'Information d'Etoiles Be", "BIHCD Bureau Internationale Heure, Paris, Circulaire", "BiLuf Bildmessung und Luftbildwessen", "BIMAF Boletin del Instituto de Matematica Astronomica y Fisica Universidad Nacional de Cordoba Argentina", "BIMIA Bulletin of the Institute of Mathematics and Its Applications", "BioFa Biofabrication", "BioMa Biomedical Materials", "Bion. Bionika", "Biopk Biophysik", "BioSc BioScience", "BIRM. Brussels Institute Royal Meteorologique de Belgique", "BITA. Byulleten' Instituta Teoreticheskoj Astronomii (Leningrad)", "BITad Biulletini of the Astronomical Institute Akademiia Nauk Tadzhikskoi", "BIT.. Behaviour & Information Technology", "BITon Boletin del Instituto de Tonantzintla", "BJAP. British Journal of Applied Physics", "BJHS. The British Journal for the History of Science", "BKAD. Beobachtungen der Kaiserlichen Universitaets-Sternwarte Dorpat", "BKoAS Bulletin of Korean Astronomical Society", "BKobO Bulletin of the Kobe Marine Observatory Kobe Japan", "BKUJ. Beobachtungen der Kaiserlichen Universitaets-Sternwarte Jurjew", "BLabR AT&", "BlazD BLAZAR Data", "BlDok Bolgarska Akademiia Nauk Doklady", "BlgAJ Bulgarian Astronomical Journal", "BlGeo Bulgarska Akademiia Naukite Geofizichni Institut Izvestiia", "BlGJ. Bulgarian Geophysical Journal", "BlGSp Bulgarsko Geofizichno Spisanie", "BlJMH Bulgarian Journal of Meteorology and Hydrology", "BlJPh Bulgarian Journal of Physics", "BlJPS Bulgarian Journal of Physics Supplement", "BlMat Bulgarska Akademiia Naukite Matematicheski Institut Izvestiia", "BLPI. Bulletin of the Lebedev Physics Institute", "BlSpi Bulgarska Akademiia Naukite Spisanie", "BlTek Bulgarska Akademiia Naukite Institut Tekhnicheska Kibernetika Izvestiia", "BlTse Bulgarska Akademiia Naukite Tsentralna Laboratoriia Geodeziia Izvestiia", "BMai. Bulletin de la Station Astrophotographique de Mainterne", "BMFRS Biographical Memoirs of Fellows of the Royal Society", "BMNAS Biographical Memoirs National Academy of Sciences", "BMOE. Boletin mensual del Observatorio del Ebro", "BMP.. Biological and Medical Physics", "BOBeo Bulletin de l'Observatoire Astronomique de Belgrade", "BoLMe Boundary-Layer Meteorology", "BOOde Odesskij Gosudarstvennyi Universitet im. I. I. Mechnikova Byulletin Astronomicheskoj Observatorii", "BOPul Bulletin (Izvestiya) de l'Observatoire Central a Poulkovo", "BoSAI Bollettino della Societa Astronomica Italiana", "BOTor Biuletyn Obserwatoium Astronomicznego Uniwersytetu M. Kopernika w Toruniu", "BOTT. Boletin de los Observatorios Tonantzintla y Tacubaya", "BPAS. Bulletin of Pure and Applied Science (Physics)", "BpBeS Biophysics and Bioengineering Series", "BpJ.. Biophysical Journal", "BpRL. Biophysical Reviews and Letters", "BRASP Bulletin of the Russian Academy of Sciences, Physics", "BrJPh Brazilian Journal of Physics", "BRMIC Behavior Research Methods Instruments and Computers", "BROA. Boletin Real Instituto y Observatorio de la Armada (San Fernando, Cadiz)", "BROGS Belgian Royal Observatory Communications Series Geophysics Series", "BrWK. Brennstoff Waerme Kraft", "BSAE. Bulletin of the Soviet Antarctic Expedition", "BSAF. Bulletin de la Societe Astronomique de France", "BSAFR Bulletin de la Societe Astronomique de France et Revue Mensuelle d'Astronomie, de Meteorologie et de Physique du Globe", "BSAL. Bulletin de la Societe Astronomique de Liege", "BSAO. Bulletin of the Special Astrophysics Observatory", "BSASP Bulletin de la Societe des Amis des Sciences et des Lettres de Poznan", "BSAst Bulletin of the Section of Astronomy", "BSBA. Bulletin de la Societe Belge d'Astronomie", "BSD.. Hamburger Sternwarte Bergedorf", "BSEEA Iasi Institutul Politehnic Buletinul Sectia Electrotehnica Electronica Automatizari", "BSMMT Iasi Institutul Politehnic Buletinul Sectia Matematica Mecanica Teoretica Fizica", "BSMT. Iasi Institutul Politehnic Buletinul Sectia Mecanica Tehnica", "BSolD Byulletin Solnechnye Dannye Akademie Nauk SSSR", "BSRSL Bulletin de la Societe Royale des Sciences de Liege", "BSSR. AN BSSR Institut Teplo i Massoobmena Vsesoiuznaia Konferentsiia Teplomassoobmenu Minsk Belorussian SSR Preprint", "BStaO Byulleten' Stalinabadskoj Astronomicheskoj Observatorii Akademiya Nauk Tadzhikskoj SSR", "BSTJ. Bell System Technical Journal", "BTasO Bulletin of the Tashkent Observatory", "BTE.. British Telecommunications Engineering", "BToIT Bulletin of the Tokyo Institute of Technology", "BTok. Bulletin of the Tokyo Astronomical Observatory", "BTSNU Bulletin of Taras Shevchenko National University of Kyiv Astronomy", "BTUM. Braunschweig Technische Universitaet Mitteilungen", "BUAAJ Beijing University Aeronautics and Astronautics Journal", "BuAkK Budapest Akademiai Kiado", "BuAsI Bulletin Astronomique, Serie I", "BuAsR Bulletin Astronomique, Revue Generale des Travaux Astronomiques", "BuAst Bulletin Astronomique", "BuAtS Bulletin of the Atomic Scientists", "BUBes Bulletin of the University of Besancon Observatory", "BuChr Bulletin Chronometrique (Besancon)", "BuENS Osaka Prefecture University Bulletin Series Engineering Natural Sciences", "BUEOP Bulletin of Ukrainian Earth Orientation Parameters Laboratory", "BuGeo Bulletin of Geosciences", "BuIPS Bulletin of the Israel Physical Society", "BuKwa Bulletin of the Kwasan Observatory, Kyoto", "BuLMS Bulletin of the London Mathematical Society", "BuLPI Bulletin of the Lebedev Physics Institute", "BuLyo Bulletin de l'Observatoire de Lyon", "BuMat Bulletin Mathematique", "BuONC Bulletin of the Special Astrophysical Observatory, Northern Caucasus", "BuSSA The Bulletin of the Seismological Society of America", "BVol. Bulletin of Volcanology", "BVVSA Bratislava Veda Vydavatelstvo Slovenskej Akademie Vied", "BYam. Bulletin of the Yamagata University Yamagata Japan", "ByuRe Byurakan Astrophysical Observatory Armenia USSR Reprints", "CaASJ Canadian Aeronautics and Space Journal", "CAD.. Computer-Aided Design", "CAGHS Correspondance Astronomique, Geographique, Hydrographique et statistique", "CahPh Cahiers de Physique", "CaJCh Canadian Journal of Chemistry", "CaJES Canadian Journal of Earth Sciences", "CaJPh Canadian Journal of Physics", "CaJPS Canadian Journal of Physics Supplement", "CaJRS Canadian Journal of Remote Sensing", "CANM. Communications in Applied Numerical Methods", "CAP.. Current Applied Physics", "CAPJ. Communicating Astronomy with the Public Journal", "CaRes Cancer Research", "CarOB Carter Observatory Wellington New Zealand Astronomical Bulletins", "CAS.. Cambridge Astrophysics Series", "CASI. CASI Transactions", "CASJ. Canadian Aeronautics and Space Journal", "CASJQ Canadian Aeronautics and Space Journal Quarter", "CBET. Central Bureau Electronic Telegrams", "CBOAA Comet Bulletin of the Oriental Astronomical Association", "CCCUK Comet Circular of the Chevchenkov University Kiev", "CCDA. CCD Astronomy", "CCM.. Clays and Clay Minerals", "CCoPh Communications in Computational Physics", "CCpFS Ceskoslovensky Casopis pro Fyziku Sekce", "CEAB. Central European Astrophysical Bulletin", "CEAS. CEAS Space Journal", "C&E.. Ciel et Espace", "CEE.. Computers and Electrical Engineering", "CEEJ. Canadian Electrical Engineering Journal", "CEEng Civil And Environmental Engineering Reports", "CEER. Civil And Environmental Engineering Reports", "CEGB. CEGB Research", "CEJ.. Chemistry A European Journal", "CEJE. Central European Journal of Engineering", "CEJG. Central European Journal of Geosciences", "CEJGl Central European Journal of Geology", "CEJPh Central European Journal of Physics", "CeMDA Celestial Mechanics and Dynamical Astronomy", "CeMec Celestial Mechanics", "Cent. Centaurus", "CEnTp Engineering Thermophysics China", "CEST. Communications Gillies Inc Electronic Systems in Transportation", "CESW. Combustion, Explosion and Shock Waves", "CF... Computers and Fluids", "CG... Computers and Geosciences", "CGDAM Conformal Geometry and Dynamics of the American Mathematical Society", "CGIP. Computer Graphics Image Processing", "ChA&A Chinese Astronomy and Astrophysics", "ChA.. Chinese Astronomy", "Chall Challenges", "Chaos Chaos", "ChCom Chemical Communications", "ChEG. Chemie der Erde / Geochemistry", "ChEnC Chemical Engineering Communications", "ChEnN Chemical Engineering News", "ChEnS Chemical Engineering Science", "ChGCS Chemosphere - Global Change Science", "ChGeo Chemical Geology", "ChIEJ Chinese Institute of Engineers Journal", "ChJAA Chinese Journal of Astronomy and Astrophysics", "ChJA. Chinese Journal of Aeronautics", "ChJAS Chinese Journal of Astronomy and Astrophysics Supplement", "ChJCP Chinese Journal of Chemical Physics", "ChJG. Chinese Journal of Geophysics", "ChJIR Chinese Journal of Infrared Research", "ChJLB Chinese Journal of Lasers B", "ChJL. Chinese Journal of Lasers", "ChJME Chinese Journal of Mechanical Engineering", "ChJNP Chinese Journal of Nuclear Physics", "ChJOL Chinese Journal of Oceanology and Limnology", "ChJPh Chinese Journal of Physics", "ChJS. Chinese Journal of Semiconductors", "ChJSS Chinese Journal of Space Science", "Chmsp Chemosphere", "ChNew Chandra News", "CHOCS CHOCS", "ChOE. China Ocean Engineering", "ChOpL Chinese Optics Letters", "ChPAS Republic of China National Science Council Proceedings Applied Sciences", "ChPhB Chinese Physics B", "ChPhC Chinese Physics C", "ChPhL Chinese Physics Letters", "ChPhy Chinese Physics", "ChRST China Rept Sci Technol JPRS CST", "ChRv. Chemical Reviews", "ChSAJ Chinese Society of Astronautics Journal", "ChSBu Chinese Science Bulletin", "ChSMJ Chinese Society of Mechanical Engineers Journal", "Chsph Chemosphere", "ChSST Chinese Space Science Technology", "CiARI Circular of the Astronomisches Recheninstitut", "CiBAA Circular of the British Astronomical Association", "CIBu. COSPAR Information Bulletin", "CIDA. CIDA", "Ciel. Le Ciel", "CiInf Circ. Inf.", "CiPoJ Circumpolar Journal", "CIPSG Canadian Information Processing Society Graphics Interface", "CiSSV Circolare Interna della Sezione Stelle Variabili dell'Unione Astrofili Italiani", "CITM. Chubu Institute Technology Memoirs", "CiUO. Circular of the Union Observatory Johannesburg", "CJChE Canadian Journal of Chemical Engineering", "CJECE Canadian Journal of Electrical Computer Engineering", "CJLTP Chinese Journal of Low Temperature Physics", "CJRes Canadian Journal of Research", "CJSMT Canadian Journal of Science Mathematics and Technology Education", "CKH.. Chagyo Kenkyu Hokoku (Tea Research Journal)", "ClCh. Climatic Change", "ClDy. Climate Dynamics", "CLic2 Contributions of Lick Observatory, Series II", "CliPa Climate of the Past", "CliPD Climate of the Past Discussions", "ClMin Clay Minerals", "ClRes Climate Research", "CLS.. Curved and Layered Structures", "CMAME Computer Methods in Applied Mechanics and Engineering", "CMaPh Communications in Mathematical Physics", "CMDRG Chislennye Metody Dinamike Razrezhennykh Gazov", "CMMPh Computational Mathematics and Mathematical Physics", "CmpEn Composites Engineering", "CmPhy Communications Physics", "CMPhy Condensed Matter Physics", "Cmplx Complexity", "CmpMa Composites Manufacturing", "CMPNC Cambridge Monographs on Particle Physics, Nuclear Physics and Cosmology", "CMPPh Cambridge Monographs on Plasma Physics", "CmpSt Composite Structures", "CMT.. Continuum Mechanics and Thermodynamics", "CMwA. Computers and Mathematics with Applications", "CMWCI Contributions from the Mount Wilson Observatory / Carnegie Institution of Washington", "CNan. Current Nanoscience", "CNME. Communications in Numerical Methods in Engineering", "CNRAe CNR Aeritalia S", "CNSMP Comet News Service, McDonnell Planetarium", "CNSNS Communications in Nonlinear Science and Numerical Simulations", "CoAMP Comments on Atomic and Molecular Physics", "CoAnk Communications of the Department of Astronomy of Ankara University", "CoAsi Contributi dell'Osservatorio Astrofisica dell'Universita di Padova in Asiago", "CoASP Comments on Astrophysics and Space Physics", "CoAst Communications in Asteroseismology", "CoBAO Communications of the Byurakan Astrophysical Observatory", "CoBos Contributions from the Bosscha Observervatory", "CoBrn Contributions of the Public Observatory and Planetarium in Brno", "CoCam Contributions from the Cambridge Observatory England", "CoCMP Comments on Condensed Matter Physics", "CoCoi Comunicacoes do Observatonio Astronomico da Universidade de Coimbra", "CoCom Control and Computers", "CODAB CODATA Bulletin", "CoDAO Contributions from the Dominion Astrophysical Observatory in Victoria", "CoDDO Communications from the David Dunlap Observatory", "CoDun Contributions from the Dunsink Observatory Dublin Ireland", "Coel. Coelum Periodico Bimestrale per la Divulgazione dell'Astronomia", "CoFl. Combustion and Flame", "CoFra Consiglio Nazionale delle Ricerche Italia. Laboratorio di Astrofisica Frascati Roma Contributi", "CoGG. Contributions to Geophysics and Geodesy", "CogPh Cogent Physics", "CoIAP Contributions de l'Institut d'Astrophysique de Paris Serie A", "CoKit Contributions from the Kitt Peak National Observatory", "CoKon Commmunications of the Konkoly Observatory Hungary", "CoKwa Contributions from the Kwasan and Hida Observatories University of Kyoto", "CoKyo Contributions from the Institute of Astrophysics and Kwasan Observatory Kyoto", "CoLic Contributions of Lick Observatory", "CoLon Communications of the University of London Observatory", "CoLou Contributions of the Louisiana State University Observatory Baton Rouge Louisiana", "CoLPL Communications of the Lunar and Planetary Laboratory", "ColSu Colloids and Surfaces", "ComAC Computational Astrophysics and Cosmology", "ComAp Comments on Astrophysics", "CoMar Circulaires de l'Observatoire de Marseille", "CoMat Communications Materials", "ComBr Communication Broadcasting", "CoMcD Contributions from the McDonald Observatory University of Texas Fort Davis", "CoMil Contributions dell'Osservatorio Astrononia di Milano-Merate", "ComMP Comments in Modern Physics", "ComMS Computational Materials Science", "Commu Communications", "CoMP. Contributions to Mineralogy and Petrology", "ComPh Computers in Physics", "CompJ The Computer Journal", "CompM Computational Mechanics", "Compo Composites", "Compr Computer", "Compu Computing", "CoMRA Concepts in Magnetic Resonances A", "CoMRB Concepts in Magnetic Resonances B", "ComSE Computing Systems in Engineering", "ComSo Communications Society", "ComSp Commercial Space", "ComST Composites Science Technology", "COMTR COMSAT Technical Review", "ConAP Contributions to Atmospheric Physics/Beitraege zur Physik der Atmosphaere", "ConCP Contemporary Concepts in Physics", "CoNet Journal of Communications and Networks", "CONMS Contributions of the Observatory of New Mexico State University, Las Cruces Special Series", "ConPh Contemporary Physics", "CoNPP Comments on Nuclear and Particle Physics", "ConSc Connection Science", "CoOpt Computer Optics", "CoORB Communications de l'Observatoire Royal de Belgique", "COP.. Coherent Optical Phenomena", "CoPer Contributions of Perkins Observatory", "CoPhC Computer Physics Communications", "CoPhR Computer Physics Reports", "CoPPC Comments on Plasma Physics and Controlled Fusion", "CoPP. Contributions to Plasma Physics", "CoPri Contributions from the Princeton University Observatory", "CoROE Communications from the Royal Observatory Edinburgh", "CorRe Coral Reefs", "CoRSE Royal Society Edinburgh Communications Physical Sciences", "CoRut Contributions from the Rutherford Observatory of Columbia University New York", "CosEl Cosmic Electrodynamics", "CoSka Contributions of the Astronomical Observatory Skalnate Pleso", "CoSkL Contributions of the Astronomical Observatory Skalnate Pleso Letters", "CoSkS Contributions of the Astronomical Observatory Skalnate Pleso Supplement", "Cosmo COSMOS", "CosRe Cosmic Research", "CosSe Cosmic Search", "COSSM Current Opinion in Solid State and Materials Science", "CoStA Communications from the University Observatory St Andrews Scotland", "CoStr Computers and Structures", "CoThe Contributions from the Astronomical Department of the University of Thessaloniki", "CoTok Contributions from the Department of Astronomy University of Tokyo", "CoTol Contributions from the Cerro Tololo Inter-American Observatory", "CoTPh Communications in Theoretical Physics", "CoVVO Contributions of the Van Vleck Observatory", "CoWas Contributions from the Washburn Observatory of the University of Wisconsin", "CoWat Contributions of the University of Waterloo Observatory", "CPAM. Communications in Pure Applied Mathematics", "CP... Chemical Physics", "CPh.. Coherent Phenomena", "CPhD. Cape Photographic Durchmusterung", "CPL.. Chemical Physics Letters", "CPMCM Commentationes Physico-Mathematicae et Chemico-Medicae", "CPM.. Computational Particle Mechanics", "CPPM. Clinical Physics and Physiological Measurement", "CPR.. Chemical Physics Reports", "CPSS. Chemical Physics of Solid Surfaces", "CQGra Classical and Quantum Gravity", "CR2.. Academie des Sciences Comptes Rendus Serie Mecanique Physique Chimie Sciences de la Terre et de l Univers", "CRABS Comptes Rendus de l'Academie Bulgare des Sciences", "CRASA Academie des Sciences Paris Comptes Rendus Vie Academique Semester Supplement", "CRAS. Academie des Sciences Paris Comptes Rendus", "CRASB Academie des Sciences Paris Comptes Rendus Serie B Sciences Physiques", "CRASE Comptes Rendus de l'Acadé", "CRASG Academie des Sciences Paris Comptes Rendus Serie Generale La Vie des Sciences", "CRASM Academie des Sciences Paris Comptes Rendus Serie Sciences Mathematiques", "CRASP Academie des Sciences Paris Comptes Rendus Serie Physique Astrophysique", "CRB.. C.R. Acad. Sci. Ser. B1", "CR... Comptes Rendus Academie des Sciences (serie non specifiee)", "CRGeo Comptes Rendus Geoscience", "CRJS. Comptes Rendus sur les Journees de Strasbourg", "CRLJ. Communications Research Laboratory Journal", "CRLRv Communications Research Laboratory Review", "CRMat Comptes Rendus Mathematique", "CRMec Comptes Rendus Mecanique", "CRPhy Comptes Rendus Physique", "CRSPH Compte Rendu des Seances de la Societe de Physique et d'Histoire Naturelle de Geneve", "CRSSM Critical Reviews in Solid State & Materials Sciences", "Cryo. Cryogenics", "CryRp Crystallography Reports", "CSASG Contributions of the Slovak Academy Sciences Geophysical Institute", "CSci. Current Science", "CS&D. Computational Science and Discovery", "CSE.. Computing in Science and Engineering", "CSEd. Computer Science Education", "CSF.. Chaos Solitons and Fractals", "CSFX. Chaos Solitons and Fractals: X", "CSMA. Computational Structural Mechanics and Applications", "CSMPA Ankara University Faculty of Science Communications, Series A2-Ad Physical Sciences and Engineering", "CSPSE Ankara Universite Faculte des Sciences Communications Serie Mathematiques Physique et Astronomie", "CSR.. Continental Shelf Research", "CSSE. Cultural Studies of Science Education", "CSSP. Circuits Systems and Signal Processing", "CST.. Combustion Science and Technology", "C&T.. Ciel et Terre", "CTE.. Ciencias de la Tierra y del Espacio", "CTGeo Contemporary Trends in Geoscience", "CTM.. Combustion Theory and Modelling", "CTMPC Cambridge Topics in Mineral Physics and Chemistry", "CTmp. Connaissance des Temps", "CuCo. Culture and Cosmos", "CVGIP Computer Vision Graphics and Image Processing", "CzJPh Czechoslovak Journal of Physics", "CzJPS Czechoslovak Journal of Physics Supplement", "CzMJ. Czechoslovak Mathematical Journal", "DatSJ Data Science Journal", "Defek Defektoskopiia", "DefEl Defense Electronics", "DeHyZ Deutsche Hydrographische Zeitschrift", "DeScE Defense Science Electronics", "DFVLR DFVLR", "DGKBA Deutsche Geodaetische Kommission Bayer. Akad. Wiss.", "DGKBB Deutsche Geodaetische Kommission Bayer. Akad. Wiss. B", "DGKGN Deutsche Geodaetische Kommission Gravity Network West Germany DSGN Data Adjustment", "Dimen Dimensions", "DImTe Display Imaging Technology", "DIO.. DIO", "DiRaG Dinamika razrezhennykh gazov", "DISA. DISA Information", "Disc. Discover", "DISER Disciplinary and Interdisciplinary Science Education Research", "DiSis Dinamicheskie Sistemy", "Displ Displays", "DLGRM DLGR Magnetofluiddyn", "Dlib. D-Lib Magazine", "DLRNa DLR Nachrichten", "DMJ.. Defense Management Journal", "DnU.. Differentsialnye Uravneniia", "DoANT Doklady Akademiia Nauk TadzhSSR", "DoArm Akademiia Nauk Armianskoi SSR Doklady", "DoAze Akademiia Nauk Azerbaidzhanskoi SSR Doklady", "DoBan Doklady Bolgarskoi Akademiia Nauk", "DoBel Akademiia Nauk BSSR Doklady", "DOIAP Documentation des Observateurs Institut d'Astrophysique de Paris", "DokAN Doklady Akad Nauk Minerologia USSR", "DokES Doklady Earth Sciences", "DokPh Physics - Doklady", "DorPo Dornier Post", "DoSSR Akademiia Nauk SSSR Doklady", "DoTad Akademiia Nauk Tadzhikskoi SSR Doklady", "DoUkr Akademiia Nauk Ukrains koi RSR Dopovidi Seriia Fiziko Matematichni ta Tekhnichni Nauki", "DoUzb Akademiia Nauk Uzbekskoi SSR Doklady", "DPhyG Deutsche Physikalische Gesellschaft", "DPM.. Dinamika i Prochnost Mashin", "DRM.. Diamond and Related Materials", "DSCS. Dynamics and Statistics of the Climate System", "DSE.. Distributed Systems Engineering", "DSJ.. Defense Science Journal", "DSNPR Deep Space Network Progress Report", "DSO.. Double Star Observer", "DSP.. Digital Signal Processing", "DSRA. Deep Sea Research A", "DSRB. Deep Sea Research B", "DSR.. Deep Sea Research", "DSRI. Deep Sea Research Part I: Oceanographic Research", "DSRII Deep Sea Research Part II: Topical Studies in Oceanography", "DSRMC Defense Systems Review Military Communications", "DSROA Deep Sea Research and Oceanographic Abstracts", "DSSC. Double Star Section Circulars", "DSSN. Delta Scuti Star Newsletter", "DudOR Dudley Observatory Reports", "DunOP Dunsink Observatory Publications", "DunRe Dunsink Observatory Reprints", "DWES. Drinking Water Engineering and Science", "DyAtO Dynamics of Atmospheres and Oceans", "DynCo Dynamics and Control", "EaEvS Earth and Evolution Sciences", "EaFut Earth's Future", "EaInt Earth Interactions", "EartD eEarth Discussions", "Earth eEarth", "EaSci Earthquake Science", "EBBT. Emerging Biochemical and Biophysical Techniques", "EBCi. Eclipsing Binaries Circulars", "E&C.. Electronics and Communications", "EcGH. Eclogae geologae Helvetii", "EcGou Ecole de Goutelas", "ECLRv Electrical Communication Laboratories Review", "ECM.. Energy Conversion Management", "ECMS. Estuarine and Coastal Marine Science", "ECSS. Estuarine Coastal and Shelf Science", "E&E.. Elektromashinostroenie i Elektrooborudovanie", "EEEV. Earthquake Engineering and Engineering Vibration", "EERSA East Europe Rept Sci Affairs JPRS", "EERST East European Rept Sci. Technol. JPRS ESA", "EES.. Environmental Earth Sciences", "EET.. Electrochemical Energy Technology", "EExSc Earth and Extraterrestrial Sciences", "EFM.. Environmental Fluid Mechanics", "EGSGA E&", "EIUEN ESA IUE Newsletter", "EJASP EURASIP Journal on Applied Signal Processing", "EJCM. European Journal of Computational Mechanics", "EJEE. European Journal of Engineering Education", "EJMF. European Journal of Mechanics B Fluids", "EJMin European Journal of Mineralogy", "EJMS. European Journal of Mechanics Solids", "EJPh. European Journal of Physics", "EJSE. European Journal of Science Education", "EJSM. e-Journal of Soft Materials", "EJSta Electronic Journal of Statistics", "EJTP. Electronic Journal of Theoretical Physics", "Elast Elastic", "ElBah Elektrische Bahnen", "Elecm Electromagnetics", "Elek. Elektronika", "Eleme Elements", "Elem. Elektromekhanika", "EL... EPL (Europhysics Letters)", "EleSt Electronic Structure", "ElLC. Electrotechnical Laboratory Circulars", "ElL.. Electronics Letters", "ElMod Elektronnoe Modelirovanie", "ElP.. Electronics Power", "ElPro Electronic Progress", "ElTA. Elektronnaia Tekhnika Avtomatike", "ElUn. El Universo", "ElW.. Electrowaerme International", "EMCT. EMC Technology", "E&M.. Elektrotechnik und Maschinenbau", "eMetN eMeteorNews", "EML.. Electronic Materials Letters", "EM&P. Earth Moon and Planets", "EnAt. Energia es Atomtechnika", "EnC.. Energy Conversion", "Endvr Endeavour", "EnEng Environmental Engineering", "Energ Energetika", "ENews Europhysics News", "EnFM. Engineering Fracture Mechanics", "EngAn Engineering Analysis", "EngCo Engineering Computations", "EnGeo Environmental Geology", "EnMan Environmental Management", "EnOp. Engineering Optimization", "EnSci Engineering and Science", "EnST. Environmental Science and Technology", "EntIS Enterprise Information Systems", "EnTR. Energy Technology Review", "Entro Entropie", "Entrp Entropy", "EnUK. Energy", "EOAST Earth-Oriented Applications and Space Technology", "EObsC Einstein Observatory Catalog of IPC X-ray Sources", "EOSD. Electro Optical Systems Design", "EOSTr EOS Transactions", "EPJA. European Physical Journal A", "EPJAM EPJ Applied Metamaterials", "EPJAP European Physical Journal Applied Physics", "EPJAS European Physical Journal A Supplement", "EPJB. European Physical Journal B", "EPJC. European Physical Journal C", "EPJCS European Physical Journal C Supplement", "EPJD. European Physical Journal D", "EPJE. European Physical Journal E", "EPJH. European Physical Journal H", "EPJNS EPJ Nuclear Sciences &", "EPJP. European Physical Journal Plus", "EPJPv EPJ Photovoltaics", "EPJQT EPJ Quantum Technology", "EPJST European Physical Journal Special Topics", "E&PP. Earth and Planetary Physics", "EPRIJ EPRI Journal", "EPSC. European Planetary Science Congress", "EP&S. Earth, Planets, and Space", "E&PSL Earth and Planetary Science Letters", "eRad. eRadiant, Journal of the Dutch Meteor Society", "ERCom Environmental Research Communications", "ER... Environmental Research", "ERExp Engineering Research Express", "ERL.. Environmental Research Letters", "ErNW. Ergebnisse der exakten Naturwissenschaften", "ERST. Europe Report Science Technology", "ESABu ESA Bulletin", "ESAHR ESA History Study Reports", "ESAJ. ESA Journal", "ESASM ESA Scientific & Technical Memoranda", "ESAST ESA Scientific Technical Review", "ESATM ESA Training Manual", "ESC.. ACS Earth and Space Chemistry", "ESDD. Earth System Dynamics Discussion", "ESD.. Earth System Dynamics", "E&S.. Earth in Space", "ESE.. Earth Systems and Environment", "ESF.. Earth Science Frontiers", "ESIL. Eruptive Stars Information Letter", "ESN.. European Science Notes", "ESOB. European Southern Observatory ESO Bulletin", "ESOSP European Southern Observatory Scientific Preprints", "ESOSR European Southern Observatory Scientific Report", "ESPL. Earth Surface Processes and Landforms", "ESRv. Earth Science Reviews", "ESSDD Earth System Science Data Discussions", "ESSD. Earth System Science Data", "E&SS. Earth and Space Science", "ESSFR IEICE ESS Fundamentals Review", "EssPh Essays in Physics", "ESuDD Earth Surface Dynamics Discussions", "ESuD. Earth Surface Dynamics", "ETATF Eesti NSV Teaduste Akadeemia Toimetised Fuusika Matemaatika", "ETRE. Elektrosviaz Telecommunications Radio Engineering Telecommunications", "ETTRT European Transactions Telecommunications Related Technologies", "ETWQ. Environmental Toxicology and Water Quality", "EUCAS EUCASS Proceedings Series", "EURPE EUREKA: Physics and Engineering", "EurSS Eurasian Soil Science", "EuRv. European Review", "EVest Elektrotehniski Vestnik", "ExA.. Experimental Astronomy", "ExFl. Experiments in Fluids", "ExG.. Exploration Geophysics", "ExHT. Experimental Heat Transfer", "ExM.. Experimental Mechanics", "EXOSA EXOSAT Express", "ExT.. Experimental Techniques", "ExTFS Experimental Thermal Fluid Science", "Extr. Extraction", "FACM. Functiones et Approximatio Commentarii Mathematici", "FaDi. Faraday Discussions", "FaTr. Faraday Transactions", "FBS.. Few-Body Systems", "FCPh. Fundamentals of Cosmic Physics", "F&CRe Flower and Cook Observatory Reprints", "FCS.. Functional Composites and Structures", "FFEMS Fatigue and Fracture of Engineering Materials and Structures", "F&IER Forschung im Ingenieurwesen Engineering Research", "F&I.. Forschung im Ingenieurwesen", "FiIO. Fiber and Integrated Optics", "FiMek Fizicheskaia Mekhanika", "FiMos Akademiia Nauk SSSR Otdelenie Obshchei Fiziki i Astronomii Nauchnaia Sessiia Moscow USSR Uspekhi Fizicheskikh Nauk", "FiSSR Akademiia Nauk Tadzhikskoi SSR Fiziko Tekhnicheskii Institut Dyushambe Tadzhik SSR Akademiia Nauk Tadzhikskoi SSR Doklady", "FiUkr Akademiia Nauk Ukrain skoi RSR Dopovidi Seriia Fiziko Matematichni ta Tekhnichni Nauki", "FizA. Fizika A", "FizAO Akademiia Nauk SSSR Fizika Atmosfery i Okeana", "FizAS Fizika Aerodispersnykh Sistem", "FizB. Fizika B", "FizCh Fizyki i Chemii Seria Fizyka", "FizEl Fizicheskaia Elektronika", "Fiz.. Fizika", "FizGV Fizika Goreniia i Vzryva", "FizKM Fiziko Khimicheskaia Mekhanika Materialov", "FizKO Fizika i Khimiia Obrabotki Materialov", "FizMM Fizika Metallov i Metallovedenie", "FizMS Fizika Mnogochastichnykh Sistem", "FizNT Fizika Nizkikh Temperatur", "FizPl Fizika Plazmy", "FizSz Fizika Sz.", "FizTT Fizika Tverdogo Tela", "FizTV Fizika i Tekhnika Vysokikh Davlenii", "FizZS Fizika Zhidkogo Sostoianiia", "FlDy. Fluid Dynamics", "FlDyR Fluid Dynamics Research", "FlDyT Fluid Dynamics Transactions", "FlMSR Fluid Mechanics Soviet Research", "Fluid Fluidika", "FluQ. Fluids Quarterly", "FMEC. Frontiers of Mechanical Engineering in China", "F&M.. Feinwerktechnik und Messtechnik", "FML.. Functional Materials Letters", "FNCN. Fullerene Nanotubes and Carbon Nanostructures", "FNL.. Fluctuation and Noise Letters", "FoGeo Fotointerpretacja w Geografii", "FoPh. Foundations of Physics", "FoPhL Foundations of Physics Letters", "ForPh Fortschritte der Physik", "ForPW Fortschritte der Physikalischen Wissenschaften", "Fract Fractals", "FrASS Frontiers in Astronomy and Space Sciences", "FrCh. Frontiers in Chemistry", "FrEaS Frontiers in Earth Science", "Freq. Frequenz", "FrES. Frontiers of Earth Science", "FRFI. Flug Revue Flugwelt International", "FrInJ Journal of The Franklin Institute", "FrMat Frontiers in Materials", "FrME. Frontiers of Mechanical Engineering", "FrMS. Frontiers of Materials Science", "FrP.. Frontiers in Physics", "FrPhC Frontiers of Physics in China", "FrPhy Frontiers of Physics", "FST.. Fullerene Science and Technology", "FSTJ. Fujitsu Scientific Technical Journal", "FTC.. Flow, Turbulence and Combustion", "FTP.. Fundamental Theories of Physics", "Fut.. Futures", "Futur Future Spring", "Gaea. Gaea - Journal of Geoscience", "GAe.. Geomagnetizm i Aeronomiia", "Galax Galaxies", "GalEl Galilean Electrodynamics", "galx.pGALEX Proposal", "GAM.. Geophysics and Astrophysics Monographs", "GaMuM Gesellschaft Angewandte Mathematik und Mechanik Workshop Paris France", "GApFD Geophysical and Astrophysical Fluid Dynamics", "GAst. Giornale di Astronomia", "GATAN Gesellschaft Aerosolforschung Tagung ueber Aerosole Naturwissenschaft Medizin und Technik Messtechnik und technische Anwendung", "GazA. Gazette Astronomique", "GazAM Gazette Astronomique Memoires", "GazT. Gazodinamika i Teploobmen", "GBioC Global Biogeochemical Cycles", "GBzG. Gerlands Beitraege zur Geophysik", "GCarp Geologica Carpathica", "GCBio Global Change Biology", "GCN1. GRB Coordinates Network", "GCN2. GRB Coordinates Network", "GCNew Galactic Center Newsletter", "GCN.. GRB Coordinates Network", "GCNR. GCN Report", "GCRV. Carnegie Institute Washington D.C. Publication", "GDS.. Geophysical Developments Series", "Ge&Ae Geomagnetism and Aeronomy", "GeAer Geodeziia i Aerofotos", "GeCar Geodesy and Cartography", "GeCAS Geochimica et Cosmochimica Acta Supplement", "GeChr Geochronology", "GECJR GEC Journal Research", "GeCoA Geochimica et Cosmochimica Acta", "GeGe. Geophysica et Geodaetica", "GeIss Geoinformation Issues", "GeKaA Geodeziia Kartografiia i Aerofotos", "GeKar Geodeziia i Kartografiia", "Gelio Geliotekhnika", "Gemin GEMINI Newsletter Royal Greenwich Observatory", "Gen1K Observatoire de Geneve", "GeoAc Geodinamica Acta", "GEOCA GEOS Circular on Small-Amplitude Variables", "GEOCE GEOS Circular on Eclipsing Binaries", "Geoch Geochemistry", "GeocI Geochemistry International", "GeocJ Geochemical Journal", "GEOCR GEOS Circular on RR Lyr Type Variables", "GEOCS Semi-Regular Variables", "Geode Geofisica Internacional", "GeofI Geofisica Internacional", "Geo.. Geology", "GeoGl Geodetski Glasnik", "GeoIn Geocarto International", "GeoIs Geomagnitnye Issledovaniia", "GeoJ. Geophysical Journal", "GeoJI Geophysical Journal International", "GeoK. Geodezja i Kartografia", "Geokh Geokhimiia", "Geolg Geologos", "Geolo Geologija", "Geoma Geomatik", "GeoM. Geological Magazine", "Geomo Geomorphology", "GeoNr Geophysica Norvegica", "GeoOD Geology of Ore Deposits", "GeoPA Geofisica Pura e Applicata", "Geop. Geophysics", "Geoph Geophysica", "GeopP Geophysical Prospecting", "GeoRL Geophysical Research Letters", "GeoRu Geologische Rundschau", "GeoSb Geofizicheskii Sbornik", "Geosc Geosciences", "GeoSJ Geological Society Journal", "GEOSN GEOS Note Circulaire", "Geosp Geosphere", "GeosR Geoscience Records", "GeoSu Geophysical Surveys", "Geote Geotectonics", "Geot. Geotimes", "Geoth Geothermics", "GeoZh Geofizicheskii Zhurnal", "Gerb. Gerbertvs, International Academic Publication on History of Medieval Science", "GescJ Geosciences Journal", "GGG.. Geochemistry, Geophysics, Geosystems", "GGMit Gauss-Gesellschaft e.V. Gö", "GGMM. Greenhouse Gas Measurement & Management", "GID.. Geoscientific Instrumentation, Methods and Data Systems Discussions", "Gidro Gidromekhanika", "GI... Geoscientific Instrumentation, Methods and Data Systems", "GiGi. Gidroprivod i Gidropnevmoavtomatika", "GIPol Geoinformatica Polonica", "GiSan Gigiena i Sanitariia", "GKA.. Geodeziia i Kartografiia Aehrofotosemka, L'vov", "GMDD. Geoscientific Model Development Discussions", "GMD.. Geoscientific Model Development", "GML.. Geo-Marine Letters", "GMMWJ Gesellschaft angewandte Mathematik und Mechanik Jahrestagung Goettingen West Germany Zeitschrift Flugwissenschaften", "GMS.. Washington DC American Geophysical Union Geophysical Monograph Series", "GMuD. Gesellschaft Mathematik und Datenverarbeitung mbH Multigrid Methods Special Topics Applications", "GOAM. Greenwich Observations in Astronomy, Magnetism and Meteorology made at the Royal Observatory, Series 3", "GOAMM Greenwich Observations in Astronomy, Magnetism and Meteorology made at the Royal Observatory, Series 2", "GondR Gondwana Research", "GORO. Greenwich Observations made at the Royal Observatory", "GPC.. Global and Planetary Change", "GPSW. GPS World", "GrAeH Grumman Aerospace Horizons", "GrCo. Gravitation and Cosmology", "GReGr General Relativity and Gravitation", "GriO. Griffith Observer", "gr.qc arXiv General Relativity and Quantum Cosmology e-prints", "GrTOn Gravitatsiia i Teoriia Otnositelnosti", "Grund Grundwasser", "GSAB. Geological Society of America Bulletin", "GSAMm Geological Society of America Memoir", "GSASP Geological Society of America Special Papers", "GSDJ. Geoscience Data Journal", "GSEng GeoScience Engineering", "GSL.. Geoscience Letters", "GSLSP Geological Society of London Special Publications", "GTES. Geothermal Energy Science", "GTPZ. Gigiena Truda i Professionalnye Zabolevaniia", "GUL.. Geschichte und Lichtwechsel der Veraenderlichen Sterne (Potsdam)", "GVMK. Gibridnye Vychislitelnye Mashiny i Kompleksy", "HAAG. Handbook of Astronomy Astrophysics and Geophysics", "HadJ. Hadronic Journal", "HadJS Hadronic Journal Supplement", "HamS. Hamburger Sternwarte Sonderdrucke", "HarAC Harvard College Observatory Announcement Card", "HarCi Harvard College Observatory Circular", "HarMo Harvard Observatory Monographs", "HarOR Report of the Committee of the Overseers of Harvard College appointed to visit the Observatory", "HarRe Harvard College Observatory Reprints", "HARSB Histoire de l'Academie Royale des Sciences et des Belles-Lettres de Berlin", "HarZi Harthaer Beobachtungs-Zirkular", "HCHy. Hovering Craft and Hydrofoil", "HDA.. Handbuch der Astrophysik", "HDP.. Handbuch der Physik", "HDSTS Herald of Dagestan State Technical University Technical Sciences", "HeaPh Health Physics", "Heavn Heavens", "HEDP. High Energy Density Physics", "HelOB Helwan Institute of Astronomy and Geophysics Bulletins", "HelR. Observatory and Astrophysics Laboratory University of Helsinki Report", "HemD. Hemel en Dampkring", "hep.exarXiv High Energy Physics - Experiment e-prints", "hep.laarXiv High Energy Physics - Lattice e-prints", "HEPNP High Energy Physics and Nuclear Physics", "hep.pharXiv High Energy Physics - Phenomenology e-prints", "hep.tharXiv High Energy Physics - Theory e-prints", "HESSD Hydrology and Earth System Sciences Discussions", "HESS. Hydrology and Earth System Sciences", "HFC.. Hydrogen and Fuel Cells", "HGSS. History of Geo- and Space Sciences", "HiA.. Highlights of Astronomy", "HisSc History of Science", "HiTec High Technology", "HMR.. Helgoland Marine Research", "HMT.. Heat and Mass Transfer", "Holoc The Holocene", "HPCRE Handbook on the Physics and Chemistry of Rare Earths", "HPR.. High Pressure Research", "HRL.. Hydrological Research Letters", "HTemS High Temperature Science", "HTHP. High Temperatures and High Pressures", "HTJR. Heat Transfer Japanese Research", "HTMP. High Temperature Materials and Processes", "HTrEn Heat Transfer Engineering", "HTSR. Heat Transfer Soviet Research", "HUFEB Hokkaido University Faculty Engineering Bulletin", "HUFEM Hokkaido University Faculty Engineering Memoirs", "HvaOB Hvar Observatory Bulletin", "HvOBS Hvar Observatory Bulletin Supplement", "HWM.. Helgolä", "HWP.. Horizons in World Physics", "HyBio Hydrobiologia", "HydJ. Hydrogeology Journal", "HyInt Hyperfine Interactions", "HyPr. Hydrological Processes", "IA&A. Ingenieria Aeronautica y Astronautica", "IadEn Iadernaia Energiia", "IAESM IEEE Aerospace Electronic Systems Magazine", "IAFET Instituto de Astronomia y Fisica del Espacio Buenos Aires", "IAIss Istoriko-Astronomicheskie Issledovaniya", "IAL1K Institut d'Astronomie de Lausanne", "IAM.. International Applied Mechanics", "IANT. International Advances in Nondestructive Testing", "IAOIT Informo of the Astronomia-Optika Institucio, Universitato de Turku", "IAPM. IEEE Antennas and Propagation Magazine", "IAPPP International Amateur-Professional Photoelectric Photometry Communications", "IASSP IEEE ASSP Magazine", "IAUCB IAU Commission on Close Binary Stars", "IAUC. International Astronomical Union Circular", "IAUDS IAU Commission on Double Stars", "IAUFM IAU Focus Meeting", "IAUGA IAU General Assembly", "IAUIB IAU Information Bulletin", "IAUIn IAU Commission on Instruments", "IAUSS IAU Special Session", "IAUTA Transactions of the International Astronomical Union, Series A", "IAUTB Transactions of the International Astronomical Union, Series B", "IAWPL IEEE Antennas and Wireless Propagation Letters", "IBCP. An International Journal at the Interface Between Chemistry and Physics", "IBMJ. IBM Journal of Research and Development", "IBSAE Sovetskaia Antarkticheskaia Ekspeditsiia Informatsionnyi Byulleten", "IBSH. Informational Bulletin of the Southern Hemisphere", "IBUAA Informational Bulletin of the Ukrainian Astronomical Association", "IBVS. Information Bulletin on Variable Stars", "ICAOB ICAO Bulletin", "Icar. Icarus", "ICGA. IEEE Computer Graphics Applications", "ICHIN Newsletters of the Interdivisional Commission on History of the IAGA", "ICHMT International Communications in Heat and Mass Transfer", "ICiSM IEEE Circuits Systems Magazine", "ICML. International Conference on Machine Learning", "IComM IEEE Communications Magazine", "ICQ.. International Comet Quarterly", "ICSE. Impact of Computing in Science and Engineering", "ICSEn IEEE Computational Science and Engineering", "ICSM. IEEE Computer Systems Magazine", "IDAQP Infinite Dimensional Analysis, Quantum Probability and Related Topics", "IDTC. IEEE Design Test Computers", "IEDL. IEEE Electron Device Letters", "IEEEN IEEE Network", "IEEEP IEEE Proceedings", "IEEES IEEE Spectrum", "IEEP. Institution of Electrical Engineers Proceedings", "IEERv IEE Reviews", "IEITC IEICE Transactions on Communications", "IEITE IEICE Transactions on Electronics", "IEITF IEICE Transactions on Fundamentals of Electronics Communications and Computer Sciences", "IEITI IEICE Transactions on Information and Systems", "IEREJ Institution of Electronic Radio Engineers Journal", "IER.. Internationale Elektronische Rundschau", "IESJ. IES Journal", "IETE. Institution of Electronics Telecommunication Engineers", "IET.. Instruments and Experimental Techniques", "IEWS. Stevenage Herts England Peter Peregrinus Ltd IEE Electromagnetic Waves Series", "IExp. IEEE Expert", "IFBel Akademiia Nauk Belorusskoi SSR Institut Fiziki Nauchnaia Sessiia Minsk Belorussian SSR Zhurnal Prikladnoi Spektroskopii", "IGAFS Issledovaniia Geomagnetizmu Aeronomii i Fizike Solntsa", "IGRSL IEEE Geoscience and Remote Sensing Letters", "IGRv. International Geology Review", "IGS.. Orlando FL Academic Press Inc International Geophysics Series", "IHERv Ishikawajima Harima Engineering Review", "IHWN. IHW Newsletter", "IIApN Indian Institute of Astrophysics Newsletter", "IINA. Istituto Italiano di Navigazione Atti", "IISys IEEE Intelligent Systems", "IJAA. International Journal of Astronomy and Astrophysics", "IJACS International Journal of Adaptive Control and Signal Processing", "IJAdA International Journal of Adhesion Adhesives", "IJAEM International Journal of Analytical and Experimental Modal Analysis", "IJAEO International Journal of Applied Earth Observation and Geoinformation", "IJA.. International Journal of Astronomy", "IJAIS International Journal of Applied Information Systems", "IJAME International Journal of Applied Mechanics and Engineering", "IJAM. International Journal of Applied Mechanics", "IJAP. IOSR Journal of Applied Physics", "IJART International Journal of Advancements in Research &", "IJAsB International Journal of Astrobiology", "IJASE International Journal of Advanced Structural Engineering", "IJASS International Journal of Aeronautical and Space Sciences", "IJBB. International Journal of Bioclimatology Biometeorology", "IJBC. International Journal of Bifurcation and Chaos", "IJBm. International Journal of Biometeorology", "IJCA. International Journal of Computer Applications", "IJCAT International Journal of Computer Applications and Technology", "IJCEM International Journal for Computational Methods in Engineering Science and Mechanics", "IJCFD International Journal of Computational Fluid Dynamics", "IJC.. International Journal of Control", "IJCli International Journal of Climatology", "IJCMB International Journal of Computer Mathematics Section B", "IJCMS International Journal of Computational Materials Science and Engineering", "IJDE. International Journal of Digital Earth", "IJDM. International Journal of Damage Mechanics", "IJEaS International Journal of Earth Sciences", "IJEEP International Journal of Emerging Electric Power Systems", "IJEFM International Journal of Engineering and Fluid Mechanics Spring", "IJEG. International Journal of Engineering and Geosciences", "IJE.. International Journal of Electronics", "IJEnR International Journal of Environmental Research", "IJERA International Journal of Enginnering Research and Applications", "IJER. International Journal of Energy Research", "IJES. International Journal of Engineering Science", "IJESS IEEE Journal on Exploratory Solid-State Computational Devices and Circuits", "IJEST IEEE Journal on Emerging and Selected Topics in Circuits and Systems", "IJFa. International Journal of Fatigue", "IJFD. International Journal of Fluid Dynamics", "IJFE. International Journal of Fusion Energy", "IJFr. International Journal of Fracture", "IJGA. International Journal of Geomagnetism and Aeronomy", "IJGeo International Journal of Geophysics", "IJGI. ISPRS International Journal of Geo-Information", "IJG.. International Journal of Geosciences", "IJGMM International Journal of Geometric Methods in Modern Physics", "IJGNP International Journal of Green Nanotechnology Physics and Chemistry", "IJGS. International Journal of General Systems", "IJHE. International Journal of Hydrogen Energy", "IJHFF International Journal of Heat and Fluid Flow", "IJHM. International Journal of Hybrid Microelectronics Fall", "IJHMT International Journal of Heat and Mass Transfer", "IJIDF International Journal of Image and Data Fusion", "IJIE. International Journal of Impact Engineering", "IJIMW International Journal of Infrared and Millimeter Waves", "IJIST International Journal of Imaging Systems Technology", "IJMES International Journal of Mathematical Education in Science and Technology", "IJMF. International Journal of Multiphase Flow", "IJMHG Indian Journal of Meteorology Hydrology and Geophysics", "IJMIP International Journal of Mass Spectrometry and Ion Physics", "IJMMC IEEE Journal on Multiscale and Multiphysics Computational Techniques", "IJMMD International Journal of Mechanics and Materials in Design", "IJMM. International Journal of Mini Microcomputers", "IJMMM International Journal of Minerals, Metallurgy, and Materials", "IJMoS International Journal of Modelling and Simulation", "IJMPA International Journal of Modern Physics A", "IJMPB International Journal of Modern Physics B", "IJMPC International Journal of Modern Physics C", "IJMPD International Journal of Modern Physics D", "IJMPE International Journal of Modern Physics E", "IJMQE International Journal of Metrology and Quality Engineering", "IJMSE International Journal of Mars Science and Exploration", "IJMSI International Journal of Mass Spectrometry and Ion Processes", "IJMS. International Journal of Mechanical Sciences", "IJMSp International Journal of Mass Spectrometry", "IJMW. International Journal of Mine Water", "IJNA. IMA Journal of Numerical Analysis", "IJNAM International Journal for Numerical and Analytical Methods in Geomechanics", "IJNAO International Journal of Naval Architecture and Ocean Engineering", "IJN.. International Journal of Nanoscience", "IJNLM International Journal of Non Linear Mechanics", "IJNME International Journal for Numerical Methods in Engineering", "IJNMF International Journal for Numerical Methods in Fluids", "IJNS. International Journal of Neural Systems", "IJNT. International Journal of Nanotechnology", "IJOE. IEEE Journal of Oceanic Engineering", "IJO.. International Journal of Optomechatronics", "IJOpt International Journal of Optics", "IJPAM Indian Journal of Pure and Applied Mathematics", "IJPAP Indian Journal of Pure and Applied Physics", "IJP.. International Journal of Plasticity", "IJPRS International Journal of Photogrammetry and Remote Sensing", "IJQC. International Journal of Quantum Chemistry", "IJQE. IEEE Journal of Quantum Electronics", "IJQI. International Journal of Quantum Information", "IJRA. IEEE Journal of Robotics Automation", "IJRAI International Journal of Radiation Applications and Instrumentation D Nuclear Tracks and Radiation Measurements", "IJRFI IEEE Journal of Radio Frequency Identification", "IJRPC International Journal for Radiation Physics and Chemistry", "IJRR. International Journal of Robotics Research", "IJRS. International Journal of Remote Sensing", "IJRSP Indian Journal of Radio and Space Physics", "IJSAC IEEE Journal on Selected Areas in Communications", "IJScA International Journal of Supercomputer Applications", "IJSC. International Journal of Satellite Communications", "IJSEd International Journal of Science Education", "IJSE. International Journal of Solar Energy", "IJSMD International Journal for Simulation and Multidisciplinary Design Optimization", "IJSME International Journal of Science and Mathematics Education", "IJSNM International Journal of Smart and Nano Materials", "IJSSC IEEE Journal of Solid-State Circuits", "IJSS. International Journal of Solids and Structures", "IJSTA IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing", "IJSTQ IEEE Journal of Selected Topics in Quantum Electronics", "IJSyS International Journal of Systems Science", "IJTFM IEEJ Transactions on Fundamentals and Materials", "IJTIA IEEJ Transactions on Industry Applications", "IJT.. International Journal of Thermophysics", "IJTJE International Journal of Turbo and Jet Engines", "IJTPE IEEJ Transactions on Power and Energy", "IJTP. International Journal of Theoretical Physics", "IJTSM IEEJ Transactions on Sensors and Micromachines", "ILCSM IEEE LCS Magazine", "IllOB Bulletin of the Astronomical Observatory of the University of Illinois", "ILOMP Publications of the International Latitude Observatory at Mizusawa", "ILSJ. International Lunar Society Journal", "ILTS. IEEE LTS", "IMA.. Institute for Mathematics and Its Applications", "IMeRv International Metals Reviews", "IMGWL IEEE Microwave and Guided Wave Letters", "IMMag IEEE Microwave Magazine", "IMPA. Interscience Monographs in Physics and Astronomy", "IMRv. International Materials Reviews", "imsd.cIEEE MTT-S International Microwave Symposium Digest", "InAgr International Agrophysics", "InASP Indian Academy of Sciences Proceedings Section", "INASR INASAN Science Reports", "InCh. Inorganic Chemistry", "InEPS Indian Academy of Sciences Proceedings: Earth and Planetary Sciences", "InES. Indian Academy of Sciences Proceedings: Section C Engineering Sciences", "InfCo Information Control", "InfD. Information Display", "InFiZ Inzhenerno Fizicheskii Zhurnal", "InfPh Infrared Physics", "InFuJ Institute Fuel Journal", "IngAr Ingenieur Archiv", "Ingeg Ingegneria", "InGeo International Geophysics Series", "INGN. The Newsletter of the Isaac Newton Group of Telescopes", "InISA Indian Institute of Science Journal of Aeronautical Society of India", "InISJ Indian Institute of Science Journal", "InJAE Indian Journal of Aerospace Engineering Division", "InJET Indian Journal of Electronics Telecommunication Engineering Division", "InJHS Indian Journal of the History of Science", "InJME Indian Journal of Mechanical Engineering Division", "InJPA Indian Journal of Physics Section A", "InJPB Indian Journal of Physics Section B", "InJPh Indian Journal of Physics", "InJP. Indian Journal of Physics and Proceedings of the Indian Assocatiation for the Cultivation of Science", "InJTP Indian Journal of Theoretical Physics", "INL.. International Nano Letters", "InLoP Instytut Lotnictwa Prace", "InMat Inventiones Mathematicae", "InMPP Instytut Maszyn Przeplywowych Prace", "InMS. Indian Academy of Sciences Proceedings Mathematical Sciences", "InPhT Infrared Physics and Technology", "INSAP Indian National Science Academy Proceedings Supplement", "IntaC Inta Conie", "Inter Interavia", "INTMK Itogi Nauki i Tekhniki Seriia Meteorologiia i Klimatologiia", "INTSA Itogi Nauki i Tekhniki Seriia Astronomiia", "INTSF Itogi Nauki i Tekhniki Seriia Fizika Plazmy", "INTSI Itogi Nauki i Tekhniki Seriia Issledovanie Kosmicheskogo Prostranstva", "IntSM Interavia Space Markets", "INTSO Itogi Nauki i Tekhniki Seriia Okeanologiia", "INTSR Itogi Nauki i Tekhniki Seriia Radiotekhnika", "INTSS Itogi Nauki i Tekhniki Seriia Sovremennye Problemy Matematiki", "INTSV Itogi Nauki i Tekhniki Seriia Vozdushnyi Transport", "InvPr Inverse Problems", "IonIs Ionosfernye Issledovaniia", "Iono. Ionosphere", "IORAS Anuario publicado pelo Imperial Observatorio do Rio de Janeiro Suplemento", "IPAUC INTERKOSMOS Prague Astronomicky Ustav Ceskoslovenske Akademie Ved", "IPBS. Isotopes in the Physical and Biomedical Sciences", "IPCDT IEE Proceedings E: Computers and Digital Techniques", "IPCI. IEEE Press Series on Computational Intelligence", "IPCRS IEE Proceedings F: Communications Radar and Signal Processing", "IPCSV IEE Proceedings: Communications Speech and Vision", "IPCTA IEE Proceedings D: Control Theory Applications", "IPDMC IEEE Press Series on Digital &", "IPElT IEEE Press Series on Electronics Technology", "IPEPA IEE Proceedings B: Electric Power Applications", "IPETS IEEE Power and Energy Technology Systems Journal", "IPEWT IEEE Press Series on Electromagnetic Wave Theory", "IPGTD IEE Proceedings C: Generation Transmission Distribution", "IPhoJ IEEE Photonics Journal", "IPMAP IEE Proceedings H: Microwaves Antennas and Propagation", "IPM.. Information Processing and Management", "IPMOA IEE Proceedings H: Microwaves Optics and Antennas", "IPMS. IEEE Press Series on Microelectronic Systems", "IPNPR Interplanetary Network Progress Report", "IPOpt IEE Proceedings J: Optoelectronics", "Ippa. Ipparchos", "IPPE. IEEE Press Series on Power Engineering", "IPPSM IEE Proceedings: Physical Science Measurement and Instrumentation Management and Education Reviews", "IPRSP IEE Proceedings F: Radar and Signal Processing", "IPSSE IEE Proceedings: Solid-State Electron Devices", "IPTHS IEEE Press Telecommunications Handbook Series", "IPTL. IEEE Photonics Technology Letters", "IRA.. Infrared Astronomy", "IrAJ. Irish Astronomical Journal", "IrAJS Irish Astronomical Journal Supplement", "IREdu International Review of Education", "IRETE IRE Transactions on Education", "IRH.. International Review of Hydrobiology", "IrJST Iranian Journal of Science Technology", "IRMBP Institut Royal Meteorologique de Belgique Publications Serie", "IRNvP International Review of Nuclear Physics", "IRPC. International Reviews in Physical Chemistry", "ISAP. ISA Proceedings", "ISASS Institute of Space and Astronautical Science Report", "ISAT. ISA Transactions", "ISBRv International Space Business Review", "iSci. iScience", "ISCJS ISRO Satellite Centre Journal of Spacecraft Technology", "ISenJ IEEE Sensors Journal", "Isis. Isis. Journal of the History of Science Society", "IsJAP Istanbul University Faculty of Science Journal of Astronomy Physics", "IsJT. Israel Journal of Technology", "ISKZ. Issledovaniya Solntsa i Krasnykh Zvezd", "IsMTD Issledovaniia Mekhanike i Teploobmenu Dvukhfaznykh Sred", "ISNL. Information Systems Newsletter", "ISPAn ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences", "ISPAr ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences", "ISPL. IEEE Signal Processing Letters", "ISPM. IEEE Signal Processing Magazine", "ISRAA ISRN Astronomy and Astrophysics", "IsRvC Istanbul University Faculty Science Review Serie C", "ISRv. Interdisciplinary Science Reviews", "ISSIR ISSI Scientific Reports Series", "IsSRT Israel Space Research and Technology Information Bulletin", "IssUP Issledovaniia Uprugosti i Plastichnosti", "IssZK Issledovanie Zemli Fiz Kosmosa", "IS&T. Instrumentation Science &", "IST.. Issues in Science and Technology", "ISTSP IEEE Journal of Selected Topics in Signal Processing", "ISysJ IEEE Systems Journal", "ITAB. Institut Teoreticheskoi Astronomii Byulleten", "ITABO Institute of Theoretical Astrophysics, Blindern-Oslo", "ITAC. IEEE Transactions on Automatic Control", "ITAer IEEE Transactions on Aerospace", "ITAES IEEE Transactions on Aerospace Electronic Systems", "ITANE IEEE Transactions on Aerospace and Navigational Electronics", "ITAP. IEEE Transactions on Antennas and Propagation", "ITAS. IEEE Transactions on Applied Superconductivity", "ITASS IEEE Transactions on Acoustics Speech and Signal Processing", "ITBE. IEEE Transactions on Biomedical Engineering", "ITB.. IEEE Transactions on Broadcasting", "ITCAD IEEE Transactions on Computer Aided Design", "ITCHM IEEE Transactions on Components Hybrids and Manufacturing Technology", "ITCJ. ITC Journal", "ITCmp IEEE Transactions on Computers", "ITCom IEEE Transactions on Communications", "ITCS. IEEE Transactions on Circuits Systems", "ITED. IEEE Transactions on Electron Devices", "ITEdu IEEE Transactions on Education", "ITEI. IEEE Transactions on Electrical Insulation", "ITEIS IEEJ Transactions on Electronics, Information and Systems", "ITElC IEEE Transactions on Electromagnetic Compatibility", "ITEM. IEEE Transactions on Engineering Management", "ITEnC IEEE Transactions on Energy Conversion", "ITGE. IEEE Transactions on Geoscience Electronics", "ITGRS IEEE Transactions on Geoscience and Remote Sensing", "ITIA. IEEE Transactions on Industry Applications", "ITIEC IEEE Transactions on Industrial Electronics and Control Instrumentation", "ITIE. IEEE Transactions on Industrial Electronics", "ITIM. IEEE Transactions on Instrumentation Measurement", "ITIP. IEEE Transactions on Image Processing", "ITIT. IEEE Transactions on Information Theory", "ITJSE Indian Institute of Technology Journal on Section Engineering Technology", "ITME. IEEE Transactions on Military Electronics", "ITM.. IEEE Transactions on Magnetics", "ITMTT IEEE Transactions on Microwave Theory Techniques", "ITNan IEEE Transactions on Nanotechnology", "ITN.. IERS Technical Note", "ITNN. IEEE Transactions on Neural Networks", "ITNS. IEEE Transactions on Nuclear Science", "ITPA. Interscience Tracts on Physics and Astronomy", "ITPAM IEEE Transactions on Pattern Analysis and Machine Intelligence", "ITPAS IEEE Transactions on Power Apparatus Systems", "ITPE. IEEE Transactions on Power Electronics", "ITPHP IEEE Transactions on Parts Hybrids and Packaging", "ITPS. IEEE Transactions on Plasma Science", "ITPSy IEEE Transactions on Power Systems", "ITRA. IEEE Transactions on Robotics Automation", "ITRFI IEEE Transactions on Radio Frequency Interference", "ITR.. IEEE Transactions on Reliability", "ITSE. IEEE Transactions on Sustainable Energy", "ITSET IEEE Transactions on Space Electronics and Telemetry", "ITSMC IEEE Transactions on Systems Man and Cybernetics", "ITSP. IEEE Transactions on Signal Processing", "ITSU. IEEE Transactions on Sonics Ultrasonics", "ITTST IEEE Transactions on Terahertz Science and Technology", "ITUFF IEEE Transactions on Ultrasonics Ferroelectrics and Frequency Control", "ITUTJ ITU Telecommunication Journal", "ITVT. IEEE Transactions on Vehicular Technology", "IUEEN IUE ESA Newsletter", "IUENN IUE NASA Newsletter", "IUGG. International Union of Geodesy and Geophysics General Assembly", "IUMJ. Indiana University Mathematics Journal", "IzAlm Izvestiya Astrofizicheskogo Instituta Alma-Ata", "IzAOP Izvestiya Atmospheric and Oceanic Physics", "IzArm Izvestiya Akademiya Nauk Armyanskoi", "IzAsh Izvestiya Akademii Nauk Turkmenskoj SSR Ashkhabad", "IzAvT Izvestiya VUZ Aviatsionnaya Tekhnika", "IzAze Akademiia Nauk Azerbaidzhanskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh i Matematicheskikh Nauk", "IzDus Dushanbe Izdatel Donish", "IzEhn Izvestiya Astronomicheskoj Engel'gardt obskoj Observatorii Kazan", "IzET. Izvestiia Energetika i Transport", "IzFru Frunze Izdatel Ilim", "IzFZ. Akademiia Nauk SSSR, Izvestiia, Fizika Zemli", "IzGeo Tbilisi Georgian SSR Izdatel Metsniereba", "IzGla Izvestiia Glavnoi rossiiskoi astronomicheskoi observatorii", "IzKie Izvestiya Glavnoj Astronomicheskoj Observatorii Kiev", "IzKry Izvestiya Ordena Trudovogo Krasnogo Znameni Krymskoj Astrofizicheskoj Observatorii", "IzLat Akademiia Nauk Latviiskoi SSR Izvestiia Seriia Fizicheskikh i Tekhnicheskikh Nauk", "IzLen Leningrad, Izdatel'stvo Nauka", "IzMat Izvestiya: Mathematics", "IzMin Minsk Izdatel BGU", "IzMol Akademiia Nauk Moldavskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh i Matematicheskikh Nauk", "IzMZG Akademiia Nauk SSSR Izvestiia Mekhanika Zhidkosti i Gaza", "IzOde Odesskij Gosudarstvennyi Universitet im. I. I. Mechnikova Izvestiya Astronomicheskoj Observatorii", "IzPSE Izvestiya Physics of the Solid Earth", "IzPul Izvestiya Glavnoj Astronomicheskoj Observatorii v Pulkove", "IzRad Izvestiya VUZ Radiofizika", "IzSF. Izvestiia Akademii Nauk Seriya Fizicheskaya", "IzSib Akademiia Nauk SSSR Sibirskoe Otdelenie Izvestiia", "IzSSR Akademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "IzTad Izvestiia Akademiia Nauk TadzhSSR", "IzTas Tashkent Izdatel Fan", "IzTif Tiflis Izdatel Tbilisskogo Universiteta", "IzTur Akademiia Nauk Turkmenskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh Khimicheskikh i Geologicheskikh Nauk", "IzUkr Akademiia Nauk Ukrainian SSSR Izvestiia Seriia Fizicheskaia", "IzUzb Akademiia Nauk Uzbekskoi SSR Izvestiia Seriia Fiziko Matematicheskikh Nauk", "IzVF. Izvestiya Vysshikh Uchebnykh Zavedenij. Fizika", "IzVGA Izvestiia vuzov. Geodeziia Aehrofotosemka", "IzVil Vilnius Izdatel Mokslas", "IzVUZ Izvestiia Vysshaia Uchebn. Zaved., Radiofizika", "IzYak Vsesoiuznaia Konferentsiia Kosmicheskim Lucham Yakutsk USSR Akademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "IzYer Vsesoiuznaia Konferentsiia Kosmicheskim Lucham Yerevan Armenian SSR Aademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "JAChS Journal of the American Chemical Society", "JAco. Journal d'Acoustique", "JACS. Journal of American Ceramic Society", "JAdD. Journal of Advanced Dielectrics", "JAD.. Journal of Astronomical Data", "JAdR. Journal of Advanced Research", "JAE.. Journal of Acoustic Emission", "JAerE Journal of Aerospace Engineering", "JAerP Journal of Aerospace Power", "JAerS Journal of Aerosol Science", "JAESc Journal of Asian Earth Sciences", "JAESE Journal of Astronomy &", "JAES. Journal of Audio Engineering Society", "JAfES Journal of African Earth Sciences", "JAF.. Journal des Astronomes Francais", "JAGeo Journal of Applied Geodesy", "JAGI. Journal of Artificial General Intelligence", "JAG.. Journal of Applied Geophysics", "JAHH. Journal of Astronomical History and Heritage", "JAI.. Journal of Astronomical Instrumentation", "JaIMJ Japan Institute of Metals Journal", "JAir. Journal of Aircraft", "JaJAG Japanese Journal of Astronomy and Geophysics", "JaJAP Japanese Journal of Applied Physics", "JAllC Journal of Alloys and Compounds", "JALPO Journal of the Association of Lunar and Planetary Observers, the Strolling Astronomer", "JAMDS Journal of Advanced Mechanical Design, Systems, and Manufacturing", "JAMES Journal of Advances in Modeling Earth Systems", "JAM.. Journal of Applied Mechanics", "JAMOP Journal of Atomic, Molecular and Optical Physics", "JAMS. Journal of the American Mathematical Society", "JAMTP Journal of Applied Mechanics and Technical Physics", "JAnSc Journal of the Astronautical Sciences", "JApA. Journal of Astrophysics and Astronomy", "JApAS Journal of Astrophysics and Astronomy Supplement", "JApCr Journal of Applied Crystallography", "JAPE. Journal of Applied Photographic Engineering", "JApEl Journal of Applied Electrochemistry", "JAPh. Journal of Applied Physiology", "JAP.. Journal of Applied Physics", "JApMa IMA Journal of Applied Mathematics", "JApMC Journal of Applied Meteorology and Climatology", "JApMe Journal of Applied Meteorology", "JApMM Journal of Applied Mathematics and Mechanics", "JApMw Journal of Applied Metalworking", "JApSc Journal of Applied Sciences", "JApSp Journal of Applied Spectroscopy", "JArEn Journal of Arid Environments", "JARS. Journal of Applied Remote Sensing", "JASAC Japan Astronomical Study Association Circulars", "JASCE Journal of the American Society of Civil Engineers", "JASEg Journal of the Astronomical Society of Egypt", "JASE. Journal of Applied Science and Engineering Section on Electrical Power and Information Systems", "JAsGe NRIAG Journal of Astronomy and Geophysics", "JASIS Journal of the American Society for Information Science and Technology", "JASJa Journal of the Acoustical Society of Japan", "JASMS Journal of The American Society for Mass Spectrometry", "JAsPh Journal of Astronomy and Physics (Turkey)", "JASSA Journal of the Astronomical Society of Southern Africa", "JASS. Journal of Astronomy and Space Sciences", "JAS.. The Journal of Agricultural Science", "JASTP Journal of Atmospheric and Solar-Terrestrial Physics", "JASV. Journal of the Astronomical Society of Victoria Melbourne", "JASWA Journal of the Astronomical Society of Western Australia", "JAtC. Journal of Atmospheric Chemistry", "JATIS Journal of Astronomical Telescopes, Instruments, and Systems", "JAtOT Journal of Atmospheric and Oceanic Technology", "JATP. Journal of Atmospheric and Terrestrial Physics", "JAtS. Journal of Atmospheric Sciences", "JATSo Journal of the Antique Telescope Society", "JAuGG Journal of Australian Geology and Geophysics", "JAVSO Journal of the American Association of Variable Star Observers (JAAVSO)", "JAWRA Journal of the American Water Resources Association", "JBAA. Journal of the British Astronomical Association", "JBall Journal of Ballistics", "JBAS. Journal of the British Astronomical Society", "JBASP Jodrell Bank Ann Ser Pt", "JBH.. Journal of Big History", "JBiom Journal of Biomechanics", "JBiop Journal of Biophysics", "JBIS. Journal of the British Interplanetary Society", "JBO.. Journal of Biomedical Optics", "JBR.. Journal of Breath Research", "JCAMD Journal of Computer-Aided Molecular Design", "JCAM. Journal of Climate and Applied Meteorology", "JCAP. Journal of Cosmology and Astroparticle Physics", "JChEd Journal of Chemical Education", "JCh.. Journal of Chromatography", "JChPh Journal of Chemical Physics", "JChS. Journal of Chromatographic Science", "JCHyd Journal of Contaminant Hydrology", "JCIS. Journal of Colloid and Interface Science", "JCli. Journal of Climate", "JClim Journal of Climatology", "JClP. Journal of Clinical Pharmacology", "JClR. Journal of Climate Research", "JCMD. Journal of Computer-Aided Materials Design", "JCM.. Journal of Computational Mathematics", "JCMSI SICE Journal of Control, Measurement, and System Integration", "JCoAM Journal of Computational and Applied Mathematics", "JCoCh Journal of Computational Chemistry", "JCoMa Journal of Composite Materials", "JCom. Journal of Communications", "JComp Journal of Complexity", "JComS Journal of Computational Science", "JConP Journal of Contemporary Physics (Armenian Academy of Sciences)", "JCoPh Journal of Computational Physics", "JCoSc Journal of Colloid Science", "JCos. Journal of Cosmology", "JCP.. Journal de Chimie Physique", "JCPX. Journal of Computational Physics: X", "JCrGr Journal of Crystal Growth", "JCSS. Journal of the Chinese Silicate Society", "JCSTe Journal of College Science Teaching", "JCST. Journal of Computational Science and Technology", "JCTR. Journal of Composites and Technology Research", "JDBM. Journal of Dynamic Behavior of Materials", "JDDE. Journal of Dynamics and Differential Equations", "JDE.. Journal of Differential Equations", "JDGeo Journal of Differential Geometry", "JDisT Journal of Display Technology", "JDSO. Journal of Double Star Observations", "JDST. Journal of Dispersion Science and Technology", "JEAA. Journal of Electromagnetic Analysis and Application", "JEAS. Journal of Engineering and Applied Sciences", "JECE. Journal of Environmental Conservation Engineering", "JECS. Journal of Electronic Circuits and Systems", "JECTC Journal of Electronics Cooling and Thermal Control", "JEEEA Journal of Electrical and Electronics Engineering Australia", "JEE.. Journal of Electrical Engineering", "JEEM. Journal of Environmental and Economics Management", "JEER. Journal of Engineering Education Research", "JEET. Journal of Electrical Engineering &", "JEI.. Journal of Electronic Imaging", "JElas Journal of Elasticity", "JElCo Electronics Communications of Japan", "JElEn Electrical Engineering of Japan", "JElS. Journal of the Electrochemical Society", "JEMat Journal of Electronic Materials", "JEMT. Journal of Electron Microscopy Technique", "JENan Journal of Experimental Nanoscience", "JEner Journal of Energy", "JEngM Journal of Engineering and Mechanics", "JEngS Journal of Engineering Sciences", "JEnMa Journal of Engineering Mathematics", "JEnM. Journal of Energetic Materials", "JenRu Jenaer Rundschau", "JenRv Jena Review", "JEnvS Journal of Environmental Sciences", "JEOS. Journal of the European Optical Society", "JEP.. Journal of Engineering Physics", "JEPT. Journal of Engineering Physics and Thermophysics", "JEPub Journal of Electronic Publishing", "JESEd Journal of Elementary Science Education", "JESRP Journal of Electron Spectroscopy and Related Phenomena", "JESS. Journal of Earth System Science", "JETAI Journal of Experimental & Theoretical Artificial Intelligence", "JETh. Journal of Engineering and Thermophysics", "JETPL Soviet Journal of Experimental and Theoretical Physics Letters", "JETP. Soviet Journal of Experimental and Theoretical Physics", "JEWA. Journal of Electromagnetic Waves and Applications", "JFAA. Journal of Fourier Analysis and Applications", "JFC.. Journal of Fluid Control", "JFF.. Journal of Fire Flammability", "JFM.. Journal of Fluid Mechanics", "JFS.. Journal of Fluids and Structures", "JFST. Journal of Fluid Science and Technology", "JFuA. Journal of Functional Analysis", "JFuE. Journal of Funsion Energy", "JGCD. Journal of Guidance Control Dynamics", "JGeEd Journal of Geoscience Education", "JGE.. Journal of Geophysics and Engineering", "JGeod Journal of Geodesy", "JGeoE Journal of Geological Education", "JGeo. Journal of Geodynamics", "JGeop Journal of Geophysics", "JGeoS Journal of Geodetic Science", "JGG.. Journal of Geomagnetism and Geoelectricity", "JGGS. Journal of Geomagnetism and Geoelectricity Supplement", "JGHyd Journal of Groundwater Hydrology", "JGIS. Journal of Geographic Information System", "JG... Journal of Geology", "JGlac Journal of Glaciology", "JGP.. Journal of Geometry and Physics", "JGRA. Journal of Geophysical Research (Space Physics)", "JGRB. Journal of Geophysical Research (Solid Earth)", "JGRC. Journal of Geophysical Research (Oceans)", "JGRD. Journal of Geophysical Research (Atmospheres)", "JGRE. Journal of Geophysical Research (Planets)", "JGRF. Journal of Geophysical Research (Earth Surface)", "JGRG. Journal of Geophysical Research (Biogeosciences)", "JGR.. Journal of Geophysical Research", "JGrPh Journal of Gravitational Physics", "JGRS. Journal of Geophysical Research Supplement", "JGSJ. Journal of the Geodetic Society of Japan", "JGS.. Journal of Geographical Systems", "JGSoc Journal of the Geological Society", "JGuC. Journal of Guidance Control", "JGZG. Journal of Geophysics Zeitschrift Geophysik", "JHA.. Journal for the History of Astronomy", "JHAS. Journal for the History of Astronomy Supplement", "JHATD Johns Hopkins APL Technical Digest", "JHEAp Journal of High Energy Astrophysics", "JHENP Journal of High Energy and Nuclear Physics", "JHEP. Journal of High Energy Physics", "JHTS. Journal of High Temperature Society", "JHyd. Journal of Hydrology", "JHyDy Journal of Hydrodynamics", "JHyMe Journal of Hydrometeorology", "JHyn. Journal of Hydronautics", "JIECE Institute of Electronics Communication Engineers of Japan Transactions Section E English", "JIEEJ Journal of The Institute of Electrical Engineers of Japan", "JIEIA Journal of The Institution of Engineers (India): Series A", "JIEIB Journal of The Institution of Engineers (India): Series B", "JIEIC Journal of The Institution of Engineers (India): Series C", "JIEID Journal of The Institution of Engineers (India): Series D", "JIEIE Journal of The Institution of Engineers (India): Series E", "JIEI. Journal of Industrial Engineering International", "JIEq. Journal of Integral Equations", "JIETE Journal of the Institution of Electronics and Telecommunication Engineers", "JIEx. Journal of Ion Exchange", "JIMIA Journal of the Institute of Mathematics and Its Applications", "JIMO. WGN, Journal of the International Meteor Organization", "JIMSS Journal of Intelligent Material Systems and Structures", "JIMW. Journal of Infrared and Millimeter Waves", "JInfo Journal of Informetrics", "JInst Journal of Instrumentation", "JIntS Journal of Integer Sequences", "JIPM. Journal of Information Processing and Management", "JIPNT Journal of the Institute of Positioning, Navigation and Timing of Japan", "JIST. Journal of Imaging Science and Technology", "JJAEE Journal of Japan Association for Earthquake Engineering", "JJAHS Journal of Japanese Association of Hydrological Sciences", "JJAPL Japanese Journal of Applied Physics Letters B", "JJAPR Japanese Journal of Applied Physics Regular Papers Short Notes and Review Papers", "JJAPS Japanese Journal of Applied Physics Supplement", "JJSEE Journal of Japanese Society for Engineering Education", "JJSMS Journal of the Japan Society for Marine Surveys and Technology", "JJTST Journal of Thermal Science and Technology", "JKAS. Journal of Korean Astronomical Society", "JKASS Journal of Korean Astronomical Society Supplement", "JKPS. Journal of Korean Physical Society", "JKSAS Journal of the Korean Society for Aeronautical & Space Sciences", "JLasA Journal of Laser Applications", "JLCM. Journal of Less Common Metals", "JLMS. Journal of the London Mathematical Society", "JLTP. Journal of Low Temperature Physics", "JLum. Journal of Luminescence", "JLVEn Journal of Light & Visual Environment", "JLwT. Journal of Lightwave Technology", "JMAA. Journal of Mathematical Analysis and Applications", "JMaCh Journal of Mathematical Chemistry", "JMagR Journal of Magnetic Resonance", "JMaMe Journal of Mathematics and Mechanics", "JMaPh Journal of Mathematics and Physics", "JMarA Journal of Maritime Archaeology", "JMaSc Journal of Mathematical Sciences", "JMatR Journal of Materials Research", "JMatS Journal of Materials Science", "JMBM. Journal of the Mechanical Behavior of Materials", "JMCS. Journal of Mathematical and Computational Science", "JMecA Journal de Mecanique Appliquee", "JMecE Journal of Mechanical and Engineering Science", "JMec. Journal de Mecanique", "JMecT Journal de Mecanique Theorique et Appliquee", "JMEM. Journal of Molecular and Engineering Materials", "JMemS Journal of Microelectromechanical Systems", "JMeOp Jemna Mechanika Optika", "JMEP. Journal of Materials Engineering and Performance", "JMetG Journal of Metamorphic Geology", "JMet. Journal of Metals", "JMetR Journal of Meteorological Research", "JMFM. Journal of Mathematical Fluid Mechanics", "JMic. Journal of Microscopy", "JMicP Journal of Micropaleontology", "JMiMi Journal of Micromechanics and Microengineering", "JMMM. Journal of Magnetism and Magnetic Materials", "JMM&M Journal of Micro/Nanolithography, MEMS, and MOEMS", "JMMPS Japanese Magazine of Mineralogical and Petrological Sciences", "JMOA. IEE Journal of Microwaves Optics and Acoustics", "JMoEl Journal of Molecular Electronics", "JMolE Journal of Molecular Evolution", "JMOp. Journal of Modern Optics", "JMoSp Journal of Molecular Spectroscopy", "JMoSt Journal of Molecular Structure", "JMPeS Journal of Mineralogical and Petrological Sciences", "JMPh. Journal of Modern Physics", "JMP.. Journal of Mathematical Physics", "JMPMS Journal of Materials Processing and Manufacturing Science", "JMPS. Journal of Mathematical and Physical Sciences", "JMPSo Journal of Mechanics Physics of Solids", "JMRB. Journal of Magnetic Resonance", "JMR.. Journal of Marine Research", "JMSA. Journal of Marine Science and Application", "JMSB. Journal of Macromolecular Science, Part B", "JMSJ. Journal of the Mineralogical Society of Japan", "JMS.. Journal of Marine Systems", "JMSL. Journal of Materials Science Letters", "JMSME Journal of Materials Science and Materials Electronics", "JMSp. Journal of Mass Spectrometry", "JMSTL Journal of Mechanical Systems for Transportation and Logistics", "JMTAS Journal de Mecanique Theorique et Appliquee Supplement", "JMTPR Journal of Modern Trends in Physics Research", "JMuMo Journal of Multiscale Modelling", "JNano Journal of Nanophotonics", "JNanU Journal Nanjing Univ", "JNav. Journal of Navigation", "JNCS. Journal of Non Crystalline Solids", "JNCSX Journal of Non Crystalline Solids: X", "JNE.. Journal of Nondestructive Evaluation", "JNEng Journal of Neural Engineering", "JNET. Journal of Non Equilibrium Thermodynamics", "JNeur Journal of Neurochemistry", "JNIRE Journal NIRE", "JNIS. Journal of Near Infrared Spectroscopy", "JNLM. Journal of Non Linear Mechanics", "JNMP. Journal of Nonlinear Mathematical Physics", "JNOPM Journal of Nonlinear Optical Physics and Materials", "JNR.. Journal of Nanoparticle Research", "JNS.. Journal of NonLinear Science", "JNuE. Journal of Nuclear Energy", "JNuM. Journal of Nuclear Materials", "JNUNS Journal of Nanjing University (Natural Sciences)", "JOA.. Journal for Occultation Astronomy", "JoBaA Jodrell Bank Annals", "JOC.. Journal of Optical Communications", "JOCN. Journal of Optical Communications and Networking", "JoDI. Journal of Digital Information", "JO... Journal des Observateurs", "JOL.. Journal of Oceanology and Limnology", "JOM.. JOM - Journal of the Minerals, Metals and Materials Society", "JON.. Journal of Optical Networking", "JOptA Journal of Optics A: Pure and Applied Optics", "JOptB Journal of Optics B: Quantum and Semiclassical Optics", "JOpt. Journal of Optics", "JOptT Journal of Optical Technology", "JORS. Journal of Open Research Software", "JOSAA Journal of the Optical Society of America A", "JOSAB Journal of the Optical Society of America B Optical Physics", "JOSA. Journal of the Optical Society of America (1917-1983)", "JOSS. The Journal of Open Source Software", "JOTA. Journal of Optimization Theory Applications", "JOUC. Journal of Ocean University of China", "JPalA Journal of Paleolithic Archaeology", "JPalg Journal of Palaeogeography", "JPal. Journal of Paleontology", "JPall Journal of Palaeolimnology", "JPApS Journal of Pure Applied Sciences", "JPAS. Journal of Practical Applications in Space", "JPCA. Journal of Physical Chemistry A", "JPCB. Journal of Physical Chemistry B", "JPCM. Journal of Physics Condensed Matter", "JPCRD Journal of Physical and Chemical Reference Data", "JPCS. Journal of Physics and Chemistry of Solids", "JPDC. Journal of Parallel and Distributed Computing", "JPE.. Journal of Physics of the Earth", "JPEle Journal of Power Electronics", "JPEn. Journal of Physics: Energy", "JPES. Journal of Power and Energy Systems", "JPetG Journal of Petroleum Geology", "JPet. Journal of Petrology", "JPFR. Journal of Plasma and Fusion Research", "JPhA. Journal of Physics A Mathematical General", "JPhB. Journal of Physics B Atomic Molecular Physics", "JPhCh Journal of Physical Chemistry", "JPhC. Journal of Physics C Solid State Physics", "JPhCo Journal of Physics Communications", "JPhD. Journal of Physics D Applied Physics", "JPhE. Journal of Physics E Scientific Instruments", "JPhEn Journal of Photonics for Energy", "JPhF. Journal of Physics F Metal Physics", "JPhG. Journal of Physics G Nuclear Physics", "JPhGS Journal of Physics G Nuclear Physics Supplement", "JPhM. Journal of Physics: Materials", "JPhP. Journal of Physics: Photonics", "JPhSt Journal of Physical Studies", "JPhSu Supplement au Journal de Physique", "JPhTA Journal de Physique Theorique et Apliquee", "JPhy1 Journal de Physique I", "JPhy2 Journal de Physique II", "JPhy3 Journal de Physique III", "JPhy4 Journal de Physique IV", "JPhyC Journal de Physique Colloque", "JPhys Journal de Physique", "JPlPh Journal of Plasma Physics", "JPLSP Jet Propulsion Lab. Space Programs Summary", "JPO.. Journal of Physical Oceanography", "JPoSA Journal of Polymer Science A Polymer Chemistry", "JPoSB Journal of Polymer Science B Polymer Physics", "JPoSc Journal of Polymer Science", "JPoSL Journal of Polymer Science: Polymer Letters Edition", "JPP.. Journal of Propulsion and Power", "JPRG. Journal of Photogrammetry, Remote Sensing and Geoinformation Science", "JPRS. ISPRS Journal of Photogrammetry and Remote Sensing", "JPSCP JPS Conference Proceedings", "JPSJ. Journal of the Physical Society of Japan", "JPS.. Journal of Power Sources", "JPSJS Journal of the Physical Society of Japan Supplement", "JPT.. Journal of Propulsion Technology", "JQS.. Journal of Quaternary Science", "JQSRT Journal of Quantitative Spectroscopy and Radiative Transfer", "JQT.. Journal of Quality Technology", "JRAC. Journal of Radioanalytical Chemistry", "JRadR Journal of Radiation Research", "JRAEO Journal and Review of Astronomy Education and Outreach", "JRAM. Journal fur die reine und angewandte Mathematik", "JRASA Journal of the Royal Aeronautical Society of London", "JRASC Journal of the Royal Astronomical Society of Canada", "JReAt Journal de Recherches Atmospheriques", "JRE.. Jahrbuch der Radioaktivitä", "JResB Journal of Research Section B Mathematical Sciences B", "JRes. Journal of Research", "JRheo Journal of Rheology", "JRIST Journal of Research Institute of Science and Technology, College of Science and Technology, Nihon University", "JRNBA Journal of Research of the National Bureau of Standards A Physica and Chemsitry", "JRNBB Journal of Research of the National Bureau of Standards B Mathematical Sciences", "JRNBS Journal of Research of the National Bureau of Standards", "JRNC. Journal of Radioanalytical and Nuclear Chemistry", "JRoS. Journal of Robotic Systems", "JRPC. Journal of Reinforced Plastics and Composites", "JRPhy Journal of Research in Physics", "JRP.. Journal of Radiological Protection", "JRScT Journal of Research in Science Teaching", "JRSp. Journal of Raman Spectroscopy", "JSAES Journal of South American Earth Sciences", "JSAPJ Japan Society of Air Pollution Journal", "JSARA Journal of the Southeastern Association for Research in Astronomy", "JSAR. Journal of Space Astronomy Research", "JSASS Japan Society of Aeronautical Space Sciences", "JSAST Japan Society of Aeronautical Space Sciences Transactions", "JSCAI Journal of Japan Society of Civil Engineers, Ser. D1 (Architecture of Infrastructure and Environment)", "JSCAM Journal of Japan Society of Civil Engineers, Ser. A2 (Applied Mechanics (AM))", "JSCCE Journal of Japan Society of Civil Engineers, Ser. F3 (Civil Engineering Informatics)", "JSCCM Journal of Japan Society of Civil Engineers, Ser. F4 (Construction and Management)", "JSCER Journal of Japan Society of Civil Engineers, Ser. G (Environmental Research)", "JSCGE Journal of Japan Society of Civil Engineers, Ser. C (Geosphere Engineering)", "JSCHE Journal of Japan Society of Civil Engineers, Ser. B1 (Hydraulic Engineering)", "JSCHS Journal of Japan Society of Civil Engineers, Ser. D2 (Historical Studies in Civil Engineering)", "JScI. Journal of Scientific Instruments", "JSCIP Journal of Japan Society of Civil Engineers, Ser. D3 (Infrastructure Planning and Management)", "JSCMC Journal of Japan Society of Civil Engineers, Ser. E2 (Materials and Concrete Structures)", "JSCMJ Japan Society of Composite Materials Journal", "JSCom Journal of Scientific Computing", "JSCPE Journal of Japan Society of Civil Engineers, Ser. E1 (Pavement Engineering)", "JSCPP Journal of Japan Society of Civil Engineers, Ser. F5 (Professional Practices in Civil Engineering)", "JSCSE Journal of Japan Society of Civil Engineers, Ser. A1 (Structural Engineering &", "JSCSP Journal of Japan Society of Civil Engineers, Ser. F6 (Safety Problem)", "JSCTE Journal of Japan Society of Civil Engineers, Ser. F1 (Tunnel Engineering)", "JSCUS Journal of Japan Society of Civil Engineers, Ser. F2 (Underground Space Research)", "JSDD. Journal of System Design and Dynamics", "JSD.. Journal of the Structural Division, American Society of Civil Engineers", "JSedR Journal of Sedimentary Research", "JSEdT Journal of Science Education and Technology", "JSeis Journal of Seismology", "JSemi Journal of Semiconductors", "JSER. Journal for STEM Education Research", "JSGeo Journal of Series Geophysics", "JSG.. Journal of Structural Geology", "JShR. Journal of Ship Research", "JSLEJ Japan Society of Lubrication Engineers Journal", "JSLR. Journal of Soviet Laser Research", "JSMAJ JASMA Japan Society of Microgravity Application Journal", "JSMEA JSME International Journal Series A", "JSMEB JSME International Journal Series B", "JSMEC JSME International Journal Series C", "JSMEJ JSME International Journal", "JSMET JSME Transactions", "JSM.. Journal of Structural Mechanics", "JSMME Journal of Solid Mechanics and Materials Engineering", "JSMSJ Japan Society of Materials Science Journal", "JSMTE Journal of Statistical Mechanics: Theory and Experiment", "JSpEn Journal of Space Engineering", "JSP.. Journal of Statistical Physics", "JSpRo Journal of Spacecraft and Rockets", "JSPS. Japan Society of Promotion Science", "JSPST Journal of The Society of Photographic Science and Technology of Japan", "JSpT. Journal of Spacecraft Technology", "JSR.. Journal of Sea Research", "JSRP. Journal of the Society for Radiological Protection", "JSSat Journal of Small Satellites", "JSSCh Journal of Solid State Chemistry France", "JSSED IEE Journal of Solid-State Electron Devices", "JStA. Journal of Strain Analysis and Engineering Design", "JSTEd Journal of Science Teacher Education", "JSup. Journal of Superconductivity", "JSV.. Journal of Sound Vibration", "JSWSC Journal of Space Weather and Space Climate", "JSymC Journal of Symbolic Computation", "JTAM. Journal of Theoretical and Applied Mechanics", "JTAP. Journal of Theoretical and Applied Physics", "JTCN. Journal of Computatational and Theoretical Nanoscience", "JTech Journal of Technology", "JTeEv Journal of Testing Evaluation", "JTePh Journal of Technical Physics", "JTF.. Journal of Time and Frequency", "JThCM Journal of Thermoplastic Composite Materials", "JTh.. Journal of Thermodynamics", "JThSc Journal of Thermal Science", "JThSt Journal of Thermal Stresses", "JTHT. Journal of Thermophysics and Heat Transfer", "JTP.. Journal for Technology of Plasticity", "JTST. Journal of Thermal Spray Technology", "JTurb Journal of Turbulence", "JURP. Journal of Undergraduate Reports in Physics", "JVCIR Journal of Visual Communication and Image Representation", "JVE.. Journal of Vibration Engineering", "JVGR. Journal of Volcanology and Geothermal Research", "JVSJ. Journal of the Vacuum Society of Japan", "JVSTA Journal of Vacuum Science Technology A: Vacuum Surfaces and Films", "JVSTB Journal of Vacuum Science Technology B: Microelectronics and Nanometer Structures", "JVST. Journal of Vacuum Science Technology", "JWMSE Journal of Women and Minorities in Science and Engineering", "JWUDF Jahns Wö", "JXST. Journal of X-Ray Science and Technology", "KazOB Astronomicheskoj Observatorii Kazan Byulleten", "KEIJ. Kansei Engineering International Journal", "KernR Kernforschungsanlage Rept Res Results Solid State Nucl Phys", "KexT. Kexue Tongbao", "KFNT. Kinematika i Fizika Nebesnykh Tel", "KFNTS Kinematika i Fizika Nebesnykh Tel Supplement", "Khago Khagol", "KharI Kharkov Izdanie IRE AN USSR", "KhPl. Khimiia Plazmy", "KiIND Kiev Izdatel Naukova Dumka", "KiInF Kiev Institut Fiziki AN USSR", "KiInM Kiev Institut Matematiki AN USSR", "KiIzT Kiev Izdatel Tekhnika", "KIMMJ Korean Institute of Metals and Materials Journal", "KIMS. Knowledge: An Illustrated Magazine of Science", "KIPME Kiev Institut Problem Modelirovaniia Energetike AN USSR", "KIzIM Kiev Izdanie Instituta Matematiki AN USSR", "KIzKU Kazan Izdatel Kazanskogo Universiteta", "KIzS. Kishinev Izdatel Shtiintsa", "KIzVS Kiev Izdatel Vishcha Shkola", "KKR.. Kagaku Kogaku Ronbunshu", "KlBer Kleinheubacher Berichte", "KNAB. Koninklijke Nederlandse Akademie van Wetenschappen Proceedings Series B Physical Sciences", "KNT.. Kosmicheskaia Nauka i Tekhnika", "KodOB Kodaikanal Observatory Bulletins", "KodRe Kodaikanal Observatory Reprints", "KomMe Komety i Meteory", "KomTs Kometnyj Tsirkulyar", "KosIs Kosmicheskie Issledovaniia", "KosIU Kosmicheskie Issledovaniia Ukraine", "KosLu Kosmicheskie Luchi", "KosNT Kosmichna Nauka i Tekhnologiya", "KosRo Kosmicke Rozhledy", "Kozmo Kozmos", "KPCB. Kinematics and Physics of Celestial Bodies", "KPCBS Kinematics and Physics of Celestial Bodies, Supplement", "KPNON Kitt Peak National Observatory Newsletter", "KSVH. Kungl. Svenska Vetenskapsakademiens Handlingar", "KTTM. Khimiia i Tekhnologiia Topliv i Masel", "KUFEM Kyushu University Faculty Engineering Memoirs", "KvanE Kvantovaia Elektronika Moscow", "KVeBB Kleine Veroeffentlichungen der Universitaetssternwarte zu Berlin Babelsberg", "KVnT. Kibernetika i Vychislitelnaia Tekhnika", "KyITB Kyushu Institute Technology Bulletin", "KyoMe Kyoto University Faculty Engineering Memoirs", "KyUAM Kyushu University Research Institute Applied Mechanics Reports", "KyUSR Kyushu University Research Institute Industrial Science Reports", "KyUTR Kyushu University Technology Reports", "KzSib Akademiia Nauk SSSR Sibirskoi Otdelenie Izvestiia Seriia Tekhnicheskikh Nauk", "LaEO. Laser Elektro Optik", "LAES. Letters in Applied and Engineering Sciences", "LaFoc Laser Focus", "LaJ.. Lapidary Journal", "LanB. Landolt Bö", "Langm Langmuir", "Lapa. Majalah LAPAN", "LaPhL Laser Physics Letters", "LaPhy Laser Physics", "LasJ. Laser Journal", "LAstr L'Astronomie", "LatJP Latvian Journal of Physics and Technical Sciences", "LatME Latviiskii Matematicheskii Ezhegodnik", "LawOB Laws Observatory Bulletin, University of Missouri", "LBLRR LBL Research Review", "LCEC. Luxembourg Commission European Communities", "LeBAN Leningrad Biblioteka Akademii Nauk SSSR", "LeEne Leningrad Energoizdat", "LeGid Leningrad Gidrometeoizdat", "LeIzE Leningrad Izdatel Energiia", "LeIzG Leningrad Izdatel Gidrometeoizdat", "LeIzK Leningrad Izdatel Khimiia", "LeIzM Leningrad Izdatel Mashinostroenie", "LeIzN Leningrad Izdatel Nauka", "LeIzS Leningrad Izdatel Sudostroenie", "LeIzU Leningrad Izdatel Leningradskogo Universiteta", "LeLen Leningrad Lenizdat", "LePub Learned Publishing", "LeRad Le Radium", "LERec L'Echo des Recherches", "LFR.. Lietuvos Fizikos Rinkinys", "LFTR. LEST Foundation, Technical Report", "LGUPM Leningradskii Gosudarstvennyi Universitet Problemy Matematicheskoi Fiziki", "LHBl. La Houille Blanche", "LHMT. Letters Heat Mass Transfer", "LicOB Lick Observatory Bulletin", "LiCr. Liquid Crystals", "Life. Life", "LimOc Limnology and Oceanography", "Litho Lithos", "LitJP Lithuanian Journal of Physics and Technical Sciences", "LIVS. Lvov Izdatel Vishcha Shkola", "LIzNe Leningrad Izdatel Nedra", "LLabJ Lincoln Laboratory Journal", "LMaPh Letters in Mathematical Physics", "LMMP. Lasers in Manufacturing and Materials Processing", "LNCS. Lecture Notes in Computer Science", "LNEA. Lecture Notes and Essays in Astrophysics", "LNEn. Lecture Notes in Engineering, Berlin Springer Verlag", "LNES. Lecture Notes in Earth Sciences, Berlin Springer Verlag", "LNM.. Lecture Notes in Mathematics, Berlin Springer Verlag", "LNP.. Lecture Notes in Physics, Berlin Springer Verlag", "LNSP. Lecture Notes and Supplements in Physics", "LockH Lockheed Horizons", "LOEle L'Onde Electrique", "LowOB Lowell Observatory Bulletin", "LPB.. Laser and Particle Beams", "LPIBu LPI Bulletin", "LPICo LPI Contributions", "LPlaC Observatorio Astronomico de La Plata Circular", "LPlaS Observatorio Astronomico de La Plata Separata Astronomica", "LPRv. Laser & Photonics Review", "LPSC. Lunar and Planetary Science Conference Proceedings", "LRCA. Living Reviews in Computational Astrophysics", "LR... Luft und Raumfahrt", "LRR.. Living Reviews in Relativity", "LRSP. Living Reviews in Solar Physics", "LSA.. Light: Science & Applications", "LS... Hamburger Sternw. Warner & Swasey Obs.", "Lsphe Lithoshere", "LSSR. Life Sciences and Space Research", "LTerm La Termotecnica", "LTP.. Low Temperature Physics", "LubEn Lubrication Engineering", "LunOC Lund Observatory Circular", "LuRaQ Luft und Raumfahrt Quarter", "LvoTs L'vovskij Ordena Lenina Gosudarstvennyj Universitet Tsirkulyar", "MAA.. Mediterranean Archaeology and Archaeometry", "MaCom Mathematics of Computation", "MaDes Machine Design", "MadOb Madras Observatory Observations", "MadOO Madras Observatory Astronomical Observations", "MaFiz Matematicheskaia Fizika", "MagFE Magnetic Fusion Energy", "MagGi Magnitnaia Gidrodinamika", "MagIs Magnitosfernye Issledovaniia", "MaHT. Materials at High Temperatures", "MaMeA Sankt Peterburgskii Universitet Vestnik Seriia Matematika Mekhanika Astronomiia", "MAMMP Mechanics of Advanced Materials and Modern Processes", "MaMol Macromolecules", "ManGe Manuscripta Geodaetica", "ManRv Manufacturing Review", "MApAn Methods and Applications of Analysis", "MaPEJ Mathematical Physics Electronic Journal", "MApFl Methods and Applications in Fluorescence", "MaPhS Mathematical Physics Studies", "MAP.. Meteorology and Atmospheric Physics", "MaPr. Mathematical Proceedings", "MAPSE Mission Analysis Program Solar Electric Propulsion MAPSEP", "MaRBu Materials Research Bulletin", "MarEc Marine Ecology", "MarGe Marine Geodesy", "MarGR Marine Geophysical Research", "MarMP Marine Micropaleontology", "MarPG Marine and Petroleum Geology", "MarRv Marconi Review", "Mashi Mashinostroenie", "MatAn Mathematische Annalen", "MaTeJ ManTech Journal", "Mate. Materials", "Mater Materialpruefung", "MatEv Materials Evaluation", "MatG. Mathematical Geology", "math. arXiv Mathematics e-prints", "math.parXiv Mathematical Physics e-prints", "MatIs Matematicheskie Issledovaniia", "MatL. Materials Letters", "MatM. Mathematical Modelling", "MatMo The Mathemtical Monthly", "MatNa Mathematische Nachrichten", "MAtom Moscow Atomizdat", "MatPr Mathematical Programming", "MatRv Mathematical Reviews", "MatSP Materials Science Poland", "MatST Materials Science Technology", "MatTe Materiaux et Techniques", "MatTh Materials Theory", "MatTr Materials Transactions JIM", "MatVe Matematichki Vesnik", "MatZe Mathematische Zeitschrift", "MAUTx University of Texas Monographs in Astronomy", "MAWMN Mainz Akademie Wissenschaften Mathematisch Naturwissenschaftliche Klasse", "MBB.. Molecular Biology and Biophysics", "MCBEH Monatliche Correspondenz zur Beforderung der Erd- und Himmels-kunde", "MCM.. Mechanics of Composite Materials", "MComM Mathematical and Computer Modelling", "MComP Methods in Computational Physics", "MeAar Meddelser fra Ole Romer Observatoriet Aarhus", "MeApp Meteorological Applications", "MeARB Academie Royale de Belgique Classe des Sciences Memoires", "Meas. Measurements", "MeAut Meres es Automatika", "Mecc. Meccanica", "MecEn Mechanical Engineering", "MecSM Mechanics of Soft Materials", "MedPh Medical Physics", "MEdRJ Mathematics Education Research Journal", "MEE.. Materials of Electronics Engineering", "MEEP. Monographs on Environment, Earth and Planets", "MeeRe Kenneth Mees Observatory Reprints", "MeGen Mededelingen Universiteit te Gent Sterrenkundig Instituut", "MeGid Meteorologiia i Gidrologiia", "MEI.. Mathematical Engineering Industry", "MeInd Mechanics and Industry", "MekGS Mekhanika Giroskopicheskikh Sistem", "MekKM Mekhanika Kompozitnykh Materialov", "MekP. Mekhanika Polimerov", "MekTT Mekhanika Tverdogo Tela", "MeLeu Mededelingen van het Astronomisch Instituut van de Katholieke Universiteit Leuven", "MelOO Melbourne Observatory Observations", "MeLuF Meddelanden fran Lunds Astronomiska Observatorium Serie I", "MeLuS Meddelanden fran Lunds Astronomiska Observatorium Serie II", "MeMaT Mechanism and Machine Theory", "MEner Moscow Energoizdat", "MEPS. Marine Ecology Progress Series", "MeRAu Mesures Regulation Automatisme", "Mercu Mercury", "MeReC Mechanics Research Communications", "MerRe Instituto Venezolano de Astronomia Merida Venezuela", "MeRR. Meteornoe Rasprostranenie Radiovoln, Kazan", "MeScR Measurement Science Review", "MeScT Measurement Science and Technology", "MeSJJ Meteorological Society of Japan Journal", "MeSol Mechanics of Solids", "MeSRM Memoires Scientifiques de la Revue de Metallurgie", "MeSSR Akademiia Nauk SSSR Mekhanika Zhidkosti i Gaza", "Metal Metallofizika", "MetaM Metamaterials", "MetAP Meteorology Atmospheric Physics", "Meteo La Meteorologie", "MeTeS Mechanika Teoretyczna i Stosowana", "MetHy Meteorology Hydrology JPRS", "Metic Meteoritics", "Metik Meteoritika", "MetIs Meteornye Issledovaniia", "Metit Meteorites", "MetMa Meteorological Magazine", "Met.. Meteorite - The International Quarterly of Meteorites and Meteorite Science", "MetMo Meteorological Monographs", "Metoo Meteoor", "Metro Metrologia", "MetRT Metallurgical Research &", "MetRu Meteorologische Rundschau", "MetVy Metody Vychislenii", "MetZe Meteorologische Zeitschrift", "MetZp Meteorologicke Zpravy", "Meu1K Observatoire de Meudon", "MeUpp Meddelanden fran Astronomiska Observatorium Uppsala", "MExP. Methods of Experimental Physics", "MFiNM Matematicheskaia Fizika i Nelineinaia Mekhanika", "MGeoE Materials and Geoenvironment", "MGeol Marine Geology", "MGeo. Manuscr. Geod.", "MGIMO Moskovskii Gosudarstvennyi Universitet Institut Mekhaniki Otchet", "MGQG. Marine Geology &", "MGTVM Moskovskij Gosudarstvennyj Tekhnicheskij Universitet Vestnik Seriya Mashinostroenie", "MGTVP Moskovskij Gosudarstvennyj Tekhnicheskij Universitet Vestnik Seriya Priborostroenie", "MGUkr Akademiia Nauk Ukrainskoi SSR Morskie Gidrofizicheskie Issledovaniia", "MGUMN Moskovskii Gosudarstvennyi Universitet Institut Mekhaniki Nauchnye Trudy", "MHD.. Magnetohydrodynamics", "MHITR Mitsubishi Heavy Industries Technical Review", "MiARB Astronomisches Rechen-Institut Heidelberg Mitteilungen Serie B", "MiARI Astronomisches Rechen-Institut Heidelberg Mitteilungen Serie A", "MiBas Mitteilungen der Astronomisch-Meteorologischen Anstalt der Universitaet Basel Astronomische Reihe", "MiBon Mitteilungen der Astronomischen Institute der Universitaet Bonn", "MiBre Astronomische Mitteilungen der Koeniglichen Universitaets-Sternwarte zu Breslau", "MicEc Microbial Ecology", "MicgQ Microgravity Quarterly", "MicNa Microsystems & Nanoengineering", "MicST Microgravity Science and Technology", "MicWa Microwaves", "MIEBA Moscow Izdatel Energiia Biblioteka Avtomatike", "MIEBR Moscow Izdatel Energiia Biblioteka Radioelektronike", "MiElC Military Electronics Countermeasures", "MiGIR Mitteilungen Geod. Institut Rheinischen Friedrich-Wilhelms-Universitaets. Bonn", "MiGoe Astronomische Mitteilungen der Universitaets-Sternwarte zu Goettingen", "MiGra Mitteilungen der Universitaets-Sternwarte Graz", "MiHam Mitteilungen der Hamburger Sternwarte in Bergedorf", "MiHar Mitteilungen der Bruno-H.-Buergel-Sternwarte Hartha DDR", "MiInn Mitteilungen der Sternwarte Innsbruck", "MiINT Minsk Izdatel Nauka i Tekhnika", "MiJen Mitteilungen der Universitaets-Sternwarte zu Jena", "MiJo. Microwave Journal", "MiKon Mitteilungen der Konkoly Sternwarte Budapest-Szabadsaghegy", "Mikro Mikroelektronika", "MikSb Mikroelektronika Sbornik", "MiMic Microscopy and Microanalysis", "MIMPE Modern Instrumentation and Measurements in Physics and Engineering", "MiMue Mitteilungen des Astronomischen Instituts des Universitaet Munster", "MiMun Mitteilungen der Sternwarte Munchen", "MINCV Moscow Izdatel Nauka AN SSSR Chteniia imeni Vernadskogo", "MinDe Mineralium Deposita", "Miner Mineralogia", "MINFI Moscow Izdatel Nauka AN SSR Fizicheskii Institut Trudy", "MINGI Moscow Izdatel Nauka AN SSSR Geologicheskoi Institut Trudy", "MinJ. Mineralogical Journal", "MINMI Moscow Izdatel Nauka AN SSSR Matematicheskii Institut Trudy", "MinM. Mineralogical Magazine", "MinPe Mineralogy and Petrology", "MINTF Moscow Izdatel Nauka Teoreticheskaia Fizika", "MINVS Moscow Izdatel Nauka Vychislitelnaia Seismologiia", "MiOTL Microwave and Optical Technology Letters", "MiPot Mitteilungen des Astrophysikalischen Observatoriums Potsdam", "MiPul Mitteilungen der Nikolai-Hauptsternwarte zu Pulkowo", "MiRe. Microelectronics Reliability", "MiSon Mitteilungen der Sternwarte zu Sonneberg", "MisSp Missiles Spacecraft", "MISST Moscow Izdatel Sviaz Statisticheskaia Teoriia sviazi", "MISTr Matematicheskii Institut imeni Steklova Trudy", "MitAe Max Planck Institut Aeronomie Mitteilungen", "MitAG Mitteilungen der Astronomischen Gesellschaft Hamburg", "MiTau Zentralinstitut fuer Astrophysik Mitteilungen des Karl-Schwarzschild-Observatoriums Tautenburg", "MitSI Mitteilungen Mitt. Staatl. Astr. Sternberg-Inst.", "MitSZ Astronomischen Mitteilungen Eidgen. Sternwarte Zurich", "MiTue Mitteilungen des Astronomischen Instituts der Universitaet Tuebingen", "MitVS Zentralinstitut fuer Astrophysik Sternwarte Sonneberg Mitteilungen ueber Veraenderliche Sterne", "MiWie Mitteilungen der Universitaets-Sternwarte Wien", "MIzLI Moscow Izdatel Legkaia Industriia", "MIzMa Moscow Izdatel Mashinostroenie", "MIzMe Moscow Izdatel Metallurgiia", "MIzMU Moscow Izdatel Moskovskogo Universiteta Pt", "MIzNe Moscow Izdatel Nedra", "MIZNZ Moscow Izdatel Znanie Novoe Zhizni Nauke Tekhnike Seriia Fizika", "MIzRS Moscow Izdatel Radio Sviaz", "MIzSR Moscow Izdatel Sovetskoe Radio", "MiZur Astronomische Mitteilungen der Eidgenö", "MIzVS Moscow Izdatel Vysshaia Shkola", "MJPS. Moldavian Journal of the Physical Sciences", "MKAtl Astrophysics monographs University of Chicago Press", "MLST. Marine Life Science & Technology", "MMAAR Annual Report of the Maria Mitchell Association", "MmARB Memoires of the Academie Royale de Belgique", "MmArc Osservazioni e memorie dell'Osservatorio astrofisico di Arcetri", "MmArS Osservazioni e memorie dell'Osservatorio astrofisico di Arcetri - Appendici", "MmASI Memoirs of the Astronomical Society of India", "MMAS. Mathematical Methods in the Applied Sciences", "MmBAA Memoirs of the British Astronomical Association", "MmCP. Macromolecular Chemistry and Physics", "MMFMP Matematicheskie Metody i Fiziko Mekhanicheskie Polia", "MMI.. Metals and Materials International", "MmKMO Kakioka Magnetic Observatory Memoirs", "MmKyo Memoirs Faculty of Sciences University of Kyoto", "MM... Metals and Materials", "MmMtS Memoires of the Mount Stromlo Observervatory", "MMNA. Mathematical Modelling Numerical Analysis", "MmNap Memorie del R. Osservatorio di Capodimonte in Napoli", "MmRAS Memoirs of the Royal Astronomical Society", "MmSAI Memorie della Societa Astronomica Italiana", "MmSGI Memorie della Societa Geologica Italiana", "MmSSI Memorie della Societa Degli Spettroscopisti Italiani", "MmSS. Memorie della Societa Degli Spettroscopisti Italiani, serie 2", "MMTA. Metallurgical and Materials Transactions A", "MMTB. Metallurgical and Materials Transactions B", "MMTE. Metallurgical and Materials Transactions E", "MMTET Matematicheskoe Modelirovanie i Teoriia Elektricheskikh Tsepei", "MNRAS Monthly Notices of the Royal Astronomical Society", "MNSL. Micro and Nano Systems Letters", "MNSSA Monthly Notes of the Astronomical Society of South Africa", "MNSSJ Monthly notes of the Astronomical Society of South Africa", "ModGe Modern Geology", "ModIn Modern Instrumentation", "ModPh Modern Physics", "MoEBA Moscow Energoatomizdat Biblioteka Automatike", "MoEIT Moskovskii Energeticheskii Institut Trudy", "MoGid Moscow Gidrometeoizdat", "MoIKI Moscow Institut Kosmicheskikh Issledovanii AN SSSR", "MoINI Moscow Izdatel Nauka Issledovaniia Geomagnetizmu Aeronomii i Fizike Solntsa", "MoIPM Moscow Institut Prikladnoi Matematiki AN SSSR", "MoIzA Moscow Izdatel Atomizdat", "MoIzE Moscow Izdatel Energiia", "MoIzK Moscow Izdatel Khimiia", "MoIzM Moscow Izdatel Moskovskogo Universiteta", "MoIzN Moscow Izdatel Nauka", "MoIzS Moscow Izdatel Sviaz", "MoIzT Moscow Izdatel Transport", "MoIzV Moscow Izdatel VINITI", "MoIzZ Moscow Izdatel Znanie", "MolAs Molecular Astrophysics", "MoLLP Moshchnye lazery i lazernaia plazma", "MolPh Molecular Physics", "MoMGK Moscow Mezhduvedomstvennyi Geofizicheskii Komitet", "MoMTN Moscow Mezhdunarodnyi Tsentr Nauchnoi i Tekhnicheskoi Informatsii", "MonAP Communications du Departement d'Astrophysique de la Faculte des Sciences de Mons Mons Astrophysical Papers", "Moon. Moon", "MorGI Morskie Gidrofizicheskie Issledovaniia", "MoSim Molecular Simulation", "MosIZ Moscow IZMIRAN", "MosVI Moscow Voennoe Izdatel", "MosVo Moscow Voenizdat", "MotZe Motortechnische Zeitschrift", "MoVIN Moscow VINITI", "MoVNT Moscow Vychislitelnyi Tsentr AN SSSR", "MoVyS Moscow Vysshaia Shkola", "MPAG. Mathematical Physics, Analysis and Geometry", "MPARp Max Planck Institut fur Astrophysik Report", "MPBu. Minor Planet Bulletin", "MPC.. Minor Planet Circulars", "MPCPS Mathematical Proceedings of the Cambridge Philosophical Society", "MPDS. Mechanics and Physics of Discrete Systems", "MPEC. Minor Planet Electronic Circulars", "MPERp MPE Report", "MPFD. Microdevices: Physics and Fabrication Technologies", "MPLA. Modern Physics Letters A", "MPLB. Modern Physics Letters B", "M&P.. Moon and Planets", "M&PSA Meteoritics and Planetary Science Supplement", "M&PS. Meteoritics and Planetary Science", "MRE.. Materials Research Express", "MROVG Munich R Oldenbourg Verlag GmbH", "MRRev Magnetic Resonance Review", "MRSBu MRS Bulletin", "MRSSP Materials Research Society Symposia Proceedings", "MSAIQ Societa Astronomica Italiana Memorie Quarter", "MSAIS Memorie della Societa Astronomica Italiana Supplementi", "MSB.. Methods in Subnuclear Physics", "MSCTN Meteorological Satellite Center Technical Note", "MSE.. Multiscale Science and Engineering", "MSEnA Materials Science and Engineering A", "MSEnB Materials Science and Engineering B", "MSEnC Materials Science and Engineering C", "MSEng Materials Science and Engineering", "MSEnR Materials Science and Engineering R Reports", "MSF.. Materials Science Forum", "MSHT. Metal Science and Heat Treatment", "MSHTM Metal Science and Heat Treatment of Metals", "MSMFR Milano Seminario Matematico e Fisico Rendiconti", "MSM.. Mechanics of Structures and Machines", "MSMSE Modelling Simul. Mater. Sci. Eng.", "Msngr The Messenger", "MSPE. Management Systems in Production Engineering", "MSRSL Memoires of the Societe Royale des Sciences de Liege", "MSRv. Mass Spectrometry Reviews", "MSSP. Mechanical Systems and Signal Processing", "MsT.. Masters Thesis", "MTA.. Metallurgical Transactions A", "MTB.. Metallurgical Transactions B", "MTDM. Mechanics of Time-Dependent Materials", "MTEng Microscale Thermophysical Engineering", "MT... Metallurgical Transactions", "MTObM Metallovedenie i Termicheskaia Obrabotka Metallov", "MtoIs Meteorologicheskie Issledovaniia", "MTPMM Metallurgical Transactions Physical Metallurgy Materials Science", "MTRMA Meteor Forschungsergebnisse Reihe B Meteorologie und Aeronomie", "MtSOM Mount Stromlo Observatory Mimeographs", "MtWAR Mount Wilson and Palomar Observatory Annual Report", "MulSE Multiscale Science and Engineering", "MuMat Multifunctional Materials", "MUPB. Moscow University Physics Bulletin", "MURJE Mehran University Research Journal of Engineering and Technology", "MUSS. Muenchen Universitaets Schriften Serie", "MUVSK Moskovskii Universitet Vestnik Seriia Khimiia", "MVMP. Methoden und Verfahren der Mathematischen Physik", "MVSFA Moskovskii Universitet Vestnik Seriia Fizika Astronomiia", "MVSMM Moskovskii Universitet Vestnik Seriia Matematika Mekhanika", "MWE.. Mine Water and The Environment", "MWGBI Mannheim West Germany Bibliographisches Institut AG", "MWOAR Mount Wilson Observatory Annual Report", "MWRv. Monthly Weather Review", "NaAIJ Nanjing Aeronautical Institute Journal", "NacEl Nachrichten Elektronik", "NacZe Nachrichtentechnische Zeitschrift", "NaGe. National Geographic", "NanMe Nanomanufacturing and Metrology", "NanoA Nanoscale Advances", "NanoF Nano Futures", "NanoH Nanoscale Horizons", "NanoL Nano Letters", "Nanop Nanophotonics", "NanoR Nanoscale Reports", "Nanos Nanoscale", "Nanot Nanotechnology", "Nansp Nanospectroscopy", "NanSy Nanoelectromechanical Systems", "Nanth Nanothermoelectrics", "NapCo Osservatorio Astronomico di Capodimonte Napoli Contributi Astronomici", "NaPho Nature Photonics", "NASCL NASA Circular Letter", "NASRP NASA Reference Publication", "NASSP NASA Special Publication", "NASTM NASA Technical Memo", "NatAs Nature Astronomy", "NatBi Nature Biotechnology", "NatCC Nature Climate Change", "NatCh Nature Chemistry", "NatCo Nature Communications", "NatEn Nature Energy", "NatGe Nature Geoscience", "NatH. Natural History", "NATi. Nordisk Astronomisk Tidsskrift", "NatMa Nature Materials", "NATM. Nonlinear Analysis Theory Methods Applications", "NatNa Nature Nanotechnology", "NatPh Nature Physics", "NatRM Nature Reviews Materials", "NatRP Nature Reviews Physics", "NatSc Natural Science", "NatSR Scientific Reports", "Natur Nature", "NavAu Navigation Australia", "Navig Navigation", "NavPa Navigation Paris", "NAZ.. Nachrichtenblatt der Astronomischen Zentralstelle Heidelberg", "NBSSP National Bureau of Standards Special Publication", "NBSTN National Bureau of Standards Technical Note", "NCE.. Noise Control Engineering Journal", "NCimA Nuovo Cimento A Serie", "NCimB Nuovo Cimento B Serie", "NCimC Nuovo Cimento C Geophysics Space Physics C", "NCimD Nuovo Cimento D Serie", "NCim. Il Nuovo Cimento", "NCimL Nuovo Cimento Lettere", "NCimR Nuovo Cimento Rivista Serie", "NCimS Nuovo Cimento Serie", "NCNS. Network: Computation in Neural Systems", "NDS.. Nuclear Data Sheets", "NDTI. Nondestructive Testing and Evaluation International", "NDT.. Nuclear Data Tables", "NeuL. Neuroscience Letters", "NewA. New Astronomy", "NewAR New Astronomy Reviews", "NewSc New Scientist", "NewSp New Space", "NGFAW Nachrichtentechnische Gesellschaft Fachtagung ueber Antennen", "NHCWP North Hollywood Calif Western Periodicals Co", "NHESD Natural Hazards and Earth System Sciences Discussions", "NHESS Natural Hazards and Earth System Sciences", "NHTA. Numerical Heat Transfer Part A - Applications", "NHTB. Numerical Heat Transfer Part B - Fundamentals", "Nic1K Observatoire de Nice", "nicm.rSpace Telescope NICMOS Instrument Science Report", "NihOC Nihondaira Observatory Circular", "NIMPA Nuclear Instruments and Methods in Physics Research A", "NIMPB Nuclear Instruments and Methods in Physics Research B", "NIMPR Nuclear Instruments and Methods in Physics Research", "NInfo Nauchnye Informatsii", "NINT. Nablyud. Iskusstvennykh Nebesnykh Tel", "NISTJ National Institute of Standards and Technology Journal of Research", "NISZ. Nabliudeniia Iskusstvennykh Sputnikov Zemli", "NIUNA Napoli Istituto Universitario Navale Annali", "NJMM. Neues Jahrbuch Mineralogie Monatshefte", "NJPh. New Journal of Physics", "NJSR. Netherlands Journal of Sea Research", "NKG.. Nihon Kessho Gakkaishi", "NLE.. Nonlinear Engineering", "NML.. Nano-Micro Letters", "NMTE. Nanoscale and Microscale Thermophysical Engineering", "NN... Neural Networks", "noao.pNOAO Proposal", "NoDef Not Defined", "NOGB. Nachr. Olbers-Ges. Bremen", "NOHIC Nizamiah JAPAL Rangapur Observatories Hyderabad India Contributions", "NoIGG Novosibirsk Institut Geologii i Geofiziki SO AN SSSR", "NoIzN Novosibirsk Izdatel Nauka", "Nonli Nonlinearity", "NoPar Notes et Informations", "NOSCA Observaciones Astronomicas Hechas en el Observatorio de Santiago de Chile", "nova.pAAS Nova Highlights", "NovIG Novosibirsk Institut Gidrodinamiki SO AN SSSR Dinamika Sploshnoi Sredy", "NPAE. Nuclear Physics and Atomic Energy", "NPGD. Nonlinear Processes in Geophysics Discussions", "NPGeo Nonlinear Processes in Geophysics", "NPhS. Nature Physical Science", "npjAM npj Asia Materials", "npjCA npj Climate and Atmospheric Science", "npjCM npj Computational Mathematics", "npjMG npj Microgravity", "npjQI npj Quantum Information", "npjQM npj Quantum Materials", "npjRM npj Regenerative Medicine", "npjSL npj Scientific of Learning", "NPNDS Neutron Physics and Nuclear Data in Science and Technology", "NPPP. Nuclear and Particle Physics Proceedings", "NPPSB Nonequilibrium Problems in the Physical Sciences and Biology", "NPUJ. Northwestern Polytechnical University Journal", "NRA&A Nouvelle Revue d'Aeronautique et d'Astronautique", "NRAON National Radio Astronomy Observatory Newsletter", "nrao.pNational Radio Astronomy Observatory Press Release", "NRAOP National Radio Astronomy Observatory Publications", "NRAOR National Radio Astronomy Observatory Reprints", "NRAOW National Radio Astronomy Observatory Workshop", "NRL.. Nanoscale Research Letters", "NROA. Nouvelle Revue d'Optique Appliquee", "NROpt Nouvelle Revue d'Optique", "NRRv. Naval Research Reviews", "NRvEE Nature Reviews Earth and Environment", "NRvHM New Review of Hypermedia and Multimedia", "NSAP. Nonlinear, Statistical and Applied Physics", "NSE.. Nuclear Science Engineering", "NSMMT Nanoscale Systems Mathematical Modeling Theory and Applications", "NSM.. Novel Superconducting Materials", "NSSDC NSSDC Publication", "NSTBL Notes Scientifiques et Techniques du Bureau des Longitudes", "NSTIM Notes Scientifiques et Techniques de l'Institut de Mecanique Celeste", "NTA.. Nonlinear Theory and Its Applications, IEICE", "NTCo. Nondestructive Testing Communications", "NTE.. Nondestructive Testing and Evaluation", "NTN.. New Technology News", "NTTRv NTT Review", "NTvA. Novaya tekhn. v astron.", "NUAAJ Nanjing University Aeronautics and Astronautics Journal", "NuAlg Numerical Algorithms", "NucFS Nuclear Fusion Special Supplement", "NucFu Nuclear Fusion", "NucIM Nuclear Instruments and Methods", "nucl.earXiv Nuclear Experiment e-prints", "nucl.tarXiv Nuclear Theory e-prints", "NucPh Nuclear Physics", "NucTe Nuclear Technology", "NucTF Nuclear Technology Fusion", "NUDTJ National University Defense Technology Journal", "NuEnD Nuclear Engineering and Design", "NUFEM Nagoya University Faculty Engineering Memoirs", "NuGeo Nuclear Geophysics", "NuMat Numerische Mathematik", "NumHT Numerical Heat Transfer", "NuPhA Nuclear Physics A", "NuPhB Nuclear Physics B", "NuPhS Nuclear Physics B Proceedings Supplements", "NURIA Nagoya University Research Institute of Atmospherics Proceedings", "NUSEM Nagoya University School Engineering Memoirs", "NVS.. Nachrichtenblatt der Vereinigung der Sternfreunde", "NWGot Nachrichten von der Gesellschaft der Wissenschaften zu Goettingen, Mathematisch-Physikalische Klasse", "NW... Naturwissenschaften", "NYASA Annals of the New York Academy of Sciences", "NZJS. New Zealand Journal of Science", "OAcJ. The Open Acoustics Journal", "OACSC Observatorio Astronomico de Cordoba, Serie Contribuciones", "OAeEJ The Open Aerospace Engineering Journal", "OAJ.. The Open Astronomy Journal", "OAORP Observations astronomiques faites a l'Observatoire royal de Paris", "OAPJ. The Open Applied Physics Journal", "OAP.. Odessa Astronomical Publications", "OASJ. The Open Atmospheric Science Journal", "OAst. Open Astronomy", "OAWMN Oesterreichische Akademie Wissenschaften Mathematisch naturwissenschaftliche Klasse Sitzungsberichte Abteilung", "OBN1K Observatoire de Besancon - CNES", "Obser Observation pi", "Obs.. The Observatory", "ObVyS Obzory Vysokotemperaturnoi Sverkhprovodimosti", "OCAM. Optimal Control Applications and Methods", "OccN. Occultation Newsletter, International Occultation Timing Association (IOTA)", "OcDyn Ocean Dynamics", "Ocean Oceanus Summer", "OcEng Ocean Engineering", "Ocgy. Oceanology", "OcMod Ocean Modelling", "OCMPJ The Open Condensed Matter Physics Journal", "OCPJ. The Open Chemical Physics Journal", "OcScD Ocean Science Discussions", "OcSci Ocean Science", "OCSC. OAA Compututer Section Circular", "OCzAS Ondrejov Czechoslovakia Czechoslovak Academy Sciences CAS Astronomical Institute Publications", "Oecol Oecologia", "OED.. El Observador de Estrellas Dobles", "OEJV. Open European Journal on Variable Stars", "OEng. Open Engineering", "OERv. Opto-Electronics Review", "OExpr Optics Express", "OGC.. The Open Geology Journal", "OGeo. Open Geosciences", "OHJ.. The Open Hydrology Journal", "OIDP. Optoelectronics, Instrumentation and Data Processing", "OISNP Oxford Pergamon Press International Series on Natural Philosophy", "OISTS Oxford Pergamon Press International Tables Selected Constants", "OJA.. Open Journal of Acoustics", "OJAp. The Open Journal of Astrophysics", "OJAS. Open Journal of Applied Sciences", "OJBp. Open Journal of Biophysics", "OJFD. Open Journal of Fluid Dynamics", "OJGeo Open Journal of Geology", "OJMic Open Journal of Microphysics", "Okean Okeanologiia", "OLEB. Origins of Life and Evolution of the Biosphere", "OMatS Open Material Sciences", "OMEJ. The Open Mechanical Engineering Journal", "OMExp Optical Materials Express", "OMJ.. The Open Mechanics Journal", "OMnJ. The Open Mineralogy Journal", "OMN.. Optofluidics, Microfluidics and Nanofluidics", "OMPJ. The Open Mineral Processing Journal", "OMX.. Optical Materials: X", "ONCP. Old and New Concepts of Physics", "ONERA ONERA TP", "ONJ.. The Open Nanoscience Journal", "ONMJ. The Open Numerical Methods Journal", "ONPPJ The Open Nuclear &", "ONRAS Occasional Notes of the Royal Astronomical Society", "OOcJ. The Open Oceanagraphy Journalurnal", "OOEJ. The Open Ocean Engineering Journal", "OOJ.. The Open Optics Journal", "OOPS. Fundamentalnye Osnovy Opticheskoi Pamiati i Sredy", "OOVRO Observations Owens Valley Radio Observatory", "OPalJ The Open Paleontology Journal", "OpAtO Optika Atmosfery i Okeana", "OpAt. Optika Atmosfery", "OPCJ. The Open Physical Chemistry Journal", "OPhyJ Open Physics Journal", "OPhy. Open Physics", "OPJ.. Optics and Photonics Journal", "OpMeP Optiko Mekhanicheskaia Promyshlennost", "OPPJ. The Open Plasma Physics Journal", "OPP.. Organic Photonics and Photovoltaics", "OpPuT Optoelektronika i Poluprovodnikovaia Tekhnika", "OpSCN Optical Sciences Center Newsletter", "OpSp. Optika i Spektroskopiia", "OptCo Optics Communications", "OptEL Optoelectronics Letters", "OptEn Optical Engineering", "Optfl Optofluidics", "OptFT Optical Fiber Technology", "Optic Optica", "Optik Optik", "OptLE Optics and Lasers in Engineering", "OptL. Optics Letters", "OptLT Optics Laser Technology", "OptMa Optical Materials", "OptNa Optical Nanoscopy", "OptN. Optics News", "OptPE Optical Physics and Engineering", "OptPN Optics & Photonics News", "OptRv Optical Review", "OptSp Optics and Spectroscopy", "OQEle Optical and Quantum Electronics", "OREJ. The Open Renewable Energy Journal", "OrGeo Organic Geochemistry", "Orion Orion: Zeitschrift fü", "Ori.. Orione", "OrLi. Origins of Life", "OrNav Ortung und Navigation", "ORROE Occasional Reports of the Royal Observatory Edinburgh", "ORSJ. The Open Remote Sensing Journal", "OSFOT Observatoire de la Socié", "OSID. Open Systems and Information Dynamics", "Osir. Osiris", "OSJaJ Oceanographical Society of Japan Journal", "OSJ.. Ocean Science Journal", "OslR. Institute of Theoretical Astrophysics Blindern Oslo Reports", "OSpeJ The Open Spectroscopy Journal", "OSPJ. The Open Signal Processing Journal", "OSSJ. The Open Surface Science Journal", "oss..pNASA OSS Proposal", "OSUC. Observationes Astronomicas Insitutas in Specula Universitatis Caesareae Dorpatensis", "OSuJ. The Open Superconductors Journal", "OsUTR Osaka University Technology Reports", "OtObI Otbor i Obrabotka Informatsii", "O&T.. Observations et Travaux", "OtPI. Otbor i Peredacha Informatsii", "OVS.. Observation of Variable Stars", "OxfOO Oxford University Observatory Observations", "PABei Progress in Astronomy", "PAB.. Publications of The Astrophysics Branch Ottawa", "PadCR Osservatorio Astronomico di Padova Comunicazioni e Rassegne", "PADEU Publications of the Astronomy Department of the Eotvos Lorand University", "PAIB. Publications of the Astronomy Institute of Bonn", "PAICU Publications of the Astronomical Institute of the Charles University", "PAICz Publications of the Astronomical Institute of the Czechoslovak Academy of Sciences", "PAIJ. Physics &", "PAIKH Publikationen des Astrophysikalischen Instituts Koenigstuhl-Heidelberg", "Palai PALAIOS", "PAllO Publications of the Allegheny Observatory of the University of Pittsburgh", "PalOc Paleoceanography", "PAM.. Physics of Atoms and Molecules", "PAN.. Physics of Atomic Nuclei", "PAOS. Publications of the Astronomical Observatory of Sarajevo", "PApCh Pure & Applied Chemistry", "PApGe Pure and Applied Geophysics", "PAPhS Proceedings of the American Philosophical Society", "PApOp Pure Applied Optics", "PA... Popular Astronomy", "PApPh Pure and Applied Physics", "ParC. Parallel Computing", "PaReL Pattern Recognition Letters", "PASAM Polish Academy of Science Arch Mech", "PASA. Publications of the Astronomical Society of Australia", "PASAS Polish Academy of Science Artificial Satellites", "PASAu Proceedings of the Astronomical Society of Australia", "PASIG Polish Academy of Sciences Institute of Geophysics Publications", "PASJ. Publications of the Astronomical Society of Japan", "PASK. Publications of the Academy of Science Kasakstan Sect. Astrobotanics", "PASP. Publications of the Astronomical Society of the Pacific", "PASRB Publications of the Astronomical Society Rudjer Boskovic", "PAth. Publications of the Laborotory of Astronomy University of Athens", "PATid PATid___Popular Astronomisk Tidskrift", "PAUTx University of Texas Publications in Astronomy", "PAZh. Pisma v Astronomicheskii Zhurnal", "PBeiO Publications of the Beijing Astronomical Observatory", "PBosO Publications of the Bosscha Observatory Lembang Indonesia", "PBrn. Publications of the Astronomical Institute of the University of Borneo", "PCAS. Proceedings of the California Academy of Sciences", "PCat. Publications of Osservatorio Astrofisico di Catania", "PCCP. Physical Chemistry Chemical Physics (Incorporating Faraday Transactions)", "PCEA. Physics and Chemistry of the Earth A", "PCEB. Physics and Chemistry of the Earth B", "PCEC. Physics and Chemistry of the Earth C", "PCED. Physics and Chemistry of the Earth Delta", "PCE.. Physics and Chemistry of the Earth", "PCHEI Physics in Collision: High-Energy ee/ep/pp Interactions", "PCinO Publications of the Cincinnati Observatory", "PCMLA Physics and Chemistry of Materials with Low-Dimensional Structures Series A", "PCMLB Physics and Chemistry of Materials with Low-Dimensional Structures Series B", "PCMLC Physics and Chemistry of Materials with Low-Dimensional Structures Series C", "PCMLD Physics and Chemistry of Materials with Low-Dimensional Structures", "PCM.. Physics and Chemistry of Minerals", "PCMPS Protection and Control of Modern Power Systems", "PCooO Publications of the Cook Observatory", "PCopO Publikationer og mindre Meddeler fra Kobenhavns Observatorium", "PCPS. Proceedings of the Cambridge Philosophical Society", "PCSE. Physical Chemistry: Science and Engineering", "PCS.. Physics and Chemistry in Space", "PCTM. Physikalisch-Chemische Trenn- und Messmethoden", "PCZNN Politechnika Czestochowska Zeszyty Naukowe Nauki Techniczne Mechanika", "PDAO. Publications of the Dominion Astrophysical Observatory Victoria", "PDAUC Publications of the Department of Astronomy University of Chile", "PDDO. Publications of the David Dunlap Observatory", "PDHO. Publications of Debrecen Heliophysical Observatory", "PDiff Powder Diffraction", "PDO.. Publications of the Dominion Observatory Ottawa", "PDreO Publications of the Dresden Observatory", "PDSS. NASA Planetary Data System", "PDU.. Physics of the Dark Universe", "PEEI. Physics and Evolution of the Earth's Interior", "PEFPN Physica Energiae Fortis et Physica Nuclearis", "PEPI. Physics of the Earth and Planetary Interiors", "PEPS. Progress in Earth and Planetary Science", "PerCo Perkins Observatory Contributions", "PerMS Perceptual Motor Skills", "PerOC Perth Observatory Communication", "PFG.. PFG - Journal of Photogrammetry, Remote Sensing and Geoinformation Science", "PFP.. Philosophy and Foundations of Physics", "PFR.. Plasma and Fusion Research", "PGAOI Pulkovo Glavnaia Astronomicheskaia Observatoriia Izvestiia", "PGC.. Papers on Global Change IGBP", "PGenA Publications of the Observatoire Geneve Series A", "PGenB Publications of the Observatoire Geneve Series B", "PgE.. Photogrammetric Engineering", "PgERS Photogrammetric Engineering and Remote Sensing", "PGLO. Publications of the Goethe Link Observatory", "PGooO Publications of the Goodsell Observatory, Carleton College", "Pg... Photogrammetria", "PGro. Publications of the Kapteyn Astronomical Laboratory Groningen", "PGZNM Politechnika Gdanska Zeszyty Naukowe Mechanika", "PhApp Physics and its Applications", "PhaTr Phase Transitions, A Multinational Journal", "PhBio Physical Biology", "PhB.. Physics Bulletin", "PhChE Physics and Chemistry of Earth", "PhChH PhysicoChemical Hydrodynamics", "PhDT. Ph.D. Thesis", "PhFlA Physics of Fluids A", "PhFlB Physics of Fluids B", "PhFl. Physics of Fluids", "PhiJR Philips Journal Research", "PhInt Photo Interpretation", "PhiRR Philips Research Reports", "PhiTR Philips Technical Review", "PhLA. Physics Letters A", "PhLB. Physics Letters B", "PhLC. Physics Letters Section C Physics Reports C", "PhLF. Physics Laser Fusion", "PhL.. Physics Letters", "PhLRv Physics of Life Reviews", "PhMet Physics of Metals", "PhNan Photonics and Nanostructures", "Phoen Phoenix Mitteilungsblatt fuer Veraenderlichenbeobachter", "PhoSp Photonics Spectra", "Phot. Photoniques", "PhPl. Physics of Plasmas", "PhP.. Physics in Perspective", "PhPro Physics Procedia", "PhQE. Physics of Quantum Electronics", "PhR.. Physics Reports", "PhRvA Physical Review A", "PhRvB Physical Review B", "PhRvC Physical Review C", "PhRvD Physical Review D", "PhRvE Physical Review E", "PhRvF Physical Review Fluids", "PhRvI Physical Review Series I", "PhRvL Physical Review Letters", "PhRvM Physical Review Materials", "PhRv. Physical Review", "PhRvP Physical Review Applied", "PhRvR Physical Review Research", "PhRvS Physical Review Accelerators and Beams", "PhRvX Physical Review X", "PhSen Photonic Sensors", "PhSRv Physical Sciences Reviews", "PhSS. Physics of the Solid State", "PhST. Physica Scripta Volume T", "PhTea The Physics Teacher", "PhTec Physics in Technology", "PhT.. Physics Today", "PhuZ. Physik in unserer Zeit", "PhyA. Physica A Statistical Mechanics and its Applications", "PhyBC Physica B+C", "PhyBl Physikalische Blä", "PhyB. Physica B Condensed Matter", "PhyC. Physica C Superconductivity", "PhyD. Physica D Nonlinear Phenomena", "PhyEd Physics Education", "PhyE. Physica E Low-Dimensional Systems and Nanostructures", "PhyEs Physics Essays", "PhyG. Physikalische Gesellschaft", "PhyGZ Physikalische Gesellschaft Zü", "PhyIn Physics International", "PhylS Physiologist Supplement", "PhyMe Physical Mesomechanics", "PhyM. Physiological Measurement", "PhyN. Physics Notes", "PhyNr Physica Norvegica", "PhyNY Physics New York", "PhyOJ Physics Online Journal", "PhyO. Physics Open", "Phy.. Physica", "PhyR. Physical Research", "PhySB Physica Scripta B", "physicarXiv Physics e-prints", "Physi Physics", "PhyS. Physica Scripta", "PhyU. Physics Uspekhi", "PhyW. Physics World", "PhyZ. Physikalische Zeitschrift", "PIAGL Publications de l'Institut d'Astronomie et de Geophysique Georges Lemaitre", "PIAHS Proceedings of the International Association of Hydrological Sciences", "PIASE Proceedings of the Indian Academy of Science, Earth and Planetary Sciences", "PIGP. Proceedings of the Institute of General Physics, Adademy of the Sciences of Russia", "PILOM Proceedings of the International Latitude Observatory at Mizusawa", "PINSA Proceedings of the Indian National Science Academy Part A", "PINSB Proceedings of the Indian National Science Academy Part B", "PIRE. Proceedings of the IRE", "PIstO Publications of the Istanbul University Observatory", "PJAB. Proceeding of the Japan Academy, Series B", "PJGeo Pakistan Journal of Geology", "PJMPE Polish Journal of Medical Physics And Engineering", "PKAO. Pyublikatskii Kievskoj Astronomicheskoj Observatorii", "PKAS. Publication of Korean Astronomical Society", "PKCat Publ. House Czech. Acad. Sci.", "PKirO Publications of the Kirkwood Observatory of Indiana University", "PKM.. Physik der Kondensierten Materie", "PKUJ. Publikationen der Kaiserlichen Universitaets-Sternwarte Jurjew", "PlAst Planetary Astronomy", "PLDS. Physics of Low-Dimensional Structures", "PLicO Publications of Lick Observatory", "PLoSO PLoS ONE", "PlPh. Plasma Physics", "PlPhR Plasma Physics Reports", "PLPla Observatory Astronomical La Plata Series Astronomies", "PlREx Plasma Research Express", "PlR.. Planetary Report", "PLSCB PLoS Computational Biology", "PlSci Planetary Science", "PlST. Plasma Science and Technology", "PMagA Philosophical Magazine, Part A", "PMagB Philosophical Magazine, Part B", "PMagL Philosophical Magazine Letters", "PMag. Philosophical Magazine", "PManO Publications of the Manila Observatory", "PMatP Progress in Mathematical Physics", "PMB.. Physics in Medicine and Biology", "PMcCO Publications of the Leander McCormick Observatory", "PMCPA PMC Physics A", "PMCPB PMC Physics B", "PMCPC PMC Physics C", "PMetP Progress in Metal Physics", "PMetR Papers in Meteorological Research", "PMG.. Papers Meteorology Geophysics", "PMMin Proper Motion Survey, University of Minnesota", "PMM.. Physics of Metals and Metallography", "PMO.. Perth Meridien Observations", "PMP.. Powder Metallurgy Progress", "PMRP. Progress in Medical Radiation Physics", "PMTF. PMTF Zhurnal Prikladnoi Mekhaniki i Tekhnicheskoi Fiziki", "PMtv. Facultad de Humanidades y Ciencias Universidad de la Republica Montevideo", "PMunO Publications of the Munich Observatory", "PNAOC Publications of the National Astronomical Observatories of China", "PNAOJ Publications of the National Astronomical Observatory of Japan", "PNAS. Proceedings of the National Academy of Science", "PNAU. Proceedings of National Aviation University", "PnGid Pnevmatika i Gidravlika", "PNSBP Proceedings of the National Society of Black Physicists", "PNSci Progress in Natural Science", "PNSC. Proceedings of the National Science Council", "POANC Publications of the Observatorie Astronomie Nacional Cerro Calan", "PoAn. Postepy Astronautyki", "PoAst Postepy Astronomii Krakow", "POBeo Publications de l'Observatoire Astronomique de Beograd", "POBol Publications of dell'Osservatorio Astronomie de Bologna", "PoCom Polymer Composites", "PODE. Dun Echt Observatory Publications", "POHel Publications of the Astronomical Observatory Helsinki", "POHP. Publications of the Observatoire Haute-Provence", "PolAt Pollution Atmospherique", "PolPh Polymer Physics", "PolPP Poluprovodnikovye Pribory i ikh Primenenie", "PolRe National Institute Polar Research Memoirs", "PolSc Polar Science", "PolSi Poliarnye Siianiia", "PolTM Poluprovodnikovaia Tekhnika i Mikroelektronika", "POLyo Publications of the Observatoire de Lyon", "Polyt Polytechnica", "PomAK Pomiary Automatyka Kontrola", "PoMec Polymer Mechanics", "POMic Publications of Michigan Observatory", "POMil Pubblicazioni dell'Osservatorio Astronomico di Milano-Merate", "POMin Publications of the Astronomical Observatory University of Minnesota", "POPad Pubblicazioni dell'Osservatorio Astronomico di Padova", "POPot Publikationen des Astrophysikalischen Observatoriums zu Potsdam", "POrCo Progress in Organic Coatings", "PorMe Poroshkovaia Metallurgiia", "PoS.. Proceedings of Science", "POStr Publication de l'Observatoire de Strasbourg", "POTor Pubblicazioni Varie Fuori Serie dell'Osservatorio Astronomico di Torino", "PotUr Potins d'Uranie", "POVRO Publications of the Owens Valley Observatory", "POxf. Publications University of Oxford Department of Astrophysics", "PPCAS Publication of the Pomona College Astronomical Society", "PPCF. Plasma Physics and Controlled Fusion", "PPcPp Progress in Photochemistry and Photophysics", "PPEE. Periodica Polytechnica Electrical Engineering", "PPhI. Particle Physics Insights", "PPh.. Papers in Physics", "PPHTS Physical Properties of High Temperature Superconductors", "PPME. Periodica Polytechnica Mechanical Engineering", "PPMtO Publications of the Purple Mountain Observatory", "PPNL. Physics of Particles and Nuclei Letters", "PPN.. Physics of Particles and Nuclei", "PPPLR Princeton Plasma Physics Laboratory Report", "PPP.. Palaeogeography Palaeoclimatology Palaeoecology", "PPSA. Proceedings of the Physical Society A", "PPSB. Proceedings of the Physical Society B", "PPSL. Proceedings of the Physical Society of London", "PPS.. Proceedings of the Physical Society", "PPTE. Periodica Polytechnica Transportation Engineering", "PQE.. Progress in Quantum Electronics", "PraAc Prague Academia", "PrAA. Progress in Astronautics and Aeronautics", "PrAeS Progress in Aerospace Sciences", "PrAiA Problemy Arktiki i Antarktiki", "Prama Pramana", "PrA.. Progress in Astronomy", "PrAst Practical Astronomy", "PrAtO Leningrad Gidrometeoizdat Sovremennye Problemy Atmosfernoi Optiki", "PrBio Problemy Bioniki", "PrCmg Problems of Cosmogeny", "PRCO. Publications of the Riverview College Observatory", "PrDRV Problemy Difraktsii i Rasprostraneniia Voln", "PrECS Progress in Energy and Combustion Science", "PrEM. Probabilistic Engineering Mechanics", "PrEne Progress in Energy", "PrEPS Procedia Earth and Planetary Science", "PreR. Precambrian Research", "PrExP Propellants and Explosives Pyrotechnics", "PrEx. Propellants and Explosives", "PrFA. Problemy Fiziki Atmosfery", "PrFKL Problemy Iadernoi Fiziki i Kosmicheskikh Luchei", "PRFVT Plastiques Renforces Fibres de Verre Textile", "PRIAA Proceedings of the Royal Irish Academy Section A", "PRIAN Proceedings of the Research Institute of Atmospherics, Nagoya University", "Prib. Priborostroenie", "PrICA Proceedings of the ICA", "PriMM Prikladnaia Matematika i Mekhanika", "PriMP Prikladnaia Matematika i Programmirovanie", "PriM. Prikladnaia Mekhanika", "PRI.. Physics Research International", "Prir. Priroda", "PriTE Pribory i Tekhnika Eksperimenta", "Priv. Private Communication", "PrKFi Problemy Kosmicheskoi Fiziki", "PrMas Problemy Mashinostroeniia", "PrMS. Progress in Materials Science", "PRNAA Proceedings of the Royal Netherlands Academy of Arts and Sciences", "PrOce Progress in Oceanography", "PROE. Publications of the Royal Observatory of Edinburgh", "PrOpt Progess in Optics", "ProTe Promyshlennaia Teplotekhnika", "PRPER Physical Review Physics Education Research", "PrPG. Progress in Physical Geography", "PrPh. Progress in Physics", "PrPNP Progress in Particle and Nuclear Physics", "PRP.. Pattern Recognition in Physics", "PrPro Problemy Prochnosti", "PrSP. Problemy Sluchainogo Poiska", "PrSS. Progress In Surface Science", "PRSTP Physical Review Special Topics Physics Education", "PrTE. Problemy Tekhnicheskoi Elektrodinamiki", "PrTGE Problemy Teorii Gravitatsii i Elementarnykh Chastits", "PrTPT Problemy Teploenergetiki i Prikladnoi Teplofiziki", "PrUkr Akademiia Nauk Ukrains koi RSR Dopovidi Matematika Prirodoznavstvo Tekhnichni Nauki", "PrVP. Proceedings of Vibration Problems", "PSAIL Pubblicazioni della Stazione Astronomica Internazionale di Latitudine", "PSAO. Publications of the Shaanxi Astronomical Observatory", "PSCDS Publication Speciale du Centre de Donnees Stellaires", "PSCEC Physical Sciences Series of the Commission of European Communities", "PSci. Pour la Science", "PShaO Publications of the Shaanxi Astronomy Observatory", "PSJ.. The Planetary Science Journal", "PSL.. Physics of Solids and Liquids", "PSprO Publications of the Sproul Observatory", "PSSAR Physica Status Solidi Applied Research", "PSSBR Physica Status Solidi B Basic Research", "PSSCR Physica Status Solidi C Current Topics", "PSSNN Poliarnye Siianiia i Svechenie Nochnogo Neba", "P&SS. Planetary and Space Science", "PSSRR Physica Status Solidi Rapid Research Letters", "PSST. Plasma Sources Science Technology", "PSZNM Politechnika Slaska Zeszyty Naukowe Mechanika", "PTarO Publications of the Tartu Astrofizica Observatory", "PTasO Publications of the Tashkent Astronomical Observatory", "PTCP. Progress in Theoretical Chemistry and Physics", "PTEP. Progress of Theoretical and Experimental Physics", "PThPh Progress of Theoretical Physics", "PThPS Progress of Theoretical Physics Supplement", "PTPPB Physics and Technology of Particle and Photon Beams", "PUAMA Poznan Uniwersytet im Adama Mickiewicza Seria Akustyka", "PUAMF Poznan Uniwersytet im Adama Mickiewicza Seria Fizyka", "PUAms Publications of the Astronomical Institute of the University of Amsterdam", "PUPFA Publications of the University of Pennsylvania Flower Astronomical Observatory", "PUSK. Publication der Koeniglichen Sternwarte in Kiel", "PUSNO Publications of the U.S. Naval Observatory Second Series", "PVasO Publications of the Vassar College Observatory", "PVSS. Royal Astronomical Society of New Zealand Publications of Variable Star Section", "PVVO. Publications of the Van Vleck Observatory", "PWasO Publications of the Washburn Observatory", "PWHHO Publications of West Hendon House Observatory, Sunderland", "PWP.. Physics of Wave Phenomena", "PW&SO Publications of the Warner & Swasey Observatory", "PYerO Publications of the Yerkes Observatory", "PYunO Publications of the Yunnan Observatory", "PZETF Pisma v Zhurnal Eksperimentalnoi i Teoreticheskoi Fiziki", "PZhTF Pisma v Zhurnal Tekhnischeskoi Fiziki", "PZ... Peremennye Zvezdy", "PZP.. Peremennye Zvezdy Prilozhenie", "QApMa Quarterly of Applied Mathematics", "QBSA. Quarterly Bulletin on Solar Activity", "QBS.. Quantum Beam Science", "QJMAM Quarterly Journal of Mechanics and Applied Mathematics", "QJMat The Quarterly Journal of Mathematics", "QJPAM The Quarterly Journal of Pure and Applied Mathematics", "QJRAS Quarterly Journal of the Royal Astronomical Society", "QJRMS Quarterly Journal of the Royal Meteorological Society", "QMQM. Quantum Measurements and Quantum Metrology", "QREI. Quality Reliability Engineering International", "QSRv. Quaternary Science Reviews", "QS&T. Quantum Science and Technology", "QuEle Quantum Electronics", "QuFin Quantitative Finance", "QuInt Quaternary International", "QuIP. Quantum Information Processing", "QuOpt Quantum Optics", "QuRes Quaternary Research", "RAA.. Research in Astronomy and Astrophysics", "RadA. Radio Astronomy: Journal of the Society of Amateur Radio Astronomers,", "RadEf Radiation Effects", "Radel Radioehlektronika", "RadIn Radio industry", "RadM. Radiation Measurements", "Rad.. Radiant, Journal of the Dutch Meteor Society", "RadR. Radiation Research", "RaEE. Radio and Electronic Engineer", "RaEl. Radiotekhnika i Elektronika", "RaF.. Radiofizika", "RALR. Rutherford Appleton Laboratory Report", "RAOU. Recherches Astronomiques de l'Observatoire d'Utrecht", "RaPC. Radiation Physics and Chemistry", "RA... Ricerche Astronomiche", "RaRLJ Radio Research Laboratory, Journal", "RaRLR Radio Research Laboratory, Review", "RAROC Results of Astronomical Observations made at the Royal Observatory, Cape of Good Hope", "RArtR Rock Art Research", "RaSc. Radio Science", "RaT.. Radiotekhnika", "RBrFi Revista Brasileira de Fisica", "RCD.. Regular and Chaotic Dynamics", "RCMS. Rapid Communications in Mass Spectrometry", "RDTM. Radiation Detection Technology and Methods", "Rech. La Recherche", "REDS. Radiation Effects and Defects in Solids", "REEP. Radio Engineering and Electronic Physics", "REES. Renewable Energy and Environmental Sustainability", "RELEA Latin American Journal of Astronomy Education", "RemS. Remote Sensing", "ReNEv Research in Nondestructive Evaluation", "ResPh Results in Physics", "RF... Raumfahrtforschung", "RFrG. Revue Francaise de Geotechnique", "RFrM. Revue Francaise de Mecanique", "RGAO. Astronomical Observations made at the Royal Observatory at Greenwich", "RGG.. Reports on Geodesy and Geoinformatics", "RGOB. Royal Greenwich Observatory Bulletins", "RGRH. Rep. Hydrograph. Res. Japan", "RHRJ. Report of Hydrographic Researches in Japan", "RIG.. Rivista Italiana di Geofisica", "Rise. Rise Hvezd", "RJARA Russian Journal of Astrophysical Research Series A", "RJMP. Russian Journal of Mathematical Physics", "RJPCA Russian Journal of Physical Chemistry A", "RLOpt Research Letters in Optics", "RLPhy Research Letters in Physics", "RLSFN Rendiconti Lincei. Scienze Fisiche e Naturali", "RMFMR Rock Mechanics Felsmechanik Mecanique des Roches", "RMRE. Rock Mechanics and Rock Engineering", "RMTME USSR Rept Machine Tools Metalworking Equipment JPRS UMM", "RMxAA Revista Mexicana de Astronomia y Astrofisica", "RMxFE Revista Mexicana de Fisica E", "RMxF. Revista Mexicana de Fisica", "RMxFS Revista Mexicana de Fisica Supplement", "RNAAS Research Notes of the American Astronomical Society", "RNAOJ Report of the National Astronomical Observatory of Japan", "RNAO. Resultados del Observatorio Nacional Argentino", "RNISZ Rezultaty Nabliudenii Iskusstvennykh Sputnikov Zemli", "RNOST Research News & Opportunities in Science and Theology", "RoAJ. Romanian Astronomical Journal", "ROAn. Royal Observatory Annals", "Robot Robotica", "ROCi. Republic Observatory Johannesburg Circular", "ROCor Resultados del Observatorio Nacional Argentino en Cordoba", "Roczn Rocznik Astronomiczny Observatorjum Krakowskiego Krakow", "RoDok Rossijskaya Akademiya Nauk Doklady", "RoIE. Rossiiskaia Akademiia Nauk Izvestiia Energetika", "RoIET Rozprawy Inzynierskie Engineering Transactions", "RoIMT Rossijskaya Akademiya Nauk Izvestiya Mekhanika Tverdogo Tela", "RoIMZ Rossiiskaia Akademiia Nauk Izvestiia Mekhanika Zhidkosti i Gaza", "RoIn. Rozprawy Inzynierskie", "RoISF Rossiiskaia Akademiia Nauk Izvestiia Seriia Fizicheskaia", "RoIzF Rossijskaya Akademiya Nauk Izvestiya Seriya Fizicheskaya", "RoJPh Romanian Journal of Physics", "ROLun Reports of the Lund Observatory", "RomCo Osservatorio Astronomico di Roma su Monte Mario Contributi Scientifici", "RoRPh Romanian Reports in Physics", "RosOB Observatorio Astronomico Municipal de Rosario Argentia Boletin", "RpBAM USSR Report Space Biology Aerospace Medicine JPRS USB", "RpCCA USSR Report Cybernetics Computers Automation Technology JPRS UCC", "RpEEE USSR Rept Electron Elec Eng JPRS UEE", "RpEE. USSR Rept Eng Equipment JPRS UEQ", "RpEn. USSR Rept Energy JPRS UEN", "RpESc USSR Report Earth Sciences JPRS UES", "RPFSU Research Papers Faculty of Materials Science and Technology Slovak University of Technology", "RpMP. Reports on Mathematical Physics", "RpMSM USSR Rept Mater Sci Met JPRS", "RpPhM USSR Rept Phys Math JPRS UPM", "RPPh. Reports on Progress in Physics", "RPRA. Radio Physics and Radio Astronomy", "RpSBA USSR Rept Space Biol Aerospace Med Sep", "RpScT JPRS Report Science Technology USSR Space", "RpSpR USSR Report Space", "RpTr. USSR Rept Transportation JPRS UTR", "R&QE. Radiophysics and Quantum Electronics", "RRDAP Recent Research Development in Applied Physics", "RRDBB Recent Research Development in Biophysics and Biochemistry", "RRDBC Recent Research Development in Biophysical Chemistry", "RRDCP Recent Research Development in Chemical Physics", "RRDPC Recent Research Development in Physical Chemistry", "RRDPF Recent Research Development in Physics of Fluids", "RRDP. Recent Research Development in Physics", "RRDSP Recent Research Development in Statistical Physics", "RRMPA Revue Roumaine de Mathematiques Pures et Appliquees", "RRPRA Russian Radio Physics and Radio Astronomy", "RRP.. Research Reports in Physics", "RScEd Research in Science Education", "RScI. Review of Scientific Instruments", "RSCT. Transactions of the Royal Society of Canada", "RSEMS Remote Sensing Electro Magnetic Spectrum", "RSEnv Remote Sensing of Environment", "RSEPS Proceedings of the Royal Society of Edinburgh", "RSESS Remote Sensing in Earth Systems Sciences", "RSET. Transaction of the Royal Society of Edinburgh", "RSN&R Royal Society of London Notes & Records", "RSNSW Journal and Proceedings of the Royal Society of New South Wales", "RSOS. Royal Society Open Science", "RSPSA Proceedings of the Royal Society of London Series A", "RSPSB Proceedings of the Royal Society of London Series B", "RSPS. Proceedings of the Royal Society of London Series I", "RSPTA Philosophical Transactions of the Royal Society of London Series A", "RSPTB Philosophical Transactions of the Royal Society of London Series B", "RSPT. Philosophical Transactions of the Royal Society of London Series I", "RSPUT Report Series of the Department of Physics and Science, University of Turku", "RSQ.. Remote Sensing Quarterly", "RSTEd Research in Science and Technological Education", "RST.. Revue Scientifique et Technique CECLES CERS", "RTP.. Research Trends in Physics", "RTRE. Radiotekhnika Tecommunications Radio Engineering Radio Engineering", "RTrTe Revista Transporturilor si Telecomunicatiilor", "RTSRE Robotic Telescope, Student Research and Education Proceedings", "RuAer Russian Aeronautics", "RuCRv Russian Chemical Reviews", "RuGG. Russian Geology and Geophysics", "Ruimt Ruimtevaart", "RuMaS Russian Mathematical Surveys", "RuMet Russian Metallurgy", "RuPhJ Russian Physics Journal", "RvAc. Revue d'Acoustique", "RvAMS Reviews on Advanced Materials Science", "RvAqS Reviews in Aquatic Sciences", "RvA.. Revista Astronomica Organo de la Asociacion Argengina Amigos de la Astronomia Buenos Aires", "RvAST Reviews of Accelerator Science and Technology", "RvCF. Revista Colombiana de Fisica", "RvGeo Reviews of Geophysics", "RvGeS Reviews of Geophysics Supplement", "RvGSP Reviews of Geophysics and Space Physics", "RvMad Revista Real Acad. Ciencias Exact. Fis. Nat. Madrid", "RvMaP Reviews in Mathematical Physics", "RvMA. Reviews in Modern Astronomy", "RvMG. Reviews in Mineralogy and Geochemistry", "RvMin Reviews of Mineralogy", "RvMPP Reviews of Modern Plasma Physics", "RvMP. Reviews of Modern Physics", "RvMPS Reviews of Modern Physics Supplement", "RvOp. Reviews of Optics", "RvPA. Revue de Physique Appliquee", "RvPD. Revue du Palais de la Decouverte", "RvPhy Reviews in Physics", "RvPP. Reviews of Plasma Physics", "RvPT. Review of Physics in Technology", "RvRP. Revue Roumaine de Physique", "RvRRL Reviews of the Radio Research Laboratory", "RvRST Revue Roumaine des Sciences Techniques Serie de Mecanique Appliquee", "RvT.. Revue Technique Thomson CSF", "RvTS. Rivista Tecnica Selenia", "RWPWZ Rostock Wilhelm Pieck Universitaet Wissenschaftliche Zeitschrift Mathematisch Naturwissenschaftliche Reihe", "RWTHA Rheinisch Westfaelische Technische Hochschule Aerodynamisches Institut Abhandlungen", "rxte.pRXTE Proposal", "RZh.. Referationyj Zhurnal", "SAAOC South African Astronomical Observatory Circular", "SAAOR South African Astronomical Observatory Republic", "Sadha Sadhana", "SAERI Seoul Korea Atomic Energy Research Institute", "SAJPh South African Journal of Physics", "SAJSc South African Journal of Science", "SAMPJ SAMPE Journal", "SAMPQ SAMPE Quarterly", "SAnAp Supplements aux Annales d'Astrophysique", "SanS. Separata Universidad de Chile Departamento de Astronomia Santiago", "SANUG Srpska Akademiia Nauka i Umetnosti Glas Odeljenje Tekhnichkikh Nauka", "SAOSR SAO Special Report", "SASn. Studia Astronomica Sinica", "SASS. Society for Astronomical Sciences Annual Symposium", "SatCo Satellite Communications", "SBARM SBARMO Bulletin", "SbMat Sbornik: Mathematics", "SBuil Sustainable Buildings", "SCA.. Studii si Cercetari de Astronomie Bucuresti", "SCB.. Seminars in Cancer Biology", "ScChA Science in China A: Mathematics", "ScChB Science in China B: Chemistry", "ScChD Science China Earth Sciences", "ScChE Science in China E: Technological Sciences", "ScChG Science in China: Physics, Mechanics and Astronomy", "ScChM Science in China e-Engineering & Materials Science", "ScEdR Science Education Research", "Sc&Ed Science & Education", "SchpJ Scholarpedia", "SciAm Scientific American", "SciA. Science Advances", "SciB. Scientia (Bologna)", "SciDi Science Dimension", "SciDr Scientific Drilling", "SciEd Science Education", "SciIn Science and Innovation", "SciMo The Scientific Monthly", "Scim. Scientometrics", "SciNa The Science of Nature", "SciN. Science News", "Sci.. Science", "SciSn Scientia Sinica", "Scis. Sciences", "ScMM. Scripta Metallurgica et Materialia", "SCMP. Studies in Condensed Matter Physics", "ScM.. Scripta Metallurgica", "SCoA. Smithsonian Contributions to Astrophysics", "SCoK. Smithsonian Contributions to Knowledge", "SCPMA Science China Physics, Mechanics, and Astronomy", "ScPPL SciPost Physics Lecture Notes", "ScPPP SciPost Physics Proceedings", "ScPP. SciPost Physics", "ScPr. Science Progress", "ScReE Scholarly Research Exchange", "SCSA. Science and Culture Series: Astrophysics", "SCSMP Science China Series Mathematics Physics Astronomy Technological Sciences", "SCSP. Science and Culture Series: Physics", "ScTea The Science Teacher", "ScTEn Science of the Total Environment", "Sc&Te Sciences et Techniques", "SeAc. Sensors and Actuators", "SECM. Science and Engineering of Composite Materials", "SedG. Sedimentary Geology", "Sedim Sedimentology", "SEEJ. Society of Environmental Engineers Journal", "SEGeo Seismology and Exploration Geophysics", "SeiKa Seikei-Kakou", "Semic Semiconductors", "SenAR Sendai Astronomiaj Raportoj", "SenIm Sensing and Imaging", "SerAJ Serbian Astronomical Journal", "SeScT Semiconductor Science Technology", "SFCh. Science Foundation in China", "SFPTB Societe Francaise de Photogrammetrie et de Teledetection Bulletin", "SFSN. Scripta Faculty Science Nat. Ujep Brunensis Physica", "SGC.. Stratigraphy and Geological Correlation", "SGeo. Surveys in Geophysics", "SGORS Studies in Geophysical Optics and Remote Sensing", "S&GS. Science and Global Security", "SHAN. Society for History of Astronomy News", "SHEP. Surveys in High Energy Physics", "SHH.. Stochastic Hydrology and Hydraulics", "ShMeS Shape Memory and Superelasticity", "SHMPS Sources in the History of Mathematics and Physical Sciences", "SHM.. Self-Healing Materials", "SHPMP Studies in the History and Philosophy of Modern Physics", "ShWav Shock Waves", "SIAMR SIAM Review", "SIAM. Society of Industrial and Applied Mathematics", "SIBAN Sofia Izdatel Bolgarskoi Akademii Nauk", "SIDPQ SID Proceedings Quarter", "SiFoE Siemens Forschungs und Entwicklungsberichte", "SiFTZ Sibirskii Fiziko Tekhnicheskii Zhurnal", "SIGMA SIGMA", "SigPr Signal Processing", "Sig.. Signal", "SiMol Single Molecules", "SImpa Software Impacts", "Simul Simulation", "SISN. Science Information Systems Newsletter", "SiSSR Akademiia Nauk SSSR Sibirskoe Otdelenie Izvestiia Seriia Tekhnicheskie Nauki", "Situ. Situ", "SJADS SIAM Journal on Applied Dynamical Systems", "SJAM. SIAM Journal of Applied Mathematics", "SJCE. Slovak Journal of Civil Engineering", "SJCO. SIAM Journal of Control Optimization", "SJMA. SIAM Journal of Mathematical Analysis", "SJNA. SIAM Journal on Numerical Analysis", "SJRUE Scientific Journal of Riga Technical University. Environmental and Climate Technologies", "SJRUP Scientific Journal of Riga Technical University. Power and Electrical Engineering", "SkInq Skeptical Inquirer", "SkyN. Sky News", "SlaOb Slaboproudy Obzor", "SLSci Space Life Sciences", "SMArc Solid Mechanics Archives", "SMaS. Smart Material Structures", "SMat. Soft Matter", "SmCES Smithsonian Contributions to the Earth Sciences", "Smith Smithsonian", "SMSPS Stephan Mueller Special Publication Series", "SMS.. Scientific Modeling and Simulation SMNS", "SMTS. Soprotivlenie Materialov i Teoriia Sooruzhenii", "SNG.. Schweizerische Naturforschende Gesellschaft", "SoByu Soobshcheniya Byurakanskoj Observatorii Akademiya Nauk Armyanskoj SSR Erevan", "SoCe. Solar Cells", "SoEnM Solar Energy Materials", "SoEn. Solar Energy", "SoftX SoftwareX", "SoGru Akademiia Nauk Gruzii Soobshcheniia", "SOILD SOIL Discussions", "SoilS Soil Science", "SoKie Sonderdrucke der Sternwarte Kiel", "SOLA. SOLA - Scientific Online Letters on the Atmosphere", "SolED Solid Earth Discussions", "SolE. Solid Earth", "SoMue Sonderdrucke Universitaet Muenster Astronomisches Institut", "Sonne Sonne", "SoPh. Solar Physics", "SoSAO Soobshcheniya Spetsial'noj Astrofizicheskoj Observatorii", "SoShe Soobshchenie Shemakhinskoj Astrofizicheskoj Observatorii", "SoSht Soobshcheniya Gosudarstvennogo Astronomicheskogo Instituta", "SoSyR Solar System Research", "SouSt Southern Stars", "SovAe Soviet Aeronomii", "Space Space", "Spark Spark, the AAS Education Newsletter", "SPBra Scientific Proceedings Faculty of Mechanical Engineering STU in Bratislava", "SpCoB Space Communication Broadcasting", "SpCom Space Communications", "SpecL Spectroscopy Letters", "SpEd. Space Education", "SpFl. Spaceflight", "SPhAc Soviet Physics Acoustics", "SPhD. Soviet Physics Doklady", "Spika Spika", "Spin. Spin", "SPJCE Selected Scientific Papers - Journal of Civil Engineering", "SpMar Space Markets", "SpMME Space Medicine Medical Engineering", "SpPol Space Policy", "SpPow Space Power", "SpRBu Space Research Bulgaria", "SpReT Space Research Today", "SPRMD Space Power - Resources, Manufacturing and Development", "SpScT Space Science and Technology", "SPTP. Soviet Physics Technical Physics", "SpT.. Space Technology", "SPTS. Sensor Physics and Technology Series", "sptz.pSpitzer Proposal", "Spvw. Spaceview", "SpWd. Space World", "SpWdU Space World U", "SpWdW Space World W", "SpWdY Space World Y", "SpWea Space Weather", "SrLJP Sri Lankan Journal of Physics", "SRL.. Surface Review and Letters", "SRMO. Specula Regia Monachiensi Observationes astronomicae", "SRPI. Safety and Reliability of Power Industry", "SRToh Sci. Rep. Tohoku Univ. Eighth Ser.", "SRXPh SRX Physics", "SSASJ Soil Science Society of America Journal", "SScEd Studies in Science Education", "SSCom Solid State Communications", "SSCP. Springer Verlag Springer Series on Chemical Physics", "SScT. Speculations in Science and Technology", "SSEle Solid State Electronics", "SSEp. Springer Verlag Springer Series on Electrophysics", "SSGSR Springer Verlag Springer Series on Group Geophysics Space Research", "SSHMP Sources and Studies in the History of Mathematics and Physical Sciences", "SSI.. Space Science Instrumentation", "SSOS. Springer Verlag Springer Series on Optical Sciences", "SSPAR Solid State Physics Advances in Research and Applications", "SSPAS Solid State Physics Advances in Research and Applications Supplement", "SSPMA Scientia Sinica Physica, Mechanica &", "SSPRv Space and Solar Power Review", "SSRvA Soviet Scientific Reviews A Physics Reviews", "SSRvC Soviet Scientific Reviews C Mathematical Physics Reviews", "SSRvD Soviet Scientific Reviews D Physicochemical Biology Reviews", "SSRv. Space Science Reviews", "SSSAJ Soil Science Society of America Journal", "SSSci Solid State Sciences", "SSSMP Scientia Sinica Series Mathematical Physical Technical Sciences", "SSSSc Springer Series in Surface Sciences", "SSS.. Social Studies of Science", "SSSSS Springer Verlag Springer Series on Solid State Sciences", "SSSyn Springer Verlag Springer Series on Synergetics", "SSTec Solid State Technology", "SSTor Studia Societatis Scientiarum Torunensis Sectio F Astronomia", "SSWP. Springer Verlag Springer Series on Wave Phenomena", "STAdM Science and Technology of Advanced Materials", "StaGP Starlink General Paper", "StAM. Studies in Applied Mathematics", "StarB Starlink Bulletin", "StarC Starlink Cookbook", "StarD StarDate Magazine", "StarG Starlink Guide", "StaSc Statistical Science", "StaSN Starlink System Note", "StAst Strolling Astronomer", "StaUN Starlink User Note", "StCeF Studii si Cercetari de Fizica", "StCeM Studii si Cercetari Matematice", "StCMA Studii si Cercetary de Mecanica Aplicata", "STECF Space Telescope European Coordinating Facility Newsletter", "Sterb Der Sternenbote Monatsschrift fuer Oesterreichs Amateur-astronomen", "STERJ Solar Terrestrial and Environmental Research Japan", "Stern Die Sterne", "Sterz Sternzeit Mitteilungen der Astrnomischen Vereinigungen Aachen", "StGeo Studies in Geophysics", "StGG. Studia Geophysica et Geodaetica", "StGM. Studia Geotechnica et Mechanica", "StHCG Studies in High Energy Physics Cosmology and Gravitation", "StHEP Studies in High Energy Physics", "StHMP Studies in the History of Mathematics and the Physical Sciences", "STIA. NASA STI/Recon Technical Report A", "STICA Space Technology Industrial and Commercial Applications", "Stiin Stiinta", "STIN. NASA STI/Recon Technical Report N", "stis.rSpace Telescope STIS Instrument Science Report", "StMat Strength of Materials", "StMet Statistical Methodology", "STMP. Springer Tracts in Modern Physics", "StNws ASTM Standardization News", "StoAn Stockholms Observatoriums Annaler", "StoOR Stockholms Observatoriums Reports", "STP.. Solar-Terrestrial Physics", "Strai Strain", "StReL Staub Reinhaltung Luft", "Stroj Strojarstvo", "StrOp Structural Optimization", "S&T.. Sky and Telescope", "StSky Star Sky", "STSSP Selected Topics in Solid State Physics", "Sttur Studies in turbulence", "StuMa Studia Mathematica", "STVF. Samoletostroenie Tekhnika Vozdushnogo Flota", "suba.pSubaru Proposal", "SuEa. Sustainable Earth", "SuMi. Superlattices and Microstructures", "SunGe Sun and Geosphere", "Sunwo Sunworld", "SurIA Surface and Interface Analysis", "SurSc Surface Science", "SurSL Surface Science Letters", "SurSR Surface Science Reports", "SurSS Surface Science Spectra", "SuScT Superconductor Science Technology", "Sust. Sustainability", "SuTMP Surface Topography: Metrology and Properties", "SUVSR Scandinavian Union of Amateur Astronomers Variable Star Section", "SvAer Soviet Aeronautics", "SvAL. Soviet Astronomy Letters", "SvApM Soviet Applied Mechanics", "SvA.. Soviet Astronomy", "SVD.. Shock Vibration Digest", "SvGeo Soviet Geologia", "SVICB Shock Vibration Information Center Shock Vibration Bulletin", "SVICD Shock Vibration Information Center Shock Vibration Digest", "SVICI Shock Vibration Information Center Shock Vibration Inform Digest", "SVICP Shock Vibration Information Center Shock Vibration Computer Programs", "SvJNP Soviet Journal of Nuclear Physics", "SvJOT Soviet Journal of Optical Technology", "SvJPP Soviet Journal of Plasma Physics", "SvJQE Soviet Journal of Quantum Electronics", "SVPCS Springer Verlag Springer Series on Physics Chemistry Space", "SvPhA Soviet Physics Astronomy", "SvPhJ Soviet Physics Journal", "SvPhU Soviet Physics Uspekhi", "SvPro Svarochnoe Proizvodstvo", "SvRP. Soviet Radiophysics", "SvUNT Sverdlovsk Uralskii Nauchnyi Tsentr AN SSSR", "S&W.. Sterne und Weltraum", "SydOP Sydney Observatory Papers", "SyTec Systems Technology", "SZF.. Solnechno-Zemnaya Fizika", "SZPA. SIRIUS. Zeitschrift fuer Populaere Astronomie", "TAASS Topics in Astrophysics, Astrononmy, and Space Science", "TAEMm Tokyo Metropolitan College Aeronautical Engineering Memoirs", "TamCo Astronomical Contributions from the University of South Florida Tampa", "TAM.. Theoretical and Applied Mechanics", "TANEs Tartu Akademiia Nauk Estonskoi SSR", "TApPh Topics in Applied Physics", "TAPS. Transactions of the American Philosophical Society", "TarOT Tartu Astrofuusika Observatoorium Teated", "TBBM. Techniques of Biochemical and Biophysical Morphology", "TCaPS Transactions of the Cambridge Philosophical Society", "TCD.. The Cryosphere Discussions", "TCPh. Topics in Current Physics", "TCry. The Cryosphere", "TDAPR Telecommunications and Data Acquisition Progress Report", "Tech. Technology", "TecN. Technical News", "TecRv Technology Review", "Tecto Tectonics", "Tectp Tectonophysics", "TeEng Technological Engineering,", "TekEl Tekhnicheskaia Elektrodinamika", "Telet Telettra S", "TelIn Telematics Informatics", "TellA Tellus Series A", "TellB Tellus Series B Chemical and Physical Meteorology B", "Tell. Tellus", "TeLoA Technika Lotnicza i Astronautyczna", "TeMAE Terrestrial Magnetism and Atmospheric Electricity (Journal of Geophysical Research)", "TeMag Terrestrial Magnetism (Journal of Geophysical Research)", "TeNov Terra Nova", "TeoEl Teoreticheskaia Elektrotekhnika", "TeoPM Teoreticheskaia i Prikladnaia Mekhanika", "TeoVP Teoriia Veroiatnostei i ee Primeneniia", "TePhL Technical Physics Letters", "Teplo Teploenergetika", "Tepsg Teplofizicheskie svoistva gazov", "TepT. Teplofizika i Teplotekhnika", "TepVT Teplofizika Vysokikh Temperatur", "TerCo Osservatorio Astronomico di Collurania Teramo Contributi", "TerMm Osservatorio Astronomico di Collurania Teramo Memorie ed Osservazioni", "TerNC Osservatorio Astronomico di Collurania Teramo Note e Comunicazioni", "Tesla TESLA Electronics", "TETB. Thyssen Edelstahl Technische Berichte", "TFFAP Teoriia Funktsii Funktsionalnyi Analiz i ikh Prilozheniia", "TFizG Teploobmen i Fizicheskaia Gazodinamika", "Th&Ae Thermophysics and Aeromechanics", "ThAFM Theoretical and Applied Fracture Mechanics", "ThApC Theoretical and Applied Climatology", "ThAst Theoretical Astrophysics", "ThCFD Theoretical and Computational Fluid Dynamics", "ThEng Thermal Engineering", "TIOA. Tomsk Institut Optiki Atmosfery CO AN SSSR", "TISCI Transactions of the Institute of Systems, Control and Information Engineers", "TITas Tsirkulyar Astronomicheskogo Instituta Akademiya Nauk Uzbekskoj SSR", "TIUCS Transactions of the International Union for Cooperation in Solar Research", "TIzSS Tbilisi Izdatel Sabchota Sakartvelo", "TJAu. Telecommunication Journal of Australia", "TJJPT Tuijin Jishu Journal of Propulsion Technology", "TJPh. Turkish Journal of Physics", "TJSAI Transactions of the Japanese Society for Artificial Intelligence", "TJSIE Transactions of The Japanese Society of Irrigation, Drainage and Rural Engineering", "TLHSQ Transactions of the Literary and Historical Society of Quebec", "TMatR Translational Materials Research", "TMKF. Technische Mitteilungen Krupp Forschungsberichte", "TMOPR Telecommunications and Mission Operations Progress Report", "TMPGO Tagung ueber Mathematische Probleme Geodaesie Oberwolfach West Germany Bulleting Geodesique", "TMP.. Theoretical and Mathematical Physics", "TNEK. Teplovye Napriazheniia Elementakh Konstruktsii", "TNKS. Tochnost i Nadezhnost Kiberneticheskikh Sistem", "TNSAN Transient Name Server AstroNote", "TNSCR Transient Name Server Classification Report", "TNSFR Transient Name Server Fast Radio Bursts", "TNSTR Transient Name Server Discovery Report", "ToASC Torino Accademia delle Scienze Classe di Scienze Fisiche Matematiche e Naturali Atti", "ToIzL Technisch oekonomische Informationen zivilen Luftfahrt", "TokAB Tokyo Astronomical Bulletin", "TokRe Tokyo Astronomical Observatory Reprints", "TOMar Travaux de l'Observatoire de Marseille", "TosRv Toshiba Review", "TouCE Toulouse Cepadues Editions", "TOYal Transactions of the Astronomical Observatory of Yale University", "TPAG. Theory and Practice of Applied Geophysics", "TPhCh Topics in Physical Chemistry", "TPhy. Techniques of Physics", "TRACE Transactions of the Japan Society of Refrigerating and Air Conditioning Engineers", "TrAeR Transactions on Aerospace Research", "TraGe Travaux Geophysiques", "TrAGU Transactions, American Geophysical Union", "TrAlm Trudy Astrofizicheskogo Instituta Alma-Ata", "TrDus Trudy Instituta Astrofiziki Dushanbe", "TreP. Osservatorio Privato Specola Ariel Treviso Italia Pubblicazione", "TRET. Telecommunications and Radio Engineering Telecommunications", "TrGeo Treatise on Geochemistry", "TrGRC Geothermal Resources Council Transactions", "TrGru Tiflis Izdatel Metsniereba Akademiia Nauk Gruzinskoi SSR Matematicheskii Institut Trudy", "TriP. Osservatorio Astronomico di Trieste Pubblicazioni", "TrITA Institut Teoreticheskoi Astronomii Trudy", "TriTr STLE Tribology Transactions", "TrKaz Trudy Kazanskaia Gorodkoj Astronomicheskoj Observatorii", "TrKra Seminar Kraevym Zadacham Trudy", "TrLen Trudy Astronomicheskoj Observatorii Leningrad", "TrLit Trudy Akademiia Nauk Litovskoi", "TrMMO Trudy Moskovskoe Matematicheskoe Obshchestvo", "TrOS. Transactions of the Optical Society", "TrPet Trudy Seminar imeni G Petrovskogo", "TrPul Trudy Glavnoj Astronomicheskoj Observatorii v Pulkovo", "TrRig Trudy Astrofiz. Lab. Riga", "TrSht Trudy Gosudarstvennogo Astronomicheskogo Instituta", "TrSpT Transactions of Space Technology Japan", "TrSSR Trudy Akademiia Nauk SSSR Fizicheskii Institut", "TrSta Trudy Instituta Astrofiziki Stalinabad", "TrTas Trudy Tashkentskoj Astronomicheskoj Observatorii", "TrTIM Tiflis Izdatel Metsniereba Akademiia Nauk Gruzinskoi SSR Institut Geofiziki Trudy", "TrTsA TsAGI Trudy", "TrTsI TsIAM Trudy", "TSDMO Tellus Series Dynamic Meteorology and Oceanography", "TSE.. Thermal Science and Engineering", "TSF.. Thin Solid Films", "TsHUJ Tsing Hua University Journal", "TSICE Transactions of the Society of Instrument and Control Engineers", "TsLvo Tsirkulyar Astronomicheskoj Observatorii Lvov", "TsPul Tsirkulyary Glavnoj Astronomicheskoj Observatorii i Pulkove", "TSRSG Tohoku University Science Reports Series Geophysics", "TsShe Tsirkulyar Shemakhinskoj Astrofizicheskoj Observatorii", "TSSLW Travaux de la Societe des Sciences et des Letters de Wroclaw", "TsSta Tsirkulyar Stalinabadskoj Astronomicheskoj Observatorii", "TsTas Tsirkulyar Tashkentskoj Astronomicheskoj Observatorii", "TsVse Tsirkulyar Vses. astron.-geod. o-va", "TTP.. Trends in Theoretical Physics", "TTSP. Transport Theory and Statistical Physics", "TUAID Tuebingen Universitaet Astronomisches Institut Diplomarbeit", "TUASB Tokyo University Institute of Space and Aeronautical Science Bulletin", "TUASR Tokyo University Institute of Space and Aeronautical Science Report", "TUFEJ Tokyo University Faculty of Engineering Journal Series", "TUFER Tokyo Denki University Faculty of Engineering Research Reports", "TUISR Tokyo University Institute Industrial Science Report", "TUnGG Technische Univ Geodesy Global Geodyn", "TurTe Turbulentnye techeniia", "TvOC. Transvaal Observatory Circular", "UCAFR Universitas Comeniana Acta Facultatis Rerum Naturalium Physica", "UCLAP Astronomical Papers University of California Los Angeles", "UECBu University Electro Communications Bulletin", "UGC.. Nova Acta Regiae Soc. Sci. Upsaliensis Ser. V", "UGSJR U S Geological Survey Journal Research", "UISTS San Diego CA Univelt Inc Science Technology Series", "UkFiZ Ukrainskii Fizicheskii Zhurnal", "UkJPO Ukrainian Journal of Physical Optics", "UkMaZ Ukrainskii Matematicheskii Zhurnal", "UltIm Ultrasonic Imaging", "Ultmi Ultramicroscopy", "Ultra Ultrasonics", "UMAM. Uspekhi Mekhaniki Advances Mechanics", "UMIB. Unione Matematica Italiana Bollettino", "Umsch Umschau", "UMt1K Universite de Montpellier", "UNAer Universita di Napoli Aeritalia S", "UnECR University Electro Communications Reports", "UniCl Universe Classroom", "Unive Universitas", "Univ. Universe", "UNPSA United Nations Programme on Space Applications", "UppAn Uppsala Astronomical Observatory Annals", "UppOR Uppsala Astronomical Observatory Reports", "Urani Urania (Krakow)", "UrBar Urania (Bracelona)", "UsFiN Uspekhi Fizicheskikh Nauk", "USGSP U.S. Geological Survey Professional Paper", "USGS. U.S. Geological Survey Report", "USNOA Astronomical Observations made at the U.S. Naval Observatory", "USNOC U.S. Naval Observatory Circulars", "USNOM Astronomical and Meteorological Observations made at the U.S. Naval Observatory", "USNOO Observations made at the U.S. Naval Observatory", "USOC. Unified System Orbit Computation USOC", "UtMat Utilitas Mathematica", "UtrOv Utrechtse Sterrekundige Overdrukken", "Vacuu Vacuum", "VAC.. Voies Aviation Civile Fall Winter", "VADMT VKI New Approaches in the Description and Modeling of Turbulence", "VADVS VKI Advanced Design of Ventilation Systems", "VAFC. VKI Axial Flow Compressors", "VAG.. Vierteljahresschrift der Astronomischen Gesellschaft", "VANTS Voprosy Atomnoi Nauki i Tekhniki Seriia Fizika Plazmy i Problemy Upravliaemykh Termoiadernykh Reaktsii", "Vasio Vasiona", "VatAR Specola Astronomica Vaticana Annual Reports", "VatCo Specola Astronomica Vaticana Comunicazione", "VatMA Specola Astronomica Vaticana Miscellanea Astronomica", "VatOP Vatican Observatory Publications", "VatPS Specola Astronomica Vaticana Pubblicazioni Serie Seconda", "VatRA Specola Astronomica Vaticana Richerche Astronomiche", "VatRS Specola Astronomica Vaticana Ricerche Spettroscopiche", "VA... Vistas in Astronomy", "VBLT. VKI Boundary Layers in Turbomachines", "VCCPP VKI Combined Cycles for Power Plants", "VCFDI VKI Computational Fluid Dynamics for Industrial Flows", "VCGFV VKI Computer Graphics Flow Visualization and Computational Fluid Dynamics", "VDIF. VDI Forschungsheft", "VDIZF VDI Zeitschriften Fortschritt Berichte Reihe Stroemungstechnik", "VDIZ. VDI Z", "VeABD Veroeffentlichungen des Astronomischen Rechen-Instituts zu Berlin-Dahlem", "VeARI Veroeffentlichungen des Astronomischen Rechen-Instituts Heidelberg", "VeBab Veroeffentlichungen der Sternwarte Babelsberg", "VeBam Veroeffentlichungen der Remeis-Sternwarte zu Bamberg", "VeBB. Veroeffentlichungen der Universitaetssternwarte zu Berlin-Babelsberg", "VeBKI Veroeffentlichungen des Bayerische Kommission Int. Erdmessung", "VeBoc Veroeffentlichungen des Astronomischen Instituts der Ruhr-Universitaet Bochum", "VeBon Veroeffentlichungen des Astronomisches Institute der Universitaet Bonn", "VeFra Veroeffentlichungen des Astronomisches Institute der Universitaet Frankfurt", "VeGG. Veroeffentlichungen der Geod. Geophys", "VeGoe Veroeffentlichungen der Universitaets-Sternwarte zu Goettingen", "VeHei Veroeffentlichungen der Badischen Sternwarte zu Heidelberg", "VeJen Veroeffentlichungen der Universitaets-Sternwarte zu Jena", "VeKAB Veroeffentlichungen des Koeniglichen Astronomischen Rechen-Instituts zu Berlin", "VeKar Veroeffentlichungen der Grossherzoglichen Sternwarte zu Karlsruhe", "VeKaz Akademiia Nauk Kazakhskoi SSR Vestnik", "VeKha Vestnik Khar'kov Universitet", "VeKie Vestnik Kievskogo Universiteta Seriya Astronomii", "VeKoe Veroeffentlichungen der Universitaets-Sternwarte Koenigsberg Pr.", "VeLdn Verslag van den staat der Sterrewacht te Leiden", "VeLei Veroeffentlichungen der Universitaetssternwarte zu Leipzig", "VeLen Leningradskii Universitet Vestnik Matematika Mekhanika Astronomiia", "VeLGU Vestnik LGU", "VeMos Vestnik Moskovskogo Universiteta Seriya 3 Fizika Astronomiya", "VeMun Veroeffentlichungen der Sternwarte Munchen", "VeNav Akademiia Navuk BSSR Vestsi Seryia Fizika Tekhnichnykh Navuk", "Verme Vermessungstechnik", "Vertf Vertiflite", "Vert. Vertica", "Vesmi Vesmir", "VeSon Veroeffentlichungen der Sternwarte Sonneberg", "VeSSR Akademiia Nauk SSSR Vestnik", "VETT. Voprosy Elektroniki Tverdogo Tela", "VeWFS Veroeffentlichung der Wilhelm Foerster Sterwarte", "VeZPE Veroffentlichungen des Zentralinstituts Physik der Erde", "VGTET VKI Gas Turbine Engine Transient Behaviour", "VIAEA Vienna International Atomic Energy Agency", "VICFD VKI An Introduction to Computational Fluid Dynamics", "ViGeo Vissha Geodeziia", "ViHei Veroeffentlichungen der Badischen Landes-Sternwarte zu Heidelberg", "VIHE. VKI Industrial Heat Exchangers", "VilCo Villanova University Observatory Contributions", "VilOB Vilnius Astronomijos Observatorijos Biuletenis", "VIMT. VKI An Introduction to Modeling Turbulence", "VISBD Vibration Inst Shock Vibration Digest", "VisKi Visnik Kiiv. Univ., Fiz.-Mat. Nauki, Astron", "ViUkr Akademiia Nauk Ukrains koi RSR Visnik", "VJS.. Virginia Journal of Science", "VKAWA Verhandelingen der Koninklijke Akademie van Wetenschappen te Amsterdam", "VKha. Vestnik Khar'kovskogo Universiteta", "VKie. Veroeffentlichungen der Universitaets-Sternwarte Kiel", "VKILV VKI Laser Velocimetry", "VKIMT VKI Measurement and Techniques", "VKIRT VKI Radial Turbines", "VKISP VKI Spacecraft Propulsion", "VMATP VKI Modeling and Applications of Transport Phenomena in Porous Media", "VMed. Vierteljahrschrift fü", "VMHT. VKI Methodology Hypersonic Testing", "VMKAN Verslagen en Mededeelingen der Kon. Academie van Wetenschappen, Afd. Natuurkunde", "VMOIP Voprosy Metrologicheskogo Obespecheniia Izmereniia Parametrov Tekhnologicheskikh Lazerov", "VMSAI Video Memorie della Societa Astronomica Italiana", "VMTA. VKI Measurement Techniques in Aerodynamics", "VNGG. VKI Numerical Grid Generation", "VNG.. Vierteljahrsschrift der Naturforschenden Gesellschaft in Zü", "VNMFT VKI Numerical Methods for Flows in Turbomachinery", "VnMP. Vychislitelnye Metody i Programmirovanie", "VnPM. Vychislitelnaia i Prikladnaia Matematika", "VopDP Voprosy Dinamiki i Prochnosti", "VopGA Voprosy Gidrodinamiki Atmosfery", "VopK. Voprosy Kibernetiki", "VopTP Voprosy Teorii Plazmy", "VossZ Vossische Zeitung", "VoTAS Voprosy Teorii Atomnykh Stolknovenii", "VPIDV VKI Particle Image Displacement Velocimetry", "VSD.. Vehicle System Dynamics, International Journal of Vehicle Mechanics and Mobility", "VSSCi Royal Astronomical Society of New Zealand Variable Star Section Circulars", "VTJ.. Vitro Technical Journal", "VTSAU Voprosy Teorii Sistem Avtomaticheskogo Upravleniia", "VTSF. VKI Turbulent Shear Flows", "VVRD. VKI Vibration Rotor Dynamics", "WaMot Wave Motion", "WASP. Water Air and Soil Pollution", "WatWa Water Waves", "WavEl Wave Electronics", "WBWA. Weltraumfahrt. Beitraege zur Weltraumforschung und Astronautik", "WCD.. Weather and Climate Dynamics", "WCRp. World Climate Report", "WCS.. Weather, Climate and Society", "WearB Wear B", "Wear. Wear", "WeiEn Weight Engineering", "WeldJ Welding Journal", "Welt. Die Weltall", "Werk. Werkgroepnieuws", "wfc..rSpace Telescope WFC Instrument Science Report", "WFINw IAU Working Group on Wide-Field Imaging, Newsletter", "wfir.pNASA WFIRST Proposal", "wfpc.rSpace Telescope WFPC2 Instrument Science Report", "WiEng Wind Engineering", "WiEn. Wind Energy", "WinAR Annual Report of the Windsor Observatory, New South Wales", "WisBB Monatsber. Deutsch. Akad Wissenschaftliche Berlin", "WisBT Wissenschaftliche Berichte AEG Telefunken", "WisZe Wissenschaftliche Zeitschrift", "WJCMP World Journal of Condensed Matter Physics", "WJM.. World Journal of Mechanics", "WJNSE World Journal of Nano Science and Engineering", "WJNST World Journal of Nuclear Science and Technology", "wps..pNASA WPS Proposal", "WRCM. Waves in Random and Complex Media", "WRM.. Waves in Random Media", "WRR.. Water Resources Research", "WSAAA Workshop Series of the Asociacion Argentina de Astronomia", "W&S.. Waerme und Stoffuebertragung", "Wszec Wszechswiat", "WtFor Weather and Forecasting", "Wthr. Weather", "Wuli. Wuli", "xmm..pXMM-Newton Press Release", "xmm..pXMM-Newton Proposal", "XRS.. X-ray Spectrometry", "YaFiz Yadernaya Fizika", "YalAR Annual report of the Astronomer of the Winchester Observatory of Yale College", "YalRY Reports for the year presented by the Board of Managers of the Observatory of Yale University to the President and Fellows", "YamC. Yamamoto Circular", "yCatp VizieR Online Data Catalog (other)", "yCat. VizieR Online Data Catalog", "YerOB Bulletin of the Yerkes Observatory of the University of Chicago", "YUFEM Yamaguchi University Faculty of Engineering Memoirs", "YUTR. Yamaguchi University Technology Reports", "ZaDN. Zagadnienia Drgan Nieliniowych", "ZAGeo Zeitschrift fur Angewandte Geographie", "ZaLab Zavodskaia Laboratoriia", "ZaMM. Zeitschrift Angewandte Mathematik und Mechanik", "ZaMP. Zeitschrift Angewandte Mathematik und Physik", "ZAPhy Zeitschrift fur Angewandte Physik", "ZaTsA TsAGI Uchenye Zapiski", "ZA... Zeitschrift fur Astrophysik", "ZEAPC Zeitschrift fü", "ZeIE. Zeitschrift elektrische Informations und Energietechnik", "ZeMet Zeitschrift fur Meteorologie", "ZemVs Zemlia i Vselennaia", "Zenit Zenit", "ZePAN Zeitschrift Physik Atomic Nuclei", "ZEVGA Zeitschrift fur Eisenbahnwesen und Verkehrstechnik Glasers Annalen", "ZFlu. Zeitschrift fur Flugwissenschaften", "ZFlWe Zeitschrift fur Flugwissenschaften und Weltraumforschung", "ZGeo. Zeitschrift fur Geophysik", "ZGlGl Zeitschrift fur Gletscherkunde und Glazialgeologie", "ZGmS. Zeitschrift fur Geomorphologie Supplement", "ZGm.. Zeitschrift fur Geomorphologie", "ZhETF Zhurnal Eksperimentalnoi i Teoreticheskoi Fiziki", "ZhPhy Zhurnal Physik", "ZhPmR ZhETF Pisma Redaktsiiu", "ZhPS. Zhurnal Prikladnoi Spektroskopii", "ZhTFi Zhurnal Tekhnicheskoi Fiziki", "ZiZa. Ziran Zazhi", "ZKMP. Zeitschrift fur Kristallographie Mineralogie und Petrographie", "ZKS.. Zeitschrift fur Kristallographie Supplements", "ZK... Zeitschrift fur Kristallographie", "ZMetl Zeitschrift fur Metallkunde", "ZMP.. Zeitschrift fü", "ZNatA Zeitschrift Naturforschung Teil A", "ZNPFK Zhurnal Nauchnoi i Prikladnoi Fotografii i Kinematografii", "ZPCF. Zeitschrift fur Physikalische Chemie Frankfurt", "ZPCNF Zeitschrift fur Physikalische Chemie Neue Folge", "ZPCW. Zeitschrift fur Physikalische Chemie Wiesbaden", "ZPC.. Zeitschrift fur Physikalische Chemie", "ZPhyA Zeitschrift fur Physik A Hadrons and Nuclei", "ZPhyB Zeitschrift fur Physik B Condensed Matter", "ZPhyC Zeitschrift fur Physik C Particles and Fields", "ZPhyD Zeitschrift fur Physik D Atoms Molecules Clusters", "ZPhy. Zeitschrift fur Physik", "Zprav Zpravodaj VZLU", "ZvDeb Zvaigsnota Debess", "ZVer. Zeitschrift Vermessungswes.", "ZVMMF Zhurnal Vychislitelnoi Matematiki i Matematicheskoi Fiziki", "ZWer. Zeitschrift Werkstofftechnik", "TDM.. 2D Materials", "TDR.. 3D Research", }; static const int njournals = sizeof( journals ) / sizeof( journals[0] ); hs-bibutils-6.10.0.0/bibutils/bibcore.c0000644000000000000000000006204607346545000015750 0ustar0000000000000000/* * bibcore.c * * Copyright (c) Chris Putnam 2005-2020 * * Source code released under the GPL version 2 * */ #include #include #include "bibutils.h" /* internal includes */ #include "reftypes.h" #include "charsets.h" #include "str_conv.h" #include "is_ws.h" /* illegal modes to pass in, but use internally for consistency */ #define BIBL_INTERNALIN (BIBL_LASTIN+1) #define BIBL_INTERNALOUT (BIBL_LASTOUT+1) #define debug_set( p ) ( (p)->verbose > 1 ) #define verbose_set( p ) ( (p)->verbose ) static void report_params( FILE *fp, const char *f, param *p ) { fflush( NULL ); fprintf( fp, "-------------------params start for %s\n", f ); fprintf( fp, "\tprogname='%s'\n\n", p->progname ); fprintf( fp, "\treadformat=%d", p->readformat ); switch ( p->readformat ) { case BIBL_INTERNALIN: fprintf( fp, " (BIBL_INTERNALIN)\n" ); break; case BIBL_MODSIN: fprintf( fp, " (BIBL_MODSIN)\n" ); break; case BIBL_BIBTEXIN: fprintf( fp, " (BIBL_BIBTEXIN)\n" ); break; case BIBL_RISIN: fprintf( fp, " (BIBL_RISIN)\n" ); break; case BIBL_ENDNOTEIN: fprintf( fp, " (BIBL_ENDNOTEIN)\n" ); break; case BIBL_COPACIN: fprintf( fp, " (BIBL_COPACIN)\n" ); break; case BIBL_ISIIN: fprintf( fp, " (BIBL_ISIIN)\n" ); break; case BIBL_MEDLINEIN: fprintf( fp, " (BIBL_MEDLINEIN)\n" ); break; case BIBL_ENDNOTEXMLIN: fprintf( fp, " (BIBL_ENDNOTEXMLIN)\n" ); break; case BIBL_BIBLATEXIN: fprintf( fp, " (BIBL_BIBLATEXIN)\n" ); break; case BIBL_EBIIN: fprintf( fp, " (BIBL_EBIIN)\n" ); break; case BIBL_WORDIN: fprintf( fp, " (BIBL_WORDIN)\n" ); break; case BIBL_NBIBIN: fprintf( fp, " (BIBL_NBIBIN)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tcharsetin=%d\n", p->charsetin ); fprintf( fp, "\tcharsetin_src=%d", p->charsetin_src ); switch ( p->charsetin_src ) { case BIBL_SRC_DEFAULT: fprintf( fp, " (BIBL_SRC_DEFAULT)\n" ); break; case BIBL_SRC_FILE: fprintf( fp, " (BIBL_SRC_FILE)\n" ); break; case BIBL_SRC_USER: fprintf( fp, " (BIBL_SRC_USER)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tutf8in=%d\n", p->utf8in ); fprintf( fp, "\tlatexin=%d\n", p->latexin ); fprintf( fp, "\txmlin=%d\n\n", p->xmlin ); fprintf( fp, "\twriteformat=%d", p->writeformat ); switch ( p->writeformat ) { case BIBL_INTERNALOUT: fprintf( fp, " (BIBL_INTERNALOUT)\n" ); break; case BIBL_ADSABSOUT: fprintf( fp, " (BIBL_ADSABSOUT)\n" ); break; case BIBL_BIBTEXOUT: fprintf( fp, " (BIBL_BIBTEXOUT)\n" ); break; case BIBL_ENDNOTEOUT: fprintf( fp, " (BIBL_ENDNOTEOUT)\n" ); break; case BIBL_ISIOUT: fprintf( fp, " (BIBL_ISIOUT)\n" ); break; case BIBL_MODSOUT: fprintf( fp, " (BIBL_MODSOUT)\n" ); break; case BIBL_NBIBOUT: fprintf( fp, " (BIBL_NBIBOUT)\n" ); break; case BIBL_RISOUT: fprintf( fp, " (BIBL_RISOUT)\n" ); break; case BIBL_WORD2007OUT: fprintf( fp, " (BIBL_WORD2007OUT)\n" ); break; default: fprintf( fp, " (Illegal value)\n"); break; } fprintf( fp, "\tcharsetout=%d\n", p->charsetout ); fprintf( fp, "\tcharsetout_src=%d", p->charsetout_src ); switch ( p->charsetout_src ) { case BIBL_SRC_DEFAULT: fprintf( fp, " (BIBL_SRC_DEFAULT)\n" ); break; case BIBL_SRC_FILE: fprintf( fp, " (BIBL_SRC_FILE)\n" ); break; case BIBL_SRC_USER: fprintf( fp, " (BIBL_SRC_USER)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tutf8out=%d\n", p->utf8out ); fprintf( fp, "\tutf8bom=%d\n", p->utf8bom ); fprintf( fp, "\tlatexout=%d\n", p->latexout ); fprintf( fp, "\txmlout=%d\n", p->xmlout ); fprintf( fp, "-------------------params end for %s\n", f ); fflush( fp ); } /* bibl_duplicateparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_duplicateparams( param *np, param *op ) { int status; slist_init( &(np->asis) ); status = slist_copy( &(np->asis), &(op->asis ) ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; slist_init( &(np->corps) ); status = slist_copy( &(np->corps), &(op->corps ) ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; if ( !op->progname ) np->progname = NULL; else { np->progname = strdup( op->progname ); if ( !np->progname ) return BIBL_ERR_MEMERR; } np->readformat = op->readformat; np->charsetin = op->charsetin; np->charsetin_src = op->charsetin_src; np->utf8in = op->utf8in; np->latexin = op->latexin; np->xmlin = op->xmlin; np->writeformat = op->writeformat; np->charsetout = op->charsetout; np->charsetout_src = op->charsetout_src; np->utf8out = op->utf8out; np->utf8bom = op->utf8bom; np->latexout = op->latexout; np->xmlout = op->xmlout; np->nosplittitle = op->nosplittitle; np->verbose = op->verbose; np->format_opts = op->format_opts; np->addcount = op->addcount; np->output_raw = op->output_raw; np->singlerefperfile = op->singlerefperfile; np->readf = op->readf; np->processf = op->processf; np->cleanf = op->cleanf; np->typef = op->typef; np->convertf = op->convertf; np->headerf = op->headerf; np->footerf = op->footerf; np->assemblef = op->assemblef; np->writef = op->writef; np->all = op->all; np->nall = op->nall; return BIBL_OK; } /* bibl_setreadparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_setreadparams( param *np, param *op ) { int status; status = bibl_duplicateparams( np, op ); if ( status == BIBL_OK ) { np->utf8out = 1; np->charsetout = BIBL_CHARSET_UNICODE; np->charsetout_src = BIBL_SRC_DEFAULT; np->xmlout = BIBL_XMLOUT_FALSE; np->latexout = 0; np->writeformat = BIBL_INTERNALOUT; } return status; } /* bibl_setwriteparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_setwriteparams( param *np, param *op ) { int status; status = bibl_duplicateparams( np, op ); if ( status == BIBL_OK ) { np->xmlin = 0; np->latexin = 0; np->utf8in = 1; np->charsetin = BIBL_CHARSET_UNICODE; np->charsetin_src = BIBL_SRC_DEFAULT; np->readformat = BIBL_INTERNALIN; } return status; } void bibl_freeparams( param *p ) { if ( p ) { slist_free( &(p->asis) ); slist_free( &(p->corps) ); if ( p->progname ) free( p->progname ); } } int bibl_readasis( param *p, char *f ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !f ) return BIBL_ERR_BADINPUT; status = slist_fill( &(p->asis), f, 1 ); if ( status == SLIST_ERR_CANTOPEN ) return BIBL_ERR_CANTOPEN; else if ( status == SLIST_ERR_MEMERR ) return BIBL_ERR_MEMERR; return BIBL_OK; } int bibl_readcorps( param *p, char *f ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !f ) return BIBL_ERR_BADINPUT; status = slist_fill( &(p->corps), f, 1 ); if ( status == SLIST_ERR_CANTOPEN ) return BIBL_ERR_CANTOPEN; else if ( status == 0 ) return BIBL_ERR_MEMERR; return BIBL_OK; } /* bibl_addtoasis() * * Returns BIBL_OK or BIBL_ERR_MEMERR */ int bibl_addtoasis( param *p, char *d ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !d ) return BIBL_ERR_BADINPUT; status = slist_addc( &(p->asis), d ); return ( status==SLIST_OK )? BIBL_OK : BIBL_ERR_MEMERR; } /* bibl_addtocorps() * * Returns BIBL_OK or BIBL_ERR_MEMERR */ int bibl_addtocorps( param *p, char *d ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !d ) return BIBL_ERR_BADINPUT; status = slist_addc( &(p->corps), d ); return ( status==SLIST_OK )? BIBL_OK : BIBL_ERR_MEMERR; } void bibl_reporterr( int err ) { fprintf( stderr, "Bibutils: " ); switch( err ) { case BIBL_OK: fprintf( stderr, "No error." ); break; case BIBL_ERR_BADINPUT: fprintf( stderr, "Bad input." ); break; case BIBL_ERR_MEMERR: fprintf( stderr, "Memory error." ); break; case BIBL_ERR_CANTOPEN: fprintf( stderr, "Can't open." ); break; default: fprintf( stderr, "Cannot identify error code %d.", err ); break; } fprintf( stderr, "\n" ); } static int bibl_illegalinmode( int mode ) { if ( mode < BIBL_FIRSTIN || mode > BIBL_LASTIN ) return 1; else return 0; } static int bibl_illegaloutmode( int mode ) { if ( mode < BIBL_FIRSTOUT || mode > BIBL_LASTOUT ) return 1; else return 0; } static void bibl_verbose_reference( fields *f, char *filename, long refnum ) { int i, n; n = fields_num( f ); fprintf( stderr, "======== %s %ld : converted\n", filename, refnum ); for ( i=0; in; ++i ) bibl_verbose_reference( bin->ref[i], "", i+1 ); fprintf( stderr, "-------------------%s end %s\n", msg1, msg2); fflush( stderr ); } /* extract_tag_value * * Extract the tag and the value for ALWAYS/DEFAULT * entries like: "GENRE:BIBUTILS|Masters thesis" * * tag = "GENRE:BIBUTILS" * value = "Masters thesis" */ static int extract_tag_value( str *tag, str *value, char *p ) { str_empty( tag ); while ( p && *p && *p!='|' ) { str_addchar( tag, *p ); p++; } if ( str_memerr( tag ) ) return BIBL_ERR_MEMERR; if ( p && *p=='|' ) p++; str_empty( value ); while ( p && *p ) { str_addchar( value, *p ); p++; } if ( str_memerr( tag ) ) return BIBL_ERR_MEMERR; return BIBL_OK; } /* process_defaultadd() * * Add tag/value pairs that have "DEFAULT" processing * unless a tag/value pair with the same tag has already * been adding during reference processing. */ static int process_defaultadd( fields *f, int reftype, param *r ) { int i, n, process, level, status, ret = BIBL_OK; str tag, value; char *p; strs_init( &tag, &value, NULL ); for ( i=0; iall[reftype].ntags; ++i ) { process = ((r->all[reftype]).tags[i]).processingtype; if ( process!=DEFAULT ) continue; level = ((r->all[reftype]).tags[i]).level; p = ((r->all[reftype]).tags[i]).newstr; status = extract_tag_value( &tag, &value, p ); if ( status!=BIBL_OK ) { ret = status; goto out; } n = fields_find( f, tag.data, level ); if ( n==FIELDS_NOTFOUND ) { status = fields_add( f, tag.data, value.data, level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &tag, &value, NULL ); return ret; } /* process_alwaysadd() * * Add tag/value pair to reference from the ALWAYS * processing type without exception (the difference from * DEFAULT processing). */ static int process_alwaysadd( fields *f, int reftype, param *r ) { int i, process, level, status, ret = BIBL_OK; str tag, value; char *p; strs_init( &tag, &value, NULL ); for ( i=0; iall[reftype].ntags; ++i ) { process = ((r->all[reftype]).tags[i]).processingtype; if ( process!=ALWAYS ) continue; level = ((r->all[reftype]).tags[i]).level; p = ((r->all[reftype]).tags[i]).newstr; status = extract_tag_value( &tag, &value, p ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = fields_add( f, tag.data, value.data, level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &tag, &value, NULL ); return ret; } static int read_refs( FILE *fp, bibl *bin, char *filename, param *p ) { int refnum = 0, bufpos = 0, ret=BIBL_OK, fcharset;/* = CHARSET_UNKNOWN;*/ str reference, line; char buf[256]=""; fields *ref; str_init( &reference ); str_init( &line ); while ( p->readf( fp, buf, sizeof(buf), &bufpos, &line, &reference, &fcharset ) ) { if ( reference.len==0 ) continue; ref = fields_new(); if ( !ref ) { ret = BIBL_ERR_MEMERR; bibl_free( bin ); goto out; } if ( p->processf( ref, reference.data, filename, refnum+1, p )){ ret = bibl_addref( bin, ref ); if ( ret!=BIBL_OK ) { bibl_free( bin ); fields_delete( ref ); goto out; } refnum += 1; } else { fields_delete( ref ); } str_empty( &reference ); if ( fcharset!=CHARSET_UNKNOWN ) { /* charset from file takes priority over default, but * not user-specified */ if ( p->charsetin_src!=BIBL_SRC_USER ) { p->charsetin_src = BIBL_SRC_FILE; p->charsetin = fcharset; if ( fcharset!=CHARSET_UNICODE ) p->utf8in = 0; } } } if ( p->charsetin==CHARSET_UNICODE ) p->utf8in = 1; out: str_free( &line ); str_free( &reference ); return ret; } /* Don't manipulate latex for URL's and the like */ static int bibl_notexify( char *tag ) { char *protected[] = { "DOI", "URL", "REFNUM", "FILEATTACH", "FILE" }; int i, nprotected = sizeof( protected ) / sizeof( protected[0] ); for ( i=0; icharsetin, 0, p->utf8in, p->xmlin, p->charsetout, 0, p->utf8out, p->xmlout ); } else { ok = str_convert( data, p->charsetin, p->latexin, p->utf8in, p->xmlin, p->charsetout, p->latexout, p->utf8out, p->xmlout ); } if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* bibl_fixcharsets() * * returns BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_fixcharsets( bibl *b, param *p ) { int status; long i; for ( i=0; in; ++i ) { status = bibl_fixcharsetdata( b->ref[i], p ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int bibl_addcount( bibl *b ) { char buf[512]; fields *ref; long i; int n; for ( i=0; in; ++i ) { ref = b->ref[i]; n = fields_find( ref, "REFNUM", LEVEL_MAIN ); if ( n==FIELDS_NOTFOUND ) continue; sprintf( buf, "_%ld", i+1 ); str_strcatc( fields_value( ref, n, FIELDS_STRP_NOUSE ), buf ); if ( str_memerr( fields_value( ref, n, FIELDS_STRP_NOUSE ) ) ) { return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int generate_citekey( fields *f, long nref ) { int n1, n2, status, ret; char *p, buf[100]; str citekey; str_init( &citekey ); n1 = fields_find( f, "AUTHOR", LEVEL_MAIN ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR:ASIS", LEVEL_MAIN ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR:CORP", LEVEL_MAIN ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR", LEVEL_ANY ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR:ASIS", LEVEL_ANY ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR:CORP", LEVEL_ANY ); n2 = fields_find( f, "DATE:YEAR", LEVEL_MAIN ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "DATE:YEAR", LEVEL_ANY ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "PARTDATE:YEAR", LEVEL_MAIN ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "PARTDATE:YEAR", LEVEL_ANY ); if ( n1!=FIELDS_NOTFOUND && n2!=FIELDS_NOTFOUND ) { p = fields_value( f, n1, FIELDS_CHRP_NOUSE ); while ( p && *p && *p!='|' ) { if ( !is_ws( *p ) ) str_addchar( &citekey, *p ); p++; } p = fields_value( f, n2, FIELDS_CHRP_NOUSE ); while ( p && *p ) { if ( !is_ws( *p ) ) str_addchar( &citekey, *p ); p++; } } else { sprintf( buf, "ref%ld", nref ); str_strcpyc( &citekey, buf ); } if ( str_memerr( &citekey ) ) { ret = -1; goto out; } status = fields_add( f, "REFNUM", str_cstr( &citekey ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) { ret = -1; goto out; } ret = fields_find( f, "REFNUM", LEVEL_MAIN ); out: str_free( &citekey ); return ret; } static int get_citekeys( bibl *bin, slist *citekeys ) { int n, status; fields *f; long i; for ( i=0; in; ++i ) { f = bin->ref[i]; n = fields_find( f, "REFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) n = generate_citekey( f, i+1 ); if ( n!=FIELDS_NOTFOUND && fields_has_value( f, n ) ) { status = slist_add( citekeys, fields_value( f, n, FIELDS_STRP_NOUSE ) ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } else { status = slist_addc( citekeys, "" ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int identify_duplicates( bibl *b, slist *citekeys, int *dup ) { int i, j, ndup = 0; for ( i=0; in-1; ++i ) { if ( dup[i]!=-1 ) continue; for ( j=i+1; jn; ++j ) { if ( !strcmp( slist_cstr( citekeys, i ), slist_cstr( citekeys, j ) ) ) { dup[i] = i; dup[j] = i; ndup++; } } } return ndup; } static int build_new_citekey( int nsame, str *old_citekey, str *new_citekey ) { const char abc[]="abcdefghijklmnopqrstuvwxyz"; str_strcpy( new_citekey, old_citekey ); while ( nsame >= 26 ) { str_addchar( new_citekey, 'a' ); nsame -= 26; } if ( nsame>=0 ) str_addchar( new_citekey, abc[nsame] ); return ( str_memerr( new_citekey ) ) ? BIBL_ERR_MEMERR : BIBL_OK; } static int resolve_duplicates( bibl *b, slist *citekeys, int *dup ) { int nsame, n, i, j, status = BIBL_OK; str new_citekey, *ref_citekey; str_init( &new_citekey ); for ( i=0; in; ++i ) { if ( dup[i]==-1 ) continue; nsame = 0; for ( j=i; jn; ++j ) { if ( dup[j]!=i ) continue; dup[j] = -1; status = build_new_citekey( nsame, slist_str( citekeys, j ), &new_citekey ); if ( status!=BIBL_OK ) goto out; n = fields_find( b->ref[j], "REFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; ref_citekey = fields_value( b->ref[j], n, FIELDS_STRP_NOUSE ); str_strcpy( ref_citekey, &new_citekey ); if ( str_memerr( ref_citekey ) ) { status = BIBL_ERR_MEMERR; goto out; } nsame++; } } out: str_free( &new_citekey ); return status; } static int identify_and_resolve_duplicate_citekeys( bibl *b, slist *citekeys ) { int i, *dup, ndup, status=BIBL_OK; dup = ( int * ) malloc( sizeof( int ) * citekeys->n ); if ( !dup ) return BIBL_ERR_MEMERR; for ( i=0; in; ++i ) dup[i] = -1; ndup = identify_duplicates( b, citekeys, dup ); if ( ndup ) status = resolve_duplicates( b, citekeys, dup ); free( dup ); return status; } static int uniqueify_citekeys( bibl *bin ) { slist citekeys; int status; slist_init( &citekeys ); status = get_citekeys( bin, &citekeys ); if ( status!=BIBL_OK ) goto out; status = identify_and_resolve_duplicate_citekeys( bin, &citekeys ); out: slist_free( &citekeys ); return status; } static int clean_refs( bibl *bin, param *p ) { if ( p->cleanf ) return p->cleanf( bin, p ); else return BIBL_OK; } static int convert_refs( bibl *bin, char *fname, bibl *bout, param *p ) { int reftype = 0, status; fields *rin, *rout; long i; for ( i=0; in; ++i ) { rin = bin->ref[i]; rout = fields_new(); if ( !rout ) return BIBL_ERR_MEMERR; if ( p->typef ) reftype = p->typef( rin, fname, i+1, p ); status = p->convertf( rin, rout, reftype, p ); if ( status!=BIBL_OK ) return status; if ( p->all ) { status = process_alwaysadd( rout, reftype, p ); if ( status!=BIBL_OK ) return status; status = process_defaultadd( rout, reftype, p ); if ( status!=BIBL_OK ) return status; } status = bibl_addref( bout, rout ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } int bibl_read( bibl *b, FILE *fp, char *filename, param *p ) { int status = BIBL_OK; param read_params; bibl bin; if ( !b ) return BIBL_ERR_BADINPUT; if ( !fp ) return BIBL_ERR_BADINPUT; if ( !p ) return BIBL_ERR_BADINPUT; if ( bibl_illegalinmode( p->readformat ) ) { if ( debug_set( p ) ) report_params( stderr, "bibl_read", p ); return BIBL_ERR_BADINPUT; } status = bibl_setreadparams( &read_params, p ); if ( status!=BIBL_OK ) { if ( debug_set( p ) ) report_params( stderr, "bibl_read", p ); return status; } if ( debug_set( &read_params ) ) { report_params( stderr, "bibl_read", &read_params ); } bibl_init( &bin ); status = read_refs( fp, &bin, filename, &read_params ); if ( status!=BIBL_OK ) { if ( debug_set( &read_params ) ) report_params( stderr, "bibl_read", &read_params ); bibl_freeparams( &read_params ); return status; } if ( debug_set( &read_params ) ) { bibl_verbose( &bin, "raw_input", "for bibl_read" ); } if ( !read_params.output_raw ) { status = clean_refs( &bin, &read_params ); if ( status!=BIBL_OK ) goto out; if ( debug_set( &read_params ) ) bibl_verbose( &bin, "post_clean_refs", "for bibl_read" ); } if ( ( !read_params.output_raw ) || ( read_params.output_raw & BIBL_RAW_WITHCHARCONVERT ) ) { status = bibl_fixcharsets( &bin, &read_params ); if ( status!=BIBL_OK ) goto out; if ( debug_set( &read_params ) ) bibl_verbose( &bin, "post_fixcharsets", "for bibl_read" ); } if ( !read_params.output_raw ) { status = convert_refs( &bin, filename, b, &read_params ); if ( status!=BIBL_OK ) goto out; if ( debug_set( &read_params ) ) bibl_verbose( b, "post_convert_refs", "for bibl_read" ); } else { status = bibl_copy( b, &bin ); if ( status!=BIBL_OK ) goto out; if ( debug_set( &read_params ) ) bibl_verbose( b, "post_bibl_copy", "for bibl_read" ); } if ( ( !read_params.output_raw ) || ( read_params.output_raw & BIBL_RAW_WITHMAKEREFID ) ) { status = uniqueify_citekeys( b ); if ( status!=BIBL_OK ) goto out; if ( read_params.addcount ) { status = bibl_addcount( b ); if ( status!=BIBL_OK ) goto out; } if ( debug_set( &read_params ) ) bibl_verbose( &bin, "post_uniqueify_citekeys", "for bibl_read" ); } out: bibl_free( &bin ); bibl_freeparams( &read_params ); return status; } static FILE * singlerefname( fields *reffields, long nref, int mode ) { char outfile[2048]; char suffix[5] = "xml"; FILE *fp; long count; int found; if ( mode==BIBL_ADSABSOUT ) strcpy( suffix, "ads" ); else if ( mode==BIBL_BIBTEXOUT ) strcpy( suffix, "bib" ); else if ( mode==BIBL_ENDNOTEOUT ) strcpy( suffix, "end" ); else if ( mode==BIBL_ISIOUT ) strcpy( suffix, "isi" ); else if ( mode==BIBL_MODSOUT ) strcpy( suffix, "xml" ); else if ( mode==BIBL_RISOUT ) strcpy( suffix, "ris" ); else if ( mode==BIBL_WORD2007OUT ) strcpy( suffix, "xml" ); found = fields_find( reffields, "REFNUM", LEVEL_MAIN ); /* find new filename based on reference */ if ( found!=-1 ) { sprintf( outfile,"%s.%s",(char*)fields_value(reffields,found,FIELDS_CHRP_NOUSE), suffix ); } else sprintf( outfile,"%ld.%s",nref, suffix ); count = 0; fp = fopen( outfile, "r" ); while ( fp ) { fclose(fp); count++; if ( count==60000 ) return NULL; if ( found!=-1 ) sprintf( outfile, "%s_%ld.%s", (char*)fields_value( reffields, found, FIELDS_CHRP_NOUSE ), count, suffix ); else sprintf( outfile,"%ld_%ld.%s", nref, count, suffix ); fp = fopen( outfile, "r" ); } return fopen( outfile, "w" ); } static int bibl_writeeachfp( FILE *fp, bibl *b, param *p ) { fields out, *use = &out; int status; long i; fields_init( &out ); for ( i=0; in; ++i ) { fp = singlerefname( b->ref[i], i, p->writeformat ); if ( !fp ) return BIBL_ERR_CANTOPEN; if ( p->headerf ) p->headerf( fp, p ); if ( p->assemblef ) { fields_free( &out ); status = p->assemblef( b->ref[i], &out, p, i ); if ( status!=BIBL_OK ) break; } else { use = b->ref[i]; } status = p->writef( use, fp, p, i ); if ( p->footerf ) p->footerf( fp ); fclose( fp ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int bibl_writefp( FILE *fp, bibl *b, param *p ) { int status = BIBL_OK; fields out, *use = &out; long i; fields_init( &out ); if ( debug_set( p ) && p->assemblef ) { fprintf( stderr, "-------------------assemblef start for bibl_write\n"); } if ( p->headerf ) p->headerf( fp, p ); for ( i=0; in; ++i ) { if ( p->assemblef ) { fields_free( &out ); status = p->assemblef( b->ref[i], &out, p, i ); if ( status!=BIBL_OK ) break; if ( debug_set( p ) ) bibl_verbose_reference( &out, "", i+1 ); } else { use = b->ref[i]; } status = p->writef( use, fp, p, i ); if ( status!=BIBL_OK ) break; } if ( debug_set( p ) && p->assemblef ) { fprintf( stderr, "-------------------assemblef end for bibl_write\n"); } if ( p->footerf ) p->footerf( fp ); return status; } int bibl_write( bibl *b, FILE *fp, param *p ) { int status; param lp; if ( !b ) return BIBL_ERR_BADINPUT; if ( !p ) return BIBL_ERR_BADINPUT; if ( bibl_illegaloutmode( p->writeformat ) ) return BIBL_ERR_BADINPUT; if ( !fp && !p->singlerefperfile ) return BIBL_ERR_BADINPUT; status = bibl_setwriteparams( &lp, p ); if ( status!=BIBL_OK ) return status; if ( debug_set( p ) ) { report_params( stderr, "bibl_write", &lp ); fflush( stdout ); } if ( debug_set( p ) ) bibl_verbose( b, "raw_input", "for bibl_write" ); status = bibl_fixcharsets( b, &lp ); if ( status!=BIBL_OK ) goto out; if ( debug_set( p ) ) bibl_verbose( b, "post-fixcharsets", "for bibl_write" ); if ( p->singlerefperfile ) status = bibl_writeeachfp( fp, b, &lp ); else status = bibl_writefp( fp, b, &lp ); out: bibl_freeparams( &lp ); return status; } hs-bibutils-6.10.0.0/bibutils/bibcore.c0000755000000000000000000006204607346545000015753 0ustar0000000000000000/* * bibcore.c * * Copyright (c) Chris Putnam 2005-2020 * * Source code released under the GPL version 2 * */ #include #include #include "bibutils.h" /* internal includes */ #include "reftypes.h" #include "charsets.h" #include "str_conv.h" #include "is_ws.h" /* illegal modes to pass in, but use internally for consistency */ #define BIBL_INTERNALIN (BIBL_LASTIN+1) #define BIBL_INTERNALOUT (BIBL_LASTOUT+1) #define debug_set( p ) ( (p)->verbose > 1 ) #define verbose_set( p ) ( (p)->verbose ) static void report_params( FILE *fp, const char *f, param *p ) { fflush( NULL ); fprintf( fp, "-------------------params start for %s\n", f ); fprintf( fp, "\tprogname='%s'\n\n", p->progname ); fprintf( fp, "\treadformat=%d", p->readformat ); switch ( p->readformat ) { case BIBL_INTERNALIN: fprintf( fp, " (BIBL_INTERNALIN)\n" ); break; case BIBL_MODSIN: fprintf( fp, " (BIBL_MODSIN)\n" ); break; case BIBL_BIBTEXIN: fprintf( fp, " (BIBL_BIBTEXIN)\n" ); break; case BIBL_RISIN: fprintf( fp, " (BIBL_RISIN)\n" ); break; case BIBL_ENDNOTEIN: fprintf( fp, " (BIBL_ENDNOTEIN)\n" ); break; case BIBL_COPACIN: fprintf( fp, " (BIBL_COPACIN)\n" ); break; case BIBL_ISIIN: fprintf( fp, " (BIBL_ISIIN)\n" ); break; case BIBL_MEDLINEIN: fprintf( fp, " (BIBL_MEDLINEIN)\n" ); break; case BIBL_ENDNOTEXMLIN: fprintf( fp, " (BIBL_ENDNOTEXMLIN)\n" ); break; case BIBL_BIBLATEXIN: fprintf( fp, " (BIBL_BIBLATEXIN)\n" ); break; case BIBL_EBIIN: fprintf( fp, " (BIBL_EBIIN)\n" ); break; case BIBL_WORDIN: fprintf( fp, " (BIBL_WORDIN)\n" ); break; case BIBL_NBIBIN: fprintf( fp, " (BIBL_NBIBIN)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tcharsetin=%d\n", p->charsetin ); fprintf( fp, "\tcharsetin_src=%d", p->charsetin_src ); switch ( p->charsetin_src ) { case BIBL_SRC_DEFAULT: fprintf( fp, " (BIBL_SRC_DEFAULT)\n" ); break; case BIBL_SRC_FILE: fprintf( fp, " (BIBL_SRC_FILE)\n" ); break; case BIBL_SRC_USER: fprintf( fp, " (BIBL_SRC_USER)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tutf8in=%d\n", p->utf8in ); fprintf( fp, "\tlatexin=%d\n", p->latexin ); fprintf( fp, "\txmlin=%d\n\n", p->xmlin ); fprintf( fp, "\twriteformat=%d", p->writeformat ); switch ( p->writeformat ) { case BIBL_INTERNALOUT: fprintf( fp, " (BIBL_INTERNALOUT)\n" ); break; case BIBL_ADSABSOUT: fprintf( fp, " (BIBL_ADSABSOUT)\n" ); break; case BIBL_BIBTEXOUT: fprintf( fp, " (BIBL_BIBTEXOUT)\n" ); break; case BIBL_ENDNOTEOUT: fprintf( fp, " (BIBL_ENDNOTEOUT)\n" ); break; case BIBL_ISIOUT: fprintf( fp, " (BIBL_ISIOUT)\n" ); break; case BIBL_MODSOUT: fprintf( fp, " (BIBL_MODSOUT)\n" ); break; case BIBL_NBIBOUT: fprintf( fp, " (BIBL_NBIBOUT)\n" ); break; case BIBL_RISOUT: fprintf( fp, " (BIBL_RISOUT)\n" ); break; case BIBL_WORD2007OUT: fprintf( fp, " (BIBL_WORD2007OUT)\n" ); break; default: fprintf( fp, " (Illegal value)\n"); break; } fprintf( fp, "\tcharsetout=%d\n", p->charsetout ); fprintf( fp, "\tcharsetout_src=%d", p->charsetout_src ); switch ( p->charsetout_src ) { case BIBL_SRC_DEFAULT: fprintf( fp, " (BIBL_SRC_DEFAULT)\n" ); break; case BIBL_SRC_FILE: fprintf( fp, " (BIBL_SRC_FILE)\n" ); break; case BIBL_SRC_USER: fprintf( fp, " (BIBL_SRC_USER)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tutf8out=%d\n", p->utf8out ); fprintf( fp, "\tutf8bom=%d\n", p->utf8bom ); fprintf( fp, "\tlatexout=%d\n", p->latexout ); fprintf( fp, "\txmlout=%d\n", p->xmlout ); fprintf( fp, "-------------------params end for %s\n", f ); fflush( fp ); } /* bibl_duplicateparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_duplicateparams( param *np, param *op ) { int status; slist_init( &(np->asis) ); status = slist_copy( &(np->asis), &(op->asis ) ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; slist_init( &(np->corps) ); status = slist_copy( &(np->corps), &(op->corps ) ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; if ( !op->progname ) np->progname = NULL; else { np->progname = strdup( op->progname ); if ( !np->progname ) return BIBL_ERR_MEMERR; } np->readformat = op->readformat; np->charsetin = op->charsetin; np->charsetin_src = op->charsetin_src; np->utf8in = op->utf8in; np->latexin = op->latexin; np->xmlin = op->xmlin; np->writeformat = op->writeformat; np->charsetout = op->charsetout; np->charsetout_src = op->charsetout_src; np->utf8out = op->utf8out; np->utf8bom = op->utf8bom; np->latexout = op->latexout; np->xmlout = op->xmlout; np->nosplittitle = op->nosplittitle; np->verbose = op->verbose; np->format_opts = op->format_opts; np->addcount = op->addcount; np->output_raw = op->output_raw; np->singlerefperfile = op->singlerefperfile; np->readf = op->readf; np->processf = op->processf; np->cleanf = op->cleanf; np->typef = op->typef; np->convertf = op->convertf; np->headerf = op->headerf; np->footerf = op->footerf; np->assemblef = op->assemblef; np->writef = op->writef; np->all = op->all; np->nall = op->nall; return BIBL_OK; } /* bibl_setreadparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_setreadparams( param *np, param *op ) { int status; status = bibl_duplicateparams( np, op ); if ( status == BIBL_OK ) { np->utf8out = 1; np->charsetout = BIBL_CHARSET_UNICODE; np->charsetout_src = BIBL_SRC_DEFAULT; np->xmlout = BIBL_XMLOUT_FALSE; np->latexout = 0; np->writeformat = BIBL_INTERNALOUT; } return status; } /* bibl_setwriteparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_setwriteparams( param *np, param *op ) { int status; status = bibl_duplicateparams( np, op ); if ( status == BIBL_OK ) { np->xmlin = 0; np->latexin = 0; np->utf8in = 1; np->charsetin = BIBL_CHARSET_UNICODE; np->charsetin_src = BIBL_SRC_DEFAULT; np->readformat = BIBL_INTERNALIN; } return status; } void bibl_freeparams( param *p ) { if ( p ) { slist_free( &(p->asis) ); slist_free( &(p->corps) ); if ( p->progname ) free( p->progname ); } } int bibl_readasis( param *p, char *f ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !f ) return BIBL_ERR_BADINPUT; status = slist_fill( &(p->asis), f, 1 ); if ( status == SLIST_ERR_CANTOPEN ) return BIBL_ERR_CANTOPEN; else if ( status == SLIST_ERR_MEMERR ) return BIBL_ERR_MEMERR; return BIBL_OK; } int bibl_readcorps( param *p, char *f ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !f ) return BIBL_ERR_BADINPUT; status = slist_fill( &(p->corps), f, 1 ); if ( status == SLIST_ERR_CANTOPEN ) return BIBL_ERR_CANTOPEN; else if ( status == 0 ) return BIBL_ERR_MEMERR; return BIBL_OK; } /* bibl_addtoasis() * * Returns BIBL_OK or BIBL_ERR_MEMERR */ int bibl_addtoasis( param *p, char *d ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !d ) return BIBL_ERR_BADINPUT; status = slist_addc( &(p->asis), d ); return ( status==SLIST_OK )? BIBL_OK : BIBL_ERR_MEMERR; } /* bibl_addtocorps() * * Returns BIBL_OK or BIBL_ERR_MEMERR */ int bibl_addtocorps( param *p, char *d ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !d ) return BIBL_ERR_BADINPUT; status = slist_addc( &(p->corps), d ); return ( status==SLIST_OK )? BIBL_OK : BIBL_ERR_MEMERR; } void bibl_reporterr( int err ) { fprintf( stderr, "Bibutils: " ); switch( err ) { case BIBL_OK: fprintf( stderr, "No error." ); break; case BIBL_ERR_BADINPUT: fprintf( stderr, "Bad input." ); break; case BIBL_ERR_MEMERR: fprintf( stderr, "Memory error." ); break; case BIBL_ERR_CANTOPEN: fprintf( stderr, "Can't open." ); break; default: fprintf( stderr, "Cannot identify error code %d.", err ); break; } fprintf( stderr, "\n" ); } static int bibl_illegalinmode( int mode ) { if ( mode < BIBL_FIRSTIN || mode > BIBL_LASTIN ) return 1; else return 0; } static int bibl_illegaloutmode( int mode ) { if ( mode < BIBL_FIRSTOUT || mode > BIBL_LASTOUT ) return 1; else return 0; } static void bibl_verbose_reference( fields *f, char *filename, long refnum ) { int i, n; n = fields_num( f ); fprintf( stderr, "======== %s %ld : converted\n", filename, refnum ); for ( i=0; in; ++i ) bibl_verbose_reference( bin->ref[i], "", i+1 ); fprintf( stderr, "-------------------%s end %s\n", msg1, msg2); fflush( stderr ); } /* extract_tag_value * * Extract the tag and the value for ALWAYS/DEFAULT * entries like: "GENRE:BIBUTILS|Masters thesis" * * tag = "GENRE:BIBUTILS" * value = "Masters thesis" */ static int extract_tag_value( str *tag, str *value, char *p ) { str_empty( tag ); while ( p && *p && *p!='|' ) { str_addchar( tag, *p ); p++; } if ( str_memerr( tag ) ) return BIBL_ERR_MEMERR; if ( p && *p=='|' ) p++; str_empty( value ); while ( p && *p ) { str_addchar( value, *p ); p++; } if ( str_memerr( tag ) ) return BIBL_ERR_MEMERR; return BIBL_OK; } /* process_defaultadd() * * Add tag/value pairs that have "DEFAULT" processing * unless a tag/value pair with the same tag has already * been adding during reference processing. */ static int process_defaultadd( fields *f, int reftype, param *r ) { int i, n, process, level, status, ret = BIBL_OK; str tag, value; char *p; strs_init( &tag, &value, NULL ); for ( i=0; iall[reftype].ntags; ++i ) { process = ((r->all[reftype]).tags[i]).processingtype; if ( process!=DEFAULT ) continue; level = ((r->all[reftype]).tags[i]).level; p = ((r->all[reftype]).tags[i]).newstr; status = extract_tag_value( &tag, &value, p ); if ( status!=BIBL_OK ) { ret = status; goto out; } n = fields_find( f, tag.data, level ); if ( n==FIELDS_NOTFOUND ) { status = fields_add( f, tag.data, value.data, level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &tag, &value, NULL ); return ret; } /* process_alwaysadd() * * Add tag/value pair to reference from the ALWAYS * processing type without exception (the difference from * DEFAULT processing). */ static int process_alwaysadd( fields *f, int reftype, param *r ) { int i, process, level, status, ret = BIBL_OK; str tag, value; char *p; strs_init( &tag, &value, NULL ); for ( i=0; iall[reftype].ntags; ++i ) { process = ((r->all[reftype]).tags[i]).processingtype; if ( process!=ALWAYS ) continue; level = ((r->all[reftype]).tags[i]).level; p = ((r->all[reftype]).tags[i]).newstr; status = extract_tag_value( &tag, &value, p ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = fields_add( f, tag.data, value.data, level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &tag, &value, NULL ); return ret; } static int read_refs( FILE *fp, bibl *bin, char *filename, param *p ) { int refnum = 0, bufpos = 0, ret=BIBL_OK, fcharset;/* = CHARSET_UNKNOWN;*/ str reference, line; char buf[256]=""; fields *ref; str_init( &reference ); str_init( &line ); while ( p->readf( fp, buf, sizeof(buf), &bufpos, &line, &reference, &fcharset ) ) { if ( reference.len==0 ) continue; ref = fields_new(); if ( !ref ) { ret = BIBL_ERR_MEMERR; bibl_free( bin ); goto out; } if ( p->processf( ref, reference.data, filename, refnum+1, p )){ ret = bibl_addref( bin, ref ); if ( ret!=BIBL_OK ) { bibl_free( bin ); fields_delete( ref ); goto out; } refnum += 1; } else { fields_delete( ref ); } str_empty( &reference ); if ( fcharset!=CHARSET_UNKNOWN ) { /* charset from file takes priority over default, but * not user-specified */ if ( p->charsetin_src!=BIBL_SRC_USER ) { p->charsetin_src = BIBL_SRC_FILE; p->charsetin = fcharset; if ( fcharset!=CHARSET_UNICODE ) p->utf8in = 0; } } } if ( p->charsetin==CHARSET_UNICODE ) p->utf8in = 1; out: str_free( &line ); str_free( &reference ); return ret; } /* Don't manipulate latex for URL's and the like */ static int bibl_notexify( char *tag ) { char *protected[] = { "DOI", "URL", "REFNUM", "FILEATTACH", "FILE" }; int i, nprotected = sizeof( protected ) / sizeof( protected[0] ); for ( i=0; icharsetin, 0, p->utf8in, p->xmlin, p->charsetout, 0, p->utf8out, p->xmlout ); } else { ok = str_convert( data, p->charsetin, p->latexin, p->utf8in, p->xmlin, p->charsetout, p->latexout, p->utf8out, p->xmlout ); } if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* bibl_fixcharsets() * * returns BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_fixcharsets( bibl *b, param *p ) { int status; long i; for ( i=0; in; ++i ) { status = bibl_fixcharsetdata( b->ref[i], p ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int bibl_addcount( bibl *b ) { char buf[512]; fields *ref; long i; int n; for ( i=0; in; ++i ) { ref = b->ref[i]; n = fields_find( ref, "REFNUM", LEVEL_MAIN ); if ( n==FIELDS_NOTFOUND ) continue; sprintf( buf, "_%ld", i+1 ); str_strcatc( fields_value( ref, n, FIELDS_STRP_NOUSE ), buf ); if ( str_memerr( fields_value( ref, n, FIELDS_STRP_NOUSE ) ) ) { return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int generate_citekey( fields *f, long nref ) { int n1, n2, status, ret; char *p, buf[100]; str citekey; str_init( &citekey ); n1 = fields_find( f, "AUTHOR", LEVEL_MAIN ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR:ASIS", LEVEL_MAIN ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR:CORP", LEVEL_MAIN ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR", LEVEL_ANY ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR:ASIS", LEVEL_ANY ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR:CORP", LEVEL_ANY ); n2 = fields_find( f, "DATE:YEAR", LEVEL_MAIN ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "DATE:YEAR", LEVEL_ANY ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "PARTDATE:YEAR", LEVEL_MAIN ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "PARTDATE:YEAR", LEVEL_ANY ); if ( n1!=FIELDS_NOTFOUND && n2!=FIELDS_NOTFOUND ) { p = fields_value( f, n1, FIELDS_CHRP_NOUSE ); while ( p && *p && *p!='|' ) { if ( !is_ws( *p ) ) str_addchar( &citekey, *p ); p++; } p = fields_value( f, n2, FIELDS_CHRP_NOUSE ); while ( p && *p ) { if ( !is_ws( *p ) ) str_addchar( &citekey, *p ); p++; } } else { sprintf( buf, "ref%ld", nref ); str_strcpyc( &citekey, buf ); } if ( str_memerr( &citekey ) ) { ret = -1; goto out; } status = fields_add( f, "REFNUM", str_cstr( &citekey ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) { ret = -1; goto out; } ret = fields_find( f, "REFNUM", LEVEL_MAIN ); out: str_free( &citekey ); return ret; } static int get_citekeys( bibl *bin, slist *citekeys ) { int n, status; fields *f; long i; for ( i=0; in; ++i ) { f = bin->ref[i]; n = fields_find( f, "REFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) n = generate_citekey( f, i+1 ); if ( n!=FIELDS_NOTFOUND && fields_has_value( f, n ) ) { status = slist_add( citekeys, fields_value( f, n, FIELDS_STRP_NOUSE ) ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } else { status = slist_addc( citekeys, "" ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int identify_duplicates( bibl *b, slist *citekeys, int *dup ) { int i, j, ndup = 0; for ( i=0; in-1; ++i ) { if ( dup[i]!=-1 ) continue; for ( j=i+1; jn; ++j ) { if ( !strcmp( slist_cstr( citekeys, i ), slist_cstr( citekeys, j ) ) ) { dup[i] = i; dup[j] = i; ndup++; } } } return ndup; } static int build_new_citekey( int nsame, str *old_citekey, str *new_citekey ) { const char abc[]="abcdefghijklmnopqrstuvwxyz"; str_strcpy( new_citekey, old_citekey ); while ( nsame >= 26 ) { str_addchar( new_citekey, 'a' ); nsame -= 26; } if ( nsame>=0 ) str_addchar( new_citekey, abc[nsame] ); return ( str_memerr( new_citekey ) ) ? BIBL_ERR_MEMERR : BIBL_OK; } static int resolve_duplicates( bibl *b, slist *citekeys, int *dup ) { int nsame, n, i, j, status = BIBL_OK; str new_citekey, *ref_citekey; str_init( &new_citekey ); for ( i=0; in; ++i ) { if ( dup[i]==-1 ) continue; nsame = 0; for ( j=i; jn; ++j ) { if ( dup[j]!=i ) continue; dup[j] = -1; status = build_new_citekey( nsame, slist_str( citekeys, j ), &new_citekey ); if ( status!=BIBL_OK ) goto out; n = fields_find( b->ref[j], "REFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; ref_citekey = fields_value( b->ref[j], n, FIELDS_STRP_NOUSE ); str_strcpy( ref_citekey, &new_citekey ); if ( str_memerr( ref_citekey ) ) { status = BIBL_ERR_MEMERR; goto out; } nsame++; } } out: str_free( &new_citekey ); return status; } static int identify_and_resolve_duplicate_citekeys( bibl *b, slist *citekeys ) { int i, *dup, ndup, status=BIBL_OK; dup = ( int * ) malloc( sizeof( int ) * citekeys->n ); if ( !dup ) return BIBL_ERR_MEMERR; for ( i=0; in; ++i ) dup[i] = -1; ndup = identify_duplicates( b, citekeys, dup ); if ( ndup ) status = resolve_duplicates( b, citekeys, dup ); free( dup ); return status; } static int uniqueify_citekeys( bibl *bin ) { slist citekeys; int status; slist_init( &citekeys ); status = get_citekeys( bin, &citekeys ); if ( status!=BIBL_OK ) goto out; status = identify_and_resolve_duplicate_citekeys( bin, &citekeys ); out: slist_free( &citekeys ); return status; } static int clean_refs( bibl *bin, param *p ) { if ( p->cleanf ) return p->cleanf( bin, p ); else return BIBL_OK; } static int convert_refs( bibl *bin, char *fname, bibl *bout, param *p ) { int reftype = 0, status; fields *rin, *rout; long i; for ( i=0; in; ++i ) { rin = bin->ref[i]; rout = fields_new(); if ( !rout ) return BIBL_ERR_MEMERR; if ( p->typef ) reftype = p->typef( rin, fname, i+1, p ); status = p->convertf( rin, rout, reftype, p ); if ( status!=BIBL_OK ) return status; if ( p->all ) { status = process_alwaysadd( rout, reftype, p ); if ( status!=BIBL_OK ) return status; status = process_defaultadd( rout, reftype, p ); if ( status!=BIBL_OK ) return status; } status = bibl_addref( bout, rout ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } int bibl_read( bibl *b, FILE *fp, char *filename, param *p ) { int status = BIBL_OK; param read_params; bibl bin; if ( !b ) return BIBL_ERR_BADINPUT; if ( !fp ) return BIBL_ERR_BADINPUT; if ( !p ) return BIBL_ERR_BADINPUT; if ( bibl_illegalinmode( p->readformat ) ) { if ( debug_set( p ) ) report_params( stderr, "bibl_read", p ); return BIBL_ERR_BADINPUT; } status = bibl_setreadparams( &read_params, p ); if ( status!=BIBL_OK ) { if ( debug_set( p ) ) report_params( stderr, "bibl_read", p ); return status; } if ( debug_set( &read_params ) ) { report_params( stderr, "bibl_read", &read_params ); } bibl_init( &bin ); status = read_refs( fp, &bin, filename, &read_params ); if ( status!=BIBL_OK ) { if ( debug_set( &read_params ) ) report_params( stderr, "bibl_read", &read_params ); bibl_freeparams( &read_params ); return status; } if ( debug_set( &read_params ) ) { bibl_verbose( &bin, "raw_input", "for bibl_read" ); } if ( !read_params.output_raw ) { status = clean_refs( &bin, &read_params ); if ( status!=BIBL_OK ) goto out; if ( debug_set( &read_params ) ) bibl_verbose( &bin, "post_clean_refs", "for bibl_read" ); } if ( ( !read_params.output_raw ) || ( read_params.output_raw & BIBL_RAW_WITHCHARCONVERT ) ) { status = bibl_fixcharsets( &bin, &read_params ); if ( status!=BIBL_OK ) goto out; if ( debug_set( &read_params ) ) bibl_verbose( &bin, "post_fixcharsets", "for bibl_read" ); } if ( !read_params.output_raw ) { status = convert_refs( &bin, filename, b, &read_params ); if ( status!=BIBL_OK ) goto out; if ( debug_set( &read_params ) ) bibl_verbose( b, "post_convert_refs", "for bibl_read" ); } else { status = bibl_copy( b, &bin ); if ( status!=BIBL_OK ) goto out; if ( debug_set( &read_params ) ) bibl_verbose( b, "post_bibl_copy", "for bibl_read" ); } if ( ( !read_params.output_raw ) || ( read_params.output_raw & BIBL_RAW_WITHMAKEREFID ) ) { status = uniqueify_citekeys( b ); if ( status!=BIBL_OK ) goto out; if ( read_params.addcount ) { status = bibl_addcount( b ); if ( status!=BIBL_OK ) goto out; } if ( debug_set( &read_params ) ) bibl_verbose( &bin, "post_uniqueify_citekeys", "for bibl_read" ); } out: bibl_free( &bin ); bibl_freeparams( &read_params ); return status; } static FILE * singlerefname( fields *reffields, long nref, int mode ) { char outfile[2048]; char suffix[5] = "xml"; FILE *fp; long count; int found; if ( mode==BIBL_ADSABSOUT ) strcpy( suffix, "ads" ); else if ( mode==BIBL_BIBTEXOUT ) strcpy( suffix, "bib" ); else if ( mode==BIBL_ENDNOTEOUT ) strcpy( suffix, "end" ); else if ( mode==BIBL_ISIOUT ) strcpy( suffix, "isi" ); else if ( mode==BIBL_MODSOUT ) strcpy( suffix, "xml" ); else if ( mode==BIBL_RISOUT ) strcpy( suffix, "ris" ); else if ( mode==BIBL_WORD2007OUT ) strcpy( suffix, "xml" ); found = fields_find( reffields, "REFNUM", LEVEL_MAIN ); /* find new filename based on reference */ if ( found!=-1 ) { sprintf( outfile,"%s.%s",(char*)fields_value(reffields,found,FIELDS_CHRP_NOUSE), suffix ); } else sprintf( outfile,"%ld.%s",nref, suffix ); count = 0; fp = fopen( outfile, "r" ); while ( fp ) { fclose(fp); count++; if ( count==60000 ) return NULL; if ( found!=-1 ) sprintf( outfile, "%s_%ld.%s", (char*)fields_value( reffields, found, FIELDS_CHRP_NOUSE ), count, suffix ); else sprintf( outfile,"%ld_%ld.%s", nref, count, suffix ); fp = fopen( outfile, "r" ); } return fopen( outfile, "w" ); } static int bibl_writeeachfp( FILE *fp, bibl *b, param *p ) { fields out, *use = &out; int status; long i; fields_init( &out ); for ( i=0; in; ++i ) { fp = singlerefname( b->ref[i], i, p->writeformat ); if ( !fp ) return BIBL_ERR_CANTOPEN; if ( p->headerf ) p->headerf( fp, p ); if ( p->assemblef ) { fields_free( &out ); status = p->assemblef( b->ref[i], &out, p, i ); if ( status!=BIBL_OK ) break; } else { use = b->ref[i]; } status = p->writef( use, fp, p, i ); if ( p->footerf ) p->footerf( fp ); fclose( fp ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int bibl_writefp( FILE *fp, bibl *b, param *p ) { int status = BIBL_OK; fields out, *use = &out; long i; fields_init( &out ); if ( debug_set( p ) && p->assemblef ) { fprintf( stderr, "-------------------assemblef start for bibl_write\n"); } if ( p->headerf ) p->headerf( fp, p ); for ( i=0; in; ++i ) { if ( p->assemblef ) { fields_free( &out ); status = p->assemblef( b->ref[i], &out, p, i ); if ( status!=BIBL_OK ) break; if ( debug_set( p ) ) bibl_verbose_reference( &out, "", i+1 ); } else { use = b->ref[i]; } status = p->writef( use, fp, p, i ); if ( status!=BIBL_OK ) break; } if ( debug_set( p ) && p->assemblef ) { fprintf( stderr, "-------------------assemblef end for bibl_write\n"); } if ( p->footerf ) p->footerf( fp ); return status; } int bibl_write( bibl *b, FILE *fp, param *p ) { int status; param lp; if ( !b ) return BIBL_ERR_BADINPUT; if ( !p ) return BIBL_ERR_BADINPUT; if ( bibl_illegaloutmode( p->writeformat ) ) return BIBL_ERR_BADINPUT; if ( !fp && !p->singlerefperfile ) return BIBL_ERR_BADINPUT; status = bibl_setwriteparams( &lp, p ); if ( status!=BIBL_OK ) return status; if ( debug_set( p ) ) { report_params( stderr, "bibl_write", &lp ); fflush( stdout ); } if ( debug_set( p ) ) bibl_verbose( b, "raw_input", "for bibl_write" ); status = bibl_fixcharsets( b, &lp ); if ( status!=BIBL_OK ) goto out; if ( debug_set( p ) ) bibl_verbose( b, "post-fixcharsets", "for bibl_write" ); if ( p->singlerefperfile ) status = bibl_writeeachfp( fp, b, &lp ); else status = bibl_writefp( fp, b, &lp ); out: bibl_freeparams( &lp ); return status; } hs-bibutils-6.10.0.0/bibutils/bibdefs.h0000755000000000000000000000043107346545000015737 0ustar0000000000000000/* * bibdefs.h * * Copyright (c) Chris Putnam 2005-2020 * * Source code released under GPL version 2 * */ #ifndef BIBDEFS_H #define BIBDEFS_H #define BIBL_OK (0) #define BIBL_ERR_BADINPUT (-1) #define BIBL_ERR_MEMERR (-2) #define BIBL_ERR_CANTOPEN (-3) #endif hs-bibutils-6.10.0.0/bibutils/bibformats.h0000755000000000000000000000275507346545000016504 0ustar0000000000000000/* * bibformats.h * * Copyright (c) Chris Putnam 2007-2019 * * Source code released under the GPL version 2 * */ #ifndef BIBFORMATS_H #define BIBFORMATS_H #include "bibutils.h" int adsout_initparams ( param *pm, const char *progname ); int biblatexin_initparams ( param *pm, const char *progname ); int biblatexout_initparams( param *pm, const char *progname ); int bibtexin_initparams ( param *pm, const char *progname ); int bibtexout_initparams ( param *pm, const char *progname ); int copacin_initparams ( param *pm, const char *progname ); int ebiin_initparams ( param *pm, const char *progname ); int endin_initparams ( param *pm, const char *progname ); int endout_initparams ( param *pm, const char *progname ); int endxmlin_initparams ( param *pm, const char *progname ); int isiin_initparams ( param *pm, const char *progname ); int isiout_initparams ( param *pm, const char *progname ); int medin_initparams ( param *pm, const char *progname ); int modsin_initparams ( param *pm, const char *progname ); int modsout_initparams ( param *pm, const char *progname ); int nbibin_initparams ( param *pm, const char *progname ); int nbibout_initparams ( param *pm, const char *progname ); int risin_initparams ( param *pm, const char *progname ); int risout_initparams ( param *pm, const char *progname ); int wordin_initparams ( param *pm, const char *progname ); int wordout_initparams ( param *pm, const char *progname ); #endif hs-bibutils-6.10.0.0/bibutils/bibl.c0000644000000000000000000000350407346545000015245 0ustar0000000000000000/* * bibl.c * * Copyright (c) Chris Putnam 2005-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "bibdefs.h" #include "bibl.h" void bibl_init( bibl *b ) { b->n = b->max = 0L; b->ref = NULL; } static int bibl_alloc( bibl * b ) { int alloc = 50; b->ref = ( fields ** ) malloc( sizeof( fields* ) * alloc ); if ( !b->ref ) return BIBL_ERR_MEMERR; b->max = alloc; return BIBL_OK; } static int bibl_realloc( bibl * b ) { long alloc = b->max * 2; fields **more; more = ( fields ** ) realloc( b->ref, sizeof( fields* ) * alloc ); if ( !more ) return BIBL_ERR_MEMERR; b->ref = more; b->max = alloc; return BIBL_OK; } int bibl_addref( bibl *b, fields *ref ) { int status = BIBL_OK; if ( b->max==0 ) status = bibl_alloc( b ); else if ( b->n >= b->max ) status = bibl_realloc( b ); if ( status==BIBL_OK ) { b->ref[ b->n ] = ref; b->n++; } return status; } void bibl_free( bibl *b ) { long i; for ( i=0; in; ++i ) fields_delete( b->ref[i] ); free( b->ref ); bibl_init( b ); } /* bibl_copy() * * returns BIBL_OK on success, BIBL_ERR_MEMERR on failure */ int bibl_copy( bibl *bout, bibl *bin ) { fields *ref; int status; long i; for ( i=0; in; ++i ) { ref = fields_dupl( bin->ref[i] ); if ( !ref ) return BIBL_ERR_MEMERR; status = bibl_addref( bout, ref ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* bibl_findref() * * returns position of reference matching citekey, else -1 */ long bibl_findref( bibl *bin, const char *citekey ) { long i; int n; for ( i=0; in; ++i ) { n = fields_find( bin->ref[i], "refnum", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; if ( !strcmp( fields_value( bin->ref[i], n, FIELDS_CHRP_NOUSE ), citekey ) ) return i; } return -1; } hs-bibutils-6.10.0.0/bibutils/bibl.c0000755000000000000000000000350407346545000015250 0ustar0000000000000000/* * bibl.c * * Copyright (c) Chris Putnam 2005-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "bibdefs.h" #include "bibl.h" void bibl_init( bibl *b ) { b->n = b->max = 0L; b->ref = NULL; } static int bibl_alloc( bibl * b ) { int alloc = 50; b->ref = ( fields ** ) malloc( sizeof( fields* ) * alloc ); if ( !b->ref ) return BIBL_ERR_MEMERR; b->max = alloc; return BIBL_OK; } static int bibl_realloc( bibl * b ) { long alloc = b->max * 2; fields **more; more = ( fields ** ) realloc( b->ref, sizeof( fields* ) * alloc ); if ( !more ) return BIBL_ERR_MEMERR; b->ref = more; b->max = alloc; return BIBL_OK; } int bibl_addref( bibl *b, fields *ref ) { int status = BIBL_OK; if ( b->max==0 ) status = bibl_alloc( b ); else if ( b->n >= b->max ) status = bibl_realloc( b ); if ( status==BIBL_OK ) { b->ref[ b->n ] = ref; b->n++; } return status; } void bibl_free( bibl *b ) { long i; for ( i=0; in; ++i ) fields_delete( b->ref[i] ); free( b->ref ); bibl_init( b ); } /* bibl_copy() * * returns BIBL_OK on success, BIBL_ERR_MEMERR on failure */ int bibl_copy( bibl *bout, bibl *bin ) { fields *ref; int status; long i; for ( i=0; in; ++i ) { ref = fields_dupl( bin->ref[i] ); if ( !ref ) return BIBL_ERR_MEMERR; status = bibl_addref( bout, ref ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* bibl_findref() * * returns position of reference matching citekey, else -1 */ long bibl_findref( bibl *bin, const char *citekey ) { long i; int n; for ( i=0; in; ++i ) { n = fields_find( bin->ref[i], "refnum", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; if ( !strcmp( fields_value( bin->ref[i], n, FIELDS_CHRP_NOUSE ), citekey ) ) return i; } return -1; } hs-bibutils-6.10.0.0/bibutils/bibl.h0000755000000000000000000000074407346545000015260 0ustar0000000000000000/* * bibl.h * * Copyright (c) Chris Putnam 2005-2020 * * Source code released under the GPL version 2 * */ #ifndef BIBL_H #define BIBL_H #include #include "str.h" #include "fields.h" #include "reftypes.h" typedef struct { long n; long max; fields **ref; } bibl; void bibl_init( bibl *b ); int bibl_addref( bibl *b, fields *ref ); void bibl_free( bibl *b ); int bibl_copy( bibl *bout, bibl *bin ); long bibl_findref( bibl *bin, const char *citekey ); #endif hs-bibutils-6.10.0.0/bibutils/biblatexin.c0000644000000000000000000010340307346545000016455 0ustar0000000000000000/* * biblatexin.c * * Copyright (c) Chris Putnam 2008-2020 * Copyright (c) Johannes Wilm 2010-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "strsearch.h" #include "str.h" #include "utf8.h" #include "str_conv.h" #include "fields.h" #include "latex_parse.h" #include "slist.h" #include "name.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants biblatex_all[]; extern int biblatex_nall; static slist find = { 0, 0, 0, NULL }; static slist replace = { 0, 0, 0, NULL }; /***************************************************** PUBLIC: void biblatexin_initparams() *****************************************************/ static int biblatexin_convertf( fields *bibin, fields *info, int reftype, param *p ); static int biblatexin_processf( fields *bibin, const char *data, const char *filename, long nref, param *p ); static int biblatexin_cleanf( bibl *bin, param *p ); static int biblatexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int biblatexin_typef( fields *bibin, const char *filename, int nrefs, param *p ); int biblatexin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_BIBLATEXIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 1; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = biblatexin_readf; pm->processf = biblatexin_processf; pm->cleanf = biblatexin_cleanf; pm->typef = biblatexin_typef; pm->convertf = biblatexin_convertf; pm->all = biblatex_all; pm->nall = biblatex_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int biblatexin_readf() *****************************************************/ /* * readf can "read too far", so we store this information in line, thus * the next new text is in line, either from having read too far or * from the next chunk obtained via str_fget() * * return 1 on success, 0 on error/end-of-file * */ static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } /* * readf() * * returns zero if cannot get reference and hit end of-file * returns 1 if last reference in file, 2 if reference within file */ static int biblatexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0; const char *p; while ( haveref!=2 && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( line->len == 0 ) continue; /* blank line */ p = &(line->data[0]); p = skip_ws( p ); if ( *p == '%' ) { /* commented out line */ str_empty( line ); continue; } if ( *p == '@' ) haveref++; if ( haveref && haveref<2 ) { str_strcatc( reference, p ); str_addchar( reference, '\n' ); str_empty( line ); } else if ( !haveref ) str_empty( line ); } *fcharset = CHARSET_UNKNOWN; return haveref; } /***************************************************** PUBLIC: int biblatexin_processf() *****************************************************/ static const char * process_biblatextype( const char *p, str *type ) { str tmp; str_init( &tmp ); if ( *p=='@' ) p++; p = str_cpytodelim( &tmp, p, "{( \t\r\n", 0 ); p = skip_ws( p ); if ( *p=='{' || *p=='(' ) p++; p = skip_ws( p ); if ( str_has_value( &tmp ) ) str_strcpy( type, &tmp ); else str_empty( type ); str_free( &tmp ); return p; } static const char * process_biblatexid( const char *p, str *id ) { const char *start_p = p; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, p, ",", 1 ); if ( str_has_value( &tmp ) ) { if ( strchr( tmp.data, '=' ) ) { /* Endnote writes biblatex files w/o fields, try to * distinguish via presence of an equal sign.... if * it's there, assume that it's a tag/data pair instead * and roll back. */ p = start_p; str_empty( id ); } else { str_strcpy( id, &tmp ); } } else { str_empty( id ); } str_free( &tmp ); return skip_ws( p ); } static const char * biblatex_tag( const char *p, str *tag ) { p = str_cpytodelim( tag, skip_ws( p ), "= \t\r\n", 0 ); return skip_ws( p ); } static const char * biblatex_data( const char *p, fields *bibin, slist *tokens, long nref, param *pm ) { unsigned int nbracket = 0, nquotes = 0; const char *startp = p; int status; str tok; str_init( &tok ); while ( p && *p ) { if ( !nquotes && !nbracket ) { if ( *p==',' || *p=='=' || *p=='}' || *p==')' ) goto out; } if ( *p=='\"' && nbracket==0 && ( p==startp || *(p-1)!='\\' ) ) { nquotes = !nquotes; str_addchar( &tok, *p ); if ( !nquotes ) { status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) { p = NULL; goto outerr; } str_empty( &tok ); } } else if ( *p=='#' && !nquotes && !nbracket ) { if ( str_has_value( &tok ) ) { status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) { p = NULL; goto outerr; } } str_strcpyc( &tok, "#" ); status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) { p = NULL; goto outerr; } str_empty( &tok ); } else if ( *p=='{' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket++; str_addchar( &tok, *p ); } else if ( *p=='}' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket--; str_addchar( &tok, *p ); if ( nbracket==0 ) { status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) { p = NULL; goto outerr; } str_empty( &tok ); } } else if ( !is_ws( *p ) || nquotes || nbracket ) { if ( !is_ws( *p ) ) str_addchar( &tok, *p ); else { if ( tok.len!=0 && *p!='\n' && *p!='\r' ) str_addchar( &tok, *p ); else if ( tok.len!=0 && (*p=='\n' || *p=='\r')) { str_addchar( &tok, ' ' ); while ( is_ws( *(p+1) ) ) p++; } } } else if ( is_ws( *p ) ) { if ( str_has_value( &tok ) ) { status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) { p = NULL; goto outerr; } str_empty( &tok ); } } p++; } out: if ( nbracket!=0 ) { fprintf( stderr, "%s: Mismatch in number of brackets in reference %ld\n", pm->progname, nref ); } if ( nquotes!=0 ) { fprintf( stderr, "%s: Mismatch in number of quotes in reference %ld\n", pm->progname, nref ); } if ( str_has_value( &tok ) ) { status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) p = NULL; } outerr: str_free( &tok ); return p; } /* replace_strings() * * do string replacement -- only if unprotected by quotation marks or curly brackets */ static void replace_strings( slist *tokens, fields *bibin, long nref, param *pm ) { int i, n, ok; char *q; str *s; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( s->data, "#" ) ) { } else if ( s->data[0]!='\"' && s->data[0]!='{' ) { n = slist_find( &find, s ); if ( n!=-1 ) { str_strcpy( s, slist_str( &replace, n ) ); } else { q = s->data; ok = 1; while ( *q && ok ) { if ( !isdigit( *q ) ) ok = 0; q++; } if ( !ok ) { fprintf( stderr, "%s: Warning: Non-numeric " "BibTeX elements should be in quotations or " "curly brackets in reference %ld\n", pm->progname, nref ); } } } i++; } } static int string_concatenate( slist *tokens, fields *bibin, long nref, param *pm ) { int i, status; str *s, *t; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( str_cstr( s ), "#" ) ) { if ( i==0 || i==tokens->n-1 ) { fprintf( stderr, "%s: Warning: Stray string concatenation " "('#' character) in reference %ld\n", pm->progname, nref ); status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; continue; } s = slist_str( tokens, i-1 ); if ( s->data[0]!='\"' && s->data[s->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); t = slist_str( tokens, i+1 ); if ( t->data[0]!='\"' && t->data[t->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); if ( ( s->data[s->len-1]=='\"' && t->data[0]=='\"') || (s->data[s->len-1]=='}' && t->data[0]=='{') ) { str_trimend( s, 1 ); str_trimbegin( t, 1 ); str_strcat( s, t ); } else { str_strcat( s, t ); } status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } else i++; } return BIBL_OK; } static const char * process_biblatexline( const char *p, str *tag, str *data, uchar stripquotes, long nref, param *pm ) { int i, status; slist tokens; str *s; str_empty( data ); p = biblatex_tag( p, tag ); if ( str_is_empty( tag ) ) { /* ...skip this line */ while ( *p && *p!='\n' && *p!='\r' ) p++; while ( *p=='\n' || *p=='\r' ) p++; return p; } slist_init( &tokens ); if ( *p=='=' ) p = biblatex_data( p+1, NULL, &tokens, nref, pm ); replace_strings( &tokens, NULL, nref, pm ); status = string_concatenate( &tokens, NULL, nref, pm ); if ( status!=BIBL_OK ) { p = NULL; goto out; } for ( i=0; idata[0]=='\"' && s->data[s->len-1]=='\"' ) || ( s->data[0]=='{' && s->data[s->len-1]=='}' ) ) { str_trimbegin( s, 1 ); str_trimend( s, 1 ); } str_strcat( data, slist_str( &tokens, i ) ); } out: slist_free( &tokens ); return p; } static int process_cite( fields *bibin, const char *p, const char *filename, long nref, param *pm ) { int fstatus, status = BIBL_OK; str type, id, tag, data; strs_init( &type, &id, &tag, &data, NULL ); p = process_biblatextype( p, &type ); p = process_biblatexid( p, &id ); if ( str_is_empty( &type ) || str_is_empty( &id ) ) goto out; fstatus = fields_add( bibin, "INTERNAL_TYPE", str_cstr( &type ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( bibin, "REFNUM", str_cstr( &id ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p ) { p = process_biblatexline( p, &tag, &data, 1, nref, pm ); if ( !p ) { status = BIBL_ERR_MEMERR; goto out; } /* no anonymous or empty fields allowed */ if ( str_has_value( &tag ) && str_has_value( &data ) ) { fstatus = fields_add( bibin, str_cstr( &tag ), str_cstr( &data ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } strs_empty( &tag, &data, NULL ); } out: strs_free( &type, &id, &tag, &data, NULL ); return status; } /* process_string() * * Handle lines like: * * '@STRING{TL = {Tetrahedron Lett.}}' * * p should point to just after '@STRING' * * In BibTeX, if a string is defined several times, the last one is kept. * */ static int process_string( const char *p, long nref, param *pm ) { int n, status = BIBL_OK; str s1, s2, *s; strs_init( &s1, &s2, NULL ); while ( *p && *p!='{' && *p!='(' ) p++; if ( *p=='{' || *p=='(' ) p++; (void) process_biblatexline( skip_ws( p ), &s1, &s2, 0, nref, pm ); if ( str_has_value( &s2 ) ) { str_findreplace( &s2, "\\ ", " " ); if ( str_memerr( &s2 ) ) { status = BIBL_ERR_MEMERR; goto out; } } else { str_strcpyc( &s2, "" ); } if ( str_has_value( &s1 ) ) { n = slist_find( &find, &s1 ); if ( n==-1 ) { status = slist_add_ret( &find, &s1, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; status = slist_add_ret( &replace, &s2, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; } else { if ( str_has_value( &s2 ) ) s = slist_set( &replace, n, &s2 ); else s = slist_setc( &replace, n, "" ); if ( s==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &s1, &s2, NULL ); return status; } static int biblatexin_processf( fields *bibin, const char *data, const char *filename, long nref, param *p ) { if ( !strncasecmp( data, "@STRING", 7 ) ) { process_string( data+7, nref, p ); return 0; } else { process_cite( bibin, data, filename, nref, p ); return 1; } } /***************************************************** PUBLIC: void biblatexin_cleanf() *****************************************************/ static int is_url_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "url" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "file" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "doi" ) ) return 1; } return 0; } static int is_name_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "author" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editor" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editorb" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editorc" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "director" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "producer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "execproducer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "writer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "redactor" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "annotator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "commentator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "translator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "foreword" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "afterword" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "introduction" ) ) return 1; } return 0; } static int biblatexin_cleanvalue( str *tag, str *value, fields *bibin, param *p ) { int status = BIBL_OK; str parsed; if ( str_is_empty( value ) ) return BIBL_OK; /* protect url from undergoing any parsing */ if ( is_url_tag( tag ) ) return BIBL_OK; /* delay names from undergoing any parsing */ if ( is_name_tag( tag ) ) return BIBL_OK; str_init( &parsed ); status = latex_parse( value, &parsed ); if ( status!=BIBL_OK ) goto out; str_strcpy( value, &parsed ); if ( str_memerr( value ) ) status = BIBL_ERR_MEMERR; out: str_free( &parsed ); return status; } static void biblatexin_nocrossref( bibl *bin, long i, int n, param *p ) { int n1 = fields_find( bin->ref[i], "REFNUM", LEVEL_ANY ); if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find cross-reference '%s'", (char*)fields_value( bin->ref[i], n, FIELDS_CHRP_NOUSE ) ); if ( n1!=FIELDS_NOTFOUND ) fprintf( stderr, " for reference '%s'", (char*)fields_value( bin->ref[i], n1, FIELDS_CHRP_NOUSE ) ); fprintf( stderr, "\n" ); } static int biblatexin_crossref_oneref( fields *ref, fields *cross ) { int j, nl, ntype, fstatus; char *type, *nt, *nd; ntype = fields_find( ref, "INTERNAL_TYPE", LEVEL_ANY ); type = ( char * ) fields_value( ref, ntype, FIELDS_CHRP_NOUSE ); for ( j=0; jn; ++j ) { nt = ( char * ) fields_tag( cross, j, FIELDS_CHRP_NOUSE ); if ( !strcasecmp( nt, "INTERNAL_TYPE" ) ) continue; if ( !strcasecmp( nt, "REFNUM" ) ) continue; if ( !strcasecmp( nt, "TITLE" ) ) { if ( !strcasecmp( type, "Inproceedings" ) || !strcasecmp( type, "Incollection" ) ) nt = "booktitle"; } nd = ( char * ) fields_value( cross, j, FIELDS_CHRP_NOUSE ); nl = fields_level( cross, j ) + 1; fstatus = fields_add( ref, nt, nd, nl ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int biblatexin_crossref( bibl *bin, param *p ) { int n, ncross, status = BIBL_OK; fields *ref, *cross; long i; for ( i=0; in; ++i ) { ref = bin->ref[i]; n = fields_find( ref, "CROSSREF", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; fields_set_used( ref, n ); ncross = bibl_findref( bin, (char*) fields_value(ref,n, FIELDS_CHRP_NOUSE) ); if ( ncross==-1 ) { biblatexin_nocrossref( bin, i, n, p ); continue; } cross = bin->ref[ncross]; status = biblatexin_crossref_oneref( ref, cross ); if ( status!=BIBL_OK ) return status; } return status; } static int biblatexin_cleanref( fields *bibin, param *p ) { int i, n, status; str *t, *d; n = fields_num( bibin ); for ( i=0; in; ++i ) { status = biblatexin_cleanref( bin->ref[i], p ); if ( status!=BIBL_OK ) return status; } status = biblatexin_crossref( bin, p ); return status; } /***************************************************** PUBLIC: void biblatexin_typef() *****************************************************/ static int biblatexin_typef( fields *bibin, const char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename=""; ntypename = fields_find( bibin, "INTERNAL_TYPE", LEVEL_MAIN ); nrefname = fields_find( bibin, "REFNUM", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( bibin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( bibin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int biblatexin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* get_title_elements() * * find all of the biblatex title elements for the current level * internal "TITLE" -> "title", "booktitle", "maintitle" * internal "SUBTITLE" -> "subtitle", "booksubtitle", "mainsubtitle" * internal "TITLEADDON" -> "titleaddon", "booktitleaddon", "maintitleaddon" * * place in ttl, subttl, and ttladdon strings * * return 1 if an element is found, 0 if not */ static int get_title_elements( fields *bibin, int currlevel, int reftype, variants *all, int nall, str *ttl, str *subttl, str *ttladdon ) { int nfields, process, level, i; str *t, *d; char *newtag; strs_empty( ttl, subttl, ttladdon, NULL ); nfields = fields_num( bibin ); for ( i=0; ilen == 0 ) continue; if ( !translate_oldtag( t->data, reftype, all, nall, &process, &level, &newtag ) ) continue; if ( process != TITLE ) continue; if ( level != currlevel ) continue; fields_set_used( bibin, i ); if ( !strcasecmp( newtag, "TITLE" ) ) { if ( str_has_value( ttl ) ) str_addchar( ttl, ' ' ); str_strcat( ttl, d ); } else if ( !strcasecmp( newtag, "SUBTITLE" ) ) { if ( str_has_value( subttl ) ) str_addchar( subttl, ' ' ); str_strcat( subttl, d ); } else if ( !strcasecmp( newtag, "TITLEADDON" ) ) { if ( str_has_value( ttladdon ) ) str_addchar( ttladdon, ' ' ); str_strcat( ttladdon, d ); } } return ( ttl->len>0 || subttl->len > 0 || ttladdon->len > 0 ); } /* attach_subtitle() * * Add subtitle (if exists) to the title */ static void attach_subtitle( str *title, str *subtitle ) { if ( str_has_value( subtitle ) ) { if ( str_has_value( title ) ) { if ( title->data[title->len-1]!=':' && title->data[title->len-1]!='?' ) str_addchar( title, ':' ); str_addchar( title, ' ' ); } str_strcat( title, subtitle ); } } /* attach_addon() * * Add titleaddon (if exists) to the title. */ static void attach_addon( str *title, str *addon ) { if ( str_has_value( addon ) ) { if ( str_has_value( title ) ) { if ( title->data[title->len-1]!='.' ) str_addchar( title, '.' ); str_addchar( title, ' ' ); } str_strcat( title, addon ); } } static int process_combined_title( fields *info, str *ttl, str *subttl, str *ttladdon, int currlevel ) { int fstatus, status = BIBL_OK; str combined; str_init( &combined ); str_strcpy( &combined, ttl ); attach_subtitle( &combined, subttl ); attach_addon( &combined, ttladdon ); if ( str_memerr( &combined ) ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( info, "TITLE", str_cstr( &combined ), currlevel ); if ( fstatus==FIELDS_OK ) status = BIBL_ERR_MEMERR; out: str_free( &combined ); return status; } static int process_separated_title( fields *info, str *ttl, str *subttl, str *ttladdon, int currlevel ) { int fstatus; if ( str_has_value( ttladdon ) ) { if ( subttl->len ) attach_addon( subttl, ttladdon ); else attach_addon( ttl, ttladdon ); } if ( str_has_value( ttl ) ) { fstatus = fields_add( info, "TITLE", str_cstr( ttl ), currlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( str_has_value( subttl ) ) { fstatus = fields_add( info, "SUBTITLE", str_cstr( subttl ), currlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int process_title_all( fields *bibin, fields *info, int reftype, param *p ) { int currlevel, found, status = BIBL_OK; str ttl, subttl, ttladdon; strs_init( &ttl, &subttl, &ttladdon, NULL ); for ( currlevel = 0; currlevelall, p->nall, &ttl, &subttl, &ttladdon ); if ( !found ) continue; if ( p->nosplittitle ) status = process_combined_title( info, &ttl, &subttl, &ttladdon, currlevel ); else status = process_separated_title( info, &ttl, &subttl, &ttladdon, currlevel ); if ( status!=BIBL_OK ) goto out; } out: strs_free( &ttl, &subttl, &ttladdon, NULL ); return status; } static int biblatex_matches_list( fields *info, char *tag, char *suffix, str *data, int level, slist *names, int *match ) { int i, fstatus, status = BIBL_OK; str newtag; *match = 0; if ( names->n==0 ) return status; str_init( &newtag ); for ( i=0; in; ++i ) { if ( strcmp( str_cstr( data ), slist_cstr( names, i ) ) ) continue; str_initstrc( &newtag, tag ); str_strcatc( &newtag, suffix ); fstatus = fields_add( info, str_cstr( &newtag ), str_cstr( data ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } *match = 1; goto out; } out: str_free( &newtag ); return status; } static int biblatex_names( fields *info, char *tag, str *data, int level, slist *asis, slist *corps ) { int begin, end, ok, n, etal, i, match, status = BIBL_OK; slist tokens; str parsed, *s; /* If we match the asis or corps list add and bail. */ status = biblatex_matches_list( info, tag, ":ASIS", data, level, asis, &match ); if ( match==1 || status!=BIBL_OK ) return status; status = biblatex_matches_list( info, tag, ":CORP", data, level, corps, &match ); if ( match==1 || status!=BIBL_OK ) return status; slist_init( &tokens ); str_init( &parsed ); status = latex_tokenize( &tokens, data ); if ( status!=BIBL_OK ) goto out; for ( i=0; idata; int fstatus = FIELDS_OK; /* type in the @thesis is used to distinguish Ph.D. and Master's thesis */ if ( !strncasecmp( p, "phdthesis", 9 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Ph.D. thesis", level ); } else if ( !strncasecmp( p, "mastersthesis", 13 ) || !strncasecmp( p, "masterthesis", 12 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Masters thesis", level ); } else if ( !strncasecmp( p, "mathesis", 8 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Masters thesis", level ); } else if ( !strncasecmp( p, "diploma", 7 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Diploma thesis", level ); } else if ( !strncasecmp( p, "habilitation", 12 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Habilitation thesis", level ); } if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static int biblatexin_bteprint( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int neprint, netype, fstatus; char *eprint = NULL, *etype = NULL; neprint = fields_find( bibin, "eprint", LEVEL_ANY ); netype = fields_find( bibin, "eprinttype", LEVEL_ANY ); if ( neprint!=FIELDS_NOTFOUND ) eprint = fields_value( bibin, neprint, FIELDS_CHRP ); if ( netype!=FIELDS_NOTFOUND ) etype = fields_value( bibin, netype, FIELDS_CHRP ); if ( eprint && etype ) { if ( !strncasecmp( etype, "arxiv", 5 ) ) { fstatus = fields_add( bibout, "ARXIV", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "jstor", 5 ) ) { fstatus = fields_add( bibout, "JSTOR", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "pubmed", 6 ) ) { fstatus = fields_add( bibout, "PMID", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "medline", 7 ) ) { fstatus = fields_add( bibout, "MEDLINE", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else { fstatus = fields_add( bibout, "EPRINT", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fstatus = fields_add( bibout, "EPRINTTYPE", etype, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } fields_set_used( bibin, neprint ); fields_set_used( bibin, netype ); } else if ( eprint ) { fstatus = fields_add( bibout, "EPRINT", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fields_set_used( bibin, neprint ); } else if ( etype ) { fstatus = fields_add( bibout, "EPRINTTYPE", etype, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fields_set_used( bibin, netype ); } return BIBL_OK; } static int biblatexin_btgenre( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( fields_add( bibout, "GENRE:BIBUTILS", str_cstr( invalue ), level ) == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* biblatexin_howpublished() * * howpublished={}, * * Normally indicates the manner in which something was * published in lieu of a formal publisher, so typically * 'howpublished' and 'publisher' will never be in the * same reference. * * Occasionally, people put Diploma thesis information * into this field, so check for that first. */ static int biblatexin_howpublished( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus; if ( !strncasecmp( str_cstr( invalue ), "Diplom", 6 ) ) fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Diploma thesis", level ); else if ( !strncasecmp( str_cstr( invalue ), "Habilitation", 13 ) ) fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Habilitation thesis", level ); else fstatus = fields_add( bibout, "PUBLISHER", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* * biblatex has multiple editor fields "editor", "editora", "editorb", "editorc", * each of which can be modified from a type of "EDITOR" via "editortype", * "editoratype", "editorbtype", "editorctype". * * Defined types: * "editor" * "collaborator" * "compiler" * "redactor" * * "reviser" ? * "founder" ? * "continuator" ? * * bibtex-chicago * * "director" * "producer" * "conductor" * "none" (for performer) */ static int biblatexin_blteditor( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *editor_fields[] = { "editor", "editora", "editorb", "editorc" }; char *editor_types[] = { "editortype", "editoratype", "editorbtype", "editorctype" }; int i, n = 0, ntype, neditors = sizeof( editor_fields ) / sizeof( editor_fields[0] ); char *type, *usetag = "EDITOR"; for ( i=1; idata, editor_fields[i] ) ) n = i; ntype = fields_find( bibin, editor_types[n], LEVEL_ANY ); if ( ntype!=FIELDS_NOTFOUND ) { type = fields_value( bibin, ntype, FIELDS_CHRP_NOUSE ); if ( !strcasecmp( type, "collaborator" ) ) usetag = "COLLABORATOR"; else if ( !strcasecmp( type, "compiler" ) ) usetag = "COMPILER"; else if ( !strcasecmp( type, "redactor" ) ) usetag = "REDACTOR"; else if ( !strcasecmp( type, "director" ) ) usetag = "DIRECTOR"; else if ( !strcasecmp( type, "producer" ) ) usetag = "PRODUCER"; else if ( !strcasecmp( type, "none" ) ) usetag = "PERFORMER"; } return biblatex_names( bibout, usetag, invalue, level, &(pm->asis), &(pm->corps) ); } static int biblatexin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return biblatex_names( bibout, outtag, invalue, level, &(pm->asis), &(pm->corps) ); } static void biblatexin_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "INTERNAL_TYPE" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, " Cannot find tag '%s'\n", tag ); } } static int biblatexin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ PAGES ] = generic_pages, [ NOTES ] = generic_notes, [ PERSON ] = biblatexin_person, [ BLT_EDITOR ] = biblatexin_blteditor, [ HOWPUBLISHED ] = biblatexin_howpublished, [ URL ] = generic_url, [ GENRE ] = biblatexin_btgenre, [ BT_EPRINT ] = biblatexin_bteprint, [ BLT_THESIS_TYPE ] = biblatexin_bltthesistype, [ BLT_SCHOOL ] = biblatexin_bltschool, [ BLT_SUBTYPE ] = biblatexin_bltsubtype, [ BLT_SKIP ] = generic_skip, [ TITLE ] = generic_null, /* delay processing until later */ }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; idata, reftype, p->all, p->nall, &process, &level, &outtag ) ) { biblatexin_notag( p, intag->data ); continue; } status = convertfns[ process ]( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; if ( convertfns[ process ] != generic_null ) fields_set_used( bibin, i ); } status = process_title_all( bibin, bibout, reftype, p ); if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stdout ); return status; } hs-bibutils-6.10.0.0/bibutils/biblatexin.c0000755000000000000000000010340307346545000016460 0ustar0000000000000000/* * biblatexin.c * * Copyright (c) Chris Putnam 2008-2020 * Copyright (c) Johannes Wilm 2010-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "strsearch.h" #include "str.h" #include "utf8.h" #include "str_conv.h" #include "fields.h" #include "latex_parse.h" #include "slist.h" #include "name.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants biblatex_all[]; extern int biblatex_nall; static slist find = { 0, 0, 0, NULL }; static slist replace = { 0, 0, 0, NULL }; /***************************************************** PUBLIC: void biblatexin_initparams() *****************************************************/ static int biblatexin_convertf( fields *bibin, fields *info, int reftype, param *p ); static int biblatexin_processf( fields *bibin, const char *data, const char *filename, long nref, param *p ); static int biblatexin_cleanf( bibl *bin, param *p ); static int biblatexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int biblatexin_typef( fields *bibin, const char *filename, int nrefs, param *p ); int biblatexin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_BIBLATEXIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 1; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = biblatexin_readf; pm->processf = biblatexin_processf; pm->cleanf = biblatexin_cleanf; pm->typef = biblatexin_typef; pm->convertf = biblatexin_convertf; pm->all = biblatex_all; pm->nall = biblatex_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int biblatexin_readf() *****************************************************/ /* * readf can "read too far", so we store this information in line, thus * the next new text is in line, either from having read too far or * from the next chunk obtained via str_fget() * * return 1 on success, 0 on error/end-of-file * */ static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } /* * readf() * * returns zero if cannot get reference and hit end of-file * returns 1 if last reference in file, 2 if reference within file */ static int biblatexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0; const char *p; while ( haveref!=2 && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( line->len == 0 ) continue; /* blank line */ p = &(line->data[0]); p = skip_ws( p ); if ( *p == '%' ) { /* commented out line */ str_empty( line ); continue; } if ( *p == '@' ) haveref++; if ( haveref && haveref<2 ) { str_strcatc( reference, p ); str_addchar( reference, '\n' ); str_empty( line ); } else if ( !haveref ) str_empty( line ); } *fcharset = CHARSET_UNKNOWN; return haveref; } /***************************************************** PUBLIC: int biblatexin_processf() *****************************************************/ static const char * process_biblatextype( const char *p, str *type ) { str tmp; str_init( &tmp ); if ( *p=='@' ) p++; p = str_cpytodelim( &tmp, p, "{( \t\r\n", 0 ); p = skip_ws( p ); if ( *p=='{' || *p=='(' ) p++; p = skip_ws( p ); if ( str_has_value( &tmp ) ) str_strcpy( type, &tmp ); else str_empty( type ); str_free( &tmp ); return p; } static const char * process_biblatexid( const char *p, str *id ) { const char *start_p = p; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, p, ",", 1 ); if ( str_has_value( &tmp ) ) { if ( strchr( tmp.data, '=' ) ) { /* Endnote writes biblatex files w/o fields, try to * distinguish via presence of an equal sign.... if * it's there, assume that it's a tag/data pair instead * and roll back. */ p = start_p; str_empty( id ); } else { str_strcpy( id, &tmp ); } } else { str_empty( id ); } str_free( &tmp ); return skip_ws( p ); } static const char * biblatex_tag( const char *p, str *tag ) { p = str_cpytodelim( tag, skip_ws( p ), "= \t\r\n", 0 ); return skip_ws( p ); } static const char * biblatex_data( const char *p, fields *bibin, slist *tokens, long nref, param *pm ) { unsigned int nbracket = 0, nquotes = 0; const char *startp = p; int status; str tok; str_init( &tok ); while ( p && *p ) { if ( !nquotes && !nbracket ) { if ( *p==',' || *p=='=' || *p=='}' || *p==')' ) goto out; } if ( *p=='\"' && nbracket==0 && ( p==startp || *(p-1)!='\\' ) ) { nquotes = !nquotes; str_addchar( &tok, *p ); if ( !nquotes ) { status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) { p = NULL; goto outerr; } str_empty( &tok ); } } else if ( *p=='#' && !nquotes && !nbracket ) { if ( str_has_value( &tok ) ) { status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) { p = NULL; goto outerr; } } str_strcpyc( &tok, "#" ); status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) { p = NULL; goto outerr; } str_empty( &tok ); } else if ( *p=='{' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket++; str_addchar( &tok, *p ); } else if ( *p=='}' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket--; str_addchar( &tok, *p ); if ( nbracket==0 ) { status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) { p = NULL; goto outerr; } str_empty( &tok ); } } else if ( !is_ws( *p ) || nquotes || nbracket ) { if ( !is_ws( *p ) ) str_addchar( &tok, *p ); else { if ( tok.len!=0 && *p!='\n' && *p!='\r' ) str_addchar( &tok, *p ); else if ( tok.len!=0 && (*p=='\n' || *p=='\r')) { str_addchar( &tok, ' ' ); while ( is_ws( *(p+1) ) ) p++; } } } else if ( is_ws( *p ) ) { if ( str_has_value( &tok ) ) { status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) { p = NULL; goto outerr; } str_empty( &tok ); } } p++; } out: if ( nbracket!=0 ) { fprintf( stderr, "%s: Mismatch in number of brackets in reference %ld\n", pm->progname, nref ); } if ( nquotes!=0 ) { fprintf( stderr, "%s: Mismatch in number of quotes in reference %ld\n", pm->progname, nref ); } if ( str_has_value( &tok ) ) { status = slist_add( tokens, &tok ); if ( status!=SLIST_OK ) p = NULL; } outerr: str_free( &tok ); return p; } /* replace_strings() * * do string replacement -- only if unprotected by quotation marks or curly brackets */ static void replace_strings( slist *tokens, fields *bibin, long nref, param *pm ) { int i, n, ok; char *q; str *s; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( s->data, "#" ) ) { } else if ( s->data[0]!='\"' && s->data[0]!='{' ) { n = slist_find( &find, s ); if ( n!=-1 ) { str_strcpy( s, slist_str( &replace, n ) ); } else { q = s->data; ok = 1; while ( *q && ok ) { if ( !isdigit( *q ) ) ok = 0; q++; } if ( !ok ) { fprintf( stderr, "%s: Warning: Non-numeric " "BibTeX elements should be in quotations or " "curly brackets in reference %ld\n", pm->progname, nref ); } } } i++; } } static int string_concatenate( slist *tokens, fields *bibin, long nref, param *pm ) { int i, status; str *s, *t; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( str_cstr( s ), "#" ) ) { if ( i==0 || i==tokens->n-1 ) { fprintf( stderr, "%s: Warning: Stray string concatenation " "('#' character) in reference %ld\n", pm->progname, nref ); status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; continue; } s = slist_str( tokens, i-1 ); if ( s->data[0]!='\"' && s->data[s->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); t = slist_str( tokens, i+1 ); if ( t->data[0]!='\"' && t->data[t->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); if ( ( s->data[s->len-1]=='\"' && t->data[0]=='\"') || (s->data[s->len-1]=='}' && t->data[0]=='{') ) { str_trimend( s, 1 ); str_trimbegin( t, 1 ); str_strcat( s, t ); } else { str_strcat( s, t ); } status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } else i++; } return BIBL_OK; } static const char * process_biblatexline( const char *p, str *tag, str *data, uchar stripquotes, long nref, param *pm ) { int i, status; slist tokens; str *s; str_empty( data ); p = biblatex_tag( p, tag ); if ( str_is_empty( tag ) ) { /* ...skip this line */ while ( *p && *p!='\n' && *p!='\r' ) p++; while ( *p=='\n' || *p=='\r' ) p++; return p; } slist_init( &tokens ); if ( *p=='=' ) p = biblatex_data( p+1, NULL, &tokens, nref, pm ); replace_strings( &tokens, NULL, nref, pm ); status = string_concatenate( &tokens, NULL, nref, pm ); if ( status!=BIBL_OK ) { p = NULL; goto out; } for ( i=0; idata[0]=='\"' && s->data[s->len-1]=='\"' ) || ( s->data[0]=='{' && s->data[s->len-1]=='}' ) ) { str_trimbegin( s, 1 ); str_trimend( s, 1 ); } str_strcat( data, slist_str( &tokens, i ) ); } out: slist_free( &tokens ); return p; } static int process_cite( fields *bibin, const char *p, const char *filename, long nref, param *pm ) { int fstatus, status = BIBL_OK; str type, id, tag, data; strs_init( &type, &id, &tag, &data, NULL ); p = process_biblatextype( p, &type ); p = process_biblatexid( p, &id ); if ( str_is_empty( &type ) || str_is_empty( &id ) ) goto out; fstatus = fields_add( bibin, "INTERNAL_TYPE", str_cstr( &type ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( bibin, "REFNUM", str_cstr( &id ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p ) { p = process_biblatexline( p, &tag, &data, 1, nref, pm ); if ( !p ) { status = BIBL_ERR_MEMERR; goto out; } /* no anonymous or empty fields allowed */ if ( str_has_value( &tag ) && str_has_value( &data ) ) { fstatus = fields_add( bibin, str_cstr( &tag ), str_cstr( &data ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } strs_empty( &tag, &data, NULL ); } out: strs_free( &type, &id, &tag, &data, NULL ); return status; } /* process_string() * * Handle lines like: * * '@STRING{TL = {Tetrahedron Lett.}}' * * p should point to just after '@STRING' * * In BibTeX, if a string is defined several times, the last one is kept. * */ static int process_string( const char *p, long nref, param *pm ) { int n, status = BIBL_OK; str s1, s2, *s; strs_init( &s1, &s2, NULL ); while ( *p && *p!='{' && *p!='(' ) p++; if ( *p=='{' || *p=='(' ) p++; (void) process_biblatexline( skip_ws( p ), &s1, &s2, 0, nref, pm ); if ( str_has_value( &s2 ) ) { str_findreplace( &s2, "\\ ", " " ); if ( str_memerr( &s2 ) ) { status = BIBL_ERR_MEMERR; goto out; } } else { str_strcpyc( &s2, "" ); } if ( str_has_value( &s1 ) ) { n = slist_find( &find, &s1 ); if ( n==-1 ) { status = slist_add_ret( &find, &s1, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; status = slist_add_ret( &replace, &s2, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; } else { if ( str_has_value( &s2 ) ) s = slist_set( &replace, n, &s2 ); else s = slist_setc( &replace, n, "" ); if ( s==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &s1, &s2, NULL ); return status; } static int biblatexin_processf( fields *bibin, const char *data, const char *filename, long nref, param *p ) { if ( !strncasecmp( data, "@STRING", 7 ) ) { process_string( data+7, nref, p ); return 0; } else { process_cite( bibin, data, filename, nref, p ); return 1; } } /***************************************************** PUBLIC: void biblatexin_cleanf() *****************************************************/ static int is_url_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "url" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "file" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "doi" ) ) return 1; } return 0; } static int is_name_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "author" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editor" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editorb" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editorc" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "director" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "producer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "execproducer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "writer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "redactor" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "annotator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "commentator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "translator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "foreword" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "afterword" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "introduction" ) ) return 1; } return 0; } static int biblatexin_cleanvalue( str *tag, str *value, fields *bibin, param *p ) { int status = BIBL_OK; str parsed; if ( str_is_empty( value ) ) return BIBL_OK; /* protect url from undergoing any parsing */ if ( is_url_tag( tag ) ) return BIBL_OK; /* delay names from undergoing any parsing */ if ( is_name_tag( tag ) ) return BIBL_OK; str_init( &parsed ); status = latex_parse( value, &parsed ); if ( status!=BIBL_OK ) goto out; str_strcpy( value, &parsed ); if ( str_memerr( value ) ) status = BIBL_ERR_MEMERR; out: str_free( &parsed ); return status; } static void biblatexin_nocrossref( bibl *bin, long i, int n, param *p ) { int n1 = fields_find( bin->ref[i], "REFNUM", LEVEL_ANY ); if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find cross-reference '%s'", (char*)fields_value( bin->ref[i], n, FIELDS_CHRP_NOUSE ) ); if ( n1!=FIELDS_NOTFOUND ) fprintf( stderr, " for reference '%s'", (char*)fields_value( bin->ref[i], n1, FIELDS_CHRP_NOUSE ) ); fprintf( stderr, "\n" ); } static int biblatexin_crossref_oneref( fields *ref, fields *cross ) { int j, nl, ntype, fstatus; char *type, *nt, *nd; ntype = fields_find( ref, "INTERNAL_TYPE", LEVEL_ANY ); type = ( char * ) fields_value( ref, ntype, FIELDS_CHRP_NOUSE ); for ( j=0; jn; ++j ) { nt = ( char * ) fields_tag( cross, j, FIELDS_CHRP_NOUSE ); if ( !strcasecmp( nt, "INTERNAL_TYPE" ) ) continue; if ( !strcasecmp( nt, "REFNUM" ) ) continue; if ( !strcasecmp( nt, "TITLE" ) ) { if ( !strcasecmp( type, "Inproceedings" ) || !strcasecmp( type, "Incollection" ) ) nt = "booktitle"; } nd = ( char * ) fields_value( cross, j, FIELDS_CHRP_NOUSE ); nl = fields_level( cross, j ) + 1; fstatus = fields_add( ref, nt, nd, nl ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int biblatexin_crossref( bibl *bin, param *p ) { int n, ncross, status = BIBL_OK; fields *ref, *cross; long i; for ( i=0; in; ++i ) { ref = bin->ref[i]; n = fields_find( ref, "CROSSREF", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; fields_set_used( ref, n ); ncross = bibl_findref( bin, (char*) fields_value(ref,n, FIELDS_CHRP_NOUSE) ); if ( ncross==-1 ) { biblatexin_nocrossref( bin, i, n, p ); continue; } cross = bin->ref[ncross]; status = biblatexin_crossref_oneref( ref, cross ); if ( status!=BIBL_OK ) return status; } return status; } static int biblatexin_cleanref( fields *bibin, param *p ) { int i, n, status; str *t, *d; n = fields_num( bibin ); for ( i=0; in; ++i ) { status = biblatexin_cleanref( bin->ref[i], p ); if ( status!=BIBL_OK ) return status; } status = biblatexin_crossref( bin, p ); return status; } /***************************************************** PUBLIC: void biblatexin_typef() *****************************************************/ static int biblatexin_typef( fields *bibin, const char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename=""; ntypename = fields_find( bibin, "INTERNAL_TYPE", LEVEL_MAIN ); nrefname = fields_find( bibin, "REFNUM", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( bibin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( bibin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int biblatexin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* get_title_elements() * * find all of the biblatex title elements for the current level * internal "TITLE" -> "title", "booktitle", "maintitle" * internal "SUBTITLE" -> "subtitle", "booksubtitle", "mainsubtitle" * internal "TITLEADDON" -> "titleaddon", "booktitleaddon", "maintitleaddon" * * place in ttl, subttl, and ttladdon strings * * return 1 if an element is found, 0 if not */ static int get_title_elements( fields *bibin, int currlevel, int reftype, variants *all, int nall, str *ttl, str *subttl, str *ttladdon ) { int nfields, process, level, i; str *t, *d; char *newtag; strs_empty( ttl, subttl, ttladdon, NULL ); nfields = fields_num( bibin ); for ( i=0; ilen == 0 ) continue; if ( !translate_oldtag( t->data, reftype, all, nall, &process, &level, &newtag ) ) continue; if ( process != TITLE ) continue; if ( level != currlevel ) continue; fields_set_used( bibin, i ); if ( !strcasecmp( newtag, "TITLE" ) ) { if ( str_has_value( ttl ) ) str_addchar( ttl, ' ' ); str_strcat( ttl, d ); } else if ( !strcasecmp( newtag, "SUBTITLE" ) ) { if ( str_has_value( subttl ) ) str_addchar( subttl, ' ' ); str_strcat( subttl, d ); } else if ( !strcasecmp( newtag, "TITLEADDON" ) ) { if ( str_has_value( ttladdon ) ) str_addchar( ttladdon, ' ' ); str_strcat( ttladdon, d ); } } return ( ttl->len>0 || subttl->len > 0 || ttladdon->len > 0 ); } /* attach_subtitle() * * Add subtitle (if exists) to the title */ static void attach_subtitle( str *title, str *subtitle ) { if ( str_has_value( subtitle ) ) { if ( str_has_value( title ) ) { if ( title->data[title->len-1]!=':' && title->data[title->len-1]!='?' ) str_addchar( title, ':' ); str_addchar( title, ' ' ); } str_strcat( title, subtitle ); } } /* attach_addon() * * Add titleaddon (if exists) to the title. */ static void attach_addon( str *title, str *addon ) { if ( str_has_value( addon ) ) { if ( str_has_value( title ) ) { if ( title->data[title->len-1]!='.' ) str_addchar( title, '.' ); str_addchar( title, ' ' ); } str_strcat( title, addon ); } } static int process_combined_title( fields *info, str *ttl, str *subttl, str *ttladdon, int currlevel ) { int fstatus, status = BIBL_OK; str combined; str_init( &combined ); str_strcpy( &combined, ttl ); attach_subtitle( &combined, subttl ); attach_addon( &combined, ttladdon ); if ( str_memerr( &combined ) ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( info, "TITLE", str_cstr( &combined ), currlevel ); if ( fstatus==FIELDS_OK ) status = BIBL_ERR_MEMERR; out: str_free( &combined ); return status; } static int process_separated_title( fields *info, str *ttl, str *subttl, str *ttladdon, int currlevel ) { int fstatus; if ( str_has_value( ttladdon ) ) { if ( subttl->len ) attach_addon( subttl, ttladdon ); else attach_addon( ttl, ttladdon ); } if ( str_has_value( ttl ) ) { fstatus = fields_add( info, "TITLE", str_cstr( ttl ), currlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( str_has_value( subttl ) ) { fstatus = fields_add( info, "SUBTITLE", str_cstr( subttl ), currlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int process_title_all( fields *bibin, fields *info, int reftype, param *p ) { int currlevel, found, status = BIBL_OK; str ttl, subttl, ttladdon; strs_init( &ttl, &subttl, &ttladdon, NULL ); for ( currlevel = 0; currlevelall, p->nall, &ttl, &subttl, &ttladdon ); if ( !found ) continue; if ( p->nosplittitle ) status = process_combined_title( info, &ttl, &subttl, &ttladdon, currlevel ); else status = process_separated_title( info, &ttl, &subttl, &ttladdon, currlevel ); if ( status!=BIBL_OK ) goto out; } out: strs_free( &ttl, &subttl, &ttladdon, NULL ); return status; } static int biblatex_matches_list( fields *info, char *tag, char *suffix, str *data, int level, slist *names, int *match ) { int i, fstatus, status = BIBL_OK; str newtag; *match = 0; if ( names->n==0 ) return status; str_init( &newtag ); for ( i=0; in; ++i ) { if ( strcmp( str_cstr( data ), slist_cstr( names, i ) ) ) continue; str_initstrc( &newtag, tag ); str_strcatc( &newtag, suffix ); fstatus = fields_add( info, str_cstr( &newtag ), str_cstr( data ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } *match = 1; goto out; } out: str_free( &newtag ); return status; } static int biblatex_names( fields *info, char *tag, str *data, int level, slist *asis, slist *corps ) { int begin, end, ok, n, etal, i, match, status = BIBL_OK; slist tokens; str parsed, *s; /* If we match the asis or corps list add and bail. */ status = biblatex_matches_list( info, tag, ":ASIS", data, level, asis, &match ); if ( match==1 || status!=BIBL_OK ) return status; status = biblatex_matches_list( info, tag, ":CORP", data, level, corps, &match ); if ( match==1 || status!=BIBL_OK ) return status; slist_init( &tokens ); str_init( &parsed ); status = latex_tokenize( &tokens, data ); if ( status!=BIBL_OK ) goto out; for ( i=0; idata; int fstatus = FIELDS_OK; /* type in the @thesis is used to distinguish Ph.D. and Master's thesis */ if ( !strncasecmp( p, "phdthesis", 9 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Ph.D. thesis", level ); } else if ( !strncasecmp( p, "mastersthesis", 13 ) || !strncasecmp( p, "masterthesis", 12 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Masters thesis", level ); } else if ( !strncasecmp( p, "mathesis", 8 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Masters thesis", level ); } else if ( !strncasecmp( p, "diploma", 7 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Diploma thesis", level ); } else if ( !strncasecmp( p, "habilitation", 12 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Habilitation thesis", level ); } if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static int biblatexin_bteprint( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int neprint, netype, fstatus; char *eprint = NULL, *etype = NULL; neprint = fields_find( bibin, "eprint", LEVEL_ANY ); netype = fields_find( bibin, "eprinttype", LEVEL_ANY ); if ( neprint!=FIELDS_NOTFOUND ) eprint = fields_value( bibin, neprint, FIELDS_CHRP ); if ( netype!=FIELDS_NOTFOUND ) etype = fields_value( bibin, netype, FIELDS_CHRP ); if ( eprint && etype ) { if ( !strncasecmp( etype, "arxiv", 5 ) ) { fstatus = fields_add( bibout, "ARXIV", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "jstor", 5 ) ) { fstatus = fields_add( bibout, "JSTOR", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "pubmed", 6 ) ) { fstatus = fields_add( bibout, "PMID", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "medline", 7 ) ) { fstatus = fields_add( bibout, "MEDLINE", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else { fstatus = fields_add( bibout, "EPRINT", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fstatus = fields_add( bibout, "EPRINTTYPE", etype, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } fields_set_used( bibin, neprint ); fields_set_used( bibin, netype ); } else if ( eprint ) { fstatus = fields_add( bibout, "EPRINT", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fields_set_used( bibin, neprint ); } else if ( etype ) { fstatus = fields_add( bibout, "EPRINTTYPE", etype, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fields_set_used( bibin, netype ); } return BIBL_OK; } static int biblatexin_btgenre( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( fields_add( bibout, "GENRE:BIBUTILS", str_cstr( invalue ), level ) == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* biblatexin_howpublished() * * howpublished={}, * * Normally indicates the manner in which something was * published in lieu of a formal publisher, so typically * 'howpublished' and 'publisher' will never be in the * same reference. * * Occasionally, people put Diploma thesis information * into this field, so check for that first. */ static int biblatexin_howpublished( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus; if ( !strncasecmp( str_cstr( invalue ), "Diplom", 6 ) ) fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Diploma thesis", level ); else if ( !strncasecmp( str_cstr( invalue ), "Habilitation", 13 ) ) fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Habilitation thesis", level ); else fstatus = fields_add( bibout, "PUBLISHER", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* * biblatex has multiple editor fields "editor", "editora", "editorb", "editorc", * each of which can be modified from a type of "EDITOR" via "editortype", * "editoratype", "editorbtype", "editorctype". * * Defined types: * "editor" * "collaborator" * "compiler" * "redactor" * * "reviser" ? * "founder" ? * "continuator" ? * * bibtex-chicago * * "director" * "producer" * "conductor" * "none" (for performer) */ static int biblatexin_blteditor( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *editor_fields[] = { "editor", "editora", "editorb", "editorc" }; char *editor_types[] = { "editortype", "editoratype", "editorbtype", "editorctype" }; int i, n = 0, ntype, neditors = sizeof( editor_fields ) / sizeof( editor_fields[0] ); char *type, *usetag = "EDITOR"; for ( i=1; idata, editor_fields[i] ) ) n = i; ntype = fields_find( bibin, editor_types[n], LEVEL_ANY ); if ( ntype!=FIELDS_NOTFOUND ) { type = fields_value( bibin, ntype, FIELDS_CHRP_NOUSE ); if ( !strcasecmp( type, "collaborator" ) ) usetag = "COLLABORATOR"; else if ( !strcasecmp( type, "compiler" ) ) usetag = "COMPILER"; else if ( !strcasecmp( type, "redactor" ) ) usetag = "REDACTOR"; else if ( !strcasecmp( type, "director" ) ) usetag = "DIRECTOR"; else if ( !strcasecmp( type, "producer" ) ) usetag = "PRODUCER"; else if ( !strcasecmp( type, "none" ) ) usetag = "PERFORMER"; } return biblatex_names( bibout, usetag, invalue, level, &(pm->asis), &(pm->corps) ); } static int biblatexin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return biblatex_names( bibout, outtag, invalue, level, &(pm->asis), &(pm->corps) ); } static void biblatexin_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "INTERNAL_TYPE" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, " Cannot find tag '%s'\n", tag ); } } static int biblatexin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ PAGES ] = generic_pages, [ NOTES ] = generic_notes, [ PERSON ] = biblatexin_person, [ BLT_EDITOR ] = biblatexin_blteditor, [ HOWPUBLISHED ] = biblatexin_howpublished, [ URL ] = generic_url, [ GENRE ] = biblatexin_btgenre, [ BT_EPRINT ] = biblatexin_bteprint, [ BLT_THESIS_TYPE ] = biblatexin_bltthesistype, [ BLT_SCHOOL ] = biblatexin_bltschool, [ BLT_SUBTYPE ] = biblatexin_bltsubtype, [ BLT_SKIP ] = generic_skip, [ TITLE ] = generic_null, /* delay processing until later */ }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; idata, reftype, p->all, p->nall, &process, &level, &outtag ) ) { biblatexin_notag( p, intag->data ); continue; } status = convertfns[ process ]( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; if ( convertfns[ process ] != generic_null ) fields_set_used( bibin, i ); } status = process_title_all( bibin, bibout, reftype, p ); if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stdout ); return status; } hs-bibutils-6.10.0.0/bibutils/biblatexout.c0000644000000000000000000006561207346545000016667 0ustar0000000000000000/* * biblatexout.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "str.h" #include "strsearch.h" #include "utf8.h" #include "xml.h" #include "fields.h" #include "generic.h" #include "name.h" #include "title.h" #include "type.h" #include "url.h" #include "bibformats.h" /***************************************************** PUBLIC: int biblatexout_initparams() *****************************************************/ static int biblatexout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static int biblatexout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int biblatexout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_BIBLATEXOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 1; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = biblatexout_assemble; pm->writef = biblatexout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int biblatexout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE, TYPE_SUPPPERIODICAL, TYPE_INBOOK, TYPE_INPROCEEDINGS, TYPE_PROCEEDINGS, TYPE_CONFERENCE, /* legacy */ TYPE_INCOLLECTION, TYPE_COLLECTION, TYPE_SUPPCOLLECTION, TYPE_REFERENCE, TYPE_MVREFERENCE, TYPE_BOOK, TYPE_BOOKLET, TYPE_SUPPBOOK, TYPE_PHDTHESIS, /* legacy */ TYPE_MASTERSTHESIS, /* legacy */ TYPE_DIPLOMATHESIS, TYPE_REPORT, TYPE_TECHREPORT, TYPE_MANUAL, TYPE_UNPUBLISHED, TYPE_PATENT, TYPE_ELECTRONIC, /* legacy */ TYPE_ONLINE, TYPE_WWW, /* jurabib compatibility */ TYPE_MISC, NUM_TYPES }; static int biblatexout_type( fields *in, const char *progname, const char *filename, unsigned long refnum ) { match_type genre_matches[] = { { "periodical", TYPE_ARTICLE, LEVEL_ANY }, { "academic journal", TYPE_ARTICLE, LEVEL_ANY }, { "magazine", TYPE_ARTICLE, LEVEL_ANY }, { "newspaper", TYPE_ARTICLE, LEVEL_ANY }, { "article", TYPE_ARTICLE, LEVEL_ANY }, { "instruction", TYPE_MANUAL, LEVEL_ANY }, { "book", TYPE_BOOK, LEVEL_MAIN }, { "booklet", TYPE_BOOKLET, LEVEL_MAIN }, { "book", TYPE_INBOOK, LEVEL_ANY }, { "book chapter", TYPE_INBOOK, LEVEL_ANY }, { "unpublished", TYPE_UNPUBLISHED, LEVEL_ANY }, { "manuscript", TYPE_UNPUBLISHED, LEVEL_ANY }, { "conference publication", TYPE_PROCEEDINGS, LEVEL_MAIN }, { "conference publication", TYPE_INPROCEEDINGS, LEVEL_ANY }, { "collection", TYPE_COLLECTION, LEVEL_MAIN }, { "collection", TYPE_INCOLLECTION, LEVEL_ANY }, { "report", TYPE_REPORT, LEVEL_ANY }, { "technical report", TYPE_TECHREPORT, LEVEL_ANY }, { "Masters thesis", TYPE_MASTERSTHESIS, LEVEL_ANY }, { "Diploma thesis", TYPE_DIPLOMATHESIS, LEVEL_ANY }, { "Ph.D. thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "Licentiate thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "electronic", TYPE_ELECTRONIC, LEVEL_ANY }, { "patent", TYPE_PATENT, LEVEL_ANY }, { "miscellaneous", TYPE_MISC, LEVEL_ANY }, }; int ngenre_matches = sizeof( genre_matches ) / sizeof( genre_matches[0] ); match_type resource_matches[] = { { "moving image", TYPE_ELECTRONIC, LEVEL_ANY }, { "software, multimedia", TYPE_ELECTRONIC, LEVEL_ANY }, }; int nresource_matches = sizeof( resource_matches ) /sizeof( resource_matches[0] ); match_type issuance_matches[] = { { "monographic", TYPE_BOOK, LEVEL_MAIN }, { "monographic", TYPE_INBOOK, LEVEL_ANY }, }; int nissuance_matches = sizeof( issuance_matches ) / sizeof( issuance_matches[0] ); int type, maxlevel, n; type = type_from_mods_hints( in, TYPE_FROM_GENRE, genre_matches, ngenre_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_RESOURCE, resource_matches, nresource_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_ISSUANCE, issuance_matches, nissuance_matches, TYPE_UNKNOWN ); /* default to TYPE_MISC */ if ( type==TYPE_UNKNOWN ) { maxlevel = fields_maxlevel( in ); if ( maxlevel > 0 ) type = TYPE_MISC; else { if ( progname ) fprintf( stderr, "%s: ", progname ); fprintf( stderr, "Cannot identify TYPE in reference %lu ", refnum+1 ); n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) fprintf( stderr, " %s", (char*) fields_value( in, n, FIELDS_CHRP ) ); fprintf( stderr, " (defaulting to @Misc)\n" ); type = TYPE_MISC; } } return type; } static void append_type( int type, fields *out, int *status ) { char *typenames[ NUM_TYPES ] = { [ TYPE_ARTICLE ] = "Article", [ TYPE_SUPPPERIODICAL ] = "SuppPeriodical", [ TYPE_INBOOK ] = "Inbook", [ TYPE_PROCEEDINGS ] = "Proceedings", [ TYPE_INPROCEEDINGS ] = "InProceedings", [ TYPE_CONFERENCE ] = "Conference", [ TYPE_BOOK ] = "Book", [ TYPE_BOOKLET ] = "Booklet", [ TYPE_SUPPBOOK ] = "SuppBook", [ TYPE_PHDTHESIS ] = "PhdThesis", [ TYPE_MASTERSTHESIS ] = "MastersThesis", [ TYPE_DIPLOMATHESIS ] = "MastersThesis", [ TYPE_REPORT ] = "Report", [ TYPE_TECHREPORT ] = "TechReport", [ TYPE_REFERENCE ] = "Reference", [ TYPE_MVREFERENCE ] = "MvReference", [ TYPE_MANUAL ] = "Manual", [ TYPE_COLLECTION ] = "Collection", [ TYPE_SUPPCOLLECTION ] = "SuppCollection", [ TYPE_INCOLLECTION ] = "InCollection", [ TYPE_UNPUBLISHED ] = "Unpublished", [ TYPE_ELECTRONIC ] = "Electronic", [ TYPE_ONLINE ] = "Online", [ TYPE_WWW ] = "WWW", [ TYPE_PATENT ] = "Patent", [ TYPE_MISC ] = "Misc", }; int fstatus; char *s; if ( type < 0 || type >= NUM_TYPES ) type = TYPE_MISC; s = typenames[ type ]; fstatus = fields_add( out, "TYPE", s, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_citekey( fields *in, fields *out, int format_opts, int *status ) { int n, fstatus; str s; char *p; n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( ( format_opts & BIBL_FORMAT_BIBOUT_DROPKEY ) || n==FIELDS_NOTFOUND ) { fstatus = fields_add( out, "REFNUM", "", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else { str_init( &s ); p = fields_value( in, n, FIELDS_CHRP ); while ( p && *p && *p!='|' ) { if ( format_opts & BIBL_FORMAT_BIBOUT_STRICTKEY ) { if ( isdigit((unsigned char)*p) || (*p>='A' && *p<='Z') || (*p>='a' && *p<='z' ) ) { str_addchar( &s, *p ); } } else { if ( *p!=' ' && *p!='\t' ) { str_addchar( &s, *p ); } } p++; } if ( str_memerr( &s ) ) { *status = BIBL_ERR_MEMERR; str_free( &s ); return; } fstatus = fields_add( out, "REFNUM", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; str_free( &s ); } } static void append_simple( fields *in, char *intag, char *outtag, fields *out, int *status ) { int n, fstatus; n = fields_find( in, intag, LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { fields_set_used( in, n ); fstatus = fields_add( out, outtag, fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static void append_simpleall( fields *in, char *intag, char *outtag, fields *out, int *status ) { int i, fstatus; for ( i=0; in; ++i ) { if ( fields_match_tag( in, i, intag ) ) { fields_set_used( in, i ); fstatus = fields_add( out, outtag, fields_value( in, i, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } } static void append_keywords( fields *in, fields *out, int *status ) { str keywords, *word; vplist_index i; int fstatus; vplist a; str_init( &keywords ); vplist_init( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_STRP, &a, "KEYWORD" ); if ( a.n ) { for ( i=0; i0 ) str_strcatc( &keywords, "; " ); str_strcat( &keywords, word ); } if ( str_memerr( &keywords ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, "keywords", str_cstr( &keywords ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &keywords ); vplist_free( &a ); } static void append_fileattach( fields *in, fields *out, int *status ) { char *tag, *value; int i, fstatus; str data; str_init( &data ); for ( i=0; in; ++i ) { tag = fields_tag( in, i, FIELDS_CHRP ); if ( strcasecmp( tag, "FILEATTACH" ) ) continue; value = fields_value( in, i, FIELDS_CHRP ); str_strcpyc( &data, ":" ); str_strcatc( &data, value ); if ( strsearch( value, ".pdf" ) ) str_strcatc( &data, ":PDF" ); else if ( strsearch( value, ".html" ) ) str_strcatc( &data, ":HTML" ); else str_strcatc( &data, ":TYPE" ); if ( str_memerr( &data ) ) { *status = BIBL_ERR_MEMERR; goto out; } fields_set_used( in, i ); fstatus = fields_add( out, "file", str_cstr( &data ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } str_empty( &data ); } out: str_free( &data ); } static void append_people( fields *in, char *tag, char *ctag, char *atag, char *bibtag, int level, fields *out, int format_opts, int latex_out, int *status ) { int i, npeople, person, corp, asis, fstatus; str allpeople, oneperson; strs_init( &allpeople, &oneperson, NULL ); /* primary citation authors */ npeople = 0; for ( i=0; in; ++i ) { if ( level!=LEVEL_ANY && in->level[i]!=level ) continue; person = ( strcasecmp( in->tag[i].data, tag ) == 0 ); corp = ( strcasecmp( in->tag[i].data, ctag ) == 0 ); asis = ( strcasecmp( in->tag[i].data, atag ) == 0 ); if ( person || corp || asis ) { if ( npeople>0 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) str_strcatc( &allpeople, "\n\t\tand " ); else str_strcatc( &allpeople, "\nand " ); } if ( corp ) { if ( latex_out ) str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); if ( latex_out ) str_addchar( &allpeople, '}' ); } else if ( asis ) { if ( latex_out ) str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); if ( latex_out ) str_addchar( &allpeople, '}' ); } else { name_build_withcomma( &oneperson, fields_value( in, i, FIELDS_CHRP ) ); str_strcat( &allpeople, &oneperson ); } npeople++; } } if ( npeople ) { fstatus = fields_add( out, bibtag, allpeople.data, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } strs_free( &allpeople, &oneperson, NULL ); } static int append_title_chosen( fields *in, char *bibtag, fields *out, int nmainttl, int nsubttl ) { str fulltitle, *mainttl = NULL, *subttl = NULL; int status, ret = BIBL_OK; str_init( &fulltitle ); if ( nmainttl!=-1 ) { mainttl = fields_value( in, nmainttl, FIELDS_STRP ); fields_set_used( in, nmainttl ); } if ( nsubttl!=-1 ) { subttl = fields_value( in, nsubttl, FIELDS_STRP ); fields_set_used( in, nsubttl ); } title_combine( &fulltitle, mainttl, subttl ); if ( str_memerr( &fulltitle ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fulltitle ) ) { status = fields_add( out, bibtag, str_cstr( &fulltitle ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) ret = BIBL_ERR_MEMERR; } out: str_free( &fulltitle ); return ret; } static int append_title( fields *in, char *bibtag, int level, fields *out, int format_opts ) { int title, short_title, subtitle, short_subtitle, use_title, use_subtitle; title = fields_find( in, "TITLE", level ); short_title = fields_find( in, "SHORTTITLE", level ); subtitle = fields_find( in, "SUBTITLE", level ); short_subtitle = fields_find( in, "SHORTSUBTITLE", level ); if ( title==FIELDS_NOTFOUND || ( ( format_opts & BIBL_FORMAT_BIBOUT_SHORTTITLE ) && level==1 ) ) { use_title = short_title; use_subtitle = short_subtitle; } else { use_title = title; use_subtitle = subtitle; } return append_title_chosen( in, bibtag, out, use_title, use_subtitle ); } static void append_titles( fields *in, int type, fields *out, int format_opts, int *status ) { /* item=main level title */ *status = append_title( in, "title", 0, out, format_opts ); if ( *status!=BIBL_OK ) return; switch( type ) { case TYPE_ARTICLE: *status = append_title( in, "journal", 1, out, format_opts ); break; case TYPE_INBOOK: *status = append_title( in, "bookTitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_INCOLLECTION: case TYPE_INPROCEEDINGS: *status = append_title( in, "booktitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_PHDTHESIS: case TYPE_MASTERSTHESIS: *status = append_title( in, "series", 1, out, format_opts ); break; case TYPE_BOOK: case TYPE_REPORT: case TYPE_COLLECTION: case TYPE_PROCEEDINGS: *status = append_title( in, "series", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; default: /* do nothing */ break; } } static int find_date( fields *in, char *date_element ) { char date[100], partdate[100]; int n; sprintf( date, "DATE:%s", date_element ); n = fields_find( in, date, LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) { sprintf( partdate, "PARTDATE:%s", date_element ); n = fields_find( in, partdate, LEVEL_ANY ); } return n; } static void append_date( fields *in, fields *out, int *status ) { char *months[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; int n, month, fstatus; n = find_date( in, "YEAR" ); if ( n!=FIELDS_NOTFOUND ) { fields_set_used( in, n ); fstatus = fields_add( out, "year", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "MONTH" ); if ( n!=-1 ) { fields_set_used( in, n ); month = atoi( fields_value( in, n, FIELDS_CHRP ) ); if ( month>0 && month<13 ) fstatus = fields_add( out, "month", months[month-1], LEVEL_MAIN ); else fstatus = fields_add( out, "month", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "DAY" ); if ( n!=-1 ) { fields_set_used( in, n ); fstatus = fields_add( out, "day", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_arxiv( fields *in, fields *out, int *status ) { int n, fstatus1, fstatus2; str url; n = fields_find( in, "ARXIV", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_set_used( in, n ); /* ...write: * archivePrefix = "arXiv", * eprint = "#####", * ...for arXiv references */ fstatus1 = fields_add( out, "archivePrefix", "arXiv", LEVEL_MAIN ); fstatus2 = fields_add( out, "eprint", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK || fstatus2!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } /* ...also write: * url = "http://arxiv.org/abs/####", * ...to maximize compatibility */ str_init( &url ); arxiv_to_url( in, n, "URL", &url ); if ( str_has_value( &url ) ) { fstatus1 = fields_add( out, "url", str_cstr( &url ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &url ); } static void append_urls( fields *in, fields *out, int *status ) { int lstatus; slist types; lstatus = slist_init_valuesc( &types, "URL", "DOI", "PMID", "PMC", "JSTOR", NULL ); if ( lstatus!=SLIST_OK ) { *status = BIBL_ERR_MEMERR; return; } *status = urls_merge_and_add( in, LEVEL_ANY, out, "url", LEVEL_MAIN, &types ); slist_free( &types ); } static void append_isi( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ISIREFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fstatus = fields_add( out, "note", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_articlenumber( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ARTICLENUMBER", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_set_used( in, n ); fstatus = fields_add( out, "pages", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static int pages_build_pagestr( str *pages, fields *in, int sn, int en, int format_opts ) { /* ...append if starting page number is defined */ if ( sn!=-1 ) { str_strcat( pages, fields_value( in, sn, FIELDS_STRP ) ); fields_set_used( in, sn ); } /* ...append dashes if both starting and ending page numbers are defined */ if ( sn!=-1 && en!=-1 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_SINGLEDASH ) str_strcatc( pages, "-" ); else str_strcatc( pages, "--" ); } /* ...append ending page number is defined */ if ( en!=-1 ) { str_strcat( pages, fields_value( in, en, FIELDS_STRP ) ); fields_set_used( in, en ); } if ( str_memerr( pages ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int pages_are_defined( fields *in, int *sn, int *en ) { *sn = fields_find( in, "PAGES:START", LEVEL_ANY ); *en = fields_find( in, "PAGES:STOP", LEVEL_ANY ); if ( *sn==FIELDS_NOTFOUND && *en==FIELDS_NOTFOUND ) return 0; else return 1; } static void append_pages( fields *in, fields *out, int format_opts, int *status ) { int sn, en, fstatus; str pages; if ( !pages_are_defined( in, &sn, &en ) ) { append_articlenumber( in, out, status ); return; } str_init( &pages ); *status = pages_build_pagestr( &pages, in, sn, en, format_opts ); if ( *status==BIBL_OK ) { fstatus = fields_add( out, "pages", str_cstr( &pages ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &pages ); } /* * from Tim Hicks: * I'm no expert on bibtex, but those who know more than I on our mailing * list suggest that 'issue' isn't a recognised key for bibtex and * therefore that bibutils should be aliasing IS to number at some point in * the conversion. * * Therefore prefer outputting issue/number as number and only keep * a distinction if both issue and number are present for a particular * reference. */ static void append_issue_number( fields *in, fields *out, int *status ) { char issue[] = "issue", number[] = "number", *use_issue = number; int nissue = fields_find( in, "ISSUE", LEVEL_ANY ); int nnumber = fields_find( in, "NUMBER", LEVEL_ANY ); int fstatus; if ( nissue!=FIELDS_NOTFOUND && nnumber!=FIELDS_NOTFOUND ) use_issue = issue; if ( nissue!=FIELDS_NOTFOUND ) { fields_set_used( in, nissue ); fstatus = fields_add( out, use_issue, fields_value( in, nissue, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } if ( nnumber!=FIELDS_NOTFOUND ) { fields_set_used( in, nnumber ); fstatus = fields_add( out, "number", fields_value( in, nnumber, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_howpublished( fields *in, fields *out, int *status ) { int n, fstatus; char *d; n = fields_find( in, "GENRE:BIBUTILS", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; d = fields_value( in, n, FIELDS_CHRP_NOUSE ); if ( !strcmp( d, "Habilitation thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Licentiate thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Diploma thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static int biblatexout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ) { int type, status = BIBL_OK; type = biblatexout_type( in, pm->progname, "", refnum ); append_type ( type, out, &status ); append_citekey ( in, out, pm->format_opts, &status ); append_people ( in, "AUTHOR", "AUTHOR:CORP", "AUTHOR:ASIS", "author", LEVEL_MAIN, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "AUTHOR", "AUTHOR:CORP", "AUTHOR:ASIS", "bookauthor", LEVEL_HOST, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "EDITOR", "EDITOR:CORP", "EDITOR:ASIS", "editor", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "ANNOTATOR", "ANNOTATOR:CORP", "ANNOTATOR:ASIS", "annotator", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "TRANSLATOR", "TRANSLATOR:CORP", "TRANSLATOR:ASIS", "translator", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "REDACTOR", "REDACTOR:CORP", "REDACTOR:ASIS", "redactor", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "COMMENTATOR","COMMENTATOR:CORP","COMMENTATOR:ASIS","commentator", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "INTROAUTHOR","INTROAUTHOR:CORP","INTROAUTHOR:ASIS","introduction", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "AFTERAUTHOR","AFTERAUTHOR:CORP","AFTERAUTHOR:ASIS","afterword", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_titles ( in, type, out, pm->format_opts, &status ); append_simple ( in, "SHORTTITLE", "shorttitle", out, &status ); append_date ( in, out, &status ); append_simple ( in, "EDITION", "edition", out, &status ); append_simple ( in, "PUBLISHER", "publisher", out, &status ); append_simple ( in, "ADDRESS", "address", out, &status ); append_simple ( in, "EDITION", "version", out, &status ); append_simple ( in, "PART", "part", out, &status ); append_simple ( in, "VOLUME", "volume", out, &status ); append_issue_number( in, out, &status ); append_pages ( in, out, pm->format_opts, &status ); append_keywords ( in, out, &status ); append_simple ( in, "LANGCATALOG", "hyphenation", out, &status ); append_simple ( in, "CONTENTS", "contents", out, &status ); append_simple ( in, "ABSTRACT", "abstract", out, &status ); append_simple ( in, "LOCATION", "location", out, &status ); append_simple ( in, "DEGREEGRANTOR", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:ASIS", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:CORP", "school", out, &status ); append_simpleall ( in, "NOTES", "note", out, &status ); append_simpleall ( in, "ANNOTE", "annote", out, &status ); append_simpleall ( in, "ANNOTATION", "annotation", out, &status ); append_simple ( in, "ISBN", "isbn", out, &status ); append_simple ( in, "ISSN", "issn", out, &status ); append_simple ( in, "MRNUMBER", "mrnumber", out, &status ); append_simple ( in, "CODEN", "coden", out, &status ); append_simple ( in, "DOI", "doi", out, &status ); append_simple ( in, "EID", "eid", out, &status ); append_urls ( in, out, &status ); append_fileattach ( in, out, &status ); append_arxiv ( in, out, &status ); append_simple ( in, "EPRINTCLASS", "primaryClass", out, &status ); append_isi ( in, out, &status ); append_simple ( in, "LANGUAGE", "language", out, &status ); append_howpublished( in, out, &status ); return status; } /***************************************************** PUBLIC: int biblatexout_write() *****************************************************/ static int biblatexout_write( fields *out, FILE *fp, param *pm, unsigned long refnum ) { int i, j, len, nquotes, format_opts = pm->format_opts; char *tag, *value, ch; /* ...output type information "@article{" */ value = ( char * ) fields_value( out, 0, FIELDS_CHRP ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE) ) fprintf( fp, "@%s{", value ); else { len = (value) ? strlen( value ) : 0; fprintf( fp, "@" ); for ( i=0; in; ++j ) { nquotes = 0; tag = ( char * ) fields_tag( out, j, FIELDS_CHRP ); value = ( char * ) fields_value( out, j, FIELDS_CHRP ); fprintf( fp, ",\n" ); if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) fprintf( fp, " " ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE ) ) fprintf( fp, "%s", tag ); else { len = strlen( tag ); for ( i=0; i0 && value[i-1]=='\\' ) ) fprintf( fp, "\"" ); else { if ( nquotes % 2 == 0 ) fprintf( fp, "``" ); else fprintf( fp, "\'\'" ); nquotes++; } } } if ( format_opts & BIBL_FORMAT_BIBOUT_BRACKETS ) fprintf( fp, "}" ); else fprintf( fp, "\"" ); } /* ...finish reference */ if ( format_opts & BIBL_FORMAT_BIBOUT_FINALCOMMA ) fprintf( fp, "," ); fprintf( fp, "\n}\n\n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/biblatexout.c0000755000000000000000000006561207346545000016672 0ustar0000000000000000/* * biblatexout.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "str.h" #include "strsearch.h" #include "utf8.h" #include "xml.h" #include "fields.h" #include "generic.h" #include "name.h" #include "title.h" #include "type.h" #include "url.h" #include "bibformats.h" /***************************************************** PUBLIC: int biblatexout_initparams() *****************************************************/ static int biblatexout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static int biblatexout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int biblatexout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_BIBLATEXOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 1; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = biblatexout_assemble; pm->writef = biblatexout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int biblatexout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE, TYPE_SUPPPERIODICAL, TYPE_INBOOK, TYPE_INPROCEEDINGS, TYPE_PROCEEDINGS, TYPE_CONFERENCE, /* legacy */ TYPE_INCOLLECTION, TYPE_COLLECTION, TYPE_SUPPCOLLECTION, TYPE_REFERENCE, TYPE_MVREFERENCE, TYPE_BOOK, TYPE_BOOKLET, TYPE_SUPPBOOK, TYPE_PHDTHESIS, /* legacy */ TYPE_MASTERSTHESIS, /* legacy */ TYPE_DIPLOMATHESIS, TYPE_REPORT, TYPE_TECHREPORT, TYPE_MANUAL, TYPE_UNPUBLISHED, TYPE_PATENT, TYPE_ELECTRONIC, /* legacy */ TYPE_ONLINE, TYPE_WWW, /* jurabib compatibility */ TYPE_MISC, NUM_TYPES }; static int biblatexout_type( fields *in, const char *progname, const char *filename, unsigned long refnum ) { match_type genre_matches[] = { { "periodical", TYPE_ARTICLE, LEVEL_ANY }, { "academic journal", TYPE_ARTICLE, LEVEL_ANY }, { "magazine", TYPE_ARTICLE, LEVEL_ANY }, { "newspaper", TYPE_ARTICLE, LEVEL_ANY }, { "article", TYPE_ARTICLE, LEVEL_ANY }, { "instruction", TYPE_MANUAL, LEVEL_ANY }, { "book", TYPE_BOOK, LEVEL_MAIN }, { "booklet", TYPE_BOOKLET, LEVEL_MAIN }, { "book", TYPE_INBOOK, LEVEL_ANY }, { "book chapter", TYPE_INBOOK, LEVEL_ANY }, { "unpublished", TYPE_UNPUBLISHED, LEVEL_ANY }, { "manuscript", TYPE_UNPUBLISHED, LEVEL_ANY }, { "conference publication", TYPE_PROCEEDINGS, LEVEL_MAIN }, { "conference publication", TYPE_INPROCEEDINGS, LEVEL_ANY }, { "collection", TYPE_COLLECTION, LEVEL_MAIN }, { "collection", TYPE_INCOLLECTION, LEVEL_ANY }, { "report", TYPE_REPORT, LEVEL_ANY }, { "technical report", TYPE_TECHREPORT, LEVEL_ANY }, { "Masters thesis", TYPE_MASTERSTHESIS, LEVEL_ANY }, { "Diploma thesis", TYPE_DIPLOMATHESIS, LEVEL_ANY }, { "Ph.D. thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "Licentiate thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "electronic", TYPE_ELECTRONIC, LEVEL_ANY }, { "patent", TYPE_PATENT, LEVEL_ANY }, { "miscellaneous", TYPE_MISC, LEVEL_ANY }, }; int ngenre_matches = sizeof( genre_matches ) / sizeof( genre_matches[0] ); match_type resource_matches[] = { { "moving image", TYPE_ELECTRONIC, LEVEL_ANY }, { "software, multimedia", TYPE_ELECTRONIC, LEVEL_ANY }, }; int nresource_matches = sizeof( resource_matches ) /sizeof( resource_matches[0] ); match_type issuance_matches[] = { { "monographic", TYPE_BOOK, LEVEL_MAIN }, { "monographic", TYPE_INBOOK, LEVEL_ANY }, }; int nissuance_matches = sizeof( issuance_matches ) / sizeof( issuance_matches[0] ); int type, maxlevel, n; type = type_from_mods_hints( in, TYPE_FROM_GENRE, genre_matches, ngenre_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_RESOURCE, resource_matches, nresource_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_ISSUANCE, issuance_matches, nissuance_matches, TYPE_UNKNOWN ); /* default to TYPE_MISC */ if ( type==TYPE_UNKNOWN ) { maxlevel = fields_maxlevel( in ); if ( maxlevel > 0 ) type = TYPE_MISC; else { if ( progname ) fprintf( stderr, "%s: ", progname ); fprintf( stderr, "Cannot identify TYPE in reference %lu ", refnum+1 ); n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) fprintf( stderr, " %s", (char*) fields_value( in, n, FIELDS_CHRP ) ); fprintf( stderr, " (defaulting to @Misc)\n" ); type = TYPE_MISC; } } return type; } static void append_type( int type, fields *out, int *status ) { char *typenames[ NUM_TYPES ] = { [ TYPE_ARTICLE ] = "Article", [ TYPE_SUPPPERIODICAL ] = "SuppPeriodical", [ TYPE_INBOOK ] = "Inbook", [ TYPE_PROCEEDINGS ] = "Proceedings", [ TYPE_INPROCEEDINGS ] = "InProceedings", [ TYPE_CONFERENCE ] = "Conference", [ TYPE_BOOK ] = "Book", [ TYPE_BOOKLET ] = "Booklet", [ TYPE_SUPPBOOK ] = "SuppBook", [ TYPE_PHDTHESIS ] = "PhdThesis", [ TYPE_MASTERSTHESIS ] = "MastersThesis", [ TYPE_DIPLOMATHESIS ] = "MastersThesis", [ TYPE_REPORT ] = "Report", [ TYPE_TECHREPORT ] = "TechReport", [ TYPE_REFERENCE ] = "Reference", [ TYPE_MVREFERENCE ] = "MvReference", [ TYPE_MANUAL ] = "Manual", [ TYPE_COLLECTION ] = "Collection", [ TYPE_SUPPCOLLECTION ] = "SuppCollection", [ TYPE_INCOLLECTION ] = "InCollection", [ TYPE_UNPUBLISHED ] = "Unpublished", [ TYPE_ELECTRONIC ] = "Electronic", [ TYPE_ONLINE ] = "Online", [ TYPE_WWW ] = "WWW", [ TYPE_PATENT ] = "Patent", [ TYPE_MISC ] = "Misc", }; int fstatus; char *s; if ( type < 0 || type >= NUM_TYPES ) type = TYPE_MISC; s = typenames[ type ]; fstatus = fields_add( out, "TYPE", s, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_citekey( fields *in, fields *out, int format_opts, int *status ) { int n, fstatus; str s; char *p; n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( ( format_opts & BIBL_FORMAT_BIBOUT_DROPKEY ) || n==FIELDS_NOTFOUND ) { fstatus = fields_add( out, "REFNUM", "", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else { str_init( &s ); p = fields_value( in, n, FIELDS_CHRP ); while ( p && *p && *p!='|' ) { if ( format_opts & BIBL_FORMAT_BIBOUT_STRICTKEY ) { if ( isdigit((unsigned char)*p) || (*p>='A' && *p<='Z') || (*p>='a' && *p<='z' ) ) { str_addchar( &s, *p ); } } else { if ( *p!=' ' && *p!='\t' ) { str_addchar( &s, *p ); } } p++; } if ( str_memerr( &s ) ) { *status = BIBL_ERR_MEMERR; str_free( &s ); return; } fstatus = fields_add( out, "REFNUM", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; str_free( &s ); } } static void append_simple( fields *in, char *intag, char *outtag, fields *out, int *status ) { int n, fstatus; n = fields_find( in, intag, LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { fields_set_used( in, n ); fstatus = fields_add( out, outtag, fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static void append_simpleall( fields *in, char *intag, char *outtag, fields *out, int *status ) { int i, fstatus; for ( i=0; in; ++i ) { if ( fields_match_tag( in, i, intag ) ) { fields_set_used( in, i ); fstatus = fields_add( out, outtag, fields_value( in, i, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } } static void append_keywords( fields *in, fields *out, int *status ) { str keywords, *word; vplist_index i; int fstatus; vplist a; str_init( &keywords ); vplist_init( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_STRP, &a, "KEYWORD" ); if ( a.n ) { for ( i=0; i0 ) str_strcatc( &keywords, "; " ); str_strcat( &keywords, word ); } if ( str_memerr( &keywords ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, "keywords", str_cstr( &keywords ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &keywords ); vplist_free( &a ); } static void append_fileattach( fields *in, fields *out, int *status ) { char *tag, *value; int i, fstatus; str data; str_init( &data ); for ( i=0; in; ++i ) { tag = fields_tag( in, i, FIELDS_CHRP ); if ( strcasecmp( tag, "FILEATTACH" ) ) continue; value = fields_value( in, i, FIELDS_CHRP ); str_strcpyc( &data, ":" ); str_strcatc( &data, value ); if ( strsearch( value, ".pdf" ) ) str_strcatc( &data, ":PDF" ); else if ( strsearch( value, ".html" ) ) str_strcatc( &data, ":HTML" ); else str_strcatc( &data, ":TYPE" ); if ( str_memerr( &data ) ) { *status = BIBL_ERR_MEMERR; goto out; } fields_set_used( in, i ); fstatus = fields_add( out, "file", str_cstr( &data ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } str_empty( &data ); } out: str_free( &data ); } static void append_people( fields *in, char *tag, char *ctag, char *atag, char *bibtag, int level, fields *out, int format_opts, int latex_out, int *status ) { int i, npeople, person, corp, asis, fstatus; str allpeople, oneperson; strs_init( &allpeople, &oneperson, NULL ); /* primary citation authors */ npeople = 0; for ( i=0; in; ++i ) { if ( level!=LEVEL_ANY && in->level[i]!=level ) continue; person = ( strcasecmp( in->tag[i].data, tag ) == 0 ); corp = ( strcasecmp( in->tag[i].data, ctag ) == 0 ); asis = ( strcasecmp( in->tag[i].data, atag ) == 0 ); if ( person || corp || asis ) { if ( npeople>0 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) str_strcatc( &allpeople, "\n\t\tand " ); else str_strcatc( &allpeople, "\nand " ); } if ( corp ) { if ( latex_out ) str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); if ( latex_out ) str_addchar( &allpeople, '}' ); } else if ( asis ) { if ( latex_out ) str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); if ( latex_out ) str_addchar( &allpeople, '}' ); } else { name_build_withcomma( &oneperson, fields_value( in, i, FIELDS_CHRP ) ); str_strcat( &allpeople, &oneperson ); } npeople++; } } if ( npeople ) { fstatus = fields_add( out, bibtag, allpeople.data, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } strs_free( &allpeople, &oneperson, NULL ); } static int append_title_chosen( fields *in, char *bibtag, fields *out, int nmainttl, int nsubttl ) { str fulltitle, *mainttl = NULL, *subttl = NULL; int status, ret = BIBL_OK; str_init( &fulltitle ); if ( nmainttl!=-1 ) { mainttl = fields_value( in, nmainttl, FIELDS_STRP ); fields_set_used( in, nmainttl ); } if ( nsubttl!=-1 ) { subttl = fields_value( in, nsubttl, FIELDS_STRP ); fields_set_used( in, nsubttl ); } title_combine( &fulltitle, mainttl, subttl ); if ( str_memerr( &fulltitle ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fulltitle ) ) { status = fields_add( out, bibtag, str_cstr( &fulltitle ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) ret = BIBL_ERR_MEMERR; } out: str_free( &fulltitle ); return ret; } static int append_title( fields *in, char *bibtag, int level, fields *out, int format_opts ) { int title, short_title, subtitle, short_subtitle, use_title, use_subtitle; title = fields_find( in, "TITLE", level ); short_title = fields_find( in, "SHORTTITLE", level ); subtitle = fields_find( in, "SUBTITLE", level ); short_subtitle = fields_find( in, "SHORTSUBTITLE", level ); if ( title==FIELDS_NOTFOUND || ( ( format_opts & BIBL_FORMAT_BIBOUT_SHORTTITLE ) && level==1 ) ) { use_title = short_title; use_subtitle = short_subtitle; } else { use_title = title; use_subtitle = subtitle; } return append_title_chosen( in, bibtag, out, use_title, use_subtitle ); } static void append_titles( fields *in, int type, fields *out, int format_opts, int *status ) { /* item=main level title */ *status = append_title( in, "title", 0, out, format_opts ); if ( *status!=BIBL_OK ) return; switch( type ) { case TYPE_ARTICLE: *status = append_title( in, "journal", 1, out, format_opts ); break; case TYPE_INBOOK: *status = append_title( in, "bookTitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_INCOLLECTION: case TYPE_INPROCEEDINGS: *status = append_title( in, "booktitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_PHDTHESIS: case TYPE_MASTERSTHESIS: *status = append_title( in, "series", 1, out, format_opts ); break; case TYPE_BOOK: case TYPE_REPORT: case TYPE_COLLECTION: case TYPE_PROCEEDINGS: *status = append_title( in, "series", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; default: /* do nothing */ break; } } static int find_date( fields *in, char *date_element ) { char date[100], partdate[100]; int n; sprintf( date, "DATE:%s", date_element ); n = fields_find( in, date, LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) { sprintf( partdate, "PARTDATE:%s", date_element ); n = fields_find( in, partdate, LEVEL_ANY ); } return n; } static void append_date( fields *in, fields *out, int *status ) { char *months[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; int n, month, fstatus; n = find_date( in, "YEAR" ); if ( n!=FIELDS_NOTFOUND ) { fields_set_used( in, n ); fstatus = fields_add( out, "year", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "MONTH" ); if ( n!=-1 ) { fields_set_used( in, n ); month = atoi( fields_value( in, n, FIELDS_CHRP ) ); if ( month>0 && month<13 ) fstatus = fields_add( out, "month", months[month-1], LEVEL_MAIN ); else fstatus = fields_add( out, "month", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "DAY" ); if ( n!=-1 ) { fields_set_used( in, n ); fstatus = fields_add( out, "day", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_arxiv( fields *in, fields *out, int *status ) { int n, fstatus1, fstatus2; str url; n = fields_find( in, "ARXIV", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_set_used( in, n ); /* ...write: * archivePrefix = "arXiv", * eprint = "#####", * ...for arXiv references */ fstatus1 = fields_add( out, "archivePrefix", "arXiv", LEVEL_MAIN ); fstatus2 = fields_add( out, "eprint", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK || fstatus2!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } /* ...also write: * url = "http://arxiv.org/abs/####", * ...to maximize compatibility */ str_init( &url ); arxiv_to_url( in, n, "URL", &url ); if ( str_has_value( &url ) ) { fstatus1 = fields_add( out, "url", str_cstr( &url ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &url ); } static void append_urls( fields *in, fields *out, int *status ) { int lstatus; slist types; lstatus = slist_init_valuesc( &types, "URL", "DOI", "PMID", "PMC", "JSTOR", NULL ); if ( lstatus!=SLIST_OK ) { *status = BIBL_ERR_MEMERR; return; } *status = urls_merge_and_add( in, LEVEL_ANY, out, "url", LEVEL_MAIN, &types ); slist_free( &types ); } static void append_isi( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ISIREFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fstatus = fields_add( out, "note", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_articlenumber( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ARTICLENUMBER", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_set_used( in, n ); fstatus = fields_add( out, "pages", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static int pages_build_pagestr( str *pages, fields *in, int sn, int en, int format_opts ) { /* ...append if starting page number is defined */ if ( sn!=-1 ) { str_strcat( pages, fields_value( in, sn, FIELDS_STRP ) ); fields_set_used( in, sn ); } /* ...append dashes if both starting and ending page numbers are defined */ if ( sn!=-1 && en!=-1 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_SINGLEDASH ) str_strcatc( pages, "-" ); else str_strcatc( pages, "--" ); } /* ...append ending page number is defined */ if ( en!=-1 ) { str_strcat( pages, fields_value( in, en, FIELDS_STRP ) ); fields_set_used( in, en ); } if ( str_memerr( pages ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int pages_are_defined( fields *in, int *sn, int *en ) { *sn = fields_find( in, "PAGES:START", LEVEL_ANY ); *en = fields_find( in, "PAGES:STOP", LEVEL_ANY ); if ( *sn==FIELDS_NOTFOUND && *en==FIELDS_NOTFOUND ) return 0; else return 1; } static void append_pages( fields *in, fields *out, int format_opts, int *status ) { int sn, en, fstatus; str pages; if ( !pages_are_defined( in, &sn, &en ) ) { append_articlenumber( in, out, status ); return; } str_init( &pages ); *status = pages_build_pagestr( &pages, in, sn, en, format_opts ); if ( *status==BIBL_OK ) { fstatus = fields_add( out, "pages", str_cstr( &pages ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &pages ); } /* * from Tim Hicks: * I'm no expert on bibtex, but those who know more than I on our mailing * list suggest that 'issue' isn't a recognised key for bibtex and * therefore that bibutils should be aliasing IS to number at some point in * the conversion. * * Therefore prefer outputting issue/number as number and only keep * a distinction if both issue and number are present for a particular * reference. */ static void append_issue_number( fields *in, fields *out, int *status ) { char issue[] = "issue", number[] = "number", *use_issue = number; int nissue = fields_find( in, "ISSUE", LEVEL_ANY ); int nnumber = fields_find( in, "NUMBER", LEVEL_ANY ); int fstatus; if ( nissue!=FIELDS_NOTFOUND && nnumber!=FIELDS_NOTFOUND ) use_issue = issue; if ( nissue!=FIELDS_NOTFOUND ) { fields_set_used( in, nissue ); fstatus = fields_add( out, use_issue, fields_value( in, nissue, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } if ( nnumber!=FIELDS_NOTFOUND ) { fields_set_used( in, nnumber ); fstatus = fields_add( out, "number", fields_value( in, nnumber, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_howpublished( fields *in, fields *out, int *status ) { int n, fstatus; char *d; n = fields_find( in, "GENRE:BIBUTILS", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; d = fields_value( in, n, FIELDS_CHRP_NOUSE ); if ( !strcmp( d, "Habilitation thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Licentiate thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Diploma thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static int biblatexout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ) { int type, status = BIBL_OK; type = biblatexout_type( in, pm->progname, "", refnum ); append_type ( type, out, &status ); append_citekey ( in, out, pm->format_opts, &status ); append_people ( in, "AUTHOR", "AUTHOR:CORP", "AUTHOR:ASIS", "author", LEVEL_MAIN, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "AUTHOR", "AUTHOR:CORP", "AUTHOR:ASIS", "bookauthor", LEVEL_HOST, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "EDITOR", "EDITOR:CORP", "EDITOR:ASIS", "editor", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "ANNOTATOR", "ANNOTATOR:CORP", "ANNOTATOR:ASIS", "annotator", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "TRANSLATOR", "TRANSLATOR:CORP", "TRANSLATOR:ASIS", "translator", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "REDACTOR", "REDACTOR:CORP", "REDACTOR:ASIS", "redactor", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "COMMENTATOR","COMMENTATOR:CORP","COMMENTATOR:ASIS","commentator", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "INTROAUTHOR","INTROAUTHOR:CORP","INTROAUTHOR:ASIS","introduction", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "AFTERAUTHOR","AFTERAUTHOR:CORP","AFTERAUTHOR:ASIS","afterword", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_titles ( in, type, out, pm->format_opts, &status ); append_simple ( in, "SHORTTITLE", "shorttitle", out, &status ); append_date ( in, out, &status ); append_simple ( in, "EDITION", "edition", out, &status ); append_simple ( in, "PUBLISHER", "publisher", out, &status ); append_simple ( in, "ADDRESS", "address", out, &status ); append_simple ( in, "EDITION", "version", out, &status ); append_simple ( in, "PART", "part", out, &status ); append_simple ( in, "VOLUME", "volume", out, &status ); append_issue_number( in, out, &status ); append_pages ( in, out, pm->format_opts, &status ); append_keywords ( in, out, &status ); append_simple ( in, "LANGCATALOG", "hyphenation", out, &status ); append_simple ( in, "CONTENTS", "contents", out, &status ); append_simple ( in, "ABSTRACT", "abstract", out, &status ); append_simple ( in, "LOCATION", "location", out, &status ); append_simple ( in, "DEGREEGRANTOR", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:ASIS", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:CORP", "school", out, &status ); append_simpleall ( in, "NOTES", "note", out, &status ); append_simpleall ( in, "ANNOTE", "annote", out, &status ); append_simpleall ( in, "ANNOTATION", "annotation", out, &status ); append_simple ( in, "ISBN", "isbn", out, &status ); append_simple ( in, "ISSN", "issn", out, &status ); append_simple ( in, "MRNUMBER", "mrnumber", out, &status ); append_simple ( in, "CODEN", "coden", out, &status ); append_simple ( in, "DOI", "doi", out, &status ); append_simple ( in, "EID", "eid", out, &status ); append_urls ( in, out, &status ); append_fileattach ( in, out, &status ); append_arxiv ( in, out, &status ); append_simple ( in, "EPRINTCLASS", "primaryClass", out, &status ); append_isi ( in, out, &status ); append_simple ( in, "LANGUAGE", "language", out, &status ); append_howpublished( in, out, &status ); return status; } /***************************************************** PUBLIC: int biblatexout_write() *****************************************************/ static int biblatexout_write( fields *out, FILE *fp, param *pm, unsigned long refnum ) { int i, j, len, nquotes, format_opts = pm->format_opts; char *tag, *value, ch; /* ...output type information "@article{" */ value = ( char * ) fields_value( out, 0, FIELDS_CHRP ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE) ) fprintf( fp, "@%s{", value ); else { len = (value) ? strlen( value ) : 0; fprintf( fp, "@" ); for ( i=0; in; ++j ) { nquotes = 0; tag = ( char * ) fields_tag( out, j, FIELDS_CHRP ); value = ( char * ) fields_value( out, j, FIELDS_CHRP ); fprintf( fp, ",\n" ); if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) fprintf( fp, " " ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE ) ) fprintf( fp, "%s", tag ); else { len = strlen( tag ); for ( i=0; i0 && value[i-1]=='\\' ) ) fprintf( fp, "\"" ); else { if ( nquotes % 2 == 0 ) fprintf( fp, "``" ); else fprintf( fp, "\'\'" ); nquotes++; } } } if ( format_opts & BIBL_FORMAT_BIBOUT_BRACKETS ) fprintf( fp, "}" ); else fprintf( fp, "\"" ); } /* ...finish reference */ if ( format_opts & BIBL_FORMAT_BIBOUT_FINALCOMMA ) fprintf( fp, "," ); fprintf( fp, "\n}\n\n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/bibtexin.c0000644000000000000000000010461607346545000016147 0ustar0000000000000000/* * bibtexin.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "intlist.h" #include "str.h" #include "utf8.h" #include "str_conv.h" #include "fields.h" #include "slist.h" #include "name.h" #include "title.h" #include "url.h" #include "reftypes.h" #include "latex_parse.h" #include "bibformats.h" #include "generic.h" static slist find = { 0, 0, 0, NULL }; static slist replace = { 0, 0, 0, NULL }; extern variants bibtex_all[]; extern int bibtex_nall; /***************************************************** PUBLIC: void bibtexin_initparams() *****************************************************/ static int bibtexin_convertf( fields *bibin, fields *info, int reftype, param *p ); static int bibtexin_processf( fields *bibin, const char *data, const char *filename, long nref, param *p ); static int bibtexin_cleanf( bibl *bin, param *p ); static int bibtexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int bibtexin_typef( fields *bibin, const char *filename, int nrefs, param *p ); int bibtexin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_BIBTEXIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 1; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = bibtexin_readf; pm->processf = bibtexin_processf; pm->cleanf = bibtexin_cleanf; pm->typef = bibtexin_typef; pm->convertf = bibtexin_convertf; pm->all = bibtex_all; pm->nall = bibtex_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( pm->progname==NULL ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int bibtexin_readf() *****************************************************/ /* * readf can "read too far", so we store this information in line, thus * the next new text is in line, either from having read too far or * from the next chunk obtained via str_fget() * * return 1 on success, 0 on error/end-of-file * */ static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } /* * readf() * * returns zero if cannot get reference and hit end of-file * returns 1 if last reference in file, 2 if reference within file */ static int bibtexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0; const char *p; *fcharset = CHARSET_UNKNOWN; while ( haveref!=2 && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( line->len == 0 ) continue; /* blank line */ p = &(line->data[0]); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } p = skip_ws( p ); if ( *p == '%' ) { /* commented out line */ str_empty( line ); continue; } if ( *p == '@' ) haveref++; if ( haveref && haveref<2 ) { str_strcatc( reference, p ); str_addchar( reference, '\n' ); str_empty( line ); } else if ( !haveref ) str_empty( line ); } return haveref; } /***************************************************** PUBLIC: int bibtexin_processf() *****************************************************/ typedef struct loc { const char *progname; const char *filename; long nref; } loc; /* process_bibtextype() * * extract 'article', 'book', etc. from: * * @article{...} * @book(...) * * return pointer after '{' or '(' character */ static const char* process_bibtextype( const char *p, str *type ) { str tmp; str_init( &tmp ); if ( *p=='@' ) p++; p = skip_ws( p ); p = str_cpytodelim( &tmp, p, "{( \t\r\n", 0 ); p = skip_ws( p ); if ( *p=='{' || *p=='(' ) p++; p = skip_ws( p ); if ( str_has_value( &tmp ) ) str_strcpy( type, &tmp ); else str_empty( type ); str_free( &tmp ); return p; } static const char * process_bibtexid( const char *p, str *id ) { const char *start_p = p; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, p, ",", 1 ); if ( str_has_value( &tmp ) ) { if ( strchr( tmp.data, '=' ) ) { /* Endnote writes bibtex files w/o fields, try to * distinguish via presence of an equal sign.... if * it's there, assume that it's a tag/data pair instead * and roll back. */ p = start_p; str_empty( id ); } else { str_strcpy( id, &tmp ); } } else { str_empty( id ); } str_free( &tmp ); return skip_ws( p ); } /* bibtex_tag() * * returns NULL on memory error, else position after tag+whitespace */ static const char * bibtex_tag( const char *p, str *tag ) { p = str_cpytodelim( tag, p, "= \t\r\n", 0 ); if ( str_memerr( tag ) ) return NULL; return skip_ws( p ); } static int quotation_mark_is_escaped( int nbraces, const char *p, const char *startp ) { if ( nbraces!=0 ) return 1; if ( p!=startp && *(p-1)=='\\' ) return 1; return 0; } static int brace_is_escaped( int nquotes, const char *p, const char *startp ) { if ( nquotes!=0 ) return 1; if ( p!=startp && *(p-1)=='\\' ) return 1; return 0; } static int char_is_escaped( int nquotes, int nbraces ) { if ( nquotes!=0 || nbraces!=0 ) return 1; return 0; } static int add_token( slist *tokens, str *token ) { int status; if ( str_memerr( token ) ) return BIBL_ERR_MEMERR; status = slist_add( tokens, token ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; str_empty( token ); return BIBL_OK; } static const char * bibtex_data( const char *p, slist *tokens, loc *currloc ) { int nbraces = 0, nquotes = 0; const char *startp = p; int status; str token; str_init( &token ); while ( p && *p ) { /* ...have we reached end-of-data? */ if ( nquotes==0 && nbraces==0 ) { if ( *p==',' || *p=='=' || *p=='}' || *p==')' ) goto out; } if ( *p=='\"' ) { str_addchar( &token, *p ); if ( !quotation_mark_is_escaped( nbraces, p, startp ) ) { nquotes = !nquotes; if ( nquotes==0 ) { status = add_token( tokens, &token ); if ( status!=BIBL_OK ) { p=NULL; goto out0; } } } } else if ( *p=='{' ) { str_addchar( &token, *p ); if ( !brace_is_escaped( nquotes, p, startp ) ) { nbraces++; } } else if ( *p=='}' ) { str_addchar( &token, *p ); if ( !brace_is_escaped( nquotes, p, startp ) ) { nbraces--; if ( nbraces==0 ) { status = add_token( tokens, &token ); if ( status!=BIBL_OK ) { p=NULL; goto out0; } } if ( nbraces<0 ) { goto out; } } } else if ( *p=='#' ) { if ( char_is_escaped( nquotes, nbraces ) ) { str_addchar( &token, *p ); } /* ...this is a bibtex string concatentation token */ else { if ( str_has_value( &token ) ) { status = add_token( tokens, &token ); if ( status!=BIBL_OK ) { p=NULL; goto out0; } } status = slist_addc( tokens, "#" ); if ( status!=SLIST_OK ) { p=NULL; goto out0; } } } /* ...add escaped white-space and non-white-space to current token */ else if ( !is_ws( *p ) || char_is_escaped( nquotes, nbraces ) ) { /* always add non-whitespace characters */ if ( !is_ws( *p ) ) { str_addchar( &token, *p ); } /* only add whitespace if token is non-empty; convert CR/LF to space */ else if ( token.len!=0 ) { if ( *p!='\n' && *p!='\r' ) str_addchar( &token, *p ); else { str_addchar( &token, ' ' ); while ( is_ws( *(p+1) ) ) p++; } } } /* ...unescaped white-space marks the end of a token */ else if ( is_ws( *p ) ) { if ( token.len ) { status = add_token( tokens, &token ); if ( status!=BIBL_OK ) { p=NULL; goto out0; } } } p++; } out: if ( nbraces!=0 ) { fprintf( stderr, "%s: Mismatch in number of braces in file %s reference %ld.\n", currloc->progname, currloc->filename, currloc->nref ); } if ( nquotes!=0 ) { fprintf( stderr, "%s: Mismatch in number of quotes in file %s reference %ld.\n", currloc->progname, currloc->filename, currloc->nref ); } if ( str_has_value( &token ) ) { if ( str_memerr( &token ) ) { p = NULL; goto out; } status = slist_add( tokens, &token ); if ( status!=SLIST_OK ) p = NULL; } out0: str_free( &token ); return p; } #define NOT_ESCAPED (0) #define ESCAPED_QUOTES (1) #define ESCAPED_BRACES (2) static int token_is_escaped( str *s ) { if ( s->data[0]=='\"' && s->data[s->len-1]=='\"' ) return ESCAPED_QUOTES; if ( s->data[0]=='{' && s->data[s->len-1]=='}' ) return ESCAPED_BRACES; return NOT_ESCAPED; } /* replace_strings() * * do bibtex string replacement for data tokens */ static int replace_strings( slist *tokens ) { int i, n; str *s; for ( i=0; in; ++i ) { s = slist_str( tokens, i ); /* ...skip if token is protected by quotation marks or braces */ if ( token_is_escaped( s ) ) continue; /* ...skip if token is string concatentation symbol */ if ( !str_strcmpc( s, "#" ) ) continue; n = slist_find( &find, s ); if ( slist_wasnotfound( &find, n ) ) continue; str_strcpy( s, slist_str( &replace, n ) ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int string_concatenate( slist *tokens, loc *currloc ) { int i, status, esc_s, esc_t; str *s, *t; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( str_strcmpc( s, "#" ) ) { i++; continue; } if ( i==0 || i==tokens->n-1 ) { fprintf( stderr, "%s: Warning: Stray string concatenation ('#' character) in file %s reference %ld\n", currloc->progname, currloc->filename, currloc->nref ); status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; continue; } s = slist_str( tokens, i-1 ); t = slist_str( tokens, i+1 ); esc_s = token_is_escaped( s ); esc_t = token_is_escaped( t ); if ( esc_s != NOT_ESCAPED ) str_trimend( s, 1 ); if ( esc_t != NOT_ESCAPED ) str_trimbegin( t, 1 ); if ( esc_s != esc_t ) { if ( esc_s == NOT_ESCAPED ) { if ( esc_t == ESCAPED_QUOTES ) str_prepend( s, "\"" ); else str_prepend( s, "{" ); } else { if ( esc_t != NOT_ESCAPED ) str_trimend( t, 1 ); if ( esc_s == ESCAPED_QUOTES ) str_addchar( t, '\"' ); else str_addchar( t, '}' ); } } str_strcat( s, t ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; /* ...remove concatenated string t */ status = slist_remove( tokens, i+1 ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; /* ...remove concatentation token '#' */ status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } #define KEEP_QUOTES (0) #define STRIP_QUOTES (1) static int merge_tokens_into_data( str *data, slist *tokens, int stripquotes ) { int i, esc_s; str *s; for ( i=0; in; i++ ) { s = slist_str( tokens, i ); esc_s = token_is_escaped( s ); if ( ( esc_s == ESCAPED_BRACES ) || ( stripquotes == STRIP_QUOTES && esc_s == ESCAPED_QUOTES ) ) { str_trimbegin( s, 1 ); str_trimend( s, 1 ); } str_strcat( data, s ); } if ( str_memerr( data ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } /* return NULL on memory error */ static const char * process_bibtexline( const char *p, str *tag, str *data, uchar stripquotes, loc *currloc ) { slist tokens; int status; str_empty( data ); slist_init( &tokens ); p = bibtex_tag( skip_ws( p ), tag ); if ( p ) { if ( str_is_empty( tag ) ) { p = skip_line( p ); goto out; } } if ( p && *p=='=' ) { p = bibtex_data( p+1, &tokens, currloc ); } if ( p ) { status = replace_strings( &tokens ); if ( status!=BIBL_OK ) p = NULL; } if ( p ) { status = string_concatenate( &tokens, currloc ); if ( status!=BIBL_OK ) p = NULL; } if ( p ) { status = merge_tokens_into_data( data, &tokens, stripquotes ); if ( status!=BIBL_OK ) p = NULL; } out: slist_free( &tokens ); return p; } /* process_ref() * */ static int process_ref( fields *bibin, const char *p, loc *currloc ) { int fstatus, status = BIBL_OK; str type, id, tag, data; strs_init( &type, &id, &tag, &data, NULL ); p = process_bibtextype( p, &type ); p = process_bibtexid( p, &id ); if ( str_is_empty( &type ) || str_is_empty( &id ) ) goto out; fstatus = fields_add( bibin, "INTERNAL_TYPE", str_cstr( &type ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( bibin, "REFNUM", str_cstr( &id ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p ) { p = process_bibtexline( p, &tag, &data, STRIP_QUOTES, currloc ); if ( p==NULL ) { status = BIBL_ERR_MEMERR; goto out; } if ( !str_has_value( &tag ) || !str_has_value( &data ) ) continue; fstatus = fields_add( bibin, str_cstr( &tag ), str_cstr( &data ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &type, &id, &tag, &data, NULL ); return status; } /* process_string() * * Handle lines like: * * '@STRING{TL = {Tetrahedron Lett.}}' * * p should point to just after '@STRING' * * In BibTeX, if a string is defined several times, the last one is kept. * */ static int process_string( const char *p, loc *currloc ) { int n, status = BIBL_OK; str s1, s2, *t; strs_init( &s1, &s2, NULL ); while ( *p && *p!='{' && *p!='(' ) p++; if ( *p=='{' || *p=='(' ) p++; p = process_bibtexline( skip_ws( p ), &s1, &s2, KEEP_QUOTES, currloc ); if ( p==NULL ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s2 ) ) { str_findreplace( &s2, "\\ ", " " ); } else { str_strcpyc( &s2, "" ); } if ( str_has_value( &s1 ) ) { n = slist_find( &find, &s1 ); if ( n==-1 ) { status = slist_add_ret( &find, &s1, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; status = slist_add_ret( &replace, &s2, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; } else { t = slist_set( &replace, n, &s2 ); if ( t==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &s1, &s2, NULL ); return status; } /* bibtexin_processf() * * Handle '@STRING', '@reftype', and ignore '@COMMENT' */ static int bibtexin_processf( fields *bibin, const char *data, const char *filename, long nref, param *pm ) { loc currloc; currloc.progname = pm->progname; currloc.filename = filename; currloc.nref = nref; if ( !strncasecmp( data, "@STRING", 7 ) ) { process_string( data+7, &currloc ); return 0; } else if ( !strncasecmp( data, "@COMMENT", 8 ) ) { /* Not sure if these are real Bibtex, but not references */ return 0; } else { process_ref( bibin, data, &currloc ); return 1; } } /***************************************************** PUBLIC: void bibtexin_cleanf() *****************************************************/ static int is_url_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "url" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "file" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "doi" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "sentelink" ) ) return 1; } return 0; } static int is_name_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "author" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editor" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "translator" ) ) return 1; } return 0; } static int bibtex_cleanvalue( str *value ) { int status; str parsed; str_init( &parsed ); status = latex_parse( value, &parsed ); if ( status!=BIBL_OK ) goto out; str_strcpy( value, &parsed ); if ( str_memerr( value ) ) status = BIBL_ERR_MEMERR; out: str_free( &parsed ); return status; } static int bibtex_matches_list( fields *bibout, char *tag, char *suffix, str *data, int level, slist *names, int *match ) { int n, fstatus; str mergedtag; *match = 0; n = slist_find( names, data ); if ( slist_wasfound( names, n ) ) { str_initstrsc( &mergedtag, tag, suffix, NULL ); fstatus = fields_add( bibout, str_cstr( &mergedtag ), str_cstr( data ), level ); str_free( &mergedtag ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; *match = 1; } return BIBL_OK; } static int bibtex_matches_asis_or_corps( fields *bibin, int m, param *pm, int *match ) { int status; status = bibtex_matches_list( bibin, fields_tag( bibin, m, FIELDS_STRP ), ":ASIS", fields_value( bibin, m, FIELDS_STRP ), LEVEL_MAIN, &(pm->asis), match ); if ( *match==1 || status!=BIBL_OK ) return status; status = bibtex_matches_list( bibin, fields_tag( bibin, m, FIELDS_STRP ), ":CORP", fields_value( bibin, m, FIELDS_STRP ), LEVEL_MAIN, &(pm->corps), match ); if ( *match==1 || status!=BIBL_OK ) return status; return BIBL_OK; } /* We need to: * (1) break names into LaTeX tokens (e.g. respect "{van der Hoff}" as a single name element) * (2) clean the values by removing brackets and things * (3) convert the character set before any name processing happens (else things like "\"O" get split up) */ static int bibtex_person_tokenize( fields *bibin, int m, param *pm, slist *tokens ) { int i, ok, status; str *s; status = latex_tokenize( tokens, fields_value( bibin, m, FIELDS_STRP ) ); if ( status!=BIBL_OK ) return status; for ( i=0; in; ++i ) { s = slist_str( tokens, i ); status = bibtex_cleanvalue( s ); if ( status!=BIBL_OK ) return status; ok = str_convert( s, pm->charsetin, 1, pm->utf8in, pm->xmlin, pm->charsetout, 0, pm->utf8out, pm->xmlout ); if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* We need to: * (1) Build individual names * (2) Add them to the end of fields *bibin -- because of this, we have to look up the tag/data every time * because we can reallocate the raw data and make any pointers stale */ static int bibtex_person_add_names( fields *bibin, int m, slist *tokens ) { int begin, end, ok, n, etal; etal = name_findetal( tokens ); begin = 0; n = tokens->n - etal; while ( begin < n ) { end = begin + 1; while ( end < n && strcasecmp( slist_cstr( tokens, end ), "and" ) ) end++; if ( end - begin == 1 ) { ok = name_addsingleelement( bibin, fields_tag( bibin,m,FIELDS_CHRP), slist_cstr( tokens, begin ), LEVEL_MAIN, NAME_ASIS ); if ( !ok ) return BIBL_ERR_MEMERR; } else { ok = name_addmultielement( bibin, fields_tag(bibin,m,FIELDS_CHRP), tokens, begin, end, LEVEL_MAIN ); if ( !ok ) return BIBL_ERR_MEMERR; } begin = end + 1; /* Handle repeated 'and' errors: authors="G. F. Author and and B. K. Author" */ while ( begin < n && !strcasecmp( slist_cstr( tokens, begin ), "and" ) ) begin++; } if ( etal ) { ok = name_addsingleelement( bibin, fields_tag(bibin,m,FIELDS_CHRP), "et al.", LEVEL_MAIN, NAME_ASIS ); if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* Keep looking up tag values--we can reallocate when we add new names here */ static int bibtexin_person( fields *bibin, int m, param *pm ) { int status, match = 0; slist tokens; status = bibtex_matches_asis_or_corps( bibin, m, pm, &match ); if ( status!=BIBL_OK || match==1 ) return status; slist_init( &tokens ); status = bibtex_person_tokenize( bibin, m, pm, &tokens ); if ( status!=BIBL_OK ) goto out; status = bibtex_person_add_names( bibin, m, &tokens ); if ( status!=BIBL_OK ) goto out; out: slist_free( &tokens ); return status; } static int bibtexin_cleanref( fields *bibin, param *pm ) { int i, n, fstatus, status = BIBL_OK; str *tag, *value; intlist toremove; intlist_init( &toremove ); n = fields_num( bibin ); for ( i=0; i=0; i-- ) { fstatus = fields_remove( bibin, intlist_get( &toremove, i ) ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: intlist_free( &toremove ); return status; } static void bibtexin_nocrossref( bibl *bin, long i, int n, param *p ) { int n1 = fields_find( bin->ref[i], "REFNUM", LEVEL_ANY ); if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find cross-reference '%s'", (char*) fields_value( bin->ref[i], n, FIELDS_CHRP_NOUSE ) ); if ( n1!=FIELDS_NOTFOUND ) fprintf( stderr, " for reference '%s'\n", (char*) fields_value( bin->ref[i], n1, FIELDS_CHRP_NOUSE ) ); fprintf( stderr, "\n" ); } static int bibtexin_crossref_oneref( fields *bibref, fields *bibcross ) { int i, n, newlevel, ntype, fstatus; char *type, *newtag, *newvalue; ntype = fields_find( bibref, "INTERNAL_TYPE", LEVEL_ANY ); type = ( char * ) fields_value( bibref, ntype, FIELDS_CHRP_NOUSE ); n = fields_num( bibcross ); for ( i=0; in; ++i ) { bibref = bin->ref[i]; n = fields_find( bibref, "CROSSREF", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; fields_set_used( bibref, n ); ncross = bibl_findref( bin, (char*) fields_value( bibref, n, FIELDS_CHRP_NOUSE ) ); if ( ncross==-1 ) { bibtexin_nocrossref( bin, i, n, p ); continue; } bibcross = bin->ref[ncross]; status = bibtexin_crossref_oneref( bibref, bibcross ); if ( status!=BIBL_OK ) goto out; } out: return status; } static int bibtexin_cleanf( bibl *bin, param *p ) { int status; long i; for ( i=0; in; ++i ) { status = bibtexin_cleanref( bin->ref[i], p ); if ( status!=BIBL_OK ) return status; } status = bibtexin_crossref( bin, p ); return status; } /***************************************************** PUBLIC: int bibtexin_typef() *****************************************************/ static int bibtexin_typef( fields *bibin, const char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename = ""; ntypename = fields_find( bibin, "INTERNAL_TYPE", LEVEL_MAIN ); nrefname = fields_find( bibin, "REFNUM", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( bibin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( bibin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int bibtexin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /**** bibtexin_btorg ****/ /* * BibTeX uses 'organization' in lieu of publisher if that field is missing. * Otherwise output as * * The organization * * organizer of meeting * * */ static int bibtexin_btorg( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int n, fstatus; n = fields_find( bibin, "publisher", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) fstatus = fields_add( bibout, "PUBLISHER", str_cstr( invalue ), level ); else fstatus = fields_add( bibout, "ORGANIZER:CORP", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /**** bibtexin_btsente() ****/ /* * sentelink = {file://localhost/full/path/to/file.pdf,Sente,PDF} * * Sente is an academic reference manager for MacOSX and Apple iPad. */ static int bibtexin_btsente( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str link; str_init( &link ); str_cpytodelim( &link, skip_ws( invalue->data ), ",", 0 ); str_trimendingws( &link ); if ( str_memerr( &link ) ) status = BIBL_ERR_MEMERR; if ( status==BIBL_OK && link.len ) { fstatus = fields_add( bibout, "FILEATTACH", str_cstr( &link ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } str_free( &link ); return status; } /**** bibtexin_linkedfile() ****/ static int count_colons( char *p ) { int n = 0; while ( *p ) { if ( *p==':' ) n++; p++; } return n; } static int first_colon( char *p ) { int n = 0; while ( p[n] && p[n]!=':' ) n++; return n; } static int last_colon( char *p ) { int n = strlen( p ) - 1; while ( n>0 && p[n]!=':' ) n--; return n; } /* * file={Description:/full/path/to/file.pdf:PDF} */ static int bibtexin_linkedfile( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; char *p = str_cstr( invalue ); int i, n, n1, n2; str link; n = count_colons( p ); if ( n > 1 ) { /* A DOS file can contain a colon ":C:/....pdf:PDF" */ /* Extract after 1st and up to last colons */ n1 = first_colon( p ) + 1; n2 = last_colon( p ); str_init( &link ); for ( i=n1; idata ) ) level=LEVEL_MAIN; ok = title_process( bibout, "TITLE", invalue->data, level, pm->nosplittitle ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static void bibtexin_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "INTERNAL_TYPE" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'\n", tag ); } } static int bibtexin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = bibtexin_title, [ PERSON ] = generic_simple, [ PAGES ] = generic_pages, [ KEYWORD ] = bibtexin_keyword, [ EPRINT ] = bibtexin_eprint, [ HOWPUBLISHED ] = bibtexin_howpublished, [ LINKEDFILE ] = bibtexin_linkedfile, [ NOTES ] = generic_notes, [ GENRE ] = generic_genre, [ BT_SENTE ] = bibtexin_btsente, [ BT_ORG ] = bibtexin_btorg, [ URL ] = generic_url }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { bibtexin_notag( p, str_cstr( intag ) ); continue; } status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.10.0.0/bibutils/bibtexin.c0000755000000000000000000010461607346545000016152 0ustar0000000000000000/* * bibtexin.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "intlist.h" #include "str.h" #include "utf8.h" #include "str_conv.h" #include "fields.h" #include "slist.h" #include "name.h" #include "title.h" #include "url.h" #include "reftypes.h" #include "latex_parse.h" #include "bibformats.h" #include "generic.h" static slist find = { 0, 0, 0, NULL }; static slist replace = { 0, 0, 0, NULL }; extern variants bibtex_all[]; extern int bibtex_nall; /***************************************************** PUBLIC: void bibtexin_initparams() *****************************************************/ static int bibtexin_convertf( fields *bibin, fields *info, int reftype, param *p ); static int bibtexin_processf( fields *bibin, const char *data, const char *filename, long nref, param *p ); static int bibtexin_cleanf( bibl *bin, param *p ); static int bibtexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int bibtexin_typef( fields *bibin, const char *filename, int nrefs, param *p ); int bibtexin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_BIBTEXIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 1; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = bibtexin_readf; pm->processf = bibtexin_processf; pm->cleanf = bibtexin_cleanf; pm->typef = bibtexin_typef; pm->convertf = bibtexin_convertf; pm->all = bibtex_all; pm->nall = bibtex_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( pm->progname==NULL ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int bibtexin_readf() *****************************************************/ /* * readf can "read too far", so we store this information in line, thus * the next new text is in line, either from having read too far or * from the next chunk obtained via str_fget() * * return 1 on success, 0 on error/end-of-file * */ static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } /* * readf() * * returns zero if cannot get reference and hit end of-file * returns 1 if last reference in file, 2 if reference within file */ static int bibtexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0; const char *p; *fcharset = CHARSET_UNKNOWN; while ( haveref!=2 && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( line->len == 0 ) continue; /* blank line */ p = &(line->data[0]); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } p = skip_ws( p ); if ( *p == '%' ) { /* commented out line */ str_empty( line ); continue; } if ( *p == '@' ) haveref++; if ( haveref && haveref<2 ) { str_strcatc( reference, p ); str_addchar( reference, '\n' ); str_empty( line ); } else if ( !haveref ) str_empty( line ); } return haveref; } /***************************************************** PUBLIC: int bibtexin_processf() *****************************************************/ typedef struct loc { const char *progname; const char *filename; long nref; } loc; /* process_bibtextype() * * extract 'article', 'book', etc. from: * * @article{...} * @book(...) * * return pointer after '{' or '(' character */ static const char* process_bibtextype( const char *p, str *type ) { str tmp; str_init( &tmp ); if ( *p=='@' ) p++; p = skip_ws( p ); p = str_cpytodelim( &tmp, p, "{( \t\r\n", 0 ); p = skip_ws( p ); if ( *p=='{' || *p=='(' ) p++; p = skip_ws( p ); if ( str_has_value( &tmp ) ) str_strcpy( type, &tmp ); else str_empty( type ); str_free( &tmp ); return p; } static const char * process_bibtexid( const char *p, str *id ) { const char *start_p = p; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, p, ",", 1 ); if ( str_has_value( &tmp ) ) { if ( strchr( tmp.data, '=' ) ) { /* Endnote writes bibtex files w/o fields, try to * distinguish via presence of an equal sign.... if * it's there, assume that it's a tag/data pair instead * and roll back. */ p = start_p; str_empty( id ); } else { str_strcpy( id, &tmp ); } } else { str_empty( id ); } str_free( &tmp ); return skip_ws( p ); } /* bibtex_tag() * * returns NULL on memory error, else position after tag+whitespace */ static const char * bibtex_tag( const char *p, str *tag ) { p = str_cpytodelim( tag, p, "= \t\r\n", 0 ); if ( str_memerr( tag ) ) return NULL; return skip_ws( p ); } static int quotation_mark_is_escaped( int nbraces, const char *p, const char *startp ) { if ( nbraces!=0 ) return 1; if ( p!=startp && *(p-1)=='\\' ) return 1; return 0; } static int brace_is_escaped( int nquotes, const char *p, const char *startp ) { if ( nquotes!=0 ) return 1; if ( p!=startp && *(p-1)=='\\' ) return 1; return 0; } static int char_is_escaped( int nquotes, int nbraces ) { if ( nquotes!=0 || nbraces!=0 ) return 1; return 0; } static int add_token( slist *tokens, str *token ) { int status; if ( str_memerr( token ) ) return BIBL_ERR_MEMERR; status = slist_add( tokens, token ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; str_empty( token ); return BIBL_OK; } static const char * bibtex_data( const char *p, slist *tokens, loc *currloc ) { int nbraces = 0, nquotes = 0; const char *startp = p; int status; str token; str_init( &token ); while ( p && *p ) { /* ...have we reached end-of-data? */ if ( nquotes==0 && nbraces==0 ) { if ( *p==',' || *p=='=' || *p=='}' || *p==')' ) goto out; } if ( *p=='\"' ) { str_addchar( &token, *p ); if ( !quotation_mark_is_escaped( nbraces, p, startp ) ) { nquotes = !nquotes; if ( nquotes==0 ) { status = add_token( tokens, &token ); if ( status!=BIBL_OK ) { p=NULL; goto out0; } } } } else if ( *p=='{' ) { str_addchar( &token, *p ); if ( !brace_is_escaped( nquotes, p, startp ) ) { nbraces++; } } else if ( *p=='}' ) { str_addchar( &token, *p ); if ( !brace_is_escaped( nquotes, p, startp ) ) { nbraces--; if ( nbraces==0 ) { status = add_token( tokens, &token ); if ( status!=BIBL_OK ) { p=NULL; goto out0; } } if ( nbraces<0 ) { goto out; } } } else if ( *p=='#' ) { if ( char_is_escaped( nquotes, nbraces ) ) { str_addchar( &token, *p ); } /* ...this is a bibtex string concatentation token */ else { if ( str_has_value( &token ) ) { status = add_token( tokens, &token ); if ( status!=BIBL_OK ) { p=NULL; goto out0; } } status = slist_addc( tokens, "#" ); if ( status!=SLIST_OK ) { p=NULL; goto out0; } } } /* ...add escaped white-space and non-white-space to current token */ else if ( !is_ws( *p ) || char_is_escaped( nquotes, nbraces ) ) { /* always add non-whitespace characters */ if ( !is_ws( *p ) ) { str_addchar( &token, *p ); } /* only add whitespace if token is non-empty; convert CR/LF to space */ else if ( token.len!=0 ) { if ( *p!='\n' && *p!='\r' ) str_addchar( &token, *p ); else { str_addchar( &token, ' ' ); while ( is_ws( *(p+1) ) ) p++; } } } /* ...unescaped white-space marks the end of a token */ else if ( is_ws( *p ) ) { if ( token.len ) { status = add_token( tokens, &token ); if ( status!=BIBL_OK ) { p=NULL; goto out0; } } } p++; } out: if ( nbraces!=0 ) { fprintf( stderr, "%s: Mismatch in number of braces in file %s reference %ld.\n", currloc->progname, currloc->filename, currloc->nref ); } if ( nquotes!=0 ) { fprintf( stderr, "%s: Mismatch in number of quotes in file %s reference %ld.\n", currloc->progname, currloc->filename, currloc->nref ); } if ( str_has_value( &token ) ) { if ( str_memerr( &token ) ) { p = NULL; goto out; } status = slist_add( tokens, &token ); if ( status!=SLIST_OK ) p = NULL; } out0: str_free( &token ); return p; } #define NOT_ESCAPED (0) #define ESCAPED_QUOTES (1) #define ESCAPED_BRACES (2) static int token_is_escaped( str *s ) { if ( s->data[0]=='\"' && s->data[s->len-1]=='\"' ) return ESCAPED_QUOTES; if ( s->data[0]=='{' && s->data[s->len-1]=='}' ) return ESCAPED_BRACES; return NOT_ESCAPED; } /* replace_strings() * * do bibtex string replacement for data tokens */ static int replace_strings( slist *tokens ) { int i, n; str *s; for ( i=0; in; ++i ) { s = slist_str( tokens, i ); /* ...skip if token is protected by quotation marks or braces */ if ( token_is_escaped( s ) ) continue; /* ...skip if token is string concatentation symbol */ if ( !str_strcmpc( s, "#" ) ) continue; n = slist_find( &find, s ); if ( slist_wasnotfound( &find, n ) ) continue; str_strcpy( s, slist_str( &replace, n ) ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int string_concatenate( slist *tokens, loc *currloc ) { int i, status, esc_s, esc_t; str *s, *t; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( str_strcmpc( s, "#" ) ) { i++; continue; } if ( i==0 || i==tokens->n-1 ) { fprintf( stderr, "%s: Warning: Stray string concatenation ('#' character) in file %s reference %ld\n", currloc->progname, currloc->filename, currloc->nref ); status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; continue; } s = slist_str( tokens, i-1 ); t = slist_str( tokens, i+1 ); esc_s = token_is_escaped( s ); esc_t = token_is_escaped( t ); if ( esc_s != NOT_ESCAPED ) str_trimend( s, 1 ); if ( esc_t != NOT_ESCAPED ) str_trimbegin( t, 1 ); if ( esc_s != esc_t ) { if ( esc_s == NOT_ESCAPED ) { if ( esc_t == ESCAPED_QUOTES ) str_prepend( s, "\"" ); else str_prepend( s, "{" ); } else { if ( esc_t != NOT_ESCAPED ) str_trimend( t, 1 ); if ( esc_s == ESCAPED_QUOTES ) str_addchar( t, '\"' ); else str_addchar( t, '}' ); } } str_strcat( s, t ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; /* ...remove concatenated string t */ status = slist_remove( tokens, i+1 ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; /* ...remove concatentation token '#' */ status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } #define KEEP_QUOTES (0) #define STRIP_QUOTES (1) static int merge_tokens_into_data( str *data, slist *tokens, int stripquotes ) { int i, esc_s; str *s; for ( i=0; in; i++ ) { s = slist_str( tokens, i ); esc_s = token_is_escaped( s ); if ( ( esc_s == ESCAPED_BRACES ) || ( stripquotes == STRIP_QUOTES && esc_s == ESCAPED_QUOTES ) ) { str_trimbegin( s, 1 ); str_trimend( s, 1 ); } str_strcat( data, s ); } if ( str_memerr( data ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } /* return NULL on memory error */ static const char * process_bibtexline( const char *p, str *tag, str *data, uchar stripquotes, loc *currloc ) { slist tokens; int status; str_empty( data ); slist_init( &tokens ); p = bibtex_tag( skip_ws( p ), tag ); if ( p ) { if ( str_is_empty( tag ) ) { p = skip_line( p ); goto out; } } if ( p && *p=='=' ) { p = bibtex_data( p+1, &tokens, currloc ); } if ( p ) { status = replace_strings( &tokens ); if ( status!=BIBL_OK ) p = NULL; } if ( p ) { status = string_concatenate( &tokens, currloc ); if ( status!=BIBL_OK ) p = NULL; } if ( p ) { status = merge_tokens_into_data( data, &tokens, stripquotes ); if ( status!=BIBL_OK ) p = NULL; } out: slist_free( &tokens ); return p; } /* process_ref() * */ static int process_ref( fields *bibin, const char *p, loc *currloc ) { int fstatus, status = BIBL_OK; str type, id, tag, data; strs_init( &type, &id, &tag, &data, NULL ); p = process_bibtextype( p, &type ); p = process_bibtexid( p, &id ); if ( str_is_empty( &type ) || str_is_empty( &id ) ) goto out; fstatus = fields_add( bibin, "INTERNAL_TYPE", str_cstr( &type ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( bibin, "REFNUM", str_cstr( &id ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p ) { p = process_bibtexline( p, &tag, &data, STRIP_QUOTES, currloc ); if ( p==NULL ) { status = BIBL_ERR_MEMERR; goto out; } if ( !str_has_value( &tag ) || !str_has_value( &data ) ) continue; fstatus = fields_add( bibin, str_cstr( &tag ), str_cstr( &data ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &type, &id, &tag, &data, NULL ); return status; } /* process_string() * * Handle lines like: * * '@STRING{TL = {Tetrahedron Lett.}}' * * p should point to just after '@STRING' * * In BibTeX, if a string is defined several times, the last one is kept. * */ static int process_string( const char *p, loc *currloc ) { int n, status = BIBL_OK; str s1, s2, *t; strs_init( &s1, &s2, NULL ); while ( *p && *p!='{' && *p!='(' ) p++; if ( *p=='{' || *p=='(' ) p++; p = process_bibtexline( skip_ws( p ), &s1, &s2, KEEP_QUOTES, currloc ); if ( p==NULL ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s2 ) ) { str_findreplace( &s2, "\\ ", " " ); } else { str_strcpyc( &s2, "" ); } if ( str_has_value( &s1 ) ) { n = slist_find( &find, &s1 ); if ( n==-1 ) { status = slist_add_ret( &find, &s1, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; status = slist_add_ret( &replace, &s2, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; } else { t = slist_set( &replace, n, &s2 ); if ( t==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &s1, &s2, NULL ); return status; } /* bibtexin_processf() * * Handle '@STRING', '@reftype', and ignore '@COMMENT' */ static int bibtexin_processf( fields *bibin, const char *data, const char *filename, long nref, param *pm ) { loc currloc; currloc.progname = pm->progname; currloc.filename = filename; currloc.nref = nref; if ( !strncasecmp( data, "@STRING", 7 ) ) { process_string( data+7, &currloc ); return 0; } else if ( !strncasecmp( data, "@COMMENT", 8 ) ) { /* Not sure if these are real Bibtex, but not references */ return 0; } else { process_ref( bibin, data, &currloc ); return 1; } } /***************************************************** PUBLIC: void bibtexin_cleanf() *****************************************************/ static int is_url_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "url" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "file" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "doi" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "sentelink" ) ) return 1; } return 0; } static int is_name_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "author" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editor" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "translator" ) ) return 1; } return 0; } static int bibtex_cleanvalue( str *value ) { int status; str parsed; str_init( &parsed ); status = latex_parse( value, &parsed ); if ( status!=BIBL_OK ) goto out; str_strcpy( value, &parsed ); if ( str_memerr( value ) ) status = BIBL_ERR_MEMERR; out: str_free( &parsed ); return status; } static int bibtex_matches_list( fields *bibout, char *tag, char *suffix, str *data, int level, slist *names, int *match ) { int n, fstatus; str mergedtag; *match = 0; n = slist_find( names, data ); if ( slist_wasfound( names, n ) ) { str_initstrsc( &mergedtag, tag, suffix, NULL ); fstatus = fields_add( bibout, str_cstr( &mergedtag ), str_cstr( data ), level ); str_free( &mergedtag ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; *match = 1; } return BIBL_OK; } static int bibtex_matches_asis_or_corps( fields *bibin, int m, param *pm, int *match ) { int status; status = bibtex_matches_list( bibin, fields_tag( bibin, m, FIELDS_STRP ), ":ASIS", fields_value( bibin, m, FIELDS_STRP ), LEVEL_MAIN, &(pm->asis), match ); if ( *match==1 || status!=BIBL_OK ) return status; status = bibtex_matches_list( bibin, fields_tag( bibin, m, FIELDS_STRP ), ":CORP", fields_value( bibin, m, FIELDS_STRP ), LEVEL_MAIN, &(pm->corps), match ); if ( *match==1 || status!=BIBL_OK ) return status; return BIBL_OK; } /* We need to: * (1) break names into LaTeX tokens (e.g. respect "{van der Hoff}" as a single name element) * (2) clean the values by removing brackets and things * (3) convert the character set before any name processing happens (else things like "\"O" get split up) */ static int bibtex_person_tokenize( fields *bibin, int m, param *pm, slist *tokens ) { int i, ok, status; str *s; status = latex_tokenize( tokens, fields_value( bibin, m, FIELDS_STRP ) ); if ( status!=BIBL_OK ) return status; for ( i=0; in; ++i ) { s = slist_str( tokens, i ); status = bibtex_cleanvalue( s ); if ( status!=BIBL_OK ) return status; ok = str_convert( s, pm->charsetin, 1, pm->utf8in, pm->xmlin, pm->charsetout, 0, pm->utf8out, pm->xmlout ); if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* We need to: * (1) Build individual names * (2) Add them to the end of fields *bibin -- because of this, we have to look up the tag/data every time * because we can reallocate the raw data and make any pointers stale */ static int bibtex_person_add_names( fields *bibin, int m, slist *tokens ) { int begin, end, ok, n, etal; etal = name_findetal( tokens ); begin = 0; n = tokens->n - etal; while ( begin < n ) { end = begin + 1; while ( end < n && strcasecmp( slist_cstr( tokens, end ), "and" ) ) end++; if ( end - begin == 1 ) { ok = name_addsingleelement( bibin, fields_tag( bibin,m,FIELDS_CHRP), slist_cstr( tokens, begin ), LEVEL_MAIN, NAME_ASIS ); if ( !ok ) return BIBL_ERR_MEMERR; } else { ok = name_addmultielement( bibin, fields_tag(bibin,m,FIELDS_CHRP), tokens, begin, end, LEVEL_MAIN ); if ( !ok ) return BIBL_ERR_MEMERR; } begin = end + 1; /* Handle repeated 'and' errors: authors="G. F. Author and and B. K. Author" */ while ( begin < n && !strcasecmp( slist_cstr( tokens, begin ), "and" ) ) begin++; } if ( etal ) { ok = name_addsingleelement( bibin, fields_tag(bibin,m,FIELDS_CHRP), "et al.", LEVEL_MAIN, NAME_ASIS ); if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* Keep looking up tag values--we can reallocate when we add new names here */ static int bibtexin_person( fields *bibin, int m, param *pm ) { int status, match = 0; slist tokens; status = bibtex_matches_asis_or_corps( bibin, m, pm, &match ); if ( status!=BIBL_OK || match==1 ) return status; slist_init( &tokens ); status = bibtex_person_tokenize( bibin, m, pm, &tokens ); if ( status!=BIBL_OK ) goto out; status = bibtex_person_add_names( bibin, m, &tokens ); if ( status!=BIBL_OK ) goto out; out: slist_free( &tokens ); return status; } static int bibtexin_cleanref( fields *bibin, param *pm ) { int i, n, fstatus, status = BIBL_OK; str *tag, *value; intlist toremove; intlist_init( &toremove ); n = fields_num( bibin ); for ( i=0; i=0; i-- ) { fstatus = fields_remove( bibin, intlist_get( &toremove, i ) ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: intlist_free( &toremove ); return status; } static void bibtexin_nocrossref( bibl *bin, long i, int n, param *p ) { int n1 = fields_find( bin->ref[i], "REFNUM", LEVEL_ANY ); if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find cross-reference '%s'", (char*) fields_value( bin->ref[i], n, FIELDS_CHRP_NOUSE ) ); if ( n1!=FIELDS_NOTFOUND ) fprintf( stderr, " for reference '%s'\n", (char*) fields_value( bin->ref[i], n1, FIELDS_CHRP_NOUSE ) ); fprintf( stderr, "\n" ); } static int bibtexin_crossref_oneref( fields *bibref, fields *bibcross ) { int i, n, newlevel, ntype, fstatus; char *type, *newtag, *newvalue; ntype = fields_find( bibref, "INTERNAL_TYPE", LEVEL_ANY ); type = ( char * ) fields_value( bibref, ntype, FIELDS_CHRP_NOUSE ); n = fields_num( bibcross ); for ( i=0; in; ++i ) { bibref = bin->ref[i]; n = fields_find( bibref, "CROSSREF", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; fields_set_used( bibref, n ); ncross = bibl_findref( bin, (char*) fields_value( bibref, n, FIELDS_CHRP_NOUSE ) ); if ( ncross==-1 ) { bibtexin_nocrossref( bin, i, n, p ); continue; } bibcross = bin->ref[ncross]; status = bibtexin_crossref_oneref( bibref, bibcross ); if ( status!=BIBL_OK ) goto out; } out: return status; } static int bibtexin_cleanf( bibl *bin, param *p ) { int status; long i; for ( i=0; in; ++i ) { status = bibtexin_cleanref( bin->ref[i], p ); if ( status!=BIBL_OK ) return status; } status = bibtexin_crossref( bin, p ); return status; } /***************************************************** PUBLIC: int bibtexin_typef() *****************************************************/ static int bibtexin_typef( fields *bibin, const char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename = ""; ntypename = fields_find( bibin, "INTERNAL_TYPE", LEVEL_MAIN ); nrefname = fields_find( bibin, "REFNUM", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( bibin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( bibin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int bibtexin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /**** bibtexin_btorg ****/ /* * BibTeX uses 'organization' in lieu of publisher if that field is missing. * Otherwise output as * * The organization * * organizer of meeting * * */ static int bibtexin_btorg( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int n, fstatus; n = fields_find( bibin, "publisher", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) fstatus = fields_add( bibout, "PUBLISHER", str_cstr( invalue ), level ); else fstatus = fields_add( bibout, "ORGANIZER:CORP", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /**** bibtexin_btsente() ****/ /* * sentelink = {file://localhost/full/path/to/file.pdf,Sente,PDF} * * Sente is an academic reference manager for MacOSX and Apple iPad. */ static int bibtexin_btsente( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str link; str_init( &link ); str_cpytodelim( &link, skip_ws( invalue->data ), ",", 0 ); str_trimendingws( &link ); if ( str_memerr( &link ) ) status = BIBL_ERR_MEMERR; if ( status==BIBL_OK && link.len ) { fstatus = fields_add( bibout, "FILEATTACH", str_cstr( &link ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } str_free( &link ); return status; } /**** bibtexin_linkedfile() ****/ static int count_colons( char *p ) { int n = 0; while ( *p ) { if ( *p==':' ) n++; p++; } return n; } static int first_colon( char *p ) { int n = 0; while ( p[n] && p[n]!=':' ) n++; return n; } static int last_colon( char *p ) { int n = strlen( p ) - 1; while ( n>0 && p[n]!=':' ) n--; return n; } /* * file={Description:/full/path/to/file.pdf:PDF} */ static int bibtexin_linkedfile( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; char *p = str_cstr( invalue ); int i, n, n1, n2; str link; n = count_colons( p ); if ( n > 1 ) { /* A DOS file can contain a colon ":C:/....pdf:PDF" */ /* Extract after 1st and up to last colons */ n1 = first_colon( p ) + 1; n2 = last_colon( p ); str_init( &link ); for ( i=n1; idata ) ) level=LEVEL_MAIN; ok = title_process( bibout, "TITLE", invalue->data, level, pm->nosplittitle ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static void bibtexin_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "INTERNAL_TYPE" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'\n", tag ); } } static int bibtexin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = bibtexin_title, [ PERSON ] = generic_simple, [ PAGES ] = generic_pages, [ KEYWORD ] = bibtexin_keyword, [ EPRINT ] = bibtexin_eprint, [ HOWPUBLISHED ] = bibtexin_howpublished, [ LINKEDFILE ] = bibtexin_linkedfile, [ NOTES ] = generic_notes, [ GENRE ] = generic_genre, [ BT_SENTE ] = bibtexin_btsente, [ BT_ORG ] = bibtexin_btorg, [ URL ] = generic_url }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { bibtexin_notag( p, str_cstr( intag ) ); continue; } status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.10.0.0/bibutils/bibtexout.c0000644000000000000000000006114607346545000016350 0ustar0000000000000000/* * bibtexout.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "str.h" #include "strsearch.h" #include "utf8.h" #include "xml.h" #include "fields.h" #include "generic.h" #include "name.h" #include "title.h" #include "type.h" #include "url.h" #include "bibformats.h" /***************************************************** PUBLIC: int bibtexout_initparams() *****************************************************/ static int bibtexout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static int bibtexout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int bibtexout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_BIBTEXOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 1; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = bibtexout_assemble; pm->writef = bibtexout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int bibtexout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE, TYPE_INBOOK, TYPE_INPROCEEDINGS, TYPE_PROCEEDINGS, TYPE_INCOLLECTION, TYPE_COLLECTION, TYPE_BOOK, TYPE_PHDTHESIS, TYPE_MASTERSTHESIS, TYPE_DIPLOMATHESIS, TYPE_REPORT, TYPE_MANUAL, TYPE_UNPUBLISHED, TYPE_ELECTRONIC, TYPE_MISC, NUM_TYPES }; static int bibtexout_type( fields *in, const char *progname, const char *filename, unsigned long refnum ) { match_type genre_matches[] = { { "periodical", TYPE_ARTICLE, LEVEL_ANY }, { "academic journal", TYPE_ARTICLE, LEVEL_ANY }, { "magazine", TYPE_ARTICLE, LEVEL_ANY }, { "newspaper", TYPE_ARTICLE, LEVEL_ANY }, { "article", TYPE_ARTICLE, LEVEL_ANY }, { "instruction", TYPE_MANUAL, LEVEL_ANY }, { "book", TYPE_BOOK, LEVEL_MAIN }, { "book", TYPE_INBOOK, LEVEL_ANY }, { "book chapter", TYPE_INBOOK, LEVEL_ANY }, { "unpublished", TYPE_UNPUBLISHED, LEVEL_ANY }, { "manuscript", TYPE_UNPUBLISHED, LEVEL_ANY }, { "conference publication", TYPE_PROCEEDINGS, LEVEL_MAIN }, { "conference publication", TYPE_INPROCEEDINGS, LEVEL_ANY }, { "collection", TYPE_COLLECTION, LEVEL_MAIN }, { "collection", TYPE_INCOLLECTION, LEVEL_ANY }, { "report", TYPE_REPORT, LEVEL_ANY }, { "technical report", TYPE_REPORT, LEVEL_ANY }, { "Masters thesis", TYPE_MASTERSTHESIS, LEVEL_ANY }, { "Diploma thesis", TYPE_DIPLOMATHESIS, LEVEL_ANY }, { "Ph.D. thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "Licentiate thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "electronic", TYPE_ELECTRONIC, LEVEL_ANY }, { "miscellaneous", TYPE_MISC, LEVEL_ANY }, }; int ngenre_matches = sizeof( genre_matches ) / sizeof( genre_matches[0] ); match_type resource_matches[] = { { "moving image", TYPE_ELECTRONIC, LEVEL_ANY }, { "software, multimedia", TYPE_ELECTRONIC, LEVEL_ANY }, }; int nresource_matches = sizeof( resource_matches ) /sizeof( resource_matches[0] ); match_type issuance_matches[] = { { "monographic", TYPE_BOOK, LEVEL_MAIN }, { "monographic", TYPE_INBOOK, LEVEL_ANY }, }; int nissuance_matches = sizeof( issuance_matches ) / sizeof( issuance_matches[0] ); int type, maxlevel, n; type = type_from_mods_hints( in, TYPE_FROM_GENRE, genre_matches, ngenre_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_RESOURCE, resource_matches, nresource_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_ISSUANCE, issuance_matches, nissuance_matches, TYPE_UNKNOWN ); /* default to TYPE_MISC */ if ( type==TYPE_UNKNOWN ) { maxlevel = fields_maxlevel( in ); if ( maxlevel > 0 ) type = TYPE_MISC; else { if ( progname ) fprintf( stderr, "%s: ", progname ); fprintf( stderr, "Cannot identify TYPE in reference %lu ", refnum+1 ); n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) fprintf( stderr, " %s", (char*) fields_value( in, n, FIELDS_CHRP ) ); fprintf( stderr, " (defaulting to @Misc)\n" ); type = TYPE_MISC; } } return type; } static void append_type( int type, fields *out, int *status ) { char *typenames[ NUM_TYPES ] = { [ TYPE_ARTICLE ] = "Article", [ TYPE_INBOOK ] = "Inbook", [ TYPE_PROCEEDINGS ] = "Proceedings", [ TYPE_INPROCEEDINGS ] = "InProceedings", [ TYPE_BOOK ] = "Book", [ TYPE_PHDTHESIS ] = "PhdThesis", [ TYPE_MASTERSTHESIS ] = "MastersThesis", [ TYPE_DIPLOMATHESIS ] = "MastersThesis", [ TYPE_REPORT ] = "TechReport", [ TYPE_MANUAL ] = "Manual", [ TYPE_COLLECTION ] = "Collection", [ TYPE_INCOLLECTION ] = "InCollection", [ TYPE_UNPUBLISHED ] = "Unpublished", [ TYPE_ELECTRONIC ] = "Electronic", [ TYPE_MISC ] = "Misc", }; int fstatus; char *s; if ( type < 0 || type >= NUM_TYPES ) type = TYPE_MISC; s = typenames[ type ]; fstatus = fields_add( out, "TYPE", s, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_citekey( fields *in, fields *out, int format_opts, int *status ) { int n, fstatus; str s; char *p; n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( ( format_opts & BIBL_FORMAT_BIBOUT_DROPKEY ) || n==FIELDS_NOTFOUND ) { fstatus = fields_add( out, "REFNUM", "", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else { str_init( &s ); p = fields_value( in, n, FIELDS_CHRP ); while ( p && *p && *p!='|' ) { if ( format_opts & BIBL_FORMAT_BIBOUT_STRICTKEY ) { if ( isdigit((unsigned char)*p) || (*p>='A' && *p<='Z') || (*p>='a' && *p<='z' ) ) { str_addchar( &s, *p ); } } else { if ( *p!=' ' && *p!='\t' ) { str_addchar( &s, *p ); } } p++; } if ( str_memerr( &s ) ) { *status = BIBL_ERR_MEMERR; str_free( &s ); return; } fstatus = fields_add( out, "REFNUM", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; str_free( &s ); } } static void append_simple( fields *in, char *intag, char *outtag, fields *out, int *status ) { int n, fstatus; n = fields_find( in, intag, LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { fields_set_used( in, n ); fstatus = fields_add( out, outtag, fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static void append_simpleall( fields *in, char *intag, char *outtag, fields *out, int *status ) { int i, fstatus; for ( i=0; in; ++i ) { if ( fields_match_tag( in, i, intag ) ) { fields_set_used( in, i ); fstatus = fields_add( out, outtag, fields_value( in, i, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } } static void append_keywords( fields *in, fields *out, int *status ) { str keywords, *word; vplist_index i; int fstatus; vplist a; str_init( &keywords ); vplist_init( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_STRP, &a, "KEYWORD" ); if ( a.n ) { for ( i=0; i0 ) str_strcatc( &keywords, "; " ); str_strcat( &keywords, word ); } if ( str_memerr( &keywords ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, "keywords", str_cstr( &keywords ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &keywords ); vplist_free( &a ); } static void append_fileattach( fields *in, fields *out, int *status ) { char *tag, *value; int i, fstatus; str data; str_init( &data ); for ( i=0; in; ++i ) { tag = fields_tag( in, i, FIELDS_CHRP ); if ( strcasecmp( tag, "FILEATTACH" ) ) continue; value = fields_value( in, i, FIELDS_CHRP ); str_strcpyc( &data, ":" ); str_strcatc( &data, value ); if ( strsearch( value, ".pdf" ) ) str_strcatc( &data, ":PDF" ); else if ( strsearch( value, ".html" ) ) str_strcatc( &data, ":HTML" ); else str_strcatc( &data, ":TYPE" ); if ( str_memerr( &data ) ) { *status = BIBL_ERR_MEMERR; goto out; } fields_set_used( in, i ); fstatus = fields_add( out, "file", str_cstr( &data ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } str_empty( &data ); } out: str_free( &data ); } static void append_people( fields *in, char *tag, char *ctag, char *atag, char *bibtag, int level, fields *out, int format_opts, int latex_out, int *status ) { int i, npeople, person, corp, asis, fstatus; str allpeople, oneperson; strs_init( &allpeople, &oneperson, NULL ); /* primary citation authors */ npeople = 0; for ( i=0; in; ++i ) { if ( level!=LEVEL_ANY && in->level[i]!=level ) continue; person = ( strcasecmp( in->tag[i].data, tag ) == 0 ); corp = ( strcasecmp( in->tag[i].data, ctag ) == 0 ); asis = ( strcasecmp( in->tag[i].data, atag ) == 0 ); if ( person || corp || asis ) { if ( npeople>0 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) str_strcatc( &allpeople, "\n\t\tand " ); else str_strcatc( &allpeople, "\nand " ); } if ( corp ) { if ( latex_out ) str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); if ( latex_out ) str_addchar( &allpeople, '}' ); } else if ( asis ) { if ( latex_out ) str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); if ( latex_out ) str_addchar( &allpeople, '}' ); } else { name_build_withcomma( &oneperson, fields_value( in, i, FIELDS_CHRP ) ); str_strcat( &allpeople, &oneperson ); } npeople++; } } if ( npeople ) { fstatus = fields_add( out, bibtag, allpeople.data, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } strs_free( &allpeople, &oneperson, NULL ); } static int append_title_chosen( fields *in, char *bibtag, fields *out, int nmainttl, int nsubttl ) { str fulltitle, *mainttl = NULL, *subttl = NULL; int status, ret = BIBL_OK; str_init( &fulltitle ); if ( nmainttl!=-1 ) { mainttl = fields_value( in, nmainttl, FIELDS_STRP ); fields_set_used( in, nmainttl ); } if ( nsubttl!=-1 ) { subttl = fields_value( in, nsubttl, FIELDS_STRP ); fields_set_used( in, nsubttl ); } title_combine( &fulltitle, mainttl, subttl ); if ( str_memerr( &fulltitle ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fulltitle ) ) { status = fields_add( out, bibtag, str_cstr( &fulltitle ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) ret = BIBL_ERR_MEMERR; } out: str_free( &fulltitle ); return ret; } static int append_title( fields *in, char *bibtag, int level, fields *out, int format_opts ) { int title, short_title, subtitle, short_subtitle, use_title, use_subtitle; title = fields_find( in, "TITLE", level ); short_title = fields_find( in, "SHORTTITLE", level ); subtitle = fields_find( in, "SUBTITLE", level ); short_subtitle = fields_find( in, "SHORTSUBTITLE", level ); if ( title==FIELDS_NOTFOUND || ( ( format_opts & BIBL_FORMAT_BIBOUT_SHORTTITLE ) && level==1 ) ) { use_title = short_title; use_subtitle = short_subtitle; } else { use_title = title; use_subtitle = subtitle; } return append_title_chosen( in, bibtag, out, use_title, use_subtitle ); } static void append_titles( fields *in, int type, fields *out, int format_opts, int *status ) { /* item=main level title */ *status = append_title( in, "title", 0, out, format_opts ); if ( *status!=BIBL_OK ) return; switch( type ) { case TYPE_ARTICLE: *status = append_title( in, "journal", 1, out, format_opts ); break; case TYPE_INBOOK: *status = append_title( in, "bookTitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_INCOLLECTION: case TYPE_INPROCEEDINGS: *status = append_title( in, "booktitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_PHDTHESIS: case TYPE_MASTERSTHESIS: *status = append_title( in, "series", 1, out, format_opts ); break; case TYPE_BOOK: case TYPE_REPORT: case TYPE_COLLECTION: case TYPE_PROCEEDINGS: *status = append_title( in, "series", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; default: /* do nothing */ break; } } static int find_date( fields *in, char *date_element ) { char date[100], partdate[100]; int n; sprintf( date, "DATE:%s", date_element ); n = fields_find( in, date, LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) { sprintf( partdate, "PARTDATE:%s", date_element ); n = fields_find( in, partdate, LEVEL_ANY ); } return n; } static void append_date( fields *in, fields *out, int *status ) { char *months[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; int n, month, fstatus; n = find_date( in, "YEAR" ); if ( n!=FIELDS_NOTFOUND ) { fields_set_used( in, n ); fstatus = fields_add( out, "year", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "MONTH" ); if ( n!=-1 ) { fields_set_used( in, n ); month = atoi( fields_value( in, n, FIELDS_CHRP ) ); if ( month>0 && month<13 ) fstatus = fields_add( out, "month", months[month-1], LEVEL_MAIN ); else fstatus = fields_add( out, "month", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "DAY" ); if ( n!=-1 ) { fields_set_used( in, n ); fstatus = fields_add( out, "day", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_arxiv( fields *in, fields *out, int *status ) { int n, fstatus1, fstatus2; str url; n = fields_find( in, "ARXIV", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_set_used( in, n ); /* ...write: * archivePrefix = "arXiv", * eprint = "#####", * ...for arXiv references */ fstatus1 = fields_add( out, "archivePrefix", "arXiv", LEVEL_MAIN ); fstatus2 = fields_add( out, "eprint", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK || fstatus2!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } /* ...also write: * url = "http://arxiv.org/abs/####", * ...to maximize compatibility */ str_init( &url ); arxiv_to_url( in, n, "URL", &url ); if ( str_has_value( &url ) ) { fstatus1 = fields_add( out, "url", str_cstr( &url ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &url ); } static void append_urls( fields *in, fields *out, int *status ) { int lstatus; slist types; lstatus = slist_init_valuesc( &types, "URL", "DOI", "PMID", "PMC", "JSTOR", NULL ); if ( lstatus!=SLIST_OK ) { *status = BIBL_ERR_MEMERR; return; } *status = urls_merge_and_add( in, LEVEL_ANY, out, "url", LEVEL_MAIN, &types ); slist_free( &types ); } static void append_isi( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ISIREFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fstatus = fields_add( out, "note", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_articlenumber( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ARTICLENUMBER", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_set_used( in, n ); fstatus = fields_add( out, "pages", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static int pages_build_pagestr( str *pages, fields *in, int sn, int en, int format_opts ) { /* ...append if starting page number is defined */ if ( sn!=-1 ) { str_strcat( pages, fields_value( in, sn, FIELDS_STRP ) ); fields_set_used( in, sn ); } /* ...append dashes if both starting and ending page numbers are defined */ if ( sn!=-1 && en!=-1 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_SINGLEDASH ) str_strcatc( pages, "-" ); else str_strcatc( pages, "--" ); } /* ...append ending page number is defined */ if ( en!=-1 ) { str_strcat( pages, fields_value( in, en, FIELDS_STRP ) ); fields_set_used( in, en ); } if ( str_memerr( pages ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int pages_are_defined( fields *in, int *sn, int *en ) { *sn = fields_find( in, "PAGES:START", LEVEL_ANY ); *en = fields_find( in, "PAGES:STOP", LEVEL_ANY ); if ( *sn==FIELDS_NOTFOUND && *en==FIELDS_NOTFOUND ) return 0; else return 1; } static void append_pages( fields *in, fields *out, int format_opts, int *status ) { int sn, en, fstatus; str pages; if ( !pages_are_defined( in, &sn, &en ) ) { append_articlenumber( in, out, status ); return; } str_init( &pages ); *status = pages_build_pagestr( &pages, in, sn, en, format_opts ); if ( *status==BIBL_OK ) { fstatus = fields_add( out, "pages", str_cstr( &pages ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &pages ); } /* * from Tim Hicks: * I'm no expert on bibtex, but those who know more than I on our mailing * list suggest that 'issue' isn't a recognised key for bibtex and * therefore that bibutils should be aliasing IS to number at some point in * the conversion. * * Therefore prefer outputting issue/number as number and only keep * a distinction if both issue and number are present for a particular * reference. */ static void append_issue_number( fields *in, fields *out, int *status ) { char issue[] = "issue", number[] = "number", *use_issue = number; int nissue = fields_find( in, "ISSUE", LEVEL_ANY ); int nnumber = fields_find( in, "NUMBER", LEVEL_ANY ); int fstatus; if ( nissue!=FIELDS_NOTFOUND && nnumber!=FIELDS_NOTFOUND ) use_issue = issue; if ( nissue!=FIELDS_NOTFOUND ) { fields_set_used( in, nissue ); fstatus = fields_add( out, use_issue, fields_value( in, nissue, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } if ( nnumber!=FIELDS_NOTFOUND ) { fields_set_used( in, nnumber ); fstatus = fields_add( out, "number", fields_value( in, nnumber, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_howpublished( fields *in, fields *out, int *status ) { int n, fstatus; char *d; n = fields_find( in, "GENRE:BIBUTILS", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; d = fields_value( in, n, FIELDS_CHRP_NOUSE ); if ( !strcmp( d, "Habilitation thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Licentiate thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Diploma thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static int bibtexout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ) { int type, status = BIBL_OK; type = bibtexout_type( in, pm->progname, "", refnum ); append_type ( type, out, &status ); append_citekey ( in, out, pm->format_opts, &status ); append_people ( in, "AUTHOR", "AUTHOR:CORP", "AUTHOR:ASIS", "author", LEVEL_MAIN, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "EDITOR", "EDITOR:CORP", "EDITOR:ASIS", "editor", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "TRANSLATOR", "TRANSLATOR:CORP", "TRANSLATOR:ASIS", "translator", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_titles ( in, type, out, pm->format_opts, &status ); append_date ( in, out, &status ); append_simple ( in, "EDITION", "edition", out, &status ); append_simple ( in, "PUBLISHER", "publisher", out, &status ); append_simple ( in, "ADDRESS", "address", out, &status ); append_simple ( in, "VOLUME", "volume", out, &status ); append_issue_number( in, out, &status ); append_pages ( in, out, pm->format_opts, &status ); append_keywords ( in, out, &status ); append_simple ( in, "CONTENTS", "contents", out, &status ); append_simple ( in, "ABSTRACT", "abstract", out, &status ); append_simple ( in, "LOCATION", "location", out, &status ); append_simple ( in, "DEGREEGRANTOR", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:ASIS", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:CORP", "school", out, &status ); append_simpleall ( in, "NOTES", "note", out, &status ); append_simpleall ( in, "ANNOTE", "annote", out, &status ); append_simple ( in, "ISBN", "isbn", out, &status ); append_simple ( in, "ISSN", "issn", out, &status ); append_simple ( in, "MRNUMBER", "mrnumber", out, &status ); append_simple ( in, "CODEN", "coden", out, &status ); append_simple ( in, "DOI", "doi", out, &status ); append_urls ( in, out, &status ); append_fileattach ( in, out, &status ); append_arxiv ( in, out, &status ); append_simple ( in, "EPRINTCLASS", "primaryClass", out, &status ); append_isi ( in, out, &status ); append_simple ( in, "LANGUAGE", "language", out, &status ); append_howpublished( in, out, &status ); return status; } /***************************************************** PUBLIC: int bibtexout_write() *****************************************************/ static int bibtexout_write( fields *out, FILE *fp, param *pm, unsigned long refnum ) { int i, j, len, nquotes, format_opts = pm->format_opts; char *tag, *value, ch; /* ...output type information "@article{" */ value = ( char * ) fields_value( out, 0, FIELDS_CHRP ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE) ) fprintf( fp, "@%s{", value ); else { len = (value) ? strlen( value ) : 0; fprintf( fp, "@" ); for ( i=0; in; ++j ) { nquotes = 0; tag = ( char * ) fields_tag( out, j, FIELDS_CHRP ); value = ( char * ) fields_value( out, j, FIELDS_CHRP ); fprintf( fp, ",\n" ); if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) fprintf( fp, " " ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE ) ) fprintf( fp, "%s", tag ); else { len = strlen( tag ); for ( i=0; i0 && value[i-1]=='\\' ) ) fprintf( fp, "\"" ); else { if ( nquotes % 2 == 0 ) fprintf( fp, "``" ); else fprintf( fp, "\'\'" ); nquotes++; } } } if ( format_opts & BIBL_FORMAT_BIBOUT_BRACKETS ) fprintf( fp, "}" ); else fprintf( fp, "\"" ); } /* ...finish reference */ if ( format_opts & BIBL_FORMAT_BIBOUT_FINALCOMMA ) fprintf( fp, "," ); fprintf( fp, "\n}\n\n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/bibtexout.c0000755000000000000000000006114607346545000016353 0ustar0000000000000000/* * bibtexout.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "str.h" #include "strsearch.h" #include "utf8.h" #include "xml.h" #include "fields.h" #include "generic.h" #include "name.h" #include "title.h" #include "type.h" #include "url.h" #include "bibformats.h" /***************************************************** PUBLIC: int bibtexout_initparams() *****************************************************/ static int bibtexout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static int bibtexout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int bibtexout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_BIBTEXOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 1; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = bibtexout_assemble; pm->writef = bibtexout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int bibtexout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE, TYPE_INBOOK, TYPE_INPROCEEDINGS, TYPE_PROCEEDINGS, TYPE_INCOLLECTION, TYPE_COLLECTION, TYPE_BOOK, TYPE_PHDTHESIS, TYPE_MASTERSTHESIS, TYPE_DIPLOMATHESIS, TYPE_REPORT, TYPE_MANUAL, TYPE_UNPUBLISHED, TYPE_ELECTRONIC, TYPE_MISC, NUM_TYPES }; static int bibtexout_type( fields *in, const char *progname, const char *filename, unsigned long refnum ) { match_type genre_matches[] = { { "periodical", TYPE_ARTICLE, LEVEL_ANY }, { "academic journal", TYPE_ARTICLE, LEVEL_ANY }, { "magazine", TYPE_ARTICLE, LEVEL_ANY }, { "newspaper", TYPE_ARTICLE, LEVEL_ANY }, { "article", TYPE_ARTICLE, LEVEL_ANY }, { "instruction", TYPE_MANUAL, LEVEL_ANY }, { "book", TYPE_BOOK, LEVEL_MAIN }, { "book", TYPE_INBOOK, LEVEL_ANY }, { "book chapter", TYPE_INBOOK, LEVEL_ANY }, { "unpublished", TYPE_UNPUBLISHED, LEVEL_ANY }, { "manuscript", TYPE_UNPUBLISHED, LEVEL_ANY }, { "conference publication", TYPE_PROCEEDINGS, LEVEL_MAIN }, { "conference publication", TYPE_INPROCEEDINGS, LEVEL_ANY }, { "collection", TYPE_COLLECTION, LEVEL_MAIN }, { "collection", TYPE_INCOLLECTION, LEVEL_ANY }, { "report", TYPE_REPORT, LEVEL_ANY }, { "technical report", TYPE_REPORT, LEVEL_ANY }, { "Masters thesis", TYPE_MASTERSTHESIS, LEVEL_ANY }, { "Diploma thesis", TYPE_DIPLOMATHESIS, LEVEL_ANY }, { "Ph.D. thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "Licentiate thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "electronic", TYPE_ELECTRONIC, LEVEL_ANY }, { "miscellaneous", TYPE_MISC, LEVEL_ANY }, }; int ngenre_matches = sizeof( genre_matches ) / sizeof( genre_matches[0] ); match_type resource_matches[] = { { "moving image", TYPE_ELECTRONIC, LEVEL_ANY }, { "software, multimedia", TYPE_ELECTRONIC, LEVEL_ANY }, }; int nresource_matches = sizeof( resource_matches ) /sizeof( resource_matches[0] ); match_type issuance_matches[] = { { "monographic", TYPE_BOOK, LEVEL_MAIN }, { "monographic", TYPE_INBOOK, LEVEL_ANY }, }; int nissuance_matches = sizeof( issuance_matches ) / sizeof( issuance_matches[0] ); int type, maxlevel, n; type = type_from_mods_hints( in, TYPE_FROM_GENRE, genre_matches, ngenre_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_RESOURCE, resource_matches, nresource_matches, TYPE_UNKNOWN ); if ( type==TYPE_UNKNOWN ) type = type_from_mods_hints( in, TYPE_FROM_ISSUANCE, issuance_matches, nissuance_matches, TYPE_UNKNOWN ); /* default to TYPE_MISC */ if ( type==TYPE_UNKNOWN ) { maxlevel = fields_maxlevel( in ); if ( maxlevel > 0 ) type = TYPE_MISC; else { if ( progname ) fprintf( stderr, "%s: ", progname ); fprintf( stderr, "Cannot identify TYPE in reference %lu ", refnum+1 ); n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) fprintf( stderr, " %s", (char*) fields_value( in, n, FIELDS_CHRP ) ); fprintf( stderr, " (defaulting to @Misc)\n" ); type = TYPE_MISC; } } return type; } static void append_type( int type, fields *out, int *status ) { char *typenames[ NUM_TYPES ] = { [ TYPE_ARTICLE ] = "Article", [ TYPE_INBOOK ] = "Inbook", [ TYPE_PROCEEDINGS ] = "Proceedings", [ TYPE_INPROCEEDINGS ] = "InProceedings", [ TYPE_BOOK ] = "Book", [ TYPE_PHDTHESIS ] = "PhdThesis", [ TYPE_MASTERSTHESIS ] = "MastersThesis", [ TYPE_DIPLOMATHESIS ] = "MastersThesis", [ TYPE_REPORT ] = "TechReport", [ TYPE_MANUAL ] = "Manual", [ TYPE_COLLECTION ] = "Collection", [ TYPE_INCOLLECTION ] = "InCollection", [ TYPE_UNPUBLISHED ] = "Unpublished", [ TYPE_ELECTRONIC ] = "Electronic", [ TYPE_MISC ] = "Misc", }; int fstatus; char *s; if ( type < 0 || type >= NUM_TYPES ) type = TYPE_MISC; s = typenames[ type ]; fstatus = fields_add( out, "TYPE", s, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_citekey( fields *in, fields *out, int format_opts, int *status ) { int n, fstatus; str s; char *p; n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( ( format_opts & BIBL_FORMAT_BIBOUT_DROPKEY ) || n==FIELDS_NOTFOUND ) { fstatus = fields_add( out, "REFNUM", "", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else { str_init( &s ); p = fields_value( in, n, FIELDS_CHRP ); while ( p && *p && *p!='|' ) { if ( format_opts & BIBL_FORMAT_BIBOUT_STRICTKEY ) { if ( isdigit((unsigned char)*p) || (*p>='A' && *p<='Z') || (*p>='a' && *p<='z' ) ) { str_addchar( &s, *p ); } } else { if ( *p!=' ' && *p!='\t' ) { str_addchar( &s, *p ); } } p++; } if ( str_memerr( &s ) ) { *status = BIBL_ERR_MEMERR; str_free( &s ); return; } fstatus = fields_add( out, "REFNUM", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; str_free( &s ); } } static void append_simple( fields *in, char *intag, char *outtag, fields *out, int *status ) { int n, fstatus; n = fields_find( in, intag, LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { fields_set_used( in, n ); fstatus = fields_add( out, outtag, fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static void append_simpleall( fields *in, char *intag, char *outtag, fields *out, int *status ) { int i, fstatus; for ( i=0; in; ++i ) { if ( fields_match_tag( in, i, intag ) ) { fields_set_used( in, i ); fstatus = fields_add( out, outtag, fields_value( in, i, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } } static void append_keywords( fields *in, fields *out, int *status ) { str keywords, *word; vplist_index i; int fstatus; vplist a; str_init( &keywords ); vplist_init( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_STRP, &a, "KEYWORD" ); if ( a.n ) { for ( i=0; i0 ) str_strcatc( &keywords, "; " ); str_strcat( &keywords, word ); } if ( str_memerr( &keywords ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, "keywords", str_cstr( &keywords ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &keywords ); vplist_free( &a ); } static void append_fileattach( fields *in, fields *out, int *status ) { char *tag, *value; int i, fstatus; str data; str_init( &data ); for ( i=0; in; ++i ) { tag = fields_tag( in, i, FIELDS_CHRP ); if ( strcasecmp( tag, "FILEATTACH" ) ) continue; value = fields_value( in, i, FIELDS_CHRP ); str_strcpyc( &data, ":" ); str_strcatc( &data, value ); if ( strsearch( value, ".pdf" ) ) str_strcatc( &data, ":PDF" ); else if ( strsearch( value, ".html" ) ) str_strcatc( &data, ":HTML" ); else str_strcatc( &data, ":TYPE" ); if ( str_memerr( &data ) ) { *status = BIBL_ERR_MEMERR; goto out; } fields_set_used( in, i ); fstatus = fields_add( out, "file", str_cstr( &data ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } str_empty( &data ); } out: str_free( &data ); } static void append_people( fields *in, char *tag, char *ctag, char *atag, char *bibtag, int level, fields *out, int format_opts, int latex_out, int *status ) { int i, npeople, person, corp, asis, fstatus; str allpeople, oneperson; strs_init( &allpeople, &oneperson, NULL ); /* primary citation authors */ npeople = 0; for ( i=0; in; ++i ) { if ( level!=LEVEL_ANY && in->level[i]!=level ) continue; person = ( strcasecmp( in->tag[i].data, tag ) == 0 ); corp = ( strcasecmp( in->tag[i].data, ctag ) == 0 ); asis = ( strcasecmp( in->tag[i].data, atag ) == 0 ); if ( person || corp || asis ) { if ( npeople>0 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) str_strcatc( &allpeople, "\n\t\tand " ); else str_strcatc( &allpeople, "\nand " ); } if ( corp ) { if ( latex_out ) str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); if ( latex_out ) str_addchar( &allpeople, '}' ); } else if ( asis ) { if ( latex_out ) str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); if ( latex_out ) str_addchar( &allpeople, '}' ); } else { name_build_withcomma( &oneperson, fields_value( in, i, FIELDS_CHRP ) ); str_strcat( &allpeople, &oneperson ); } npeople++; } } if ( npeople ) { fstatus = fields_add( out, bibtag, allpeople.data, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } strs_free( &allpeople, &oneperson, NULL ); } static int append_title_chosen( fields *in, char *bibtag, fields *out, int nmainttl, int nsubttl ) { str fulltitle, *mainttl = NULL, *subttl = NULL; int status, ret = BIBL_OK; str_init( &fulltitle ); if ( nmainttl!=-1 ) { mainttl = fields_value( in, nmainttl, FIELDS_STRP ); fields_set_used( in, nmainttl ); } if ( nsubttl!=-1 ) { subttl = fields_value( in, nsubttl, FIELDS_STRP ); fields_set_used( in, nsubttl ); } title_combine( &fulltitle, mainttl, subttl ); if ( str_memerr( &fulltitle ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fulltitle ) ) { status = fields_add( out, bibtag, str_cstr( &fulltitle ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) ret = BIBL_ERR_MEMERR; } out: str_free( &fulltitle ); return ret; } static int append_title( fields *in, char *bibtag, int level, fields *out, int format_opts ) { int title, short_title, subtitle, short_subtitle, use_title, use_subtitle; title = fields_find( in, "TITLE", level ); short_title = fields_find( in, "SHORTTITLE", level ); subtitle = fields_find( in, "SUBTITLE", level ); short_subtitle = fields_find( in, "SHORTSUBTITLE", level ); if ( title==FIELDS_NOTFOUND || ( ( format_opts & BIBL_FORMAT_BIBOUT_SHORTTITLE ) && level==1 ) ) { use_title = short_title; use_subtitle = short_subtitle; } else { use_title = title; use_subtitle = subtitle; } return append_title_chosen( in, bibtag, out, use_title, use_subtitle ); } static void append_titles( fields *in, int type, fields *out, int format_opts, int *status ) { /* item=main level title */ *status = append_title( in, "title", 0, out, format_opts ); if ( *status!=BIBL_OK ) return; switch( type ) { case TYPE_ARTICLE: *status = append_title( in, "journal", 1, out, format_opts ); break; case TYPE_INBOOK: *status = append_title( in, "bookTitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_INCOLLECTION: case TYPE_INPROCEEDINGS: *status = append_title( in, "booktitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_PHDTHESIS: case TYPE_MASTERSTHESIS: *status = append_title( in, "series", 1, out, format_opts ); break; case TYPE_BOOK: case TYPE_REPORT: case TYPE_COLLECTION: case TYPE_PROCEEDINGS: *status = append_title( in, "series", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; default: /* do nothing */ break; } } static int find_date( fields *in, char *date_element ) { char date[100], partdate[100]; int n; sprintf( date, "DATE:%s", date_element ); n = fields_find( in, date, LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) { sprintf( partdate, "PARTDATE:%s", date_element ); n = fields_find( in, partdate, LEVEL_ANY ); } return n; } static void append_date( fields *in, fields *out, int *status ) { char *months[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; int n, month, fstatus; n = find_date( in, "YEAR" ); if ( n!=FIELDS_NOTFOUND ) { fields_set_used( in, n ); fstatus = fields_add( out, "year", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "MONTH" ); if ( n!=-1 ) { fields_set_used( in, n ); month = atoi( fields_value( in, n, FIELDS_CHRP ) ); if ( month>0 && month<13 ) fstatus = fields_add( out, "month", months[month-1], LEVEL_MAIN ); else fstatus = fields_add( out, "month", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "DAY" ); if ( n!=-1 ) { fields_set_used( in, n ); fstatus = fields_add( out, "day", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_arxiv( fields *in, fields *out, int *status ) { int n, fstatus1, fstatus2; str url; n = fields_find( in, "ARXIV", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_set_used( in, n ); /* ...write: * archivePrefix = "arXiv", * eprint = "#####", * ...for arXiv references */ fstatus1 = fields_add( out, "archivePrefix", "arXiv", LEVEL_MAIN ); fstatus2 = fields_add( out, "eprint", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK || fstatus2!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } /* ...also write: * url = "http://arxiv.org/abs/####", * ...to maximize compatibility */ str_init( &url ); arxiv_to_url( in, n, "URL", &url ); if ( str_has_value( &url ) ) { fstatus1 = fields_add( out, "url", str_cstr( &url ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &url ); } static void append_urls( fields *in, fields *out, int *status ) { int lstatus; slist types; lstatus = slist_init_valuesc( &types, "URL", "DOI", "PMID", "PMC", "JSTOR", NULL ); if ( lstatus!=SLIST_OK ) { *status = BIBL_ERR_MEMERR; return; } *status = urls_merge_and_add( in, LEVEL_ANY, out, "url", LEVEL_MAIN, &types ); slist_free( &types ); } static void append_isi( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ISIREFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fstatus = fields_add( out, "note", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_articlenumber( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ARTICLENUMBER", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_set_used( in, n ); fstatus = fields_add( out, "pages", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static int pages_build_pagestr( str *pages, fields *in, int sn, int en, int format_opts ) { /* ...append if starting page number is defined */ if ( sn!=-1 ) { str_strcat( pages, fields_value( in, sn, FIELDS_STRP ) ); fields_set_used( in, sn ); } /* ...append dashes if both starting and ending page numbers are defined */ if ( sn!=-1 && en!=-1 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_SINGLEDASH ) str_strcatc( pages, "-" ); else str_strcatc( pages, "--" ); } /* ...append ending page number is defined */ if ( en!=-1 ) { str_strcat( pages, fields_value( in, en, FIELDS_STRP ) ); fields_set_used( in, en ); } if ( str_memerr( pages ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int pages_are_defined( fields *in, int *sn, int *en ) { *sn = fields_find( in, "PAGES:START", LEVEL_ANY ); *en = fields_find( in, "PAGES:STOP", LEVEL_ANY ); if ( *sn==FIELDS_NOTFOUND && *en==FIELDS_NOTFOUND ) return 0; else return 1; } static void append_pages( fields *in, fields *out, int format_opts, int *status ) { int sn, en, fstatus; str pages; if ( !pages_are_defined( in, &sn, &en ) ) { append_articlenumber( in, out, status ); return; } str_init( &pages ); *status = pages_build_pagestr( &pages, in, sn, en, format_opts ); if ( *status==BIBL_OK ) { fstatus = fields_add( out, "pages", str_cstr( &pages ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &pages ); } /* * from Tim Hicks: * I'm no expert on bibtex, but those who know more than I on our mailing * list suggest that 'issue' isn't a recognised key for bibtex and * therefore that bibutils should be aliasing IS to number at some point in * the conversion. * * Therefore prefer outputting issue/number as number and only keep * a distinction if both issue and number are present for a particular * reference. */ static void append_issue_number( fields *in, fields *out, int *status ) { char issue[] = "issue", number[] = "number", *use_issue = number; int nissue = fields_find( in, "ISSUE", LEVEL_ANY ); int nnumber = fields_find( in, "NUMBER", LEVEL_ANY ); int fstatus; if ( nissue!=FIELDS_NOTFOUND && nnumber!=FIELDS_NOTFOUND ) use_issue = issue; if ( nissue!=FIELDS_NOTFOUND ) { fields_set_used( in, nissue ); fstatus = fields_add( out, use_issue, fields_value( in, nissue, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } if ( nnumber!=FIELDS_NOTFOUND ) { fields_set_used( in, nnumber ); fstatus = fields_add( out, "number", fields_value( in, nnumber, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_howpublished( fields *in, fields *out, int *status ) { int n, fstatus; char *d; n = fields_find( in, "GENRE:BIBUTILS", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; d = fields_value( in, n, FIELDS_CHRP_NOUSE ); if ( !strcmp( d, "Habilitation thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Licentiate thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Diploma thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static int bibtexout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ) { int type, status = BIBL_OK; type = bibtexout_type( in, pm->progname, "", refnum ); append_type ( type, out, &status ); append_citekey ( in, out, pm->format_opts, &status ); append_people ( in, "AUTHOR", "AUTHOR:CORP", "AUTHOR:ASIS", "author", LEVEL_MAIN, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "EDITOR", "EDITOR:CORP", "EDITOR:ASIS", "editor", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_people ( in, "TRANSLATOR", "TRANSLATOR:CORP", "TRANSLATOR:ASIS", "translator", LEVEL_ANY, out, pm->format_opts, pm->latexout, &status ); append_titles ( in, type, out, pm->format_opts, &status ); append_date ( in, out, &status ); append_simple ( in, "EDITION", "edition", out, &status ); append_simple ( in, "PUBLISHER", "publisher", out, &status ); append_simple ( in, "ADDRESS", "address", out, &status ); append_simple ( in, "VOLUME", "volume", out, &status ); append_issue_number( in, out, &status ); append_pages ( in, out, pm->format_opts, &status ); append_keywords ( in, out, &status ); append_simple ( in, "CONTENTS", "contents", out, &status ); append_simple ( in, "ABSTRACT", "abstract", out, &status ); append_simple ( in, "LOCATION", "location", out, &status ); append_simple ( in, "DEGREEGRANTOR", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:ASIS", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:CORP", "school", out, &status ); append_simpleall ( in, "NOTES", "note", out, &status ); append_simpleall ( in, "ANNOTE", "annote", out, &status ); append_simple ( in, "ISBN", "isbn", out, &status ); append_simple ( in, "ISSN", "issn", out, &status ); append_simple ( in, "MRNUMBER", "mrnumber", out, &status ); append_simple ( in, "CODEN", "coden", out, &status ); append_simple ( in, "DOI", "doi", out, &status ); append_urls ( in, out, &status ); append_fileattach ( in, out, &status ); append_arxiv ( in, out, &status ); append_simple ( in, "EPRINTCLASS", "primaryClass", out, &status ); append_isi ( in, out, &status ); append_simple ( in, "LANGUAGE", "language", out, &status ); append_howpublished( in, out, &status ); return status; } /***************************************************** PUBLIC: int bibtexout_write() *****************************************************/ static int bibtexout_write( fields *out, FILE *fp, param *pm, unsigned long refnum ) { int i, j, len, nquotes, format_opts = pm->format_opts; char *tag, *value, ch; /* ...output type information "@article{" */ value = ( char * ) fields_value( out, 0, FIELDS_CHRP ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE) ) fprintf( fp, "@%s{", value ); else { len = (value) ? strlen( value ) : 0; fprintf( fp, "@" ); for ( i=0; in; ++j ) { nquotes = 0; tag = ( char * ) fields_tag( out, j, FIELDS_CHRP ); value = ( char * ) fields_value( out, j, FIELDS_CHRP ); fprintf( fp, ",\n" ); if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) fprintf( fp, " " ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE ) ) fprintf( fp, "%s", tag ); else { len = strlen( tag ); for ( i=0; i0 && value[i-1]=='\\' ) ) fprintf( fp, "\"" ); else { if ( nquotes % 2 == 0 ) fprintf( fp, "``" ); else fprintf( fp, "\'\'" ); nquotes++; } } } if ( format_opts & BIBL_FORMAT_BIBOUT_BRACKETS ) fprintf( fp, "}" ); else fprintf( fp, "\"" ); } /* ...finish reference */ if ( format_opts & BIBL_FORMAT_BIBOUT_FINALCOMMA ) fprintf( fp, "," ); fprintf( fp, "\n}\n\n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/bibtextypes.c0000644000000000000000000012136407346545000016704 0ustar0000000000000000/* * bibtypes.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include "fields.h" #include "reftypes.h" /* Entry types from the IEEEtran Bibtex Style + others as observed */ /* * Journal Article */ static lookups article[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "number", "ISSUE", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "journal", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "eprint", "", EPRINT, LEVEL_MAIN }, { "archivePrefix","ARCHIVEPREFIX", SIMPLE, LEVEL_MAIN }, { "eprintclass", "EPRINTCLASS", SIMPLE, LEVEL_MAIN }, { "primaryClass", "EPRINTCLASS", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "mrnumber", "MRNUMBER", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; /* Book */ static lookups book[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Technical reports */ static lookups report[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "institution", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "mrnumber", "MRNUMBER", SIMPLE, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; static lookups manual[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|instruction", ALWAYS, LEVEL_MAIN } }; /* Part of a book (e.g. chapter or section) */ static lookups inbook[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_HOST }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "month", "DATE:MONTH",SIMPLE, LEVEL_HOST }, { "day", "DATE:DAY", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_SERIES }, { "number", "NUMBER", SIMPLE, LEVEL_SERIES }, { "pages", "PAGES", PAGES, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; /* References of papers in conference proceedings */ static lookups inproceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_HOST }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "paper", "PAPER", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INPROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; /* Used for a section of a book with its own title */ static lookups incollection[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_HOST }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "month", "DATE:MONTH", SIMPLE, LEVEL_HOST }, { "day", "DATE:DAY", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_HOST } }; /* Proceedings */ static lookups proceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; static lookups phds[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS",SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "" , HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Ph.D. thesis", DEFAULT, LEVEL_MAIN } }; static lookups masters[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS",SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Masters thesis", DEFAULT, LEVEL_MAIN } }; /* Unpublished */ static lookups unpublished[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; /* * For Published Standards */ static lookups standard[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "institution", "AUTHOR:CORP", SIMPLE, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "revision", "EDITION", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|STANDARD", ALWAYS, LEVEL_MAIN } }; /* * For Journals and Magazines */ static lookups periodical[] = { { "title", "", TITLE, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_MAIN }, { "coden", "CODEN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_MAIN } }; /* * For Patent */ static lookups patent[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "assignee", "ASSIGNEE", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, /* date granted */ { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "yearfiled", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, /* date filed */ { "monthfiled", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "dayfiled", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "nationality", "NATIONALITY", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PATENT", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN }, }; /* * Electronic Source */ static lookups electronic[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|web site", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups misc[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|MISC", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|miscellaneous", ALWAYS, LEVEL_MAIN }, }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants bibtex_all[] = { REFTYPE( "article", article ), REFTYPE( "booklet", book ), REFTYPE( "book", book ), REFTYPE( "electronic", electronic ), REFTYPE( "inbook", inbook ), REFTYPE( "incollection", incollection ), REFTYPE( "inconference", inproceedings ), REFTYPE( "conference", inproceedings ), REFTYPE( "inproceedings", inproceedings ), REFTYPE( "manual", manual ), REFTYPE( "mastersthesis", masters ), REFTYPE( "misc", misc ), REFTYPE( "online", misc ), REFTYPE( "patent", patent ), REFTYPE( "phdthesis", phds ), REFTYPE( "periodical", periodical ), REFTYPE( "proceedings", proceedings ), REFTYPE( "standard", standard ), REFTYPE( "techreport", report ), REFTYPE( "unpublished", unpublished ), }; int bibtex_nall = sizeof( bibtex_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/bibtextypes.c0000755000000000000000000012136407346545000016707 0ustar0000000000000000/* * bibtypes.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include "fields.h" #include "reftypes.h" /* Entry types from the IEEEtran Bibtex Style + others as observed */ /* * Journal Article */ static lookups article[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "number", "ISSUE", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "journal", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "eprint", "", EPRINT, LEVEL_MAIN }, { "archivePrefix","ARCHIVEPREFIX", SIMPLE, LEVEL_MAIN }, { "eprintclass", "EPRINTCLASS", SIMPLE, LEVEL_MAIN }, { "primaryClass", "EPRINTCLASS", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "mrnumber", "MRNUMBER", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; /* Book */ static lookups book[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Technical reports */ static lookups report[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "institution", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "mrnumber", "MRNUMBER", SIMPLE, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; static lookups manual[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|instruction", ALWAYS, LEVEL_MAIN } }; /* Part of a book (e.g. chapter or section) */ static lookups inbook[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_HOST }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "month", "DATE:MONTH",SIMPLE, LEVEL_HOST }, { "day", "DATE:DAY", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_SERIES }, { "number", "NUMBER", SIMPLE, LEVEL_SERIES }, { "pages", "PAGES", PAGES, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; /* References of papers in conference proceedings */ static lookups inproceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_HOST }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "paper", "PAPER", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INPROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; /* Used for a section of a book with its own title */ static lookups incollection[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_HOST }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "month", "DATE:MONTH", SIMPLE, LEVEL_HOST }, { "day", "DATE:DAY", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_HOST } }; /* Proceedings */ static lookups proceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; static lookups phds[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS",SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "" , HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Ph.D. thesis", DEFAULT, LEVEL_MAIN } }; static lookups masters[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS",SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Masters thesis", DEFAULT, LEVEL_MAIN } }; /* Unpublished */ static lookups unpublished[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; /* * For Published Standards */ static lookups standard[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "institution", "AUTHOR:CORP", SIMPLE, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "revision", "EDITION", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|STANDARD", ALWAYS, LEVEL_MAIN } }; /* * For Journals and Magazines */ static lookups periodical[] = { { "title", "", TITLE, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_MAIN }, { "coden", "CODEN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_MAIN } }; /* * For Patent */ static lookups patent[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "assignee", "ASSIGNEE", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, /* date granted */ { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "yearfiled", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, /* date filed */ { "monthfiled", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "dayfiled", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "nationality", "NATIONALITY", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PATENT", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN }, }; /* * Electronic Source */ static lookups electronic[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|web site", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups misc[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "author:ASIS", "AUTHOR:ASIS", PERSON, LEVEL_MAIN }, { "author:CORP", "AUTHOR:CORP", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "translator:ASIS","TRANSLATOR:ASIS",PERSON, LEVEL_MAIN }, { "translator:CORP","TRANSLATOR:CORP",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "editor:ASIS", "EDITOR:ASIS", PERSON, LEVEL_MAIN }, { "editor:CORP", "EDITOR:CORP", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|MISC", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|miscellaneous", ALWAYS, LEVEL_MAIN }, }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants bibtex_all[] = { REFTYPE( "article", article ), REFTYPE( "booklet", book ), REFTYPE( "book", book ), REFTYPE( "electronic", electronic ), REFTYPE( "inbook", inbook ), REFTYPE( "incollection", incollection ), REFTYPE( "inconference", inproceedings ), REFTYPE( "conference", inproceedings ), REFTYPE( "inproceedings", inproceedings ), REFTYPE( "manual", manual ), REFTYPE( "mastersthesis", masters ), REFTYPE( "misc", misc ), REFTYPE( "online", misc ), REFTYPE( "patent", patent ), REFTYPE( "phdthesis", phds ), REFTYPE( "periodical", periodical ), REFTYPE( "proceedings", proceedings ), REFTYPE( "standard", standard ), REFTYPE( "techreport", report ), REFTYPE( "unpublished", unpublished ), }; int bibtex_nall = sizeof( bibtex_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/bibutils.c0000644000000000000000000000405707346545000016156 0ustar0000000000000000/* * bibutils.c * * Copyright (c) Chris Putnam 2005-2020 * * Source code released under the GPL version 2 * */ #include #include #include "bibutils.h" #include "bibformats.h" int bibl_initparams( param *p, int readmode, int writemode, char *progname ) { int status; switch ( readmode ) { case BIBL_BIBTEXIN: status = bibtexin_initparams ( p, progname ); break; case BIBL_BIBLATEXIN: status = biblatexin_initparams( p, progname ); break; case BIBL_COPACIN: status = copacin_initparams ( p, progname ); break; case BIBL_EBIIN: status = ebiin_initparams ( p, progname ); break; case BIBL_ENDNOTEIN: status = endin_initparams ( p, progname ); break; case BIBL_ENDNOTEXMLIN: status = endxmlin_initparams ( p, progname ); break; case BIBL_MEDLINEIN: status = medin_initparams ( p, progname ); break; case BIBL_MODSIN: status = modsin_initparams ( p, progname ); break; case BIBL_NBIBIN: status = nbibin_initparams ( p, progname ); break; case BIBL_RISIN: status = risin_initparams ( p, progname ); break; case BIBL_WORDIN: status = wordin_initparams ( p, progname ); break; default: status = BIBL_ERR_BADINPUT; } if ( status!=BIBL_OK ) return status; switch ( writemode ) { case BIBL_ADSABSOUT: status = adsout_initparams ( p, progname ); break; case BIBL_BIBTEXOUT: status = bibtexout_initparams ( p, progname ); break; case BIBL_BIBLATEXOUT: status = biblatexout_initparams( p, progname ); break; case BIBL_ENDNOTEOUT: status = endout_initparams ( p, progname ); break; case BIBL_ISIOUT: status = isiout_initparams ( p, progname ); break; case BIBL_MODSOUT: status = modsout_initparams ( p, progname ); break; case BIBL_NBIBOUT: status = nbibout_initparams ( p, progname ); break; case BIBL_RISOUT: status = risout_initparams ( p, progname ); break; case BIBL_WORD2007OUT: status = wordout_initparams ( p, progname ); break; default: status = BIBL_ERR_BADINPUT; } return status; } hs-bibutils-6.10.0.0/bibutils/bibutils.c0000755000000000000000000000405707346545000016161 0ustar0000000000000000/* * bibutils.c * * Copyright (c) Chris Putnam 2005-2020 * * Source code released under the GPL version 2 * */ #include #include #include "bibutils.h" #include "bibformats.h" int bibl_initparams( param *p, int readmode, int writemode, char *progname ) { int status; switch ( readmode ) { case BIBL_BIBTEXIN: status = bibtexin_initparams ( p, progname ); break; case BIBL_BIBLATEXIN: status = biblatexin_initparams( p, progname ); break; case BIBL_COPACIN: status = copacin_initparams ( p, progname ); break; case BIBL_EBIIN: status = ebiin_initparams ( p, progname ); break; case BIBL_ENDNOTEIN: status = endin_initparams ( p, progname ); break; case BIBL_ENDNOTEXMLIN: status = endxmlin_initparams ( p, progname ); break; case BIBL_MEDLINEIN: status = medin_initparams ( p, progname ); break; case BIBL_MODSIN: status = modsin_initparams ( p, progname ); break; case BIBL_NBIBIN: status = nbibin_initparams ( p, progname ); break; case BIBL_RISIN: status = risin_initparams ( p, progname ); break; case BIBL_WORDIN: status = wordin_initparams ( p, progname ); break; default: status = BIBL_ERR_BADINPUT; } if ( status!=BIBL_OK ) return status; switch ( writemode ) { case BIBL_ADSABSOUT: status = adsout_initparams ( p, progname ); break; case BIBL_BIBTEXOUT: status = bibtexout_initparams ( p, progname ); break; case BIBL_BIBLATEXOUT: status = biblatexout_initparams( p, progname ); break; case BIBL_ENDNOTEOUT: status = endout_initparams ( p, progname ); break; case BIBL_ISIOUT: status = isiout_initparams ( p, progname ); break; case BIBL_MODSOUT: status = modsout_initparams ( p, progname ); break; case BIBL_NBIBOUT: status = nbibout_initparams ( p, progname ); break; case BIBL_RISOUT: status = risout_initparams ( p, progname ); break; case BIBL_WORD2007OUT: status = wordout_initparams ( p, progname ); break; default: status = BIBL_ERR_BADINPUT; } return status; } hs-bibutils-6.10.0.0/bibutils/bibutils.h0000755000000000000000000001073707346545000016170 0ustar0000000000000000/* * bibutils.h * * Copyright (c) Chris Putnam 2005-2020 * * Source code released under GPL version 2 * */ #ifndef BIBUTILS_H #define BIBUTILS_H #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include "bibdefs.h" #include "bibl.h" #include "slist.h" #include "charsets.h" #include "str_conv.h" #define BIBL_FIRSTIN (100) #define BIBL_MODSIN (BIBL_FIRSTIN) #define BIBL_BIBTEXIN (BIBL_FIRSTIN+1) #define BIBL_RISIN (BIBL_FIRSTIN+2) #define BIBL_ENDNOTEIN (BIBL_FIRSTIN+3) #define BIBL_COPACIN (BIBL_FIRSTIN+4) #define BIBL_ISIIN (BIBL_FIRSTIN+5) #define BIBL_MEDLINEIN (BIBL_FIRSTIN+6) #define BIBL_ENDNOTEXMLIN (BIBL_FIRSTIN+7) #define BIBL_BIBLATEXIN (BIBL_FIRSTIN+8) #define BIBL_EBIIN (BIBL_FIRSTIN+9) #define BIBL_WORDIN (BIBL_FIRSTIN+10) #define BIBL_NBIBIN (BIBL_FIRSTIN+11) #define BIBL_LASTIN (BIBL_FIRSTIN+11) #define BIBL_FIRSTOUT (200) #define BIBL_MODSOUT (BIBL_FIRSTOUT) #define BIBL_BIBTEXOUT (BIBL_FIRSTOUT+1) #define BIBL_RISOUT (BIBL_FIRSTOUT+2) #define BIBL_ENDNOTEOUT (BIBL_FIRSTOUT+3) #define BIBL_ISIOUT (BIBL_FIRSTOUT+4) #define BIBL_WORD2007OUT (BIBL_FIRSTOUT+5) #define BIBL_ADSABSOUT (BIBL_FIRSTOUT+6) #define BIBL_NBIBOUT (BIBL_FIRSTOUT+7) #define BIBL_BIBLATEXOUT (BIBL_FIRSTOUT+8) #define BIBL_LASTOUT (BIBL_FIRSTOUT+8) #define BIBL_FORMAT_VERBOSE (1) #define BIBL_FORMAT_BIBOUT_FINALCOMMA (2) #define BIBL_FORMAT_BIBOUT_SINGLEDASH (4) #define BIBL_FORMAT_BIBOUT_WHITESPACE (8) #define BIBL_FORMAT_BIBOUT_BRACKETS (16) #define BIBL_FORMAT_BIBOUT_UPPERCASE (32) #define BIBL_FORMAT_BIBOUT_STRICTKEY (64) #define BIBL_FORMAT_BIBOUT_SHORTTITLE (128) #define BIBL_FORMAT_BIBOUT_DROPKEY (256) #define BIBL_FORMAT_MODSOUT_DROPKEY (512) #define BIBL_RAW_WITHCHARCONVERT (4) #define BIBL_RAW_WITHMAKEREFID (8) #define BIBL_CHARSET_UNKNOWN CHARSET_UNKNOWN #define BIBL_CHARSET_UNICODE CHARSET_UNICODE #define BIBL_CHARSET_GB18030 CHARSET_GB18030 #define BIBL_CHARSET_DEFAULT CHARSET_DEFAULT #define BIBL_CHARSET_UTF8_DEFAULT CHARSET_UTF8_DEFAULT #define BIBL_CHARSET_BOM_DEFAULT CHARSET_BOM_DEFAULT #define BIBL_SRC_DEFAULT (0) /* value from program default */ #define BIBL_SRC_FILE (1) /* value from file, priority over default */ #define BIBL_SRC_USER (2) /* value from user, priority over file, default */ #define BIBL_XMLOUT_FALSE STR_CONV_XMLOUT_FALSE #define BIBL_XMLOUT_TRUE STR_CONV_XMLOUT_TRUE #define BIBL_XMLOUT_ENTITIES STR_CONV_XMLOUT_ENTITIES typedef unsigned char uchar; typedef struct param { int readformat; int writeformat; int charsetin; uchar charsetin_src; /*BIBL_SRC_DEFAULT, BIBL_SRC_FILE, BIBL_SRC_USER*/ uchar latexin; uchar utf8in; uchar xmlin; uchar nosplittitle; int charsetout; uchar charsetout_src; /* BIBL_SRC_PROG, BIBL_SRC_USER */ uchar latexout; /* If true, write Latex codes */ uchar utf8out; /* If true, write characters encoded by utf8 */ uchar utf8bom; /* If true, write utf8 byte-order-mark */ uchar xmlout; /* If true, write characters in XML entities */ int format_opts; /* options for specific formats */ int addcount; /* add reference count to reference id */ uchar output_raw; uchar verbose; uchar singlerefperfile; slist asis; /* Names that shouldn't be mangled */ slist corps; /* Names that shouldn't be mangled-MODS corporation type */ char *progname; int (*readf)(FILE*,char*,int,int*,str*,str*,int*); int (*processf)(fields*,const char*,const char*,long,struct param*); int (*cleanf)(bibl*,struct param*); int (*typef) (fields*,const char*,int,struct param*); int (*convertf)(fields*,fields*,int,struct param*); void (*headerf)(FILE*,struct param*); void (*footerf)(FILE*); int (*assemblef)(fields*,fields*,struct param*,unsigned long); int (*writef)(fields*,FILE*,struct param*,unsigned long); variants *all; int nall; } param; int bibl_initparams( param *p, int readmode, int writemode, char *progname ); void bibl_freeparams( param *p ); int bibl_readasis( param *p, char *filename ); int bibl_addtoasis( param *p, char *entry ); int bibl_readcorps( param *p, char *filename ); int bibl_addtocorps( param *p, char *entry ); int bibl_read( bibl *b, FILE *fp, char *filename, param *p ); int bibl_write( bibl *b, FILE *fp, param *p ); void bibl_reporterr( int err ); #ifdef __cplusplus } #endif /* __cplusplus */ #endif hs-bibutils-6.10.0.0/bibutils/bltypes.c0000644000000000000000000023162507346545000016026 0ustar0000000000000000/* * bltypes.c * * Copyright (c) Chris Putnam 2008-2020 * Copyright (c) Johannes Wilm 2010-2020 * * Program and source code released under the GPL version 2 * */ #include #include "fields.h" #include "reftypes.h" /* Entry types for biblatex formatted bibliographies */ /* * Article in a journal, newspaper, other periodical */ static lookups article[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "journal", "TITLE", TITLE, LEVEL_HOST }, { "journaltitle", "TITLE", TITLE, LEVEL_HOST }, { "journalsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "shortjournal", "SHORTTITLE", SIMPLE, LEVEL_HOST }, { "issuetitle", "TITLE", TITLE, LEVEL_SERIES }, /*WRONG*/ { "issuesubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "series", "PARTTITLE", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "eid", "EID", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "entrysubtype", "", BLT_SUBTYPE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|journal article", DEFAULT, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", DEFAULT, LEVEL_HOST } }; /* Book */ static lookups book[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, /* WRONG */ { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Booklet */ static lookups booklet[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; static lookups collection[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Part of a book (e.g. chapter or section) */ static lookups inbook[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "bookauthor", "AUTHOR", PERSON, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, /* WRONG */ { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; /* incollection */ static lookups incollection[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "bookauthor", "AUTHOR", PERSON, LEVEL_HOST }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, /* WRONG */ { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "location", "ADDRESS", SIMPLE, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_HOST } }; /* inproceedings */ static lookups inproceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "eventtitle", "EVENT:CONF", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, { "venue", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "location", "ADDRESS", SIMPLE, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INPROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups manual[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|instruction", ALWAYS, LEVEL_MAIN } }; static lookups misc[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|MISC", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|miscellaneous", ALWAYS, LEVEL_MAIN }, }; static lookups online[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|web page", ALWAYS, LEVEL_MAIN }, }; static lookups patent[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "holder", "ASSIGNEE", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PATENT", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN }, }; /* * An entire issue of a periodical * * "The title of the periodical is given in the title field. If the issue has * its own title in addition to the main title of the periodical, it goes in * the issuetitle field. The editor is omissible..." */ static lookups periodical[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_HOST }, { "subtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_HOST }, { "issuetitle", "TITLE", TITLE, LEVEL_MAIN }, { "issuesubtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "issuetitleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "series", "TITLE", SIMPLE, LEVEL_SERIES }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlmonth", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlyear", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|issue", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST } }; static lookups proceedings[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "eventtitle", "EVENT:CONF", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_SERIES }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", SIMPLE, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; /* Technical reports */ static lookups report[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "series", "TITLE", TITLE, LEVEL_HOST }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "institution", "SPONSOR:ASIS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "number", "REPORTNUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isrn", "ISRN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", SIMPLE, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; /* Unpublished */ static lookups unpublished[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; static lookups thesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, }; static lookups phdthesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Ph.D. thesis",DEFAULT, LEVEL_MAIN }, }; static lookups mastersthesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Masters thesis", DEFAULT, LEVEL_MAIN }, }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants biblatex_all[] = { REFTYPE( "article", article ), REFTYPE( "suppperiodical", article ), REFTYPE( "booklet", booklet ), REFTYPE( "book", book ), REFTYPE( "collection", collection ), REFTYPE( "reference", collection ), REFTYPE( "mvreference", collection ), REFTYPE( "inbook", inbook ), REFTYPE( "suppbook", inbook ), REFTYPE( "incollection", incollection ), REFTYPE( "inreference", incollection ), REFTYPE( "suppcollection", incollection ), REFTYPE( "inproceedings", inproceedings ), REFTYPE( "conference", inproceedings ), /* legacy */ REFTYPE( "manual", manual ), REFTYPE( "misc", misc ), REFTYPE( "online", online ), REFTYPE( "electronic", online ), /* legacy */ REFTYPE( "www", online ), /* jurabib compatibility */ REFTYPE( "patent", patent ), REFTYPE( "periodical", periodical ), REFTYPE( "proceedings", proceedings ), REFTYPE( "mvproceedings", proceedings ), REFTYPE( "report", report ), REFTYPE( "techreport", report ), /* REFTYPE( "set", set ), */ REFTYPE( "thesis", thesis ), REFTYPE( "phdthesis", phdthesis ), /* legacy */ REFTYPE( "mastersthesis", mastersthesis ), /* legacy */ REFTYPE( "unpublished", unpublished ), }; int biblatex_nall = sizeof( biblatex_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/bltypes.c0000755000000000000000000023162507346545000016031 0ustar0000000000000000/* * bltypes.c * * Copyright (c) Chris Putnam 2008-2020 * Copyright (c) Johannes Wilm 2010-2020 * * Program and source code released under the GPL version 2 * */ #include #include "fields.h" #include "reftypes.h" /* Entry types for biblatex formatted bibliographies */ /* * Article in a journal, newspaper, other periodical */ static lookups article[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "journal", "TITLE", TITLE, LEVEL_HOST }, { "journaltitle", "TITLE", TITLE, LEVEL_HOST }, { "journalsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "shortjournal", "SHORTTITLE", SIMPLE, LEVEL_HOST }, { "issuetitle", "TITLE", TITLE, LEVEL_SERIES }, /*WRONG*/ { "issuesubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "series", "PARTTITLE", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "eid", "EID", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "entrysubtype", "", BLT_SUBTYPE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|journal article", DEFAULT, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", DEFAULT, LEVEL_HOST } }; /* Book */ static lookups book[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, /* WRONG */ { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Booklet */ static lookups booklet[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; static lookups collection[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Part of a book (e.g. chapter or section) */ static lookups inbook[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "bookauthor", "AUTHOR", PERSON, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, /* WRONG */ { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; /* incollection */ static lookups incollection[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "bookauthor", "AUTHOR", PERSON, LEVEL_HOST }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, /* WRONG */ { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "location", "ADDRESS", SIMPLE, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_HOST } }; /* inproceedings */ static lookups inproceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "eventtitle", "EVENT:CONF", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, { "venue", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "location", "ADDRESS", SIMPLE, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INPROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups manual[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|instruction", ALWAYS, LEVEL_MAIN } }; static lookups misc[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|MISC", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|miscellaneous", ALWAYS, LEVEL_MAIN }, }; static lookups online[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|web page", ALWAYS, LEVEL_MAIN }, }; static lookups patent[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "holder", "ASSIGNEE", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PATENT", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN }, }; /* * An entire issue of a periodical * * "The title of the periodical is given in the title field. If the issue has * its own title in addition to the main title of the periodical, it goes in * the issuetitle field. The editor is omissible..." */ static lookups periodical[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_HOST }, { "subtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_HOST }, { "issuetitle", "TITLE", TITLE, LEVEL_MAIN }, { "issuesubtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "issuetitleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "series", "TITLE", SIMPLE, LEVEL_SERIES }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlmonth", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlyear", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|issue", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST } }; static lookups proceedings[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "eventtitle", "EVENT:CONF", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_SERIES }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", SIMPLE, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; /* Technical reports */ static lookups report[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "series", "TITLE", TITLE, LEVEL_HOST }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "institution", "SPONSOR:ASIS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "number", "REPORTNUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isrn", "ISRN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", SIMPLE, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; /* Unpublished */ static lookups unpublished[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; static lookups thesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, }; static lookups phdthesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Ph.D. thesis",DEFAULT, LEVEL_MAIN }, }; static lookups mastersthesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Masters thesis", DEFAULT, LEVEL_MAIN }, }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants biblatex_all[] = { REFTYPE( "article", article ), REFTYPE( "suppperiodical", article ), REFTYPE( "booklet", booklet ), REFTYPE( "book", book ), REFTYPE( "collection", collection ), REFTYPE( "reference", collection ), REFTYPE( "mvreference", collection ), REFTYPE( "inbook", inbook ), REFTYPE( "suppbook", inbook ), REFTYPE( "incollection", incollection ), REFTYPE( "inreference", incollection ), REFTYPE( "suppcollection", incollection ), REFTYPE( "inproceedings", inproceedings ), REFTYPE( "conference", inproceedings ), /* legacy */ REFTYPE( "manual", manual ), REFTYPE( "misc", misc ), REFTYPE( "online", online ), REFTYPE( "electronic", online ), /* legacy */ REFTYPE( "www", online ), /* jurabib compatibility */ REFTYPE( "patent", patent ), REFTYPE( "periodical", periodical ), REFTYPE( "proceedings", proceedings ), REFTYPE( "mvproceedings", proceedings ), REFTYPE( "report", report ), REFTYPE( "techreport", report ), /* REFTYPE( "set", set ), */ REFTYPE( "thesis", thesis ), REFTYPE( "phdthesis", phdthesis ), /* legacy */ REFTYPE( "mastersthesis", mastersthesis ), /* legacy */ REFTYPE( "unpublished", unpublished ), }; int biblatex_nall = sizeof( biblatex_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/bu_auth.c0000644000000000000000000000210207346545000015755 0ustar0000000000000000/* * bu_auth.c * * Copyright (c) Chris Putnam 2017-2020 * * Source code released under the GPL version 2 */ #include #include "bu_auth.h" const char *bu_genre[] = { "academic journal", "airtel", "collection", "communication", "Diploma thesis", "Doctoral thesis", "electronic", "e-mail communication" "Habilitation thesis", "handwritten note", "hearing", "journal article", "Licentiate thesis", "magazine", "magazine article", "manuscript", "Masters thesis", "memo", "miscellaneous", "newspaper article", "pamphlet", "Ph.D. thesis", "press release", "teletype", "television broadcast", "unpublished" }; int nbu_genre = sizeof( bu_genre ) / sizeof( const char *); static int position_in_list( const char *list[], int nlist, const char *query ) { int i; for ( i=0; i #include "bu_auth.h" const char *bu_genre[] = { "academic journal", "airtel", "collection", "communication", "Diploma thesis", "Doctoral thesis", "electronic", "e-mail communication" "Habilitation thesis", "handwritten note", "hearing", "journal article", "Licentiate thesis", "magazine", "magazine article", "manuscript", "Masters thesis", "memo", "miscellaneous", "newspaper article", "pamphlet", "Ph.D. thesis", "press release", "teletype", "television broadcast", "unpublished" }; int nbu_genre = sizeof( bu_genre ) / sizeof( const char *); static int position_in_list( const char *list[], int nlist, const char *query ) { int i; for ( i=0; i #include #include #include "charsets.h" #define ARRAYSIZE( a ) ( sizeof(a) / sizeof(a[0]) ) #define ARRAYSTART( a ) ( &(a[0]) ) #define CHARSETARRAY( a ) ARRAYSTART( a ), ARRAYSIZE( a ) #define CHARSET_NALIASES ( 7 ) typedef struct convert_t { unsigned int index, unicode; } convert_t; typedef struct allcharconvert_t { char cmdname[15]; char descriptname[200]; char aliases[CHARSET_NALIASES][25]; convert_t *table; int ntable; } allcharconvert_t; static convert_t adobeiso[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 305 }, { 145, 768 }, { 146, 769 }, { 147, 770 }, { 148, 771 }, { 149, 772 }, { 150, 774 }, { 151, 775 }, { 152, 776 }, { 153, 153 }, { 154, 778 }, { 155, 807 }, { 156, 156 }, { 157, 779 }, { 158, 808 }, { 159, 780 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t adobestd[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8260 }, { 165, 165 }, { 166, 402 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 8220 }, { 171, 171 }, { 172, 8249 }, { 173, 8250 }, { 174, 64257 }, { 175, 64258 }, { 176, 176 }, { 177, 8211 }, { 178, 8224 }, { 179, 8225 }, { 180, 183 }, { 181, 181 }, { 182, 182 }, { 183, 8729 }, { 184, 8218 }, { 185, 8222 }, { 186, 8221 }, { 187, 187 }, { 188, 8943 }, { 189, 8240 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 768 }, { 194, 180 }, { 195, 770 }, { 196, 771 }, { 197, 175 }, { 198, 728 }, { 199, 729 }, { 200, 168 }, { 201, 201 }, { 202, 176 }, { 203, 184 }, { 204, 204 }, { 205, 733 }, { 206, 731 }, { 207, 711 }, { 208, 8212 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 198 }, { 226, 226 }, { 227, 170 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 321 }, { 233, 216 }, { 234, 338 }, { 235, 186 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 230 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 305 }, { 246, 246 }, { 247, 247 }, { 248, 322 }, { 249, 248 }, { 250, 339 }, { 251, 223 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 39, 8216 }, { 39, 8217 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t adobesym[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 8242 }, { 163, 8804 }, { 164, 8725 }, { 165, 8734 }, { 166, 402 }, { 167, 9827 }, { 168, 9830 }, { 169, 9829 }, { 170, 9824 }, { 171, 8596 }, { 172, 8592 }, { 173, 8593 }, { 174, 8594 }, { 175, 8595 }, { 176, 176 }, { 177, 177 }, { 178, 8243 }, { 179, 8805 }, { 180, 215 }, { 181, 8733 }, { 182, 8706 }, { 183, 8729 }, { 184, 247 }, { 185, 8800 }, { 186, 8801 }, { 187, 8776 }, { 188, 8943 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 8709 }, { 199, 8745 }, { 200, 8746 }, { 201, 8835 }, { 202, 8839 }, { 203, 203 }, { 204, 8834 }, { 205, 8838 }, { 206, 8712 }, { 207, 207 }, { 208, 8736 }, { 209, 8711 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 8719 }, { 214, 8730 }, { 215, 8901 }, { 216, 172 }, { 217, 8743 }, { 218, 8744 }, { 219, 8660 }, { 220, 8656 }, { 221, 8657 }, { 222, 8658 }, { 223, 8659 }, { 224, 9674 }, { 225, 9001 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 8721 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 9002 }, { 242, 8747 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applecro[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 352 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 381 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 916 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 353 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 382 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 262 }, { 199, 171 }, { 200, 268 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 272 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 65534 }, { 217, 169 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 198 }, { 223, 187 }, { 224, 8211 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 263 }, { 231, 193 }, { 232, 269 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 273 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 960 }, { 250, 203 }, { 251, 730 }, { 252, 184 }, { 253, 202 }, { 254, 230 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t applecyr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1040 }, { 129, 1041 }, { 130, 1042 }, { 131, 1043 }, { 132, 1044 }, { 133, 1045 }, { 134, 1046 }, { 135, 1047 }, { 136, 1048 }, { 137, 1049 }, { 138, 1050 }, { 139, 1051 }, { 140, 1052 }, { 141, 1053 }, { 142, 1054 }, { 143, 1055 }, { 144, 1056 }, { 145, 1057 }, { 146, 1058 }, { 147, 1059 }, { 148, 1060 }, { 149, 1061 }, { 150, 1062 }, { 151, 1063 }, { 152, 1064 }, { 153, 1065 }, { 154, 1066 }, { 155, 1067 }, { 156, 1068 }, { 157, 1069 }, { 158, 1070 }, { 159, 1071 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 1030 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 1026 }, { 172, 1106 }, { 173, 8800 }, { 174, 1027 }, { 175, 1107 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 1110 }, { 181, 181 }, { 182, 8706 }, { 183, 1032 }, { 184, 1028 }, { 185, 1108 }, { 186, 1031 }, { 187, 1111 }, { 188, 1033 }, { 189, 1113 }, { 190, 1034 }, { 191, 1114 }, { 192, 1112 }, { 193, 1029 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 1035 }, { 204, 1115 }, { 205, 1036 }, { 206, 1116 }, { 207, 1109 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 8222 }, { 216, 1038 }, { 217, 1118 }, { 218, 1039 }, { 219, 1119 }, { 220, 8470 }, { 221, 1025 }, { 222, 1105 }, { 223, 1103 }, { 224, 1072 }, { 225, 1073 }, { 226, 1074 }, { 227, 1075 }, { 228, 1076 }, { 229, 1077 }, { 230, 1078 }, { 231, 1079 }, { 232, 1080 }, { 233, 1081 }, { 234, 1082 }, { 235, 1083 }, { 236, 1084 }, { 237, 1085 }, { 238, 1086 }, { 239, 1087 }, { 240, 1088 }, { 241, 1089 }, { 242, 1090 }, { 243, 1091 }, { 244, 1092 }, { 245, 1093 }, { 246, 1094 }, { 247, 1095 }, { 248, 1096 }, { 249, 1097 }, { 250, 1098 }, { 251, 1099 }, { 252, 1100 }, { 253, 1101 }, { 254, 1102 }, { 255, 164 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applegk2[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 913 }, { 130, 914 }, { 131, 915 }, { 132, 916 }, { 133, 214 }, { 134, 220 }, { 135, 917 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 918 }, { 140, 919 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 163 }, { 147, 8482 }, { 148, 238 }, { 149, 239 }, { 150, 8729 }, { 151, 920 }, { 152, 921 }, { 153, 244 }, { 154, 246 }, { 155, 155 }, { 156, 922 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 923 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 170 }, { 171, 938 }, { 172, 167 }, { 173, 8800 }, { 174, 924 }, { 175, 903 }, { 176, 925 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 926 }, { 181, 927 }, { 182, 928 }, { 183, 929 }, { 184, 931 }, { 185, 932 }, { 186, 933 }, { 187, 939 }, { 188, 934 }, { 189, 935 }, { 190, 936 }, { 191, 937 }, { 192, 940 }, { 193, 185 }, { 194, 172 }, { 195, 178 }, { 196, 179 }, { 197, 168 }, { 198, 901 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 166 }, { 204, 189 }, { 205, 902 }, { 206, 904 }, { 207, 176 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 900 }, { 215, 905 }, { 216, 906 }, { 217, 908 }, { 218, 910 }, { 219, 941 }, { 220, 942 }, { 221, 943 }, { 222, 972 }, { 223, 911 }, { 224, 973 }, { 225, 945 }, { 226, 946 }, { 227, 968 }, { 228, 948 }, { 229, 949 }, { 230, 966 }, { 231, 947 }, { 232, 951 }, { 233, 953 }, { 234, 958 }, { 235, 954 }, { 236, 955 }, { 237, 956 }, { 238, 957 }, { 239, 959 }, { 240, 960 }, { 241, 974 }, { 242, 961 }, { 243, 963 }, { 244, 964 }, { 245, 952 }, { 246, 969 }, { 247, 962 }, { 248, 967 }, { 249, 965 }, { 250, 950 }, { 251, 970 }, { 252, 971 }, { 253, 912 }, { 254, 944 }, { 255, 8240 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applegrk[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 901 }, { 182, 902 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macice[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 221 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 208 }, { 221, 240 }, { 222, 222 }, { 223, 254 }, { 224, 253 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macroman[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 64257 }, { 223, 64258 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 240 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macromanian[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 258 }, { 175, 350 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 259 }, { 191, 351 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 354 }, { 223, 355 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 356 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macturkish[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 286 }, { 219, 287 }, { 220, 304 }, { 221, 305 }, { 222, 350 }, { 223, 351 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 245 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t atarist[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 223 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 227 }, { 177, 245 }, { 178, 216 }, { 179, 248 }, { 180, 339 }, { 181, 338 }, { 182, 192 }, { 183, 195 }, { 184, 213 }, { 185, 168 }, { 186, 180 }, { 187, 8224 }, { 188, 182 }, { 189, 169 }, { 190, 174 }, { 191, 8482 }, { 192, 307 }, { 193, 306 }, { 194, 1488 }, { 195, 1489 }, { 196, 1490 }, { 197, 1491 }, { 198, 1492 }, { 199, 1493 }, { 200, 1494 }, { 201, 1495 }, { 202, 1496 }, { 203, 1497 }, { 204, 1499 }, { 205, 1500 }, { 206, 1502 }, { 207, 1504 }, { 208, 1505 }, { 209, 1506 }, { 210, 1508 }, { 211, 1510 }, { 212, 1511 }, { 213, 1512 }, { 214, 1513 }, { 215, 1514 }, { 216, 1503 }, { 217, 1498 }, { 218, 1501 }, { 219, 1507 }, { 220, 1509 }, { 221, 167 }, { 222, 8743 }, { 223, 8734 }, { 224, 945 }, { 225, 946 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8750 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 179 }, { 255, 175 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp437[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp737[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 913 }, { 129, 914 }, { 130, 915 }, { 131, 916 }, { 132, 917 }, { 133, 918 }, { 134, 919 }, { 135, 920 }, { 136, 921 }, { 137, 922 }, { 138, 923 }, { 139, 924 }, { 140, 925 }, { 141, 926 }, { 142, 927 }, { 143, 928 }, { 144, 929 }, { 145, 931 }, { 146, 932 }, { 147, 933 }, { 148, 934 }, { 149, 935 }, { 150, 936 }, { 151, 937 }, { 152, 945 }, { 153, 946 }, { 154, 947 }, { 155, 948 }, { 156, 949 }, { 157, 950 }, { 158, 951 }, { 159, 952 }, { 160, 953 }, { 161, 954 }, { 162, 955 }, { 163, 956 }, { 164, 957 }, { 165, 958 }, { 166, 959 }, { 167, 960 }, { 168, 961 }, { 169, 963 }, { 170, 962 }, { 171, 964 }, { 172, 965 }, { 173, 966 }, { 174, 967 }, { 175, 968 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 969 }, { 225, 940 }, { 226, 941 }, { 227, 942 }, { 228, 970 }, { 229, 943 }, { 230, 972 }, { 231, 973 }, { 232, 971 }, { 233, 974 }, { 234, 902 }, { 235, 904 }, { 236, 905 }, { 237, 906 }, { 238, 908 }, { 239, 910 }, { 240, 911 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 938 }, { 245, 939 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp775[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 262 }, { 129, 252 }, { 130, 233 }, { 131, 257 }, { 132, 228 }, { 133, 291 }, { 134, 229 }, { 135, 263 }, { 136, 322 }, { 137, 275 }, { 138, 342 }, { 139, 343 }, { 140, 299 }, { 141, 377 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 333 }, { 148, 246 }, { 149, 290 }, { 150, 162 }, { 151, 346 }, { 152, 347 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 215 }, { 159, 164 }, { 160, 256 }, { 161, 298 }, { 162, 243 }, { 163, 379 }, { 164, 380 }, { 165, 378 }, { 166, 8221 }, { 167, 166 }, { 168, 169 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 321 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 260 }, { 182, 268 }, { 183, 280 }, { 184, 278 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 302 }, { 190, 352 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 370 }, { 199, 362 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 381 }, { 208, 261 }, { 209, 269 }, { 210, 281 }, { 211, 279 }, { 212, 303 }, { 213, 353 }, { 214, 371 }, { 215, 363 }, { 216, 382 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 332 }, { 227, 323 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 324 }, { 232, 310 }, { 233, 311 }, { 234, 315 }, { 235, 316 }, { 236, 326 }, { 237, 274 }, { 238, 325 }, { 239, 8217 }, { 240, 173 }, { 241, 177 }, { 242, 8220 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 8222 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 39, 8216 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp850[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 215 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 169 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 162 }, { 190, 165 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 227 }, { 199, 195 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 240 }, { 209, 208 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 305 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 166 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 254 }, { 232, 222 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 253 }, { 237, 221 }, { 238, 175 }, { 239, 180 }, { 240, 173 }, { 241, 177 }, { 242, 8215 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp851[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 902 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 904 }, { 142, 196 }, { 143, 905 }, { 144, 906 }, { 145, 145 }, { 146, 908 }, { 147, 244 }, { 148, 246 }, { 149, 910 }, { 150, 251 }, { 151, 249 }, { 152, 911 }, { 153, 214 }, { 154, 220 }, { 155, 940 }, { 156, 163 }, { 157, 941 }, { 158, 942 }, { 159, 943 }, { 160, 970 }, { 161, 912 }, { 162, 972 }, { 163, 973 }, { 164, 913 }, { 165, 914 }, { 166, 915 }, { 167, 916 }, { 168, 917 }, { 169, 918 }, { 170, 919 }, { 171, 189 }, { 172, 920 }, { 173, 921 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 922 }, { 182, 923 }, { 183, 924 }, { 184, 925 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 926 }, { 190, 927 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 928 }, { 199, 929 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 931 }, { 208, 932 }, { 209, 933 }, { 210, 934 }, { 211, 935 }, { 212, 936 }, { 213, 937 }, { 214, 945 }, { 215, 946 }, { 216, 947 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 948 }, { 222, 949 }, { 223, 9600 }, { 224, 950 }, { 225, 951 }, { 226, 952 }, { 227, 953 }, { 228, 954 }, { 229, 955 }, { 230, 956 }, { 231, 957 }, { 232, 958 }, { 233, 959 }, { 234, 960 }, { 235, 961 }, { 236, 963 }, { 237, 962 }, { 238, 964 }, { 239, 900 }, { 240, 173 }, { 241, 177 }, { 242, 965 }, { 243, 966 }, { 244, 967 }, { 245, 167 }, { 246, 968 }, { 247, 901 }, { 248, 176 }, { 249, 168 }, { 250, 969 }, { 251, 971 }, { 252, 944 }, { 253, 974 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp852[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 367 }, { 134, 263 }, { 135, 231 }, { 136, 322 }, { 137, 235 }, { 138, 336 }, { 139, 337 }, { 140, 238 }, { 141, 377 }, { 142, 196 }, { 143, 262 }, { 144, 201 }, { 145, 313 }, { 146, 314 }, { 147, 244 }, { 148, 246 }, { 149, 317 }, { 150, 318 }, { 151, 346 }, { 152, 347 }, { 153, 214 }, { 154, 220 }, { 155, 356 }, { 156, 357 }, { 157, 321 }, { 158, 215 }, { 159, 269 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 260 }, { 165, 261 }, { 166, 381 }, { 167, 382 }, { 168, 280 }, { 169, 281 }, { 170, 170 }, { 171, 378 }, { 172, 268 }, { 173, 351 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 282 }, { 184, 350 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 379 }, { 190, 380 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 258 }, { 199, 259 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 273 }, { 209, 272 }, { 210, 270 }, { 211, 203 }, { 212, 271 }, { 213, 327 }, { 214, 205 }, { 215, 206 }, { 216, 283 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 354 }, { 222, 366 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 323 }, { 228, 324 }, { 229, 328 }, { 230, 352 }, { 231, 353 }, { 232, 340 }, { 233, 218 }, { 234, 341 }, { 235, 368 }, { 236, 253 }, { 237, 221 }, { 238, 355 }, { 239, 180 }, { 240, 173 }, { 241, 733 }, { 242, 731 }, { 243, 711 }, { 244, 728 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 729 }, { 251, 369 }, { 252, 344 }, { 253, 345 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp853[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 265 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 264 }, { 144, 201 }, { 145, 267 }, { 146, 266 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 304 }, { 153, 214 }, { 154, 220 }, { 155, 285 }, { 156, 163 }, { 157, 284 }, { 158, 215 }, { 159, 309 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 286 }, { 167, 287 }, { 168, 292 }, { 169, 293 }, { 170, 170 }, { 171, 189 }, { 172, 308 }, { 173, 351 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 350 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 379 }, { 190, 380 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 348 }, { 199, 349 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 208 }, { 209, 209 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 305 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 221 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 288 }, { 229, 289 }, { 230, 181 }, { 231, 294 }, { 232, 295 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 364 }, { 237, 365 }, { 238, 238 }, { 239, 180 }, { 240, 173 }, { 241, 241 }, { 242, 8467 }, { 243, 329 }, { 244, 728 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 729 }, { 251, 251 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 268 }, { 99, 263 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 352 }, { 115, 347 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 381 }, { 122, 378 }, { 122, 382 }, }; static convert_t cp855[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1106 }, { 129, 1026 }, { 130, 1107 }, { 131, 1027 }, { 132, 1105 }, { 133, 1025 }, { 134, 1108 }, { 135, 1028 }, { 136, 1109 }, { 137, 1029 }, { 138, 1110 }, { 139, 1030 }, { 140, 1111 }, { 141, 1031 }, { 142, 1112 }, { 143, 1032 }, { 144, 1113 }, { 145, 1033 }, { 146, 1114 }, { 147, 1034 }, { 148, 1115 }, { 149, 1035 }, { 150, 1116 }, { 151, 1036 }, { 152, 1118 }, { 153, 1038 }, { 154, 1119 }, { 155, 1039 }, { 156, 1102 }, { 157, 1070 }, { 158, 1098 }, { 159, 1066 }, { 160, 1072 }, { 161, 1040 }, { 162, 1073 }, { 163, 1041 }, { 164, 1094 }, { 165, 1062 }, { 166, 1076 }, { 167, 1044 }, { 168, 1077 }, { 169, 1045 }, { 170, 1092 }, { 171, 1060 }, { 172, 1075 }, { 173, 1043 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 1093 }, { 182, 1061 }, { 183, 1080 }, { 184, 1048 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 1081 }, { 190, 1049 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 1082 }, { 199, 1050 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 1083 }, { 209, 1051 }, { 210, 1084 }, { 211, 1052 }, { 212, 1085 }, { 213, 1053 }, { 214, 1086 }, { 215, 1054 }, { 216, 1087 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 1055 }, { 222, 1103 }, { 223, 9600 }, { 224, 1071 }, { 225, 1088 }, { 226, 1056 }, { 227, 1089 }, { 228, 1057 }, { 229, 1090 }, { 230, 1058 }, { 231, 1091 }, { 232, 1059 }, { 233, 1078 }, { 234, 1046 }, { 235, 1074 }, { 236, 1042 }, { 237, 1100 }, { 238, 1068 }, { 239, 8470 }, { 240, 173 }, { 241, 1099 }, { 242, 1067 }, { 243, 1079 }, { 244, 1047 }, { 245, 1096 }, { 246, 1064 }, { 247, 1101 }, { 248, 1069 }, { 249, 1097 }, { 250, 1065 }, { 251, 1095 }, { 252, 1063 }, { 253, 167 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp857[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 305 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 304 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 350 }, { 159, 351 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 286 }, { 167, 287 }, { 168, 191 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 169 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 162 }, { 190, 165 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 227 }, { 199, 195 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 186 }, { 209, 170 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 213 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 166 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 231 }, { 232, 215 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 236 }, { 237, 255 }, { 238, 175 }, { 239, 180 }, { 240, 173 }, { 241, 177 }, { 242, 242 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp860[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 227 }, { 133, 224 }, { 134, 193 }, { 135, 231 }, { 136, 234 }, { 137, 202 }, { 138, 232 }, { 139, 205 }, { 140, 212 }, { 141, 236 }, { 142, 195 }, { 143, 194 }, { 144, 201 }, { 145, 192 }, { 146, 200 }, { 147, 244 }, { 148, 245 }, { 149, 242 }, { 150, 218 }, { 151, 249 }, { 152, 204 }, { 153, 213 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 217 }, { 158, 8359 }, { 159, 211 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 210 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp861[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 208 }, { 140, 240 }, { 141, 222 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 254 }, { 150, 251 }, { 151, 221 }, { 152, 253 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 193 }, { 165, 205 }, { 166, 211 }, { 167, 218 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp862[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1488 }, { 129, 1489 }, { 130, 1490 }, { 131, 1491 }, { 132, 1492 }, { 133, 1493 }, { 134, 1494 }, { 135, 1495 }, { 136, 1496 }, { 137, 1497 }, { 138, 1498 }, { 139, 1499 }, { 140, 1500 }, { 141, 1501 }, { 142, 1502 }, { 143, 1503 }, { 144, 1504 }, { 145, 1505 }, { 146, 1506 }, { 147, 1507 }, { 148, 1508 }, { 149, 1509 }, { 150, 1510 }, { 151, 1511 }, { 152, 1512 }, { 153, 1513 }, { 154, 1514 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp863[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 194 }, { 133, 224 }, { 134, 182 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 8215 }, { 142, 192 }, { 143, 167 }, { 144, 201 }, { 145, 200 }, { 146, 202 }, { 147, 244 }, { 148, 203 }, { 149, 207 }, { 150, 251 }, { 151, 249 }, { 152, 164 }, { 153, 212 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 217 }, { 158, 219 }, { 159, 402 }, { 160, 166 }, { 161, 180 }, { 162, 243 }, { 163, 250 }, { 164, 168 }, { 165, 184 }, { 166, 179 }, { 167, 175 }, { 168, 206 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 190 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp864[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 176 }, { 129, 183 }, { 130, 8729 }, { 131, 8730 }, { 132, 9618 }, { 133, 9472 }, { 134, 9474 }, { 135, 9532 }, { 136, 9508 }, { 137, 9516 }, { 138, 9500 }, { 139, 9524 }, { 140, 9488 }, { 141, 9484 }, { 142, 9492 }, { 143, 9496 }, { 144, 946 }, { 145, 8734 }, { 146, 966 }, { 147, 177 }, { 148, 189 }, { 149, 188 }, { 150, 8776 }, { 151, 171 }, { 152, 187 }, { 153, 65271 }, { 154, 65272 }, { 155, 155 }, { 156, 156 }, { 157, 65275 }, { 158, 65276 }, { 159, 159 }, { 160, 160 }, { 161, 173 }, { 162, 65154 }, { 163, 163 }, { 164, 164 }, { 165, 65156 }, { 166, 166 }, { 167, 167 }, { 168, 65166 }, { 169, 1576 }, { 170, 1578 }, { 171, 1579 }, { 172, 1548 }, { 173, 1580 }, { 174, 1581 }, { 175, 1582 }, { 176, 1632 }, { 177, 1633 }, { 178, 1634 }, { 179, 1635 }, { 180, 1636 }, { 181, 1637 }, { 182, 1638 }, { 183, 1639 }, { 184, 1640 }, { 185, 1641 }, { 186, 1601 }, { 187, 1563 }, { 188, 1587 }, { 189, 1588 }, { 190, 1589 }, { 191, 1567 }, { 192, 162 }, { 193, 1569 }, { 194, 1570 }, { 195, 1571 }, { 196, 1572 }, { 197, 65226 }, { 198, 65163 }, { 199, 1575 }, { 200, 65169 }, { 201, 1577 }, { 202, 65175 }, { 203, 65179 }, { 204, 65183 }, { 205, 65187 }, { 206, 65191 }, { 207, 1583 }, { 208, 1584 }, { 209, 1585 }, { 210, 1586 }, { 211, 65203 }, { 212, 65207 }, { 213, 65211 }, { 214, 65215 }, { 215, 1591 }, { 216, 1592 }, { 217, 65227 }, { 218, 65231 }, { 219, 166 }, { 220, 172 }, { 221, 247 }, { 222, 215 }, { 223, 1593 }, { 224, 1600 }, { 225, 65235 }, { 226, 65239 }, { 227, 65243 }, { 228, 65247 }, { 229, 65251 }, { 230, 65255 }, { 231, 65259 }, { 232, 1608 }, { 233, 1609 }, { 234, 65267 }, { 235, 1590 }, { 236, 65228 }, { 237, 65230 }, { 238, 1594 }, { 239, 1605 }, { 240, 65149 }, { 241, 1617 }, { 242, 1606 }, { 243, 1607 }, { 244, 65260 }, { 245, 65264 }, { 246, 65266 }, { 247, 65232 }, { 248, 1602 }, { 249, 65269 }, { 250, 65270 }, { 251, 1604 }, { 252, 1603 }, { 253, 1610 }, { 254, 9632 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp865[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 164 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp866[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1040 }, { 129, 1041 }, { 130, 1042 }, { 131, 1043 }, { 132, 1044 }, { 133, 1045 }, { 134, 1046 }, { 135, 1047 }, { 136, 1048 }, { 137, 1049 }, { 138, 1050 }, { 139, 1051 }, { 140, 1052 }, { 141, 1053 }, { 142, 1054 }, { 143, 1055 }, { 144, 1056 }, { 145, 1057 }, { 146, 1058 }, { 147, 1059 }, { 148, 1060 }, { 149, 1061 }, { 150, 1062 }, { 151, 1063 }, { 152, 1064 }, { 153, 1065 }, { 154, 1066 }, { 155, 1067 }, { 156, 1068 }, { 157, 1069 }, { 158, 1070 }, { 159, 1071 }, { 160, 1072 }, { 161, 1073 }, { 162, 1074 }, { 163, 1075 }, { 164, 1076 }, { 165, 1077 }, { 166, 1078 }, { 167, 1079 }, { 168, 1080 }, { 169, 1081 }, { 170, 1082 }, { 171, 1083 }, { 172, 1084 }, { 173, 1085 }, { 174, 1086 }, { 175, 1087 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 1088 }, { 225, 1089 }, { 226, 1090 }, { 227, 1091 }, { 228, 1092 }, { 229, 1093 }, { 230, 1094 }, { 231, 1095 }, { 232, 1096 }, { 233, 1097 }, { 234, 1098 }, { 235, 1099 }, { 236, 1100 }, { 237, 1101 }, { 238, 1102 }, { 239, 1103 }, { 240, 1025 }, { 241, 1105 }, { 242, 1028 }, { 243, 1108 }, { 244, 1031 }, { 245, 1111 }, { 246, 1038 }, { 247, 1118 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8470 }, { 253, 164 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp869[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 902 }, { 135, 135 }, { 136, 183 }, { 137, 172 }, { 138, 166 }, { 139, 8216 }, { 140, 8217 }, { 141, 904 }, { 142, 8213 }, { 143, 905 }, { 144, 906 }, { 145, 938 }, { 146, 908 }, { 147, 147 }, { 148, 148 }, { 149, 910 }, { 150, 939 }, { 151, 169 }, { 152, 911 }, { 153, 178 }, { 154, 179 }, { 155, 940 }, { 156, 163 }, { 157, 941 }, { 158, 942 }, { 159, 943 }, { 160, 970 }, { 161, 912 }, { 162, 972 }, { 163, 973 }, { 164, 913 }, { 165, 914 }, { 166, 915 }, { 167, 916 }, { 168, 917 }, { 169, 918 }, { 170, 919 }, { 171, 189 }, { 172, 920 }, { 173, 921 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 922 }, { 182, 923 }, { 183, 924 }, { 184, 925 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 926 }, { 190, 927 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 928 }, { 199, 929 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 931 }, { 208, 932 }, { 209, 933 }, { 210, 934 }, { 211, 935 }, { 212, 936 }, { 213, 937 }, { 214, 945 }, { 215, 946 }, { 216, 947 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 948 }, { 222, 949 }, { 223, 9600 }, { 224, 950 }, { 225, 951 }, { 226, 952 }, { 227, 953 }, { 228, 954 }, { 229, 955 }, { 230, 956 }, { 231, 957 }, { 232, 958 }, { 233, 959 }, { 234, 960 }, { 235, 961 }, { 236, 963 }, { 237, 962 }, { 238, 964 }, { 239, 900 }, { 240, 173 }, { 241, 177 }, { 242, 965 }, { 243, 966 }, { 244, 967 }, { 245, 167 }, { 246, 968 }, { 247, 901 }, { 248, 176 }, { 249, 168 }, { 250, 969 }, { 251, 971 }, { 252, 944 }, { 253, 974 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp874[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 8230 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 3585 }, { 162, 3586 }, { 163, 3587 }, { 164, 3588 }, { 165, 3589 }, { 166, 3590 }, { 167, 3591 }, { 168, 3592 }, { 169, 3593 }, { 170, 3594 }, { 171, 3595 }, { 172, 3596 }, { 173, 3597 }, { 174, 3598 }, { 175, 3599 }, { 176, 3600 }, { 177, 3601 }, { 178, 3602 }, { 179, 3603 }, { 180, 3604 }, { 181, 3605 }, { 182, 3606 }, { 183, 3607 }, { 184, 3608 }, { 185, 3609 }, { 186, 3610 }, { 187, 3611 }, { 188, 3612 }, { 189, 3613 }, { 190, 3614 }, { 191, 3615 }, { 192, 3616 }, { 193, 3617 }, { 194, 3618 }, { 195, 3619 }, { 196, 3620 }, { 197, 3621 }, { 198, 3622 }, { 199, 3623 }, { 200, 3624 }, { 201, 3625 }, { 202, 3626 }, { 203, 3627 }, { 204, 3628 }, { 205, 3629 }, { 206, 3630 }, { 207, 3631 }, { 208, 3632 }, { 209, 3633 }, { 210, 3634 }, { 211, 3635 }, { 212, 3636 }, { 213, 3637 }, { 214, 3638 }, { 215, 3639 }, { 216, 3640 }, { 217, 3641 }, { 218, 3642 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 3647 }, { 224, 3648 }, { 225, 3649 }, { 226, 3650 }, { 227, 3651 }, { 228, 3652 }, { 229, 3653 }, { 230, 3654 }, { 231, 3655 }, { 232, 3656 }, { 233, 3657 }, { 234, 3658 }, { 235, 3659 }, { 236, 3660 }, { 237, 3661 }, { 238, 3662 }, { 239, 3663 }, { 240, 3664 }, { 241, 3665 }, { 242, 3666 }, { 243, 3667 }, { 244, 3668 }, { 245, 3669 }, { 246, 3670 }, { 247, 3671 }, { 248, 3672 }, { 249, 3673 }, { 250, 3674 }, { 251, 3675 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp895[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 268 }, { 129, 252 }, { 130, 233 }, { 131, 271 }, { 132, 228 }, { 133, 270 }, { 134, 356 }, { 135, 269 }, { 136, 283 }, { 137, 282 }, { 138, 313 }, { 139, 205 }, { 140, 318 }, { 141, 314 }, { 142, 196 }, { 143, 193 }, { 144, 201 }, { 145, 382 }, { 146, 381 }, { 147, 244 }, { 148, 246 }, { 149, 211 }, { 150, 367 }, { 151, 218 }, { 152, 253 }, { 153, 214 }, { 154, 220 }, { 155, 352 }, { 156, 317 }, { 157, 221 }, { 158, 344 }, { 159, 357 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 328 }, { 165, 327 }, { 166, 366 }, { 167, 212 }, { 168, 353 }, { 169, 345 }, { 170, 341 }, { 171, 340 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 226 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 76, 321 }, { 108, 316 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 116, 355 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t cp1250[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 346 }, { 141, 356 }, { 142, 381 }, { 143, 377 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 347 }, { 157, 357 }, { 158, 382 }, { 159, 378 }, { 160, 160 }, { 161, 711 }, { 162, 728 }, { 163, 321 }, { 164, 164 }, { 165, 260 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 350 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 379 }, { 176, 176 }, { 177, 177 }, { 178, 731 }, { 179, 322 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 261 }, { 186, 351 }, { 187, 187 }, { 188, 376 }, { 189, 733 }, { 190, 317 }, { 191, 380 }, { 192, 340 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 313 }, { 198, 262 }, { 199, 199 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 282 }, { 205, 205 }, { 206, 206 }, { 207, 270 }, { 208, 272 }, { 209, 323 }, { 210, 327 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 215 }, { 216, 344 }, { 217, 366 }, { 218, 218 }, { 219, 368 }, { 220, 220 }, { 221, 221 }, { 222, 354 }, { 223, 223 }, { 224, 341 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 314 }, { 230, 263 }, { 231, 231 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 283 }, { 237, 237 }, { 238, 238 }, { 239, 271 }, { 240, 273 }, { 241, 324 }, { 242, 328 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 247 }, { 248, 345 }, { 249, 367 }, { 250, 250 }, { 251, 369 }, { 252, 252 }, { 253, 253 }, { 254, 355 }, { 255, 729 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp1251[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1026 }, { 129, 1027 }, { 130, 8218 }, { 131, 1107 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 8364 }, { 137, 8240 }, { 138, 1033 }, { 139, 8249 }, { 140, 1034 }, { 141, 1036 }, { 142, 1035 }, { 143, 1039 }, { 144, 1106 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 1113 }, { 155, 8250 }, { 156, 1114 }, { 157, 1116 }, { 158, 1115 }, { 159, 1119 }, { 160, 160 }, { 161, 1038 }, { 162, 1118 }, { 163, 1032 }, { 164, 164 }, { 165, 1168 }, { 166, 166 }, { 167, 167 }, { 168, 1025 }, { 169, 169 }, { 170, 1028 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 1031 }, { 176, 176 }, { 177, 177 }, { 178, 1030 }, { 179, 1110 }, { 180, 1169 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 1105 }, { 185, 8470 }, { 186, 1108 }, { 187, 187 }, { 188, 1112 }, { 189, 1029 }, { 190, 1109 }, { 191, 1111 }, { 192, 1040 }, { 193, 1041 }, { 194, 1042 }, { 195, 1043 }, { 196, 1044 }, { 197, 1045 }, { 198, 1046 }, { 199, 1047 }, { 200, 1048 }, { 201, 1049 }, { 202, 1050 }, { 203, 1051 }, { 204, 1052 }, { 205, 1053 }, { 206, 1054 }, { 207, 1055 }, { 208, 1056 }, { 209, 1057 }, { 210, 1058 }, { 211, 1059 }, { 212, 1060 }, { 213, 1061 }, { 214, 1062 }, { 215, 1063 }, { 216, 1064 }, { 217, 1065 }, { 218, 1066 }, { 219, 1067 }, { 220, 1068 }, { 221, 1069 }, { 222, 1070 }, { 223, 1071 }, { 224, 1072 }, { 225, 1073 }, { 226, 1074 }, { 227, 1075 }, { 228, 1076 }, { 229, 1077 }, { 230, 1078 }, { 231, 1079 }, { 232, 1080 }, { 233, 1081 }, { 234, 1082 }, { 235, 1083 }, { 236, 1084 }, { 237, 1085 }, { 238, 1086 }, { 239, 1087 }, { 240, 1088 }, { 241, 1089 }, { 242, 1090 }, { 243, 1091 }, { 244, 1092 }, { 245, 1093 }, { 246, 1094 }, { 247, 1095 }, { 248, 1096 }, { 249, 1097 }, { 250, 1098 }, { 251, 1099 }, { 252, 1100 }, { 253, 1101 }, { 254, 1102 }, { 255, 1103 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1252[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 381 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 382 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t cp1253[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 901 }, { 162, 902 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 8213 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1254[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 158 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 286 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 304 }, { 222, 350 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 287 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 305 }, { 254, 351 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 115, 347 }, { 115, 349 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1255[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 215 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 781 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 247 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 8215 }, { 224, 1488 }, { 225, 1489 }, { 226, 1490 }, { 227, 1491 }, { 228, 1492 }, { 229, 1493 }, { 230, 1494 }, { 231, 1495 }, { 232, 1496 }, { 233, 1497 }, { 234, 1498 }, { 235, 1499 }, { 236, 1500 }, { 237, 1501 }, { 238, 1502 }, { 239, 1503 }, { 240, 1504 }, { 241, 1505 }, { 242, 1506 }, { 243, 1507 }, { 244, 1508 }, { 245, 1509 }, { 246, 1510 }, { 247, 1511 }, { 248, 1512 }, { 249, 1513 }, { 250, 1514 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1256[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1548 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 1563 }, { 153, 8482 }, { 154, 1567 }, { 155, 8250 }, { 156, 1569 }, { 157, 1570 }, { 158, 1571 }, { 159, 376 }, { 160, 160 }, { 161, 1572 }, { 162, 1573 }, { 163, 163 }, { 164, 164 }, { 165, 1574 }, { 166, 166 }, { 167, 167 }, { 168, 1575 }, { 169, 169 }, { 170, 1576 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 1577 }, { 179, 1578 }, { 180, 1579 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 1580 }, { 185, 185 }, { 186, 1581 }, { 187, 187 }, { 188, 1582 }, { 189, 1583 }, { 190, 1584 }, { 191, 1585 }, { 192, 192 }, { 193, 1586 }, { 194, 194 }, { 195, 195 }, { 196, 1587 }, { 197, 1588 }, { 198, 1589 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 1590 }, { 205, 1591 }, { 206, 206 }, { 207, 207 }, { 208, 1592 }, { 209, 1593 }, { 210, 1594 }, { 211, 1600 }, { 212, 212 }, { 213, 1601 }, { 214, 1602 }, { 215, 215 }, { 216, 1603 }, { 217, 217 }, { 218, 1711 }, { 219, 219 }, { 220, 220 }, { 221, 1604 }, { 222, 1605 }, { 223, 1606 }, { 224, 224 }, { 225, 1607 }, { 226, 226 }, { 227, 227 }, { 228, 1608 }, { 229, 1609 }, { 230, 1610 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 1611 }, { 237, 1612 }, { 238, 238 }, { 239, 239 }, { 240, 1613 }, { 241, 1614 }, { 242, 1615 }, { 243, 1616 }, { 244, 244 }, { 245, 1617 }, { 246, 1618 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 246 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1257[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 168 }, { 142, 711 }, { 143, 184 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 175 }, { 158, 731 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 216 }, { 169, 169 }, { 170, 342 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 198 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 248 }, { 185, 185 }, { 186, 343 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 230 }, { 192, 260 }, { 193, 302 }, { 194, 256 }, { 195, 262 }, { 196, 196 }, { 197, 197 }, { 198, 280 }, { 199, 274 }, { 200, 268 }, { 201, 201 }, { 202, 377 }, { 203, 278 }, { 204, 290 }, { 205, 310 }, { 206, 298 }, { 207, 315 }, { 208, 352 }, { 209, 323 }, { 210, 325 }, { 211, 211 }, { 212, 332 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 370 }, { 217, 321 }, { 218, 340 }, { 219, 362 }, { 220, 220 }, { 221, 379 }, { 222, 381 }, { 223, 223 }, { 224, 261 }, { 225, 303 }, { 226, 257 }, { 227, 263 }, { 228, 228 }, { 229, 229 }, { 230, 281 }, { 231, 275 }, { 232, 269 }, { 233, 233 }, { 234, 378 }, { 235, 279 }, { 236, 291 }, { 237, 311 }, { 238, 299 }, { 239, 316 }, { 240, 353 }, { 241, 324 }, { 242, 326 }, { 243, 243 }, { 244, 333 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 371 }, { 249, 322 }, { 250, 347 }, { 251, 363 }, { 252, 252 }, { 253, 380 }, { 254, 382 }, { 255, 729 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp1258[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 158 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 832 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 272 }, { 209, 209 }, { 210, 777 }, { 211, 211 }, { 212, 212 }, { 213, 416 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 431 }, { 222, 771 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 833 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 273 }, { 241, 241 }, { 242, 803 }, { 243, 243 }, { 244, 244 }, { 245, 417 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 432 }, { 254, 8363 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 256 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t decmcs[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 376 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 255 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t ebc037[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 162 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 124 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 33 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 172 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 221 }, { 174, 222 }, { 175, 174 }, { 176, 94 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 91 }, { 187, 93 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc1026[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 123 }, { 73, 241 }, { 74, 199 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 286 }, { 91, 304 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 91 }, { 105, 209 }, { 106, 351 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 305 }, { 122, 58 }, { 123, 214 }, { 124, 350 }, { 125, 39 }, { 126, 61 }, { 127, 220 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 125 }, { 141, 96 }, { 142, 166 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 246 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 93 }, { 173, 36 }, { 174, 64 }, { 175, 174 }, { 176, 162 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 172 }, { 187, 124 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 231 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 126 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 287 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 92 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 252 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 35 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 34 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 221 }, { 232, 374 }, { 232, 376 }, { 168, 253 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc1047[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 162 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 124 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 33 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 91 }, { 174, 222 }, { 175, 174 }, { 176, 172 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 221 }, { 187, 168 }, { 188, 175 }, { 189, 93 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc500[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 91 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 93 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 221 }, { 174, 222 }, { 175, 174 }, { 176, 162 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 172 }, { 187, 124 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc875[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 913 }, { 66, 914 }, { 67, 915 }, { 68, 916 }, { 69, 917 }, { 70, 918 }, { 71, 919 }, { 72, 920 }, { 73, 921 }, { 74, 91 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 922 }, { 82, 923 }, { 83, 924 }, { 84, 925 }, { 85, 926 }, { 86, 927 }, { 87, 928 }, { 88, 929 }, { 89, 931 }, { 90, 93 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 932 }, { 99, 933 }, { 100, 934 }, { 101, 935 }, { 102, 936 }, { 103, 937 }, { 104, 938 }, { 105, 939 }, { 106, 124 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 168 }, { 113, 902 }, { 114, 904 }, { 115, 905 }, { 116, 160 }, { 117, 906 }, { 118, 908 }, { 119, 910 }, { 120, 911 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 901 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 945 }, { 139, 946 }, { 140, 947 }, { 141, 948 }, { 142, 949 }, { 143, 950 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 951 }, { 155, 952 }, { 156, 953 }, { 157, 954 }, { 158, 955 }, { 159, 956 }, { 160, 180 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 957 }, { 171, 958 }, { 172, 959 }, { 173, 960 }, { 174, 961 }, { 175, 963 }, { 176, 163 }, { 177, 940 }, { 178, 941 }, { 179, 942 }, { 180, 970 }, { 181, 943 }, { 182, 972 }, { 183, 973 }, { 184, 971 }, { 185, 974 }, { 186, 962 }, { 187, 964 }, { 188, 965 }, { 189, 966 }, { 190, 967 }, { 191, 968 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 969 }, { 204, 912 }, { 205, 944 }, { 206, 206 }, { 207, 207 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 177 }, { 219, 189 }, { 220, 220 }, { 221, 183 }, { 222, 222 }, { 223, 166 }, { 224, 92 }, { 225, 225 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 167 }, { 236, 236 }, { 237, 237 }, { 238, 171 }, { 239, 172 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 169 }, { 252, 252 }, { 253, 253 }, { 254, 187 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 192 }, { 193, 193 }, { 193, 194 }, { 193, 195 }, { 193, 196 }, { 193, 197 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 224 }, { 129, 226 }, { 129, 227 }, { 129, 228 }, { 129, 229 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 199 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 231 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 200 }, { 197, 201 }, { 197, 202 }, { 197, 203 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 232 }, { 133, 233 }, { 133, 234 }, { 133, 235 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 204 }, { 201, 205 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 238 }, { 137, 239 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 209 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 241 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 210 }, { 213, 211 }, { 213, 212 }, { 213, 213 }, { 213, 214 }, { 213, 216 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 242 }, { 149, 243 }, { 149, 244 }, { 149, 245 }, { 149, 246 }, { 149, 248 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 217 }, { 228, 218 }, { 228, 219 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 249 }, { 164, 250 }, { 164, 251 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 221 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t hp48[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8735 }, { 129, 129 }, { 130, 8711 }, { 131, 8730 }, { 132, 8747 }, { 133, 8721 }, { 134, 9654 }, { 135, 960 }, { 136, 8706 }, { 137, 8804 }, { 138, 8805 }, { 139, 8800 }, { 140, 945 }, { 141, 8594 }, { 142, 8592 }, { 143, 8595 }, { 144, 8593 }, { 145, 947 }, { 146, 948 }, { 147, 949 }, { 148, 951 }, { 149, 952 }, { 150, 955 }, { 151, 961 }, { 152, 963 }, { 153, 964 }, { 154, 969 }, { 155, 916 }, { 156, 928 }, { 157, 937 }, { 158, 9644 }, { 159, 8734 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t hproman8[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 192 }, { 162, 194 }, { 163, 200 }, { 164, 202 }, { 165, 203 }, { 166, 206 }, { 167, 207 }, { 168, 180 }, { 169, 768 }, { 170, 770 }, { 171, 168 }, { 172, 771 }, { 173, 217 }, { 174, 219 }, { 175, 8356 }, { 176, 175 }, { 177, 221 }, { 178, 253 }, { 179, 176 }, { 180, 199 }, { 181, 231 }, { 182, 209 }, { 183, 241 }, { 184, 161 }, { 185, 191 }, { 186, 164 }, { 187, 163 }, { 188, 165 }, { 189, 167 }, { 190, 402 }, { 191, 162 }, { 192, 226 }, { 193, 234 }, { 194, 244 }, { 195, 251 }, { 196, 225 }, { 197, 233 }, { 198, 243 }, { 199, 250 }, { 200, 224 }, { 201, 232 }, { 202, 242 }, { 203, 249 }, { 204, 228 }, { 205, 235 }, { 206, 246 }, { 207, 252 }, { 208, 197 }, { 209, 238 }, { 210, 216 }, { 211, 198 }, { 212, 229 }, { 213, 237 }, { 214, 248 }, { 215, 230 }, { 216, 196 }, { 217, 236 }, { 218, 214 }, { 219, 220 }, { 220, 201 }, { 221, 239 }, { 222, 223 }, { 223, 212 }, { 224, 193 }, { 225, 195 }, { 226, 227 }, { 227, 208 }, { 228, 240 }, { 229, 205 }, { 230, 204 }, { 231, 211 }, { 232, 210 }, { 233, 213 }, { 234, 245 }, { 235, 352 }, { 236, 353 }, { 237, 218 }, { 238, 376 }, { 239, 255 }, { 240, 222 }, { 241, 254 }, { 242, 183 }, { 243, 181 }, { 244, 182 }, { 245, 190 }, { 246, 173 }, { 247, 188 }, { 248, 189 }, { 249, 170 }, { 250, 186 }, { 251, 171 }, { 252, 9632 }, { 253, 187 }, { 254, 177 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_irv[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_ca[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 226 }, { 92, 231 }, { 93, 234 }, { 94, 238 }, { 95, 95 }, { 96, 244 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 233 }, { 124, 249 }, { 125, 232 }, { 126, 251 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_ch[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 249 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 233 }, { 92, 231 }, { 93, 234 }, { 94, 238 }, { 95, 232 }, { 96, 244 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 252 }, { 126, 251 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_de[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 220 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 252 }, { 126, 223 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_es[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 161 }, { 92, 209 }, { 93, 191 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 176 }, { 124, 241 }, { 125, 231 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_fi[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 197 }, { 94, 220 }, { 95, 95 }, { 96, 233 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 229 }, { 126, 252 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_fr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 176 }, { 92, 231 }, { 93, 167 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 233 }, { 124, 249 }, { 125, 232 }, { 126, 168 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_gb[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_it[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 176 }, { 92, 231 }, { 93, 233 }, { 94, 94 }, { 95, 95 }, { 96, 249 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 224 }, { 124, 242 }, { 125, 232 }, { 126, 236 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_nl[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 190 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 255 }, { 92, 189 }, { 93, 124 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 168 }, { 124, 402 }, { 125, 188 }, { 126, 180 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_no[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 198 }, { 92, 216 }, { 93, 197 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 230 }, { 124, 248 }, { 125, 229 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_pt[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 195 }, { 92, 199 }, { 93, 213 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 227 }, { 124, 231 }, { 125, 245 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_se[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 201 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 197 }, { 94, 220 }, { 95, 95 }, { 96, 233 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 229 }, { 126, 252 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_1[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_2[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 728 }, { 163, 321 }, { 164, 164 }, { 165, 317 }, { 166, 346 }, { 167, 167 }, { 168, 168 }, { 169, 352 }, { 170, 350 }, { 171, 356 }, { 172, 377 }, { 173, 173 }, { 174, 381 }, { 175, 379 }, { 176, 176 }, { 177, 261 }, { 178, 731 }, { 179, 322 }, { 180, 180 }, { 181, 318 }, { 182, 347 }, { 183, 711 }, { 184, 184 }, { 185, 353 }, { 186, 351 }, { 187, 357 }, { 188, 378 }, { 189, 733 }, { 190, 382 }, { 191, 380 }, { 192, 340 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 313 }, { 198, 262 }, { 199, 199 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 282 }, { 205, 205 }, { 206, 206 }, { 207, 270 }, { 208, 272 }, { 209, 323 }, { 210, 327 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 215 }, { 216, 344 }, { 217, 366 }, { 218, 218 }, { 219, 368 }, { 220, 220 }, { 221, 221 }, { 222, 354 }, { 223, 223 }, { 224, 341 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 314 }, { 230, 263 }, { 231, 231 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 283 }, { 237, 237 }, { 238, 238 }, { 239, 271 }, { 240, 273 }, { 241, 324 }, { 242, 328 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 247 }, { 248, 345 }, { 249, 367 }, { 250, 250 }, { 251, 369 }, { 252, 252 }, { 253, 253 }, { 254, 355 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, }; static convert_t iso8859_3[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 294 }, { 162, 728 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 292 }, { 167, 167 }, { 168, 168 }, { 169, 304 }, { 170, 350 }, { 171, 286 }, { 172, 308 }, { 173, 173 }, { 174, 174 }, { 175, 379 }, { 176, 176 }, { 177, 295 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 293 }, { 183, 183 }, { 184, 184 }, { 185, 305 }, { 186, 351 }, { 187, 287 }, { 188, 309 }, { 189, 189 }, { 190, 190 }, { 191, 380 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 266 }, { 198, 264 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 288 }, { 214, 214 }, { 215, 215 }, { 216, 284 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 364 }, { 222, 348 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 267 }, { 230, 265 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 289 }, { 246, 246 }, { 247, 247 }, { 248, 285 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 365 }, { 254, 349 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 268 }, { 99, 263 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 352 }, { 115, 347 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 381 }, { 122, 378 }, { 122, 382 }, }; static convert_t iso8859_4[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 312 }, { 163, 342 }, { 164, 164 }, { 165, 296 }, { 166, 315 }, { 167, 167 }, { 168, 168 }, { 169, 352 }, { 170, 274 }, { 171, 290 }, { 172, 358 }, { 173, 173 }, { 174, 381 }, { 175, 175 }, { 176, 176 }, { 177, 261 }, { 178, 731 }, { 179, 343 }, { 180, 180 }, { 181, 297 }, { 182, 316 }, { 183, 711 }, { 184, 184 }, { 185, 353 }, { 186, 275 }, { 187, 291 }, { 188, 359 }, { 189, 330 }, { 190, 382 }, { 191, 331 }, { 192, 256 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 302 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 278 }, { 205, 205 }, { 206, 206 }, { 207, 298 }, { 208, 272 }, { 209, 325 }, { 210, 332 }, { 211, 310 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 370 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 360 }, { 222, 362 }, { 223, 223 }, { 224, 257 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 303 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 279 }, { 237, 237 }, { 238, 238 }, { 239, 299 }, { 240, 273 }, { 241, 326 }, { 242, 333 }, { 243, 311 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 371 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 361 }, { 254, 363 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_5[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 1025 }, { 162, 1026 }, { 163, 1027 }, { 164, 1028 }, { 165, 1029 }, { 166, 1030 }, { 167, 1031 }, { 168, 1032 }, { 169, 1033 }, { 170, 1034 }, { 171, 1035 }, { 172, 1036 }, { 173, 173 }, { 174, 1038 }, { 175, 1039 }, { 176, 1040 }, { 177, 1041 }, { 178, 1042 }, { 179, 1043 }, { 180, 1044 }, { 181, 1045 }, { 182, 1046 }, { 183, 1047 }, { 184, 1048 }, { 185, 1049 }, { 186, 1050 }, { 187, 1051 }, { 188, 1052 }, { 189, 1053 }, { 190, 1054 }, { 191, 1055 }, { 192, 1056 }, { 193, 1057 }, { 194, 1058 }, { 195, 1059 }, { 196, 1060 }, { 197, 1061 }, { 198, 1062 }, { 199, 1063 }, { 200, 1064 }, { 201, 1065 }, { 202, 1066 }, { 203, 1067 }, { 204, 1068 }, { 205, 1069 }, { 206, 1070 }, { 207, 1071 }, { 208, 1072 }, { 209, 1073 }, { 210, 1074 }, { 211, 1075 }, { 212, 1076 }, { 213, 1077 }, { 214, 1078 }, { 215, 1079 }, { 216, 1080 }, { 217, 1081 }, { 218, 1082 }, { 219, 1083 }, { 220, 1084 }, { 221, 1085 }, { 222, 1086 }, { 223, 1087 }, { 224, 1088 }, { 225, 1089 }, { 226, 1090 }, { 227, 1091 }, { 228, 1092 }, { 229, 1093 }, { 230, 1094 }, { 231, 1095 }, { 232, 1096 }, { 233, 1097 }, { 234, 1098 }, { 235, 1099 }, { 236, 1100 }, { 237, 1101 }, { 238, 1102 }, { 239, 1103 }, { 240, 8470 }, { 241, 1105 }, { 242, 1106 }, { 243, 1107 }, { 244, 1108 }, { 245, 1109 }, { 246, 1110 }, { 247, 1111 }, { 248, 1112 }, { 249, 1113 }, { 250, 1114 }, { 251, 1115 }, { 252, 1116 }, { 253, 167 }, { 254, 1118 }, { 255, 1119 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_6[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 1548 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 1563 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 1567 }, { 192, 192 }, { 193, 1569 }, { 194, 1570 }, { 195, 1571 }, { 196, 1572 }, { 197, 1573 }, { 198, 1574 }, { 199, 1575 }, { 200, 1576 }, { 201, 1577 }, { 202, 1578 }, { 203, 1579 }, { 204, 1580 }, { 205, 1581 }, { 206, 1582 }, { 207, 1583 }, { 208, 1584 }, { 209, 1585 }, { 210, 1586 }, { 211, 1587 }, { 212, 1588 }, { 213, 1589 }, { 214, 1590 }, { 215, 1591 }, { 216, 1592 }, { 217, 1593 }, { 218, 1594 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 1600 }, { 225, 1601 }, { 226, 1602 }, { 227, 1603 }, { 228, 1604 }, { 229, 1605 }, { 230, 1606 }, { 231, 1607 }, { 232, 1608 }, { 233, 1609 }, { 234, 1610 }, { 235, 1611 }, { 236, 1612 }, { 237, 1613 }, { 238, 1614 }, { 239, 1615 }, { 240, 1616 }, { 241, 1617 }, { 242, 1618 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_7[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 8216 }, { 162, 8217 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 8213 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 901 }, { 182, 902 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_8[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 215 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 247 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 8215 }, { 224, 1488 }, { 225, 1489 }, { 226, 1490 }, { 227, 1491 }, { 228, 1492 }, { 229, 1493 }, { 230, 1494 }, { 231, 1495 }, { 232, 1496 }, { 233, 1497 }, { 234, 1498 }, { 235, 1499 }, { 236, 1500 }, { 237, 1501 }, { 238, 1502 }, { 239, 1503 }, { 240, 1504 }, { 241, 1505 }, { 242, 1506 }, { 243, 1507 }, { 244, 1508 }, { 245, 1509 }, { 246, 1510 }, { 247, 1511 }, { 248, 1512 }, { 249, 1513 }, { 250, 1514 }, { 251, 251 }, { 252, 252 }, { 253, 8206 }, { 254, 8207 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_9[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 286 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 304 }, { 222, 350 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 287 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 305 }, { 254, 351 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_10[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 274 }, { 163, 290 }, { 164, 298 }, { 165, 296 }, { 166, 310 }, { 167, 167 }, { 168, 315 }, { 169, 272 }, { 170, 352 }, { 171, 358 }, { 172, 381 }, { 173, 173 }, { 174, 362 }, { 175, 330 }, { 176, 176 }, { 177, 261 }, { 178, 275 }, { 179, 291 }, { 180, 299 }, { 181, 297 }, { 182, 311 }, { 183, 183 }, { 184, 316 }, { 185, 273 }, { 186, 353 }, { 187, 359 }, { 188, 382 }, { 189, 8213 }, { 190, 363 }, { 191, 331 }, { 192, 256 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 302 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 278 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 325 }, { 210, 332 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 360 }, { 216, 216 }, { 217, 370 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 257 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 303 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 279 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 326 }, { 242, 333 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 361 }, { 248, 248 }, { 249, 371 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 312 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_11[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 3585 }, { 162, 3586 }, { 163, 3587 }, { 164, 3588 }, { 165, 3589 }, { 166, 3590 }, { 167, 3591 }, { 168, 3592 }, { 169, 3593 }, { 170, 3594 }, { 171, 3595 }, { 172, 3596 }, { 173, 3597 }, { 174, 3598 }, { 175, 3599 }, { 176, 3600 }, { 177, 3601 }, { 178, 3602 }, { 179, 3603 }, { 180, 3604 }, { 181, 3605 }, { 182, 3606 }, { 183, 3607 }, { 184, 3608 }, { 185, 3609 }, { 186, 3610 }, { 187, 3611 }, { 188, 3612 }, { 189, 3613 }, { 190, 3614 }, { 191, 3615 }, { 192, 3616 }, { 193, 3617 }, { 194, 3618 }, { 195, 3619 }, { 196, 3620 }, { 197, 3621 }, { 198, 3622 }, { 199, 3623 }, { 200, 3624 }, { 201, 3625 }, { 202, 3626 }, { 203, 3627 }, { 204, 3628 }, { 205, 3629 }, { 206, 3630 }, { 207, 3631 }, { 208, 3632 }, { 209, 3633 }, { 210, 3634 }, { 211, 3635 }, { 212, 3636 }, { 213, 3637 }, { 214, 3638 }, { 215, 3639 }, { 216, 3640 }, { 217, 3641 }, { 218, 3642 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 3647 }, { 224, 3648 }, { 225, 3649 }, { 226, 3650 }, { 227, 3651 }, { 228, 3652 }, { 229, 3653 }, { 230, 3654 }, { 231, 3655 }, { 232, 3656 }, { 233, 3657 }, { 234, 3658 }, { 235, 3659 }, { 236, 3660 }, { 237, 3661 }, { 238, 3662 }, { 239, 3663 }, { 240, 3664 }, { 241, 3665 }, { 242, 3666 }, { 243, 3667 }, { 244, 3668 }, { 245, 3669 }, { 246, 3670 }, { 247, 3671 }, { 248, 3672 }, { 249, 3673 }, { 250, 3674 }, { 251, 3675 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_13[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 8221 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 8222 }, { 166, 166 }, { 167, 167 }, { 168, 216 }, { 169, 169 }, { 170, 342 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 198 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 8220 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 248 }, { 185, 185 }, { 186, 343 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 230 }, { 192, 260 }, { 193, 302 }, { 194, 256 }, { 195, 262 }, { 196, 196 }, { 197, 197 }, { 198, 280 }, { 199, 274 }, { 200, 268 }, { 201, 201 }, { 202, 377 }, { 203, 278 }, { 204, 290 }, { 205, 310 }, { 206, 298 }, { 207, 315 }, { 208, 352 }, { 209, 323 }, { 210, 325 }, { 211, 211 }, { 212, 332 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 370 }, { 217, 321 }, { 218, 346 }, { 219, 362 }, { 220, 220 }, { 221, 379 }, { 222, 381 }, { 223, 223 }, { 224, 261 }, { 225, 303 }, { 226, 257 }, { 227, 263 }, { 228, 228 }, { 229, 229 }, { 230, 281 }, { 231, 275 }, { 232, 269 }, { 233, 233 }, { 234, 378 }, { 235, 279 }, { 236, 291 }, { 237, 311 }, { 238, 299 }, { 239, 316 }, { 240, 353 }, { 241, 324 }, { 242, 326 }, { 243, 243 }, { 244, 333 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 371 }, { 249, 322 }, { 250, 347 }, { 251, 363 }, { 252, 252 }, { 253, 380 }, { 254, 382 }, { 255, 8217 }, { 39, 8216 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t iso8859_14[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 7682 }, { 162, 7683 }, { 163, 163 }, { 164, 266 }, { 165, 267 }, { 166, 7690 }, { 167, 167 }, { 168, 7808 }, { 169, 169 }, { 170, 7810 }, { 171, 7691 }, { 172, 7922 }, { 173, 173 }, { 174, 174 }, { 175, 376 }, { 176, 7710 }, { 177, 7711 }, { 178, 288 }, { 179, 289 }, { 180, 7744 }, { 181, 7745 }, { 182, 182 }, { 183, 7766 }, { 184, 7809 }, { 185, 7767 }, { 186, 7811 }, { 187, 7776 }, { 188, 7923 }, { 189, 7812 }, { 190, 7813 }, { 191, 7777 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 372 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 7786 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 374 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 373 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 7787 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 375 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_15[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8364 }, { 165, 165 }, { 166, 352 }, { 167, 167 }, { 168, 353 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 381 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 382 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 338 }, { 189, 339 }, { 190, 376 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_16[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 261 }, { 163, 321 }, { 164, 8364 }, { 165, 8222 }, { 166, 352 }, { 167, 167 }, { 168, 353 }, { 169, 169 }, { 170, 536 }, { 171, 171 }, { 172, 377 }, { 173, 173 }, { 174, 378 }, { 175, 379 }, { 176, 176 }, { 177, 177 }, { 178, 268 }, { 179, 322 }, { 180, 381 }, { 181, 8221 }, { 182, 182 }, { 183, 183 }, { 184, 382 }, { 185, 269 }, { 186, 537 }, { 187, 187 }, { 188, 338 }, { 189, 339 }, { 190, 376 }, { 191, 380 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 262 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 272 }, { 209, 323 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 346 }, { 216, 368 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 280 }, { 222, 538 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 263 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 273 }, { 241, 324 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 347 }, { 248, 369 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 281 }, { 254, 539 }, { 255, 255 }, { 34, 8220 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, }; static convert_t koi8_r[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 9472 }, { 129, 9474 }, { 130, 9484 }, { 131, 9488 }, { 132, 9492 }, { 133, 9496 }, { 134, 9500 }, { 135, 9508 }, { 136, 9516 }, { 137, 9524 }, { 138, 9532 }, { 139, 9600 }, { 140, 9604 }, { 141, 9608 }, { 142, 9612 }, { 143, 9616 }, { 144, 9617 }, { 145, 9618 }, { 146, 9619 }, { 147, 8992 }, { 148, 9632 }, { 149, 8729 }, { 150, 8730 }, { 151, 8776 }, { 152, 8804 }, { 153, 8805 }, { 154, 160 }, { 155, 8993 }, { 156, 176 }, { 157, 178 }, { 158, 183 }, { 159, 247 }, { 160, 9552 }, { 161, 9553 }, { 162, 9554 }, { 163, 1105 }, { 164, 9555 }, { 165, 9556 }, { 166, 9557 }, { 167, 9558 }, { 168, 9559 }, { 169, 9560 }, { 170, 9561 }, { 171, 9562 }, { 172, 9563 }, { 173, 9564 }, { 174, 9565 }, { 175, 9566 }, { 176, 9567 }, { 177, 9568 }, { 178, 9569 }, { 179, 1025 }, { 180, 9570 }, { 181, 9571 }, { 182, 9572 }, { 183, 9573 }, { 184, 9574 }, { 185, 9575 }, { 186, 9576 }, { 187, 9577 }, { 188, 9578 }, { 189, 9579 }, { 190, 9580 }, { 191, 169 }, { 192, 1102 }, { 193, 1072 }, { 194, 1073 }, { 195, 1094 }, { 196, 1076 }, { 197, 1077 }, { 198, 1092 }, { 199, 1075 }, { 200, 1093 }, { 201, 1080 }, { 202, 1081 }, { 203, 1082 }, { 204, 1083 }, { 205, 1084 }, { 206, 1085 }, { 207, 1086 }, { 208, 1087 }, { 209, 1103 }, { 210, 1088 }, { 211, 1089 }, { 212, 1090 }, { 213, 1091 }, { 214, 1078 }, { 215, 1074 }, { 216, 1100 }, { 217, 1099 }, { 218, 1079 }, { 219, 1096 }, { 220, 1101 }, { 221, 1097 }, { 222, 1095 }, { 223, 1098 }, { 224, 1070 }, { 225, 1040 }, { 226, 1041 }, { 227, 1062 }, { 228, 1044 }, { 229, 1045 }, { 230, 1060 }, { 231, 1043 }, { 232, 1061 }, { 233, 1048 }, { 234, 1049 }, { 235, 1050 }, { 236, 1051 }, { 237, 1052 }, { 238, 1053 }, { 239, 1054 }, { 240, 1055 }, { 241, 1071 }, { 242, 1056 }, { 243, 1057 }, { 244, 1058 }, { 245, 1059 }, { 246, 1046 }, { 247, 1042 }, { 248, 1068 }, { 249, 1067 }, { 250, 1047 }, { 251, 1064 }, { 252, 1069 }, { 253, 1065 }, { 254, 1063 }, { 255, 1066 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t koi8_u[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 9472 }, { 129, 9474 }, { 130, 9484 }, { 131, 9488 }, { 132, 9492 }, { 133, 9496 }, { 134, 9500 }, { 135, 9508 }, { 136, 9516 }, { 137, 9524 }, { 138, 9532 }, { 139, 9600 }, { 140, 9604 }, { 141, 9608 }, { 142, 9612 }, { 143, 9616 }, { 144, 9617 }, { 145, 9618 }, { 146, 9619 }, { 147, 8992 }, { 148, 9632 }, { 149, 8729 }, { 150, 8730 }, { 151, 8776 }, { 152, 8804 }, { 153, 8805 }, { 154, 160 }, { 155, 8993 }, { 156, 176 }, { 157, 178 }, { 158, 183 }, { 159, 247 }, { 160, 9552 }, { 161, 9553 }, { 162, 9554 }, { 163, 1105 }, { 164, 1108 }, { 165, 9556 }, { 166, 1110 }, { 167, 1111 }, { 168, 9559 }, { 169, 9560 }, { 170, 9561 }, { 171, 9562 }, { 172, 9563 }, { 173, 1169 }, { 174, 9565 }, { 175, 9566 }, { 176, 9567 }, { 177, 9568 }, { 178, 9569 }, { 179, 1025 }, { 180, 1028 }, { 181, 9571 }, { 182, 1030 }, { 183, 1031 }, { 184, 9574 }, { 185, 9575 }, { 186, 9576 }, { 187, 9577 }, { 188, 9578 }, { 189, 1168 }, { 190, 9580 }, { 191, 169 }, { 192, 1102 }, { 193, 1072 }, { 194, 1073 }, { 195, 1094 }, { 196, 1076 }, { 197, 1077 }, { 198, 1092 }, { 199, 1075 }, { 200, 1093 }, { 201, 1080 }, { 202, 1081 }, { 203, 1082 }, { 204, 1083 }, { 205, 1084 }, { 206, 1085 }, { 207, 1086 }, { 208, 1087 }, { 209, 1103 }, { 210, 1088 }, { 211, 1089 }, { 212, 1090 }, { 213, 1091 }, { 214, 1078 }, { 215, 1074 }, { 216, 1100 }, { 217, 1099 }, { 218, 1079 }, { 219, 1096 }, { 220, 1101 }, { 221, 1097 }, { 222, 1095 }, { 223, 1098 }, { 224, 1070 }, { 225, 1040 }, { 226, 1041 }, { 227, 1062 }, { 228, 1044 }, { 229, 1045 }, { 230, 1060 }, { 231, 1043 }, { 232, 1061 }, { 233, 1048 }, { 234, 1049 }, { 235, 1050 }, { 236, 1051 }, { 237, 1052 }, { 238, 1053 }, { 239, 1054 }, { 240, 1055 }, { 241, 1071 }, { 242, 1056 }, { 243, 1057 }, { 244, 1058 }, { 245, 1059 }, { 246, 1046 }, { 247, 1042 }, { 248, 1068 }, { 249, 1067 }, { 250, 1047 }, { 251, 1064 }, { 252, 1069 }, { 253, 1065 }, { 254, 1063 }, { 255, 1066 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t mslinedr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 9639 }, { 177, 9638 }, { 178, 9640 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t nextstep[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 160 }, { 129, 192 }, { 130, 193 }, { 131, 194 }, { 132, 195 }, { 133, 196 }, { 134, 197 }, { 135, 199 }, { 136, 200 }, { 137, 201 }, { 138, 202 }, { 139, 203 }, { 140, 204 }, { 141, 205 }, { 142, 206 }, { 143, 207 }, { 144, 208 }, { 145, 209 }, { 146, 210 }, { 147, 211 }, { 148, 212 }, { 149, 213 }, { 150, 214 }, { 151, 217 }, { 152, 218 }, { 153, 219 }, { 154, 220 }, { 155, 221 }, { 156, 222 }, { 157, 181 }, { 158, 215 }, { 159, 247 }, { 160, 169 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8260 }, { 165, 165 }, { 166, 402 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 8220 }, { 171, 171 }, { 172, 8249 }, { 173, 8250 }, { 174, 64257 }, { 175, 64258 }, { 176, 174 }, { 177, 8211 }, { 178, 8224 }, { 179, 8225 }, { 180, 183 }, { 181, 166 }, { 182, 182 }, { 183, 8729 }, { 184, 8218 }, { 185, 8222 }, { 186, 8221 }, { 187, 187 }, { 188, 8943 }, { 189, 8240 }, { 190, 172 }, { 191, 191 }, { 192, 185 }, { 193, 768 }, { 194, 180 }, { 195, 770 }, { 196, 771 }, { 197, 175 }, { 198, 728 }, { 199, 729 }, { 200, 168 }, { 201, 178 }, { 202, 176 }, { 203, 184 }, { 204, 179 }, { 205, 733 }, { 206, 731 }, { 207, 711 }, { 208, 8212 }, { 209, 177 }, { 210, 188 }, { 211, 189 }, { 212, 190 }, { 213, 224 }, { 214, 225 }, { 215, 226 }, { 216, 227 }, { 217, 228 }, { 218, 229 }, { 219, 231 }, { 220, 232 }, { 221, 233 }, { 222, 234 }, { 223, 235 }, { 224, 236 }, { 225, 198 }, { 226, 237 }, { 227, 170 }, { 228, 238 }, { 229, 239 }, { 230, 240 }, { 231, 241 }, { 232, 321 }, { 233, 216 }, { 234, 338 }, { 235, 186 }, { 236, 242 }, { 237, 243 }, { 238, 244 }, { 239, 245 }, { 240, 246 }, { 241, 230 }, { 242, 249 }, { 243, 250 }, { 244, 251 }, { 245, 305 }, { 246, 252 }, { 247, 253 }, { 248, 322 }, { 249, 248 }, { 250, 339 }, { 251, 223 }, { 252, 254 }, { 253, 255 }, { 254, 254 }, { 255, 255 }, { 39, 8216 }, { 39, 8217 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t symbol[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 8704 }, { 35, 35 }, { 36, 8707 }, { 37, 37 }, { 38, 38 }, { 39, 8715 }, { 40, 40 }, { 41, 41 }, { 42, 8727 }, { 43, 43 }, { 44, 44 }, { 45, 8722 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 8773 }, { 65, 913 }, { 66, 914 }, { 67, 935 }, { 68, 916 }, { 69, 917 }, { 70, 934 }, { 71, 915 }, { 72, 919 }, { 73, 921 }, { 74, 977 }, { 75, 922 }, { 76, 923 }, { 77, 924 }, { 78, 925 }, { 79, 927 }, { 80, 928 }, { 81, 920 }, { 82, 929 }, { 83, 931 }, { 84, 932 }, { 85, 933 }, { 86, 962 }, { 87, 937 }, { 88, 926 }, { 89, 936 }, { 90, 918 }, { 91, 91 }, { 92, 8756 }, { 93, 93 }, { 94, 8869 }, { 95, 95 }, { 96, 8254 }, { 97, 945 }, { 98, 946 }, { 99, 967 }, { 100, 948 }, { 101, 949 }, { 102, 966 }, { 103, 947 }, { 104, 951 }, { 105, 953 }, { 106, 981 }, { 107, 954 }, { 108, 955 }, { 109, 956 }, { 110, 957 }, { 111, 959 }, { 112, 960 }, { 113, 952 }, { 114, 961 }, { 115, 963 }, { 116, 964 }, { 117, 965 }, { 118, 982 }, { 119, 969 }, { 120, 958 }, { 121, 968 }, { 122, 950 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 8764 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 978 }, { 162, 8242 }, { 163, 8804 }, { 164, 8725 }, { 165, 8734 }, { 166, 402 }, { 167, 9827 }, { 168, 9830 }, { 169, 9829 }, { 170, 9824 }, { 171, 8596 }, { 172, 8592 }, { 173, 8593 }, { 174, 8594 }, { 175, 8595 }, { 176, 176 }, { 177, 177 }, { 178, 8243 }, { 179, 8805 }, { 180, 215 }, { 181, 8733 }, { 182, 8706 }, { 183, 8729 }, { 184, 247 }, { 185, 8800 }, { 186, 8801 }, { 187, 8776 }, { 188, 8943 }, { 189, 189 }, { 190, 190 }, { 191, 8629 }, { 192, 192 }, { 193, 8465 }, { 194, 8476 }, { 195, 8472 }, { 196, 8855 }, { 197, 8853 }, { 198, 8709 }, { 199, 8745 }, { 200, 8746 }, { 201, 8835 }, { 202, 8839 }, { 203, 8836 }, { 204, 8834 }, { 205, 8838 }, { 206, 8712 }, { 207, 8713 }, { 208, 8736 }, { 209, 8711 }, { 210, 174 }, { 211, 169 }, { 212, 8482 }, { 213, 8719 }, { 214, 8730 }, { 215, 8901 }, { 216, 172 }, { 217, 8743 }, { 218, 8744 }, { 219, 8660 }, { 220, 8656 }, { 221, 8657 }, { 222, 8658 }, { 223, 8659 }, { 224, 9674 }, { 225, 9001 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 8721 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 9002 }, { 242, 8747 }, { 243, 8992 }, { 244, 244 }, { 245, 8993 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 192, 65 }, { 192, 193 }, { 192, 194 }, { 192, 195 }, { 192, 196 }, { 192, 197 }, { 192, 256 }, { 192, 258 }, { 192, 260 }, { 192, 461 }, { 226, 97 }, { 226, 224 }, { 226, 225 }, { 226, 229 }, { 226, 257 }, { 226, 259 }, { 226, 261 }, { 226, 462 }, { 231, 99 }, { 231, 263 }, { 231, 265 }, { 231, 267 }, { 231, 269 }, { 232, 101 }, { 232, 275 }, { 232, 277 }, { 232, 279 }, { 232, 281 }, { 232, 283 }, { 236, 105 }, { 236, 297 }, { 236, 299 }, { 236, 301 }, { 236, 303 }, { 236, 305 }, { 236, 464 }, { 244, 110 }, { 244, 242 }, { 244, 243 }, { 244, 245 }, { 244, 333 }, { 244, 335 }, { 244, 337 }, { 244, 466 }, { 244, 491 }, { 249, 117 }, { 249, 361 }, { 249, 363 }, { 249, 365 }, { 249, 367 }, { 249, 369 }, { 249, 371 }, { 249, 468 }, { 253, 121 }, { 253, 375 }, }; static convert_t tex_dcr_in[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 258 }, { 129, 260 }, { 130, 262 }, { 131, 268 }, { 132, 270 }, { 133, 282 }, { 134, 280 }, { 135, 286 }, { 136, 313 }, { 137, 65534 }, { 138, 321 }, { 139, 323 }, { 140, 327 }, { 141, 330 }, { 142, 336 }, { 143, 340 }, { 144, 344 }, { 145, 346 }, { 146, 352 }, { 147, 350 }, { 148, 356 }, { 149, 354 }, { 150, 368 }, { 151, 366 }, { 152, 376 }, { 153, 377 }, { 154, 381 }, { 155, 379 }, { 156, 306 }, { 157, 304 }, { 158, 272 }, { 159, 167 }, { 160, 259 }, { 161, 261 }, { 162, 263 }, { 163, 269 }, { 164, 65534 }, { 165, 283 }, { 166, 281 }, { 167, 287 }, { 168, 314 }, { 169, 65534 }, { 170, 322 }, { 171, 324 }, { 172, 328 }, { 173, 331 }, { 174, 337 }, { 175, 341 }, { 176, 345 }, { 177, 347 }, { 178, 353 }, { 179, 351 }, { 180, 65534 }, { 181, 355 }, { 182, 369 }, { 183, 367 }, { 184, 255 }, { 185, 378 }, { 186, 382 }, { 187, 380 }, { 188, 307 }, { 189, 161 }, { 190, 191 }, { 191, 163 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 65534 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 223 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 461 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 325 }, { 109, 326 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, }; static convert_t tex_dcr_out[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 258 }, { 129, 260 }, { 130, 262 }, { 131, 268 }, { 132, 270 }, { 133, 282 }, { 134, 280 }, { 135, 286 }, { 136, 313 }, { 137, 65534 }, { 138, 321 }, { 139, 323 }, { 140, 327 }, { 141, 330 }, { 142, 336 }, { 143, 340 }, { 144, 344 }, { 145, 346 }, { 146, 352 }, { 147, 350 }, { 148, 356 }, { 149, 354 }, { 150, 368 }, { 151, 366 }, { 152, 376 }, { 153, 377 }, { 154, 381 }, { 155, 379 }, { 156, 306 }, { 157, 304 }, { 158, 272 }, { 159, 167 }, { 160, 259 }, { 161, 261 }, { 162, 263 }, { 163, 269 }, { 164, 65534 }, { 165, 283 }, { 166, 281 }, { 167, 287 }, { 168, 314 }, { 169, 65534 }, { 170, 322 }, { 171, 324 }, { 172, 328 }, { 173, 331 }, { 174, 337 }, { 175, 341 }, { 176, 345 }, { 177, 347 }, { 178, 353 }, { 179, 351 }, { 180, 65534 }, { 181, 355 }, { 182, 369 }, { 183, 367 }, { 184, 255 }, { 185, 378 }, { 186, 382 }, { 187, 380 }, { 188, 307 }, { 189, 161 }, { 190, 191 }, { 191, 163 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 65534 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 223 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 461 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 325 }, { 109, 326 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, }; allcharconvert_t allcharconvert[] = { { "adobeiso", "Adobe ISO", { "ADOBEISO", "", "", "", "", "", "", }, CHARSETARRAY( adobeiso ) }, { "adobestd", "Adobe Standard", { "ADOBESTD", "", "", "", "", "", "", }, CHARSETARRAY( adobestd ) }, { "adobesym", "Adobe Symbol", { "ADOBESYM", "", "", "", "", "", "", }, CHARSETARRAY( adobesym ) }, { "applecro", "Apple Croatian", { "APPLECRO", "MACCRO", "", "", "", "", "", }, CHARSETARRAY( applecro ) }, { "applecyr", "Apple Cyrillic", { "MACCYRILLIC", "X-MAC-CYRILLIC", "", "", "", "", "", }, CHARSETARRAY( applecyr ) }, { "applegk2", "Apple Greek 2", { "APPLEGK2", "", "", "", "", "", "", }, CHARSETARRAY( applegk2 ) }, { "applegrk", "Apple Greek", { "MACGRK", "APPLEGRK", "", "", "", "", "", }, CHARSETARRAY( applegrk ) }, { "macice", "Macintosh Iceland(?)", { "MACICE", "APPLEICE", "", "", "", "", "", }, CHARSETARRAY( macice ) }, { "macroman", "Macintosh Roman", { "MACROMAN", "APPLEROM", "CSMACINTOSH", "MACINTOSH", "MAC", "", "", }, CHARSETARRAY( macroman ) }, { "macromanian", "Macintosh Romanian", { "MACROMANIAN", "APPLERUM", "", "", "", "", "", }, CHARSETARRAY( macromanian ) }, { "macturkish", "Macintosh Turkish", { "MACTURKISH", "APPLETURK", "", "", "", "", "", }, CHARSETARRAY( macturkish ) }, { "atarist", "Atari ST", { "ATARIST", "", "", "", "", "", "", }, CHARSETARRAY( atarist ) }, { "cp437", "MS-DOS Code Page 437 from original IBM PC", { "CP437", "IBM437", "437", "", "", "", "", }, CHARSETARRAY( cp437 ) }, { "cp737", "MS-DOS Code Page 737 Greek", { "CP737", "IBM737", "737", "", "", "", "", }, CHARSETARRAY( cp737 ) }, { "cp775", "MS-DOS Code Page 775 Baltic languages", { "CP775", "IBM775", "775", "", "", "", "", }, CHARSETARRAY( cp775 ) }, { "cp850", "MS-DOS Code Page 850 Western Europe", { "CP850", "IBM850", "CSPC850MULTILINGUAL", "850", "", "", "", }, CHARSETARRAY( cp850 ) }, { "cp851", "MS-DOS Code Page 851 Greek 1", { "CP851", "IBM851", "851", "", "", "", "", }, CHARSETARRAY( cp851 ) }, { "cp852", "MS-DOS Code Page 852 Central European languages", { "CP852", "IBM852", "852", "", "", "", "", }, CHARSETARRAY( cp852 ) }, { "cp853", "MS-DOS Code Page 853 Multilingual Latin 3", { "CP853", "IBM853", "853", "", "", "", "", }, CHARSETARRAY( cp853 ) }, { "cp855", "MS-DOS Code Page 855 Cyrillic", { "CP855", "IBM855", "855", "", "", "", "", }, CHARSETARRAY( cp855 ) }, { "cp857", "MS-DOS Code Page 857 Turkish", { "CP857", "IBM857", "857", "", "", "", "", }, CHARSETARRAY( cp857 ) }, { "cp860", "MS-DOS Code Page 860 Portugese", { "CP860", "IBM860", "860", "", "", "", "", }, CHARSETARRAY( cp860 ) }, { "cp861", "MS-DOS Code Page 861 Icelandic languages", { "CP861", "IBM861", "861", "", "", "", "", }, CHARSETARRAY( cp861 ) }, { "cp862", "MS-DOS Code Page 862 Hebrew", { "CP862", "IBM862", "862", "", "", "", "", }, CHARSETARRAY( cp862 ) }, { "cp863", "MS-DOS Code Page 863 French", { "CP863", "IBM863", "863", "", "", "", "", }, CHARSETARRAY( cp863 ) }, { "cp864", "MS-DOS Code Page 864 Arabic", { "CP864", "IBM864", "864", "", "", "", "", }, CHARSETARRAY( cp864 ) }, { "cp865", "MS-DOS Code Page 865 Nordic languages", { "CP865", "IBM865", "865", "", "", "", "", }, CHARSETARRAY( cp865 ) }, { "cp866", "MS-DOS Code Page 866 Cyrillic", { "CP866", "IBM866", "866", "CSIBM866", "", "", "", }, CHARSETARRAY( cp866 ) }, { "cp869", "MS-DOS Code Page 869 Greek", { "CP869", "IBM869", "869", "", "", "", "", }, CHARSETARRAY( cp869 ) }, { "cp874", "Windows-874 Thai", { "CP874", "WINDOWS-874", "MS874", "X-WINDOWS-874", "X-IBM874", "874", "", }, CHARSETARRAY( cp874 ) }, { "cp895", "MS-DOS Code Page 895 Kamenicky encoding", { "CP895", "895", "", "", "", "", "", }, CHARSETARRAY( cp895 ) }, { "cp1250", "Windows-1250 Central and Eastern European", { "CP1250", "WINDOWS-1250", "MS-EE", "", "", "", "", }, CHARSETARRAY( cp1250 ) }, { "cp1251", "Windows-1251 Cyrillic", { "CP1251", "WINDOWS-1251", "MS-CYRL", "", "", "", "", }, CHARSETARRAY( cp1251 ) }, { "cp1252", "Windows-1252 ISO 8859-1 superset", { "CP1252", "WINDOWS-1252", "MS-ANSI", "", "", "", "", }, CHARSETARRAY( cp1252 ) }, { "cp1253", "Windows-1253 Greek", { "CP1253", "WINDOWS-1253", "MS-GREEK", "", "", "", "", }, CHARSETARRAY( cp1253 ) }, { "cp1254", "Windows-1254 Turkish", { "CP1254", "WINDOWS-1254", "MS-TURK", "", "", "", "", }, CHARSETARRAY( cp1254 ) }, { "cp1255", "Windows-1255 ISO 8859-8 Hebrew", { "CP1255", "WINDOWS-1255", "MS-HEBR", "", "", "", "", }, CHARSETARRAY( cp1255 ) }, { "cp1256", "Windows-1256 Arabic", { "CP1256", "WINDOWS-1256", "MS-ARAB", "", "", "", "", }, CHARSETARRAY( cp1256 ) }, { "cp1257", "Windows-1257 Baltic languages", { "CP1257", "WINDOWS-1257", "WINBALTRIM", "", "", "", "", }, CHARSETARRAY( cp1257 ) }, { "cp1258", "Windows-1258 Vietnamese", { "CP1258", "WINDOWS-1258", "", "", "", "", "", }, CHARSETARRAY( cp1258 ) }, { "decmcs", "DEC Multinational Character Set", { "DECMCS", "", "", "", "", "", "", }, CHARSETARRAY( decmcs ) }, { "ebc037", "EBCDIC Codepage 037 Latin-1", { "EBC037", "", "", "", "", "", "", }, CHARSETARRAY( ebc037 ) }, { "ebc1026", "EBCDIC 1026 Turkish", { "EBC1026", "", "", "", "", "", "", }, CHARSETARRAY( ebc1026 ) }, { "ebc1047", "EBCDIC 1047 Latin 1", { "EBC1047", "", "", "", "", "", "", }, CHARSETARRAY( ebc1047 ) }, { "ebc500", "EBCDIC 500 Latin 1", { "EBC500", "", "", "", "", "", "", }, CHARSETARRAY( ebc500 ) }, { "ebc875", "EBCDIC 875 Greek", { "EBC875", "", "", "", "", "", "", }, CHARSETARRAY( ebc875 ) }, { "hp48", "HP48", { "HP48", "", "", "", "", "", "", }, CHARSETARRAY( hp48 ) }, { "hproman8", "HP Roman8", { "HPROMAN8", "", "", "", "", "", "", }, CHARSETARRAY( hproman8 ) }, { "iso646", "ISO/IEC 646", { "ISO646", "", "", "", "", "", "", }, CHARSETARRAY( iso646 ) }, { "iso646_irv", "ISO/IEC 646-IRV International Reference Variant", { "ISO646-IRV", "", "", "", "", "", "", }, CHARSETARRAY( iso646_irv ) }, { "iso646_ca", "ISO/IEC 646-CA Canada", { "ISO646-CA", "", "", "", "", "", "", }, CHARSETARRAY( iso646_ca ) }, { "iso646_ch", "ISO/IEC 646-CH", { "ISO646-CH", "", "", "", "", "", "", }, CHARSETARRAY( iso646_ch ) }, { "iso646_de", "ISO/IEC 646-DE Germany", { "ISO646-DE", "", "", "", "", "", "", }, CHARSETARRAY( iso646_de ) }, { "iso646_es", "ISO/IEC 646-ES Spain", { "ISO646-ES", "", "", "", "", "", "", }, CHARSETARRAY( iso646_es ) }, { "iso646_fi", "ISO/IEC 646-FI Finland", { "ISO646-FI", "", "", "", "", "", "", }, CHARSETARRAY( iso646_fi ) }, { "iso646_fr", "ISO/IEC 646-FR France", { "ISO646-FR", "", "", "", "", "", "", }, CHARSETARRAY( iso646_fr ) }, { "iso646_gb", "ISO/IEC 646-GB United Kingdom", { "ISO646-GB", "", "", "", "", "", "", }, CHARSETARRAY( iso646_gb ) }, { "iso646_it", "ISO/IEC 646-IT", { "ISO646-IT", "", "", "", "", "", "", }, CHARSETARRAY( iso646_it ) }, { "iso646_nl", "ISO/IEC 646-NL", { "ISO646-NL", "", "", "", "", "", "", }, CHARSETARRAY( iso646_nl ) }, { "iso646_no", "ISO/IEC 646-NO Norway", { "ISO646-NO", "", "", "", "", "", "", }, CHARSETARRAY( iso646_no ) }, { "iso646_pt", "ISO/IEC 646-PT Portugal", { "ISO646-PT", "", "", "", "", "", "", }, CHARSETARRAY( iso646_pt ) }, { "iso646_se", "ISO/IEC 646-SE Sweden", { "ISO646-SE", "", "", "", "", "", "", }, CHARSETARRAY( iso646_se ) }, { "iso8859_1", "ISO/IEC 8859-1:1998 Latin-1", { "ISO-8859-1", "CSISOLATIN", "LATIN1", "ISO-IR-100", "CP819", "IBM819", "ISO_8859-1", }, CHARSETARRAY( iso8859_1 ) }, { "iso8859_2", "ISO/IEC 8859-2:1999 Latin-2 Eastern European", { "ISO-8859-2", "CSISOLATIN2", "LATIN2", "ISO-IR-101", "ISO_8859-2", "ISO_8859-2:1987", "L2", }, CHARSETARRAY( iso8859_2 ) }, { "iso8859_3", "ISO/IEC 8859-3:1999 Latin-3 South European", { "ISO-8859-3", "CSISOLATIN3", "LATIN3", "ISO-IR-109", "ISO_8859-3", "ISO_8859-3:1988", "L3", }, CHARSETARRAY( iso8859_3 ) }, { "iso8859_4", "ISO/IEC 8859-4:1998 Latin-4 North European", { "ISO-8859-4", "CSISOLATIN4", "LATIN4", "ISO-IR-110", "ISO_8859-4", "ISO_8859-4:1988", "L4", }, CHARSETARRAY( iso8859_4 ) }, { "iso8859_5", "ISO/IEC 8859-5:1999 Latin/Cyrillic", { "ISO-8859-5", "CSISOLATINCYRILLIC", "CYRILLIC", "ISO-IR-144", "ISO_8859-5", "ISO_8859-5:1988", "", }, CHARSETARRAY( iso8859_5 ) }, { "iso8859_6", "ISO/IEC 8859-6:1999 Latin/Arabic", { "ISO-8859-6", "ARABIC", "ASMO-708", "CSISOLATINARABIC", "ECMA-114", "ISO-IR-127", "ISO_8859-6", }, CHARSETARRAY( iso8859_6 ) }, { "iso8859_7", "ISO/IEC 8859-7:2003 Latin/Greek", { "ISO-8859-7", "CSISOLATINGREEK", "GREEK", "ECMA-118", "ELOT_928", "GREEK8", "ISO-IR-126", }, CHARSETARRAY( iso8859_7 ) }, { "iso8859_8", "ISO/IEC 8859-8:1999 Latin/Hebrew", { "ISO-8859-8", "CSISOLATINHEBREW", "HEBREW", "ISO-IR-138", "ISO_8859-8", "ISO_8859-8:1988", "", }, CHARSETARRAY( iso8859_8 ) }, { "iso8859_9", "ISO/IEC 8859-9:1999 Latin-5 Turkish", { "ISO-8859-9", "CSISOLATIN5", "LATIN5", "ISO-IR-148", "ISO_8859-9", "ISO_8859-9:1989", "L5", }, CHARSETARRAY( iso8859_9 ) }, { "iso8859_10", "ISO/IEC 8859-10:1998 Latin-6 Nordic languages", { "ISO-8859-10", "CSISOLATIN6", "LATIN6", "ISO-IR-157", "ISO_8859-10", "ISO_8859-10:1992", "L6", }, CHARSETARRAY( iso8859_10 ) }, { "iso8859_11", "ISO/IEC 8859-11:2001 Latin/Thai", { "ISO-8859-11,", "TIS-620,", "TIS620,", "TACTIS", "", "", "", }, CHARSETARRAY( iso8859_11 ) }, { "iso8859_13", "ISO/IEC 8859-13:1998 Latin-7 Baltic Rim", { "ISO-8859-13", "CSISOLATIN7", "LATIN7", "ISO-IR-179", "ISO_8859-13", "L7", "", }, CHARSETARRAY( iso8859_13 ) }, { "iso8859_14", "ISO/IEC 8859-14:1998 Latin-8 Celtic", { "ISO-8859-14", "CSISOLATIN8", "LATIN8", "ISO-IR-199", "ISO_8859-14", "ISO_8859-14:1998", "L8", }, CHARSETARRAY( iso8859_14 ) }, { "iso8859_15", "ISO/IEC 8859-15:1999 Latin-9 Western European", { "ISO-8859-15", "ISO-IR-203", "ISO_8859-15", "ISO_8859-15:1998", "", "", "", }, CHARSETARRAY( iso8859_15 ) }, { "iso8859_16", "ISO/IEC 8859-16:2001 Latin-10 South-Eastern European", { "ISO-8859-16", "CSISOLATIN10", "LATIN10", "ISO-IR-226", "ISO_8859-16", "ISO_8859-16:2000", "", }, CHARSETARRAY( iso8859_16 ) }, { "koi8_r", "KOI8-R Kod Obmena Informatsiey, 8 bit Russian", { "KOI8-R", "KOI8R", "CSKOI8R", "", "", "", "", }, CHARSETARRAY( koi8_r ) }, { "koi8_u", "KOI8-U Kod Obmena Informatsiey, 8 bit Ukranian", { "KOI8-U", "KOI8U", "CSKOI8U", "", "", "", "", }, CHARSETARRAY( koi8_u ) }, { "mslinedr", "MS LineDraw", { "MSLINEDR", "", "", "", "", "", "", }, CHARSETARRAY( mslinedr ) }, { "nextstep", "NextStep", { "NEXTSTEP", "", "", "", "", "", "", }, CHARSETARRAY( nextstep ) }, { "symbol", "MS Windows Symbol Font", { "SYMBOL", "", "", "", "", "", "", }, CHARSETARRAY( symbol ) }, { "tex_dcr_in", "TeX dcr input for European Computer Roman Font", { "TEX_DCR_IN", "", "", "", "", "", "", }, CHARSETARRAY( tex_dcr_in ) }, { "tex_dcr_out", "TeX dcr output for European Computer Roman Font", { "TEX_DCR_OUT", "", "", "", "", "", "", }, CHARSETARRAY( tex_dcr_out ) }, }; int nallcharconvert = ARRAYSIZE( allcharconvert ); char * charset_get_xmlname( int n ) { static char unknown[] = "???"; static char utf8[] = "UTF-8"; static char gb18030[] = "GB18030"; char *ret = unknown; if ( n>=0 && n < nallcharconvert ) { ret = allcharconvert[n].aliases[0]; } else if ( n==CHARSET_UNICODE ) { ret = utf8; } else if ( n==CHARSET_GB18030 ) { ret = gb18030; } return ret; } int charset_find( char *name ) { int i, j, ret = CHARSET_UNKNOWN; if ( name==NULL ) return ret; for ( i=0; i #include #include #include "charsets.h" #define ARRAYSIZE( a ) ( sizeof(a) / sizeof(a[0]) ) #define ARRAYSTART( a ) ( &(a[0]) ) #define CHARSETARRAY( a ) ARRAYSTART( a ), ARRAYSIZE( a ) #define CHARSET_NALIASES ( 7 ) typedef struct convert_t { unsigned int index, unicode; } convert_t; typedef struct allcharconvert_t { char cmdname[15]; char descriptname[200]; char aliases[CHARSET_NALIASES][25]; convert_t *table; int ntable; } allcharconvert_t; static convert_t adobeiso[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 305 }, { 145, 768 }, { 146, 769 }, { 147, 770 }, { 148, 771 }, { 149, 772 }, { 150, 774 }, { 151, 775 }, { 152, 776 }, { 153, 153 }, { 154, 778 }, { 155, 807 }, { 156, 156 }, { 157, 779 }, { 158, 808 }, { 159, 780 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t adobestd[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8260 }, { 165, 165 }, { 166, 402 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 8220 }, { 171, 171 }, { 172, 8249 }, { 173, 8250 }, { 174, 64257 }, { 175, 64258 }, { 176, 176 }, { 177, 8211 }, { 178, 8224 }, { 179, 8225 }, { 180, 183 }, { 181, 181 }, { 182, 182 }, { 183, 8729 }, { 184, 8218 }, { 185, 8222 }, { 186, 8221 }, { 187, 187 }, { 188, 8943 }, { 189, 8240 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 768 }, { 194, 180 }, { 195, 770 }, { 196, 771 }, { 197, 175 }, { 198, 728 }, { 199, 729 }, { 200, 168 }, { 201, 201 }, { 202, 176 }, { 203, 184 }, { 204, 204 }, { 205, 733 }, { 206, 731 }, { 207, 711 }, { 208, 8212 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 198 }, { 226, 226 }, { 227, 170 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 321 }, { 233, 216 }, { 234, 338 }, { 235, 186 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 230 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 305 }, { 246, 246 }, { 247, 247 }, { 248, 322 }, { 249, 248 }, { 250, 339 }, { 251, 223 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 39, 8216 }, { 39, 8217 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t adobesym[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 8242 }, { 163, 8804 }, { 164, 8725 }, { 165, 8734 }, { 166, 402 }, { 167, 9827 }, { 168, 9830 }, { 169, 9829 }, { 170, 9824 }, { 171, 8596 }, { 172, 8592 }, { 173, 8593 }, { 174, 8594 }, { 175, 8595 }, { 176, 176 }, { 177, 177 }, { 178, 8243 }, { 179, 8805 }, { 180, 215 }, { 181, 8733 }, { 182, 8706 }, { 183, 8729 }, { 184, 247 }, { 185, 8800 }, { 186, 8801 }, { 187, 8776 }, { 188, 8943 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 8709 }, { 199, 8745 }, { 200, 8746 }, { 201, 8835 }, { 202, 8839 }, { 203, 203 }, { 204, 8834 }, { 205, 8838 }, { 206, 8712 }, { 207, 207 }, { 208, 8736 }, { 209, 8711 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 8719 }, { 214, 8730 }, { 215, 8901 }, { 216, 172 }, { 217, 8743 }, { 218, 8744 }, { 219, 8660 }, { 220, 8656 }, { 221, 8657 }, { 222, 8658 }, { 223, 8659 }, { 224, 9674 }, { 225, 9001 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 8721 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 9002 }, { 242, 8747 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applecro[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 352 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 381 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 916 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 353 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 382 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 262 }, { 199, 171 }, { 200, 268 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 272 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 65534 }, { 217, 169 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 198 }, { 223, 187 }, { 224, 8211 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 263 }, { 231, 193 }, { 232, 269 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 273 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 960 }, { 250, 203 }, { 251, 730 }, { 252, 184 }, { 253, 202 }, { 254, 230 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t applecyr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1040 }, { 129, 1041 }, { 130, 1042 }, { 131, 1043 }, { 132, 1044 }, { 133, 1045 }, { 134, 1046 }, { 135, 1047 }, { 136, 1048 }, { 137, 1049 }, { 138, 1050 }, { 139, 1051 }, { 140, 1052 }, { 141, 1053 }, { 142, 1054 }, { 143, 1055 }, { 144, 1056 }, { 145, 1057 }, { 146, 1058 }, { 147, 1059 }, { 148, 1060 }, { 149, 1061 }, { 150, 1062 }, { 151, 1063 }, { 152, 1064 }, { 153, 1065 }, { 154, 1066 }, { 155, 1067 }, { 156, 1068 }, { 157, 1069 }, { 158, 1070 }, { 159, 1071 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 1030 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 1026 }, { 172, 1106 }, { 173, 8800 }, { 174, 1027 }, { 175, 1107 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 1110 }, { 181, 181 }, { 182, 8706 }, { 183, 1032 }, { 184, 1028 }, { 185, 1108 }, { 186, 1031 }, { 187, 1111 }, { 188, 1033 }, { 189, 1113 }, { 190, 1034 }, { 191, 1114 }, { 192, 1112 }, { 193, 1029 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 1035 }, { 204, 1115 }, { 205, 1036 }, { 206, 1116 }, { 207, 1109 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 8222 }, { 216, 1038 }, { 217, 1118 }, { 218, 1039 }, { 219, 1119 }, { 220, 8470 }, { 221, 1025 }, { 222, 1105 }, { 223, 1103 }, { 224, 1072 }, { 225, 1073 }, { 226, 1074 }, { 227, 1075 }, { 228, 1076 }, { 229, 1077 }, { 230, 1078 }, { 231, 1079 }, { 232, 1080 }, { 233, 1081 }, { 234, 1082 }, { 235, 1083 }, { 236, 1084 }, { 237, 1085 }, { 238, 1086 }, { 239, 1087 }, { 240, 1088 }, { 241, 1089 }, { 242, 1090 }, { 243, 1091 }, { 244, 1092 }, { 245, 1093 }, { 246, 1094 }, { 247, 1095 }, { 248, 1096 }, { 249, 1097 }, { 250, 1098 }, { 251, 1099 }, { 252, 1100 }, { 253, 1101 }, { 254, 1102 }, { 255, 164 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applegk2[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 913 }, { 130, 914 }, { 131, 915 }, { 132, 916 }, { 133, 214 }, { 134, 220 }, { 135, 917 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 918 }, { 140, 919 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 163 }, { 147, 8482 }, { 148, 238 }, { 149, 239 }, { 150, 8729 }, { 151, 920 }, { 152, 921 }, { 153, 244 }, { 154, 246 }, { 155, 155 }, { 156, 922 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 923 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 170 }, { 171, 938 }, { 172, 167 }, { 173, 8800 }, { 174, 924 }, { 175, 903 }, { 176, 925 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 926 }, { 181, 927 }, { 182, 928 }, { 183, 929 }, { 184, 931 }, { 185, 932 }, { 186, 933 }, { 187, 939 }, { 188, 934 }, { 189, 935 }, { 190, 936 }, { 191, 937 }, { 192, 940 }, { 193, 185 }, { 194, 172 }, { 195, 178 }, { 196, 179 }, { 197, 168 }, { 198, 901 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 166 }, { 204, 189 }, { 205, 902 }, { 206, 904 }, { 207, 176 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 900 }, { 215, 905 }, { 216, 906 }, { 217, 908 }, { 218, 910 }, { 219, 941 }, { 220, 942 }, { 221, 943 }, { 222, 972 }, { 223, 911 }, { 224, 973 }, { 225, 945 }, { 226, 946 }, { 227, 968 }, { 228, 948 }, { 229, 949 }, { 230, 966 }, { 231, 947 }, { 232, 951 }, { 233, 953 }, { 234, 958 }, { 235, 954 }, { 236, 955 }, { 237, 956 }, { 238, 957 }, { 239, 959 }, { 240, 960 }, { 241, 974 }, { 242, 961 }, { 243, 963 }, { 244, 964 }, { 245, 952 }, { 246, 969 }, { 247, 962 }, { 248, 967 }, { 249, 965 }, { 250, 950 }, { 251, 970 }, { 252, 971 }, { 253, 912 }, { 254, 944 }, { 255, 8240 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applegrk[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 901 }, { 182, 902 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macice[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 221 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 208 }, { 221, 240 }, { 222, 222 }, { 223, 254 }, { 224, 253 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macroman[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 64257 }, { 223, 64258 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 240 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macromanian[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 258 }, { 175, 350 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 259 }, { 191, 351 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 354 }, { 223, 355 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 356 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macturkish[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 286 }, { 219, 287 }, { 220, 304 }, { 221, 305 }, { 222, 350 }, { 223, 351 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 245 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t atarist[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 223 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 227 }, { 177, 245 }, { 178, 216 }, { 179, 248 }, { 180, 339 }, { 181, 338 }, { 182, 192 }, { 183, 195 }, { 184, 213 }, { 185, 168 }, { 186, 180 }, { 187, 8224 }, { 188, 182 }, { 189, 169 }, { 190, 174 }, { 191, 8482 }, { 192, 307 }, { 193, 306 }, { 194, 1488 }, { 195, 1489 }, { 196, 1490 }, { 197, 1491 }, { 198, 1492 }, { 199, 1493 }, { 200, 1494 }, { 201, 1495 }, { 202, 1496 }, { 203, 1497 }, { 204, 1499 }, { 205, 1500 }, { 206, 1502 }, { 207, 1504 }, { 208, 1505 }, { 209, 1506 }, { 210, 1508 }, { 211, 1510 }, { 212, 1511 }, { 213, 1512 }, { 214, 1513 }, { 215, 1514 }, { 216, 1503 }, { 217, 1498 }, { 218, 1501 }, { 219, 1507 }, { 220, 1509 }, { 221, 167 }, { 222, 8743 }, { 223, 8734 }, { 224, 945 }, { 225, 946 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8750 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 179 }, { 255, 175 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp437[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp737[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 913 }, { 129, 914 }, { 130, 915 }, { 131, 916 }, { 132, 917 }, { 133, 918 }, { 134, 919 }, { 135, 920 }, { 136, 921 }, { 137, 922 }, { 138, 923 }, { 139, 924 }, { 140, 925 }, { 141, 926 }, { 142, 927 }, { 143, 928 }, { 144, 929 }, { 145, 931 }, { 146, 932 }, { 147, 933 }, { 148, 934 }, { 149, 935 }, { 150, 936 }, { 151, 937 }, { 152, 945 }, { 153, 946 }, { 154, 947 }, { 155, 948 }, { 156, 949 }, { 157, 950 }, { 158, 951 }, { 159, 952 }, { 160, 953 }, { 161, 954 }, { 162, 955 }, { 163, 956 }, { 164, 957 }, { 165, 958 }, { 166, 959 }, { 167, 960 }, { 168, 961 }, { 169, 963 }, { 170, 962 }, { 171, 964 }, { 172, 965 }, { 173, 966 }, { 174, 967 }, { 175, 968 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 969 }, { 225, 940 }, { 226, 941 }, { 227, 942 }, { 228, 970 }, { 229, 943 }, { 230, 972 }, { 231, 973 }, { 232, 971 }, { 233, 974 }, { 234, 902 }, { 235, 904 }, { 236, 905 }, { 237, 906 }, { 238, 908 }, { 239, 910 }, { 240, 911 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 938 }, { 245, 939 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp775[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 262 }, { 129, 252 }, { 130, 233 }, { 131, 257 }, { 132, 228 }, { 133, 291 }, { 134, 229 }, { 135, 263 }, { 136, 322 }, { 137, 275 }, { 138, 342 }, { 139, 343 }, { 140, 299 }, { 141, 377 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 333 }, { 148, 246 }, { 149, 290 }, { 150, 162 }, { 151, 346 }, { 152, 347 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 215 }, { 159, 164 }, { 160, 256 }, { 161, 298 }, { 162, 243 }, { 163, 379 }, { 164, 380 }, { 165, 378 }, { 166, 8221 }, { 167, 166 }, { 168, 169 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 321 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 260 }, { 182, 268 }, { 183, 280 }, { 184, 278 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 302 }, { 190, 352 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 370 }, { 199, 362 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 381 }, { 208, 261 }, { 209, 269 }, { 210, 281 }, { 211, 279 }, { 212, 303 }, { 213, 353 }, { 214, 371 }, { 215, 363 }, { 216, 382 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 332 }, { 227, 323 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 324 }, { 232, 310 }, { 233, 311 }, { 234, 315 }, { 235, 316 }, { 236, 326 }, { 237, 274 }, { 238, 325 }, { 239, 8217 }, { 240, 173 }, { 241, 177 }, { 242, 8220 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 8222 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 39, 8216 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp850[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 215 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 169 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 162 }, { 190, 165 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 227 }, { 199, 195 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 240 }, { 209, 208 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 305 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 166 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 254 }, { 232, 222 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 253 }, { 237, 221 }, { 238, 175 }, { 239, 180 }, { 240, 173 }, { 241, 177 }, { 242, 8215 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp851[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 902 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 904 }, { 142, 196 }, { 143, 905 }, { 144, 906 }, { 145, 145 }, { 146, 908 }, { 147, 244 }, { 148, 246 }, { 149, 910 }, { 150, 251 }, { 151, 249 }, { 152, 911 }, { 153, 214 }, { 154, 220 }, { 155, 940 }, { 156, 163 }, { 157, 941 }, { 158, 942 }, { 159, 943 }, { 160, 970 }, { 161, 912 }, { 162, 972 }, { 163, 973 }, { 164, 913 }, { 165, 914 }, { 166, 915 }, { 167, 916 }, { 168, 917 }, { 169, 918 }, { 170, 919 }, { 171, 189 }, { 172, 920 }, { 173, 921 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 922 }, { 182, 923 }, { 183, 924 }, { 184, 925 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 926 }, { 190, 927 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 928 }, { 199, 929 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 931 }, { 208, 932 }, { 209, 933 }, { 210, 934 }, { 211, 935 }, { 212, 936 }, { 213, 937 }, { 214, 945 }, { 215, 946 }, { 216, 947 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 948 }, { 222, 949 }, { 223, 9600 }, { 224, 950 }, { 225, 951 }, { 226, 952 }, { 227, 953 }, { 228, 954 }, { 229, 955 }, { 230, 956 }, { 231, 957 }, { 232, 958 }, { 233, 959 }, { 234, 960 }, { 235, 961 }, { 236, 963 }, { 237, 962 }, { 238, 964 }, { 239, 900 }, { 240, 173 }, { 241, 177 }, { 242, 965 }, { 243, 966 }, { 244, 967 }, { 245, 167 }, { 246, 968 }, { 247, 901 }, { 248, 176 }, { 249, 168 }, { 250, 969 }, { 251, 971 }, { 252, 944 }, { 253, 974 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp852[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 367 }, { 134, 263 }, { 135, 231 }, { 136, 322 }, { 137, 235 }, { 138, 336 }, { 139, 337 }, { 140, 238 }, { 141, 377 }, { 142, 196 }, { 143, 262 }, { 144, 201 }, { 145, 313 }, { 146, 314 }, { 147, 244 }, { 148, 246 }, { 149, 317 }, { 150, 318 }, { 151, 346 }, { 152, 347 }, { 153, 214 }, { 154, 220 }, { 155, 356 }, { 156, 357 }, { 157, 321 }, { 158, 215 }, { 159, 269 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 260 }, { 165, 261 }, { 166, 381 }, { 167, 382 }, { 168, 280 }, { 169, 281 }, { 170, 170 }, { 171, 378 }, { 172, 268 }, { 173, 351 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 282 }, { 184, 350 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 379 }, { 190, 380 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 258 }, { 199, 259 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 273 }, { 209, 272 }, { 210, 270 }, { 211, 203 }, { 212, 271 }, { 213, 327 }, { 214, 205 }, { 215, 206 }, { 216, 283 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 354 }, { 222, 366 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 323 }, { 228, 324 }, { 229, 328 }, { 230, 352 }, { 231, 353 }, { 232, 340 }, { 233, 218 }, { 234, 341 }, { 235, 368 }, { 236, 253 }, { 237, 221 }, { 238, 355 }, { 239, 180 }, { 240, 173 }, { 241, 733 }, { 242, 731 }, { 243, 711 }, { 244, 728 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 729 }, { 251, 369 }, { 252, 344 }, { 253, 345 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp853[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 265 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 264 }, { 144, 201 }, { 145, 267 }, { 146, 266 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 304 }, { 153, 214 }, { 154, 220 }, { 155, 285 }, { 156, 163 }, { 157, 284 }, { 158, 215 }, { 159, 309 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 286 }, { 167, 287 }, { 168, 292 }, { 169, 293 }, { 170, 170 }, { 171, 189 }, { 172, 308 }, { 173, 351 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 350 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 379 }, { 190, 380 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 348 }, { 199, 349 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 208 }, { 209, 209 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 305 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 221 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 288 }, { 229, 289 }, { 230, 181 }, { 231, 294 }, { 232, 295 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 364 }, { 237, 365 }, { 238, 238 }, { 239, 180 }, { 240, 173 }, { 241, 241 }, { 242, 8467 }, { 243, 329 }, { 244, 728 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 729 }, { 251, 251 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 268 }, { 99, 263 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 352 }, { 115, 347 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 381 }, { 122, 378 }, { 122, 382 }, }; static convert_t cp855[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1106 }, { 129, 1026 }, { 130, 1107 }, { 131, 1027 }, { 132, 1105 }, { 133, 1025 }, { 134, 1108 }, { 135, 1028 }, { 136, 1109 }, { 137, 1029 }, { 138, 1110 }, { 139, 1030 }, { 140, 1111 }, { 141, 1031 }, { 142, 1112 }, { 143, 1032 }, { 144, 1113 }, { 145, 1033 }, { 146, 1114 }, { 147, 1034 }, { 148, 1115 }, { 149, 1035 }, { 150, 1116 }, { 151, 1036 }, { 152, 1118 }, { 153, 1038 }, { 154, 1119 }, { 155, 1039 }, { 156, 1102 }, { 157, 1070 }, { 158, 1098 }, { 159, 1066 }, { 160, 1072 }, { 161, 1040 }, { 162, 1073 }, { 163, 1041 }, { 164, 1094 }, { 165, 1062 }, { 166, 1076 }, { 167, 1044 }, { 168, 1077 }, { 169, 1045 }, { 170, 1092 }, { 171, 1060 }, { 172, 1075 }, { 173, 1043 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 1093 }, { 182, 1061 }, { 183, 1080 }, { 184, 1048 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 1081 }, { 190, 1049 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 1082 }, { 199, 1050 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 1083 }, { 209, 1051 }, { 210, 1084 }, { 211, 1052 }, { 212, 1085 }, { 213, 1053 }, { 214, 1086 }, { 215, 1054 }, { 216, 1087 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 1055 }, { 222, 1103 }, { 223, 9600 }, { 224, 1071 }, { 225, 1088 }, { 226, 1056 }, { 227, 1089 }, { 228, 1057 }, { 229, 1090 }, { 230, 1058 }, { 231, 1091 }, { 232, 1059 }, { 233, 1078 }, { 234, 1046 }, { 235, 1074 }, { 236, 1042 }, { 237, 1100 }, { 238, 1068 }, { 239, 8470 }, { 240, 173 }, { 241, 1099 }, { 242, 1067 }, { 243, 1079 }, { 244, 1047 }, { 245, 1096 }, { 246, 1064 }, { 247, 1101 }, { 248, 1069 }, { 249, 1097 }, { 250, 1065 }, { 251, 1095 }, { 252, 1063 }, { 253, 167 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp857[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 305 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 304 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 350 }, { 159, 351 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 286 }, { 167, 287 }, { 168, 191 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 169 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 162 }, { 190, 165 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 227 }, { 199, 195 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 186 }, { 209, 170 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 213 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 166 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 231 }, { 232, 215 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 236 }, { 237, 255 }, { 238, 175 }, { 239, 180 }, { 240, 173 }, { 241, 177 }, { 242, 242 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp860[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 227 }, { 133, 224 }, { 134, 193 }, { 135, 231 }, { 136, 234 }, { 137, 202 }, { 138, 232 }, { 139, 205 }, { 140, 212 }, { 141, 236 }, { 142, 195 }, { 143, 194 }, { 144, 201 }, { 145, 192 }, { 146, 200 }, { 147, 244 }, { 148, 245 }, { 149, 242 }, { 150, 218 }, { 151, 249 }, { 152, 204 }, { 153, 213 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 217 }, { 158, 8359 }, { 159, 211 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 210 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp861[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 208 }, { 140, 240 }, { 141, 222 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 254 }, { 150, 251 }, { 151, 221 }, { 152, 253 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 193 }, { 165, 205 }, { 166, 211 }, { 167, 218 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp862[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1488 }, { 129, 1489 }, { 130, 1490 }, { 131, 1491 }, { 132, 1492 }, { 133, 1493 }, { 134, 1494 }, { 135, 1495 }, { 136, 1496 }, { 137, 1497 }, { 138, 1498 }, { 139, 1499 }, { 140, 1500 }, { 141, 1501 }, { 142, 1502 }, { 143, 1503 }, { 144, 1504 }, { 145, 1505 }, { 146, 1506 }, { 147, 1507 }, { 148, 1508 }, { 149, 1509 }, { 150, 1510 }, { 151, 1511 }, { 152, 1512 }, { 153, 1513 }, { 154, 1514 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp863[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 194 }, { 133, 224 }, { 134, 182 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 8215 }, { 142, 192 }, { 143, 167 }, { 144, 201 }, { 145, 200 }, { 146, 202 }, { 147, 244 }, { 148, 203 }, { 149, 207 }, { 150, 251 }, { 151, 249 }, { 152, 164 }, { 153, 212 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 217 }, { 158, 219 }, { 159, 402 }, { 160, 166 }, { 161, 180 }, { 162, 243 }, { 163, 250 }, { 164, 168 }, { 165, 184 }, { 166, 179 }, { 167, 175 }, { 168, 206 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 190 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp864[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 176 }, { 129, 183 }, { 130, 8729 }, { 131, 8730 }, { 132, 9618 }, { 133, 9472 }, { 134, 9474 }, { 135, 9532 }, { 136, 9508 }, { 137, 9516 }, { 138, 9500 }, { 139, 9524 }, { 140, 9488 }, { 141, 9484 }, { 142, 9492 }, { 143, 9496 }, { 144, 946 }, { 145, 8734 }, { 146, 966 }, { 147, 177 }, { 148, 189 }, { 149, 188 }, { 150, 8776 }, { 151, 171 }, { 152, 187 }, { 153, 65271 }, { 154, 65272 }, { 155, 155 }, { 156, 156 }, { 157, 65275 }, { 158, 65276 }, { 159, 159 }, { 160, 160 }, { 161, 173 }, { 162, 65154 }, { 163, 163 }, { 164, 164 }, { 165, 65156 }, { 166, 166 }, { 167, 167 }, { 168, 65166 }, { 169, 1576 }, { 170, 1578 }, { 171, 1579 }, { 172, 1548 }, { 173, 1580 }, { 174, 1581 }, { 175, 1582 }, { 176, 1632 }, { 177, 1633 }, { 178, 1634 }, { 179, 1635 }, { 180, 1636 }, { 181, 1637 }, { 182, 1638 }, { 183, 1639 }, { 184, 1640 }, { 185, 1641 }, { 186, 1601 }, { 187, 1563 }, { 188, 1587 }, { 189, 1588 }, { 190, 1589 }, { 191, 1567 }, { 192, 162 }, { 193, 1569 }, { 194, 1570 }, { 195, 1571 }, { 196, 1572 }, { 197, 65226 }, { 198, 65163 }, { 199, 1575 }, { 200, 65169 }, { 201, 1577 }, { 202, 65175 }, { 203, 65179 }, { 204, 65183 }, { 205, 65187 }, { 206, 65191 }, { 207, 1583 }, { 208, 1584 }, { 209, 1585 }, { 210, 1586 }, { 211, 65203 }, { 212, 65207 }, { 213, 65211 }, { 214, 65215 }, { 215, 1591 }, { 216, 1592 }, { 217, 65227 }, { 218, 65231 }, { 219, 166 }, { 220, 172 }, { 221, 247 }, { 222, 215 }, { 223, 1593 }, { 224, 1600 }, { 225, 65235 }, { 226, 65239 }, { 227, 65243 }, { 228, 65247 }, { 229, 65251 }, { 230, 65255 }, { 231, 65259 }, { 232, 1608 }, { 233, 1609 }, { 234, 65267 }, { 235, 1590 }, { 236, 65228 }, { 237, 65230 }, { 238, 1594 }, { 239, 1605 }, { 240, 65149 }, { 241, 1617 }, { 242, 1606 }, { 243, 1607 }, { 244, 65260 }, { 245, 65264 }, { 246, 65266 }, { 247, 65232 }, { 248, 1602 }, { 249, 65269 }, { 250, 65270 }, { 251, 1604 }, { 252, 1603 }, { 253, 1610 }, { 254, 9632 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp865[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 164 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp866[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1040 }, { 129, 1041 }, { 130, 1042 }, { 131, 1043 }, { 132, 1044 }, { 133, 1045 }, { 134, 1046 }, { 135, 1047 }, { 136, 1048 }, { 137, 1049 }, { 138, 1050 }, { 139, 1051 }, { 140, 1052 }, { 141, 1053 }, { 142, 1054 }, { 143, 1055 }, { 144, 1056 }, { 145, 1057 }, { 146, 1058 }, { 147, 1059 }, { 148, 1060 }, { 149, 1061 }, { 150, 1062 }, { 151, 1063 }, { 152, 1064 }, { 153, 1065 }, { 154, 1066 }, { 155, 1067 }, { 156, 1068 }, { 157, 1069 }, { 158, 1070 }, { 159, 1071 }, { 160, 1072 }, { 161, 1073 }, { 162, 1074 }, { 163, 1075 }, { 164, 1076 }, { 165, 1077 }, { 166, 1078 }, { 167, 1079 }, { 168, 1080 }, { 169, 1081 }, { 170, 1082 }, { 171, 1083 }, { 172, 1084 }, { 173, 1085 }, { 174, 1086 }, { 175, 1087 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 1088 }, { 225, 1089 }, { 226, 1090 }, { 227, 1091 }, { 228, 1092 }, { 229, 1093 }, { 230, 1094 }, { 231, 1095 }, { 232, 1096 }, { 233, 1097 }, { 234, 1098 }, { 235, 1099 }, { 236, 1100 }, { 237, 1101 }, { 238, 1102 }, { 239, 1103 }, { 240, 1025 }, { 241, 1105 }, { 242, 1028 }, { 243, 1108 }, { 244, 1031 }, { 245, 1111 }, { 246, 1038 }, { 247, 1118 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8470 }, { 253, 164 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp869[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 902 }, { 135, 135 }, { 136, 183 }, { 137, 172 }, { 138, 166 }, { 139, 8216 }, { 140, 8217 }, { 141, 904 }, { 142, 8213 }, { 143, 905 }, { 144, 906 }, { 145, 938 }, { 146, 908 }, { 147, 147 }, { 148, 148 }, { 149, 910 }, { 150, 939 }, { 151, 169 }, { 152, 911 }, { 153, 178 }, { 154, 179 }, { 155, 940 }, { 156, 163 }, { 157, 941 }, { 158, 942 }, { 159, 943 }, { 160, 970 }, { 161, 912 }, { 162, 972 }, { 163, 973 }, { 164, 913 }, { 165, 914 }, { 166, 915 }, { 167, 916 }, { 168, 917 }, { 169, 918 }, { 170, 919 }, { 171, 189 }, { 172, 920 }, { 173, 921 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 922 }, { 182, 923 }, { 183, 924 }, { 184, 925 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 926 }, { 190, 927 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 928 }, { 199, 929 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 931 }, { 208, 932 }, { 209, 933 }, { 210, 934 }, { 211, 935 }, { 212, 936 }, { 213, 937 }, { 214, 945 }, { 215, 946 }, { 216, 947 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 948 }, { 222, 949 }, { 223, 9600 }, { 224, 950 }, { 225, 951 }, { 226, 952 }, { 227, 953 }, { 228, 954 }, { 229, 955 }, { 230, 956 }, { 231, 957 }, { 232, 958 }, { 233, 959 }, { 234, 960 }, { 235, 961 }, { 236, 963 }, { 237, 962 }, { 238, 964 }, { 239, 900 }, { 240, 173 }, { 241, 177 }, { 242, 965 }, { 243, 966 }, { 244, 967 }, { 245, 167 }, { 246, 968 }, { 247, 901 }, { 248, 176 }, { 249, 168 }, { 250, 969 }, { 251, 971 }, { 252, 944 }, { 253, 974 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp874[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 8230 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 3585 }, { 162, 3586 }, { 163, 3587 }, { 164, 3588 }, { 165, 3589 }, { 166, 3590 }, { 167, 3591 }, { 168, 3592 }, { 169, 3593 }, { 170, 3594 }, { 171, 3595 }, { 172, 3596 }, { 173, 3597 }, { 174, 3598 }, { 175, 3599 }, { 176, 3600 }, { 177, 3601 }, { 178, 3602 }, { 179, 3603 }, { 180, 3604 }, { 181, 3605 }, { 182, 3606 }, { 183, 3607 }, { 184, 3608 }, { 185, 3609 }, { 186, 3610 }, { 187, 3611 }, { 188, 3612 }, { 189, 3613 }, { 190, 3614 }, { 191, 3615 }, { 192, 3616 }, { 193, 3617 }, { 194, 3618 }, { 195, 3619 }, { 196, 3620 }, { 197, 3621 }, { 198, 3622 }, { 199, 3623 }, { 200, 3624 }, { 201, 3625 }, { 202, 3626 }, { 203, 3627 }, { 204, 3628 }, { 205, 3629 }, { 206, 3630 }, { 207, 3631 }, { 208, 3632 }, { 209, 3633 }, { 210, 3634 }, { 211, 3635 }, { 212, 3636 }, { 213, 3637 }, { 214, 3638 }, { 215, 3639 }, { 216, 3640 }, { 217, 3641 }, { 218, 3642 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 3647 }, { 224, 3648 }, { 225, 3649 }, { 226, 3650 }, { 227, 3651 }, { 228, 3652 }, { 229, 3653 }, { 230, 3654 }, { 231, 3655 }, { 232, 3656 }, { 233, 3657 }, { 234, 3658 }, { 235, 3659 }, { 236, 3660 }, { 237, 3661 }, { 238, 3662 }, { 239, 3663 }, { 240, 3664 }, { 241, 3665 }, { 242, 3666 }, { 243, 3667 }, { 244, 3668 }, { 245, 3669 }, { 246, 3670 }, { 247, 3671 }, { 248, 3672 }, { 249, 3673 }, { 250, 3674 }, { 251, 3675 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp895[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 268 }, { 129, 252 }, { 130, 233 }, { 131, 271 }, { 132, 228 }, { 133, 270 }, { 134, 356 }, { 135, 269 }, { 136, 283 }, { 137, 282 }, { 138, 313 }, { 139, 205 }, { 140, 318 }, { 141, 314 }, { 142, 196 }, { 143, 193 }, { 144, 201 }, { 145, 382 }, { 146, 381 }, { 147, 244 }, { 148, 246 }, { 149, 211 }, { 150, 367 }, { 151, 218 }, { 152, 253 }, { 153, 214 }, { 154, 220 }, { 155, 352 }, { 156, 317 }, { 157, 221 }, { 158, 344 }, { 159, 357 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 328 }, { 165, 327 }, { 166, 366 }, { 167, 212 }, { 168, 353 }, { 169, 345 }, { 170, 341 }, { 171, 340 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 226 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 76, 321 }, { 108, 316 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 116, 355 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t cp1250[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 346 }, { 141, 356 }, { 142, 381 }, { 143, 377 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 347 }, { 157, 357 }, { 158, 382 }, { 159, 378 }, { 160, 160 }, { 161, 711 }, { 162, 728 }, { 163, 321 }, { 164, 164 }, { 165, 260 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 350 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 379 }, { 176, 176 }, { 177, 177 }, { 178, 731 }, { 179, 322 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 261 }, { 186, 351 }, { 187, 187 }, { 188, 376 }, { 189, 733 }, { 190, 317 }, { 191, 380 }, { 192, 340 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 313 }, { 198, 262 }, { 199, 199 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 282 }, { 205, 205 }, { 206, 206 }, { 207, 270 }, { 208, 272 }, { 209, 323 }, { 210, 327 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 215 }, { 216, 344 }, { 217, 366 }, { 218, 218 }, { 219, 368 }, { 220, 220 }, { 221, 221 }, { 222, 354 }, { 223, 223 }, { 224, 341 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 314 }, { 230, 263 }, { 231, 231 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 283 }, { 237, 237 }, { 238, 238 }, { 239, 271 }, { 240, 273 }, { 241, 324 }, { 242, 328 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 247 }, { 248, 345 }, { 249, 367 }, { 250, 250 }, { 251, 369 }, { 252, 252 }, { 253, 253 }, { 254, 355 }, { 255, 729 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp1251[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1026 }, { 129, 1027 }, { 130, 8218 }, { 131, 1107 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 8364 }, { 137, 8240 }, { 138, 1033 }, { 139, 8249 }, { 140, 1034 }, { 141, 1036 }, { 142, 1035 }, { 143, 1039 }, { 144, 1106 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 1113 }, { 155, 8250 }, { 156, 1114 }, { 157, 1116 }, { 158, 1115 }, { 159, 1119 }, { 160, 160 }, { 161, 1038 }, { 162, 1118 }, { 163, 1032 }, { 164, 164 }, { 165, 1168 }, { 166, 166 }, { 167, 167 }, { 168, 1025 }, { 169, 169 }, { 170, 1028 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 1031 }, { 176, 176 }, { 177, 177 }, { 178, 1030 }, { 179, 1110 }, { 180, 1169 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 1105 }, { 185, 8470 }, { 186, 1108 }, { 187, 187 }, { 188, 1112 }, { 189, 1029 }, { 190, 1109 }, { 191, 1111 }, { 192, 1040 }, { 193, 1041 }, { 194, 1042 }, { 195, 1043 }, { 196, 1044 }, { 197, 1045 }, { 198, 1046 }, { 199, 1047 }, { 200, 1048 }, { 201, 1049 }, { 202, 1050 }, { 203, 1051 }, { 204, 1052 }, { 205, 1053 }, { 206, 1054 }, { 207, 1055 }, { 208, 1056 }, { 209, 1057 }, { 210, 1058 }, { 211, 1059 }, { 212, 1060 }, { 213, 1061 }, { 214, 1062 }, { 215, 1063 }, { 216, 1064 }, { 217, 1065 }, { 218, 1066 }, { 219, 1067 }, { 220, 1068 }, { 221, 1069 }, { 222, 1070 }, { 223, 1071 }, { 224, 1072 }, { 225, 1073 }, { 226, 1074 }, { 227, 1075 }, { 228, 1076 }, { 229, 1077 }, { 230, 1078 }, { 231, 1079 }, { 232, 1080 }, { 233, 1081 }, { 234, 1082 }, { 235, 1083 }, { 236, 1084 }, { 237, 1085 }, { 238, 1086 }, { 239, 1087 }, { 240, 1088 }, { 241, 1089 }, { 242, 1090 }, { 243, 1091 }, { 244, 1092 }, { 245, 1093 }, { 246, 1094 }, { 247, 1095 }, { 248, 1096 }, { 249, 1097 }, { 250, 1098 }, { 251, 1099 }, { 252, 1100 }, { 253, 1101 }, { 254, 1102 }, { 255, 1103 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1252[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 381 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 382 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t cp1253[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 901 }, { 162, 902 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 8213 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1254[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 158 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 286 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 304 }, { 222, 350 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 287 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 305 }, { 254, 351 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 115, 347 }, { 115, 349 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1255[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 215 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 781 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 247 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 8215 }, { 224, 1488 }, { 225, 1489 }, { 226, 1490 }, { 227, 1491 }, { 228, 1492 }, { 229, 1493 }, { 230, 1494 }, { 231, 1495 }, { 232, 1496 }, { 233, 1497 }, { 234, 1498 }, { 235, 1499 }, { 236, 1500 }, { 237, 1501 }, { 238, 1502 }, { 239, 1503 }, { 240, 1504 }, { 241, 1505 }, { 242, 1506 }, { 243, 1507 }, { 244, 1508 }, { 245, 1509 }, { 246, 1510 }, { 247, 1511 }, { 248, 1512 }, { 249, 1513 }, { 250, 1514 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1256[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1548 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 1563 }, { 153, 8482 }, { 154, 1567 }, { 155, 8250 }, { 156, 1569 }, { 157, 1570 }, { 158, 1571 }, { 159, 376 }, { 160, 160 }, { 161, 1572 }, { 162, 1573 }, { 163, 163 }, { 164, 164 }, { 165, 1574 }, { 166, 166 }, { 167, 167 }, { 168, 1575 }, { 169, 169 }, { 170, 1576 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 1577 }, { 179, 1578 }, { 180, 1579 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 1580 }, { 185, 185 }, { 186, 1581 }, { 187, 187 }, { 188, 1582 }, { 189, 1583 }, { 190, 1584 }, { 191, 1585 }, { 192, 192 }, { 193, 1586 }, { 194, 194 }, { 195, 195 }, { 196, 1587 }, { 197, 1588 }, { 198, 1589 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 1590 }, { 205, 1591 }, { 206, 206 }, { 207, 207 }, { 208, 1592 }, { 209, 1593 }, { 210, 1594 }, { 211, 1600 }, { 212, 212 }, { 213, 1601 }, { 214, 1602 }, { 215, 215 }, { 216, 1603 }, { 217, 217 }, { 218, 1711 }, { 219, 219 }, { 220, 220 }, { 221, 1604 }, { 222, 1605 }, { 223, 1606 }, { 224, 224 }, { 225, 1607 }, { 226, 226 }, { 227, 227 }, { 228, 1608 }, { 229, 1609 }, { 230, 1610 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 1611 }, { 237, 1612 }, { 238, 238 }, { 239, 239 }, { 240, 1613 }, { 241, 1614 }, { 242, 1615 }, { 243, 1616 }, { 244, 244 }, { 245, 1617 }, { 246, 1618 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 246 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1257[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 168 }, { 142, 711 }, { 143, 184 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 175 }, { 158, 731 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 216 }, { 169, 169 }, { 170, 342 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 198 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 248 }, { 185, 185 }, { 186, 343 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 230 }, { 192, 260 }, { 193, 302 }, { 194, 256 }, { 195, 262 }, { 196, 196 }, { 197, 197 }, { 198, 280 }, { 199, 274 }, { 200, 268 }, { 201, 201 }, { 202, 377 }, { 203, 278 }, { 204, 290 }, { 205, 310 }, { 206, 298 }, { 207, 315 }, { 208, 352 }, { 209, 323 }, { 210, 325 }, { 211, 211 }, { 212, 332 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 370 }, { 217, 321 }, { 218, 340 }, { 219, 362 }, { 220, 220 }, { 221, 379 }, { 222, 381 }, { 223, 223 }, { 224, 261 }, { 225, 303 }, { 226, 257 }, { 227, 263 }, { 228, 228 }, { 229, 229 }, { 230, 281 }, { 231, 275 }, { 232, 269 }, { 233, 233 }, { 234, 378 }, { 235, 279 }, { 236, 291 }, { 237, 311 }, { 238, 299 }, { 239, 316 }, { 240, 353 }, { 241, 324 }, { 242, 326 }, { 243, 243 }, { 244, 333 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 371 }, { 249, 322 }, { 250, 347 }, { 251, 363 }, { 252, 252 }, { 253, 380 }, { 254, 382 }, { 255, 729 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp1258[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 158 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 832 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 272 }, { 209, 209 }, { 210, 777 }, { 211, 211 }, { 212, 212 }, { 213, 416 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 431 }, { 222, 771 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 833 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 273 }, { 241, 241 }, { 242, 803 }, { 243, 243 }, { 244, 244 }, { 245, 417 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 432 }, { 254, 8363 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 256 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t decmcs[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 376 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 255 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t ebc037[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 162 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 124 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 33 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 172 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 221 }, { 174, 222 }, { 175, 174 }, { 176, 94 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 91 }, { 187, 93 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc1026[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 123 }, { 73, 241 }, { 74, 199 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 286 }, { 91, 304 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 91 }, { 105, 209 }, { 106, 351 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 305 }, { 122, 58 }, { 123, 214 }, { 124, 350 }, { 125, 39 }, { 126, 61 }, { 127, 220 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 125 }, { 141, 96 }, { 142, 166 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 246 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 93 }, { 173, 36 }, { 174, 64 }, { 175, 174 }, { 176, 162 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 172 }, { 187, 124 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 231 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 126 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 287 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 92 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 252 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 35 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 34 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 221 }, { 232, 374 }, { 232, 376 }, { 168, 253 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc1047[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 162 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 124 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 33 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 91 }, { 174, 222 }, { 175, 174 }, { 176, 172 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 221 }, { 187, 168 }, { 188, 175 }, { 189, 93 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc500[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 91 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 93 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 221 }, { 174, 222 }, { 175, 174 }, { 176, 162 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 172 }, { 187, 124 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc875[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 913 }, { 66, 914 }, { 67, 915 }, { 68, 916 }, { 69, 917 }, { 70, 918 }, { 71, 919 }, { 72, 920 }, { 73, 921 }, { 74, 91 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 922 }, { 82, 923 }, { 83, 924 }, { 84, 925 }, { 85, 926 }, { 86, 927 }, { 87, 928 }, { 88, 929 }, { 89, 931 }, { 90, 93 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 932 }, { 99, 933 }, { 100, 934 }, { 101, 935 }, { 102, 936 }, { 103, 937 }, { 104, 938 }, { 105, 939 }, { 106, 124 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 168 }, { 113, 902 }, { 114, 904 }, { 115, 905 }, { 116, 160 }, { 117, 906 }, { 118, 908 }, { 119, 910 }, { 120, 911 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 901 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 945 }, { 139, 946 }, { 140, 947 }, { 141, 948 }, { 142, 949 }, { 143, 950 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 951 }, { 155, 952 }, { 156, 953 }, { 157, 954 }, { 158, 955 }, { 159, 956 }, { 160, 180 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 957 }, { 171, 958 }, { 172, 959 }, { 173, 960 }, { 174, 961 }, { 175, 963 }, { 176, 163 }, { 177, 940 }, { 178, 941 }, { 179, 942 }, { 180, 970 }, { 181, 943 }, { 182, 972 }, { 183, 973 }, { 184, 971 }, { 185, 974 }, { 186, 962 }, { 187, 964 }, { 188, 965 }, { 189, 966 }, { 190, 967 }, { 191, 968 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 969 }, { 204, 912 }, { 205, 944 }, { 206, 206 }, { 207, 207 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 177 }, { 219, 189 }, { 220, 220 }, { 221, 183 }, { 222, 222 }, { 223, 166 }, { 224, 92 }, { 225, 225 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 167 }, { 236, 236 }, { 237, 237 }, { 238, 171 }, { 239, 172 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 169 }, { 252, 252 }, { 253, 253 }, { 254, 187 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 192 }, { 193, 193 }, { 193, 194 }, { 193, 195 }, { 193, 196 }, { 193, 197 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 224 }, { 129, 226 }, { 129, 227 }, { 129, 228 }, { 129, 229 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 199 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 231 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 200 }, { 197, 201 }, { 197, 202 }, { 197, 203 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 232 }, { 133, 233 }, { 133, 234 }, { 133, 235 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 204 }, { 201, 205 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 238 }, { 137, 239 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 209 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 241 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 210 }, { 213, 211 }, { 213, 212 }, { 213, 213 }, { 213, 214 }, { 213, 216 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 242 }, { 149, 243 }, { 149, 244 }, { 149, 245 }, { 149, 246 }, { 149, 248 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 217 }, { 228, 218 }, { 228, 219 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 249 }, { 164, 250 }, { 164, 251 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 221 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t hp48[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8735 }, { 129, 129 }, { 130, 8711 }, { 131, 8730 }, { 132, 8747 }, { 133, 8721 }, { 134, 9654 }, { 135, 960 }, { 136, 8706 }, { 137, 8804 }, { 138, 8805 }, { 139, 8800 }, { 140, 945 }, { 141, 8594 }, { 142, 8592 }, { 143, 8595 }, { 144, 8593 }, { 145, 947 }, { 146, 948 }, { 147, 949 }, { 148, 951 }, { 149, 952 }, { 150, 955 }, { 151, 961 }, { 152, 963 }, { 153, 964 }, { 154, 969 }, { 155, 916 }, { 156, 928 }, { 157, 937 }, { 158, 9644 }, { 159, 8734 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t hproman8[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 192 }, { 162, 194 }, { 163, 200 }, { 164, 202 }, { 165, 203 }, { 166, 206 }, { 167, 207 }, { 168, 180 }, { 169, 768 }, { 170, 770 }, { 171, 168 }, { 172, 771 }, { 173, 217 }, { 174, 219 }, { 175, 8356 }, { 176, 175 }, { 177, 221 }, { 178, 253 }, { 179, 176 }, { 180, 199 }, { 181, 231 }, { 182, 209 }, { 183, 241 }, { 184, 161 }, { 185, 191 }, { 186, 164 }, { 187, 163 }, { 188, 165 }, { 189, 167 }, { 190, 402 }, { 191, 162 }, { 192, 226 }, { 193, 234 }, { 194, 244 }, { 195, 251 }, { 196, 225 }, { 197, 233 }, { 198, 243 }, { 199, 250 }, { 200, 224 }, { 201, 232 }, { 202, 242 }, { 203, 249 }, { 204, 228 }, { 205, 235 }, { 206, 246 }, { 207, 252 }, { 208, 197 }, { 209, 238 }, { 210, 216 }, { 211, 198 }, { 212, 229 }, { 213, 237 }, { 214, 248 }, { 215, 230 }, { 216, 196 }, { 217, 236 }, { 218, 214 }, { 219, 220 }, { 220, 201 }, { 221, 239 }, { 222, 223 }, { 223, 212 }, { 224, 193 }, { 225, 195 }, { 226, 227 }, { 227, 208 }, { 228, 240 }, { 229, 205 }, { 230, 204 }, { 231, 211 }, { 232, 210 }, { 233, 213 }, { 234, 245 }, { 235, 352 }, { 236, 353 }, { 237, 218 }, { 238, 376 }, { 239, 255 }, { 240, 222 }, { 241, 254 }, { 242, 183 }, { 243, 181 }, { 244, 182 }, { 245, 190 }, { 246, 173 }, { 247, 188 }, { 248, 189 }, { 249, 170 }, { 250, 186 }, { 251, 171 }, { 252, 9632 }, { 253, 187 }, { 254, 177 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_irv[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_ca[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 226 }, { 92, 231 }, { 93, 234 }, { 94, 238 }, { 95, 95 }, { 96, 244 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 233 }, { 124, 249 }, { 125, 232 }, { 126, 251 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_ch[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 249 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 233 }, { 92, 231 }, { 93, 234 }, { 94, 238 }, { 95, 232 }, { 96, 244 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 252 }, { 126, 251 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_de[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 220 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 252 }, { 126, 223 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_es[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 161 }, { 92, 209 }, { 93, 191 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 176 }, { 124, 241 }, { 125, 231 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_fi[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 197 }, { 94, 220 }, { 95, 95 }, { 96, 233 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 229 }, { 126, 252 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_fr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 176 }, { 92, 231 }, { 93, 167 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 233 }, { 124, 249 }, { 125, 232 }, { 126, 168 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_gb[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_it[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 176 }, { 92, 231 }, { 93, 233 }, { 94, 94 }, { 95, 95 }, { 96, 249 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 224 }, { 124, 242 }, { 125, 232 }, { 126, 236 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_nl[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 190 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 255 }, { 92, 189 }, { 93, 124 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 168 }, { 124, 402 }, { 125, 188 }, { 126, 180 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_no[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 198 }, { 92, 216 }, { 93, 197 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 230 }, { 124, 248 }, { 125, 229 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_pt[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 195 }, { 92, 199 }, { 93, 213 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 227 }, { 124, 231 }, { 125, 245 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_se[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 201 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 197 }, { 94, 220 }, { 95, 95 }, { 96, 233 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 229 }, { 126, 252 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_1[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_2[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 728 }, { 163, 321 }, { 164, 164 }, { 165, 317 }, { 166, 346 }, { 167, 167 }, { 168, 168 }, { 169, 352 }, { 170, 350 }, { 171, 356 }, { 172, 377 }, { 173, 173 }, { 174, 381 }, { 175, 379 }, { 176, 176 }, { 177, 261 }, { 178, 731 }, { 179, 322 }, { 180, 180 }, { 181, 318 }, { 182, 347 }, { 183, 711 }, { 184, 184 }, { 185, 353 }, { 186, 351 }, { 187, 357 }, { 188, 378 }, { 189, 733 }, { 190, 382 }, { 191, 380 }, { 192, 340 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 313 }, { 198, 262 }, { 199, 199 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 282 }, { 205, 205 }, { 206, 206 }, { 207, 270 }, { 208, 272 }, { 209, 323 }, { 210, 327 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 215 }, { 216, 344 }, { 217, 366 }, { 218, 218 }, { 219, 368 }, { 220, 220 }, { 221, 221 }, { 222, 354 }, { 223, 223 }, { 224, 341 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 314 }, { 230, 263 }, { 231, 231 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 283 }, { 237, 237 }, { 238, 238 }, { 239, 271 }, { 240, 273 }, { 241, 324 }, { 242, 328 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 247 }, { 248, 345 }, { 249, 367 }, { 250, 250 }, { 251, 369 }, { 252, 252 }, { 253, 253 }, { 254, 355 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, }; static convert_t iso8859_3[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 294 }, { 162, 728 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 292 }, { 167, 167 }, { 168, 168 }, { 169, 304 }, { 170, 350 }, { 171, 286 }, { 172, 308 }, { 173, 173 }, { 174, 174 }, { 175, 379 }, { 176, 176 }, { 177, 295 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 293 }, { 183, 183 }, { 184, 184 }, { 185, 305 }, { 186, 351 }, { 187, 287 }, { 188, 309 }, { 189, 189 }, { 190, 190 }, { 191, 380 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 266 }, { 198, 264 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 288 }, { 214, 214 }, { 215, 215 }, { 216, 284 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 364 }, { 222, 348 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 267 }, { 230, 265 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 289 }, { 246, 246 }, { 247, 247 }, { 248, 285 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 365 }, { 254, 349 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 268 }, { 99, 263 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 352 }, { 115, 347 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 381 }, { 122, 378 }, { 122, 382 }, }; static convert_t iso8859_4[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 312 }, { 163, 342 }, { 164, 164 }, { 165, 296 }, { 166, 315 }, { 167, 167 }, { 168, 168 }, { 169, 352 }, { 170, 274 }, { 171, 290 }, { 172, 358 }, { 173, 173 }, { 174, 381 }, { 175, 175 }, { 176, 176 }, { 177, 261 }, { 178, 731 }, { 179, 343 }, { 180, 180 }, { 181, 297 }, { 182, 316 }, { 183, 711 }, { 184, 184 }, { 185, 353 }, { 186, 275 }, { 187, 291 }, { 188, 359 }, { 189, 330 }, { 190, 382 }, { 191, 331 }, { 192, 256 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 302 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 278 }, { 205, 205 }, { 206, 206 }, { 207, 298 }, { 208, 272 }, { 209, 325 }, { 210, 332 }, { 211, 310 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 370 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 360 }, { 222, 362 }, { 223, 223 }, { 224, 257 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 303 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 279 }, { 237, 237 }, { 238, 238 }, { 239, 299 }, { 240, 273 }, { 241, 326 }, { 242, 333 }, { 243, 311 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 371 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 361 }, { 254, 363 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_5[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 1025 }, { 162, 1026 }, { 163, 1027 }, { 164, 1028 }, { 165, 1029 }, { 166, 1030 }, { 167, 1031 }, { 168, 1032 }, { 169, 1033 }, { 170, 1034 }, { 171, 1035 }, { 172, 1036 }, { 173, 173 }, { 174, 1038 }, { 175, 1039 }, { 176, 1040 }, { 177, 1041 }, { 178, 1042 }, { 179, 1043 }, { 180, 1044 }, { 181, 1045 }, { 182, 1046 }, { 183, 1047 }, { 184, 1048 }, { 185, 1049 }, { 186, 1050 }, { 187, 1051 }, { 188, 1052 }, { 189, 1053 }, { 190, 1054 }, { 191, 1055 }, { 192, 1056 }, { 193, 1057 }, { 194, 1058 }, { 195, 1059 }, { 196, 1060 }, { 197, 1061 }, { 198, 1062 }, { 199, 1063 }, { 200, 1064 }, { 201, 1065 }, { 202, 1066 }, { 203, 1067 }, { 204, 1068 }, { 205, 1069 }, { 206, 1070 }, { 207, 1071 }, { 208, 1072 }, { 209, 1073 }, { 210, 1074 }, { 211, 1075 }, { 212, 1076 }, { 213, 1077 }, { 214, 1078 }, { 215, 1079 }, { 216, 1080 }, { 217, 1081 }, { 218, 1082 }, { 219, 1083 }, { 220, 1084 }, { 221, 1085 }, { 222, 1086 }, { 223, 1087 }, { 224, 1088 }, { 225, 1089 }, { 226, 1090 }, { 227, 1091 }, { 228, 1092 }, { 229, 1093 }, { 230, 1094 }, { 231, 1095 }, { 232, 1096 }, { 233, 1097 }, { 234, 1098 }, { 235, 1099 }, { 236, 1100 }, { 237, 1101 }, { 238, 1102 }, { 239, 1103 }, { 240, 8470 }, { 241, 1105 }, { 242, 1106 }, { 243, 1107 }, { 244, 1108 }, { 245, 1109 }, { 246, 1110 }, { 247, 1111 }, { 248, 1112 }, { 249, 1113 }, { 250, 1114 }, { 251, 1115 }, { 252, 1116 }, { 253, 167 }, { 254, 1118 }, { 255, 1119 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_6[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 1548 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 1563 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 1567 }, { 192, 192 }, { 193, 1569 }, { 194, 1570 }, { 195, 1571 }, { 196, 1572 }, { 197, 1573 }, { 198, 1574 }, { 199, 1575 }, { 200, 1576 }, { 201, 1577 }, { 202, 1578 }, { 203, 1579 }, { 204, 1580 }, { 205, 1581 }, { 206, 1582 }, { 207, 1583 }, { 208, 1584 }, { 209, 1585 }, { 210, 1586 }, { 211, 1587 }, { 212, 1588 }, { 213, 1589 }, { 214, 1590 }, { 215, 1591 }, { 216, 1592 }, { 217, 1593 }, { 218, 1594 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 1600 }, { 225, 1601 }, { 226, 1602 }, { 227, 1603 }, { 228, 1604 }, { 229, 1605 }, { 230, 1606 }, { 231, 1607 }, { 232, 1608 }, { 233, 1609 }, { 234, 1610 }, { 235, 1611 }, { 236, 1612 }, { 237, 1613 }, { 238, 1614 }, { 239, 1615 }, { 240, 1616 }, { 241, 1617 }, { 242, 1618 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_7[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 8216 }, { 162, 8217 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 8213 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 901 }, { 182, 902 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_8[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 215 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 247 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 8215 }, { 224, 1488 }, { 225, 1489 }, { 226, 1490 }, { 227, 1491 }, { 228, 1492 }, { 229, 1493 }, { 230, 1494 }, { 231, 1495 }, { 232, 1496 }, { 233, 1497 }, { 234, 1498 }, { 235, 1499 }, { 236, 1500 }, { 237, 1501 }, { 238, 1502 }, { 239, 1503 }, { 240, 1504 }, { 241, 1505 }, { 242, 1506 }, { 243, 1507 }, { 244, 1508 }, { 245, 1509 }, { 246, 1510 }, { 247, 1511 }, { 248, 1512 }, { 249, 1513 }, { 250, 1514 }, { 251, 251 }, { 252, 252 }, { 253, 8206 }, { 254, 8207 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_9[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 286 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 304 }, { 222, 350 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 287 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 305 }, { 254, 351 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_10[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 274 }, { 163, 290 }, { 164, 298 }, { 165, 296 }, { 166, 310 }, { 167, 167 }, { 168, 315 }, { 169, 272 }, { 170, 352 }, { 171, 358 }, { 172, 381 }, { 173, 173 }, { 174, 362 }, { 175, 330 }, { 176, 176 }, { 177, 261 }, { 178, 275 }, { 179, 291 }, { 180, 299 }, { 181, 297 }, { 182, 311 }, { 183, 183 }, { 184, 316 }, { 185, 273 }, { 186, 353 }, { 187, 359 }, { 188, 382 }, { 189, 8213 }, { 190, 363 }, { 191, 331 }, { 192, 256 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 302 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 278 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 325 }, { 210, 332 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 360 }, { 216, 216 }, { 217, 370 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 257 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 303 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 279 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 326 }, { 242, 333 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 361 }, { 248, 248 }, { 249, 371 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 312 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_11[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 3585 }, { 162, 3586 }, { 163, 3587 }, { 164, 3588 }, { 165, 3589 }, { 166, 3590 }, { 167, 3591 }, { 168, 3592 }, { 169, 3593 }, { 170, 3594 }, { 171, 3595 }, { 172, 3596 }, { 173, 3597 }, { 174, 3598 }, { 175, 3599 }, { 176, 3600 }, { 177, 3601 }, { 178, 3602 }, { 179, 3603 }, { 180, 3604 }, { 181, 3605 }, { 182, 3606 }, { 183, 3607 }, { 184, 3608 }, { 185, 3609 }, { 186, 3610 }, { 187, 3611 }, { 188, 3612 }, { 189, 3613 }, { 190, 3614 }, { 191, 3615 }, { 192, 3616 }, { 193, 3617 }, { 194, 3618 }, { 195, 3619 }, { 196, 3620 }, { 197, 3621 }, { 198, 3622 }, { 199, 3623 }, { 200, 3624 }, { 201, 3625 }, { 202, 3626 }, { 203, 3627 }, { 204, 3628 }, { 205, 3629 }, { 206, 3630 }, { 207, 3631 }, { 208, 3632 }, { 209, 3633 }, { 210, 3634 }, { 211, 3635 }, { 212, 3636 }, { 213, 3637 }, { 214, 3638 }, { 215, 3639 }, { 216, 3640 }, { 217, 3641 }, { 218, 3642 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 3647 }, { 224, 3648 }, { 225, 3649 }, { 226, 3650 }, { 227, 3651 }, { 228, 3652 }, { 229, 3653 }, { 230, 3654 }, { 231, 3655 }, { 232, 3656 }, { 233, 3657 }, { 234, 3658 }, { 235, 3659 }, { 236, 3660 }, { 237, 3661 }, { 238, 3662 }, { 239, 3663 }, { 240, 3664 }, { 241, 3665 }, { 242, 3666 }, { 243, 3667 }, { 244, 3668 }, { 245, 3669 }, { 246, 3670 }, { 247, 3671 }, { 248, 3672 }, { 249, 3673 }, { 250, 3674 }, { 251, 3675 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_13[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 8221 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 8222 }, { 166, 166 }, { 167, 167 }, { 168, 216 }, { 169, 169 }, { 170, 342 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 198 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 8220 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 248 }, { 185, 185 }, { 186, 343 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 230 }, { 192, 260 }, { 193, 302 }, { 194, 256 }, { 195, 262 }, { 196, 196 }, { 197, 197 }, { 198, 280 }, { 199, 274 }, { 200, 268 }, { 201, 201 }, { 202, 377 }, { 203, 278 }, { 204, 290 }, { 205, 310 }, { 206, 298 }, { 207, 315 }, { 208, 352 }, { 209, 323 }, { 210, 325 }, { 211, 211 }, { 212, 332 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 370 }, { 217, 321 }, { 218, 346 }, { 219, 362 }, { 220, 220 }, { 221, 379 }, { 222, 381 }, { 223, 223 }, { 224, 261 }, { 225, 303 }, { 226, 257 }, { 227, 263 }, { 228, 228 }, { 229, 229 }, { 230, 281 }, { 231, 275 }, { 232, 269 }, { 233, 233 }, { 234, 378 }, { 235, 279 }, { 236, 291 }, { 237, 311 }, { 238, 299 }, { 239, 316 }, { 240, 353 }, { 241, 324 }, { 242, 326 }, { 243, 243 }, { 244, 333 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 371 }, { 249, 322 }, { 250, 347 }, { 251, 363 }, { 252, 252 }, { 253, 380 }, { 254, 382 }, { 255, 8217 }, { 39, 8216 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t iso8859_14[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 7682 }, { 162, 7683 }, { 163, 163 }, { 164, 266 }, { 165, 267 }, { 166, 7690 }, { 167, 167 }, { 168, 7808 }, { 169, 169 }, { 170, 7810 }, { 171, 7691 }, { 172, 7922 }, { 173, 173 }, { 174, 174 }, { 175, 376 }, { 176, 7710 }, { 177, 7711 }, { 178, 288 }, { 179, 289 }, { 180, 7744 }, { 181, 7745 }, { 182, 182 }, { 183, 7766 }, { 184, 7809 }, { 185, 7767 }, { 186, 7811 }, { 187, 7776 }, { 188, 7923 }, { 189, 7812 }, { 190, 7813 }, { 191, 7777 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 372 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 7786 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 374 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 373 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 7787 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 375 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_15[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8364 }, { 165, 165 }, { 166, 352 }, { 167, 167 }, { 168, 353 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 381 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 382 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 338 }, { 189, 339 }, { 190, 376 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_16[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 261 }, { 163, 321 }, { 164, 8364 }, { 165, 8222 }, { 166, 352 }, { 167, 167 }, { 168, 353 }, { 169, 169 }, { 170, 536 }, { 171, 171 }, { 172, 377 }, { 173, 173 }, { 174, 378 }, { 175, 379 }, { 176, 176 }, { 177, 177 }, { 178, 268 }, { 179, 322 }, { 180, 381 }, { 181, 8221 }, { 182, 182 }, { 183, 183 }, { 184, 382 }, { 185, 269 }, { 186, 537 }, { 187, 187 }, { 188, 338 }, { 189, 339 }, { 190, 376 }, { 191, 380 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 262 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 272 }, { 209, 323 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 346 }, { 216, 368 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 280 }, { 222, 538 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 263 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 273 }, { 241, 324 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 347 }, { 248, 369 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 281 }, { 254, 539 }, { 255, 255 }, { 34, 8220 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, }; static convert_t koi8_r[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 9472 }, { 129, 9474 }, { 130, 9484 }, { 131, 9488 }, { 132, 9492 }, { 133, 9496 }, { 134, 9500 }, { 135, 9508 }, { 136, 9516 }, { 137, 9524 }, { 138, 9532 }, { 139, 9600 }, { 140, 9604 }, { 141, 9608 }, { 142, 9612 }, { 143, 9616 }, { 144, 9617 }, { 145, 9618 }, { 146, 9619 }, { 147, 8992 }, { 148, 9632 }, { 149, 8729 }, { 150, 8730 }, { 151, 8776 }, { 152, 8804 }, { 153, 8805 }, { 154, 160 }, { 155, 8993 }, { 156, 176 }, { 157, 178 }, { 158, 183 }, { 159, 247 }, { 160, 9552 }, { 161, 9553 }, { 162, 9554 }, { 163, 1105 }, { 164, 9555 }, { 165, 9556 }, { 166, 9557 }, { 167, 9558 }, { 168, 9559 }, { 169, 9560 }, { 170, 9561 }, { 171, 9562 }, { 172, 9563 }, { 173, 9564 }, { 174, 9565 }, { 175, 9566 }, { 176, 9567 }, { 177, 9568 }, { 178, 9569 }, { 179, 1025 }, { 180, 9570 }, { 181, 9571 }, { 182, 9572 }, { 183, 9573 }, { 184, 9574 }, { 185, 9575 }, { 186, 9576 }, { 187, 9577 }, { 188, 9578 }, { 189, 9579 }, { 190, 9580 }, { 191, 169 }, { 192, 1102 }, { 193, 1072 }, { 194, 1073 }, { 195, 1094 }, { 196, 1076 }, { 197, 1077 }, { 198, 1092 }, { 199, 1075 }, { 200, 1093 }, { 201, 1080 }, { 202, 1081 }, { 203, 1082 }, { 204, 1083 }, { 205, 1084 }, { 206, 1085 }, { 207, 1086 }, { 208, 1087 }, { 209, 1103 }, { 210, 1088 }, { 211, 1089 }, { 212, 1090 }, { 213, 1091 }, { 214, 1078 }, { 215, 1074 }, { 216, 1100 }, { 217, 1099 }, { 218, 1079 }, { 219, 1096 }, { 220, 1101 }, { 221, 1097 }, { 222, 1095 }, { 223, 1098 }, { 224, 1070 }, { 225, 1040 }, { 226, 1041 }, { 227, 1062 }, { 228, 1044 }, { 229, 1045 }, { 230, 1060 }, { 231, 1043 }, { 232, 1061 }, { 233, 1048 }, { 234, 1049 }, { 235, 1050 }, { 236, 1051 }, { 237, 1052 }, { 238, 1053 }, { 239, 1054 }, { 240, 1055 }, { 241, 1071 }, { 242, 1056 }, { 243, 1057 }, { 244, 1058 }, { 245, 1059 }, { 246, 1046 }, { 247, 1042 }, { 248, 1068 }, { 249, 1067 }, { 250, 1047 }, { 251, 1064 }, { 252, 1069 }, { 253, 1065 }, { 254, 1063 }, { 255, 1066 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t koi8_u[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 9472 }, { 129, 9474 }, { 130, 9484 }, { 131, 9488 }, { 132, 9492 }, { 133, 9496 }, { 134, 9500 }, { 135, 9508 }, { 136, 9516 }, { 137, 9524 }, { 138, 9532 }, { 139, 9600 }, { 140, 9604 }, { 141, 9608 }, { 142, 9612 }, { 143, 9616 }, { 144, 9617 }, { 145, 9618 }, { 146, 9619 }, { 147, 8992 }, { 148, 9632 }, { 149, 8729 }, { 150, 8730 }, { 151, 8776 }, { 152, 8804 }, { 153, 8805 }, { 154, 160 }, { 155, 8993 }, { 156, 176 }, { 157, 178 }, { 158, 183 }, { 159, 247 }, { 160, 9552 }, { 161, 9553 }, { 162, 9554 }, { 163, 1105 }, { 164, 1108 }, { 165, 9556 }, { 166, 1110 }, { 167, 1111 }, { 168, 9559 }, { 169, 9560 }, { 170, 9561 }, { 171, 9562 }, { 172, 9563 }, { 173, 1169 }, { 174, 9565 }, { 175, 9566 }, { 176, 9567 }, { 177, 9568 }, { 178, 9569 }, { 179, 1025 }, { 180, 1028 }, { 181, 9571 }, { 182, 1030 }, { 183, 1031 }, { 184, 9574 }, { 185, 9575 }, { 186, 9576 }, { 187, 9577 }, { 188, 9578 }, { 189, 1168 }, { 190, 9580 }, { 191, 169 }, { 192, 1102 }, { 193, 1072 }, { 194, 1073 }, { 195, 1094 }, { 196, 1076 }, { 197, 1077 }, { 198, 1092 }, { 199, 1075 }, { 200, 1093 }, { 201, 1080 }, { 202, 1081 }, { 203, 1082 }, { 204, 1083 }, { 205, 1084 }, { 206, 1085 }, { 207, 1086 }, { 208, 1087 }, { 209, 1103 }, { 210, 1088 }, { 211, 1089 }, { 212, 1090 }, { 213, 1091 }, { 214, 1078 }, { 215, 1074 }, { 216, 1100 }, { 217, 1099 }, { 218, 1079 }, { 219, 1096 }, { 220, 1101 }, { 221, 1097 }, { 222, 1095 }, { 223, 1098 }, { 224, 1070 }, { 225, 1040 }, { 226, 1041 }, { 227, 1062 }, { 228, 1044 }, { 229, 1045 }, { 230, 1060 }, { 231, 1043 }, { 232, 1061 }, { 233, 1048 }, { 234, 1049 }, { 235, 1050 }, { 236, 1051 }, { 237, 1052 }, { 238, 1053 }, { 239, 1054 }, { 240, 1055 }, { 241, 1071 }, { 242, 1056 }, { 243, 1057 }, { 244, 1058 }, { 245, 1059 }, { 246, 1046 }, { 247, 1042 }, { 248, 1068 }, { 249, 1067 }, { 250, 1047 }, { 251, 1064 }, { 252, 1069 }, { 253, 1065 }, { 254, 1063 }, { 255, 1066 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t mslinedr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 9639 }, { 177, 9638 }, { 178, 9640 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t nextstep[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 160 }, { 129, 192 }, { 130, 193 }, { 131, 194 }, { 132, 195 }, { 133, 196 }, { 134, 197 }, { 135, 199 }, { 136, 200 }, { 137, 201 }, { 138, 202 }, { 139, 203 }, { 140, 204 }, { 141, 205 }, { 142, 206 }, { 143, 207 }, { 144, 208 }, { 145, 209 }, { 146, 210 }, { 147, 211 }, { 148, 212 }, { 149, 213 }, { 150, 214 }, { 151, 217 }, { 152, 218 }, { 153, 219 }, { 154, 220 }, { 155, 221 }, { 156, 222 }, { 157, 181 }, { 158, 215 }, { 159, 247 }, { 160, 169 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8260 }, { 165, 165 }, { 166, 402 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 8220 }, { 171, 171 }, { 172, 8249 }, { 173, 8250 }, { 174, 64257 }, { 175, 64258 }, { 176, 174 }, { 177, 8211 }, { 178, 8224 }, { 179, 8225 }, { 180, 183 }, { 181, 166 }, { 182, 182 }, { 183, 8729 }, { 184, 8218 }, { 185, 8222 }, { 186, 8221 }, { 187, 187 }, { 188, 8943 }, { 189, 8240 }, { 190, 172 }, { 191, 191 }, { 192, 185 }, { 193, 768 }, { 194, 180 }, { 195, 770 }, { 196, 771 }, { 197, 175 }, { 198, 728 }, { 199, 729 }, { 200, 168 }, { 201, 178 }, { 202, 176 }, { 203, 184 }, { 204, 179 }, { 205, 733 }, { 206, 731 }, { 207, 711 }, { 208, 8212 }, { 209, 177 }, { 210, 188 }, { 211, 189 }, { 212, 190 }, { 213, 224 }, { 214, 225 }, { 215, 226 }, { 216, 227 }, { 217, 228 }, { 218, 229 }, { 219, 231 }, { 220, 232 }, { 221, 233 }, { 222, 234 }, { 223, 235 }, { 224, 236 }, { 225, 198 }, { 226, 237 }, { 227, 170 }, { 228, 238 }, { 229, 239 }, { 230, 240 }, { 231, 241 }, { 232, 321 }, { 233, 216 }, { 234, 338 }, { 235, 186 }, { 236, 242 }, { 237, 243 }, { 238, 244 }, { 239, 245 }, { 240, 246 }, { 241, 230 }, { 242, 249 }, { 243, 250 }, { 244, 251 }, { 245, 305 }, { 246, 252 }, { 247, 253 }, { 248, 322 }, { 249, 248 }, { 250, 339 }, { 251, 223 }, { 252, 254 }, { 253, 255 }, { 254, 254 }, { 255, 255 }, { 39, 8216 }, { 39, 8217 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t symbol[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 8704 }, { 35, 35 }, { 36, 8707 }, { 37, 37 }, { 38, 38 }, { 39, 8715 }, { 40, 40 }, { 41, 41 }, { 42, 8727 }, { 43, 43 }, { 44, 44 }, { 45, 8722 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 8773 }, { 65, 913 }, { 66, 914 }, { 67, 935 }, { 68, 916 }, { 69, 917 }, { 70, 934 }, { 71, 915 }, { 72, 919 }, { 73, 921 }, { 74, 977 }, { 75, 922 }, { 76, 923 }, { 77, 924 }, { 78, 925 }, { 79, 927 }, { 80, 928 }, { 81, 920 }, { 82, 929 }, { 83, 931 }, { 84, 932 }, { 85, 933 }, { 86, 962 }, { 87, 937 }, { 88, 926 }, { 89, 936 }, { 90, 918 }, { 91, 91 }, { 92, 8756 }, { 93, 93 }, { 94, 8869 }, { 95, 95 }, { 96, 8254 }, { 97, 945 }, { 98, 946 }, { 99, 967 }, { 100, 948 }, { 101, 949 }, { 102, 966 }, { 103, 947 }, { 104, 951 }, { 105, 953 }, { 106, 981 }, { 107, 954 }, { 108, 955 }, { 109, 956 }, { 110, 957 }, { 111, 959 }, { 112, 960 }, { 113, 952 }, { 114, 961 }, { 115, 963 }, { 116, 964 }, { 117, 965 }, { 118, 982 }, { 119, 969 }, { 120, 958 }, { 121, 968 }, { 122, 950 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 8764 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 978 }, { 162, 8242 }, { 163, 8804 }, { 164, 8725 }, { 165, 8734 }, { 166, 402 }, { 167, 9827 }, { 168, 9830 }, { 169, 9829 }, { 170, 9824 }, { 171, 8596 }, { 172, 8592 }, { 173, 8593 }, { 174, 8594 }, { 175, 8595 }, { 176, 176 }, { 177, 177 }, { 178, 8243 }, { 179, 8805 }, { 180, 215 }, { 181, 8733 }, { 182, 8706 }, { 183, 8729 }, { 184, 247 }, { 185, 8800 }, { 186, 8801 }, { 187, 8776 }, { 188, 8943 }, { 189, 189 }, { 190, 190 }, { 191, 8629 }, { 192, 192 }, { 193, 8465 }, { 194, 8476 }, { 195, 8472 }, { 196, 8855 }, { 197, 8853 }, { 198, 8709 }, { 199, 8745 }, { 200, 8746 }, { 201, 8835 }, { 202, 8839 }, { 203, 8836 }, { 204, 8834 }, { 205, 8838 }, { 206, 8712 }, { 207, 8713 }, { 208, 8736 }, { 209, 8711 }, { 210, 174 }, { 211, 169 }, { 212, 8482 }, { 213, 8719 }, { 214, 8730 }, { 215, 8901 }, { 216, 172 }, { 217, 8743 }, { 218, 8744 }, { 219, 8660 }, { 220, 8656 }, { 221, 8657 }, { 222, 8658 }, { 223, 8659 }, { 224, 9674 }, { 225, 9001 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 8721 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 9002 }, { 242, 8747 }, { 243, 8992 }, { 244, 244 }, { 245, 8993 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 192, 65 }, { 192, 193 }, { 192, 194 }, { 192, 195 }, { 192, 196 }, { 192, 197 }, { 192, 256 }, { 192, 258 }, { 192, 260 }, { 192, 461 }, { 226, 97 }, { 226, 224 }, { 226, 225 }, { 226, 229 }, { 226, 257 }, { 226, 259 }, { 226, 261 }, { 226, 462 }, { 231, 99 }, { 231, 263 }, { 231, 265 }, { 231, 267 }, { 231, 269 }, { 232, 101 }, { 232, 275 }, { 232, 277 }, { 232, 279 }, { 232, 281 }, { 232, 283 }, { 236, 105 }, { 236, 297 }, { 236, 299 }, { 236, 301 }, { 236, 303 }, { 236, 305 }, { 236, 464 }, { 244, 110 }, { 244, 242 }, { 244, 243 }, { 244, 245 }, { 244, 333 }, { 244, 335 }, { 244, 337 }, { 244, 466 }, { 244, 491 }, { 249, 117 }, { 249, 361 }, { 249, 363 }, { 249, 365 }, { 249, 367 }, { 249, 369 }, { 249, 371 }, { 249, 468 }, { 253, 121 }, { 253, 375 }, }; static convert_t tex_dcr_in[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 258 }, { 129, 260 }, { 130, 262 }, { 131, 268 }, { 132, 270 }, { 133, 282 }, { 134, 280 }, { 135, 286 }, { 136, 313 }, { 137, 65534 }, { 138, 321 }, { 139, 323 }, { 140, 327 }, { 141, 330 }, { 142, 336 }, { 143, 340 }, { 144, 344 }, { 145, 346 }, { 146, 352 }, { 147, 350 }, { 148, 356 }, { 149, 354 }, { 150, 368 }, { 151, 366 }, { 152, 376 }, { 153, 377 }, { 154, 381 }, { 155, 379 }, { 156, 306 }, { 157, 304 }, { 158, 272 }, { 159, 167 }, { 160, 259 }, { 161, 261 }, { 162, 263 }, { 163, 269 }, { 164, 65534 }, { 165, 283 }, { 166, 281 }, { 167, 287 }, { 168, 314 }, { 169, 65534 }, { 170, 322 }, { 171, 324 }, { 172, 328 }, { 173, 331 }, { 174, 337 }, { 175, 341 }, { 176, 345 }, { 177, 347 }, { 178, 353 }, { 179, 351 }, { 180, 65534 }, { 181, 355 }, { 182, 369 }, { 183, 367 }, { 184, 255 }, { 185, 378 }, { 186, 382 }, { 187, 380 }, { 188, 307 }, { 189, 161 }, { 190, 191 }, { 191, 163 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 65534 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 223 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 461 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 325 }, { 109, 326 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, }; static convert_t tex_dcr_out[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 258 }, { 129, 260 }, { 130, 262 }, { 131, 268 }, { 132, 270 }, { 133, 282 }, { 134, 280 }, { 135, 286 }, { 136, 313 }, { 137, 65534 }, { 138, 321 }, { 139, 323 }, { 140, 327 }, { 141, 330 }, { 142, 336 }, { 143, 340 }, { 144, 344 }, { 145, 346 }, { 146, 352 }, { 147, 350 }, { 148, 356 }, { 149, 354 }, { 150, 368 }, { 151, 366 }, { 152, 376 }, { 153, 377 }, { 154, 381 }, { 155, 379 }, { 156, 306 }, { 157, 304 }, { 158, 272 }, { 159, 167 }, { 160, 259 }, { 161, 261 }, { 162, 263 }, { 163, 269 }, { 164, 65534 }, { 165, 283 }, { 166, 281 }, { 167, 287 }, { 168, 314 }, { 169, 65534 }, { 170, 322 }, { 171, 324 }, { 172, 328 }, { 173, 331 }, { 174, 337 }, { 175, 341 }, { 176, 345 }, { 177, 347 }, { 178, 353 }, { 179, 351 }, { 180, 65534 }, { 181, 355 }, { 182, 369 }, { 183, 367 }, { 184, 255 }, { 185, 378 }, { 186, 382 }, { 187, 380 }, { 188, 307 }, { 189, 161 }, { 190, 191 }, { 191, 163 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 65534 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 223 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 461 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 325 }, { 109, 326 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, }; allcharconvert_t allcharconvert[] = { { "adobeiso", "Adobe ISO", { "ADOBEISO", "", "", "", "", "", "", }, CHARSETARRAY( adobeiso ) }, { "adobestd", "Adobe Standard", { "ADOBESTD", "", "", "", "", "", "", }, CHARSETARRAY( adobestd ) }, { "adobesym", "Adobe Symbol", { "ADOBESYM", "", "", "", "", "", "", }, CHARSETARRAY( adobesym ) }, { "applecro", "Apple Croatian", { "APPLECRO", "MACCRO", "", "", "", "", "", }, CHARSETARRAY( applecro ) }, { "applecyr", "Apple Cyrillic", { "MACCYRILLIC", "X-MAC-CYRILLIC", "", "", "", "", "", }, CHARSETARRAY( applecyr ) }, { "applegk2", "Apple Greek 2", { "APPLEGK2", "", "", "", "", "", "", }, CHARSETARRAY( applegk2 ) }, { "applegrk", "Apple Greek", { "MACGRK", "APPLEGRK", "", "", "", "", "", }, CHARSETARRAY( applegrk ) }, { "macice", "Macintosh Iceland(?)", { "MACICE", "APPLEICE", "", "", "", "", "", }, CHARSETARRAY( macice ) }, { "macroman", "Macintosh Roman", { "MACROMAN", "APPLEROM", "CSMACINTOSH", "MACINTOSH", "MAC", "", "", }, CHARSETARRAY( macroman ) }, { "macromanian", "Macintosh Romanian", { "MACROMANIAN", "APPLERUM", "", "", "", "", "", }, CHARSETARRAY( macromanian ) }, { "macturkish", "Macintosh Turkish", { "MACTURKISH", "APPLETURK", "", "", "", "", "", }, CHARSETARRAY( macturkish ) }, { "atarist", "Atari ST", { "ATARIST", "", "", "", "", "", "", }, CHARSETARRAY( atarist ) }, { "cp437", "MS-DOS Code Page 437 from original IBM PC", { "CP437", "IBM437", "437", "", "", "", "", }, CHARSETARRAY( cp437 ) }, { "cp737", "MS-DOS Code Page 737 Greek", { "CP737", "IBM737", "737", "", "", "", "", }, CHARSETARRAY( cp737 ) }, { "cp775", "MS-DOS Code Page 775 Baltic languages", { "CP775", "IBM775", "775", "", "", "", "", }, CHARSETARRAY( cp775 ) }, { "cp850", "MS-DOS Code Page 850 Western Europe", { "CP850", "IBM850", "CSPC850MULTILINGUAL", "850", "", "", "", }, CHARSETARRAY( cp850 ) }, { "cp851", "MS-DOS Code Page 851 Greek 1", { "CP851", "IBM851", "851", "", "", "", "", }, CHARSETARRAY( cp851 ) }, { "cp852", "MS-DOS Code Page 852 Central European languages", { "CP852", "IBM852", "852", "", "", "", "", }, CHARSETARRAY( cp852 ) }, { "cp853", "MS-DOS Code Page 853 Multilingual Latin 3", { "CP853", "IBM853", "853", "", "", "", "", }, CHARSETARRAY( cp853 ) }, { "cp855", "MS-DOS Code Page 855 Cyrillic", { "CP855", "IBM855", "855", "", "", "", "", }, CHARSETARRAY( cp855 ) }, { "cp857", "MS-DOS Code Page 857 Turkish", { "CP857", "IBM857", "857", "", "", "", "", }, CHARSETARRAY( cp857 ) }, { "cp860", "MS-DOS Code Page 860 Portugese", { "CP860", "IBM860", "860", "", "", "", "", }, CHARSETARRAY( cp860 ) }, { "cp861", "MS-DOS Code Page 861 Icelandic languages", { "CP861", "IBM861", "861", "", "", "", "", }, CHARSETARRAY( cp861 ) }, { "cp862", "MS-DOS Code Page 862 Hebrew", { "CP862", "IBM862", "862", "", "", "", "", }, CHARSETARRAY( cp862 ) }, { "cp863", "MS-DOS Code Page 863 French", { "CP863", "IBM863", "863", "", "", "", "", }, CHARSETARRAY( cp863 ) }, { "cp864", "MS-DOS Code Page 864 Arabic", { "CP864", "IBM864", "864", "", "", "", "", }, CHARSETARRAY( cp864 ) }, { "cp865", "MS-DOS Code Page 865 Nordic languages", { "CP865", "IBM865", "865", "", "", "", "", }, CHARSETARRAY( cp865 ) }, { "cp866", "MS-DOS Code Page 866 Cyrillic", { "CP866", "IBM866", "866", "CSIBM866", "", "", "", }, CHARSETARRAY( cp866 ) }, { "cp869", "MS-DOS Code Page 869 Greek", { "CP869", "IBM869", "869", "", "", "", "", }, CHARSETARRAY( cp869 ) }, { "cp874", "Windows-874 Thai", { "CP874", "WINDOWS-874", "MS874", "X-WINDOWS-874", "X-IBM874", "874", "", }, CHARSETARRAY( cp874 ) }, { "cp895", "MS-DOS Code Page 895 Kamenicky encoding", { "CP895", "895", "", "", "", "", "", }, CHARSETARRAY( cp895 ) }, { "cp1250", "Windows-1250 Central and Eastern European", { "CP1250", "WINDOWS-1250", "MS-EE", "", "", "", "", }, CHARSETARRAY( cp1250 ) }, { "cp1251", "Windows-1251 Cyrillic", { "CP1251", "WINDOWS-1251", "MS-CYRL", "", "", "", "", }, CHARSETARRAY( cp1251 ) }, { "cp1252", "Windows-1252 ISO 8859-1 superset", { "CP1252", "WINDOWS-1252", "MS-ANSI", "", "", "", "", }, CHARSETARRAY( cp1252 ) }, { "cp1253", "Windows-1253 Greek", { "CP1253", "WINDOWS-1253", "MS-GREEK", "", "", "", "", }, CHARSETARRAY( cp1253 ) }, { "cp1254", "Windows-1254 Turkish", { "CP1254", "WINDOWS-1254", "MS-TURK", "", "", "", "", }, CHARSETARRAY( cp1254 ) }, { "cp1255", "Windows-1255 ISO 8859-8 Hebrew", { "CP1255", "WINDOWS-1255", "MS-HEBR", "", "", "", "", }, CHARSETARRAY( cp1255 ) }, { "cp1256", "Windows-1256 Arabic", { "CP1256", "WINDOWS-1256", "MS-ARAB", "", "", "", "", }, CHARSETARRAY( cp1256 ) }, { "cp1257", "Windows-1257 Baltic languages", { "CP1257", "WINDOWS-1257", "WINBALTRIM", "", "", "", "", }, CHARSETARRAY( cp1257 ) }, { "cp1258", "Windows-1258 Vietnamese", { "CP1258", "WINDOWS-1258", "", "", "", "", "", }, CHARSETARRAY( cp1258 ) }, { "decmcs", "DEC Multinational Character Set", { "DECMCS", "", "", "", "", "", "", }, CHARSETARRAY( decmcs ) }, { "ebc037", "EBCDIC Codepage 037 Latin-1", { "EBC037", "", "", "", "", "", "", }, CHARSETARRAY( ebc037 ) }, { "ebc1026", "EBCDIC 1026 Turkish", { "EBC1026", "", "", "", "", "", "", }, CHARSETARRAY( ebc1026 ) }, { "ebc1047", "EBCDIC 1047 Latin 1", { "EBC1047", "", "", "", "", "", "", }, CHARSETARRAY( ebc1047 ) }, { "ebc500", "EBCDIC 500 Latin 1", { "EBC500", "", "", "", "", "", "", }, CHARSETARRAY( ebc500 ) }, { "ebc875", "EBCDIC 875 Greek", { "EBC875", "", "", "", "", "", "", }, CHARSETARRAY( ebc875 ) }, { "hp48", "HP48", { "HP48", "", "", "", "", "", "", }, CHARSETARRAY( hp48 ) }, { "hproman8", "HP Roman8", { "HPROMAN8", "", "", "", "", "", "", }, CHARSETARRAY( hproman8 ) }, { "iso646", "ISO/IEC 646", { "ISO646", "", "", "", "", "", "", }, CHARSETARRAY( iso646 ) }, { "iso646_irv", "ISO/IEC 646-IRV International Reference Variant", { "ISO646-IRV", "", "", "", "", "", "", }, CHARSETARRAY( iso646_irv ) }, { "iso646_ca", "ISO/IEC 646-CA Canada", { "ISO646-CA", "", "", "", "", "", "", }, CHARSETARRAY( iso646_ca ) }, { "iso646_ch", "ISO/IEC 646-CH", { "ISO646-CH", "", "", "", "", "", "", }, CHARSETARRAY( iso646_ch ) }, { "iso646_de", "ISO/IEC 646-DE Germany", { "ISO646-DE", "", "", "", "", "", "", }, CHARSETARRAY( iso646_de ) }, { "iso646_es", "ISO/IEC 646-ES Spain", { "ISO646-ES", "", "", "", "", "", "", }, CHARSETARRAY( iso646_es ) }, { "iso646_fi", "ISO/IEC 646-FI Finland", { "ISO646-FI", "", "", "", "", "", "", }, CHARSETARRAY( iso646_fi ) }, { "iso646_fr", "ISO/IEC 646-FR France", { "ISO646-FR", "", "", "", "", "", "", }, CHARSETARRAY( iso646_fr ) }, { "iso646_gb", "ISO/IEC 646-GB United Kingdom", { "ISO646-GB", "", "", "", "", "", "", }, CHARSETARRAY( iso646_gb ) }, { "iso646_it", "ISO/IEC 646-IT", { "ISO646-IT", "", "", "", "", "", "", }, CHARSETARRAY( iso646_it ) }, { "iso646_nl", "ISO/IEC 646-NL", { "ISO646-NL", "", "", "", "", "", "", }, CHARSETARRAY( iso646_nl ) }, { "iso646_no", "ISO/IEC 646-NO Norway", { "ISO646-NO", "", "", "", "", "", "", }, CHARSETARRAY( iso646_no ) }, { "iso646_pt", "ISO/IEC 646-PT Portugal", { "ISO646-PT", "", "", "", "", "", "", }, CHARSETARRAY( iso646_pt ) }, { "iso646_se", "ISO/IEC 646-SE Sweden", { "ISO646-SE", "", "", "", "", "", "", }, CHARSETARRAY( iso646_se ) }, { "iso8859_1", "ISO/IEC 8859-1:1998 Latin-1", { "ISO-8859-1", "CSISOLATIN", "LATIN1", "ISO-IR-100", "CP819", "IBM819", "ISO_8859-1", }, CHARSETARRAY( iso8859_1 ) }, { "iso8859_2", "ISO/IEC 8859-2:1999 Latin-2 Eastern European", { "ISO-8859-2", "CSISOLATIN2", "LATIN2", "ISO-IR-101", "ISO_8859-2", "ISO_8859-2:1987", "L2", }, CHARSETARRAY( iso8859_2 ) }, { "iso8859_3", "ISO/IEC 8859-3:1999 Latin-3 South European", { "ISO-8859-3", "CSISOLATIN3", "LATIN3", "ISO-IR-109", "ISO_8859-3", "ISO_8859-3:1988", "L3", }, CHARSETARRAY( iso8859_3 ) }, { "iso8859_4", "ISO/IEC 8859-4:1998 Latin-4 North European", { "ISO-8859-4", "CSISOLATIN4", "LATIN4", "ISO-IR-110", "ISO_8859-4", "ISO_8859-4:1988", "L4", }, CHARSETARRAY( iso8859_4 ) }, { "iso8859_5", "ISO/IEC 8859-5:1999 Latin/Cyrillic", { "ISO-8859-5", "CSISOLATINCYRILLIC", "CYRILLIC", "ISO-IR-144", "ISO_8859-5", "ISO_8859-5:1988", "", }, CHARSETARRAY( iso8859_5 ) }, { "iso8859_6", "ISO/IEC 8859-6:1999 Latin/Arabic", { "ISO-8859-6", "ARABIC", "ASMO-708", "CSISOLATINARABIC", "ECMA-114", "ISO-IR-127", "ISO_8859-6", }, CHARSETARRAY( iso8859_6 ) }, { "iso8859_7", "ISO/IEC 8859-7:2003 Latin/Greek", { "ISO-8859-7", "CSISOLATINGREEK", "GREEK", "ECMA-118", "ELOT_928", "GREEK8", "ISO-IR-126", }, CHARSETARRAY( iso8859_7 ) }, { "iso8859_8", "ISO/IEC 8859-8:1999 Latin/Hebrew", { "ISO-8859-8", "CSISOLATINHEBREW", "HEBREW", "ISO-IR-138", "ISO_8859-8", "ISO_8859-8:1988", "", }, CHARSETARRAY( iso8859_8 ) }, { "iso8859_9", "ISO/IEC 8859-9:1999 Latin-5 Turkish", { "ISO-8859-9", "CSISOLATIN5", "LATIN5", "ISO-IR-148", "ISO_8859-9", "ISO_8859-9:1989", "L5", }, CHARSETARRAY( iso8859_9 ) }, { "iso8859_10", "ISO/IEC 8859-10:1998 Latin-6 Nordic languages", { "ISO-8859-10", "CSISOLATIN6", "LATIN6", "ISO-IR-157", "ISO_8859-10", "ISO_8859-10:1992", "L6", }, CHARSETARRAY( iso8859_10 ) }, { "iso8859_11", "ISO/IEC 8859-11:2001 Latin/Thai", { "ISO-8859-11,", "TIS-620,", "TIS620,", "TACTIS", "", "", "", }, CHARSETARRAY( iso8859_11 ) }, { "iso8859_13", "ISO/IEC 8859-13:1998 Latin-7 Baltic Rim", { "ISO-8859-13", "CSISOLATIN7", "LATIN7", "ISO-IR-179", "ISO_8859-13", "L7", "", }, CHARSETARRAY( iso8859_13 ) }, { "iso8859_14", "ISO/IEC 8859-14:1998 Latin-8 Celtic", { "ISO-8859-14", "CSISOLATIN8", "LATIN8", "ISO-IR-199", "ISO_8859-14", "ISO_8859-14:1998", "L8", }, CHARSETARRAY( iso8859_14 ) }, { "iso8859_15", "ISO/IEC 8859-15:1999 Latin-9 Western European", { "ISO-8859-15", "ISO-IR-203", "ISO_8859-15", "ISO_8859-15:1998", "", "", "", }, CHARSETARRAY( iso8859_15 ) }, { "iso8859_16", "ISO/IEC 8859-16:2001 Latin-10 South-Eastern European", { "ISO-8859-16", "CSISOLATIN10", "LATIN10", "ISO-IR-226", "ISO_8859-16", "ISO_8859-16:2000", "", }, CHARSETARRAY( iso8859_16 ) }, { "koi8_r", "KOI8-R Kod Obmena Informatsiey, 8 bit Russian", { "KOI8-R", "KOI8R", "CSKOI8R", "", "", "", "", }, CHARSETARRAY( koi8_r ) }, { "koi8_u", "KOI8-U Kod Obmena Informatsiey, 8 bit Ukranian", { "KOI8-U", "KOI8U", "CSKOI8U", "", "", "", "", }, CHARSETARRAY( koi8_u ) }, { "mslinedr", "MS LineDraw", { "MSLINEDR", "", "", "", "", "", "", }, CHARSETARRAY( mslinedr ) }, { "nextstep", "NextStep", { "NEXTSTEP", "", "", "", "", "", "", }, CHARSETARRAY( nextstep ) }, { "symbol", "MS Windows Symbol Font", { "SYMBOL", "", "", "", "", "", "", }, CHARSETARRAY( symbol ) }, { "tex_dcr_in", "TeX dcr input for European Computer Roman Font", { "TEX_DCR_IN", "", "", "", "", "", "", }, CHARSETARRAY( tex_dcr_in ) }, { "tex_dcr_out", "TeX dcr output for European Computer Roman Font", { "TEX_DCR_OUT", "", "", "", "", "", "", }, CHARSETARRAY( tex_dcr_out ) }, }; int nallcharconvert = ARRAYSIZE( allcharconvert ); char * charset_get_xmlname( int n ) { static char unknown[] = "???"; static char utf8[] = "UTF-8"; static char gb18030[] = "GB18030"; char *ret = unknown; if ( n>=0 && n < nallcharconvert ) { ret = allcharconvert[n].aliases[0]; } else if ( n==CHARSET_UNICODE ) { ret = utf8; } else if ( n==CHARSET_GB18030 ) { ret = gb18030; } return ret; } int charset_find( char *name ) { int i, j, ret = CHARSET_UNKNOWN; if ( name==NULL ) return ret; for ( i=0; i #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "slist.h" #include "name.h" #include "fields.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants copac_all[]; extern int copac_nall; /***************************************************** PUBLIC: void copacin_initparams() *****************************************************/ static int copacin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int copacin_processf( fields *bibin, const char *p, const char *filename, long nref, param *pm ); static int copacin_convertf( fields *bibin, fields *info, int reftype, param *pm ); int copacin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_COPACIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = copacin_readf; pm->processf = copacin_processf; pm->cleanf = NULL; pm->typef = NULL; pm->convertf = copacin_convertf; pm->all = copac_all; pm->nall = copac_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int copacin_readf() *****************************************************/ /* Endnote-Refer/Copac tag definition: character 1 = alphabetic character character 2 = alphabetic character character 3 = dash character 4 = space */ static int copacin_istag( const char *buf ) { if (! ((buf[0]>='A' && buf[0]<='Z')) || (buf[0]>='a' && buf[0]<='z') ) return 0; if (! ((buf[1]>='A' && buf[1]<='Z')) || (buf[1]>='a' && buf[1]<='z') ) return 0; if (buf[2]!='-' ) return 0; if (buf[3]!=' ' ) return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int copacin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref=0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { /* blank line separates */ if ( line->data==NULL ) continue; if ( inref && line->len==0 ) haveref=1; p = &(line->data[0]); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } if ( copacin_istag( p ) ) { if ( inref ) str_addchar( reference, '\n' ); str_strcatc( reference, p ); inref = 1; } else if ( inref ) { /* copac puts tag only on 1st line */ if ( *p ) p++; if ( *p ) p++; if ( *p ) p++; if ( *p ) { str_addchar( reference, ' ' ); str_strcatc( reference, p ); } } str_empty( line ); } return haveref; } /***************************************************** PUBLIC: int copacin_processf() *****************************************************/ static const char* copacin_addfield( const char *p, str *tag, str *value ) { int i; str_empty( tag ); str_empty( value ); i = 0; while ( i<3 && *p ) { str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) { str_addchar( value, *p ); p++; } str_trimendingws( value ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static const char * copacin_nextline( const char *p ) { while ( *p && *p!='\n' && *p!='\r') p++; while ( *p=='\n' || *p=='\r' ) p++; return p; } static int copacin_processf( fields *copacin, const char *p, const char *filename, long nref, param *pm ) { int status, ret = 1; str tag, value; str_init( &tag ); str_init( &value ); while ( *p ) { p = skip_ws( p ); if ( copacin_istag( p ) ) { p = copacin_addfield( p, &tag, &value ); /* don't add empty strings */ if ( str_has_value( &tag ) && str_has_value( &value ) ) { status = fields_add( copacin, str_cstr( &tag ), str_cstr( &value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) { ret = 0; goto out; } } } else { p = copacin_nextline( p ); } } out: str_free( &tag ); str_free( &value ); return ret; } /***************************************************** PUBLIC: int copacin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* copac names appear to always start with last name first, but don't * always seem to have a comma after the name * * editors seem to be stuck in as authors with the tag "[Editor]" in it */ static int copacin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *usetag = outtag, editor[]="EDITOR"; int comma = 0, i, ok, status; str usename, *s; slist tokens; if ( slist_find( &(pm->asis), invalue ) !=-1 || slist_find( &(pm->corps), invalue ) !=-1 ) { ok = name_add( bibout, outtag, str_cstr( invalue ), level, &(pm->asis), &(pm->corps) ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } slist_init( &tokens ); str_init( &usename ); status = slist_tokenize( &tokens, invalue, " ", 1 ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; for ( i=0; ilen && s->data[s->len-1]==',' ) { comma++; } } if ( comma==0 && tokens.n ) { s = slist_str( &tokens, 0 ); str_addchar( s, ',' ); } for ( i=0; iasis), &(pm->corps) ); str_free( &usename ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static void copacin_report_notag( param *p, char *tag ) { if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'\n", tag ); } } static int copacin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ NOTES ] = generic_notes, [ SERIALNO ] = generic_serialno, [ PERSON ] = copacin_person }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { copacin_report_notag( p, str_cstr( intag ) ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } return status; } hs-bibutils-6.10.0.0/bibutils/copacin.c0000755000000000000000000001675007346545000015763 0ustar0000000000000000/* * copacin.c * * Copyright (c) Chris Putnam 2004-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "slist.h" #include "name.h" #include "fields.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants copac_all[]; extern int copac_nall; /***************************************************** PUBLIC: void copacin_initparams() *****************************************************/ static int copacin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int copacin_processf( fields *bibin, const char *p, const char *filename, long nref, param *pm ); static int copacin_convertf( fields *bibin, fields *info, int reftype, param *pm ); int copacin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_COPACIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = copacin_readf; pm->processf = copacin_processf; pm->cleanf = NULL; pm->typef = NULL; pm->convertf = copacin_convertf; pm->all = copac_all; pm->nall = copac_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int copacin_readf() *****************************************************/ /* Endnote-Refer/Copac tag definition: character 1 = alphabetic character character 2 = alphabetic character character 3 = dash character 4 = space */ static int copacin_istag( const char *buf ) { if (! ((buf[0]>='A' && buf[0]<='Z')) || (buf[0]>='a' && buf[0]<='z') ) return 0; if (! ((buf[1]>='A' && buf[1]<='Z')) || (buf[1]>='a' && buf[1]<='z') ) return 0; if (buf[2]!='-' ) return 0; if (buf[3]!=' ' ) return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int copacin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref=0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { /* blank line separates */ if ( line->data==NULL ) continue; if ( inref && line->len==0 ) haveref=1; p = &(line->data[0]); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } if ( copacin_istag( p ) ) { if ( inref ) str_addchar( reference, '\n' ); str_strcatc( reference, p ); inref = 1; } else if ( inref ) { /* copac puts tag only on 1st line */ if ( *p ) p++; if ( *p ) p++; if ( *p ) p++; if ( *p ) { str_addchar( reference, ' ' ); str_strcatc( reference, p ); } } str_empty( line ); } return haveref; } /***************************************************** PUBLIC: int copacin_processf() *****************************************************/ static const char* copacin_addfield( const char *p, str *tag, str *value ) { int i; str_empty( tag ); str_empty( value ); i = 0; while ( i<3 && *p ) { str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) { str_addchar( value, *p ); p++; } str_trimendingws( value ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static const char * copacin_nextline( const char *p ) { while ( *p && *p!='\n' && *p!='\r') p++; while ( *p=='\n' || *p=='\r' ) p++; return p; } static int copacin_processf( fields *copacin, const char *p, const char *filename, long nref, param *pm ) { int status, ret = 1; str tag, value; str_init( &tag ); str_init( &value ); while ( *p ) { p = skip_ws( p ); if ( copacin_istag( p ) ) { p = copacin_addfield( p, &tag, &value ); /* don't add empty strings */ if ( str_has_value( &tag ) && str_has_value( &value ) ) { status = fields_add( copacin, str_cstr( &tag ), str_cstr( &value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) { ret = 0; goto out; } } } else { p = copacin_nextline( p ); } } out: str_free( &tag ); str_free( &value ); return ret; } /***************************************************** PUBLIC: int copacin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* copac names appear to always start with last name first, but don't * always seem to have a comma after the name * * editors seem to be stuck in as authors with the tag "[Editor]" in it */ static int copacin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *usetag = outtag, editor[]="EDITOR"; int comma = 0, i, ok, status; str usename, *s; slist tokens; if ( slist_find( &(pm->asis), invalue ) !=-1 || slist_find( &(pm->corps), invalue ) !=-1 ) { ok = name_add( bibout, outtag, str_cstr( invalue ), level, &(pm->asis), &(pm->corps) ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } slist_init( &tokens ); str_init( &usename ); status = slist_tokenize( &tokens, invalue, " ", 1 ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; for ( i=0; ilen && s->data[s->len-1]==',' ) { comma++; } } if ( comma==0 && tokens.n ) { s = slist_str( &tokens, 0 ); str_addchar( s, ',' ); } for ( i=0; iasis), &(pm->corps) ); str_free( &usename ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static void copacin_report_notag( param *p, char *tag ) { if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'\n", tag ); } } static int copacin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ NOTES ] = generic_notes, [ SERIALNO ] = generic_serialno, [ PERSON ] = copacin_person }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { copacin_report_notag( p, str_cstr( intag ) ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } return status; } hs-bibutils-6.10.0.0/bibutils/copactypes.c0000644000000000000000000000271107346545000016506 0ustar0000000000000000/* * copactypes.c * * Copyright (c) Chris Putnam 2004-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" /* if no specific type can be identified */ static lookups generic[] = { { "TI-", "TITLE" , TITLE, LEVEL_MAIN }, { "AU-", "AUTHOR", PERSON, LEVEL_MAIN }, { "MV-", "VOLUME", SIMPLE, LEVEL_MAIN }, { "SE-", "TITLE", TITLE, LEVEL_HOST }, { "ED-", "EDITION", SIMPLE, LEVEL_MAIN }, { "SC-", "SCALE", SIMPLE, LEVEL_MAIN }, /* for maps */ { "PU-", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "PY-", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD-", "DESCRIPTION", SIMPLE, LEVEL_MAIN }, /* physical description */ { "DT-", "TYPE", SIMPLE, LEVEL_MAIN }, { "LA-", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "IS-", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "NT-", "NOTES", NOTES, LEVEL_MAIN }, { "KW-", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "UL-", "URL", SIMPLE, LEVEL_MAIN }, { "HL-", "LOCATION", SIMPLE, LEVEL_MAIN } }; /* order is important....."Book" matches "Book" and "Book Section", hence * "Book Section must come first */ #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants copac_all[] = { REFTYPE( "Generic", generic ), }; int copac_nall = sizeof( copac_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/copactypes.c0000755000000000000000000000271107346545000016511 0ustar0000000000000000/* * copactypes.c * * Copyright (c) Chris Putnam 2004-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" /* if no specific type can be identified */ static lookups generic[] = { { "TI-", "TITLE" , TITLE, LEVEL_MAIN }, { "AU-", "AUTHOR", PERSON, LEVEL_MAIN }, { "MV-", "VOLUME", SIMPLE, LEVEL_MAIN }, { "SE-", "TITLE", TITLE, LEVEL_HOST }, { "ED-", "EDITION", SIMPLE, LEVEL_MAIN }, { "SC-", "SCALE", SIMPLE, LEVEL_MAIN }, /* for maps */ { "PU-", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "PY-", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD-", "DESCRIPTION", SIMPLE, LEVEL_MAIN }, /* physical description */ { "DT-", "TYPE", SIMPLE, LEVEL_MAIN }, { "LA-", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "IS-", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "NT-", "NOTES", NOTES, LEVEL_MAIN }, { "KW-", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "UL-", "URL", SIMPLE, LEVEL_MAIN }, { "HL-", "LOCATION", SIMPLE, LEVEL_MAIN } }; /* order is important....."Book" matches "Book" and "Book Section", hence * "Book Section must come first */ #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants copac_all[] = { REFTYPE( "Generic", generic ), }; int copac_nall = sizeof( copac_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/ebiin.c0000644000000000000000000005075007346545000015430 0ustar0000000000000000/* * ebiin.c * * Copyright (c) Chris Putnam 2004-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "bu_auth.h" #include "marc_auth.h" #include "xml.h" #include "xml_encoding.h" #include "bibformats.h" static int ebiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int ebiin_processf( fields *ebiin, const char *data, const char *filename, long nref, param *p ); /***************************************************** PUBLIC: void ebiin_initparams() *****************************************************/ int ebiin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_EBIIN; pm->charsetin = BIBL_CHARSET_UNICODE; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 1; pm->utf8in = 1; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; pm->readf = ebiin_readf; pm->processf = ebiin_processf; pm->cleanf = NULL; pm->typef = NULL; pm->convertf = NULL; pm->all = NULL; pm->nall = 0; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int ebiin_readf() *****************************************************/ static int ebiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0, file_charset = CHARSET_UNKNOWN, m; char *startptr = NULL, *endptr; str tmp; str_init( &tmp ); while ( !haveref && str_fget( fp, buf, bufsize, bufpos, line ) ) { if ( line->data ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( str_has_value( line ) ) startptr = xml_find_start( str_cstr( line ), "Publication" ); if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = xml_find_end( str_cstr( &tmp ), "Publication" ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int ebiin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; static int ebiin_doconvert( xml *node, fields *info, xml_convert *c, int nc, int *found ) { int i, status; char *d; if ( !xml_has_value( node ) ) goto out; d = xml_value_cstr( node ); for ( i=0; iMechanism and..... * and * Mechanism and.... */ static int ebiin_title( xml *node, fields *info, int title_level ) { int status; if ( xml_has_value( node ) ) { status = fields_add( info, "TITLE", xml_value_cstr( node ), title_level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* ebiin_medlinedate() * * - extract medline information from entries like: * 2003 Jan-Feb */ static int ebiin_medlinedate_year( fields *info, const char *p, int level, const char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:YEAR", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate_month( fields *info, const char *p, int level, const char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); str_findreplace( &s, "-", "/" ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:MONTH", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate_day( fields *info, const char *p, int level, const char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:DAY", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate( fields *info, xml *node, int level ) { int status = BIBL_OK; const char *p; if ( !xml_has_value( node ) ) return status; p = xml_value_cstr( node ); if ( *p ) status = ebiin_medlinedate_year( info, skip_ws( p ), level, &p ); if ( *p && status==BIBL_OK ) status = ebiin_medlinedate_month( info, skip_ws( p ), level, &p ); if ( *p && status==BIBL_OK ) status = ebiin_medlinedate_day( info, skip_ws( p ), level, &p ); return status; } /* * 0027-8424 * * 100 * 21 * * 2003 * Oct * 14 * * * * * or.... * * * 0735-0414 * * 38 * 1 * * 2003 Jan-Feb * * * Alcohol and alcoholism (Oxford, Oxfordshire) * Alcohol Alcohol. * */ static int ebiin_journal1( xml *node, fields *info ) { xml_convert c[] = { { "ISSN", NULL, NULL, "ISSN", 1 }, { "Volume", NULL, NULL, "VOLUME", 1 }, { "Issue", NULL, NULL, "ISSUE", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, { "Language", NULL, NULL, "LANGUAGE", 1 }, }; int nc = sizeof( c ) / sizeof( c[0] ), status, found; if ( xml_has_value( node ) ) { status = ebiin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { if ( xml_tag_matches( node, "MedlineDate" ) ) { status = ebiin_medlinedate( info, node, LEVEL_HOST ); if ( status!=BIBL_OK ) return status; } } } if ( node->down ) { status = ebiin_journal1( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_journal1( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 12111-6 * */ static int ebiin_pages( fields *info, const char *p ) { int i, status, ret = BIBL_OK; const int level = 1; str sp, ep, *up; strs_init( &sp, &ep, NULL ); /* ...start page */ p = str_cpytodelim( &sp, skip_ws( p ), "-", 1 ); if ( str_memerr( &sp ) ) { ret = BIBL_ERR_MEMERR; goto out; } /* ...end page */ (void) str_cpytodelim( &ep, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &ep ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( sp.len ) { status = fields_add( info, "PAGES:START", str_cstr( &sp ), level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } if ( ep.len ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idown ) { status = ebiin_pagination( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_pagination( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * ljwejrelr * */ static int ebiin_abstract( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "AbstractText" ) ) { status = fields_add( info, "ABSTRACT", xml_value_cstr( node ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( node->next ) { status = ebiin_abstract( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * * Barondeau * David P * ( or David P ) * DP * * */ static int ebiin_author( xml *node, str *name ) { int status; char *p; if ( xml_tag_matches( node, "LastName" ) ) { if ( name->len ) { str_prepend( name, "|" ); str_prepend( name, xml_value_cstr( node ) ); } else str_strcat( name, xml_value( node ) ); } else if ( xml_tag_matches( node, "ForeName" ) || xml_tag_matches( node, "FirstName" ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( name->len ) str_addchar( name, '|' ); while ( *p==' ' ) p++; while ( *p && *p!=' ' ) str_addchar( name, *p++ ); } } else if ( xml_tag_matches( node, "Initials" ) && !strchr( name->data, '|' ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( name->len ) str_addchar( name, '|' ); if ( !is_ws(*p ) ) str_addchar( name, *p++ ); } } if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; if ( node->down ) { status = ebiin_author( node->down, name ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_author( node->next, name ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_authorlist( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str name; str_init( &name ); node = node->down; while ( node ) { if ( xml_tag_matches( node, "Author" ) && node->down ) { status = ebiin_author( node->down, &name ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &name ) ) { fstatus = fields_add( info, "AUTHOR", str_cstr( &name ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } str_empty( &name ); } } node = node->next; } out: str_free( &name ); return status; } /* * Journal Article * */ /* * United States * Proc Natl Acad Sci U S A * 7507876 * */ static int ebiin_journal2( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "TitleAbbreviation" ) ) { status = fields_add( info, "TITLE", xml_value_cstr( node ), LEVEL_HOST ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = ebiin_journal2( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_journal2( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * * * Biophysics * * * Crystallography, X-Ray * * */ static int ebiin_meshheading( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "DescriptorName" ) ) { status = fields_add( info, "KEYWORD", xml_value_cstr( node ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->next ) { status = ebiin_meshheading( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_meshheadinglist( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "MeshHeading" ) && node->down ) { status = ebiin_meshheading( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_meshheadinglist( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_book( xml *node, fields *info, int book_level ) { xml_convert book[] = { { "Publisher", NULL, NULL, "PUBLISHER", 0 }, { "Language", NULL, NULL, "LANGUAGE", 0 }, { "ISBN10", NULL, NULL, "ISBN", 0 }, { "ISBN13", NULL, NULL, "ISBN13", 0 }, { "Year", NULL, NULL, "DATE:YEAR", 0 }, { "Month", NULL, NULL, "DATE:MONTH", 0 }, { "Day", NULL, NULL, "DATE:DAY", 0 }, { "PageTotal", NULL, NULL, "PAGES:TOTAL", 0 }, { "SeriesName", NULL, NULL, "TITLE", 1 }, { "SeriesISSN", NULL, NULL, "ISSN", 0 }, { "OtherReportInformation", NULL, NULL, "NOTES", 0 }, { "Edition", NULL, NULL, "EDITION", 0 }, }; int nbook = sizeof( book ) / sizeof( book[0] ); xml_convert inbook[] = { { "Publisher", NULL, NULL, "PUBLISHER", 1 }, { "Language", NULL, NULL, "LANGUAGE", 0 }, { "ISBN10", NULL, NULL, "ISBN", 1 }, { "ISBN13", NULL, NULL, "ISBN13", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, { "PageTotal", NULL, NULL, "PAGES:TOTAL", 1 }, { "SeriesName", NULL, NULL, "TITLE", 2 }, { "SeriesISSN", NULL, NULL, "ISSN", 1 }, { "OtherReportInformation", NULL, NULL, "NOTES", 1 }, { "Edition", NULL, NULL, "EDITION", 1 }, }; int ninbook = sizeof( inbook ) / sizeof( inbook[0] ); int nc, status, found; xml_convert *c; if ( book_level==0 ) { c = book; nc = nbook; } else { c = inbook; nc = ninbook; } status = ebiin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { status = BIBL_OK; if ( xml_tag_matches( node, "MedlineDate" ) ) status = ebiin_medlinedate( info, node, book_level ); else if ( xml_tag_matches( node, "Title" ) ) status = ebiin_title( node, info, book_level ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = ebiin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = ebiin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = ebiin_authorlist( node, info, book_level ); else if ( xml_tag_matches( node, "PubDate" ) && node->down ) status = ebiin_book( node->down, info, book_level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_book( node->next, info, book_level ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_article( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "Journal" ) ) status = ebiin_journal1( node, info ); else if ( node->down && ( xml_tag_matches( node, "Book" ) || xml_tag_matches(node, "Report") )) status = ebiin_book( node->down, info, LEVEL_HOST ); else if ( xml_tag_matches( node, "ArticleTitle" ) ) status = ebiin_title( node, info, LEVEL_MAIN ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = ebiin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = ebiin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = ebiin_authorlist( node, info, LEVEL_MAIN ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = ebiin_article( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_publication( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "Article" ) ) status = ebiin_article( node->down, info ); else if ( xml_tag_matches( node, "Book" ) ) status = ebiin_book( node->down, info, LEVEL_MAIN ); else if ( xml_tag_matches( node, "Report" ) ) status = ebiin_book( node->down, info, LEVEL_MAIN ); else if ( xml_tag_matches( node, "JournalInfo" ) ) status = ebiin_journal2( node->down, info ); else if ( xml_tag_matches( node, "MeshHeadingList" ) ) status = ebiin_meshheadinglist( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_publication( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* Call with the "Publication" node */ static int ebiin_fixtype( xml *node, fields *info ) { char *resource = NULL, *issuance = NULL, *genre1 = NULL, *genre2 = NULL; int reslvl, isslvl, gen1lvl, gen2lvl; int status; str *type; type = xml_attribute( node, "Type" ); if ( !type || type->len==0 ) return BIBL_OK; if ( !strcmp( type->data, "JournalArticle" ) ) { resource = "text"; issuance = "continuing"; genre1 = "periodical"; genre2 = "academic journal"; reslvl = LEVEL_MAIN; isslvl = LEVEL_HOST; gen1lvl = LEVEL_HOST; gen2lvl = LEVEL_HOST; } else if ( !strcmp( type->data, "Book" ) ) { resource = "text"; issuance = "monographic"; genre1 = "book"; reslvl = LEVEL_MAIN; isslvl = LEVEL_MAIN; gen1lvl = LEVEL_MAIN; } else if ( !strcmp( type->data, "BookArticle" ) ) { resource = "text"; issuance = "monographic"; genre1 = "book"; reslvl = LEVEL_MAIN; isslvl = LEVEL_HOST; gen1lvl = LEVEL_HOST; } if ( resource ) { status = fields_add( info, "RESOURCE", resource, reslvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( issuance ) { status = fields_add( info, "ISSUANCE", issuance, isslvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( genre1 ) { if ( is_marc_genre( genre1 ) ) status = fields_add( info, "GENRE:MARC", genre1, gen1lvl ); else if ( is_bu_genre( genre1 ) ) status = fields_add( info, "GENRE:BIBUTILS", genre1, gen1lvl ); else status = fields_add( info, "GENRE:UNKNOWN", genre1, gen1lvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( genre2 ) { if ( is_marc_genre( genre2 ) ) status = fields_add( info, "GENRE:MARC", genre2, gen2lvl ); else if ( is_bu_genre( genre2 ) ) status = fields_add( info, "GENRE:BIBUTILS", genre2, gen2lvl ); else status = fields_add( info, "GENRE:UNKNOWN", genre2, gen2lvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int ebiin_assembleref( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "Publication" ) && node->down ) { status = ebiin_fixtype( node, info ); if ( status!=BIBL_OK ) return status; status = ebiin_publication( node->down, info ); if ( status!=BIBL_OK ) return status; } else if ( node->down ) { status = ebiin_assembleref( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_assembleref( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_processf( fields *ebiin, const char *data, const char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = ebiin_assembleref( &top, ebiin ); xml_free( &top ); return ( status==BIBL_OK ) ? 1 : 0; } hs-bibutils-6.10.0.0/bibutils/ebiin.c0000755000000000000000000005075007346545000015433 0ustar0000000000000000/* * ebiin.c * * Copyright (c) Chris Putnam 2004-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "bu_auth.h" #include "marc_auth.h" #include "xml.h" #include "xml_encoding.h" #include "bibformats.h" static int ebiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int ebiin_processf( fields *ebiin, const char *data, const char *filename, long nref, param *p ); /***************************************************** PUBLIC: void ebiin_initparams() *****************************************************/ int ebiin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_EBIIN; pm->charsetin = BIBL_CHARSET_UNICODE; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 1; pm->utf8in = 1; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; pm->readf = ebiin_readf; pm->processf = ebiin_processf; pm->cleanf = NULL; pm->typef = NULL; pm->convertf = NULL; pm->all = NULL; pm->nall = 0; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int ebiin_readf() *****************************************************/ static int ebiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0, file_charset = CHARSET_UNKNOWN, m; char *startptr = NULL, *endptr; str tmp; str_init( &tmp ); while ( !haveref && str_fget( fp, buf, bufsize, bufpos, line ) ) { if ( line->data ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( str_has_value( line ) ) startptr = xml_find_start( str_cstr( line ), "Publication" ); if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = xml_find_end( str_cstr( &tmp ), "Publication" ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int ebiin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; static int ebiin_doconvert( xml *node, fields *info, xml_convert *c, int nc, int *found ) { int i, status; char *d; if ( !xml_has_value( node ) ) goto out; d = xml_value_cstr( node ); for ( i=0; iMechanism and..... * and * Mechanism and.... */ static int ebiin_title( xml *node, fields *info, int title_level ) { int status; if ( xml_has_value( node ) ) { status = fields_add( info, "TITLE", xml_value_cstr( node ), title_level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* ebiin_medlinedate() * * - extract medline information from entries like: * 2003 Jan-Feb */ static int ebiin_medlinedate_year( fields *info, const char *p, int level, const char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:YEAR", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate_month( fields *info, const char *p, int level, const char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); str_findreplace( &s, "-", "/" ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:MONTH", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate_day( fields *info, const char *p, int level, const char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:DAY", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate( fields *info, xml *node, int level ) { int status = BIBL_OK; const char *p; if ( !xml_has_value( node ) ) return status; p = xml_value_cstr( node ); if ( *p ) status = ebiin_medlinedate_year( info, skip_ws( p ), level, &p ); if ( *p && status==BIBL_OK ) status = ebiin_medlinedate_month( info, skip_ws( p ), level, &p ); if ( *p && status==BIBL_OK ) status = ebiin_medlinedate_day( info, skip_ws( p ), level, &p ); return status; } /* * 0027-8424 * * 100 * 21 * * 2003 * Oct * 14 * * * * * or.... * * * 0735-0414 * * 38 * 1 * * 2003 Jan-Feb * * * Alcohol and alcoholism (Oxford, Oxfordshire) * Alcohol Alcohol. * */ static int ebiin_journal1( xml *node, fields *info ) { xml_convert c[] = { { "ISSN", NULL, NULL, "ISSN", 1 }, { "Volume", NULL, NULL, "VOLUME", 1 }, { "Issue", NULL, NULL, "ISSUE", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, { "Language", NULL, NULL, "LANGUAGE", 1 }, }; int nc = sizeof( c ) / sizeof( c[0] ), status, found; if ( xml_has_value( node ) ) { status = ebiin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { if ( xml_tag_matches( node, "MedlineDate" ) ) { status = ebiin_medlinedate( info, node, LEVEL_HOST ); if ( status!=BIBL_OK ) return status; } } } if ( node->down ) { status = ebiin_journal1( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_journal1( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 12111-6 * */ static int ebiin_pages( fields *info, const char *p ) { int i, status, ret = BIBL_OK; const int level = 1; str sp, ep, *up; strs_init( &sp, &ep, NULL ); /* ...start page */ p = str_cpytodelim( &sp, skip_ws( p ), "-", 1 ); if ( str_memerr( &sp ) ) { ret = BIBL_ERR_MEMERR; goto out; } /* ...end page */ (void) str_cpytodelim( &ep, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &ep ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( sp.len ) { status = fields_add( info, "PAGES:START", str_cstr( &sp ), level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } if ( ep.len ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idown ) { status = ebiin_pagination( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_pagination( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * ljwejrelr * */ static int ebiin_abstract( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "AbstractText" ) ) { status = fields_add( info, "ABSTRACT", xml_value_cstr( node ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( node->next ) { status = ebiin_abstract( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * * Barondeau * David P * ( or David P ) * DP * * */ static int ebiin_author( xml *node, str *name ) { int status; char *p; if ( xml_tag_matches( node, "LastName" ) ) { if ( name->len ) { str_prepend( name, "|" ); str_prepend( name, xml_value_cstr( node ) ); } else str_strcat( name, xml_value( node ) ); } else if ( xml_tag_matches( node, "ForeName" ) || xml_tag_matches( node, "FirstName" ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( name->len ) str_addchar( name, '|' ); while ( *p==' ' ) p++; while ( *p && *p!=' ' ) str_addchar( name, *p++ ); } } else if ( xml_tag_matches( node, "Initials" ) && !strchr( name->data, '|' ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( name->len ) str_addchar( name, '|' ); if ( !is_ws(*p ) ) str_addchar( name, *p++ ); } } if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; if ( node->down ) { status = ebiin_author( node->down, name ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_author( node->next, name ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_authorlist( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str name; str_init( &name ); node = node->down; while ( node ) { if ( xml_tag_matches( node, "Author" ) && node->down ) { status = ebiin_author( node->down, &name ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &name ) ) { fstatus = fields_add( info, "AUTHOR", str_cstr( &name ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } str_empty( &name ); } } node = node->next; } out: str_free( &name ); return status; } /* * Journal Article * */ /* * United States * Proc Natl Acad Sci U S A * 7507876 * */ static int ebiin_journal2( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "TitleAbbreviation" ) ) { status = fields_add( info, "TITLE", xml_value_cstr( node ), LEVEL_HOST ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = ebiin_journal2( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_journal2( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * * * Biophysics * * * Crystallography, X-Ray * * */ static int ebiin_meshheading( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "DescriptorName" ) ) { status = fields_add( info, "KEYWORD", xml_value_cstr( node ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->next ) { status = ebiin_meshheading( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_meshheadinglist( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "MeshHeading" ) && node->down ) { status = ebiin_meshheading( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_meshheadinglist( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_book( xml *node, fields *info, int book_level ) { xml_convert book[] = { { "Publisher", NULL, NULL, "PUBLISHER", 0 }, { "Language", NULL, NULL, "LANGUAGE", 0 }, { "ISBN10", NULL, NULL, "ISBN", 0 }, { "ISBN13", NULL, NULL, "ISBN13", 0 }, { "Year", NULL, NULL, "DATE:YEAR", 0 }, { "Month", NULL, NULL, "DATE:MONTH", 0 }, { "Day", NULL, NULL, "DATE:DAY", 0 }, { "PageTotal", NULL, NULL, "PAGES:TOTAL", 0 }, { "SeriesName", NULL, NULL, "TITLE", 1 }, { "SeriesISSN", NULL, NULL, "ISSN", 0 }, { "OtherReportInformation", NULL, NULL, "NOTES", 0 }, { "Edition", NULL, NULL, "EDITION", 0 }, }; int nbook = sizeof( book ) / sizeof( book[0] ); xml_convert inbook[] = { { "Publisher", NULL, NULL, "PUBLISHER", 1 }, { "Language", NULL, NULL, "LANGUAGE", 0 }, { "ISBN10", NULL, NULL, "ISBN", 1 }, { "ISBN13", NULL, NULL, "ISBN13", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, { "PageTotal", NULL, NULL, "PAGES:TOTAL", 1 }, { "SeriesName", NULL, NULL, "TITLE", 2 }, { "SeriesISSN", NULL, NULL, "ISSN", 1 }, { "OtherReportInformation", NULL, NULL, "NOTES", 1 }, { "Edition", NULL, NULL, "EDITION", 1 }, }; int ninbook = sizeof( inbook ) / sizeof( inbook[0] ); int nc, status, found; xml_convert *c; if ( book_level==0 ) { c = book; nc = nbook; } else { c = inbook; nc = ninbook; } status = ebiin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { status = BIBL_OK; if ( xml_tag_matches( node, "MedlineDate" ) ) status = ebiin_medlinedate( info, node, book_level ); else if ( xml_tag_matches( node, "Title" ) ) status = ebiin_title( node, info, book_level ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = ebiin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = ebiin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = ebiin_authorlist( node, info, book_level ); else if ( xml_tag_matches( node, "PubDate" ) && node->down ) status = ebiin_book( node->down, info, book_level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_book( node->next, info, book_level ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_article( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "Journal" ) ) status = ebiin_journal1( node, info ); else if ( node->down && ( xml_tag_matches( node, "Book" ) || xml_tag_matches(node, "Report") )) status = ebiin_book( node->down, info, LEVEL_HOST ); else if ( xml_tag_matches( node, "ArticleTitle" ) ) status = ebiin_title( node, info, LEVEL_MAIN ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = ebiin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = ebiin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = ebiin_authorlist( node, info, LEVEL_MAIN ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = ebiin_article( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_publication( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "Article" ) ) status = ebiin_article( node->down, info ); else if ( xml_tag_matches( node, "Book" ) ) status = ebiin_book( node->down, info, LEVEL_MAIN ); else if ( xml_tag_matches( node, "Report" ) ) status = ebiin_book( node->down, info, LEVEL_MAIN ); else if ( xml_tag_matches( node, "JournalInfo" ) ) status = ebiin_journal2( node->down, info ); else if ( xml_tag_matches( node, "MeshHeadingList" ) ) status = ebiin_meshheadinglist( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_publication( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* Call with the "Publication" node */ static int ebiin_fixtype( xml *node, fields *info ) { char *resource = NULL, *issuance = NULL, *genre1 = NULL, *genre2 = NULL; int reslvl, isslvl, gen1lvl, gen2lvl; int status; str *type; type = xml_attribute( node, "Type" ); if ( !type || type->len==0 ) return BIBL_OK; if ( !strcmp( type->data, "JournalArticle" ) ) { resource = "text"; issuance = "continuing"; genre1 = "periodical"; genre2 = "academic journal"; reslvl = LEVEL_MAIN; isslvl = LEVEL_HOST; gen1lvl = LEVEL_HOST; gen2lvl = LEVEL_HOST; } else if ( !strcmp( type->data, "Book" ) ) { resource = "text"; issuance = "monographic"; genre1 = "book"; reslvl = LEVEL_MAIN; isslvl = LEVEL_MAIN; gen1lvl = LEVEL_MAIN; } else if ( !strcmp( type->data, "BookArticle" ) ) { resource = "text"; issuance = "monographic"; genre1 = "book"; reslvl = LEVEL_MAIN; isslvl = LEVEL_HOST; gen1lvl = LEVEL_HOST; } if ( resource ) { status = fields_add( info, "RESOURCE", resource, reslvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( issuance ) { status = fields_add( info, "ISSUANCE", issuance, isslvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( genre1 ) { if ( is_marc_genre( genre1 ) ) status = fields_add( info, "GENRE:MARC", genre1, gen1lvl ); else if ( is_bu_genre( genre1 ) ) status = fields_add( info, "GENRE:BIBUTILS", genre1, gen1lvl ); else status = fields_add( info, "GENRE:UNKNOWN", genre1, gen1lvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( genre2 ) { if ( is_marc_genre( genre2 ) ) status = fields_add( info, "GENRE:MARC", genre2, gen2lvl ); else if ( is_bu_genre( genre2 ) ) status = fields_add( info, "GENRE:BIBUTILS", genre2, gen2lvl ); else status = fields_add( info, "GENRE:UNKNOWN", genre2, gen2lvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int ebiin_assembleref( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "Publication" ) && node->down ) { status = ebiin_fixtype( node, info ); if ( status!=BIBL_OK ) return status; status = ebiin_publication( node->down, info ); if ( status!=BIBL_OK ) return status; } else if ( node->down ) { status = ebiin_assembleref( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_assembleref( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_processf( fields *ebiin, const char *data, const char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = ebiin_assembleref( &top, ebiin ); xml_free( &top ); return ( status==BIBL_OK ) ? 1 : 0; } hs-bibutils-6.10.0.0/bibutils/endin.c0000644000000000000000000004027707346545000015442 0ustar0000000000000000/* * endin.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "url.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants end_all[]; extern int end_nall; /***************************************************** PUBLIC: void endin_initparams() *****************************************************/ static int endin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int endin_processf( fields *endin, const char *p, const char *filename, long nref, param *pm ); int endin_typef( fields *endin, const char *filename, int nrefs, param *p ); int endin_convertf( fields *endin, fields *info, int reftype, param *p ); int endin_cleanf( bibl *bin, param *p ); int endin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_ENDNOTEIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = endin_readf; pm->processf = endin_processf; pm->cleanf = endin_cleanf; pm->typef = endin_typef; pm->convertf = endin_convertf; pm->all = end_all; pm->nall = end_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int endin_readf() *****************************************************/ /* Endnote tag definition: character 1 = '%' character 2 = alphabetic character or digit (or other characters) character 3 = space (ansi 32) */ static int endin_istag( const char *buf ) { const char others[]="!@#$^&*()+=?[~>"; if ( buf[0]!='%' ) return 0; if ( buf[2]!=' ' ) return 0; if ( isalpha( (unsigned char)buf[1] ) ) return 1; if ( isdigit( (unsigned char)buf[1] ) ) return 1; if ( strchr( others, buf[1] ) ) return 1; return 0; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int endin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0; unsigned char *up; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( !line->data ) continue; p = &(line->data[0]); /* Skip Unicode header information */ /* = ef bb bf */ up = (unsigned char* ) p; if ( line->len > 2 && up[0]==0xEF && up[1]==0xBB && up[2]==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } if ( !*p ) { if ( inref ) haveref = 1; /* blank line separates */ else continue; /* blank line to ignore */ } /* Each reference starts with a tag && ends with a blank line */ if ( endin_istag( p ) ) { if ( reference->len ) str_addchar( reference, '\n' ); str_strcatc( reference, p ); inref = 1; } else if ( inref && *p ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } str_empty( line ); } if ( reference->len ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int endin_processf() *****************************************************/ static const char* process_endline( str *tag, str *data, const char *p ) { int i; i = 0; while ( i<2 && *p ) { str_addchar( tag, *p++); i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static const char * process_endline2( str *tag, str *data, const char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static int endin_processf( fields *endin, const char *p, const char *filename, long nref, param *pm ) { str tag, value, *oldvalue; int status, n; char *oldtag; strs_init( &tag, &value, NULL ); while ( *p ) { strs_empty( &tag, &value, NULL ); if ( endin_istag( p ) ) { p = process_endline( &tag, &value, p ); if ( str_is_empty( &value ) ) continue; status = fields_add( endin, str_cstr( &tag ), str_cstr( &value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return 0; } /* endnote puts %K only on 1st line of keywords */ else { p = process_endline2( &tag, &value, p ); if ( str_is_empty( &value ) ) continue; n = fields_num( endin ); if ( n==0 ) continue; /* no previous line to append to */ oldtag = fields_tag( endin, n-1, FIELDS_CHRP_NOUSE ); /* last line was a keyword, so this is a new keyword */ if ( !strncmp( oldtag, "%K", 2 ) ) { status = fields_add( endin, "%K", str_cstr( &value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return 0; } /* last line wasn't a keyword, so this line should just be appended */ else { oldvalue = fields_value( endin, n-1, FIELDS_STRP_NOUSE ); str_addchar( oldvalue, ' ' ); str_strcat( oldvalue, &value ); if ( str_memerr( oldvalue ) ) return 0; } } } strs_free( &tag, &value, NULL ); return 1; } /***************************************************** PUBLIC: int endin_typef() *****************************************************/ /* Endnote defaults if no %0 tag * * if %J & %V - journal article * if %B - book section * if %R & !%T - report * if %I & !%B & !%J & !%R - book * if !%B & !%J & !%R & !%I - journal article */ int endin_typef( fields *endin, const char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default, nj, nv, nb, nr, nt, ni; char *refname = "", *typename=""; ntypename = fields_find( endin, "%0", LEVEL_MAIN ); nrefname = fields_find( endin, "%F", LEVEL_MAIN ); if ( nrefname!=-1 ) refname = fields_value( endin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=-1 ) typename = fields_value( endin, ntypename, FIELDS_CHRP_NOUSE ); else { nj = fields_find( endin, "%J", 0 ); nv = fields_find( endin, "%V", 0 ); nb = fields_find( endin, "%B", 0 ); nr = fields_find( endin, "%R", 0 ); nt = fields_find( endin, "%T", 0 ); ni = fields_find( endin, "%I", 0 ); if ( nj!=-1 && nv!=-1 ) { typename = "Journal Article"; } else if ( nb!=-1 ) { typename = "Book Section"; } else if ( nr!=-1 && nt==-1 ) { typename = "Report"; } else if ( ni!=-1 && nb==-1 && nj==-1 && nr==-1 ) { typename = "Book"; } else if ( nb==-1 && nj==-1 && nr==-1 && ni==-1 ) { typename = "Journal Article"; } } return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: void endin_cleanf() *****************************************************/ /* Wiley puts multiple authors separated by commas on the %A lines. * We can detect this by finding the terminal comma in the value * from the tag/value pair. * * "%A" "Author A. X. Last, Author N. B. Next," */ static int is_wiley_author( fields *endin, int n ) { str *t, *v; t = fields_tag( endin, n, FIELDS_STRP_NOUSE ); if ( str_is_empty( t ) || strcmp( str_cstr( t ), "%A" ) ) return 0; v = fields_value( endin, n, FIELDS_STRP_NOUSE ); if ( str_is_empty( v ) ) return 0; if ( v->data[v->len-1]!=',' ) return 0; return 1; } static int add_wiley_author( fields *endin, char *intag, str *instring, int inlevel, str *name, int authornum ) { int fstatus; /* if first author, just replace the data string in the field */ if ( authornum==0 ) { str_strcpy( instring, name ); if ( str_memerr( instring ) ) return BIBL_ERR_MEMERR; } /* otherwise, append the author */ else { fstatus = fields_add( endin, intag, str_cstr( name ), inlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int cleanup_wiley_author( fields *endin, int n ) { int status=BIBL_OK, inlevel, authornum = 0; str *instring, copy, name; char *p, *intag; strs_init( ©, &name, NULL ); intag = fields_tag ( endin, n, FIELDS_CHRP_NOUSE ); instring = fields_value( endin, n, FIELDS_STRP_NOUSE ); inlevel = fields_level( endin, n ); str_strcpy( ©, instring ); p = str_cstr( © ); while ( *p ) { if ( *p==',' ) { if ( str_memerr( &name ) ) { status = BIBL_ERR_MEMERR; goto out; } status = add_wiley_author( endin, intag, instring, inlevel, &name, authornum ); if ( status!=BIBL_OK ) goto out; str_empty( &name ); authornum++; p++; while ( is_ws( *p ) ) p++; } else { str_addchar( &name, *p ); p++; } } if ( str_has_value( &name ) ) status = add_wiley_author( endin, intag, instring, inlevel, &name, authornum ); out: strs_free( ©, &name, NULL ); return status; } static int endin_cleanref( fields *endin ) { int i, n, status; n = fields_num( endin ); for ( i=0; in; ++i ) { status = endin_cleanref( bin->ref[i] ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /***************************************************** PUBLIC: int endin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* month_convert() * convert month name to number in format MM, e.g. "January" -> "01" * if converted, return 1 * otherwise return 0 */ static int month_convert( char *in, char *out ) { char *month1[12]={ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; char *month2[12]={ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; int i, found = -1; for ( i=0; i<12 && found==-1; ++i ) { if ( !strcasecmp( in, month1[i] ) ) found = i; if ( !strcasecmp( in, month2[i] ) ) found = i; } if ( found==-1 ) return 0; if ( found > 8 ) sprintf( out, "%d", found+1 ); else sprintf( out, "0%d", found+1 ); return 1; } static int endin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *tags[3][2] = { { "DATE:YEAR", "PARTDATE:YEAR" }, { "DATE:MONTH", "PARTDATE:MONTH" }, { "DATE:DAY", "PARTDATE:DAY" } }; const char *p = invalue->data; char month[10], *m; int part, status; str date; str_init( &date ); if ( !strncasecmp( outtag, "PART", 4 ) ) part = 1; else part = 0; /* %D YEAR */ if ( !strcasecmp( intag->data, "%D" ) ) { str_cpytodelim( &date, skip_ws( p ), "", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } /* %8 MONTH DAY, YEAR */ /* %8 MONTH, YEAR */ /* %8 MONTH YEAR */ else if ( !strcasecmp( intag->data, "%8" ) ) { /* ...get month */ p = str_cpytodelim( &date, skip_ws( p ), " ,\n", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { if ( month_convert( date.data, month ) ) m = month; else m = str_cstr( &date ); status = fields_add( bibout, tags[1][part], m, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = skip_ws( p ); if ( *p==',' ) p++; /* ...get days */ p = str_cpytodelim( &date, skip_ws( p ), ",\n", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( date.len>0 && date.len<3 ) { status = fields_add( bibout, tags[2][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( date.len==4 ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = skip_ws( p ); if ( *p==',' ) p++; /* ...get year */ (void) str_cpytodelim( &date, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } str_free( &date ); return BIBL_OK; } static int endin_type( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { lookups types[] = { { "GENERIC", "ARTICLE" }, { "BOOK", "BOOK" }, { "MANUSCRIPT", "MANUSCRIPT" }, { "CONFERENCE PROCEEDINGS", "INPROCEEDINGS"}, { "REPORT", "REPORT" }, { "COMPUTER PROGRAM", "BOOK" }, { "AUDIOVISUAL MATERIAL", "AUDIOVISUAL" }, { "ARTWORK", "BOOK" }, { "PATENT", "BOOK" }, { "BILL", "BILL" }, { "CASE", "CASE" }, { "JOURNAL ARTICLE", "ARTICLE" }, { "MAGAZINE ARTICLE", "ARTICLE" }, { "BOOK SECTION", "INBOOK" }, { "EDITED BOOK", "BOOK" }, { "NEWSPAPER ARTICLE", "NEWSARTICLE" }, { "THESIS", "PHDTHESIS" }, { "PERSONAL COMMUNICATION", "COMMUNICATION" }, { "ELECTRONIC SOURCE", "TEXT" }, { "FILM OR BROADCAST", "AUDIOVISUAL" }, { "MAP", "MAP" }, { "HEARING", "HEARING" }, { "STATUTE", "STATUTE" }, { "CHART OR TABLE", "CHART" }, { "WEB PAGE", "WEBPAGE" }, }; int ntypes = sizeof( types ) / sizeof( lookups ); int i, status, found=0; for ( i=0; idata ) ) { found = 1; status = fields_add( bibout, "INTERNAL_TYPE", types[i].newstr, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } if ( !found ) { fprintf( stderr, "Did not identify reference type '%s'\n", invalue->data ); fprintf( stderr, "Defaulting to journal article type\n"); status = fields_add( bibout, "INTERNAL_TYPE", types[0].newstr, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static void endin_notag( param *p, char *tag, char *data ) { if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'='%s'\n", tag, data ); } } int endin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SERIALNO ] = generic_serialno, [ PAGES ] = generic_pages, [ NOTES ] = generic_notes, [ URL ] = generic_url, [ GENRE ] = generic_genre, [ TYPE ] = endin_type, [ DATE ] = endin_date, }; int i, level, process, nfields, fstatus, status = BIBL_OK; char *outtag; str *intag, *invalue; nfields = fields_num( bibin ); for ( i=0; idata[0]!='%' ) { fstatus = fields_add( bibout, str_cstr( intag ), str_cstr( invalue ), bibin->level[i] ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; continue; } if ( !translate_oldtag( str_cstr( intag ), reftype, p->all, p->nall, &process, &level, &outtag ) ) { endin_notag( p, str_cstr( intag ), str_cstr( invalue ) ); continue; } fields_set_used( bibin, i ); status = convertfns[ process ]( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } return status; } hs-bibutils-6.10.0.0/bibutils/endin.c0000755000000000000000000004027707346545000015445 0ustar0000000000000000/* * endin.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "url.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants end_all[]; extern int end_nall; /***************************************************** PUBLIC: void endin_initparams() *****************************************************/ static int endin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int endin_processf( fields *endin, const char *p, const char *filename, long nref, param *pm ); int endin_typef( fields *endin, const char *filename, int nrefs, param *p ); int endin_convertf( fields *endin, fields *info, int reftype, param *p ); int endin_cleanf( bibl *bin, param *p ); int endin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_ENDNOTEIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = endin_readf; pm->processf = endin_processf; pm->cleanf = endin_cleanf; pm->typef = endin_typef; pm->convertf = endin_convertf; pm->all = end_all; pm->nall = end_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int endin_readf() *****************************************************/ /* Endnote tag definition: character 1 = '%' character 2 = alphabetic character or digit (or other characters) character 3 = space (ansi 32) */ static int endin_istag( const char *buf ) { const char others[]="!@#$^&*()+=?[~>"; if ( buf[0]!='%' ) return 0; if ( buf[2]!=' ' ) return 0; if ( isalpha( (unsigned char)buf[1] ) ) return 1; if ( isdigit( (unsigned char)buf[1] ) ) return 1; if ( strchr( others, buf[1] ) ) return 1; return 0; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int endin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0; unsigned char *up; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( !line->data ) continue; p = &(line->data[0]); /* Skip Unicode header information */ /* = ef bb bf */ up = (unsigned char* ) p; if ( line->len > 2 && up[0]==0xEF && up[1]==0xBB && up[2]==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } if ( !*p ) { if ( inref ) haveref = 1; /* blank line separates */ else continue; /* blank line to ignore */ } /* Each reference starts with a tag && ends with a blank line */ if ( endin_istag( p ) ) { if ( reference->len ) str_addchar( reference, '\n' ); str_strcatc( reference, p ); inref = 1; } else if ( inref && *p ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } str_empty( line ); } if ( reference->len ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int endin_processf() *****************************************************/ static const char* process_endline( str *tag, str *data, const char *p ) { int i; i = 0; while ( i<2 && *p ) { str_addchar( tag, *p++); i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static const char * process_endline2( str *tag, str *data, const char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static int endin_processf( fields *endin, const char *p, const char *filename, long nref, param *pm ) { str tag, value, *oldvalue; int status, n; char *oldtag; strs_init( &tag, &value, NULL ); while ( *p ) { strs_empty( &tag, &value, NULL ); if ( endin_istag( p ) ) { p = process_endline( &tag, &value, p ); if ( str_is_empty( &value ) ) continue; status = fields_add( endin, str_cstr( &tag ), str_cstr( &value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return 0; } /* endnote puts %K only on 1st line of keywords */ else { p = process_endline2( &tag, &value, p ); if ( str_is_empty( &value ) ) continue; n = fields_num( endin ); if ( n==0 ) continue; /* no previous line to append to */ oldtag = fields_tag( endin, n-1, FIELDS_CHRP_NOUSE ); /* last line was a keyword, so this is a new keyword */ if ( !strncmp( oldtag, "%K", 2 ) ) { status = fields_add( endin, "%K", str_cstr( &value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return 0; } /* last line wasn't a keyword, so this line should just be appended */ else { oldvalue = fields_value( endin, n-1, FIELDS_STRP_NOUSE ); str_addchar( oldvalue, ' ' ); str_strcat( oldvalue, &value ); if ( str_memerr( oldvalue ) ) return 0; } } } strs_free( &tag, &value, NULL ); return 1; } /***************************************************** PUBLIC: int endin_typef() *****************************************************/ /* Endnote defaults if no %0 tag * * if %J & %V - journal article * if %B - book section * if %R & !%T - report * if %I & !%B & !%J & !%R - book * if !%B & !%J & !%R & !%I - journal article */ int endin_typef( fields *endin, const char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default, nj, nv, nb, nr, nt, ni; char *refname = "", *typename=""; ntypename = fields_find( endin, "%0", LEVEL_MAIN ); nrefname = fields_find( endin, "%F", LEVEL_MAIN ); if ( nrefname!=-1 ) refname = fields_value( endin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=-1 ) typename = fields_value( endin, ntypename, FIELDS_CHRP_NOUSE ); else { nj = fields_find( endin, "%J", 0 ); nv = fields_find( endin, "%V", 0 ); nb = fields_find( endin, "%B", 0 ); nr = fields_find( endin, "%R", 0 ); nt = fields_find( endin, "%T", 0 ); ni = fields_find( endin, "%I", 0 ); if ( nj!=-1 && nv!=-1 ) { typename = "Journal Article"; } else if ( nb!=-1 ) { typename = "Book Section"; } else if ( nr!=-1 && nt==-1 ) { typename = "Report"; } else if ( ni!=-1 && nb==-1 && nj==-1 && nr==-1 ) { typename = "Book"; } else if ( nb==-1 && nj==-1 && nr==-1 && ni==-1 ) { typename = "Journal Article"; } } return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: void endin_cleanf() *****************************************************/ /* Wiley puts multiple authors separated by commas on the %A lines. * We can detect this by finding the terminal comma in the value * from the tag/value pair. * * "%A" "Author A. X. Last, Author N. B. Next," */ static int is_wiley_author( fields *endin, int n ) { str *t, *v; t = fields_tag( endin, n, FIELDS_STRP_NOUSE ); if ( str_is_empty( t ) || strcmp( str_cstr( t ), "%A" ) ) return 0; v = fields_value( endin, n, FIELDS_STRP_NOUSE ); if ( str_is_empty( v ) ) return 0; if ( v->data[v->len-1]!=',' ) return 0; return 1; } static int add_wiley_author( fields *endin, char *intag, str *instring, int inlevel, str *name, int authornum ) { int fstatus; /* if first author, just replace the data string in the field */ if ( authornum==0 ) { str_strcpy( instring, name ); if ( str_memerr( instring ) ) return BIBL_ERR_MEMERR; } /* otherwise, append the author */ else { fstatus = fields_add( endin, intag, str_cstr( name ), inlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int cleanup_wiley_author( fields *endin, int n ) { int status=BIBL_OK, inlevel, authornum = 0; str *instring, copy, name; char *p, *intag; strs_init( ©, &name, NULL ); intag = fields_tag ( endin, n, FIELDS_CHRP_NOUSE ); instring = fields_value( endin, n, FIELDS_STRP_NOUSE ); inlevel = fields_level( endin, n ); str_strcpy( ©, instring ); p = str_cstr( © ); while ( *p ) { if ( *p==',' ) { if ( str_memerr( &name ) ) { status = BIBL_ERR_MEMERR; goto out; } status = add_wiley_author( endin, intag, instring, inlevel, &name, authornum ); if ( status!=BIBL_OK ) goto out; str_empty( &name ); authornum++; p++; while ( is_ws( *p ) ) p++; } else { str_addchar( &name, *p ); p++; } } if ( str_has_value( &name ) ) status = add_wiley_author( endin, intag, instring, inlevel, &name, authornum ); out: strs_free( ©, &name, NULL ); return status; } static int endin_cleanref( fields *endin ) { int i, n, status; n = fields_num( endin ); for ( i=0; in; ++i ) { status = endin_cleanref( bin->ref[i] ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /***************************************************** PUBLIC: int endin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* month_convert() * convert month name to number in format MM, e.g. "January" -> "01" * if converted, return 1 * otherwise return 0 */ static int month_convert( char *in, char *out ) { char *month1[12]={ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; char *month2[12]={ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; int i, found = -1; for ( i=0; i<12 && found==-1; ++i ) { if ( !strcasecmp( in, month1[i] ) ) found = i; if ( !strcasecmp( in, month2[i] ) ) found = i; } if ( found==-1 ) return 0; if ( found > 8 ) sprintf( out, "%d", found+1 ); else sprintf( out, "0%d", found+1 ); return 1; } static int endin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *tags[3][2] = { { "DATE:YEAR", "PARTDATE:YEAR" }, { "DATE:MONTH", "PARTDATE:MONTH" }, { "DATE:DAY", "PARTDATE:DAY" } }; const char *p = invalue->data; char month[10], *m; int part, status; str date; str_init( &date ); if ( !strncasecmp( outtag, "PART", 4 ) ) part = 1; else part = 0; /* %D YEAR */ if ( !strcasecmp( intag->data, "%D" ) ) { str_cpytodelim( &date, skip_ws( p ), "", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } /* %8 MONTH DAY, YEAR */ /* %8 MONTH, YEAR */ /* %8 MONTH YEAR */ else if ( !strcasecmp( intag->data, "%8" ) ) { /* ...get month */ p = str_cpytodelim( &date, skip_ws( p ), " ,\n", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { if ( month_convert( date.data, month ) ) m = month; else m = str_cstr( &date ); status = fields_add( bibout, tags[1][part], m, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = skip_ws( p ); if ( *p==',' ) p++; /* ...get days */ p = str_cpytodelim( &date, skip_ws( p ), ",\n", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( date.len>0 && date.len<3 ) { status = fields_add( bibout, tags[2][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( date.len==4 ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = skip_ws( p ); if ( *p==',' ) p++; /* ...get year */ (void) str_cpytodelim( &date, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } str_free( &date ); return BIBL_OK; } static int endin_type( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { lookups types[] = { { "GENERIC", "ARTICLE" }, { "BOOK", "BOOK" }, { "MANUSCRIPT", "MANUSCRIPT" }, { "CONFERENCE PROCEEDINGS", "INPROCEEDINGS"}, { "REPORT", "REPORT" }, { "COMPUTER PROGRAM", "BOOK" }, { "AUDIOVISUAL MATERIAL", "AUDIOVISUAL" }, { "ARTWORK", "BOOK" }, { "PATENT", "BOOK" }, { "BILL", "BILL" }, { "CASE", "CASE" }, { "JOURNAL ARTICLE", "ARTICLE" }, { "MAGAZINE ARTICLE", "ARTICLE" }, { "BOOK SECTION", "INBOOK" }, { "EDITED BOOK", "BOOK" }, { "NEWSPAPER ARTICLE", "NEWSARTICLE" }, { "THESIS", "PHDTHESIS" }, { "PERSONAL COMMUNICATION", "COMMUNICATION" }, { "ELECTRONIC SOURCE", "TEXT" }, { "FILM OR BROADCAST", "AUDIOVISUAL" }, { "MAP", "MAP" }, { "HEARING", "HEARING" }, { "STATUTE", "STATUTE" }, { "CHART OR TABLE", "CHART" }, { "WEB PAGE", "WEBPAGE" }, }; int ntypes = sizeof( types ) / sizeof( lookups ); int i, status, found=0; for ( i=0; idata ) ) { found = 1; status = fields_add( bibout, "INTERNAL_TYPE", types[i].newstr, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } if ( !found ) { fprintf( stderr, "Did not identify reference type '%s'\n", invalue->data ); fprintf( stderr, "Defaulting to journal article type\n"); status = fields_add( bibout, "INTERNAL_TYPE", types[0].newstr, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static void endin_notag( param *p, char *tag, char *data ) { if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'='%s'\n", tag, data ); } } int endin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SERIALNO ] = generic_serialno, [ PAGES ] = generic_pages, [ NOTES ] = generic_notes, [ URL ] = generic_url, [ GENRE ] = generic_genre, [ TYPE ] = endin_type, [ DATE ] = endin_date, }; int i, level, process, nfields, fstatus, status = BIBL_OK; char *outtag; str *intag, *invalue; nfields = fields_num( bibin ); for ( i=0; idata[0]!='%' ) { fstatus = fields_add( bibout, str_cstr( intag ), str_cstr( invalue ), bibin->level[i] ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; continue; } if ( !translate_oldtag( str_cstr( intag ), reftype, p->all, p->nall, &process, &level, &outtag ) ) { endin_notag( p, str_cstr( intag ), str_cstr( invalue ) ); continue; } fields_set_used( bibin, i ); status = convertfns[ process ]( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } return status; } hs-bibutils-6.10.0.0/bibutils/endout.c0000644000000000000000000010117007346545000015631 0ustar0000000000000000/* * endout.c * * Copyright (c) Chris Putnam 2004-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "generic.h" #include "name.h" #include "title.h" #include "type.h" #include "url.h" #include "bibformats.h" /***************************************************** PUBLIC: int endout_initparams() *****************************************************/ static int endout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static int endout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int endout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_ENDNOTEOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; if ( pm->charsetout == BIBL_CHARSET_UNICODE ) { pm->utf8out = pm->utf8bom = 1; } pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = endout_assemble; pm->writef = endout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int endout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_GENERIC, /* Generic */ TYPE_ARTWORK, /* Artwork */ TYPE_AUDIOVISUAL, /* Audiovisual Material */ TYPE_BILL, /* Bill */ TYPE_BOOK, /* Book */ TYPE_INBOOK, /* Book Section */ TYPE_CASE, /* Case */ TYPE_CHARTTABLE, /* Chart or Table */ TYPE_CLASSICALWORK, /* Classical Work */ TYPE_PROGRAM, /* Computer Program */ TYPE_INPROCEEDINGS, /* Conference Paper */ TYPE_PROCEEDINGS, /* Conference Proceedings */ TYPE_EDITEDBOOK, /* Edited Book */ TYPE_EQUATION, /* Equation */ TYPE_ELECTRONICARTICLE, /* Electronic Article */ TYPE_ELECTRONICBOOK, /* Electronic Book */ TYPE_ELECTRONIC, /* Electronic Source */ TYPE_FIGURE, /* Figure */ TYPE_FILMBROADCAST, /* Film or Broadcast */ TYPE_GOVERNMENT, /* Government Document */ TYPE_HEARING, /* Hearing */ TYPE_ARTICLE, /* Journal Article */ TYPE_LEGALRULE, /* Legal Rule/Regulation */ TYPE_MAGARTICLE, /* Magazine Article */ TYPE_MANUSCRIPT, /* Manuscript */ TYPE_MAP, /* Map */ TYPE_NEWSARTICLE, /* Newspaper Article */ TYPE_ONLINEDATABASE, /* Online Database */ TYPE_ONLINEMULTIMEDIA, /* Online Multimedia */ TYPE_PATENT, /* Patent */ TYPE_COMMUNICATION, /* Personal Communication */ TYPE_REPORT, /* Report */ TYPE_STATUTE, /* Statute */ TYPE_THESIS, /* Thesis */ TYPE_MASTERSTHESIS, /* Thesis */ TYPE_PHDTHESIS, /* Thesis */ TYPE_DIPLOMATHESIS, /* Thesis */ TYPE_DOCTORALTHESIS, /* Thesis */ TYPE_HABILITATIONTHESIS, /* Thesis */ TYPE_LICENTIATETHESIS, /* Thesis */ TYPE_UNPUBLISHED, /* Unpublished Work */ }; static void write_type( FILE *fp, int type ) { switch( type ) { case TYPE_UNKNOWN: fprintf( fp, "TYPE_UNKNOWN" ); break; case TYPE_GENERIC: fprintf( fp, "TYPE_GENERIC" ); break; case TYPE_ARTWORK: fprintf( fp, "TYPE_ARTWORK" ); break; case TYPE_AUDIOVISUAL: fprintf( fp, "TYPE_AUDIOVISUAL" ); break; case TYPE_BILL: fprintf( fp, "TYPE_BILL" ); break; case TYPE_BOOK: fprintf( fp, "TYPE_BOOK" ); break; case TYPE_INBOOK: fprintf( fp, "TYPE_INBOOK" ); break; case TYPE_CASE: fprintf( fp, "TYPE_CASE" ); break; case TYPE_CHARTTABLE: fprintf( fp, "TYPE_CHARITABLE" ); break; case TYPE_CLASSICALWORK: fprintf( fp, "TYPE_CLASSICALWORK" ); break; case TYPE_PROGRAM: fprintf( fp, "TYPE_PROGRAM" ); break; case TYPE_INPROCEEDINGS: fprintf( fp, "TYPE_INPROCEEDINGS" ); break; case TYPE_PROCEEDINGS: fprintf( fp, "TYPE_PROCEEDINGS" ); break; case TYPE_EDITEDBOOK: fprintf( fp, "TYPE_EDITEDBOOK" ); break; case TYPE_EQUATION: fprintf( fp, "TYPE_EQUATION" ); break; case TYPE_ELECTRONICARTICLE: fprintf( fp, "TYPE_ELECTRONICARTICLE" ); break; case TYPE_ELECTRONICBOOK: fprintf( fp, "TYPE_ELECTRONICBOOK" ); break; case TYPE_ELECTRONIC: fprintf( fp, "TYPE_ELECTRONIC" ); break; case TYPE_FIGURE: fprintf( fp, "TYPE_FIGURE" ); break; case TYPE_FILMBROADCAST: fprintf( fp, "TYPE_FILMBROADCAST" ); break; case TYPE_GOVERNMENT: fprintf( fp, "TYPE_GOVERNMENT" ); break; case TYPE_HEARING: fprintf( fp, "TYPE_HEARING" ); break; case TYPE_ARTICLE: fprintf( fp, "TYPE_ARTICLE" ); break; case TYPE_LEGALRULE: fprintf( fp, "TYPE_LEGALRULE" ); break; case TYPE_MAGARTICLE: fprintf( fp, "TYPE_MAGARTICLE" ); break; case TYPE_MANUSCRIPT: fprintf( fp, "TYPE_MANUSCRIPT" ); break; case TYPE_MAP: fprintf( fp, "TYPE_MAP" ); break; case TYPE_NEWSARTICLE: fprintf( fp, "TYPE_NEWSARTICLE" ); break; case TYPE_ONLINEDATABASE: fprintf( fp, "TYPE_ONLINEDATABASE" ); break; case TYPE_ONLINEMULTIMEDIA: fprintf( fp, "TYPE_ONLINEMULTIMEDIA" ); break; case TYPE_PATENT: fprintf( fp, "TYPE_PATENT" ); break; case TYPE_COMMUNICATION: fprintf( fp, "TYPE_COMMUNICATION" ); break; case TYPE_REPORT: fprintf( fp, "TYPE_REPORT" ); break; case TYPE_STATUTE: fprintf( fp, "TYPE_STATUTE" ); break; case TYPE_THESIS: fprintf( fp, "TYPE_THESIS" ); break; case TYPE_MASTERSTHESIS: fprintf( fp, "TYPE_MASTERSTHESIS" ); break; case TYPE_PHDTHESIS: fprintf( fp, "TYPE_PHDTHESIS" ); break; case TYPE_DIPLOMATHESIS: fprintf( fp, "TYPE_DIPLOMATHESIS" ); break; case TYPE_DOCTORALTHESIS: fprintf( fp, "TYPE_DOCTORALTHESIS" ); break; case TYPE_HABILITATIONTHESIS:fprintf( fp, "TYPE_HABILITATIONTHESIS" ); break; case TYPE_UNPUBLISHED: fprintf( fp, "TYPE_UNPUBLISHED" ); break; default: fprintf( fp, "Error - type not in enum" );break; } } static void type_report_progress( param *p, const char *element_type, int type, unsigned long refnum ) { if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from %s element in reference %lu: ", element_type, refnum+1 ); write_type( stderr, type ); fprintf( stderr, "\n" ); } } static int type_from_default( fields *in, param *p, unsigned long refnum ) { int n, type; /* default to chapter if host terms */ if ( fields_maxlevel( in ) > 0 ) type = TYPE_INBOOK; /* default to generic if no host terms */ else type = TYPE_GENERIC; if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot identify TYPE in reference %lu ", refnum+1 ); n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) fprintf( stderr, " %s", (char *) fields_value( in, n, FIELDS_CHRP ) ); if ( type==TYPE_INBOOK ) fprintf( stderr, " (defaulting to book chapter)\n" ); else fprintf( stderr, " (defaulting to generic)\n" ); return type; } static int get_type( fields *in, param *p, unsigned long refnum ) { /* Comment out TYPE_GENERIC entries as that is default, but * keep in source as record of mapping decision. */ match_type genre_matches[] = { /* MARC Authority elements */ { "art original", TYPE_ARTWORK, LEVEL_ANY }, { "art reproduction", TYPE_ARTWORK, LEVEL_ANY }, { "article", TYPE_ARTICLE, LEVEL_ANY }, { "atlas", TYPE_MAP, LEVEL_ANY }, { "autobiography", TYPE_BOOK, LEVEL_ANY }, /* { "bibliography", TYPE_GENERIC, LEVEL_ANY },*/ { "biography", TYPE_BOOK, LEVEL_ANY }, { "book", TYPE_BOOK, LEVEL_MAIN }, { "book", TYPE_INBOOK, LEVEL_ANY }, /* { "calendar", TYPE_GENERIC, LEVEL_ANY },*/ /* { "catalog", TYPE_GENERIC, LEVEL_ANY },*/ { "chart", TYPE_CHARTTABLE, LEVEL_ANY }, /* { "comic or graphic novel", TYPE_GENERIC, LEVEL_ANY },*/ /* { "comic strip", TYPE_GENERIC, LEVEL_ANY },*/ { "conference publication", TYPE_PROCEEDINGS, LEVEL_ANY }, { "database", TYPE_ONLINEDATABASE, LEVEL_ANY }, /* { "dictionary", TYPE_GENERIC, LEVEL_ANY },*/ { "diorama", TYPE_ARTWORK, LEVEL_ANY }, /* { "directory", TYPE_GENERIC, LEVEL_ANY },*/ { "discography", TYPE_AUDIOVISUAL, LEVEL_ANY }, /* { "drama", TYPE_GENERIC, LEVEL_ANY },*/ { "encyclopedia", TYPE_BOOK, LEVEL_ANY }, /* { "essay", TYPE_GENERIC, LEVEL_ANY }, */ { "festschrift", TYPE_BOOK, LEVEL_MAIN }, { "festschrift", TYPE_INBOOK, LEVEL_ANY }, { "fiction", TYPE_BOOK, LEVEL_ANY }, { "filmography", TYPE_FILMBROADCAST, LEVEL_ANY }, { "filmstrip", TYPE_FILMBROADCAST, LEVEL_ANY }, /* { "finding aid", TYPE_GENERIC, LEVEL_ANY },*/ /* { "flash card", TYPE_GENERIC, LEVEL_ANY },*/ { "folktale", TYPE_CLASSICALWORK, LEVEL_ANY }, { "font", TYPE_ELECTRONIC, LEVEL_ANY }, /* { "game", TYPE_GENERIC, LEVEL_ANY },*/ { "government publication", TYPE_GOVERNMENT, LEVEL_ANY }, { "graphic", TYPE_FIGURE, LEVEL_ANY }, { "globe", TYPE_MAP, LEVEL_ANY }, /* { "handbook", TYPE_GENERIC, LEVEL_ANY },*/ { "history", TYPE_BOOK, LEVEL_ANY }, { "hymnal", TYPE_BOOK, LEVEL_MAIN }, { "hymnal", TYPE_INBOOK, LEVEL_ANY }, /* { "humor, satire", TYPE_GENERIC, LEVEL_ANY },*/ /* { "index", TYPE_GENERIC, LEVEL_ANY },*/ /* { "instruction", TYPE_GENERIC, LEVEL_ANY },*/ /* { "interview", TYPE_GENERIC, LEVEL_ANY },*/ { "issue", TYPE_ARTICLE, LEVEL_ANY }, { "journal", TYPE_ARTICLE, LEVEL_ANY }, /* { "kit", TYPE_GENERIC, LEVEL_ANY },*/ /* { "language instruction", TYPE_GENERIC, LEVEL_ANY },*/ /* { "law report or digest", TYPE_GENERIC, LEVEL_ANY },*/ /* { "legal article", TYPE_GENERIC, LEVEL_ANY },*/ { "legal case and case notes", TYPE_CASE, LEVEL_ANY }, { "legislation", TYPE_BILL, LEVEL_ANY }, { "letter", TYPE_COMMUNICATION, LEVEL_ANY }, { "loose-leaf", TYPE_GENERIC, LEVEL_ANY }, { "map", TYPE_MAP, LEVEL_ANY }, /* { "memoir", TYPE_GENERIC, LEVEL_ANY },*/ /* { "microscope slide", TYPE_GENERIC, LEVEL_ANY },*/ /* { "model", TYPE_GENERIC, LEVEL_ANY },*/ { "motion picture", TYPE_AUDIOVISUAL, LEVEL_ANY }, { "multivolume monograph", TYPE_BOOK, LEVEL_ANY }, { "newspaper", TYPE_NEWSARTICLE, LEVEL_ANY }, { "novel", TYPE_BOOK, LEVEL_ANY }, /* { "numeric data", TYPE_GENERIC, LEVEL_ANY },*/ /* { "offprint", TYPE_GENERIC, LEVEL_ANY },*/ { "online system or service", TYPE_ELECTRONIC, LEVEL_ANY }, { "patent", TYPE_PATENT, LEVEL_ANY }, { "picture", TYPE_ARTWORK, LEVEL_ANY }, /* { "poetry", TYPE_GENERIC, LEVEL_ANY },*/ { "programmed text", TYPE_PROGRAM, LEVEL_ANY }, /* { "realia", TYPE_GENERIC, LEVEL_ANY },*/ { "rehearsal", TYPE_AUDIOVISUAL, LEVEL_ANY }, /* { "remote sensing image", TYPE_GENERIC, LEVEL_ANY },*/ /* { "reporting", TYPE_GENERIC, LEVEL_ANY },*/ { "report", TYPE_REPORT, LEVEL_ANY }, /* { "review", TYPE_GENERIC, LEVEL_ANY },*/ /* { "script", TYPE_GENERIC, LEVEL_ANY },*/ /* { "series", TYPE_GENERIC, LEVEL_ANY },*/ /* { "short story", TYPE_GENERIC, LEVEL_ANY },*/ /* { "slide", TYPE_GENERIC, LEVEL_ANY },*/ { "sound", TYPE_AUDIOVISUAL, LEVEL_ANY }, /* { "speech", TYPE_GENERIC, LEVEL_ANY },*/ /* { "standard or specification", TYPE_GENERIC, LEVEL_ANY },*/ /* { "statistics", TYPE_GENERIC, LEVEL_ANY },*/ /* { "survey of literature", TYPE_GENERIC, LEVEL_ANY },*/ { "technical drawing", TYPE_ARTWORK, LEVEL_ANY }, { "technical report", TYPE_REPORT, LEVEL_ANY }, /* { "toy", TYPE_GENERIC, LEVEL_ANY },*/ /* { "transparency", TYPE_GENERIC, LEVEL_ANY },*/ /* { "treaty", TYPE_GENERIC, LEVEL_ANY },*/ { "videorecording", TYPE_AUDIOVISUAL, LEVEL_ANY }, { "web site", TYPE_ELECTRONIC, LEVEL_ANY }, /* Non-MARC Authority elements */ { "academic journal", TYPE_ARTICLE, LEVEL_ANY }, { "collection", TYPE_BOOK, LEVEL_MAIN }, { "collection", TYPE_INBOOK, LEVEL_ANY }, { "magazine", TYPE_MAGARTICLE, LEVEL_ANY }, { "hearing", TYPE_HEARING, LEVEL_ANY }, { "Ph.D. thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "Masters thesis", TYPE_MASTERSTHESIS, LEVEL_ANY }, { "Diploma thesis", TYPE_DIPLOMATHESIS, LEVEL_ANY }, { "Doctoral thesis", TYPE_DOCTORALTHESIS, LEVEL_ANY }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS, LEVEL_ANY }, { "Licentiate thesis", TYPE_LICENTIATETHESIS, LEVEL_ANY }, { "communication", TYPE_COMMUNICATION, LEVEL_ANY }, { "manuscript", TYPE_MANUSCRIPT, LEVEL_ANY }, { "unpublished", TYPE_UNPUBLISHED, LEVEL_ANY }, /* Delayed MARC Authority elements */ { "thesis", TYPE_THESIS, LEVEL_ANY }, { "periodical", TYPE_MAGARTICLE, LEVEL_ANY }, }; int ngenre_matches = sizeof( genre_matches ) / sizeof( genre_matches[0] ); match_type resource_matches[] = { { "moving image", TYPE_FILMBROADCAST, LEVEL_ANY }, { "software, multimedia", TYPE_PROGRAM, LEVEL_ANY }, }; int nresource_matches = sizeof( resource_matches ) / sizeof( resource_matches[0] ); match_type issuance_matches[] = { { "monographic", TYPE_BOOK, LEVEL_MAIN }, { "monographic", TYPE_INBOOK, LEVEL_ANY }, }; int nissuance_matches = sizeof( issuance_matches ) / sizeof( issuance_matches[0] ); int type; type = type_from_mods_hints( in, TYPE_FROM_GENRE, genre_matches, ngenre_matches, TYPE_UNKNOWN ); type_report_progress( p, "genre", type, refnum ); if ( type!=TYPE_UNKNOWN ) return type; type = type_from_mods_hints( in, TYPE_FROM_RESOURCE, resource_matches, nresource_matches, TYPE_UNKNOWN ); type_report_progress( p, "resource", type, refnum ); if ( type!=TYPE_UNKNOWN ) return type; type = type_from_mods_hints( in, TYPE_FROM_ISSUANCE, issuance_matches, nissuance_matches, TYPE_UNKNOWN ); type_report_progress( p, "issuance", type, refnum ); if ( type!=TYPE_UNKNOWN ) return type; return type_from_default( in, p, refnum ); } static void append_type( int type, fields *out, param *p, int *status ) { /* These are restricted to Endnote-defined types */ match_type genrenames[] = { { "Generic", TYPE_GENERIC }, { "Artwork", TYPE_ARTWORK }, { "Audiovisual Material", TYPE_AUDIOVISUAL }, { "Bill", TYPE_BILL }, { "Book", TYPE_BOOK }, { "Book Section", TYPE_INBOOK }, { "Case", TYPE_CASE }, { "Chart or Table", TYPE_CHARTTABLE }, { "Classical Work", TYPE_CLASSICALWORK }, { "Computer Program", TYPE_PROGRAM }, { "Conference Paper", TYPE_INPROCEEDINGS }, { "Conference Proceedings", TYPE_PROCEEDINGS }, { "Edited Book", TYPE_EDITEDBOOK }, { "Equation", TYPE_EQUATION }, { "Electronic Article", TYPE_ELECTRONICARTICLE }, { "Electronic Book", TYPE_ELECTRONICBOOK }, { "Electronic Source", TYPE_ELECTRONIC }, { "Figure", TYPE_FIGURE }, { "Film or Broadcast", TYPE_FILMBROADCAST }, { "Government Document", TYPE_GOVERNMENT }, { "Hearing", TYPE_HEARING }, { "Journal Article", TYPE_ARTICLE }, { "Legal Rule/Regulation", TYPE_LEGALRULE }, { "Magazine Article", TYPE_MAGARTICLE }, { "Manuscript", TYPE_MANUSCRIPT }, { "Map", TYPE_MAP }, { "Newspaper Article", TYPE_NEWSARTICLE }, { "Online Database", TYPE_ONLINEDATABASE }, { "Online Multimedia", TYPE_ONLINEMULTIMEDIA }, { "Patent", TYPE_PATENT }, { "Personal Communication", TYPE_COMMUNICATION }, { "Report", TYPE_REPORT }, { "Statute", TYPE_STATUTE }, { "Thesis", TYPE_THESIS }, { "Thesis", TYPE_PHDTHESIS }, { "Thesis", TYPE_MASTERSTHESIS }, { "Thesis", TYPE_DIPLOMATHESIS }, { "Thesis", TYPE_DOCTORALTHESIS }, { "Thesis", TYPE_HABILITATIONTHESIS }, { "Unpublished Work", TYPE_UNPUBLISHED }, }; int ngenrenames = sizeof( genrenames ) / sizeof( genrenames[0] ); int i, fstatus, found = 0; for ( i=0; iprogname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot identify type %d\n", type ); } } static int append_title( fields *in, char *full, char *sub, char *endtag, int level, fields *out, int *status ) { str *mainttl = fields_findv( in, level, FIELDS_STRP, full ); str *subttl = fields_findv( in, level, FIELDS_STRP, sub ); str fullttl; int fstatus; str_init( &fullttl ); title_combine( &fullttl, mainttl, subttl ); if ( str_memerr( &fullttl ) ) { *status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fullttl ) ) { fstatus = fields_add( out, endtag, str_cstr( &fullttl ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } out: str_free( &fullttl ); return 1; } static void append_people( fields *in, char *tag, char *entag, int level, fields *out, int *status ) { int i, n, flvl, fstatus; str oneperson; char *ftag; str_init( &oneperson ); n = fields_num( in ); for ( i=0; i0 && m<13 ) str_strcpyc( &monday, months[m-1] ); else str_strcpyc( &monday, month ); } if ( month && day ) str_strcatc( &monday, " " ); if ( day ) str_strcatc( &monday, day ); fstatus = fields_add( out, "%8", str_cstr( &monday ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &monday ); } static void append_genrehint( int type, fields *out, vplist *a, int *status ) { vplist_index i; int fstatus; char *g; for ( i=0; in; ++i ) { g = ( char * ) vplist_get( a, i ); if ( !strcmp( g, "journal article" ) && type==TYPE_ARTICLE ) continue; if ( !strcmp( g, "academic journal" ) && type==TYPE_ARTICLE ) continue; if ( !strcmp( g, "collection" ) && type==TYPE_INBOOK ) continue; if ( !strcmp( g, "television broadcast" ) && type==TYPE_FILMBROADCAST ) continue; if ( !strcmp( g, "electronic" ) && type==TYPE_PROGRAM ) continue; if ( !strcmp( g, "magazine" ) && type==TYPE_MAGARTICLE ) continue; if ( !strcmp( g, "miscellaneous" ) && type==TYPE_GENERIC ) continue; if ( !strcmp( g, "hearing" ) && type==TYPE_HEARING ) continue; if ( !strcmp( g, "communication" ) && type==TYPE_COMMUNICATION ) continue; if ( !strcmp( g, "report" ) && type==TYPE_REPORT ) continue; if ( !strcmp( g, "book chapter" ) && type==TYPE_INBOOK ) continue; fstatus = fields_add( out, "%9", g, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_all_genrehint( int type, fields *in, fields *out, int *status ) { vplist a; vplist_init( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_CHRP, &a, "GENRE:BIBUTILS" ); append_genrehint( type, out, &a, status ); vplist_empty( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_CHRP, &a, "GENRE:UNKNOWN" ); append_genrehint( type, out, &a, status ); vplist_free( &a ); } static void append_thesishint( int type, fields *out, int *status ) { int fstatus; if ( type==TYPE_MASTERSTHESIS ) { fstatus = fields_add( out, "%9", "Masters thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_PHDTHESIS ) { fstatus = fields_add( out, "%9", "Ph.D. thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_DIPLOMATHESIS ) { fstatus = fields_add( out, "%9", "Diploma thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_DOCTORALTHESIS ) { fstatus = fields_add( out, "%9", "Doctoral thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_HABILITATIONTHESIS ) { fstatus = fields_add( out, "%9", "Habilitation thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_LICENTIATETHESIS ) { fstatus = fields_add( out, "%9", "Licentiate thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static void append_easyall( fields *in, char *tag, char *entag, int level, fields *out, int *status ) { vplist_index i; int fstatus; vplist a; vplist_init( &a ); fields_findv_each( in, level, FIELDS_CHRP, &a, tag ); for ( i=0; in; ++i ) { fprintf( fp, "%s %s\n", (char*) fields_tag( out, i, FIELDS_CHRP ), (char*) fields_value( out, i, FIELDS_CHRP ) ); } fprintf( fp, "\n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/endout.c0000755000000000000000000010117007346545000015634 0ustar0000000000000000/* * endout.c * * Copyright (c) Chris Putnam 2004-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "generic.h" #include "name.h" #include "title.h" #include "type.h" #include "url.h" #include "bibformats.h" /***************************************************** PUBLIC: int endout_initparams() *****************************************************/ static int endout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static int endout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int endout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_ENDNOTEOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; if ( pm->charsetout == BIBL_CHARSET_UNICODE ) { pm->utf8out = pm->utf8bom = 1; } pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = endout_assemble; pm->writef = endout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int endout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_GENERIC, /* Generic */ TYPE_ARTWORK, /* Artwork */ TYPE_AUDIOVISUAL, /* Audiovisual Material */ TYPE_BILL, /* Bill */ TYPE_BOOK, /* Book */ TYPE_INBOOK, /* Book Section */ TYPE_CASE, /* Case */ TYPE_CHARTTABLE, /* Chart or Table */ TYPE_CLASSICALWORK, /* Classical Work */ TYPE_PROGRAM, /* Computer Program */ TYPE_INPROCEEDINGS, /* Conference Paper */ TYPE_PROCEEDINGS, /* Conference Proceedings */ TYPE_EDITEDBOOK, /* Edited Book */ TYPE_EQUATION, /* Equation */ TYPE_ELECTRONICARTICLE, /* Electronic Article */ TYPE_ELECTRONICBOOK, /* Electronic Book */ TYPE_ELECTRONIC, /* Electronic Source */ TYPE_FIGURE, /* Figure */ TYPE_FILMBROADCAST, /* Film or Broadcast */ TYPE_GOVERNMENT, /* Government Document */ TYPE_HEARING, /* Hearing */ TYPE_ARTICLE, /* Journal Article */ TYPE_LEGALRULE, /* Legal Rule/Regulation */ TYPE_MAGARTICLE, /* Magazine Article */ TYPE_MANUSCRIPT, /* Manuscript */ TYPE_MAP, /* Map */ TYPE_NEWSARTICLE, /* Newspaper Article */ TYPE_ONLINEDATABASE, /* Online Database */ TYPE_ONLINEMULTIMEDIA, /* Online Multimedia */ TYPE_PATENT, /* Patent */ TYPE_COMMUNICATION, /* Personal Communication */ TYPE_REPORT, /* Report */ TYPE_STATUTE, /* Statute */ TYPE_THESIS, /* Thesis */ TYPE_MASTERSTHESIS, /* Thesis */ TYPE_PHDTHESIS, /* Thesis */ TYPE_DIPLOMATHESIS, /* Thesis */ TYPE_DOCTORALTHESIS, /* Thesis */ TYPE_HABILITATIONTHESIS, /* Thesis */ TYPE_LICENTIATETHESIS, /* Thesis */ TYPE_UNPUBLISHED, /* Unpublished Work */ }; static void write_type( FILE *fp, int type ) { switch( type ) { case TYPE_UNKNOWN: fprintf( fp, "TYPE_UNKNOWN" ); break; case TYPE_GENERIC: fprintf( fp, "TYPE_GENERIC" ); break; case TYPE_ARTWORK: fprintf( fp, "TYPE_ARTWORK" ); break; case TYPE_AUDIOVISUAL: fprintf( fp, "TYPE_AUDIOVISUAL" ); break; case TYPE_BILL: fprintf( fp, "TYPE_BILL" ); break; case TYPE_BOOK: fprintf( fp, "TYPE_BOOK" ); break; case TYPE_INBOOK: fprintf( fp, "TYPE_INBOOK" ); break; case TYPE_CASE: fprintf( fp, "TYPE_CASE" ); break; case TYPE_CHARTTABLE: fprintf( fp, "TYPE_CHARITABLE" ); break; case TYPE_CLASSICALWORK: fprintf( fp, "TYPE_CLASSICALWORK" ); break; case TYPE_PROGRAM: fprintf( fp, "TYPE_PROGRAM" ); break; case TYPE_INPROCEEDINGS: fprintf( fp, "TYPE_INPROCEEDINGS" ); break; case TYPE_PROCEEDINGS: fprintf( fp, "TYPE_PROCEEDINGS" ); break; case TYPE_EDITEDBOOK: fprintf( fp, "TYPE_EDITEDBOOK" ); break; case TYPE_EQUATION: fprintf( fp, "TYPE_EQUATION" ); break; case TYPE_ELECTRONICARTICLE: fprintf( fp, "TYPE_ELECTRONICARTICLE" ); break; case TYPE_ELECTRONICBOOK: fprintf( fp, "TYPE_ELECTRONICBOOK" ); break; case TYPE_ELECTRONIC: fprintf( fp, "TYPE_ELECTRONIC" ); break; case TYPE_FIGURE: fprintf( fp, "TYPE_FIGURE" ); break; case TYPE_FILMBROADCAST: fprintf( fp, "TYPE_FILMBROADCAST" ); break; case TYPE_GOVERNMENT: fprintf( fp, "TYPE_GOVERNMENT" ); break; case TYPE_HEARING: fprintf( fp, "TYPE_HEARING" ); break; case TYPE_ARTICLE: fprintf( fp, "TYPE_ARTICLE" ); break; case TYPE_LEGALRULE: fprintf( fp, "TYPE_LEGALRULE" ); break; case TYPE_MAGARTICLE: fprintf( fp, "TYPE_MAGARTICLE" ); break; case TYPE_MANUSCRIPT: fprintf( fp, "TYPE_MANUSCRIPT" ); break; case TYPE_MAP: fprintf( fp, "TYPE_MAP" ); break; case TYPE_NEWSARTICLE: fprintf( fp, "TYPE_NEWSARTICLE" ); break; case TYPE_ONLINEDATABASE: fprintf( fp, "TYPE_ONLINEDATABASE" ); break; case TYPE_ONLINEMULTIMEDIA: fprintf( fp, "TYPE_ONLINEMULTIMEDIA" ); break; case TYPE_PATENT: fprintf( fp, "TYPE_PATENT" ); break; case TYPE_COMMUNICATION: fprintf( fp, "TYPE_COMMUNICATION" ); break; case TYPE_REPORT: fprintf( fp, "TYPE_REPORT" ); break; case TYPE_STATUTE: fprintf( fp, "TYPE_STATUTE" ); break; case TYPE_THESIS: fprintf( fp, "TYPE_THESIS" ); break; case TYPE_MASTERSTHESIS: fprintf( fp, "TYPE_MASTERSTHESIS" ); break; case TYPE_PHDTHESIS: fprintf( fp, "TYPE_PHDTHESIS" ); break; case TYPE_DIPLOMATHESIS: fprintf( fp, "TYPE_DIPLOMATHESIS" ); break; case TYPE_DOCTORALTHESIS: fprintf( fp, "TYPE_DOCTORALTHESIS" ); break; case TYPE_HABILITATIONTHESIS:fprintf( fp, "TYPE_HABILITATIONTHESIS" ); break; case TYPE_UNPUBLISHED: fprintf( fp, "TYPE_UNPUBLISHED" ); break; default: fprintf( fp, "Error - type not in enum" );break; } } static void type_report_progress( param *p, const char *element_type, int type, unsigned long refnum ) { if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from %s element in reference %lu: ", element_type, refnum+1 ); write_type( stderr, type ); fprintf( stderr, "\n" ); } } static int type_from_default( fields *in, param *p, unsigned long refnum ) { int n, type; /* default to chapter if host terms */ if ( fields_maxlevel( in ) > 0 ) type = TYPE_INBOOK; /* default to generic if no host terms */ else type = TYPE_GENERIC; if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot identify TYPE in reference %lu ", refnum+1 ); n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) fprintf( stderr, " %s", (char *) fields_value( in, n, FIELDS_CHRP ) ); if ( type==TYPE_INBOOK ) fprintf( stderr, " (defaulting to book chapter)\n" ); else fprintf( stderr, " (defaulting to generic)\n" ); return type; } static int get_type( fields *in, param *p, unsigned long refnum ) { /* Comment out TYPE_GENERIC entries as that is default, but * keep in source as record of mapping decision. */ match_type genre_matches[] = { /* MARC Authority elements */ { "art original", TYPE_ARTWORK, LEVEL_ANY }, { "art reproduction", TYPE_ARTWORK, LEVEL_ANY }, { "article", TYPE_ARTICLE, LEVEL_ANY }, { "atlas", TYPE_MAP, LEVEL_ANY }, { "autobiography", TYPE_BOOK, LEVEL_ANY }, /* { "bibliography", TYPE_GENERIC, LEVEL_ANY },*/ { "biography", TYPE_BOOK, LEVEL_ANY }, { "book", TYPE_BOOK, LEVEL_MAIN }, { "book", TYPE_INBOOK, LEVEL_ANY }, /* { "calendar", TYPE_GENERIC, LEVEL_ANY },*/ /* { "catalog", TYPE_GENERIC, LEVEL_ANY },*/ { "chart", TYPE_CHARTTABLE, LEVEL_ANY }, /* { "comic or graphic novel", TYPE_GENERIC, LEVEL_ANY },*/ /* { "comic strip", TYPE_GENERIC, LEVEL_ANY },*/ { "conference publication", TYPE_PROCEEDINGS, LEVEL_ANY }, { "database", TYPE_ONLINEDATABASE, LEVEL_ANY }, /* { "dictionary", TYPE_GENERIC, LEVEL_ANY },*/ { "diorama", TYPE_ARTWORK, LEVEL_ANY }, /* { "directory", TYPE_GENERIC, LEVEL_ANY },*/ { "discography", TYPE_AUDIOVISUAL, LEVEL_ANY }, /* { "drama", TYPE_GENERIC, LEVEL_ANY },*/ { "encyclopedia", TYPE_BOOK, LEVEL_ANY }, /* { "essay", TYPE_GENERIC, LEVEL_ANY }, */ { "festschrift", TYPE_BOOK, LEVEL_MAIN }, { "festschrift", TYPE_INBOOK, LEVEL_ANY }, { "fiction", TYPE_BOOK, LEVEL_ANY }, { "filmography", TYPE_FILMBROADCAST, LEVEL_ANY }, { "filmstrip", TYPE_FILMBROADCAST, LEVEL_ANY }, /* { "finding aid", TYPE_GENERIC, LEVEL_ANY },*/ /* { "flash card", TYPE_GENERIC, LEVEL_ANY },*/ { "folktale", TYPE_CLASSICALWORK, LEVEL_ANY }, { "font", TYPE_ELECTRONIC, LEVEL_ANY }, /* { "game", TYPE_GENERIC, LEVEL_ANY },*/ { "government publication", TYPE_GOVERNMENT, LEVEL_ANY }, { "graphic", TYPE_FIGURE, LEVEL_ANY }, { "globe", TYPE_MAP, LEVEL_ANY }, /* { "handbook", TYPE_GENERIC, LEVEL_ANY },*/ { "history", TYPE_BOOK, LEVEL_ANY }, { "hymnal", TYPE_BOOK, LEVEL_MAIN }, { "hymnal", TYPE_INBOOK, LEVEL_ANY }, /* { "humor, satire", TYPE_GENERIC, LEVEL_ANY },*/ /* { "index", TYPE_GENERIC, LEVEL_ANY },*/ /* { "instruction", TYPE_GENERIC, LEVEL_ANY },*/ /* { "interview", TYPE_GENERIC, LEVEL_ANY },*/ { "issue", TYPE_ARTICLE, LEVEL_ANY }, { "journal", TYPE_ARTICLE, LEVEL_ANY }, /* { "kit", TYPE_GENERIC, LEVEL_ANY },*/ /* { "language instruction", TYPE_GENERIC, LEVEL_ANY },*/ /* { "law report or digest", TYPE_GENERIC, LEVEL_ANY },*/ /* { "legal article", TYPE_GENERIC, LEVEL_ANY },*/ { "legal case and case notes", TYPE_CASE, LEVEL_ANY }, { "legislation", TYPE_BILL, LEVEL_ANY }, { "letter", TYPE_COMMUNICATION, LEVEL_ANY }, { "loose-leaf", TYPE_GENERIC, LEVEL_ANY }, { "map", TYPE_MAP, LEVEL_ANY }, /* { "memoir", TYPE_GENERIC, LEVEL_ANY },*/ /* { "microscope slide", TYPE_GENERIC, LEVEL_ANY },*/ /* { "model", TYPE_GENERIC, LEVEL_ANY },*/ { "motion picture", TYPE_AUDIOVISUAL, LEVEL_ANY }, { "multivolume monograph", TYPE_BOOK, LEVEL_ANY }, { "newspaper", TYPE_NEWSARTICLE, LEVEL_ANY }, { "novel", TYPE_BOOK, LEVEL_ANY }, /* { "numeric data", TYPE_GENERIC, LEVEL_ANY },*/ /* { "offprint", TYPE_GENERIC, LEVEL_ANY },*/ { "online system or service", TYPE_ELECTRONIC, LEVEL_ANY }, { "patent", TYPE_PATENT, LEVEL_ANY }, { "picture", TYPE_ARTWORK, LEVEL_ANY }, /* { "poetry", TYPE_GENERIC, LEVEL_ANY },*/ { "programmed text", TYPE_PROGRAM, LEVEL_ANY }, /* { "realia", TYPE_GENERIC, LEVEL_ANY },*/ { "rehearsal", TYPE_AUDIOVISUAL, LEVEL_ANY }, /* { "remote sensing image", TYPE_GENERIC, LEVEL_ANY },*/ /* { "reporting", TYPE_GENERIC, LEVEL_ANY },*/ { "report", TYPE_REPORT, LEVEL_ANY }, /* { "review", TYPE_GENERIC, LEVEL_ANY },*/ /* { "script", TYPE_GENERIC, LEVEL_ANY },*/ /* { "series", TYPE_GENERIC, LEVEL_ANY },*/ /* { "short story", TYPE_GENERIC, LEVEL_ANY },*/ /* { "slide", TYPE_GENERIC, LEVEL_ANY },*/ { "sound", TYPE_AUDIOVISUAL, LEVEL_ANY }, /* { "speech", TYPE_GENERIC, LEVEL_ANY },*/ /* { "standard or specification", TYPE_GENERIC, LEVEL_ANY },*/ /* { "statistics", TYPE_GENERIC, LEVEL_ANY },*/ /* { "survey of literature", TYPE_GENERIC, LEVEL_ANY },*/ { "technical drawing", TYPE_ARTWORK, LEVEL_ANY }, { "technical report", TYPE_REPORT, LEVEL_ANY }, /* { "toy", TYPE_GENERIC, LEVEL_ANY },*/ /* { "transparency", TYPE_GENERIC, LEVEL_ANY },*/ /* { "treaty", TYPE_GENERIC, LEVEL_ANY },*/ { "videorecording", TYPE_AUDIOVISUAL, LEVEL_ANY }, { "web site", TYPE_ELECTRONIC, LEVEL_ANY }, /* Non-MARC Authority elements */ { "academic journal", TYPE_ARTICLE, LEVEL_ANY }, { "collection", TYPE_BOOK, LEVEL_MAIN }, { "collection", TYPE_INBOOK, LEVEL_ANY }, { "magazine", TYPE_MAGARTICLE, LEVEL_ANY }, { "hearing", TYPE_HEARING, LEVEL_ANY }, { "Ph.D. thesis", TYPE_PHDTHESIS, LEVEL_ANY }, { "Masters thesis", TYPE_MASTERSTHESIS, LEVEL_ANY }, { "Diploma thesis", TYPE_DIPLOMATHESIS, LEVEL_ANY }, { "Doctoral thesis", TYPE_DOCTORALTHESIS, LEVEL_ANY }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS, LEVEL_ANY }, { "Licentiate thesis", TYPE_LICENTIATETHESIS, LEVEL_ANY }, { "communication", TYPE_COMMUNICATION, LEVEL_ANY }, { "manuscript", TYPE_MANUSCRIPT, LEVEL_ANY }, { "unpublished", TYPE_UNPUBLISHED, LEVEL_ANY }, /* Delayed MARC Authority elements */ { "thesis", TYPE_THESIS, LEVEL_ANY }, { "periodical", TYPE_MAGARTICLE, LEVEL_ANY }, }; int ngenre_matches = sizeof( genre_matches ) / sizeof( genre_matches[0] ); match_type resource_matches[] = { { "moving image", TYPE_FILMBROADCAST, LEVEL_ANY }, { "software, multimedia", TYPE_PROGRAM, LEVEL_ANY }, }; int nresource_matches = sizeof( resource_matches ) / sizeof( resource_matches[0] ); match_type issuance_matches[] = { { "monographic", TYPE_BOOK, LEVEL_MAIN }, { "monographic", TYPE_INBOOK, LEVEL_ANY }, }; int nissuance_matches = sizeof( issuance_matches ) / sizeof( issuance_matches[0] ); int type; type = type_from_mods_hints( in, TYPE_FROM_GENRE, genre_matches, ngenre_matches, TYPE_UNKNOWN ); type_report_progress( p, "genre", type, refnum ); if ( type!=TYPE_UNKNOWN ) return type; type = type_from_mods_hints( in, TYPE_FROM_RESOURCE, resource_matches, nresource_matches, TYPE_UNKNOWN ); type_report_progress( p, "resource", type, refnum ); if ( type!=TYPE_UNKNOWN ) return type; type = type_from_mods_hints( in, TYPE_FROM_ISSUANCE, issuance_matches, nissuance_matches, TYPE_UNKNOWN ); type_report_progress( p, "issuance", type, refnum ); if ( type!=TYPE_UNKNOWN ) return type; return type_from_default( in, p, refnum ); } static void append_type( int type, fields *out, param *p, int *status ) { /* These are restricted to Endnote-defined types */ match_type genrenames[] = { { "Generic", TYPE_GENERIC }, { "Artwork", TYPE_ARTWORK }, { "Audiovisual Material", TYPE_AUDIOVISUAL }, { "Bill", TYPE_BILL }, { "Book", TYPE_BOOK }, { "Book Section", TYPE_INBOOK }, { "Case", TYPE_CASE }, { "Chart or Table", TYPE_CHARTTABLE }, { "Classical Work", TYPE_CLASSICALWORK }, { "Computer Program", TYPE_PROGRAM }, { "Conference Paper", TYPE_INPROCEEDINGS }, { "Conference Proceedings", TYPE_PROCEEDINGS }, { "Edited Book", TYPE_EDITEDBOOK }, { "Equation", TYPE_EQUATION }, { "Electronic Article", TYPE_ELECTRONICARTICLE }, { "Electronic Book", TYPE_ELECTRONICBOOK }, { "Electronic Source", TYPE_ELECTRONIC }, { "Figure", TYPE_FIGURE }, { "Film or Broadcast", TYPE_FILMBROADCAST }, { "Government Document", TYPE_GOVERNMENT }, { "Hearing", TYPE_HEARING }, { "Journal Article", TYPE_ARTICLE }, { "Legal Rule/Regulation", TYPE_LEGALRULE }, { "Magazine Article", TYPE_MAGARTICLE }, { "Manuscript", TYPE_MANUSCRIPT }, { "Map", TYPE_MAP }, { "Newspaper Article", TYPE_NEWSARTICLE }, { "Online Database", TYPE_ONLINEDATABASE }, { "Online Multimedia", TYPE_ONLINEMULTIMEDIA }, { "Patent", TYPE_PATENT }, { "Personal Communication", TYPE_COMMUNICATION }, { "Report", TYPE_REPORT }, { "Statute", TYPE_STATUTE }, { "Thesis", TYPE_THESIS }, { "Thesis", TYPE_PHDTHESIS }, { "Thesis", TYPE_MASTERSTHESIS }, { "Thesis", TYPE_DIPLOMATHESIS }, { "Thesis", TYPE_DOCTORALTHESIS }, { "Thesis", TYPE_HABILITATIONTHESIS }, { "Unpublished Work", TYPE_UNPUBLISHED }, }; int ngenrenames = sizeof( genrenames ) / sizeof( genrenames[0] ); int i, fstatus, found = 0; for ( i=0; iprogname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot identify type %d\n", type ); } } static int append_title( fields *in, char *full, char *sub, char *endtag, int level, fields *out, int *status ) { str *mainttl = fields_findv( in, level, FIELDS_STRP, full ); str *subttl = fields_findv( in, level, FIELDS_STRP, sub ); str fullttl; int fstatus; str_init( &fullttl ); title_combine( &fullttl, mainttl, subttl ); if ( str_memerr( &fullttl ) ) { *status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fullttl ) ) { fstatus = fields_add( out, endtag, str_cstr( &fullttl ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } out: str_free( &fullttl ); return 1; } static void append_people( fields *in, char *tag, char *entag, int level, fields *out, int *status ) { int i, n, flvl, fstatus; str oneperson; char *ftag; str_init( &oneperson ); n = fields_num( in ); for ( i=0; i0 && m<13 ) str_strcpyc( &monday, months[m-1] ); else str_strcpyc( &monday, month ); } if ( month && day ) str_strcatc( &monday, " " ); if ( day ) str_strcatc( &monday, day ); fstatus = fields_add( out, "%8", str_cstr( &monday ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &monday ); } static void append_genrehint( int type, fields *out, vplist *a, int *status ) { vplist_index i; int fstatus; char *g; for ( i=0; in; ++i ) { g = ( char * ) vplist_get( a, i ); if ( !strcmp( g, "journal article" ) && type==TYPE_ARTICLE ) continue; if ( !strcmp( g, "academic journal" ) && type==TYPE_ARTICLE ) continue; if ( !strcmp( g, "collection" ) && type==TYPE_INBOOK ) continue; if ( !strcmp( g, "television broadcast" ) && type==TYPE_FILMBROADCAST ) continue; if ( !strcmp( g, "electronic" ) && type==TYPE_PROGRAM ) continue; if ( !strcmp( g, "magazine" ) && type==TYPE_MAGARTICLE ) continue; if ( !strcmp( g, "miscellaneous" ) && type==TYPE_GENERIC ) continue; if ( !strcmp( g, "hearing" ) && type==TYPE_HEARING ) continue; if ( !strcmp( g, "communication" ) && type==TYPE_COMMUNICATION ) continue; if ( !strcmp( g, "report" ) && type==TYPE_REPORT ) continue; if ( !strcmp( g, "book chapter" ) && type==TYPE_INBOOK ) continue; fstatus = fields_add( out, "%9", g, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_all_genrehint( int type, fields *in, fields *out, int *status ) { vplist a; vplist_init( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_CHRP, &a, "GENRE:BIBUTILS" ); append_genrehint( type, out, &a, status ); vplist_empty( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_CHRP, &a, "GENRE:UNKNOWN" ); append_genrehint( type, out, &a, status ); vplist_free( &a ); } static void append_thesishint( int type, fields *out, int *status ) { int fstatus; if ( type==TYPE_MASTERSTHESIS ) { fstatus = fields_add( out, "%9", "Masters thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_PHDTHESIS ) { fstatus = fields_add( out, "%9", "Ph.D. thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_DIPLOMATHESIS ) { fstatus = fields_add( out, "%9", "Diploma thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_DOCTORALTHESIS ) { fstatus = fields_add( out, "%9", "Doctoral thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_HABILITATIONTHESIS ) { fstatus = fields_add( out, "%9", "Habilitation thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_LICENTIATETHESIS ) { fstatus = fields_add( out, "%9", "Licentiate thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static void append_easyall( fields *in, char *tag, char *entag, int level, fields *out, int *status ) { vplist_index i; int fstatus; vplist a; vplist_init( &a ); fields_findv_each( in, level, FIELDS_CHRP, &a, tag ); for ( i=0; in; ++i ) { fprintf( fp, "%s %s\n", (char*) fields_tag( out, i, FIELDS_CHRP ), (char*) fields_value( out, i, FIELDS_CHRP ) ); } fprintf( fp, "\n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/endtypes.c0000644000000000000000000017126107346545000016176 0ustar0000000000000000/* * endtypes.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" /* if no specific type can be identified */ static lookups generic[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN } }; static lookups journalarticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE",SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; static lookups magazinearticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* magazine name */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* magazine name */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE",TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE,LEVEL_MAIN }, { "%*", "REVIEWEDITEM",SIMPLE,LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER",SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR",SIMPLE,LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|magazine", ALWAYS, LEVEL_HOST } }; static lookups newspaperarticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "REPORTER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* newspaper name */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* newspaper name */ { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE",TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM",SIMPLE,LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER",SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "ADDRESS:AUTHOR",SIMPLE,LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|newspaper", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "AUTHOR", PERSON, LEVEL_HOST }, /* SERIES_AUTHOR */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%?", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups booksection[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_HOST }, /* editor for book */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* book title */ { "%C", "ADDRESS", SIMPLE, LEVEL_HOST }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_HOST }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%Y", "EDITOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_HOST }, { "%?", "TRANSLATOR", PERSON, LEVEL_HOST }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_HOST }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups editedbook[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "EDITOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_HOST }, /* SERIES_EDITOR */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%P", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%?", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups manuscript[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* COLLECTION_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|manuscript", ALWAYS, LEVEL_MAIN } }; static lookups communication[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "ADDRESSEE", PERSON, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|communication", ALWAYS, LEVEL_MAIN} }; static lookups proceedings[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_MAIN }, { "%B", "TITLE", SIMPLE, LEVEL_HOST }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%Y", "EDITOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_HOST }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; static lookups conferencepaper[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups thesis[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "ACADEMIC_DEPARTMENT", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", PAGES, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, /* thesis type */ { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN } }; static lookups program[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%7", "VERSION", SIMPLE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "COMPUTER", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN } }; static lookups audiovisual[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "WRITER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* COLLECTION_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "EXTENTOFWORK", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "PERFORMER", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|mixed material", ALWAYS, LEVEL_MAIN } }; static lookups broadcast[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "DIRECTOR", PERSON, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%Y", "PRODUCER", PERSON, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%?", "PERFORMER", PERSON, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|moving image", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|motion picture", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|television broadcast", ALWAYS, LEVEL_MAIN }, }; static lookups electronic[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "ACCESS_YEAR", SIMPLE, LEVEL_MAIN }, { "%N", "ACCESS_DATE", DATE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "UPDATE_DATE", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups webpage[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "ACCESS_YEAR", SIMPLE, LEVEL_MAIN }, { "%N", "ACCESS_DATE", DATE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "UPDATE_DATE", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|web page", ALWAYS, LEVEL_MAIN }, }; static lookups artwork[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "ARTIST", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|art original", ALWAYS, LEVEL_MAIN } }; static lookups report[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; static lookups map[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "CARTOGRAPHER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%9", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "SCALE", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|cartographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|map", ALWAYS, LEVEL_MAIN } }; static lookups patent[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "PUBLISHED_SOURCE",SIMPLE, LEVEL_MAIN }, { "%C", "COUNTRY", SIMPLE, LEVEL_MAIN }, { "%I", "ASSIGNEE", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", SIMPLE, LEVEL_MAIN }, { "%@", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "SCALE", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN } }; static lookups hearing[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "COMMITTEE:CORP", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", PAGES, LEVEL_MAIN }, { "%S", "LEGISLATIVEBODY:CORP", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* orig publication */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|hearing",ALWAYS, LEVEL_MAIN } }; static lookups bill[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%V", "CODEVOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "BILLNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "CODEPAGES", SIMPLE, LEVEL_MAIN }, { "%&", "CODESECTION", SIMPLE, LEVEL_MAIN }, { "%S", "LEGISLATIVEBODY:CORP", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%?", "SPONSOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups statute[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%V", "CODENUMBER", SIMPLE, LEVEL_MAIN }, { "%N", "PUBLICLAWNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups lawcase[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%E", "REPORTER", TITLE, LEVEL_HOST }, /*Reporter is name of book*/ { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%I", "COURT:CORP", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "PUBLICLAWNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "STARTPAGE", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%?", "COUNSEL", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legal case and case notes", ALWAYS, LEVEL_MAIN } }; static lookups chart[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|chart", ALWAYS, LEVEL_MAIN } }; static lookups unpublished[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN }, }; /* order is important....."Book" matches "Book" and "Book Section", hence * "Book Section must come first */ #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants end_all[] = { REFTYPE( "Generic", generic ), REFTYPE( "Artwork", artwork ), REFTYPE( "Audiovisual Material", audiovisual ), REFTYPE( "Bill", bill ), REFTYPE( "Book Section", booksection ), REFTYPE( "Book", book ), REFTYPE( "Case", lawcase ), REFTYPE( "Chart or Table", chart ), REFTYPE( "Classical Work", generic ), REFTYPE( "Computer Program", program ), REFTYPE( "Conference Paper", conferencepaper ), REFTYPE( "Conference Proceeding", proceedings ), REFTYPE( "Edited Book", editedbook ), /* REFTYPE( "Equation", equation ), */ /* REFTYPE( "Electronic Article", electronicarticle ), */ /* REFTYPE( "Electronic Book", electronicbook ), */ /* REFTYPE( "Figure", figure ), */ REFTYPE( "Film or Broadcast", broadcast ), REFTYPE( "Electronic Source", electronic ), /* REFTYPE( "Government Document", governmentdocument ), */ REFTYPE( "Hearing", hearing ), REFTYPE( "Journal Article", journalarticle ), /* REFTYPE( "Legal Rule/Regulation", legalrule ), */ REFTYPE( "Magazine Article", magazinearticle ), REFTYPE( "Manuscript", manuscript ), REFTYPE( "Map", map ), REFTYPE( "Newspaper Article", newspaperarticle ), /* REFTYPE( "Online Database", onlinedatabase ), */ /* REFTYPE( "Online Multimedia", onlinemultimedia ), */ REFTYPE( "Patent", patent ), REFTYPE( "Personal Communication", communication ), REFTYPE( "Report", report ), REFTYPE( "Statute", statute ), REFTYPE( "Thesis", thesis ), REFTYPE( "Unpublished Work", unpublished ), REFTYPE( "Web Page", webpage ), }; int end_nall = sizeof( end_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/endtypes.c0000755000000000000000000017126107346545000016201 0ustar0000000000000000/* * endtypes.c * * Copyright (c) Chris Putnam 2003-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" /* if no specific type can be identified */ static lookups generic[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN } }; static lookups journalarticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE",SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; static lookups magazinearticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* magazine name */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* magazine name */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE",TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE,LEVEL_MAIN }, { "%*", "REVIEWEDITEM",SIMPLE,LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER",SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR",SIMPLE,LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|magazine", ALWAYS, LEVEL_HOST } }; static lookups newspaperarticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "REPORTER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* newspaper name */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* newspaper name */ { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE",TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM",SIMPLE,LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER",SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "ADDRESS:AUTHOR",SIMPLE,LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|newspaper", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "AUTHOR", PERSON, LEVEL_HOST }, /* SERIES_AUTHOR */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%?", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups booksection[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_HOST }, /* editor for book */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* book title */ { "%C", "ADDRESS", SIMPLE, LEVEL_HOST }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_HOST }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%Y", "EDITOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_HOST }, { "%?", "TRANSLATOR", PERSON, LEVEL_HOST }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_HOST }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups editedbook[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "EDITOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_HOST }, /* SERIES_EDITOR */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%P", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%?", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups manuscript[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* COLLECTION_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|manuscript", ALWAYS, LEVEL_MAIN } }; static lookups communication[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "ADDRESSEE", PERSON, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|communication", ALWAYS, LEVEL_MAIN} }; static lookups proceedings[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_MAIN }, { "%B", "TITLE", SIMPLE, LEVEL_HOST }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%Y", "EDITOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_HOST }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; static lookups conferencepaper[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups thesis[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "ACADEMIC_DEPARTMENT", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", PAGES, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, /* thesis type */ { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN } }; static lookups program[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%7", "VERSION", SIMPLE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "COMPUTER", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN } }; static lookups audiovisual[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "WRITER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* COLLECTION_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "EXTENTOFWORK", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "PERFORMER", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|mixed material", ALWAYS, LEVEL_MAIN } }; static lookups broadcast[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "DIRECTOR", PERSON, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%Y", "PRODUCER", PERSON, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%?", "PERFORMER", PERSON, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|moving image", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|motion picture", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|television broadcast", ALWAYS, LEVEL_MAIN }, }; static lookups electronic[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "ACCESS_YEAR", SIMPLE, LEVEL_MAIN }, { "%N", "ACCESS_DATE", DATE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "UPDATE_DATE", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups webpage[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "ACCESS_YEAR", SIMPLE, LEVEL_MAIN }, { "%N", "ACCESS_DATE", DATE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "UPDATE_DATE", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|web page", ALWAYS, LEVEL_MAIN }, }; static lookups artwork[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "ARTIST", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|art original", ALWAYS, LEVEL_MAIN } }; static lookups report[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; static lookups map[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "CARTOGRAPHER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%9", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "SCALE", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|cartographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|map", ALWAYS, LEVEL_MAIN } }; static lookups patent[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "PUBLISHED_SOURCE",SIMPLE, LEVEL_MAIN }, { "%C", "COUNTRY", SIMPLE, LEVEL_MAIN }, { "%I", "ASSIGNEE", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", SIMPLE, LEVEL_MAIN }, { "%@", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "SCALE", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN } }; static lookups hearing[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "COMMITTEE:CORP", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", PAGES, LEVEL_MAIN }, { "%S", "LEGISLATIVEBODY:CORP", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* orig publication */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|hearing",ALWAYS, LEVEL_MAIN } }; static lookups bill[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%V", "CODEVOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "BILLNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "CODEPAGES", SIMPLE, LEVEL_MAIN }, { "%&", "CODESECTION", SIMPLE, LEVEL_MAIN }, { "%S", "LEGISLATIVEBODY:CORP", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%?", "SPONSOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups statute[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%V", "CODENUMBER", SIMPLE, LEVEL_MAIN }, { "%N", "PUBLICLAWNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups lawcase[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%E", "REPORTER", TITLE, LEVEL_HOST }, /*Reporter is name of book*/ { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%I", "COURT:CORP", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "PUBLICLAWNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "STARTPAGE", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%?", "COUNSEL", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legal case and case notes", ALWAYS, LEVEL_MAIN } }; static lookups chart[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|chart", ALWAYS, LEVEL_MAIN } }; static lookups unpublished[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%+", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN }, }; /* order is important....."Book" matches "Book" and "Book Section", hence * "Book Section must come first */ #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants end_all[] = { REFTYPE( "Generic", generic ), REFTYPE( "Artwork", artwork ), REFTYPE( "Audiovisual Material", audiovisual ), REFTYPE( "Bill", bill ), REFTYPE( "Book Section", booksection ), REFTYPE( "Book", book ), REFTYPE( "Case", lawcase ), REFTYPE( "Chart or Table", chart ), REFTYPE( "Classical Work", generic ), REFTYPE( "Computer Program", program ), REFTYPE( "Conference Paper", conferencepaper ), REFTYPE( "Conference Proceeding", proceedings ), REFTYPE( "Edited Book", editedbook ), /* REFTYPE( "Equation", equation ), */ /* REFTYPE( "Electronic Article", electronicarticle ), */ /* REFTYPE( "Electronic Book", electronicbook ), */ /* REFTYPE( "Figure", figure ), */ REFTYPE( "Film or Broadcast", broadcast ), REFTYPE( "Electronic Source", electronic ), /* REFTYPE( "Government Document", governmentdocument ), */ REFTYPE( "Hearing", hearing ), REFTYPE( "Journal Article", journalarticle ), /* REFTYPE( "Legal Rule/Regulation", legalrule ), */ REFTYPE( "Magazine Article", magazinearticle ), REFTYPE( "Manuscript", manuscript ), REFTYPE( "Map", map ), REFTYPE( "Newspaper Article", newspaperarticle ), /* REFTYPE( "Online Database", onlinedatabase ), */ /* REFTYPE( "Online Multimedia", onlinemultimedia ), */ REFTYPE( "Patent", patent ), REFTYPE( "Personal Communication", communication ), REFTYPE( "Report", report ), REFTYPE( "Statute", statute ), REFTYPE( "Thesis", thesis ), REFTYPE( "Unpublished Work", unpublished ), REFTYPE( "Web Page", webpage ), }; int end_nall = sizeof( end_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/endxmlin.c0000644000000000000000000003760007346545000016157 0ustar0000000000000000/* * endxmlin.c * * Copyright (c) Chris Putnam 2006-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "xml.h" #include "xml_encoding.h" #include "reftypes.h" #include "bibformats.h" typedef struct { char *attrib; char *internal; } attribs; extern variants end_all[]; extern int end_nall; static int endxmlin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int endxmlin_processf( fields *endin, const char *p, const char *filename, long nref, param *pm ); extern int endin_typef( fields *endin, const char *filename, int nrefs, param *p ); extern int endin_convertf( fields *endin, fields *info, int reftype, param *p ); extern int endin_cleanf( bibl *bin, param *p ); /***************************************************** PUBLIC: void endxmlin_initparams() *****************************************************/ int endxmlin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_ENDNOTEXMLIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 1; pm->utf8in = 1; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = endxmlin_readf; pm->processf = endxmlin_processf; pm->cleanf = NULL; pm->typef = endin_typef; pm->convertf = endin_convertf; pm->all = end_all; pm->nall = end_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int endxmlin_readf() *****************************************************/ static int xml_readmore( FILE *fp, char *buf, int bufsize, int *bufpos ) { if ( !feof( fp ) && fgets( buf, bufsize, fp ) ) return 0; return 1; } static int endxmlin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0, done = 0, file_charset = CHARSET_UNKNOWN, m; char *startptr = NULL, *endptr = NULL; str tmp; str_init( &tmp ); while ( !haveref && !done ) { if ( str_is_empty( line ) ) { done = xml_readmore( fp, buf, bufsize, bufpos ); str_strcatc( line, buf ); } if ( !inref ) { startptr = xml_find_start( str_cstr( line ), "RECORD" ); if ( startptr ) inref = 1; } else { endptr = xml_find_end( str_cstr( line ), "RECORD" ); } /* If no tag, we can trim up to last 8 bytes */ /* Emptying string can lose fragments of tag */ if ( !startptr ) { if ( line->len > 8 ) { int n = 8; char *p = &(line->data[line->len-1]); while ( *p && n ) { p--; n--; } str_segdel( line, line->data, p ); } } /* ...entire reference is not in line, read more */ if ( !startptr || !endptr ) { done = xml_readmore( fp, buf, bufsize, bufpos ); str_strcatc( line, buf ); } /* ...we can reallocate in str_strcat; must re-find the tags */ else { startptr = xml_find_start( str_cstr( line ), "RECORD" ); endptr = xml_find_end ( str_cstr( line ), "RECORD" ); str_segcpy( reference, startptr, endptr ); /* clear out information in line */ str_strcpyc( &tmp, endptr ); str_strcpy( line, &tmp ); haveref = 1; } m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int endxmlin_processf() *****************************************************/ /* * add data to fields */ /* * handle fields with (potentially) several style pieces * * * * * * aaaaaa * * * * */ static int endxmlin_datar( xml *node, str *s ) { int status; if ( xml_has_value( node ) ) { str_strcat( s, &(node->value) ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; } if ( node->down && xml_tag_matches( node->down, "style" ) ) { status = endxmlin_datar( node->down, s ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node, "style" ) && node->next ) { status = endxmlin_datar( node->next, s ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_data( xml *node, char *inttag, fields *info, int level ) { int status; str s; str_init( &s ); status = endxmlin_datar( node, &s ); if ( status!=BIBL_OK ) return status; if ( str_has_value( &s ) ) { status = fields_add( info, inttag, str_cstr( &s ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &s ); return BIBL_OK; } /* * * <style>ACTUAL TITLE HERE</style><style>MORE TITLE</style> * * */ static int endxmlin_titles( xml *node, fields *info ) { attribs a[] = { { "title", "%T" }, { "secondary-title", "%B" }, { "tertiary-title", "%S" }, { "alt-title", "%!" }, { "short-title", "SHORTTITLE" }, }; int n = sizeof( a ) / sizeof ( a[0] ); int i, fstatus, status = BIBL_OK; str title; str_init( &title ); for ( i=0; idown ) { str_empty( &title ); fstatus = endxmlin_datar( node, &title ); if ( fstatus!=BIBL_OK ) { status = BIBL_ERR_MEMERR; goto out; } str_trimstartingws( &title ); str_trimendingws( &title ); fstatus = fields_add( info, a[i].internal, str_cstr( &title ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } if ( node->next ) status = endxmlin_titles( node->next, info ); out: str_free( &title ); return status; } /* * * * * * * */ /* * */ static int endxmlin_contributor( xml *node, fields *info, char *int_tag, int level ) { int status; status = endxmlin_data( node, int_tag, info, level ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = endxmlin_contributor( node->next, info, int_tag, level ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_contributors( xml *node, fields *info ) { attribs a[] = { { "authors", "%A" }, { "secondary-authors", "%E" }, { "tertiary-authors", "%Y" }, { "subsidiary-authors", "%?" }, { "translated-authors", "%?" }, }; int i, status, n = sizeof( a ) / sizeof ( a[0] ); for ( i=0; idown ) { status = endxmlin_contributor( node->down, info, a[i].internal, 0 ); if ( status!=BIBL_OK ) return status; } } if ( node->next ) { status = endxmlin_contributors( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_keyword( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "keyword" ) ) { status = endxmlin_data( node, "%K", info, LEVEL_MAIN ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = endxmlin_keyword( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_keywords( xml *node, fields *info ) { if ( node->down && xml_tag_matches( node->down, "keyword" ) ) return endxmlin_keyword( node->down, info ); return BIBL_OK; } /* * */ static int endxmlin_ern( xml *node, fields *info ) { if ( xml_tag_matches( node, "electronic-resource-num" ) ) return endxmlin_data( node, "DOI", info, LEVEL_MAIN ); return BIBL_OK; } static int endxmlin_language( xml *node, fields *info ) { if ( xml_tag_matches( node, "language" ) ) return endxmlin_data( node, "%G", info, LEVEL_MAIN ); return BIBL_OK; } /* * * * internal-pdf://Zukin_1995_The_Cultures_of_Cities-0000551425/Zukin_1995_The_Cultures_of_Cities.pdf * * */ static int endxmlin_fileattach( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "url" ) ) { status = endxmlin_data( node, "FILEATTACH", info, LEVEL_MAIN ); if ( status!=BIBL_OK ) return status; } if ( node->down ) { status = endxmlin_fileattach( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = endxmlin_fileattach( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_urls( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "pdf-urls" ) && node->down ) { status = endxmlin_fileattach( node->down, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "url" ) ) { status = endxmlin_data( node, "%U", info, LEVEL_MAIN ); if ( status!=BIBL_OK ) return status; } else { if ( node->down ) { if ( xml_tag_matches( node->down, "related-urls" ) || xml_tag_matches( node->down, "pdf-urls" ) || xml_tag_matches( node->down, "url" ) ) { status = endxmlin_urls( node->down, info ); if ( status!=BIBL_OK ) return status; } } } if ( node->next ) { status = endxmlin_urls( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_pubdates( xml *node, fields *info ) { if ( xml_tag_matches( node, "date" ) ) return endxmlin_data( node, "%8", info, LEVEL_MAIN ); else { if ( node->down && xml_tag_matches( node->down, "date" ) ) return endxmlin_pubdates( node->down, info ); } return BIBL_OK; } static int endxmlin_dates( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "year" ) ) { status = endxmlin_data( node, "%D", info, LEVEL_MAIN ); if ( status!=BIBL_OK ) return status; } else { if ( node->down ) { if ( xml_tag_matches( node->down, "year" ) ) { status = endxmlin_dates( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node->down, "pub-dates" ) ) { status = endxmlin_pubdates( node->down, info ); if ( status!=BIBL_OK ) return status; } } } if ( node->next ) { status = endxmlin_dates( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 17 */ static int endxmlin_reftype( xml *node, fields *info ) { int status; str *s; s = xml_attribute( node, "name" ); if ( str_has_value( s ) ) { status = fields_add( info, "%0", str_cstr( s ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int endxmlin_record( xml *node, fields *info ) { attribs a[] = { { "volume", "%V" }, { "num-vol", "%6" }, { "pages", "%P" }, { "number", "%N" }, { "issue", "%N" }, { "label", "%F" }, { "auth-address", "%C" }, { "auth-affiliation", "%C" }, { "pub-location", "%C" }, { "publisher", "%I" }, { "abstract", "%X" }, { "edition", "%7" }, { "reprint-edition", "%)" }, { "section", "%&" }, { "accession-num", "%M" }, { "call-num", "%L" }, { "isbn", "%@" }, { "notes", "%O" }, { "custom1", "%1" }, { "custom2", "%2" }, { "custom3", "%3" }, { "custom4", "%4" }, { "custom5", "%#" }, { "custom6", "%$" }, }; int i, status, n = sizeof ( a ) / sizeof( a[0] ); if ( xml_tag_matches( node, "DATABASE" ) ) { } else if ( xml_tag_matches( node, "SOURCE-APP" ) ) { } else if ( xml_tag_matches( node, "REC-NUMBER" ) ) { } else if ( xml_tag_matches( node, "ref-type" ) ) { status = endxmlin_reftype( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "contributors" ) ) { if ( node->down ) { status = endxmlin_contributors( node->down, info ); if ( status!=BIBL_OK ) return status; } } else if ( xml_tag_matches( node, "titles" ) ) { if ( node->down ) endxmlin_titles( node->down, info ); } else if ( xml_tag_matches( node, "keywords" ) ) { status = endxmlin_keywords( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "urls" ) ) { status = endxmlin_urls( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "electronic-resource-num" ) ) { status = endxmlin_ern( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "dates" ) ) { status = endxmlin_dates( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "language" ) ) { status = endxmlin_language( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "periodical" ) ) { } else if ( xml_tag_matches( node, "secondary-volume" ) ) { } else if ( xml_tag_matches( node, "secondary-issue" ) ) { } else if ( xml_tag_matches( node, "reprint-status" ) ) { } else if ( xml_tag_matches( node, "orig-pub" ) ) { } else if ( xml_tag_matches( node, "report-id" ) ) { } else if ( xml_tag_matches( node, "coden" ) ) { } else if ( xml_tag_matches( node, "caption" ) ) { } else if ( xml_tag_matches( node, "research-notes" ) ) { } else if ( xml_tag_matches( node, "work-type" ) ) { } else if ( xml_tag_matches( node, "reviewed-item" ) ) { } else if ( xml_tag_matches( node, "availability" ) ) { } else if ( xml_tag_matches( node, "remote-source" ) ) { } else if ( xml_tag_matches( node, "meeting-place" ) ) { } else if ( xml_tag_matches( node, "work-location" ) ) { } else if ( xml_tag_matches( node, "work-extent" ) ) { } else if ( xml_tag_matches( node, "pack-method" ) ) { } else if ( xml_tag_matches( node, "size" ) ) { } else if ( xml_tag_matches( node, "repro-ratio" ) ) { } else if ( xml_tag_matches( node, "remote-database-name" ) ) { } else if ( xml_tag_matches( node, "remote-database-provider" ) ) { } else if ( xml_tag_matches( node, "access-date" ) ) { } else if ( xml_tag_matches( node, "modified-data" ) ) { } else if ( xml_tag_matches( node, "misc1" ) ) { } else if ( xml_tag_matches( node, "misc2" ) ) { } else if ( xml_tag_matches( node, "misc3" ) ) { } else { for ( i=0; inext ) { status = endxmlin_record( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_assembleref( xml *node, fields *info ) { int status; if ( str_is_empty( &(node->tag) ) ) { if ( node->down ) return endxmlin_assembleref( node->down, info ); } else if ( xml_tag_matches( node, "RECORD" ) ) { if ( node->down ) { status = endxmlin_record( node->down, info ); if ( status!=BIBL_OK ) return status; } } return BIBL_OK; } /* endxmlin_processf first operates by converting to endnote input * the endnote->mods conversion happens in convertf. * * this is necessary as the xml format is as nasty and as overloaded * as the tags used in the Refer format output */ static int endxmlin_processf( fields *fin, const char *data, const char *filename, long nref, param *pm ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = endxmlin_assembleref( &top, fin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; return 0; } hs-bibutils-6.10.0.0/bibutils/endxmlin.c0000755000000000000000000003760007346545000016162 0ustar0000000000000000/* * endxmlin.c * * Copyright (c) Chris Putnam 2006-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "xml.h" #include "xml_encoding.h" #include "reftypes.h" #include "bibformats.h" typedef struct { char *attrib; char *internal; } attribs; extern variants end_all[]; extern int end_nall; static int endxmlin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int endxmlin_processf( fields *endin, const char *p, const char *filename, long nref, param *pm ); extern int endin_typef( fields *endin, const char *filename, int nrefs, param *p ); extern int endin_convertf( fields *endin, fields *info, int reftype, param *p ); extern int endin_cleanf( bibl *bin, param *p ); /***************************************************** PUBLIC: void endxmlin_initparams() *****************************************************/ int endxmlin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_ENDNOTEXMLIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 1; pm->utf8in = 1; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = endxmlin_readf; pm->processf = endxmlin_processf; pm->cleanf = NULL; pm->typef = endin_typef; pm->convertf = endin_convertf; pm->all = end_all; pm->nall = end_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int endxmlin_readf() *****************************************************/ static int xml_readmore( FILE *fp, char *buf, int bufsize, int *bufpos ) { if ( !feof( fp ) && fgets( buf, bufsize, fp ) ) return 0; return 1; } static int endxmlin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0, done = 0, file_charset = CHARSET_UNKNOWN, m; char *startptr = NULL, *endptr = NULL; str tmp; str_init( &tmp ); while ( !haveref && !done ) { if ( str_is_empty( line ) ) { done = xml_readmore( fp, buf, bufsize, bufpos ); str_strcatc( line, buf ); } if ( !inref ) { startptr = xml_find_start( str_cstr( line ), "RECORD" ); if ( startptr ) inref = 1; } else { endptr = xml_find_end( str_cstr( line ), "RECORD" ); } /* If no tag, we can trim up to last 8 bytes */ /* Emptying string can lose fragments of tag */ if ( !startptr ) { if ( line->len > 8 ) { int n = 8; char *p = &(line->data[line->len-1]); while ( *p && n ) { p--; n--; } str_segdel( line, line->data, p ); } } /* ...entire reference is not in line, read more */ if ( !startptr || !endptr ) { done = xml_readmore( fp, buf, bufsize, bufpos ); str_strcatc( line, buf ); } /* ...we can reallocate in str_strcat; must re-find the tags */ else { startptr = xml_find_start( str_cstr( line ), "RECORD" ); endptr = xml_find_end ( str_cstr( line ), "RECORD" ); str_segcpy( reference, startptr, endptr ); /* clear out information in line */ str_strcpyc( &tmp, endptr ); str_strcpy( line, &tmp ); haveref = 1; } m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int endxmlin_processf() *****************************************************/ /* * add data to fields */ /* * handle fields with (potentially) several style pieces * * * * * * aaaaaa * * * * */ static int endxmlin_datar( xml *node, str *s ) { int status; if ( xml_has_value( node ) ) { str_strcat( s, &(node->value) ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; } if ( node->down && xml_tag_matches( node->down, "style" ) ) { status = endxmlin_datar( node->down, s ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node, "style" ) && node->next ) { status = endxmlin_datar( node->next, s ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_data( xml *node, char *inttag, fields *info, int level ) { int status; str s; str_init( &s ); status = endxmlin_datar( node, &s ); if ( status!=BIBL_OK ) return status; if ( str_has_value( &s ) ) { status = fields_add( info, inttag, str_cstr( &s ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &s ); return BIBL_OK; } /* * * <style>ACTUAL TITLE HERE</style><style>MORE TITLE</style> * * */ static int endxmlin_titles( xml *node, fields *info ) { attribs a[] = { { "title", "%T" }, { "secondary-title", "%B" }, { "tertiary-title", "%S" }, { "alt-title", "%!" }, { "short-title", "SHORTTITLE" }, }; int n = sizeof( a ) / sizeof ( a[0] ); int i, fstatus, status = BIBL_OK; str title; str_init( &title ); for ( i=0; idown ) { str_empty( &title ); fstatus = endxmlin_datar( node, &title ); if ( fstatus!=BIBL_OK ) { status = BIBL_ERR_MEMERR; goto out; } str_trimstartingws( &title ); str_trimendingws( &title ); fstatus = fields_add( info, a[i].internal, str_cstr( &title ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } if ( node->next ) status = endxmlin_titles( node->next, info ); out: str_free( &title ); return status; } /* * * * * * * */ /* * */ static int endxmlin_contributor( xml *node, fields *info, char *int_tag, int level ) { int status; status = endxmlin_data( node, int_tag, info, level ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = endxmlin_contributor( node->next, info, int_tag, level ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_contributors( xml *node, fields *info ) { attribs a[] = { { "authors", "%A" }, { "secondary-authors", "%E" }, { "tertiary-authors", "%Y" }, { "subsidiary-authors", "%?" }, { "translated-authors", "%?" }, }; int i, status, n = sizeof( a ) / sizeof ( a[0] ); for ( i=0; idown ) { status = endxmlin_contributor( node->down, info, a[i].internal, 0 ); if ( status!=BIBL_OK ) return status; } } if ( node->next ) { status = endxmlin_contributors( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_keyword( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "keyword" ) ) { status = endxmlin_data( node, "%K", info, LEVEL_MAIN ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = endxmlin_keyword( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_keywords( xml *node, fields *info ) { if ( node->down && xml_tag_matches( node->down, "keyword" ) ) return endxmlin_keyword( node->down, info ); return BIBL_OK; } /* * */ static int endxmlin_ern( xml *node, fields *info ) { if ( xml_tag_matches( node, "electronic-resource-num" ) ) return endxmlin_data( node, "DOI", info, LEVEL_MAIN ); return BIBL_OK; } static int endxmlin_language( xml *node, fields *info ) { if ( xml_tag_matches( node, "language" ) ) return endxmlin_data( node, "%G", info, LEVEL_MAIN ); return BIBL_OK; } /* * * * internal-pdf://Zukin_1995_The_Cultures_of_Cities-0000551425/Zukin_1995_The_Cultures_of_Cities.pdf * * */ static int endxmlin_fileattach( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "url" ) ) { status = endxmlin_data( node, "FILEATTACH", info, LEVEL_MAIN ); if ( status!=BIBL_OK ) return status; } if ( node->down ) { status = endxmlin_fileattach( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = endxmlin_fileattach( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_urls( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "pdf-urls" ) && node->down ) { status = endxmlin_fileattach( node->down, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "url" ) ) { status = endxmlin_data( node, "%U", info, LEVEL_MAIN ); if ( status!=BIBL_OK ) return status; } else { if ( node->down ) { if ( xml_tag_matches( node->down, "related-urls" ) || xml_tag_matches( node->down, "pdf-urls" ) || xml_tag_matches( node->down, "url" ) ) { status = endxmlin_urls( node->down, info ); if ( status!=BIBL_OK ) return status; } } } if ( node->next ) { status = endxmlin_urls( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_pubdates( xml *node, fields *info ) { if ( xml_tag_matches( node, "date" ) ) return endxmlin_data( node, "%8", info, LEVEL_MAIN ); else { if ( node->down && xml_tag_matches( node->down, "date" ) ) return endxmlin_pubdates( node->down, info ); } return BIBL_OK; } static int endxmlin_dates( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "year" ) ) { status = endxmlin_data( node, "%D", info, LEVEL_MAIN ); if ( status!=BIBL_OK ) return status; } else { if ( node->down ) { if ( xml_tag_matches( node->down, "year" ) ) { status = endxmlin_dates( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node->down, "pub-dates" ) ) { status = endxmlin_pubdates( node->down, info ); if ( status!=BIBL_OK ) return status; } } } if ( node->next ) { status = endxmlin_dates( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 17 */ static int endxmlin_reftype( xml *node, fields *info ) { int status; str *s; s = xml_attribute( node, "name" ); if ( str_has_value( s ) ) { status = fields_add( info, "%0", str_cstr( s ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int endxmlin_record( xml *node, fields *info ) { attribs a[] = { { "volume", "%V" }, { "num-vol", "%6" }, { "pages", "%P" }, { "number", "%N" }, { "issue", "%N" }, { "label", "%F" }, { "auth-address", "%C" }, { "auth-affiliation", "%C" }, { "pub-location", "%C" }, { "publisher", "%I" }, { "abstract", "%X" }, { "edition", "%7" }, { "reprint-edition", "%)" }, { "section", "%&" }, { "accession-num", "%M" }, { "call-num", "%L" }, { "isbn", "%@" }, { "notes", "%O" }, { "custom1", "%1" }, { "custom2", "%2" }, { "custom3", "%3" }, { "custom4", "%4" }, { "custom5", "%#" }, { "custom6", "%$" }, }; int i, status, n = sizeof ( a ) / sizeof( a[0] ); if ( xml_tag_matches( node, "DATABASE" ) ) { } else if ( xml_tag_matches( node, "SOURCE-APP" ) ) { } else if ( xml_tag_matches( node, "REC-NUMBER" ) ) { } else if ( xml_tag_matches( node, "ref-type" ) ) { status = endxmlin_reftype( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "contributors" ) ) { if ( node->down ) { status = endxmlin_contributors( node->down, info ); if ( status!=BIBL_OK ) return status; } } else if ( xml_tag_matches( node, "titles" ) ) { if ( node->down ) endxmlin_titles( node->down, info ); } else if ( xml_tag_matches( node, "keywords" ) ) { status = endxmlin_keywords( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "urls" ) ) { status = endxmlin_urls( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "electronic-resource-num" ) ) { status = endxmlin_ern( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "dates" ) ) { status = endxmlin_dates( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "language" ) ) { status = endxmlin_language( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "periodical" ) ) { } else if ( xml_tag_matches( node, "secondary-volume" ) ) { } else if ( xml_tag_matches( node, "secondary-issue" ) ) { } else if ( xml_tag_matches( node, "reprint-status" ) ) { } else if ( xml_tag_matches( node, "orig-pub" ) ) { } else if ( xml_tag_matches( node, "report-id" ) ) { } else if ( xml_tag_matches( node, "coden" ) ) { } else if ( xml_tag_matches( node, "caption" ) ) { } else if ( xml_tag_matches( node, "research-notes" ) ) { } else if ( xml_tag_matches( node, "work-type" ) ) { } else if ( xml_tag_matches( node, "reviewed-item" ) ) { } else if ( xml_tag_matches( node, "availability" ) ) { } else if ( xml_tag_matches( node, "remote-source" ) ) { } else if ( xml_tag_matches( node, "meeting-place" ) ) { } else if ( xml_tag_matches( node, "work-location" ) ) { } else if ( xml_tag_matches( node, "work-extent" ) ) { } else if ( xml_tag_matches( node, "pack-method" ) ) { } else if ( xml_tag_matches( node, "size" ) ) { } else if ( xml_tag_matches( node, "repro-ratio" ) ) { } else if ( xml_tag_matches( node, "remote-database-name" ) ) { } else if ( xml_tag_matches( node, "remote-database-provider" ) ) { } else if ( xml_tag_matches( node, "access-date" ) ) { } else if ( xml_tag_matches( node, "modified-data" ) ) { } else if ( xml_tag_matches( node, "misc1" ) ) { } else if ( xml_tag_matches( node, "misc2" ) ) { } else if ( xml_tag_matches( node, "misc3" ) ) { } else { for ( i=0; inext ) { status = endxmlin_record( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_assembleref( xml *node, fields *info ) { int status; if ( str_is_empty( &(node->tag) ) ) { if ( node->down ) return endxmlin_assembleref( node->down, info ); } else if ( xml_tag_matches( node, "RECORD" ) ) { if ( node->down ) { status = endxmlin_record( node->down, info ); if ( status!=BIBL_OK ) return status; } } return BIBL_OK; } /* endxmlin_processf first operates by converting to endnote input * the endnote->mods conversion happens in convertf. * * this is necessary as the xml format is as nasty and as overloaded * as the tags used in the Refer format output */ static int endxmlin_processf( fields *fin, const char *data, const char *filename, long nref, param *pm ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = endxmlin_assembleref( &top, fin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; return 0; } hs-bibutils-6.10.0.0/bibutils/entities.c0000644000000000000000000003452707346545000016172 0ustar0000000000000000/* * entities.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "entities.h" /* HTML 4.0 entities */ typedef struct entities { char html[20]; unsigned int unicode; } entities; entities html_entities[] = { /* Special Entities */ { """, 34 }, /* quotation mark */ { "&", 38 }, /* ampersand */ { "'", 39 }, /* apostrophe (note not defined in HTML) */ { "(", 40 }, /* left parenthesis */ { ")", 41 }, /* right parenthesis */ { "‐", 45 }, /* hyphen */ { "<", 60 }, /* less-than sign */ { ">", 62 }, /* greater-than sign */ { "?", 63 }, /* question mark */ { "Œ", 338 }, /* Latin cap ligature OE */ { "œ", 339 }, /* Latin small ligature OE */ { "Š", 352 }, /* Latin cap S with caron */ { "š", 353 }, /* Latin cap S with caron */ { "Ÿ", 376 }, /* Latin cap y with diaeresis */ { "ˆ", 710 }, /* modifier letter circumflex */ { "˜", 732 }, /* small tilde */ { " ", 8194 }, /* en space */ { " ", 8195 }, /* em space */ { " ", 8201 }, /* thin space */ { "‌", 8204 }, /* zero width non-joiner */ { "‍", 8205 }, /* zero width joiner */ { "‎", 8206 }, /* left-to-right mark */ { "‏", 8207 }, /* right-to-left mark */ { "–", 8211 }, /* en dash */ { "—", 8212 }, /* em dash */ { "‘", 8216 }, /* left single quotation mark */ { "’", 8217 }, /* right single quot. mark */ { "‚", 8218 }, /* single low-9 quot. mark */ { "“", 8220 }, /* left double quot. mark */ { "”", 8221 }, /* right double quot. mark */ { "„", 8222 }, /* double low-9 quot. mark */ { "†", 8224 }, /* dagger */ { "‡", 8225 }, /* double dagger */ { "‰", 8240 }, /* per mille sign */ { "‹", 8249 }, /* sin. left angle quot mark */ { "›", 8250 }, /* sin. right angle quot mark */ { "€", 8364 }, /* euro sign */ /* Symbols and Greek characters */ { "ƒ", 402 }, /* small f with hook = function */ { "Α", 913 }, /* capital alpha */ { "Β", 914 }, /* capital beta */ { "Γ", 915 }, /* capital gamma */ { "Δ", 916 }, /* capital delta */ { "Ε", 917 }, /* capital epsilon */ { "Ζ", 918 }, /* capital zeta */ { "Η", 919 }, /* capital eta */ { "Θ", 920 }, /* capital theta */ { "Ι", 921 }, /* capital iota */ { "Κ", 922 }, /* capital kappa */ { "Λ", 923 }, /* capital lambda */ { "Μ", 924 }, /* capital mu */ { "Ν", 925 }, /* capital nu */ { "Ξ", 926 }, /* capital xi */ { "Ο", 927 }, /* capital omicron */ { "Π", 928 }, /* capital pi */ { "Ρ", 929 }, /* capital rho */ { "Σ", 931 }, /* capital sigma */ { "Τ", 932 }, /* capital tau */ { "Υ", 933 }, /* capital upsilon */ { "Φ", 934 }, /* capital phi */ { "Χ", 935 }, /* capital chi */ { "Ψ", 936 }, /* capital psi */ { "Ω", 937 }, /* capital omega */ { "α", 945 }, /* small alpha */ { "β", 946 }, /* small beta */ { "γ", 947 }, /* small gamma */ { "δ", 948 }, /* small delta */ { "ε", 949 }, /* small epsilon */ { "ζ", 950 }, /* small zeta */ { "η", 951 }, /* small eta */ { "θ", 952 }, /* small theta */ { "ι", 953 }, /* small iota */ { "κ", 954 }, /* small kappa */ { "λ", 955 }, /* small lambda */ { "μ", 956 }, /* small mu */ { "ν", 957 }, /* small nu */ { "ξ", 958 }, /* small xi */ { "ο", 959 }, /* small omicron */ { "π", 960 }, /* small pi */ { "ρ", 961 }, /* small rho */ { "ς", 962 }, /* small final sigma */ { "σ", 963 }, /* small simga */ { "τ", 964 }, /* small tau */ { "υ", 965 }, /* small upsilon */ { "φ", 966 }, /* small phi */ { "χ", 967 }, /* small chi */ { "ψ", 968 }, /* small psi */ { "ω", 969 }, /* small omega */ { "ϑ",977 }, /* small theta symbol */ { "ϒ", 978 }, /* small upsilon with hook */ { "ϖ", 982 }, /* pi symbol */ { "•", 8226 }, /* bullet = small blk circle */ { "…", 8230 }, /* horizontal ellipsis */ { "′", 8242 }, /* prime = minutes = feet */ { "″", 8243 }, /* double prime */ { "‾", 8254 }, /* overline */ { "⁄", 8260 }, /* fraction slash */ { "℘", 8472 }, /* Weierstrass p = power set */ { "ℑ", 8465 }, /* imaginary part-black cap I */ { "ℜ", 8476 }, /* real part-black cap R */ { "™", 8482 }, /* trademark sign */ { "ℵ",8501 }, /* alef symbol */ { "←", 8592 }, /* left arrow */ { "↑", 8593 }, /* up arrow */ { "→", 8594 }, /* right arrow */ { "↓", 8595 }, /* down arrow */ { "↔", 8596 }, /* left/right arrow */ { "↵", 8629 }, /* down arrow with corner left */ { "⇐", 8656 }, /* left double arrow */ { "⇑", 8657 }, /* up double arrow */ { "⇒", 8658 }, /* up double arrow */ { "⇓", 8659 }, /* up double arrow */ { "⇔", 8660 }, /* up double arrow */ { "∀", 8704}, /* for all */ { "∂", 8706}, /* partial differential */ { "∃", 8707}, /* there exists */ { "∅", 8709}, /* empty set */ { "∇", 8711}, /* nabla=backwards difference */ { "∈", 8712}, /* element of */ { "∉", 8713}, /* not an element of */ { "∋", 8715}, /* contains as member */ { "∏", 8719}, /* n-ary product */ { "∑", 8721}, /* n-ary summation */ { "−", 8722}, /* minuss sign */ { "∗", 8727}, /* asterisk operator */ { "√", 8730}, /* square root */ { "∝", 8733}, /* proportional to */ { "∞", 8734}, /* infinity */ { "∠", 8736}, /* angle */ { "∧", 8743}, /* logical and */ { "∨", 8744}, /* logical or */ { "∩", 8745}, /* intersection */ { "∪", 8746}, /* union */ { "∫", 8747}, /* integral */ { "∴", 8756}, /* therefore */ { "∼", 8764}, /* tilde operator */ { "≅", 8773}, /* approximately equal to */ { "≈", 8776}, /* asymptotic to */ { "≠", 8800}, /* not equal to */ { "≡", 8801}, /* identical to */ { "≤", 8804}, /* less-than or equal to */ { "≥", 8805}, /* greater-than or equal to */ { "⊂", 8834}, /* subset of */ { "⊃", 8835}, /* superset of */ { "⊄", 8836}, /* not a subset of */ { "⊆", 8838}, /* subset of or equal to */ { "⊇", 8839}, /* superset of or equal to */ { "⊕", 8853}, /* circled plus = direct sum */ { "⊗", 8855}, /* circled times = vec prod */ { "⊥", 8869}, /* perpendicular */ { "⋅", 8901}, /* dot operator */ { "⌈", 8968}, /* left ceiling */ { "⌉", 8969}, /* right ceiling */ { "⌊", 8970}, /* left floor */ { "⌋", 8971}, /* right floor */ { "⟨", 9001}, /* left angle bracket */ { "⟩", 9002}, /* right angle bracket */ { "◊", 9674}, /* lozenge */ { "♠", 9824}, /* spades */ { "♣", 9827}, /* clubs */ { "♥", 9829}, /* hearts */ { "♦", 9830}, /* diamonds */ /* Latin-1 */ { " ", 32 }, /* non-breaking space */ { "¡", 161 }, /* inverted exclamation mark */ { "¢", 162 }, /* cent sign */ { "£", 163 }, /* pound sign */ { "¤", 164 }, /* currency sign */ { "¥", 165 }, /* yen sign */ { "¦", 166 }, /* broken vertical bar */ { "§", 167 }, /* section sign */ { "¨", 168 }, /* diaeresis - spacing diaeresis */ { "©", 169 }, /* copyright sign */ { "ª", 170 }, /* feminine ordinal indicator */ { "«", 171 }, /* left-pointing guillemet */ { "¬", 172 }, /* not sign */ { "­", 173 }, /* soft (discretionary) hyphen */ { "®", 174 }, /* registered sign */ { "¯", 175 }, /* macron = overline */ { "°", 176 }, /* degree sign */ { "±", 177 }, /* plus-minus sign */ { "²", 178 }, /* superscript two */ { "³", 179 }, /* superscript three */ { "´", 180 }, /* acute accent = spacing acute */ { "µ", 181 }, /* micro sign */ { "¶", 182 }, /* pilcrow (paragraph) sign */ { "·", 183 }, /* middle dot (georgian comma) */ { "¸", 184 }, /* cedilla = spacing cedilla */ { "¹", 185 }, /* superscript one */ { "º", 186 }, /* masculine ordinal indicator */ { "»", 187 }, /* right pointing guillemet */ { "¼", 188 }, /* 1/4 */ { "½", 189 }, /* 1/2 */ { "¾", 190 }, /* 3/4 */ { "¿", 191 }, /* inverted question mark */ { "À", 192 }, /* cap A with grave */ { "Á", 193 }, /* cap A with acute */ { "Â", 194 }, /* cap A with circumflex */ { "Ã", 195 }, /* cap A with tilde */ { "Ä", 196 }, /* cap A with diaeresis */ { "Å", 197 }, /* cap A with ring */ { "Æ", 198 }, /* cap AE ligature */ { "Ç", 199 }, /* cap C with cedilla */ { "È", 200 }, /* cap E with grave */ { "É", 201 }, /* cap E with acute */ { "Ê", 202 }, /* cap E with circumflex */ { "Ë", 203 }, /* cap E with diaeresis */ { "Ì", 204 }, /* cap I with grave */ { "Í", 205 }, /* cap I with acute */ { "Î", 206 }, /* cap I with circumflex */ { "Ï", 207 }, /* cap I with diaeresis */ { "Ð", 208 }, /* cap letter ETH */ { "Ñ", 209 }, /* cap N with tilde */ { "Ò", 210 }, /* cap O with grave */ { "Ó", 211 }, /* cap O with acute */ { "Ô", 212 }, /* cap O with circumflex */ { "Õ", 213 }, /* cap O with tilde */ { "Ö", 214 }, /* cap O with diaeresis */ { "×", 215 }, /* multiplication sign */ { "Ø", 216 }, /* cap O with stroke */ { "Ù", 217 }, /* cap U with grave */ { "Ú", 218 }, /* cap U with acute */ { "Û", 219 }, /* cap U with circumflex */ { "Ü", 220 }, /* cap U with diaeresis */ { "Ý", 221 }, /* cap Y with acute */ { "Þ", 222 }, /* cap letter THORN */ { "ß", 223 }, /* small sharp s = ess-zed */ { "à", 224 }, /* small a with grave */ { "á", 225 }, /* small a with acute */ { "â", 226 }, /* small a with cirucmflex */ { "ã", 227 }, /* small a with tilde */ { "&amul;", 228 }, /* small a with diaeresis */ { "å", 229 }, /* small a with ring */ { "æ", 230 }, /* small ligature ae */ { "ç", 231 }, /* small c with cedilla */ { "è", 232 }, /* small e with grave */ { "é", 233 }, /* small e with acute */ { "ê", 234 }, /* small e with circumflex */ { "&emul;", 235 }, /* small e with diaeresis */ { "ì", 236 }, /* small i with grave */ { "í", 237 }, /* small i with acute */ { "î", 238 }, /* small i with circumflex */ { "ï", 239 }, /* small i with diaeresis */ { "ð", 240 }, /* latin small letter eth */ { "ñ", 241 }, /* small n with tilde */ { "ò", 242 }, /* small o with grave */ { "ó", 243 }, /* small o with acute */ { "ô", 244 }, /* small o with circumflex */ { "õ", 245 }, /* small o with tilde */ { "ö", 246 }, /* small o with diaeresis */ { "÷", 247 }, /* division sign */ { "ø", 248 }, /* small o with slash */ { "ù", 249 }, /* small u with grave */ { "ú", 250 }, /* small u with acute */ { "û", 251 }, /* small u with circumflex */ { "ü", 252 }, /* small u with diaeresis */ { "ý", 253 }, /* small y with acute */ { "þ", 254 }, /* latin small letter thorn */ { "ÿ", 255 }, /* small y with diaeresis */ }; static unsigned int decode_html_entity( char *s, unsigned int *pi, int *err ) { int nhtml_entities = sizeof( html_entities ) / sizeof( entities ); char *e; int i, n=-1, len; for ( i=0; i #include #include #include "entities.h" /* HTML 4.0 entities */ typedef struct entities { char html[20]; unsigned int unicode; } entities; entities html_entities[] = { /* Special Entities */ { """, 34 }, /* quotation mark */ { "&", 38 }, /* ampersand */ { "'", 39 }, /* apostrophe (note not defined in HTML) */ { "(", 40 }, /* left parenthesis */ { ")", 41 }, /* right parenthesis */ { "‐", 45 }, /* hyphen */ { "<", 60 }, /* less-than sign */ { ">", 62 }, /* greater-than sign */ { "?", 63 }, /* question mark */ { "Œ", 338 }, /* Latin cap ligature OE */ { "œ", 339 }, /* Latin small ligature OE */ { "Š", 352 }, /* Latin cap S with caron */ { "š", 353 }, /* Latin cap S with caron */ { "Ÿ", 376 }, /* Latin cap y with diaeresis */ { "ˆ", 710 }, /* modifier letter circumflex */ { "˜", 732 }, /* small tilde */ { " ", 8194 }, /* en space */ { " ", 8195 }, /* em space */ { " ", 8201 }, /* thin space */ { "‌", 8204 }, /* zero width non-joiner */ { "‍", 8205 }, /* zero width joiner */ { "‎", 8206 }, /* left-to-right mark */ { "‏", 8207 }, /* right-to-left mark */ { "–", 8211 }, /* en dash */ { "—", 8212 }, /* em dash */ { "‘", 8216 }, /* left single quotation mark */ { "’", 8217 }, /* right single quot. mark */ { "‚", 8218 }, /* single low-9 quot. mark */ { "“", 8220 }, /* left double quot. mark */ { "”", 8221 }, /* right double quot. mark */ { "„", 8222 }, /* double low-9 quot. mark */ { "†", 8224 }, /* dagger */ { "‡", 8225 }, /* double dagger */ { "‰", 8240 }, /* per mille sign */ { "‹", 8249 }, /* sin. left angle quot mark */ { "›", 8250 }, /* sin. right angle quot mark */ { "€", 8364 }, /* euro sign */ /* Symbols and Greek characters */ { "ƒ", 402 }, /* small f with hook = function */ { "Α", 913 }, /* capital alpha */ { "Β", 914 }, /* capital beta */ { "Γ", 915 }, /* capital gamma */ { "Δ", 916 }, /* capital delta */ { "Ε", 917 }, /* capital epsilon */ { "Ζ", 918 }, /* capital zeta */ { "Η", 919 }, /* capital eta */ { "Θ", 920 }, /* capital theta */ { "Ι", 921 }, /* capital iota */ { "Κ", 922 }, /* capital kappa */ { "Λ", 923 }, /* capital lambda */ { "Μ", 924 }, /* capital mu */ { "Ν", 925 }, /* capital nu */ { "Ξ", 926 }, /* capital xi */ { "Ο", 927 }, /* capital omicron */ { "Π", 928 }, /* capital pi */ { "Ρ", 929 }, /* capital rho */ { "Σ", 931 }, /* capital sigma */ { "Τ", 932 }, /* capital tau */ { "Υ", 933 }, /* capital upsilon */ { "Φ", 934 }, /* capital phi */ { "Χ", 935 }, /* capital chi */ { "Ψ", 936 }, /* capital psi */ { "Ω", 937 }, /* capital omega */ { "α", 945 }, /* small alpha */ { "β", 946 }, /* small beta */ { "γ", 947 }, /* small gamma */ { "δ", 948 }, /* small delta */ { "ε", 949 }, /* small epsilon */ { "ζ", 950 }, /* small zeta */ { "η", 951 }, /* small eta */ { "θ", 952 }, /* small theta */ { "ι", 953 }, /* small iota */ { "κ", 954 }, /* small kappa */ { "λ", 955 }, /* small lambda */ { "μ", 956 }, /* small mu */ { "ν", 957 }, /* small nu */ { "ξ", 958 }, /* small xi */ { "ο", 959 }, /* small omicron */ { "π", 960 }, /* small pi */ { "ρ", 961 }, /* small rho */ { "ς", 962 }, /* small final sigma */ { "σ", 963 }, /* small simga */ { "τ", 964 }, /* small tau */ { "υ", 965 }, /* small upsilon */ { "φ", 966 }, /* small phi */ { "χ", 967 }, /* small chi */ { "ψ", 968 }, /* small psi */ { "ω", 969 }, /* small omega */ { "ϑ",977 }, /* small theta symbol */ { "ϒ", 978 }, /* small upsilon with hook */ { "ϖ", 982 }, /* pi symbol */ { "•", 8226 }, /* bullet = small blk circle */ { "…", 8230 }, /* horizontal ellipsis */ { "′", 8242 }, /* prime = minutes = feet */ { "″", 8243 }, /* double prime */ { "‾", 8254 }, /* overline */ { "⁄", 8260 }, /* fraction slash */ { "℘", 8472 }, /* Weierstrass p = power set */ { "ℑ", 8465 }, /* imaginary part-black cap I */ { "ℜ", 8476 }, /* real part-black cap R */ { "™", 8482 }, /* trademark sign */ { "ℵ",8501 }, /* alef symbol */ { "←", 8592 }, /* left arrow */ { "↑", 8593 }, /* up arrow */ { "→", 8594 }, /* right arrow */ { "↓", 8595 }, /* down arrow */ { "↔", 8596 }, /* left/right arrow */ { "↵", 8629 }, /* down arrow with corner left */ { "⇐", 8656 }, /* left double arrow */ { "⇑", 8657 }, /* up double arrow */ { "⇒", 8658 }, /* up double arrow */ { "⇓", 8659 }, /* up double arrow */ { "⇔", 8660 }, /* up double arrow */ { "∀", 8704}, /* for all */ { "∂", 8706}, /* partial differential */ { "∃", 8707}, /* there exists */ { "∅", 8709}, /* empty set */ { "∇", 8711}, /* nabla=backwards difference */ { "∈", 8712}, /* element of */ { "∉", 8713}, /* not an element of */ { "∋", 8715}, /* contains as member */ { "∏", 8719}, /* n-ary product */ { "∑", 8721}, /* n-ary summation */ { "−", 8722}, /* minuss sign */ { "∗", 8727}, /* asterisk operator */ { "√", 8730}, /* square root */ { "∝", 8733}, /* proportional to */ { "∞", 8734}, /* infinity */ { "∠", 8736}, /* angle */ { "∧", 8743}, /* logical and */ { "∨", 8744}, /* logical or */ { "∩", 8745}, /* intersection */ { "∪", 8746}, /* union */ { "∫", 8747}, /* integral */ { "∴", 8756}, /* therefore */ { "∼", 8764}, /* tilde operator */ { "≅", 8773}, /* approximately equal to */ { "≈", 8776}, /* asymptotic to */ { "≠", 8800}, /* not equal to */ { "≡", 8801}, /* identical to */ { "≤", 8804}, /* less-than or equal to */ { "≥", 8805}, /* greater-than or equal to */ { "⊂", 8834}, /* subset of */ { "⊃", 8835}, /* superset of */ { "⊄", 8836}, /* not a subset of */ { "⊆", 8838}, /* subset of or equal to */ { "⊇", 8839}, /* superset of or equal to */ { "⊕", 8853}, /* circled plus = direct sum */ { "⊗", 8855}, /* circled times = vec prod */ { "⊥", 8869}, /* perpendicular */ { "⋅", 8901}, /* dot operator */ { "⌈", 8968}, /* left ceiling */ { "⌉", 8969}, /* right ceiling */ { "⌊", 8970}, /* left floor */ { "⌋", 8971}, /* right floor */ { "⟨", 9001}, /* left angle bracket */ { "⟩", 9002}, /* right angle bracket */ { "◊", 9674}, /* lozenge */ { "♠", 9824}, /* spades */ { "♣", 9827}, /* clubs */ { "♥", 9829}, /* hearts */ { "♦", 9830}, /* diamonds */ /* Latin-1 */ { " ", 32 }, /* non-breaking space */ { "¡", 161 }, /* inverted exclamation mark */ { "¢", 162 }, /* cent sign */ { "£", 163 }, /* pound sign */ { "¤", 164 }, /* currency sign */ { "¥", 165 }, /* yen sign */ { "¦", 166 }, /* broken vertical bar */ { "§", 167 }, /* section sign */ { "¨", 168 }, /* diaeresis - spacing diaeresis */ { "©", 169 }, /* copyright sign */ { "ª", 170 }, /* feminine ordinal indicator */ { "«", 171 }, /* left-pointing guillemet */ { "¬", 172 }, /* not sign */ { "­", 173 }, /* soft (discretionary) hyphen */ { "®", 174 }, /* registered sign */ { "¯", 175 }, /* macron = overline */ { "°", 176 }, /* degree sign */ { "±", 177 }, /* plus-minus sign */ { "²", 178 }, /* superscript two */ { "³", 179 }, /* superscript three */ { "´", 180 }, /* acute accent = spacing acute */ { "µ", 181 }, /* micro sign */ { "¶", 182 }, /* pilcrow (paragraph) sign */ { "·", 183 }, /* middle dot (georgian comma) */ { "¸", 184 }, /* cedilla = spacing cedilla */ { "¹", 185 }, /* superscript one */ { "º", 186 }, /* masculine ordinal indicator */ { "»", 187 }, /* right pointing guillemet */ { "¼", 188 }, /* 1/4 */ { "½", 189 }, /* 1/2 */ { "¾", 190 }, /* 3/4 */ { "¿", 191 }, /* inverted question mark */ { "À", 192 }, /* cap A with grave */ { "Á", 193 }, /* cap A with acute */ { "Â", 194 }, /* cap A with circumflex */ { "Ã", 195 }, /* cap A with tilde */ { "Ä", 196 }, /* cap A with diaeresis */ { "Å", 197 }, /* cap A with ring */ { "Æ", 198 }, /* cap AE ligature */ { "Ç", 199 }, /* cap C with cedilla */ { "È", 200 }, /* cap E with grave */ { "É", 201 }, /* cap E with acute */ { "Ê", 202 }, /* cap E with circumflex */ { "Ë", 203 }, /* cap E with diaeresis */ { "Ì", 204 }, /* cap I with grave */ { "Í", 205 }, /* cap I with acute */ { "Î", 206 }, /* cap I with circumflex */ { "Ï", 207 }, /* cap I with diaeresis */ { "Ð", 208 }, /* cap letter ETH */ { "Ñ", 209 }, /* cap N with tilde */ { "Ò", 210 }, /* cap O with grave */ { "Ó", 211 }, /* cap O with acute */ { "Ô", 212 }, /* cap O with circumflex */ { "Õ", 213 }, /* cap O with tilde */ { "Ö", 214 }, /* cap O with diaeresis */ { "×", 215 }, /* multiplication sign */ { "Ø", 216 }, /* cap O with stroke */ { "Ù", 217 }, /* cap U with grave */ { "Ú", 218 }, /* cap U with acute */ { "Û", 219 }, /* cap U with circumflex */ { "Ü", 220 }, /* cap U with diaeresis */ { "Ý", 221 }, /* cap Y with acute */ { "Þ", 222 }, /* cap letter THORN */ { "ß", 223 }, /* small sharp s = ess-zed */ { "à", 224 }, /* small a with grave */ { "á", 225 }, /* small a with acute */ { "â", 226 }, /* small a with cirucmflex */ { "ã", 227 }, /* small a with tilde */ { "&amul;", 228 }, /* small a with diaeresis */ { "å", 229 }, /* small a with ring */ { "æ", 230 }, /* small ligature ae */ { "ç", 231 }, /* small c with cedilla */ { "è", 232 }, /* small e with grave */ { "é", 233 }, /* small e with acute */ { "ê", 234 }, /* small e with circumflex */ { "&emul;", 235 }, /* small e with diaeresis */ { "ì", 236 }, /* small i with grave */ { "í", 237 }, /* small i with acute */ { "î", 238 }, /* small i with circumflex */ { "ï", 239 }, /* small i with diaeresis */ { "ð", 240 }, /* latin small letter eth */ { "ñ", 241 }, /* small n with tilde */ { "ò", 242 }, /* small o with grave */ { "ó", 243 }, /* small o with acute */ { "ô", 244 }, /* small o with circumflex */ { "õ", 245 }, /* small o with tilde */ { "ö", 246 }, /* small o with diaeresis */ { "÷", 247 }, /* division sign */ { "ø", 248 }, /* small o with slash */ { "ù", 249 }, /* small u with grave */ { "ú", 250 }, /* small u with acute */ { "û", 251 }, /* small u with circumflex */ { "ü", 252 }, /* small u with diaeresis */ { "ý", 253 }, /* small y with acute */ { "þ", 254 }, /* latin small letter thorn */ { "ÿ", 255 }, /* small y with diaeresis */ }; static unsigned int decode_html_entity( char *s, unsigned int *pi, int *err ) { int nhtml_entities = sizeof( html_entities ) / sizeof( entities ); char *e; int i, n=-1, len; for ( i=0; i #include #include #include #include "fields.h" #define FIELDS_MIN_ALLOC (20) /* private helper macros to access fields * * These skip all of the error checking and used flag manipulation * of the fields functions, so they are faster. However, they should * only be used in internal code that knows that the index is valid. */ #define _fields_tag(f,i) &((f)->tag[(i)]) #define _fields_tag_char(f,i) str_cstr( &((f)->tag[(i)]) ) #define _fields_tag_notempty(f,i) str_has_value( &((f)->tag[(i)]) ) #define _fields_value(f,i) &((f)->value[(i)]) #define _fields_value_char(f,i) str_cstr( &((f)->value[(i)]) ) #define _fields_value_notempty(f,i) str_has_value( &((f)->value[(i)]) ) #define _fields_level(f,i) (f)->level[(i)] fields* fields_new( void ) { fields *f = ( fields * ) malloc( sizeof( fields ) ); if ( f ) fields_init( f ); return f; } void fields_init( fields *f ) { f->used = f->level = NULL; f->tag = f->value = NULL; f->max = f->n = 0; } void fields_free( fields *f ) { int i; for ( i=0; imax; ++i ) { str_free( _fields_tag( f, i ) ); str_free( _fields_value( f, i ) ); } if ( f->tag ) free( f->tag ); if ( f->value ) free( f->value ); if ( f->used ) free( f->used ); if ( f->level ) free( f->level ); fields_init( f ); } void fields_delete( fields *f ) { fields_free( f ); free( f ); } int fields_remove( fields *f, int n ) { int i; if ( n<0 || n>= f->n ) return FIELDS_ERR_MEMERR; for ( i=n+1; in; ++i ) { str_strcpy( _fields_tag ( f, i-1 ), _fields_tag ( f, i ) ); str_strcpy( _fields_value( f, i-1 ), _fields_value( f, i ) ); f->used[i-1] = f->used[i]; f->level[i-1] = f->level[i]; } f->n -= 1; return FIELDS_OK; } static void initialize_new_tag_data_pairs( fields *f, int start, int end ) { int i; for ( i=start; itag = (str *) malloc( sizeof(str) * alloc ); f->value = (str *) malloc( sizeof(str) * alloc ); f->used = (int *) calloc( alloc, sizeof(int) ); f->level = (int *) calloc( alloc, sizeof(int) ); if ( !f->tag || !f->value || !f->used || !f->level ){ if ( f->tag ) free( f->tag ); if ( f->value ) free( f->value ); if ( f->used ) free( f->used ); if ( f->level ) free( f->level ); fields_init( f ); return FIELDS_ERR_MEMERR; } initialize_new_tag_data_pairs( f, 0, alloc ); f->max = alloc; f->n = 0; return FIELDS_OK; } static int fields_realloc( fields *f ) { int *newused, *newlevel; str *newtags, *newvalue; int alloc; alloc = f->max * 2; if ( alloc < f->max ) return FIELDS_ERR_MEMERR; /* integer overflow */ newtags = (str*) realloc( f->tag, sizeof(str) * alloc ); newvalue = (str*) realloc( f->value, sizeof(str) * alloc ); newused = (int*) realloc( f->used, sizeof(int) * alloc ); newlevel = (int*) realloc( f->level, sizeof(int) * alloc ); /* * ensure struct fields is consistent by reassigning pointers for any successful * reallocation prior to failing on memory error */ if ( newtags ) f->tag = newtags; if ( newvalue ) f->value = newvalue; if ( newused ) f->used = newused; if ( newlevel ) f->level = newlevel; if ( !newtags || !newvalue || !newused || !newlevel ) return FIELDS_ERR_MEMERR; initialize_new_tag_data_pairs( f, f->n, alloc ); f->max = alloc; return FIELDS_OK; } static int ensure_space( fields *f ) { int status = FIELDS_OK; if ( f->max==0 ) status = fields_alloc( f, FIELDS_MIN_ALLOC ); else if ( f->n==f->max ) status = fields_realloc( f ); return status; } static int is_duplicate_entry( fields *f, const char *tag, const char *value, int level ) { int i; for ( i=0; in; i++ ) { if ( _fields_level( f, i ) != level ) continue; if ( strcasecmp( _fields_tag_char( f, i ), tag ) ) continue; if ( strcasecmp( _fields_value_char( f, i ), value ) ) continue; return 1; } return 0; } int _fields_add( fields *f, const char *tag, const char *value, int level, int mode ) { int n, status; /* Don't add incomplete entry */ if ( !tag || !value ) return FIELDS_OK; /* Don't add duplicate entry if FIELDS_NO_DUPS */ if ( mode == FIELDS_NO_DUPS && is_duplicate_entry( f, tag, value, level ) ) return FIELDS_OK; status = ensure_space( f ); if ( status!=FIELDS_OK ) return status; n = f->n; f->used[ n ] = 0; f->level[ n ] = level; str_strcpyc( _fields_tag( f, n ), tag ); str_strcpyc( _fields_value( f, n ), value ); if ( str_memerr( &(f->tag[n]) ) || str_memerr( &(f->value[n] ) ) ) return FIELDS_ERR_MEMERR; f->n++; return FIELDS_OK; } int _fields_add_suffix( fields *f, const char *tag, const char *suffix, const char *value, int level, int mode ) { str newtag; int ret; str_init( &newtag ); str_mergestrs( &newtag, tag, suffix, NULL ); if ( str_memerr( &newtag ) ) ret = FIELDS_ERR_MEMERR; else ret = _fields_add( f, str_cstr( &newtag ), value, level, mode ); str_free( &newtag ); return ret; } static fields* fields_new_size( int alloc ) { int status; fields *f; f = ( fields * ) malloc( sizeof( fields ) ); if ( f ) { fields_init( f ); status = fields_alloc( f, alloc ); if ( status!=FIELDS_OK ) { fields_delete( f ); return NULL; } } return f; } fields * fields_dupl( fields *in ) { int i, level, status; char *tag, *value; fields *out; out = fields_new_size( in->n ); if ( !out ) return NULL; for ( i=0; in; ++i ) { tag = _fields_tag_char( in, i ); value = _fields_value_char( in, i ); level = _fields_level( in, i ); if ( tag && value ) { status = fields_add_can_dup( out, tag, value, level ); if ( status!=FIELDS_OK ) { fields_delete( out ); return NULL; } } } return out; } /* fields_match_level() * * returns 1 if level matched, 0 if not * * level==LEVEL_ANY is a special flag meaning any level can match */ int fields_match_level( fields *f, int n, int level ) { if ( level==LEVEL_ANY ) return 1; if ( fields_level( f, n )==level ) return 1; return 0; } /* fields_match_tag() * * returns 1 if tag matches, 0 if not * */ int fields_match_tag( fields *f, int n, const char *tag ) { if ( !strcmp( _fields_tag_char( f, n ), tag ) ) return 1; return 0; } int fields_match_casetag( fields *f, int n, const char *tag ) { if ( !strcasecmp( _fields_tag_char( f, n ), tag ) ) return 1; return 0; } int fields_match_tag_level( fields *f, int n, const char *tag, int level ) { if ( !fields_match_level( f, n, level ) ) return 0; return fields_match_tag( f, n, tag ); } int fields_match_casetag_level( fields *f, int n, const char *tag, int level ) { if ( !fields_match_level( f, n, level ) ) return 0; return fields_match_casetag( f, n, tag ); } /* fields_find() * * Return position [0,f->n) for first match of the tag. * Return FIELDS_NOTFOUND if tag isn't found. */ int fields_find( fields *f, const char *tag, int level ) { int i; for ( i=0; in; ++i ) { if ( !fields_match_casetag_level( f, i, tag, level ) ) continue; if ( str_has_value( _fields_value( f, i ) ) ) return i; else { /* if there is no data for the tag, don't "find" it */ /* and set "used" so noise is suppressed */ f->used[i] = 1; } } return FIELDS_NOTFOUND; } int fields_maxlevel( fields *f ) { int i, max = 0; if ( f->n ) { max = _fields_level( f, 0 ); for ( i=1; in; ++i ) { if ( _fields_level( f, i ) > max ) max = _fields_level( f, i ); } } return max; } void fields_clear_used( fields *f ) { int i; for ( i=0; in; ++i ) f->used[i] = 0; } void fields_set_used( fields *f, int n ) { if ( n >= 0 && n < f->n ) f->used[n] = 1; } /* fields_replace_or_add() * * return FIELDS_OK on success, else FIELDS_ERR_MEMERR */ int fields_replace_or_add( fields *f, const char *tag, const char *value, int level ) { int n; n = fields_find( f, tag, level ); if ( n==FIELDS_NOTFOUND ) { return fields_add( f, tag, value, level ); } else { str_strcpyc( _fields_value( f, n ), value ); if ( str_memerr( _fields_value( f, n ) ) ) return FIELDS_ERR_MEMERR; return FIELDS_OK; } } char *fields_null_value = "\0"; int fields_used( fields *f, int n ) { if ( n >= 0 && n < f->n ) return f->used[n]; else return 0; } int fields_no_tag( fields *f, int n ) { if ( n >= 0 && n < f->n ) { if ( _fields_tag_notempty( f, n ) ) return 0; } return 1; } int fields_no_value( fields *f, int n ) { if ( n >= 0 && n < f->n ) { if ( _fields_value_notempty( f, n ) ) return 0; } return 1; } int fields_has_value( fields *f, int n ) { if ( n >= 0 && n < f->n ) return _fields_value_notempty( f, n ); return 0; } int fields_num( fields *f ) { return f->n; } /* * #define FIELDS_CHRP * #define FIELDS_STRP * #define FIELDS_CHRP_NOLEN * #define FIELDS_STRP_NOLEN * * If the length of the tagged value is zero and the mode is * FIELDS_STRP_NOLEN or FIELDS_CHRP_NOLEN, return a pointer to * a static null string as the data field could be new due to * the way str handles initialized strings with no data. * */ void * fields_value( fields *f, int n, int mode ) { intptr_t retn; if ( n<0 || n>= f->n ) return NULL; if ( mode & FIELDS_SETUSE_FLAG ) fields_set_used( f, n ); if ( mode & FIELDS_STRP_FLAG ) { return ( void * ) _fields_value( f, n ); } else if ( mode & FIELDS_POSP_FLAG ) { retn = n; /* avoid compiler warning */ return ( void * ) retn; /* Rather pointless -- the user provided "n" */ } else { if ( str_has_value( _fields_value( f, n ) ) ) return _fields_value_char( f, n ); else return fields_null_value; } } void * fields_tag( fields *f, int n, int mode ) { intptr_t retn; if ( n<0 || n>= f->n ) return NULL; if ( mode & FIELDS_STRP_FLAG ) { return ( void * ) _fields_tag( f, n ); } else if ( mode & FIELDS_POSP_FLAG ) { retn = n; /* avoid compiler warning */ return ( void * ) retn; /* Rather pointless -- the user provided "n" */ } else { if ( str_has_value( _fields_tag( f, n ) ) ) return _fields_tag_char( f, n ); else return fields_null_value; } } int fields_level( fields *f, int n ) { if ( n<0 || n>= f->n ) return 0; return _fields_level( f, n ); } void * fields_findv( fields *f, int level, int mode, const char *tag ) { int i, found = FIELDS_NOTFOUND; for ( i=0; in; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetag( f, i, tag ) ) continue; if ( _fields_value_notempty( f, i ) ) { found = i; break; } else { if ( mode & FIELDS_NOLENOK_FLAG ) { return (void *) fields_null_value; } else if ( mode & FIELDS_SETUSE_FLAG ) { f->used[i] = 1; /* Suppress "noise" of unused */ } } } if ( found==FIELDS_NOTFOUND ) return NULL; else return fields_value( f, found, mode ); } void * fields_findv_firstof( fields *f, int level, int mode, ... ) { char *tag, *value; va_list argp; va_start( argp, mode ); while ( ( tag = ( char * ) va_arg( argp, char * ) ) ) { value = fields_findv( f, level, mode, tag ); if ( value ) { va_end( argp ); return value; } } va_end( argp ); return NULL; } static int fields_findv_each_add( fields *f, int mode, int n, vplist *a ) { int status; void *v; v = fields_value( f, n, mode ); if ( !v ) return FIELDS_OK; status = vplist_add( a, v ); if ( status==VPLIST_OK ) return FIELDS_OK; else return FIELDS_ERR_MEMERR; } int fields_findv_each( fields *f, int level, int mode, vplist *a, const char *tag ) { int i, status; for ( i=0; in; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetag( f, i, tag ) ) continue; if ( _fields_value_notempty( f, i ) ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) return status; } else { if ( mode & FIELDS_NOLENOK_FLAG ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) return status; } else { f->used[i] = 1; /* Suppress "noise" of unused */ } } } return FIELDS_OK; } static int fields_build_tags( va_list argp, vplist *tags ) { int status; char *tag; while ( ( tag = ( char * ) va_arg( argp, char * ) ) ) { status = vplist_add( tags, tag ); if ( status!=VPLIST_OK ) return FIELDS_ERR_MEMERR; } return FIELDS_OK; } static int fields_match_casetags( fields *f, int n, vplist *tags ) { int i; for ( i=0; in; ++i ) if ( fields_match_casetag( f, n, vplist_get( tags, i ) ) ) return 1; return 0; } int fields_findv_eachof( fields *f, int level, int mode, vplist *a, ... ) { int i, status; va_list argp; vplist tags; vplist_init( &tags ); /* build list of tags to search for */ va_start( argp, a ); status = fields_build_tags( argp, &tags ); va_end( argp ); if ( status!=FIELDS_OK ) goto out; /* search list */ for ( i=0; in; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetags( f, i, &tags ) ) continue; if ( _fields_value_notempty( f, i ) || ( mode & FIELDS_NOLENOK_FLAG ) ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) goto out; } else { f->used[i] = 1; /* Suppress "noise" of unused */ } } out: vplist_free( &tags ); return status; } void fields_report( fields *f, FILE *fp ) { int i, n; n = fields_num( f ); fprintf( fp, "# NUM level = LEVEL 'TAG' = 'VALUE'\n" ); for ( i=0; i #include #include #include #include "fields.h" #define FIELDS_MIN_ALLOC (20) /* private helper macros to access fields * * These skip all of the error checking and used flag manipulation * of the fields functions, so they are faster. However, they should * only be used in internal code that knows that the index is valid. */ #define _fields_tag(f,i) &((f)->tag[(i)]) #define _fields_tag_char(f,i) str_cstr( &((f)->tag[(i)]) ) #define _fields_tag_notempty(f,i) str_has_value( &((f)->tag[(i)]) ) #define _fields_value(f,i) &((f)->value[(i)]) #define _fields_value_char(f,i) str_cstr( &((f)->value[(i)]) ) #define _fields_value_notempty(f,i) str_has_value( &((f)->value[(i)]) ) #define _fields_level(f,i) (f)->level[(i)] fields* fields_new( void ) { fields *f = ( fields * ) malloc( sizeof( fields ) ); if ( f ) fields_init( f ); return f; } void fields_init( fields *f ) { f->used = f->level = NULL; f->tag = f->value = NULL; f->max = f->n = 0; } void fields_free( fields *f ) { int i; for ( i=0; imax; ++i ) { str_free( _fields_tag( f, i ) ); str_free( _fields_value( f, i ) ); } if ( f->tag ) free( f->tag ); if ( f->value ) free( f->value ); if ( f->used ) free( f->used ); if ( f->level ) free( f->level ); fields_init( f ); } void fields_delete( fields *f ) { fields_free( f ); free( f ); } int fields_remove( fields *f, int n ) { int i; if ( n<0 || n>= f->n ) return FIELDS_ERR_MEMERR; for ( i=n+1; in; ++i ) { str_strcpy( _fields_tag ( f, i-1 ), _fields_tag ( f, i ) ); str_strcpy( _fields_value( f, i-1 ), _fields_value( f, i ) ); f->used[i-1] = f->used[i]; f->level[i-1] = f->level[i]; } f->n -= 1; return FIELDS_OK; } static void initialize_new_tag_data_pairs( fields *f, int start, int end ) { int i; for ( i=start; itag = (str *) malloc( sizeof(str) * alloc ); f->value = (str *) malloc( sizeof(str) * alloc ); f->used = (int *) calloc( alloc, sizeof(int) ); f->level = (int *) calloc( alloc, sizeof(int) ); if ( !f->tag || !f->value || !f->used || !f->level ){ if ( f->tag ) free( f->tag ); if ( f->value ) free( f->value ); if ( f->used ) free( f->used ); if ( f->level ) free( f->level ); fields_init( f ); return FIELDS_ERR_MEMERR; } initialize_new_tag_data_pairs( f, 0, alloc ); f->max = alloc; f->n = 0; return FIELDS_OK; } static int fields_realloc( fields *f ) { int *newused, *newlevel; str *newtags, *newvalue; int alloc; alloc = f->max * 2; if ( alloc < f->max ) return FIELDS_ERR_MEMERR; /* integer overflow */ newtags = (str*) realloc( f->tag, sizeof(str) * alloc ); newvalue = (str*) realloc( f->value, sizeof(str) * alloc ); newused = (int*) realloc( f->used, sizeof(int) * alloc ); newlevel = (int*) realloc( f->level, sizeof(int) * alloc ); /* * ensure struct fields is consistent by reassigning pointers for any successful * reallocation prior to failing on memory error */ if ( newtags ) f->tag = newtags; if ( newvalue ) f->value = newvalue; if ( newused ) f->used = newused; if ( newlevel ) f->level = newlevel; if ( !newtags || !newvalue || !newused || !newlevel ) return FIELDS_ERR_MEMERR; initialize_new_tag_data_pairs( f, f->n, alloc ); f->max = alloc; return FIELDS_OK; } static int ensure_space( fields *f ) { int status = FIELDS_OK; if ( f->max==0 ) status = fields_alloc( f, FIELDS_MIN_ALLOC ); else if ( f->n==f->max ) status = fields_realloc( f ); return status; } static int is_duplicate_entry( fields *f, const char *tag, const char *value, int level ) { int i; for ( i=0; in; i++ ) { if ( _fields_level( f, i ) != level ) continue; if ( strcasecmp( _fields_tag_char( f, i ), tag ) ) continue; if ( strcasecmp( _fields_value_char( f, i ), value ) ) continue; return 1; } return 0; } int _fields_add( fields *f, const char *tag, const char *value, int level, int mode ) { int n, status; /* Don't add incomplete entry */ if ( !tag || !value ) return FIELDS_OK; /* Don't add duplicate entry if FIELDS_NO_DUPS */ if ( mode == FIELDS_NO_DUPS && is_duplicate_entry( f, tag, value, level ) ) return FIELDS_OK; status = ensure_space( f ); if ( status!=FIELDS_OK ) return status; n = f->n; f->used[ n ] = 0; f->level[ n ] = level; str_strcpyc( _fields_tag( f, n ), tag ); str_strcpyc( _fields_value( f, n ), value ); if ( str_memerr( &(f->tag[n]) ) || str_memerr( &(f->value[n] ) ) ) return FIELDS_ERR_MEMERR; f->n++; return FIELDS_OK; } int _fields_add_suffix( fields *f, const char *tag, const char *suffix, const char *value, int level, int mode ) { str newtag; int ret; str_init( &newtag ); str_mergestrs( &newtag, tag, suffix, NULL ); if ( str_memerr( &newtag ) ) ret = FIELDS_ERR_MEMERR; else ret = _fields_add( f, str_cstr( &newtag ), value, level, mode ); str_free( &newtag ); return ret; } static fields* fields_new_size( int alloc ) { int status; fields *f; f = ( fields * ) malloc( sizeof( fields ) ); if ( f ) { fields_init( f ); status = fields_alloc( f, alloc ); if ( status!=FIELDS_OK ) { fields_delete( f ); return NULL; } } return f; } fields * fields_dupl( fields *in ) { int i, level, status; char *tag, *value; fields *out; out = fields_new_size( in->n ); if ( !out ) return NULL; for ( i=0; in; ++i ) { tag = _fields_tag_char( in, i ); value = _fields_value_char( in, i ); level = _fields_level( in, i ); if ( tag && value ) { status = fields_add_can_dup( out, tag, value, level ); if ( status!=FIELDS_OK ) { fields_delete( out ); return NULL; } } } return out; } /* fields_match_level() * * returns 1 if level matched, 0 if not * * level==LEVEL_ANY is a special flag meaning any level can match */ int fields_match_level( fields *f, int n, int level ) { if ( level==LEVEL_ANY ) return 1; if ( fields_level( f, n )==level ) return 1; return 0; } /* fields_match_tag() * * returns 1 if tag matches, 0 if not * */ int fields_match_tag( fields *f, int n, const char *tag ) { if ( !strcmp( _fields_tag_char( f, n ), tag ) ) return 1; return 0; } int fields_match_casetag( fields *f, int n, const char *tag ) { if ( !strcasecmp( _fields_tag_char( f, n ), tag ) ) return 1; return 0; } int fields_match_tag_level( fields *f, int n, const char *tag, int level ) { if ( !fields_match_level( f, n, level ) ) return 0; return fields_match_tag( f, n, tag ); } int fields_match_casetag_level( fields *f, int n, const char *tag, int level ) { if ( !fields_match_level( f, n, level ) ) return 0; return fields_match_casetag( f, n, tag ); } /* fields_find() * * Return position [0,f->n) for first match of the tag. * Return FIELDS_NOTFOUND if tag isn't found. */ int fields_find( fields *f, const char *tag, int level ) { int i; for ( i=0; in; ++i ) { if ( !fields_match_casetag_level( f, i, tag, level ) ) continue; if ( str_has_value( _fields_value( f, i ) ) ) return i; else { /* if there is no data for the tag, don't "find" it */ /* and set "used" so noise is suppressed */ f->used[i] = 1; } } return FIELDS_NOTFOUND; } int fields_maxlevel( fields *f ) { int i, max = 0; if ( f->n ) { max = _fields_level( f, 0 ); for ( i=1; in; ++i ) { if ( _fields_level( f, i ) > max ) max = _fields_level( f, i ); } } return max; } void fields_clear_used( fields *f ) { int i; for ( i=0; in; ++i ) f->used[i] = 0; } void fields_set_used( fields *f, int n ) { if ( n >= 0 && n < f->n ) f->used[n] = 1; } /* fields_replace_or_add() * * return FIELDS_OK on success, else FIELDS_ERR_MEMERR */ int fields_replace_or_add( fields *f, const char *tag, const char *value, int level ) { int n; n = fields_find( f, tag, level ); if ( n==FIELDS_NOTFOUND ) { return fields_add( f, tag, value, level ); } else { str_strcpyc( _fields_value( f, n ), value ); if ( str_memerr( _fields_value( f, n ) ) ) return FIELDS_ERR_MEMERR; return FIELDS_OK; } } char *fields_null_value = "\0"; int fields_used( fields *f, int n ) { if ( n >= 0 && n < f->n ) return f->used[n]; else return 0; } int fields_no_tag( fields *f, int n ) { if ( n >= 0 && n < f->n ) { if ( _fields_tag_notempty( f, n ) ) return 0; } return 1; } int fields_no_value( fields *f, int n ) { if ( n >= 0 && n < f->n ) { if ( _fields_value_notempty( f, n ) ) return 0; } return 1; } int fields_has_value( fields *f, int n ) { if ( n >= 0 && n < f->n ) return _fields_value_notempty( f, n ); return 0; } int fields_num( fields *f ) { return f->n; } /* * #define FIELDS_CHRP * #define FIELDS_STRP * #define FIELDS_CHRP_NOLEN * #define FIELDS_STRP_NOLEN * * If the length of the tagged value is zero and the mode is * FIELDS_STRP_NOLEN or FIELDS_CHRP_NOLEN, return a pointer to * a static null string as the data field could be new due to * the way str handles initialized strings with no data. * */ void * fields_value( fields *f, int n, int mode ) { intptr_t retn; if ( n<0 || n>= f->n ) return NULL; if ( mode & FIELDS_SETUSE_FLAG ) fields_set_used( f, n ); if ( mode & FIELDS_STRP_FLAG ) { return ( void * ) _fields_value( f, n ); } else if ( mode & FIELDS_POSP_FLAG ) { retn = n; /* avoid compiler warning */ return ( void * ) retn; /* Rather pointless -- the user provided "n" */ } else { if ( str_has_value( _fields_value( f, n ) ) ) return _fields_value_char( f, n ); else return fields_null_value; } } void * fields_tag( fields *f, int n, int mode ) { intptr_t retn; if ( n<0 || n>= f->n ) return NULL; if ( mode & FIELDS_STRP_FLAG ) { return ( void * ) _fields_tag( f, n ); } else if ( mode & FIELDS_POSP_FLAG ) { retn = n; /* avoid compiler warning */ return ( void * ) retn; /* Rather pointless -- the user provided "n" */ } else { if ( str_has_value( _fields_tag( f, n ) ) ) return _fields_tag_char( f, n ); else return fields_null_value; } } int fields_level( fields *f, int n ) { if ( n<0 || n>= f->n ) return 0; return _fields_level( f, n ); } void * fields_findv( fields *f, int level, int mode, const char *tag ) { int i, found = FIELDS_NOTFOUND; for ( i=0; in; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetag( f, i, tag ) ) continue; if ( _fields_value_notempty( f, i ) ) { found = i; break; } else { if ( mode & FIELDS_NOLENOK_FLAG ) { return (void *) fields_null_value; } else if ( mode & FIELDS_SETUSE_FLAG ) { f->used[i] = 1; /* Suppress "noise" of unused */ } } } if ( found==FIELDS_NOTFOUND ) return NULL; else return fields_value( f, found, mode ); } void * fields_findv_firstof( fields *f, int level, int mode, ... ) { char *tag, *value; va_list argp; va_start( argp, mode ); while ( ( tag = ( char * ) va_arg( argp, char * ) ) ) { value = fields_findv( f, level, mode, tag ); if ( value ) { va_end( argp ); return value; } } va_end( argp ); return NULL; } static int fields_findv_each_add( fields *f, int mode, int n, vplist *a ) { int status; void *v; v = fields_value( f, n, mode ); if ( !v ) return FIELDS_OK; status = vplist_add( a, v ); if ( status==VPLIST_OK ) return FIELDS_OK; else return FIELDS_ERR_MEMERR; } int fields_findv_each( fields *f, int level, int mode, vplist *a, const char *tag ) { int i, status; for ( i=0; in; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetag( f, i, tag ) ) continue; if ( _fields_value_notempty( f, i ) ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) return status; } else { if ( mode & FIELDS_NOLENOK_FLAG ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) return status; } else { f->used[i] = 1; /* Suppress "noise" of unused */ } } } return FIELDS_OK; } static int fields_build_tags( va_list argp, vplist *tags ) { int status; char *tag; while ( ( tag = ( char * ) va_arg( argp, char * ) ) ) { status = vplist_add( tags, tag ); if ( status!=VPLIST_OK ) return FIELDS_ERR_MEMERR; } return FIELDS_OK; } static int fields_match_casetags( fields *f, int n, vplist *tags ) { int i; for ( i=0; in; ++i ) if ( fields_match_casetag( f, n, vplist_get( tags, i ) ) ) return 1; return 0; } int fields_findv_eachof( fields *f, int level, int mode, vplist *a, ... ) { int i, status; va_list argp; vplist tags; vplist_init( &tags ); /* build list of tags to search for */ va_start( argp, a ); status = fields_build_tags( argp, &tags ); va_end( argp ); if ( status!=FIELDS_OK ) goto out; /* search list */ for ( i=0; in; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetags( f, i, &tags ) ) continue; if ( _fields_value_notempty( f, i ) || ( mode & FIELDS_NOLENOK_FLAG ) ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) goto out; } else { f->used[i] = 1; /* Suppress "noise" of unused */ } } out: vplist_free( &tags ); return status; } void fields_report( fields *f, FILE *fp ) { int i, n; n = fields_num( f ); fprintf( fp, "# NUM level = LEVEL 'TAG' = 'VALUE'\n" ); for ( i=0; i #include "str.h" #include "vplist.h" typedef struct fields { str *tag; str *value; int *used; int *level; int n; int max; } fields; void fields_init( fields *f ); fields *fields_new( void ); fields *fields_dupl( fields *f ); void fields_delete( fields *f ); void fields_free( fields *f ); int fields_remove( fields *f, int n ); #define FIELDS_CAN_DUP (0) #define FIELDS_NO_DUPS (1) #define fields_add( a, b, c, d ) _fields_add( a, b, c, d, FIELDS_NO_DUPS ) #define fields_add_can_dup( a, b, c, d ) _fields_add( a, b, c, d, FIELDS_CAN_DUP ) #define fields_add_suffix( a, b, c, d, e ) _fields_add_suffix( a, b, c, d, e, FIELDS_NO_DUPS ) #define fields_add_suffix_can_dup( a, b, c, d, e ) _fields_add_suffix( a, b, c, d, e, FIELDS_CAN_DUP ) int _fields_add ( fields *f, const char *tag, const char *value, int level, int mode ); int _fields_add_suffix( fields *f, const char *tag, const char *suffix, const char *value, int level, int mode ); int fields_maxlevel( fields *f ); void fields_clear_used( fields *f ); void fields_set_used( fields *f, int n ); int fields_replace_or_add( fields *f, const char *tag, const char *value, int level ); int fields_num( fields *f ); int fields_used( fields *f, int n ); int fields_no_tag( fields *f, int n ); int fields_no_value( fields *f, int n ); int fields_has_value( fields *f, int n ); int fields_match_level( fields *f, int n, int level ); int fields_match_tag( fields *f, int n, const char *tag ); int fields_match_casetag( fields *f, int n, const char *tag ); int fields_match_tag_level( fields *f, int n, const char *tag, int level ); int fields_match_casetag_level( fields *f, int n, const char *tag, int level ); void fields_report( fields *f, FILE *fp ); #define FIELDS_STRP_FLAG (2) #define FIELDS_POSP_FLAG (4) #define FIELDS_NOLENOK_FLAG (8) #define FIELDS_SETUSE_FLAG (16) #define FIELDS_CHRP (FIELDS_SETUSE_FLAG ) #define FIELDS_STRP (FIELDS_SETUSE_FLAG | FIELDS_STRP_FLAG ) #define FIELDS_POSP (FIELDS_SETUSE_FLAG | FIELDS_POSP_FLAG ) #define FIELDS_CHRP_NOLEN (FIELDS_SETUSE_FLAG | FIELDS_NOLENOK_FLAG) #define FIELDS_STRP_NOLEN (FIELDS_SETUSE_FLAG | FIELDS_STRP_FLAG | FIELDS_NOLENOK_FLAG) #define FIELDS_POSP_NOLEN (FIELDS_SETUSE_FLAG | FIELDS_POSP_FLAG | FIELDS_NOLENOK_FLAG) #define FIELDS_CHRP_NOUSE ( 0 ) #define FIELDS_STRP_NOUSE ( FIELDS_STRP_FLAG ) void *fields_tag( fields *f, int n, int mode ); void *fields_value( fields *f, int n, int mode ); int fields_level( fields *f, int n ); int fields_find( fields *f, const char *searchtag, int level ); void *fields_findv( fields *f, int level, int mode, const char *tag ); void *fields_findv_firstof( fields *f, int level, int mode, ... ); int fields_findv_each( fields *f, int level, int mode, vplist *a, const char *tag ); int fields_findv_eachof( fields *f, int level, int mode, vplist *a, ... ); #endif hs-bibutils-6.10.0.0/bibutils/gb18030.c0000644000000000000000000001345407346545000015326 0ustar0000000000000000#include #include "gb18030.h" /* GB18030-2000 is an encoding of Unicode character used in China * * {0x00-0x7f} are one byte characters identical to US-ASCII * {0x80} is properly undefined, but many GB18030 encodings make * it the Euro sign (Unicode 0x20AC), so use that * {0x81-0xFE}{0x40-0x7E,0x80-0xFE} a full superset of GBK (with fallback * mappings) * {0x81-0xFE}{0x30-0x39}{0x81-0xFE}{0x30-0x39} maps linearly to ISO 10646 * GB+81308130 = U+0080 up to U+FFFF * GB+90308130 = U+10000 up to U+10FFFF skipping mappings already * defined in 1-byte and 2-byte areas. * * Truth is it's a bit of a mess algorithmically as it doesn't multiply * encode characters, so there are holes in the Unicode mapping that * should be avoided. */ /* This is a "small" region that needs explicit enumeration */ #include "gb18030_enumeration.c" static int in_range( unsigned char n, unsigned char low, unsigned char high ) { if ( n < low || n > high ) return 0; return 1; } /* Get GB 18030 from Unicode Value in Table */ static int gb18030_unicode_table_lookup( unsigned int unicode, unsigned char out[4] ) { int i, j; if ( unicode >= 0x0080 && unicode <= 0xFFE5 ) { /* list is sorted, so should do binary search here */ for ( i=0; i elements. However, most four-byte GB 18030 mappings can be enumerated efficiently within distinct ranges. Therefore, we use elements for all but the 31000 or so assignments above. --> #endif } unsigned int gb18030_to_unicode( unsigned char *s, unsigned char len ) { unsigned int ret; int found; ret = gb18030_table_lookup( s, len, &found ); if ( !found && len==4 ) { ret = gb18030_range_lookup( s, &found ); if ( !found ) ret = '?'; } return ret; } /* * Convert unicode character to gb18030 * * returns number of characters for output */ int gb18030_encode( unsigned int unicode, unsigned char out[4] ) { int len; if ( unicode < 0x80 ) { out[0] = unicode; len = 1; } else { len = gb18030_unicode_table_lookup( unicode, out ); if ( !len ) len = gb18030_unicode_range_lookup( unicode, out ); } return len; } /* * Decode a gb18030 character into unicode */ unsigned int gb18030_decode( char *s, unsigned int *pi ) { unsigned int c; unsigned char uc[4]; int i = *pi; uc[0] = ( unsigned char ) s[i]; if ( ( uc[0] & 128 ) == 0 ) { c = ( unsigned int ) uc[0]; i += 1; } else if ( uc[0] == 0x80 ) { c = 0x20AC; i += 1; } else if ( uc[0] != 0xFF ) { /* multi-byte character */ uc[1] = ( unsigned char ) s[i+1]; uc[2] = ( unsigned char ) s[i+2]; uc[3]= ( unsigned char ) s[i+3]; if ( in_range( uc[1], 0x40, 0x7e ) || in_range( uc[1], 0x80, 0xfe ) ) { /* two-byte character */ c = gb18030_to_unicode( &(uc[0]), 2 ); i += 2; } else if ( in_range( uc[1], 0x30, 0x39 ) && in_range( uc[2], 0x81, 0xfe ) && in_range( uc[3], 0x30, 0x39 ) ) { /* four-byte character */ c = gb18030_to_unicode( &(uc[0]), 4 ); i += 4; } else { /* this is an illegal character */ c = '?'; i += 1; } } else { /* s[i]==0xFF */ /* this is an illegal character */ c = '?'; i += 1; } *pi = i; return c; } hs-bibutils-6.10.0.0/bibutils/gb18030.c0000755000000000000000000001345407346545000015331 0ustar0000000000000000#include #include "gb18030.h" /* GB18030-2000 is an encoding of Unicode character used in China * * {0x00-0x7f} are one byte characters identical to US-ASCII * {0x80} is properly undefined, but many GB18030 encodings make * it the Euro sign (Unicode 0x20AC), so use that * {0x81-0xFE}{0x40-0x7E,0x80-0xFE} a full superset of GBK (with fallback * mappings) * {0x81-0xFE}{0x30-0x39}{0x81-0xFE}{0x30-0x39} maps linearly to ISO 10646 * GB+81308130 = U+0080 up to U+FFFF * GB+90308130 = U+10000 up to U+10FFFF skipping mappings already * defined in 1-byte and 2-byte areas. * * Truth is it's a bit of a mess algorithmically as it doesn't multiply * encode characters, so there are holes in the Unicode mapping that * should be avoided. */ /* This is a "small" region that needs explicit enumeration */ #include "gb18030_enumeration.c" static int in_range( unsigned char n, unsigned char low, unsigned char high ) { if ( n < low || n > high ) return 0; return 1; } /* Get GB 18030 from Unicode Value in Table */ static int gb18030_unicode_table_lookup( unsigned int unicode, unsigned char out[4] ) { int i, j; if ( unicode >= 0x0080 && unicode <= 0xFFE5 ) { /* list is sorted, so should do binary search here */ for ( i=0; i elements. However, most four-byte GB 18030 mappings can be enumerated efficiently within distinct ranges. Therefore, we use elements for all but the 31000 or so assignments above. --> #endif } unsigned int gb18030_to_unicode( unsigned char *s, unsigned char len ) { unsigned int ret; int found; ret = gb18030_table_lookup( s, len, &found ); if ( !found && len==4 ) { ret = gb18030_range_lookup( s, &found ); if ( !found ) ret = '?'; } return ret; } /* * Convert unicode character to gb18030 * * returns number of characters for output */ int gb18030_encode( unsigned int unicode, unsigned char out[4] ) { int len; if ( unicode < 0x80 ) { out[0] = unicode; len = 1; } else { len = gb18030_unicode_table_lookup( unicode, out ); if ( !len ) len = gb18030_unicode_range_lookup( unicode, out ); } return len; } /* * Decode a gb18030 character into unicode */ unsigned int gb18030_decode( char *s, unsigned int *pi ) { unsigned int c; unsigned char uc[4]; int i = *pi; uc[0] = ( unsigned char ) s[i]; if ( ( uc[0] & 128 ) == 0 ) { c = ( unsigned int ) uc[0]; i += 1; } else if ( uc[0] == 0x80 ) { c = 0x20AC; i += 1; } else if ( uc[0] != 0xFF ) { /* multi-byte character */ uc[1] = ( unsigned char ) s[i+1]; uc[2] = ( unsigned char ) s[i+2]; uc[3]= ( unsigned char ) s[i+3]; if ( in_range( uc[1], 0x40, 0x7e ) || in_range( uc[1], 0x80, 0xfe ) ) { /* two-byte character */ c = gb18030_to_unicode( &(uc[0]), 2 ); i += 2; } else if ( in_range( uc[1], 0x30, 0x39 ) && in_range( uc[2], 0x81, 0xfe ) && in_range( uc[3], 0x30, 0x39 ) ) { /* four-byte character */ c = gb18030_to_unicode( &(uc[0]), 4 ); i += 4; } else { /* this is an illegal character */ c = '?'; i += 1; } } else { /* s[i]==0xFF */ /* this is an illegal character */ c = '?'; i += 1; } *pi = i; return c; } hs-bibutils-6.10.0.0/bibutils/gb18030.h0000755000000000000000000000045407346545000015332 0ustar0000000000000000/* * gb18030.h * * Copyright (c) Chris Putnam 2008-2019 * * Source code released under the GPL version 2 * */ #ifndef GB18030_H #define GB18030_H extern int gb18030_encode( unsigned int unicode, unsigned char out[4] ); extern unsigned int gb18030_decode( char *s, unsigned int *pi ); #endif hs-bibutils-6.10.0.0/bibutils/gb18030_enumeration.c0000755000000000000000000416133007346545000017740 0ustar0000000000000000 typedef struct genums_t { unsigned int unicode; unsigned char len; unsigned char bytes[4]; } genums_t; static const genums_t gb18030_enums[] = { {0x0080,4,{0x81,0x30,0x81,0x30,}}, {0x0081,4,{0x81,0x30,0x81,0x31,}}, {0x0082,4,{0x81,0x30,0x81,0x32,}}, {0x0083,4,{0x81,0x30,0x81,0x33,}}, {0x0084,4,{0x81,0x30,0x81,0x34,}}, {0x0085,4,{0x81,0x30,0x81,0x35,}}, {0x0086,4,{0x81,0x30,0x81,0x36,}}, {0x0087,4,{0x81,0x30,0x81,0x37,}}, {0x0088,4,{0x81,0x30,0x81,0x38,}}, {0x0089,4,{0x81,0x30,0x81,0x39,}}, {0x008A,4,{0x81,0x30,0x82,0x30,}}, {0x008B,4,{0x81,0x30,0x82,0x31,}}, {0x008C,4,{0x81,0x30,0x82,0x32,}}, {0x008D,4,{0x81,0x30,0x82,0x33,}}, {0x008E,4,{0x81,0x30,0x82,0x34,}}, {0x008F,4,{0x81,0x30,0x82,0x35,}}, {0x0090,4,{0x81,0x30,0x82,0x36,}}, {0x0091,4,{0x81,0x30,0x82,0x37,}}, {0x0092,4,{0x81,0x30,0x82,0x38,}}, {0x0093,4,{0x81,0x30,0x82,0x39,}}, {0x0094,4,{0x81,0x30,0x83,0x30,}}, {0x0095,4,{0x81,0x30,0x83,0x31,}}, {0x0096,4,{0x81,0x30,0x83,0x32,}}, {0x0097,4,{0x81,0x30,0x83,0x33,}}, {0x0098,4,{0x81,0x30,0x83,0x34,}}, {0x0099,4,{0x81,0x30,0x83,0x35,}}, {0x009A,4,{0x81,0x30,0x83,0x36,}}, {0x009B,4,{0x81,0x30,0x83,0x37,}}, {0x009C,4,{0x81,0x30,0x83,0x38,}}, {0x009D,4,{0x81,0x30,0x83,0x39,}}, {0x009E,4,{0x81,0x30,0x84,0x30,}}, {0x009F,4,{0x81,0x30,0x84,0x31,}}, {0x00A0,4,{0x81,0x30,0x84,0x32,}}, {0x00A1,4,{0x81,0x30,0x84,0x33,}}, {0x00A2,4,{0x81,0x30,0x84,0x34,}}, {0x00A3,4,{0x81,0x30,0x84,0x35,}}, {0x00A4,2,{0xA1,0xE8,0x00,0x00,}}, {0x00A5,4,{0x81,0x30,0x84,0x36,}}, {0x00A6,4,{0x81,0x30,0x84,0x37,}}, {0x00A7,2,{0xA1,0xEC,0x00,0x00,}}, {0x00A8,2,{0xA1,0xA7,0x00,0x00,}}, {0x00A9,4,{0x81,0x30,0x84,0x38,}}, {0x00AA,4,{0x81,0x30,0x84,0x39,}}, {0x00AB,4,{0x81,0x30,0x85,0x30,}}, {0x00AC,4,{0x81,0x30,0x85,0x31,}}, {0x00AD,4,{0x81,0x30,0x85,0x32,}}, {0x00AE,4,{0x81,0x30,0x85,0x33,}}, {0x00AF,4,{0x81,0x30,0x85,0x34,}}, {0x00B0,2,{0xA1,0xE3,0x00,0x00,}}, {0x00B1,2,{0xA1,0xC0,0x00,0x00,}}, {0x00B2,4,{0x81,0x30,0x85,0x35,}}, {0x00B3,4,{0x81,0x30,0x85,0x36,}}, {0x00B4,4,{0x81,0x30,0x85,0x37,}}, {0x00B5,4,{0x81,0x30,0x85,0x38,}}, {0x00B6,4,{0x81,0x30,0x85,0x39,}}, {0x00B7,2,{0xA1,0xA4,0x00,0x00,}}, {0x00B8,4,{0x81,0x30,0x86,0x30,}}, {0x00B9,4,{0x81,0x30,0x86,0x31,}}, {0x00BA,4,{0x81,0x30,0x86,0x32,}}, {0x00BB,4,{0x81,0x30,0x86,0x33,}}, {0x00BC,4,{0x81,0x30,0x86,0x34,}}, {0x00BD,4,{0x81,0x30,0x86,0x35,}}, {0x00BE,4,{0x81,0x30,0x86,0x36,}}, {0x00BF,4,{0x81,0x30,0x86,0x37,}}, {0x00C0,4,{0x81,0x30,0x86,0x38,}}, {0x00C1,4,{0x81,0x30,0x86,0x39,}}, {0x00C2,4,{0x81,0x30,0x87,0x30,}}, {0x00C3,4,{0x81,0x30,0x87,0x31,}}, {0x00C4,4,{0x81,0x30,0x87,0x32,}}, {0x00C5,4,{0x81,0x30,0x87,0x33,}}, {0x00C6,4,{0x81,0x30,0x87,0x34,}}, {0x00C7,4,{0x81,0x30,0x87,0x35,}}, {0x00C8,4,{0x81,0x30,0x87,0x36,}}, {0x00C9,4,{0x81,0x30,0x87,0x37,}}, {0x00CA,4,{0x81,0x30,0x87,0x38,}}, {0x00CB,4,{0x81,0x30,0x87,0x39,}}, {0x00CC,4,{0x81,0x30,0x88,0x30,}}, {0x00CD,4,{0x81,0x30,0x88,0x31,}}, {0x00CE,4,{0x81,0x30,0x88,0x32,}}, {0x00CF,4,{0x81,0x30,0x88,0x33,}}, {0x00D0,4,{0x81,0x30,0x88,0x34,}}, {0x00D1,4,{0x81,0x30,0x88,0x35,}}, {0x00D2,4,{0x81,0x30,0x88,0x36,}}, {0x00D3,4,{0x81,0x30,0x88,0x37,}}, {0x00D4,4,{0x81,0x30,0x88,0x38,}}, {0x00D5,4,{0x81,0x30,0x88,0x39,}}, {0x00D6,4,{0x81,0x30,0x89,0x30,}}, {0x00D7,2,{0xA1,0xC1,0x00,0x00,}}, {0x00D8,4,{0x81,0x30,0x89,0x31,}}, {0x00D9,4,{0x81,0x30,0x89,0x32,}}, {0x00DA,4,{0x81,0x30,0x89,0x33,}}, {0x00DB,4,{0x81,0x30,0x89,0x34,}}, {0x00DC,4,{0x81,0x30,0x89,0x35,}}, {0x00DD,4,{0x81,0x30,0x89,0x36,}}, {0x00DE,4,{0x81,0x30,0x89,0x37,}}, {0x00DF,4,{0x81,0x30,0x89,0x38,}}, {0x00E0,2,{0xA8,0xA4,0x00,0x00,}}, {0x00E1,2,{0xA8,0xA2,0x00,0x00,}}, {0x00E2,4,{0x81,0x30,0x89,0x39,}}, {0x00E3,4,{0x81,0x30,0x8A,0x30,}}, {0x00E4,4,{0x81,0x30,0x8A,0x31,}}, {0x00E5,4,{0x81,0x30,0x8A,0x32,}}, {0x00E6,4,{0x81,0x30,0x8A,0x33,}}, {0x00E7,4,{0x81,0x30,0x8A,0x34,}}, {0x00E8,2,{0xA8,0xA8,0x00,0x00,}}, {0x00E9,2,{0xA8,0xA6,0x00,0x00,}}, {0x00EA,2,{0xA8,0xBA,0x00,0x00,}}, {0x00EB,4,{0x81,0x30,0x8A,0x35,}}, {0x00EC,2,{0xA8,0xAC,0x00,0x00,}}, {0x00ED,2,{0xA8,0xAA,0x00,0x00,}}, {0x00EE,4,{0x81,0x30,0x8A,0x36,}}, {0x00EF,4,{0x81,0x30,0x8A,0x37,}}, {0x00F0,4,{0x81,0x30,0x8A,0x38,}}, {0x00F1,4,{0x81,0x30,0x8A,0x39,}}, {0x00F2,2,{0xA8,0xB0,0x00,0x00,}}, {0x00F3,2,{0xA8,0xAE,0x00,0x00,}}, {0x00F4,4,{0x81,0x30,0x8B,0x30,}}, {0x00F5,4,{0x81,0x30,0x8B,0x31,}}, {0x00F6,4,{0x81,0x30,0x8B,0x32,}}, {0x00F7,2,{0xA1,0xC2,0x00,0x00,}}, {0x00F8,4,{0x81,0x30,0x8B,0x33,}}, {0x00F9,2,{0xA8,0xB4,0x00,0x00,}}, {0x00FA,2,{0xA8,0xB2,0x00,0x00,}}, {0x00FB,4,{0x81,0x30,0x8B,0x34,}}, {0x00FC,2,{0xA8,0xB9,0x00,0x00,}}, {0x00FD,4,{0x81,0x30,0x8B,0x35,}}, {0x00FE,4,{0x81,0x30,0x8B,0x36,}}, {0x00FF,4,{0x81,0x30,0x8B,0x37,}}, {0x0100,4,{0x81,0x30,0x8B,0x38,}}, {0x0101,2,{0xA8,0xA1,0x00,0x00,}}, {0x0102,4,{0x81,0x30,0x8B,0x39,}}, {0x0103,4,{0x81,0x30,0x8C,0x30,}}, {0x0104,4,{0x81,0x30,0x8C,0x31,}}, {0x0105,4,{0x81,0x30,0x8C,0x32,}}, {0x0106,4,{0x81,0x30,0x8C,0x33,}}, {0x0107,4,{0x81,0x30,0x8C,0x34,}}, {0x0108,4,{0x81,0x30,0x8C,0x35,}}, {0x0109,4,{0x81,0x30,0x8C,0x36,}}, {0x010A,4,{0x81,0x30,0x8C,0x37,}}, {0x010B,4,{0x81,0x30,0x8C,0x38,}}, {0x010C,4,{0x81,0x30,0x8C,0x39,}}, {0x010D,4,{0x81,0x30,0x8D,0x30,}}, {0x010E,4,{0x81,0x30,0x8D,0x31,}}, {0x010F,4,{0x81,0x30,0x8D,0x32,}}, {0x0110,4,{0x81,0x30,0x8D,0x33,}}, {0x0111,4,{0x81,0x30,0x8D,0x34,}}, {0x0112,4,{0x81,0x30,0x8D,0x35,}}, {0x0113,2,{0xA8,0xA5,0x00,0x00,}}, {0x0114,4,{0x81,0x30,0x8D,0x36,}}, {0x0115,4,{0x81,0x30,0x8D,0x37,}}, {0x0116,4,{0x81,0x30,0x8D,0x38,}}, {0x0117,4,{0x81,0x30,0x8D,0x39,}}, {0x0118,4,{0x81,0x30,0x8E,0x30,}}, {0x0119,4,{0x81,0x30,0x8E,0x31,}}, {0x011A,4,{0x81,0x30,0x8E,0x32,}}, {0x011B,2,{0xA8,0xA7,0x00,0x00,}}, {0x011C,4,{0x81,0x30,0x8E,0x33,}}, {0x011D,4,{0x81,0x30,0x8E,0x34,}}, {0x011E,4,{0x81,0x30,0x8E,0x35,}}, {0x011F,4,{0x81,0x30,0x8E,0x36,}}, {0x0120,4,{0x81,0x30,0x8E,0x37,}}, {0x0121,4,{0x81,0x30,0x8E,0x38,}}, {0x0122,4,{0x81,0x30,0x8E,0x39,}}, {0x0123,4,{0x81,0x30,0x8F,0x30,}}, {0x0124,4,{0x81,0x30,0x8F,0x31,}}, {0x0125,4,{0x81,0x30,0x8F,0x32,}}, {0x0126,4,{0x81,0x30,0x8F,0x33,}}, {0x0127,4,{0x81,0x30,0x8F,0x34,}}, {0x0128,4,{0x81,0x30,0x8F,0x35,}}, {0x0129,4,{0x81,0x30,0x8F,0x36,}}, {0x012A,4,{0x81,0x30,0x8F,0x37,}}, {0x012B,2,{0xA8,0xA9,0x00,0x00,}}, {0x012C,4,{0x81,0x30,0x8F,0x38,}}, {0x012D,4,{0x81,0x30,0x8F,0x39,}}, {0x012E,4,{0x81,0x30,0x90,0x30,}}, {0x012F,4,{0x81,0x30,0x90,0x31,}}, {0x0130,4,{0x81,0x30,0x90,0x32,}}, {0x0131,4,{0x81,0x30,0x90,0x33,}}, {0x0132,4,{0x81,0x30,0x90,0x34,}}, {0x0133,4,{0x81,0x30,0x90,0x35,}}, {0x0134,4,{0x81,0x30,0x90,0x36,}}, {0x0135,4,{0x81,0x30,0x90,0x37,}}, {0x0136,4,{0x81,0x30,0x90,0x38,}}, {0x0137,4,{0x81,0x30,0x90,0x39,}}, {0x0138,4,{0x81,0x30,0x91,0x30,}}, {0x0139,4,{0x81,0x30,0x91,0x31,}}, {0x013A,4,{0x81,0x30,0x91,0x32,}}, {0x013B,4,{0x81,0x30,0x91,0x33,}}, {0x013C,4,{0x81,0x30,0x91,0x34,}}, {0x013D,4,{0x81,0x30,0x91,0x35,}}, {0x013E,4,{0x81,0x30,0x91,0x36,}}, {0x013F,4,{0x81,0x30,0x91,0x37,}}, {0x0140,4,{0x81,0x30,0x91,0x38,}}, {0x0141,4,{0x81,0x30,0x91,0x39,}}, {0x0142,4,{0x81,0x30,0x92,0x30,}}, {0x0143,4,{0x81,0x30,0x92,0x31,}}, {0x0144,2,{0xA8,0xBD,0x00,0x00,}}, {0x0145,4,{0x81,0x30,0x92,0x32,}}, {0x0146,4,{0x81,0x30,0x92,0x33,}}, {0x0147,4,{0x81,0x30,0x92,0x34,}}, {0x0148,2,{0xA8,0xBE,0x00,0x00,}}, {0x0149,4,{0x81,0x30,0x92,0x35,}}, {0x014A,4,{0x81,0x30,0x92,0x36,}}, {0x014B,4,{0x81,0x30,0x92,0x37,}}, {0x014C,4,{0x81,0x30,0x92,0x38,}}, {0x014D,2,{0xA8,0xAD,0x00,0x00,}}, {0x014E,4,{0x81,0x30,0x92,0x39,}}, {0x014F,4,{0x81,0x30,0x93,0x30,}}, {0x0150,4,{0x81,0x30,0x93,0x31,}}, {0x0151,4,{0x81,0x30,0x93,0x32,}}, {0x0152,4,{0x81,0x30,0x93,0x33,}}, {0x0153,4,{0x81,0x30,0x93,0x34,}}, {0x0154,4,{0x81,0x30,0x93,0x35,}}, {0x0155,4,{0x81,0x30,0x93,0x36,}}, {0x0156,4,{0x81,0x30,0x93,0x37,}}, {0x0157,4,{0x81,0x30,0x93,0x38,}}, {0x0158,4,{0x81,0x30,0x93,0x39,}}, {0x0159,4,{0x81,0x30,0x94,0x30,}}, {0x015A,4,{0x81,0x30,0x94,0x31,}}, {0x015B,4,{0x81,0x30,0x94,0x32,}}, {0x015C,4,{0x81,0x30,0x94,0x33,}}, {0x015D,4,{0x81,0x30,0x94,0x34,}}, {0x015E,4,{0x81,0x30,0x94,0x35,}}, {0x015F,4,{0x81,0x30,0x94,0x36,}}, {0x0160,4,{0x81,0x30,0x94,0x37,}}, {0x0161,4,{0x81,0x30,0x94,0x38,}}, {0x0162,4,{0x81,0x30,0x94,0x39,}}, {0x0163,4,{0x81,0x30,0x95,0x30,}}, {0x0164,4,{0x81,0x30,0x95,0x31,}}, {0x0165,4,{0x81,0x30,0x95,0x32,}}, {0x0166,4,{0x81,0x30,0x95,0x33,}}, {0x0167,4,{0x81,0x30,0x95,0x34,}}, {0x0168,4,{0x81,0x30,0x95,0x35,}}, {0x0169,4,{0x81,0x30,0x95,0x36,}}, {0x016A,4,{0x81,0x30,0x95,0x37,}}, {0x016B,2,{0xA8,0xB1,0x00,0x00,}}, {0x016C,4,{0x81,0x30,0x95,0x38,}}, {0x016D,4,{0x81,0x30,0x95,0x39,}}, {0x016E,4,{0x81,0x30,0x96,0x30,}}, {0x016F,4,{0x81,0x30,0x96,0x31,}}, {0x0170,4,{0x81,0x30,0x96,0x32,}}, {0x0171,4,{0x81,0x30,0x96,0x33,}}, {0x0172,4,{0x81,0x30,0x96,0x34,}}, {0x0173,4,{0x81,0x30,0x96,0x35,}}, {0x0174,4,{0x81,0x30,0x96,0x36,}}, {0x0175,4,{0x81,0x30,0x96,0x37,}}, {0x0176,4,{0x81,0x30,0x96,0x38,}}, {0x0177,4,{0x81,0x30,0x96,0x39,}}, {0x0178,4,{0x81,0x30,0x97,0x30,}}, {0x0179,4,{0x81,0x30,0x97,0x31,}}, {0x017A,4,{0x81,0x30,0x97,0x32,}}, {0x017B,4,{0x81,0x30,0x97,0x33,}}, {0x017C,4,{0x81,0x30,0x97,0x34,}}, {0x017D,4,{0x81,0x30,0x97,0x35,}}, {0x017E,4,{0x81,0x30,0x97,0x36,}}, {0x017F,4,{0x81,0x30,0x97,0x37,}}, {0x0180,4,{0x81,0x30,0x97,0x38,}}, {0x0181,4,{0x81,0x30,0x97,0x39,}}, {0x0182,4,{0x81,0x30,0x98,0x30,}}, {0x0183,4,{0x81,0x30,0x98,0x31,}}, {0x0184,4,{0x81,0x30,0x98,0x32,}}, {0x0185,4,{0x81,0x30,0x98,0x33,}}, {0x0186,4,{0x81,0x30,0x98,0x34,}}, {0x0187,4,{0x81,0x30,0x98,0x35,}}, {0x0188,4,{0x81,0x30,0x98,0x36,}}, {0x0189,4,{0x81,0x30,0x98,0x37,}}, {0x018A,4,{0x81,0x30,0x98,0x38,}}, {0x018B,4,{0x81,0x30,0x98,0x39,}}, {0x018C,4,{0x81,0x30,0x99,0x30,}}, {0x018D,4,{0x81,0x30,0x99,0x31,}}, {0x018E,4,{0x81,0x30,0x99,0x32,}}, {0x018F,4,{0x81,0x30,0x99,0x33,}}, {0x0190,4,{0x81,0x30,0x99,0x34,}}, {0x0191,4,{0x81,0x30,0x99,0x35,}}, {0x0192,4,{0x81,0x30,0x99,0x36,}}, {0x0193,4,{0x81,0x30,0x99,0x37,}}, {0x0194,4,{0x81,0x30,0x99,0x38,}}, {0x0195,4,{0x81,0x30,0x99,0x39,}}, {0x0196,4,{0x81,0x30,0x9A,0x30,}}, {0x0197,4,{0x81,0x30,0x9A,0x31,}}, {0x0198,4,{0x81,0x30,0x9A,0x32,}}, {0x0199,4,{0x81,0x30,0x9A,0x33,}}, {0x019A,4,{0x81,0x30,0x9A,0x34,}}, {0x019B,4,{0x81,0x30,0x9A,0x35,}}, {0x019C,4,{0x81,0x30,0x9A,0x36,}}, {0x019D,4,{0x81,0x30,0x9A,0x37,}}, {0x019E,4,{0x81,0x30,0x9A,0x38,}}, {0x019F,4,{0x81,0x30,0x9A,0x39,}}, {0x01A0,4,{0x81,0x30,0x9B,0x30,}}, {0x01A1,4,{0x81,0x30,0x9B,0x31,}}, {0x01A2,4,{0x81,0x30,0x9B,0x32,}}, {0x01A3,4,{0x81,0x30,0x9B,0x33,}}, {0x01A4,4,{0x81,0x30,0x9B,0x34,}}, {0x01A5,4,{0x81,0x30,0x9B,0x35,}}, {0x01A6,4,{0x81,0x30,0x9B,0x36,}}, {0x01A7,4,{0x81,0x30,0x9B,0x37,}}, {0x01A8,4,{0x81,0x30,0x9B,0x38,}}, {0x01A9,4,{0x81,0x30,0x9B,0x39,}}, {0x01AA,4,{0x81,0x30,0x9C,0x30,}}, {0x01AB,4,{0x81,0x30,0x9C,0x31,}}, {0x01AC,4,{0x81,0x30,0x9C,0x32,}}, {0x01AD,4,{0x81,0x30,0x9C,0x33,}}, {0x01AE,4,{0x81,0x30,0x9C,0x34,}}, {0x01AF,4,{0x81,0x30,0x9C,0x35,}}, {0x01B0,4,{0x81,0x30,0x9C,0x36,}}, {0x01B1,4,{0x81,0x30,0x9C,0x37,}}, {0x01B2,4,{0x81,0x30,0x9C,0x38,}}, {0x01B3,4,{0x81,0x30,0x9C,0x39,}}, {0x01B4,4,{0x81,0x30,0x9D,0x30,}}, {0x01B5,4,{0x81,0x30,0x9D,0x31,}}, {0x01B6,4,{0x81,0x30,0x9D,0x32,}}, {0x01B7,4,{0x81,0x30,0x9D,0x33,}}, {0x01B8,4,{0x81,0x30,0x9D,0x34,}}, {0x01B9,4,{0x81,0x30,0x9D,0x35,}}, {0x01BA,4,{0x81,0x30,0x9D,0x36,}}, {0x01BB,4,{0x81,0x30,0x9D,0x37,}}, {0x01BC,4,{0x81,0x30,0x9D,0x38,}}, {0x01BD,4,{0x81,0x30,0x9D,0x39,}}, {0x01BE,4,{0x81,0x30,0x9E,0x30,}}, {0x01BF,4,{0x81,0x30,0x9E,0x31,}}, {0x01C0,4,{0x81,0x30,0x9E,0x32,}}, {0x01C1,4,{0x81,0x30,0x9E,0x33,}}, {0x01C2,4,{0x81,0x30,0x9E,0x34,}}, {0x01C3,4,{0x81,0x30,0x9E,0x35,}}, {0x01C4,4,{0x81,0x30,0x9E,0x36,}}, {0x01C5,4,{0x81,0x30,0x9E,0x37,}}, {0x01C6,4,{0x81,0x30,0x9E,0x38,}}, {0x01C7,4,{0x81,0x30,0x9E,0x39,}}, {0x01C8,4,{0x81,0x30,0x9F,0x30,}}, {0x01C9,4,{0x81,0x30,0x9F,0x31,}}, {0x01CA,4,{0x81,0x30,0x9F,0x32,}}, {0x01CB,4,{0x81,0x30,0x9F,0x33,}}, {0x01CC,4,{0x81,0x30,0x9F,0x34,}}, {0x01CD,4,{0x81,0x30,0x9F,0x35,}}, {0x01CE,2,{0xA8,0xA3,0x00,0x00,}}, {0x01CF,4,{0x81,0x30,0x9F,0x36,}}, {0x01D0,2,{0xA8,0xAB,0x00,0x00,}}, {0x01D1,4,{0x81,0x30,0x9F,0x37,}}, {0x01D2,2,{0xA8,0xAF,0x00,0x00,}}, {0x01D3,4,{0x81,0x30,0x9F,0x38,}}, {0x01D4,2,{0xA8,0xB3,0x00,0x00,}}, {0x01D5,4,{0x81,0x30,0x9F,0x39,}}, {0x01D6,2,{0xA8,0xB5,0x00,0x00,}}, {0x01D7,4,{0x81,0x30,0xA0,0x30,}}, {0x01D8,2,{0xA8,0xB6,0x00,0x00,}}, {0x01D9,4,{0x81,0x30,0xA0,0x31,}}, {0x01DA,2,{0xA8,0xB7,0x00,0x00,}}, {0x01DB,4,{0x81,0x30,0xA0,0x32,}}, {0x01DC,2,{0xA8,0xB8,0x00,0x00,}}, {0x01DD,4,{0x81,0x30,0xA0,0x33,}}, {0x01DE,4,{0x81,0x30,0xA0,0x34,}}, {0x01DF,4,{0x81,0x30,0xA0,0x35,}}, {0x01E0,4,{0x81,0x30,0xA0,0x36,}}, {0x01E1,4,{0x81,0x30,0xA0,0x37,}}, {0x01E2,4,{0x81,0x30,0xA0,0x38,}}, {0x01E3,4,{0x81,0x30,0xA0,0x39,}}, {0x01E4,4,{0x81,0x30,0xA1,0x30,}}, {0x01E5,4,{0x81,0x30,0xA1,0x31,}}, {0x01E6,4,{0x81,0x30,0xA1,0x32,}}, {0x01E7,4,{0x81,0x30,0xA1,0x33,}}, {0x01E8,4,{0x81,0x30,0xA1,0x34,}}, {0x01E9,4,{0x81,0x30,0xA1,0x35,}}, {0x01EA,4,{0x81,0x30,0xA1,0x36,}}, {0x01EB,4,{0x81,0x30,0xA1,0x37,}}, {0x01EC,4,{0x81,0x30,0xA1,0x38,}}, {0x01ED,4,{0x81,0x30,0xA1,0x39,}}, {0x01EE,4,{0x81,0x30,0xA2,0x30,}}, {0x01EF,4,{0x81,0x30,0xA2,0x31,}}, {0x01F0,4,{0x81,0x30,0xA2,0x32,}}, {0x01F1,4,{0x81,0x30,0xA2,0x33,}}, {0x01F2,4,{0x81,0x30,0xA2,0x34,}}, {0x01F3,4,{0x81,0x30,0xA2,0x35,}}, {0x01F4,4,{0x81,0x30,0xA2,0x36,}}, {0x01F5,4,{0x81,0x30,0xA2,0x37,}}, {0x01F6,4,{0x81,0x30,0xA2,0x38,}}, {0x01F7,4,{0x81,0x30,0xA2,0x39,}}, {0x01F8,4,{0x81,0x30,0xA3,0x30,}}, {0x01F9,2,{0xA8,0xBF,0x00,0x00,}}, {0x01FA,4,{0x81,0x30,0xA3,0x31,}}, {0x01FB,4,{0x81,0x30,0xA3,0x32,}}, {0x01FC,4,{0x81,0x30,0xA3,0x33,}}, {0x01FD,4,{0x81,0x30,0xA3,0x34,}}, {0x01FE,4,{0x81,0x30,0xA3,0x35,}}, {0x01FF,4,{0x81,0x30,0xA3,0x36,}}, {0x0200,4,{0x81,0x30,0xA3,0x37,}}, {0x0201,4,{0x81,0x30,0xA3,0x38,}}, {0x0202,4,{0x81,0x30,0xA3,0x39,}}, {0x0203,4,{0x81,0x30,0xA4,0x30,}}, {0x0204,4,{0x81,0x30,0xA4,0x31,}}, {0x0205,4,{0x81,0x30,0xA4,0x32,}}, {0x0206,4,{0x81,0x30,0xA4,0x33,}}, {0x0207,4,{0x81,0x30,0xA4,0x34,}}, {0x0208,4,{0x81,0x30,0xA4,0x35,}}, {0x0209,4,{0x81,0x30,0xA4,0x36,}}, {0x020A,4,{0x81,0x30,0xA4,0x37,}}, {0x020B,4,{0x81,0x30,0xA4,0x38,}}, {0x020C,4,{0x81,0x30,0xA4,0x39,}}, {0x020D,4,{0x81,0x30,0xA5,0x30,}}, {0x020E,4,{0x81,0x30,0xA5,0x31,}}, {0x020F,4,{0x81,0x30,0xA5,0x32,}}, {0x0210,4,{0x81,0x30,0xA5,0x33,}}, {0x0211,4,{0x81,0x30,0xA5,0x34,}}, {0x0212,4,{0x81,0x30,0xA5,0x35,}}, {0x0213,4,{0x81,0x30,0xA5,0x36,}}, {0x0214,4,{0x81,0x30,0xA5,0x37,}}, {0x0215,4,{0x81,0x30,0xA5,0x38,}}, {0x0216,4,{0x81,0x30,0xA5,0x39,}}, {0x0217,4,{0x81,0x30,0xA6,0x30,}}, {0x0218,4,{0x81,0x30,0xA6,0x31,}}, {0x0219,4,{0x81,0x30,0xA6,0x32,}}, {0x021A,4,{0x81,0x30,0xA6,0x33,}}, {0x021B,4,{0x81,0x30,0xA6,0x34,}}, {0x021C,4,{0x81,0x30,0xA6,0x35,}}, {0x021D,4,{0x81,0x30,0xA6,0x36,}}, {0x021E,4,{0x81,0x30,0xA6,0x37,}}, {0x021F,4,{0x81,0x30,0xA6,0x38,}}, {0x0220,4,{0x81,0x30,0xA6,0x39,}}, {0x0221,4,{0x81,0x30,0xA7,0x30,}}, {0x0222,4,{0x81,0x30,0xA7,0x31,}}, {0x0223,4,{0x81,0x30,0xA7,0x32,}}, {0x0224,4,{0x81,0x30,0xA7,0x33,}}, {0x0225,4,{0x81,0x30,0xA7,0x34,}}, {0x0226,4,{0x81,0x30,0xA7,0x35,}}, {0x0227,4,{0x81,0x30,0xA7,0x36,}}, {0x0228,4,{0x81,0x30,0xA7,0x37,}}, {0x0229,4,{0x81,0x30,0xA7,0x38,}}, {0x022A,4,{0x81,0x30,0xA7,0x39,}}, {0x022B,4,{0x81,0x30,0xA8,0x30,}}, {0x022C,4,{0x81,0x30,0xA8,0x31,}}, {0x022D,4,{0x81,0x30,0xA8,0x32,}}, {0x022E,4,{0x81,0x30,0xA8,0x33,}}, {0x022F,4,{0x81,0x30,0xA8,0x34,}}, {0x0230,4,{0x81,0x30,0xA8,0x35,}}, {0x0231,4,{0x81,0x30,0xA8,0x36,}}, {0x0232,4,{0x81,0x30,0xA8,0x37,}}, {0x0233,4,{0x81,0x30,0xA8,0x38,}}, {0x0234,4,{0x81,0x30,0xA8,0x39,}}, {0x0235,4,{0x81,0x30,0xA9,0x30,}}, {0x0236,4,{0x81,0x30,0xA9,0x31,}}, {0x0237,4,{0x81,0x30,0xA9,0x32,}}, {0x0238,4,{0x81,0x30,0xA9,0x33,}}, {0x0239,4,{0x81,0x30,0xA9,0x34,}}, {0x023A,4,{0x81,0x30,0xA9,0x35,}}, {0x023B,4,{0x81,0x30,0xA9,0x36,}}, {0x023C,4,{0x81,0x30,0xA9,0x37,}}, {0x023D,4,{0x81,0x30,0xA9,0x38,}}, {0x023E,4,{0x81,0x30,0xA9,0x39,}}, {0x023F,4,{0x81,0x30,0xAA,0x30,}}, {0x0240,4,{0x81,0x30,0xAA,0x31,}}, {0x0241,4,{0x81,0x30,0xAA,0x32,}}, {0x0242,4,{0x81,0x30,0xAA,0x33,}}, {0x0243,4,{0x81,0x30,0xAA,0x34,}}, {0x0244,4,{0x81,0x30,0xAA,0x35,}}, {0x0245,4,{0x81,0x30,0xAA,0x36,}}, {0x0246,4,{0x81,0x30,0xAA,0x37,}}, {0x0247,4,{0x81,0x30,0xAA,0x38,}}, {0x0248,4,{0x81,0x30,0xAA,0x39,}}, {0x0249,4,{0x81,0x30,0xAB,0x30,}}, {0x024A,4,{0x81,0x30,0xAB,0x31,}}, {0x024B,4,{0x81,0x30,0xAB,0x32,}}, {0x024C,4,{0x81,0x30,0xAB,0x33,}}, {0x024D,4,{0x81,0x30,0xAB,0x34,}}, {0x024E,4,{0x81,0x30,0xAB,0x35,}}, {0x024F,4,{0x81,0x30,0xAB,0x36,}}, {0x0250,4,{0x81,0x30,0xAB,0x37,}}, {0x0251,2,{0xA8,0xBB,0x00,0x00,}}, {0x0252,4,{0x81,0x30,0xAB,0x38,}}, {0x0253,4,{0x81,0x30,0xAB,0x39,}}, {0x0254,4,{0x81,0x30,0xAC,0x30,}}, {0x0255,4,{0x81,0x30,0xAC,0x31,}}, {0x0256,4,{0x81,0x30,0xAC,0x32,}}, {0x0257,4,{0x81,0x30,0xAC,0x33,}}, {0x0258,4,{0x81,0x30,0xAC,0x34,}}, {0x0259,4,{0x81,0x30,0xAC,0x35,}}, {0x025A,4,{0x81,0x30,0xAC,0x36,}}, {0x025B,4,{0x81,0x30,0xAC,0x37,}}, {0x025C,4,{0x81,0x30,0xAC,0x38,}}, {0x025D,4,{0x81,0x30,0xAC,0x39,}}, {0x025E,4,{0x81,0x30,0xAD,0x30,}}, {0x025F,4,{0x81,0x30,0xAD,0x31,}}, {0x0260,4,{0x81,0x30,0xAD,0x32,}}, {0x0261,2,{0xA8,0xC0,0x00,0x00,}}, {0x0262,4,{0x81,0x30,0xAD,0x33,}}, {0x0263,4,{0x81,0x30,0xAD,0x34,}}, {0x0264,4,{0x81,0x30,0xAD,0x35,}}, {0x0265,4,{0x81,0x30,0xAD,0x36,}}, {0x0266,4,{0x81,0x30,0xAD,0x37,}}, {0x0267,4,{0x81,0x30,0xAD,0x38,}}, {0x0268,4,{0x81,0x30,0xAD,0x39,}}, {0x0269,4,{0x81,0x30,0xAE,0x30,}}, {0x026A,4,{0x81,0x30,0xAE,0x31,}}, {0x026B,4,{0x81,0x30,0xAE,0x32,}}, {0x026C,4,{0x81,0x30,0xAE,0x33,}}, {0x026D,4,{0x81,0x30,0xAE,0x34,}}, {0x026E,4,{0x81,0x30,0xAE,0x35,}}, {0x026F,4,{0x81,0x30,0xAE,0x36,}}, {0x0270,4,{0x81,0x30,0xAE,0x37,}}, {0x0271,4,{0x81,0x30,0xAE,0x38,}}, {0x0272,4,{0x81,0x30,0xAE,0x39,}}, {0x0273,4,{0x81,0x30,0xAF,0x30,}}, {0x0274,4,{0x81,0x30,0xAF,0x31,}}, {0x0275,4,{0x81,0x30,0xAF,0x32,}}, {0x0276,4,{0x81,0x30,0xAF,0x33,}}, {0x0277,4,{0x81,0x30,0xAF,0x34,}}, {0x0278,4,{0x81,0x30,0xAF,0x35,}}, {0x0279,4,{0x81,0x30,0xAF,0x36,}}, {0x027A,4,{0x81,0x30,0xAF,0x37,}}, {0x027B,4,{0x81,0x30,0xAF,0x38,}}, {0x027C,4,{0x81,0x30,0xAF,0x39,}}, {0x027D,4,{0x81,0x30,0xB0,0x30,}}, {0x027E,4,{0x81,0x30,0xB0,0x31,}}, {0x027F,4,{0x81,0x30,0xB0,0x32,}}, {0x0280,4,{0x81,0x30,0xB0,0x33,}}, {0x0281,4,{0x81,0x30,0xB0,0x34,}}, {0x0282,4,{0x81,0x30,0xB0,0x35,}}, {0x0283,4,{0x81,0x30,0xB0,0x36,}}, {0x0284,4,{0x81,0x30,0xB0,0x37,}}, {0x0285,4,{0x81,0x30,0xB0,0x38,}}, {0x0286,4,{0x81,0x30,0xB0,0x39,}}, {0x0287,4,{0x81,0x30,0xB1,0x30,}}, {0x0288,4,{0x81,0x30,0xB1,0x31,}}, {0x0289,4,{0x81,0x30,0xB1,0x32,}}, {0x028A,4,{0x81,0x30,0xB1,0x33,}}, {0x028B,4,{0x81,0x30,0xB1,0x34,}}, {0x028C,4,{0x81,0x30,0xB1,0x35,}}, {0x028D,4,{0x81,0x30,0xB1,0x36,}}, {0x028E,4,{0x81,0x30,0xB1,0x37,}}, {0x028F,4,{0x81,0x30,0xB1,0x38,}}, {0x0290,4,{0x81,0x30,0xB1,0x39,}}, {0x0291,4,{0x81,0x30,0xB2,0x30,}}, {0x0292,4,{0x81,0x30,0xB2,0x31,}}, {0x0293,4,{0x81,0x30,0xB2,0x32,}}, {0x0294,4,{0x81,0x30,0xB2,0x33,}}, {0x0295,4,{0x81,0x30,0xB2,0x34,}}, {0x0296,4,{0x81,0x30,0xB2,0x35,}}, {0x0297,4,{0x81,0x30,0xB2,0x36,}}, {0x0298,4,{0x81,0x30,0xB2,0x37,}}, {0x0299,4,{0x81,0x30,0xB2,0x38,}}, {0x029A,4,{0x81,0x30,0xB2,0x39,}}, {0x029B,4,{0x81,0x30,0xB3,0x30,}}, {0x029C,4,{0x81,0x30,0xB3,0x31,}}, {0x029D,4,{0x81,0x30,0xB3,0x32,}}, {0x029E,4,{0x81,0x30,0xB3,0x33,}}, {0x029F,4,{0x81,0x30,0xB3,0x34,}}, {0x02A0,4,{0x81,0x30,0xB3,0x35,}}, {0x02A1,4,{0x81,0x30,0xB3,0x36,}}, {0x02A2,4,{0x81,0x30,0xB3,0x37,}}, {0x02A3,4,{0x81,0x30,0xB3,0x38,}}, {0x02A4,4,{0x81,0x30,0xB3,0x39,}}, {0x02A5,4,{0x81,0x30,0xB4,0x30,}}, {0x02A6,4,{0x81,0x30,0xB4,0x31,}}, {0x02A7,4,{0x81,0x30,0xB4,0x32,}}, {0x02A8,4,{0x81,0x30,0xB4,0x33,}}, {0x02A9,4,{0x81,0x30,0xB4,0x34,}}, {0x02AA,4,{0x81,0x30,0xB4,0x35,}}, {0x02AB,4,{0x81,0x30,0xB4,0x36,}}, {0x02AC,4,{0x81,0x30,0xB4,0x37,}}, {0x02AD,4,{0x81,0x30,0xB4,0x38,}}, {0x02AE,4,{0x81,0x30,0xB4,0x39,}}, {0x02AF,4,{0x81,0x30,0xB5,0x30,}}, {0x02B0,4,{0x81,0x30,0xB5,0x31,}}, {0x02B1,4,{0x81,0x30,0xB5,0x32,}}, {0x02B2,4,{0x81,0x30,0xB5,0x33,}}, {0x02B3,4,{0x81,0x30,0xB5,0x34,}}, {0x02B4,4,{0x81,0x30,0xB5,0x35,}}, {0x02B5,4,{0x81,0x30,0xB5,0x36,}}, {0x02B6,4,{0x81,0x30,0xB5,0x37,}}, {0x02B7,4,{0x81,0x30,0xB5,0x38,}}, {0x02B8,4,{0x81,0x30,0xB5,0x39,}}, {0x02B9,4,{0x81,0x30,0xB6,0x30,}}, {0x02BA,4,{0x81,0x30,0xB6,0x31,}}, {0x02BB,4,{0x81,0x30,0xB6,0x32,}}, {0x02BC,4,{0x81,0x30,0xB6,0x33,}}, {0x02BD,4,{0x81,0x30,0xB6,0x34,}}, {0x02BE,4,{0x81,0x30,0xB6,0x35,}}, {0x02BF,4,{0x81,0x30,0xB6,0x36,}}, {0x02C0,4,{0x81,0x30,0xB6,0x37,}}, {0x02C1,4,{0x81,0x30,0xB6,0x38,}}, {0x02C2,4,{0x81,0x30,0xB6,0x39,}}, {0x02C3,4,{0x81,0x30,0xB7,0x30,}}, {0x02C4,4,{0x81,0x30,0xB7,0x31,}}, {0x02C5,4,{0x81,0x30,0xB7,0x32,}}, {0x02C6,4,{0x81,0x30,0xB7,0x33,}}, {0x02C7,2,{0xA1,0xA6,0x00,0x00,}}, {0x02C8,4,{0x81,0x30,0xB7,0x34,}}, {0x02C9,2,{0xA1,0xA5,0x00,0x00,}}, {0x02CA,2,{0xA8,0x40,0x00,0x00,}}, {0x02CB,2,{0xA8,0x41,0x00,0x00,}}, {0x02CC,4,{0x81,0x30,0xB7,0x35,}}, {0x02CD,4,{0x81,0x30,0xB7,0x36,}}, {0x02CE,4,{0x81,0x30,0xB7,0x37,}}, {0x02CF,4,{0x81,0x30,0xB7,0x38,}}, {0x02D0,4,{0x81,0x30,0xB7,0x39,}}, {0x02D1,4,{0x81,0x30,0xB8,0x30,}}, {0x02D2,4,{0x81,0x30,0xB8,0x31,}}, {0x02D3,4,{0x81,0x30,0xB8,0x32,}}, {0x02D4,4,{0x81,0x30,0xB8,0x33,}}, {0x02D5,4,{0x81,0x30,0xB8,0x34,}}, {0x02D6,4,{0x81,0x30,0xB8,0x35,}}, {0x02D7,4,{0x81,0x30,0xB8,0x36,}}, {0x02D8,4,{0x81,0x30,0xB8,0x37,}}, {0x02D9,2,{0xA8,0x42,0x00,0x00,}}, {0x02DA,4,{0x81,0x30,0xB8,0x38,}}, {0x02DB,4,{0x81,0x30,0xB8,0x39,}}, {0x02DC,4,{0x81,0x30,0xB9,0x30,}}, {0x02DD,4,{0x81,0x30,0xB9,0x31,}}, {0x02DE,4,{0x81,0x30,0xB9,0x32,}}, {0x02DF,4,{0x81,0x30,0xB9,0x33,}}, {0x02E0,4,{0x81,0x30,0xB9,0x34,}}, {0x02E1,4,{0x81,0x30,0xB9,0x35,}}, {0x02E2,4,{0x81,0x30,0xB9,0x36,}}, {0x02E3,4,{0x81,0x30,0xB9,0x37,}}, {0x02E4,4,{0x81,0x30,0xB9,0x38,}}, {0x02E5,4,{0x81,0x30,0xB9,0x39,}}, {0x02E6,4,{0x81,0x30,0xBA,0x30,}}, {0x02E7,4,{0x81,0x30,0xBA,0x31,}}, {0x02E8,4,{0x81,0x30,0xBA,0x32,}}, {0x02E9,4,{0x81,0x30,0xBA,0x33,}}, {0x02EA,4,{0x81,0x30,0xBA,0x34,}}, {0x02EB,4,{0x81,0x30,0xBA,0x35,}}, {0x02EC,4,{0x81,0x30,0xBA,0x36,}}, {0x02ED,4,{0x81,0x30,0xBA,0x37,}}, {0x02EE,4,{0x81,0x30,0xBA,0x38,}}, {0x02EF,4,{0x81,0x30,0xBA,0x39,}}, {0x02F0,4,{0x81,0x30,0xBB,0x30,}}, {0x02F1,4,{0x81,0x30,0xBB,0x31,}}, {0x02F2,4,{0x81,0x30,0xBB,0x32,}}, {0x02F3,4,{0x81,0x30,0xBB,0x33,}}, {0x02F4,4,{0x81,0x30,0xBB,0x34,}}, {0x02F5,4,{0x81,0x30,0xBB,0x35,}}, {0x02F6,4,{0x81,0x30,0xBB,0x36,}}, {0x02F7,4,{0x81,0x30,0xBB,0x37,}}, {0x02F8,4,{0x81,0x30,0xBB,0x38,}}, {0x02F9,4,{0x81,0x30,0xBB,0x39,}}, {0x02FA,4,{0x81,0x30,0xBC,0x30,}}, {0x02FB,4,{0x81,0x30,0xBC,0x31,}}, {0x02FC,4,{0x81,0x30,0xBC,0x32,}}, {0x02FD,4,{0x81,0x30,0xBC,0x33,}}, {0x02FE,4,{0x81,0x30,0xBC,0x34,}}, {0x02FF,4,{0x81,0x30,0xBC,0x35,}}, {0x0300,4,{0x81,0x30,0xBC,0x36,}}, {0x0301,4,{0x81,0x30,0xBC,0x37,}}, {0x0302,4,{0x81,0x30,0xBC,0x38,}}, {0x0303,4,{0x81,0x30,0xBC,0x39,}}, {0x0304,4,{0x81,0x30,0xBD,0x30,}}, {0x0305,4,{0x81,0x30,0xBD,0x31,}}, {0x0306,4,{0x81,0x30,0xBD,0x32,}}, {0x0307,4,{0x81,0x30,0xBD,0x33,}}, {0x0308,4,{0x81,0x30,0xBD,0x34,}}, {0x0309,4,{0x81,0x30,0xBD,0x35,}}, {0x030A,4,{0x81,0x30,0xBD,0x36,}}, {0x030B,4,{0x81,0x30,0xBD,0x37,}}, {0x030C,4,{0x81,0x30,0xBD,0x38,}}, {0x030D,4,{0x81,0x30,0xBD,0x39,}}, {0x030E,4,{0x81,0x30,0xBE,0x30,}}, {0x030F,4,{0x81,0x30,0xBE,0x31,}}, {0x0310,4,{0x81,0x30,0xBE,0x32,}}, {0x0311,4,{0x81,0x30,0xBE,0x33,}}, {0x0312,4,{0x81,0x30,0xBE,0x34,}}, {0x0313,4,{0x81,0x30,0xBE,0x35,}}, {0x0314,4,{0x81,0x30,0xBE,0x36,}}, {0x0315,4,{0x81,0x30,0xBE,0x37,}}, {0x0316,4,{0x81,0x30,0xBE,0x38,}}, {0x0317,4,{0x81,0x30,0xBE,0x39,}}, {0x0318,4,{0x81,0x30,0xBF,0x30,}}, {0x0319,4,{0x81,0x30,0xBF,0x31,}}, {0x031A,4,{0x81,0x30,0xBF,0x32,}}, {0x031B,4,{0x81,0x30,0xBF,0x33,}}, {0x031C,4,{0x81,0x30,0xBF,0x34,}}, {0x031D,4,{0x81,0x30,0xBF,0x35,}}, {0x031E,4,{0x81,0x30,0xBF,0x36,}}, {0x031F,4,{0x81,0x30,0xBF,0x37,}}, {0x0320,4,{0x81,0x30,0xBF,0x38,}}, {0x0321,4,{0x81,0x30,0xBF,0x39,}}, {0x0322,4,{0x81,0x30,0xC0,0x30,}}, {0x0323,4,{0x81,0x30,0xC0,0x31,}}, {0x0324,4,{0x81,0x30,0xC0,0x32,}}, {0x0325,4,{0x81,0x30,0xC0,0x33,}}, {0x0326,4,{0x81,0x30,0xC0,0x34,}}, {0x0327,4,{0x81,0x30,0xC0,0x35,}}, {0x0328,4,{0x81,0x30,0xC0,0x36,}}, {0x0329,4,{0x81,0x30,0xC0,0x37,}}, {0x032A,4,{0x81,0x30,0xC0,0x38,}}, {0x032B,4,{0x81,0x30,0xC0,0x39,}}, {0x032C,4,{0x81,0x30,0xC1,0x30,}}, {0x032D,4,{0x81,0x30,0xC1,0x31,}}, {0x032E,4,{0x81,0x30,0xC1,0x32,}}, {0x032F,4,{0x81,0x30,0xC1,0x33,}}, {0x0330,4,{0x81,0x30,0xC1,0x34,}}, {0x0331,4,{0x81,0x30,0xC1,0x35,}}, {0x0332,4,{0x81,0x30,0xC1,0x36,}}, {0x0333,4,{0x81,0x30,0xC1,0x37,}}, {0x0334,4,{0x81,0x30,0xC1,0x38,}}, {0x0335,4,{0x81,0x30,0xC1,0x39,}}, {0x0336,4,{0x81,0x30,0xC2,0x30,}}, {0x0337,4,{0x81,0x30,0xC2,0x31,}}, {0x0338,4,{0x81,0x30,0xC2,0x32,}}, {0x0339,4,{0x81,0x30,0xC2,0x33,}}, {0x033A,4,{0x81,0x30,0xC2,0x34,}}, {0x033B,4,{0x81,0x30,0xC2,0x35,}}, {0x033C,4,{0x81,0x30,0xC2,0x36,}}, {0x033D,4,{0x81,0x30,0xC2,0x37,}}, {0x033E,4,{0x81,0x30,0xC2,0x38,}}, {0x033F,4,{0x81,0x30,0xC2,0x39,}}, {0x0340,4,{0x81,0x30,0xC3,0x30,}}, {0x0341,4,{0x81,0x30,0xC3,0x31,}}, {0x0342,4,{0x81,0x30,0xC3,0x32,}}, {0x0343,4,{0x81,0x30,0xC3,0x33,}}, {0x0344,4,{0x81,0x30,0xC3,0x34,}}, {0x0345,4,{0x81,0x30,0xC3,0x35,}}, {0x0346,4,{0x81,0x30,0xC3,0x36,}}, {0x0347,4,{0x81,0x30,0xC3,0x37,}}, {0x0348,4,{0x81,0x30,0xC3,0x38,}}, {0x0349,4,{0x81,0x30,0xC3,0x39,}}, {0x034A,4,{0x81,0x30,0xC4,0x30,}}, {0x034B,4,{0x81,0x30,0xC4,0x31,}}, {0x034C,4,{0x81,0x30,0xC4,0x32,}}, {0x034D,4,{0x81,0x30,0xC4,0x33,}}, {0x034E,4,{0x81,0x30,0xC4,0x34,}}, {0x034F,4,{0x81,0x30,0xC4,0x35,}}, {0x0350,4,{0x81,0x30,0xC4,0x36,}}, {0x0351,4,{0x81,0x30,0xC4,0x37,}}, {0x0352,4,{0x81,0x30,0xC4,0x38,}}, {0x0353,4,{0x81,0x30,0xC4,0x39,}}, {0x0354,4,{0x81,0x30,0xC5,0x30,}}, {0x0355,4,{0x81,0x30,0xC5,0x31,}}, {0x0356,4,{0x81,0x30,0xC5,0x32,}}, {0x0357,4,{0x81,0x30,0xC5,0x33,}}, {0x0358,4,{0x81,0x30,0xC5,0x34,}}, {0x0359,4,{0x81,0x30,0xC5,0x35,}}, {0x035A,4,{0x81,0x30,0xC5,0x36,}}, {0x035B,4,{0x81,0x30,0xC5,0x37,}}, {0x035C,4,{0x81,0x30,0xC5,0x38,}}, {0x035D,4,{0x81,0x30,0xC5,0x39,}}, {0x035E,4,{0x81,0x30,0xC6,0x30,}}, {0x035F,4,{0x81,0x30,0xC6,0x31,}}, {0x0360,4,{0x81,0x30,0xC6,0x32,}}, {0x0361,4,{0x81,0x30,0xC6,0x33,}}, {0x0362,4,{0x81,0x30,0xC6,0x34,}}, {0x0363,4,{0x81,0x30,0xC6,0x35,}}, {0x0364,4,{0x81,0x30,0xC6,0x36,}}, {0x0365,4,{0x81,0x30,0xC6,0x37,}}, {0x0366,4,{0x81,0x30,0xC6,0x38,}}, {0x0367,4,{0x81,0x30,0xC6,0x39,}}, {0x0368,4,{0x81,0x30,0xC7,0x30,}}, {0x0369,4,{0x81,0x30,0xC7,0x31,}}, {0x036A,4,{0x81,0x30,0xC7,0x32,}}, {0x036B,4,{0x81,0x30,0xC7,0x33,}}, {0x036C,4,{0x81,0x30,0xC7,0x34,}}, {0x036D,4,{0x81,0x30,0xC7,0x35,}}, {0x036E,4,{0x81,0x30,0xC7,0x36,}}, {0x036F,4,{0x81,0x30,0xC7,0x37,}}, {0x0370,4,{0x81,0x30,0xC7,0x38,}}, {0x0371,4,{0x81,0x30,0xC7,0x39,}}, {0x0372,4,{0x81,0x30,0xC8,0x30,}}, {0x0373,4,{0x81,0x30,0xC8,0x31,}}, {0x0374,4,{0x81,0x30,0xC8,0x32,}}, {0x0375,4,{0x81,0x30,0xC8,0x33,}}, {0x0376,4,{0x81,0x30,0xC8,0x34,}}, {0x0377,4,{0x81,0x30,0xC8,0x35,}}, {0x0378,4,{0x81,0x30,0xC8,0x36,}}, {0x0379,4,{0x81,0x30,0xC8,0x37,}}, {0x037A,4,{0x81,0x30,0xC8,0x38,}}, {0x037B,4,{0x81,0x30,0xC8,0x39,}}, {0x037C,4,{0x81,0x30,0xC9,0x30,}}, {0x037D,4,{0x81,0x30,0xC9,0x31,}}, {0x037E,4,{0x81,0x30,0xC9,0x32,}}, {0x037F,4,{0x81,0x30,0xC9,0x33,}}, {0x0380,4,{0x81,0x30,0xC9,0x34,}}, {0x0381,4,{0x81,0x30,0xC9,0x35,}}, {0x0382,4,{0x81,0x30,0xC9,0x36,}}, {0x0383,4,{0x81,0x30,0xC9,0x37,}}, {0x0384,4,{0x81,0x30,0xC9,0x38,}}, {0x0385,4,{0x81,0x30,0xC9,0x39,}}, {0x0386,4,{0x81,0x30,0xCA,0x30,}}, {0x0387,4,{0x81,0x30,0xCA,0x31,}}, {0x0388,4,{0x81,0x30,0xCA,0x32,}}, {0x0389,4,{0x81,0x30,0xCA,0x33,}}, {0x038A,4,{0x81,0x30,0xCA,0x34,}}, {0x038B,4,{0x81,0x30,0xCA,0x35,}}, {0x038C,4,{0x81,0x30,0xCA,0x36,}}, {0x038D,4,{0x81,0x30,0xCA,0x37,}}, {0x038E,4,{0x81,0x30,0xCA,0x38,}}, {0x038F,4,{0x81,0x30,0xCA,0x39,}}, {0x0390,4,{0x81,0x30,0xCB,0x30,}}, {0x0391,2,{0xA6,0xA1,0x00,0x00,}}, {0x0392,2,{0xA6,0xA2,0x00,0x00,}}, {0x0393,2,{0xA6,0xA3,0x00,0x00,}}, {0x0394,2,{0xA6,0xA4,0x00,0x00,}}, {0x0395,2,{0xA6,0xA5,0x00,0x00,}}, {0x0396,2,{0xA6,0xA6,0x00,0x00,}}, {0x0397,2,{0xA6,0xA7,0x00,0x00,}}, {0x0398,2,{0xA6,0xA8,0x00,0x00,}}, {0x0399,2,{0xA6,0xA9,0x00,0x00,}}, {0x039A,2,{0xA6,0xAA,0x00,0x00,}}, {0x039B,2,{0xA6,0xAB,0x00,0x00,}}, {0x039C,2,{0xA6,0xAC,0x00,0x00,}}, {0x039D,2,{0xA6,0xAD,0x00,0x00,}}, {0x039E,2,{0xA6,0xAE,0x00,0x00,}}, {0x039F,2,{0xA6,0xAF,0x00,0x00,}}, {0x03A0,2,{0xA6,0xB0,0x00,0x00,}}, {0x03A1,2,{0xA6,0xB1,0x00,0x00,}}, {0x03A2,4,{0x81,0x30,0xCB,0x31,}}, {0x03A3,2,{0xA6,0xB2,0x00,0x00,}}, {0x03A4,2,{0xA6,0xB3,0x00,0x00,}}, {0x03A5,2,{0xA6,0xB4,0x00,0x00,}}, {0x03A6,2,{0xA6,0xB5,0x00,0x00,}}, {0x03A7,2,{0xA6,0xB6,0x00,0x00,}}, {0x03A8,2,{0xA6,0xB7,0x00,0x00,}}, {0x03A9,2,{0xA6,0xB8,0x00,0x00,}}, {0x03AA,4,{0x81,0x30,0xCB,0x32,}}, {0x03AB,4,{0x81,0x30,0xCB,0x33,}}, {0x03AC,4,{0x81,0x30,0xCB,0x34,}}, {0x03AD,4,{0x81,0x30,0xCB,0x35,}}, {0x03AE,4,{0x81,0x30,0xCB,0x36,}}, {0x03AF,4,{0x81,0x30,0xCB,0x37,}}, {0x03B0,4,{0x81,0x30,0xCB,0x38,}}, {0x03B1,2,{0xA6,0xC1,0x00,0x00,}}, {0x03B2,2,{0xA6,0xC2,0x00,0x00,}}, {0x03B3,2,{0xA6,0xC3,0x00,0x00,}}, {0x03B4,2,{0xA6,0xC4,0x00,0x00,}}, {0x03B5,2,{0xA6,0xC5,0x00,0x00,}}, {0x03B6,2,{0xA6,0xC6,0x00,0x00,}}, {0x03B7,2,{0xA6,0xC7,0x00,0x00,}}, {0x03B8,2,{0xA6,0xC8,0x00,0x00,}}, {0x03B9,2,{0xA6,0xC9,0x00,0x00,}}, {0x03BA,2,{0xA6,0xCA,0x00,0x00,}}, {0x03BB,2,{0xA6,0xCB,0x00,0x00,}}, {0x03BC,2,{0xA6,0xCC,0x00,0x00,}}, {0x03BD,2,{0xA6,0xCD,0x00,0x00,}}, {0x03BE,2,{0xA6,0xCE,0x00,0x00,}}, {0x03BF,2,{0xA6,0xCF,0x00,0x00,}}, {0x03C0,2,{0xA6,0xD0,0x00,0x00,}}, {0x03C1,2,{0xA6,0xD1,0x00,0x00,}}, {0x03C2,4,{0x81,0x30,0xCB,0x39,}}, {0x03C3,2,{0xA6,0xD2,0x00,0x00,}}, {0x03C4,2,{0xA6,0xD3,0x00,0x00,}}, {0x03C5,2,{0xA6,0xD4,0x00,0x00,}}, {0x03C6,2,{0xA6,0xD5,0x00,0x00,}}, {0x03C7,2,{0xA6,0xD6,0x00,0x00,}}, {0x03C8,2,{0xA6,0xD7,0x00,0x00,}}, {0x03C9,2,{0xA6,0xD8,0x00,0x00,}}, {0x03CA,4,{0x81,0x30,0xCC,0x30,}}, {0x03CB,4,{0x81,0x30,0xCC,0x31,}}, {0x03CC,4,{0x81,0x30,0xCC,0x32,}}, {0x03CD,4,{0x81,0x30,0xCC,0x33,}}, {0x03CE,4,{0x81,0x30,0xCC,0x34,}}, {0x03CF,4,{0x81,0x30,0xCC,0x35,}}, {0x03D0,4,{0x81,0x30,0xCC,0x36,}}, {0x03D1,4,{0x81,0x30,0xCC,0x37,}}, {0x03D2,4,{0x81,0x30,0xCC,0x38,}}, {0x03D3,4,{0x81,0x30,0xCC,0x39,}}, {0x03D4,4,{0x81,0x30,0xCD,0x30,}}, {0x03D5,4,{0x81,0x30,0xCD,0x31,}}, {0x03D6,4,{0x81,0x30,0xCD,0x32,}}, {0x03D7,4,{0x81,0x30,0xCD,0x33,}}, {0x03D8,4,{0x81,0x30,0xCD,0x34,}}, {0x03D9,4,{0x81,0x30,0xCD,0x35,}}, {0x03DA,4,{0x81,0x30,0xCD,0x36,}}, {0x03DB,4,{0x81,0x30,0xCD,0x37,}}, {0x03DC,4,{0x81,0x30,0xCD,0x38,}}, {0x03DD,4,{0x81,0x30,0xCD,0x39,}}, {0x03DE,4,{0x81,0x30,0xCE,0x30,}}, {0x03DF,4,{0x81,0x30,0xCE,0x31,}}, {0x03E0,4,{0x81,0x30,0xCE,0x32,}}, {0x03E1,4,{0x81,0x30,0xCE,0x33,}}, {0x03E2,4,{0x81,0x30,0xCE,0x34,}}, {0x03E3,4,{0x81,0x30,0xCE,0x35,}}, {0x03E4,4,{0x81,0x30,0xCE,0x36,}}, {0x03E5,4,{0x81,0x30,0xCE,0x37,}}, {0x03E6,4,{0x81,0x30,0xCE,0x38,}}, {0x03E7,4,{0x81,0x30,0xCE,0x39,}}, {0x03E8,4,{0x81,0x30,0xCF,0x30,}}, {0x03E9,4,{0x81,0x30,0xCF,0x31,}}, {0x03EA,4,{0x81,0x30,0xCF,0x32,}}, {0x03EB,4,{0x81,0x30,0xCF,0x33,}}, {0x03EC,4,{0x81,0x30,0xCF,0x34,}}, {0x03ED,4,{0x81,0x30,0xCF,0x35,}}, {0x03EE,4,{0x81,0x30,0xCF,0x36,}}, {0x03EF,4,{0x81,0x30,0xCF,0x37,}}, {0x03F0,4,{0x81,0x30,0xCF,0x38,}}, {0x03F1,4,{0x81,0x30,0xCF,0x39,}}, {0x03F2,4,{0x81,0x30,0xD0,0x30,}}, {0x03F3,4,{0x81,0x30,0xD0,0x31,}}, {0x03F4,4,{0x81,0x30,0xD0,0x32,}}, {0x03F5,4,{0x81,0x30,0xD0,0x33,}}, {0x03F6,4,{0x81,0x30,0xD0,0x34,}}, {0x03F7,4,{0x81,0x30,0xD0,0x35,}}, {0x03F8,4,{0x81,0x30,0xD0,0x36,}}, {0x03F9,4,{0x81,0x30,0xD0,0x37,}}, {0x03FA,4,{0x81,0x30,0xD0,0x38,}}, {0x03FB,4,{0x81,0x30,0xD0,0x39,}}, {0x03FC,4,{0x81,0x30,0xD1,0x30,}}, {0x03FD,4,{0x81,0x30,0xD1,0x31,}}, {0x03FE,4,{0x81,0x30,0xD1,0x32,}}, {0x03FF,4,{0x81,0x30,0xD1,0x33,}}, {0x0400,4,{0x81,0x30,0xD1,0x34,}}, {0x0401,2,{0xA7,0xA7,0x00,0x00,}}, {0x0402,4,{0x81,0x30,0xD1,0x35,}}, {0x0403,4,{0x81,0x30,0xD1,0x36,}}, {0x0404,4,{0x81,0x30,0xD1,0x37,}}, {0x0405,4,{0x81,0x30,0xD1,0x38,}}, {0x0406,4,{0x81,0x30,0xD1,0x39,}}, {0x0407,4,{0x81,0x30,0xD2,0x30,}}, {0x0408,4,{0x81,0x30,0xD2,0x31,}}, {0x0409,4,{0x81,0x30,0xD2,0x32,}}, {0x040A,4,{0x81,0x30,0xD2,0x33,}}, {0x040B,4,{0x81,0x30,0xD2,0x34,}}, {0x040C,4,{0x81,0x30,0xD2,0x35,}}, {0x040D,4,{0x81,0x30,0xD2,0x36,}}, {0x040E,4,{0x81,0x30,0xD2,0x37,}}, {0x040F,4,{0x81,0x30,0xD2,0x38,}}, {0x0410,2,{0xA7,0xA1,0x00,0x00,}}, {0x0411,2,{0xA7,0xA2,0x00,0x00,}}, {0x0412,2,{0xA7,0xA3,0x00,0x00,}}, {0x0413,2,{0xA7,0xA4,0x00,0x00,}}, {0x0414,2,{0xA7,0xA5,0x00,0x00,}}, {0x0415,2,{0xA7,0xA6,0x00,0x00,}}, {0x0416,2,{0xA7,0xA8,0x00,0x00,}}, {0x0417,2,{0xA7,0xA9,0x00,0x00,}}, {0x0418,2,{0xA7,0xAA,0x00,0x00,}}, {0x0419,2,{0xA7,0xAB,0x00,0x00,}}, {0x041A,2,{0xA7,0xAC,0x00,0x00,}}, {0x041B,2,{0xA7,0xAD,0x00,0x00,}}, {0x041C,2,{0xA7,0xAE,0x00,0x00,}}, {0x041D,2,{0xA7,0xAF,0x00,0x00,}}, {0x041E,2,{0xA7,0xB0,0x00,0x00,}}, {0x041F,2,{0xA7,0xB1,0x00,0x00,}}, {0x0420,2,{0xA7,0xB2,0x00,0x00,}}, {0x0421,2,{0xA7,0xB3,0x00,0x00,}}, {0x0422,2,{0xA7,0xB4,0x00,0x00,}}, {0x0423,2,{0xA7,0xB5,0x00,0x00,}}, {0x0424,2,{0xA7,0xB6,0x00,0x00,}}, {0x0425,2,{0xA7,0xB7,0x00,0x00,}}, {0x0426,2,{0xA7,0xB8,0x00,0x00,}}, {0x0427,2,{0xA7,0xB9,0x00,0x00,}}, {0x0428,2,{0xA7,0xBA,0x00,0x00,}}, {0x0429,2,{0xA7,0xBB,0x00,0x00,}}, {0x042A,2,{0xA7,0xBC,0x00,0x00,}}, {0x042B,2,{0xA7,0xBD,0x00,0x00,}}, {0x042C,2,{0xA7,0xBE,0x00,0x00,}}, {0x042D,2,{0xA7,0xBF,0x00,0x00,}}, {0x042E,2,{0xA7,0xC0,0x00,0x00,}}, {0x042F,2,{0xA7,0xC1,0x00,0x00,}}, {0x0430,2,{0xA7,0xD1,0x00,0x00,}}, {0x0431,2,{0xA7,0xD2,0x00,0x00,}}, {0x0432,2,{0xA7,0xD3,0x00,0x00,}}, {0x0433,2,{0xA7,0xD4,0x00,0x00,}}, {0x0434,2,{0xA7,0xD5,0x00,0x00,}}, {0x0435,2,{0xA7,0xD6,0x00,0x00,}}, {0x0436,2,{0xA7,0xD8,0x00,0x00,}}, {0x0437,2,{0xA7,0xD9,0x00,0x00,}}, {0x0438,2,{0xA7,0xDA,0x00,0x00,}}, {0x0439,2,{0xA7,0xDB,0x00,0x00,}}, {0x043A,2,{0xA7,0xDC,0x00,0x00,}}, {0x043B,2,{0xA7,0xDD,0x00,0x00,}}, {0x043C,2,{0xA7,0xDE,0x00,0x00,}}, {0x043D,2,{0xA7,0xDF,0x00,0x00,}}, {0x043E,2,{0xA7,0xE0,0x00,0x00,}}, {0x043F,2,{0xA7,0xE1,0x00,0x00,}}, {0x0440,2,{0xA7,0xE2,0x00,0x00,}}, {0x0441,2,{0xA7,0xE3,0x00,0x00,}}, {0x0442,2,{0xA7,0xE4,0x00,0x00,}}, {0x0443,2,{0xA7,0xE5,0x00,0x00,}}, {0x0444,2,{0xA7,0xE6,0x00,0x00,}}, {0x0445,2,{0xA7,0xE7,0x00,0x00,}}, {0x0446,2,{0xA7,0xE8,0x00,0x00,}}, {0x0447,2,{0xA7,0xE9,0x00,0x00,}}, {0x0448,2,{0xA7,0xEA,0x00,0x00,}}, {0x0449,2,{0xA7,0xEB,0x00,0x00,}}, {0x044A,2,{0xA7,0xEC,0x00,0x00,}}, {0x044B,2,{0xA7,0xED,0x00,0x00,}}, {0x044C,2,{0xA7,0xEE,0x00,0x00,}}, {0x044D,2,{0xA7,0xEF,0x00,0x00,}}, {0x044E,2,{0xA7,0xF0,0x00,0x00,}}, {0x044F,2,{0xA7,0xF1,0x00,0x00,}}, {0x0450,4,{0x81,0x30,0xD2,0x39,}}, {0x0451,2,{0xA7,0xD7,0x00,0x00,}}, {0x2010,2,{0xA9,0x5C,0x00,0x00,}}, {0x2011,4,{0x81,0x36,0xA5,0x32,}}, {0x2012,4,{0x81,0x36,0xA5,0x33,}}, {0x2013,2,{0xA8,0x43,0x00,0x00,}}, {0x2014,2,{0xA1,0xAA,0x00,0x00,}}, {0x2015,2,{0xA8,0x44,0x00,0x00,}}, {0x2016,2,{0xA1,0xAC,0x00,0x00,}}, {0x2017,4,{0x81,0x36,0xA5,0x34,}}, {0x2018,2,{0xA1,0xAE,0x00,0x00,}}, {0x2019,2,{0xA1,0xAF,0x00,0x00,}}, {0x201A,4,{0x81,0x36,0xA5,0x35,}}, {0x201B,4,{0x81,0x36,0xA5,0x36,}}, {0x201C,2,{0xA1,0xB0,0x00,0x00,}}, {0x201D,2,{0xA1,0xB1,0x00,0x00,}}, {0x201E,4,{0x81,0x36,0xA5,0x37,}}, {0x201F,4,{0x81,0x36,0xA5,0x38,}}, {0x2020,4,{0x81,0x36,0xA5,0x39,}}, {0x2021,4,{0x81,0x36,0xA6,0x30,}}, {0x2022,4,{0x81,0x36,0xA6,0x31,}}, {0x2023,4,{0x81,0x36,0xA6,0x32,}}, {0x2024,4,{0x81,0x36,0xA6,0x33,}}, {0x2025,2,{0xA8,0x45,0x00,0x00,}}, {0x2026,2,{0xA1,0xAD,0x00,0x00,}}, {0x2027,4,{0x81,0x36,0xA6,0x34,}}, {0x2028,4,{0x81,0x36,0xA6,0x35,}}, {0x2029,4,{0x81,0x36,0xA6,0x36,}}, {0x202A,4,{0x81,0x36,0xA6,0x37,}}, {0x202B,4,{0x81,0x36,0xA6,0x38,}}, {0x202C,4,{0x81,0x36,0xA6,0x39,}}, {0x202D,4,{0x81,0x36,0xA7,0x30,}}, {0x202E,4,{0x81,0x36,0xA7,0x31,}}, {0x202F,4,{0x81,0x36,0xA7,0x32,}}, {0x2030,2,{0xA1,0xEB,0x00,0x00,}}, {0x2031,4,{0x81,0x36,0xA7,0x33,}}, {0x2032,2,{0xA1,0xE4,0x00,0x00,}}, {0x2033,2,{0xA1,0xE5,0x00,0x00,}}, {0x2034,4,{0x81,0x36,0xA7,0x34,}}, {0x2035,2,{0xA8,0x46,0x00,0x00,}}, {0x2036,4,{0x81,0x36,0xA7,0x35,}}, {0x2037,4,{0x81,0x36,0xA7,0x36,}}, {0x2038,4,{0x81,0x36,0xA7,0x37,}}, {0x2039,4,{0x81,0x36,0xA7,0x38,}}, {0x203A,4,{0x81,0x36,0xA7,0x39,}}, {0x203B,2,{0xA1,0xF9,0x00,0x00,}}, {0x203C,4,{0x81,0x36,0xA8,0x30,}}, {0x203D,4,{0x81,0x36,0xA8,0x31,}}, {0x203E,4,{0x81,0x36,0xA8,0x32,}}, {0x203F,4,{0x81,0x36,0xA8,0x33,}}, {0x2040,4,{0x81,0x36,0xA8,0x34,}}, {0x2041,4,{0x81,0x36,0xA8,0x35,}}, {0x2042,4,{0x81,0x36,0xA8,0x36,}}, {0x2043,4,{0x81,0x36,0xA8,0x37,}}, {0x2044,4,{0x81,0x36,0xA8,0x38,}}, {0x2045,4,{0x81,0x36,0xA8,0x39,}}, {0x2046,4,{0x81,0x36,0xA9,0x30,}}, {0x2047,4,{0x81,0x36,0xA9,0x31,}}, {0x2048,4,{0x81,0x36,0xA9,0x32,}}, {0x2049,4,{0x81,0x36,0xA9,0x33,}}, {0x204A,4,{0x81,0x36,0xA9,0x34,}}, {0x204B,4,{0x81,0x36,0xA9,0x35,}}, {0x204C,4,{0x81,0x36,0xA9,0x36,}}, {0x204D,4,{0x81,0x36,0xA9,0x37,}}, {0x204E,4,{0x81,0x36,0xA9,0x38,}}, {0x204F,4,{0x81,0x36,0xA9,0x39,}}, {0x2050,4,{0x81,0x36,0xAA,0x30,}}, {0x2051,4,{0x81,0x36,0xAA,0x31,}}, {0x2052,4,{0x81,0x36,0xAA,0x32,}}, {0x2053,4,{0x81,0x36,0xAA,0x33,}}, {0x2054,4,{0x81,0x36,0xAA,0x34,}}, {0x2055,4,{0x81,0x36,0xAA,0x35,}}, {0x2056,4,{0x81,0x36,0xAA,0x36,}}, {0x2057,4,{0x81,0x36,0xAA,0x37,}}, {0x2058,4,{0x81,0x36,0xAA,0x38,}}, {0x2059,4,{0x81,0x36,0xAA,0x39,}}, {0x205A,4,{0x81,0x36,0xAB,0x30,}}, {0x205B,4,{0x81,0x36,0xAB,0x31,}}, {0x205C,4,{0x81,0x36,0xAB,0x32,}}, {0x205D,4,{0x81,0x36,0xAB,0x33,}}, {0x205E,4,{0x81,0x36,0xAB,0x34,}}, {0x205F,4,{0x81,0x36,0xAB,0x35,}}, {0x2060,4,{0x81,0x36,0xAB,0x36,}}, {0x2061,4,{0x81,0x36,0xAB,0x37,}}, {0x2062,4,{0x81,0x36,0xAB,0x38,}}, {0x2063,4,{0x81,0x36,0xAB,0x39,}}, {0x2064,4,{0x81,0x36,0xAC,0x30,}}, {0x2065,4,{0x81,0x36,0xAC,0x31,}}, {0x2066,4,{0x81,0x36,0xAC,0x32,}}, {0x2067,4,{0x81,0x36,0xAC,0x33,}}, {0x2068,4,{0x81,0x36,0xAC,0x34,}}, {0x2069,4,{0x81,0x36,0xAC,0x35,}}, {0x206A,4,{0x81,0x36,0xAC,0x36,}}, {0x206B,4,{0x81,0x36,0xAC,0x37,}}, {0x206C,4,{0x81,0x36,0xAC,0x38,}}, {0x206D,4,{0x81,0x36,0xAC,0x39,}}, {0x206E,4,{0x81,0x36,0xAD,0x30,}}, {0x206F,4,{0x81,0x36,0xAD,0x31,}}, {0x2070,4,{0x81,0x36,0xAD,0x32,}}, {0x2071,4,{0x81,0x36,0xAD,0x33,}}, {0x2072,4,{0x81,0x36,0xAD,0x34,}}, {0x2073,4,{0x81,0x36,0xAD,0x35,}}, {0x2074,4,{0x81,0x36,0xAD,0x36,}}, {0x2075,4,{0x81,0x36,0xAD,0x37,}}, {0x2076,4,{0x81,0x36,0xAD,0x38,}}, {0x2077,4,{0x81,0x36,0xAD,0x39,}}, {0x2078,4,{0x81,0x36,0xAE,0x30,}}, {0x2079,4,{0x81,0x36,0xAE,0x31,}}, {0x207A,4,{0x81,0x36,0xAE,0x32,}}, {0x207B,4,{0x81,0x36,0xAE,0x33,}}, {0x207C,4,{0x81,0x36,0xAE,0x34,}}, {0x207D,4,{0x81,0x36,0xAE,0x35,}}, {0x207E,4,{0x81,0x36,0xAE,0x36,}}, {0x207F,4,{0x81,0x36,0xAE,0x37,}}, {0x2080,4,{0x81,0x36,0xAE,0x38,}}, {0x2081,4,{0x81,0x36,0xAE,0x39,}}, {0x2082,4,{0x81,0x36,0xAF,0x30,}}, {0x2083,4,{0x81,0x36,0xAF,0x31,}}, {0x2084,4,{0x81,0x36,0xAF,0x32,}}, {0x2085,4,{0x81,0x36,0xAF,0x33,}}, {0x2086,4,{0x81,0x36,0xAF,0x34,}}, {0x2087,4,{0x81,0x36,0xAF,0x35,}}, {0x2088,4,{0x81,0x36,0xAF,0x36,}}, {0x2089,4,{0x81,0x36,0xAF,0x37,}}, {0x208A,4,{0x81,0x36,0xAF,0x38,}}, {0x208B,4,{0x81,0x36,0xAF,0x39,}}, {0x208C,4,{0x81,0x36,0xB0,0x30,}}, {0x208D,4,{0x81,0x36,0xB0,0x31,}}, {0x208E,4,{0x81,0x36,0xB0,0x32,}}, {0x208F,4,{0x81,0x36,0xB0,0x33,}}, {0x2090,4,{0x81,0x36,0xB0,0x34,}}, {0x2091,4,{0x81,0x36,0xB0,0x35,}}, {0x2092,4,{0x81,0x36,0xB0,0x36,}}, {0x2093,4,{0x81,0x36,0xB0,0x37,}}, {0x2094,4,{0x81,0x36,0xB0,0x38,}}, {0x2095,4,{0x81,0x36,0xB0,0x39,}}, {0x2096,4,{0x81,0x36,0xB1,0x30,}}, {0x2097,4,{0x81,0x36,0xB1,0x31,}}, {0x2098,4,{0x81,0x36,0xB1,0x32,}}, {0x2099,4,{0x81,0x36,0xB1,0x33,}}, {0x209A,4,{0x81,0x36,0xB1,0x34,}}, {0x209B,4,{0x81,0x36,0xB1,0x35,}}, {0x209C,4,{0x81,0x36,0xB1,0x36,}}, {0x209D,4,{0x81,0x36,0xB1,0x37,}}, {0x209E,4,{0x81,0x36,0xB1,0x38,}}, {0x209F,4,{0x81,0x36,0xB1,0x39,}}, {0x20A0,4,{0x81,0x36,0xB2,0x30,}}, {0x20A1,4,{0x81,0x36,0xB2,0x31,}}, {0x20A2,4,{0x81,0x36,0xB2,0x32,}}, {0x20A3,4,{0x81,0x36,0xB2,0x33,}}, {0x20A4,4,{0x81,0x36,0xB2,0x34,}}, {0x20A5,4,{0x81,0x36,0xB2,0x35,}}, {0x20A6,4,{0x81,0x36,0xB2,0x36,}}, {0x20A7,4,{0x81,0x36,0xB2,0x37,}}, {0x20A8,4,{0x81,0x36,0xB2,0x38,}}, {0x20A9,4,{0x81,0x36,0xB2,0x39,}}, {0x20AA,4,{0x81,0x36,0xB3,0x30,}}, {0x20AB,4,{0x81,0x36,0xB3,0x31,}}, {0x20AC,2,{0xA2,0xE3,0x00,0x00,}}, {0x20AD,4,{0x81,0x36,0xB3,0x32,}}, {0x20AE,4,{0x81,0x36,0xB3,0x33,}}, {0x20AF,4,{0x81,0x36,0xB3,0x34,}}, {0x20B0,4,{0x81,0x36,0xB3,0x35,}}, {0x20B1,4,{0x81,0x36,0xB3,0x36,}}, {0x20B2,4,{0x81,0x36,0xB3,0x37,}}, {0x20B3,4,{0x81,0x36,0xB3,0x38,}}, {0x20B4,4,{0x81,0x36,0xB3,0x39,}}, {0x20B5,4,{0x81,0x36,0xB4,0x30,}}, {0x20B6,4,{0x81,0x36,0xB4,0x31,}}, {0x20B7,4,{0x81,0x36,0xB4,0x32,}}, {0x20B8,4,{0x81,0x36,0xB4,0x33,}}, {0x20B9,4,{0x81,0x36,0xB4,0x34,}}, {0x20BA,4,{0x81,0x36,0xB4,0x35,}}, {0x20BB,4,{0x81,0x36,0xB4,0x36,}}, {0x20BC,4,{0x81,0x36,0xB4,0x37,}}, {0x20BD,4,{0x81,0x36,0xB4,0x38,}}, {0x20BE,4,{0x81,0x36,0xB4,0x39,}}, {0x20BF,4,{0x81,0x36,0xB5,0x30,}}, {0x20C0,4,{0x81,0x36,0xB5,0x31,}}, {0x20C1,4,{0x81,0x36,0xB5,0x32,}}, {0x20C2,4,{0x81,0x36,0xB5,0x33,}}, {0x20C3,4,{0x81,0x36,0xB5,0x34,}}, {0x20C4,4,{0x81,0x36,0xB5,0x35,}}, {0x20C5,4,{0x81,0x36,0xB5,0x36,}}, {0x20C6,4,{0x81,0x36,0xB5,0x37,}}, {0x20C7,4,{0x81,0x36,0xB5,0x38,}}, {0x20C8,4,{0x81,0x36,0xB5,0x39,}}, {0x20C9,4,{0x81,0x36,0xB6,0x30,}}, {0x20CA,4,{0x81,0x36,0xB6,0x31,}}, {0x20CB,4,{0x81,0x36,0xB6,0x32,}}, {0x20CC,4,{0x81,0x36,0xB6,0x33,}}, {0x20CD,4,{0x81,0x36,0xB6,0x34,}}, {0x20CE,4,{0x81,0x36,0xB6,0x35,}}, {0x20CF,4,{0x81,0x36,0xB6,0x36,}}, {0x20D0,4,{0x81,0x36,0xB6,0x37,}}, {0x20D1,4,{0x81,0x36,0xB6,0x38,}}, {0x20D2,4,{0x81,0x36,0xB6,0x39,}}, {0x20D3,4,{0x81,0x36,0xB7,0x30,}}, {0x20D4,4,{0x81,0x36,0xB7,0x31,}}, {0x20D5,4,{0x81,0x36,0xB7,0x32,}}, {0x20D6,4,{0x81,0x36,0xB7,0x33,}}, {0x20D7,4,{0x81,0x36,0xB7,0x34,}}, {0x20D8,4,{0x81,0x36,0xB7,0x35,}}, {0x20D9,4,{0x81,0x36,0xB7,0x36,}}, {0x20DA,4,{0x81,0x36,0xB7,0x37,}}, {0x20DB,4,{0x81,0x36,0xB7,0x38,}}, {0x20DC,4,{0x81,0x36,0xB7,0x39,}}, {0x20DD,4,{0x81,0x36,0xB8,0x30,}}, {0x20DE,4,{0x81,0x36,0xB8,0x31,}}, {0x20DF,4,{0x81,0x36,0xB8,0x32,}}, {0x20E0,4,{0x81,0x36,0xB8,0x33,}}, {0x20E1,4,{0x81,0x36,0xB8,0x34,}}, {0x20E2,4,{0x81,0x36,0xB8,0x35,}}, {0x20E3,4,{0x81,0x36,0xB8,0x36,}}, {0x20E4,4,{0x81,0x36,0xB8,0x37,}}, {0x20E5,4,{0x81,0x36,0xB8,0x38,}}, {0x20E6,4,{0x81,0x36,0xB8,0x39,}}, {0x20E7,4,{0x81,0x36,0xB9,0x30,}}, {0x20E8,4,{0x81,0x36,0xB9,0x31,}}, {0x20E9,4,{0x81,0x36,0xB9,0x32,}}, {0x20EA,4,{0x81,0x36,0xB9,0x33,}}, {0x20EB,4,{0x81,0x36,0xB9,0x34,}}, {0x20EC,4,{0x81,0x36,0xB9,0x35,}}, {0x20ED,4,{0x81,0x36,0xB9,0x36,}}, {0x20EE,4,{0x81,0x36,0xB9,0x37,}}, {0x20EF,4,{0x81,0x36,0xB9,0x38,}}, {0x20F0,4,{0x81,0x36,0xB9,0x39,}}, {0x20F1,4,{0x81,0x36,0xBA,0x30,}}, {0x20F2,4,{0x81,0x36,0xBA,0x31,}}, {0x20F3,4,{0x81,0x36,0xBA,0x32,}}, {0x20F4,4,{0x81,0x36,0xBA,0x33,}}, {0x20F5,4,{0x81,0x36,0xBA,0x34,}}, {0x20F6,4,{0x81,0x36,0xBA,0x35,}}, {0x20F7,4,{0x81,0x36,0xBA,0x36,}}, {0x20F8,4,{0x81,0x36,0xBA,0x37,}}, {0x20F9,4,{0x81,0x36,0xBA,0x38,}}, {0x20FA,4,{0x81,0x36,0xBA,0x39,}}, {0x20FB,4,{0x81,0x36,0xBB,0x30,}}, {0x20FC,4,{0x81,0x36,0xBB,0x31,}}, {0x20FD,4,{0x81,0x36,0xBB,0x32,}}, {0x20FE,4,{0x81,0x36,0xBB,0x33,}}, {0x20FF,4,{0x81,0x36,0xBB,0x34,}}, {0x2100,4,{0x81,0x36,0xBB,0x35,}}, {0x2101,4,{0x81,0x36,0xBB,0x36,}}, {0x2102,4,{0x81,0x36,0xBB,0x37,}}, {0x2103,2,{0xA1,0xE6,0x00,0x00,}}, {0x2104,4,{0x81,0x36,0xBB,0x38,}}, {0x2105,2,{0xA8,0x47,0x00,0x00,}}, {0x2106,4,{0x81,0x36,0xBB,0x39,}}, {0x2107,4,{0x81,0x36,0xBC,0x30,}}, {0x2108,4,{0x81,0x36,0xBC,0x31,}}, {0x2109,2,{0xA8,0x48,0x00,0x00,}}, {0x210A,4,{0x81,0x36,0xBC,0x32,}}, {0x210B,4,{0x81,0x36,0xBC,0x33,}}, {0x210C,4,{0x81,0x36,0xBC,0x34,}}, {0x210D,4,{0x81,0x36,0xBC,0x35,}}, {0x210E,4,{0x81,0x36,0xBC,0x36,}}, {0x210F,4,{0x81,0x36,0xBC,0x37,}}, {0x2110,4,{0x81,0x36,0xBC,0x38,}}, {0x2111,4,{0x81,0x36,0xBC,0x39,}}, {0x2112,4,{0x81,0x36,0xBD,0x30,}}, {0x2113,4,{0x81,0x36,0xBD,0x31,}}, {0x2114,4,{0x81,0x36,0xBD,0x32,}}, {0x2115,4,{0x81,0x36,0xBD,0x33,}}, {0x2116,2,{0xA1,0xED,0x00,0x00,}}, {0x2117,4,{0x81,0x36,0xBD,0x34,}}, {0x2118,4,{0x81,0x36,0xBD,0x35,}}, {0x2119,4,{0x81,0x36,0xBD,0x36,}}, {0x211A,4,{0x81,0x36,0xBD,0x37,}}, {0x211B,4,{0x81,0x36,0xBD,0x38,}}, {0x211C,4,{0x81,0x36,0xBD,0x39,}}, {0x211D,4,{0x81,0x36,0xBE,0x30,}}, {0x211E,4,{0x81,0x36,0xBE,0x31,}}, {0x211F,4,{0x81,0x36,0xBE,0x32,}}, {0x2120,4,{0x81,0x36,0xBE,0x33,}}, {0x2121,2,{0xA9,0x59,0x00,0x00,}}, {0x2122,4,{0x81,0x36,0xBE,0x34,}}, {0x2123,4,{0x81,0x36,0xBE,0x35,}}, {0x2124,4,{0x81,0x36,0xBE,0x36,}}, {0x2125,4,{0x81,0x36,0xBE,0x37,}}, {0x2126,4,{0x81,0x36,0xBE,0x38,}}, {0x2127,4,{0x81,0x36,0xBE,0x39,}}, {0x2128,4,{0x81,0x36,0xBF,0x30,}}, {0x2129,4,{0x81,0x36,0xBF,0x31,}}, {0x212A,4,{0x81,0x36,0xBF,0x32,}}, {0x212B,4,{0x81,0x36,0xBF,0x33,}}, {0x212C,4,{0x81,0x36,0xBF,0x34,}}, {0x212D,4,{0x81,0x36,0xBF,0x35,}}, {0x212E,4,{0x81,0x36,0xBF,0x36,}}, {0x212F,4,{0x81,0x36,0xBF,0x37,}}, {0x2130,4,{0x81,0x36,0xBF,0x38,}}, {0x2131,4,{0x81,0x36,0xBF,0x39,}}, {0x2132,4,{0x81,0x36,0xC0,0x30,}}, {0x2133,4,{0x81,0x36,0xC0,0x31,}}, {0x2134,4,{0x81,0x36,0xC0,0x32,}}, {0x2135,4,{0x81,0x36,0xC0,0x33,}}, {0x2136,4,{0x81,0x36,0xC0,0x34,}}, {0x2137,4,{0x81,0x36,0xC0,0x35,}}, {0x2138,4,{0x81,0x36,0xC0,0x36,}}, {0x2139,4,{0x81,0x36,0xC0,0x37,}}, {0x213A,4,{0x81,0x36,0xC0,0x38,}}, {0x213B,4,{0x81,0x36,0xC0,0x39,}}, {0x213C,4,{0x81,0x36,0xC1,0x30,}}, {0x213D,4,{0x81,0x36,0xC1,0x31,}}, {0x213E,4,{0x81,0x36,0xC1,0x32,}}, {0x213F,4,{0x81,0x36,0xC1,0x33,}}, {0x2140,4,{0x81,0x36,0xC1,0x34,}}, {0x2141,4,{0x81,0x36,0xC1,0x35,}}, {0x2142,4,{0x81,0x36,0xC1,0x36,}}, {0x2143,4,{0x81,0x36,0xC1,0x37,}}, {0x2144,4,{0x81,0x36,0xC1,0x38,}}, {0x2145,4,{0x81,0x36,0xC1,0x39,}}, {0x2146,4,{0x81,0x36,0xC2,0x30,}}, {0x2147,4,{0x81,0x36,0xC2,0x31,}}, {0x2148,4,{0x81,0x36,0xC2,0x32,}}, {0x2149,4,{0x81,0x36,0xC2,0x33,}}, {0x214A,4,{0x81,0x36,0xC2,0x34,}}, {0x214B,4,{0x81,0x36,0xC2,0x35,}}, {0x214C,4,{0x81,0x36,0xC2,0x36,}}, {0x214D,4,{0x81,0x36,0xC2,0x37,}}, {0x214E,4,{0x81,0x36,0xC2,0x38,}}, {0x214F,4,{0x81,0x36,0xC2,0x39,}}, {0x2150,4,{0x81,0x36,0xC3,0x30,}}, {0x2151,4,{0x81,0x36,0xC3,0x31,}}, {0x2152,4,{0x81,0x36,0xC3,0x32,}}, {0x2153,4,{0x81,0x36,0xC3,0x33,}}, {0x2154,4,{0x81,0x36,0xC3,0x34,}}, {0x2155,4,{0x81,0x36,0xC3,0x35,}}, {0x2156,4,{0x81,0x36,0xC3,0x36,}}, {0x2157,4,{0x81,0x36,0xC3,0x37,}}, {0x2158,4,{0x81,0x36,0xC3,0x38,}}, {0x2159,4,{0x81,0x36,0xC3,0x39,}}, {0x215A,4,{0x81,0x36,0xC4,0x30,}}, {0x215B,4,{0x81,0x36,0xC4,0x31,}}, {0x215C,4,{0x81,0x36,0xC4,0x32,}}, {0x215D,4,{0x81,0x36,0xC4,0x33,}}, {0x215E,4,{0x81,0x36,0xC4,0x34,}}, {0x215F,4,{0x81,0x36,0xC4,0x35,}}, {0x2160,2,{0xA2,0xF1,0x00,0x00,}}, {0x2161,2,{0xA2,0xF2,0x00,0x00,}}, {0x2162,2,{0xA2,0xF3,0x00,0x00,}}, {0x2163,2,{0xA2,0xF4,0x00,0x00,}}, {0x2164,2,{0xA2,0xF5,0x00,0x00,}}, {0x2165,2,{0xA2,0xF6,0x00,0x00,}}, {0x2166,2,{0xA2,0xF7,0x00,0x00,}}, {0x2167,2,{0xA2,0xF8,0x00,0x00,}}, {0x2168,2,{0xA2,0xF9,0x00,0x00,}}, {0x2169,2,{0xA2,0xFA,0x00,0x00,}}, {0x216A,2,{0xA2,0xFB,0x00,0x00,}}, {0x216B,2,{0xA2,0xFC,0x00,0x00,}}, {0x216C,4,{0x81,0x36,0xC4,0x36,}}, {0x216D,4,{0x81,0x36,0xC4,0x37,}}, {0x216E,4,{0x81,0x36,0xC4,0x38,}}, {0x216F,4,{0x81,0x36,0xC4,0x39,}}, {0x2170,2,{0xA2,0xA1,0x00,0x00,}}, {0x2171,2,{0xA2,0xA2,0x00,0x00,}}, {0x2172,2,{0xA2,0xA3,0x00,0x00,}}, {0x2173,2,{0xA2,0xA4,0x00,0x00,}}, {0x2174,2,{0xA2,0xA5,0x00,0x00,}}, {0x2175,2,{0xA2,0xA6,0x00,0x00,}}, {0x2176,2,{0xA2,0xA7,0x00,0x00,}}, {0x2177,2,{0xA2,0xA8,0x00,0x00,}}, {0x2178,2,{0xA2,0xA9,0x00,0x00,}}, {0x2179,2,{0xA2,0xAA,0x00,0x00,}}, {0x217A,4,{0x81,0x36,0xC5,0x30,}}, {0x217B,4,{0x81,0x36,0xC5,0x31,}}, {0x217C,4,{0x81,0x36,0xC5,0x32,}}, {0x217D,4,{0x81,0x36,0xC5,0x33,}}, {0x217E,4,{0x81,0x36,0xC5,0x34,}}, {0x217F,4,{0x81,0x36,0xC5,0x35,}}, {0x2180,4,{0x81,0x36,0xC5,0x36,}}, {0x2181,4,{0x81,0x36,0xC5,0x37,}}, {0x2182,4,{0x81,0x36,0xC5,0x38,}}, {0x2183,4,{0x81,0x36,0xC5,0x39,}}, {0x2184,4,{0x81,0x36,0xC6,0x30,}}, {0x2185,4,{0x81,0x36,0xC6,0x31,}}, {0x2186,4,{0x81,0x36,0xC6,0x32,}}, {0x2187,4,{0x81,0x36,0xC6,0x33,}}, {0x2188,4,{0x81,0x36,0xC6,0x34,}}, {0x2189,4,{0x81,0x36,0xC6,0x35,}}, {0x218A,4,{0x81,0x36,0xC6,0x36,}}, {0x218B,4,{0x81,0x36,0xC6,0x37,}}, {0x218C,4,{0x81,0x36,0xC6,0x38,}}, {0x218D,4,{0x81,0x36,0xC6,0x39,}}, {0x218E,4,{0x81,0x36,0xC7,0x30,}}, {0x218F,4,{0x81,0x36,0xC7,0x31,}}, {0x2190,2,{0xA1,0xFB,0x00,0x00,}}, {0x2191,2,{0xA1,0xFC,0x00,0x00,}}, {0x2192,2,{0xA1,0xFA,0x00,0x00,}}, {0x2193,2,{0xA1,0xFD,0x00,0x00,}}, {0x2194,4,{0x81,0x36,0xC7,0x32,}}, {0x2195,4,{0x81,0x36,0xC7,0x33,}}, {0x2196,2,{0xA8,0x49,0x00,0x00,}}, {0x2197,2,{0xA8,0x4A,0x00,0x00,}}, {0x2198,2,{0xA8,0x4B,0x00,0x00,}}, {0x2199,2,{0xA8,0x4C,0x00,0x00,}}, {0x219A,4,{0x81,0x36,0xC7,0x34,}}, {0x219B,4,{0x81,0x36,0xC7,0x35,}}, {0x219C,4,{0x81,0x36,0xC7,0x36,}}, {0x219D,4,{0x81,0x36,0xC7,0x37,}}, {0x219E,4,{0x81,0x36,0xC7,0x38,}}, {0x219F,4,{0x81,0x36,0xC7,0x39,}}, {0x21A0,4,{0x81,0x36,0xC8,0x30,}}, {0x21A1,4,{0x81,0x36,0xC8,0x31,}}, {0x21A2,4,{0x81,0x36,0xC8,0x32,}}, {0x21A3,4,{0x81,0x36,0xC8,0x33,}}, {0x21A4,4,{0x81,0x36,0xC8,0x34,}}, {0x21A5,4,{0x81,0x36,0xC8,0x35,}}, {0x21A6,4,{0x81,0x36,0xC8,0x36,}}, {0x21A7,4,{0x81,0x36,0xC8,0x37,}}, {0x21A8,4,{0x81,0x36,0xC8,0x38,}}, {0x21A9,4,{0x81,0x36,0xC8,0x39,}}, {0x21AA,4,{0x81,0x36,0xC9,0x30,}}, {0x21AB,4,{0x81,0x36,0xC9,0x31,}}, {0x21AC,4,{0x81,0x36,0xC9,0x32,}}, {0x21AD,4,{0x81,0x36,0xC9,0x33,}}, {0x21AE,4,{0x81,0x36,0xC9,0x34,}}, {0x21AF,4,{0x81,0x36,0xC9,0x35,}}, {0x21B0,4,{0x81,0x36,0xC9,0x36,}}, {0x21B1,4,{0x81,0x36,0xC9,0x37,}}, {0x21B2,4,{0x81,0x36,0xC9,0x38,}}, {0x21B3,4,{0x81,0x36,0xC9,0x39,}}, {0x21B4,4,{0x81,0x36,0xCA,0x30,}}, {0x21B5,4,{0x81,0x36,0xCA,0x31,}}, {0x21B6,4,{0x81,0x36,0xCA,0x32,}}, {0x21B7,4,{0x81,0x36,0xCA,0x33,}}, {0x21B8,4,{0x81,0x36,0xCA,0x34,}}, {0x21B9,4,{0x81,0x36,0xCA,0x35,}}, {0x21BA,4,{0x81,0x36,0xCA,0x36,}}, {0x21BB,4,{0x81,0x36,0xCA,0x37,}}, {0x21BC,4,{0x81,0x36,0xCA,0x38,}}, {0x21BD,4,{0x81,0x36,0xCA,0x39,}}, {0x21BE,4,{0x81,0x36,0xCB,0x30,}}, {0x21BF,4,{0x81,0x36,0xCB,0x31,}}, {0x21C0,4,{0x81,0x36,0xCB,0x32,}}, {0x21C1,4,{0x81,0x36,0xCB,0x33,}}, {0x21C2,4,{0x81,0x36,0xCB,0x34,}}, {0x21C3,4,{0x81,0x36,0xCB,0x35,}}, {0x21C4,4,{0x81,0x36,0xCB,0x36,}}, {0x21C5,4,{0x81,0x36,0xCB,0x37,}}, {0x21C6,4,{0x81,0x36,0xCB,0x38,}}, {0x21C7,4,{0x81,0x36,0xCB,0x39,}}, {0x21C8,4,{0x81,0x36,0xCC,0x30,}}, {0x21C9,4,{0x81,0x36,0xCC,0x31,}}, {0x21CA,4,{0x81,0x36,0xCC,0x32,}}, {0x21CB,4,{0x81,0x36,0xCC,0x33,}}, {0x21CC,4,{0x81,0x36,0xCC,0x34,}}, {0x21CD,4,{0x81,0x36,0xCC,0x35,}}, {0x21CE,4,{0x81,0x36,0xCC,0x36,}}, {0x21CF,4,{0x81,0x36,0xCC,0x37,}}, {0x21D0,4,{0x81,0x36,0xCC,0x38,}}, {0x21D1,4,{0x81,0x36,0xCC,0x39,}}, {0x21D2,4,{0x81,0x36,0xCD,0x30,}}, {0x21D3,4,{0x81,0x36,0xCD,0x31,}}, {0x21D4,4,{0x81,0x36,0xCD,0x32,}}, {0x21D5,4,{0x81,0x36,0xCD,0x33,}}, {0x21D6,4,{0x81,0x36,0xCD,0x34,}}, {0x21D7,4,{0x81,0x36,0xCD,0x35,}}, {0x21D8,4,{0x81,0x36,0xCD,0x36,}}, {0x21D9,4,{0x81,0x36,0xCD,0x37,}}, {0x21DA,4,{0x81,0x36,0xCD,0x38,}}, {0x21DB,4,{0x81,0x36,0xCD,0x39,}}, {0x21DC,4,{0x81,0x36,0xCE,0x30,}}, {0x21DD,4,{0x81,0x36,0xCE,0x31,}}, {0x21DE,4,{0x81,0x36,0xCE,0x32,}}, {0x21DF,4,{0x81,0x36,0xCE,0x33,}}, {0x21E0,4,{0x81,0x36,0xCE,0x34,}}, {0x21E1,4,{0x81,0x36,0xCE,0x35,}}, {0x21E2,4,{0x81,0x36,0xCE,0x36,}}, {0x21E3,4,{0x81,0x36,0xCE,0x37,}}, {0x21E4,4,{0x81,0x36,0xCE,0x38,}}, {0x21E5,4,{0x81,0x36,0xCE,0x39,}}, {0x21E6,4,{0x81,0x36,0xCF,0x30,}}, {0x21E7,4,{0x81,0x36,0xCF,0x31,}}, {0x21E8,4,{0x81,0x36,0xCF,0x32,}}, {0x21E9,4,{0x81,0x36,0xCF,0x33,}}, {0x21EA,4,{0x81,0x36,0xCF,0x34,}}, {0x21EB,4,{0x81,0x36,0xCF,0x35,}}, {0x21EC,4,{0x81,0x36,0xCF,0x36,}}, {0x21ED,4,{0x81,0x36,0xCF,0x37,}}, {0x21EE,4,{0x81,0x36,0xCF,0x38,}}, {0x21EF,4,{0x81,0x36,0xCF,0x39,}}, {0x21F0,4,{0x81,0x36,0xD0,0x30,}}, {0x21F1,4,{0x81,0x36,0xD0,0x31,}}, {0x21F2,4,{0x81,0x36,0xD0,0x32,}}, {0x21F3,4,{0x81,0x36,0xD0,0x33,}}, {0x21F4,4,{0x81,0x36,0xD0,0x34,}}, {0x21F5,4,{0x81,0x36,0xD0,0x35,}}, {0x21F6,4,{0x81,0x36,0xD0,0x36,}}, {0x21F7,4,{0x81,0x36,0xD0,0x37,}}, {0x21F8,4,{0x81,0x36,0xD0,0x38,}}, {0x21F9,4,{0x81,0x36,0xD0,0x39,}}, {0x21FA,4,{0x81,0x36,0xD1,0x30,}}, {0x21FB,4,{0x81,0x36,0xD1,0x31,}}, {0x21FC,4,{0x81,0x36,0xD1,0x32,}}, {0x21FD,4,{0x81,0x36,0xD1,0x33,}}, {0x21FE,4,{0x81,0x36,0xD1,0x34,}}, {0x21FF,4,{0x81,0x36,0xD1,0x35,}}, {0x2200,4,{0x81,0x36,0xD1,0x36,}}, {0x2201,4,{0x81,0x36,0xD1,0x37,}}, {0x2202,4,{0x81,0x36,0xD1,0x38,}}, {0x2203,4,{0x81,0x36,0xD1,0x39,}}, {0x2204,4,{0x81,0x36,0xD2,0x30,}}, {0x2205,4,{0x81,0x36,0xD2,0x31,}}, {0x2206,4,{0x81,0x36,0xD2,0x32,}}, {0x2207,4,{0x81,0x36,0xD2,0x33,}}, {0x2208,2,{0xA1,0xCA,0x00,0x00,}}, {0x2209,4,{0x81,0x36,0xD2,0x34,}}, {0x220A,4,{0x81,0x36,0xD2,0x35,}}, {0x220B,4,{0x81,0x36,0xD2,0x36,}}, {0x220C,4,{0x81,0x36,0xD2,0x37,}}, {0x220D,4,{0x81,0x36,0xD2,0x38,}}, {0x220E,4,{0x81,0x36,0xD2,0x39,}}, {0x220F,2,{0xA1,0xC7,0x00,0x00,}}, {0x2210,4,{0x81,0x36,0xD3,0x30,}}, {0x2211,2,{0xA1,0xC6,0x00,0x00,}}, {0x2212,4,{0x81,0x36,0xD3,0x31,}}, {0x2213,4,{0x81,0x36,0xD3,0x32,}}, {0x2214,4,{0x81,0x36,0xD3,0x33,}}, {0x2215,2,{0xA8,0x4D,0x00,0x00,}}, {0x2216,4,{0x81,0x36,0xD3,0x34,}}, {0x2217,4,{0x81,0x36,0xD3,0x35,}}, {0x2218,4,{0x81,0x36,0xD3,0x36,}}, {0x2219,4,{0x81,0x36,0xD3,0x37,}}, {0x221A,2,{0xA1,0xCC,0x00,0x00,}}, {0x221B,4,{0x81,0x36,0xD3,0x38,}}, {0x221C,4,{0x81,0x36,0xD3,0x39,}}, {0x221D,2,{0xA1,0xD8,0x00,0x00,}}, {0x221E,2,{0xA1,0xDE,0x00,0x00,}}, {0x221F,2,{0xA8,0x4E,0x00,0x00,}}, {0x2220,2,{0xA1,0xCF,0x00,0x00,}}, {0x2221,4,{0x81,0x36,0xD4,0x30,}}, {0x2222,4,{0x81,0x36,0xD4,0x31,}}, {0x2223,2,{0xA8,0x4F,0x00,0x00,}}, {0x2224,4,{0x81,0x36,0xD4,0x32,}}, {0x2225,2,{0xA1,0xCE,0x00,0x00,}}, {0x2226,4,{0x81,0x36,0xD4,0x33,}}, {0x2227,2,{0xA1,0xC4,0x00,0x00,}}, {0x2228,2,{0xA1,0xC5,0x00,0x00,}}, {0x2229,2,{0xA1,0xC9,0x00,0x00,}}, {0x222A,2,{0xA1,0xC8,0x00,0x00,}}, {0x222B,2,{0xA1,0xD2,0x00,0x00,}}, {0x222C,4,{0x81,0x36,0xD4,0x34,}}, {0x222D,4,{0x81,0x36,0xD4,0x35,}}, {0x222E,2,{0xA1,0xD3,0x00,0x00,}}, {0x222F,4,{0x81,0x36,0xD4,0x36,}}, {0x2230,4,{0x81,0x36,0xD4,0x37,}}, {0x2231,4,{0x81,0x36,0xD4,0x38,}}, {0x2232,4,{0x81,0x36,0xD4,0x39,}}, {0x2233,4,{0x81,0x36,0xD5,0x30,}}, {0x2234,2,{0xA1,0xE0,0x00,0x00,}}, {0x2235,2,{0xA1,0xDF,0x00,0x00,}}, {0x2236,2,{0xA1,0xC3,0x00,0x00,}}, {0x2237,2,{0xA1,0xCB,0x00,0x00,}}, {0x2238,4,{0x81,0x36,0xD5,0x31,}}, {0x2239,4,{0x81,0x36,0xD5,0x32,}}, {0x223A,4,{0x81,0x36,0xD5,0x33,}}, {0x223B,4,{0x81,0x36,0xD5,0x34,}}, {0x223C,4,{0x81,0x36,0xD5,0x35,}}, {0x223D,2,{0xA1,0xD7,0x00,0x00,}}, {0x223E,4,{0x81,0x36,0xD5,0x36,}}, {0x223F,4,{0x81,0x36,0xD5,0x37,}}, {0x2240,4,{0x81,0x36,0xD5,0x38,}}, {0x2241,4,{0x81,0x36,0xD5,0x39,}}, {0x2242,4,{0x81,0x36,0xD6,0x30,}}, {0x2243,4,{0x81,0x36,0xD6,0x31,}}, {0x2244,4,{0x81,0x36,0xD6,0x32,}}, {0x2245,4,{0x81,0x36,0xD6,0x33,}}, {0x2246,4,{0x81,0x36,0xD6,0x34,}}, {0x2247,4,{0x81,0x36,0xD6,0x35,}}, {0x2248,2,{0xA1,0xD6,0x00,0x00,}}, {0x2249,4,{0x81,0x36,0xD6,0x36,}}, {0x224A,4,{0x81,0x36,0xD6,0x37,}}, {0x224B,4,{0x81,0x36,0xD6,0x38,}}, {0x224C,2,{0xA1,0xD5,0x00,0x00,}}, {0x224D,4,{0x81,0x36,0xD6,0x39,}}, {0x224E,4,{0x81,0x36,0xD7,0x30,}}, {0x224F,4,{0x81,0x36,0xD7,0x31,}}, {0x2250,4,{0x81,0x36,0xD7,0x32,}}, {0x2251,4,{0x81,0x36,0xD7,0x33,}}, {0x2252,2,{0xA8,0x50,0x00,0x00,}}, {0x2253,4,{0x81,0x36,0xD7,0x34,}}, {0x2254,4,{0x81,0x36,0xD7,0x35,}}, {0x2255,4,{0x81,0x36,0xD7,0x36,}}, {0x2256,4,{0x81,0x36,0xD7,0x37,}}, {0x2257,4,{0x81,0x36,0xD7,0x38,}}, {0x2258,4,{0x81,0x36,0xD7,0x39,}}, {0x2259,4,{0x81,0x36,0xD8,0x30,}}, {0x225A,4,{0x81,0x36,0xD8,0x31,}}, {0x225B,4,{0x81,0x36,0xD8,0x32,}}, {0x225C,4,{0x81,0x36,0xD8,0x33,}}, {0x225D,4,{0x81,0x36,0xD8,0x34,}}, {0x225E,4,{0x81,0x36,0xD8,0x35,}}, {0x225F,4,{0x81,0x36,0xD8,0x36,}}, {0x2260,2,{0xA1,0xD9,0x00,0x00,}}, {0x2261,2,{0xA1,0xD4,0x00,0x00,}}, {0x2262,4,{0x81,0x36,0xD8,0x37,}}, {0x2263,4,{0x81,0x36,0xD8,0x38,}}, {0x2264,2,{0xA1,0xDC,0x00,0x00,}}, {0x2265,2,{0xA1,0xDD,0x00,0x00,}}, {0x2266,2,{0xA8,0x51,0x00,0x00,}}, {0x2267,2,{0xA8,0x52,0x00,0x00,}}, {0x2268,4,{0x81,0x36,0xD8,0x39,}}, {0x2269,4,{0x81,0x36,0xD9,0x30,}}, {0x226A,4,{0x81,0x36,0xD9,0x31,}}, {0x226B,4,{0x81,0x36,0xD9,0x32,}}, {0x226C,4,{0x81,0x36,0xD9,0x33,}}, {0x226D,4,{0x81,0x36,0xD9,0x34,}}, {0x226E,2,{0xA1,0xDA,0x00,0x00,}}, {0x226F,2,{0xA1,0xDB,0x00,0x00,}}, {0x2270,4,{0x81,0x36,0xD9,0x35,}}, {0x2271,4,{0x81,0x36,0xD9,0x36,}}, {0x2272,4,{0x81,0x36,0xD9,0x37,}}, {0x2273,4,{0x81,0x36,0xD9,0x38,}}, {0x2274,4,{0x81,0x36,0xD9,0x39,}}, {0x2275,4,{0x81,0x36,0xDA,0x30,}}, {0x2276,4,{0x81,0x36,0xDA,0x31,}}, {0x2277,4,{0x81,0x36,0xDA,0x32,}}, {0x2278,4,{0x81,0x36,0xDA,0x33,}}, {0x2279,4,{0x81,0x36,0xDA,0x34,}}, {0x227A,4,{0x81,0x36,0xDA,0x35,}}, {0x227B,4,{0x81,0x36,0xDA,0x36,}}, {0x227C,4,{0x81,0x36,0xDA,0x37,}}, {0x227D,4,{0x81,0x36,0xDA,0x38,}}, {0x227E,4,{0x81,0x36,0xDA,0x39,}}, {0x227F,4,{0x81,0x36,0xDB,0x30,}}, {0x2280,4,{0x81,0x36,0xDB,0x31,}}, {0x2281,4,{0x81,0x36,0xDB,0x32,}}, {0x2282,4,{0x81,0x36,0xDB,0x33,}}, {0x2283,4,{0x81,0x36,0xDB,0x34,}}, {0x2284,4,{0x81,0x36,0xDB,0x35,}}, {0x2285,4,{0x81,0x36,0xDB,0x36,}}, {0x2286,4,{0x81,0x36,0xDB,0x37,}}, {0x2287,4,{0x81,0x36,0xDB,0x38,}}, {0x2288,4,{0x81,0x36,0xDB,0x39,}}, {0x2289,4,{0x81,0x36,0xDC,0x30,}}, {0x228A,4,{0x81,0x36,0xDC,0x31,}}, {0x228B,4,{0x81,0x36,0xDC,0x32,}}, {0x228C,4,{0x81,0x36,0xDC,0x33,}}, {0x228D,4,{0x81,0x36,0xDC,0x34,}}, {0x228E,4,{0x81,0x36,0xDC,0x35,}}, {0x228F,4,{0x81,0x36,0xDC,0x36,}}, {0x2290,4,{0x81,0x36,0xDC,0x37,}}, {0x2291,4,{0x81,0x36,0xDC,0x38,}}, {0x2292,4,{0x81,0x36,0xDC,0x39,}}, {0x2293,4,{0x81,0x36,0xDD,0x30,}}, {0x2294,4,{0x81,0x36,0xDD,0x31,}}, {0x2295,2,{0xA8,0x92,0x00,0x00,}}, {0x2296,4,{0x81,0x36,0xDD,0x32,}}, {0x2297,4,{0x81,0x36,0xDD,0x33,}}, {0x2298,4,{0x81,0x36,0xDD,0x34,}}, {0x2299,2,{0xA1,0xD1,0x00,0x00,}}, {0x229A,4,{0x81,0x36,0xDD,0x35,}}, {0x229B,4,{0x81,0x36,0xDD,0x36,}}, {0x229C,4,{0x81,0x36,0xDD,0x37,}}, {0x229D,4,{0x81,0x36,0xDD,0x38,}}, {0x229E,4,{0x81,0x36,0xDD,0x39,}}, {0x229F,4,{0x81,0x36,0xDE,0x30,}}, {0x22A0,4,{0x81,0x36,0xDE,0x31,}}, {0x22A1,4,{0x81,0x36,0xDE,0x32,}}, {0x22A2,4,{0x81,0x36,0xDE,0x33,}}, {0x22A3,4,{0x81,0x36,0xDE,0x34,}}, {0x22A4,4,{0x81,0x36,0xDE,0x35,}}, {0x22A5,2,{0xA1,0xCD,0x00,0x00,}}, {0x22A6,4,{0x81,0x36,0xDE,0x36,}}, {0x22A7,4,{0x81,0x36,0xDE,0x37,}}, {0x22A8,4,{0x81,0x36,0xDE,0x38,}}, {0x22A9,4,{0x81,0x36,0xDE,0x39,}}, {0x22AA,4,{0x81,0x36,0xDF,0x30,}}, {0x22AB,4,{0x81,0x36,0xDF,0x31,}}, {0x22AC,4,{0x81,0x36,0xDF,0x32,}}, {0x22AD,4,{0x81,0x36,0xDF,0x33,}}, {0x22AE,4,{0x81,0x36,0xDF,0x34,}}, {0x22AF,4,{0x81,0x36,0xDF,0x35,}}, {0x22B0,4,{0x81,0x36,0xDF,0x36,}}, {0x22B1,4,{0x81,0x36,0xDF,0x37,}}, {0x22B2,4,{0x81,0x36,0xDF,0x38,}}, {0x22B3,4,{0x81,0x36,0xDF,0x39,}}, {0x22B4,4,{0x81,0x36,0xE0,0x30,}}, {0x22B5,4,{0x81,0x36,0xE0,0x31,}}, {0x22B6,4,{0x81,0x36,0xE0,0x32,}}, {0x22B7,4,{0x81,0x36,0xE0,0x33,}}, {0x22B8,4,{0x81,0x36,0xE0,0x34,}}, {0x22B9,4,{0x81,0x36,0xE0,0x35,}}, {0x22BA,4,{0x81,0x36,0xE0,0x36,}}, {0x22BB,4,{0x81,0x36,0xE0,0x37,}}, {0x22BC,4,{0x81,0x36,0xE0,0x38,}}, {0x22BD,4,{0x81,0x36,0xE0,0x39,}}, {0x22BE,4,{0x81,0x36,0xE1,0x30,}}, {0x22BF,2,{0xA8,0x53,0x00,0x00,}}, {0x22C0,4,{0x81,0x36,0xE1,0x31,}}, {0x22C1,4,{0x81,0x36,0xE1,0x32,}}, {0x22C2,4,{0x81,0x36,0xE1,0x33,}}, {0x22C3,4,{0x81,0x36,0xE1,0x34,}}, {0x22C4,4,{0x81,0x36,0xE1,0x35,}}, {0x22C5,4,{0x81,0x36,0xE1,0x36,}}, {0x22C6,4,{0x81,0x36,0xE1,0x37,}}, {0x22C7,4,{0x81,0x36,0xE1,0x38,}}, {0x22C8,4,{0x81,0x36,0xE1,0x39,}}, {0x22C9,4,{0x81,0x36,0xE2,0x30,}}, {0x22CA,4,{0x81,0x36,0xE2,0x31,}}, {0x22CB,4,{0x81,0x36,0xE2,0x32,}}, {0x22CC,4,{0x81,0x36,0xE2,0x33,}}, {0x22CD,4,{0x81,0x36,0xE2,0x34,}}, {0x22CE,4,{0x81,0x36,0xE2,0x35,}}, {0x22CF,4,{0x81,0x36,0xE2,0x36,}}, {0x22D0,4,{0x81,0x36,0xE2,0x37,}}, {0x22D1,4,{0x81,0x36,0xE2,0x38,}}, {0x22D2,4,{0x81,0x36,0xE2,0x39,}}, {0x22D3,4,{0x81,0x36,0xE3,0x30,}}, {0x22D4,4,{0x81,0x36,0xE3,0x31,}}, {0x22D5,4,{0x81,0x36,0xE3,0x32,}}, {0x22D6,4,{0x81,0x36,0xE3,0x33,}}, {0x22D7,4,{0x81,0x36,0xE3,0x34,}}, {0x22D8,4,{0x81,0x36,0xE3,0x35,}}, {0x22D9,4,{0x81,0x36,0xE3,0x36,}}, {0x22DA,4,{0x81,0x36,0xE3,0x37,}}, {0x22DB,4,{0x81,0x36,0xE3,0x38,}}, {0x22DC,4,{0x81,0x36,0xE3,0x39,}}, {0x22DD,4,{0x81,0x36,0xE4,0x30,}}, {0x22DE,4,{0x81,0x36,0xE4,0x31,}}, {0x22DF,4,{0x81,0x36,0xE4,0x32,}}, {0x22E0,4,{0x81,0x36,0xE4,0x33,}}, {0x22E1,4,{0x81,0x36,0xE4,0x34,}}, {0x22E2,4,{0x81,0x36,0xE4,0x35,}}, {0x22E3,4,{0x81,0x36,0xE4,0x36,}}, {0x22E4,4,{0x81,0x36,0xE4,0x37,}}, {0x22E5,4,{0x81,0x36,0xE4,0x38,}}, {0x22E6,4,{0x81,0x36,0xE4,0x39,}}, {0x22E7,4,{0x81,0x36,0xE5,0x30,}}, {0x22E8,4,{0x81,0x36,0xE5,0x31,}}, {0x22E9,4,{0x81,0x36,0xE5,0x32,}}, {0x22EA,4,{0x81,0x36,0xE5,0x33,}}, {0x22EB,4,{0x81,0x36,0xE5,0x34,}}, {0x22EC,4,{0x81,0x36,0xE5,0x35,}}, {0x22ED,4,{0x81,0x36,0xE5,0x36,}}, {0x22EE,4,{0x81,0x36,0xE5,0x37,}}, {0x22EF,4,{0x81,0x36,0xE5,0x38,}}, {0x22F0,4,{0x81,0x36,0xE5,0x39,}}, {0x22F1,4,{0x81,0x36,0xE6,0x30,}}, {0x22F2,4,{0x81,0x36,0xE6,0x31,}}, {0x22F3,4,{0x81,0x36,0xE6,0x32,}}, {0x22F4,4,{0x81,0x36,0xE6,0x33,}}, {0x22F5,4,{0x81,0x36,0xE6,0x34,}}, {0x22F6,4,{0x81,0x36,0xE6,0x35,}}, {0x22F7,4,{0x81,0x36,0xE6,0x36,}}, {0x22F8,4,{0x81,0x36,0xE6,0x37,}}, {0x22F9,4,{0x81,0x36,0xE6,0x38,}}, {0x22FA,4,{0x81,0x36,0xE6,0x39,}}, {0x22FB,4,{0x81,0x36,0xE7,0x30,}}, {0x22FC,4,{0x81,0x36,0xE7,0x31,}}, {0x22FD,4,{0x81,0x36,0xE7,0x32,}}, {0x22FE,4,{0x81,0x36,0xE7,0x33,}}, {0x22FF,4,{0x81,0x36,0xE7,0x34,}}, {0x2300,4,{0x81,0x36,0xE7,0x35,}}, {0x2301,4,{0x81,0x36,0xE7,0x36,}}, {0x2302,4,{0x81,0x36,0xE7,0x37,}}, {0x2303,4,{0x81,0x36,0xE7,0x38,}}, {0x2304,4,{0x81,0x36,0xE7,0x39,}}, {0x2305,4,{0x81,0x36,0xE8,0x30,}}, {0x2306,4,{0x81,0x36,0xE8,0x31,}}, {0x2307,4,{0x81,0x36,0xE8,0x32,}}, {0x2308,4,{0x81,0x36,0xE8,0x33,}}, {0x2309,4,{0x81,0x36,0xE8,0x34,}}, {0x230A,4,{0x81,0x36,0xE8,0x35,}}, {0x230B,4,{0x81,0x36,0xE8,0x36,}}, {0x230C,4,{0x81,0x36,0xE8,0x37,}}, {0x230D,4,{0x81,0x36,0xE8,0x38,}}, {0x230E,4,{0x81,0x36,0xE8,0x39,}}, {0x230F,4,{0x81,0x36,0xE9,0x30,}}, {0x2310,4,{0x81,0x36,0xE9,0x31,}}, {0x2311,4,{0x81,0x36,0xE9,0x32,}}, {0x2312,2,{0xA1,0xD0,0x00,0x00,}}, {0x2313,4,{0x81,0x36,0xE9,0x33,}}, {0x2314,4,{0x81,0x36,0xE9,0x34,}}, {0x2315,4,{0x81,0x36,0xE9,0x35,}}, {0x2316,4,{0x81,0x36,0xE9,0x36,}}, {0x2317,4,{0x81,0x36,0xE9,0x37,}}, {0x2318,4,{0x81,0x36,0xE9,0x38,}}, {0x2319,4,{0x81,0x36,0xE9,0x39,}}, {0x231A,4,{0x81,0x36,0xEA,0x30,}}, {0x231B,4,{0x81,0x36,0xEA,0x31,}}, {0x231C,4,{0x81,0x36,0xEA,0x32,}}, {0x231D,4,{0x81,0x36,0xEA,0x33,}}, {0x231E,4,{0x81,0x36,0xEA,0x34,}}, {0x231F,4,{0x81,0x36,0xEA,0x35,}}, {0x2320,4,{0x81,0x36,0xEA,0x36,}}, {0x2321,4,{0x81,0x36,0xEA,0x37,}}, {0x2322,4,{0x81,0x36,0xEA,0x38,}}, {0x2323,4,{0x81,0x36,0xEA,0x39,}}, {0x2324,4,{0x81,0x36,0xEB,0x30,}}, {0x2325,4,{0x81,0x36,0xEB,0x31,}}, {0x2326,4,{0x81,0x36,0xEB,0x32,}}, {0x2327,4,{0x81,0x36,0xEB,0x33,}}, {0x2328,4,{0x81,0x36,0xEB,0x34,}}, {0x2329,4,{0x81,0x36,0xEB,0x35,}}, {0x232A,4,{0x81,0x36,0xEB,0x36,}}, {0x232B,4,{0x81,0x36,0xEB,0x37,}}, {0x232C,4,{0x81,0x36,0xEB,0x38,}}, {0x232D,4,{0x81,0x36,0xEB,0x39,}}, {0x232E,4,{0x81,0x36,0xEC,0x30,}}, {0x232F,4,{0x81,0x36,0xEC,0x31,}}, {0x2330,4,{0x81,0x36,0xEC,0x32,}}, {0x2331,4,{0x81,0x36,0xEC,0x33,}}, {0x2332,4,{0x81,0x36,0xEC,0x34,}}, {0x2333,4,{0x81,0x36,0xEC,0x35,}}, {0x2334,4,{0x81,0x36,0xEC,0x36,}}, {0x2335,4,{0x81,0x36,0xEC,0x37,}}, {0x2336,4,{0x81,0x36,0xEC,0x38,}}, {0x2337,4,{0x81,0x36,0xEC,0x39,}}, {0x2338,4,{0x81,0x36,0xED,0x30,}}, {0x2339,4,{0x81,0x36,0xED,0x31,}}, {0x233A,4,{0x81,0x36,0xED,0x32,}}, {0x233B,4,{0x81,0x36,0xED,0x33,}}, {0x233C,4,{0x81,0x36,0xED,0x34,}}, {0x233D,4,{0x81,0x36,0xED,0x35,}}, {0x233E,4,{0x81,0x36,0xED,0x36,}}, {0x233F,4,{0x81,0x36,0xED,0x37,}}, {0x2340,4,{0x81,0x36,0xED,0x38,}}, {0x2341,4,{0x81,0x36,0xED,0x39,}}, {0x2342,4,{0x81,0x36,0xEE,0x30,}}, {0x2343,4,{0x81,0x36,0xEE,0x31,}}, {0x2344,4,{0x81,0x36,0xEE,0x32,}}, {0x2345,4,{0x81,0x36,0xEE,0x33,}}, {0x2346,4,{0x81,0x36,0xEE,0x34,}}, {0x2347,4,{0x81,0x36,0xEE,0x35,}}, {0x2348,4,{0x81,0x36,0xEE,0x36,}}, {0x2349,4,{0x81,0x36,0xEE,0x37,}}, {0x234A,4,{0x81,0x36,0xEE,0x38,}}, {0x234B,4,{0x81,0x36,0xEE,0x39,}}, {0x234C,4,{0x81,0x36,0xEF,0x30,}}, {0x234D,4,{0x81,0x36,0xEF,0x31,}}, {0x234E,4,{0x81,0x36,0xEF,0x32,}}, {0x234F,4,{0x81,0x36,0xEF,0x33,}}, {0x2350,4,{0x81,0x36,0xEF,0x34,}}, {0x2351,4,{0x81,0x36,0xEF,0x35,}}, {0x2352,4,{0x81,0x36,0xEF,0x36,}}, {0x2353,4,{0x81,0x36,0xEF,0x37,}}, {0x2354,4,{0x81,0x36,0xEF,0x38,}}, {0x2355,4,{0x81,0x36,0xEF,0x39,}}, {0x2356,4,{0x81,0x36,0xF0,0x30,}}, {0x2357,4,{0x81,0x36,0xF0,0x31,}}, {0x2358,4,{0x81,0x36,0xF0,0x32,}}, {0x2359,4,{0x81,0x36,0xF0,0x33,}}, {0x235A,4,{0x81,0x36,0xF0,0x34,}}, {0x235B,4,{0x81,0x36,0xF0,0x35,}}, {0x235C,4,{0x81,0x36,0xF0,0x36,}}, {0x235D,4,{0x81,0x36,0xF0,0x37,}}, {0x235E,4,{0x81,0x36,0xF0,0x38,}}, {0x235F,4,{0x81,0x36,0xF0,0x39,}}, {0x2360,4,{0x81,0x36,0xF1,0x30,}}, {0x2361,4,{0x81,0x36,0xF1,0x31,}}, {0x2362,4,{0x81,0x36,0xF1,0x32,}}, {0x2363,4,{0x81,0x36,0xF1,0x33,}}, {0x2364,4,{0x81,0x36,0xF1,0x34,}}, {0x2365,4,{0x81,0x36,0xF1,0x35,}}, {0x2366,4,{0x81,0x36,0xF1,0x36,}}, {0x2367,4,{0x81,0x36,0xF1,0x37,}}, {0x2368,4,{0x81,0x36,0xF1,0x38,}}, {0x2369,4,{0x81,0x36,0xF1,0x39,}}, {0x236A,4,{0x81,0x36,0xF2,0x30,}}, {0x236B,4,{0x81,0x36,0xF2,0x31,}}, {0x236C,4,{0x81,0x36,0xF2,0x32,}}, {0x236D,4,{0x81,0x36,0xF2,0x33,}}, {0x236E,4,{0x81,0x36,0xF2,0x34,}}, {0x236F,4,{0x81,0x36,0xF2,0x35,}}, {0x2370,4,{0x81,0x36,0xF2,0x36,}}, {0x2371,4,{0x81,0x36,0xF2,0x37,}}, {0x2372,4,{0x81,0x36,0xF2,0x38,}}, {0x2373,4,{0x81,0x36,0xF2,0x39,}}, {0x2374,4,{0x81,0x36,0xF3,0x30,}}, {0x2375,4,{0x81,0x36,0xF3,0x31,}}, {0x2376,4,{0x81,0x36,0xF3,0x32,}}, {0x2377,4,{0x81,0x36,0xF3,0x33,}}, {0x2378,4,{0x81,0x36,0xF3,0x34,}}, {0x2379,4,{0x81,0x36,0xF3,0x35,}}, {0x237A,4,{0x81,0x36,0xF3,0x36,}}, {0x237B,4,{0x81,0x36,0xF3,0x37,}}, {0x237C,4,{0x81,0x36,0xF3,0x38,}}, {0x237D,4,{0x81,0x36,0xF3,0x39,}}, {0x237E,4,{0x81,0x36,0xF4,0x30,}}, {0x237F,4,{0x81,0x36,0xF4,0x31,}}, {0x2380,4,{0x81,0x36,0xF4,0x32,}}, {0x2381,4,{0x81,0x36,0xF4,0x33,}}, {0x2382,4,{0x81,0x36,0xF4,0x34,}}, {0x2383,4,{0x81,0x36,0xF4,0x35,}}, {0x2384,4,{0x81,0x36,0xF4,0x36,}}, {0x2385,4,{0x81,0x36,0xF4,0x37,}}, {0x2386,4,{0x81,0x36,0xF4,0x38,}}, {0x2387,4,{0x81,0x36,0xF4,0x39,}}, {0x2388,4,{0x81,0x36,0xF5,0x30,}}, {0x2389,4,{0x81,0x36,0xF5,0x31,}}, {0x238A,4,{0x81,0x36,0xF5,0x32,}}, {0x238B,4,{0x81,0x36,0xF5,0x33,}}, {0x238C,4,{0x81,0x36,0xF5,0x34,}}, {0x238D,4,{0x81,0x36,0xF5,0x35,}}, {0x238E,4,{0x81,0x36,0xF5,0x36,}}, {0x238F,4,{0x81,0x36,0xF5,0x37,}}, {0x2390,4,{0x81,0x36,0xF5,0x38,}}, {0x2391,4,{0x81,0x36,0xF5,0x39,}}, {0x2392,4,{0x81,0x36,0xF6,0x30,}}, {0x2393,4,{0x81,0x36,0xF6,0x31,}}, {0x2394,4,{0x81,0x36,0xF6,0x32,}}, {0x2395,4,{0x81,0x36,0xF6,0x33,}}, {0x2396,4,{0x81,0x36,0xF6,0x34,}}, {0x2397,4,{0x81,0x36,0xF6,0x35,}}, {0x2398,4,{0x81,0x36,0xF6,0x36,}}, {0x2399,4,{0x81,0x36,0xF6,0x37,}}, {0x239A,4,{0x81,0x36,0xF6,0x38,}}, {0x239B,4,{0x81,0x36,0xF6,0x39,}}, {0x239C,4,{0x81,0x36,0xF7,0x30,}}, {0x239D,4,{0x81,0x36,0xF7,0x31,}}, {0x239E,4,{0x81,0x36,0xF7,0x32,}}, {0x239F,4,{0x81,0x36,0xF7,0x33,}}, {0x23A0,4,{0x81,0x36,0xF7,0x34,}}, {0x23A1,4,{0x81,0x36,0xF7,0x35,}}, {0x23A2,4,{0x81,0x36,0xF7,0x36,}}, {0x23A3,4,{0x81,0x36,0xF7,0x37,}}, {0x23A4,4,{0x81,0x36,0xF7,0x38,}}, {0x23A5,4,{0x81,0x36,0xF7,0x39,}}, {0x23A6,4,{0x81,0x36,0xF8,0x30,}}, {0x23A7,4,{0x81,0x36,0xF8,0x31,}}, {0x23A8,4,{0x81,0x36,0xF8,0x32,}}, {0x23A9,4,{0x81,0x36,0xF8,0x33,}}, {0x23AA,4,{0x81,0x36,0xF8,0x34,}}, {0x23AB,4,{0x81,0x36,0xF8,0x35,}}, {0x23AC,4,{0x81,0x36,0xF8,0x36,}}, {0x23AD,4,{0x81,0x36,0xF8,0x37,}}, {0x23AE,4,{0x81,0x36,0xF8,0x38,}}, {0x23AF,4,{0x81,0x36,0xF8,0x39,}}, {0x23B0,4,{0x81,0x36,0xF9,0x30,}}, {0x23B1,4,{0x81,0x36,0xF9,0x31,}}, {0x23B2,4,{0x81,0x36,0xF9,0x32,}}, {0x23B3,4,{0x81,0x36,0xF9,0x33,}}, {0x23B4,4,{0x81,0x36,0xF9,0x34,}}, {0x23B5,4,{0x81,0x36,0xF9,0x35,}}, {0x23B6,4,{0x81,0x36,0xF9,0x36,}}, {0x23B7,4,{0x81,0x36,0xF9,0x37,}}, {0x23B8,4,{0x81,0x36,0xF9,0x38,}}, {0x23B9,4,{0x81,0x36,0xF9,0x39,}}, {0x23BA,4,{0x81,0x36,0xFA,0x30,}}, {0x23BB,4,{0x81,0x36,0xFA,0x31,}}, {0x23BC,4,{0x81,0x36,0xFA,0x32,}}, {0x23BD,4,{0x81,0x36,0xFA,0x33,}}, {0x23BE,4,{0x81,0x36,0xFA,0x34,}}, {0x23BF,4,{0x81,0x36,0xFA,0x35,}}, {0x23C0,4,{0x81,0x36,0xFA,0x36,}}, {0x23C1,4,{0x81,0x36,0xFA,0x37,}}, {0x23C2,4,{0x81,0x36,0xFA,0x38,}}, {0x23C3,4,{0x81,0x36,0xFA,0x39,}}, {0x23C4,4,{0x81,0x36,0xFB,0x30,}}, {0x23C5,4,{0x81,0x36,0xFB,0x31,}}, {0x23C6,4,{0x81,0x36,0xFB,0x32,}}, {0x23C7,4,{0x81,0x36,0xFB,0x33,}}, {0x23C8,4,{0x81,0x36,0xFB,0x34,}}, {0x23C9,4,{0x81,0x36,0xFB,0x35,}}, {0x23CA,4,{0x81,0x36,0xFB,0x36,}}, {0x23CB,4,{0x81,0x36,0xFB,0x37,}}, {0x23CC,4,{0x81,0x36,0xFB,0x38,}}, {0x23CD,4,{0x81,0x36,0xFB,0x39,}}, {0x23CE,4,{0x81,0x36,0xFC,0x30,}}, {0x23CF,4,{0x81,0x36,0xFC,0x31,}}, {0x23D0,4,{0x81,0x36,0xFC,0x32,}}, {0x23D1,4,{0x81,0x36,0xFC,0x33,}}, {0x23D2,4,{0x81,0x36,0xFC,0x34,}}, {0x23D3,4,{0x81,0x36,0xFC,0x35,}}, {0x23D4,4,{0x81,0x36,0xFC,0x36,}}, {0x23D5,4,{0x81,0x36,0xFC,0x37,}}, {0x23D6,4,{0x81,0x36,0xFC,0x38,}}, {0x23D7,4,{0x81,0x36,0xFC,0x39,}}, {0x23D8,4,{0x81,0x36,0xFD,0x30,}}, {0x23D9,4,{0x81,0x36,0xFD,0x31,}}, {0x23DA,4,{0x81,0x36,0xFD,0x32,}}, {0x23DB,4,{0x81,0x36,0xFD,0x33,}}, {0x23DC,4,{0x81,0x36,0xFD,0x34,}}, {0x23DD,4,{0x81,0x36,0xFD,0x35,}}, {0x23DE,4,{0x81,0x36,0xFD,0x36,}}, {0x23DF,4,{0x81,0x36,0xFD,0x37,}}, {0x23E0,4,{0x81,0x36,0xFD,0x38,}}, {0x23E1,4,{0x81,0x36,0xFD,0x39,}}, {0x23E2,4,{0x81,0x36,0xFE,0x30,}}, {0x23E3,4,{0x81,0x36,0xFE,0x31,}}, {0x23E4,4,{0x81,0x36,0xFE,0x32,}}, {0x23E5,4,{0x81,0x36,0xFE,0x33,}}, {0x23E6,4,{0x81,0x36,0xFE,0x34,}}, {0x23E7,4,{0x81,0x36,0xFE,0x35,}}, {0x23E8,4,{0x81,0x36,0xFE,0x36,}}, {0x23E9,4,{0x81,0x36,0xFE,0x37,}}, {0x23EA,4,{0x81,0x36,0xFE,0x38,}}, {0x23EB,4,{0x81,0x36,0xFE,0x39,}}, {0x23EC,4,{0x81,0x37,0x81,0x30,}}, {0x23ED,4,{0x81,0x37,0x81,0x31,}}, {0x23EE,4,{0x81,0x37,0x81,0x32,}}, {0x23EF,4,{0x81,0x37,0x81,0x33,}}, {0x23F0,4,{0x81,0x37,0x81,0x34,}}, {0x23F1,4,{0x81,0x37,0x81,0x35,}}, {0x23F2,4,{0x81,0x37,0x81,0x36,}}, {0x23F3,4,{0x81,0x37,0x81,0x37,}}, {0x23F4,4,{0x81,0x37,0x81,0x38,}}, {0x23F5,4,{0x81,0x37,0x81,0x39,}}, {0x23F6,4,{0x81,0x37,0x82,0x30,}}, {0x23F7,4,{0x81,0x37,0x82,0x31,}}, {0x23F8,4,{0x81,0x37,0x82,0x32,}}, {0x23F9,4,{0x81,0x37,0x82,0x33,}}, {0x23FA,4,{0x81,0x37,0x82,0x34,}}, {0x23FB,4,{0x81,0x37,0x82,0x35,}}, {0x23FC,4,{0x81,0x37,0x82,0x36,}}, {0x23FD,4,{0x81,0x37,0x82,0x37,}}, {0x23FE,4,{0x81,0x37,0x82,0x38,}}, {0x23FF,4,{0x81,0x37,0x82,0x39,}}, {0x2400,4,{0x81,0x37,0x83,0x30,}}, {0x2401,4,{0x81,0x37,0x83,0x31,}}, {0x2402,4,{0x81,0x37,0x83,0x32,}}, {0x2403,4,{0x81,0x37,0x83,0x33,}}, {0x2404,4,{0x81,0x37,0x83,0x34,}}, {0x2405,4,{0x81,0x37,0x83,0x35,}}, {0x2406,4,{0x81,0x37,0x83,0x36,}}, {0x2407,4,{0x81,0x37,0x83,0x37,}}, {0x2408,4,{0x81,0x37,0x83,0x38,}}, {0x2409,4,{0x81,0x37,0x83,0x39,}}, {0x240A,4,{0x81,0x37,0x84,0x30,}}, {0x240B,4,{0x81,0x37,0x84,0x31,}}, {0x240C,4,{0x81,0x37,0x84,0x32,}}, {0x240D,4,{0x81,0x37,0x84,0x33,}}, {0x240E,4,{0x81,0x37,0x84,0x34,}}, {0x240F,4,{0x81,0x37,0x84,0x35,}}, {0x2410,4,{0x81,0x37,0x84,0x36,}}, {0x2411,4,{0x81,0x37,0x84,0x37,}}, {0x2412,4,{0x81,0x37,0x84,0x38,}}, {0x2413,4,{0x81,0x37,0x84,0x39,}}, {0x2414,4,{0x81,0x37,0x85,0x30,}}, {0x2415,4,{0x81,0x37,0x85,0x31,}}, {0x2416,4,{0x81,0x37,0x85,0x32,}}, {0x2417,4,{0x81,0x37,0x85,0x33,}}, {0x2418,4,{0x81,0x37,0x85,0x34,}}, {0x2419,4,{0x81,0x37,0x85,0x35,}}, {0x241A,4,{0x81,0x37,0x85,0x36,}}, {0x241B,4,{0x81,0x37,0x85,0x37,}}, {0x241C,4,{0x81,0x37,0x85,0x38,}}, {0x241D,4,{0x81,0x37,0x85,0x39,}}, {0x241E,4,{0x81,0x37,0x86,0x30,}}, {0x241F,4,{0x81,0x37,0x86,0x31,}}, {0x2420,4,{0x81,0x37,0x86,0x32,}}, {0x2421,4,{0x81,0x37,0x86,0x33,}}, {0x2422,4,{0x81,0x37,0x86,0x34,}}, {0x2423,4,{0x81,0x37,0x86,0x35,}}, {0x2424,4,{0x81,0x37,0x86,0x36,}}, {0x2425,4,{0x81,0x37,0x86,0x37,}}, {0x2426,4,{0x81,0x37,0x86,0x38,}}, {0x2427,4,{0x81,0x37,0x86,0x39,}}, {0x2428,4,{0x81,0x37,0x87,0x30,}}, {0x2429,4,{0x81,0x37,0x87,0x31,}}, {0x242A,4,{0x81,0x37,0x87,0x32,}}, {0x242B,4,{0x81,0x37,0x87,0x33,}}, {0x242C,4,{0x81,0x37,0x87,0x34,}}, {0x242D,4,{0x81,0x37,0x87,0x35,}}, {0x242E,4,{0x81,0x37,0x87,0x36,}}, {0x242F,4,{0x81,0x37,0x87,0x37,}}, {0x2430,4,{0x81,0x37,0x87,0x38,}}, {0x2431,4,{0x81,0x37,0x87,0x39,}}, {0x2432,4,{0x81,0x37,0x88,0x30,}}, {0x2433,4,{0x81,0x37,0x88,0x31,}}, {0x2434,4,{0x81,0x37,0x88,0x32,}}, {0x2435,4,{0x81,0x37,0x88,0x33,}}, {0x2436,4,{0x81,0x37,0x88,0x34,}}, {0x2437,4,{0x81,0x37,0x88,0x35,}}, {0x2438,4,{0x81,0x37,0x88,0x36,}}, {0x2439,4,{0x81,0x37,0x88,0x37,}}, {0x243A,4,{0x81,0x37,0x88,0x38,}}, {0x243B,4,{0x81,0x37,0x88,0x39,}}, {0x243C,4,{0x81,0x37,0x89,0x30,}}, {0x243D,4,{0x81,0x37,0x89,0x31,}}, {0x243E,4,{0x81,0x37,0x89,0x32,}}, {0x243F,4,{0x81,0x37,0x89,0x33,}}, {0x2440,4,{0x81,0x37,0x89,0x34,}}, {0x2441,4,{0x81,0x37,0x89,0x35,}}, {0x2442,4,{0x81,0x37,0x89,0x36,}}, {0x2443,4,{0x81,0x37,0x89,0x37,}}, {0x2444,4,{0x81,0x37,0x89,0x38,}}, {0x2445,4,{0x81,0x37,0x89,0x39,}}, {0x2446,4,{0x81,0x37,0x8A,0x30,}}, {0x2447,4,{0x81,0x37,0x8A,0x31,}}, {0x2448,4,{0x81,0x37,0x8A,0x32,}}, {0x2449,4,{0x81,0x37,0x8A,0x33,}}, {0x244A,4,{0x81,0x37,0x8A,0x34,}}, {0x244B,4,{0x81,0x37,0x8A,0x35,}}, {0x244C,4,{0x81,0x37,0x8A,0x36,}}, {0x244D,4,{0x81,0x37,0x8A,0x37,}}, {0x244E,4,{0x81,0x37,0x8A,0x38,}}, {0x244F,4,{0x81,0x37,0x8A,0x39,}}, {0x2450,4,{0x81,0x37,0x8B,0x30,}}, {0x2451,4,{0x81,0x37,0x8B,0x31,}}, {0x2452,4,{0x81,0x37,0x8B,0x32,}}, {0x2453,4,{0x81,0x37,0x8B,0x33,}}, {0x2454,4,{0x81,0x37,0x8B,0x34,}}, {0x2455,4,{0x81,0x37,0x8B,0x35,}}, {0x2456,4,{0x81,0x37,0x8B,0x36,}}, {0x2457,4,{0x81,0x37,0x8B,0x37,}}, {0x2458,4,{0x81,0x37,0x8B,0x38,}}, {0x2459,4,{0x81,0x37,0x8B,0x39,}}, {0x245A,4,{0x81,0x37,0x8C,0x30,}}, {0x245B,4,{0x81,0x37,0x8C,0x31,}}, {0x245C,4,{0x81,0x37,0x8C,0x32,}}, {0x245D,4,{0x81,0x37,0x8C,0x33,}}, {0x245E,4,{0x81,0x37,0x8C,0x34,}}, {0x245F,4,{0x81,0x37,0x8C,0x35,}}, {0x2460,2,{0xA2,0xD9,0x00,0x00,}}, {0x2461,2,{0xA2,0xDA,0x00,0x00,}}, {0x2462,2,{0xA2,0xDB,0x00,0x00,}}, {0x2463,2,{0xA2,0xDC,0x00,0x00,}}, {0x2464,2,{0xA2,0xDD,0x00,0x00,}}, {0x2465,2,{0xA2,0xDE,0x00,0x00,}}, {0x2466,2,{0xA2,0xDF,0x00,0x00,}}, {0x2467,2,{0xA2,0xE0,0x00,0x00,}}, {0x2468,2,{0xA2,0xE1,0x00,0x00,}}, {0x2469,2,{0xA2,0xE2,0x00,0x00,}}, {0x246A,4,{0x81,0x37,0x8C,0x36,}}, {0x246B,4,{0x81,0x37,0x8C,0x37,}}, {0x246C,4,{0x81,0x37,0x8C,0x38,}}, {0x246D,4,{0x81,0x37,0x8C,0x39,}}, {0x246E,4,{0x81,0x37,0x8D,0x30,}}, {0x246F,4,{0x81,0x37,0x8D,0x31,}}, {0x2470,4,{0x81,0x37,0x8D,0x32,}}, {0x2471,4,{0x81,0x37,0x8D,0x33,}}, {0x2472,4,{0x81,0x37,0x8D,0x34,}}, {0x2473,4,{0x81,0x37,0x8D,0x35,}}, {0x2474,2,{0xA2,0xC5,0x00,0x00,}}, {0x2475,2,{0xA2,0xC6,0x00,0x00,}}, {0x2476,2,{0xA2,0xC7,0x00,0x00,}}, {0x2477,2,{0xA2,0xC8,0x00,0x00,}}, {0x2478,2,{0xA2,0xC9,0x00,0x00,}}, {0x2479,2,{0xA2,0xCA,0x00,0x00,}}, {0x247A,2,{0xA2,0xCB,0x00,0x00,}}, {0x247B,2,{0xA2,0xCC,0x00,0x00,}}, {0x247C,2,{0xA2,0xCD,0x00,0x00,}}, {0x247D,2,{0xA2,0xCE,0x00,0x00,}}, {0x247E,2,{0xA2,0xCF,0x00,0x00,}}, {0x247F,2,{0xA2,0xD0,0x00,0x00,}}, {0x2480,2,{0xA2,0xD1,0x00,0x00,}}, {0x2481,2,{0xA2,0xD2,0x00,0x00,}}, {0x2482,2,{0xA2,0xD3,0x00,0x00,}}, {0x2483,2,{0xA2,0xD4,0x00,0x00,}}, {0x2484,2,{0xA2,0xD5,0x00,0x00,}}, {0x2485,2,{0xA2,0xD6,0x00,0x00,}}, {0x2486,2,{0xA2,0xD7,0x00,0x00,}}, {0x2487,2,{0xA2,0xD8,0x00,0x00,}}, {0x2488,2,{0xA2,0xB1,0x00,0x00,}}, {0x2489,2,{0xA2,0xB2,0x00,0x00,}}, {0x248A,2,{0xA2,0xB3,0x00,0x00,}}, {0x248B,2,{0xA2,0xB4,0x00,0x00,}}, {0x248C,2,{0xA2,0xB5,0x00,0x00,}}, {0x248D,2,{0xA2,0xB6,0x00,0x00,}}, {0x248E,2,{0xA2,0xB7,0x00,0x00,}}, {0x248F,2,{0xA2,0xB8,0x00,0x00,}}, {0x2490,2,{0xA2,0xB9,0x00,0x00,}}, {0x2491,2,{0xA2,0xBA,0x00,0x00,}}, {0x2492,2,{0xA2,0xBB,0x00,0x00,}}, {0x2493,2,{0xA2,0xBC,0x00,0x00,}}, {0x2494,2,{0xA2,0xBD,0x00,0x00,}}, {0x2495,2,{0xA2,0xBE,0x00,0x00,}}, {0x2496,2,{0xA2,0xBF,0x00,0x00,}}, {0x2497,2,{0xA2,0xC0,0x00,0x00,}}, {0x2498,2,{0xA2,0xC1,0x00,0x00,}}, {0x2499,2,{0xA2,0xC2,0x00,0x00,}}, {0x249A,2,{0xA2,0xC3,0x00,0x00,}}, {0x249B,2,{0xA2,0xC4,0x00,0x00,}}, {0x249C,4,{0x81,0x37,0x8D,0x36,}}, {0x249D,4,{0x81,0x37,0x8D,0x37,}}, {0x249E,4,{0x81,0x37,0x8D,0x38,}}, {0x249F,4,{0x81,0x37,0x8D,0x39,}}, {0x24A0,4,{0x81,0x37,0x8E,0x30,}}, {0x24A1,4,{0x81,0x37,0x8E,0x31,}}, {0x24A2,4,{0x81,0x37,0x8E,0x32,}}, {0x24A3,4,{0x81,0x37,0x8E,0x33,}}, {0x24A4,4,{0x81,0x37,0x8E,0x34,}}, {0x24A5,4,{0x81,0x37,0x8E,0x35,}}, {0x24A6,4,{0x81,0x37,0x8E,0x36,}}, {0x24A7,4,{0x81,0x37,0x8E,0x37,}}, {0x24A8,4,{0x81,0x37,0x8E,0x38,}}, {0x24A9,4,{0x81,0x37,0x8E,0x39,}}, {0x24AA,4,{0x81,0x37,0x8F,0x30,}}, {0x24AB,4,{0x81,0x37,0x8F,0x31,}}, {0x24AC,4,{0x81,0x37,0x8F,0x32,}}, {0x24AD,4,{0x81,0x37,0x8F,0x33,}}, {0x24AE,4,{0x81,0x37,0x8F,0x34,}}, {0x24AF,4,{0x81,0x37,0x8F,0x35,}}, {0x24B0,4,{0x81,0x37,0x8F,0x36,}}, {0x24B1,4,{0x81,0x37,0x8F,0x37,}}, {0x24B2,4,{0x81,0x37,0x8F,0x38,}}, {0x24B3,4,{0x81,0x37,0x8F,0x39,}}, {0x24B4,4,{0x81,0x37,0x90,0x30,}}, {0x24B5,4,{0x81,0x37,0x90,0x31,}}, {0x24B6,4,{0x81,0x37,0x90,0x32,}}, {0x24B7,4,{0x81,0x37,0x90,0x33,}}, {0x24B8,4,{0x81,0x37,0x90,0x34,}}, {0x24B9,4,{0x81,0x37,0x90,0x35,}}, {0x24BA,4,{0x81,0x37,0x90,0x36,}}, {0x24BB,4,{0x81,0x37,0x90,0x37,}}, {0x24BC,4,{0x81,0x37,0x90,0x38,}}, {0x24BD,4,{0x81,0x37,0x90,0x39,}}, {0x24BE,4,{0x81,0x37,0x91,0x30,}}, {0x24BF,4,{0x81,0x37,0x91,0x31,}}, {0x24C0,4,{0x81,0x37,0x91,0x32,}}, {0x24C1,4,{0x81,0x37,0x91,0x33,}}, {0x24C2,4,{0x81,0x37,0x91,0x34,}}, {0x24C3,4,{0x81,0x37,0x91,0x35,}}, {0x24C4,4,{0x81,0x37,0x91,0x36,}}, {0x24C5,4,{0x81,0x37,0x91,0x37,}}, {0x24C6,4,{0x81,0x37,0x91,0x38,}}, {0x24C7,4,{0x81,0x37,0x91,0x39,}}, {0x24C8,4,{0x81,0x37,0x92,0x30,}}, {0x24C9,4,{0x81,0x37,0x92,0x31,}}, {0x24CA,4,{0x81,0x37,0x92,0x32,}}, {0x24CB,4,{0x81,0x37,0x92,0x33,}}, {0x24CC,4,{0x81,0x37,0x92,0x34,}}, {0x24CD,4,{0x81,0x37,0x92,0x35,}}, {0x24CE,4,{0x81,0x37,0x92,0x36,}}, {0x24CF,4,{0x81,0x37,0x92,0x37,}}, {0x24D0,4,{0x81,0x37,0x92,0x38,}}, {0x24D1,4,{0x81,0x37,0x92,0x39,}}, {0x24D2,4,{0x81,0x37,0x93,0x30,}}, {0x24D3,4,{0x81,0x37,0x93,0x31,}}, {0x24D4,4,{0x81,0x37,0x93,0x32,}}, {0x24D5,4,{0x81,0x37,0x93,0x33,}}, {0x24D6,4,{0x81,0x37,0x93,0x34,}}, {0x24D7,4,{0x81,0x37,0x93,0x35,}}, {0x24D8,4,{0x81,0x37,0x93,0x36,}}, {0x24D9,4,{0x81,0x37,0x93,0x37,}}, {0x24DA,4,{0x81,0x37,0x93,0x38,}}, {0x24DB,4,{0x81,0x37,0x93,0x39,}}, {0x24DC,4,{0x81,0x37,0x94,0x30,}}, {0x24DD,4,{0x81,0x37,0x94,0x31,}}, {0x24DE,4,{0x81,0x37,0x94,0x32,}}, {0x24DF,4,{0x81,0x37,0x94,0x33,}}, {0x24E0,4,{0x81,0x37,0x94,0x34,}}, {0x24E1,4,{0x81,0x37,0x94,0x35,}}, {0x24E2,4,{0x81,0x37,0x94,0x36,}}, {0x24E3,4,{0x81,0x37,0x94,0x37,}}, {0x24E4,4,{0x81,0x37,0x94,0x38,}}, {0x24E5,4,{0x81,0x37,0x94,0x39,}}, {0x24E6,4,{0x81,0x37,0x95,0x30,}}, {0x24E7,4,{0x81,0x37,0x95,0x31,}}, {0x24E8,4,{0x81,0x37,0x95,0x32,}}, {0x24E9,4,{0x81,0x37,0x95,0x33,}}, {0x24EA,4,{0x81,0x37,0x95,0x34,}}, {0x24EB,4,{0x81,0x37,0x95,0x35,}}, {0x24EC,4,{0x81,0x37,0x95,0x36,}}, {0x24ED,4,{0x81,0x37,0x95,0x37,}}, {0x24EE,4,{0x81,0x37,0x95,0x38,}}, {0x24EF,4,{0x81,0x37,0x95,0x39,}}, {0x24F0,4,{0x81,0x37,0x96,0x30,}}, {0x24F1,4,{0x81,0x37,0x96,0x31,}}, {0x24F2,4,{0x81,0x37,0x96,0x32,}}, {0x24F3,4,{0x81,0x37,0x96,0x33,}}, {0x24F4,4,{0x81,0x37,0x96,0x34,}}, {0x24F5,4,{0x81,0x37,0x96,0x35,}}, {0x24F6,4,{0x81,0x37,0x96,0x36,}}, {0x24F7,4,{0x81,0x37,0x96,0x37,}}, {0x24F8,4,{0x81,0x37,0x96,0x38,}}, {0x24F9,4,{0x81,0x37,0x96,0x39,}}, {0x24FA,4,{0x81,0x37,0x97,0x30,}}, {0x24FB,4,{0x81,0x37,0x97,0x31,}}, {0x24FC,4,{0x81,0x37,0x97,0x32,}}, {0x24FD,4,{0x81,0x37,0x97,0x33,}}, {0x24FE,4,{0x81,0x37,0x97,0x34,}}, {0x24FF,4,{0x81,0x37,0x97,0x35,}}, {0x2500,2,{0xA9,0xA4,0x00,0x00,}}, {0x2501,2,{0xA9,0xA5,0x00,0x00,}}, {0x2502,2,{0xA9,0xA6,0x00,0x00,}}, {0x2503,2,{0xA9,0xA7,0x00,0x00,}}, {0x2504,2,{0xA9,0xA8,0x00,0x00,}}, {0x2505,2,{0xA9,0xA9,0x00,0x00,}}, {0x2506,2,{0xA9,0xAA,0x00,0x00,}}, {0x2507,2,{0xA9,0xAB,0x00,0x00,}}, {0x2508,2,{0xA9,0xAC,0x00,0x00,}}, {0x2509,2,{0xA9,0xAD,0x00,0x00,}}, {0x250A,2,{0xA9,0xAE,0x00,0x00,}}, {0x250B,2,{0xA9,0xAF,0x00,0x00,}}, {0x250C,2,{0xA9,0xB0,0x00,0x00,}}, {0x250D,2,{0xA9,0xB1,0x00,0x00,}}, {0x250E,2,{0xA9,0xB2,0x00,0x00,}}, {0x250F,2,{0xA9,0xB3,0x00,0x00,}}, {0x2510,2,{0xA9,0xB4,0x00,0x00,}}, {0x2511,2,{0xA9,0xB5,0x00,0x00,}}, {0x2512,2,{0xA9,0xB6,0x00,0x00,}}, {0x2513,2,{0xA9,0xB7,0x00,0x00,}}, {0x2514,2,{0xA9,0xB8,0x00,0x00,}}, {0x2515,2,{0xA9,0xB9,0x00,0x00,}}, {0x2516,2,{0xA9,0xBA,0x00,0x00,}}, {0x2517,2,{0xA9,0xBB,0x00,0x00,}}, {0x2518,2,{0xA9,0xBC,0x00,0x00,}}, {0x2519,2,{0xA9,0xBD,0x00,0x00,}}, {0x251A,2,{0xA9,0xBE,0x00,0x00,}}, {0x251B,2,{0xA9,0xBF,0x00,0x00,}}, {0x251C,2,{0xA9,0xC0,0x00,0x00,}}, {0x251D,2,{0xA9,0xC1,0x00,0x00,}}, {0x251E,2,{0xA9,0xC2,0x00,0x00,}}, {0x251F,2,{0xA9,0xC3,0x00,0x00,}}, {0x2520,2,{0xA9,0xC4,0x00,0x00,}}, {0x2521,2,{0xA9,0xC5,0x00,0x00,}}, {0x2522,2,{0xA9,0xC6,0x00,0x00,}}, {0x2523,2,{0xA9,0xC7,0x00,0x00,}}, {0x2524,2,{0xA9,0xC8,0x00,0x00,}}, {0x2525,2,{0xA9,0xC9,0x00,0x00,}}, {0x2526,2,{0xA9,0xCA,0x00,0x00,}}, {0x2527,2,{0xA9,0xCB,0x00,0x00,}}, {0x2528,2,{0xA9,0xCC,0x00,0x00,}}, {0x2529,2,{0xA9,0xCD,0x00,0x00,}}, {0x252A,2,{0xA9,0xCE,0x00,0x00,}}, {0x252B,2,{0xA9,0xCF,0x00,0x00,}}, {0x252C,2,{0xA9,0xD0,0x00,0x00,}}, {0x252D,2,{0xA9,0xD1,0x00,0x00,}}, {0x252E,2,{0xA9,0xD2,0x00,0x00,}}, {0x252F,2,{0xA9,0xD3,0x00,0x00,}}, {0x2530,2,{0xA9,0xD4,0x00,0x00,}}, {0x2531,2,{0xA9,0xD5,0x00,0x00,}}, {0x2532,2,{0xA9,0xD6,0x00,0x00,}}, {0x2533,2,{0xA9,0xD7,0x00,0x00,}}, {0x2534,2,{0xA9,0xD8,0x00,0x00,}}, {0x2535,2,{0xA9,0xD9,0x00,0x00,}}, {0x2536,2,{0xA9,0xDA,0x00,0x00,}}, {0x2537,2,{0xA9,0xDB,0x00,0x00,}}, {0x2538,2,{0xA9,0xDC,0x00,0x00,}}, {0x2539,2,{0xA9,0xDD,0x00,0x00,}}, {0x253A,2,{0xA9,0xDE,0x00,0x00,}}, {0x253B,2,{0xA9,0xDF,0x00,0x00,}}, {0x253C,2,{0xA9,0xE0,0x00,0x00,}}, {0x253D,2,{0xA9,0xE1,0x00,0x00,}}, {0x253E,2,{0xA9,0xE2,0x00,0x00,}}, {0x253F,2,{0xA9,0xE3,0x00,0x00,}}, {0x2540,2,{0xA9,0xE4,0x00,0x00,}}, {0x2541,2,{0xA9,0xE5,0x00,0x00,}}, {0x2542,2,{0xA9,0xE6,0x00,0x00,}}, {0x2543,2,{0xA9,0xE7,0x00,0x00,}}, {0x2544,2,{0xA9,0xE8,0x00,0x00,}}, {0x2545,2,{0xA9,0xE9,0x00,0x00,}}, {0x2546,2,{0xA9,0xEA,0x00,0x00,}}, {0x2547,2,{0xA9,0xEB,0x00,0x00,}}, {0x2548,2,{0xA9,0xEC,0x00,0x00,}}, {0x2549,2,{0xA9,0xED,0x00,0x00,}}, {0x254A,2,{0xA9,0xEE,0x00,0x00,}}, {0x254B,2,{0xA9,0xEF,0x00,0x00,}}, {0x254C,4,{0x81,0x37,0x97,0x36,}}, {0x254D,4,{0x81,0x37,0x97,0x37,}}, {0x254E,4,{0x81,0x37,0x97,0x38,}}, {0x254F,4,{0x81,0x37,0x97,0x39,}}, {0x2550,2,{0xA8,0x54,0x00,0x00,}}, {0x2551,2,{0xA8,0x55,0x00,0x00,}}, {0x2552,2,{0xA8,0x56,0x00,0x00,}}, {0x2553,2,{0xA8,0x57,0x00,0x00,}}, {0x2554,2,{0xA8,0x58,0x00,0x00,}}, {0x2555,2,{0xA8,0x59,0x00,0x00,}}, {0x2556,2,{0xA8,0x5A,0x00,0x00,}}, {0x2557,2,{0xA8,0x5B,0x00,0x00,}}, {0x2558,2,{0xA8,0x5C,0x00,0x00,}}, {0x2559,2,{0xA8,0x5D,0x00,0x00,}}, {0x255A,2,{0xA8,0x5E,0x00,0x00,}}, {0x255B,2,{0xA8,0x5F,0x00,0x00,}}, {0x255C,2,{0xA8,0x60,0x00,0x00,}}, {0x255D,2,{0xA8,0x61,0x00,0x00,}}, {0x255E,2,{0xA8,0x62,0x00,0x00,}}, {0x255F,2,{0xA8,0x63,0x00,0x00,}}, {0x2560,2,{0xA8,0x64,0x00,0x00,}}, {0x2561,2,{0xA8,0x65,0x00,0x00,}}, {0x2562,2,{0xA8,0x66,0x00,0x00,}}, {0x2563,2,{0xA8,0x67,0x00,0x00,}}, {0x2564,2,{0xA8,0x68,0x00,0x00,}}, {0x2565,2,{0xA8,0x69,0x00,0x00,}}, {0x2566,2,{0xA8,0x6A,0x00,0x00,}}, {0x2567,2,{0xA8,0x6B,0x00,0x00,}}, {0x2568,2,{0xA8,0x6C,0x00,0x00,}}, {0x2569,2,{0xA8,0x6D,0x00,0x00,}}, {0x256A,2,{0xA8,0x6E,0x00,0x00,}}, {0x256B,2,{0xA8,0x6F,0x00,0x00,}}, {0x256C,2,{0xA8,0x70,0x00,0x00,}}, {0x256D,2,{0xA8,0x71,0x00,0x00,}}, {0x256E,2,{0xA8,0x72,0x00,0x00,}}, {0x256F,2,{0xA8,0x73,0x00,0x00,}}, {0x2570,2,{0xA8,0x74,0x00,0x00,}}, {0x2571,2,{0xA8,0x75,0x00,0x00,}}, {0x2572,2,{0xA8,0x76,0x00,0x00,}}, {0x2573,2,{0xA8,0x77,0x00,0x00,}}, {0x2574,4,{0x81,0x37,0x98,0x30,}}, {0x2575,4,{0x81,0x37,0x98,0x31,}}, {0x2576,4,{0x81,0x37,0x98,0x32,}}, {0x2577,4,{0x81,0x37,0x98,0x33,}}, {0x2578,4,{0x81,0x37,0x98,0x34,}}, {0x2579,4,{0x81,0x37,0x98,0x35,}}, {0x257A,4,{0x81,0x37,0x98,0x36,}}, {0x257B,4,{0x81,0x37,0x98,0x37,}}, {0x257C,4,{0x81,0x37,0x98,0x38,}}, {0x257D,4,{0x81,0x37,0x98,0x39,}}, {0x257E,4,{0x81,0x37,0x99,0x30,}}, {0x257F,4,{0x81,0x37,0x99,0x31,}}, {0x2580,4,{0x81,0x37,0x99,0x32,}}, {0x2581,2,{0xA8,0x78,0x00,0x00,}}, {0x2582,2,{0xA8,0x79,0x00,0x00,}}, {0x2583,2,{0xA8,0x7A,0x00,0x00,}}, {0x2584,2,{0xA8,0x7B,0x00,0x00,}}, {0x2585,2,{0xA8,0x7C,0x00,0x00,}}, {0x2586,2,{0xA8,0x7D,0x00,0x00,}}, {0x2587,2,{0xA8,0x7E,0x00,0x00,}}, {0x2588,2,{0xA8,0x80,0x00,0x00,}}, {0x2589,2,{0xA8,0x81,0x00,0x00,}}, {0x258A,2,{0xA8,0x82,0x00,0x00,}}, {0x258B,2,{0xA8,0x83,0x00,0x00,}}, {0x258C,2,{0xA8,0x84,0x00,0x00,}}, {0x258D,2,{0xA8,0x85,0x00,0x00,}}, {0x258E,2,{0xA8,0x86,0x00,0x00,}}, {0x258F,2,{0xA8,0x87,0x00,0x00,}}, {0x2590,4,{0x81,0x37,0x99,0x33,}}, {0x2591,4,{0x81,0x37,0x99,0x34,}}, {0x2592,4,{0x81,0x37,0x99,0x35,}}, {0x2593,2,{0xA8,0x88,0x00,0x00,}}, {0x2594,2,{0xA8,0x89,0x00,0x00,}}, {0x2595,2,{0xA8,0x8A,0x00,0x00,}}, {0x2596,4,{0x81,0x37,0x99,0x36,}}, {0x2597,4,{0x81,0x37,0x99,0x37,}}, {0x2598,4,{0x81,0x37,0x99,0x38,}}, {0x2599,4,{0x81,0x37,0x99,0x39,}}, {0x259A,4,{0x81,0x37,0x9A,0x30,}}, {0x259B,4,{0x81,0x37,0x9A,0x31,}}, {0x259C,4,{0x81,0x37,0x9A,0x32,}}, {0x259D,4,{0x81,0x37,0x9A,0x33,}}, {0x259E,4,{0x81,0x37,0x9A,0x34,}}, {0x259F,4,{0x81,0x37,0x9A,0x35,}}, {0x25A0,2,{0xA1,0xF6,0x00,0x00,}}, {0x25A1,2,{0xA1,0xF5,0x00,0x00,}}, {0x25A2,4,{0x81,0x37,0x9A,0x36,}}, {0x25A3,4,{0x81,0x37,0x9A,0x37,}}, {0x25A4,4,{0x81,0x37,0x9A,0x38,}}, {0x25A5,4,{0x81,0x37,0x9A,0x39,}}, {0x25A6,4,{0x81,0x37,0x9B,0x30,}}, {0x25A7,4,{0x81,0x37,0x9B,0x31,}}, {0x25A8,4,{0x81,0x37,0x9B,0x32,}}, {0x25A9,4,{0x81,0x37,0x9B,0x33,}}, {0x25AA,4,{0x81,0x37,0x9B,0x34,}}, {0x25AB,4,{0x81,0x37,0x9B,0x35,}}, {0x25AC,4,{0x81,0x37,0x9B,0x36,}}, {0x25AD,4,{0x81,0x37,0x9B,0x37,}}, {0x25AE,4,{0x81,0x37,0x9B,0x38,}}, {0x25AF,4,{0x81,0x37,0x9B,0x39,}}, {0x25B0,4,{0x81,0x37,0x9C,0x30,}}, {0x25B1,4,{0x81,0x37,0x9C,0x31,}}, {0x25B2,2,{0xA1,0xF8,0x00,0x00,}}, {0x25B3,2,{0xA1,0xF7,0x00,0x00,}}, {0x25B4,4,{0x81,0x37,0x9C,0x32,}}, {0x25B5,4,{0x81,0x37,0x9C,0x33,}}, {0x25B6,4,{0x81,0x37,0x9C,0x34,}}, {0x25B7,4,{0x81,0x37,0x9C,0x35,}}, {0x25B8,4,{0x81,0x37,0x9C,0x36,}}, {0x25B9,4,{0x81,0x37,0x9C,0x37,}}, {0x25BA,4,{0x81,0x37,0x9C,0x38,}}, {0x25BB,4,{0x81,0x37,0x9C,0x39,}}, {0x25BC,2,{0xA8,0x8B,0x00,0x00,}}, {0x25BD,2,{0xA8,0x8C,0x00,0x00,}}, {0x25BE,4,{0x81,0x37,0x9D,0x30,}}, {0x25BF,4,{0x81,0x37,0x9D,0x31,}}, {0x25C0,4,{0x81,0x37,0x9D,0x32,}}, {0x25C1,4,{0x81,0x37,0x9D,0x33,}}, {0x25C2,4,{0x81,0x37,0x9D,0x34,}}, {0x25C3,4,{0x81,0x37,0x9D,0x35,}}, {0x25C4,4,{0x81,0x37,0x9D,0x36,}}, {0x25C5,4,{0x81,0x37,0x9D,0x37,}}, {0x25C6,2,{0xA1,0xF4,0x00,0x00,}}, {0x25C7,2,{0xA1,0xF3,0x00,0x00,}}, {0x25C8,4,{0x81,0x37,0x9D,0x38,}}, {0x25C9,4,{0x81,0x37,0x9D,0x39,}}, {0x25CA,4,{0x81,0x37,0x9E,0x30,}}, {0x25CB,2,{0xA1,0xF0,0x00,0x00,}}, {0x25CC,4,{0x81,0x37,0x9E,0x31,}}, {0x25CD,4,{0x81,0x37,0x9E,0x32,}}, {0x25CE,2,{0xA1,0xF2,0x00,0x00,}}, {0x25CF,2,{0xA1,0xF1,0x00,0x00,}}, {0x25D0,4,{0x81,0x37,0x9E,0x33,}}, {0x25D1,4,{0x81,0x37,0x9E,0x34,}}, {0x25D2,4,{0x81,0x37,0x9E,0x35,}}, {0x25D3,4,{0x81,0x37,0x9E,0x36,}}, {0x25D4,4,{0x81,0x37,0x9E,0x37,}}, {0x25D5,4,{0x81,0x37,0x9E,0x38,}}, {0x25D6,4,{0x81,0x37,0x9E,0x39,}}, {0x25D7,4,{0x81,0x37,0x9F,0x30,}}, {0x25D8,4,{0x81,0x37,0x9F,0x31,}}, {0x25D9,4,{0x81,0x37,0x9F,0x32,}}, {0x25DA,4,{0x81,0x37,0x9F,0x33,}}, {0x25DB,4,{0x81,0x37,0x9F,0x34,}}, {0x25DC,4,{0x81,0x37,0x9F,0x35,}}, {0x25DD,4,{0x81,0x37,0x9F,0x36,}}, {0x25DE,4,{0x81,0x37,0x9F,0x37,}}, {0x25DF,4,{0x81,0x37,0x9F,0x38,}}, {0x25E0,4,{0x81,0x37,0x9F,0x39,}}, {0x25E1,4,{0x81,0x37,0xA0,0x30,}}, {0x25E2,2,{0xA8,0x8D,0x00,0x00,}}, {0x25E3,2,{0xA8,0x8E,0x00,0x00,}}, {0x25E4,2,{0xA8,0x8F,0x00,0x00,}}, {0x25E5,2,{0xA8,0x90,0x00,0x00,}}, {0x25E6,4,{0x81,0x37,0xA0,0x31,}}, {0x25E7,4,{0x81,0x37,0xA0,0x32,}}, {0x25E8,4,{0x81,0x37,0xA0,0x33,}}, {0x25E9,4,{0x81,0x37,0xA0,0x34,}}, {0x25EA,4,{0x81,0x37,0xA0,0x35,}}, {0x25EB,4,{0x81,0x37,0xA0,0x36,}}, {0x25EC,4,{0x81,0x37,0xA0,0x37,}}, {0x25ED,4,{0x81,0x37,0xA0,0x38,}}, {0x25EE,4,{0x81,0x37,0xA0,0x39,}}, {0x25EF,4,{0x81,0x37,0xA1,0x30,}}, {0x25F0,4,{0x81,0x37,0xA1,0x31,}}, {0x25F1,4,{0x81,0x37,0xA1,0x32,}}, {0x25F2,4,{0x81,0x37,0xA1,0x33,}}, {0x25F3,4,{0x81,0x37,0xA1,0x34,}}, {0x25F4,4,{0x81,0x37,0xA1,0x35,}}, {0x25F5,4,{0x81,0x37,0xA1,0x36,}}, {0x25F6,4,{0x81,0x37,0xA1,0x37,}}, {0x25F7,4,{0x81,0x37,0xA1,0x38,}}, {0x25F8,4,{0x81,0x37,0xA1,0x39,}}, {0x25F9,4,{0x81,0x37,0xA2,0x30,}}, {0x25FA,4,{0x81,0x37,0xA2,0x31,}}, {0x25FB,4,{0x81,0x37,0xA2,0x32,}}, {0x25FC,4,{0x81,0x37,0xA2,0x33,}}, {0x25FD,4,{0x81,0x37,0xA2,0x34,}}, {0x25FE,4,{0x81,0x37,0xA2,0x35,}}, {0x25FF,4,{0x81,0x37,0xA2,0x36,}}, {0x2600,4,{0x81,0x37,0xA2,0x37,}}, {0x2601,4,{0x81,0x37,0xA2,0x38,}}, {0x2602,4,{0x81,0x37,0xA2,0x39,}}, {0x2603,4,{0x81,0x37,0xA3,0x30,}}, {0x2604,4,{0x81,0x37,0xA3,0x31,}}, {0x2605,2,{0xA1,0xEF,0x00,0x00,}}, {0x2606,2,{0xA1,0xEE,0x00,0x00,}}, {0x2607,4,{0x81,0x37,0xA3,0x32,}}, {0x2608,4,{0x81,0x37,0xA3,0x33,}}, {0x2609,2,{0xA8,0x91,0x00,0x00,}}, {0x260A,4,{0x81,0x37,0xA3,0x34,}}, {0x260B,4,{0x81,0x37,0xA3,0x35,}}, {0x260C,4,{0x81,0x37,0xA3,0x36,}}, {0x260D,4,{0x81,0x37,0xA3,0x37,}}, {0x260E,4,{0x81,0x37,0xA3,0x38,}}, {0x260F,4,{0x81,0x37,0xA3,0x39,}}, {0x2610,4,{0x81,0x37,0xA4,0x30,}}, {0x2611,4,{0x81,0x37,0xA4,0x31,}}, {0x2612,4,{0x81,0x37,0xA4,0x32,}}, {0x2613,4,{0x81,0x37,0xA4,0x33,}}, {0x2614,4,{0x81,0x37,0xA4,0x34,}}, {0x2615,4,{0x81,0x37,0xA4,0x35,}}, {0x2616,4,{0x81,0x37,0xA4,0x36,}}, {0x2617,4,{0x81,0x37,0xA4,0x37,}}, {0x2618,4,{0x81,0x37,0xA4,0x38,}}, {0x2619,4,{0x81,0x37,0xA4,0x39,}}, {0x261A,4,{0x81,0x37,0xA5,0x30,}}, {0x261B,4,{0x81,0x37,0xA5,0x31,}}, {0x261C,4,{0x81,0x37,0xA5,0x32,}}, {0x261D,4,{0x81,0x37,0xA5,0x33,}}, {0x261E,4,{0x81,0x37,0xA5,0x34,}}, {0x261F,4,{0x81,0x37,0xA5,0x35,}}, {0x2620,4,{0x81,0x37,0xA5,0x36,}}, {0x2621,4,{0x81,0x37,0xA5,0x37,}}, {0x2622,4,{0x81,0x37,0xA5,0x38,}}, {0x2623,4,{0x81,0x37,0xA5,0x39,}}, {0x2624,4,{0x81,0x37,0xA6,0x30,}}, {0x2625,4,{0x81,0x37,0xA6,0x31,}}, {0x2626,4,{0x81,0x37,0xA6,0x32,}}, {0x2627,4,{0x81,0x37,0xA6,0x33,}}, {0x2628,4,{0x81,0x37,0xA6,0x34,}}, {0x2629,4,{0x81,0x37,0xA6,0x35,}}, {0x262A,4,{0x81,0x37,0xA6,0x36,}}, {0x262B,4,{0x81,0x37,0xA6,0x37,}}, {0x262C,4,{0x81,0x37,0xA6,0x38,}}, {0x262D,4,{0x81,0x37,0xA6,0x39,}}, {0x262E,4,{0x81,0x37,0xA7,0x30,}}, {0x262F,4,{0x81,0x37,0xA7,0x31,}}, {0x2630,4,{0x81,0x37,0xA7,0x32,}}, {0x2631,4,{0x81,0x37,0xA7,0x33,}}, {0x2632,4,{0x81,0x37,0xA7,0x34,}}, {0x2633,4,{0x81,0x37,0xA7,0x35,}}, {0x2634,4,{0x81,0x37,0xA7,0x36,}}, {0x2635,4,{0x81,0x37,0xA7,0x37,}}, {0x2636,4,{0x81,0x37,0xA7,0x38,}}, {0x2637,4,{0x81,0x37,0xA7,0x39,}}, {0x2638,4,{0x81,0x37,0xA8,0x30,}}, {0x2639,4,{0x81,0x37,0xA8,0x31,}}, {0x263A,4,{0x81,0x37,0xA8,0x32,}}, {0x263B,4,{0x81,0x37,0xA8,0x33,}}, {0x263C,4,{0x81,0x37,0xA8,0x34,}}, {0x263D,4,{0x81,0x37,0xA8,0x35,}}, {0x263E,4,{0x81,0x37,0xA8,0x36,}}, {0x263F,4,{0x81,0x37,0xA8,0x37,}}, {0x2640,2,{0xA1,0xE2,0x00,0x00,}}, {0x2641,4,{0x81,0x37,0xA8,0x38,}}, {0x2642,2,{0xA1,0xE1,0x00,0x00,}}, {0x2E81,2,{0xFE,0x50,0x00,0x00,}}, {0x2E82,4,{0x81,0x38,0xFD,0x39,}}, {0x2E83,4,{0x81,0x38,0xFE,0x30,}}, {0x2E84,2,{0xFE,0x54,0x00,0x00,}}, {0x2E85,4,{0x81,0x38,0xFE,0x31,}}, {0x2E86,4,{0x81,0x38,0xFE,0x32,}}, {0x2E87,4,{0x81,0x38,0xFE,0x33,}}, {0x2E88,2,{0xFE,0x57,0x00,0x00,}}, {0x2E89,4,{0x81,0x38,0xFE,0x34,}}, {0x2E8A,4,{0x81,0x38,0xFE,0x35,}}, {0x2E8B,2,{0xFE,0x58,0x00,0x00,}}, {0x2E8C,2,{0xFE,0x5D,0x00,0x00,}}, {0x2E8D,4,{0x81,0x38,0xFE,0x36,}}, {0x2E8E,4,{0x81,0x38,0xFE,0x37,}}, {0x2E8F,4,{0x81,0x38,0xFE,0x38,}}, {0x2E90,4,{0x81,0x38,0xFE,0x39,}}, {0x2E91,4,{0x81,0x39,0x81,0x30,}}, {0x2E92,4,{0x81,0x39,0x81,0x31,}}, {0x2E93,4,{0x81,0x39,0x81,0x32,}}, {0x2E94,4,{0x81,0x39,0x81,0x33,}}, {0x2E95,4,{0x81,0x39,0x81,0x34,}}, {0x2E96,4,{0x81,0x39,0x81,0x35,}}, {0x2E97,2,{0xFE,0x5E,0x00,0x00,}}, {0x2E98,4,{0x81,0x39,0x81,0x36,}}, {0x2E99,4,{0x81,0x39,0x81,0x37,}}, {0x2E9A,4,{0x81,0x39,0x81,0x38,}}, {0x2E9B,4,{0x81,0x39,0x81,0x39,}}, {0x2E9C,4,{0x81,0x39,0x82,0x30,}}, {0x2E9D,4,{0x81,0x39,0x82,0x31,}}, {0x2E9E,4,{0x81,0x39,0x82,0x32,}}, {0x2E9F,4,{0x81,0x39,0x82,0x33,}}, {0x2EA0,4,{0x81,0x39,0x82,0x34,}}, {0x2EA1,4,{0x81,0x39,0x82,0x35,}}, {0x2EA2,4,{0x81,0x39,0x82,0x36,}}, {0x2EA3,4,{0x81,0x39,0x82,0x37,}}, {0x2EA4,4,{0x81,0x39,0x82,0x38,}}, {0x2EA5,4,{0x81,0x39,0x82,0x39,}}, {0x2EA6,4,{0x81,0x39,0x83,0x30,}}, {0x2EA7,2,{0xFE,0x6B,0x00,0x00,}}, {0x2EA8,4,{0x81,0x39,0x83,0x31,}}, {0x2EA9,4,{0x81,0x39,0x83,0x32,}}, {0x2EAA,2,{0xFE,0x6E,0x00,0x00,}}, {0x2EAB,4,{0x81,0x39,0x83,0x33,}}, {0x2EAC,4,{0x81,0x39,0x83,0x34,}}, {0x2EAD,4,{0x81,0x39,0x83,0x35,}}, {0x2EAE,2,{0xFE,0x71,0x00,0x00,}}, {0x2EAF,4,{0x81,0x39,0x83,0x36,}}, {0x2EB0,4,{0x81,0x39,0x83,0x37,}}, {0x2EB1,4,{0x81,0x39,0x83,0x38,}}, {0x2EB2,4,{0x81,0x39,0x83,0x39,}}, {0x2EB3,2,{0xFE,0x73,0x00,0x00,}}, {0x2EB4,4,{0x81,0x39,0x84,0x30,}}, {0x2EB5,4,{0x81,0x39,0x84,0x31,}}, {0x2EB6,2,{0xFE,0x74,0x00,0x00,}}, {0x2EB7,2,{0xFE,0x75,0x00,0x00,}}, {0x2EB8,4,{0x81,0x39,0x84,0x32,}}, {0x2EB9,4,{0x81,0x39,0x84,0x33,}}, {0x2EBA,4,{0x81,0x39,0x84,0x34,}}, {0x2EBB,2,{0xFE,0x79,0x00,0x00,}}, {0x2EBC,4,{0x81,0x39,0x84,0x35,}}, {0x2EBD,4,{0x81,0x39,0x84,0x36,}}, {0x2EBE,4,{0x81,0x39,0x84,0x37,}}, {0x2EBF,4,{0x81,0x39,0x84,0x38,}}, {0x2EC0,4,{0x81,0x39,0x84,0x39,}}, {0x2EC1,4,{0x81,0x39,0x85,0x30,}}, {0x2EC2,4,{0x81,0x39,0x85,0x31,}}, {0x2EC3,4,{0x81,0x39,0x85,0x32,}}, {0x2EC4,4,{0x81,0x39,0x85,0x33,}}, {0x2EC5,4,{0x81,0x39,0x85,0x34,}}, {0x2EC6,4,{0x81,0x39,0x85,0x35,}}, {0x2EC7,4,{0x81,0x39,0x85,0x36,}}, {0x2EC8,4,{0x81,0x39,0x85,0x37,}}, {0x2EC9,4,{0x81,0x39,0x85,0x38,}}, {0x2ECA,2,{0xFE,0x84,0x00,0x00,}}, {0x2ECB,4,{0x81,0x39,0x85,0x39,}}, {0x2ECC,4,{0x81,0x39,0x86,0x30,}}, {0x2ECD,4,{0x81,0x39,0x86,0x31,}}, {0x2ECE,4,{0x81,0x39,0x86,0x32,}}, {0x2ECF,4,{0x81,0x39,0x86,0x33,}}, {0x2ED0,4,{0x81,0x39,0x86,0x34,}}, {0x2ED1,4,{0x81,0x39,0x86,0x35,}}, {0x2ED2,4,{0x81,0x39,0x86,0x36,}}, {0x2ED3,4,{0x81,0x39,0x86,0x37,}}, {0x2ED4,4,{0x81,0x39,0x86,0x38,}}, {0x2ED5,4,{0x81,0x39,0x86,0x39,}}, {0x2ED6,4,{0x81,0x39,0x87,0x30,}}, {0x2ED7,4,{0x81,0x39,0x87,0x31,}}, {0x2ED8,4,{0x81,0x39,0x87,0x32,}}, {0x2ED9,4,{0x81,0x39,0x87,0x33,}}, {0x2EDA,4,{0x81,0x39,0x87,0x34,}}, {0x2EDB,4,{0x81,0x39,0x87,0x35,}}, {0x2EDC,4,{0x81,0x39,0x87,0x36,}}, {0x2EDD,4,{0x81,0x39,0x87,0x37,}}, {0x2EDE,4,{0x81,0x39,0x87,0x38,}}, {0x2EDF,4,{0x81,0x39,0x87,0x39,}}, {0x2EE0,4,{0x81,0x39,0x88,0x30,}}, {0x2EE1,4,{0x81,0x39,0x88,0x31,}}, {0x2EE2,4,{0x81,0x39,0x88,0x32,}}, {0x2EE3,4,{0x81,0x39,0x88,0x33,}}, {0x2EE4,4,{0x81,0x39,0x88,0x34,}}, {0x2EE5,4,{0x81,0x39,0x88,0x35,}}, {0x2EE6,4,{0x81,0x39,0x88,0x36,}}, {0x2EE7,4,{0x81,0x39,0x88,0x37,}}, {0x2EE8,4,{0x81,0x39,0x88,0x38,}}, {0x2EE9,4,{0x81,0x39,0x88,0x39,}}, {0x2EEA,4,{0x81,0x39,0x89,0x30,}}, {0x2EEB,4,{0x81,0x39,0x89,0x31,}}, {0x2EEC,4,{0x81,0x39,0x89,0x32,}}, {0x2EED,4,{0x81,0x39,0x89,0x33,}}, {0x2EEE,4,{0x81,0x39,0x89,0x34,}}, {0x2EEF,4,{0x81,0x39,0x89,0x35,}}, {0x2EF0,4,{0x81,0x39,0x89,0x36,}}, {0x2EF1,4,{0x81,0x39,0x89,0x37,}}, {0x2EF2,4,{0x81,0x39,0x89,0x38,}}, {0x2EF3,4,{0x81,0x39,0x89,0x39,}}, {0x2EF4,4,{0x81,0x39,0x8A,0x30,}}, {0x2EF5,4,{0x81,0x39,0x8A,0x31,}}, {0x2EF6,4,{0x81,0x39,0x8A,0x32,}}, {0x2EF7,4,{0x81,0x39,0x8A,0x33,}}, {0x2EF8,4,{0x81,0x39,0x8A,0x34,}}, {0x2EF9,4,{0x81,0x39,0x8A,0x35,}}, {0x2EFA,4,{0x81,0x39,0x8A,0x36,}}, {0x2EFB,4,{0x81,0x39,0x8A,0x37,}}, {0x2EFC,4,{0x81,0x39,0x8A,0x38,}}, {0x2EFD,4,{0x81,0x39,0x8A,0x39,}}, {0x2EFE,4,{0x81,0x39,0x8B,0x30,}}, {0x2EFF,4,{0x81,0x39,0x8B,0x31,}}, {0x2F00,4,{0x81,0x39,0x8B,0x32,}}, {0x2F01,4,{0x81,0x39,0x8B,0x33,}}, {0x2F02,4,{0x81,0x39,0x8B,0x34,}}, {0x2F03,4,{0x81,0x39,0x8B,0x35,}}, {0x2F04,4,{0x81,0x39,0x8B,0x36,}}, {0x2F05,4,{0x81,0x39,0x8B,0x37,}}, {0x2F06,4,{0x81,0x39,0x8B,0x38,}}, {0x2F07,4,{0x81,0x39,0x8B,0x39,}}, {0x2F08,4,{0x81,0x39,0x8C,0x30,}}, {0x2F09,4,{0x81,0x39,0x8C,0x31,}}, {0x2F0A,4,{0x81,0x39,0x8C,0x32,}}, {0x2F0B,4,{0x81,0x39,0x8C,0x33,}}, {0x2F0C,4,{0x81,0x39,0x8C,0x34,}}, {0x2F0D,4,{0x81,0x39,0x8C,0x35,}}, {0x2F0E,4,{0x81,0x39,0x8C,0x36,}}, {0x2F0F,4,{0x81,0x39,0x8C,0x37,}}, {0x2F10,4,{0x81,0x39,0x8C,0x38,}}, {0x2F11,4,{0x81,0x39,0x8C,0x39,}}, {0x2F12,4,{0x81,0x39,0x8D,0x30,}}, {0x2F13,4,{0x81,0x39,0x8D,0x31,}}, {0x2F14,4,{0x81,0x39,0x8D,0x32,}}, {0x2F15,4,{0x81,0x39,0x8D,0x33,}}, {0x2F16,4,{0x81,0x39,0x8D,0x34,}}, {0x2F17,4,{0x81,0x39,0x8D,0x35,}}, {0x2F18,4,{0x81,0x39,0x8D,0x36,}}, {0x2F19,4,{0x81,0x39,0x8D,0x37,}}, {0x2F1A,4,{0x81,0x39,0x8D,0x38,}}, {0x2F1B,4,{0x81,0x39,0x8D,0x39,}}, {0x2F1C,4,{0x81,0x39,0x8E,0x30,}}, {0x2F1D,4,{0x81,0x39,0x8E,0x31,}}, {0x2F1E,4,{0x81,0x39,0x8E,0x32,}}, {0x2F1F,4,{0x81,0x39,0x8E,0x33,}}, {0x2F20,4,{0x81,0x39,0x8E,0x34,}}, {0x2F21,4,{0x81,0x39,0x8E,0x35,}}, {0x2F22,4,{0x81,0x39,0x8E,0x36,}}, {0x2F23,4,{0x81,0x39,0x8E,0x37,}}, {0x2F24,4,{0x81,0x39,0x8E,0x38,}}, {0x2F25,4,{0x81,0x39,0x8E,0x39,}}, {0x2F26,4,{0x81,0x39,0x8F,0x30,}}, {0x2F27,4,{0x81,0x39,0x8F,0x31,}}, {0x2F28,4,{0x81,0x39,0x8F,0x32,}}, {0x2F29,4,{0x81,0x39,0x8F,0x33,}}, {0x2F2A,4,{0x81,0x39,0x8F,0x34,}}, {0x2F2B,4,{0x81,0x39,0x8F,0x35,}}, {0x2F2C,4,{0x81,0x39,0x8F,0x36,}}, {0x2F2D,4,{0x81,0x39,0x8F,0x37,}}, {0x2F2E,4,{0x81,0x39,0x8F,0x38,}}, {0x2F2F,4,{0x81,0x39,0x8F,0x39,}}, {0x2F30,4,{0x81,0x39,0x90,0x30,}}, {0x2F31,4,{0x81,0x39,0x90,0x31,}}, {0x2F32,4,{0x81,0x39,0x90,0x32,}}, {0x2F33,4,{0x81,0x39,0x90,0x33,}}, {0x2F34,4,{0x81,0x39,0x90,0x34,}}, {0x2F35,4,{0x81,0x39,0x90,0x35,}}, {0x2F36,4,{0x81,0x39,0x90,0x36,}}, {0x2F37,4,{0x81,0x39,0x90,0x37,}}, {0x2F38,4,{0x81,0x39,0x90,0x38,}}, {0x2F39,4,{0x81,0x39,0x90,0x39,}}, {0x2F3A,4,{0x81,0x39,0x91,0x30,}}, {0x2F3B,4,{0x81,0x39,0x91,0x31,}}, {0x2F3C,4,{0x81,0x39,0x91,0x32,}}, {0x2F3D,4,{0x81,0x39,0x91,0x33,}}, {0x2F3E,4,{0x81,0x39,0x91,0x34,}}, {0x2F3F,4,{0x81,0x39,0x91,0x35,}}, {0x2F40,4,{0x81,0x39,0x91,0x36,}}, {0x2F41,4,{0x81,0x39,0x91,0x37,}}, {0x2F42,4,{0x81,0x39,0x91,0x38,}}, {0x2F43,4,{0x81,0x39,0x91,0x39,}}, {0x2F44,4,{0x81,0x39,0x92,0x30,}}, {0x2F45,4,{0x81,0x39,0x92,0x31,}}, {0x2F46,4,{0x81,0x39,0x92,0x32,}}, {0x2F47,4,{0x81,0x39,0x92,0x33,}}, {0x2F48,4,{0x81,0x39,0x92,0x34,}}, {0x2F49,4,{0x81,0x39,0x92,0x35,}}, {0x2F4A,4,{0x81,0x39,0x92,0x36,}}, {0x2F4B,4,{0x81,0x39,0x92,0x37,}}, {0x2F4C,4,{0x81,0x39,0x92,0x38,}}, {0x2F4D,4,{0x81,0x39,0x92,0x39,}}, {0x2F4E,4,{0x81,0x39,0x93,0x30,}}, {0x2F4F,4,{0x81,0x39,0x93,0x31,}}, {0x2F50,4,{0x81,0x39,0x93,0x32,}}, {0x2F51,4,{0x81,0x39,0x93,0x33,}}, {0x2F52,4,{0x81,0x39,0x93,0x34,}}, {0x2F53,4,{0x81,0x39,0x93,0x35,}}, {0x2F54,4,{0x81,0x39,0x93,0x36,}}, {0x2F55,4,{0x81,0x39,0x93,0x37,}}, {0x2F56,4,{0x81,0x39,0x93,0x38,}}, {0x2F57,4,{0x81,0x39,0x93,0x39,}}, {0x2F58,4,{0x81,0x39,0x94,0x30,}}, {0x2F59,4,{0x81,0x39,0x94,0x31,}}, {0x2F5A,4,{0x81,0x39,0x94,0x32,}}, {0x2F5B,4,{0x81,0x39,0x94,0x33,}}, {0x2F5C,4,{0x81,0x39,0x94,0x34,}}, {0x2F5D,4,{0x81,0x39,0x94,0x35,}}, {0x2F5E,4,{0x81,0x39,0x94,0x36,}}, {0x2F5F,4,{0x81,0x39,0x94,0x37,}}, {0x2F60,4,{0x81,0x39,0x94,0x38,}}, {0x2F61,4,{0x81,0x39,0x94,0x39,}}, {0x2F62,4,{0x81,0x39,0x95,0x30,}}, {0x2F63,4,{0x81,0x39,0x95,0x31,}}, {0x2F64,4,{0x81,0x39,0x95,0x32,}}, {0x2F65,4,{0x81,0x39,0x95,0x33,}}, {0x2F66,4,{0x81,0x39,0x95,0x34,}}, {0x2F67,4,{0x81,0x39,0x95,0x35,}}, {0x2F68,4,{0x81,0x39,0x95,0x36,}}, {0x2F69,4,{0x81,0x39,0x95,0x37,}}, {0x2F6A,4,{0x81,0x39,0x95,0x38,}}, {0x2F6B,4,{0x81,0x39,0x95,0x39,}}, {0x2F6C,4,{0x81,0x39,0x96,0x30,}}, {0x2F6D,4,{0x81,0x39,0x96,0x31,}}, {0x2F6E,4,{0x81,0x39,0x96,0x32,}}, {0x2F6F,4,{0x81,0x39,0x96,0x33,}}, {0x2F70,4,{0x81,0x39,0x96,0x34,}}, {0x2F71,4,{0x81,0x39,0x96,0x35,}}, {0x2F72,4,{0x81,0x39,0x96,0x36,}}, {0x2F73,4,{0x81,0x39,0x96,0x37,}}, {0x2F74,4,{0x81,0x39,0x96,0x38,}}, {0x2F75,4,{0x81,0x39,0x96,0x39,}}, {0x2F76,4,{0x81,0x39,0x97,0x30,}}, {0x2F77,4,{0x81,0x39,0x97,0x31,}}, {0x2F78,4,{0x81,0x39,0x97,0x32,}}, {0x2F79,4,{0x81,0x39,0x97,0x33,}}, {0x2F7A,4,{0x81,0x39,0x97,0x34,}}, {0x2F7B,4,{0x81,0x39,0x97,0x35,}}, {0x2F7C,4,{0x81,0x39,0x97,0x36,}}, {0x2F7D,4,{0x81,0x39,0x97,0x37,}}, {0x2F7E,4,{0x81,0x39,0x97,0x38,}}, {0x2F7F,4,{0x81,0x39,0x97,0x39,}}, {0x2F80,4,{0x81,0x39,0x98,0x30,}}, {0x2F81,4,{0x81,0x39,0x98,0x31,}}, {0x2F82,4,{0x81,0x39,0x98,0x32,}}, {0x2F83,4,{0x81,0x39,0x98,0x33,}}, {0x2F84,4,{0x81,0x39,0x98,0x34,}}, {0x2F85,4,{0x81,0x39,0x98,0x35,}}, {0x2F86,4,{0x81,0x39,0x98,0x36,}}, {0x2F87,4,{0x81,0x39,0x98,0x37,}}, {0x2F88,4,{0x81,0x39,0x98,0x38,}}, {0x2F89,4,{0x81,0x39,0x98,0x39,}}, {0x2F8A,4,{0x81,0x39,0x99,0x30,}}, {0x2F8B,4,{0x81,0x39,0x99,0x31,}}, {0x2F8C,4,{0x81,0x39,0x99,0x32,}}, {0x2F8D,4,{0x81,0x39,0x99,0x33,}}, {0x2F8E,4,{0x81,0x39,0x99,0x34,}}, {0x2F8F,4,{0x81,0x39,0x99,0x35,}}, {0x2F90,4,{0x81,0x39,0x99,0x36,}}, {0x2F91,4,{0x81,0x39,0x99,0x37,}}, {0x2F92,4,{0x81,0x39,0x99,0x38,}}, {0x2F93,4,{0x81,0x39,0x99,0x39,}}, {0x2F94,4,{0x81,0x39,0x9A,0x30,}}, {0x2F95,4,{0x81,0x39,0x9A,0x31,}}, {0x2F96,4,{0x81,0x39,0x9A,0x32,}}, {0x2F97,4,{0x81,0x39,0x9A,0x33,}}, {0x2F98,4,{0x81,0x39,0x9A,0x34,}}, {0x2F99,4,{0x81,0x39,0x9A,0x35,}}, {0x2F9A,4,{0x81,0x39,0x9A,0x36,}}, {0x2F9B,4,{0x81,0x39,0x9A,0x37,}}, {0x2F9C,4,{0x81,0x39,0x9A,0x38,}}, {0x2F9D,4,{0x81,0x39,0x9A,0x39,}}, {0x2F9E,4,{0x81,0x39,0x9B,0x30,}}, {0x2F9F,4,{0x81,0x39,0x9B,0x31,}}, {0x2FA0,4,{0x81,0x39,0x9B,0x32,}}, {0x2FA1,4,{0x81,0x39,0x9B,0x33,}}, {0x2FA2,4,{0x81,0x39,0x9B,0x34,}}, {0x2FA3,4,{0x81,0x39,0x9B,0x35,}}, {0x2FA4,4,{0x81,0x39,0x9B,0x36,}}, {0x2FA5,4,{0x81,0x39,0x9B,0x37,}}, {0x2FA6,4,{0x81,0x39,0x9B,0x38,}}, {0x2FA7,4,{0x81,0x39,0x9B,0x39,}}, {0x2FA8,4,{0x81,0x39,0x9C,0x30,}}, {0x2FA9,4,{0x81,0x39,0x9C,0x31,}}, {0x2FAA,4,{0x81,0x39,0x9C,0x32,}}, {0x2FAB,4,{0x81,0x39,0x9C,0x33,}}, {0x2FAC,4,{0x81,0x39,0x9C,0x34,}}, {0x2FAD,4,{0x81,0x39,0x9C,0x35,}}, {0x2FAE,4,{0x81,0x39,0x9C,0x36,}}, {0x2FAF,4,{0x81,0x39,0x9C,0x37,}}, {0x2FB0,4,{0x81,0x39,0x9C,0x38,}}, {0x2FB1,4,{0x81,0x39,0x9C,0x39,}}, {0x2FB2,4,{0x81,0x39,0x9D,0x30,}}, {0x2FB3,4,{0x81,0x39,0x9D,0x31,}}, {0x2FB4,4,{0x81,0x39,0x9D,0x32,}}, {0x2FB5,4,{0x81,0x39,0x9D,0x33,}}, {0x2FB6,4,{0x81,0x39,0x9D,0x34,}}, {0x2FB7,4,{0x81,0x39,0x9D,0x35,}}, {0x2FB8,4,{0x81,0x39,0x9D,0x36,}}, {0x2FB9,4,{0x81,0x39,0x9D,0x37,}}, {0x2FBA,4,{0x81,0x39,0x9D,0x38,}}, {0x2FBB,4,{0x81,0x39,0x9D,0x39,}}, {0x2FBC,4,{0x81,0x39,0x9E,0x30,}}, {0x2FBD,4,{0x81,0x39,0x9E,0x31,}}, {0x2FBE,4,{0x81,0x39,0x9E,0x32,}}, {0x2FBF,4,{0x81,0x39,0x9E,0x33,}}, {0x2FC0,4,{0x81,0x39,0x9E,0x34,}}, {0x2FC1,4,{0x81,0x39,0x9E,0x35,}}, {0x2FC2,4,{0x81,0x39,0x9E,0x36,}}, {0x2FC3,4,{0x81,0x39,0x9E,0x37,}}, {0x2FC4,4,{0x81,0x39,0x9E,0x38,}}, {0x2FC5,4,{0x81,0x39,0x9E,0x39,}}, {0x2FC6,4,{0x81,0x39,0x9F,0x30,}}, {0x2FC7,4,{0x81,0x39,0x9F,0x31,}}, {0x2FC8,4,{0x81,0x39,0x9F,0x32,}}, {0x2FC9,4,{0x81,0x39,0x9F,0x33,}}, {0x2FCA,4,{0x81,0x39,0x9F,0x34,}}, {0x2FCB,4,{0x81,0x39,0x9F,0x35,}}, {0x2FCC,4,{0x81,0x39,0x9F,0x36,}}, {0x2FCD,4,{0x81,0x39,0x9F,0x37,}}, {0x2FCE,4,{0x81,0x39,0x9F,0x38,}}, {0x2FCF,4,{0x81,0x39,0x9F,0x39,}}, {0x2FD0,4,{0x81,0x39,0xA0,0x30,}}, {0x2FD1,4,{0x81,0x39,0xA0,0x31,}}, {0x2FD2,4,{0x81,0x39,0xA0,0x32,}}, {0x2FD3,4,{0x81,0x39,0xA0,0x33,}}, {0x2FD4,4,{0x81,0x39,0xA0,0x34,}}, {0x2FD5,4,{0x81,0x39,0xA0,0x35,}}, {0x2FD6,4,{0x81,0x39,0xA0,0x36,}}, {0x2FD7,4,{0x81,0x39,0xA0,0x37,}}, {0x2FD8,4,{0x81,0x39,0xA0,0x38,}}, {0x2FD9,4,{0x81,0x39,0xA0,0x39,}}, {0x2FDA,4,{0x81,0x39,0xA1,0x30,}}, {0x2FDB,4,{0x81,0x39,0xA1,0x31,}}, {0x2FDC,4,{0x81,0x39,0xA1,0x32,}}, {0x2FDD,4,{0x81,0x39,0xA1,0x33,}}, {0x2FDE,4,{0x81,0x39,0xA1,0x34,}}, {0x2FDF,4,{0x81,0x39,0xA1,0x35,}}, {0x2FE0,4,{0x81,0x39,0xA1,0x36,}}, {0x2FE1,4,{0x81,0x39,0xA1,0x37,}}, {0x2FE2,4,{0x81,0x39,0xA1,0x38,}}, {0x2FE3,4,{0x81,0x39,0xA1,0x39,}}, {0x2FE4,4,{0x81,0x39,0xA2,0x30,}}, {0x2FE5,4,{0x81,0x39,0xA2,0x31,}}, {0x2FE6,4,{0x81,0x39,0xA2,0x32,}}, {0x2FE7,4,{0x81,0x39,0xA2,0x33,}}, {0x2FE8,4,{0x81,0x39,0xA2,0x34,}}, {0x2FE9,4,{0x81,0x39,0xA2,0x35,}}, {0x2FEA,4,{0x81,0x39,0xA2,0x36,}}, {0x2FEB,4,{0x81,0x39,0xA2,0x37,}}, {0x2FEC,4,{0x81,0x39,0xA2,0x38,}}, {0x2FED,4,{0x81,0x39,0xA2,0x39,}}, {0x2FEE,4,{0x81,0x39,0xA3,0x30,}}, {0x2FEF,4,{0x81,0x39,0xA3,0x31,}}, {0x2FF0,2,{0xA9,0x8A,0x00,0x00,}}, {0x2FF1,2,{0xA9,0x8B,0x00,0x00,}}, {0x2FF2,2,{0xA9,0x8C,0x00,0x00,}}, {0x2FF3,2,{0xA9,0x8D,0x00,0x00,}}, {0x2FF4,2,{0xA9,0x8E,0x00,0x00,}}, {0x2FF5,2,{0xA9,0x8F,0x00,0x00,}}, {0x2FF6,2,{0xA9,0x90,0x00,0x00,}}, {0x2FF7,2,{0xA9,0x91,0x00,0x00,}}, {0x2FF8,2,{0xA9,0x92,0x00,0x00,}}, {0x2FF9,2,{0xA9,0x93,0x00,0x00,}}, {0x2FFA,2,{0xA9,0x94,0x00,0x00,}}, {0x2FFB,2,{0xA9,0x95,0x00,0x00,}}, {0x2FFC,4,{0x81,0x39,0xA3,0x32,}}, {0x2FFD,4,{0x81,0x39,0xA3,0x33,}}, {0x2FFE,4,{0x81,0x39,0xA3,0x34,}}, {0x2FFF,4,{0x81,0x39,0xA3,0x35,}}, {0x3000,2,{0xA1,0xA1,0x00,0x00,}}, {0x3001,2,{0xA1,0xA2,0x00,0x00,}}, {0x3002,2,{0xA1,0xA3,0x00,0x00,}}, {0x3003,2,{0xA1,0xA8,0x00,0x00,}}, {0x3004,4,{0x81,0x39,0xA3,0x36,}}, {0x3005,2,{0xA1,0xA9,0x00,0x00,}}, {0x3006,2,{0xA9,0x65,0x00,0x00,}}, {0x3007,2,{0xA9,0x96,0x00,0x00,}}, {0x3008,2,{0xA1,0xB4,0x00,0x00,}}, {0x3009,2,{0xA1,0xB5,0x00,0x00,}}, {0x300A,2,{0xA1,0xB6,0x00,0x00,}}, {0x300B,2,{0xA1,0xB7,0x00,0x00,}}, {0x300C,2,{0xA1,0xB8,0x00,0x00,}}, {0x300D,2,{0xA1,0xB9,0x00,0x00,}}, {0x300E,2,{0xA1,0xBA,0x00,0x00,}}, {0x300F,2,{0xA1,0xBB,0x00,0x00,}}, {0x3010,2,{0xA1,0xBE,0x00,0x00,}}, {0x3011,2,{0xA1,0xBF,0x00,0x00,}}, {0x3012,2,{0xA8,0x93,0x00,0x00,}}, {0x3013,2,{0xA1,0xFE,0x00,0x00,}}, {0x3014,2,{0xA1,0xB2,0x00,0x00,}}, {0x3015,2,{0xA1,0xB3,0x00,0x00,}}, {0x3016,2,{0xA1,0xBC,0x00,0x00,}}, {0x3017,2,{0xA1,0xBD,0x00,0x00,}}, {0x3018,4,{0x81,0x39,0xA3,0x37,}}, {0x3019,4,{0x81,0x39,0xA3,0x38,}}, {0x301A,4,{0x81,0x39,0xA3,0x39,}}, {0x301B,4,{0x81,0x39,0xA4,0x30,}}, {0x301C,4,{0x81,0x39,0xA4,0x31,}}, {0x301D,2,{0xA8,0x94,0x00,0x00,}}, {0x301E,2,{0xA8,0x95,0x00,0x00,}}, {0x301F,4,{0x81,0x39,0xA4,0x32,}}, {0x3020,4,{0x81,0x39,0xA4,0x33,}}, {0x3021,2,{0xA9,0x40,0x00,0x00,}}, {0x3022,2,{0xA9,0x41,0x00,0x00,}}, {0x3023,2,{0xA9,0x42,0x00,0x00,}}, {0x3024,2,{0xA9,0x43,0x00,0x00,}}, {0x3025,2,{0xA9,0x44,0x00,0x00,}}, {0x3026,2,{0xA9,0x45,0x00,0x00,}}, {0x3027,2,{0xA9,0x46,0x00,0x00,}}, {0x3028,2,{0xA9,0x47,0x00,0x00,}}, {0x3029,2,{0xA9,0x48,0x00,0x00,}}, {0x302A,4,{0x81,0x39,0xA4,0x34,}}, {0x302B,4,{0x81,0x39,0xA4,0x35,}}, {0x302C,4,{0x81,0x39,0xA4,0x36,}}, {0x302D,4,{0x81,0x39,0xA4,0x37,}}, {0x302E,4,{0x81,0x39,0xA4,0x38,}}, {0x302F,4,{0x81,0x39,0xA4,0x39,}}, {0x3030,4,{0x81,0x39,0xA5,0x30,}}, {0x3031,4,{0x81,0x39,0xA5,0x31,}}, {0x3032,4,{0x81,0x39,0xA5,0x32,}}, {0x3033,4,{0x81,0x39,0xA5,0x33,}}, {0x3034,4,{0x81,0x39,0xA5,0x34,}}, {0x3035,4,{0x81,0x39,0xA5,0x35,}}, {0x3036,4,{0x81,0x39,0xA5,0x36,}}, {0x3037,4,{0x81,0x39,0xA5,0x37,}}, {0x3038,4,{0x81,0x39,0xA5,0x38,}}, {0x3039,4,{0x81,0x39,0xA5,0x39,}}, {0x303A,4,{0x81,0x39,0xA6,0x30,}}, {0x303B,4,{0x81,0x39,0xA6,0x31,}}, {0x303C,4,{0x81,0x39,0xA6,0x32,}}, {0x303D,4,{0x81,0x39,0xA6,0x33,}}, {0x303E,2,{0xA9,0x89,0x00,0x00,}}, {0x303F,4,{0x81,0x39,0xA6,0x34,}}, {0x3040,4,{0x81,0x39,0xA6,0x35,}}, {0x3041,2,{0xA4,0xA1,0x00,0x00,}}, {0x3042,2,{0xA4,0xA2,0x00,0x00,}}, {0x3043,2,{0xA4,0xA3,0x00,0x00,}}, {0x3044,2,{0xA4,0xA4,0x00,0x00,}}, {0x3045,2,{0xA4,0xA5,0x00,0x00,}}, {0x3046,2,{0xA4,0xA6,0x00,0x00,}}, {0x3047,2,{0xA4,0xA7,0x00,0x00,}}, {0x3048,2,{0xA4,0xA8,0x00,0x00,}}, {0x3049,2,{0xA4,0xA9,0x00,0x00,}}, {0x304A,2,{0xA4,0xAA,0x00,0x00,}}, {0x304B,2,{0xA4,0xAB,0x00,0x00,}}, {0x304C,2,{0xA4,0xAC,0x00,0x00,}}, {0x304D,2,{0xA4,0xAD,0x00,0x00,}}, {0x304E,2,{0xA4,0xAE,0x00,0x00,}}, {0x304F,2,{0xA4,0xAF,0x00,0x00,}}, {0x3050,2,{0xA4,0xB0,0x00,0x00,}}, {0x3051,2,{0xA4,0xB1,0x00,0x00,}}, {0x3052,2,{0xA4,0xB2,0x00,0x00,}}, {0x3053,2,{0xA4,0xB3,0x00,0x00,}}, {0x3054,2,{0xA4,0xB4,0x00,0x00,}}, {0x3055,2,{0xA4,0xB5,0x00,0x00,}}, {0x3056,2,{0xA4,0xB6,0x00,0x00,}}, {0x3057,2,{0xA4,0xB7,0x00,0x00,}}, {0x3058,2,{0xA4,0xB8,0x00,0x00,}}, {0x3059,2,{0xA4,0xB9,0x00,0x00,}}, {0x305A,2,{0xA4,0xBA,0x00,0x00,}}, {0x305B,2,{0xA4,0xBB,0x00,0x00,}}, {0x305C,2,{0xA4,0xBC,0x00,0x00,}}, {0x305D,2,{0xA4,0xBD,0x00,0x00,}}, {0x305E,2,{0xA4,0xBE,0x00,0x00,}}, {0x305F,2,{0xA4,0xBF,0x00,0x00,}}, {0x3060,2,{0xA4,0xC0,0x00,0x00,}}, {0x3061,2,{0xA4,0xC1,0x00,0x00,}}, {0x3062,2,{0xA4,0xC2,0x00,0x00,}}, {0x3063,2,{0xA4,0xC3,0x00,0x00,}}, {0x3064,2,{0xA4,0xC4,0x00,0x00,}}, {0x3065,2,{0xA4,0xC5,0x00,0x00,}}, {0x3066,2,{0xA4,0xC6,0x00,0x00,}}, {0x3067,2,{0xA4,0xC7,0x00,0x00,}}, {0x3068,2,{0xA4,0xC8,0x00,0x00,}}, {0x3069,2,{0xA4,0xC9,0x00,0x00,}}, {0x306A,2,{0xA4,0xCA,0x00,0x00,}}, {0x306B,2,{0xA4,0xCB,0x00,0x00,}}, {0x306C,2,{0xA4,0xCC,0x00,0x00,}}, {0x306D,2,{0xA4,0xCD,0x00,0x00,}}, {0x306E,2,{0xA4,0xCE,0x00,0x00,}}, {0x306F,2,{0xA4,0xCF,0x00,0x00,}}, {0x3070,2,{0xA4,0xD0,0x00,0x00,}}, {0x3071,2,{0xA4,0xD1,0x00,0x00,}}, {0x3072,2,{0xA4,0xD2,0x00,0x00,}}, {0x3073,2,{0xA4,0xD3,0x00,0x00,}}, {0x3074,2,{0xA4,0xD4,0x00,0x00,}}, {0x3075,2,{0xA4,0xD5,0x00,0x00,}}, {0x3076,2,{0xA4,0xD6,0x00,0x00,}}, {0x3077,2,{0xA4,0xD7,0x00,0x00,}}, {0x3078,2,{0xA4,0xD8,0x00,0x00,}}, {0x3079,2,{0xA4,0xD9,0x00,0x00,}}, {0x307A,2,{0xA4,0xDA,0x00,0x00,}}, {0x307B,2,{0xA4,0xDB,0x00,0x00,}}, {0x307C,2,{0xA4,0xDC,0x00,0x00,}}, {0x307D,2,{0xA4,0xDD,0x00,0x00,}}, {0x307E,2,{0xA4,0xDE,0x00,0x00,}}, {0x307F,2,{0xA4,0xDF,0x00,0x00,}}, {0x3080,2,{0xA4,0xE0,0x00,0x00,}}, {0x3081,2,{0xA4,0xE1,0x00,0x00,}}, {0x3082,2,{0xA4,0xE2,0x00,0x00,}}, {0x3083,2,{0xA4,0xE3,0x00,0x00,}}, {0x3084,2,{0xA4,0xE4,0x00,0x00,}}, {0x3085,2,{0xA4,0xE5,0x00,0x00,}}, {0x3086,2,{0xA4,0xE6,0x00,0x00,}}, {0x3087,2,{0xA4,0xE7,0x00,0x00,}}, {0x3088,2,{0xA4,0xE8,0x00,0x00,}}, {0x3089,2,{0xA4,0xE9,0x00,0x00,}}, {0x308A,2,{0xA4,0xEA,0x00,0x00,}}, {0x308B,2,{0xA4,0xEB,0x00,0x00,}}, {0x308C,2,{0xA4,0xEC,0x00,0x00,}}, {0x308D,2,{0xA4,0xED,0x00,0x00,}}, {0x308E,2,{0xA4,0xEE,0x00,0x00,}}, {0x308F,2,{0xA4,0xEF,0x00,0x00,}}, {0x3090,2,{0xA4,0xF0,0x00,0x00,}}, {0x3091,2,{0xA4,0xF1,0x00,0x00,}}, {0x3092,2,{0xA4,0xF2,0x00,0x00,}}, {0x3093,2,{0xA4,0xF3,0x00,0x00,}}, {0x3094,4,{0x81,0x39,0xA6,0x36,}}, {0x3095,4,{0x81,0x39,0xA6,0x37,}}, {0x3096,4,{0x81,0x39,0xA6,0x38,}}, {0x3097,4,{0x81,0x39,0xA6,0x39,}}, {0x3098,4,{0x81,0x39,0xA7,0x30,}}, {0x3099,4,{0x81,0x39,0xA7,0x31,}}, {0x309A,4,{0x81,0x39,0xA7,0x32,}}, {0x309B,2,{0xA9,0x61,0x00,0x00,}}, {0x309C,2,{0xA9,0x62,0x00,0x00,}}, {0x309D,2,{0xA9,0x66,0x00,0x00,}}, {0x309E,2,{0xA9,0x67,0x00,0x00,}}, {0x309F,4,{0x81,0x39,0xA7,0x33,}}, {0x30A0,4,{0x81,0x39,0xA7,0x34,}}, {0x30A1,2,{0xA5,0xA1,0x00,0x00,}}, {0x30A2,2,{0xA5,0xA2,0x00,0x00,}}, {0x30A3,2,{0xA5,0xA3,0x00,0x00,}}, {0x30A4,2,{0xA5,0xA4,0x00,0x00,}}, {0x30A5,2,{0xA5,0xA5,0x00,0x00,}}, {0x30A6,2,{0xA5,0xA6,0x00,0x00,}}, {0x30A7,2,{0xA5,0xA7,0x00,0x00,}}, {0x30A8,2,{0xA5,0xA8,0x00,0x00,}}, {0x30A9,2,{0xA5,0xA9,0x00,0x00,}}, {0x30AA,2,{0xA5,0xAA,0x00,0x00,}}, {0x30AB,2,{0xA5,0xAB,0x00,0x00,}}, {0x30AC,2,{0xA5,0xAC,0x00,0x00,}}, {0x30AD,2,{0xA5,0xAD,0x00,0x00,}}, {0x30AE,2,{0xA5,0xAE,0x00,0x00,}}, {0x30AF,2,{0xA5,0xAF,0x00,0x00,}}, {0x30B0,2,{0xA5,0xB0,0x00,0x00,}}, {0x30B1,2,{0xA5,0xB1,0x00,0x00,}}, {0x30B2,2,{0xA5,0xB2,0x00,0x00,}}, {0x30B3,2,{0xA5,0xB3,0x00,0x00,}}, {0x30B4,2,{0xA5,0xB4,0x00,0x00,}}, {0x30B5,2,{0xA5,0xB5,0x00,0x00,}}, {0x30B6,2,{0xA5,0xB6,0x00,0x00,}}, {0x30B7,2,{0xA5,0xB7,0x00,0x00,}}, {0x30B8,2,{0xA5,0xB8,0x00,0x00,}}, {0x30B9,2,{0xA5,0xB9,0x00,0x00,}}, {0x30BA,2,{0xA5,0xBA,0x00,0x00,}}, {0x30BB,2,{0xA5,0xBB,0x00,0x00,}}, {0x30BC,2,{0xA5,0xBC,0x00,0x00,}}, {0x30BD,2,{0xA5,0xBD,0x00,0x00,}}, {0x30BE,2,{0xA5,0xBE,0x00,0x00,}}, {0x30BF,2,{0xA5,0xBF,0x00,0x00,}}, {0x30C0,2,{0xA5,0xC0,0x00,0x00,}}, {0x30C1,2,{0xA5,0xC1,0x00,0x00,}}, {0x30C2,2,{0xA5,0xC2,0x00,0x00,}}, {0x30C3,2,{0xA5,0xC3,0x00,0x00,}}, {0x30C4,2,{0xA5,0xC4,0x00,0x00,}}, {0x30C5,2,{0xA5,0xC5,0x00,0x00,}}, {0x30C6,2,{0xA5,0xC6,0x00,0x00,}}, {0x30C7,2,{0xA5,0xC7,0x00,0x00,}}, {0x30C8,2,{0xA5,0xC8,0x00,0x00,}}, {0x30C9,2,{0xA5,0xC9,0x00,0x00,}}, {0x30CA,2,{0xA5,0xCA,0x00,0x00,}}, {0x30CB,2,{0xA5,0xCB,0x00,0x00,}}, {0x30CC,2,{0xA5,0xCC,0x00,0x00,}}, {0x30CD,2,{0xA5,0xCD,0x00,0x00,}}, {0x30CE,2,{0xA5,0xCE,0x00,0x00,}}, {0x30CF,2,{0xA5,0xCF,0x00,0x00,}}, {0x30D0,2,{0xA5,0xD0,0x00,0x00,}}, {0x30D1,2,{0xA5,0xD1,0x00,0x00,}}, {0x30D2,2,{0xA5,0xD2,0x00,0x00,}}, {0x30D3,2,{0xA5,0xD3,0x00,0x00,}}, {0x30D4,2,{0xA5,0xD4,0x00,0x00,}}, {0x30D5,2,{0xA5,0xD5,0x00,0x00,}}, {0x30D6,2,{0xA5,0xD6,0x00,0x00,}}, {0x30D7,2,{0xA5,0xD7,0x00,0x00,}}, {0x30D8,2,{0xA5,0xD8,0x00,0x00,}}, {0x30D9,2,{0xA5,0xD9,0x00,0x00,}}, {0x30DA,2,{0xA5,0xDA,0x00,0x00,}}, {0x30DB,2,{0xA5,0xDB,0x00,0x00,}}, {0x30DC,2,{0xA5,0xDC,0x00,0x00,}}, {0x30DD,2,{0xA5,0xDD,0x00,0x00,}}, {0x30DE,2,{0xA5,0xDE,0x00,0x00,}}, {0x30DF,2,{0xA5,0xDF,0x00,0x00,}}, {0x30E0,2,{0xA5,0xE0,0x00,0x00,}}, {0x30E1,2,{0xA5,0xE1,0x00,0x00,}}, {0x30E2,2,{0xA5,0xE2,0x00,0x00,}}, {0x30E3,2,{0xA5,0xE3,0x00,0x00,}}, {0x30E4,2,{0xA5,0xE4,0x00,0x00,}}, {0x30E5,2,{0xA5,0xE5,0x00,0x00,}}, {0x30E6,2,{0xA5,0xE6,0x00,0x00,}}, {0x30E7,2,{0xA5,0xE7,0x00,0x00,}}, {0x30E8,2,{0xA5,0xE8,0x00,0x00,}}, {0x30E9,2,{0xA5,0xE9,0x00,0x00,}}, {0x30EA,2,{0xA5,0xEA,0x00,0x00,}}, {0x30EB,2,{0xA5,0xEB,0x00,0x00,}}, {0x30EC,2,{0xA5,0xEC,0x00,0x00,}}, {0x30ED,2,{0xA5,0xED,0x00,0x00,}}, {0x30EE,2,{0xA5,0xEE,0x00,0x00,}}, {0x30EF,2,{0xA5,0xEF,0x00,0x00,}}, {0x30F0,2,{0xA5,0xF0,0x00,0x00,}}, {0x30F1,2,{0xA5,0xF1,0x00,0x00,}}, {0x30F2,2,{0xA5,0xF2,0x00,0x00,}}, {0x30F3,2,{0xA5,0xF3,0x00,0x00,}}, {0x30F4,2,{0xA5,0xF4,0x00,0x00,}}, {0x30F5,2,{0xA5,0xF5,0x00,0x00,}}, {0x30F6,2,{0xA5,0xF6,0x00,0x00,}}, {0x30F7,4,{0x81,0x39,0xA7,0x35,}}, {0x30F8,4,{0x81,0x39,0xA7,0x36,}}, {0x30F9,4,{0x81,0x39,0xA7,0x37,}}, {0x30FA,4,{0x81,0x39,0xA7,0x38,}}, {0x30FB,4,{0x81,0x39,0xA7,0x39,}}, {0x30FC,2,{0xA9,0x60,0x00,0x00,}}, {0x30FD,2,{0xA9,0x63,0x00,0x00,}}, {0x30FE,2,{0xA9,0x64,0x00,0x00,}}, {0x30FF,4,{0x81,0x39,0xA8,0x30,}}, {0x3100,4,{0x81,0x39,0xA8,0x31,}}, {0x3101,4,{0x81,0x39,0xA8,0x32,}}, {0x3102,4,{0x81,0x39,0xA8,0x33,}}, {0x3103,4,{0x81,0x39,0xA8,0x34,}}, {0x3104,4,{0x81,0x39,0xA8,0x35,}}, {0x3105,2,{0xA8,0xC5,0x00,0x00,}}, {0x3106,2,{0xA8,0xC6,0x00,0x00,}}, {0x3107,2,{0xA8,0xC7,0x00,0x00,}}, {0x3108,2,{0xA8,0xC8,0x00,0x00,}}, {0x3109,2,{0xA8,0xC9,0x00,0x00,}}, {0x310A,2,{0xA8,0xCA,0x00,0x00,}}, {0x310B,2,{0xA8,0xCB,0x00,0x00,}}, {0x310C,2,{0xA8,0xCC,0x00,0x00,}}, {0x310D,2,{0xA8,0xCD,0x00,0x00,}}, {0x310E,2,{0xA8,0xCE,0x00,0x00,}}, {0x310F,2,{0xA8,0xCF,0x00,0x00,}}, {0x3110,2,{0xA8,0xD0,0x00,0x00,}}, {0x3111,2,{0xA8,0xD1,0x00,0x00,}}, {0x3112,2,{0xA8,0xD2,0x00,0x00,}}, {0x3113,2,{0xA8,0xD3,0x00,0x00,}}, {0x3114,2,{0xA8,0xD4,0x00,0x00,}}, {0x3115,2,{0xA8,0xD5,0x00,0x00,}}, {0x3116,2,{0xA8,0xD6,0x00,0x00,}}, {0x3117,2,{0xA8,0xD7,0x00,0x00,}}, {0x3118,2,{0xA8,0xD8,0x00,0x00,}}, {0x3119,2,{0xA8,0xD9,0x00,0x00,}}, {0x311A,2,{0xA8,0xDA,0x00,0x00,}}, {0x311B,2,{0xA8,0xDB,0x00,0x00,}}, {0x311C,2,{0xA8,0xDC,0x00,0x00,}}, {0x311D,2,{0xA8,0xDD,0x00,0x00,}}, {0x311E,2,{0xA8,0xDE,0x00,0x00,}}, {0x311F,2,{0xA8,0xDF,0x00,0x00,}}, {0x3120,2,{0xA8,0xE0,0x00,0x00,}}, {0x3121,2,{0xA8,0xE1,0x00,0x00,}}, {0x3122,2,{0xA8,0xE2,0x00,0x00,}}, {0x3123,2,{0xA8,0xE3,0x00,0x00,}}, {0x3124,2,{0xA8,0xE4,0x00,0x00,}}, {0x3125,2,{0xA8,0xE5,0x00,0x00,}}, {0x3126,2,{0xA8,0xE6,0x00,0x00,}}, {0x3127,2,{0xA8,0xE7,0x00,0x00,}}, {0x3128,2,{0xA8,0xE8,0x00,0x00,}}, {0x3129,2,{0xA8,0xE9,0x00,0x00,}}, {0x312A,4,{0x81,0x39,0xA8,0x36,}}, {0x312B,4,{0x81,0x39,0xA8,0x37,}}, {0x312C,4,{0x81,0x39,0xA8,0x38,}}, {0x312D,4,{0x81,0x39,0xA8,0x39,}}, {0x312E,4,{0x81,0x39,0xA9,0x30,}}, {0x312F,4,{0x81,0x39,0xA9,0x31,}}, {0x3130,4,{0x81,0x39,0xA9,0x32,}}, {0x3131,4,{0x81,0x39,0xA9,0x33,}}, {0x3132,4,{0x81,0x39,0xA9,0x34,}}, {0x3133,4,{0x81,0x39,0xA9,0x35,}}, {0x3134,4,{0x81,0x39,0xA9,0x36,}}, {0x3135,4,{0x81,0x39,0xA9,0x37,}}, {0x3136,4,{0x81,0x39,0xA9,0x38,}}, {0x3137,4,{0x81,0x39,0xA9,0x39,}}, {0x3138,4,{0x81,0x39,0xAA,0x30,}}, {0x3139,4,{0x81,0x39,0xAA,0x31,}}, {0x313A,4,{0x81,0x39,0xAA,0x32,}}, {0x313B,4,{0x81,0x39,0xAA,0x33,}}, {0x313C,4,{0x81,0x39,0xAA,0x34,}}, {0x313D,4,{0x81,0x39,0xAA,0x35,}}, {0x313E,4,{0x81,0x39,0xAA,0x36,}}, {0x313F,4,{0x81,0x39,0xAA,0x37,}}, {0x3140,4,{0x81,0x39,0xAA,0x38,}}, {0x3141,4,{0x81,0x39,0xAA,0x39,}}, {0x3142,4,{0x81,0x39,0xAB,0x30,}}, {0x3143,4,{0x81,0x39,0xAB,0x31,}}, {0x3144,4,{0x81,0x39,0xAB,0x32,}}, {0x3145,4,{0x81,0x39,0xAB,0x33,}}, {0x3146,4,{0x81,0x39,0xAB,0x34,}}, {0x3147,4,{0x81,0x39,0xAB,0x35,}}, {0x3148,4,{0x81,0x39,0xAB,0x36,}}, {0x3149,4,{0x81,0x39,0xAB,0x37,}}, {0x314A,4,{0x81,0x39,0xAB,0x38,}}, {0x314B,4,{0x81,0x39,0xAB,0x39,}}, {0x314C,4,{0x81,0x39,0xAC,0x30,}}, {0x314D,4,{0x81,0x39,0xAC,0x31,}}, {0x314E,4,{0x81,0x39,0xAC,0x32,}}, {0x314F,4,{0x81,0x39,0xAC,0x33,}}, {0x3150,4,{0x81,0x39,0xAC,0x34,}}, {0x3151,4,{0x81,0x39,0xAC,0x35,}}, {0x3152,4,{0x81,0x39,0xAC,0x36,}}, {0x3153,4,{0x81,0x39,0xAC,0x37,}}, {0x3154,4,{0x81,0x39,0xAC,0x38,}}, {0x3155,4,{0x81,0x39,0xAC,0x39,}}, {0x3156,4,{0x81,0x39,0xAD,0x30,}}, {0x3157,4,{0x81,0x39,0xAD,0x31,}}, {0x3158,4,{0x81,0x39,0xAD,0x32,}}, {0x3159,4,{0x81,0x39,0xAD,0x33,}}, {0x315A,4,{0x81,0x39,0xAD,0x34,}}, {0x315B,4,{0x81,0x39,0xAD,0x35,}}, {0x315C,4,{0x81,0x39,0xAD,0x36,}}, {0x315D,4,{0x81,0x39,0xAD,0x37,}}, {0x315E,4,{0x81,0x39,0xAD,0x38,}}, {0x315F,4,{0x81,0x39,0xAD,0x39,}}, {0x3160,4,{0x81,0x39,0xAE,0x30,}}, {0x3161,4,{0x81,0x39,0xAE,0x31,}}, {0x3162,4,{0x81,0x39,0xAE,0x32,}}, {0x3163,4,{0x81,0x39,0xAE,0x33,}}, {0x3164,4,{0x81,0x39,0xAE,0x34,}}, {0x3165,4,{0x81,0x39,0xAE,0x35,}}, {0x3166,4,{0x81,0x39,0xAE,0x36,}}, {0x3167,4,{0x81,0x39,0xAE,0x37,}}, {0x3168,4,{0x81,0x39,0xAE,0x38,}}, {0x3169,4,{0x81,0x39,0xAE,0x39,}}, {0x316A,4,{0x81,0x39,0xAF,0x30,}}, {0x316B,4,{0x81,0x39,0xAF,0x31,}}, {0x316C,4,{0x81,0x39,0xAF,0x32,}}, {0x316D,4,{0x81,0x39,0xAF,0x33,}}, {0x316E,4,{0x81,0x39,0xAF,0x34,}}, {0x316F,4,{0x81,0x39,0xAF,0x35,}}, {0x3170,4,{0x81,0x39,0xAF,0x36,}}, {0x3171,4,{0x81,0x39,0xAF,0x37,}}, {0x3172,4,{0x81,0x39,0xAF,0x38,}}, {0x3173,4,{0x81,0x39,0xAF,0x39,}}, {0x3174,4,{0x81,0x39,0xB0,0x30,}}, {0x3175,4,{0x81,0x39,0xB0,0x31,}}, {0x3176,4,{0x81,0x39,0xB0,0x32,}}, {0x3177,4,{0x81,0x39,0xB0,0x33,}}, {0x3178,4,{0x81,0x39,0xB0,0x34,}}, {0x3179,4,{0x81,0x39,0xB0,0x35,}}, {0x317A,4,{0x81,0x39,0xB0,0x36,}}, {0x317B,4,{0x81,0x39,0xB0,0x37,}}, {0x317C,4,{0x81,0x39,0xB0,0x38,}}, {0x317D,4,{0x81,0x39,0xB0,0x39,}}, {0x317E,4,{0x81,0x39,0xB1,0x30,}}, {0x317F,4,{0x81,0x39,0xB1,0x31,}}, {0x3180,4,{0x81,0x39,0xB1,0x32,}}, {0x3181,4,{0x81,0x39,0xB1,0x33,}}, {0x3182,4,{0x81,0x39,0xB1,0x34,}}, {0x3183,4,{0x81,0x39,0xB1,0x35,}}, {0x3184,4,{0x81,0x39,0xB1,0x36,}}, {0x3185,4,{0x81,0x39,0xB1,0x37,}}, {0x3186,4,{0x81,0x39,0xB1,0x38,}}, {0x3187,4,{0x81,0x39,0xB1,0x39,}}, {0x3188,4,{0x81,0x39,0xB2,0x30,}}, {0x3189,4,{0x81,0x39,0xB2,0x31,}}, {0x318A,4,{0x81,0x39,0xB2,0x32,}}, {0x318B,4,{0x81,0x39,0xB2,0x33,}}, {0x318C,4,{0x81,0x39,0xB2,0x34,}}, {0x318D,4,{0x81,0x39,0xB2,0x35,}}, {0x318E,4,{0x81,0x39,0xB2,0x36,}}, {0x318F,4,{0x81,0x39,0xB2,0x37,}}, {0x3190,4,{0x81,0x39,0xB2,0x38,}}, {0x3191,4,{0x81,0x39,0xB2,0x39,}}, {0x3192,4,{0x81,0x39,0xB3,0x30,}}, {0x3193,4,{0x81,0x39,0xB3,0x31,}}, {0x3194,4,{0x81,0x39,0xB3,0x32,}}, {0x3195,4,{0x81,0x39,0xB3,0x33,}}, {0x3196,4,{0x81,0x39,0xB3,0x34,}}, {0x3197,4,{0x81,0x39,0xB3,0x35,}}, {0x3198,4,{0x81,0x39,0xB3,0x36,}}, {0x3199,4,{0x81,0x39,0xB3,0x37,}}, {0x319A,4,{0x81,0x39,0xB3,0x38,}}, {0x319B,4,{0x81,0x39,0xB3,0x39,}}, {0x319C,4,{0x81,0x39,0xB4,0x30,}}, {0x319D,4,{0x81,0x39,0xB4,0x31,}}, {0x319E,4,{0x81,0x39,0xB4,0x32,}}, {0x319F,4,{0x81,0x39,0xB4,0x33,}}, {0x31A0,4,{0x81,0x39,0xB4,0x34,}}, {0x31A1,4,{0x81,0x39,0xB4,0x35,}}, {0x31A2,4,{0x81,0x39,0xB4,0x36,}}, {0x31A3,4,{0x81,0x39,0xB4,0x37,}}, {0x31A4,4,{0x81,0x39,0xB4,0x38,}}, {0x31A5,4,{0x81,0x39,0xB4,0x39,}}, {0x31A6,4,{0x81,0x39,0xB5,0x30,}}, {0x31A7,4,{0x81,0x39,0xB5,0x31,}}, {0x31A8,4,{0x81,0x39,0xB5,0x32,}}, {0x31A9,4,{0x81,0x39,0xB5,0x33,}}, {0x31AA,4,{0x81,0x39,0xB5,0x34,}}, {0x31AB,4,{0x81,0x39,0xB5,0x35,}}, {0x31AC,4,{0x81,0x39,0xB5,0x36,}}, {0x31AD,4,{0x81,0x39,0xB5,0x37,}}, {0x31AE,4,{0x81,0x39,0xB5,0x38,}}, {0x31AF,4,{0x81,0x39,0xB5,0x39,}}, {0x31B0,4,{0x81,0x39,0xB6,0x30,}}, {0x31B1,4,{0x81,0x39,0xB6,0x31,}}, {0x31B2,4,{0x81,0x39,0xB6,0x32,}}, {0x31B3,4,{0x81,0x39,0xB6,0x33,}}, {0x31B4,4,{0x81,0x39,0xB6,0x34,}}, {0x31B5,4,{0x81,0x39,0xB6,0x35,}}, {0x31B6,4,{0x81,0x39,0xB6,0x36,}}, {0x31B7,4,{0x81,0x39,0xB6,0x37,}}, {0x31B8,4,{0x81,0x39,0xB6,0x38,}}, {0x31B9,4,{0x81,0x39,0xB6,0x39,}}, {0x31BA,4,{0x81,0x39,0xB7,0x30,}}, {0x31BB,4,{0x81,0x39,0xB7,0x31,}}, {0x31BC,4,{0x81,0x39,0xB7,0x32,}}, {0x31BD,4,{0x81,0x39,0xB7,0x33,}}, {0x31BE,4,{0x81,0x39,0xB7,0x34,}}, {0x31BF,4,{0x81,0x39,0xB7,0x35,}}, {0x31C0,4,{0x81,0x39,0xB7,0x36,}}, {0x31C1,4,{0x81,0x39,0xB7,0x37,}}, {0x31C2,4,{0x81,0x39,0xB7,0x38,}}, {0x31C3,4,{0x81,0x39,0xB7,0x39,}}, {0x31C4,4,{0x81,0x39,0xB8,0x30,}}, {0x31C5,4,{0x81,0x39,0xB8,0x31,}}, {0x31C6,4,{0x81,0x39,0xB8,0x32,}}, {0x31C7,4,{0x81,0x39,0xB8,0x33,}}, {0x31C8,4,{0x81,0x39,0xB8,0x34,}}, {0x31C9,4,{0x81,0x39,0xB8,0x35,}}, {0x31CA,4,{0x81,0x39,0xB8,0x36,}}, {0x31CB,4,{0x81,0x39,0xB8,0x37,}}, {0x31CC,4,{0x81,0x39,0xB8,0x38,}}, {0x31CD,4,{0x81,0x39,0xB8,0x39,}}, {0x31CE,4,{0x81,0x39,0xB9,0x30,}}, {0x31CF,4,{0x81,0x39,0xB9,0x31,}}, {0x31D0,4,{0x81,0x39,0xB9,0x32,}}, {0x31D1,4,{0x81,0x39,0xB9,0x33,}}, {0x31D2,4,{0x81,0x39,0xB9,0x34,}}, {0x31D3,4,{0x81,0x39,0xB9,0x35,}}, {0x31D4,4,{0x81,0x39,0xB9,0x36,}}, {0x31D5,4,{0x81,0x39,0xB9,0x37,}}, {0x31D6,4,{0x81,0x39,0xB9,0x38,}}, {0x31D7,4,{0x81,0x39,0xB9,0x39,}}, {0x31D8,4,{0x81,0x39,0xBA,0x30,}}, {0x31D9,4,{0x81,0x39,0xBA,0x31,}}, {0x31DA,4,{0x81,0x39,0xBA,0x32,}}, {0x31DB,4,{0x81,0x39,0xBA,0x33,}}, {0x31DC,4,{0x81,0x39,0xBA,0x34,}}, {0x31DD,4,{0x81,0x39,0xBA,0x35,}}, {0x31DE,4,{0x81,0x39,0xBA,0x36,}}, {0x31DF,4,{0x81,0x39,0xBA,0x37,}}, {0x31E0,4,{0x81,0x39,0xBA,0x38,}}, {0x31E1,4,{0x81,0x39,0xBA,0x39,}}, {0x31E2,4,{0x81,0x39,0xBB,0x30,}}, {0x31E3,4,{0x81,0x39,0xBB,0x31,}}, {0x31E4,4,{0x81,0x39,0xBB,0x32,}}, {0x31E5,4,{0x81,0x39,0xBB,0x33,}}, {0x31E6,4,{0x81,0x39,0xBB,0x34,}}, {0x31E7,4,{0x81,0x39,0xBB,0x35,}}, {0x31E8,4,{0x81,0x39,0xBB,0x36,}}, {0x31E9,4,{0x81,0x39,0xBB,0x37,}}, {0x31EA,4,{0x81,0x39,0xBB,0x38,}}, {0x31EB,4,{0x81,0x39,0xBB,0x39,}}, {0x31EC,4,{0x81,0x39,0xBC,0x30,}}, {0x31ED,4,{0x81,0x39,0xBC,0x31,}}, {0x31EE,4,{0x81,0x39,0xBC,0x32,}}, {0x31EF,4,{0x81,0x39,0xBC,0x33,}}, {0x31F0,4,{0x81,0x39,0xBC,0x34,}}, {0x31F1,4,{0x81,0x39,0xBC,0x35,}}, {0x31F2,4,{0x81,0x39,0xBC,0x36,}}, {0x31F3,4,{0x81,0x39,0xBC,0x37,}}, {0x31F4,4,{0x81,0x39,0xBC,0x38,}}, {0x31F5,4,{0x81,0x39,0xBC,0x39,}}, {0x31F6,4,{0x81,0x39,0xBD,0x30,}}, {0x31F7,4,{0x81,0x39,0xBD,0x31,}}, {0x31F8,4,{0x81,0x39,0xBD,0x32,}}, {0x31F9,4,{0x81,0x39,0xBD,0x33,}}, {0x31FA,4,{0x81,0x39,0xBD,0x34,}}, {0x31FB,4,{0x81,0x39,0xBD,0x35,}}, {0x31FC,4,{0x81,0x39,0xBD,0x36,}}, {0x31FD,4,{0x81,0x39,0xBD,0x37,}}, {0x31FE,4,{0x81,0x39,0xBD,0x38,}}, {0x31FF,4,{0x81,0x39,0xBD,0x39,}}, {0x3200,4,{0x81,0x39,0xBE,0x30,}}, {0x3201,4,{0x81,0x39,0xBE,0x31,}}, {0x3202,4,{0x81,0x39,0xBE,0x32,}}, {0x3203,4,{0x81,0x39,0xBE,0x33,}}, {0x3204,4,{0x81,0x39,0xBE,0x34,}}, {0x3205,4,{0x81,0x39,0xBE,0x35,}}, {0x3206,4,{0x81,0x39,0xBE,0x36,}}, {0x3207,4,{0x81,0x39,0xBE,0x37,}}, {0x3208,4,{0x81,0x39,0xBE,0x38,}}, {0x3209,4,{0x81,0x39,0xBE,0x39,}}, {0x320A,4,{0x81,0x39,0xBF,0x30,}}, {0x320B,4,{0x81,0x39,0xBF,0x31,}}, {0x320C,4,{0x81,0x39,0xBF,0x32,}}, {0x320D,4,{0x81,0x39,0xBF,0x33,}}, {0x320E,4,{0x81,0x39,0xBF,0x34,}}, {0x320F,4,{0x81,0x39,0xBF,0x35,}}, {0x3210,4,{0x81,0x39,0xBF,0x36,}}, {0x3211,4,{0x81,0x39,0xBF,0x37,}}, {0x3212,4,{0x81,0x39,0xBF,0x38,}}, {0x3213,4,{0x81,0x39,0xBF,0x39,}}, {0x3214,4,{0x81,0x39,0xC0,0x30,}}, {0x3215,4,{0x81,0x39,0xC0,0x31,}}, {0x3216,4,{0x81,0x39,0xC0,0x32,}}, {0x3217,4,{0x81,0x39,0xC0,0x33,}}, {0x3218,4,{0x81,0x39,0xC0,0x34,}}, {0x3219,4,{0x81,0x39,0xC0,0x35,}}, {0x321A,4,{0x81,0x39,0xC0,0x36,}}, {0x321B,4,{0x81,0x39,0xC0,0x37,}}, {0x321C,4,{0x81,0x39,0xC0,0x38,}}, {0x321D,4,{0x81,0x39,0xC0,0x39,}}, {0x321E,4,{0x81,0x39,0xC1,0x30,}}, {0x321F,4,{0x81,0x39,0xC1,0x31,}}, {0x3220,2,{0xA2,0xE5,0x00,0x00,}}, {0x3221,2,{0xA2,0xE6,0x00,0x00,}}, {0x3222,2,{0xA2,0xE7,0x00,0x00,}}, {0x3223,2,{0xA2,0xE8,0x00,0x00,}}, {0x3224,2,{0xA2,0xE9,0x00,0x00,}}, {0x3225,2,{0xA2,0xEA,0x00,0x00,}}, {0x3226,2,{0xA2,0xEB,0x00,0x00,}}, {0x3227,2,{0xA2,0xEC,0x00,0x00,}}, {0x3228,2,{0xA2,0xED,0x00,0x00,}}, {0x3229,2,{0xA2,0xEE,0x00,0x00,}}, {0x322A,4,{0x81,0x39,0xC1,0x32,}}, {0x322B,4,{0x81,0x39,0xC1,0x33,}}, {0x322C,4,{0x81,0x39,0xC1,0x34,}}, {0x322D,4,{0x81,0x39,0xC1,0x35,}}, {0x322E,4,{0x81,0x39,0xC1,0x36,}}, {0x322F,4,{0x81,0x39,0xC1,0x37,}}, {0x3230,4,{0x81,0x39,0xC1,0x38,}}, {0x3231,2,{0xA9,0x5A,0x00,0x00,}}, {0x3232,4,{0x81,0x39,0xC1,0x39,}}, {0x3233,4,{0x81,0x39,0xC2,0x30,}}, {0x3234,4,{0x81,0x39,0xC2,0x31,}}, {0x3235,4,{0x81,0x39,0xC2,0x32,}}, {0x3236,4,{0x81,0x39,0xC2,0x33,}}, {0x3237,4,{0x81,0x39,0xC2,0x34,}}, {0x3238,4,{0x81,0x39,0xC2,0x35,}}, {0x3239,4,{0x81,0x39,0xC2,0x36,}}, {0x323A,4,{0x81,0x39,0xC2,0x37,}}, {0x323B,4,{0x81,0x39,0xC2,0x38,}}, {0x323C,4,{0x81,0x39,0xC2,0x39,}}, {0x323D,4,{0x81,0x39,0xC3,0x30,}}, {0x323E,4,{0x81,0x39,0xC3,0x31,}}, {0x323F,4,{0x81,0x39,0xC3,0x32,}}, {0x3240,4,{0x81,0x39,0xC3,0x33,}}, {0x3241,4,{0x81,0x39,0xC3,0x34,}}, {0x3242,4,{0x81,0x39,0xC3,0x35,}}, {0x3243,4,{0x81,0x39,0xC3,0x36,}}, {0x3244,4,{0x81,0x39,0xC3,0x37,}}, {0x3245,4,{0x81,0x39,0xC3,0x38,}}, {0x3246,4,{0x81,0x39,0xC3,0x39,}}, {0x3247,4,{0x81,0x39,0xC4,0x30,}}, {0x3248,4,{0x81,0x39,0xC4,0x31,}}, {0x3249,4,{0x81,0x39,0xC4,0x32,}}, {0x324A,4,{0x81,0x39,0xC4,0x33,}}, {0x324B,4,{0x81,0x39,0xC4,0x34,}}, {0x324C,4,{0x81,0x39,0xC4,0x35,}}, {0x324D,4,{0x81,0x39,0xC4,0x36,}}, {0x324E,4,{0x81,0x39,0xC4,0x37,}}, {0x324F,4,{0x81,0x39,0xC4,0x38,}}, {0x3250,4,{0x81,0x39,0xC4,0x39,}}, {0x3251,4,{0x81,0x39,0xC5,0x30,}}, {0x3252,4,{0x81,0x39,0xC5,0x31,}}, {0x3253,4,{0x81,0x39,0xC5,0x32,}}, {0x3254,4,{0x81,0x39,0xC5,0x33,}}, {0x3255,4,{0x81,0x39,0xC5,0x34,}}, {0x3256,4,{0x81,0x39,0xC5,0x35,}}, {0x3257,4,{0x81,0x39,0xC5,0x36,}}, {0x3258,4,{0x81,0x39,0xC5,0x37,}}, {0x3259,4,{0x81,0x39,0xC5,0x38,}}, {0x325A,4,{0x81,0x39,0xC5,0x39,}}, {0x325B,4,{0x81,0x39,0xC6,0x30,}}, {0x325C,4,{0x81,0x39,0xC6,0x31,}}, {0x325D,4,{0x81,0x39,0xC6,0x32,}}, {0x325E,4,{0x81,0x39,0xC6,0x33,}}, {0x325F,4,{0x81,0x39,0xC6,0x34,}}, {0x3260,4,{0x81,0x39,0xC6,0x35,}}, {0x3261,4,{0x81,0x39,0xC6,0x36,}}, {0x3262,4,{0x81,0x39,0xC6,0x37,}}, {0x3263,4,{0x81,0x39,0xC6,0x38,}}, {0x3264,4,{0x81,0x39,0xC6,0x39,}}, {0x3265,4,{0x81,0x39,0xC7,0x30,}}, {0x3266,4,{0x81,0x39,0xC7,0x31,}}, {0x3267,4,{0x81,0x39,0xC7,0x32,}}, {0x3268,4,{0x81,0x39,0xC7,0x33,}}, {0x3269,4,{0x81,0x39,0xC7,0x34,}}, {0x326A,4,{0x81,0x39,0xC7,0x35,}}, {0x326B,4,{0x81,0x39,0xC7,0x36,}}, {0x326C,4,{0x81,0x39,0xC7,0x37,}}, {0x326D,4,{0x81,0x39,0xC7,0x38,}}, {0x326E,4,{0x81,0x39,0xC7,0x39,}}, {0x326F,4,{0x81,0x39,0xC8,0x30,}}, {0x3270,4,{0x81,0x39,0xC8,0x31,}}, {0x3271,4,{0x81,0x39,0xC8,0x32,}}, {0x3272,4,{0x81,0x39,0xC8,0x33,}}, {0x3273,4,{0x81,0x39,0xC8,0x34,}}, {0x3274,4,{0x81,0x39,0xC8,0x35,}}, {0x3275,4,{0x81,0x39,0xC8,0x36,}}, {0x3276,4,{0x81,0x39,0xC8,0x37,}}, {0x3277,4,{0x81,0x39,0xC8,0x38,}}, {0x3278,4,{0x81,0x39,0xC8,0x39,}}, {0x3279,4,{0x81,0x39,0xC9,0x30,}}, {0x327A,4,{0x81,0x39,0xC9,0x31,}}, {0x327B,4,{0x81,0x39,0xC9,0x32,}}, {0x327C,4,{0x81,0x39,0xC9,0x33,}}, {0x327D,4,{0x81,0x39,0xC9,0x34,}}, {0x327E,4,{0x81,0x39,0xC9,0x35,}}, {0x327F,4,{0x81,0x39,0xC9,0x36,}}, {0x3280,4,{0x81,0x39,0xC9,0x37,}}, {0x3281,4,{0x81,0x39,0xC9,0x38,}}, {0x3282,4,{0x81,0x39,0xC9,0x39,}}, {0x3283,4,{0x81,0x39,0xCA,0x30,}}, {0x3284,4,{0x81,0x39,0xCA,0x31,}}, {0x3285,4,{0x81,0x39,0xCA,0x32,}}, {0x3286,4,{0x81,0x39,0xCA,0x33,}}, {0x3287,4,{0x81,0x39,0xCA,0x34,}}, {0x3288,4,{0x81,0x39,0xCA,0x35,}}, {0x3289,4,{0x81,0x39,0xCA,0x36,}}, {0x328A,4,{0x81,0x39,0xCA,0x37,}}, {0x328B,4,{0x81,0x39,0xCA,0x38,}}, {0x328C,4,{0x81,0x39,0xCA,0x39,}}, {0x328D,4,{0x81,0x39,0xCB,0x30,}}, {0x328E,4,{0x81,0x39,0xCB,0x31,}}, {0x328F,4,{0x81,0x39,0xCB,0x32,}}, {0x3290,4,{0x81,0x39,0xCB,0x33,}}, {0x3291,4,{0x81,0x39,0xCB,0x34,}}, {0x3292,4,{0x81,0x39,0xCB,0x35,}}, {0x3293,4,{0x81,0x39,0xCB,0x36,}}, {0x3294,4,{0x81,0x39,0xCB,0x37,}}, {0x3295,4,{0x81,0x39,0xCB,0x38,}}, {0x3296,4,{0x81,0x39,0xCB,0x39,}}, {0x3297,4,{0x81,0x39,0xCC,0x30,}}, {0x3298,4,{0x81,0x39,0xCC,0x31,}}, {0x3299,4,{0x81,0x39,0xCC,0x32,}}, {0x329A,4,{0x81,0x39,0xCC,0x33,}}, {0x329B,4,{0x81,0x39,0xCC,0x34,}}, {0x329C,4,{0x81,0x39,0xCC,0x35,}}, {0x329D,4,{0x81,0x39,0xCC,0x36,}}, {0x329E,4,{0x81,0x39,0xCC,0x37,}}, {0x329F,4,{0x81,0x39,0xCC,0x38,}}, {0x32A0,4,{0x81,0x39,0xCC,0x39,}}, {0x32A1,4,{0x81,0x39,0xCD,0x30,}}, {0x32A2,4,{0x81,0x39,0xCD,0x31,}}, {0x32A3,2,{0xA9,0x49,0x00,0x00,}}, {0x32A4,4,{0x81,0x39,0xCD,0x32,}}, {0x32A5,4,{0x81,0x39,0xCD,0x33,}}, {0x32A6,4,{0x81,0x39,0xCD,0x34,}}, {0x32A7,4,{0x81,0x39,0xCD,0x35,}}, {0x32A8,4,{0x81,0x39,0xCD,0x36,}}, {0x32A9,4,{0x81,0x39,0xCD,0x37,}}, {0x32AA,4,{0x81,0x39,0xCD,0x38,}}, {0x32AB,4,{0x81,0x39,0xCD,0x39,}}, {0x32AC,4,{0x81,0x39,0xCE,0x30,}}, {0x32AD,4,{0x81,0x39,0xCE,0x31,}}, {0x32AE,4,{0x81,0x39,0xCE,0x32,}}, {0x32AF,4,{0x81,0x39,0xCE,0x33,}}, {0x32B0,4,{0x81,0x39,0xCE,0x34,}}, {0x32B1,4,{0x81,0x39,0xCE,0x35,}}, {0x32B2,4,{0x81,0x39,0xCE,0x36,}}, {0x32B3,4,{0x81,0x39,0xCE,0x37,}}, {0x32B4,4,{0x81,0x39,0xCE,0x38,}}, {0x32B5,4,{0x81,0x39,0xCE,0x39,}}, {0x32B6,4,{0x81,0x39,0xCF,0x30,}}, {0x32B7,4,{0x81,0x39,0xCF,0x31,}}, {0x32B8,4,{0x81,0x39,0xCF,0x32,}}, {0x32B9,4,{0x81,0x39,0xCF,0x33,}}, {0x32BA,4,{0x81,0x39,0xCF,0x34,}}, {0x32BB,4,{0x81,0x39,0xCF,0x35,}}, {0x32BC,4,{0x81,0x39,0xCF,0x36,}}, {0x32BD,4,{0x81,0x39,0xCF,0x37,}}, {0x32BE,4,{0x81,0x39,0xCF,0x38,}}, {0x32BF,4,{0x81,0x39,0xCF,0x39,}}, {0x32C0,4,{0x81,0x39,0xD0,0x30,}}, {0x32C1,4,{0x81,0x39,0xD0,0x31,}}, {0x32C2,4,{0x81,0x39,0xD0,0x32,}}, {0x32C3,4,{0x81,0x39,0xD0,0x33,}}, {0x32C4,4,{0x81,0x39,0xD0,0x34,}}, {0x32C5,4,{0x81,0x39,0xD0,0x35,}}, {0x32C6,4,{0x81,0x39,0xD0,0x36,}}, {0x32C7,4,{0x81,0x39,0xD0,0x37,}}, {0x32C8,4,{0x81,0x39,0xD0,0x38,}}, {0x32C9,4,{0x81,0x39,0xD0,0x39,}}, {0x32CA,4,{0x81,0x39,0xD1,0x30,}}, {0x32CB,4,{0x81,0x39,0xD1,0x31,}}, {0x32CC,4,{0x81,0x39,0xD1,0x32,}}, {0x32CD,4,{0x81,0x39,0xD1,0x33,}}, {0x32CE,4,{0x81,0x39,0xD1,0x34,}}, {0x32CF,4,{0x81,0x39,0xD1,0x35,}}, {0x32D0,4,{0x81,0x39,0xD1,0x36,}}, {0x32D1,4,{0x81,0x39,0xD1,0x37,}}, {0x32D2,4,{0x81,0x39,0xD1,0x38,}}, {0x32D3,4,{0x81,0x39,0xD1,0x39,}}, {0x32D4,4,{0x81,0x39,0xD2,0x30,}}, {0x32D5,4,{0x81,0x39,0xD2,0x31,}}, {0x32D6,4,{0x81,0x39,0xD2,0x32,}}, {0x32D7,4,{0x81,0x39,0xD2,0x33,}}, {0x32D8,4,{0x81,0x39,0xD2,0x34,}}, {0x32D9,4,{0x81,0x39,0xD2,0x35,}}, {0x32DA,4,{0x81,0x39,0xD2,0x36,}}, {0x32DB,4,{0x81,0x39,0xD2,0x37,}}, {0x32DC,4,{0x81,0x39,0xD2,0x38,}}, {0x32DD,4,{0x81,0x39,0xD2,0x39,}}, {0x32DE,4,{0x81,0x39,0xD3,0x30,}}, {0x32DF,4,{0x81,0x39,0xD3,0x31,}}, {0x32E0,4,{0x81,0x39,0xD3,0x32,}}, {0x32E1,4,{0x81,0x39,0xD3,0x33,}}, {0x32E2,4,{0x81,0x39,0xD3,0x34,}}, {0x32E3,4,{0x81,0x39,0xD3,0x35,}}, {0x32E4,4,{0x81,0x39,0xD3,0x36,}}, {0x32E5,4,{0x81,0x39,0xD3,0x37,}}, {0x32E6,4,{0x81,0x39,0xD3,0x38,}}, {0x32E7,4,{0x81,0x39,0xD3,0x39,}}, {0x32E8,4,{0x81,0x39,0xD4,0x30,}}, {0x32E9,4,{0x81,0x39,0xD4,0x31,}}, {0x32EA,4,{0x81,0x39,0xD4,0x32,}}, {0x32EB,4,{0x81,0x39,0xD4,0x33,}}, {0x32EC,4,{0x81,0x39,0xD4,0x34,}}, {0x32ED,4,{0x81,0x39,0xD4,0x35,}}, {0x32EE,4,{0x81,0x39,0xD4,0x36,}}, {0x32EF,4,{0x81,0x39,0xD4,0x37,}}, {0x32F0,4,{0x81,0x39,0xD4,0x38,}}, {0x32F1,4,{0x81,0x39,0xD4,0x39,}}, {0x32F2,4,{0x81,0x39,0xD5,0x30,}}, {0x32F3,4,{0x81,0x39,0xD5,0x31,}}, {0x32F4,4,{0x81,0x39,0xD5,0x32,}}, {0x32F5,4,{0x81,0x39,0xD5,0x33,}}, {0x32F6,4,{0x81,0x39,0xD5,0x34,}}, {0x32F7,4,{0x81,0x39,0xD5,0x35,}}, {0x32F8,4,{0x81,0x39,0xD5,0x36,}}, {0x32F9,4,{0x81,0x39,0xD5,0x37,}}, {0x32FA,4,{0x81,0x39,0xD5,0x38,}}, {0x32FB,4,{0x81,0x39,0xD5,0x39,}}, {0x32FC,4,{0x81,0x39,0xD6,0x30,}}, {0x32FD,4,{0x81,0x39,0xD6,0x31,}}, {0x32FE,4,{0x81,0x39,0xD6,0x32,}}, {0x32FF,4,{0x81,0x39,0xD6,0x33,}}, {0x3300,4,{0x81,0x39,0xD6,0x34,}}, {0x3301,4,{0x81,0x39,0xD6,0x35,}}, {0x3302,4,{0x81,0x39,0xD6,0x36,}}, {0x3303,4,{0x81,0x39,0xD6,0x37,}}, {0x3304,4,{0x81,0x39,0xD6,0x38,}}, {0x3305,4,{0x81,0x39,0xD6,0x39,}}, {0x3306,4,{0x81,0x39,0xD7,0x30,}}, {0x3307,4,{0x81,0x39,0xD7,0x31,}}, {0x3308,4,{0x81,0x39,0xD7,0x32,}}, {0x3309,4,{0x81,0x39,0xD7,0x33,}}, {0x330A,4,{0x81,0x39,0xD7,0x34,}}, {0x330B,4,{0x81,0x39,0xD7,0x35,}}, {0x330C,4,{0x81,0x39,0xD7,0x36,}}, {0x330D,4,{0x81,0x39,0xD7,0x37,}}, {0x330E,4,{0x81,0x39,0xD7,0x38,}}, {0x330F,4,{0x81,0x39,0xD7,0x39,}}, {0x3310,4,{0x81,0x39,0xD8,0x30,}}, {0x3311,4,{0x81,0x39,0xD8,0x31,}}, {0x3312,4,{0x81,0x39,0xD8,0x32,}}, {0x3313,4,{0x81,0x39,0xD8,0x33,}}, {0x3314,4,{0x81,0x39,0xD8,0x34,}}, {0x3315,4,{0x81,0x39,0xD8,0x35,}}, {0x3316,4,{0x81,0x39,0xD8,0x36,}}, {0x3317,4,{0x81,0x39,0xD8,0x37,}}, {0x3318,4,{0x81,0x39,0xD8,0x38,}}, {0x3319,4,{0x81,0x39,0xD8,0x39,}}, {0x331A,4,{0x81,0x39,0xD9,0x30,}}, {0x331B,4,{0x81,0x39,0xD9,0x31,}}, {0x331C,4,{0x81,0x39,0xD9,0x32,}}, {0x331D,4,{0x81,0x39,0xD9,0x33,}}, {0x331E,4,{0x81,0x39,0xD9,0x34,}}, {0x331F,4,{0x81,0x39,0xD9,0x35,}}, {0x3320,4,{0x81,0x39,0xD9,0x36,}}, {0x3321,4,{0x81,0x39,0xD9,0x37,}}, {0x3322,4,{0x81,0x39,0xD9,0x38,}}, {0x3323,4,{0x81,0x39,0xD9,0x39,}}, {0x3324,4,{0x81,0x39,0xDA,0x30,}}, {0x3325,4,{0x81,0x39,0xDA,0x31,}}, {0x3326,4,{0x81,0x39,0xDA,0x32,}}, {0x3327,4,{0x81,0x39,0xDA,0x33,}}, {0x3328,4,{0x81,0x39,0xDA,0x34,}}, {0x3329,4,{0x81,0x39,0xDA,0x35,}}, {0x332A,4,{0x81,0x39,0xDA,0x36,}}, {0x332B,4,{0x81,0x39,0xDA,0x37,}}, {0x332C,4,{0x81,0x39,0xDA,0x38,}}, {0x332D,4,{0x81,0x39,0xDA,0x39,}}, {0x332E,4,{0x81,0x39,0xDB,0x30,}}, {0x332F,4,{0x81,0x39,0xDB,0x31,}}, {0x3330,4,{0x81,0x39,0xDB,0x32,}}, {0x3331,4,{0x81,0x39,0xDB,0x33,}}, {0x3332,4,{0x81,0x39,0xDB,0x34,}}, {0x3333,4,{0x81,0x39,0xDB,0x35,}}, {0x3334,4,{0x81,0x39,0xDB,0x36,}}, {0x3335,4,{0x81,0x39,0xDB,0x37,}}, {0x3336,4,{0x81,0x39,0xDB,0x38,}}, {0x3337,4,{0x81,0x39,0xDB,0x39,}}, {0x3338,4,{0x81,0x39,0xDC,0x30,}}, {0x3339,4,{0x81,0x39,0xDC,0x31,}}, {0x333A,4,{0x81,0x39,0xDC,0x32,}}, {0x333B,4,{0x81,0x39,0xDC,0x33,}}, {0x333C,4,{0x81,0x39,0xDC,0x34,}}, {0x333D,4,{0x81,0x39,0xDC,0x35,}}, {0x333E,4,{0x81,0x39,0xDC,0x36,}}, {0x333F,4,{0x81,0x39,0xDC,0x37,}}, {0x3340,4,{0x81,0x39,0xDC,0x38,}}, {0x3341,4,{0x81,0x39,0xDC,0x39,}}, {0x3342,4,{0x81,0x39,0xDD,0x30,}}, {0x3343,4,{0x81,0x39,0xDD,0x31,}}, {0x3344,4,{0x81,0x39,0xDD,0x32,}}, {0x3345,4,{0x81,0x39,0xDD,0x33,}}, {0x3346,4,{0x81,0x39,0xDD,0x34,}}, {0x3347,4,{0x81,0x39,0xDD,0x35,}}, {0x3348,4,{0x81,0x39,0xDD,0x36,}}, {0x3349,4,{0x81,0x39,0xDD,0x37,}}, {0x334A,4,{0x81,0x39,0xDD,0x38,}}, {0x334B,4,{0x81,0x39,0xDD,0x39,}}, {0x334C,4,{0x81,0x39,0xDE,0x30,}}, {0x334D,4,{0x81,0x39,0xDE,0x31,}}, {0x334E,4,{0x81,0x39,0xDE,0x32,}}, {0x334F,4,{0x81,0x39,0xDE,0x33,}}, {0x3350,4,{0x81,0x39,0xDE,0x34,}}, {0x3351,4,{0x81,0x39,0xDE,0x35,}}, {0x3352,4,{0x81,0x39,0xDE,0x36,}}, {0x3353,4,{0x81,0x39,0xDE,0x37,}}, {0x3354,4,{0x81,0x39,0xDE,0x38,}}, {0x3355,4,{0x81,0x39,0xDE,0x39,}}, {0x3356,4,{0x81,0x39,0xDF,0x30,}}, {0x3357,4,{0x81,0x39,0xDF,0x31,}}, {0x3358,4,{0x81,0x39,0xDF,0x32,}}, {0x3359,4,{0x81,0x39,0xDF,0x33,}}, {0x335A,4,{0x81,0x39,0xDF,0x34,}}, {0x335B,4,{0x81,0x39,0xDF,0x35,}}, {0x335C,4,{0x81,0x39,0xDF,0x36,}}, {0x335D,4,{0x81,0x39,0xDF,0x37,}}, {0x335E,4,{0x81,0x39,0xDF,0x38,}}, {0x335F,4,{0x81,0x39,0xDF,0x39,}}, {0x3360,4,{0x81,0x39,0xE0,0x30,}}, {0x3361,4,{0x81,0x39,0xE0,0x31,}}, {0x3362,4,{0x81,0x39,0xE0,0x32,}}, {0x3363,4,{0x81,0x39,0xE0,0x33,}}, {0x3364,4,{0x81,0x39,0xE0,0x34,}}, {0x3365,4,{0x81,0x39,0xE0,0x35,}}, {0x3366,4,{0x81,0x39,0xE0,0x36,}}, {0x3367,4,{0x81,0x39,0xE0,0x37,}}, {0x3368,4,{0x81,0x39,0xE0,0x38,}}, {0x3369,4,{0x81,0x39,0xE0,0x39,}}, {0x336A,4,{0x81,0x39,0xE1,0x30,}}, {0x336B,4,{0x81,0x39,0xE1,0x31,}}, {0x336C,4,{0x81,0x39,0xE1,0x32,}}, {0x336D,4,{0x81,0x39,0xE1,0x33,}}, {0x336E,4,{0x81,0x39,0xE1,0x34,}}, {0x336F,4,{0x81,0x39,0xE1,0x35,}}, {0x3370,4,{0x81,0x39,0xE1,0x36,}}, {0x3371,4,{0x81,0x39,0xE1,0x37,}}, {0x3372,4,{0x81,0x39,0xE1,0x38,}}, {0x3373,4,{0x81,0x39,0xE1,0x39,}}, {0x3374,4,{0x81,0x39,0xE2,0x30,}}, {0x3375,4,{0x81,0x39,0xE2,0x31,}}, {0x3376,4,{0x81,0x39,0xE2,0x32,}}, {0x3377,4,{0x81,0x39,0xE2,0x33,}}, {0x3378,4,{0x81,0x39,0xE2,0x34,}}, {0x3379,4,{0x81,0x39,0xE2,0x35,}}, {0x337A,4,{0x81,0x39,0xE2,0x36,}}, {0x337B,4,{0x81,0x39,0xE2,0x37,}}, {0x337C,4,{0x81,0x39,0xE2,0x38,}}, {0x337D,4,{0x81,0x39,0xE2,0x39,}}, {0x337E,4,{0x81,0x39,0xE3,0x30,}}, {0x337F,4,{0x81,0x39,0xE3,0x31,}}, {0x3380,4,{0x81,0x39,0xE3,0x32,}}, {0x3381,4,{0x81,0x39,0xE3,0x33,}}, {0x3382,4,{0x81,0x39,0xE3,0x34,}}, {0x3383,4,{0x81,0x39,0xE3,0x35,}}, {0x3384,4,{0x81,0x39,0xE3,0x36,}}, {0x3385,4,{0x81,0x39,0xE3,0x37,}}, {0x3386,4,{0x81,0x39,0xE3,0x38,}}, {0x3387,4,{0x81,0x39,0xE3,0x39,}}, {0x3388,4,{0x81,0x39,0xE4,0x30,}}, {0x3389,4,{0x81,0x39,0xE4,0x31,}}, {0x338A,4,{0x81,0x39,0xE4,0x32,}}, {0x338B,4,{0x81,0x39,0xE4,0x33,}}, {0x338C,4,{0x81,0x39,0xE4,0x34,}}, {0x338D,4,{0x81,0x39,0xE4,0x35,}}, {0x338E,2,{0xA9,0x4A,0x00,0x00,}}, {0x338F,2,{0xA9,0x4B,0x00,0x00,}}, {0x3390,4,{0x81,0x39,0xE4,0x36,}}, {0x3391,4,{0x81,0x39,0xE4,0x37,}}, {0x3392,4,{0x81,0x39,0xE4,0x38,}}, {0x3393,4,{0x81,0x39,0xE4,0x39,}}, {0x3394,4,{0x81,0x39,0xE5,0x30,}}, {0x3395,4,{0x81,0x39,0xE5,0x31,}}, {0x3396,4,{0x81,0x39,0xE5,0x32,}}, {0x3397,4,{0x81,0x39,0xE5,0x33,}}, {0x3398,4,{0x81,0x39,0xE5,0x34,}}, {0x3399,4,{0x81,0x39,0xE5,0x35,}}, {0x339A,4,{0x81,0x39,0xE5,0x36,}}, {0x339B,4,{0x81,0x39,0xE5,0x37,}}, {0x339C,2,{0xA9,0x4C,0x00,0x00,}}, {0x339D,2,{0xA9,0x4D,0x00,0x00,}}, {0x339E,2,{0xA9,0x4E,0x00,0x00,}}, {0x339F,4,{0x81,0x39,0xE5,0x38,}}, {0x33A0,4,{0x81,0x39,0xE5,0x39,}}, {0x33A1,2,{0xA9,0x4F,0x00,0x00,}}, {0x33A2,4,{0x81,0x39,0xE6,0x30,}}, {0x33A3,4,{0x81,0x39,0xE6,0x31,}}, {0x33A4,4,{0x81,0x39,0xE6,0x32,}}, {0x33A5,4,{0x81,0x39,0xE6,0x33,}}, {0x33A6,4,{0x81,0x39,0xE6,0x34,}}, {0x33A7,4,{0x81,0x39,0xE6,0x35,}}, {0x33A8,4,{0x81,0x39,0xE6,0x36,}}, {0x33A9,4,{0x81,0x39,0xE6,0x37,}}, {0x33AA,4,{0x81,0x39,0xE6,0x38,}}, {0x33AB,4,{0x81,0x39,0xE6,0x39,}}, {0x33AC,4,{0x81,0x39,0xE7,0x30,}}, {0x33AD,4,{0x81,0x39,0xE7,0x31,}}, {0x33AE,4,{0x81,0x39,0xE7,0x32,}}, {0x33AF,4,{0x81,0x39,0xE7,0x33,}}, {0x33B0,4,{0x81,0x39,0xE7,0x34,}}, {0x33B1,4,{0x81,0x39,0xE7,0x35,}}, {0x33B2,4,{0x81,0x39,0xE7,0x36,}}, {0x33B3,4,{0x81,0x39,0xE7,0x37,}}, {0x33B4,4,{0x81,0x39,0xE7,0x38,}}, {0x33B5,4,{0x81,0x39,0xE7,0x39,}}, {0x33B6,4,{0x81,0x39,0xE8,0x30,}}, {0x33B7,4,{0x81,0x39,0xE8,0x31,}}, {0x33B8,4,{0x81,0x39,0xE8,0x32,}}, {0x33B9,4,{0x81,0x39,0xE8,0x33,}}, {0x33BA,4,{0x81,0x39,0xE8,0x34,}}, {0x33BB,4,{0x81,0x39,0xE8,0x35,}}, {0x33BC,4,{0x81,0x39,0xE8,0x36,}}, {0x33BD,4,{0x81,0x39,0xE8,0x37,}}, {0x33BE,4,{0x81,0x39,0xE8,0x38,}}, {0x33BF,4,{0x81,0x39,0xE8,0x39,}}, {0x33C0,4,{0x81,0x39,0xE9,0x30,}}, {0x33C1,4,{0x81,0x39,0xE9,0x31,}}, {0x33C2,4,{0x81,0x39,0xE9,0x32,}}, {0x33C3,4,{0x81,0x39,0xE9,0x33,}}, {0x33C4,2,{0xA9,0x50,0x00,0x00,}}, {0x33C5,4,{0x81,0x39,0xE9,0x34,}}, {0x33C6,4,{0x81,0x39,0xE9,0x35,}}, {0x33C7,4,{0x81,0x39,0xE9,0x36,}}, {0x33C8,4,{0x81,0x39,0xE9,0x37,}}, {0x33C9,4,{0x81,0x39,0xE9,0x38,}}, {0x33CA,4,{0x81,0x39,0xE9,0x39,}}, {0x33CB,4,{0x81,0x39,0xEA,0x30,}}, {0x33CC,4,{0x81,0x39,0xEA,0x31,}}, {0x33CD,4,{0x81,0x39,0xEA,0x32,}}, {0x33CE,2,{0xA9,0x51,0x00,0x00,}}, {0x33CF,4,{0x81,0x39,0xEA,0x33,}}, {0x33D0,4,{0x81,0x39,0xEA,0x34,}}, {0x33D1,2,{0xA9,0x52,0x00,0x00,}}, {0x33D2,2,{0xA9,0x53,0x00,0x00,}}, {0x33D3,4,{0x81,0x39,0xEA,0x35,}}, {0x33D4,4,{0x81,0x39,0xEA,0x36,}}, {0x33D5,2,{0xA9,0x54,0x00,0x00,}}, {0x33D6,4,{0x81,0x39,0xEA,0x37,}}, {0x33D7,4,{0x81,0x39,0xEA,0x38,}}, {0x33D8,4,{0x81,0x39,0xEA,0x39,}}, {0x33D9,4,{0x81,0x39,0xEB,0x30,}}, {0x33DA,4,{0x81,0x39,0xEB,0x31,}}, {0x33DB,4,{0x81,0x39,0xEB,0x32,}}, {0x33DC,4,{0x81,0x39,0xEB,0x33,}}, {0x33DD,4,{0x81,0x39,0xEB,0x34,}}, {0x33DE,4,{0x81,0x39,0xEB,0x35,}}, {0x33DF,4,{0x81,0x39,0xEB,0x36,}}, {0x33E0,4,{0x81,0x39,0xEB,0x37,}}, {0x33E1,4,{0x81,0x39,0xEB,0x38,}}, {0x33E2,4,{0x81,0x39,0xEB,0x39,}}, {0x33E3,4,{0x81,0x39,0xEC,0x30,}}, {0x33E4,4,{0x81,0x39,0xEC,0x31,}}, {0x33E5,4,{0x81,0x39,0xEC,0x32,}}, {0x33E6,4,{0x81,0x39,0xEC,0x33,}}, {0x33E7,4,{0x81,0x39,0xEC,0x34,}}, {0x33E8,4,{0x81,0x39,0xEC,0x35,}}, {0x33E9,4,{0x81,0x39,0xEC,0x36,}}, {0x33EA,4,{0x81,0x39,0xEC,0x37,}}, {0x33EB,4,{0x81,0x39,0xEC,0x38,}}, {0x33EC,4,{0x81,0x39,0xEC,0x39,}}, {0x33ED,4,{0x81,0x39,0xED,0x30,}}, {0x33EE,4,{0x81,0x39,0xED,0x31,}}, {0x33EF,4,{0x81,0x39,0xED,0x32,}}, {0x33F0,4,{0x81,0x39,0xED,0x33,}}, {0x33F1,4,{0x81,0x39,0xED,0x34,}}, {0x33F2,4,{0x81,0x39,0xED,0x35,}}, {0x33F3,4,{0x81,0x39,0xED,0x36,}}, {0x33F4,4,{0x81,0x39,0xED,0x37,}}, {0x33F5,4,{0x81,0x39,0xED,0x38,}}, {0x33F6,4,{0x81,0x39,0xED,0x39,}}, {0x33F7,4,{0x81,0x39,0xEE,0x30,}}, {0x33F8,4,{0x81,0x39,0xEE,0x31,}}, {0x33F9,4,{0x81,0x39,0xEE,0x32,}}, {0x33FA,4,{0x81,0x39,0xEE,0x33,}}, {0x33FB,4,{0x81,0x39,0xEE,0x34,}}, {0x33FC,4,{0x81,0x39,0xEE,0x35,}}, {0x33FD,4,{0x81,0x39,0xEE,0x36,}}, {0x33FE,4,{0x81,0x39,0xEE,0x37,}}, {0x33FF,4,{0x81,0x39,0xEE,0x38,}}, {0x3400,4,{0x81,0x39,0xEE,0x39,}}, {0x3401,4,{0x81,0x39,0xEF,0x30,}}, {0x3402,4,{0x81,0x39,0xEF,0x31,}}, {0x3403,4,{0x81,0x39,0xEF,0x32,}}, {0x3404,4,{0x81,0x39,0xEF,0x33,}}, {0x3405,4,{0x81,0x39,0xEF,0x34,}}, {0x3406,4,{0x81,0x39,0xEF,0x35,}}, {0x3407,4,{0x81,0x39,0xEF,0x36,}}, {0x3408,4,{0x81,0x39,0xEF,0x37,}}, {0x3409,4,{0x81,0x39,0xEF,0x38,}}, {0x340A,4,{0x81,0x39,0xEF,0x39,}}, {0x340B,4,{0x81,0x39,0xF0,0x30,}}, {0x340C,4,{0x81,0x39,0xF0,0x31,}}, {0x340D,4,{0x81,0x39,0xF0,0x32,}}, {0x340E,4,{0x81,0x39,0xF0,0x33,}}, {0x340F,4,{0x81,0x39,0xF0,0x34,}}, {0x3410,4,{0x81,0x39,0xF0,0x35,}}, {0x3411,4,{0x81,0x39,0xF0,0x36,}}, {0x3412,4,{0x81,0x39,0xF0,0x37,}}, {0x3413,4,{0x81,0x39,0xF0,0x38,}}, {0x3414,4,{0x81,0x39,0xF0,0x39,}}, {0x3415,4,{0x81,0x39,0xF1,0x30,}}, {0x3416,4,{0x81,0x39,0xF1,0x31,}}, {0x3417,4,{0x81,0x39,0xF1,0x32,}}, {0x3418,4,{0x81,0x39,0xF1,0x33,}}, {0x3419,4,{0x81,0x39,0xF1,0x34,}}, {0x341A,4,{0x81,0x39,0xF1,0x35,}}, {0x341B,4,{0x81,0x39,0xF1,0x36,}}, {0x341C,4,{0x81,0x39,0xF1,0x37,}}, {0x341D,4,{0x81,0x39,0xF1,0x38,}}, {0x341E,4,{0x81,0x39,0xF1,0x39,}}, {0x341F,4,{0x81,0x39,0xF2,0x30,}}, {0x3420,4,{0x81,0x39,0xF2,0x31,}}, {0x3421,4,{0x81,0x39,0xF2,0x32,}}, {0x3422,4,{0x81,0x39,0xF2,0x33,}}, {0x3423,4,{0x81,0x39,0xF2,0x34,}}, {0x3424,4,{0x81,0x39,0xF2,0x35,}}, {0x3425,4,{0x81,0x39,0xF2,0x36,}}, {0x3426,4,{0x81,0x39,0xF2,0x37,}}, {0x3427,4,{0x81,0x39,0xF2,0x38,}}, {0x3428,4,{0x81,0x39,0xF2,0x39,}}, {0x3429,4,{0x81,0x39,0xF3,0x30,}}, {0x342A,4,{0x81,0x39,0xF3,0x31,}}, {0x342B,4,{0x81,0x39,0xF3,0x32,}}, {0x342C,4,{0x81,0x39,0xF3,0x33,}}, {0x342D,4,{0x81,0x39,0xF3,0x34,}}, {0x342E,4,{0x81,0x39,0xF3,0x35,}}, {0x342F,4,{0x81,0x39,0xF3,0x36,}}, {0x3430,4,{0x81,0x39,0xF3,0x37,}}, {0x3431,4,{0x81,0x39,0xF3,0x38,}}, {0x3432,4,{0x81,0x39,0xF3,0x39,}}, {0x3433,4,{0x81,0x39,0xF4,0x30,}}, {0x3434,4,{0x81,0x39,0xF4,0x31,}}, {0x3435,4,{0x81,0x39,0xF4,0x32,}}, {0x3436,4,{0x81,0x39,0xF4,0x33,}}, {0x3437,4,{0x81,0x39,0xF4,0x34,}}, {0x3438,4,{0x81,0x39,0xF4,0x35,}}, {0x3439,4,{0x81,0x39,0xF4,0x36,}}, {0x343A,4,{0x81,0x39,0xF4,0x37,}}, {0x343B,4,{0x81,0x39,0xF4,0x38,}}, {0x343C,4,{0x81,0x39,0xF4,0x39,}}, {0x343D,4,{0x81,0x39,0xF5,0x30,}}, {0x343E,4,{0x81,0x39,0xF5,0x31,}}, {0x343F,4,{0x81,0x39,0xF5,0x32,}}, {0x3440,4,{0x81,0x39,0xF5,0x33,}}, {0x3441,4,{0x81,0x39,0xF5,0x34,}}, {0x3442,4,{0x81,0x39,0xF5,0x35,}}, {0x3443,4,{0x81,0x39,0xF5,0x36,}}, {0x3444,4,{0x81,0x39,0xF5,0x37,}}, {0x3445,4,{0x81,0x39,0xF5,0x38,}}, {0x3446,4,{0x81,0x39,0xF5,0x39,}}, {0x3447,2,{0xFE,0x56,0x00,0x00,}}, {0x3448,4,{0x81,0x39,0xF6,0x30,}}, {0x3449,4,{0x81,0x39,0xF6,0x31,}}, {0x344A,4,{0x81,0x39,0xF6,0x32,}}, {0x344B,4,{0x81,0x39,0xF6,0x33,}}, {0x344C,4,{0x81,0x39,0xF6,0x34,}}, {0x344D,4,{0x81,0x39,0xF6,0x35,}}, {0x344E,4,{0x81,0x39,0xF6,0x36,}}, {0x344F,4,{0x81,0x39,0xF6,0x37,}}, {0x3450,4,{0x81,0x39,0xF6,0x38,}}, {0x3451,4,{0x81,0x39,0xF6,0x39,}}, {0x3452,4,{0x81,0x39,0xF7,0x30,}}, {0x3453,4,{0x81,0x39,0xF7,0x31,}}, {0x3454,4,{0x81,0x39,0xF7,0x32,}}, {0x3455,4,{0x81,0x39,0xF7,0x33,}}, {0x3456,4,{0x81,0x39,0xF7,0x34,}}, {0x3457,4,{0x81,0x39,0xF7,0x35,}}, {0x3458,4,{0x81,0x39,0xF7,0x36,}}, {0x3459,4,{0x81,0x39,0xF7,0x37,}}, {0x345A,4,{0x81,0x39,0xF7,0x38,}}, {0x345B,4,{0x81,0x39,0xF7,0x39,}}, {0x345C,4,{0x81,0x39,0xF8,0x30,}}, {0x345D,4,{0x81,0x39,0xF8,0x31,}}, {0x345E,4,{0x81,0x39,0xF8,0x32,}}, {0x345F,4,{0x81,0x39,0xF8,0x33,}}, {0x3460,4,{0x81,0x39,0xF8,0x34,}}, {0x3461,4,{0x81,0x39,0xF8,0x35,}}, {0x3462,4,{0x81,0x39,0xF8,0x36,}}, {0x3463,4,{0x81,0x39,0xF8,0x37,}}, {0x3464,4,{0x81,0x39,0xF8,0x38,}}, {0x3465,4,{0x81,0x39,0xF8,0x39,}}, {0x3466,4,{0x81,0x39,0xF9,0x30,}}, {0x3467,4,{0x81,0x39,0xF9,0x31,}}, {0x3468,4,{0x81,0x39,0xF9,0x32,}}, {0x3469,4,{0x81,0x39,0xF9,0x33,}}, {0x346A,4,{0x81,0x39,0xF9,0x34,}}, {0x346B,4,{0x81,0x39,0xF9,0x35,}}, {0x346C,4,{0x81,0x39,0xF9,0x36,}}, {0x346D,4,{0x81,0x39,0xF9,0x37,}}, {0x346E,4,{0x81,0x39,0xF9,0x38,}}, {0x346F,4,{0x81,0x39,0xF9,0x39,}}, {0x3470,4,{0x81,0x39,0xFA,0x30,}}, {0x3471,4,{0x81,0x39,0xFA,0x31,}}, {0x3472,4,{0x81,0x39,0xFA,0x32,}}, {0x3473,2,{0xFE,0x55,0x00,0x00,}}, {0x3474,4,{0x81,0x39,0xFA,0x33,}}, {0x3475,4,{0x81,0x39,0xFA,0x34,}}, {0x3476,4,{0x81,0x39,0xFA,0x35,}}, {0x3477,4,{0x81,0x39,0xFA,0x36,}}, {0x3478,4,{0x81,0x39,0xFA,0x37,}}, {0x3479,4,{0x81,0x39,0xFA,0x38,}}, {0x347A,4,{0x81,0x39,0xFA,0x39,}}, {0x347B,4,{0x81,0x39,0xFB,0x30,}}, {0x347C,4,{0x81,0x39,0xFB,0x31,}}, {0x347D,4,{0x81,0x39,0xFB,0x32,}}, {0x347E,4,{0x81,0x39,0xFB,0x33,}}, {0x347F,4,{0x81,0x39,0xFB,0x34,}}, {0x3480,4,{0x81,0x39,0xFB,0x35,}}, {0x3481,4,{0x81,0x39,0xFB,0x36,}}, {0x3482,4,{0x81,0x39,0xFB,0x37,}}, {0x3483,4,{0x81,0x39,0xFB,0x38,}}, {0x3484,4,{0x81,0x39,0xFB,0x39,}}, {0x3485,4,{0x81,0x39,0xFC,0x30,}}, {0x3486,4,{0x81,0x39,0xFC,0x31,}}, {0x3487,4,{0x81,0x39,0xFC,0x32,}}, {0x3488,4,{0x81,0x39,0xFC,0x33,}}, {0x3489,4,{0x81,0x39,0xFC,0x34,}}, {0x348A,4,{0x81,0x39,0xFC,0x35,}}, {0x348B,4,{0x81,0x39,0xFC,0x36,}}, {0x348C,4,{0x81,0x39,0xFC,0x37,}}, {0x348D,4,{0x81,0x39,0xFC,0x38,}}, {0x348E,4,{0x81,0x39,0xFC,0x39,}}, {0x348F,4,{0x81,0x39,0xFD,0x30,}}, {0x3490,4,{0x81,0x39,0xFD,0x31,}}, {0x3491,4,{0x81,0x39,0xFD,0x32,}}, {0x3492,4,{0x81,0x39,0xFD,0x33,}}, {0x3493,4,{0x81,0x39,0xFD,0x34,}}, {0x3494,4,{0x81,0x39,0xFD,0x35,}}, {0x3495,4,{0x81,0x39,0xFD,0x36,}}, {0x3496,4,{0x81,0x39,0xFD,0x37,}}, {0x3497,4,{0x81,0x39,0xFD,0x38,}}, {0x3498,4,{0x81,0x39,0xFD,0x39,}}, {0x3499,4,{0x81,0x39,0xFE,0x30,}}, {0x349A,4,{0x81,0x39,0xFE,0x31,}}, {0x349B,4,{0x81,0x39,0xFE,0x32,}}, {0x349C,4,{0x81,0x39,0xFE,0x33,}}, {0x349D,4,{0x81,0x39,0xFE,0x34,}}, {0x349E,4,{0x81,0x39,0xFE,0x35,}}, {0x349F,4,{0x81,0x39,0xFE,0x36,}}, {0x34A0,4,{0x81,0x39,0xFE,0x37,}}, {0x34A1,4,{0x81,0x39,0xFE,0x38,}}, {0x34A2,4,{0x81,0x39,0xFE,0x39,}}, {0x34A3,4,{0x82,0x30,0x81,0x30,}}, {0x34A4,4,{0x82,0x30,0x81,0x31,}}, {0x34A5,4,{0x82,0x30,0x81,0x32,}}, {0x34A6,4,{0x82,0x30,0x81,0x33,}}, {0x34A7,4,{0x82,0x30,0x81,0x34,}}, {0x34A8,4,{0x82,0x30,0x81,0x35,}}, {0x34A9,4,{0x82,0x30,0x81,0x36,}}, {0x34AA,4,{0x82,0x30,0x81,0x37,}}, {0x34AB,4,{0x82,0x30,0x81,0x38,}}, {0x34AC,4,{0x82,0x30,0x81,0x39,}}, {0x34AD,4,{0x82,0x30,0x82,0x30,}}, {0x34AE,4,{0x82,0x30,0x82,0x31,}}, {0x34AF,4,{0x82,0x30,0x82,0x32,}}, {0x34B0,4,{0x82,0x30,0x82,0x33,}}, {0x34B1,4,{0x82,0x30,0x82,0x34,}}, {0x34B2,4,{0x82,0x30,0x82,0x35,}}, {0x34B3,4,{0x82,0x30,0x82,0x36,}}, {0x34B4,4,{0x82,0x30,0x82,0x37,}}, {0x34B5,4,{0x82,0x30,0x82,0x38,}}, {0x34B6,4,{0x82,0x30,0x82,0x39,}}, {0x34B7,4,{0x82,0x30,0x83,0x30,}}, {0x34B8,4,{0x82,0x30,0x83,0x31,}}, {0x34B9,4,{0x82,0x30,0x83,0x32,}}, {0x34BA,4,{0x82,0x30,0x83,0x33,}}, {0x34BB,4,{0x82,0x30,0x83,0x34,}}, {0x34BC,4,{0x82,0x30,0x83,0x35,}}, {0x34BD,4,{0x82,0x30,0x83,0x36,}}, {0x34BE,4,{0x82,0x30,0x83,0x37,}}, {0x34BF,4,{0x82,0x30,0x83,0x38,}}, {0x34C0,4,{0x82,0x30,0x83,0x39,}}, {0x34C1,4,{0x82,0x30,0x84,0x30,}}, {0x34C2,4,{0x82,0x30,0x84,0x31,}}, {0x34C3,4,{0x82,0x30,0x84,0x32,}}, {0x34C4,4,{0x82,0x30,0x84,0x33,}}, {0x34C5,4,{0x82,0x30,0x84,0x34,}}, {0x34C6,4,{0x82,0x30,0x84,0x35,}}, {0x34C7,4,{0x82,0x30,0x84,0x36,}}, {0x34C8,4,{0x82,0x30,0x84,0x37,}}, {0x34C9,4,{0x82,0x30,0x84,0x38,}}, {0x34CA,4,{0x82,0x30,0x84,0x39,}}, {0x34CB,4,{0x82,0x30,0x85,0x30,}}, {0x34CC,4,{0x82,0x30,0x85,0x31,}}, {0x34CD,4,{0x82,0x30,0x85,0x32,}}, {0x34CE,4,{0x82,0x30,0x85,0x33,}}, {0x34CF,4,{0x82,0x30,0x85,0x34,}}, {0x34D0,4,{0x82,0x30,0x85,0x35,}}, {0x34D1,4,{0x82,0x30,0x85,0x36,}}, {0x34D2,4,{0x82,0x30,0x85,0x37,}}, {0x34D3,4,{0x82,0x30,0x85,0x38,}}, {0x34D4,4,{0x82,0x30,0x85,0x39,}}, {0x34D5,4,{0x82,0x30,0x86,0x30,}}, {0x34D6,4,{0x82,0x30,0x86,0x31,}}, {0x34D7,4,{0x82,0x30,0x86,0x32,}}, {0x34D8,4,{0x82,0x30,0x86,0x33,}}, {0x34D9,4,{0x82,0x30,0x86,0x34,}}, {0x34DA,4,{0x82,0x30,0x86,0x35,}}, {0x34DB,4,{0x82,0x30,0x86,0x36,}}, {0x34DC,4,{0x82,0x30,0x86,0x37,}}, {0x34DD,4,{0x82,0x30,0x86,0x38,}}, {0x34DE,4,{0x82,0x30,0x86,0x39,}}, {0x34DF,4,{0x82,0x30,0x87,0x30,}}, {0x34E0,4,{0x82,0x30,0x87,0x31,}}, {0x34E1,4,{0x82,0x30,0x87,0x32,}}, {0x34E2,4,{0x82,0x30,0x87,0x33,}}, {0x34E3,4,{0x82,0x30,0x87,0x34,}}, {0x34E4,4,{0x82,0x30,0x87,0x35,}}, {0x34E5,4,{0x82,0x30,0x87,0x36,}}, {0x34E6,4,{0x82,0x30,0x87,0x37,}}, {0x34E7,4,{0x82,0x30,0x87,0x38,}}, {0x34E8,4,{0x82,0x30,0x87,0x39,}}, {0x34E9,4,{0x82,0x30,0x88,0x30,}}, {0x34EA,4,{0x82,0x30,0x88,0x31,}}, {0x34EB,4,{0x82,0x30,0x88,0x32,}}, {0x34EC,4,{0x82,0x30,0x88,0x33,}}, {0x34ED,4,{0x82,0x30,0x88,0x34,}}, {0x34EE,4,{0x82,0x30,0x88,0x35,}}, {0x34EF,4,{0x82,0x30,0x88,0x36,}}, {0x34F0,4,{0x82,0x30,0x88,0x37,}}, {0x34F1,4,{0x82,0x30,0x88,0x38,}}, {0x34F2,4,{0x82,0x30,0x88,0x39,}}, {0x34F3,4,{0x82,0x30,0x89,0x30,}}, {0x34F4,4,{0x82,0x30,0x89,0x31,}}, {0x34F5,4,{0x82,0x30,0x89,0x32,}}, {0x34F6,4,{0x82,0x30,0x89,0x33,}}, {0x34F7,4,{0x82,0x30,0x89,0x34,}}, {0x34F8,4,{0x82,0x30,0x89,0x35,}}, {0x34F9,4,{0x82,0x30,0x89,0x36,}}, {0x34FA,4,{0x82,0x30,0x89,0x37,}}, {0x34FB,4,{0x82,0x30,0x89,0x38,}}, {0x34FC,4,{0x82,0x30,0x89,0x39,}}, {0x34FD,4,{0x82,0x30,0x8A,0x30,}}, {0x34FE,4,{0x82,0x30,0x8A,0x31,}}, {0x34FF,4,{0x82,0x30,0x8A,0x32,}}, {0x3500,4,{0x82,0x30,0x8A,0x33,}}, {0x3501,4,{0x82,0x30,0x8A,0x34,}}, {0x3502,4,{0x82,0x30,0x8A,0x35,}}, {0x3503,4,{0x82,0x30,0x8A,0x36,}}, {0x3504,4,{0x82,0x30,0x8A,0x37,}}, {0x3505,4,{0x82,0x30,0x8A,0x38,}}, {0x3506,4,{0x82,0x30,0x8A,0x39,}}, {0x3507,4,{0x82,0x30,0x8B,0x30,}}, {0x3508,4,{0x82,0x30,0x8B,0x31,}}, {0x3509,4,{0x82,0x30,0x8B,0x32,}}, {0x350A,4,{0x82,0x30,0x8B,0x33,}}, {0x350B,4,{0x82,0x30,0x8B,0x34,}}, {0x350C,4,{0x82,0x30,0x8B,0x35,}}, {0x350D,4,{0x82,0x30,0x8B,0x36,}}, {0x350E,4,{0x82,0x30,0x8B,0x37,}}, {0x350F,4,{0x82,0x30,0x8B,0x38,}}, {0x3510,4,{0x82,0x30,0x8B,0x39,}}, {0x3511,4,{0x82,0x30,0x8C,0x30,}}, {0x3512,4,{0x82,0x30,0x8C,0x31,}}, {0x3513,4,{0x82,0x30,0x8C,0x32,}}, {0x3514,4,{0x82,0x30,0x8C,0x33,}}, {0x3515,4,{0x82,0x30,0x8C,0x34,}}, {0x3516,4,{0x82,0x30,0x8C,0x35,}}, {0x3517,4,{0x82,0x30,0x8C,0x36,}}, {0x3518,4,{0x82,0x30,0x8C,0x37,}}, {0x3519,4,{0x82,0x30,0x8C,0x38,}}, {0x351A,4,{0x82,0x30,0x8C,0x39,}}, {0x351B,4,{0x82,0x30,0x8D,0x30,}}, {0x351C,4,{0x82,0x30,0x8D,0x31,}}, {0x351D,4,{0x82,0x30,0x8D,0x32,}}, {0x351E,4,{0x82,0x30,0x8D,0x33,}}, {0x351F,4,{0x82,0x30,0x8D,0x34,}}, {0x3520,4,{0x82,0x30,0x8D,0x35,}}, {0x3521,4,{0x82,0x30,0x8D,0x36,}}, {0x3522,4,{0x82,0x30,0x8D,0x37,}}, {0x3523,4,{0x82,0x30,0x8D,0x38,}}, {0x3524,4,{0x82,0x30,0x8D,0x39,}}, {0x3525,4,{0x82,0x30,0x8E,0x30,}}, {0x3526,4,{0x82,0x30,0x8E,0x31,}}, {0x3527,4,{0x82,0x30,0x8E,0x32,}}, {0x3528,4,{0x82,0x30,0x8E,0x33,}}, {0x3529,4,{0x82,0x30,0x8E,0x34,}}, {0x352A,4,{0x82,0x30,0x8E,0x35,}}, {0x352B,4,{0x82,0x30,0x8E,0x36,}}, {0x352C,4,{0x82,0x30,0x8E,0x37,}}, {0x352D,4,{0x82,0x30,0x8E,0x38,}}, {0x352E,4,{0x82,0x30,0x8E,0x39,}}, {0x352F,4,{0x82,0x30,0x8F,0x30,}}, {0x3530,4,{0x82,0x30,0x8F,0x31,}}, {0x3531,4,{0x82,0x30,0x8F,0x32,}}, {0x3532,4,{0x82,0x30,0x8F,0x33,}}, {0x3533,4,{0x82,0x30,0x8F,0x34,}}, {0x3534,4,{0x82,0x30,0x8F,0x35,}}, {0x3535,4,{0x82,0x30,0x8F,0x36,}}, {0x3536,4,{0x82,0x30,0x8F,0x37,}}, {0x3537,4,{0x82,0x30,0x8F,0x38,}}, {0x3538,4,{0x82,0x30,0x8F,0x39,}}, {0x3539,4,{0x82,0x30,0x90,0x30,}}, {0x353A,4,{0x82,0x30,0x90,0x31,}}, {0x353B,4,{0x82,0x30,0x90,0x32,}}, {0x353C,4,{0x82,0x30,0x90,0x33,}}, {0x353D,4,{0x82,0x30,0x90,0x34,}}, {0x353E,4,{0x82,0x30,0x90,0x35,}}, {0x353F,4,{0x82,0x30,0x90,0x36,}}, {0x3540,4,{0x82,0x30,0x90,0x37,}}, {0x3541,4,{0x82,0x30,0x90,0x38,}}, {0x3542,4,{0x82,0x30,0x90,0x39,}}, {0x3543,4,{0x82,0x30,0x91,0x30,}}, {0x3544,4,{0x82,0x30,0x91,0x31,}}, {0x3545,4,{0x82,0x30,0x91,0x32,}}, {0x3546,4,{0x82,0x30,0x91,0x33,}}, {0x3547,4,{0x82,0x30,0x91,0x34,}}, {0x3548,4,{0x82,0x30,0x91,0x35,}}, {0x3549,4,{0x82,0x30,0x91,0x36,}}, {0x354A,4,{0x82,0x30,0x91,0x37,}}, {0x354B,4,{0x82,0x30,0x91,0x38,}}, {0x354C,4,{0x82,0x30,0x91,0x39,}}, {0x354D,4,{0x82,0x30,0x92,0x30,}}, {0x354E,4,{0x82,0x30,0x92,0x31,}}, {0x354F,4,{0x82,0x30,0x92,0x32,}}, {0x3550,4,{0x82,0x30,0x92,0x33,}}, {0x3551,4,{0x82,0x30,0x92,0x34,}}, {0x3552,4,{0x82,0x30,0x92,0x35,}}, {0x3553,4,{0x82,0x30,0x92,0x36,}}, {0x3554,4,{0x82,0x30,0x92,0x37,}}, {0x3555,4,{0x82,0x30,0x92,0x38,}}, {0x3556,4,{0x82,0x30,0x92,0x39,}}, {0x3557,4,{0x82,0x30,0x93,0x30,}}, {0x3558,4,{0x82,0x30,0x93,0x31,}}, {0x3559,4,{0x82,0x30,0x93,0x32,}}, {0x355A,4,{0x82,0x30,0x93,0x33,}}, {0x355B,4,{0x82,0x30,0x93,0x34,}}, {0x355C,4,{0x82,0x30,0x93,0x35,}}, {0x355D,4,{0x82,0x30,0x93,0x36,}}, {0x355E,4,{0x82,0x30,0x93,0x37,}}, {0x355F,4,{0x82,0x30,0x93,0x38,}}, {0x3560,4,{0x82,0x30,0x93,0x39,}}, {0x3561,4,{0x82,0x30,0x94,0x30,}}, {0x3562,4,{0x82,0x30,0x94,0x31,}}, {0x3563,4,{0x82,0x30,0x94,0x32,}}, {0x3564,4,{0x82,0x30,0x94,0x33,}}, {0x3565,4,{0x82,0x30,0x94,0x34,}}, {0x3566,4,{0x82,0x30,0x94,0x35,}}, {0x3567,4,{0x82,0x30,0x94,0x36,}}, {0x3568,4,{0x82,0x30,0x94,0x37,}}, {0x3569,4,{0x82,0x30,0x94,0x38,}}, {0x356A,4,{0x82,0x30,0x94,0x39,}}, {0x356B,4,{0x82,0x30,0x95,0x30,}}, {0x356C,4,{0x82,0x30,0x95,0x31,}}, {0x356D,4,{0x82,0x30,0x95,0x32,}}, {0x356E,4,{0x82,0x30,0x95,0x33,}}, {0x356F,4,{0x82,0x30,0x95,0x34,}}, {0x3570,4,{0x82,0x30,0x95,0x35,}}, {0x3571,4,{0x82,0x30,0x95,0x36,}}, {0x3572,4,{0x82,0x30,0x95,0x37,}}, {0x3573,4,{0x82,0x30,0x95,0x38,}}, {0x3574,4,{0x82,0x30,0x95,0x39,}}, {0x3575,4,{0x82,0x30,0x96,0x30,}}, {0x3576,4,{0x82,0x30,0x96,0x31,}}, {0x3577,4,{0x82,0x30,0x96,0x32,}}, {0x3578,4,{0x82,0x30,0x96,0x33,}}, {0x3579,4,{0x82,0x30,0x96,0x34,}}, {0x357A,4,{0x82,0x30,0x96,0x35,}}, {0x357B,4,{0x82,0x30,0x96,0x36,}}, {0x357C,4,{0x82,0x30,0x96,0x37,}}, {0x357D,4,{0x82,0x30,0x96,0x38,}}, {0x357E,4,{0x82,0x30,0x96,0x39,}}, {0x357F,4,{0x82,0x30,0x97,0x30,}}, {0x3580,4,{0x82,0x30,0x97,0x31,}}, {0x3581,4,{0x82,0x30,0x97,0x32,}}, {0x3582,4,{0x82,0x30,0x97,0x33,}}, {0x3583,4,{0x82,0x30,0x97,0x34,}}, {0x3584,4,{0x82,0x30,0x97,0x35,}}, {0x3585,4,{0x82,0x30,0x97,0x36,}}, {0x3586,4,{0x82,0x30,0x97,0x37,}}, {0x3587,4,{0x82,0x30,0x97,0x38,}}, {0x3588,4,{0x82,0x30,0x97,0x39,}}, {0x3589,4,{0x82,0x30,0x98,0x30,}}, {0x358A,4,{0x82,0x30,0x98,0x31,}}, {0x358B,4,{0x82,0x30,0x98,0x32,}}, {0x358C,4,{0x82,0x30,0x98,0x33,}}, {0x358D,4,{0x82,0x30,0x98,0x34,}}, {0x358E,4,{0x82,0x30,0x98,0x35,}}, {0x358F,4,{0x82,0x30,0x98,0x36,}}, {0x3590,4,{0x82,0x30,0x98,0x37,}}, {0x3591,4,{0x82,0x30,0x98,0x38,}}, {0x3592,4,{0x82,0x30,0x98,0x39,}}, {0x3593,4,{0x82,0x30,0x99,0x30,}}, {0x3594,4,{0x82,0x30,0x99,0x31,}}, {0x3595,4,{0x82,0x30,0x99,0x32,}}, {0x3596,4,{0x82,0x30,0x99,0x33,}}, {0x3597,4,{0x82,0x30,0x99,0x34,}}, {0x3598,4,{0x82,0x30,0x99,0x35,}}, {0x3599,4,{0x82,0x30,0x99,0x36,}}, {0x359A,4,{0x82,0x30,0x99,0x37,}}, {0x359B,4,{0x82,0x30,0x99,0x38,}}, {0x359C,4,{0x82,0x30,0x99,0x39,}}, {0x359D,4,{0x82,0x30,0x9A,0x30,}}, {0x359E,2,{0xFE,0x5A,0x00,0x00,}}, {0x359F,4,{0x82,0x30,0x9A,0x31,}}, {0x35A0,4,{0x82,0x30,0x9A,0x32,}}, {0x35A1,4,{0x82,0x30,0x9A,0x33,}}, {0x35A2,4,{0x82,0x30,0x9A,0x34,}}, {0x35A3,4,{0x82,0x30,0x9A,0x35,}}, {0x35A4,4,{0x82,0x30,0x9A,0x36,}}, {0x35A5,4,{0x82,0x30,0x9A,0x37,}}, {0x35A6,4,{0x82,0x30,0x9A,0x38,}}, {0x35A7,4,{0x82,0x30,0x9A,0x39,}}, {0x35A8,4,{0x82,0x30,0x9B,0x30,}}, {0x35A9,4,{0x82,0x30,0x9B,0x31,}}, {0x35AA,4,{0x82,0x30,0x9B,0x32,}}, {0x35AB,4,{0x82,0x30,0x9B,0x33,}}, {0x35AC,4,{0x82,0x30,0x9B,0x34,}}, {0x35AD,4,{0x82,0x30,0x9B,0x35,}}, {0x35AE,4,{0x82,0x30,0x9B,0x36,}}, {0x35AF,4,{0x82,0x30,0x9B,0x37,}}, {0x35B0,4,{0x82,0x30,0x9B,0x38,}}, {0x35B1,4,{0x82,0x30,0x9B,0x39,}}, {0x35B2,4,{0x82,0x30,0x9C,0x30,}}, {0x35B3,4,{0x82,0x30,0x9C,0x31,}}, {0x35B4,4,{0x82,0x30,0x9C,0x32,}}, {0x35B5,4,{0x82,0x30,0x9C,0x33,}}, {0x35B6,4,{0x82,0x30,0x9C,0x34,}}, {0x35B7,4,{0x82,0x30,0x9C,0x35,}}, {0x35B8,4,{0x82,0x30,0x9C,0x36,}}, {0x35B9,4,{0x82,0x30,0x9C,0x37,}}, {0x35BA,4,{0x82,0x30,0x9C,0x38,}}, {0x35BB,4,{0x82,0x30,0x9C,0x39,}}, {0x35BC,4,{0x82,0x30,0x9D,0x30,}}, {0x35BD,4,{0x82,0x30,0x9D,0x31,}}, {0x35BE,4,{0x82,0x30,0x9D,0x32,}}, {0x35BF,4,{0x82,0x30,0x9D,0x33,}}, {0x35C0,4,{0x82,0x30,0x9D,0x34,}}, {0x35C1,4,{0x82,0x30,0x9D,0x35,}}, {0x35C2,4,{0x82,0x30,0x9D,0x36,}}, {0x35C3,4,{0x82,0x30,0x9D,0x37,}}, {0x35C4,4,{0x82,0x30,0x9D,0x38,}}, {0x35C5,4,{0x82,0x30,0x9D,0x39,}}, {0x35C6,4,{0x82,0x30,0x9E,0x30,}}, {0x35C7,4,{0x82,0x30,0x9E,0x31,}}, {0x35C8,4,{0x82,0x30,0x9E,0x32,}}, {0x35C9,4,{0x82,0x30,0x9E,0x33,}}, {0x35CA,4,{0x82,0x30,0x9E,0x34,}}, {0x35CB,4,{0x82,0x30,0x9E,0x35,}}, {0x35CC,4,{0x82,0x30,0x9E,0x36,}}, {0x35CD,4,{0x82,0x30,0x9E,0x37,}}, {0x35CE,4,{0x82,0x30,0x9E,0x38,}}, {0x35CF,4,{0x82,0x30,0x9E,0x39,}}, {0x35D0,4,{0x82,0x30,0x9F,0x30,}}, {0x35D1,4,{0x82,0x30,0x9F,0x31,}}, {0x35D2,4,{0x82,0x30,0x9F,0x32,}}, {0x35D3,4,{0x82,0x30,0x9F,0x33,}}, {0x35D4,4,{0x82,0x30,0x9F,0x34,}}, {0x35D5,4,{0x82,0x30,0x9F,0x35,}}, {0x35D6,4,{0x82,0x30,0x9F,0x36,}}, {0x35D7,4,{0x82,0x30,0x9F,0x37,}}, {0x35D8,4,{0x82,0x30,0x9F,0x38,}}, {0x35D9,4,{0x82,0x30,0x9F,0x39,}}, {0x35DA,4,{0x82,0x30,0xA0,0x30,}}, {0x35DB,4,{0x82,0x30,0xA0,0x31,}}, {0x35DC,4,{0x82,0x30,0xA0,0x32,}}, {0x35DD,4,{0x82,0x30,0xA0,0x33,}}, {0x35DE,4,{0x82,0x30,0xA0,0x34,}}, {0x35DF,4,{0x82,0x30,0xA0,0x35,}}, {0x35E0,4,{0x82,0x30,0xA0,0x36,}}, {0x35E1,4,{0x82,0x30,0xA0,0x37,}}, {0x35E2,4,{0x82,0x30,0xA0,0x38,}}, {0x35E3,4,{0x82,0x30,0xA0,0x39,}}, {0x35E4,4,{0x82,0x30,0xA1,0x30,}}, {0x35E5,4,{0x82,0x30,0xA1,0x31,}}, {0x35E6,4,{0x82,0x30,0xA1,0x32,}}, {0x35E7,4,{0x82,0x30,0xA1,0x33,}}, {0x35E8,4,{0x82,0x30,0xA1,0x34,}}, {0x35E9,4,{0x82,0x30,0xA1,0x35,}}, {0x35EA,4,{0x82,0x30,0xA1,0x36,}}, {0x35EB,4,{0x82,0x30,0xA1,0x37,}}, {0x35EC,4,{0x82,0x30,0xA1,0x38,}}, {0x35ED,4,{0x82,0x30,0xA1,0x39,}}, {0x35EE,4,{0x82,0x30,0xA2,0x30,}}, {0x35EF,4,{0x82,0x30,0xA2,0x31,}}, {0x35F0,4,{0x82,0x30,0xA2,0x32,}}, {0x35F1,4,{0x82,0x30,0xA2,0x33,}}, {0x35F2,4,{0x82,0x30,0xA2,0x34,}}, {0x35F3,4,{0x82,0x30,0xA2,0x35,}}, {0x35F4,4,{0x82,0x30,0xA2,0x36,}}, {0x35F5,4,{0x82,0x30,0xA2,0x37,}}, {0x35F6,4,{0x82,0x30,0xA2,0x38,}}, {0x35F7,4,{0x82,0x30,0xA2,0x39,}}, {0x35F8,4,{0x82,0x30,0xA3,0x30,}}, {0x35F9,4,{0x82,0x30,0xA3,0x31,}}, {0x35FA,4,{0x82,0x30,0xA3,0x32,}}, {0x35FB,4,{0x82,0x30,0xA3,0x33,}}, {0x35FC,4,{0x82,0x30,0xA3,0x34,}}, {0x35FD,4,{0x82,0x30,0xA3,0x35,}}, {0x35FE,4,{0x82,0x30,0xA3,0x36,}}, {0x35FF,4,{0x82,0x30,0xA3,0x37,}}, {0x3600,4,{0x82,0x30,0xA3,0x38,}}, {0x3601,4,{0x82,0x30,0xA3,0x39,}}, {0x3602,4,{0x82,0x30,0xA4,0x30,}}, {0x3603,4,{0x82,0x30,0xA4,0x31,}}, {0x3604,4,{0x82,0x30,0xA4,0x32,}}, {0x3605,4,{0x82,0x30,0xA4,0x33,}}, {0x3606,4,{0x82,0x30,0xA4,0x34,}}, {0x3607,4,{0x82,0x30,0xA4,0x35,}}, {0x3608,4,{0x82,0x30,0xA4,0x36,}}, {0x3609,4,{0x82,0x30,0xA4,0x37,}}, {0x360A,4,{0x82,0x30,0xA4,0x38,}}, {0x360B,4,{0x82,0x30,0xA4,0x39,}}, {0x360C,4,{0x82,0x30,0xA5,0x30,}}, {0x360D,4,{0x82,0x30,0xA5,0x31,}}, {0x360E,2,{0xFE,0x5C,0x00,0x00,}}, {0x360F,4,{0x82,0x30,0xA5,0x32,}}, {0x3610,4,{0x82,0x30,0xA5,0x33,}}, {0x3611,4,{0x82,0x30,0xA5,0x34,}}, {0x3612,4,{0x82,0x30,0xA5,0x35,}}, {0x3613,4,{0x82,0x30,0xA5,0x36,}}, {0x3614,4,{0x82,0x30,0xA5,0x37,}}, {0x3615,4,{0x82,0x30,0xA5,0x38,}}, {0x3616,4,{0x82,0x30,0xA5,0x39,}}, {0x3617,4,{0x82,0x30,0xA6,0x30,}}, {0x3618,4,{0x82,0x30,0xA6,0x31,}}, {0x3619,4,{0x82,0x30,0xA6,0x32,}}, {0x361A,2,{0xFE,0x5B,0x00,0x00,}}, {0x3918,2,{0xFE,0x60,0x00,0x00,}}, {0x3919,4,{0x82,0x30,0xF2,0x38,}}, {0x391A,4,{0x82,0x30,0xF2,0x39,}}, {0x391B,4,{0x82,0x30,0xF3,0x30,}}, {0x391C,4,{0x82,0x30,0xF3,0x31,}}, {0x391D,4,{0x82,0x30,0xF3,0x32,}}, {0x391E,4,{0x82,0x30,0xF3,0x33,}}, {0x391F,4,{0x82,0x30,0xF3,0x34,}}, {0x3920,4,{0x82,0x30,0xF3,0x35,}}, {0x3921,4,{0x82,0x30,0xF3,0x36,}}, {0x3922,4,{0x82,0x30,0xF3,0x37,}}, {0x3923,4,{0x82,0x30,0xF3,0x38,}}, {0x3924,4,{0x82,0x30,0xF3,0x39,}}, {0x3925,4,{0x82,0x30,0xF4,0x30,}}, {0x3926,4,{0x82,0x30,0xF4,0x31,}}, {0x3927,4,{0x82,0x30,0xF4,0x32,}}, {0x3928,4,{0x82,0x30,0xF4,0x33,}}, {0x3929,4,{0x82,0x30,0xF4,0x34,}}, {0x392A,4,{0x82,0x30,0xF4,0x35,}}, {0x392B,4,{0x82,0x30,0xF4,0x36,}}, {0x392C,4,{0x82,0x30,0xF4,0x37,}}, {0x392D,4,{0x82,0x30,0xF4,0x38,}}, {0x392E,4,{0x82,0x30,0xF4,0x39,}}, {0x392F,4,{0x82,0x30,0xF5,0x30,}}, {0x3930,4,{0x82,0x30,0xF5,0x31,}}, {0x3931,4,{0x82,0x30,0xF5,0x32,}}, {0x3932,4,{0x82,0x30,0xF5,0x33,}}, {0x3933,4,{0x82,0x30,0xF5,0x34,}}, {0x3934,4,{0x82,0x30,0xF5,0x35,}}, {0x3935,4,{0x82,0x30,0xF5,0x36,}}, {0x3936,4,{0x82,0x30,0xF5,0x37,}}, {0x3937,4,{0x82,0x30,0xF5,0x38,}}, {0x3938,4,{0x82,0x30,0xF5,0x39,}}, {0x3939,4,{0x82,0x30,0xF6,0x30,}}, {0x393A,4,{0x82,0x30,0xF6,0x31,}}, {0x393B,4,{0x82,0x30,0xF6,0x32,}}, {0x393C,4,{0x82,0x30,0xF6,0x33,}}, {0x393D,4,{0x82,0x30,0xF6,0x34,}}, {0x393E,4,{0x82,0x30,0xF6,0x35,}}, {0x393F,4,{0x82,0x30,0xF6,0x36,}}, {0x3940,4,{0x82,0x30,0xF6,0x37,}}, {0x3941,4,{0x82,0x30,0xF6,0x38,}}, {0x3942,4,{0x82,0x30,0xF6,0x39,}}, {0x3943,4,{0x82,0x30,0xF7,0x30,}}, {0x3944,4,{0x82,0x30,0xF7,0x31,}}, {0x3945,4,{0x82,0x30,0xF7,0x32,}}, {0x3946,4,{0x82,0x30,0xF7,0x33,}}, {0x3947,4,{0x82,0x30,0xF7,0x34,}}, {0x3948,4,{0x82,0x30,0xF7,0x35,}}, {0x3949,4,{0x82,0x30,0xF7,0x36,}}, {0x394A,4,{0x82,0x30,0xF7,0x37,}}, {0x394B,4,{0x82,0x30,0xF7,0x38,}}, {0x394C,4,{0x82,0x30,0xF7,0x39,}}, {0x394D,4,{0x82,0x30,0xF8,0x30,}}, {0x394E,4,{0x82,0x30,0xF8,0x31,}}, {0x394F,4,{0x82,0x30,0xF8,0x32,}}, {0x3950,4,{0x82,0x30,0xF8,0x33,}}, {0x3951,4,{0x82,0x30,0xF8,0x34,}}, {0x3952,4,{0x82,0x30,0xF8,0x35,}}, {0x3953,4,{0x82,0x30,0xF8,0x36,}}, {0x3954,4,{0x82,0x30,0xF8,0x37,}}, {0x3955,4,{0x82,0x30,0xF8,0x38,}}, {0x3956,4,{0x82,0x30,0xF8,0x39,}}, {0x3957,4,{0x82,0x30,0xF9,0x30,}}, {0x3958,4,{0x82,0x30,0xF9,0x31,}}, {0x3959,4,{0x82,0x30,0xF9,0x32,}}, {0x395A,4,{0x82,0x30,0xF9,0x33,}}, {0x395B,4,{0x82,0x30,0xF9,0x34,}}, {0x395C,4,{0x82,0x30,0xF9,0x35,}}, {0x395D,4,{0x82,0x30,0xF9,0x36,}}, {0x395E,4,{0x82,0x30,0xF9,0x37,}}, {0x395F,4,{0x82,0x30,0xF9,0x38,}}, {0x3960,4,{0x82,0x30,0xF9,0x39,}}, {0x3961,4,{0x82,0x30,0xFA,0x30,}}, {0x3962,4,{0x82,0x30,0xFA,0x31,}}, {0x3963,4,{0x82,0x30,0xFA,0x32,}}, {0x3964,4,{0x82,0x30,0xFA,0x33,}}, {0x3965,4,{0x82,0x30,0xFA,0x34,}}, {0x3966,4,{0x82,0x30,0xFA,0x35,}}, {0x3967,4,{0x82,0x30,0xFA,0x36,}}, {0x3968,4,{0x82,0x30,0xFA,0x37,}}, {0x3969,4,{0x82,0x30,0xFA,0x38,}}, {0x396A,4,{0x82,0x30,0xFA,0x39,}}, {0x396B,4,{0x82,0x30,0xFB,0x30,}}, {0x396C,4,{0x82,0x30,0xFB,0x31,}}, {0x396D,4,{0x82,0x30,0xFB,0x32,}}, {0x396E,2,{0xFE,0x5F,0x00,0x00,}}, {0x396F,4,{0x82,0x30,0xFB,0x33,}}, {0x3970,4,{0x82,0x30,0xFB,0x34,}}, {0x3971,4,{0x82,0x30,0xFB,0x35,}}, {0x3972,4,{0x82,0x30,0xFB,0x36,}}, {0x3973,4,{0x82,0x30,0xFB,0x37,}}, {0x3974,4,{0x82,0x30,0xFB,0x38,}}, {0x3975,4,{0x82,0x30,0xFB,0x39,}}, {0x3976,4,{0x82,0x30,0xFC,0x30,}}, {0x3977,4,{0x82,0x30,0xFC,0x31,}}, {0x3978,4,{0x82,0x30,0xFC,0x32,}}, {0x3979,4,{0x82,0x30,0xFC,0x33,}}, {0x397A,4,{0x82,0x30,0xFC,0x34,}}, {0x397B,4,{0x82,0x30,0xFC,0x35,}}, {0x397C,4,{0x82,0x30,0xFC,0x36,}}, {0x397D,4,{0x82,0x30,0xFC,0x37,}}, {0x397E,4,{0x82,0x30,0xFC,0x38,}}, {0x397F,4,{0x82,0x30,0xFC,0x39,}}, {0x3980,4,{0x82,0x30,0xFD,0x30,}}, {0x3981,4,{0x82,0x30,0xFD,0x31,}}, {0x3982,4,{0x82,0x30,0xFD,0x32,}}, {0x3983,4,{0x82,0x30,0xFD,0x33,}}, {0x3984,4,{0x82,0x30,0xFD,0x34,}}, {0x3985,4,{0x82,0x30,0xFD,0x35,}}, {0x3986,4,{0x82,0x30,0xFD,0x36,}}, {0x3987,4,{0x82,0x30,0xFD,0x37,}}, {0x3988,4,{0x82,0x30,0xFD,0x38,}}, {0x3989,4,{0x82,0x30,0xFD,0x39,}}, {0x398A,4,{0x82,0x30,0xFE,0x30,}}, {0x398B,4,{0x82,0x30,0xFE,0x31,}}, {0x398C,4,{0x82,0x30,0xFE,0x32,}}, {0x398D,4,{0x82,0x30,0xFE,0x33,}}, {0x398E,4,{0x82,0x30,0xFE,0x34,}}, {0x398F,4,{0x82,0x30,0xFE,0x35,}}, {0x3990,4,{0x82,0x30,0xFE,0x36,}}, {0x3991,4,{0x82,0x30,0xFE,0x37,}}, {0x3992,4,{0x82,0x30,0xFE,0x38,}}, {0x3993,4,{0x82,0x30,0xFE,0x39,}}, {0x3994,4,{0x82,0x31,0x81,0x30,}}, {0x3995,4,{0x82,0x31,0x81,0x31,}}, {0x3996,4,{0x82,0x31,0x81,0x32,}}, {0x3997,4,{0x82,0x31,0x81,0x33,}}, {0x3998,4,{0x82,0x31,0x81,0x34,}}, {0x3999,4,{0x82,0x31,0x81,0x35,}}, {0x399A,4,{0x82,0x31,0x81,0x36,}}, {0x399B,4,{0x82,0x31,0x81,0x37,}}, {0x399C,4,{0x82,0x31,0x81,0x38,}}, {0x399D,4,{0x82,0x31,0x81,0x39,}}, {0x399E,4,{0x82,0x31,0x82,0x30,}}, {0x399F,4,{0x82,0x31,0x82,0x31,}}, {0x39A0,4,{0x82,0x31,0x82,0x32,}}, {0x39A1,4,{0x82,0x31,0x82,0x33,}}, {0x39A2,4,{0x82,0x31,0x82,0x34,}}, {0x39A3,4,{0x82,0x31,0x82,0x35,}}, {0x39A4,4,{0x82,0x31,0x82,0x36,}}, {0x39A5,4,{0x82,0x31,0x82,0x37,}}, {0x39A6,4,{0x82,0x31,0x82,0x38,}}, {0x39A7,4,{0x82,0x31,0x82,0x39,}}, {0x39A8,4,{0x82,0x31,0x83,0x30,}}, {0x39A9,4,{0x82,0x31,0x83,0x31,}}, {0x39AA,4,{0x82,0x31,0x83,0x32,}}, {0x39AB,4,{0x82,0x31,0x83,0x33,}}, {0x39AC,4,{0x82,0x31,0x83,0x34,}}, {0x39AD,4,{0x82,0x31,0x83,0x35,}}, {0x39AE,4,{0x82,0x31,0x83,0x36,}}, {0x39AF,4,{0x82,0x31,0x83,0x37,}}, {0x39B0,4,{0x82,0x31,0x83,0x38,}}, {0x39B1,4,{0x82,0x31,0x83,0x39,}}, {0x39B2,4,{0x82,0x31,0x84,0x30,}}, {0x39B3,4,{0x82,0x31,0x84,0x31,}}, {0x39B4,4,{0x82,0x31,0x84,0x32,}}, {0x39B5,4,{0x82,0x31,0x84,0x33,}}, {0x39B6,4,{0x82,0x31,0x84,0x34,}}, {0x39B7,4,{0x82,0x31,0x84,0x35,}}, {0x39B8,4,{0x82,0x31,0x84,0x36,}}, {0x39B9,4,{0x82,0x31,0x84,0x37,}}, {0x39BA,4,{0x82,0x31,0x84,0x38,}}, {0x39BB,4,{0x82,0x31,0x84,0x39,}}, {0x39BC,4,{0x82,0x31,0x85,0x30,}}, {0x39BD,4,{0x82,0x31,0x85,0x31,}}, {0x39BE,4,{0x82,0x31,0x85,0x32,}}, {0x39BF,4,{0x82,0x31,0x85,0x33,}}, {0x39C0,4,{0x82,0x31,0x85,0x34,}}, {0x39C1,4,{0x82,0x31,0x85,0x35,}}, {0x39C2,4,{0x82,0x31,0x85,0x36,}}, {0x39C3,4,{0x82,0x31,0x85,0x37,}}, {0x39C4,4,{0x82,0x31,0x85,0x38,}}, {0x39C5,4,{0x82,0x31,0x85,0x39,}}, {0x39C6,4,{0x82,0x31,0x86,0x30,}}, {0x39C7,4,{0x82,0x31,0x86,0x31,}}, {0x39C8,4,{0x82,0x31,0x86,0x32,}}, {0x39C9,4,{0x82,0x31,0x86,0x33,}}, {0x39CA,4,{0x82,0x31,0x86,0x34,}}, {0x39CB,4,{0x82,0x31,0x86,0x35,}}, {0x39CC,4,{0x82,0x31,0x86,0x36,}}, {0x39CD,4,{0x82,0x31,0x86,0x37,}}, {0x39CE,4,{0x82,0x31,0x86,0x38,}}, {0x39CF,2,{0xFE,0x62,0x00,0x00,}}, {0x39D0,2,{0xFE,0x65,0x00,0x00,}}, {0x39D1,4,{0x82,0x31,0x86,0x39,}}, {0x39D2,4,{0x82,0x31,0x87,0x30,}}, {0x39D3,4,{0x82,0x31,0x87,0x31,}}, {0x39D4,4,{0x82,0x31,0x87,0x32,}}, {0x39D5,4,{0x82,0x31,0x87,0x33,}}, {0x39D6,4,{0x82,0x31,0x87,0x34,}}, {0x39D7,4,{0x82,0x31,0x87,0x35,}}, {0x39D8,4,{0x82,0x31,0x87,0x36,}}, {0x39D9,4,{0x82,0x31,0x87,0x37,}}, {0x39DA,4,{0x82,0x31,0x87,0x38,}}, {0x39DB,4,{0x82,0x31,0x87,0x39,}}, {0x39DC,4,{0x82,0x31,0x88,0x30,}}, {0x39DD,4,{0x82,0x31,0x88,0x31,}}, {0x39DE,4,{0x82,0x31,0x88,0x32,}}, {0x39DF,2,{0xFE,0x63,0x00,0x00,}}, {0x39E0,4,{0x82,0x31,0x88,0x33,}}, {0x39E1,4,{0x82,0x31,0x88,0x34,}}, {0x39E2,4,{0x82,0x31,0x88,0x35,}}, {0x39E3,4,{0x82,0x31,0x88,0x36,}}, {0x39E4,4,{0x82,0x31,0x88,0x37,}}, {0x39E5,4,{0x82,0x31,0x88,0x38,}}, {0x39E6,4,{0x82,0x31,0x88,0x39,}}, {0x39E7,4,{0x82,0x31,0x89,0x30,}}, {0x39E8,4,{0x82,0x31,0x89,0x31,}}, {0x39E9,4,{0x82,0x31,0x89,0x32,}}, {0x39EA,4,{0x82,0x31,0x89,0x33,}}, {0x39EB,4,{0x82,0x31,0x89,0x34,}}, {0x39EC,4,{0x82,0x31,0x89,0x35,}}, {0x39ED,4,{0x82,0x31,0x89,0x36,}}, {0x39EE,4,{0x82,0x31,0x89,0x37,}}, {0x39EF,4,{0x82,0x31,0x89,0x38,}}, {0x39F0,4,{0x82,0x31,0x89,0x39,}}, {0x39F1,4,{0x82,0x31,0x8A,0x30,}}, {0x39F2,4,{0x82,0x31,0x8A,0x31,}}, {0x39F3,4,{0x82,0x31,0x8A,0x32,}}, {0x39F4,4,{0x82,0x31,0x8A,0x33,}}, {0x39F5,4,{0x82,0x31,0x8A,0x34,}}, {0x39F6,4,{0x82,0x31,0x8A,0x35,}}, {0x39F7,4,{0x82,0x31,0x8A,0x36,}}, {0x39F8,4,{0x82,0x31,0x8A,0x37,}}, {0x39F9,4,{0x82,0x31,0x8A,0x38,}}, {0x39FA,4,{0x82,0x31,0x8A,0x39,}}, {0x39FB,4,{0x82,0x31,0x8B,0x30,}}, {0x39FC,4,{0x82,0x31,0x8B,0x31,}}, {0x39FD,4,{0x82,0x31,0x8B,0x32,}}, {0x39FE,4,{0x82,0x31,0x8B,0x33,}}, {0x39FF,4,{0x82,0x31,0x8B,0x34,}}, {0x3A00,4,{0x82,0x31,0x8B,0x35,}}, {0x3A01,4,{0x82,0x31,0x8B,0x36,}}, {0x3A02,4,{0x82,0x31,0x8B,0x37,}}, {0x3A03,4,{0x82,0x31,0x8B,0x38,}}, {0x3A04,4,{0x82,0x31,0x8B,0x39,}}, {0x3A05,4,{0x82,0x31,0x8C,0x30,}}, {0x3A06,4,{0x82,0x31,0x8C,0x31,}}, {0x3A07,4,{0x82,0x31,0x8C,0x32,}}, {0x3A08,4,{0x82,0x31,0x8C,0x33,}}, {0x3A09,4,{0x82,0x31,0x8C,0x34,}}, {0x3A0A,4,{0x82,0x31,0x8C,0x35,}}, {0x3A0B,4,{0x82,0x31,0x8C,0x36,}}, {0x3A0C,4,{0x82,0x31,0x8C,0x37,}}, {0x3A0D,4,{0x82,0x31,0x8C,0x38,}}, {0x3A0E,4,{0x82,0x31,0x8C,0x39,}}, {0x3A0F,4,{0x82,0x31,0x8D,0x30,}}, {0x3A10,4,{0x82,0x31,0x8D,0x31,}}, {0x3A11,4,{0x82,0x31,0x8D,0x32,}}, {0x3A12,4,{0x82,0x31,0x8D,0x33,}}, {0x3A13,4,{0x82,0x31,0x8D,0x34,}}, {0x3A14,4,{0x82,0x31,0x8D,0x35,}}, {0x3A15,4,{0x82,0x31,0x8D,0x36,}}, {0x3A16,4,{0x82,0x31,0x8D,0x37,}}, {0x3A17,4,{0x82,0x31,0x8D,0x38,}}, {0x3A18,4,{0x82,0x31,0x8D,0x39,}}, {0x3A19,4,{0x82,0x31,0x8E,0x30,}}, {0x3A1A,4,{0x82,0x31,0x8E,0x31,}}, {0x3A1B,4,{0x82,0x31,0x8E,0x32,}}, {0x3A1C,4,{0x82,0x31,0x8E,0x33,}}, {0x3A1D,4,{0x82,0x31,0x8E,0x34,}}, {0x3A1E,4,{0x82,0x31,0x8E,0x35,}}, {0x3A1F,4,{0x82,0x31,0x8E,0x36,}}, {0x3A20,4,{0x82,0x31,0x8E,0x37,}}, {0x3A21,4,{0x82,0x31,0x8E,0x38,}}, {0x3A22,4,{0x82,0x31,0x8E,0x39,}}, {0x3A23,4,{0x82,0x31,0x8F,0x30,}}, {0x3A24,4,{0x82,0x31,0x8F,0x31,}}, {0x3A25,4,{0x82,0x31,0x8F,0x32,}}, {0x3A26,4,{0x82,0x31,0x8F,0x33,}}, {0x3A27,4,{0x82,0x31,0x8F,0x34,}}, {0x3A28,4,{0x82,0x31,0x8F,0x35,}}, {0x3A29,4,{0x82,0x31,0x8F,0x36,}}, {0x3A2A,4,{0x82,0x31,0x8F,0x37,}}, {0x3A2B,4,{0x82,0x31,0x8F,0x38,}}, {0x3A2C,4,{0x82,0x31,0x8F,0x39,}}, {0x3A2D,4,{0x82,0x31,0x90,0x30,}}, {0x3A2E,4,{0x82,0x31,0x90,0x31,}}, {0x3A2F,4,{0x82,0x31,0x90,0x32,}}, {0x3A30,4,{0x82,0x31,0x90,0x33,}}, {0x3A31,4,{0x82,0x31,0x90,0x34,}}, {0x3A32,4,{0x82,0x31,0x90,0x35,}}, {0x3A33,4,{0x82,0x31,0x90,0x36,}}, {0x3A34,4,{0x82,0x31,0x90,0x37,}}, {0x3A35,4,{0x82,0x31,0x90,0x38,}}, {0x3A36,4,{0x82,0x31,0x90,0x39,}}, {0x3A37,4,{0x82,0x31,0x91,0x30,}}, {0x3A38,4,{0x82,0x31,0x91,0x31,}}, {0x3A39,4,{0x82,0x31,0x91,0x32,}}, {0x3A3A,4,{0x82,0x31,0x91,0x33,}}, {0x3A3B,4,{0x82,0x31,0x91,0x34,}}, {0x3A3C,4,{0x82,0x31,0x91,0x35,}}, {0x3A3D,4,{0x82,0x31,0x91,0x36,}}, {0x3A3E,4,{0x82,0x31,0x91,0x37,}}, {0x3A3F,4,{0x82,0x31,0x91,0x38,}}, {0x3A40,4,{0x82,0x31,0x91,0x39,}}, {0x3A41,4,{0x82,0x31,0x92,0x30,}}, {0x3A42,4,{0x82,0x31,0x92,0x31,}}, {0x3A43,4,{0x82,0x31,0x92,0x32,}}, {0x3A44,4,{0x82,0x31,0x92,0x33,}}, {0x3A45,4,{0x82,0x31,0x92,0x34,}}, {0x3A46,4,{0x82,0x31,0x92,0x35,}}, {0x3A47,4,{0x82,0x31,0x92,0x36,}}, {0x3A48,4,{0x82,0x31,0x92,0x37,}}, {0x3A49,4,{0x82,0x31,0x92,0x38,}}, {0x3A4A,4,{0x82,0x31,0x92,0x39,}}, {0x3A4B,4,{0x82,0x31,0x93,0x30,}}, {0x3A4C,4,{0x82,0x31,0x93,0x31,}}, {0x3A4D,4,{0x82,0x31,0x93,0x32,}}, {0x3A4E,4,{0x82,0x31,0x93,0x33,}}, {0x3A4F,4,{0x82,0x31,0x93,0x34,}}, {0x3A50,4,{0x82,0x31,0x93,0x35,}}, {0x3A51,4,{0x82,0x31,0x93,0x36,}}, {0x3A52,4,{0x82,0x31,0x93,0x37,}}, {0x3A53,4,{0x82,0x31,0x93,0x38,}}, {0x3A54,4,{0x82,0x31,0x93,0x39,}}, {0x3A55,4,{0x82,0x31,0x94,0x30,}}, {0x3A56,4,{0x82,0x31,0x94,0x31,}}, {0x3A57,4,{0x82,0x31,0x94,0x32,}}, {0x3A58,4,{0x82,0x31,0x94,0x33,}}, {0x3A59,4,{0x82,0x31,0x94,0x34,}}, {0x3A5A,4,{0x82,0x31,0x94,0x35,}}, {0x3A5B,4,{0x82,0x31,0x94,0x36,}}, {0x3A5C,4,{0x82,0x31,0x94,0x37,}}, {0x3A5D,4,{0x82,0x31,0x94,0x38,}}, {0x3A5E,4,{0x82,0x31,0x94,0x39,}}, {0x3A5F,4,{0x82,0x31,0x95,0x30,}}, {0x3A60,4,{0x82,0x31,0x95,0x31,}}, {0x3A61,4,{0x82,0x31,0x95,0x32,}}, {0x3A62,4,{0x82,0x31,0x95,0x33,}}, {0x3A63,4,{0x82,0x31,0x95,0x34,}}, {0x3A64,4,{0x82,0x31,0x95,0x35,}}, {0x3A65,4,{0x82,0x31,0x95,0x36,}}, {0x3A66,4,{0x82,0x31,0x95,0x37,}}, {0x3A67,4,{0x82,0x31,0x95,0x38,}}, {0x3A68,4,{0x82,0x31,0x95,0x39,}}, {0x3A69,4,{0x82,0x31,0x96,0x30,}}, {0x3A6A,4,{0x82,0x31,0x96,0x31,}}, {0x3A6B,4,{0x82,0x31,0x96,0x32,}}, {0x3A6C,4,{0x82,0x31,0x96,0x33,}}, {0x3A6D,4,{0x82,0x31,0x96,0x34,}}, {0x3A6E,4,{0x82,0x31,0x96,0x35,}}, {0x3A6F,4,{0x82,0x31,0x96,0x36,}}, {0x3A70,4,{0x82,0x31,0x96,0x37,}}, {0x3A71,4,{0x82,0x31,0x96,0x38,}}, {0x3A72,4,{0x82,0x31,0x96,0x39,}}, {0x3A73,2,{0xFE,0x64,0x00,0x00,}}, {0x3A74,4,{0x82,0x31,0x97,0x30,}}, {0x3A75,4,{0x82,0x31,0x97,0x31,}}, {0x3A76,4,{0x82,0x31,0x97,0x32,}}, {0x3A77,4,{0x82,0x31,0x97,0x33,}}, {0x3A78,4,{0x82,0x31,0x97,0x34,}}, {0x3A79,4,{0x82,0x31,0x97,0x35,}}, {0x3A7A,4,{0x82,0x31,0x97,0x36,}}, {0x3A7B,4,{0x82,0x31,0x97,0x37,}}, {0x3A7C,4,{0x82,0x31,0x97,0x38,}}, {0x3A7D,4,{0x82,0x31,0x97,0x39,}}, {0x3A7E,4,{0x82,0x31,0x98,0x30,}}, {0x3A7F,4,{0x82,0x31,0x98,0x31,}}, {0x3A80,4,{0x82,0x31,0x98,0x32,}}, {0x3A81,4,{0x82,0x31,0x98,0x33,}}, {0x3A82,4,{0x82,0x31,0x98,0x34,}}, {0x3A83,4,{0x82,0x31,0x98,0x35,}}, {0x3A84,4,{0x82,0x31,0x98,0x36,}}, {0x3A85,4,{0x82,0x31,0x98,0x37,}}, {0x3A86,4,{0x82,0x31,0x98,0x38,}}, {0x3A87,4,{0x82,0x31,0x98,0x39,}}, {0x3A88,4,{0x82,0x31,0x99,0x30,}}, {0x3A89,4,{0x82,0x31,0x99,0x31,}}, {0x3A8A,4,{0x82,0x31,0x99,0x32,}}, {0x3A8B,4,{0x82,0x31,0x99,0x33,}}, {0x3A8C,4,{0x82,0x31,0x99,0x34,}}, {0x3A8D,4,{0x82,0x31,0x99,0x35,}}, {0x3A8E,4,{0x82,0x31,0x99,0x36,}}, {0x3A8F,4,{0x82,0x31,0x99,0x37,}}, {0x3A90,4,{0x82,0x31,0x99,0x38,}}, {0x3A91,4,{0x82,0x31,0x99,0x39,}}, {0x3A92,4,{0x82,0x31,0x9A,0x30,}}, {0x3A93,4,{0x82,0x31,0x9A,0x31,}}, {0x3A94,4,{0x82,0x31,0x9A,0x32,}}, {0x3A95,4,{0x82,0x31,0x9A,0x33,}}, {0x3A96,4,{0x82,0x31,0x9A,0x34,}}, {0x3A97,4,{0x82,0x31,0x9A,0x35,}}, {0x3A98,4,{0x82,0x31,0x9A,0x36,}}, {0x3A99,4,{0x82,0x31,0x9A,0x37,}}, {0x3A9A,4,{0x82,0x31,0x9A,0x38,}}, {0x3A9B,4,{0x82,0x31,0x9A,0x39,}}, {0x3A9C,4,{0x82,0x31,0x9B,0x30,}}, {0x3A9D,4,{0x82,0x31,0x9B,0x31,}}, {0x3A9E,4,{0x82,0x31,0x9B,0x32,}}, {0x3A9F,4,{0x82,0x31,0x9B,0x33,}}, {0x3AA0,4,{0x82,0x31,0x9B,0x34,}}, {0x3AA1,4,{0x82,0x31,0x9B,0x35,}}, {0x3AA2,4,{0x82,0x31,0x9B,0x36,}}, {0x3AA3,4,{0x82,0x31,0x9B,0x37,}}, {0x3AA4,4,{0x82,0x31,0x9B,0x38,}}, {0x3AA5,4,{0x82,0x31,0x9B,0x39,}}, {0x3AA6,4,{0x82,0x31,0x9C,0x30,}}, {0x3AA7,4,{0x82,0x31,0x9C,0x31,}}, {0x3AA8,4,{0x82,0x31,0x9C,0x32,}}, {0x3AA9,4,{0x82,0x31,0x9C,0x33,}}, {0x3AAA,4,{0x82,0x31,0x9C,0x34,}}, {0x3AAB,4,{0x82,0x31,0x9C,0x35,}}, {0x3AAC,4,{0x82,0x31,0x9C,0x36,}}, {0x3AAD,4,{0x82,0x31,0x9C,0x37,}}, {0x3AAE,4,{0x82,0x31,0x9C,0x38,}}, {0x3AAF,4,{0x82,0x31,0x9C,0x39,}}, {0x3AB0,4,{0x82,0x31,0x9D,0x30,}}, {0x3AB1,4,{0x82,0x31,0x9D,0x31,}}, {0x3AB2,4,{0x82,0x31,0x9D,0x32,}}, {0x3AB3,4,{0x82,0x31,0x9D,0x33,}}, {0x3AB4,4,{0x82,0x31,0x9D,0x34,}}, {0x3AB5,4,{0x82,0x31,0x9D,0x35,}}, {0x3AB6,4,{0x82,0x31,0x9D,0x36,}}, {0x3AB7,4,{0x82,0x31,0x9D,0x37,}}, {0x3AB8,4,{0x82,0x31,0x9D,0x38,}}, {0x3AB9,4,{0x82,0x31,0x9D,0x39,}}, {0x3ABA,4,{0x82,0x31,0x9E,0x30,}}, {0x3ABB,4,{0x82,0x31,0x9E,0x31,}}, {0x3ABC,4,{0x82,0x31,0x9E,0x32,}}, {0x3ABD,4,{0x82,0x31,0x9E,0x33,}}, {0x3ABE,4,{0x82,0x31,0x9E,0x34,}}, {0x3ABF,4,{0x82,0x31,0x9E,0x35,}}, {0x3AC0,4,{0x82,0x31,0x9E,0x36,}}, {0x3AC1,4,{0x82,0x31,0x9E,0x37,}}, {0x3AC2,4,{0x82,0x31,0x9E,0x38,}}, {0x3AC3,4,{0x82,0x31,0x9E,0x39,}}, {0x3AC4,4,{0x82,0x31,0x9F,0x30,}}, {0x3AC5,4,{0x82,0x31,0x9F,0x31,}}, {0x3AC6,4,{0x82,0x31,0x9F,0x32,}}, {0x3AC7,4,{0x82,0x31,0x9F,0x33,}}, {0x3AC8,4,{0x82,0x31,0x9F,0x34,}}, {0x3AC9,4,{0x82,0x31,0x9F,0x35,}}, {0x3ACA,4,{0x82,0x31,0x9F,0x36,}}, {0x3ACB,4,{0x82,0x31,0x9F,0x37,}}, {0x3ACC,4,{0x82,0x31,0x9F,0x38,}}, {0x3ACD,4,{0x82,0x31,0x9F,0x39,}}, {0x3ACE,4,{0x82,0x31,0xA0,0x30,}}, {0x3ACF,4,{0x82,0x31,0xA0,0x31,}}, {0x3AD0,4,{0x82,0x31,0xA0,0x32,}}, {0x3AD1,4,{0x82,0x31,0xA0,0x33,}}, {0x3AD2,4,{0x82,0x31,0xA0,0x34,}}, {0x3AD3,4,{0x82,0x31,0xA0,0x35,}}, {0x3AD4,4,{0x82,0x31,0xA0,0x36,}}, {0x3AD5,4,{0x82,0x31,0xA0,0x37,}}, {0x3AD6,4,{0x82,0x31,0xA0,0x38,}}, {0x3AD7,4,{0x82,0x31,0xA0,0x39,}}, {0x3AD8,4,{0x82,0x31,0xA1,0x30,}}, {0x3AD9,4,{0x82,0x31,0xA1,0x31,}}, {0x3ADA,4,{0x82,0x31,0xA1,0x32,}}, {0x3ADB,4,{0x82,0x31,0xA1,0x33,}}, {0x3ADC,4,{0x82,0x31,0xA1,0x34,}}, {0x3ADD,4,{0x82,0x31,0xA1,0x35,}}, {0x3ADE,4,{0x82,0x31,0xA1,0x36,}}, {0x3ADF,4,{0x82,0x31,0xA1,0x37,}}, {0x3AE0,4,{0x82,0x31,0xA1,0x38,}}, {0x3AE1,4,{0x82,0x31,0xA1,0x39,}}, {0x3AE2,4,{0x82,0x31,0xA2,0x30,}}, {0x3AE3,4,{0x82,0x31,0xA2,0x31,}}, {0x3AE4,4,{0x82,0x31,0xA2,0x32,}}, {0x3AE5,4,{0x82,0x31,0xA2,0x33,}}, {0x3AE6,4,{0x82,0x31,0xA2,0x34,}}, {0x3AE7,4,{0x82,0x31,0xA2,0x35,}}, {0x3AE8,4,{0x82,0x31,0xA2,0x36,}}, {0x3AE9,4,{0x82,0x31,0xA2,0x37,}}, {0x3AEA,4,{0x82,0x31,0xA2,0x38,}}, {0x3AEB,4,{0x82,0x31,0xA2,0x39,}}, {0x3AEC,4,{0x82,0x31,0xA3,0x30,}}, {0x3AED,4,{0x82,0x31,0xA3,0x31,}}, {0x3AEE,4,{0x82,0x31,0xA3,0x32,}}, {0x3AEF,4,{0x82,0x31,0xA3,0x33,}}, {0x3AF0,4,{0x82,0x31,0xA3,0x34,}}, {0x3AF1,4,{0x82,0x31,0xA3,0x35,}}, {0x3AF2,4,{0x82,0x31,0xA3,0x36,}}, {0x3AF3,4,{0x82,0x31,0xA3,0x37,}}, {0x3AF4,4,{0x82,0x31,0xA3,0x38,}}, {0x3AF5,4,{0x82,0x31,0xA3,0x39,}}, {0x3AF6,4,{0x82,0x31,0xA4,0x30,}}, {0x3AF7,4,{0x82,0x31,0xA4,0x31,}}, {0x3AF8,4,{0x82,0x31,0xA4,0x32,}}, {0x3AF9,4,{0x82,0x31,0xA4,0x33,}}, {0x3AFA,4,{0x82,0x31,0xA4,0x34,}}, {0x3AFB,4,{0x82,0x31,0xA4,0x35,}}, {0x3AFC,4,{0x82,0x31,0xA4,0x36,}}, {0x3AFD,4,{0x82,0x31,0xA4,0x37,}}, {0x3AFE,4,{0x82,0x31,0xA4,0x38,}}, {0x3AFF,4,{0x82,0x31,0xA4,0x39,}}, {0x3B00,4,{0x82,0x31,0xA5,0x30,}}, {0x3B01,4,{0x82,0x31,0xA5,0x31,}}, {0x3B02,4,{0x82,0x31,0xA5,0x32,}}, {0x3B03,4,{0x82,0x31,0xA5,0x33,}}, {0x3B04,4,{0x82,0x31,0xA5,0x34,}}, {0x3B05,4,{0x82,0x31,0xA5,0x35,}}, {0x3B06,4,{0x82,0x31,0xA5,0x36,}}, {0x3B07,4,{0x82,0x31,0xA5,0x37,}}, {0x3B08,4,{0x82,0x31,0xA5,0x38,}}, {0x3B09,4,{0x82,0x31,0xA5,0x39,}}, {0x3B0A,4,{0x82,0x31,0xA6,0x30,}}, {0x3B0B,4,{0x82,0x31,0xA6,0x31,}}, {0x3B0C,4,{0x82,0x31,0xA6,0x32,}}, {0x3B0D,4,{0x82,0x31,0xA6,0x33,}}, {0x3B0E,4,{0x82,0x31,0xA6,0x34,}}, {0x3B0F,4,{0x82,0x31,0xA6,0x35,}}, {0x3B10,4,{0x82,0x31,0xA6,0x36,}}, {0x3B11,4,{0x82,0x31,0xA6,0x37,}}, {0x3B12,4,{0x82,0x31,0xA6,0x38,}}, {0x3B13,4,{0x82,0x31,0xA6,0x39,}}, {0x3B14,4,{0x82,0x31,0xA7,0x30,}}, {0x3B15,4,{0x82,0x31,0xA7,0x31,}}, {0x3B16,4,{0x82,0x31,0xA7,0x32,}}, {0x3B17,4,{0x82,0x31,0xA7,0x33,}}, {0x3B18,4,{0x82,0x31,0xA7,0x34,}}, {0x3B19,4,{0x82,0x31,0xA7,0x35,}}, {0x3B1A,4,{0x82,0x31,0xA7,0x36,}}, {0x3B1B,4,{0x82,0x31,0xA7,0x37,}}, {0x3B1C,4,{0x82,0x31,0xA7,0x38,}}, {0x3B1D,4,{0x82,0x31,0xA7,0x39,}}, {0x3B1E,4,{0x82,0x31,0xA8,0x30,}}, {0x3B1F,4,{0x82,0x31,0xA8,0x31,}}, {0x3B20,4,{0x82,0x31,0xA8,0x32,}}, {0x3B21,4,{0x82,0x31,0xA8,0x33,}}, {0x3B22,4,{0x82,0x31,0xA8,0x34,}}, {0x3B23,4,{0x82,0x31,0xA8,0x35,}}, {0x3B24,4,{0x82,0x31,0xA8,0x36,}}, {0x3B25,4,{0x82,0x31,0xA8,0x37,}}, {0x3B26,4,{0x82,0x31,0xA8,0x38,}}, {0x3B27,4,{0x82,0x31,0xA8,0x39,}}, {0x3B28,4,{0x82,0x31,0xA9,0x30,}}, {0x3B29,4,{0x82,0x31,0xA9,0x31,}}, {0x3B2A,4,{0x82,0x31,0xA9,0x32,}}, {0x3B2B,4,{0x82,0x31,0xA9,0x33,}}, {0x3B2C,4,{0x82,0x31,0xA9,0x34,}}, {0x3B2D,4,{0x82,0x31,0xA9,0x35,}}, {0x3B2E,4,{0x82,0x31,0xA9,0x36,}}, {0x3B2F,4,{0x82,0x31,0xA9,0x37,}}, {0x3B30,4,{0x82,0x31,0xA9,0x38,}}, {0x3B31,4,{0x82,0x31,0xA9,0x39,}}, {0x3B32,4,{0x82,0x31,0xAA,0x30,}}, {0x3B33,4,{0x82,0x31,0xAA,0x31,}}, {0x3B34,4,{0x82,0x31,0xAA,0x32,}}, {0x3B35,4,{0x82,0x31,0xAA,0x33,}}, {0x3B36,4,{0x82,0x31,0xAA,0x34,}}, {0x3B37,4,{0x82,0x31,0xAA,0x35,}}, {0x3B38,4,{0x82,0x31,0xAA,0x36,}}, {0x3B39,4,{0x82,0x31,0xAA,0x37,}}, {0x3B3A,4,{0x82,0x31,0xAA,0x38,}}, {0x3B3B,4,{0x82,0x31,0xAA,0x39,}}, {0x3B3C,4,{0x82,0x31,0xAB,0x30,}}, {0x3B3D,4,{0x82,0x31,0xAB,0x31,}}, {0x3B3E,4,{0x82,0x31,0xAB,0x32,}}, {0x3B3F,4,{0x82,0x31,0xAB,0x33,}}, {0x3B40,4,{0x82,0x31,0xAB,0x34,}}, {0x3B41,4,{0x82,0x31,0xAB,0x35,}}, {0x3B42,4,{0x82,0x31,0xAB,0x36,}}, {0x3B43,4,{0x82,0x31,0xAB,0x37,}}, {0x3B44,4,{0x82,0x31,0xAB,0x38,}}, {0x3B45,4,{0x82,0x31,0xAB,0x39,}}, {0x3B46,4,{0x82,0x31,0xAC,0x30,}}, {0x3B47,4,{0x82,0x31,0xAC,0x31,}}, {0x3B48,4,{0x82,0x31,0xAC,0x32,}}, {0x3B49,4,{0x82,0x31,0xAC,0x33,}}, {0x3B4A,4,{0x82,0x31,0xAC,0x34,}}, {0x3B4B,4,{0x82,0x31,0xAC,0x35,}}, {0x3B4C,4,{0x82,0x31,0xAC,0x36,}}, {0x3B4D,4,{0x82,0x31,0xAC,0x37,}}, {0x3B4E,2,{0xFE,0x68,0x00,0x00,}}, {0x3B4F,4,{0x82,0x31,0xAC,0x38,}}, {0x3B50,4,{0x82,0x31,0xAC,0x39,}}, {0x3B51,4,{0x82,0x31,0xAD,0x30,}}, {0x3B52,4,{0x82,0x31,0xAD,0x31,}}, {0x3B53,4,{0x82,0x31,0xAD,0x32,}}, {0x3B54,4,{0x82,0x31,0xAD,0x33,}}, {0x3B55,4,{0x82,0x31,0xAD,0x34,}}, {0x3B56,4,{0x82,0x31,0xAD,0x35,}}, {0x3B57,4,{0x82,0x31,0xAD,0x36,}}, {0x3B58,4,{0x82,0x31,0xAD,0x37,}}, {0x3B59,4,{0x82,0x31,0xAD,0x38,}}, {0x3B5A,4,{0x82,0x31,0xAD,0x39,}}, {0x3B5B,4,{0x82,0x31,0xAE,0x30,}}, {0x3B5C,4,{0x82,0x31,0xAE,0x31,}}, {0x3B5D,4,{0x82,0x31,0xAE,0x32,}}, {0x3B5E,4,{0x82,0x31,0xAE,0x33,}}, {0x3B5F,4,{0x82,0x31,0xAE,0x34,}}, {0x3B60,4,{0x82,0x31,0xAE,0x35,}}, {0x3B61,4,{0x82,0x31,0xAE,0x36,}}, {0x3B62,4,{0x82,0x31,0xAE,0x37,}}, {0x3B63,4,{0x82,0x31,0xAE,0x38,}}, {0x3B64,4,{0x82,0x31,0xAE,0x39,}}, {0x3B65,4,{0x82,0x31,0xAF,0x30,}}, {0x3B66,4,{0x82,0x31,0xAF,0x31,}}, {0x3B67,4,{0x82,0x31,0xAF,0x32,}}, {0x3B68,4,{0x82,0x31,0xAF,0x33,}}, {0x3B69,4,{0x82,0x31,0xAF,0x34,}}, {0x3B6A,4,{0x82,0x31,0xAF,0x35,}}, {0x3B6B,4,{0x82,0x31,0xAF,0x36,}}, {0x3B6C,4,{0x82,0x31,0xAF,0x37,}}, {0x3B6D,4,{0x82,0x31,0xAF,0x38,}}, {0x3B6E,4,{0x82,0x31,0xAF,0x39,}}, {0x3B6F,4,{0x82,0x31,0xB0,0x30,}}, {0x3B70,4,{0x82,0x31,0xB0,0x31,}}, {0x3B71,4,{0x82,0x31,0xB0,0x32,}}, {0x3B72,4,{0x82,0x31,0xB0,0x33,}}, {0x3B73,4,{0x82,0x31,0xB0,0x34,}}, {0x3B74,4,{0x82,0x31,0xB0,0x35,}}, {0x3B75,4,{0x82,0x31,0xB0,0x36,}}, {0x3B76,4,{0x82,0x31,0xB0,0x37,}}, {0x3B77,4,{0x82,0x31,0xB0,0x38,}}, {0x3B78,4,{0x82,0x31,0xB0,0x39,}}, {0x3B79,4,{0x82,0x31,0xB1,0x30,}}, {0x3B7A,4,{0x82,0x31,0xB1,0x31,}}, {0x3B7B,4,{0x82,0x31,0xB1,0x32,}}, {0x3B7C,4,{0x82,0x31,0xB1,0x33,}}, {0x3B7D,4,{0x82,0x31,0xB1,0x34,}}, {0x3B7E,4,{0x82,0x31,0xB1,0x35,}}, {0x3B7F,4,{0x82,0x31,0xB1,0x36,}}, {0x3B80,4,{0x82,0x31,0xB1,0x37,}}, {0x3B81,4,{0x82,0x31,0xB1,0x38,}}, {0x3B82,4,{0x82,0x31,0xB1,0x39,}}, {0x3B83,4,{0x82,0x31,0xB2,0x30,}}, {0x3B84,4,{0x82,0x31,0xB2,0x31,}}, {0x3B85,4,{0x82,0x31,0xB2,0x32,}}, {0x3B86,4,{0x82,0x31,0xB2,0x33,}}, {0x3B87,4,{0x82,0x31,0xB2,0x34,}}, {0x3B88,4,{0x82,0x31,0xB2,0x35,}}, {0x3B89,4,{0x82,0x31,0xB2,0x36,}}, {0x3B8A,4,{0x82,0x31,0xB2,0x37,}}, {0x3B8B,4,{0x82,0x31,0xB2,0x38,}}, {0x3B8C,4,{0x82,0x31,0xB2,0x39,}}, {0x3B8D,4,{0x82,0x31,0xB3,0x30,}}, {0x3B8E,4,{0x82,0x31,0xB3,0x31,}}, {0x3B8F,4,{0x82,0x31,0xB3,0x32,}}, {0x3B90,4,{0x82,0x31,0xB3,0x33,}}, {0x3B91,4,{0x82,0x31,0xB3,0x34,}}, {0x3B92,4,{0x82,0x31,0xB3,0x35,}}, {0x3B93,4,{0x82,0x31,0xB3,0x36,}}, {0x3B94,4,{0x82,0x31,0xB3,0x37,}}, {0x3B95,4,{0x82,0x31,0xB3,0x38,}}, {0x3B96,4,{0x82,0x31,0xB3,0x39,}}, {0x3B97,4,{0x82,0x31,0xB4,0x30,}}, {0x3B98,4,{0x82,0x31,0xB4,0x31,}}, {0x3B99,4,{0x82,0x31,0xB4,0x32,}}, {0x3B9A,4,{0x82,0x31,0xB4,0x33,}}, {0x3B9B,4,{0x82,0x31,0xB4,0x34,}}, {0x3B9C,4,{0x82,0x31,0xB4,0x35,}}, {0x3B9D,4,{0x82,0x31,0xB4,0x36,}}, {0x3B9E,4,{0x82,0x31,0xB4,0x37,}}, {0x3B9F,4,{0x82,0x31,0xB4,0x38,}}, {0x3BA0,4,{0x82,0x31,0xB4,0x39,}}, {0x3BA1,4,{0x82,0x31,0xB5,0x30,}}, {0x3BA2,4,{0x82,0x31,0xB5,0x31,}}, {0x3BA3,4,{0x82,0x31,0xB5,0x32,}}, {0x3BA4,4,{0x82,0x31,0xB5,0x33,}}, {0x3BA5,4,{0x82,0x31,0xB5,0x34,}}, {0x3BA6,4,{0x82,0x31,0xB5,0x35,}}, {0x3BA7,4,{0x82,0x31,0xB5,0x36,}}, {0x3BA8,4,{0x82,0x31,0xB5,0x37,}}, {0x3BA9,4,{0x82,0x31,0xB5,0x38,}}, {0x3BAA,4,{0x82,0x31,0xB5,0x39,}}, {0x3BAB,4,{0x82,0x31,0xB6,0x30,}}, {0x3BAC,4,{0x82,0x31,0xB6,0x31,}}, {0x3BAD,4,{0x82,0x31,0xB6,0x32,}}, {0x3BAE,4,{0x82,0x31,0xB6,0x33,}}, {0x3BAF,4,{0x82,0x31,0xB6,0x34,}}, {0x3BB0,4,{0x82,0x31,0xB6,0x35,}}, {0x3BB1,4,{0x82,0x31,0xB6,0x36,}}, {0x3BB2,4,{0x82,0x31,0xB6,0x37,}}, {0x3BB3,4,{0x82,0x31,0xB6,0x38,}}, {0x3BB4,4,{0x82,0x31,0xB6,0x39,}}, {0x3BB5,4,{0x82,0x31,0xB7,0x30,}}, {0x3BB6,4,{0x82,0x31,0xB7,0x31,}}, {0x3BB7,4,{0x82,0x31,0xB7,0x32,}}, {0x3BB8,4,{0x82,0x31,0xB7,0x33,}}, {0x3BB9,4,{0x82,0x31,0xB7,0x34,}}, {0x3BBA,4,{0x82,0x31,0xB7,0x35,}}, {0x3BBB,4,{0x82,0x31,0xB7,0x36,}}, {0x3BBC,4,{0x82,0x31,0xB7,0x37,}}, {0x3BBD,4,{0x82,0x31,0xB7,0x38,}}, {0x3BBE,4,{0x82,0x31,0xB7,0x39,}}, {0x3BBF,4,{0x82,0x31,0xB8,0x30,}}, {0x3BC0,4,{0x82,0x31,0xB8,0x31,}}, {0x3BC1,4,{0x82,0x31,0xB8,0x32,}}, {0x3BC2,4,{0x82,0x31,0xB8,0x33,}}, {0x3BC3,4,{0x82,0x31,0xB8,0x34,}}, {0x3BC4,4,{0x82,0x31,0xB8,0x35,}}, {0x3BC5,4,{0x82,0x31,0xB8,0x36,}}, {0x3BC6,4,{0x82,0x31,0xB8,0x37,}}, {0x3BC7,4,{0x82,0x31,0xB8,0x38,}}, {0x3BC8,4,{0x82,0x31,0xB8,0x39,}}, {0x3BC9,4,{0x82,0x31,0xB9,0x30,}}, {0x3BCA,4,{0x82,0x31,0xB9,0x31,}}, {0x3BCB,4,{0x82,0x31,0xB9,0x32,}}, {0x3BCC,4,{0x82,0x31,0xB9,0x33,}}, {0x3BCD,4,{0x82,0x31,0xB9,0x34,}}, {0x3BCE,4,{0x82,0x31,0xB9,0x35,}}, {0x3BCF,4,{0x82,0x31,0xB9,0x36,}}, {0x3BD0,4,{0x82,0x31,0xB9,0x37,}}, {0x3BD1,4,{0x82,0x31,0xB9,0x38,}}, {0x3BD2,4,{0x82,0x31,0xB9,0x39,}}, {0x3BD3,4,{0x82,0x31,0xBA,0x30,}}, {0x3BD4,4,{0x82,0x31,0xBA,0x31,}}, {0x3BD5,4,{0x82,0x31,0xBA,0x32,}}, {0x3BD6,4,{0x82,0x31,0xBA,0x33,}}, {0x3BD7,4,{0x82,0x31,0xBA,0x34,}}, {0x3BD8,4,{0x82,0x31,0xBA,0x35,}}, {0x3BD9,4,{0x82,0x31,0xBA,0x36,}}, {0x3BDA,4,{0x82,0x31,0xBA,0x37,}}, {0x3BDB,4,{0x82,0x31,0xBA,0x38,}}, {0x3BDC,4,{0x82,0x31,0xBA,0x39,}}, {0x3BDD,4,{0x82,0x31,0xBB,0x30,}}, {0x3BDE,4,{0x82,0x31,0xBB,0x31,}}, {0x3BDF,4,{0x82,0x31,0xBB,0x32,}}, {0x3BE0,4,{0x82,0x31,0xBB,0x33,}}, {0x3BE1,4,{0x82,0x31,0xBB,0x34,}}, {0x3BE2,4,{0x82,0x31,0xBB,0x35,}}, {0x3BE3,4,{0x82,0x31,0xBB,0x36,}}, {0x3BE4,4,{0x82,0x31,0xBB,0x37,}}, {0x3BE5,4,{0x82,0x31,0xBB,0x38,}}, {0x3BE6,4,{0x82,0x31,0xBB,0x39,}}, {0x3BE7,4,{0x82,0x31,0xBC,0x30,}}, {0x3BE8,4,{0x82,0x31,0xBC,0x31,}}, {0x3BE9,4,{0x82,0x31,0xBC,0x32,}}, {0x3BEA,4,{0x82,0x31,0xBC,0x33,}}, {0x3BEB,4,{0x82,0x31,0xBC,0x34,}}, {0x3BEC,4,{0x82,0x31,0xBC,0x35,}}, {0x3BED,4,{0x82,0x31,0xBC,0x36,}}, {0x3BEE,4,{0x82,0x31,0xBC,0x37,}}, {0x3BEF,4,{0x82,0x31,0xBC,0x38,}}, {0x3BF0,4,{0x82,0x31,0xBC,0x39,}}, {0x3BF1,4,{0x82,0x31,0xBD,0x30,}}, {0x3BF2,4,{0x82,0x31,0xBD,0x31,}}, {0x3BF3,4,{0x82,0x31,0xBD,0x32,}}, {0x3BF4,4,{0x82,0x31,0xBD,0x33,}}, {0x3BF5,4,{0x82,0x31,0xBD,0x34,}}, {0x3BF6,4,{0x82,0x31,0xBD,0x35,}}, {0x3BF7,4,{0x82,0x31,0xBD,0x36,}}, {0x3BF8,4,{0x82,0x31,0xBD,0x37,}}, {0x3BF9,4,{0x82,0x31,0xBD,0x38,}}, {0x3BFA,4,{0x82,0x31,0xBD,0x39,}}, {0x3BFB,4,{0x82,0x31,0xBE,0x30,}}, {0x3BFC,4,{0x82,0x31,0xBE,0x31,}}, {0x3BFD,4,{0x82,0x31,0xBE,0x32,}}, {0x3BFE,4,{0x82,0x31,0xBE,0x33,}}, {0x3BFF,4,{0x82,0x31,0xBE,0x34,}}, {0x3C00,4,{0x82,0x31,0xBE,0x35,}}, {0x3C01,4,{0x82,0x31,0xBE,0x36,}}, {0x3C02,4,{0x82,0x31,0xBE,0x37,}}, {0x3C03,4,{0x82,0x31,0xBE,0x38,}}, {0x3C04,4,{0x82,0x31,0xBE,0x39,}}, {0x3C05,4,{0x82,0x31,0xBF,0x30,}}, {0x3C06,4,{0x82,0x31,0xBF,0x31,}}, {0x3C07,4,{0x82,0x31,0xBF,0x32,}}, {0x3C08,4,{0x82,0x31,0xBF,0x33,}}, {0x3C09,4,{0x82,0x31,0xBF,0x34,}}, {0x3C0A,4,{0x82,0x31,0xBF,0x35,}}, {0x3C0B,4,{0x82,0x31,0xBF,0x36,}}, {0x3C0C,4,{0x82,0x31,0xBF,0x37,}}, {0x3C0D,4,{0x82,0x31,0xBF,0x38,}}, {0x3C0E,4,{0x82,0x31,0xBF,0x39,}}, {0x3C0F,4,{0x82,0x31,0xC0,0x30,}}, {0x3C10,4,{0x82,0x31,0xC0,0x31,}}, {0x3C11,4,{0x82,0x31,0xC0,0x32,}}, {0x3C12,4,{0x82,0x31,0xC0,0x33,}}, {0x3C13,4,{0x82,0x31,0xC0,0x34,}}, {0x3C14,4,{0x82,0x31,0xC0,0x35,}}, {0x3C15,4,{0x82,0x31,0xC0,0x36,}}, {0x3C16,4,{0x82,0x31,0xC0,0x37,}}, {0x3C17,4,{0x82,0x31,0xC0,0x38,}}, {0x3C18,4,{0x82,0x31,0xC0,0x39,}}, {0x3C19,4,{0x82,0x31,0xC1,0x30,}}, {0x3C1A,4,{0x82,0x31,0xC1,0x31,}}, {0x3C1B,4,{0x82,0x31,0xC1,0x32,}}, {0x3C1C,4,{0x82,0x31,0xC1,0x33,}}, {0x3C1D,4,{0x82,0x31,0xC1,0x34,}}, {0x3C1E,4,{0x82,0x31,0xC1,0x35,}}, {0x3C1F,4,{0x82,0x31,0xC1,0x36,}}, {0x3C20,4,{0x82,0x31,0xC1,0x37,}}, {0x3C21,4,{0x82,0x31,0xC1,0x38,}}, {0x3C22,4,{0x82,0x31,0xC1,0x39,}}, {0x3C23,4,{0x82,0x31,0xC2,0x30,}}, {0x3C24,4,{0x82,0x31,0xC2,0x31,}}, {0x3C25,4,{0x82,0x31,0xC2,0x32,}}, {0x3C26,4,{0x82,0x31,0xC2,0x33,}}, {0x3C27,4,{0x82,0x31,0xC2,0x34,}}, {0x3C28,4,{0x82,0x31,0xC2,0x35,}}, {0x3C29,4,{0x82,0x31,0xC2,0x36,}}, {0x3C2A,4,{0x82,0x31,0xC2,0x37,}}, {0x3C2B,4,{0x82,0x31,0xC2,0x38,}}, {0x3C2C,4,{0x82,0x31,0xC2,0x39,}}, {0x3C2D,4,{0x82,0x31,0xC3,0x30,}}, {0x3C2E,4,{0x82,0x31,0xC3,0x31,}}, {0x3C2F,4,{0x82,0x31,0xC3,0x32,}}, {0x3C30,4,{0x82,0x31,0xC3,0x33,}}, {0x3C31,4,{0x82,0x31,0xC3,0x34,}}, {0x3C32,4,{0x82,0x31,0xC3,0x35,}}, {0x3C33,4,{0x82,0x31,0xC3,0x36,}}, {0x3C34,4,{0x82,0x31,0xC3,0x37,}}, {0x3C35,4,{0x82,0x31,0xC3,0x38,}}, {0x3C36,4,{0x82,0x31,0xC3,0x39,}}, {0x3C37,4,{0x82,0x31,0xC4,0x30,}}, {0x3C38,4,{0x82,0x31,0xC4,0x31,}}, {0x3C39,4,{0x82,0x31,0xC4,0x32,}}, {0x3C3A,4,{0x82,0x31,0xC4,0x33,}}, {0x3C3B,4,{0x82,0x31,0xC4,0x34,}}, {0x3C3C,4,{0x82,0x31,0xC4,0x35,}}, {0x3C3D,4,{0x82,0x31,0xC4,0x36,}}, {0x3C3E,4,{0x82,0x31,0xC4,0x37,}}, {0x3C3F,4,{0x82,0x31,0xC4,0x38,}}, {0x3C40,4,{0x82,0x31,0xC4,0x39,}}, {0x3C41,4,{0x82,0x31,0xC5,0x30,}}, {0x3C42,4,{0x82,0x31,0xC5,0x31,}}, {0x3C43,4,{0x82,0x31,0xC5,0x32,}}, {0x3C44,4,{0x82,0x31,0xC5,0x33,}}, {0x3C45,4,{0x82,0x31,0xC5,0x34,}}, {0x3C46,4,{0x82,0x31,0xC5,0x35,}}, {0x3C47,4,{0x82,0x31,0xC5,0x36,}}, {0x3C48,4,{0x82,0x31,0xC5,0x37,}}, {0x3C49,4,{0x82,0x31,0xC5,0x38,}}, {0x3C4A,4,{0x82,0x31,0xC5,0x39,}}, {0x3C4B,4,{0x82,0x31,0xC6,0x30,}}, {0x3C4C,4,{0x82,0x31,0xC6,0x31,}}, {0x3C4D,4,{0x82,0x31,0xC6,0x32,}}, {0x3C4E,4,{0x82,0x31,0xC6,0x33,}}, {0x3C4F,4,{0x82,0x31,0xC6,0x34,}}, {0x3C50,4,{0x82,0x31,0xC6,0x35,}}, {0x3C51,4,{0x82,0x31,0xC6,0x36,}}, {0x3C52,4,{0x82,0x31,0xC6,0x37,}}, {0x3C53,4,{0x82,0x31,0xC6,0x38,}}, {0x3C54,4,{0x82,0x31,0xC6,0x39,}}, {0x3C55,4,{0x82,0x31,0xC7,0x30,}}, {0x3C56,4,{0x82,0x31,0xC7,0x31,}}, {0x3C57,4,{0x82,0x31,0xC7,0x32,}}, {0x3C58,4,{0x82,0x31,0xC7,0x33,}}, {0x3C59,4,{0x82,0x31,0xC7,0x34,}}, {0x3C5A,4,{0x82,0x31,0xC7,0x35,}}, {0x3C5B,4,{0x82,0x31,0xC7,0x36,}}, {0x3C5C,4,{0x82,0x31,0xC7,0x37,}}, {0x3C5D,4,{0x82,0x31,0xC7,0x38,}}, {0x3C5E,4,{0x82,0x31,0xC7,0x39,}}, {0x3C5F,4,{0x82,0x31,0xC8,0x30,}}, {0x3C60,4,{0x82,0x31,0xC8,0x31,}}, {0x3C61,4,{0x82,0x31,0xC8,0x32,}}, {0x3C62,4,{0x82,0x31,0xC8,0x33,}}, {0x3C63,4,{0x82,0x31,0xC8,0x34,}}, {0x3C64,4,{0x82,0x31,0xC8,0x35,}}, {0x3C65,4,{0x82,0x31,0xC8,0x36,}}, {0x3C66,4,{0x82,0x31,0xC8,0x37,}}, {0x3C67,4,{0x82,0x31,0xC8,0x38,}}, {0x3C68,4,{0x82,0x31,0xC8,0x39,}}, {0x3C69,4,{0x82,0x31,0xC9,0x30,}}, {0x3C6A,4,{0x82,0x31,0xC9,0x31,}}, {0x3C6B,4,{0x82,0x31,0xC9,0x32,}}, {0x3C6C,4,{0x82,0x31,0xC9,0x33,}}, {0x3C6D,4,{0x82,0x31,0xC9,0x34,}}, {0x3C6E,2,{0xFE,0x69,0x00,0x00,}}, {0x3C6F,4,{0x82,0x31,0xC9,0x35,}}, {0x3C70,4,{0x82,0x31,0xC9,0x36,}}, {0x3C71,4,{0x82,0x31,0xC9,0x37,}}, {0x3C72,4,{0x82,0x31,0xC9,0x38,}}, {0x3C73,4,{0x82,0x31,0xC9,0x39,}}, {0x3C74,4,{0x82,0x31,0xCA,0x30,}}, {0x3C75,4,{0x82,0x31,0xCA,0x31,}}, {0x3C76,4,{0x82,0x31,0xCA,0x32,}}, {0x3C77,4,{0x82,0x31,0xCA,0x33,}}, {0x3C78,4,{0x82,0x31,0xCA,0x34,}}, {0x3C79,4,{0x82,0x31,0xCA,0x35,}}, {0x3C7A,4,{0x82,0x31,0xCA,0x36,}}, {0x3C7B,4,{0x82,0x31,0xCA,0x37,}}, {0x3C7C,4,{0x82,0x31,0xCA,0x38,}}, {0x3C7D,4,{0x82,0x31,0xCA,0x39,}}, {0x3C7E,4,{0x82,0x31,0xCB,0x30,}}, {0x3C7F,4,{0x82,0x31,0xCB,0x31,}}, {0x3C80,4,{0x82,0x31,0xCB,0x32,}}, {0x3C81,4,{0x82,0x31,0xCB,0x33,}}, {0x3C82,4,{0x82,0x31,0xCB,0x34,}}, {0x3C83,4,{0x82,0x31,0xCB,0x35,}}, {0x3C84,4,{0x82,0x31,0xCB,0x36,}}, {0x3C85,4,{0x82,0x31,0xCB,0x37,}}, {0x3C86,4,{0x82,0x31,0xCB,0x38,}}, {0x3C87,4,{0x82,0x31,0xCB,0x39,}}, {0x3C88,4,{0x82,0x31,0xCC,0x30,}}, {0x3C89,4,{0x82,0x31,0xCC,0x31,}}, {0x3C8A,4,{0x82,0x31,0xCC,0x32,}}, {0x3C8B,4,{0x82,0x31,0xCC,0x33,}}, {0x3C8C,4,{0x82,0x31,0xCC,0x34,}}, {0x3C8D,4,{0x82,0x31,0xCC,0x35,}}, {0x3C8E,4,{0x82,0x31,0xCC,0x36,}}, {0x3C8F,4,{0x82,0x31,0xCC,0x37,}}, {0x3C90,4,{0x82,0x31,0xCC,0x38,}}, {0x3C91,4,{0x82,0x31,0xCC,0x39,}}, {0x3C92,4,{0x82,0x31,0xCD,0x30,}}, {0x3C93,4,{0x82,0x31,0xCD,0x31,}}, {0x3C94,4,{0x82,0x31,0xCD,0x32,}}, {0x3C95,4,{0x82,0x31,0xCD,0x33,}}, {0x3C96,4,{0x82,0x31,0xCD,0x34,}}, {0x3C97,4,{0x82,0x31,0xCD,0x35,}}, {0x3C98,4,{0x82,0x31,0xCD,0x36,}}, {0x3C99,4,{0x82,0x31,0xCD,0x37,}}, {0x3C9A,4,{0x82,0x31,0xCD,0x38,}}, {0x3C9B,4,{0x82,0x31,0xCD,0x39,}}, {0x3C9C,4,{0x82,0x31,0xCE,0x30,}}, {0x3C9D,4,{0x82,0x31,0xCE,0x31,}}, {0x3C9E,4,{0x82,0x31,0xCE,0x32,}}, {0x3C9F,4,{0x82,0x31,0xCE,0x33,}}, {0x3CA0,4,{0x82,0x31,0xCE,0x34,}}, {0x3CA1,4,{0x82,0x31,0xCE,0x35,}}, {0x3CA2,4,{0x82,0x31,0xCE,0x36,}}, {0x3CA3,4,{0x82,0x31,0xCE,0x37,}}, {0x3CA4,4,{0x82,0x31,0xCE,0x38,}}, {0x3CA5,4,{0x82,0x31,0xCE,0x39,}}, {0x3CA6,4,{0x82,0x31,0xCF,0x30,}}, {0x3CA7,4,{0x82,0x31,0xCF,0x31,}}, {0x3CA8,4,{0x82,0x31,0xCF,0x32,}}, {0x3CA9,4,{0x82,0x31,0xCF,0x33,}}, {0x3CAA,4,{0x82,0x31,0xCF,0x34,}}, {0x3CAB,4,{0x82,0x31,0xCF,0x35,}}, {0x3CAC,4,{0x82,0x31,0xCF,0x36,}}, {0x3CAD,4,{0x82,0x31,0xCF,0x37,}}, {0x3CAE,4,{0x82,0x31,0xCF,0x38,}}, {0x3CAF,4,{0x82,0x31,0xCF,0x39,}}, {0x3CB0,4,{0x82,0x31,0xD0,0x30,}}, {0x3CB1,4,{0x82,0x31,0xD0,0x31,}}, {0x3CB2,4,{0x82,0x31,0xD0,0x32,}}, {0x3CB3,4,{0x82,0x31,0xD0,0x33,}}, {0x3CB4,4,{0x82,0x31,0xD0,0x34,}}, {0x3CB5,4,{0x82,0x31,0xD0,0x35,}}, {0x3CB6,4,{0x82,0x31,0xD0,0x36,}}, {0x3CB7,4,{0x82,0x31,0xD0,0x37,}}, {0x3CB8,4,{0x82,0x31,0xD0,0x38,}}, {0x3CB9,4,{0x82,0x31,0xD0,0x39,}}, {0x3CBA,4,{0x82,0x31,0xD1,0x30,}}, {0x3CBB,4,{0x82,0x31,0xD1,0x31,}}, {0x3CBC,4,{0x82,0x31,0xD1,0x32,}}, {0x3CBD,4,{0x82,0x31,0xD1,0x33,}}, {0x3CBE,4,{0x82,0x31,0xD1,0x34,}}, {0x3CBF,4,{0x82,0x31,0xD1,0x35,}}, {0x3CC0,4,{0x82,0x31,0xD1,0x36,}}, {0x3CC1,4,{0x82,0x31,0xD1,0x37,}}, {0x3CC2,4,{0x82,0x31,0xD1,0x38,}}, {0x3CC3,4,{0x82,0x31,0xD1,0x39,}}, {0x3CC4,4,{0x82,0x31,0xD2,0x30,}}, {0x3CC5,4,{0x82,0x31,0xD2,0x31,}}, {0x3CC6,4,{0x82,0x31,0xD2,0x32,}}, {0x3CC7,4,{0x82,0x31,0xD2,0x33,}}, {0x3CC8,4,{0x82,0x31,0xD2,0x34,}}, {0x3CC9,4,{0x82,0x31,0xD2,0x35,}}, {0x3CCA,4,{0x82,0x31,0xD2,0x36,}}, {0x3CCB,4,{0x82,0x31,0xD2,0x37,}}, {0x3CCC,4,{0x82,0x31,0xD2,0x38,}}, {0x3CCD,4,{0x82,0x31,0xD2,0x39,}}, {0x3CCE,4,{0x82,0x31,0xD3,0x30,}}, {0x3CCF,4,{0x82,0x31,0xD3,0x31,}}, {0x3CD0,4,{0x82,0x31,0xD3,0x32,}}, {0x3CD1,4,{0x82,0x31,0xD3,0x33,}}, {0x3CD2,4,{0x82,0x31,0xD3,0x34,}}, {0x3CD3,4,{0x82,0x31,0xD3,0x35,}}, {0x3CD4,4,{0x82,0x31,0xD3,0x36,}}, {0x3CD5,4,{0x82,0x31,0xD3,0x37,}}, {0x3CD6,4,{0x82,0x31,0xD3,0x38,}}, {0x3CD7,4,{0x82,0x31,0xD3,0x39,}}, {0x3CD8,4,{0x82,0x31,0xD4,0x30,}}, {0x3CD9,4,{0x82,0x31,0xD4,0x31,}}, {0x3CDA,4,{0x82,0x31,0xD4,0x32,}}, {0x3CDB,4,{0x82,0x31,0xD4,0x33,}}, {0x3CDC,4,{0x82,0x31,0xD4,0x34,}}, {0x3CDD,4,{0x82,0x31,0xD4,0x35,}}, {0x3CDE,4,{0x82,0x31,0xD4,0x36,}}, {0x3CDF,4,{0x82,0x31,0xD4,0x37,}}, {0x3CE0,2,{0xFE,0x6A,0x00,0x00,}}, {0x4056,2,{0xFE,0x6F,0x00,0x00,}}, {0x4057,4,{0x82,0x32,0xAF,0x33,}}, {0x4058,4,{0x82,0x32,0xAF,0x34,}}, {0x4059,4,{0x82,0x32,0xAF,0x35,}}, {0x405A,4,{0x82,0x32,0xAF,0x36,}}, {0x405B,4,{0x82,0x32,0xAF,0x37,}}, {0x405C,4,{0x82,0x32,0xAF,0x38,}}, {0x405D,4,{0x82,0x32,0xAF,0x39,}}, {0x405E,4,{0x82,0x32,0xB0,0x30,}}, {0x405F,4,{0x82,0x32,0xB0,0x31,}}, {0x4060,4,{0x82,0x32,0xB0,0x32,}}, {0x4061,4,{0x82,0x32,0xB0,0x33,}}, {0x4062,4,{0x82,0x32,0xB0,0x34,}}, {0x4063,4,{0x82,0x32,0xB0,0x35,}}, {0x4064,4,{0x82,0x32,0xB0,0x36,}}, {0x4065,4,{0x82,0x32,0xB0,0x37,}}, {0x4066,4,{0x82,0x32,0xB0,0x38,}}, {0x4067,4,{0x82,0x32,0xB0,0x39,}}, {0x4068,4,{0x82,0x32,0xB1,0x30,}}, {0x4069,4,{0x82,0x32,0xB1,0x31,}}, {0x406A,4,{0x82,0x32,0xB1,0x32,}}, {0x406B,4,{0x82,0x32,0xB1,0x33,}}, {0x406C,4,{0x82,0x32,0xB1,0x34,}}, {0x406D,4,{0x82,0x32,0xB1,0x35,}}, {0x406E,4,{0x82,0x32,0xB1,0x36,}}, {0x406F,4,{0x82,0x32,0xB1,0x37,}}, {0x4070,4,{0x82,0x32,0xB1,0x38,}}, {0x4071,4,{0x82,0x32,0xB1,0x39,}}, {0x4072,4,{0x82,0x32,0xB2,0x30,}}, {0x4073,4,{0x82,0x32,0xB2,0x31,}}, {0x4074,4,{0x82,0x32,0xB2,0x32,}}, {0x4075,4,{0x82,0x32,0xB2,0x33,}}, {0x4076,4,{0x82,0x32,0xB2,0x34,}}, {0x4077,4,{0x82,0x32,0xB2,0x35,}}, {0x4078,4,{0x82,0x32,0xB2,0x36,}}, {0x4079,4,{0x82,0x32,0xB2,0x37,}}, {0x407A,4,{0x82,0x32,0xB2,0x38,}}, {0x407B,4,{0x82,0x32,0xB2,0x39,}}, {0x407C,4,{0x82,0x32,0xB3,0x30,}}, {0x407D,4,{0x82,0x32,0xB3,0x31,}}, {0x407E,4,{0x82,0x32,0xB3,0x32,}}, {0x407F,4,{0x82,0x32,0xB3,0x33,}}, {0x4080,4,{0x82,0x32,0xB3,0x34,}}, {0x4081,4,{0x82,0x32,0xB3,0x35,}}, {0x4082,4,{0x82,0x32,0xB3,0x36,}}, {0x4083,4,{0x82,0x32,0xB3,0x37,}}, {0x4084,4,{0x82,0x32,0xB3,0x38,}}, {0x4085,4,{0x82,0x32,0xB3,0x39,}}, {0x4086,4,{0x82,0x32,0xB4,0x30,}}, {0x4087,4,{0x82,0x32,0xB4,0x31,}}, {0x4088,4,{0x82,0x32,0xB4,0x32,}}, {0x4089,4,{0x82,0x32,0xB4,0x33,}}, {0x408A,4,{0x82,0x32,0xB4,0x34,}}, {0x408B,4,{0x82,0x32,0xB4,0x35,}}, {0x408C,4,{0x82,0x32,0xB4,0x36,}}, {0x408D,4,{0x82,0x32,0xB4,0x37,}}, {0x408E,4,{0x82,0x32,0xB4,0x38,}}, {0x408F,4,{0x82,0x32,0xB4,0x39,}}, {0x4090,4,{0x82,0x32,0xB5,0x30,}}, {0x4091,4,{0x82,0x32,0xB5,0x31,}}, {0x4092,4,{0x82,0x32,0xB5,0x32,}}, {0x4093,4,{0x82,0x32,0xB5,0x33,}}, {0x4094,4,{0x82,0x32,0xB5,0x34,}}, {0x4095,4,{0x82,0x32,0xB5,0x35,}}, {0x4096,4,{0x82,0x32,0xB5,0x36,}}, {0x4097,4,{0x82,0x32,0xB5,0x37,}}, {0x4098,4,{0x82,0x32,0xB5,0x38,}}, {0x4099,4,{0x82,0x32,0xB5,0x39,}}, {0x409A,4,{0x82,0x32,0xB6,0x30,}}, {0x409B,4,{0x82,0x32,0xB6,0x31,}}, {0x409C,4,{0x82,0x32,0xB6,0x32,}}, {0x409D,4,{0x82,0x32,0xB6,0x33,}}, {0x409E,4,{0x82,0x32,0xB6,0x34,}}, {0x409F,4,{0x82,0x32,0xB6,0x35,}}, {0x40A0,4,{0x82,0x32,0xB6,0x36,}}, {0x40A1,4,{0x82,0x32,0xB6,0x37,}}, {0x40A2,4,{0x82,0x32,0xB6,0x38,}}, {0x40A3,4,{0x82,0x32,0xB6,0x39,}}, {0x40A4,4,{0x82,0x32,0xB7,0x30,}}, {0x40A5,4,{0x82,0x32,0xB7,0x31,}}, {0x40A6,4,{0x82,0x32,0xB7,0x32,}}, {0x40A7,4,{0x82,0x32,0xB7,0x33,}}, {0x40A8,4,{0x82,0x32,0xB7,0x34,}}, {0x40A9,4,{0x82,0x32,0xB7,0x35,}}, {0x40AA,4,{0x82,0x32,0xB7,0x36,}}, {0x40AB,4,{0x82,0x32,0xB7,0x37,}}, {0x40AC,4,{0x82,0x32,0xB7,0x38,}}, {0x40AD,4,{0x82,0x32,0xB7,0x39,}}, {0x40AE,4,{0x82,0x32,0xB8,0x30,}}, {0x40AF,4,{0x82,0x32,0xB8,0x31,}}, {0x40B0,4,{0x82,0x32,0xB8,0x32,}}, {0x40B1,4,{0x82,0x32,0xB8,0x33,}}, {0x40B2,4,{0x82,0x32,0xB8,0x34,}}, {0x40B3,4,{0x82,0x32,0xB8,0x35,}}, {0x40B4,4,{0x82,0x32,0xB8,0x36,}}, {0x40B5,4,{0x82,0x32,0xB8,0x37,}}, {0x40B6,4,{0x82,0x32,0xB8,0x38,}}, {0x40B7,4,{0x82,0x32,0xB8,0x39,}}, {0x40B8,4,{0x82,0x32,0xB9,0x30,}}, {0x40B9,4,{0x82,0x32,0xB9,0x31,}}, {0x40BA,4,{0x82,0x32,0xB9,0x32,}}, {0x40BB,4,{0x82,0x32,0xB9,0x33,}}, {0x40BC,4,{0x82,0x32,0xB9,0x34,}}, {0x40BD,4,{0x82,0x32,0xB9,0x35,}}, {0x40BE,4,{0x82,0x32,0xB9,0x36,}}, {0x40BF,4,{0x82,0x32,0xB9,0x37,}}, {0x40C0,4,{0x82,0x32,0xB9,0x38,}}, {0x40C1,4,{0x82,0x32,0xB9,0x39,}}, {0x40C2,4,{0x82,0x32,0xBA,0x30,}}, {0x40C3,4,{0x82,0x32,0xBA,0x31,}}, {0x40C4,4,{0x82,0x32,0xBA,0x32,}}, {0x40C5,4,{0x82,0x32,0xBA,0x33,}}, {0x40C6,4,{0x82,0x32,0xBA,0x34,}}, {0x40C7,4,{0x82,0x32,0xBA,0x35,}}, {0x40C8,4,{0x82,0x32,0xBA,0x36,}}, {0x40C9,4,{0x82,0x32,0xBA,0x37,}}, {0x40CA,4,{0x82,0x32,0xBA,0x38,}}, {0x40CB,4,{0x82,0x32,0xBA,0x39,}}, {0x40CC,4,{0x82,0x32,0xBB,0x30,}}, {0x40CD,4,{0x82,0x32,0xBB,0x31,}}, {0x40CE,4,{0x82,0x32,0xBB,0x32,}}, {0x40CF,4,{0x82,0x32,0xBB,0x33,}}, {0x40D0,4,{0x82,0x32,0xBB,0x34,}}, {0x40D1,4,{0x82,0x32,0xBB,0x35,}}, {0x40D2,4,{0x82,0x32,0xBB,0x36,}}, {0x40D3,4,{0x82,0x32,0xBB,0x37,}}, {0x40D4,4,{0x82,0x32,0xBB,0x38,}}, {0x40D5,4,{0x82,0x32,0xBB,0x39,}}, {0x40D6,4,{0x82,0x32,0xBC,0x30,}}, {0x40D7,4,{0x82,0x32,0xBC,0x31,}}, {0x40D8,4,{0x82,0x32,0xBC,0x32,}}, {0x40D9,4,{0x82,0x32,0xBC,0x33,}}, {0x40DA,4,{0x82,0x32,0xBC,0x34,}}, {0x40DB,4,{0x82,0x32,0xBC,0x35,}}, {0x40DC,4,{0x82,0x32,0xBC,0x36,}}, {0x40DD,4,{0x82,0x32,0xBC,0x37,}}, {0x40DE,4,{0x82,0x32,0xBC,0x38,}}, {0x40DF,4,{0x82,0x32,0xBC,0x39,}}, {0x40E0,4,{0x82,0x32,0xBD,0x30,}}, {0x40E1,4,{0x82,0x32,0xBD,0x31,}}, {0x40E2,4,{0x82,0x32,0xBD,0x32,}}, {0x40E3,4,{0x82,0x32,0xBD,0x33,}}, {0x40E4,4,{0x82,0x32,0xBD,0x34,}}, {0x40E5,4,{0x82,0x32,0xBD,0x35,}}, {0x40E6,4,{0x82,0x32,0xBD,0x36,}}, {0x40E7,4,{0x82,0x32,0xBD,0x37,}}, {0x40E8,4,{0x82,0x32,0xBD,0x38,}}, {0x40E9,4,{0x82,0x32,0xBD,0x39,}}, {0x40EA,4,{0x82,0x32,0xBE,0x30,}}, {0x40EB,4,{0x82,0x32,0xBE,0x31,}}, {0x40EC,4,{0x82,0x32,0xBE,0x32,}}, {0x40ED,4,{0x82,0x32,0xBE,0x33,}}, {0x40EE,4,{0x82,0x32,0xBE,0x34,}}, {0x40EF,4,{0x82,0x32,0xBE,0x35,}}, {0x40F0,4,{0x82,0x32,0xBE,0x36,}}, {0x40F1,4,{0x82,0x32,0xBE,0x37,}}, {0x40F2,4,{0x82,0x32,0xBE,0x38,}}, {0x40F3,4,{0x82,0x32,0xBE,0x39,}}, {0x40F4,4,{0x82,0x32,0xBF,0x30,}}, {0x40F5,4,{0x82,0x32,0xBF,0x31,}}, {0x40F6,4,{0x82,0x32,0xBF,0x32,}}, {0x40F7,4,{0x82,0x32,0xBF,0x33,}}, {0x40F8,4,{0x82,0x32,0xBF,0x34,}}, {0x40F9,4,{0x82,0x32,0xBF,0x35,}}, {0x40FA,4,{0x82,0x32,0xBF,0x36,}}, {0x40FB,4,{0x82,0x32,0xBF,0x37,}}, {0x40FC,4,{0x82,0x32,0xBF,0x38,}}, {0x40FD,4,{0x82,0x32,0xBF,0x39,}}, {0x40FE,4,{0x82,0x32,0xC0,0x30,}}, {0x40FF,4,{0x82,0x32,0xC0,0x31,}}, {0x4100,4,{0x82,0x32,0xC0,0x32,}}, {0x4101,4,{0x82,0x32,0xC0,0x33,}}, {0x4102,4,{0x82,0x32,0xC0,0x34,}}, {0x4103,4,{0x82,0x32,0xC0,0x35,}}, {0x4104,4,{0x82,0x32,0xC0,0x36,}}, {0x4105,4,{0x82,0x32,0xC0,0x37,}}, {0x4106,4,{0x82,0x32,0xC0,0x38,}}, {0x4107,4,{0x82,0x32,0xC0,0x39,}}, {0x4108,4,{0x82,0x32,0xC1,0x30,}}, {0x4109,4,{0x82,0x32,0xC1,0x31,}}, {0x410A,4,{0x82,0x32,0xC1,0x32,}}, {0x410B,4,{0x82,0x32,0xC1,0x33,}}, {0x410C,4,{0x82,0x32,0xC1,0x34,}}, {0x410D,4,{0x82,0x32,0xC1,0x35,}}, {0x410E,4,{0x82,0x32,0xC1,0x36,}}, {0x410F,4,{0x82,0x32,0xC1,0x37,}}, {0x4110,4,{0x82,0x32,0xC1,0x38,}}, {0x4111,4,{0x82,0x32,0xC1,0x39,}}, {0x4112,4,{0x82,0x32,0xC2,0x30,}}, {0x4113,4,{0x82,0x32,0xC2,0x31,}}, {0x4114,4,{0x82,0x32,0xC2,0x32,}}, {0x4115,4,{0x82,0x32,0xC2,0x33,}}, {0x4116,4,{0x82,0x32,0xC2,0x34,}}, {0x4117,4,{0x82,0x32,0xC2,0x35,}}, {0x4118,4,{0x82,0x32,0xC2,0x36,}}, {0x4119,4,{0x82,0x32,0xC2,0x37,}}, {0x411A,4,{0x82,0x32,0xC2,0x38,}}, {0x411B,4,{0x82,0x32,0xC2,0x39,}}, {0x411C,4,{0x82,0x32,0xC3,0x30,}}, {0x411D,4,{0x82,0x32,0xC3,0x31,}}, {0x411E,4,{0x82,0x32,0xC3,0x32,}}, {0x411F,4,{0x82,0x32,0xC3,0x33,}}, {0x4120,4,{0x82,0x32,0xC3,0x34,}}, {0x4121,4,{0x82,0x32,0xC3,0x35,}}, {0x4122,4,{0x82,0x32,0xC3,0x36,}}, {0x4123,4,{0x82,0x32,0xC3,0x37,}}, {0x4124,4,{0x82,0x32,0xC3,0x38,}}, {0x4125,4,{0x82,0x32,0xC3,0x39,}}, {0x4126,4,{0x82,0x32,0xC4,0x30,}}, {0x4127,4,{0x82,0x32,0xC4,0x31,}}, {0x4128,4,{0x82,0x32,0xC4,0x32,}}, {0x4129,4,{0x82,0x32,0xC4,0x33,}}, {0x412A,4,{0x82,0x32,0xC4,0x34,}}, {0x412B,4,{0x82,0x32,0xC4,0x35,}}, {0x412C,4,{0x82,0x32,0xC4,0x36,}}, {0x412D,4,{0x82,0x32,0xC4,0x37,}}, {0x412E,4,{0x82,0x32,0xC4,0x38,}}, {0x412F,4,{0x82,0x32,0xC4,0x39,}}, {0x4130,4,{0x82,0x32,0xC5,0x30,}}, {0x4131,4,{0x82,0x32,0xC5,0x31,}}, {0x4132,4,{0x82,0x32,0xC5,0x32,}}, {0x4133,4,{0x82,0x32,0xC5,0x33,}}, {0x4134,4,{0x82,0x32,0xC5,0x34,}}, {0x4135,4,{0x82,0x32,0xC5,0x35,}}, {0x4136,4,{0x82,0x32,0xC5,0x36,}}, {0x4137,4,{0x82,0x32,0xC5,0x37,}}, {0x4138,4,{0x82,0x32,0xC5,0x38,}}, {0x4139,4,{0x82,0x32,0xC5,0x39,}}, {0x413A,4,{0x82,0x32,0xC6,0x30,}}, {0x413B,4,{0x82,0x32,0xC6,0x31,}}, {0x413C,4,{0x82,0x32,0xC6,0x32,}}, {0x413D,4,{0x82,0x32,0xC6,0x33,}}, {0x413E,4,{0x82,0x32,0xC6,0x34,}}, {0x413F,4,{0x82,0x32,0xC6,0x35,}}, {0x4140,4,{0x82,0x32,0xC6,0x36,}}, {0x4141,4,{0x82,0x32,0xC6,0x37,}}, {0x4142,4,{0x82,0x32,0xC6,0x38,}}, {0x4143,4,{0x82,0x32,0xC6,0x39,}}, {0x4144,4,{0x82,0x32,0xC7,0x30,}}, {0x4145,4,{0x82,0x32,0xC7,0x31,}}, {0x4146,4,{0x82,0x32,0xC7,0x32,}}, {0x4147,4,{0x82,0x32,0xC7,0x33,}}, {0x4148,4,{0x82,0x32,0xC7,0x34,}}, {0x4149,4,{0x82,0x32,0xC7,0x35,}}, {0x414A,4,{0x82,0x32,0xC7,0x36,}}, {0x414B,4,{0x82,0x32,0xC7,0x37,}}, {0x414C,4,{0x82,0x32,0xC7,0x38,}}, {0x414D,4,{0x82,0x32,0xC7,0x39,}}, {0x414E,4,{0x82,0x32,0xC8,0x30,}}, {0x414F,4,{0x82,0x32,0xC8,0x31,}}, {0x4150,4,{0x82,0x32,0xC8,0x32,}}, {0x4151,4,{0x82,0x32,0xC8,0x33,}}, {0x4152,4,{0x82,0x32,0xC8,0x34,}}, {0x4153,4,{0x82,0x32,0xC8,0x35,}}, {0x4154,4,{0x82,0x32,0xC8,0x36,}}, {0x4155,4,{0x82,0x32,0xC8,0x37,}}, {0x4156,4,{0x82,0x32,0xC8,0x38,}}, {0x4157,4,{0x82,0x32,0xC8,0x39,}}, {0x4158,4,{0x82,0x32,0xC9,0x30,}}, {0x4159,4,{0x82,0x32,0xC9,0x31,}}, {0x415A,4,{0x82,0x32,0xC9,0x32,}}, {0x415B,4,{0x82,0x32,0xC9,0x33,}}, {0x415C,4,{0x82,0x32,0xC9,0x34,}}, {0x415D,4,{0x82,0x32,0xC9,0x35,}}, {0x415E,4,{0x82,0x32,0xC9,0x36,}}, {0x415F,2,{0xFE,0x70,0x00,0x00,}}, {0x4337,2,{0xFE,0x72,0x00,0x00,}}, {0x4338,4,{0x82,0x32,0xF8,0x38,}}, {0x4339,4,{0x82,0x32,0xF8,0x39,}}, {0x433A,4,{0x82,0x32,0xF9,0x30,}}, {0x433B,4,{0x82,0x32,0xF9,0x31,}}, {0x433C,4,{0x82,0x32,0xF9,0x32,}}, {0x433D,4,{0x82,0x32,0xF9,0x33,}}, {0x433E,4,{0x82,0x32,0xF9,0x34,}}, {0x433F,4,{0x82,0x32,0xF9,0x35,}}, {0x4340,4,{0x82,0x32,0xF9,0x36,}}, {0x4341,4,{0x82,0x32,0xF9,0x37,}}, {0x4342,4,{0x82,0x32,0xF9,0x38,}}, {0x4343,4,{0x82,0x32,0xF9,0x39,}}, {0x4344,4,{0x82,0x32,0xFA,0x30,}}, {0x4345,4,{0x82,0x32,0xFA,0x31,}}, {0x4346,4,{0x82,0x32,0xFA,0x32,}}, {0x4347,4,{0x82,0x32,0xFA,0x33,}}, {0x4348,4,{0x82,0x32,0xFA,0x34,}}, {0x4349,4,{0x82,0x32,0xFA,0x35,}}, {0x434A,4,{0x82,0x32,0xFA,0x36,}}, {0x434B,4,{0x82,0x32,0xFA,0x37,}}, {0x434C,4,{0x82,0x32,0xFA,0x38,}}, {0x434D,4,{0x82,0x32,0xFA,0x39,}}, {0x434E,4,{0x82,0x32,0xFB,0x30,}}, {0x434F,4,{0x82,0x32,0xFB,0x31,}}, {0x4350,4,{0x82,0x32,0xFB,0x32,}}, {0x4351,4,{0x82,0x32,0xFB,0x33,}}, {0x4352,4,{0x82,0x32,0xFB,0x34,}}, {0x4353,4,{0x82,0x32,0xFB,0x35,}}, {0x4354,4,{0x82,0x32,0xFB,0x36,}}, {0x4355,4,{0x82,0x32,0xFB,0x37,}}, {0x4356,4,{0x82,0x32,0xFB,0x38,}}, {0x4357,4,{0x82,0x32,0xFB,0x39,}}, {0x4358,4,{0x82,0x32,0xFC,0x30,}}, {0x4359,4,{0x82,0x32,0xFC,0x31,}}, {0x435A,4,{0x82,0x32,0xFC,0x32,}}, {0x435B,4,{0x82,0x32,0xFC,0x33,}}, {0x435C,4,{0x82,0x32,0xFC,0x34,}}, {0x435D,4,{0x82,0x32,0xFC,0x35,}}, {0x435E,4,{0x82,0x32,0xFC,0x36,}}, {0x435F,4,{0x82,0x32,0xFC,0x37,}}, {0x4360,4,{0x82,0x32,0xFC,0x38,}}, {0x4361,4,{0x82,0x32,0xFC,0x39,}}, {0x4362,4,{0x82,0x32,0xFD,0x30,}}, {0x4363,4,{0x82,0x32,0xFD,0x31,}}, {0x4364,4,{0x82,0x32,0xFD,0x32,}}, {0x4365,4,{0x82,0x32,0xFD,0x33,}}, {0x4366,4,{0x82,0x32,0xFD,0x34,}}, {0x4367,4,{0x82,0x32,0xFD,0x35,}}, {0x4368,4,{0x82,0x32,0xFD,0x36,}}, {0x4369,4,{0x82,0x32,0xFD,0x37,}}, {0x436A,4,{0x82,0x32,0xFD,0x38,}}, {0x436B,4,{0x82,0x32,0xFD,0x39,}}, {0x436C,4,{0x82,0x32,0xFE,0x30,}}, {0x436D,4,{0x82,0x32,0xFE,0x31,}}, {0x436E,4,{0x82,0x32,0xFE,0x32,}}, {0x436F,4,{0x82,0x32,0xFE,0x33,}}, {0x4370,4,{0x82,0x32,0xFE,0x34,}}, {0x4371,4,{0x82,0x32,0xFE,0x35,}}, {0x4372,4,{0x82,0x32,0xFE,0x36,}}, {0x4373,4,{0x82,0x32,0xFE,0x37,}}, {0x4374,4,{0x82,0x32,0xFE,0x38,}}, {0x4375,4,{0x82,0x32,0xFE,0x39,}}, {0x4376,4,{0x82,0x33,0x81,0x30,}}, {0x4377,4,{0x82,0x33,0x81,0x31,}}, {0x4378,4,{0x82,0x33,0x81,0x32,}}, {0x4379,4,{0x82,0x33,0x81,0x33,}}, {0x437A,4,{0x82,0x33,0x81,0x34,}}, {0x437B,4,{0x82,0x33,0x81,0x35,}}, {0x437C,4,{0x82,0x33,0x81,0x36,}}, {0x437D,4,{0x82,0x33,0x81,0x37,}}, {0x437E,4,{0x82,0x33,0x81,0x38,}}, {0x437F,4,{0x82,0x33,0x81,0x39,}}, {0x4380,4,{0x82,0x33,0x82,0x30,}}, {0x4381,4,{0x82,0x33,0x82,0x31,}}, {0x4382,4,{0x82,0x33,0x82,0x32,}}, {0x4383,4,{0x82,0x33,0x82,0x33,}}, {0x4384,4,{0x82,0x33,0x82,0x34,}}, {0x4385,4,{0x82,0x33,0x82,0x35,}}, {0x4386,4,{0x82,0x33,0x82,0x36,}}, {0x4387,4,{0x82,0x33,0x82,0x37,}}, {0x4388,4,{0x82,0x33,0x82,0x38,}}, {0x4389,4,{0x82,0x33,0x82,0x39,}}, {0x438A,4,{0x82,0x33,0x83,0x30,}}, {0x438B,4,{0x82,0x33,0x83,0x31,}}, {0x438C,4,{0x82,0x33,0x83,0x32,}}, {0x438D,4,{0x82,0x33,0x83,0x33,}}, {0x438E,4,{0x82,0x33,0x83,0x34,}}, {0x438F,4,{0x82,0x33,0x83,0x35,}}, {0x4390,4,{0x82,0x33,0x83,0x36,}}, {0x4391,4,{0x82,0x33,0x83,0x37,}}, {0x4392,4,{0x82,0x33,0x83,0x38,}}, {0x4393,4,{0x82,0x33,0x83,0x39,}}, {0x4394,4,{0x82,0x33,0x84,0x30,}}, {0x4395,4,{0x82,0x33,0x84,0x31,}}, {0x4396,4,{0x82,0x33,0x84,0x32,}}, {0x4397,4,{0x82,0x33,0x84,0x33,}}, {0x4398,4,{0x82,0x33,0x84,0x34,}}, {0x4399,4,{0x82,0x33,0x84,0x35,}}, {0x439A,4,{0x82,0x33,0x84,0x36,}}, {0x439B,4,{0x82,0x33,0x84,0x37,}}, {0x439C,4,{0x82,0x33,0x84,0x38,}}, {0x439D,4,{0x82,0x33,0x84,0x39,}}, {0x439E,4,{0x82,0x33,0x85,0x30,}}, {0x439F,4,{0x82,0x33,0x85,0x31,}}, {0x43A0,4,{0x82,0x33,0x85,0x32,}}, {0x43A1,4,{0x82,0x33,0x85,0x33,}}, {0x43A2,4,{0x82,0x33,0x85,0x34,}}, {0x43A3,4,{0x82,0x33,0x85,0x35,}}, {0x43A4,4,{0x82,0x33,0x85,0x36,}}, {0x43A5,4,{0x82,0x33,0x85,0x37,}}, {0x43A6,4,{0x82,0x33,0x85,0x38,}}, {0x43A7,4,{0x82,0x33,0x85,0x39,}}, {0x43A8,4,{0x82,0x33,0x86,0x30,}}, {0x43A9,4,{0x82,0x33,0x86,0x31,}}, {0x43AA,4,{0x82,0x33,0x86,0x32,}}, {0x43AB,4,{0x82,0x33,0x86,0x33,}}, {0x43AC,2,{0xFE,0x78,0x00,0x00,}}, {0x43AD,4,{0x82,0x33,0x86,0x34,}}, {0x43AE,4,{0x82,0x33,0x86,0x35,}}, {0x43AF,4,{0x82,0x33,0x86,0x36,}}, {0x43B0,4,{0x82,0x33,0x86,0x37,}}, {0x43B1,2,{0xFE,0x77,0x00,0x00,}}, {0x43B2,4,{0x82,0x33,0x86,0x38,}}, {0x43B3,4,{0x82,0x33,0x86,0x39,}}, {0x43B4,4,{0x82,0x33,0x87,0x30,}}, {0x43B5,4,{0x82,0x33,0x87,0x31,}}, {0x43B6,4,{0x82,0x33,0x87,0x32,}}, {0x43B7,4,{0x82,0x33,0x87,0x33,}}, {0x43B8,4,{0x82,0x33,0x87,0x34,}}, {0x43B9,4,{0x82,0x33,0x87,0x35,}}, {0x43BA,4,{0x82,0x33,0x87,0x36,}}, {0x43BB,4,{0x82,0x33,0x87,0x37,}}, {0x43BC,4,{0x82,0x33,0x87,0x38,}}, {0x43BD,4,{0x82,0x33,0x87,0x39,}}, {0x43BE,4,{0x82,0x33,0x88,0x30,}}, {0x43BF,4,{0x82,0x33,0x88,0x31,}}, {0x43C0,4,{0x82,0x33,0x88,0x32,}}, {0x43C1,4,{0x82,0x33,0x88,0x33,}}, {0x43C2,4,{0x82,0x33,0x88,0x34,}}, {0x43C3,4,{0x82,0x33,0x88,0x35,}}, {0x43C4,4,{0x82,0x33,0x88,0x36,}}, {0x43C5,4,{0x82,0x33,0x88,0x37,}}, {0x43C6,4,{0x82,0x33,0x88,0x38,}}, {0x43C7,4,{0x82,0x33,0x88,0x39,}}, {0x43C8,4,{0x82,0x33,0x89,0x30,}}, {0x43C9,4,{0x82,0x33,0x89,0x31,}}, {0x43CA,4,{0x82,0x33,0x89,0x32,}}, {0x43CB,4,{0x82,0x33,0x89,0x33,}}, {0x43CC,4,{0x82,0x33,0x89,0x34,}}, {0x43CD,4,{0x82,0x33,0x89,0x35,}}, {0x43CE,4,{0x82,0x33,0x89,0x36,}}, {0x43CF,4,{0x82,0x33,0x89,0x37,}}, {0x43D0,4,{0x82,0x33,0x89,0x38,}}, {0x43D1,4,{0x82,0x33,0x89,0x39,}}, {0x43D2,4,{0x82,0x33,0x8A,0x30,}}, {0x43D3,4,{0x82,0x33,0x8A,0x31,}}, {0x43D4,4,{0x82,0x33,0x8A,0x32,}}, {0x43D5,4,{0x82,0x33,0x8A,0x33,}}, {0x43D6,4,{0x82,0x33,0x8A,0x34,}}, {0x43D7,4,{0x82,0x33,0x8A,0x35,}}, {0x43D8,4,{0x82,0x33,0x8A,0x36,}}, {0x43D9,4,{0x82,0x33,0x8A,0x37,}}, {0x43DA,4,{0x82,0x33,0x8A,0x38,}}, {0x43DB,4,{0x82,0x33,0x8A,0x39,}}, {0x43DC,4,{0x82,0x33,0x8B,0x30,}}, {0x43DD,2,{0xFE,0x7A,0x00,0x00,}}, {0x43DE,4,{0x82,0x33,0x8B,0x31,}}, {0x43DF,4,{0x82,0x33,0x8B,0x32,}}, {0x43E0,4,{0x82,0x33,0x8B,0x33,}}, {0x43E1,4,{0x82,0x33,0x8B,0x34,}}, {0x43E2,4,{0x82,0x33,0x8B,0x35,}}, {0x43E3,4,{0x82,0x33,0x8B,0x36,}}, {0x43E4,4,{0x82,0x33,0x8B,0x37,}}, {0x43E5,4,{0x82,0x33,0x8B,0x38,}}, {0x43E6,4,{0x82,0x33,0x8B,0x39,}}, {0x43E7,4,{0x82,0x33,0x8C,0x30,}}, {0x43E8,4,{0x82,0x33,0x8C,0x31,}}, {0x43E9,4,{0x82,0x33,0x8C,0x32,}}, {0x43EA,4,{0x82,0x33,0x8C,0x33,}}, {0x43EB,4,{0x82,0x33,0x8C,0x34,}}, {0x43EC,4,{0x82,0x33,0x8C,0x35,}}, {0x43ED,4,{0x82,0x33,0x8C,0x36,}}, {0x43EE,4,{0x82,0x33,0x8C,0x37,}}, {0x43EF,4,{0x82,0x33,0x8C,0x38,}}, {0x43F0,4,{0x82,0x33,0x8C,0x39,}}, {0x43F1,4,{0x82,0x33,0x8D,0x30,}}, {0x43F2,4,{0x82,0x33,0x8D,0x31,}}, {0x43F3,4,{0x82,0x33,0x8D,0x32,}}, {0x43F4,4,{0x82,0x33,0x8D,0x33,}}, {0x43F5,4,{0x82,0x33,0x8D,0x34,}}, {0x43F6,4,{0x82,0x33,0x8D,0x35,}}, {0x43F7,4,{0x82,0x33,0x8D,0x36,}}, {0x43F8,4,{0x82,0x33,0x8D,0x37,}}, {0x43F9,4,{0x82,0x33,0x8D,0x38,}}, {0x43FA,4,{0x82,0x33,0x8D,0x39,}}, {0x43FB,4,{0x82,0x33,0x8E,0x30,}}, {0x43FC,4,{0x82,0x33,0x8E,0x31,}}, {0x43FD,4,{0x82,0x33,0x8E,0x32,}}, {0x43FE,4,{0x82,0x33,0x8E,0x33,}}, {0x43FF,4,{0x82,0x33,0x8E,0x34,}}, {0x4400,4,{0x82,0x33,0x8E,0x35,}}, {0x4401,4,{0x82,0x33,0x8E,0x36,}}, {0x4402,4,{0x82,0x33,0x8E,0x37,}}, {0x4403,4,{0x82,0x33,0x8E,0x38,}}, {0x4404,4,{0x82,0x33,0x8E,0x39,}}, {0x4405,4,{0x82,0x33,0x8F,0x30,}}, {0x4406,4,{0x82,0x33,0x8F,0x31,}}, {0x4407,4,{0x82,0x33,0x8F,0x32,}}, {0x4408,4,{0x82,0x33,0x8F,0x33,}}, {0x4409,4,{0x82,0x33,0x8F,0x34,}}, {0x440A,4,{0x82,0x33,0x8F,0x35,}}, {0x440B,4,{0x82,0x33,0x8F,0x36,}}, {0x440C,4,{0x82,0x33,0x8F,0x37,}}, {0x440D,4,{0x82,0x33,0x8F,0x38,}}, {0x440E,4,{0x82,0x33,0x8F,0x39,}}, {0x440F,4,{0x82,0x33,0x90,0x30,}}, {0x4410,4,{0x82,0x33,0x90,0x31,}}, {0x4411,4,{0x82,0x33,0x90,0x32,}}, {0x4412,4,{0x82,0x33,0x90,0x33,}}, {0x4413,4,{0x82,0x33,0x90,0x34,}}, {0x4414,4,{0x82,0x33,0x90,0x35,}}, {0x4415,4,{0x82,0x33,0x90,0x36,}}, {0x4416,4,{0x82,0x33,0x90,0x37,}}, {0x4417,4,{0x82,0x33,0x90,0x38,}}, {0x4418,4,{0x82,0x33,0x90,0x39,}}, {0x4419,4,{0x82,0x33,0x91,0x30,}}, {0x441A,4,{0x82,0x33,0x91,0x31,}}, {0x441B,4,{0x82,0x33,0x91,0x32,}}, {0x441C,4,{0x82,0x33,0x91,0x33,}}, {0x441D,4,{0x82,0x33,0x91,0x34,}}, {0x441E,4,{0x82,0x33,0x91,0x35,}}, {0x441F,4,{0x82,0x33,0x91,0x36,}}, {0x4420,4,{0x82,0x33,0x91,0x37,}}, {0x4421,4,{0x82,0x33,0x91,0x38,}}, {0x4422,4,{0x82,0x33,0x91,0x39,}}, {0x4423,4,{0x82,0x33,0x92,0x30,}}, {0x4424,4,{0x82,0x33,0x92,0x31,}}, {0x4425,4,{0x82,0x33,0x92,0x32,}}, {0x4426,4,{0x82,0x33,0x92,0x33,}}, {0x4427,4,{0x82,0x33,0x92,0x34,}}, {0x4428,4,{0x82,0x33,0x92,0x35,}}, {0x4429,4,{0x82,0x33,0x92,0x36,}}, {0x442A,4,{0x82,0x33,0x92,0x37,}}, {0x442B,4,{0x82,0x33,0x92,0x38,}}, {0x442C,4,{0x82,0x33,0x92,0x39,}}, {0x442D,4,{0x82,0x33,0x93,0x30,}}, {0x442E,4,{0x82,0x33,0x93,0x31,}}, {0x442F,4,{0x82,0x33,0x93,0x32,}}, {0x4430,4,{0x82,0x33,0x93,0x33,}}, {0x4431,4,{0x82,0x33,0x93,0x34,}}, {0x4432,4,{0x82,0x33,0x93,0x35,}}, {0x4433,4,{0x82,0x33,0x93,0x36,}}, {0x4434,4,{0x82,0x33,0x93,0x37,}}, {0x4435,4,{0x82,0x33,0x93,0x38,}}, {0x4436,4,{0x82,0x33,0x93,0x39,}}, {0x4437,4,{0x82,0x33,0x94,0x30,}}, {0x4438,4,{0x82,0x33,0x94,0x31,}}, {0x4439,4,{0x82,0x33,0x94,0x32,}}, {0x443A,4,{0x82,0x33,0x94,0x33,}}, {0x443B,4,{0x82,0x33,0x94,0x34,}}, {0x443C,4,{0x82,0x33,0x94,0x35,}}, {0x443D,4,{0x82,0x33,0x94,0x36,}}, {0x443E,4,{0x82,0x33,0x94,0x37,}}, {0x443F,4,{0x82,0x33,0x94,0x38,}}, {0x4440,4,{0x82,0x33,0x94,0x39,}}, {0x4441,4,{0x82,0x33,0x95,0x30,}}, {0x4442,4,{0x82,0x33,0x95,0x31,}}, {0x4443,4,{0x82,0x33,0x95,0x32,}}, {0x4444,4,{0x82,0x33,0x95,0x33,}}, {0x4445,4,{0x82,0x33,0x95,0x34,}}, {0x4446,4,{0x82,0x33,0x95,0x35,}}, {0x4447,4,{0x82,0x33,0x95,0x36,}}, {0x4448,4,{0x82,0x33,0x95,0x37,}}, {0x4449,4,{0x82,0x33,0x95,0x38,}}, {0x444A,4,{0x82,0x33,0x95,0x39,}}, {0x444B,4,{0x82,0x33,0x96,0x30,}}, {0x444C,4,{0x82,0x33,0x96,0x31,}}, {0x444D,4,{0x82,0x33,0x96,0x32,}}, {0x444E,4,{0x82,0x33,0x96,0x33,}}, {0x444F,4,{0x82,0x33,0x96,0x34,}}, {0x4450,4,{0x82,0x33,0x96,0x35,}}, {0x4451,4,{0x82,0x33,0x96,0x36,}}, {0x4452,4,{0x82,0x33,0x96,0x37,}}, {0x4453,4,{0x82,0x33,0x96,0x38,}}, {0x4454,4,{0x82,0x33,0x96,0x39,}}, {0x4455,4,{0x82,0x33,0x97,0x30,}}, {0x4456,4,{0x82,0x33,0x97,0x31,}}, {0x4457,4,{0x82,0x33,0x97,0x32,}}, {0x4458,4,{0x82,0x33,0x97,0x33,}}, {0x4459,4,{0x82,0x33,0x97,0x34,}}, {0x445A,4,{0x82,0x33,0x97,0x35,}}, {0x445B,4,{0x82,0x33,0x97,0x36,}}, {0x445C,4,{0x82,0x33,0x97,0x37,}}, {0x445D,4,{0x82,0x33,0x97,0x38,}}, {0x445E,4,{0x82,0x33,0x97,0x39,}}, {0x445F,4,{0x82,0x33,0x98,0x30,}}, {0x4460,4,{0x82,0x33,0x98,0x31,}}, {0x4461,4,{0x82,0x33,0x98,0x32,}}, {0x4462,4,{0x82,0x33,0x98,0x33,}}, {0x4463,4,{0x82,0x33,0x98,0x34,}}, {0x4464,4,{0x82,0x33,0x98,0x35,}}, {0x4465,4,{0x82,0x33,0x98,0x36,}}, {0x4466,4,{0x82,0x33,0x98,0x37,}}, {0x4467,4,{0x82,0x33,0x98,0x38,}}, {0x4468,4,{0x82,0x33,0x98,0x39,}}, {0x4469,4,{0x82,0x33,0x99,0x30,}}, {0x446A,4,{0x82,0x33,0x99,0x31,}}, {0x446B,4,{0x82,0x33,0x99,0x32,}}, {0x446C,4,{0x82,0x33,0x99,0x33,}}, {0x446D,4,{0x82,0x33,0x99,0x34,}}, {0x446E,4,{0x82,0x33,0x99,0x35,}}, {0x446F,4,{0x82,0x33,0x99,0x36,}}, {0x4470,4,{0x82,0x33,0x99,0x37,}}, {0x4471,4,{0x82,0x33,0x99,0x38,}}, {0x4472,4,{0x82,0x33,0x99,0x39,}}, {0x4473,4,{0x82,0x33,0x9A,0x30,}}, {0x4474,4,{0x82,0x33,0x9A,0x31,}}, {0x4475,4,{0x82,0x33,0x9A,0x32,}}, {0x4476,4,{0x82,0x33,0x9A,0x33,}}, {0x4477,4,{0x82,0x33,0x9A,0x34,}}, {0x4478,4,{0x82,0x33,0x9A,0x35,}}, {0x4479,4,{0x82,0x33,0x9A,0x36,}}, {0x447A,4,{0x82,0x33,0x9A,0x37,}}, {0x447B,4,{0x82,0x33,0x9A,0x38,}}, {0x447C,4,{0x82,0x33,0x9A,0x39,}}, {0x447D,4,{0x82,0x33,0x9B,0x30,}}, {0x447E,4,{0x82,0x33,0x9B,0x31,}}, {0x447F,4,{0x82,0x33,0x9B,0x32,}}, {0x4480,4,{0x82,0x33,0x9B,0x33,}}, {0x4481,4,{0x82,0x33,0x9B,0x34,}}, {0x4482,4,{0x82,0x33,0x9B,0x35,}}, {0x4483,4,{0x82,0x33,0x9B,0x36,}}, {0x4484,4,{0x82,0x33,0x9B,0x37,}}, {0x4485,4,{0x82,0x33,0x9B,0x38,}}, {0x4486,4,{0x82,0x33,0x9B,0x39,}}, {0x4487,4,{0x82,0x33,0x9C,0x30,}}, {0x4488,4,{0x82,0x33,0x9C,0x31,}}, {0x4489,4,{0x82,0x33,0x9C,0x32,}}, {0x448A,4,{0x82,0x33,0x9C,0x33,}}, {0x448B,4,{0x82,0x33,0x9C,0x34,}}, {0x448C,4,{0x82,0x33,0x9C,0x35,}}, {0x448D,4,{0x82,0x33,0x9C,0x36,}}, {0x448E,4,{0x82,0x33,0x9C,0x37,}}, {0x448F,4,{0x82,0x33,0x9C,0x38,}}, {0x4490,4,{0x82,0x33,0x9C,0x39,}}, {0x4491,4,{0x82,0x33,0x9D,0x30,}}, {0x4492,4,{0x82,0x33,0x9D,0x31,}}, {0x4493,4,{0x82,0x33,0x9D,0x32,}}, {0x4494,4,{0x82,0x33,0x9D,0x33,}}, {0x4495,4,{0x82,0x33,0x9D,0x34,}}, {0x4496,4,{0x82,0x33,0x9D,0x35,}}, {0x4497,4,{0x82,0x33,0x9D,0x36,}}, {0x4498,4,{0x82,0x33,0x9D,0x37,}}, {0x4499,4,{0x82,0x33,0x9D,0x38,}}, {0x449A,4,{0x82,0x33,0x9D,0x39,}}, {0x449B,4,{0x82,0x33,0x9E,0x30,}}, {0x449C,4,{0x82,0x33,0x9E,0x31,}}, {0x449D,4,{0x82,0x33,0x9E,0x32,}}, {0x449E,4,{0x82,0x33,0x9E,0x33,}}, {0x449F,4,{0x82,0x33,0x9E,0x34,}}, {0x44A0,4,{0x82,0x33,0x9E,0x35,}}, {0x44A1,4,{0x82,0x33,0x9E,0x36,}}, {0x44A2,4,{0x82,0x33,0x9E,0x37,}}, {0x44A3,4,{0x82,0x33,0x9E,0x38,}}, {0x44A4,4,{0x82,0x33,0x9E,0x39,}}, {0x44A5,4,{0x82,0x33,0x9F,0x30,}}, {0x44A6,4,{0x82,0x33,0x9F,0x31,}}, {0x44A7,4,{0x82,0x33,0x9F,0x32,}}, {0x44A8,4,{0x82,0x33,0x9F,0x33,}}, {0x44A9,4,{0x82,0x33,0x9F,0x34,}}, {0x44AA,4,{0x82,0x33,0x9F,0x35,}}, {0x44AB,4,{0x82,0x33,0x9F,0x36,}}, {0x44AC,4,{0x82,0x33,0x9F,0x37,}}, {0x44AD,4,{0x82,0x33,0x9F,0x38,}}, {0x44AE,4,{0x82,0x33,0x9F,0x39,}}, {0x44AF,4,{0x82,0x33,0xA0,0x30,}}, {0x44B0,4,{0x82,0x33,0xA0,0x31,}}, {0x44B1,4,{0x82,0x33,0xA0,0x32,}}, {0x44B2,4,{0x82,0x33,0xA0,0x33,}}, {0x44B3,4,{0x82,0x33,0xA0,0x34,}}, {0x44B4,4,{0x82,0x33,0xA0,0x35,}}, {0x44B5,4,{0x82,0x33,0xA0,0x36,}}, {0x44B6,4,{0x82,0x33,0xA0,0x37,}}, {0x44B7,4,{0x82,0x33,0xA0,0x38,}}, {0x44B8,4,{0x82,0x33,0xA0,0x39,}}, {0x44B9,4,{0x82,0x33,0xA1,0x30,}}, {0x44BA,4,{0x82,0x33,0xA1,0x31,}}, {0x44BB,4,{0x82,0x33,0xA1,0x32,}}, {0x44BC,4,{0x82,0x33,0xA1,0x33,}}, {0x44BD,4,{0x82,0x33,0xA1,0x34,}}, {0x44BE,4,{0x82,0x33,0xA1,0x35,}}, {0x44BF,4,{0x82,0x33,0xA1,0x36,}}, {0x44C0,4,{0x82,0x33,0xA1,0x37,}}, {0x44C1,4,{0x82,0x33,0xA1,0x38,}}, {0x44C2,4,{0x82,0x33,0xA1,0x39,}}, {0x44C3,4,{0x82,0x33,0xA2,0x30,}}, {0x44C4,4,{0x82,0x33,0xA2,0x31,}}, {0x44C5,4,{0x82,0x33,0xA2,0x32,}}, {0x44C6,4,{0x82,0x33,0xA2,0x33,}}, {0x44C7,4,{0x82,0x33,0xA2,0x34,}}, {0x44C8,4,{0x82,0x33,0xA2,0x35,}}, {0x44C9,4,{0x82,0x33,0xA2,0x36,}}, {0x44CA,4,{0x82,0x33,0xA2,0x37,}}, {0x44CB,4,{0x82,0x33,0xA2,0x38,}}, {0x44CC,4,{0x82,0x33,0xA2,0x39,}}, {0x44CD,4,{0x82,0x33,0xA3,0x30,}}, {0x44CE,4,{0x82,0x33,0xA3,0x31,}}, {0x44CF,4,{0x82,0x33,0xA3,0x32,}}, {0x44D0,4,{0x82,0x33,0xA3,0x33,}}, {0x44D1,4,{0x82,0x33,0xA3,0x34,}}, {0x44D2,4,{0x82,0x33,0xA3,0x35,}}, {0x44D3,4,{0x82,0x33,0xA3,0x36,}}, {0x44D4,4,{0x82,0x33,0xA3,0x37,}}, {0x44D5,4,{0x82,0x33,0xA3,0x38,}}, {0x44D6,2,{0xFE,0x7B,0x00,0x00,}}, {0x464C,2,{0xFE,0x7D,0x00,0x00,}}, {0x464D,4,{0x82,0x33,0xC9,0x32,}}, {0x464E,4,{0x82,0x33,0xC9,0x33,}}, {0x464F,4,{0x82,0x33,0xC9,0x34,}}, {0x4650,4,{0x82,0x33,0xC9,0x35,}}, {0x4651,4,{0x82,0x33,0xC9,0x36,}}, {0x4652,4,{0x82,0x33,0xC9,0x37,}}, {0x4653,4,{0x82,0x33,0xC9,0x38,}}, {0x4654,4,{0x82,0x33,0xC9,0x39,}}, {0x4655,4,{0x82,0x33,0xCA,0x30,}}, {0x4656,4,{0x82,0x33,0xCA,0x31,}}, {0x4657,4,{0x82,0x33,0xCA,0x32,}}, {0x4658,4,{0x82,0x33,0xCA,0x33,}}, {0x4659,4,{0x82,0x33,0xCA,0x34,}}, {0x465A,4,{0x82,0x33,0xCA,0x35,}}, {0x465B,4,{0x82,0x33,0xCA,0x36,}}, {0x465C,4,{0x82,0x33,0xCA,0x37,}}, {0x465D,4,{0x82,0x33,0xCA,0x38,}}, {0x465E,4,{0x82,0x33,0xCA,0x39,}}, {0x465F,4,{0x82,0x33,0xCB,0x30,}}, {0x4660,4,{0x82,0x33,0xCB,0x31,}}, {0x4661,2,{0xFE,0x7C,0x00,0x00,}}, {0x4662,4,{0x82,0x33,0xCB,0x32,}}, {0x4663,4,{0x82,0x33,0xCB,0x33,}}, {0x4664,4,{0x82,0x33,0xCB,0x34,}}, {0x4665,4,{0x82,0x33,0xCB,0x35,}}, {0x4666,4,{0x82,0x33,0xCB,0x36,}}, {0x4667,4,{0x82,0x33,0xCB,0x37,}}, {0x4668,4,{0x82,0x33,0xCB,0x38,}}, {0x4669,4,{0x82,0x33,0xCB,0x39,}}, {0x466A,4,{0x82,0x33,0xCC,0x30,}}, {0x466B,4,{0x82,0x33,0xCC,0x31,}}, {0x466C,4,{0x82,0x33,0xCC,0x32,}}, {0x466D,4,{0x82,0x33,0xCC,0x33,}}, {0x466E,4,{0x82,0x33,0xCC,0x34,}}, {0x466F,4,{0x82,0x33,0xCC,0x35,}}, {0x4670,4,{0x82,0x33,0xCC,0x36,}}, {0x4671,4,{0x82,0x33,0xCC,0x37,}}, {0x4672,4,{0x82,0x33,0xCC,0x38,}}, {0x4673,4,{0x82,0x33,0xCC,0x39,}}, {0x4674,4,{0x82,0x33,0xCD,0x30,}}, {0x4675,4,{0x82,0x33,0xCD,0x31,}}, {0x4676,4,{0x82,0x33,0xCD,0x32,}}, {0x4677,4,{0x82,0x33,0xCD,0x33,}}, {0x4678,4,{0x82,0x33,0xCD,0x34,}}, {0x4679,4,{0x82,0x33,0xCD,0x35,}}, {0x467A,4,{0x82,0x33,0xCD,0x36,}}, {0x467B,4,{0x82,0x33,0xCD,0x37,}}, {0x467C,4,{0x82,0x33,0xCD,0x38,}}, {0x467D,4,{0x82,0x33,0xCD,0x39,}}, {0x467E,4,{0x82,0x33,0xCE,0x30,}}, {0x467F,4,{0x82,0x33,0xCE,0x31,}}, {0x4680,4,{0x82,0x33,0xCE,0x32,}}, {0x4681,4,{0x82,0x33,0xCE,0x33,}}, {0x4682,4,{0x82,0x33,0xCE,0x34,}}, {0x4683,4,{0x82,0x33,0xCE,0x35,}}, {0x4684,4,{0x82,0x33,0xCE,0x36,}}, {0x4685,4,{0x82,0x33,0xCE,0x37,}}, {0x4686,4,{0x82,0x33,0xCE,0x38,}}, {0x4687,4,{0x82,0x33,0xCE,0x39,}}, {0x4688,4,{0x82,0x33,0xCF,0x30,}}, {0x4689,4,{0x82,0x33,0xCF,0x31,}}, {0x468A,4,{0x82,0x33,0xCF,0x32,}}, {0x468B,4,{0x82,0x33,0xCF,0x33,}}, {0x468C,4,{0x82,0x33,0xCF,0x34,}}, {0x468D,4,{0x82,0x33,0xCF,0x35,}}, {0x468E,4,{0x82,0x33,0xCF,0x36,}}, {0x468F,4,{0x82,0x33,0xCF,0x37,}}, {0x4690,4,{0x82,0x33,0xCF,0x38,}}, {0x4691,4,{0x82,0x33,0xCF,0x39,}}, {0x4692,4,{0x82,0x33,0xD0,0x30,}}, {0x4693,4,{0x82,0x33,0xD0,0x31,}}, {0x4694,4,{0x82,0x33,0xD0,0x32,}}, {0x4695,4,{0x82,0x33,0xD0,0x33,}}, {0x4696,4,{0x82,0x33,0xD0,0x34,}}, {0x4697,4,{0x82,0x33,0xD0,0x35,}}, {0x4698,4,{0x82,0x33,0xD0,0x36,}}, {0x4699,4,{0x82,0x33,0xD0,0x37,}}, {0x469A,4,{0x82,0x33,0xD0,0x38,}}, {0x469B,4,{0x82,0x33,0xD0,0x39,}}, {0x469C,4,{0x82,0x33,0xD1,0x30,}}, {0x469D,4,{0x82,0x33,0xD1,0x31,}}, {0x469E,4,{0x82,0x33,0xD1,0x32,}}, {0x469F,4,{0x82,0x33,0xD1,0x33,}}, {0x46A0,4,{0x82,0x33,0xD1,0x34,}}, {0x46A1,4,{0x82,0x33,0xD1,0x35,}}, {0x46A2,4,{0x82,0x33,0xD1,0x36,}}, {0x46A3,4,{0x82,0x33,0xD1,0x37,}}, {0x46A4,4,{0x82,0x33,0xD1,0x38,}}, {0x46A5,4,{0x82,0x33,0xD1,0x39,}}, {0x46A6,4,{0x82,0x33,0xD2,0x30,}}, {0x46A7,4,{0x82,0x33,0xD2,0x31,}}, {0x46A8,4,{0x82,0x33,0xD2,0x32,}}, {0x46A9,4,{0x82,0x33,0xD2,0x33,}}, {0x46AA,4,{0x82,0x33,0xD2,0x34,}}, {0x46AB,4,{0x82,0x33,0xD2,0x35,}}, {0x46AC,4,{0x82,0x33,0xD2,0x36,}}, {0x46AD,4,{0x82,0x33,0xD2,0x37,}}, {0x46AE,4,{0x82,0x33,0xD2,0x38,}}, {0x46AF,4,{0x82,0x33,0xD2,0x39,}}, {0x46B0,4,{0x82,0x33,0xD3,0x30,}}, {0x46B1,4,{0x82,0x33,0xD3,0x31,}}, {0x46B2,4,{0x82,0x33,0xD3,0x32,}}, {0x46B3,4,{0x82,0x33,0xD3,0x33,}}, {0x46B4,4,{0x82,0x33,0xD3,0x34,}}, {0x46B5,4,{0x82,0x33,0xD3,0x35,}}, {0x46B6,4,{0x82,0x33,0xD3,0x36,}}, {0x46B7,4,{0x82,0x33,0xD3,0x37,}}, {0x46B8,4,{0x82,0x33,0xD3,0x38,}}, {0x46B9,4,{0x82,0x33,0xD3,0x39,}}, {0x46BA,4,{0x82,0x33,0xD4,0x30,}}, {0x46BB,4,{0x82,0x33,0xD4,0x31,}}, {0x46BC,4,{0x82,0x33,0xD4,0x32,}}, {0x46BD,4,{0x82,0x33,0xD4,0x33,}}, {0x46BE,4,{0x82,0x33,0xD4,0x34,}}, {0x46BF,4,{0x82,0x33,0xD4,0x35,}}, {0x46C0,4,{0x82,0x33,0xD4,0x36,}}, {0x46C1,4,{0x82,0x33,0xD4,0x37,}}, {0x46C2,4,{0x82,0x33,0xD4,0x38,}}, {0x46C3,4,{0x82,0x33,0xD4,0x39,}}, {0x46C4,4,{0x82,0x33,0xD5,0x30,}}, {0x46C5,4,{0x82,0x33,0xD5,0x31,}}, {0x46C6,4,{0x82,0x33,0xD5,0x32,}}, {0x46C7,4,{0x82,0x33,0xD5,0x33,}}, {0x46C8,4,{0x82,0x33,0xD5,0x34,}}, {0x46C9,4,{0x82,0x33,0xD5,0x35,}}, {0x46CA,4,{0x82,0x33,0xD5,0x36,}}, {0x46CB,4,{0x82,0x33,0xD5,0x37,}}, {0x46CC,4,{0x82,0x33,0xD5,0x38,}}, {0x46CD,4,{0x82,0x33,0xD5,0x39,}}, {0x46CE,4,{0x82,0x33,0xD6,0x30,}}, {0x46CF,4,{0x82,0x33,0xD6,0x31,}}, {0x46D0,4,{0x82,0x33,0xD6,0x32,}}, {0x46D1,4,{0x82,0x33,0xD6,0x33,}}, {0x46D2,4,{0x82,0x33,0xD6,0x34,}}, {0x46D3,4,{0x82,0x33,0xD6,0x35,}}, {0x46D4,4,{0x82,0x33,0xD6,0x36,}}, {0x46D5,4,{0x82,0x33,0xD6,0x37,}}, {0x46D6,4,{0x82,0x33,0xD6,0x38,}}, {0x46D7,4,{0x82,0x33,0xD6,0x39,}}, {0x46D8,4,{0x82,0x33,0xD7,0x30,}}, {0x46D9,4,{0x82,0x33,0xD7,0x31,}}, {0x46DA,4,{0x82,0x33,0xD7,0x32,}}, {0x46DB,4,{0x82,0x33,0xD7,0x33,}}, {0x46DC,4,{0x82,0x33,0xD7,0x34,}}, {0x46DD,4,{0x82,0x33,0xD7,0x35,}}, {0x46DE,4,{0x82,0x33,0xD7,0x36,}}, {0x46DF,4,{0x82,0x33,0xD7,0x37,}}, {0x46E0,4,{0x82,0x33,0xD7,0x38,}}, {0x46E1,4,{0x82,0x33,0xD7,0x39,}}, {0x46E2,4,{0x82,0x33,0xD8,0x30,}}, {0x46E3,4,{0x82,0x33,0xD8,0x31,}}, {0x46E4,4,{0x82,0x33,0xD8,0x32,}}, {0x46E5,4,{0x82,0x33,0xD8,0x33,}}, {0x46E6,4,{0x82,0x33,0xD8,0x34,}}, {0x46E7,4,{0x82,0x33,0xD8,0x35,}}, {0x46E8,4,{0x82,0x33,0xD8,0x36,}}, {0x46E9,4,{0x82,0x33,0xD8,0x37,}}, {0x46EA,4,{0x82,0x33,0xD8,0x38,}}, {0x46EB,4,{0x82,0x33,0xD8,0x39,}}, {0x46EC,4,{0x82,0x33,0xD9,0x30,}}, {0x46ED,4,{0x82,0x33,0xD9,0x31,}}, {0x46EE,4,{0x82,0x33,0xD9,0x32,}}, {0x46EF,4,{0x82,0x33,0xD9,0x33,}}, {0x46F0,4,{0x82,0x33,0xD9,0x34,}}, {0x46F1,4,{0x82,0x33,0xD9,0x35,}}, {0x46F2,4,{0x82,0x33,0xD9,0x36,}}, {0x46F3,4,{0x82,0x33,0xD9,0x37,}}, {0x46F4,4,{0x82,0x33,0xD9,0x38,}}, {0x46F5,4,{0x82,0x33,0xD9,0x39,}}, {0x46F6,4,{0x82,0x33,0xDA,0x30,}}, {0x46F7,4,{0x82,0x33,0xDA,0x31,}}, {0x46F8,4,{0x82,0x33,0xDA,0x32,}}, {0x46F9,4,{0x82,0x33,0xDA,0x33,}}, {0x46FA,4,{0x82,0x33,0xDA,0x34,}}, {0x46FB,4,{0x82,0x33,0xDA,0x35,}}, {0x46FC,4,{0x82,0x33,0xDA,0x36,}}, {0x46FD,4,{0x82,0x33,0xDA,0x37,}}, {0x46FE,4,{0x82,0x33,0xDA,0x38,}}, {0x46FF,4,{0x82,0x33,0xDA,0x39,}}, {0x4700,4,{0x82,0x33,0xDB,0x30,}}, {0x4701,4,{0x82,0x33,0xDB,0x31,}}, {0x4702,4,{0x82,0x33,0xDB,0x32,}}, {0x4703,4,{0x82,0x33,0xDB,0x33,}}, {0x4704,4,{0x82,0x33,0xDB,0x34,}}, {0x4705,4,{0x82,0x33,0xDB,0x35,}}, {0x4706,4,{0x82,0x33,0xDB,0x36,}}, {0x4707,4,{0x82,0x33,0xDB,0x37,}}, {0x4708,4,{0x82,0x33,0xDB,0x38,}}, {0x4709,4,{0x82,0x33,0xDB,0x39,}}, {0x470A,4,{0x82,0x33,0xDC,0x30,}}, {0x470B,4,{0x82,0x33,0xDC,0x31,}}, {0x470C,4,{0x82,0x33,0xDC,0x32,}}, {0x470D,4,{0x82,0x33,0xDC,0x33,}}, {0x470E,4,{0x82,0x33,0xDC,0x34,}}, {0x470F,4,{0x82,0x33,0xDC,0x35,}}, {0x4710,4,{0x82,0x33,0xDC,0x36,}}, {0x4711,4,{0x82,0x33,0xDC,0x37,}}, {0x4712,4,{0x82,0x33,0xDC,0x38,}}, {0x4713,4,{0x82,0x33,0xDC,0x39,}}, {0x4714,4,{0x82,0x33,0xDD,0x30,}}, {0x4715,4,{0x82,0x33,0xDD,0x31,}}, {0x4716,4,{0x82,0x33,0xDD,0x32,}}, {0x4717,4,{0x82,0x33,0xDD,0x33,}}, {0x4718,4,{0x82,0x33,0xDD,0x34,}}, {0x4719,4,{0x82,0x33,0xDD,0x35,}}, {0x471A,4,{0x82,0x33,0xDD,0x36,}}, {0x471B,4,{0x82,0x33,0xDD,0x37,}}, {0x471C,4,{0x82,0x33,0xDD,0x38,}}, {0x471D,4,{0x82,0x33,0xDD,0x39,}}, {0x471E,4,{0x82,0x33,0xDE,0x30,}}, {0x471F,4,{0x82,0x33,0xDE,0x31,}}, {0x4720,4,{0x82,0x33,0xDE,0x32,}}, {0x4721,4,{0x82,0x33,0xDE,0x33,}}, {0x4722,4,{0x82,0x33,0xDE,0x34,}}, {0x4723,2,{0xFE,0x80,0x00,0x00,}}, {0x4724,4,{0x82,0x33,0xDE,0x35,}}, {0x4725,4,{0x82,0x33,0xDE,0x36,}}, {0x4726,4,{0x82,0x33,0xDE,0x37,}}, {0x4727,4,{0x82,0x33,0xDE,0x38,}}, {0x4728,4,{0x82,0x33,0xDE,0x39,}}, {0x4729,2,{0xFE,0x81,0x00,0x00,}}, {0x472A,4,{0x82,0x33,0xDF,0x30,}}, {0x472B,4,{0x82,0x33,0xDF,0x31,}}, {0x472C,4,{0x82,0x33,0xDF,0x32,}}, {0x472D,4,{0x82,0x33,0xDF,0x33,}}, {0x472E,4,{0x82,0x33,0xDF,0x34,}}, {0x472F,4,{0x82,0x33,0xDF,0x35,}}, {0x4730,4,{0x82,0x33,0xDF,0x36,}}, {0x4731,4,{0x82,0x33,0xDF,0x37,}}, {0x4732,4,{0x82,0x33,0xDF,0x38,}}, {0x4733,4,{0x82,0x33,0xDF,0x39,}}, {0x4734,4,{0x82,0x33,0xE0,0x30,}}, {0x4735,4,{0x82,0x33,0xE0,0x31,}}, {0x4736,4,{0x82,0x33,0xE0,0x32,}}, {0x4737,4,{0x82,0x33,0xE0,0x33,}}, {0x4738,4,{0x82,0x33,0xE0,0x34,}}, {0x4739,4,{0x82,0x33,0xE0,0x35,}}, {0x473A,4,{0x82,0x33,0xE0,0x36,}}, {0x473B,4,{0x82,0x33,0xE0,0x37,}}, {0x473C,4,{0x82,0x33,0xE0,0x38,}}, {0x473D,4,{0x82,0x33,0xE0,0x39,}}, {0x473E,4,{0x82,0x33,0xE1,0x30,}}, {0x473F,4,{0x82,0x33,0xE1,0x31,}}, {0x4740,4,{0x82,0x33,0xE1,0x32,}}, {0x4741,4,{0x82,0x33,0xE1,0x33,}}, {0x4742,4,{0x82,0x33,0xE1,0x34,}}, {0x4743,4,{0x82,0x33,0xE1,0x35,}}, {0x4744,4,{0x82,0x33,0xE1,0x36,}}, {0x4745,4,{0x82,0x33,0xE1,0x37,}}, {0x4746,4,{0x82,0x33,0xE1,0x38,}}, {0x4747,4,{0x82,0x33,0xE1,0x39,}}, {0x4748,4,{0x82,0x33,0xE2,0x30,}}, {0x4749,4,{0x82,0x33,0xE2,0x31,}}, {0x474A,4,{0x82,0x33,0xE2,0x32,}}, {0x474B,4,{0x82,0x33,0xE2,0x33,}}, {0x474C,4,{0x82,0x33,0xE2,0x34,}}, {0x474D,4,{0x82,0x33,0xE2,0x35,}}, {0x474E,4,{0x82,0x33,0xE2,0x36,}}, {0x474F,4,{0x82,0x33,0xE2,0x37,}}, {0x4750,4,{0x82,0x33,0xE2,0x38,}}, {0x4751,4,{0x82,0x33,0xE2,0x39,}}, {0x4752,4,{0x82,0x33,0xE3,0x30,}}, {0x4753,4,{0x82,0x33,0xE3,0x31,}}, {0x4754,4,{0x82,0x33,0xE3,0x32,}}, {0x4755,4,{0x82,0x33,0xE3,0x33,}}, {0x4756,4,{0x82,0x33,0xE3,0x34,}}, {0x4757,4,{0x82,0x33,0xE3,0x35,}}, {0x4758,4,{0x82,0x33,0xE3,0x36,}}, {0x4759,4,{0x82,0x33,0xE3,0x37,}}, {0x475A,4,{0x82,0x33,0xE3,0x38,}}, {0x475B,4,{0x82,0x33,0xE3,0x39,}}, {0x475C,4,{0x82,0x33,0xE4,0x30,}}, {0x475D,4,{0x82,0x33,0xE4,0x31,}}, {0x475E,4,{0x82,0x33,0xE4,0x32,}}, {0x475F,4,{0x82,0x33,0xE4,0x33,}}, {0x4760,4,{0x82,0x33,0xE4,0x34,}}, {0x4761,4,{0x82,0x33,0xE4,0x35,}}, {0x4762,4,{0x82,0x33,0xE4,0x36,}}, {0x4763,4,{0x82,0x33,0xE4,0x37,}}, {0x4764,4,{0x82,0x33,0xE4,0x38,}}, {0x4765,4,{0x82,0x33,0xE4,0x39,}}, {0x4766,4,{0x82,0x33,0xE5,0x30,}}, {0x4767,4,{0x82,0x33,0xE5,0x31,}}, {0x4768,4,{0x82,0x33,0xE5,0x32,}}, {0x4769,4,{0x82,0x33,0xE5,0x33,}}, {0x476A,4,{0x82,0x33,0xE5,0x34,}}, {0x476B,4,{0x82,0x33,0xE5,0x35,}}, {0x476C,4,{0x82,0x33,0xE5,0x36,}}, {0x476D,4,{0x82,0x33,0xE5,0x37,}}, {0x476E,4,{0x82,0x33,0xE5,0x38,}}, {0x476F,4,{0x82,0x33,0xE5,0x39,}}, {0x4770,4,{0x82,0x33,0xE6,0x30,}}, {0x4771,4,{0x82,0x33,0xE6,0x31,}}, {0x4772,4,{0x82,0x33,0xE6,0x32,}}, {0x4773,4,{0x82,0x33,0xE6,0x33,}}, {0x4774,4,{0x82,0x33,0xE6,0x34,}}, {0x4775,4,{0x82,0x33,0xE6,0x35,}}, {0x4776,4,{0x82,0x33,0xE6,0x36,}}, {0x4777,4,{0x82,0x33,0xE6,0x37,}}, {0x4778,4,{0x82,0x33,0xE6,0x38,}}, {0x4779,4,{0x82,0x33,0xE6,0x39,}}, {0x477A,4,{0x82,0x33,0xE7,0x30,}}, {0x477B,4,{0x82,0x33,0xE7,0x31,}}, {0x477C,2,{0xFE,0x82,0x00,0x00,}}, {0x477D,4,{0x82,0x33,0xE7,0x32,}}, {0x477E,4,{0x82,0x33,0xE7,0x33,}}, {0x477F,4,{0x82,0x33,0xE7,0x34,}}, {0x4780,4,{0x82,0x33,0xE7,0x35,}}, {0x4781,4,{0x82,0x33,0xE7,0x36,}}, {0x4782,4,{0x82,0x33,0xE7,0x37,}}, {0x4783,4,{0x82,0x33,0xE7,0x38,}}, {0x4784,4,{0x82,0x33,0xE7,0x39,}}, {0x4785,4,{0x82,0x33,0xE8,0x30,}}, {0x4786,4,{0x82,0x33,0xE8,0x31,}}, {0x4787,4,{0x82,0x33,0xE8,0x32,}}, {0x4788,4,{0x82,0x33,0xE8,0x33,}}, {0x4789,4,{0x82,0x33,0xE8,0x34,}}, {0x478A,4,{0x82,0x33,0xE8,0x35,}}, {0x478B,4,{0x82,0x33,0xE8,0x36,}}, {0x478C,4,{0x82,0x33,0xE8,0x37,}}, {0x478D,2,{0xFE,0x83,0x00,0x00,}}, {0x4947,2,{0xFE,0x85,0x00,0x00,}}, {0x4948,4,{0x82,0x34,0x96,0x39,}}, {0x4949,4,{0x82,0x34,0x97,0x30,}}, {0x494A,4,{0x82,0x34,0x97,0x31,}}, {0x494B,4,{0x82,0x34,0x97,0x32,}}, {0x494C,4,{0x82,0x34,0x97,0x33,}}, {0x494D,4,{0x82,0x34,0x97,0x34,}}, {0x494E,4,{0x82,0x34,0x97,0x35,}}, {0x494F,4,{0x82,0x34,0x97,0x36,}}, {0x4950,4,{0x82,0x34,0x97,0x37,}}, {0x4951,4,{0x82,0x34,0x97,0x38,}}, {0x4952,4,{0x82,0x34,0x97,0x39,}}, {0x4953,4,{0x82,0x34,0x98,0x30,}}, {0x4954,4,{0x82,0x34,0x98,0x31,}}, {0x4955,4,{0x82,0x34,0x98,0x32,}}, {0x4956,4,{0x82,0x34,0x98,0x33,}}, {0x4957,4,{0x82,0x34,0x98,0x34,}}, {0x4958,4,{0x82,0x34,0x98,0x35,}}, {0x4959,4,{0x82,0x34,0x98,0x36,}}, {0x495A,4,{0x82,0x34,0x98,0x37,}}, {0x495B,4,{0x82,0x34,0x98,0x38,}}, {0x495C,4,{0x82,0x34,0x98,0x39,}}, {0x495D,4,{0x82,0x34,0x99,0x30,}}, {0x495E,4,{0x82,0x34,0x99,0x31,}}, {0x495F,4,{0x82,0x34,0x99,0x32,}}, {0x4960,4,{0x82,0x34,0x99,0x33,}}, {0x4961,4,{0x82,0x34,0x99,0x34,}}, {0x4962,4,{0x82,0x34,0x99,0x35,}}, {0x4963,4,{0x82,0x34,0x99,0x36,}}, {0x4964,4,{0x82,0x34,0x99,0x37,}}, {0x4965,4,{0x82,0x34,0x99,0x38,}}, {0x4966,4,{0x82,0x34,0x99,0x39,}}, {0x4967,4,{0x82,0x34,0x9A,0x30,}}, {0x4968,4,{0x82,0x34,0x9A,0x31,}}, {0x4969,4,{0x82,0x34,0x9A,0x32,}}, {0x496A,4,{0x82,0x34,0x9A,0x33,}}, {0x496B,4,{0x82,0x34,0x9A,0x34,}}, {0x496C,4,{0x82,0x34,0x9A,0x35,}}, {0x496D,4,{0x82,0x34,0x9A,0x36,}}, {0x496E,4,{0x82,0x34,0x9A,0x37,}}, {0x496F,4,{0x82,0x34,0x9A,0x38,}}, {0x4970,4,{0x82,0x34,0x9A,0x39,}}, {0x4971,4,{0x82,0x34,0x9B,0x30,}}, {0x4972,4,{0x82,0x34,0x9B,0x31,}}, {0x4973,4,{0x82,0x34,0x9B,0x32,}}, {0x4974,4,{0x82,0x34,0x9B,0x33,}}, {0x4975,4,{0x82,0x34,0x9B,0x34,}}, {0x4976,4,{0x82,0x34,0x9B,0x35,}}, {0x4977,4,{0x82,0x34,0x9B,0x36,}}, {0x4978,4,{0x82,0x34,0x9B,0x37,}}, {0x4979,4,{0x82,0x34,0x9B,0x38,}}, {0x497A,2,{0xFE,0x86,0x00,0x00,}}, {0x497B,4,{0x82,0x34,0x9B,0x39,}}, {0x497C,4,{0x82,0x34,0x9C,0x30,}}, {0x497D,2,{0xFE,0x87,0x00,0x00,}}, {0x497E,4,{0x82,0x34,0x9C,0x31,}}, {0x497F,4,{0x82,0x34,0x9C,0x32,}}, {0x4980,4,{0x82,0x34,0x9C,0x33,}}, {0x4981,4,{0x82,0x34,0x9C,0x34,}}, {0x4982,2,{0xFE,0x88,0x00,0x00,}}, {0x4983,2,{0xFE,0x89,0x00,0x00,}}, {0x4984,4,{0x82,0x34,0x9C,0x35,}}, {0x4985,2,{0xFE,0x8A,0x00,0x00,}}, {0x4986,2,{0xFE,0x8B,0x00,0x00,}}, {0x4987,4,{0x82,0x34,0x9C,0x36,}}, {0x4988,4,{0x82,0x34,0x9C,0x37,}}, {0x4989,4,{0x82,0x34,0x9C,0x38,}}, {0x498A,4,{0x82,0x34,0x9C,0x39,}}, {0x498B,4,{0x82,0x34,0x9D,0x30,}}, {0x498C,4,{0x82,0x34,0x9D,0x31,}}, {0x498D,4,{0x82,0x34,0x9D,0x32,}}, {0x498E,4,{0x82,0x34,0x9D,0x33,}}, {0x498F,4,{0x82,0x34,0x9D,0x34,}}, {0x4990,4,{0x82,0x34,0x9D,0x35,}}, {0x4991,4,{0x82,0x34,0x9D,0x36,}}, {0x4992,4,{0x82,0x34,0x9D,0x37,}}, {0x4993,4,{0x82,0x34,0x9D,0x38,}}, {0x4994,4,{0x82,0x34,0x9D,0x39,}}, {0x4995,4,{0x82,0x34,0x9E,0x30,}}, {0x4996,4,{0x82,0x34,0x9E,0x31,}}, {0x4997,4,{0x82,0x34,0x9E,0x32,}}, {0x4998,4,{0x82,0x34,0x9E,0x33,}}, {0x4999,4,{0x82,0x34,0x9E,0x34,}}, {0x499A,4,{0x82,0x34,0x9E,0x35,}}, {0x499B,2,{0xFE,0x8D,0x00,0x00,}}, {0x499C,4,{0x82,0x34,0x9E,0x36,}}, {0x499D,4,{0x82,0x34,0x9E,0x37,}}, {0x499E,4,{0x82,0x34,0x9E,0x38,}}, {0x499F,2,{0xFE,0x8C,0x00,0x00,}}, {0x49A0,4,{0x82,0x34,0x9E,0x39,}}, {0x49A1,4,{0x82,0x34,0x9F,0x30,}}, {0x49A2,4,{0x82,0x34,0x9F,0x31,}}, {0x49A3,4,{0x82,0x34,0x9F,0x32,}}, {0x49A4,4,{0x82,0x34,0x9F,0x33,}}, {0x49A5,4,{0x82,0x34,0x9F,0x34,}}, {0x49A6,4,{0x82,0x34,0x9F,0x35,}}, {0x49A7,4,{0x82,0x34,0x9F,0x36,}}, {0x49A8,4,{0x82,0x34,0x9F,0x37,}}, {0x49A9,4,{0x82,0x34,0x9F,0x38,}}, {0x49AA,4,{0x82,0x34,0x9F,0x39,}}, {0x49AB,4,{0x82,0x34,0xA0,0x30,}}, {0x49AC,4,{0x82,0x34,0xA0,0x31,}}, {0x49AD,4,{0x82,0x34,0xA0,0x32,}}, {0x49AE,4,{0x82,0x34,0xA0,0x33,}}, {0x49AF,4,{0x82,0x34,0xA0,0x34,}}, {0x49B0,4,{0x82,0x34,0xA0,0x35,}}, {0x49B1,4,{0x82,0x34,0xA0,0x36,}}, {0x49B2,4,{0x82,0x34,0xA0,0x37,}}, {0x49B3,4,{0x82,0x34,0xA0,0x38,}}, {0x49B4,4,{0x82,0x34,0xA0,0x39,}}, {0x49B5,4,{0x82,0x34,0xA1,0x30,}}, {0x49B6,2,{0xFE,0x8F,0x00,0x00,}}, {0x49B7,2,{0xFE,0x8E,0x00,0x00,}}, {0x4C77,2,{0xFE,0x96,0x00,0x00,}}, {0x4C78,4,{0x82,0x34,0xE7,0x34,}}, {0x4C79,4,{0x82,0x34,0xE7,0x35,}}, {0x4C7A,4,{0x82,0x34,0xE7,0x36,}}, {0x4C7B,4,{0x82,0x34,0xE7,0x37,}}, {0x4C7C,4,{0x82,0x34,0xE7,0x38,}}, {0x4C7D,4,{0x82,0x34,0xE7,0x39,}}, {0x4C7E,4,{0x82,0x34,0xE8,0x30,}}, {0x4C7F,4,{0x82,0x34,0xE8,0x31,}}, {0x4C80,4,{0x82,0x34,0xE8,0x32,}}, {0x4C81,4,{0x82,0x34,0xE8,0x33,}}, {0x4C82,4,{0x82,0x34,0xE8,0x34,}}, {0x4C83,4,{0x82,0x34,0xE8,0x35,}}, {0x4C84,4,{0x82,0x34,0xE8,0x36,}}, {0x4C85,4,{0x82,0x34,0xE8,0x37,}}, {0x4C86,4,{0x82,0x34,0xE8,0x38,}}, {0x4C87,4,{0x82,0x34,0xE8,0x39,}}, {0x4C88,4,{0x82,0x34,0xE9,0x30,}}, {0x4C89,4,{0x82,0x34,0xE9,0x31,}}, {0x4C8A,4,{0x82,0x34,0xE9,0x32,}}, {0x4C8B,4,{0x82,0x34,0xE9,0x33,}}, {0x4C8C,4,{0x82,0x34,0xE9,0x34,}}, {0x4C8D,4,{0x82,0x34,0xE9,0x35,}}, {0x4C8E,4,{0x82,0x34,0xE9,0x36,}}, {0x4C8F,4,{0x82,0x34,0xE9,0x37,}}, {0x4C90,4,{0x82,0x34,0xE9,0x38,}}, {0x4C91,4,{0x82,0x34,0xE9,0x39,}}, {0x4C92,4,{0x82,0x34,0xEA,0x30,}}, {0x4C93,4,{0x82,0x34,0xEA,0x31,}}, {0x4C94,4,{0x82,0x34,0xEA,0x32,}}, {0x4C95,4,{0x82,0x34,0xEA,0x33,}}, {0x4C96,4,{0x82,0x34,0xEA,0x34,}}, {0x4C97,4,{0x82,0x34,0xEA,0x35,}}, {0x4C98,4,{0x82,0x34,0xEA,0x36,}}, {0x4C99,4,{0x82,0x34,0xEA,0x37,}}, {0x4C9A,4,{0x82,0x34,0xEA,0x38,}}, {0x4C9B,4,{0x82,0x34,0xEA,0x39,}}, {0x4C9C,4,{0x82,0x34,0xEB,0x30,}}, {0x4C9D,4,{0x82,0x34,0xEB,0x31,}}, {0x4C9E,4,{0x82,0x34,0xEB,0x32,}}, {0x4C9F,2,{0xFE,0x93,0x00,0x00,}}, {0x4CA0,2,{0xFE,0x94,0x00,0x00,}}, {0x4CA1,2,{0xFE,0x95,0x00,0x00,}}, {0x4CA2,2,{0xFE,0x97,0x00,0x00,}}, {0x4CA3,2,{0xFE,0x92,0x00,0x00,}}, {0x4CA4,4,{0x82,0x34,0xEB,0x33,}}, {0x4CA5,4,{0x82,0x34,0xEB,0x34,}}, {0x4CA6,4,{0x82,0x34,0xEB,0x35,}}, {0x4CA7,4,{0x82,0x34,0xEB,0x36,}}, {0x4CA8,4,{0x82,0x34,0xEB,0x37,}}, {0x4CA9,4,{0x82,0x34,0xEB,0x38,}}, {0x4CAA,4,{0x82,0x34,0xEB,0x39,}}, {0x4CAB,4,{0x82,0x34,0xEC,0x30,}}, {0x4CAC,4,{0x82,0x34,0xEC,0x31,}}, {0x4CAD,4,{0x82,0x34,0xEC,0x32,}}, {0x4CAE,4,{0x82,0x34,0xEC,0x33,}}, {0x4CAF,4,{0x82,0x34,0xEC,0x34,}}, {0x4CB0,4,{0x82,0x34,0xEC,0x35,}}, {0x4CB1,4,{0x82,0x34,0xEC,0x36,}}, {0x4CB2,4,{0x82,0x34,0xEC,0x37,}}, {0x4CB3,4,{0x82,0x34,0xEC,0x38,}}, {0x4CB4,4,{0x82,0x34,0xEC,0x39,}}, {0x4CB5,4,{0x82,0x34,0xED,0x30,}}, {0x4CB6,4,{0x82,0x34,0xED,0x31,}}, {0x4CB7,4,{0x82,0x34,0xED,0x32,}}, {0x4CB8,4,{0x82,0x34,0xED,0x33,}}, {0x4CB9,4,{0x82,0x34,0xED,0x34,}}, {0x4CBA,4,{0x82,0x34,0xED,0x35,}}, {0x4CBB,4,{0x82,0x34,0xED,0x36,}}, {0x4CBC,4,{0x82,0x34,0xED,0x37,}}, {0x4CBD,4,{0x82,0x34,0xED,0x38,}}, {0x4CBE,4,{0x82,0x34,0xED,0x39,}}, {0x4CBF,4,{0x82,0x34,0xEE,0x30,}}, {0x4CC0,4,{0x82,0x34,0xEE,0x31,}}, {0x4CC1,4,{0x82,0x34,0xEE,0x32,}}, {0x4CC2,4,{0x82,0x34,0xEE,0x33,}}, {0x4CC3,4,{0x82,0x34,0xEE,0x34,}}, {0x4CC4,4,{0x82,0x34,0xEE,0x35,}}, {0x4CC5,4,{0x82,0x34,0xEE,0x36,}}, {0x4CC6,4,{0x82,0x34,0xEE,0x37,}}, {0x4CC7,4,{0x82,0x34,0xEE,0x38,}}, {0x4CC8,4,{0x82,0x34,0xEE,0x39,}}, {0x4CC9,4,{0x82,0x34,0xEF,0x30,}}, {0x4CCA,4,{0x82,0x34,0xEF,0x31,}}, {0x4CCB,4,{0x82,0x34,0xEF,0x32,}}, {0x4CCC,4,{0x82,0x34,0xEF,0x33,}}, {0x4CCD,4,{0x82,0x34,0xEF,0x34,}}, {0x4CCE,4,{0x82,0x34,0xEF,0x35,}}, {0x4CCF,4,{0x82,0x34,0xEF,0x36,}}, {0x4CD0,4,{0x82,0x34,0xEF,0x37,}}, {0x4CD1,4,{0x82,0x34,0xEF,0x38,}}, {0x4CD2,4,{0x82,0x34,0xEF,0x39,}}, {0x4CD3,4,{0x82,0x34,0xF0,0x30,}}, {0x4CD4,4,{0x82,0x34,0xF0,0x31,}}, {0x4CD5,4,{0x82,0x34,0xF0,0x32,}}, {0x4CD6,4,{0x82,0x34,0xF0,0x33,}}, {0x4CD7,4,{0x82,0x34,0xF0,0x34,}}, {0x4CD8,4,{0x82,0x34,0xF0,0x35,}}, {0x4CD9,4,{0x82,0x34,0xF0,0x36,}}, {0x4CDA,4,{0x82,0x34,0xF0,0x37,}}, {0x4CDB,4,{0x82,0x34,0xF0,0x38,}}, {0x4CDC,4,{0x82,0x34,0xF0,0x39,}}, {0x4CDD,4,{0x82,0x34,0xF1,0x30,}}, {0x4CDE,4,{0x82,0x34,0xF1,0x31,}}, {0x4CDF,4,{0x82,0x34,0xF1,0x32,}}, {0x4CE0,4,{0x82,0x34,0xF1,0x33,}}, {0x4CE1,4,{0x82,0x34,0xF1,0x34,}}, {0x4CE2,4,{0x82,0x34,0xF1,0x35,}}, {0x4CE3,4,{0x82,0x34,0xF1,0x36,}}, {0x4CE4,4,{0x82,0x34,0xF1,0x37,}}, {0x4CE5,4,{0x82,0x34,0xF1,0x38,}}, {0x4CE6,4,{0x82,0x34,0xF1,0x39,}}, {0x4CE7,4,{0x82,0x34,0xF2,0x30,}}, {0x4CE8,4,{0x82,0x34,0xF2,0x31,}}, {0x4CE9,4,{0x82,0x34,0xF2,0x32,}}, {0x4CEA,4,{0x82,0x34,0xF2,0x33,}}, {0x4CEB,4,{0x82,0x34,0xF2,0x34,}}, {0x4CEC,4,{0x82,0x34,0xF2,0x35,}}, {0x4CED,4,{0x82,0x34,0xF2,0x36,}}, {0x4CEE,4,{0x82,0x34,0xF2,0x37,}}, {0x4CEF,4,{0x82,0x34,0xF2,0x38,}}, {0x4CF0,4,{0x82,0x34,0xF2,0x39,}}, {0x4CF1,4,{0x82,0x34,0xF3,0x30,}}, {0x4CF2,4,{0x82,0x34,0xF3,0x31,}}, {0x4CF3,4,{0x82,0x34,0xF3,0x32,}}, {0x4CF4,4,{0x82,0x34,0xF3,0x33,}}, {0x4CF5,4,{0x82,0x34,0xF3,0x34,}}, {0x4CF6,4,{0x82,0x34,0xF3,0x35,}}, {0x4CF7,4,{0x82,0x34,0xF3,0x36,}}, {0x4CF8,4,{0x82,0x34,0xF3,0x37,}}, {0x4CF9,4,{0x82,0x34,0xF3,0x38,}}, {0x4CFA,4,{0x82,0x34,0xF3,0x39,}}, {0x4CFB,4,{0x82,0x34,0xF4,0x30,}}, {0x4CFC,4,{0x82,0x34,0xF4,0x31,}}, {0x4CFD,4,{0x82,0x34,0xF4,0x32,}}, {0x4CFE,4,{0x82,0x34,0xF4,0x33,}}, {0x4CFF,4,{0x82,0x34,0xF4,0x34,}}, {0x4D00,4,{0x82,0x34,0xF4,0x35,}}, {0x4D01,4,{0x82,0x34,0xF4,0x36,}}, {0x4D02,4,{0x82,0x34,0xF4,0x37,}}, {0x4D03,4,{0x82,0x34,0xF4,0x38,}}, {0x4D04,4,{0x82,0x34,0xF4,0x39,}}, {0x4D05,4,{0x82,0x34,0xF5,0x30,}}, {0x4D06,4,{0x82,0x34,0xF5,0x31,}}, {0x4D07,4,{0x82,0x34,0xF5,0x32,}}, {0x4D08,4,{0x82,0x34,0xF5,0x33,}}, {0x4D09,4,{0x82,0x34,0xF5,0x34,}}, {0x4D0A,4,{0x82,0x34,0xF5,0x35,}}, {0x4D0B,4,{0x82,0x34,0xF5,0x36,}}, {0x4D0C,4,{0x82,0x34,0xF5,0x37,}}, {0x4D0D,4,{0x82,0x34,0xF5,0x38,}}, {0x4D0E,4,{0x82,0x34,0xF5,0x39,}}, {0x4D0F,4,{0x82,0x34,0xF6,0x30,}}, {0x4D10,4,{0x82,0x34,0xF6,0x31,}}, {0x4D11,4,{0x82,0x34,0xF6,0x32,}}, {0x4D12,4,{0x82,0x34,0xF6,0x33,}}, {0x4D13,2,{0xFE,0x98,0x00,0x00,}}, {0x4D14,2,{0xFE,0x99,0x00,0x00,}}, {0x4D15,2,{0xFE,0x9A,0x00,0x00,}}, {0x4D16,2,{0xFE,0x9B,0x00,0x00,}}, {0x4D17,2,{0xFE,0x9C,0x00,0x00,}}, {0x4D18,2,{0xFE,0x9D,0x00,0x00,}}, {0x4D19,2,{0xFE,0x9E,0x00,0x00,}}, {0x4D1A,4,{0x82,0x34,0xF6,0x34,}}, {0x4D1B,4,{0x82,0x34,0xF6,0x35,}}, {0x4D1C,4,{0x82,0x34,0xF6,0x36,}}, {0x4D1D,4,{0x82,0x34,0xF6,0x37,}}, {0x4D1E,4,{0x82,0x34,0xF6,0x38,}}, {0x4D1F,4,{0x82,0x34,0xF6,0x39,}}, {0x4D20,4,{0x82,0x34,0xF7,0x30,}}, {0x4D21,4,{0x82,0x34,0xF7,0x31,}}, {0x4D22,4,{0x82,0x34,0xF7,0x32,}}, {0x4D23,4,{0x82,0x34,0xF7,0x33,}}, {0x4D24,4,{0x82,0x34,0xF7,0x34,}}, {0x4D25,4,{0x82,0x34,0xF7,0x35,}}, {0x4D26,4,{0x82,0x34,0xF7,0x36,}}, {0x4D27,4,{0x82,0x34,0xF7,0x37,}}, {0x4D28,4,{0x82,0x34,0xF7,0x38,}}, {0x4D29,4,{0x82,0x34,0xF7,0x39,}}, {0x4D2A,4,{0x82,0x34,0xF8,0x30,}}, {0x4D2B,4,{0x82,0x34,0xF8,0x31,}}, {0x4D2C,4,{0x82,0x34,0xF8,0x32,}}, {0x4D2D,4,{0x82,0x34,0xF8,0x33,}}, {0x4D2E,4,{0x82,0x34,0xF8,0x34,}}, {0x4D2F,4,{0x82,0x34,0xF8,0x35,}}, {0x4D30,4,{0x82,0x34,0xF8,0x36,}}, {0x4D31,4,{0x82,0x34,0xF8,0x37,}}, {0x4D32,4,{0x82,0x34,0xF8,0x38,}}, {0x4D33,4,{0x82,0x34,0xF8,0x39,}}, {0x4D34,4,{0x82,0x34,0xF9,0x30,}}, {0x4D35,4,{0x82,0x34,0xF9,0x31,}}, {0x4D36,4,{0x82,0x34,0xF9,0x32,}}, {0x4D37,4,{0x82,0x34,0xF9,0x33,}}, {0x4D38,4,{0x82,0x34,0xF9,0x34,}}, {0x4D39,4,{0x82,0x34,0xF9,0x35,}}, {0x4D3A,4,{0x82,0x34,0xF9,0x36,}}, {0x4D3B,4,{0x82,0x34,0xF9,0x37,}}, {0x4D3C,4,{0x82,0x34,0xF9,0x38,}}, {0x4D3D,4,{0x82,0x34,0xF9,0x39,}}, {0x4D3E,4,{0x82,0x34,0xFA,0x30,}}, {0x4D3F,4,{0x82,0x34,0xFA,0x31,}}, {0x4D40,4,{0x82,0x34,0xFA,0x32,}}, {0x4D41,4,{0x82,0x34,0xFA,0x33,}}, {0x4D42,4,{0x82,0x34,0xFA,0x34,}}, {0x4D43,4,{0x82,0x34,0xFA,0x35,}}, {0x4D44,4,{0x82,0x34,0xFA,0x36,}}, {0x4D45,4,{0x82,0x34,0xFA,0x37,}}, {0x4D46,4,{0x82,0x34,0xFA,0x38,}}, {0x4D47,4,{0x82,0x34,0xFA,0x39,}}, {0x4D48,4,{0x82,0x34,0xFB,0x30,}}, {0x4D49,4,{0x82,0x34,0xFB,0x31,}}, {0x4D4A,4,{0x82,0x34,0xFB,0x32,}}, {0x4D4B,4,{0x82,0x34,0xFB,0x33,}}, {0x4D4C,4,{0x82,0x34,0xFB,0x34,}}, {0x4D4D,4,{0x82,0x34,0xFB,0x35,}}, {0x4D4E,4,{0x82,0x34,0xFB,0x36,}}, {0x4D4F,4,{0x82,0x34,0xFB,0x37,}}, {0x4D50,4,{0x82,0x34,0xFB,0x38,}}, {0x4D51,4,{0x82,0x34,0xFB,0x39,}}, {0x4D52,4,{0x82,0x34,0xFC,0x30,}}, {0x4D53,4,{0x82,0x34,0xFC,0x31,}}, {0x4D54,4,{0x82,0x34,0xFC,0x32,}}, {0x4D55,4,{0x82,0x34,0xFC,0x33,}}, {0x4D56,4,{0x82,0x34,0xFC,0x34,}}, {0x4D57,4,{0x82,0x34,0xFC,0x35,}}, {0x4D58,4,{0x82,0x34,0xFC,0x36,}}, {0x4D59,4,{0x82,0x34,0xFC,0x37,}}, {0x4D5A,4,{0x82,0x34,0xFC,0x38,}}, {0x4D5B,4,{0x82,0x34,0xFC,0x39,}}, {0x4D5C,4,{0x82,0x34,0xFD,0x30,}}, {0x4D5D,4,{0x82,0x34,0xFD,0x31,}}, {0x4D5E,4,{0x82,0x34,0xFD,0x32,}}, {0x4D5F,4,{0x82,0x34,0xFD,0x33,}}, {0x4D60,4,{0x82,0x34,0xFD,0x34,}}, {0x4D61,4,{0x82,0x34,0xFD,0x35,}}, {0x4D62,4,{0x82,0x34,0xFD,0x36,}}, {0x4D63,4,{0x82,0x34,0xFD,0x37,}}, {0x4D64,4,{0x82,0x34,0xFD,0x38,}}, {0x4D65,4,{0x82,0x34,0xFD,0x39,}}, {0x4D66,4,{0x82,0x34,0xFE,0x30,}}, {0x4D67,4,{0x82,0x34,0xFE,0x31,}}, {0x4D68,4,{0x82,0x34,0xFE,0x32,}}, {0x4D69,4,{0x82,0x34,0xFE,0x33,}}, {0x4D6A,4,{0x82,0x34,0xFE,0x34,}}, {0x4D6B,4,{0x82,0x34,0xFE,0x35,}}, {0x4D6C,4,{0x82,0x34,0xFE,0x36,}}, {0x4D6D,4,{0x82,0x34,0xFE,0x37,}}, {0x4D6E,4,{0x82,0x34,0xFE,0x38,}}, {0x4D6F,4,{0x82,0x34,0xFE,0x39,}}, {0x4D70,4,{0x82,0x35,0x81,0x30,}}, {0x4D71,4,{0x82,0x35,0x81,0x31,}}, {0x4D72,4,{0x82,0x35,0x81,0x32,}}, {0x4D73,4,{0x82,0x35,0x81,0x33,}}, {0x4D74,4,{0x82,0x35,0x81,0x34,}}, {0x4D75,4,{0x82,0x35,0x81,0x35,}}, {0x4D76,4,{0x82,0x35,0x81,0x36,}}, {0x4D77,4,{0x82,0x35,0x81,0x37,}}, {0x4D78,4,{0x82,0x35,0x81,0x38,}}, {0x4D79,4,{0x82,0x35,0x81,0x39,}}, {0x4D7A,4,{0x82,0x35,0x82,0x30,}}, {0x4D7B,4,{0x82,0x35,0x82,0x31,}}, {0x4D7C,4,{0x82,0x35,0x82,0x32,}}, {0x4D7D,4,{0x82,0x35,0x82,0x33,}}, {0x4D7E,4,{0x82,0x35,0x82,0x34,}}, {0x4D7F,4,{0x82,0x35,0x82,0x35,}}, {0x4D80,4,{0x82,0x35,0x82,0x36,}}, {0x4D81,4,{0x82,0x35,0x82,0x37,}}, {0x4D82,4,{0x82,0x35,0x82,0x38,}}, {0x4D83,4,{0x82,0x35,0x82,0x39,}}, {0x4D84,4,{0x82,0x35,0x83,0x30,}}, {0x4D85,4,{0x82,0x35,0x83,0x31,}}, {0x4D86,4,{0x82,0x35,0x83,0x32,}}, {0x4D87,4,{0x82,0x35,0x83,0x33,}}, {0x4D88,4,{0x82,0x35,0x83,0x34,}}, {0x4D89,4,{0x82,0x35,0x83,0x35,}}, {0x4D8A,4,{0x82,0x35,0x83,0x36,}}, {0x4D8B,4,{0x82,0x35,0x83,0x37,}}, {0x4D8C,4,{0x82,0x35,0x83,0x38,}}, {0x4D8D,4,{0x82,0x35,0x83,0x39,}}, {0x4D8E,4,{0x82,0x35,0x84,0x30,}}, {0x4D8F,4,{0x82,0x35,0x84,0x31,}}, {0x4D90,4,{0x82,0x35,0x84,0x32,}}, {0x4D91,4,{0x82,0x35,0x84,0x33,}}, {0x4D92,4,{0x82,0x35,0x84,0x34,}}, {0x4D93,4,{0x82,0x35,0x84,0x35,}}, {0x4D94,4,{0x82,0x35,0x84,0x36,}}, {0x4D95,4,{0x82,0x35,0x84,0x37,}}, {0x4D96,4,{0x82,0x35,0x84,0x38,}}, {0x4D97,4,{0x82,0x35,0x84,0x39,}}, {0x4D98,4,{0x82,0x35,0x85,0x30,}}, {0x4D99,4,{0x82,0x35,0x85,0x31,}}, {0x4D9A,4,{0x82,0x35,0x85,0x32,}}, {0x4D9B,4,{0x82,0x35,0x85,0x33,}}, {0x4D9C,4,{0x82,0x35,0x85,0x34,}}, {0x4D9D,4,{0x82,0x35,0x85,0x35,}}, {0x4D9E,4,{0x82,0x35,0x85,0x36,}}, {0x4D9F,4,{0x82,0x35,0x85,0x37,}}, {0x4DA0,4,{0x82,0x35,0x85,0x38,}}, {0x4DA1,4,{0x82,0x35,0x85,0x39,}}, {0x4DA2,4,{0x82,0x35,0x86,0x30,}}, {0x4DA3,4,{0x82,0x35,0x86,0x31,}}, {0x4DA4,4,{0x82,0x35,0x86,0x32,}}, {0x4DA5,4,{0x82,0x35,0x86,0x33,}}, {0x4DA6,4,{0x82,0x35,0x86,0x34,}}, {0x4DA7,4,{0x82,0x35,0x86,0x35,}}, {0x4DA8,4,{0x82,0x35,0x86,0x36,}}, {0x4DA9,4,{0x82,0x35,0x86,0x37,}}, {0x4DAA,4,{0x82,0x35,0x86,0x38,}}, {0x4DAB,4,{0x82,0x35,0x86,0x39,}}, {0x4DAC,4,{0x82,0x35,0x87,0x30,}}, {0x4DAD,4,{0x82,0x35,0x87,0x31,}}, {0x4DAE,2,{0xFE,0x9F,0x00,0x00,}}, {0x4DAF,4,{0x82,0x35,0x87,0x32,}}, {0x4DB0,4,{0x82,0x35,0x87,0x33,}}, {0x4DB1,4,{0x82,0x35,0x87,0x34,}}, {0x4DB2,4,{0x82,0x35,0x87,0x35,}}, {0x4DB3,4,{0x82,0x35,0x87,0x36,}}, {0x4DB4,4,{0x82,0x35,0x87,0x37,}}, {0x4DB5,4,{0x82,0x35,0x87,0x38,}}, {0x4DB6,4,{0x82,0x35,0x87,0x39,}}, {0x4DB7,4,{0x82,0x35,0x88,0x30,}}, {0x4DB8,4,{0x82,0x35,0x88,0x31,}}, {0x4DB9,4,{0x82,0x35,0x88,0x32,}}, {0x4DBA,4,{0x82,0x35,0x88,0x33,}}, {0x4DBB,4,{0x82,0x35,0x88,0x34,}}, {0x4DBC,4,{0x82,0x35,0x88,0x35,}}, {0x4DBD,4,{0x82,0x35,0x88,0x36,}}, {0x4DBE,4,{0x82,0x35,0x88,0x37,}}, {0x4DBF,4,{0x82,0x35,0x88,0x38,}}, {0x4DC0,4,{0x82,0x35,0x88,0x39,}}, {0x4DC1,4,{0x82,0x35,0x89,0x30,}}, {0x4DC2,4,{0x82,0x35,0x89,0x31,}}, {0x4DC3,4,{0x82,0x35,0x89,0x32,}}, {0x4DC4,4,{0x82,0x35,0x89,0x33,}}, {0x4DC5,4,{0x82,0x35,0x89,0x34,}}, {0x4DC6,4,{0x82,0x35,0x89,0x35,}}, {0x4DC7,4,{0x82,0x35,0x89,0x36,}}, {0x4DC8,4,{0x82,0x35,0x89,0x37,}}, {0x4DC9,4,{0x82,0x35,0x89,0x38,}}, {0x4DCA,4,{0x82,0x35,0x89,0x39,}}, {0x4DCB,4,{0x82,0x35,0x8A,0x30,}}, {0x4DCC,4,{0x82,0x35,0x8A,0x31,}}, {0x4DCD,4,{0x82,0x35,0x8A,0x32,}}, {0x4DCE,4,{0x82,0x35,0x8A,0x33,}}, {0x4DCF,4,{0x82,0x35,0x8A,0x34,}}, {0x4DD0,4,{0x82,0x35,0x8A,0x35,}}, {0x4DD1,4,{0x82,0x35,0x8A,0x36,}}, {0x4DD2,4,{0x82,0x35,0x8A,0x37,}}, {0x4DD3,4,{0x82,0x35,0x8A,0x38,}}, {0x4DD4,4,{0x82,0x35,0x8A,0x39,}}, {0x4DD5,4,{0x82,0x35,0x8B,0x30,}}, {0x4DD6,4,{0x82,0x35,0x8B,0x31,}}, {0x4DD7,4,{0x82,0x35,0x8B,0x32,}}, {0x4DD8,4,{0x82,0x35,0x8B,0x33,}}, {0x4DD9,4,{0x82,0x35,0x8B,0x34,}}, {0x4DDA,4,{0x82,0x35,0x8B,0x35,}}, {0x4DDB,4,{0x82,0x35,0x8B,0x36,}}, {0x4DDC,4,{0x82,0x35,0x8B,0x37,}}, {0x4DDD,4,{0x82,0x35,0x8B,0x38,}}, {0x4DDE,4,{0x82,0x35,0x8B,0x39,}}, {0x4DDF,4,{0x82,0x35,0x8C,0x30,}}, {0x4DE0,4,{0x82,0x35,0x8C,0x31,}}, {0x4DE1,4,{0x82,0x35,0x8C,0x32,}}, {0x4DE2,4,{0x82,0x35,0x8C,0x33,}}, {0x4DE3,4,{0x82,0x35,0x8C,0x34,}}, {0x4DE4,4,{0x82,0x35,0x8C,0x35,}}, {0x4DE5,4,{0x82,0x35,0x8C,0x36,}}, {0x4DE6,4,{0x82,0x35,0x8C,0x37,}}, {0x4DE7,4,{0x82,0x35,0x8C,0x38,}}, {0x4DE8,4,{0x82,0x35,0x8C,0x39,}}, {0x4DE9,4,{0x82,0x35,0x8D,0x30,}}, {0x4DEA,4,{0x82,0x35,0x8D,0x31,}}, {0x4DEB,4,{0x82,0x35,0x8D,0x32,}}, {0x4DEC,4,{0x82,0x35,0x8D,0x33,}}, {0x4DED,4,{0x82,0x35,0x8D,0x34,}}, {0x4DEE,4,{0x82,0x35,0x8D,0x35,}}, {0x4DEF,4,{0x82,0x35,0x8D,0x36,}}, {0x4DF0,4,{0x82,0x35,0x8D,0x37,}}, {0x4DF1,4,{0x82,0x35,0x8D,0x38,}}, {0x4DF2,4,{0x82,0x35,0x8D,0x39,}}, {0x4DF3,4,{0x82,0x35,0x8E,0x30,}}, {0x4DF4,4,{0x82,0x35,0x8E,0x31,}}, {0x4DF5,4,{0x82,0x35,0x8E,0x32,}}, {0x4DF6,4,{0x82,0x35,0x8E,0x33,}}, {0x4DF7,4,{0x82,0x35,0x8E,0x34,}}, {0x4DF8,4,{0x82,0x35,0x8E,0x35,}}, {0x4DF9,4,{0x82,0x35,0x8E,0x36,}}, {0x4DFA,4,{0x82,0x35,0x8E,0x37,}}, {0x4DFB,4,{0x82,0x35,0x8E,0x38,}}, {0x4DFC,4,{0x82,0x35,0x8E,0x39,}}, {0x4DFD,4,{0x82,0x35,0x8F,0x30,}}, {0x4DFE,4,{0x82,0x35,0x8F,0x31,}}, {0x4DFF,4,{0x82,0x35,0x8F,0x32,}}, {0x4E00,2,{0xD2,0xBB,0x00,0x00,}}, {0x4E01,2,{0xB6,0xA1,0x00,0x00,}}, {0x4E02,2,{0x81,0x40,0x00,0x00,}}, {0x4E03,2,{0xC6,0xDF,0x00,0x00,}}, {0x4E04,2,{0x81,0x41,0x00,0x00,}}, {0x4E05,2,{0x81,0x42,0x00,0x00,}}, {0x4E06,2,{0x81,0x43,0x00,0x00,}}, {0x4E07,2,{0xCD,0xF2,0x00,0x00,}}, {0x4E08,2,{0xD5,0xC9,0x00,0x00,}}, {0x4E09,2,{0xC8,0xFD,0x00,0x00,}}, {0x4E0A,2,{0xC9,0xCF,0x00,0x00,}}, {0x4E0B,2,{0xCF,0xC2,0x00,0x00,}}, {0x4E0C,2,{0xD8,0xA2,0x00,0x00,}}, {0x4E0D,2,{0xB2,0xBB,0x00,0x00,}}, {0x4E0E,2,{0xD3,0xEB,0x00,0x00,}}, {0x4E0F,2,{0x81,0x44,0x00,0x00,}}, {0x4E10,2,{0xD8,0xA4,0x00,0x00,}}, {0x4E11,2,{0xB3,0xF3,0x00,0x00,}}, {0x4E12,2,{0x81,0x45,0x00,0x00,}}, {0x4E13,2,{0xD7,0xA8,0x00,0x00,}}, {0x4E14,2,{0xC7,0xD2,0x00,0x00,}}, {0x4E15,2,{0xD8,0xA7,0x00,0x00,}}, {0x4E16,2,{0xCA,0xC0,0x00,0x00,}}, {0x4E17,2,{0x81,0x46,0x00,0x00,}}, {0x4E18,2,{0xC7,0xF0,0x00,0x00,}}, {0x4E19,2,{0xB1,0xFB,0x00,0x00,}}, {0x4E1A,2,{0xD2,0xB5,0x00,0x00,}}, {0x4E1B,2,{0xB4,0xD4,0x00,0x00,}}, {0x4E1C,2,{0xB6,0xAB,0x00,0x00,}}, {0x4E1D,2,{0xCB,0xBF,0x00,0x00,}}, {0x4E1E,2,{0xD8,0xA9,0x00,0x00,}}, {0x4E1F,2,{0x81,0x47,0x00,0x00,}}, {0x4E20,2,{0x81,0x48,0x00,0x00,}}, {0x4E21,2,{0x81,0x49,0x00,0x00,}}, {0x4E22,2,{0xB6,0xAA,0x00,0x00,}}, {0x4E23,2,{0x81,0x4A,0x00,0x00,}}, {0x4E24,2,{0xC1,0xBD,0x00,0x00,}}, {0x4E25,2,{0xD1,0xCF,0x00,0x00,}}, {0x4E26,2,{0x81,0x4B,0x00,0x00,}}, {0x4E27,2,{0xC9,0xA5,0x00,0x00,}}, {0x4E28,2,{0xD8,0xAD,0x00,0x00,}}, {0x4E29,2,{0x81,0x4C,0x00,0x00,}}, {0x4E2A,2,{0xB8,0xF6,0x00,0x00,}}, {0x4E2B,2,{0xD1,0xBE,0x00,0x00,}}, {0x4E2C,2,{0xE3,0xDC,0x00,0x00,}}, {0x4E2D,2,{0xD6,0xD0,0x00,0x00,}}, {0x4E2E,2,{0x81,0x4D,0x00,0x00,}}, {0x4E2F,2,{0x81,0x4E,0x00,0x00,}}, {0x4E30,2,{0xB7,0xE1,0x00,0x00,}}, {0x4E31,2,{0x81,0x4F,0x00,0x00,}}, {0x4E32,2,{0xB4,0xAE,0x00,0x00,}}, {0x4E33,2,{0x81,0x50,0x00,0x00,}}, {0x4E34,2,{0xC1,0xD9,0x00,0x00,}}, {0x4E35,2,{0x81,0x51,0x00,0x00,}}, {0x4E36,2,{0xD8,0xBC,0x00,0x00,}}, {0x4E37,2,{0x81,0x52,0x00,0x00,}}, {0x4E38,2,{0xCD,0xE8,0x00,0x00,}}, {0x4E39,2,{0xB5,0xA4,0x00,0x00,}}, {0x4E3A,2,{0xCE,0xAA,0x00,0x00,}}, {0x4E3B,2,{0xD6,0xF7,0x00,0x00,}}, {0x4E3C,2,{0x81,0x53,0x00,0x00,}}, {0x4E3D,2,{0xC0,0xF6,0x00,0x00,}}, {0x4E3E,2,{0xBE,0xD9,0x00,0x00,}}, {0x4E3F,2,{0xD8,0xAF,0x00,0x00,}}, {0x4E40,2,{0x81,0x54,0x00,0x00,}}, {0x4E41,2,{0x81,0x55,0x00,0x00,}}, {0x4E42,2,{0x81,0x56,0x00,0x00,}}, {0x4E43,2,{0xC4,0xCB,0x00,0x00,}}, {0x4E44,2,{0x81,0x57,0x00,0x00,}}, {0x4E45,2,{0xBE,0xC3,0x00,0x00,}}, {0x4E46,2,{0x81,0x58,0x00,0x00,}}, {0x4E47,2,{0xD8,0xB1,0x00,0x00,}}, {0x4E48,2,{0xC3,0xB4,0x00,0x00,}}, {0x4E49,2,{0xD2,0xE5,0x00,0x00,}}, {0x4E4A,2,{0x81,0x59,0x00,0x00,}}, {0x4E4B,2,{0xD6,0xAE,0x00,0x00,}}, {0x4E4C,2,{0xCE,0xDA,0x00,0x00,}}, {0x4E4D,2,{0xD5,0xA7,0x00,0x00,}}, {0x4E4E,2,{0xBA,0xF5,0x00,0x00,}}, {0x4E4F,2,{0xB7,0xA6,0x00,0x00,}}, {0x4E50,2,{0xC0,0xD6,0x00,0x00,}}, {0x4E51,2,{0x81,0x5A,0x00,0x00,}}, {0x4E52,2,{0xC6,0xB9,0x00,0x00,}}, {0x4E53,2,{0xC5,0xD2,0x00,0x00,}}, {0x4E54,2,{0xC7,0xC7,0x00,0x00,}}, {0x4E55,2,{0x81,0x5B,0x00,0x00,}}, {0x4E56,2,{0xB9,0xD4,0x00,0x00,}}, {0x4E57,2,{0x81,0x5C,0x00,0x00,}}, {0x4E58,2,{0xB3,0xCB,0x00,0x00,}}, {0x4E59,2,{0xD2,0xD2,0x00,0x00,}}, {0x4E5A,2,{0x81,0x5D,0x00,0x00,}}, {0x4E5B,2,{0x81,0x5E,0x00,0x00,}}, {0x4E5C,2,{0xD8,0xBF,0x00,0x00,}}, {0x4E5D,2,{0xBE,0xC5,0x00,0x00,}}, {0x4E5E,2,{0xC6,0xF2,0x00,0x00,}}, {0x4E5F,2,{0xD2,0xB2,0x00,0x00,}}, {0x4E60,2,{0xCF,0xB0,0x00,0x00,}}, {0x4E61,2,{0xCF,0xE7,0x00,0x00,}}, {0x4E62,2,{0x81,0x5F,0x00,0x00,}}, {0x4E63,2,{0x81,0x60,0x00,0x00,}}, {0x4E64,2,{0x81,0x61,0x00,0x00,}}, {0x4E65,2,{0x81,0x62,0x00,0x00,}}, {0x4E66,2,{0xCA,0xE9,0x00,0x00,}}, {0x4E67,2,{0x81,0x63,0x00,0x00,}}, {0x4E68,2,{0x81,0x64,0x00,0x00,}}, {0x4E69,2,{0xD8,0xC0,0x00,0x00,}}, {0x4E6A,2,{0x81,0x65,0x00,0x00,}}, {0x4E6B,2,{0x81,0x66,0x00,0x00,}}, {0x4E6C,2,{0x81,0x67,0x00,0x00,}}, {0x4E6D,2,{0x81,0x68,0x00,0x00,}}, {0x4E6E,2,{0x81,0x69,0x00,0x00,}}, {0x4E6F,2,{0x81,0x6A,0x00,0x00,}}, {0x4E70,2,{0xC2,0xF2,0x00,0x00,}}, {0x4E71,2,{0xC2,0xD2,0x00,0x00,}}, {0x4E72,2,{0x81,0x6B,0x00,0x00,}}, {0x4E73,2,{0xC8,0xE9,0x00,0x00,}}, {0x4E74,2,{0x81,0x6C,0x00,0x00,}}, {0x4E75,2,{0x81,0x6D,0x00,0x00,}}, {0x4E76,2,{0x81,0x6E,0x00,0x00,}}, {0x4E77,2,{0x81,0x6F,0x00,0x00,}}, {0x4E78,2,{0x81,0x70,0x00,0x00,}}, {0x4E79,2,{0x81,0x71,0x00,0x00,}}, {0x4E7A,2,{0x81,0x72,0x00,0x00,}}, {0x4E7B,2,{0x81,0x73,0x00,0x00,}}, {0x4E7C,2,{0x81,0x74,0x00,0x00,}}, {0x4E7D,2,{0x81,0x75,0x00,0x00,}}, {0x4E7E,2,{0xC7,0xAC,0x00,0x00,}}, {0x4E7F,2,{0x81,0x76,0x00,0x00,}}, {0x4E80,2,{0x81,0x77,0x00,0x00,}}, {0x4E81,2,{0x81,0x78,0x00,0x00,}}, {0x4E82,2,{0x81,0x79,0x00,0x00,}}, {0x4E83,2,{0x81,0x7A,0x00,0x00,}}, {0x4E84,2,{0x81,0x7B,0x00,0x00,}}, {0x4E85,2,{0x81,0x7C,0x00,0x00,}}, {0x4E86,2,{0xC1,0xCB,0x00,0x00,}}, {0x4E87,2,{0x81,0x7D,0x00,0x00,}}, {0x4E88,2,{0xD3,0xE8,0x00,0x00,}}, {0x4E89,2,{0xD5,0xF9,0x00,0x00,}}, {0x4E8A,2,{0x81,0x7E,0x00,0x00,}}, {0x4E8B,2,{0xCA,0xC2,0x00,0x00,}}, {0x4E8C,2,{0xB6,0xFE,0x00,0x00,}}, {0x4E8D,2,{0xD8,0xA1,0x00,0x00,}}, {0x4E8E,2,{0xD3,0xDA,0x00,0x00,}}, {0x4E8F,2,{0xBF,0xF7,0x00,0x00,}}, {0x4E90,2,{0x81,0x80,0x00,0x00,}}, {0x4E91,2,{0xD4,0xC6,0x00,0x00,}}, {0x4E92,2,{0xBB,0xA5,0x00,0x00,}}, {0x4E93,2,{0xD8,0xC1,0x00,0x00,}}, {0x4E94,2,{0xCE,0xE5,0x00,0x00,}}, {0x4E95,2,{0xBE,0xAE,0x00,0x00,}}, {0x4E96,2,{0x81,0x81,0x00,0x00,}}, {0x4E97,2,{0x81,0x82,0x00,0x00,}}, {0x4E98,2,{0xD8,0xA8,0x00,0x00,}}, {0x4E99,2,{0x81,0x83,0x00,0x00,}}, {0x4E9A,2,{0xD1,0xC7,0x00,0x00,}}, {0x4E9B,2,{0xD0,0xA9,0x00,0x00,}}, {0x4E9C,2,{0x81,0x84,0x00,0x00,}}, {0x4E9D,2,{0x81,0x85,0x00,0x00,}}, {0x4E9E,2,{0x81,0x86,0x00,0x00,}}, {0x4E9F,2,{0xD8,0xBD,0x00,0x00,}}, {0x4EA0,2,{0xD9,0xEF,0x00,0x00,}}, {0x4EA1,2,{0xCD,0xF6,0x00,0x00,}}, {0x4EA2,2,{0xBF,0xBA,0x00,0x00,}}, {0x4EA3,2,{0x81,0x87,0x00,0x00,}}, {0x4EA4,2,{0xBD,0xBB,0x00,0x00,}}, {0x4EA5,2,{0xBA,0xA5,0x00,0x00,}}, {0x4EA6,2,{0xD2,0xE0,0x00,0x00,}}, {0x4EA7,2,{0xB2,0xFA,0x00,0x00,}}, {0x4EA8,2,{0xBA,0xE0,0x00,0x00,}}, {0x4EA9,2,{0xC4,0xB6,0x00,0x00,}}, {0x4EAA,2,{0x81,0x88,0x00,0x00,}}, {0x4EAB,2,{0xCF,0xED,0x00,0x00,}}, {0x4EAC,2,{0xBE,0xA9,0x00,0x00,}}, {0x4EAD,2,{0xCD,0xA4,0x00,0x00,}}, {0x4EAE,2,{0xC1,0xC1,0x00,0x00,}}, {0x4EAF,2,{0x81,0x89,0x00,0x00,}}, {0x4EB0,2,{0x81,0x8A,0x00,0x00,}}, {0x4EB1,2,{0x81,0x8B,0x00,0x00,}}, {0x4EB2,2,{0xC7,0xD7,0x00,0x00,}}, {0x4EB3,2,{0xD9,0xF1,0x00,0x00,}}, {0x4EB4,2,{0x81,0x8C,0x00,0x00,}}, {0x4EB5,2,{0xD9,0xF4,0x00,0x00,}}, {0x4EB6,2,{0x81,0x8D,0x00,0x00,}}, {0x4EB7,2,{0x81,0x8E,0x00,0x00,}}, {0x4EB8,2,{0x81,0x8F,0x00,0x00,}}, {0x4EB9,2,{0x81,0x90,0x00,0x00,}}, {0x4EBA,2,{0xC8,0xCB,0x00,0x00,}}, {0x4EBB,2,{0xD8,0xE9,0x00,0x00,}}, {0x4EBC,2,{0x81,0x91,0x00,0x00,}}, {0x4EBD,2,{0x81,0x92,0x00,0x00,}}, {0x4EBE,2,{0x81,0x93,0x00,0x00,}}, {0x4EBF,2,{0xD2,0xDA,0x00,0x00,}}, {0x4EC0,2,{0xCA,0xB2,0x00,0x00,}}, {0x4EC1,2,{0xC8,0xCA,0x00,0x00,}}, {0x4EC2,2,{0xD8,0xEC,0x00,0x00,}}, {0x4EC3,2,{0xD8,0xEA,0x00,0x00,}}, {0x4EC4,2,{0xD8,0xC6,0x00,0x00,}}, {0x4EC5,2,{0xBD,0xF6,0x00,0x00,}}, {0x4EC6,2,{0xC6,0xCD,0x00,0x00,}}, {0x4EC7,2,{0xB3,0xF0,0x00,0x00,}}, {0x4EC8,2,{0x81,0x94,0x00,0x00,}}, {0x4EC9,2,{0xD8,0xEB,0x00,0x00,}}, {0x4ECA,2,{0xBD,0xF1,0x00,0x00,}}, {0x4ECB,2,{0xBD,0xE9,0x00,0x00,}}, {0x4ECC,2,{0x81,0x95,0x00,0x00,}}, {0x4ECD,2,{0xC8,0xD4,0x00,0x00,}}, {0x4ECE,2,{0xB4,0xD3,0x00,0x00,}}, {0x4ECF,2,{0x81,0x96,0x00,0x00,}}, {0x4ED0,2,{0x81,0x97,0x00,0x00,}}, {0x4ED1,2,{0xC2,0xD8,0x00,0x00,}}, {0x4ED2,2,{0x81,0x98,0x00,0x00,}}, {0x4ED3,2,{0xB2,0xD6,0x00,0x00,}}, {0x4ED4,2,{0xD7,0xD0,0x00,0x00,}}, {0x4ED5,2,{0xCA,0xCB,0x00,0x00,}}, {0x4ED6,2,{0xCB,0xFB,0x00,0x00,}}, {0x4ED7,2,{0xD5,0xCC,0x00,0x00,}}, {0x4ED8,2,{0xB8,0xB6,0x00,0x00,}}, {0x4ED9,2,{0xCF,0xC9,0x00,0x00,}}, {0x4EDA,2,{0x81,0x99,0x00,0x00,}}, {0x4EDB,2,{0x81,0x9A,0x00,0x00,}}, {0x4EDC,2,{0x81,0x9B,0x00,0x00,}}, {0x4EDD,2,{0xD9,0xDA,0x00,0x00,}}, {0x4EDE,2,{0xD8,0xF0,0x00,0x00,}}, {0x4EDF,2,{0xC7,0xAA,0x00,0x00,}}, {0x4EE0,2,{0x81,0x9C,0x00,0x00,}}, {0x4EE1,2,{0xD8,0xEE,0x00,0x00,}}, {0x4EE2,2,{0x81,0x9D,0x00,0x00,}}, {0x4EE3,2,{0xB4,0xFA,0x00,0x00,}}, {0x4EE4,2,{0xC1,0xEE,0x00,0x00,}}, {0x4EE5,2,{0xD2,0xD4,0x00,0x00,}}, {0x4EE6,2,{0x81,0x9E,0x00,0x00,}}, {0x4EE7,2,{0x81,0x9F,0x00,0x00,}}, {0x4EE8,2,{0xD8,0xED,0x00,0x00,}}, {0x4EE9,2,{0x81,0xA0,0x00,0x00,}}, {0x4EEA,2,{0xD2,0xC7,0x00,0x00,}}, {0x4EEB,2,{0xD8,0xEF,0x00,0x00,}}, {0x4EEC,2,{0xC3,0xC7,0x00,0x00,}}, {0x4EED,2,{0x81,0xA1,0x00,0x00,}}, {0x4EEE,2,{0x81,0xA2,0x00,0x00,}}, {0x4EEF,2,{0x81,0xA3,0x00,0x00,}}, {0x4EF0,2,{0xD1,0xF6,0x00,0x00,}}, {0x4EF1,2,{0x81,0xA4,0x00,0x00,}}, {0x4EF2,2,{0xD6,0xD9,0x00,0x00,}}, {0x4EF3,2,{0xD8,0xF2,0x00,0x00,}}, {0x4EF4,2,{0x81,0xA5,0x00,0x00,}}, {0x4EF5,2,{0xD8,0xF5,0x00,0x00,}}, {0x4EF6,2,{0xBC,0xFE,0x00,0x00,}}, {0x4EF7,2,{0xBC,0xDB,0x00,0x00,}}, {0x4EF8,2,{0x81,0xA6,0x00,0x00,}}, {0x4EF9,2,{0x81,0xA7,0x00,0x00,}}, {0x4EFA,2,{0x81,0xA8,0x00,0x00,}}, {0x4EFB,2,{0xC8,0xCE,0x00,0x00,}}, {0x4EFC,2,{0x81,0xA9,0x00,0x00,}}, {0x4EFD,2,{0xB7,0xDD,0x00,0x00,}}, {0x4EFE,2,{0x81,0xAA,0x00,0x00,}}, {0x4EFF,2,{0xB7,0xC2,0x00,0x00,}}, {0x4F00,2,{0x81,0xAB,0x00,0x00,}}, {0x4F01,2,{0xC6,0xF3,0x00,0x00,}}, {0x4F02,2,{0x81,0xAC,0x00,0x00,}}, {0x4F03,2,{0x81,0xAD,0x00,0x00,}}, {0x4F04,2,{0x81,0xAE,0x00,0x00,}}, {0x4F05,2,{0x81,0xAF,0x00,0x00,}}, {0x4F06,2,{0x81,0xB0,0x00,0x00,}}, {0x4F07,2,{0x81,0xB1,0x00,0x00,}}, {0x4F08,2,{0x81,0xB2,0x00,0x00,}}, {0x4F09,2,{0xD8,0xF8,0x00,0x00,}}, {0x4F0A,2,{0xD2,0xC1,0x00,0x00,}}, {0x4F0B,2,{0x81,0xB3,0x00,0x00,}}, {0x4F0C,2,{0x81,0xB4,0x00,0x00,}}, {0x4F0D,2,{0xCE,0xE9,0x00,0x00,}}, {0x4F0E,2,{0xBC,0xBF,0x00,0x00,}}, {0x4F0F,2,{0xB7,0xFC,0x00,0x00,}}, {0x4F10,2,{0xB7,0xA5,0x00,0x00,}}, {0x4F11,2,{0xD0,0xDD,0x00,0x00,}}, {0x4F12,2,{0x81,0xB5,0x00,0x00,}}, {0x4F13,2,{0x81,0xB6,0x00,0x00,}}, {0x4F14,2,{0x81,0xB7,0x00,0x00,}}, {0x4F15,2,{0x81,0xB8,0x00,0x00,}}, {0x4F16,2,{0x81,0xB9,0x00,0x00,}}, {0x4F17,2,{0xD6,0xDA,0x00,0x00,}}, {0x4F18,2,{0xD3,0xC5,0x00,0x00,}}, {0x4F19,2,{0xBB,0xEF,0x00,0x00,}}, {0x4F1A,2,{0xBB,0xE1,0x00,0x00,}}, {0x4F1B,2,{0xD8,0xF1,0x00,0x00,}}, {0x4F1C,2,{0x81,0xBA,0x00,0x00,}}, {0x4F1D,2,{0x81,0xBB,0x00,0x00,}}, {0x4F1E,2,{0xC9,0xA1,0x00,0x00,}}, {0x4F1F,2,{0xCE,0xB0,0x00,0x00,}}, {0x4F20,2,{0xB4,0xAB,0x00,0x00,}}, {0x4F21,2,{0x81,0xBC,0x00,0x00,}}, {0x4F22,2,{0xD8,0xF3,0x00,0x00,}}, {0x4F23,2,{0x81,0xBD,0x00,0x00,}}, {0x4F24,2,{0xC9,0xCB,0x00,0x00,}}, {0x4F25,2,{0xD8,0xF6,0x00,0x00,}}, {0x4F26,2,{0xC2,0xD7,0x00,0x00,}}, {0x4F27,2,{0xD8,0xF7,0x00,0x00,}}, {0x4F28,2,{0x81,0xBE,0x00,0x00,}}, {0x4F29,2,{0x81,0xBF,0x00,0x00,}}, {0x4F2A,2,{0xCE,0xB1,0x00,0x00,}}, {0x4F2B,2,{0xD8,0xF9,0x00,0x00,}}, {0x4F2C,2,{0x81,0xC0,0x00,0x00,}}, {0x4F2D,2,{0x81,0xC1,0x00,0x00,}}, {0x4F2E,2,{0x81,0xC2,0x00,0x00,}}, {0x4F2F,2,{0xB2,0xAE,0x00,0x00,}}, {0x4F30,2,{0xB9,0xC0,0x00,0x00,}}, {0x4F31,2,{0x81,0xC3,0x00,0x00,}}, {0x4F32,2,{0xD9,0xA3,0x00,0x00,}}, {0x4F33,2,{0x81,0xC4,0x00,0x00,}}, {0x4F34,2,{0xB0,0xE9,0x00,0x00,}}, {0x4F35,2,{0x81,0xC5,0x00,0x00,}}, {0x4F36,2,{0xC1,0xE6,0x00,0x00,}}, {0x4F37,2,{0x81,0xC6,0x00,0x00,}}, {0x4F38,2,{0xC9,0xEC,0x00,0x00,}}, {0x4F39,2,{0x81,0xC7,0x00,0x00,}}, {0x4F3A,2,{0xCB,0xC5,0x00,0x00,}}, {0x4F3B,2,{0x81,0xC8,0x00,0x00,}}, {0x4F3C,2,{0xCB,0xC6,0x00,0x00,}}, {0x4F3D,2,{0xD9,0xA4,0x00,0x00,}}, {0x4F3E,2,{0x81,0xC9,0x00,0x00,}}, {0x4F3F,2,{0x81,0xCA,0x00,0x00,}}, {0x4F40,2,{0x81,0xCB,0x00,0x00,}}, {0x4F41,2,{0x81,0xCC,0x00,0x00,}}, {0x4F42,2,{0x81,0xCD,0x00,0x00,}}, {0x4F43,2,{0xB5,0xE8,0x00,0x00,}}, {0x4F44,2,{0x81,0xCE,0x00,0x00,}}, {0x4F45,2,{0x81,0xCF,0x00,0x00,}}, {0x4F46,2,{0xB5,0xAB,0x00,0x00,}}, {0x4F47,2,{0x81,0xD0,0x00,0x00,}}, {0x4F48,2,{0x81,0xD1,0x00,0x00,}}, {0x4F49,2,{0x81,0xD2,0x00,0x00,}}, {0x4F4A,2,{0x81,0xD3,0x00,0x00,}}, {0x4F4B,2,{0x81,0xD4,0x00,0x00,}}, {0x4F4C,2,{0x81,0xD5,0x00,0x00,}}, {0x4F4D,2,{0xCE,0xBB,0x00,0x00,}}, {0x4F4E,2,{0xB5,0xCD,0x00,0x00,}}, {0x4F4F,2,{0xD7,0xA1,0x00,0x00,}}, {0x4F50,2,{0xD7,0xF4,0x00,0x00,}}, {0x4F51,2,{0xD3,0xD3,0x00,0x00,}}, {0x4F52,2,{0x81,0xD6,0x00,0x00,}}, {0x4F53,2,{0xCC,0xE5,0x00,0x00,}}, {0x4F54,2,{0x81,0xD7,0x00,0x00,}}, {0x4F55,2,{0xBA,0xCE,0x00,0x00,}}, {0x4F56,2,{0x81,0xD8,0x00,0x00,}}, {0x4F57,2,{0xD9,0xA2,0x00,0x00,}}, {0x4F58,2,{0xD9,0xDC,0x00,0x00,}}, {0x4F59,2,{0xD3,0xE0,0x00,0x00,}}, {0x4F5A,2,{0xD8,0xFD,0x00,0x00,}}, {0x4F5B,2,{0xB7,0xF0,0x00,0x00,}}, {0x4F5C,2,{0xD7,0xF7,0x00,0x00,}}, {0x4F5D,2,{0xD8,0xFE,0x00,0x00,}}, {0x4F5E,2,{0xD8,0xFA,0x00,0x00,}}, {0x4F5F,2,{0xD9,0xA1,0x00,0x00,}}, {0x4F60,2,{0xC4,0xE3,0x00,0x00,}}, {0x4F61,2,{0x81,0xD9,0x00,0x00,}}, {0x4F62,2,{0x81,0xDA,0x00,0x00,}}, {0x4F63,2,{0xD3,0xB6,0x00,0x00,}}, {0x4F64,2,{0xD8,0xF4,0x00,0x00,}}, {0x4F65,2,{0xD9,0xDD,0x00,0x00,}}, {0x4F66,2,{0x81,0xDB,0x00,0x00,}}, {0x4F67,2,{0xD8,0xFB,0x00,0x00,}}, {0x4F68,2,{0x81,0xDC,0x00,0x00,}}, {0x4F69,2,{0xC5,0xE5,0x00,0x00,}}, {0x4F6A,2,{0x81,0xDD,0x00,0x00,}}, {0x4F6B,2,{0x81,0xDE,0x00,0x00,}}, {0x4F6C,2,{0xC0,0xD0,0x00,0x00,}}, {0x4F6D,2,{0x81,0xDF,0x00,0x00,}}, {0x4F6E,2,{0x81,0xE0,0x00,0x00,}}, {0x4F6F,2,{0xD1,0xF0,0x00,0x00,}}, {0x4F70,2,{0xB0,0xDB,0x00,0x00,}}, {0x4F71,2,{0x81,0xE1,0x00,0x00,}}, {0x4F72,2,{0x81,0xE2,0x00,0x00,}}, {0x4F73,2,{0xBC,0xD1,0x00,0x00,}}, {0x4F74,2,{0xD9,0xA6,0x00,0x00,}}, {0x4F75,2,{0x81,0xE3,0x00,0x00,}}, {0x4F76,2,{0xD9,0xA5,0x00,0x00,}}, {0x4F77,2,{0x81,0xE4,0x00,0x00,}}, {0x4F78,2,{0x81,0xE5,0x00,0x00,}}, {0x4F79,2,{0x81,0xE6,0x00,0x00,}}, {0x4F7A,2,{0x81,0xE7,0x00,0x00,}}, {0x4F7B,2,{0xD9,0xAC,0x00,0x00,}}, {0x4F7C,2,{0xD9,0xAE,0x00,0x00,}}, {0x4F7D,2,{0x81,0xE8,0x00,0x00,}}, {0x4F7E,2,{0xD9,0xAB,0x00,0x00,}}, {0x4F7F,2,{0xCA,0xB9,0x00,0x00,}}, {0x4F80,2,{0x81,0xE9,0x00,0x00,}}, {0x4F81,2,{0x81,0xEA,0x00,0x00,}}, {0x4F82,2,{0x81,0xEB,0x00,0x00,}}, {0x4F83,2,{0xD9,0xA9,0x00,0x00,}}, {0x4F84,2,{0xD6,0xB6,0x00,0x00,}}, {0x4F85,2,{0x81,0xEC,0x00,0x00,}}, {0x4F86,2,{0x81,0xED,0x00,0x00,}}, {0x4F87,2,{0x81,0xEE,0x00,0x00,}}, {0x4F88,2,{0xB3,0xDE,0x00,0x00,}}, {0x4F89,2,{0xD9,0xA8,0x00,0x00,}}, {0x4F8A,2,{0x81,0xEF,0x00,0x00,}}, {0x4F8B,2,{0xC0,0xFD,0x00,0x00,}}, {0x4F8C,2,{0x81,0xF0,0x00,0x00,}}, {0x4F8D,2,{0xCA,0xCC,0x00,0x00,}}, {0x4F8E,2,{0x81,0xF1,0x00,0x00,}}, {0x4F8F,2,{0xD9,0xAA,0x00,0x00,}}, {0x4F90,2,{0x81,0xF2,0x00,0x00,}}, {0x4F91,2,{0xD9,0xA7,0x00,0x00,}}, {0x4F92,2,{0x81,0xF3,0x00,0x00,}}, {0x4F93,2,{0x81,0xF4,0x00,0x00,}}, {0x4F94,2,{0xD9,0xB0,0x00,0x00,}}, {0x4F95,2,{0x81,0xF5,0x00,0x00,}}, {0x4F96,2,{0x81,0xF6,0x00,0x00,}}, {0x4F97,2,{0xB6,0xB1,0x00,0x00,}}, {0x4F98,2,{0x81,0xF7,0x00,0x00,}}, {0x4F99,2,{0x81,0xF8,0x00,0x00,}}, {0x4F9A,2,{0x81,0xF9,0x00,0x00,}}, {0x4F9B,2,{0xB9,0xA9,0x00,0x00,}}, {0x4F9C,2,{0x81,0xFA,0x00,0x00,}}, {0x4F9D,2,{0xD2,0xC0,0x00,0x00,}}, {0x4F9E,2,{0x81,0xFB,0x00,0x00,}}, {0x4F9F,2,{0x81,0xFC,0x00,0x00,}}, {0x4FA0,2,{0xCF,0xC0,0x00,0x00,}}, {0x4FA1,2,{0x81,0xFD,0x00,0x00,}}, {0x4FA2,2,{0x81,0xFE,0x00,0x00,}}, {0x4FA3,2,{0xC2,0xC2,0x00,0x00,}}, {0x4FA4,2,{0x82,0x40,0x00,0x00,}}, {0x4FA5,2,{0xBD,0xC4,0x00,0x00,}}, {0x4FA6,2,{0xD5,0xEC,0x00,0x00,}}, {0x4FA7,2,{0xB2,0xE0,0x00,0x00,}}, {0x4FA8,2,{0xC7,0xC8,0x00,0x00,}}, {0x4FA9,2,{0xBF,0xEB,0x00,0x00,}}, {0x4FAA,2,{0xD9,0xAD,0x00,0x00,}}, {0x4FAB,2,{0x82,0x41,0x00,0x00,}}, {0x4FAC,2,{0xD9,0xAF,0x00,0x00,}}, {0x4FAD,2,{0x82,0x42,0x00,0x00,}}, {0x4FAE,2,{0xCE,0xEA,0x00,0x00,}}, {0x4FAF,2,{0xBA,0xEE,0x00,0x00,}}, {0x4FB0,2,{0x82,0x43,0x00,0x00,}}, {0x4FB1,2,{0x82,0x44,0x00,0x00,}}, {0x4FB2,2,{0x82,0x45,0x00,0x00,}}, {0x4FB3,2,{0x82,0x46,0x00,0x00,}}, {0x4FB4,2,{0x82,0x47,0x00,0x00,}}, {0x4FB5,2,{0xC7,0xD6,0x00,0x00,}}, {0x4FB6,2,{0x82,0x48,0x00,0x00,}}, {0x4FB7,2,{0x82,0x49,0x00,0x00,}}, {0x4FB8,2,{0x82,0x4A,0x00,0x00,}}, {0x4FB9,2,{0x82,0x4B,0x00,0x00,}}, {0x4FBA,2,{0x82,0x4C,0x00,0x00,}}, {0x4FBB,2,{0x82,0x4D,0x00,0x00,}}, {0x4FBC,2,{0x82,0x4E,0x00,0x00,}}, {0x4FBD,2,{0x82,0x4F,0x00,0x00,}}, {0x4FBE,2,{0x82,0x50,0x00,0x00,}}, {0x4FBF,2,{0xB1,0xE3,0x00,0x00,}}, {0x4FC0,2,{0x82,0x51,0x00,0x00,}}, {0x4FC1,2,{0x82,0x52,0x00,0x00,}}, {0x4FC2,2,{0x82,0x53,0x00,0x00,}}, {0x4FC3,2,{0xB4,0xD9,0x00,0x00,}}, {0x4FC4,2,{0xB6,0xED,0x00,0x00,}}, {0x4FC5,2,{0xD9,0xB4,0x00,0x00,}}, {0x4FC6,2,{0x82,0x54,0x00,0x00,}}, {0x4FC7,2,{0x82,0x55,0x00,0x00,}}, {0x4FC8,2,{0x82,0x56,0x00,0x00,}}, {0x4FC9,2,{0x82,0x57,0x00,0x00,}}, {0x4FCA,2,{0xBF,0xA1,0x00,0x00,}}, {0x4FCB,2,{0x82,0x58,0x00,0x00,}}, {0x4FCC,2,{0x82,0x59,0x00,0x00,}}, {0x4FCD,2,{0x82,0x5A,0x00,0x00,}}, {0x4FCE,2,{0xD9,0xDE,0x00,0x00,}}, {0x4FCF,2,{0xC7,0xCE,0x00,0x00,}}, {0x4FD0,2,{0xC0,0xFE,0x00,0x00,}}, {0x4FD1,2,{0xD9,0xB8,0x00,0x00,}}, {0x4FD2,2,{0x82,0x5B,0x00,0x00,}}, {0x4FD3,2,{0x82,0x5C,0x00,0x00,}}, {0x4FD4,2,{0x82,0x5D,0x00,0x00,}}, {0x4FD5,2,{0x82,0x5E,0x00,0x00,}}, {0x4FD6,2,{0x82,0x5F,0x00,0x00,}}, {0x4FD7,2,{0xCB,0xD7,0x00,0x00,}}, {0x4FD8,2,{0xB7,0xFD,0x00,0x00,}}, {0x4FD9,2,{0x82,0x60,0x00,0x00,}}, {0x4FDA,2,{0xD9,0xB5,0x00,0x00,}}, {0x4FDB,2,{0x82,0x61,0x00,0x00,}}, {0x4FDC,2,{0xD9,0xB7,0x00,0x00,}}, {0x4FDD,2,{0xB1,0xA3,0x00,0x00,}}, {0x4FDE,2,{0xD3,0xE1,0x00,0x00,}}, {0x4FDF,2,{0xD9,0xB9,0x00,0x00,}}, {0x4FE0,2,{0x82,0x62,0x00,0x00,}}, {0x4FE1,2,{0xD0,0xC5,0x00,0x00,}}, {0x4FE2,2,{0x82,0x63,0x00,0x00,}}, {0x4FE3,2,{0xD9,0xB6,0x00,0x00,}}, {0x4FE4,2,{0x82,0x64,0x00,0x00,}}, {0x4FE5,2,{0x82,0x65,0x00,0x00,}}, {0x4FE6,2,{0xD9,0xB1,0x00,0x00,}}, {0x4FE7,2,{0x82,0x66,0x00,0x00,}}, {0x4FE8,2,{0xD9,0xB2,0x00,0x00,}}, {0x4FE9,2,{0xC1,0xA9,0x00,0x00,}}, {0x4FEA,2,{0xD9,0xB3,0x00,0x00,}}, {0x4FEB,2,{0x82,0x67,0x00,0x00,}}, {0x4FEC,2,{0x82,0x68,0x00,0x00,}}, {0x4FED,2,{0xBC,0xF3,0x00,0x00,}}, {0x4FEE,2,{0xD0,0xDE,0x00,0x00,}}, {0x4FEF,2,{0xB8,0xA9,0x00,0x00,}}, {0x4FF0,2,{0x82,0x69,0x00,0x00,}}, {0x4FF1,2,{0xBE,0xE3,0x00,0x00,}}, {0x4FF2,2,{0x82,0x6A,0x00,0x00,}}, {0x4FF3,2,{0xD9,0xBD,0x00,0x00,}}, {0x4FF4,2,{0x82,0x6B,0x00,0x00,}}, {0x4FF5,2,{0x82,0x6C,0x00,0x00,}}, {0x4FF6,2,{0x82,0x6D,0x00,0x00,}}, {0x4FF7,2,{0x82,0x6E,0x00,0x00,}}, {0x4FF8,2,{0xD9,0xBA,0x00,0x00,}}, {0x4FF9,2,{0x82,0x6F,0x00,0x00,}}, {0x4FFA,2,{0xB0,0xB3,0x00,0x00,}}, {0x4FFB,2,{0x82,0x70,0x00,0x00,}}, {0x4FFC,2,{0x82,0x71,0x00,0x00,}}, {0x4FFD,2,{0x82,0x72,0x00,0x00,}}, {0x4FFE,2,{0xD9,0xC2,0x00,0x00,}}, {0x4FFF,2,{0x82,0x73,0x00,0x00,}}, {0x5000,2,{0x82,0x74,0x00,0x00,}}, {0x5001,2,{0x82,0x75,0x00,0x00,}}, {0x5002,2,{0x82,0x76,0x00,0x00,}}, {0x5003,2,{0x82,0x77,0x00,0x00,}}, {0x5004,2,{0x82,0x78,0x00,0x00,}}, {0x5005,2,{0x82,0x79,0x00,0x00,}}, {0x5006,2,{0x82,0x7A,0x00,0x00,}}, {0x5007,2,{0x82,0x7B,0x00,0x00,}}, {0x5008,2,{0x82,0x7C,0x00,0x00,}}, {0x5009,2,{0x82,0x7D,0x00,0x00,}}, {0x500A,2,{0x82,0x7E,0x00,0x00,}}, {0x500B,2,{0x82,0x80,0x00,0x00,}}, {0x500C,2,{0xD9,0xC4,0x00,0x00,}}, {0x500D,2,{0xB1,0xB6,0x00,0x00,}}, {0x500E,2,{0x82,0x81,0x00,0x00,}}, {0x500F,2,{0xD9,0xBF,0x00,0x00,}}, {0x5010,2,{0x82,0x82,0x00,0x00,}}, {0x5011,2,{0x82,0x83,0x00,0x00,}}, {0x5012,2,{0xB5,0xB9,0x00,0x00,}}, {0x5013,2,{0x82,0x84,0x00,0x00,}}, {0x5014,2,{0xBE,0xF3,0x00,0x00,}}, {0x5015,2,{0x82,0x85,0x00,0x00,}}, {0x5016,2,{0x82,0x86,0x00,0x00,}}, {0x5017,2,{0x82,0x87,0x00,0x00,}}, {0x5018,2,{0xCC,0xC8,0x00,0x00,}}, {0x5019,2,{0xBA,0xF2,0x00,0x00,}}, {0x501A,2,{0xD2,0xD0,0x00,0x00,}}, {0x501B,2,{0x82,0x88,0x00,0x00,}}, {0x501C,2,{0xD9,0xC3,0x00,0x00,}}, {0x501D,2,{0x82,0x89,0x00,0x00,}}, {0x501E,2,{0x82,0x8A,0x00,0x00,}}, {0x501F,2,{0xBD,0xE8,0x00,0x00,}}, {0x5020,2,{0x82,0x8B,0x00,0x00,}}, {0x5021,2,{0xB3,0xAB,0x00,0x00,}}, {0x5022,2,{0x82,0x8C,0x00,0x00,}}, {0x5023,2,{0x82,0x8D,0x00,0x00,}}, {0x5024,2,{0x82,0x8E,0x00,0x00,}}, {0x5025,2,{0xD9,0xC5,0x00,0x00,}}, {0x5026,2,{0xBE,0xEB,0x00,0x00,}}, {0x5027,2,{0x82,0x8F,0x00,0x00,}}, {0x5028,2,{0xD9,0xC6,0x00,0x00,}}, {0x5029,2,{0xD9,0xBB,0x00,0x00,}}, {0x502A,2,{0xC4,0xDF,0x00,0x00,}}, {0x502B,2,{0x82,0x90,0x00,0x00,}}, {0x502C,2,{0xD9,0xBE,0x00,0x00,}}, {0x502D,2,{0xD9,0xC1,0x00,0x00,}}, {0x502E,2,{0xD9,0xC0,0x00,0x00,}}, {0x502F,2,{0x82,0x91,0x00,0x00,}}, {0x5030,2,{0x82,0x92,0x00,0x00,}}, {0x5031,2,{0x82,0x93,0x00,0x00,}}, {0x5032,2,{0x82,0x94,0x00,0x00,}}, {0x5033,2,{0x82,0x95,0x00,0x00,}}, {0x5034,2,{0x82,0x96,0x00,0x00,}}, {0x5035,2,{0x82,0x97,0x00,0x00,}}, {0x5036,2,{0x82,0x98,0x00,0x00,}}, {0x5037,2,{0x82,0x99,0x00,0x00,}}, {0x5038,2,{0x82,0x9A,0x00,0x00,}}, {0x5039,2,{0x82,0x9B,0x00,0x00,}}, {0x503A,2,{0xD5,0xAE,0x00,0x00,}}, {0x503B,2,{0x82,0x9C,0x00,0x00,}}, {0x503C,2,{0xD6,0xB5,0x00,0x00,}}, {0x503D,2,{0x82,0x9D,0x00,0x00,}}, {0x503E,2,{0xC7,0xE3,0x00,0x00,}}, {0x503F,2,{0x82,0x9E,0x00,0x00,}}, {0x5040,2,{0x82,0x9F,0x00,0x00,}}, {0x5041,2,{0x82,0xA0,0x00,0x00,}}, {0x5042,2,{0x82,0xA1,0x00,0x00,}}, {0x5043,2,{0xD9,0xC8,0x00,0x00,}}, {0x5044,2,{0x82,0xA2,0x00,0x00,}}, {0x5045,2,{0x82,0xA3,0x00,0x00,}}, {0x5046,2,{0x82,0xA4,0x00,0x00,}}, {0x5047,2,{0xBC,0xD9,0x00,0x00,}}, {0x5048,2,{0xD9,0xCA,0x00,0x00,}}, {0x5049,2,{0x82,0xA5,0x00,0x00,}}, {0x504A,2,{0x82,0xA6,0x00,0x00,}}, {0x504B,2,{0x82,0xA7,0x00,0x00,}}, {0x504C,2,{0xD9,0xBC,0x00,0x00,}}, {0x504D,2,{0x82,0xA8,0x00,0x00,}}, {0x504E,2,{0xD9,0xCB,0x00,0x00,}}, {0x504F,2,{0xC6,0xAB,0x00,0x00,}}, {0x5050,2,{0x82,0xA9,0x00,0x00,}}, {0x5051,2,{0x82,0xAA,0x00,0x00,}}, {0x5052,2,{0x82,0xAB,0x00,0x00,}}, {0x5053,2,{0x82,0xAC,0x00,0x00,}}, {0x5054,2,{0x82,0xAD,0x00,0x00,}}, {0x5055,2,{0xD9,0xC9,0x00,0x00,}}, {0x5056,2,{0x82,0xAE,0x00,0x00,}}, {0x5057,2,{0x82,0xAF,0x00,0x00,}}, {0x5058,2,{0x82,0xB0,0x00,0x00,}}, {0x5059,2,{0x82,0xB1,0x00,0x00,}}, {0x505A,2,{0xD7,0xF6,0x00,0x00,}}, {0x505B,2,{0x82,0xB2,0x00,0x00,}}, {0x505C,2,{0xCD,0xA3,0x00,0x00,}}, {0x505D,2,{0x82,0xB3,0x00,0x00,}}, {0x505E,2,{0x82,0xB4,0x00,0x00,}}, {0x505F,2,{0x82,0xB5,0x00,0x00,}}, {0x5060,2,{0x82,0xB6,0x00,0x00,}}, {0x5061,2,{0x82,0xB7,0x00,0x00,}}, {0x5062,2,{0x82,0xB8,0x00,0x00,}}, {0x5063,2,{0x82,0xB9,0x00,0x00,}}, {0x5064,2,{0x82,0xBA,0x00,0x00,}}, {0x5065,2,{0xBD,0xA1,0x00,0x00,}}, {0x5066,2,{0x82,0xBB,0x00,0x00,}}, {0x5067,2,{0x82,0xBC,0x00,0x00,}}, {0x5068,2,{0x82,0xBD,0x00,0x00,}}, {0x5069,2,{0x82,0xBE,0x00,0x00,}}, {0x506A,2,{0x82,0xBF,0x00,0x00,}}, {0x506B,2,{0x82,0xC0,0x00,0x00,}}, {0x506C,2,{0xD9,0xCC,0x00,0x00,}}, {0x506D,2,{0x82,0xC1,0x00,0x00,}}, {0x506E,2,{0x82,0xC2,0x00,0x00,}}, {0x506F,2,{0x82,0xC3,0x00,0x00,}}, {0x5070,2,{0x82,0xC4,0x00,0x00,}}, {0x5071,2,{0x82,0xC5,0x00,0x00,}}, {0x5072,2,{0x82,0xC6,0x00,0x00,}}, {0x5073,2,{0x82,0xC7,0x00,0x00,}}, {0x5074,2,{0x82,0xC8,0x00,0x00,}}, {0x5075,2,{0x82,0xC9,0x00,0x00,}}, {0x5076,2,{0xC5,0xBC,0x00,0x00,}}, {0x5077,2,{0xCD,0xB5,0x00,0x00,}}, {0x5078,2,{0x82,0xCA,0x00,0x00,}}, {0x5079,2,{0x82,0xCB,0x00,0x00,}}, {0x507A,2,{0x82,0xCC,0x00,0x00,}}, {0x507B,2,{0xD9,0xCD,0x00,0x00,}}, {0x507C,2,{0x82,0xCD,0x00,0x00,}}, {0x507D,2,{0x82,0xCE,0x00,0x00,}}, {0x507E,2,{0xD9,0xC7,0x00,0x00,}}, {0x507F,2,{0xB3,0xA5,0x00,0x00,}}, {0x5080,2,{0xBF,0xFE,0x00,0x00,}}, {0x5081,2,{0x82,0xCF,0x00,0x00,}}, {0x5082,2,{0x82,0xD0,0x00,0x00,}}, {0x5083,2,{0x82,0xD1,0x00,0x00,}}, {0x5084,2,{0x82,0xD2,0x00,0x00,}}, {0x5085,2,{0xB8,0xB5,0x00,0x00,}}, {0x5086,2,{0x82,0xD3,0x00,0x00,}}, {0x5087,2,{0x82,0xD4,0x00,0x00,}}, {0x5088,2,{0xC0,0xFC,0x00,0x00,}}, {0x5089,2,{0x82,0xD5,0x00,0x00,}}, {0x508A,2,{0x82,0xD6,0x00,0x00,}}, {0x508B,2,{0x82,0xD7,0x00,0x00,}}, {0x508C,2,{0x82,0xD8,0x00,0x00,}}, {0x508D,2,{0xB0,0xF8,0x00,0x00,}}, {0x508E,2,{0x82,0xD9,0x00,0x00,}}, {0x508F,2,{0x82,0xDA,0x00,0x00,}}, {0x5090,2,{0x82,0xDB,0x00,0x00,}}, {0x5091,2,{0x82,0xDC,0x00,0x00,}}, {0x5092,2,{0x82,0xDD,0x00,0x00,}}, {0x5093,2,{0x82,0xDE,0x00,0x00,}}, {0x5094,2,{0x82,0xDF,0x00,0x00,}}, {0x5095,2,{0x82,0xE0,0x00,0x00,}}, {0x5096,2,{0x82,0xE1,0x00,0x00,}}, {0x5097,2,{0x82,0xE2,0x00,0x00,}}, {0x5098,2,{0x82,0xE3,0x00,0x00,}}, {0x5099,2,{0x82,0xE4,0x00,0x00,}}, {0x509A,2,{0x82,0xE5,0x00,0x00,}}, {0x509B,2,{0x82,0xE6,0x00,0x00,}}, {0x509C,2,{0x82,0xE7,0x00,0x00,}}, {0x509D,2,{0x82,0xE8,0x00,0x00,}}, {0x509E,2,{0x82,0xE9,0x00,0x00,}}, {0x509F,2,{0x82,0xEA,0x00,0x00,}}, {0x50A0,2,{0x82,0xEB,0x00,0x00,}}, {0x50A1,2,{0x82,0xEC,0x00,0x00,}}, {0x50A2,2,{0x82,0xED,0x00,0x00,}}, {0x50A3,2,{0xB4,0xF6,0x00,0x00,}}, {0x50A4,2,{0x82,0xEE,0x00,0x00,}}, {0x50A5,2,{0xD9,0xCE,0x00,0x00,}}, {0x50A6,2,{0x82,0xEF,0x00,0x00,}}, {0x50A7,2,{0xD9,0xCF,0x00,0x00,}}, {0x50A8,2,{0xB4,0xA2,0x00,0x00,}}, {0x50A9,2,{0xD9,0xD0,0x00,0x00,}}, {0x50AA,2,{0x82,0xF0,0x00,0x00,}}, {0x50AB,2,{0x82,0xF1,0x00,0x00,}}, {0x50AC,2,{0xB4,0xDF,0x00,0x00,}}, {0x50AD,2,{0x82,0xF2,0x00,0x00,}}, {0x50AE,2,{0x82,0xF3,0x00,0x00,}}, {0x50AF,2,{0x82,0xF4,0x00,0x00,}}, {0x50B0,2,{0x82,0xF5,0x00,0x00,}}, {0x50B1,2,{0x82,0xF6,0x00,0x00,}}, {0x50B2,2,{0xB0,0xC1,0x00,0x00,}}, {0x50B3,2,{0x82,0xF7,0x00,0x00,}}, {0x50B4,2,{0x82,0xF8,0x00,0x00,}}, {0x50B5,2,{0x82,0xF9,0x00,0x00,}}, {0x50B6,2,{0x82,0xFA,0x00,0x00,}}, {0x50B7,2,{0x82,0xFB,0x00,0x00,}}, {0x50B8,2,{0x82,0xFC,0x00,0x00,}}, {0x50B9,2,{0x82,0xFD,0x00,0x00,}}, {0x50BA,2,{0xD9,0xD1,0x00,0x00,}}, {0x50BB,2,{0xC9,0xB5,0x00,0x00,}}, {0x50BC,2,{0x82,0xFE,0x00,0x00,}}, {0x50BD,2,{0x83,0x40,0x00,0x00,}}, {0x50BE,2,{0x83,0x41,0x00,0x00,}}, {0x50BF,2,{0x83,0x42,0x00,0x00,}}, {0x50C0,2,{0x83,0x43,0x00,0x00,}}, {0x50C1,2,{0x83,0x44,0x00,0x00,}}, {0x50C2,2,{0x83,0x45,0x00,0x00,}}, {0x50C3,2,{0x83,0x46,0x00,0x00,}}, {0x50C4,2,{0x83,0x47,0x00,0x00,}}, {0x50C5,2,{0x83,0x48,0x00,0x00,}}, {0x50C6,2,{0x83,0x49,0x00,0x00,}}, {0x50C7,2,{0x83,0x4A,0x00,0x00,}}, {0x50C8,2,{0x83,0x4B,0x00,0x00,}}, {0x50C9,2,{0x83,0x4C,0x00,0x00,}}, {0x50CA,2,{0x83,0x4D,0x00,0x00,}}, {0x50CB,2,{0x83,0x4E,0x00,0x00,}}, {0x50CC,2,{0x83,0x4F,0x00,0x00,}}, {0x50CD,2,{0x83,0x50,0x00,0x00,}}, {0x50CE,2,{0x83,0x51,0x00,0x00,}}, {0x50CF,2,{0xCF,0xF1,0x00,0x00,}}, {0x50D0,2,{0x83,0x52,0x00,0x00,}}, {0x50D1,2,{0x83,0x53,0x00,0x00,}}, {0x50D2,2,{0x83,0x54,0x00,0x00,}}, {0x50D3,2,{0x83,0x55,0x00,0x00,}}, {0x50D4,2,{0x83,0x56,0x00,0x00,}}, {0x50D5,2,{0x83,0x57,0x00,0x00,}}, {0x50D6,2,{0xD9,0xD2,0x00,0x00,}}, {0x50D7,2,{0x83,0x58,0x00,0x00,}}, {0x50D8,2,{0x83,0x59,0x00,0x00,}}, {0x50D9,2,{0x83,0x5A,0x00,0x00,}}, {0x50DA,2,{0xC1,0xC5,0x00,0x00,}}, {0x50DB,2,{0x83,0x5B,0x00,0x00,}}, {0x50DC,2,{0x83,0x5C,0x00,0x00,}}, {0x50DD,2,{0x83,0x5D,0x00,0x00,}}, {0x50DE,2,{0x83,0x5E,0x00,0x00,}}, {0x50DF,2,{0x83,0x5F,0x00,0x00,}}, {0x50E0,2,{0x83,0x60,0x00,0x00,}}, {0x50E1,2,{0x83,0x61,0x00,0x00,}}, {0x50E2,2,{0x83,0x62,0x00,0x00,}}, {0x50E3,2,{0x83,0x63,0x00,0x00,}}, {0x50E4,2,{0x83,0x64,0x00,0x00,}}, {0x50E5,2,{0x83,0x65,0x00,0x00,}}, {0x50E6,2,{0xD9,0xD6,0x00,0x00,}}, {0x50E7,2,{0xC9,0xAE,0x00,0x00,}}, {0x50E8,2,{0x83,0x66,0x00,0x00,}}, {0x50E9,2,{0x83,0x67,0x00,0x00,}}, {0x50EA,2,{0x83,0x68,0x00,0x00,}}, {0x50EB,2,{0x83,0x69,0x00,0x00,}}, {0x50EC,2,{0xD9,0xD5,0x00,0x00,}}, {0x50ED,2,{0xD9,0xD4,0x00,0x00,}}, {0x50EE,2,{0xD9,0xD7,0x00,0x00,}}, {0x50EF,2,{0x83,0x6A,0x00,0x00,}}, {0x50F0,2,{0x83,0x6B,0x00,0x00,}}, {0x50F1,2,{0x83,0x6C,0x00,0x00,}}, {0x50F2,2,{0x83,0x6D,0x00,0x00,}}, {0x50F3,2,{0xCB,0xDB,0x00,0x00,}}, {0x50F4,2,{0x83,0x6E,0x00,0x00,}}, {0x50F5,2,{0xBD,0xA9,0x00,0x00,}}, {0x50F6,2,{0x83,0x6F,0x00,0x00,}}, {0x50F7,2,{0x83,0x70,0x00,0x00,}}, {0x50F8,2,{0x83,0x71,0x00,0x00,}}, {0x50F9,2,{0x83,0x72,0x00,0x00,}}, {0x50FA,2,{0x83,0x73,0x00,0x00,}}, {0x50FB,2,{0xC6,0xA7,0x00,0x00,}}, {0x50FC,2,{0x83,0x74,0x00,0x00,}}, {0x50FD,2,{0x83,0x75,0x00,0x00,}}, {0x50FE,2,{0x83,0x76,0x00,0x00,}}, {0x50FF,2,{0x83,0x77,0x00,0x00,}}, {0x5100,2,{0x83,0x78,0x00,0x00,}}, {0x5101,2,{0x83,0x79,0x00,0x00,}}, {0x5102,2,{0x83,0x7A,0x00,0x00,}}, {0x5103,2,{0x83,0x7B,0x00,0x00,}}, {0x5104,2,{0x83,0x7C,0x00,0x00,}}, {0x5105,2,{0x83,0x7D,0x00,0x00,}}, {0x5106,2,{0xD9,0xD3,0x00,0x00,}}, {0x5107,2,{0xD9,0xD8,0x00,0x00,}}, {0x5108,2,{0x83,0x7E,0x00,0x00,}}, {0x5109,2,{0x83,0x80,0x00,0x00,}}, {0x510A,2,{0x83,0x81,0x00,0x00,}}, {0x510B,2,{0xD9,0xD9,0x00,0x00,}}, {0x510C,2,{0x83,0x82,0x00,0x00,}}, {0x510D,2,{0x83,0x83,0x00,0x00,}}, {0x510E,2,{0x83,0x84,0x00,0x00,}}, {0x510F,2,{0x83,0x85,0x00,0x00,}}, {0x5110,2,{0x83,0x86,0x00,0x00,}}, {0x5111,2,{0x83,0x87,0x00,0x00,}}, {0x5112,2,{0xC8,0xE5,0x00,0x00,}}, {0x5113,2,{0x83,0x88,0x00,0x00,}}, {0x5114,2,{0x83,0x89,0x00,0x00,}}, {0x5115,2,{0x83,0x8A,0x00,0x00,}}, {0x5116,2,{0x83,0x8B,0x00,0x00,}}, {0x5117,2,{0x83,0x8C,0x00,0x00,}}, {0x5118,2,{0x83,0x8D,0x00,0x00,}}, {0x5119,2,{0x83,0x8E,0x00,0x00,}}, {0x511A,2,{0x83,0x8F,0x00,0x00,}}, {0x511B,2,{0x83,0x90,0x00,0x00,}}, {0x511C,2,{0x83,0x91,0x00,0x00,}}, {0x511D,2,{0x83,0x92,0x00,0x00,}}, {0x511E,2,{0x83,0x93,0x00,0x00,}}, {0x511F,2,{0x83,0x94,0x00,0x00,}}, {0x5120,2,{0x83,0x95,0x00,0x00,}}, {0x5121,2,{0xC0,0xDC,0x00,0x00,}}, {0x5122,2,{0x83,0x96,0x00,0x00,}}, {0x5123,2,{0x83,0x97,0x00,0x00,}}, {0x5124,2,{0x83,0x98,0x00,0x00,}}, {0x5125,2,{0x83,0x99,0x00,0x00,}}, {0x5126,2,{0x83,0x9A,0x00,0x00,}}, {0x5127,2,{0x83,0x9B,0x00,0x00,}}, {0x5128,2,{0x83,0x9C,0x00,0x00,}}, {0x5129,2,{0x83,0x9D,0x00,0x00,}}, {0x512A,2,{0x83,0x9E,0x00,0x00,}}, {0x512B,2,{0x83,0x9F,0x00,0x00,}}, {0x512C,2,{0x83,0xA0,0x00,0x00,}}, {0x512D,2,{0x83,0xA1,0x00,0x00,}}, {0x512E,2,{0x83,0xA2,0x00,0x00,}}, {0x512F,2,{0x83,0xA3,0x00,0x00,}}, {0x5130,2,{0x83,0xA4,0x00,0x00,}}, {0x5131,2,{0x83,0xA5,0x00,0x00,}}, {0x5132,2,{0x83,0xA6,0x00,0x00,}}, {0x5133,2,{0x83,0xA7,0x00,0x00,}}, {0x5134,2,{0x83,0xA8,0x00,0x00,}}, {0x5135,2,{0x83,0xA9,0x00,0x00,}}, {0x5136,2,{0x83,0xAA,0x00,0x00,}}, {0x5137,2,{0x83,0xAB,0x00,0x00,}}, {0x5138,2,{0x83,0xAC,0x00,0x00,}}, {0x5139,2,{0x83,0xAD,0x00,0x00,}}, {0x513A,2,{0x83,0xAE,0x00,0x00,}}, {0x513B,2,{0x83,0xAF,0x00,0x00,}}, {0x513C,2,{0x83,0xB0,0x00,0x00,}}, {0x513D,2,{0x83,0xB1,0x00,0x00,}}, {0x513E,2,{0x83,0xB2,0x00,0x00,}}, {0x513F,2,{0xB6,0xF9,0x00,0x00,}}, {0x5140,2,{0xD8,0xA3,0x00,0x00,}}, {0x5141,2,{0xD4,0xCA,0x00,0x00,}}, {0x5142,2,{0x83,0xB3,0x00,0x00,}}, {0x5143,2,{0xD4,0xAA,0x00,0x00,}}, {0x5144,2,{0xD0,0xD6,0x00,0x00,}}, {0x5145,2,{0xB3,0xE4,0x00,0x00,}}, {0x5146,2,{0xD5,0xD7,0x00,0x00,}}, {0x5147,2,{0x83,0xB4,0x00,0x00,}}, {0x5148,2,{0xCF,0xC8,0x00,0x00,}}, {0x5149,2,{0xB9,0xE2,0x00,0x00,}}, {0x514A,2,{0x83,0xB5,0x00,0x00,}}, {0x514B,2,{0xBF,0xCB,0x00,0x00,}}, {0x514C,2,{0x83,0xB6,0x00,0x00,}}, {0x514D,2,{0xC3,0xE2,0x00,0x00,}}, {0x514E,2,{0x83,0xB7,0x00,0x00,}}, {0x514F,2,{0x83,0xB8,0x00,0x00,}}, {0x5150,2,{0x83,0xB9,0x00,0x00,}}, {0x5151,2,{0xB6,0xD2,0x00,0x00,}}, {0x5152,2,{0x83,0xBA,0x00,0x00,}}, {0x5153,2,{0x83,0xBB,0x00,0x00,}}, {0x5154,2,{0xCD,0xC3,0x00,0x00,}}, {0x5155,2,{0xD9,0xEE,0x00,0x00,}}, {0x5156,2,{0xD9,0xF0,0x00,0x00,}}, {0x5157,2,{0x83,0xBC,0x00,0x00,}}, {0x5158,2,{0x83,0xBD,0x00,0x00,}}, {0x5159,2,{0x83,0xBE,0x00,0x00,}}, {0x515A,2,{0xB5,0xB3,0x00,0x00,}}, {0x515B,2,{0x83,0xBF,0x00,0x00,}}, {0x515C,2,{0xB6,0xB5,0x00,0x00,}}, {0x515D,2,{0x83,0xC0,0x00,0x00,}}, {0x515E,2,{0x83,0xC1,0x00,0x00,}}, {0x515F,2,{0x83,0xC2,0x00,0x00,}}, {0x5160,2,{0x83,0xC3,0x00,0x00,}}, {0x5161,2,{0x83,0xC4,0x00,0x00,}}, {0x5162,2,{0xBE,0xA4,0x00,0x00,}}, {0x5163,2,{0x83,0xC5,0x00,0x00,}}, {0x5164,2,{0x83,0xC6,0x00,0x00,}}, {0x5165,2,{0xC8,0xEB,0x00,0x00,}}, {0x5166,2,{0x83,0xC7,0x00,0x00,}}, {0x5167,2,{0x83,0xC8,0x00,0x00,}}, {0x5168,2,{0xC8,0xAB,0x00,0x00,}}, {0x5169,2,{0x83,0xC9,0x00,0x00,}}, {0x516A,2,{0x83,0xCA,0x00,0x00,}}, {0x516B,2,{0xB0,0xCB,0x00,0x00,}}, {0x516C,2,{0xB9,0xAB,0x00,0x00,}}, {0x516D,2,{0xC1,0xF9,0x00,0x00,}}, {0x516E,2,{0xD9,0xE2,0x00,0x00,}}, {0x516F,2,{0x83,0xCB,0x00,0x00,}}, {0x5170,2,{0xC0,0xBC,0x00,0x00,}}, {0x5171,2,{0xB9,0xB2,0x00,0x00,}}, {0x5172,2,{0x83,0xCC,0x00,0x00,}}, {0x5173,2,{0xB9,0xD8,0x00,0x00,}}, {0x5174,2,{0xD0,0xCB,0x00,0x00,}}, {0x5175,2,{0xB1,0xF8,0x00,0x00,}}, {0x5176,2,{0xC6,0xE4,0x00,0x00,}}, {0x5177,2,{0xBE,0xDF,0x00,0x00,}}, {0x5178,2,{0xB5,0xE4,0x00,0x00,}}, {0x5179,2,{0xD7,0xC8,0x00,0x00,}}, {0x517A,2,{0x83,0xCD,0x00,0x00,}}, {0x517B,2,{0xD1,0xF8,0x00,0x00,}}, {0x517C,2,{0xBC,0xE6,0x00,0x00,}}, {0x517D,2,{0xCA,0xDE,0x00,0x00,}}, {0x517E,2,{0x83,0xCE,0x00,0x00,}}, {0x517F,2,{0x83,0xCF,0x00,0x00,}}, {0x5180,2,{0xBC,0xBD,0x00,0x00,}}, {0x5181,2,{0xD9,0xE6,0x00,0x00,}}, {0x5182,2,{0xD8,0xE7,0x00,0x00,}}, {0x5183,2,{0x83,0xD0,0x00,0x00,}}, {0x5184,2,{0x83,0xD1,0x00,0x00,}}, {0x5185,2,{0xC4,0xDA,0x00,0x00,}}, {0x5186,2,{0x83,0xD2,0x00,0x00,}}, {0x5187,2,{0x83,0xD3,0x00,0x00,}}, {0x5188,2,{0xB8,0xD4,0x00,0x00,}}, {0x5189,2,{0xC8,0xBD,0x00,0x00,}}, {0x518A,2,{0x83,0xD4,0x00,0x00,}}, {0x518B,2,{0x83,0xD5,0x00,0x00,}}, {0x518C,2,{0xB2,0xE1,0x00,0x00,}}, {0x518D,2,{0xD4,0xD9,0x00,0x00,}}, {0x518E,2,{0x83,0xD6,0x00,0x00,}}, {0x518F,2,{0x83,0xD7,0x00,0x00,}}, {0x5190,2,{0x83,0xD8,0x00,0x00,}}, {0x5191,2,{0x83,0xD9,0x00,0x00,}}, {0x5192,2,{0xC3,0xB0,0x00,0x00,}}, {0x5193,2,{0x83,0xDA,0x00,0x00,}}, {0x5194,2,{0x83,0xDB,0x00,0x00,}}, {0x5195,2,{0xC3,0xE1,0x00,0x00,}}, {0x5196,2,{0xDA,0xA2,0x00,0x00,}}, {0x5197,2,{0xC8,0xDF,0x00,0x00,}}, {0x5198,2,{0x83,0xDC,0x00,0x00,}}, {0x5199,2,{0xD0,0xB4,0x00,0x00,}}, {0x519A,2,{0x83,0xDD,0x00,0x00,}}, {0x519B,2,{0xBE,0xFC,0x00,0x00,}}, {0x519C,2,{0xC5,0xA9,0x00,0x00,}}, {0x519D,2,{0x83,0xDE,0x00,0x00,}}, {0x519E,2,{0x83,0xDF,0x00,0x00,}}, {0x519F,2,{0x83,0xE0,0x00,0x00,}}, {0x51A0,2,{0xB9,0xDA,0x00,0x00,}}, {0x51A1,2,{0x83,0xE1,0x00,0x00,}}, {0x51A2,2,{0xDA,0xA3,0x00,0x00,}}, {0x51A3,2,{0x83,0xE2,0x00,0x00,}}, {0x51A4,2,{0xD4,0xA9,0x00,0x00,}}, {0x51A5,2,{0xDA,0xA4,0x00,0x00,}}, {0x51A6,2,{0x83,0xE3,0x00,0x00,}}, {0x51A7,2,{0x83,0xE4,0x00,0x00,}}, {0x51A8,2,{0x83,0xE5,0x00,0x00,}}, {0x51A9,2,{0x83,0xE6,0x00,0x00,}}, {0x51AA,2,{0x83,0xE7,0x00,0x00,}}, {0x51AB,2,{0xD9,0xFB,0x00,0x00,}}, {0x51AC,2,{0xB6,0xAC,0x00,0x00,}}, {0x51AD,2,{0x83,0xE8,0x00,0x00,}}, {0x51AE,2,{0x83,0xE9,0x00,0x00,}}, {0x51AF,2,{0xB7,0xEB,0x00,0x00,}}, {0x51B0,2,{0xB1,0xF9,0x00,0x00,}}, {0x51B1,2,{0xD9,0xFC,0x00,0x00,}}, {0x51B2,2,{0xB3,0xE5,0x00,0x00,}}, {0x51B3,2,{0xBE,0xF6,0x00,0x00,}}, {0x51B4,2,{0x83,0xEA,0x00,0x00,}}, {0x51B5,2,{0xBF,0xF6,0x00,0x00,}}, {0x51B6,2,{0xD2,0xB1,0x00,0x00,}}, {0x51B7,2,{0xC0,0xE4,0x00,0x00,}}, {0x51B8,2,{0x83,0xEB,0x00,0x00,}}, {0x51B9,2,{0x83,0xEC,0x00,0x00,}}, {0x51BA,2,{0x83,0xED,0x00,0x00,}}, {0x51BB,2,{0xB6,0xB3,0x00,0x00,}}, {0x51BC,2,{0xD9,0xFE,0x00,0x00,}}, {0x51BD,2,{0xD9,0xFD,0x00,0x00,}}, {0x51BE,2,{0x83,0xEE,0x00,0x00,}}, {0x51BF,2,{0x83,0xEF,0x00,0x00,}}, {0x51C0,2,{0xBE,0xBB,0x00,0x00,}}, {0x51C1,2,{0x83,0xF0,0x00,0x00,}}, {0x51C2,2,{0x83,0xF1,0x00,0x00,}}, {0x51C3,2,{0x83,0xF2,0x00,0x00,}}, {0x51C4,2,{0xC6,0xE0,0x00,0x00,}}, {0x51C5,2,{0x83,0xF3,0x00,0x00,}}, {0x51C6,2,{0xD7,0xBC,0x00,0x00,}}, {0x51C7,2,{0xDA,0xA1,0x00,0x00,}}, {0x51C8,2,{0x83,0xF4,0x00,0x00,}}, {0x51C9,2,{0xC1,0xB9,0x00,0x00,}}, {0x51CA,2,{0x83,0xF5,0x00,0x00,}}, {0x51CB,2,{0xB5,0xF2,0x00,0x00,}}, {0x51CC,2,{0xC1,0xE8,0x00,0x00,}}, {0x51CD,2,{0x83,0xF6,0x00,0x00,}}, {0x51CE,2,{0x83,0xF7,0x00,0x00,}}, {0x51CF,2,{0xBC,0xF5,0x00,0x00,}}, {0x51D0,2,{0x83,0xF8,0x00,0x00,}}, {0x51D1,2,{0xB4,0xD5,0x00,0x00,}}, {0x51D2,2,{0x83,0xF9,0x00,0x00,}}, {0x51D3,2,{0x83,0xFA,0x00,0x00,}}, {0x51D4,2,{0x83,0xFB,0x00,0x00,}}, {0x51D5,2,{0x83,0xFC,0x00,0x00,}}, {0x51D6,2,{0x83,0xFD,0x00,0x00,}}, {0x51D7,2,{0x83,0xFE,0x00,0x00,}}, {0x51D8,2,{0x84,0x40,0x00,0x00,}}, {0x51D9,2,{0x84,0x41,0x00,0x00,}}, {0x51DA,2,{0x84,0x42,0x00,0x00,}}, {0x51DB,2,{0xC1,0xDD,0x00,0x00,}}, {0x51DC,2,{0x84,0x43,0x00,0x00,}}, {0x51DD,2,{0xC4,0xFD,0x00,0x00,}}, {0x51DE,2,{0x84,0x44,0x00,0x00,}}, {0x51DF,2,{0x84,0x45,0x00,0x00,}}, {0x51E0,2,{0xBC,0xB8,0x00,0x00,}}, {0x51E1,2,{0xB7,0xB2,0x00,0x00,}}, {0x51E2,2,{0x84,0x46,0x00,0x00,}}, {0x51E3,2,{0x84,0x47,0x00,0x00,}}, {0x51E4,2,{0xB7,0xEF,0x00,0x00,}}, {0x51E5,2,{0x84,0x48,0x00,0x00,}}, {0x51E6,2,{0x84,0x49,0x00,0x00,}}, {0x51E7,2,{0x84,0x4A,0x00,0x00,}}, {0x51E8,2,{0x84,0x4B,0x00,0x00,}}, {0x51E9,2,{0x84,0x4C,0x00,0x00,}}, {0x51EA,2,{0x84,0x4D,0x00,0x00,}}, {0x51EB,2,{0xD9,0xEC,0x00,0x00,}}, {0x51EC,2,{0x84,0x4E,0x00,0x00,}}, {0x51ED,2,{0xC6,0xBE,0x00,0x00,}}, {0x51EE,2,{0x84,0x4F,0x00,0x00,}}, {0x51EF,2,{0xBF,0xAD,0x00,0x00,}}, {0x51F0,2,{0xBB,0xCB,0x00,0x00,}}, {0x51F1,2,{0x84,0x50,0x00,0x00,}}, {0x51F2,2,{0x84,0x51,0x00,0x00,}}, {0x51F3,2,{0xB5,0xCA,0x00,0x00,}}, {0x51F4,2,{0x84,0x52,0x00,0x00,}}, {0x51F5,2,{0xDB,0xC9,0x00,0x00,}}, {0x51F6,2,{0xD0,0xD7,0x00,0x00,}}, {0x51F7,2,{0x84,0x53,0x00,0x00,}}, {0x51F8,2,{0xCD,0xB9,0x00,0x00,}}, {0x51F9,2,{0xB0,0xBC,0x00,0x00,}}, {0x51FA,2,{0xB3,0xF6,0x00,0x00,}}, {0x51FB,2,{0xBB,0xF7,0x00,0x00,}}, {0x51FC,2,{0xDB,0xCA,0x00,0x00,}}, {0x51FD,2,{0xBA,0xAF,0x00,0x00,}}, {0x51FE,2,{0x84,0x54,0x00,0x00,}}, {0x51FF,2,{0xD4,0xE4,0x00,0x00,}}, {0x5200,2,{0xB5,0xB6,0x00,0x00,}}, {0x5201,2,{0xB5,0xF3,0x00,0x00,}}, {0x5202,2,{0xD8,0xD6,0x00,0x00,}}, {0x5203,2,{0xC8,0xD0,0x00,0x00,}}, {0x5204,2,{0x84,0x55,0x00,0x00,}}, {0x5205,2,{0x84,0x56,0x00,0x00,}}, {0x5206,2,{0xB7,0xD6,0x00,0x00,}}, {0x5207,2,{0xC7,0xD0,0x00,0x00,}}, {0x5208,2,{0xD8,0xD7,0x00,0x00,}}, {0x5209,2,{0x84,0x57,0x00,0x00,}}, {0x520A,2,{0xBF,0xAF,0x00,0x00,}}, {0x520B,2,{0x84,0x58,0x00,0x00,}}, {0x520C,2,{0x84,0x59,0x00,0x00,}}, {0x520D,2,{0xDB,0xBB,0x00,0x00,}}, {0x520E,2,{0xD8,0xD8,0x00,0x00,}}, {0x520F,2,{0x84,0x5A,0x00,0x00,}}, {0x5210,2,{0x84,0x5B,0x00,0x00,}}, {0x5211,2,{0xD0,0xCC,0x00,0x00,}}, {0x5212,2,{0xBB,0xAE,0x00,0x00,}}, {0x5213,2,{0x84,0x5C,0x00,0x00,}}, {0x5214,2,{0x84,0x5D,0x00,0x00,}}, {0x5215,2,{0x84,0x5E,0x00,0x00,}}, {0x5216,2,{0xEB,0xBE,0x00,0x00,}}, {0x5217,2,{0xC1,0xD0,0x00,0x00,}}, {0x5218,2,{0xC1,0xF5,0x00,0x00,}}, {0x5219,2,{0xD4,0xF2,0x00,0x00,}}, {0x521A,2,{0xB8,0xD5,0x00,0x00,}}, {0x521B,2,{0xB4,0xB4,0x00,0x00,}}, {0x521C,2,{0x84,0x5F,0x00,0x00,}}, {0x521D,2,{0xB3,0xF5,0x00,0x00,}}, {0x521E,2,{0x84,0x60,0x00,0x00,}}, {0x521F,2,{0x84,0x61,0x00,0x00,}}, {0x5220,2,{0xC9,0xBE,0x00,0x00,}}, {0x5221,2,{0x84,0x62,0x00,0x00,}}, {0x5222,2,{0x84,0x63,0x00,0x00,}}, {0x5223,2,{0x84,0x64,0x00,0x00,}}, {0x5224,2,{0xC5,0xD0,0x00,0x00,}}, {0x5225,2,{0x84,0x65,0x00,0x00,}}, {0x5226,2,{0x84,0x66,0x00,0x00,}}, {0x5227,2,{0x84,0x67,0x00,0x00,}}, {0x5228,2,{0xC5,0xD9,0x00,0x00,}}, {0x5229,2,{0xC0,0xFB,0x00,0x00,}}, {0x522A,2,{0x84,0x68,0x00,0x00,}}, {0x522B,2,{0xB1,0xF0,0x00,0x00,}}, {0x522C,2,{0x84,0x69,0x00,0x00,}}, {0x522D,2,{0xD8,0xD9,0x00,0x00,}}, {0x522E,2,{0xB9,0xCE,0x00,0x00,}}, {0x522F,2,{0x84,0x6A,0x00,0x00,}}, {0x5230,2,{0xB5,0xBD,0x00,0x00,}}, {0x5231,2,{0x84,0x6B,0x00,0x00,}}, {0x5232,2,{0x84,0x6C,0x00,0x00,}}, {0x5233,2,{0xD8,0xDA,0x00,0x00,}}, {0x5234,2,{0x84,0x6D,0x00,0x00,}}, {0x5235,2,{0x84,0x6E,0x00,0x00,}}, {0x5236,2,{0xD6,0xC6,0x00,0x00,}}, {0x5237,2,{0xCB,0xA2,0x00,0x00,}}, {0x5238,2,{0xC8,0xAF,0x00,0x00,}}, {0x5239,2,{0xC9,0xB2,0x00,0x00,}}, {0x523A,2,{0xB4,0xCC,0x00,0x00,}}, {0x523B,2,{0xBF,0xCC,0x00,0x00,}}, {0x523C,2,{0x84,0x6F,0x00,0x00,}}, {0x523D,2,{0xB9,0xF4,0x00,0x00,}}, {0x523E,2,{0x84,0x70,0x00,0x00,}}, {0x523F,2,{0xD8,0xDB,0x00,0x00,}}, {0x5240,2,{0xD8,0xDC,0x00,0x00,}}, {0x5241,2,{0xB6,0xE7,0x00,0x00,}}, {0x5242,2,{0xBC,0xC1,0x00,0x00,}}, {0x5243,2,{0xCC,0xEA,0x00,0x00,}}, {0x5244,2,{0x84,0x71,0x00,0x00,}}, {0x5245,2,{0x84,0x72,0x00,0x00,}}, {0x5246,2,{0x84,0x73,0x00,0x00,}}, {0x5247,2,{0x84,0x74,0x00,0x00,}}, {0x5248,2,{0x84,0x75,0x00,0x00,}}, {0x5249,2,{0x84,0x76,0x00,0x00,}}, {0x524A,2,{0xCF,0xF7,0x00,0x00,}}, {0x524B,2,{0x84,0x77,0x00,0x00,}}, {0x524C,2,{0xD8,0xDD,0x00,0x00,}}, {0x524D,2,{0xC7,0xB0,0x00,0x00,}}, {0x524E,2,{0x84,0x78,0x00,0x00,}}, {0x524F,2,{0x84,0x79,0x00,0x00,}}, {0x5250,2,{0xB9,0xD0,0x00,0x00,}}, {0x5251,2,{0xBD,0xA3,0x00,0x00,}}, {0x5252,2,{0x84,0x7A,0x00,0x00,}}, {0x5253,2,{0x84,0x7B,0x00,0x00,}}, {0x5254,2,{0xCC,0xDE,0x00,0x00,}}, {0x5255,2,{0x84,0x7C,0x00,0x00,}}, {0x5256,2,{0xC6,0xCA,0x00,0x00,}}, {0x5257,2,{0x84,0x7D,0x00,0x00,}}, {0x5258,2,{0x84,0x7E,0x00,0x00,}}, {0x5259,2,{0x84,0x80,0x00,0x00,}}, {0x525A,2,{0x84,0x81,0x00,0x00,}}, {0x525B,2,{0x84,0x82,0x00,0x00,}}, {0x525C,2,{0xD8,0xE0,0x00,0x00,}}, {0x525D,2,{0x84,0x83,0x00,0x00,}}, {0x525E,2,{0xD8,0xDE,0x00,0x00,}}, {0x525F,2,{0x84,0x84,0x00,0x00,}}, {0x5260,2,{0x84,0x85,0x00,0x00,}}, {0x5261,2,{0xD8,0xDF,0x00,0x00,}}, {0x5262,2,{0x84,0x86,0x00,0x00,}}, {0x5263,2,{0x84,0x87,0x00,0x00,}}, {0x5264,2,{0x84,0x88,0x00,0x00,}}, {0x5265,2,{0xB0,0xFE,0x00,0x00,}}, {0x5266,2,{0x84,0x89,0x00,0x00,}}, {0x5267,2,{0xBE,0xE7,0x00,0x00,}}, {0x5268,2,{0x84,0x8A,0x00,0x00,}}, {0x5269,2,{0xCA,0xA3,0x00,0x00,}}, {0x526A,2,{0xBC,0xF4,0x00,0x00,}}, {0x526B,2,{0x84,0x8B,0x00,0x00,}}, {0x526C,2,{0x84,0x8C,0x00,0x00,}}, {0x526D,2,{0x84,0x8D,0x00,0x00,}}, {0x526E,2,{0x84,0x8E,0x00,0x00,}}, {0x526F,2,{0xB8,0xB1,0x00,0x00,}}, {0x5270,2,{0x84,0x8F,0x00,0x00,}}, {0x5271,2,{0x84,0x90,0x00,0x00,}}, {0x5272,2,{0xB8,0xEE,0x00,0x00,}}, {0x5273,2,{0x84,0x91,0x00,0x00,}}, {0x5274,2,{0x84,0x92,0x00,0x00,}}, {0x5275,2,{0x84,0x93,0x00,0x00,}}, {0x5276,2,{0x84,0x94,0x00,0x00,}}, {0x5277,2,{0x84,0x95,0x00,0x00,}}, {0x5278,2,{0x84,0x96,0x00,0x00,}}, {0x5279,2,{0x84,0x97,0x00,0x00,}}, {0x527A,2,{0x84,0x98,0x00,0x00,}}, {0x527B,2,{0x84,0x99,0x00,0x00,}}, {0x527C,2,{0x84,0x9A,0x00,0x00,}}, {0x527D,2,{0xD8,0xE2,0x00,0x00,}}, {0x527E,2,{0x84,0x9B,0x00,0x00,}}, {0x527F,2,{0xBD,0xCB,0x00,0x00,}}, {0x5280,2,{0x84,0x9C,0x00,0x00,}}, {0x5281,2,{0xD8,0xE4,0x00,0x00,}}, {0x5282,2,{0xD8,0xE3,0x00,0x00,}}, {0x5283,2,{0x84,0x9D,0x00,0x00,}}, {0x5284,2,{0x84,0x9E,0x00,0x00,}}, {0x5285,2,{0x84,0x9F,0x00,0x00,}}, {0x5286,2,{0x84,0xA0,0x00,0x00,}}, {0x5287,2,{0x84,0xA1,0x00,0x00,}}, {0x5288,2,{0xC5,0xFC,0x00,0x00,}}, {0x5289,2,{0x84,0xA2,0x00,0x00,}}, {0x528A,2,{0x84,0xA3,0x00,0x00,}}, {0x528B,2,{0x84,0xA4,0x00,0x00,}}, {0x528C,2,{0x84,0xA5,0x00,0x00,}}, {0x528D,2,{0x84,0xA6,0x00,0x00,}}, {0x528E,2,{0x84,0xA7,0x00,0x00,}}, {0x528F,2,{0x84,0xA8,0x00,0x00,}}, {0x5290,2,{0xD8,0xE5,0x00,0x00,}}, {0x5291,2,{0x84,0xA9,0x00,0x00,}}, {0x5292,2,{0x84,0xAA,0x00,0x00,}}, {0x5293,2,{0xD8,0xE6,0x00,0x00,}}, {0x5294,2,{0x84,0xAB,0x00,0x00,}}, {0x5295,2,{0x84,0xAC,0x00,0x00,}}, {0x5296,2,{0x84,0xAD,0x00,0x00,}}, {0x5297,2,{0x84,0xAE,0x00,0x00,}}, {0x5298,2,{0x84,0xAF,0x00,0x00,}}, {0x5299,2,{0x84,0xB0,0x00,0x00,}}, {0x529A,2,{0x84,0xB1,0x00,0x00,}}, {0x529B,2,{0xC1,0xA6,0x00,0x00,}}, {0x529C,2,{0x84,0xB2,0x00,0x00,}}, {0x529D,2,{0xC8,0xB0,0x00,0x00,}}, {0x529E,2,{0xB0,0xEC,0x00,0x00,}}, {0x529F,2,{0xB9,0xA6,0x00,0x00,}}, {0x52A0,2,{0xBC,0xD3,0x00,0x00,}}, {0x52A1,2,{0xCE,0xF1,0x00,0x00,}}, {0x52A2,2,{0xDB,0xBD,0x00,0x00,}}, {0x52A3,2,{0xC1,0xD3,0x00,0x00,}}, {0x52A4,2,{0x84,0xB3,0x00,0x00,}}, {0x52A5,2,{0x84,0xB4,0x00,0x00,}}, {0x52A6,2,{0x84,0xB5,0x00,0x00,}}, {0x52A7,2,{0x84,0xB6,0x00,0x00,}}, {0x52A8,2,{0xB6,0xAF,0x00,0x00,}}, {0x52A9,2,{0xD6,0xFA,0x00,0x00,}}, {0x52AA,2,{0xC5,0xAC,0x00,0x00,}}, {0x52AB,2,{0xBD,0xD9,0x00,0x00,}}, {0x52AC,2,{0xDB,0xBE,0x00,0x00,}}, {0x52AD,2,{0xDB,0xBF,0x00,0x00,}}, {0x52AE,2,{0x84,0xB7,0x00,0x00,}}, {0x52AF,2,{0x84,0xB8,0x00,0x00,}}, {0x52B0,2,{0x84,0xB9,0x00,0x00,}}, {0x52B1,2,{0xC0,0xF8,0x00,0x00,}}, {0x52B2,2,{0xBE,0xA2,0x00,0x00,}}, {0x52B3,2,{0xC0,0xCD,0x00,0x00,}}, {0x52B4,2,{0x84,0xBA,0x00,0x00,}}, {0x52B5,2,{0x84,0xBB,0x00,0x00,}}, {0x52B6,2,{0x84,0xBC,0x00,0x00,}}, {0x52B7,2,{0x84,0xBD,0x00,0x00,}}, {0x52B8,2,{0x84,0xBE,0x00,0x00,}}, {0x52B9,2,{0x84,0xBF,0x00,0x00,}}, {0x52BA,2,{0x84,0xC0,0x00,0x00,}}, {0x52BB,2,{0x84,0xC1,0x00,0x00,}}, {0x52BC,2,{0x84,0xC2,0x00,0x00,}}, {0x52BD,2,{0x84,0xC3,0x00,0x00,}}, {0x52BE,2,{0xDB,0xC0,0x00,0x00,}}, {0x52BF,2,{0xCA,0xC6,0x00,0x00,}}, {0x52C0,2,{0x84,0xC4,0x00,0x00,}}, {0x52C1,2,{0x84,0xC5,0x00,0x00,}}, {0x52C2,2,{0x84,0xC6,0x00,0x00,}}, {0x52C3,2,{0xB2,0xAA,0x00,0x00,}}, {0x52C4,2,{0x84,0xC7,0x00,0x00,}}, {0x52C5,2,{0x84,0xC8,0x00,0x00,}}, {0x52C6,2,{0x84,0xC9,0x00,0x00,}}, {0x52C7,2,{0xD3,0xC2,0x00,0x00,}}, {0x52C8,2,{0x84,0xCA,0x00,0x00,}}, {0x52C9,2,{0xC3,0xE3,0x00,0x00,}}, {0x52CA,2,{0x84,0xCB,0x00,0x00,}}, {0x52CB,2,{0xD1,0xAB,0x00,0x00,}}, {0x52CC,2,{0x84,0xCC,0x00,0x00,}}, {0x52CD,2,{0x84,0xCD,0x00,0x00,}}, {0x52CE,2,{0x84,0xCE,0x00,0x00,}}, {0x52CF,2,{0x84,0xCF,0x00,0x00,}}, {0x52D0,2,{0xDB,0xC2,0x00,0x00,}}, {0x52D1,2,{0x84,0xD0,0x00,0x00,}}, {0x52D2,2,{0xC0,0xD5,0x00,0x00,}}, {0x52D3,2,{0x84,0xD1,0x00,0x00,}}, {0x52D4,2,{0x84,0xD2,0x00,0x00,}}, {0x52D5,2,{0x84,0xD3,0x00,0x00,}}, {0x52D6,2,{0xDB,0xC3,0x00,0x00,}}, {0x52D7,2,{0x84,0xD4,0x00,0x00,}}, {0x52D8,2,{0xBF,0xB1,0x00,0x00,}}, {0x52D9,2,{0x84,0xD5,0x00,0x00,}}, {0x52DA,2,{0x84,0xD6,0x00,0x00,}}, {0x52DB,2,{0x84,0xD7,0x00,0x00,}}, {0x52DC,2,{0x84,0xD8,0x00,0x00,}}, {0x52DD,2,{0x84,0xD9,0x00,0x00,}}, {0x52DE,2,{0x84,0xDA,0x00,0x00,}}, {0x52DF,2,{0xC4,0xBC,0x00,0x00,}}, {0x52E0,2,{0x84,0xDB,0x00,0x00,}}, {0x52E1,2,{0x84,0xDC,0x00,0x00,}}, {0x52E2,2,{0x84,0xDD,0x00,0x00,}}, {0x52E3,2,{0x84,0xDE,0x00,0x00,}}, {0x52E4,2,{0xC7,0xDA,0x00,0x00,}}, {0x52E5,2,{0x84,0xDF,0x00,0x00,}}, {0x52E6,2,{0x84,0xE0,0x00,0x00,}}, {0x52E7,2,{0x84,0xE1,0x00,0x00,}}, {0x52E8,2,{0x84,0xE2,0x00,0x00,}}, {0x52E9,2,{0x84,0xE3,0x00,0x00,}}, {0x52EA,2,{0x84,0xE4,0x00,0x00,}}, {0x52EB,2,{0x84,0xE5,0x00,0x00,}}, {0x52EC,2,{0x84,0xE6,0x00,0x00,}}, {0x52ED,2,{0x84,0xE7,0x00,0x00,}}, {0x52EE,2,{0x84,0xE8,0x00,0x00,}}, {0x52EF,2,{0x84,0xE9,0x00,0x00,}}, {0x52F0,2,{0xDB,0xC4,0x00,0x00,}}, {0x52F1,2,{0x84,0xEA,0x00,0x00,}}, {0x52F2,2,{0x84,0xEB,0x00,0x00,}}, {0x52F3,2,{0x84,0xEC,0x00,0x00,}}, {0x52F4,2,{0x84,0xED,0x00,0x00,}}, {0x52F5,2,{0x84,0xEE,0x00,0x00,}}, {0x52F6,2,{0x84,0xEF,0x00,0x00,}}, {0x52F7,2,{0x84,0xF0,0x00,0x00,}}, {0x52F8,2,{0x84,0xF1,0x00,0x00,}}, {0x52F9,2,{0xD9,0xE8,0x00,0x00,}}, {0x52FA,2,{0xC9,0xD7,0x00,0x00,}}, {0x52FB,2,{0x84,0xF2,0x00,0x00,}}, {0x52FC,2,{0x84,0xF3,0x00,0x00,}}, {0x52FD,2,{0x84,0xF4,0x00,0x00,}}, {0x52FE,2,{0xB9,0xB4,0x00,0x00,}}, {0x52FF,2,{0xCE,0xF0,0x00,0x00,}}, {0x5300,2,{0xD4,0xC8,0x00,0x00,}}, {0x5301,2,{0x84,0xF5,0x00,0x00,}}, {0x5302,2,{0x84,0xF6,0x00,0x00,}}, {0x5303,2,{0x84,0xF7,0x00,0x00,}}, {0x5304,2,{0x84,0xF8,0x00,0x00,}}, {0x5305,2,{0xB0,0xFC,0x00,0x00,}}, {0x5306,2,{0xB4,0xD2,0x00,0x00,}}, {0x5307,2,{0x84,0xF9,0x00,0x00,}}, {0x5308,2,{0xD0,0xD9,0x00,0x00,}}, {0x5309,2,{0x84,0xFA,0x00,0x00,}}, {0x530A,2,{0x84,0xFB,0x00,0x00,}}, {0x530B,2,{0x84,0xFC,0x00,0x00,}}, {0x530C,2,{0x84,0xFD,0x00,0x00,}}, {0x530D,2,{0xD9,0xE9,0x00,0x00,}}, {0x530E,2,{0x84,0xFE,0x00,0x00,}}, {0x530F,2,{0xDE,0xCB,0x00,0x00,}}, {0x5310,2,{0xD9,0xEB,0x00,0x00,}}, {0x5311,2,{0x85,0x40,0x00,0x00,}}, {0x5312,2,{0x85,0x41,0x00,0x00,}}, {0x5313,2,{0x85,0x42,0x00,0x00,}}, {0x5314,2,{0x85,0x43,0x00,0x00,}}, {0x5315,2,{0xD8,0xB0,0x00,0x00,}}, {0x5316,2,{0xBB,0xAF,0x00,0x00,}}, {0x5317,2,{0xB1,0xB1,0x00,0x00,}}, {0x5318,2,{0x85,0x44,0x00,0x00,}}, {0x5319,2,{0xB3,0xD7,0x00,0x00,}}, {0x531A,2,{0xD8,0xCE,0x00,0x00,}}, {0x531B,2,{0x85,0x45,0x00,0x00,}}, {0x531C,2,{0x85,0x46,0x00,0x00,}}, {0x531D,2,{0xD4,0xD1,0x00,0x00,}}, {0x531E,2,{0x85,0x47,0x00,0x00,}}, {0x531F,2,{0x85,0x48,0x00,0x00,}}, {0x5320,2,{0xBD,0xB3,0x00,0x00,}}, {0x5321,2,{0xBF,0xEF,0x00,0x00,}}, {0x5322,2,{0x85,0x49,0x00,0x00,}}, {0x5323,2,{0xCF,0xBB,0x00,0x00,}}, {0x5324,2,{0x85,0x4A,0x00,0x00,}}, {0x5325,2,{0x85,0x4B,0x00,0x00,}}, {0x5326,2,{0xD8,0xD0,0x00,0x00,}}, {0x5327,2,{0x85,0x4C,0x00,0x00,}}, {0x5328,2,{0x85,0x4D,0x00,0x00,}}, {0x5329,2,{0x85,0x4E,0x00,0x00,}}, {0x532A,2,{0xB7,0xCB,0x00,0x00,}}, {0x532B,2,{0x85,0x4F,0x00,0x00,}}, {0x532C,2,{0x85,0x50,0x00,0x00,}}, {0x532D,2,{0x85,0x51,0x00,0x00,}}, {0x532E,2,{0xD8,0xD1,0x00,0x00,}}, {0x532F,2,{0x85,0x52,0x00,0x00,}}, {0x5330,2,{0x85,0x53,0x00,0x00,}}, {0x5331,2,{0x85,0x54,0x00,0x00,}}, {0x5332,2,{0x85,0x55,0x00,0x00,}}, {0x5333,2,{0x85,0x56,0x00,0x00,}}, {0x5334,2,{0x85,0x57,0x00,0x00,}}, {0x5335,2,{0x85,0x58,0x00,0x00,}}, {0x5336,2,{0x85,0x59,0x00,0x00,}}, {0x5337,2,{0x85,0x5A,0x00,0x00,}}, {0x5338,2,{0x85,0x5B,0x00,0x00,}}, {0x5339,2,{0xC6,0xA5,0x00,0x00,}}, {0x533A,2,{0xC7,0xF8,0x00,0x00,}}, {0x533B,2,{0xD2,0xBD,0x00,0x00,}}, {0x533C,2,{0x85,0x5C,0x00,0x00,}}, {0x533D,2,{0x85,0x5D,0x00,0x00,}}, {0x533E,2,{0xD8,0xD2,0x00,0x00,}}, {0x533F,2,{0xC4,0xE4,0x00,0x00,}}, {0x5340,2,{0x85,0x5E,0x00,0x00,}}, {0x5341,2,{0xCA,0xAE,0x00,0x00,}}, {0x5342,2,{0x85,0x5F,0x00,0x00,}}, {0x5343,2,{0xC7,0xA7,0x00,0x00,}}, {0x5344,2,{0x85,0x60,0x00,0x00,}}, {0x5345,2,{0xD8,0xA6,0x00,0x00,}}, {0x5346,2,{0x85,0x61,0x00,0x00,}}, {0x5347,2,{0xC9,0xFD,0x00,0x00,}}, {0x5348,2,{0xCE,0xE7,0x00,0x00,}}, {0x5349,2,{0xBB,0xDC,0x00,0x00,}}, {0x534A,2,{0xB0,0xEB,0x00,0x00,}}, {0x534B,2,{0x85,0x62,0x00,0x00,}}, {0x534C,2,{0x85,0x63,0x00,0x00,}}, {0x534D,2,{0x85,0x64,0x00,0x00,}}, {0x534E,2,{0xBB,0xAA,0x00,0x00,}}, {0x534F,2,{0xD0,0xAD,0x00,0x00,}}, {0x5350,2,{0x85,0x65,0x00,0x00,}}, {0x5351,2,{0xB1,0xB0,0x00,0x00,}}, {0x5352,2,{0xD7,0xE4,0x00,0x00,}}, {0x5353,2,{0xD7,0xBF,0x00,0x00,}}, {0x5354,2,{0x85,0x66,0x00,0x00,}}, {0x5355,2,{0xB5,0xA5,0x00,0x00,}}, {0x5356,2,{0xC2,0xF4,0x00,0x00,}}, {0x5357,2,{0xC4,0xCF,0x00,0x00,}}, {0x5358,2,{0x85,0x67,0x00,0x00,}}, {0x5359,2,{0x85,0x68,0x00,0x00,}}, {0x535A,2,{0xB2,0xA9,0x00,0x00,}}, {0x535B,2,{0x85,0x69,0x00,0x00,}}, {0x535C,2,{0xB2,0xB7,0x00,0x00,}}, {0x535D,2,{0x85,0x6A,0x00,0x00,}}, {0x535E,2,{0xB1,0xE5,0x00,0x00,}}, {0x535F,2,{0xDF,0xB2,0x00,0x00,}}, {0x5360,2,{0xD5,0xBC,0x00,0x00,}}, {0x5361,2,{0xBF,0xA8,0x00,0x00,}}, {0x5362,2,{0xC2,0xAC,0x00,0x00,}}, {0x5363,2,{0xD8,0xD5,0x00,0x00,}}, {0x5364,2,{0xC2,0xB1,0x00,0x00,}}, {0x5365,2,{0x85,0x6B,0x00,0x00,}}, {0x5366,2,{0xD8,0xD4,0x00,0x00,}}, {0x5367,2,{0xCE,0xD4,0x00,0x00,}}, {0x5368,2,{0x85,0x6C,0x00,0x00,}}, {0x5369,2,{0xDA,0xE0,0x00,0x00,}}, {0x536A,2,{0x85,0x6D,0x00,0x00,}}, {0x536B,2,{0xCE,0xC0,0x00,0x00,}}, {0x536C,2,{0x85,0x6E,0x00,0x00,}}, {0x536D,2,{0x85,0x6F,0x00,0x00,}}, {0x536E,2,{0xD8,0xB4,0x00,0x00,}}, {0x536F,2,{0xC3,0xAE,0x00,0x00,}}, {0x5370,2,{0xD3,0xA1,0x00,0x00,}}, {0x5371,2,{0xCE,0xA3,0x00,0x00,}}, {0x5372,2,{0x85,0x70,0x00,0x00,}}, {0x5373,2,{0xBC,0xB4,0x00,0x00,}}, {0x5374,2,{0xC8,0xB4,0x00,0x00,}}, {0x5375,2,{0xC2,0xD1,0x00,0x00,}}, {0x5376,2,{0x85,0x71,0x00,0x00,}}, {0x5377,2,{0xBE,0xED,0x00,0x00,}}, {0x5378,2,{0xD0,0xB6,0x00,0x00,}}, {0x5379,2,{0x85,0x72,0x00,0x00,}}, {0x537A,2,{0xDA,0xE1,0x00,0x00,}}, {0x537B,2,{0x85,0x73,0x00,0x00,}}, {0x537C,2,{0x85,0x74,0x00,0x00,}}, {0x537D,2,{0x85,0x75,0x00,0x00,}}, {0x537E,2,{0x85,0x76,0x00,0x00,}}, {0x537F,2,{0xC7,0xE4,0x00,0x00,}}, {0x5380,2,{0x85,0x77,0x00,0x00,}}, {0x5381,2,{0x85,0x78,0x00,0x00,}}, {0x5382,2,{0xB3,0xA7,0x00,0x00,}}, {0x5383,2,{0x85,0x79,0x00,0x00,}}, {0x5384,2,{0xB6,0xF2,0x00,0x00,}}, {0x5385,2,{0xCC,0xFC,0x00,0x00,}}, {0x5386,2,{0xC0,0xFA,0x00,0x00,}}, {0x5387,2,{0x85,0x7A,0x00,0x00,}}, {0x5388,2,{0x85,0x7B,0x00,0x00,}}, {0x5389,2,{0xC0,0xF7,0x00,0x00,}}, {0x538A,2,{0x85,0x7C,0x00,0x00,}}, {0x538B,2,{0xD1,0xB9,0x00,0x00,}}, {0x538C,2,{0xD1,0xE1,0x00,0x00,}}, {0x538D,2,{0xD8,0xC7,0x00,0x00,}}, {0x538E,2,{0x85,0x7D,0x00,0x00,}}, {0x538F,2,{0x85,0x7E,0x00,0x00,}}, {0x5390,2,{0x85,0x80,0x00,0x00,}}, {0x5391,2,{0x85,0x81,0x00,0x00,}}, {0x5392,2,{0x85,0x82,0x00,0x00,}}, {0x5393,2,{0x85,0x83,0x00,0x00,}}, {0x5394,2,{0x85,0x84,0x00,0x00,}}, {0x5395,2,{0xB2,0xDE,0x00,0x00,}}, {0x5396,2,{0x85,0x85,0x00,0x00,}}, {0x5397,2,{0x85,0x86,0x00,0x00,}}, {0x5398,2,{0xC0,0xE5,0x00,0x00,}}, {0x5399,2,{0x85,0x87,0x00,0x00,}}, {0x539A,2,{0xBA,0xF1,0x00,0x00,}}, {0x539B,2,{0x85,0x88,0x00,0x00,}}, {0x539C,2,{0x85,0x89,0x00,0x00,}}, {0x539D,2,{0xD8,0xC8,0x00,0x00,}}, {0x539E,2,{0x85,0x8A,0x00,0x00,}}, {0x539F,2,{0xD4,0xAD,0x00,0x00,}}, {0x53A0,2,{0x85,0x8B,0x00,0x00,}}, {0x53A1,2,{0x85,0x8C,0x00,0x00,}}, {0x53A2,2,{0xCF,0xE1,0x00,0x00,}}, {0x53A3,2,{0xD8,0xC9,0x00,0x00,}}, {0x53A4,2,{0x85,0x8D,0x00,0x00,}}, {0x53A5,2,{0xD8,0xCA,0x00,0x00,}}, {0x53A6,2,{0xCF,0xC3,0x00,0x00,}}, {0x53A7,2,{0x85,0x8E,0x00,0x00,}}, {0x53A8,2,{0xB3,0xF8,0x00,0x00,}}, {0x53A9,2,{0xBE,0xC7,0x00,0x00,}}, {0x53AA,2,{0x85,0x8F,0x00,0x00,}}, {0x53AB,2,{0x85,0x90,0x00,0x00,}}, {0x53AC,2,{0x85,0x91,0x00,0x00,}}, {0x53AD,2,{0x85,0x92,0x00,0x00,}}, {0x53AE,2,{0xD8,0xCB,0x00,0x00,}}, {0x53AF,2,{0x85,0x93,0x00,0x00,}}, {0x53B0,2,{0x85,0x94,0x00,0x00,}}, {0x53B1,2,{0x85,0x95,0x00,0x00,}}, {0x53B2,2,{0x85,0x96,0x00,0x00,}}, {0x53B3,2,{0x85,0x97,0x00,0x00,}}, {0x53B4,2,{0x85,0x98,0x00,0x00,}}, {0x53B5,2,{0x85,0x99,0x00,0x00,}}, {0x53B6,2,{0xDB,0xCC,0x00,0x00,}}, {0x53B7,2,{0x85,0x9A,0x00,0x00,}}, {0x53B8,2,{0x85,0x9B,0x00,0x00,}}, {0x53B9,2,{0x85,0x9C,0x00,0x00,}}, {0x53BA,2,{0x85,0x9D,0x00,0x00,}}, {0x53BB,2,{0xC8,0xA5,0x00,0x00,}}, {0x53BC,2,{0x85,0x9E,0x00,0x00,}}, {0x53BD,2,{0x85,0x9F,0x00,0x00,}}, {0x53BE,2,{0x85,0xA0,0x00,0x00,}}, {0x53BF,2,{0xCF,0xD8,0x00,0x00,}}, {0x53C0,2,{0x85,0xA1,0x00,0x00,}}, {0x53C1,2,{0xC8,0xFE,0x00,0x00,}}, {0x53C2,2,{0xB2,0xCE,0x00,0x00,}}, {0x53C3,2,{0x85,0xA2,0x00,0x00,}}, {0x53C4,2,{0x85,0xA3,0x00,0x00,}}, {0x53C5,2,{0x85,0xA4,0x00,0x00,}}, {0x53C6,2,{0x85,0xA5,0x00,0x00,}}, {0x53C7,2,{0x85,0xA6,0x00,0x00,}}, {0x53C8,2,{0xD3,0xD6,0x00,0x00,}}, {0x53C9,2,{0xB2,0xE6,0x00,0x00,}}, {0x53CA,2,{0xBC,0xB0,0x00,0x00,}}, {0x53CB,2,{0xD3,0xD1,0x00,0x00,}}, {0x53CC,2,{0xCB,0xAB,0x00,0x00,}}, {0x53CD,2,{0xB7,0xB4,0x00,0x00,}}, {0x53CE,2,{0x85,0xA7,0x00,0x00,}}, {0x53CF,2,{0x85,0xA8,0x00,0x00,}}, {0x53D0,2,{0x85,0xA9,0x00,0x00,}}, {0x53D1,2,{0xB7,0xA2,0x00,0x00,}}, {0x53D2,2,{0x85,0xAA,0x00,0x00,}}, {0x53D3,2,{0x85,0xAB,0x00,0x00,}}, {0x53D4,2,{0xCA,0xE5,0x00,0x00,}}, {0x53D5,2,{0x85,0xAC,0x00,0x00,}}, {0x53D6,2,{0xC8,0xA1,0x00,0x00,}}, {0x53D7,2,{0xCA,0xDC,0x00,0x00,}}, {0x53D8,2,{0xB1,0xE4,0x00,0x00,}}, {0x53D9,2,{0xD0,0xF0,0x00,0x00,}}, {0x53DA,2,{0x85,0xAD,0x00,0x00,}}, {0x53DB,2,{0xC5,0xD1,0x00,0x00,}}, {0x53DC,2,{0x85,0xAE,0x00,0x00,}}, {0x53DD,2,{0x85,0xAF,0x00,0x00,}}, {0x53DE,2,{0x85,0xB0,0x00,0x00,}}, {0x53DF,2,{0xDB,0xC5,0x00,0x00,}}, {0x53E0,2,{0xB5,0xFE,0x00,0x00,}}, {0x53E1,2,{0x85,0xB1,0x00,0x00,}}, {0x53E2,2,{0x85,0xB2,0x00,0x00,}}, {0x53E3,2,{0xBF,0xDA,0x00,0x00,}}, {0x53E4,2,{0xB9,0xC5,0x00,0x00,}}, {0x53E5,2,{0xBE,0xE4,0x00,0x00,}}, {0x53E6,2,{0xC1,0xED,0x00,0x00,}}, {0x53E7,2,{0x85,0xB3,0x00,0x00,}}, {0x53E8,2,{0xDF,0xB6,0x00,0x00,}}, {0x53E9,2,{0xDF,0xB5,0x00,0x00,}}, {0x53EA,2,{0xD6,0xBB,0x00,0x00,}}, {0x53EB,2,{0xBD,0xD0,0x00,0x00,}}, {0x53EC,2,{0xD5,0xD9,0x00,0x00,}}, {0x53ED,2,{0xB0,0xC8,0x00,0x00,}}, {0x53EE,2,{0xB6,0xA3,0x00,0x00,}}, {0x53EF,2,{0xBF,0xC9,0x00,0x00,}}, {0x53F0,2,{0xCC,0xA8,0x00,0x00,}}, {0x53F1,2,{0xDF,0xB3,0x00,0x00,}}, {0x53F2,2,{0xCA,0xB7,0x00,0x00,}}, {0x53F3,2,{0xD3,0xD2,0x00,0x00,}}, {0x53F4,2,{0x85,0xB4,0x00,0x00,}}, {0x53F5,2,{0xD8,0xCF,0x00,0x00,}}, {0x53F6,2,{0xD2,0xB6,0x00,0x00,}}, {0x53F7,2,{0xBA,0xC5,0x00,0x00,}}, {0x53F8,2,{0xCB,0xBE,0x00,0x00,}}, {0x53F9,2,{0xCC,0xBE,0x00,0x00,}}, {0x53FA,2,{0x85,0xB5,0x00,0x00,}}, {0x53FB,2,{0xDF,0xB7,0x00,0x00,}}, {0x53FC,2,{0xB5,0xF0,0x00,0x00,}}, {0x53FD,2,{0xDF,0xB4,0x00,0x00,}}, {0x53FE,2,{0x85,0xB6,0x00,0x00,}}, {0x53FF,2,{0x85,0xB7,0x00,0x00,}}, {0x5400,2,{0x85,0xB8,0x00,0x00,}}, {0x5401,2,{0xD3,0xF5,0x00,0x00,}}, {0x5402,2,{0x85,0xB9,0x00,0x00,}}, {0x5403,2,{0xB3,0xD4,0x00,0x00,}}, {0x5404,2,{0xB8,0xF7,0x00,0x00,}}, {0x5405,2,{0x85,0xBA,0x00,0x00,}}, {0x5406,2,{0xDF,0xBA,0x00,0x00,}}, {0x5407,2,{0x85,0xBB,0x00,0x00,}}, {0x5408,2,{0xBA,0xCF,0x00,0x00,}}, {0x5409,2,{0xBC,0xAA,0x00,0x00,}}, {0x540A,2,{0xB5,0xF5,0x00,0x00,}}, {0x540B,2,{0x85,0xBC,0x00,0x00,}}, {0x540C,2,{0xCD,0xAC,0x00,0x00,}}, {0x540D,2,{0xC3,0xFB,0x00,0x00,}}, {0x540E,2,{0xBA,0xF3,0x00,0x00,}}, {0x540F,2,{0xC0,0xF4,0x00,0x00,}}, {0x5410,2,{0xCD,0xC2,0x00,0x00,}}, {0x5411,2,{0xCF,0xF2,0x00,0x00,}}, {0x5412,2,{0xDF,0xB8,0x00,0x00,}}, {0x5413,2,{0xCF,0xC5,0x00,0x00,}}, {0x5414,2,{0x85,0xBD,0x00,0x00,}}, {0x5415,2,{0xC2,0xC0,0x00,0x00,}}, {0x5416,2,{0xDF,0xB9,0x00,0x00,}}, {0x5417,2,{0xC2,0xF0,0x00,0x00,}}, {0x5418,2,{0x85,0xBE,0x00,0x00,}}, {0x5419,2,{0x85,0xBF,0x00,0x00,}}, {0x541A,2,{0x85,0xC0,0x00,0x00,}}, {0x541B,2,{0xBE,0xFD,0x00,0x00,}}, {0x541C,2,{0x85,0xC1,0x00,0x00,}}, {0x541D,2,{0xC1,0xDF,0x00,0x00,}}, {0x541E,2,{0xCD,0xCC,0x00,0x00,}}, {0x541F,2,{0xD2,0xF7,0x00,0x00,}}, {0x5420,2,{0xB7,0xCD,0x00,0x00,}}, {0x5421,2,{0xDF,0xC1,0x00,0x00,}}, {0x5422,2,{0x85,0xC2,0x00,0x00,}}, {0x5423,2,{0xDF,0xC4,0x00,0x00,}}, {0x5424,2,{0x85,0xC3,0x00,0x00,}}, {0x5425,2,{0x85,0xC4,0x00,0x00,}}, {0x5426,2,{0xB7,0xF1,0x00,0x00,}}, {0x5427,2,{0xB0,0xC9,0x00,0x00,}}, {0x5428,2,{0xB6,0xD6,0x00,0x00,}}, {0x5429,2,{0xB7,0xD4,0x00,0x00,}}, {0x542A,2,{0x85,0xC5,0x00,0x00,}}, {0x542B,2,{0xBA,0xAC,0x00,0x00,}}, {0x542C,2,{0xCC,0xFD,0x00,0x00,}}, {0x542D,2,{0xBF,0xD4,0x00,0x00,}}, {0x542E,2,{0xCB,0xB1,0x00,0x00,}}, {0x542F,2,{0xC6,0xF4,0x00,0x00,}}, {0x5430,2,{0x85,0xC6,0x00,0x00,}}, {0x5431,2,{0xD6,0xA8,0x00,0x00,}}, {0x5432,2,{0xDF,0xC5,0x00,0x00,}}, {0x5433,2,{0x85,0xC7,0x00,0x00,}}, {0x5434,2,{0xCE,0xE2,0x00,0x00,}}, {0x5435,2,{0xB3,0xB3,0x00,0x00,}}, {0x5436,2,{0x85,0xC8,0x00,0x00,}}, {0x5437,2,{0x85,0xC9,0x00,0x00,}}, {0x5438,2,{0xCE,0xFC,0x00,0x00,}}, {0x5439,2,{0xB4,0xB5,0x00,0x00,}}, {0x543A,2,{0x85,0xCA,0x00,0x00,}}, {0x543B,2,{0xCE,0xC7,0x00,0x00,}}, {0x543C,2,{0xBA,0xF0,0x00,0x00,}}, {0x543D,2,{0x85,0xCB,0x00,0x00,}}, {0x543E,2,{0xCE,0xE1,0x00,0x00,}}, {0x543F,2,{0x85,0xCC,0x00,0x00,}}, {0x5440,2,{0xD1,0xBD,0x00,0x00,}}, {0x5441,2,{0x85,0xCD,0x00,0x00,}}, {0x5442,2,{0x85,0xCE,0x00,0x00,}}, {0x5443,2,{0xDF,0xC0,0x00,0x00,}}, {0x5444,2,{0x85,0xCF,0x00,0x00,}}, {0x5445,2,{0x85,0xD0,0x00,0x00,}}, {0x5446,2,{0xB4,0xF4,0x00,0x00,}}, {0x5447,2,{0x85,0xD1,0x00,0x00,}}, {0x5448,2,{0xB3,0xCA,0x00,0x00,}}, {0x5449,2,{0x85,0xD2,0x00,0x00,}}, {0x544A,2,{0xB8,0xE6,0x00,0x00,}}, {0x544B,2,{0xDF,0xBB,0x00,0x00,}}, {0x544C,2,{0x85,0xD3,0x00,0x00,}}, {0x544D,2,{0x85,0xD4,0x00,0x00,}}, {0x544E,2,{0x85,0xD5,0x00,0x00,}}, {0x544F,2,{0x85,0xD6,0x00,0x00,}}, {0x5450,2,{0xC4,0xC5,0x00,0x00,}}, {0x5451,2,{0x85,0xD7,0x00,0x00,}}, {0x5452,2,{0xDF,0xBC,0x00,0x00,}}, {0x5453,2,{0xDF,0xBD,0x00,0x00,}}, {0x5454,2,{0xDF,0xBE,0x00,0x00,}}, {0x5455,2,{0xC5,0xBB,0x00,0x00,}}, {0x5456,2,{0xDF,0xBF,0x00,0x00,}}, {0x5457,2,{0xDF,0xC2,0x00,0x00,}}, {0x5458,2,{0xD4,0xB1,0x00,0x00,}}, {0x5459,2,{0xDF,0xC3,0x00,0x00,}}, {0x545A,2,{0x85,0xD8,0x00,0x00,}}, {0x545B,2,{0xC7,0xBA,0x00,0x00,}}, {0x545C,2,{0xCE,0xD8,0x00,0x00,}}, {0x545D,2,{0x85,0xD9,0x00,0x00,}}, {0x545E,2,{0x85,0xDA,0x00,0x00,}}, {0x545F,2,{0x85,0xDB,0x00,0x00,}}, {0x5460,2,{0x85,0xDC,0x00,0x00,}}, {0x5461,2,{0x85,0xDD,0x00,0x00,}}, {0x5462,2,{0xC4,0xD8,0x00,0x00,}}, {0x5463,2,{0x85,0xDE,0x00,0x00,}}, {0x5464,2,{0xDF,0xCA,0x00,0x00,}}, {0x5465,2,{0x85,0xDF,0x00,0x00,}}, {0x5466,2,{0xDF,0xCF,0x00,0x00,}}, {0x5467,2,{0x85,0xE0,0x00,0x00,}}, {0x5468,2,{0xD6,0xDC,0x00,0x00,}}, {0x5469,2,{0x85,0xE1,0x00,0x00,}}, {0x546A,2,{0x85,0xE2,0x00,0x00,}}, {0x546B,2,{0x85,0xE3,0x00,0x00,}}, {0x546C,2,{0x85,0xE4,0x00,0x00,}}, {0x546D,2,{0x85,0xE5,0x00,0x00,}}, {0x546E,2,{0x85,0xE6,0x00,0x00,}}, {0x546F,2,{0x85,0xE7,0x00,0x00,}}, {0x5470,2,{0x85,0xE8,0x00,0x00,}}, {0x5471,2,{0xDF,0xC9,0x00,0x00,}}, {0x5472,2,{0xDF,0xDA,0x00,0x00,}}, {0x5473,2,{0xCE,0xB6,0x00,0x00,}}, {0x5474,2,{0x85,0xE9,0x00,0x00,}}, {0x5475,2,{0xBA,0xC7,0x00,0x00,}}, {0x5476,2,{0xDF,0xCE,0x00,0x00,}}, {0x5477,2,{0xDF,0xC8,0x00,0x00,}}, {0x5478,2,{0xC5,0xDE,0x00,0x00,}}, {0x5479,2,{0x85,0xEA,0x00,0x00,}}, {0x547A,2,{0x85,0xEB,0x00,0x00,}}, {0x547B,2,{0xC9,0xEB,0x00,0x00,}}, {0x547C,2,{0xBA,0xF4,0x00,0x00,}}, {0x547D,2,{0xC3,0xFC,0x00,0x00,}}, {0x547E,2,{0x85,0xEC,0x00,0x00,}}, {0x547F,2,{0x85,0xED,0x00,0x00,}}, {0x5480,2,{0xBE,0xD7,0x00,0x00,}}, {0x5481,2,{0x85,0xEE,0x00,0x00,}}, {0x5482,2,{0xDF,0xC6,0x00,0x00,}}, {0x5483,2,{0x85,0xEF,0x00,0x00,}}, {0x5484,2,{0xDF,0xCD,0x00,0x00,}}, {0x5485,2,{0x85,0xF0,0x00,0x00,}}, {0x5486,2,{0xC5,0xD8,0x00,0x00,}}, {0x5487,2,{0x85,0xF1,0x00,0x00,}}, {0x5488,2,{0x85,0xF2,0x00,0x00,}}, {0x5489,2,{0x85,0xF3,0x00,0x00,}}, {0x548A,2,{0x85,0xF4,0x00,0x00,}}, {0x548B,2,{0xD5,0xA6,0x00,0x00,}}, {0x548C,2,{0xBA,0xCD,0x00,0x00,}}, {0x548D,2,{0x85,0xF5,0x00,0x00,}}, {0x548E,2,{0xBE,0xCC,0x00,0x00,}}, {0x548F,2,{0xD3,0xBD,0x00,0x00,}}, {0x5490,2,{0xB8,0xC0,0x00,0x00,}}, {0x5491,2,{0x85,0xF6,0x00,0x00,}}, {0x5492,2,{0xD6,0xE4,0x00,0x00,}}, {0x5493,2,{0x85,0xF7,0x00,0x00,}}, {0x5494,2,{0xDF,0xC7,0x00,0x00,}}, {0x5495,2,{0xB9,0xBE,0x00,0x00,}}, {0x5496,2,{0xBF,0xA7,0x00,0x00,}}, {0x5497,2,{0x85,0xF8,0x00,0x00,}}, {0x5498,2,{0x85,0xF9,0x00,0x00,}}, {0x5499,2,{0xC1,0xFC,0x00,0x00,}}, {0x549A,2,{0xDF,0xCB,0x00,0x00,}}, {0x549B,2,{0xDF,0xCC,0x00,0x00,}}, {0x549C,2,{0x85,0xFA,0x00,0x00,}}, {0x549D,2,{0xDF,0xD0,0x00,0x00,}}, {0x549E,2,{0x85,0xFB,0x00,0x00,}}, {0x549F,2,{0x85,0xFC,0x00,0x00,}}, {0x54A0,2,{0x85,0xFD,0x00,0x00,}}, {0x54A1,2,{0x85,0xFE,0x00,0x00,}}, {0x54A2,2,{0x86,0x40,0x00,0x00,}}, {0x54A3,2,{0xDF,0xDB,0x00,0x00,}}, {0x54A4,2,{0xDF,0xE5,0x00,0x00,}}, {0x54A5,2,{0x86,0x41,0x00,0x00,}}, {0x54A6,2,{0xDF,0xD7,0x00,0x00,}}, {0x54A7,2,{0xDF,0xD6,0x00,0x00,}}, {0x54A8,2,{0xD7,0xC9,0x00,0x00,}}, {0x54A9,2,{0xDF,0xE3,0x00,0x00,}}, {0x54AA,2,{0xDF,0xE4,0x00,0x00,}}, {0x54AB,2,{0xE5,0xEB,0x00,0x00,}}, {0x54AC,2,{0xD2,0xA7,0x00,0x00,}}, {0x54AD,2,{0xDF,0xD2,0x00,0x00,}}, {0x54AE,2,{0x86,0x42,0x00,0x00,}}, {0x54AF,2,{0xBF,0xA9,0x00,0x00,}}, {0x54B0,2,{0x86,0x43,0x00,0x00,}}, {0x54B1,2,{0xD4,0xDB,0x00,0x00,}}, {0x54B2,2,{0x86,0x44,0x00,0x00,}}, {0x54B3,2,{0xBF,0xC8,0x00,0x00,}}, {0x54B4,2,{0xDF,0xD4,0x00,0x00,}}, {0x54B5,2,{0x86,0x45,0x00,0x00,}}, {0x54B6,2,{0x86,0x46,0x00,0x00,}}, {0x54B7,2,{0x86,0x47,0x00,0x00,}}, {0x54B8,2,{0xCF,0xCC,0x00,0x00,}}, {0x54B9,2,{0x86,0x48,0x00,0x00,}}, {0x54BA,2,{0x86,0x49,0x00,0x00,}}, {0x54BB,2,{0xDF,0xDD,0x00,0x00,}}, {0x54BC,2,{0x86,0x4A,0x00,0x00,}}, {0x54BD,2,{0xD1,0xCA,0x00,0x00,}}, {0x54BE,2,{0x86,0x4B,0x00,0x00,}}, {0x54BF,2,{0xDF,0xDE,0x00,0x00,}}, {0x54C0,2,{0xB0,0xA7,0x00,0x00,}}, {0x54C1,2,{0xC6,0xB7,0x00,0x00,}}, {0x54C2,2,{0xDF,0xD3,0x00,0x00,}}, {0x54C3,2,{0x86,0x4C,0x00,0x00,}}, {0x54C4,2,{0xBA,0xE5,0x00,0x00,}}, {0x54C5,2,{0x86,0x4D,0x00,0x00,}}, {0x54C6,2,{0xB6,0xDF,0x00,0x00,}}, {0x54C7,2,{0xCD,0xDB,0x00,0x00,}}, {0x54C8,2,{0xB9,0xFE,0x00,0x00,}}, {0x54C9,2,{0xD4,0xD5,0x00,0x00,}}, {0x54CA,2,{0x86,0x4E,0x00,0x00,}}, {0x54CB,2,{0x86,0x4F,0x00,0x00,}}, {0x54CC,2,{0xDF,0xDF,0x00,0x00,}}, {0x54CD,2,{0xCF,0xEC,0x00,0x00,}}, {0x54CE,2,{0xB0,0xA5,0x00,0x00,}}, {0x54CF,2,{0xDF,0xE7,0x00,0x00,}}, {0x54D0,2,{0xDF,0xD1,0x00,0x00,}}, {0x54D1,2,{0xD1,0xC6,0x00,0x00,}}, {0x54D2,2,{0xDF,0xD5,0x00,0x00,}}, {0x54D3,2,{0xDF,0xD8,0x00,0x00,}}, {0x54D4,2,{0xDF,0xD9,0x00,0x00,}}, {0x54D5,2,{0xDF,0xDC,0x00,0x00,}}, {0x54D6,2,{0x86,0x50,0x00,0x00,}}, {0x54D7,2,{0xBB,0xA9,0x00,0x00,}}, {0x54D8,2,{0x86,0x51,0x00,0x00,}}, {0x54D9,2,{0xDF,0xE0,0x00,0x00,}}, {0x54DA,2,{0xDF,0xE1,0x00,0x00,}}, {0x54DB,2,{0x86,0x52,0x00,0x00,}}, {0x54DC,2,{0xDF,0xE2,0x00,0x00,}}, {0x54DD,2,{0xDF,0xE6,0x00,0x00,}}, {0x54DE,2,{0xDF,0xE8,0x00,0x00,}}, {0x54DF,2,{0xD3,0xB4,0x00,0x00,}}, {0x54E0,2,{0x86,0x53,0x00,0x00,}}, {0x54E1,2,{0x86,0x54,0x00,0x00,}}, {0x54E2,2,{0x86,0x55,0x00,0x00,}}, {0x54E3,2,{0x86,0x56,0x00,0x00,}}, {0x54E4,2,{0x86,0x57,0x00,0x00,}}, {0x54E5,2,{0xB8,0xE7,0x00,0x00,}}, {0x54E6,2,{0xC5,0xB6,0x00,0x00,}}, {0x54E7,2,{0xDF,0xEA,0x00,0x00,}}, {0x54E8,2,{0xC9,0xDA,0x00,0x00,}}, {0x54E9,2,{0xC1,0xA8,0x00,0x00,}}, {0x54EA,2,{0xC4,0xC4,0x00,0x00,}}, {0x54EB,2,{0x86,0x58,0x00,0x00,}}, {0x54EC,2,{0x86,0x59,0x00,0x00,}}, {0x54ED,2,{0xBF,0xDE,0x00,0x00,}}, {0x54EE,2,{0xCF,0xF8,0x00,0x00,}}, {0x54EF,2,{0x86,0x5A,0x00,0x00,}}, {0x54F0,2,{0x86,0x5B,0x00,0x00,}}, {0x54F1,2,{0x86,0x5C,0x00,0x00,}}, {0x54F2,2,{0xD5,0xDC,0x00,0x00,}}, {0x54F3,2,{0xDF,0xEE,0x00,0x00,}}, {0x54F4,2,{0x86,0x5D,0x00,0x00,}}, {0x54F5,2,{0x86,0x5E,0x00,0x00,}}, {0x54F6,2,{0x86,0x5F,0x00,0x00,}}, {0x54F7,2,{0x86,0x60,0x00,0x00,}}, {0x54F8,2,{0x86,0x61,0x00,0x00,}}, {0x54F9,2,{0x86,0x62,0x00,0x00,}}, {0x54FA,2,{0xB2,0xB8,0x00,0x00,}}, {0x54FB,2,{0x86,0x63,0x00,0x00,}}, {0x54FC,2,{0xBA,0xDF,0x00,0x00,}}, {0x54FD,2,{0xDF,0xEC,0x00,0x00,}}, {0x54FE,2,{0x86,0x64,0x00,0x00,}}, {0x54FF,2,{0xDB,0xC1,0x00,0x00,}}, {0x5500,2,{0x86,0x65,0x00,0x00,}}, {0x5501,2,{0xD1,0xE4,0x00,0x00,}}, {0x5502,2,{0x86,0x66,0x00,0x00,}}, {0x5503,2,{0x86,0x67,0x00,0x00,}}, {0x5504,2,{0x86,0x68,0x00,0x00,}}, {0x5505,2,{0x86,0x69,0x00,0x00,}}, {0x5506,2,{0xCB,0xF4,0x00,0x00,}}, {0x5507,2,{0xB4,0xBD,0x00,0x00,}}, {0x5508,2,{0x86,0x6A,0x00,0x00,}}, {0x5509,2,{0xB0,0xA6,0x00,0x00,}}, {0x550A,2,{0x86,0x6B,0x00,0x00,}}, {0x550B,2,{0x86,0x6C,0x00,0x00,}}, {0x550C,2,{0x86,0x6D,0x00,0x00,}}, {0x550D,2,{0x86,0x6E,0x00,0x00,}}, {0x550E,2,{0x86,0x6F,0x00,0x00,}}, {0x550F,2,{0xDF,0xF1,0x00,0x00,}}, {0x5510,2,{0xCC,0xC6,0x00,0x00,}}, {0x5511,2,{0xDF,0xF2,0x00,0x00,}}, {0x5512,2,{0x86,0x70,0x00,0x00,}}, {0x5513,2,{0x86,0x71,0x00,0x00,}}, {0x5514,2,{0xDF,0xED,0x00,0x00,}}, {0x5515,2,{0x86,0x72,0x00,0x00,}}, {0x5516,2,{0x86,0x73,0x00,0x00,}}, {0x5517,2,{0x86,0x74,0x00,0x00,}}, {0x5518,2,{0x86,0x75,0x00,0x00,}}, {0x5519,2,{0x86,0x76,0x00,0x00,}}, {0x551A,2,{0x86,0x77,0x00,0x00,}}, {0x551B,2,{0xDF,0xE9,0x00,0x00,}}, {0x551C,2,{0x86,0x78,0x00,0x00,}}, {0x551D,2,{0x86,0x79,0x00,0x00,}}, {0x551E,2,{0x86,0x7A,0x00,0x00,}}, {0x551F,2,{0x86,0x7B,0x00,0x00,}}, {0x5520,2,{0xDF,0xEB,0x00,0x00,}}, {0x5521,2,{0x86,0x7C,0x00,0x00,}}, {0x5522,2,{0xDF,0xEF,0x00,0x00,}}, {0x5523,2,{0xDF,0xF0,0x00,0x00,}}, {0x5524,2,{0xBB,0xBD,0x00,0x00,}}, {0x5525,2,{0x86,0x7D,0x00,0x00,}}, {0x5526,2,{0x86,0x7E,0x00,0x00,}}, {0x5527,2,{0xDF,0xF3,0x00,0x00,}}, {0x5528,2,{0x86,0x80,0x00,0x00,}}, {0x5529,2,{0x86,0x81,0x00,0x00,}}, {0x552A,2,{0xDF,0xF4,0x00,0x00,}}, {0x552B,2,{0x86,0x82,0x00,0x00,}}, {0x552C,2,{0xBB,0xA3,0x00,0x00,}}, {0x552D,2,{0x86,0x83,0x00,0x00,}}, {0x552E,2,{0xCA,0xDB,0x00,0x00,}}, {0x552F,2,{0xCE,0xA8,0x00,0x00,}}, {0x5530,2,{0xE0,0xA7,0x00,0x00,}}, {0x5531,2,{0xB3,0xAA,0x00,0x00,}}, {0x5532,2,{0x86,0x84,0x00,0x00,}}, {0x5533,2,{0xE0,0xA6,0x00,0x00,}}, {0x5534,2,{0x86,0x85,0x00,0x00,}}, {0x5535,2,{0x86,0x86,0x00,0x00,}}, {0x5536,2,{0x86,0x87,0x00,0x00,}}, {0x5537,2,{0xE0,0xA1,0x00,0x00,}}, {0x5538,2,{0x86,0x88,0x00,0x00,}}, {0x5539,2,{0x86,0x89,0x00,0x00,}}, {0x553A,2,{0x86,0x8A,0x00,0x00,}}, {0x553B,2,{0x86,0x8B,0x00,0x00,}}, {0x553C,2,{0xDF,0xFE,0x00,0x00,}}, {0x553D,2,{0x86,0x8C,0x00,0x00,}}, {0x553E,2,{0xCD,0xD9,0x00,0x00,}}, {0x553F,2,{0xDF,0xFC,0x00,0x00,}}, {0x5540,2,{0x86,0x8D,0x00,0x00,}}, {0x5541,2,{0xDF,0xFA,0x00,0x00,}}, {0x5542,2,{0x86,0x8E,0x00,0x00,}}, {0x5543,2,{0xBF,0xD0,0x00,0x00,}}, {0x5544,2,{0xD7,0xC4,0x00,0x00,}}, {0x5545,2,{0x86,0x8F,0x00,0x00,}}, {0x5546,2,{0xC9,0xCC,0x00,0x00,}}, {0x5547,2,{0x86,0x90,0x00,0x00,}}, {0x5548,2,{0x86,0x91,0x00,0x00,}}, {0x5549,2,{0xDF,0xF8,0x00,0x00,}}, {0x554A,2,{0xB0,0xA1,0x00,0x00,}}, {0x554B,2,{0x86,0x92,0x00,0x00,}}, {0x554C,2,{0x86,0x93,0x00,0x00,}}, {0x554D,2,{0x86,0x94,0x00,0x00,}}, {0x554E,2,{0x86,0x95,0x00,0x00,}}, {0x554F,2,{0x86,0x96,0x00,0x00,}}, {0x5550,2,{0xDF,0xFD,0x00,0x00,}}, {0x5551,2,{0x86,0x97,0x00,0x00,}}, {0x5552,2,{0x86,0x98,0x00,0x00,}}, {0x5553,2,{0x86,0x99,0x00,0x00,}}, {0x5554,2,{0x86,0x9A,0x00,0x00,}}, {0x5555,2,{0xDF,0xFB,0x00,0x00,}}, {0x5556,2,{0xE0,0xA2,0x00,0x00,}}, {0x5557,2,{0x86,0x9B,0x00,0x00,}}, {0x5558,2,{0x86,0x9C,0x00,0x00,}}, {0x5559,2,{0x86,0x9D,0x00,0x00,}}, {0x555A,2,{0x86,0x9E,0x00,0x00,}}, {0x555B,2,{0x86,0x9F,0x00,0x00,}}, {0x555C,2,{0xE0,0xA8,0x00,0x00,}}, {0x555D,2,{0x86,0xA0,0x00,0x00,}}, {0x555E,2,{0x86,0xA1,0x00,0x00,}}, {0x555F,2,{0x86,0xA2,0x00,0x00,}}, {0x5560,2,{0x86,0xA3,0x00,0x00,}}, {0x5561,2,{0xB7,0xC8,0x00,0x00,}}, {0x5562,2,{0x86,0xA4,0x00,0x00,}}, {0x5563,2,{0x86,0xA5,0x00,0x00,}}, {0x5564,2,{0xC6,0xA1,0x00,0x00,}}, {0x5565,2,{0xC9,0xB6,0x00,0x00,}}, {0x5566,2,{0xC0,0xB2,0x00,0x00,}}, {0x5567,2,{0xDF,0xF5,0x00,0x00,}}, {0x5568,2,{0x86,0xA6,0x00,0x00,}}, {0x5569,2,{0x86,0xA7,0x00,0x00,}}, {0x556A,2,{0xC5,0xBE,0x00,0x00,}}, {0x556B,2,{0x86,0xA8,0x00,0x00,}}, {0x556C,2,{0xD8,0xC4,0x00,0x00,}}, {0x556D,2,{0xDF,0xF9,0x00,0x00,}}, {0x556E,2,{0xC4,0xF6,0x00,0x00,}}, {0x556F,2,{0x86,0xA9,0x00,0x00,}}, {0x5570,2,{0x86,0xAA,0x00,0x00,}}, {0x5571,2,{0x86,0xAB,0x00,0x00,}}, {0x5572,2,{0x86,0xAC,0x00,0x00,}}, {0x5573,2,{0x86,0xAD,0x00,0x00,}}, {0x5574,2,{0x86,0xAE,0x00,0x00,}}, {0x5575,2,{0xE0,0xA3,0x00,0x00,}}, {0x5576,2,{0xE0,0xA4,0x00,0x00,}}, {0x5577,2,{0xE0,0xA5,0x00,0x00,}}, {0x5578,2,{0xD0,0xA5,0x00,0x00,}}, {0x5579,2,{0x86,0xAF,0x00,0x00,}}, {0x557A,2,{0x86,0xB0,0x00,0x00,}}, {0x557B,2,{0xE0,0xB4,0x00,0x00,}}, {0x557C,2,{0xCC,0xE4,0x00,0x00,}}, {0x557D,2,{0x86,0xB1,0x00,0x00,}}, {0x557E,2,{0xE0,0xB1,0x00,0x00,}}, {0x557F,2,{0x86,0xB2,0x00,0x00,}}, {0x5580,2,{0xBF,0xA6,0x00,0x00,}}, {0x5581,2,{0xE0,0xAF,0x00,0x00,}}, {0x5582,2,{0xCE,0xB9,0x00,0x00,}}, {0x5583,2,{0xE0,0xAB,0x00,0x00,}}, {0x5584,2,{0xC9,0xC6,0x00,0x00,}}, {0x5585,2,{0x86,0xB3,0x00,0x00,}}, {0x5586,2,{0x86,0xB4,0x00,0x00,}}, {0x5587,2,{0xC0,0xAE,0x00,0x00,}}, {0x5588,2,{0xE0,0xAE,0x00,0x00,}}, {0x5589,2,{0xBA,0xED,0x00,0x00,}}, {0x558A,2,{0xBA,0xB0,0x00,0x00,}}, {0x558B,2,{0xE0,0xA9,0x00,0x00,}}, {0x558C,2,{0x86,0xB5,0x00,0x00,}}, {0x558D,2,{0x86,0xB6,0x00,0x00,}}, {0x558E,2,{0x86,0xB7,0x00,0x00,}}, {0x558F,2,{0xDF,0xF6,0x00,0x00,}}, {0x5590,2,{0x86,0xB8,0x00,0x00,}}, {0x5591,2,{0xE0,0xB3,0x00,0x00,}}, {0x5592,2,{0x86,0xB9,0x00,0x00,}}, {0x5593,2,{0x86,0xBA,0x00,0x00,}}, {0x5594,2,{0xE0,0xB8,0x00,0x00,}}, {0x5595,2,{0x86,0xBB,0x00,0x00,}}, {0x5596,2,{0x86,0xBC,0x00,0x00,}}, {0x5597,2,{0x86,0xBD,0x00,0x00,}}, {0x5598,2,{0xB4,0xAD,0x00,0x00,}}, {0x5599,2,{0xE0,0xB9,0x00,0x00,}}, {0x559A,2,{0x86,0xBE,0x00,0x00,}}, {0x559B,2,{0x86,0xBF,0x00,0x00,}}, {0x559C,2,{0xCF,0xB2,0x00,0x00,}}, {0x559D,2,{0xBA,0xC8,0x00,0x00,}}, {0x559E,2,{0x86,0xC0,0x00,0x00,}}, {0x559F,2,{0xE0,0xB0,0x00,0x00,}}, {0x55A0,2,{0x86,0xC1,0x00,0x00,}}, {0x55A1,2,{0x86,0xC2,0x00,0x00,}}, {0x55A2,2,{0x86,0xC3,0x00,0x00,}}, {0x55A3,2,{0x86,0xC4,0x00,0x00,}}, {0x55A4,2,{0x86,0xC5,0x00,0x00,}}, {0x55A5,2,{0x86,0xC6,0x00,0x00,}}, {0x55A6,2,{0x86,0xC7,0x00,0x00,}}, {0x55A7,2,{0xD0,0xFA,0x00,0x00,}}, {0x55A8,2,{0x86,0xC8,0x00,0x00,}}, {0x55A9,2,{0x86,0xC9,0x00,0x00,}}, {0x55AA,2,{0x86,0xCA,0x00,0x00,}}, {0x55AB,2,{0x86,0xCB,0x00,0x00,}}, {0x55AC,2,{0x86,0xCC,0x00,0x00,}}, {0x55AD,2,{0x86,0xCD,0x00,0x00,}}, {0x55AE,2,{0x86,0xCE,0x00,0x00,}}, {0x55AF,2,{0x86,0xCF,0x00,0x00,}}, {0x55B0,2,{0x86,0xD0,0x00,0x00,}}, {0x55B1,2,{0xE0,0xAC,0x00,0x00,}}, {0x55B2,2,{0x86,0xD1,0x00,0x00,}}, {0x55B3,2,{0xD4,0xFB,0x00,0x00,}}, {0x55B4,2,{0x86,0xD2,0x00,0x00,}}, {0x55B5,2,{0xDF,0xF7,0x00,0x00,}}, {0x55B6,2,{0x86,0xD3,0x00,0x00,}}, {0x55B7,2,{0xC5,0xE7,0x00,0x00,}}, {0x55B8,2,{0x86,0xD4,0x00,0x00,}}, {0x55B9,2,{0xE0,0xAD,0x00,0x00,}}, {0x55BA,2,{0x86,0xD5,0x00,0x00,}}, {0x55BB,2,{0xD3,0xF7,0x00,0x00,}}, {0x55BC,2,{0x86,0xD6,0x00,0x00,}}, {0x55BD,2,{0xE0,0xB6,0x00,0x00,}}, {0x55BE,2,{0xE0,0xB7,0x00,0x00,}}, {0x55BF,2,{0x86,0xD7,0x00,0x00,}}, {0x55C0,2,{0x86,0xD8,0x00,0x00,}}, {0x55C1,2,{0x86,0xD9,0x00,0x00,}}, {0x55C2,2,{0x86,0xDA,0x00,0x00,}}, {0x55C3,2,{0x86,0xDB,0x00,0x00,}}, {0x55C4,2,{0xE0,0xC4,0x00,0x00,}}, {0x55C5,2,{0xD0,0xE1,0x00,0x00,}}, {0x55C6,2,{0x86,0xDC,0x00,0x00,}}, {0x55C7,2,{0x86,0xDD,0x00,0x00,}}, {0x55C8,2,{0x86,0xDE,0x00,0x00,}}, {0x55C9,2,{0xE0,0xBC,0x00,0x00,}}, {0x55CA,2,{0x86,0xDF,0x00,0x00,}}, {0x55CB,2,{0x86,0xE0,0x00,0x00,}}, {0x55CC,2,{0xE0,0xC9,0x00,0x00,}}, {0x55CD,2,{0xE0,0xCA,0x00,0x00,}}, {0x55CE,2,{0x86,0xE1,0x00,0x00,}}, {0x55CF,2,{0x86,0xE2,0x00,0x00,}}, {0x55D0,2,{0x86,0xE3,0x00,0x00,}}, {0x55D1,2,{0xE0,0xBE,0x00,0x00,}}, {0x55D2,2,{0xE0,0xAA,0x00,0x00,}}, {0x55D3,2,{0xC9,0xA4,0x00,0x00,}}, {0x55D4,2,{0xE0,0xC1,0x00,0x00,}}, {0x55D5,2,{0x86,0xE4,0x00,0x00,}}, {0x55D6,2,{0xE0,0xB2,0x00,0x00,}}, {0x55D7,2,{0x86,0xE5,0x00,0x00,}}, {0x55D8,2,{0x86,0xE6,0x00,0x00,}}, {0x55D9,2,{0x86,0xE7,0x00,0x00,}}, {0x55DA,2,{0x86,0xE8,0x00,0x00,}}, {0x55DB,2,{0x86,0xE9,0x00,0x00,}}, {0x55DC,2,{0xCA,0xC8,0x00,0x00,}}, {0x55DD,2,{0xE0,0xC3,0x00,0x00,}}, {0x55DE,2,{0x86,0xEA,0x00,0x00,}}, {0x55DF,2,{0xE0,0xB5,0x00,0x00,}}, {0x55E0,2,{0x86,0xEB,0x00,0x00,}}, {0x55E1,2,{0xCE,0xCB,0x00,0x00,}}, {0x55E2,2,{0x86,0xEC,0x00,0x00,}}, {0x55E3,2,{0xCB,0xC3,0x00,0x00,}}, {0x55E4,2,{0xE0,0xCD,0x00,0x00,}}, {0x55E5,2,{0xE0,0xC6,0x00,0x00,}}, {0x55E6,2,{0xE0,0xC2,0x00,0x00,}}, {0x55E7,2,{0x86,0xED,0x00,0x00,}}, {0x55E8,2,{0xE0,0xCB,0x00,0x00,}}, {0x55E9,2,{0x86,0xEE,0x00,0x00,}}, {0x55EA,2,{0xE0,0xBA,0x00,0x00,}}, {0x55EB,2,{0xE0,0xBF,0x00,0x00,}}, {0x55EC,2,{0xE0,0xC0,0x00,0x00,}}, {0x55ED,2,{0x86,0xEF,0x00,0x00,}}, {0x55EE,2,{0x86,0xF0,0x00,0x00,}}, {0x55EF,2,{0xE0,0xC5,0x00,0x00,}}, {0x55F0,2,{0x86,0xF1,0x00,0x00,}}, {0x55F1,2,{0x86,0xF2,0x00,0x00,}}, {0x55F2,2,{0xE0,0xC7,0x00,0x00,}}, {0x55F3,2,{0xE0,0xC8,0x00,0x00,}}, {0x55F4,2,{0x86,0xF3,0x00,0x00,}}, {0x55F5,2,{0xE0,0xCC,0x00,0x00,}}, {0x55F6,2,{0x86,0xF4,0x00,0x00,}}, {0x55F7,2,{0xE0,0xBB,0x00,0x00,}}, {0x55F8,2,{0x86,0xF5,0x00,0x00,}}, {0x55F9,2,{0x86,0xF6,0x00,0x00,}}, {0x55FA,2,{0x86,0xF7,0x00,0x00,}}, {0x55FB,2,{0x86,0xF8,0x00,0x00,}}, {0x55FC,2,{0x86,0xF9,0x00,0x00,}}, {0x55FD,2,{0xCB,0xD4,0x00,0x00,}}, {0x55FE,2,{0xE0,0xD5,0x00,0x00,}}, {0x55FF,2,{0x86,0xFA,0x00,0x00,}}, {0x5600,2,{0xE0,0xD6,0x00,0x00,}}, {0x5601,2,{0xE0,0xD2,0x00,0x00,}}, {0x5602,2,{0x86,0xFB,0x00,0x00,}}, {0x5603,2,{0x86,0xFC,0x00,0x00,}}, {0x5604,2,{0x86,0xFD,0x00,0x00,}}, {0x5605,2,{0x86,0xFE,0x00,0x00,}}, {0x5606,2,{0x87,0x40,0x00,0x00,}}, {0x5607,2,{0x87,0x41,0x00,0x00,}}, {0x5608,2,{0xE0,0xD0,0x00,0x00,}}, {0x5609,2,{0xBC,0xCE,0x00,0x00,}}, {0x560A,2,{0x87,0x42,0x00,0x00,}}, {0x560B,2,{0x87,0x43,0x00,0x00,}}, {0x560C,2,{0xE0,0xD1,0x00,0x00,}}, {0x560D,2,{0x87,0x44,0x00,0x00,}}, {0x560E,2,{0xB8,0xC2,0x00,0x00,}}, {0x560F,2,{0xD8,0xC5,0x00,0x00,}}, {0x5610,2,{0x87,0x45,0x00,0x00,}}, {0x5611,2,{0x87,0x46,0x00,0x00,}}, {0x5612,2,{0x87,0x47,0x00,0x00,}}, {0x5613,2,{0x87,0x48,0x00,0x00,}}, {0x5614,2,{0x87,0x49,0x00,0x00,}}, {0x5615,2,{0x87,0x4A,0x00,0x00,}}, {0x5616,2,{0x87,0x4B,0x00,0x00,}}, {0x5617,2,{0x87,0x4C,0x00,0x00,}}, {0x5618,2,{0xD0,0xEA,0x00,0x00,}}, {0x5619,2,{0x87,0x4D,0x00,0x00,}}, {0x561A,2,{0x87,0x4E,0x00,0x00,}}, {0x561B,2,{0xC2,0xEF,0x00,0x00,}}, {0x561C,2,{0x87,0x4F,0x00,0x00,}}, {0x561D,2,{0x87,0x50,0x00,0x00,}}, {0x561E,2,{0xE0,0xCF,0x00,0x00,}}, {0x561F,2,{0xE0,0xBD,0x00,0x00,}}, {0x5620,2,{0x87,0x51,0x00,0x00,}}, {0x5621,2,{0x87,0x52,0x00,0x00,}}, {0x5622,2,{0x87,0x53,0x00,0x00,}}, {0x5623,2,{0xE0,0xD4,0x00,0x00,}}, {0x5624,2,{0xE0,0xD3,0x00,0x00,}}, {0x5625,2,{0x87,0x54,0x00,0x00,}}, {0x5626,2,{0x87,0x55,0x00,0x00,}}, {0x5627,2,{0xE0,0xD7,0x00,0x00,}}, {0x5628,2,{0x87,0x56,0x00,0x00,}}, {0x5629,2,{0x87,0x57,0x00,0x00,}}, {0x562A,2,{0x87,0x58,0x00,0x00,}}, {0x562B,2,{0x87,0x59,0x00,0x00,}}, {0x562C,2,{0xE0,0xDC,0x00,0x00,}}, {0x562D,2,{0xE0,0xD8,0x00,0x00,}}, {0x562E,2,{0x87,0x5A,0x00,0x00,}}, {0x562F,2,{0x87,0x5B,0x00,0x00,}}, {0x5630,2,{0x87,0x5C,0x00,0x00,}}, {0x5631,2,{0xD6,0xF6,0x00,0x00,}}, {0x5632,2,{0xB3,0xB0,0x00,0x00,}}, {0x5633,2,{0x87,0x5D,0x00,0x00,}}, {0x5634,2,{0xD7,0xEC,0x00,0x00,}}, {0x5635,2,{0x87,0x5E,0x00,0x00,}}, {0x5636,2,{0xCB,0xBB,0x00,0x00,}}, {0x5637,2,{0x87,0x5F,0x00,0x00,}}, {0x5638,2,{0x87,0x60,0x00,0x00,}}, {0x5639,2,{0xE0,0xDA,0x00,0x00,}}, {0x563A,2,{0x87,0x61,0x00,0x00,}}, {0x563B,2,{0xCE,0xFB,0x00,0x00,}}, {0x563C,2,{0x87,0x62,0x00,0x00,}}, {0x563D,2,{0x87,0x63,0x00,0x00,}}, {0x563E,2,{0x87,0x64,0x00,0x00,}}, {0x563F,2,{0xBA,0xD9,0x00,0x00,}}, {0x5640,2,{0x87,0x65,0x00,0x00,}}, {0x5641,2,{0x87,0x66,0x00,0x00,}}, {0x5642,2,{0x87,0x67,0x00,0x00,}}, {0x5643,2,{0x87,0x68,0x00,0x00,}}, {0x5644,2,{0x87,0x69,0x00,0x00,}}, {0x5645,2,{0x87,0x6A,0x00,0x00,}}, {0x5646,2,{0x87,0x6B,0x00,0x00,}}, {0x5647,2,{0x87,0x6C,0x00,0x00,}}, {0x5648,2,{0x87,0x6D,0x00,0x00,}}, {0x5649,2,{0x87,0x6E,0x00,0x00,}}, {0x564A,2,{0x87,0x6F,0x00,0x00,}}, {0x564B,2,{0x87,0x70,0x00,0x00,}}, {0x564C,2,{0xE0,0xE1,0x00,0x00,}}, {0x564D,2,{0xE0,0xDD,0x00,0x00,}}, {0x564E,2,{0xD2,0xAD,0x00,0x00,}}, {0x564F,2,{0x87,0x71,0x00,0x00,}}, {0x5650,2,{0x87,0x72,0x00,0x00,}}, {0x5651,2,{0x87,0x73,0x00,0x00,}}, {0x5652,2,{0x87,0x74,0x00,0x00,}}, {0x5653,2,{0x87,0x75,0x00,0x00,}}, {0x5654,2,{0xE0,0xE2,0x00,0x00,}}, {0x5655,2,{0x87,0x76,0x00,0x00,}}, {0x5656,2,{0x87,0x77,0x00,0x00,}}, {0x5657,2,{0xE0,0xDB,0x00,0x00,}}, {0x5658,2,{0xE0,0xD9,0x00,0x00,}}, {0x5659,2,{0xE0,0xDF,0x00,0x00,}}, {0x565A,2,{0x87,0x78,0x00,0x00,}}, {0x565B,2,{0x87,0x79,0x00,0x00,}}, {0x565C,2,{0xE0,0xE0,0x00,0x00,}}, {0x565D,2,{0x87,0x7A,0x00,0x00,}}, {0x565E,2,{0x87,0x7B,0x00,0x00,}}, {0x565F,2,{0x87,0x7C,0x00,0x00,}}, {0x5660,2,{0x87,0x7D,0x00,0x00,}}, {0x5661,2,{0x87,0x7E,0x00,0x00,}}, {0x5662,2,{0xE0,0xDE,0x00,0x00,}}, {0x5663,2,{0x87,0x80,0x00,0x00,}}, {0x5664,2,{0xE0,0xE4,0x00,0x00,}}, {0x5665,2,{0x87,0x81,0x00,0x00,}}, {0x5666,2,{0x87,0x82,0x00,0x00,}}, {0x5667,2,{0x87,0x83,0x00,0x00,}}, {0x5668,2,{0xC6,0xF7,0x00,0x00,}}, {0x5669,2,{0xD8,0xAC,0x00,0x00,}}, {0x566A,2,{0xD4,0xEB,0x00,0x00,}}, {0x566B,2,{0xE0,0xE6,0x00,0x00,}}, {0x566C,2,{0xCA,0xC9,0x00,0x00,}}, {0x566D,2,{0x87,0x84,0x00,0x00,}}, {0x566E,2,{0x87,0x85,0x00,0x00,}}, {0x566F,2,{0x87,0x86,0x00,0x00,}}, {0x5670,2,{0x87,0x87,0x00,0x00,}}, {0x5671,2,{0xE0,0xE5,0x00,0x00,}}, {0x5672,2,{0x87,0x88,0x00,0x00,}}, {0x5673,2,{0x87,0x89,0x00,0x00,}}, {0x5674,2,{0x87,0x8A,0x00,0x00,}}, {0x5675,2,{0x87,0x8B,0x00,0x00,}}, {0x5676,2,{0xB8,0xC1,0x00,0x00,}}, {0x5677,2,{0x87,0x8C,0x00,0x00,}}, {0x5678,2,{0x87,0x8D,0x00,0x00,}}, {0x5679,2,{0x87,0x8E,0x00,0x00,}}, {0x567A,2,{0x87,0x8F,0x00,0x00,}}, {0x567B,2,{0xE0,0xE7,0x00,0x00,}}, {0x567C,2,{0xE0,0xE8,0x00,0x00,}}, {0x567D,2,{0x87,0x90,0x00,0x00,}}, {0x567E,2,{0x87,0x91,0x00,0x00,}}, {0x567F,2,{0x87,0x92,0x00,0x00,}}, {0x5680,2,{0x87,0x93,0x00,0x00,}}, {0x5681,2,{0x87,0x94,0x00,0x00,}}, {0x5682,2,{0x87,0x95,0x00,0x00,}}, {0x5683,2,{0x87,0x96,0x00,0x00,}}, {0x5684,2,{0x87,0x97,0x00,0x00,}}, {0x5685,2,{0xE0,0xE9,0x00,0x00,}}, {0x5686,2,{0xE0,0xE3,0x00,0x00,}}, {0x5687,2,{0x87,0x98,0x00,0x00,}}, {0x5688,2,{0x87,0x99,0x00,0x00,}}, {0x5689,2,{0x87,0x9A,0x00,0x00,}}, {0x568A,2,{0x87,0x9B,0x00,0x00,}}, {0x568B,2,{0x87,0x9C,0x00,0x00,}}, {0x568C,2,{0x87,0x9D,0x00,0x00,}}, {0x568D,2,{0x87,0x9E,0x00,0x00,}}, {0x568E,2,{0xBA,0xBF,0x00,0x00,}}, {0x568F,2,{0xCC,0xE7,0x00,0x00,}}, {0x5690,2,{0x87,0x9F,0x00,0x00,}}, {0x5691,2,{0x87,0xA0,0x00,0x00,}}, {0x5692,2,{0x87,0xA1,0x00,0x00,}}, {0x5693,2,{0xE0,0xEA,0x00,0x00,}}, {0x5694,2,{0x87,0xA2,0x00,0x00,}}, {0x5695,2,{0x87,0xA3,0x00,0x00,}}, {0x5696,2,{0x87,0xA4,0x00,0x00,}}, {0x5697,2,{0x87,0xA5,0x00,0x00,}}, {0x5698,2,{0x87,0xA6,0x00,0x00,}}, {0x5699,2,{0x87,0xA7,0x00,0x00,}}, {0x569A,2,{0x87,0xA8,0x00,0x00,}}, {0x569B,2,{0x87,0xA9,0x00,0x00,}}, {0x569C,2,{0x87,0xAA,0x00,0x00,}}, {0x569D,2,{0x87,0xAB,0x00,0x00,}}, {0x569E,2,{0x87,0xAC,0x00,0x00,}}, {0x569F,2,{0x87,0xAD,0x00,0x00,}}, {0x56A0,2,{0x87,0xAE,0x00,0x00,}}, {0x56A1,2,{0x87,0xAF,0x00,0x00,}}, {0x56A2,2,{0x87,0xB0,0x00,0x00,}}, {0x56A3,2,{0xCF,0xF9,0x00,0x00,}}, {0x56A4,2,{0x87,0xB1,0x00,0x00,}}, {0x56A5,2,{0x87,0xB2,0x00,0x00,}}, {0x56A6,2,{0x87,0xB3,0x00,0x00,}}, {0x56A7,2,{0x87,0xB4,0x00,0x00,}}, {0x56A8,2,{0x87,0xB5,0x00,0x00,}}, {0x56A9,2,{0x87,0xB6,0x00,0x00,}}, {0x56AA,2,{0x87,0xB7,0x00,0x00,}}, {0x56AB,2,{0x87,0xB8,0x00,0x00,}}, {0x56AC,2,{0x87,0xB9,0x00,0x00,}}, {0x56AD,2,{0x87,0xBA,0x00,0x00,}}, {0x56AE,2,{0x87,0xBB,0x00,0x00,}}, {0x56AF,2,{0xE0,0xEB,0x00,0x00,}}, {0x56B0,2,{0x87,0xBC,0x00,0x00,}}, {0x56B1,2,{0x87,0xBD,0x00,0x00,}}, {0x56B2,2,{0x87,0xBE,0x00,0x00,}}, {0x56B3,2,{0x87,0xBF,0x00,0x00,}}, {0x56B4,2,{0x87,0xC0,0x00,0x00,}}, {0x56B5,2,{0x87,0xC1,0x00,0x00,}}, {0x56B6,2,{0x87,0xC2,0x00,0x00,}}, {0x56B7,2,{0xC8,0xC2,0x00,0x00,}}, {0x56B8,2,{0x87,0xC3,0x00,0x00,}}, {0x56B9,2,{0x87,0xC4,0x00,0x00,}}, {0x56BA,2,{0x87,0xC5,0x00,0x00,}}, {0x56BB,2,{0x87,0xC6,0x00,0x00,}}, {0x56BC,2,{0xBD,0xC0,0x00,0x00,}}, {0x56BD,2,{0x87,0xC7,0x00,0x00,}}, {0x56BE,2,{0x87,0xC8,0x00,0x00,}}, {0x56BF,2,{0x87,0xC9,0x00,0x00,}}, {0x56C0,2,{0x87,0xCA,0x00,0x00,}}, {0x56C1,2,{0x87,0xCB,0x00,0x00,}}, {0x56C2,2,{0x87,0xCC,0x00,0x00,}}, {0x56C3,2,{0x87,0xCD,0x00,0x00,}}, {0x56C4,2,{0x87,0xCE,0x00,0x00,}}, {0x56C5,2,{0x87,0xCF,0x00,0x00,}}, {0x56C6,2,{0x87,0xD0,0x00,0x00,}}, {0x56C7,2,{0x87,0xD1,0x00,0x00,}}, {0x56C8,2,{0x87,0xD2,0x00,0x00,}}, {0x56C9,2,{0x87,0xD3,0x00,0x00,}}, {0x56CA,2,{0xC4,0xD2,0x00,0x00,}}, {0x56CB,2,{0x87,0xD4,0x00,0x00,}}, {0x56CC,2,{0x87,0xD5,0x00,0x00,}}, {0x56CD,2,{0x87,0xD6,0x00,0x00,}}, {0x56CE,2,{0x87,0xD7,0x00,0x00,}}, {0x56CF,2,{0x87,0xD8,0x00,0x00,}}, {0x56D0,2,{0x87,0xD9,0x00,0x00,}}, {0x56D1,2,{0x87,0xDA,0x00,0x00,}}, {0x56D2,2,{0x87,0xDB,0x00,0x00,}}, {0x56D3,2,{0x87,0xDC,0x00,0x00,}}, {0x56D4,2,{0xE0,0xEC,0x00,0x00,}}, {0x56D5,2,{0x87,0xDD,0x00,0x00,}}, {0x56D6,2,{0x87,0xDE,0x00,0x00,}}, {0x56D7,2,{0xE0,0xED,0x00,0x00,}}, {0x56D8,2,{0x87,0xDF,0x00,0x00,}}, {0x56D9,2,{0x87,0xE0,0x00,0x00,}}, {0x56DA,2,{0xC7,0xF4,0x00,0x00,}}, {0x56DB,2,{0xCB,0xC4,0x00,0x00,}}, {0x56DC,2,{0x87,0xE1,0x00,0x00,}}, {0x56DD,2,{0xE0,0xEE,0x00,0x00,}}, {0x56DE,2,{0xBB,0xD8,0x00,0x00,}}, {0x56DF,2,{0xD8,0xB6,0x00,0x00,}}, {0x56E0,2,{0xD2,0xF2,0x00,0x00,}}, {0x56E1,2,{0xE0,0xEF,0x00,0x00,}}, {0x56E2,2,{0xCD,0xC5,0x00,0x00,}}, {0x56E3,2,{0x87,0xE2,0x00,0x00,}}, {0x56E4,2,{0xB6,0xDA,0x00,0x00,}}, {0x56E5,2,{0x87,0xE3,0x00,0x00,}}, {0x56E6,2,{0x87,0xE4,0x00,0x00,}}, {0x56E7,2,{0x87,0xE5,0x00,0x00,}}, {0x56E8,2,{0x87,0xE6,0x00,0x00,}}, {0x56E9,2,{0x87,0xE7,0x00,0x00,}}, {0x56EA,2,{0x87,0xE8,0x00,0x00,}}, {0x56EB,2,{0xE0,0xF1,0x00,0x00,}}, {0x56EC,2,{0x87,0xE9,0x00,0x00,}}, {0x56ED,2,{0xD4,0xB0,0x00,0x00,}}, {0x56EE,2,{0x87,0xEA,0x00,0x00,}}, {0x56EF,2,{0x87,0xEB,0x00,0x00,}}, {0x56F0,2,{0xC0,0xA7,0x00,0x00,}}, {0x56F1,2,{0xB4,0xD1,0x00,0x00,}}, {0x56F2,2,{0x87,0xEC,0x00,0x00,}}, {0x56F3,2,{0x87,0xED,0x00,0x00,}}, {0x56F4,2,{0xCE,0xA7,0x00,0x00,}}, {0x56F5,2,{0xE0,0xF0,0x00,0x00,}}, {0x56F6,2,{0x87,0xEE,0x00,0x00,}}, {0x56F7,2,{0x87,0xEF,0x00,0x00,}}, {0x56F8,2,{0x87,0xF0,0x00,0x00,}}, {0x56F9,2,{0xE0,0xF2,0x00,0x00,}}, {0x56FA,2,{0xB9,0xCC,0x00,0x00,}}, {0x56FB,2,{0x87,0xF1,0x00,0x00,}}, {0x56FC,2,{0x87,0xF2,0x00,0x00,}}, {0x56FD,2,{0xB9,0xFA,0x00,0x00,}}, {0x56FE,2,{0xCD,0xBC,0x00,0x00,}}, {0x56FF,2,{0xE0,0xF3,0x00,0x00,}}, {0x5700,2,{0x87,0xF3,0x00,0x00,}}, {0x5701,2,{0x87,0xF4,0x00,0x00,}}, {0x5702,2,{0x87,0xF5,0x00,0x00,}}, {0x5703,2,{0xC6,0xD4,0x00,0x00,}}, {0x5704,2,{0xE0,0xF4,0x00,0x00,}}, {0x5705,2,{0x87,0xF6,0x00,0x00,}}, {0x5706,2,{0xD4,0xB2,0x00,0x00,}}, {0x5707,2,{0x87,0xF7,0x00,0x00,}}, {0x5708,2,{0xC8,0xA6,0x00,0x00,}}, {0x5709,2,{0xE0,0xF6,0x00,0x00,}}, {0x570A,2,{0xE0,0xF5,0x00,0x00,}}, {0x570B,2,{0x87,0xF8,0x00,0x00,}}, {0x570C,2,{0x87,0xF9,0x00,0x00,}}, {0x570D,2,{0x87,0xFA,0x00,0x00,}}, {0x570E,2,{0x87,0xFB,0x00,0x00,}}, {0x570F,2,{0x87,0xFC,0x00,0x00,}}, {0x5710,2,{0x87,0xFD,0x00,0x00,}}, {0x5711,2,{0x87,0xFE,0x00,0x00,}}, {0x5712,2,{0x88,0x40,0x00,0x00,}}, {0x5713,2,{0x88,0x41,0x00,0x00,}}, {0x5714,2,{0x88,0x42,0x00,0x00,}}, {0x5715,2,{0x88,0x43,0x00,0x00,}}, {0x5716,2,{0x88,0x44,0x00,0x00,}}, {0x5717,2,{0x88,0x45,0x00,0x00,}}, {0x5718,2,{0x88,0x46,0x00,0x00,}}, {0x5719,2,{0x88,0x47,0x00,0x00,}}, {0x571A,2,{0x88,0x48,0x00,0x00,}}, {0x571B,2,{0x88,0x49,0x00,0x00,}}, {0x571C,2,{0xE0,0xF7,0x00,0x00,}}, {0x571D,2,{0x88,0x4A,0x00,0x00,}}, {0x571E,2,{0x88,0x4B,0x00,0x00,}}, {0x571F,2,{0xCD,0xC1,0x00,0x00,}}, {0x5720,2,{0x88,0x4C,0x00,0x00,}}, {0x5721,2,{0x88,0x4D,0x00,0x00,}}, {0x5722,2,{0x88,0x4E,0x00,0x00,}}, {0x5723,2,{0xCA,0xA5,0x00,0x00,}}, {0x5724,2,{0x88,0x4F,0x00,0x00,}}, {0x5725,2,{0x88,0x50,0x00,0x00,}}, {0x5726,2,{0x88,0x51,0x00,0x00,}}, {0x5727,2,{0x88,0x52,0x00,0x00,}}, {0x5728,2,{0xD4,0xDA,0x00,0x00,}}, {0x5729,2,{0xDB,0xD7,0x00,0x00,}}, {0x572A,2,{0xDB,0xD9,0x00,0x00,}}, {0x572B,2,{0x88,0x53,0x00,0x00,}}, {0x572C,2,{0xDB,0xD8,0x00,0x00,}}, {0x572D,2,{0xB9,0xE7,0x00,0x00,}}, {0x572E,2,{0xDB,0xDC,0x00,0x00,}}, {0x572F,2,{0xDB,0xDD,0x00,0x00,}}, {0x5730,2,{0xB5,0xD8,0x00,0x00,}}, {0x5731,2,{0x88,0x54,0x00,0x00,}}, {0x5732,2,{0x88,0x55,0x00,0x00,}}, {0x5733,2,{0xDB,0xDA,0x00,0x00,}}, {0x5734,2,{0x88,0x56,0x00,0x00,}}, {0x5735,2,{0x88,0x57,0x00,0x00,}}, {0x5736,2,{0x88,0x58,0x00,0x00,}}, {0x5737,2,{0x88,0x59,0x00,0x00,}}, {0x5738,2,{0x88,0x5A,0x00,0x00,}}, {0x5739,2,{0xDB,0xDB,0x00,0x00,}}, {0x573A,2,{0xB3,0xA1,0x00,0x00,}}, {0x573B,2,{0xDB,0xDF,0x00,0x00,}}, {0x573C,2,{0x88,0x5B,0x00,0x00,}}, {0x573D,2,{0x88,0x5C,0x00,0x00,}}, {0x573E,2,{0xBB,0xF8,0x00,0x00,}}, {0x573F,2,{0x88,0x5D,0x00,0x00,}}, {0x5740,2,{0xD6,0xB7,0x00,0x00,}}, {0x5741,2,{0x88,0x5E,0x00,0x00,}}, {0x5742,2,{0xDB,0xE0,0x00,0x00,}}, {0x5743,2,{0x88,0x5F,0x00,0x00,}}, {0x5744,2,{0x88,0x60,0x00,0x00,}}, {0x5745,2,{0x88,0x61,0x00,0x00,}}, {0x5746,2,{0x88,0x62,0x00,0x00,}}, {0x5747,2,{0xBE,0xF9,0x00,0x00,}}, {0x5748,2,{0x88,0x63,0x00,0x00,}}, {0x5749,2,{0x88,0x64,0x00,0x00,}}, {0x574A,2,{0xB7,0xBB,0x00,0x00,}}, {0x574B,2,{0x88,0x65,0x00,0x00,}}, {0x574C,2,{0xDB,0xD0,0x00,0x00,}}, {0x574D,2,{0xCC,0xAE,0x00,0x00,}}, {0x574E,2,{0xBF,0xB2,0x00,0x00,}}, {0x574F,2,{0xBB,0xB5,0x00,0x00,}}, {0x5750,2,{0xD7,0xF8,0x00,0x00,}}, {0x5751,2,{0xBF,0xD3,0x00,0x00,}}, {0x5752,2,{0x88,0x66,0x00,0x00,}}, {0x5753,2,{0x88,0x67,0x00,0x00,}}, {0x5754,2,{0x88,0x68,0x00,0x00,}}, {0x5755,2,{0x88,0x69,0x00,0x00,}}, {0x5756,2,{0x88,0x6A,0x00,0x00,}}, {0x5757,2,{0xBF,0xE9,0x00,0x00,}}, {0x5758,2,{0x88,0x6B,0x00,0x00,}}, {0x5759,2,{0x88,0x6C,0x00,0x00,}}, {0x575A,2,{0xBC,0xE1,0x00,0x00,}}, {0x575B,2,{0xCC,0xB3,0x00,0x00,}}, {0x575C,2,{0xDB,0xDE,0x00,0x00,}}, {0x575D,2,{0xB0,0xD3,0x00,0x00,}}, {0x575E,2,{0xCE,0xEB,0x00,0x00,}}, {0x575F,2,{0xB7,0xD8,0x00,0x00,}}, {0x5760,2,{0xD7,0xB9,0x00,0x00,}}, {0x5761,2,{0xC6,0xC2,0x00,0x00,}}, {0x5762,2,{0x88,0x6D,0x00,0x00,}}, {0x5763,2,{0x88,0x6E,0x00,0x00,}}, {0x5764,2,{0xC0,0xA4,0x00,0x00,}}, {0x5765,2,{0x88,0x6F,0x00,0x00,}}, {0x5766,2,{0xCC,0xB9,0x00,0x00,}}, {0x5767,2,{0x88,0x70,0x00,0x00,}}, {0x5768,2,{0xDB,0xE7,0x00,0x00,}}, {0x5769,2,{0xDB,0xE1,0x00,0x00,}}, {0x576A,2,{0xC6,0xBA,0x00,0x00,}}, {0x576B,2,{0xDB,0xE3,0x00,0x00,}}, {0x576C,2,{0x88,0x71,0x00,0x00,}}, {0x576D,2,{0xDB,0xE8,0x00,0x00,}}, {0x576E,2,{0x88,0x72,0x00,0x00,}}, {0x576F,2,{0xC5,0xF7,0x00,0x00,}}, {0x5770,2,{0x88,0x73,0x00,0x00,}}, {0x5771,2,{0x88,0x74,0x00,0x00,}}, {0x5772,2,{0x88,0x75,0x00,0x00,}}, {0x5773,2,{0xDB,0xEA,0x00,0x00,}}, {0x5774,2,{0x88,0x76,0x00,0x00,}}, {0x5775,2,{0x88,0x77,0x00,0x00,}}, {0x5776,2,{0xDB,0xE9,0x00,0x00,}}, {0x5777,2,{0xBF,0xC0,0x00,0x00,}}, {0x5778,2,{0x88,0x78,0x00,0x00,}}, {0x5779,2,{0x88,0x79,0x00,0x00,}}, {0x577A,2,{0x88,0x7A,0x00,0x00,}}, {0x577B,2,{0xDB,0xE6,0x00,0x00,}}, {0x577C,2,{0xDB,0xE5,0x00,0x00,}}, {0x577D,2,{0x88,0x7B,0x00,0x00,}}, {0x577E,2,{0x88,0x7C,0x00,0x00,}}, {0x577F,2,{0x88,0x7D,0x00,0x00,}}, {0x5780,2,{0x88,0x7E,0x00,0x00,}}, {0x5781,2,{0x88,0x80,0x00,0x00,}}, {0x5782,2,{0xB4,0xB9,0x00,0x00,}}, {0x5783,2,{0xC0,0xAC,0x00,0x00,}}, {0x5784,2,{0xC2,0xA2,0x00,0x00,}}, {0x5785,2,{0xDB,0xE2,0x00,0x00,}}, {0x5786,2,{0xDB,0xE4,0x00,0x00,}}, {0x5787,2,{0x88,0x81,0x00,0x00,}}, {0x5788,2,{0x88,0x82,0x00,0x00,}}, {0x5789,2,{0x88,0x83,0x00,0x00,}}, {0x578A,2,{0x88,0x84,0x00,0x00,}}, {0x578B,2,{0xD0,0xCD,0x00,0x00,}}, {0x578C,2,{0xDB,0xED,0x00,0x00,}}, {0x578D,2,{0x88,0x85,0x00,0x00,}}, {0x578E,2,{0x88,0x86,0x00,0x00,}}, {0x578F,2,{0x88,0x87,0x00,0x00,}}, {0x5790,2,{0x88,0x88,0x00,0x00,}}, {0x5791,2,{0x88,0x89,0x00,0x00,}}, {0x5792,2,{0xC0,0xDD,0x00,0x00,}}, {0x5793,2,{0xDB,0xF2,0x00,0x00,}}, {0x5794,2,{0x88,0x8A,0x00,0x00,}}, {0x5795,2,{0x88,0x8B,0x00,0x00,}}, {0x5796,2,{0x88,0x8C,0x00,0x00,}}, {0x5797,2,{0x88,0x8D,0x00,0x00,}}, {0x5798,2,{0x88,0x8E,0x00,0x00,}}, {0x5799,2,{0x88,0x8F,0x00,0x00,}}, {0x579A,2,{0x88,0x90,0x00,0x00,}}, {0x579B,2,{0xB6,0xE2,0x00,0x00,}}, {0x579C,2,{0x88,0x91,0x00,0x00,}}, {0x579D,2,{0x88,0x92,0x00,0x00,}}, {0x579E,2,{0x88,0x93,0x00,0x00,}}, {0x579F,2,{0x88,0x94,0x00,0x00,}}, {0x57A0,2,{0xDB,0xF3,0x00,0x00,}}, {0x57A1,2,{0xDB,0xD2,0x00,0x00,}}, {0x57A2,2,{0xB9,0xB8,0x00,0x00,}}, {0x57A3,2,{0xD4,0xAB,0x00,0x00,}}, {0x57A4,2,{0xDB,0xEC,0x00,0x00,}}, {0x57A5,2,{0x88,0x95,0x00,0x00,}}, {0x57A6,2,{0xBF,0xD1,0x00,0x00,}}, {0x57A7,2,{0xDB,0xF0,0x00,0x00,}}, {0x57A8,2,{0x88,0x96,0x00,0x00,}}, {0x57A9,2,{0xDB,0xD1,0x00,0x00,}}, {0x57AA,2,{0x88,0x97,0x00,0x00,}}, {0x57AB,2,{0xB5,0xE6,0x00,0x00,}}, {0x57AC,2,{0x88,0x98,0x00,0x00,}}, {0x57AD,2,{0xDB,0xEB,0x00,0x00,}}, {0x57AE,2,{0xBF,0xE5,0x00,0x00,}}, {0x57AF,2,{0x88,0x99,0x00,0x00,}}, {0x57B0,2,{0x88,0x9A,0x00,0x00,}}, {0x57B1,2,{0x88,0x9B,0x00,0x00,}}, {0x57B2,2,{0xDB,0xEE,0x00,0x00,}}, {0x57B3,2,{0x88,0x9C,0x00,0x00,}}, {0x57B4,2,{0xDB,0xF1,0x00,0x00,}}, {0x57B5,2,{0x88,0x9D,0x00,0x00,}}, {0x57B6,2,{0x88,0x9E,0x00,0x00,}}, {0x57B7,2,{0x88,0x9F,0x00,0x00,}}, {0x57B8,2,{0xDB,0xF9,0x00,0x00,}}, {0x57B9,2,{0x88,0xA0,0x00,0x00,}}, {0x57BA,2,{0x88,0xA1,0x00,0x00,}}, {0x57BB,2,{0x88,0xA2,0x00,0x00,}}, {0x57BC,2,{0x88,0xA3,0x00,0x00,}}, {0x57BD,2,{0x88,0xA4,0x00,0x00,}}, {0x57BE,2,{0x88,0xA5,0x00,0x00,}}, {0x57BF,2,{0x88,0xA6,0x00,0x00,}}, {0x57C0,2,{0x88,0xA7,0x00,0x00,}}, {0x57C1,2,{0x88,0xA8,0x00,0x00,}}, {0x57C2,2,{0xB9,0xA1,0x00,0x00,}}, {0x57C3,2,{0xB0,0xA3,0x00,0x00,}}, {0x57C4,2,{0x88,0xA9,0x00,0x00,}}, {0x57C5,2,{0x88,0xAA,0x00,0x00,}}, {0x57C6,2,{0x88,0xAB,0x00,0x00,}}, {0x57C7,2,{0x88,0xAC,0x00,0x00,}}, {0x57C8,2,{0x88,0xAD,0x00,0x00,}}, {0x57C9,2,{0x88,0xAE,0x00,0x00,}}, {0x57CA,2,{0x88,0xAF,0x00,0x00,}}, {0x57CB,2,{0xC2,0xF1,0x00,0x00,}}, {0x57CC,2,{0x88,0xB0,0x00,0x00,}}, {0x57CD,2,{0x88,0xB1,0x00,0x00,}}, {0x57CE,2,{0xB3,0xC7,0x00,0x00,}}, {0x57CF,2,{0xDB,0xEF,0x00,0x00,}}, {0x57D0,2,{0x88,0xB2,0x00,0x00,}}, {0x57D1,2,{0x88,0xB3,0x00,0x00,}}, {0x57D2,2,{0xDB,0xF8,0x00,0x00,}}, {0x57D3,2,{0x88,0xB4,0x00,0x00,}}, {0x57D4,2,{0xC6,0xD2,0x00,0x00,}}, {0x57D5,2,{0xDB,0xF4,0x00,0x00,}}, {0x57D6,2,{0x88,0xB5,0x00,0x00,}}, {0x57D7,2,{0x88,0xB6,0x00,0x00,}}, {0x57D8,2,{0xDB,0xF5,0x00,0x00,}}, {0x57D9,2,{0xDB,0xF7,0x00,0x00,}}, {0x57DA,2,{0xDB,0xF6,0x00,0x00,}}, {0x57DB,2,{0x88,0xB7,0x00,0x00,}}, {0x57DC,2,{0x88,0xB8,0x00,0x00,}}, {0x57DD,2,{0xDB,0xFE,0x00,0x00,}}, {0x57DE,2,{0x88,0xB9,0x00,0x00,}}, {0x57DF,2,{0xD3,0xF2,0x00,0x00,}}, {0x57E0,2,{0xB2,0xBA,0x00,0x00,}}, {0x57E1,2,{0x88,0xBA,0x00,0x00,}}, {0x57E2,2,{0x88,0xBB,0x00,0x00,}}, {0x57E3,2,{0x88,0xBC,0x00,0x00,}}, {0x57E4,2,{0xDB,0xFD,0x00,0x00,}}, {0x57E5,2,{0x88,0xBD,0x00,0x00,}}, {0x57E6,2,{0x88,0xBE,0x00,0x00,}}, {0x57E7,2,{0x88,0xBF,0x00,0x00,}}, {0x57E8,2,{0x88,0xC0,0x00,0x00,}}, {0x57E9,2,{0x88,0xC1,0x00,0x00,}}, {0x57EA,2,{0x88,0xC2,0x00,0x00,}}, {0x57EB,2,{0x88,0xC3,0x00,0x00,}}, {0x57EC,2,{0x88,0xC4,0x00,0x00,}}, {0x57ED,2,{0xDC,0xA4,0x00,0x00,}}, {0x57EE,2,{0x88,0xC5,0x00,0x00,}}, {0x57EF,2,{0xDB,0xFB,0x00,0x00,}}, {0x57F0,2,{0x88,0xC6,0x00,0x00,}}, {0x57F1,2,{0x88,0xC7,0x00,0x00,}}, {0x57F2,2,{0x88,0xC8,0x00,0x00,}}, {0x57F3,2,{0x88,0xC9,0x00,0x00,}}, {0x57F4,2,{0xDB,0xFA,0x00,0x00,}}, {0x57F5,2,{0x88,0xCA,0x00,0x00,}}, {0x57F6,2,{0x88,0xCB,0x00,0x00,}}, {0x57F7,2,{0x88,0xCC,0x00,0x00,}}, {0x57F8,2,{0xDB,0xFC,0x00,0x00,}}, {0x57F9,2,{0xC5,0xE0,0x00,0x00,}}, {0x57FA,2,{0xBB,0xF9,0x00,0x00,}}, {0x57FB,2,{0x88,0xCD,0x00,0x00,}}, {0x57FC,2,{0x88,0xCE,0x00,0x00,}}, {0x57FD,2,{0xDC,0xA3,0x00,0x00,}}, {0x57FE,2,{0x88,0xCF,0x00,0x00,}}, {0x57FF,2,{0x88,0xD0,0x00,0x00,}}, {0x5800,2,{0xDC,0xA5,0x00,0x00,}}, {0x5801,2,{0x88,0xD1,0x00,0x00,}}, {0x5802,2,{0xCC,0xC3,0x00,0x00,}}, {0x5803,2,{0x88,0xD2,0x00,0x00,}}, {0x5804,2,{0x88,0xD3,0x00,0x00,}}, {0x5805,2,{0x88,0xD4,0x00,0x00,}}, {0x5806,2,{0xB6,0xD1,0x00,0x00,}}, {0x5807,2,{0xDD,0xC0,0x00,0x00,}}, {0x5808,2,{0x88,0xD5,0x00,0x00,}}, {0x5809,2,{0x88,0xD6,0x00,0x00,}}, {0x580A,2,{0x88,0xD7,0x00,0x00,}}, {0x580B,2,{0xDC,0xA1,0x00,0x00,}}, {0x580C,2,{0x88,0xD8,0x00,0x00,}}, {0x580D,2,{0xDC,0xA2,0x00,0x00,}}, {0x580E,2,{0x88,0xD9,0x00,0x00,}}, {0x580F,2,{0x88,0xDA,0x00,0x00,}}, {0x5810,2,{0x88,0xDB,0x00,0x00,}}, {0x5811,2,{0xC7,0xB5,0x00,0x00,}}, {0x5812,2,{0x88,0xDC,0x00,0x00,}}, {0x5813,2,{0x88,0xDD,0x00,0x00,}}, {0x5814,2,{0x88,0xDE,0x00,0x00,}}, {0x5815,2,{0xB6,0xE9,0x00,0x00,}}, {0x5816,2,{0x88,0xDF,0x00,0x00,}}, {0x5817,2,{0x88,0xE0,0x00,0x00,}}, {0x5818,2,{0x88,0xE1,0x00,0x00,}}, {0x5819,2,{0xDC,0xA7,0x00,0x00,}}, {0x581A,2,{0x88,0xE2,0x00,0x00,}}, {0x581B,2,{0x88,0xE3,0x00,0x00,}}, {0x581C,2,{0x88,0xE4,0x00,0x00,}}, {0x581D,2,{0x88,0xE5,0x00,0x00,}}, {0x581E,2,{0xDC,0xA6,0x00,0x00,}}, {0x581F,2,{0x88,0xE6,0x00,0x00,}}, {0x5820,2,{0xDC,0xA9,0x00,0x00,}}, {0x5821,2,{0xB1,0xA4,0x00,0x00,}}, {0x5822,2,{0x88,0xE7,0x00,0x00,}}, {0x5823,2,{0x88,0xE8,0x00,0x00,}}, {0x5824,2,{0xB5,0xCC,0x00,0x00,}}, {0x5825,2,{0x88,0xE9,0x00,0x00,}}, {0x5826,2,{0x88,0xEA,0x00,0x00,}}, {0x5827,2,{0x88,0xEB,0x00,0x00,}}, {0x5828,2,{0x88,0xEC,0x00,0x00,}}, {0x5829,2,{0x88,0xED,0x00,0x00,}}, {0x582A,2,{0xBF,0xB0,0x00,0x00,}}, {0x582B,2,{0x88,0xEE,0x00,0x00,}}, {0x582C,2,{0x88,0xEF,0x00,0x00,}}, {0x582D,2,{0x88,0xF0,0x00,0x00,}}, {0x582E,2,{0x88,0xF1,0x00,0x00,}}, {0x582F,2,{0x88,0xF2,0x00,0x00,}}, {0x5830,2,{0xD1,0xDF,0x00,0x00,}}, {0x5831,2,{0x88,0xF3,0x00,0x00,}}, {0x5832,2,{0x88,0xF4,0x00,0x00,}}, {0x5833,2,{0x88,0xF5,0x00,0x00,}}, {0x5834,2,{0x88,0xF6,0x00,0x00,}}, {0x5835,2,{0xB6,0xC2,0x00,0x00,}}, {0x5836,2,{0x88,0xF7,0x00,0x00,}}, {0x5837,2,{0x88,0xF8,0x00,0x00,}}, {0x5838,2,{0x88,0xF9,0x00,0x00,}}, {0x5839,2,{0x88,0xFA,0x00,0x00,}}, {0x583A,2,{0x88,0xFB,0x00,0x00,}}, {0x583B,2,{0x88,0xFC,0x00,0x00,}}, {0x583C,2,{0x88,0xFD,0x00,0x00,}}, {0x583D,2,{0x88,0xFE,0x00,0x00,}}, {0x583E,2,{0x89,0x40,0x00,0x00,}}, {0x583F,2,{0x89,0x41,0x00,0x00,}}, {0x5840,2,{0x89,0x42,0x00,0x00,}}, {0x5841,2,{0x89,0x43,0x00,0x00,}}, {0x5842,2,{0x89,0x44,0x00,0x00,}}, {0x5843,2,{0x89,0x45,0x00,0x00,}}, {0x5844,2,{0xDC,0xA8,0x00,0x00,}}, {0x5845,2,{0x89,0x46,0x00,0x00,}}, {0x5846,2,{0x89,0x47,0x00,0x00,}}, {0x5847,2,{0x89,0x48,0x00,0x00,}}, {0x5848,2,{0x89,0x49,0x00,0x00,}}, {0x5849,2,{0x89,0x4A,0x00,0x00,}}, {0x584A,2,{0x89,0x4B,0x00,0x00,}}, {0x584B,2,{0x89,0x4C,0x00,0x00,}}, {0x584C,2,{0xCB,0xFA,0x00,0x00,}}, {0x584D,2,{0xEB,0xF3,0x00,0x00,}}, {0x584E,2,{0x89,0x4D,0x00,0x00,}}, {0x584F,2,{0x89,0x4E,0x00,0x00,}}, {0x5850,2,{0x89,0x4F,0x00,0x00,}}, {0x5851,2,{0xCB,0xDC,0x00,0x00,}}, {0x5852,2,{0x89,0x50,0x00,0x00,}}, {0x5853,2,{0x89,0x51,0x00,0x00,}}, {0x5854,2,{0xCB,0xFE,0x00,0x00,}}, {0x5855,2,{0x89,0x52,0x00,0x00,}}, {0x5856,2,{0x89,0x53,0x00,0x00,}}, {0x5857,2,{0x89,0x54,0x00,0x00,}}, {0x5858,2,{0xCC,0xC1,0x00,0x00,}}, {0x5859,2,{0x89,0x55,0x00,0x00,}}, {0x585A,2,{0x89,0x56,0x00,0x00,}}, {0x585B,2,{0x89,0x57,0x00,0x00,}}, {0x585C,2,{0x89,0x58,0x00,0x00,}}, {0x585D,2,{0x89,0x59,0x00,0x00,}}, {0x585E,2,{0xC8,0xFB,0x00,0x00,}}, {0x585F,2,{0x89,0x5A,0x00,0x00,}}, {0x5860,2,{0x89,0x5B,0x00,0x00,}}, {0x5861,2,{0x89,0x5C,0x00,0x00,}}, {0x5862,2,{0x89,0x5D,0x00,0x00,}}, {0x5863,2,{0x89,0x5E,0x00,0x00,}}, {0x5864,2,{0x89,0x5F,0x00,0x00,}}, {0x5865,2,{0xDC,0xAA,0x00,0x00,}}, {0x5866,2,{0x89,0x60,0x00,0x00,}}, {0x5867,2,{0x89,0x61,0x00,0x00,}}, {0x5868,2,{0x89,0x62,0x00,0x00,}}, {0x5869,2,{0x89,0x63,0x00,0x00,}}, {0x586A,2,{0x89,0x64,0x00,0x00,}}, {0x586B,2,{0xCC,0xEE,0x00,0x00,}}, {0x586C,2,{0xDC,0xAB,0x00,0x00,}}, {0x586D,2,{0x89,0x65,0x00,0x00,}}, {0x586E,2,{0x89,0x66,0x00,0x00,}}, {0x586F,2,{0x89,0x67,0x00,0x00,}}, {0x5870,2,{0x89,0x68,0x00,0x00,}}, {0x5871,2,{0x89,0x69,0x00,0x00,}}, {0x5872,2,{0x89,0x6A,0x00,0x00,}}, {0x5873,2,{0x89,0x6B,0x00,0x00,}}, {0x5874,2,{0x89,0x6C,0x00,0x00,}}, {0x5875,2,{0x89,0x6D,0x00,0x00,}}, {0x5876,2,{0x89,0x6E,0x00,0x00,}}, {0x5877,2,{0x89,0x6F,0x00,0x00,}}, {0x5878,2,{0x89,0x70,0x00,0x00,}}, {0x5879,2,{0x89,0x71,0x00,0x00,}}, {0x587A,2,{0x89,0x72,0x00,0x00,}}, {0x587B,2,{0x89,0x73,0x00,0x00,}}, {0x587C,2,{0x89,0x74,0x00,0x00,}}, {0x587D,2,{0x89,0x75,0x00,0x00,}}, {0x587E,2,{0xDB,0xD3,0x00,0x00,}}, {0x587F,2,{0x89,0x76,0x00,0x00,}}, {0x5880,2,{0xDC,0xAF,0x00,0x00,}}, {0x5881,2,{0xDC,0xAC,0x00,0x00,}}, {0x5882,2,{0x89,0x77,0x00,0x00,}}, {0x5883,2,{0xBE,0xB3,0x00,0x00,}}, {0x5884,2,{0x89,0x78,0x00,0x00,}}, {0x5885,2,{0xCA,0xFB,0x00,0x00,}}, {0x5886,2,{0x89,0x79,0x00,0x00,}}, {0x5887,2,{0x89,0x7A,0x00,0x00,}}, {0x5888,2,{0x89,0x7B,0x00,0x00,}}, {0x5889,2,{0xDC,0xAD,0x00,0x00,}}, {0x588A,2,{0x89,0x7C,0x00,0x00,}}, {0x588B,2,{0x89,0x7D,0x00,0x00,}}, {0x588C,2,{0x89,0x7E,0x00,0x00,}}, {0x588D,2,{0x89,0x80,0x00,0x00,}}, {0x588E,2,{0x89,0x81,0x00,0x00,}}, {0x588F,2,{0x89,0x82,0x00,0x00,}}, {0x5890,2,{0x89,0x83,0x00,0x00,}}, {0x5891,2,{0x89,0x84,0x00,0x00,}}, {0x5892,2,{0xC9,0xCA,0x00,0x00,}}, {0x5893,2,{0xC4,0xB9,0x00,0x00,}}, {0x5894,2,{0x89,0x85,0x00,0x00,}}, {0x5895,2,{0x89,0x86,0x00,0x00,}}, {0x5896,2,{0x89,0x87,0x00,0x00,}}, {0x5897,2,{0x89,0x88,0x00,0x00,}}, {0x5898,2,{0x89,0x89,0x00,0x00,}}, {0x5899,2,{0xC7,0xBD,0x00,0x00,}}, {0x589A,2,{0xDC,0xAE,0x00,0x00,}}, {0x589B,2,{0x89,0x8A,0x00,0x00,}}, {0x589C,2,{0x89,0x8B,0x00,0x00,}}, {0x589D,2,{0x89,0x8C,0x00,0x00,}}, {0x589E,2,{0xD4,0xF6,0x00,0x00,}}, {0x589F,2,{0xD0,0xE6,0x00,0x00,}}, {0x58A0,2,{0x89,0x8D,0x00,0x00,}}, {0x58A1,2,{0x89,0x8E,0x00,0x00,}}, {0x58A2,2,{0x89,0x8F,0x00,0x00,}}, {0x58A3,2,{0x89,0x90,0x00,0x00,}}, {0x58A4,2,{0x89,0x91,0x00,0x00,}}, {0x58A5,2,{0x89,0x92,0x00,0x00,}}, {0x58A6,2,{0x89,0x93,0x00,0x00,}}, {0x58A7,2,{0x89,0x94,0x00,0x00,}}, {0x58A8,2,{0xC4,0xAB,0x00,0x00,}}, {0x58A9,2,{0xB6,0xD5,0x00,0x00,}}, {0x58AA,2,{0x89,0x95,0x00,0x00,}}, {0x58AB,2,{0x89,0x96,0x00,0x00,}}, {0x58AC,2,{0x89,0x97,0x00,0x00,}}, {0x58AD,2,{0x89,0x98,0x00,0x00,}}, {0x58AE,2,{0x89,0x99,0x00,0x00,}}, {0x58AF,2,{0x89,0x9A,0x00,0x00,}}, {0x58B0,2,{0x89,0x9B,0x00,0x00,}}, {0x58B1,2,{0x89,0x9C,0x00,0x00,}}, {0x58B2,2,{0x89,0x9D,0x00,0x00,}}, {0x58B3,2,{0x89,0x9E,0x00,0x00,}}, {0x58B4,2,{0x89,0x9F,0x00,0x00,}}, {0x58B5,2,{0x89,0xA0,0x00,0x00,}}, {0x58B6,2,{0x89,0xA1,0x00,0x00,}}, {0x58B7,2,{0x89,0xA2,0x00,0x00,}}, {0x58B8,2,{0x89,0xA3,0x00,0x00,}}, {0x58B9,2,{0x89,0xA4,0x00,0x00,}}, {0x58BA,2,{0x89,0xA5,0x00,0x00,}}, {0x58BB,2,{0x89,0xA6,0x00,0x00,}}, {0x58BC,2,{0xDB,0xD4,0x00,0x00,}}, {0x58BD,2,{0x89,0xA7,0x00,0x00,}}, {0x58BE,2,{0x89,0xA8,0x00,0x00,}}, {0x58BF,2,{0x89,0xA9,0x00,0x00,}}, {0x58C0,2,{0x89,0xAA,0x00,0x00,}}, {0x58C1,2,{0xB1,0xDA,0x00,0x00,}}, {0x58C2,2,{0x89,0xAB,0x00,0x00,}}, {0x58C3,2,{0x89,0xAC,0x00,0x00,}}, {0x58C4,2,{0x89,0xAD,0x00,0x00,}}, {0x58C5,2,{0xDB,0xD5,0x00,0x00,}}, {0x58C6,2,{0x89,0xAE,0x00,0x00,}}, {0x58C7,2,{0x89,0xAF,0x00,0x00,}}, {0x58C8,2,{0x89,0xB0,0x00,0x00,}}, {0x58C9,2,{0x89,0xB1,0x00,0x00,}}, {0x58CA,2,{0x89,0xB2,0x00,0x00,}}, {0x58CB,2,{0x89,0xB3,0x00,0x00,}}, {0x58CC,2,{0x89,0xB4,0x00,0x00,}}, {0x58CD,2,{0x89,0xB5,0x00,0x00,}}, {0x58CE,2,{0x89,0xB6,0x00,0x00,}}, {0x58CF,2,{0x89,0xB7,0x00,0x00,}}, {0x58D0,2,{0x89,0xB8,0x00,0x00,}}, {0x58D1,2,{0xDB,0xD6,0x00,0x00,}}, {0x58D2,2,{0x89,0xB9,0x00,0x00,}}, {0x58D3,2,{0x89,0xBA,0x00,0x00,}}, {0x58D4,2,{0x89,0xBB,0x00,0x00,}}, {0x58D5,2,{0xBA,0xBE,0x00,0x00,}}, {0x58D6,2,{0x89,0xBC,0x00,0x00,}}, {0x58D7,2,{0x89,0xBD,0x00,0x00,}}, {0x58D8,2,{0x89,0xBE,0x00,0x00,}}, {0x58D9,2,{0x89,0xBF,0x00,0x00,}}, {0x58DA,2,{0x89,0xC0,0x00,0x00,}}, {0x58DB,2,{0x89,0xC1,0x00,0x00,}}, {0x58DC,2,{0x89,0xC2,0x00,0x00,}}, {0x58DD,2,{0x89,0xC3,0x00,0x00,}}, {0x58DE,2,{0x89,0xC4,0x00,0x00,}}, {0x58DF,2,{0x89,0xC5,0x00,0x00,}}, {0x58E0,2,{0x89,0xC6,0x00,0x00,}}, {0x58E1,2,{0x89,0xC7,0x00,0x00,}}, {0x58E2,2,{0x89,0xC8,0x00,0x00,}}, {0x58E3,2,{0x89,0xC9,0x00,0x00,}}, {0x58E4,2,{0xC8,0xC0,0x00,0x00,}}, {0x58E5,2,{0x89,0xCA,0x00,0x00,}}, {0x58E6,2,{0x89,0xCB,0x00,0x00,}}, {0x58E7,2,{0x89,0xCC,0x00,0x00,}}, {0x58E8,2,{0x89,0xCD,0x00,0x00,}}, {0x58E9,2,{0x89,0xCE,0x00,0x00,}}, {0x58EA,2,{0x89,0xCF,0x00,0x00,}}, {0x58EB,2,{0xCA,0xBF,0x00,0x00,}}, {0x58EC,2,{0xC8,0xC9,0x00,0x00,}}, {0x58ED,2,{0x89,0xD0,0x00,0x00,}}, {0x58EE,2,{0xD7,0xB3,0x00,0x00,}}, {0x58EF,2,{0x89,0xD1,0x00,0x00,}}, {0x58F0,2,{0xC9,0xF9,0x00,0x00,}}, {0x58F1,2,{0x89,0xD2,0x00,0x00,}}, {0x58F2,2,{0x89,0xD3,0x00,0x00,}}, {0x58F3,2,{0xBF,0xC7,0x00,0x00,}}, {0x58F4,2,{0x89,0xD4,0x00,0x00,}}, {0x58F5,2,{0x89,0xD5,0x00,0x00,}}, {0x58F6,2,{0xBA,0xF8,0x00,0x00,}}, {0x58F7,2,{0x89,0xD6,0x00,0x00,}}, {0x58F8,2,{0x89,0xD7,0x00,0x00,}}, {0x58F9,2,{0xD2,0xBC,0x00,0x00,}}, {0x58FA,2,{0x89,0xD8,0x00,0x00,}}, {0x58FB,2,{0x89,0xD9,0x00,0x00,}}, {0x58FC,2,{0x89,0xDA,0x00,0x00,}}, {0x58FD,2,{0x89,0xDB,0x00,0x00,}}, {0x58FE,2,{0x89,0xDC,0x00,0x00,}}, {0x58FF,2,{0x89,0xDD,0x00,0x00,}}, {0x5900,2,{0x89,0xDE,0x00,0x00,}}, {0x5901,2,{0x89,0xDF,0x00,0x00,}}, {0x5902,2,{0xE2,0xBA,0x00,0x00,}}, {0x5903,2,{0x89,0xE0,0x00,0x00,}}, {0x5904,2,{0xB4,0xA6,0x00,0x00,}}, {0x5905,2,{0x89,0xE1,0x00,0x00,}}, {0x5906,2,{0x89,0xE2,0x00,0x00,}}, {0x5907,2,{0xB1,0xB8,0x00,0x00,}}, {0x5908,2,{0x89,0xE3,0x00,0x00,}}, {0x5909,2,{0x89,0xE4,0x00,0x00,}}, {0x590A,2,{0x89,0xE5,0x00,0x00,}}, {0x590B,2,{0x89,0xE6,0x00,0x00,}}, {0x590C,2,{0x89,0xE7,0x00,0x00,}}, {0x590D,2,{0xB8,0xB4,0x00,0x00,}}, {0x590E,2,{0x89,0xE8,0x00,0x00,}}, {0x590F,2,{0xCF,0xC4,0x00,0x00,}}, {0x5910,2,{0x89,0xE9,0x00,0x00,}}, {0x5911,2,{0x89,0xEA,0x00,0x00,}}, {0x5912,2,{0x89,0xEB,0x00,0x00,}}, {0x5913,2,{0x89,0xEC,0x00,0x00,}}, {0x5914,2,{0xD9,0xE7,0x00,0x00,}}, {0x5915,2,{0xCF,0xA6,0x00,0x00,}}, {0x5916,2,{0xCD,0xE2,0x00,0x00,}}, {0x5917,2,{0x89,0xED,0x00,0x00,}}, {0x5918,2,{0x89,0xEE,0x00,0x00,}}, {0x5919,2,{0xD9,0xED,0x00,0x00,}}, {0x591A,2,{0xB6,0xE0,0x00,0x00,}}, {0x591B,2,{0x89,0xEF,0x00,0x00,}}, {0x591C,2,{0xD2,0xB9,0x00,0x00,}}, {0x591D,2,{0x89,0xF0,0x00,0x00,}}, {0x591E,2,{0x89,0xF1,0x00,0x00,}}, {0x591F,2,{0xB9,0xBB,0x00,0x00,}}, {0x5920,2,{0x89,0xF2,0x00,0x00,}}, {0x5921,2,{0x89,0xF3,0x00,0x00,}}, {0x5922,2,{0x89,0xF4,0x00,0x00,}}, {0x5923,2,{0x89,0xF5,0x00,0x00,}}, {0x5924,2,{0xE2,0xB9,0x00,0x00,}}, {0x5925,2,{0xE2,0xB7,0x00,0x00,}}, {0x5926,2,{0x89,0xF6,0x00,0x00,}}, {0x5927,2,{0xB4,0xF3,0x00,0x00,}}, {0x5928,2,{0x89,0xF7,0x00,0x00,}}, {0x5929,2,{0xCC,0xEC,0x00,0x00,}}, {0x592A,2,{0xCC,0xAB,0x00,0x00,}}, {0x592B,2,{0xB7,0xF2,0x00,0x00,}}, {0x592C,2,{0x89,0xF8,0x00,0x00,}}, {0x592D,2,{0xD8,0xB2,0x00,0x00,}}, {0x592E,2,{0xD1,0xEB,0x00,0x00,}}, {0x592F,2,{0xBA,0xBB,0x00,0x00,}}, {0x5930,2,{0x89,0xF9,0x00,0x00,}}, {0x5931,2,{0xCA,0xA7,0x00,0x00,}}, {0x5932,2,{0x89,0xFA,0x00,0x00,}}, {0x5933,2,{0x89,0xFB,0x00,0x00,}}, {0x5934,2,{0xCD,0xB7,0x00,0x00,}}, {0x5935,2,{0x89,0xFC,0x00,0x00,}}, {0x5936,2,{0x89,0xFD,0x00,0x00,}}, {0x5937,2,{0xD2,0xC4,0x00,0x00,}}, {0x5938,2,{0xBF,0xE4,0x00,0x00,}}, {0x5939,2,{0xBC,0xD0,0x00,0x00,}}, {0x593A,2,{0xB6,0xE1,0x00,0x00,}}, {0x593B,2,{0x89,0xFE,0x00,0x00,}}, {0x593C,2,{0xDE,0xC5,0x00,0x00,}}, {0x593D,2,{0x8A,0x40,0x00,0x00,}}, {0x593E,2,{0x8A,0x41,0x00,0x00,}}, {0x593F,2,{0x8A,0x42,0x00,0x00,}}, {0x5940,2,{0x8A,0x43,0x00,0x00,}}, {0x5941,2,{0xDE,0xC6,0x00,0x00,}}, {0x5942,2,{0xDB,0xBC,0x00,0x00,}}, {0x5943,2,{0x8A,0x44,0x00,0x00,}}, {0x5944,2,{0xD1,0xD9,0x00,0x00,}}, {0x5945,2,{0x8A,0x45,0x00,0x00,}}, {0x5946,2,{0x8A,0x46,0x00,0x00,}}, {0x5947,2,{0xC6,0xE6,0x00,0x00,}}, {0x5948,2,{0xC4,0xCE,0x00,0x00,}}, {0x5949,2,{0xB7,0xEE,0x00,0x00,}}, {0x594A,2,{0x8A,0x47,0x00,0x00,}}, {0x594B,2,{0xB7,0xDC,0x00,0x00,}}, {0x594C,2,{0x8A,0x48,0x00,0x00,}}, {0x594D,2,{0x8A,0x49,0x00,0x00,}}, {0x594E,2,{0xBF,0xFC,0x00,0x00,}}, {0x594F,2,{0xD7,0xE0,0x00,0x00,}}, {0x5950,2,{0x8A,0x4A,0x00,0x00,}}, {0x5951,2,{0xC6,0xF5,0x00,0x00,}}, {0x5952,2,{0x8A,0x4B,0x00,0x00,}}, {0x5953,2,{0x8A,0x4C,0x00,0x00,}}, {0x5954,2,{0xB1,0xBC,0x00,0x00,}}, {0x5955,2,{0xDE,0xC8,0x00,0x00,}}, {0x5956,2,{0xBD,0xB1,0x00,0x00,}}, {0x5957,2,{0xCC,0xD7,0x00,0x00,}}, {0x5958,2,{0xDE,0xCA,0x00,0x00,}}, {0x5959,2,{0x8A,0x4D,0x00,0x00,}}, {0x595A,2,{0xDE,0xC9,0x00,0x00,}}, {0x595B,2,{0x8A,0x4E,0x00,0x00,}}, {0x595C,2,{0x8A,0x4F,0x00,0x00,}}, {0x595D,2,{0x8A,0x50,0x00,0x00,}}, {0x595E,2,{0x8A,0x51,0x00,0x00,}}, {0x595F,2,{0x8A,0x52,0x00,0x00,}}, {0x5960,2,{0xB5,0xEC,0x00,0x00,}}, {0x5961,2,{0x8A,0x53,0x00,0x00,}}, {0x5962,2,{0xC9,0xDD,0x00,0x00,}}, {0x5963,2,{0x8A,0x54,0x00,0x00,}}, {0x5964,2,{0x8A,0x55,0x00,0x00,}}, {0x5965,2,{0xB0,0xC2,0x00,0x00,}}, {0x5966,2,{0x8A,0x56,0x00,0x00,}}, {0x5967,2,{0x8A,0x57,0x00,0x00,}}, {0x5968,2,{0x8A,0x58,0x00,0x00,}}, {0x5969,2,{0x8A,0x59,0x00,0x00,}}, {0x596A,2,{0x8A,0x5A,0x00,0x00,}}, {0x596B,2,{0x8A,0x5B,0x00,0x00,}}, {0x596C,2,{0x8A,0x5C,0x00,0x00,}}, {0x596D,2,{0x8A,0x5D,0x00,0x00,}}, {0x596E,2,{0x8A,0x5E,0x00,0x00,}}, {0x596F,2,{0x8A,0x5F,0x00,0x00,}}, {0x5970,2,{0x8A,0x60,0x00,0x00,}}, {0x5971,2,{0x8A,0x61,0x00,0x00,}}, {0x5972,2,{0x8A,0x62,0x00,0x00,}}, {0x5973,2,{0xC5,0xAE,0x00,0x00,}}, {0x5974,2,{0xC5,0xAB,0x00,0x00,}}, {0x5975,2,{0x8A,0x63,0x00,0x00,}}, {0x5976,2,{0xC4,0xCC,0x00,0x00,}}, {0x5977,2,{0x8A,0x64,0x00,0x00,}}, {0x5978,2,{0xBC,0xE9,0x00,0x00,}}, {0x5979,2,{0xCB,0xFD,0x00,0x00,}}, {0x597A,2,{0x8A,0x65,0x00,0x00,}}, {0x597B,2,{0x8A,0x66,0x00,0x00,}}, {0x597C,2,{0x8A,0x67,0x00,0x00,}}, {0x597D,2,{0xBA,0xC3,0x00,0x00,}}, {0x597E,2,{0x8A,0x68,0x00,0x00,}}, {0x597F,2,{0x8A,0x69,0x00,0x00,}}, {0x5980,2,{0x8A,0x6A,0x00,0x00,}}, {0x5981,2,{0xE5,0xF9,0x00,0x00,}}, {0x5982,2,{0xC8,0xE7,0x00,0x00,}}, {0x5983,2,{0xE5,0xFA,0x00,0x00,}}, {0x5984,2,{0xCD,0xFD,0x00,0x00,}}, {0x5985,2,{0x8A,0x6B,0x00,0x00,}}, {0x5986,2,{0xD7,0xB1,0x00,0x00,}}, {0x5987,2,{0xB8,0xBE,0x00,0x00,}}, {0x5988,2,{0xC2,0xE8,0x00,0x00,}}, {0x5989,2,{0x8A,0x6C,0x00,0x00,}}, {0x598A,2,{0xC8,0xD1,0x00,0x00,}}, {0x598B,2,{0x8A,0x6D,0x00,0x00,}}, {0x598C,2,{0x8A,0x6E,0x00,0x00,}}, {0x598D,2,{0xE5,0xFB,0x00,0x00,}}, {0x598E,2,{0x8A,0x6F,0x00,0x00,}}, {0x598F,2,{0x8A,0x70,0x00,0x00,}}, {0x5990,2,{0x8A,0x71,0x00,0x00,}}, {0x5991,2,{0x8A,0x72,0x00,0x00,}}, {0x5992,2,{0xB6,0xCA,0x00,0x00,}}, {0x5993,2,{0xBC,0xCB,0x00,0x00,}}, {0x5994,2,{0x8A,0x73,0x00,0x00,}}, {0x5995,2,{0x8A,0x74,0x00,0x00,}}, {0x5996,2,{0xD1,0xFD,0x00,0x00,}}, {0x5997,2,{0xE6,0xA1,0x00,0x00,}}, {0x5998,2,{0x8A,0x75,0x00,0x00,}}, {0x5999,2,{0xC3,0xEE,0x00,0x00,}}, {0x599A,2,{0x8A,0x76,0x00,0x00,}}, {0x599B,2,{0x8A,0x77,0x00,0x00,}}, {0x599C,2,{0x8A,0x78,0x00,0x00,}}, {0x599D,2,{0x8A,0x79,0x00,0x00,}}, {0x599E,2,{0xE6,0xA4,0x00,0x00,}}, {0x599F,2,{0x8A,0x7A,0x00,0x00,}}, {0x59A0,2,{0x8A,0x7B,0x00,0x00,}}, {0x59A1,2,{0x8A,0x7C,0x00,0x00,}}, {0x59A2,2,{0x8A,0x7D,0x00,0x00,}}, {0x59A3,2,{0xE5,0xFE,0x00,0x00,}}, {0x59A4,2,{0xE6,0xA5,0x00,0x00,}}, {0x59A5,2,{0xCD,0xD7,0x00,0x00,}}, {0x59A6,2,{0x8A,0x7E,0x00,0x00,}}, {0x59A7,2,{0x8A,0x80,0x00,0x00,}}, {0x59A8,2,{0xB7,0xC1,0x00,0x00,}}, {0x59A9,2,{0xE5,0xFC,0x00,0x00,}}, {0x59AA,2,{0xE5,0xFD,0x00,0x00,}}, {0x59AB,2,{0xE6,0xA3,0x00,0x00,}}, {0x59AC,2,{0x8A,0x81,0x00,0x00,}}, {0x59AD,2,{0x8A,0x82,0x00,0x00,}}, {0x59AE,2,{0xC4,0xDD,0x00,0x00,}}, {0x59AF,2,{0xE6,0xA8,0x00,0x00,}}, {0x59B0,2,{0x8A,0x83,0x00,0x00,}}, {0x59B1,2,{0x8A,0x84,0x00,0x00,}}, {0x59B2,2,{0xE6,0xA7,0x00,0x00,}}, {0x59B3,2,{0x8A,0x85,0x00,0x00,}}, {0x59B4,2,{0x8A,0x86,0x00,0x00,}}, {0x59B5,2,{0x8A,0x87,0x00,0x00,}}, {0x59B6,2,{0x8A,0x88,0x00,0x00,}}, {0x59B7,2,{0x8A,0x89,0x00,0x00,}}, {0x59B8,2,{0x8A,0x8A,0x00,0x00,}}, {0x59B9,2,{0xC3,0xC3,0x00,0x00,}}, {0x59BA,2,{0x8A,0x8B,0x00,0x00,}}, {0x59BB,2,{0xC6,0xDE,0x00,0x00,}}, {0x59BC,2,{0x8A,0x8C,0x00,0x00,}}, {0x59BD,2,{0x8A,0x8D,0x00,0x00,}}, {0x59BE,2,{0xE6,0xAA,0x00,0x00,}}, {0x59BF,2,{0x8A,0x8E,0x00,0x00,}}, {0x59C0,2,{0x8A,0x8F,0x00,0x00,}}, {0x59C1,2,{0x8A,0x90,0x00,0x00,}}, {0x59C2,2,{0x8A,0x91,0x00,0x00,}}, {0x59C3,2,{0x8A,0x92,0x00,0x00,}}, {0x59C4,2,{0x8A,0x93,0x00,0x00,}}, {0x59C5,2,{0x8A,0x94,0x00,0x00,}}, {0x59C6,2,{0xC4,0xB7,0x00,0x00,}}, {0x59C7,2,{0x8A,0x95,0x00,0x00,}}, {0x59C8,2,{0x8A,0x96,0x00,0x00,}}, {0x59C9,2,{0x8A,0x97,0x00,0x00,}}, {0x59CA,2,{0xE6,0xA2,0x00,0x00,}}, {0x59CB,2,{0xCA,0xBC,0x00,0x00,}}, {0x59CC,2,{0x8A,0x98,0x00,0x00,}}, {0x59CD,2,{0x8A,0x99,0x00,0x00,}}, {0x59CE,2,{0x8A,0x9A,0x00,0x00,}}, {0x59CF,2,{0x8A,0x9B,0x00,0x00,}}, {0x59D0,2,{0xBD,0xE3,0x00,0x00,}}, {0x59D1,2,{0xB9,0xC3,0x00,0x00,}}, {0x59D2,2,{0xE6,0xA6,0x00,0x00,}}, {0x59D3,2,{0xD0,0xD5,0x00,0x00,}}, {0x59D4,2,{0xCE,0xAF,0x00,0x00,}}, {0x59D5,2,{0x8A,0x9C,0x00,0x00,}}, {0x59D6,2,{0x8A,0x9D,0x00,0x00,}}, {0x59D7,2,{0xE6,0xA9,0x00,0x00,}}, {0x59D8,2,{0xE6,0xB0,0x00,0x00,}}, {0x59D9,2,{0x8A,0x9E,0x00,0x00,}}, {0x59DA,2,{0xD2,0xA6,0x00,0x00,}}, {0x59DB,2,{0x8A,0x9F,0x00,0x00,}}, {0x59DC,2,{0xBD,0xAA,0x00,0x00,}}, {0x59DD,2,{0xE6,0xAD,0x00,0x00,}}, {0x59DE,2,{0x8A,0xA0,0x00,0x00,}}, {0x59DF,2,{0x8A,0xA1,0x00,0x00,}}, {0x59E0,2,{0x8A,0xA2,0x00,0x00,}}, {0x59E1,2,{0x8A,0xA3,0x00,0x00,}}, {0x59E2,2,{0x8A,0xA4,0x00,0x00,}}, {0x59E3,2,{0xE6,0xAF,0x00,0x00,}}, {0x59E4,2,{0x8A,0xA5,0x00,0x00,}}, {0x59E5,2,{0xC0,0xD1,0x00,0x00,}}, {0x59E6,2,{0x8A,0xA6,0x00,0x00,}}, {0x59E7,2,{0x8A,0xA7,0x00,0x00,}}, {0x59E8,2,{0xD2,0xCC,0x00,0x00,}}, {0x59E9,2,{0x8A,0xA8,0x00,0x00,}}, {0x59EA,2,{0x8A,0xA9,0x00,0x00,}}, {0x59EB,2,{0x8A,0xAA,0x00,0x00,}}, {0x59EC,2,{0xBC,0xA7,0x00,0x00,}}, {0x59ED,2,{0x8A,0xAB,0x00,0x00,}}, {0x59EE,2,{0x8A,0xAC,0x00,0x00,}}, {0x59EF,2,{0x8A,0xAD,0x00,0x00,}}, {0x59F0,2,{0x8A,0xAE,0x00,0x00,}}, {0x59F1,2,{0x8A,0xAF,0x00,0x00,}}, {0x59F2,2,{0x8A,0xB0,0x00,0x00,}}, {0x59F3,2,{0x8A,0xB1,0x00,0x00,}}, {0x59F4,2,{0x8A,0xB2,0x00,0x00,}}, {0x59F5,2,{0x8A,0xB3,0x00,0x00,}}, {0x59F6,2,{0x8A,0xB4,0x00,0x00,}}, {0x59F7,2,{0x8A,0xB5,0x00,0x00,}}, {0x59F8,2,{0x8A,0xB6,0x00,0x00,}}, {0x59F9,2,{0xE6,0xB1,0x00,0x00,}}, {0x59FA,2,{0x8A,0xB7,0x00,0x00,}}, {0x59FB,2,{0xD2,0xF6,0x00,0x00,}}, {0x59FC,2,{0x8A,0xB8,0x00,0x00,}}, {0x59FD,2,{0x8A,0xB9,0x00,0x00,}}, {0x59FE,2,{0x8A,0xBA,0x00,0x00,}}, {0x59FF,2,{0xD7,0xCB,0x00,0x00,}}, {0x5A00,2,{0x8A,0xBB,0x00,0x00,}}, {0x5A01,2,{0xCD,0xFE,0x00,0x00,}}, {0x5A02,2,{0x8A,0xBC,0x00,0x00,}}, {0x5A03,2,{0xCD,0xDE,0x00,0x00,}}, {0x5A04,2,{0xC2,0xA6,0x00,0x00,}}, {0x5A05,2,{0xE6,0xAB,0x00,0x00,}}, {0x5A06,2,{0xE6,0xAC,0x00,0x00,}}, {0x5A07,2,{0xBD,0xBF,0x00,0x00,}}, {0x5A08,2,{0xE6,0xAE,0x00,0x00,}}, {0x5A09,2,{0xE6,0xB3,0x00,0x00,}}, {0x5A0A,2,{0x8A,0xBD,0x00,0x00,}}, {0x5A0B,2,{0x8A,0xBE,0x00,0x00,}}, {0x5A0C,2,{0xE6,0xB2,0x00,0x00,}}, {0x5A0D,2,{0x8A,0xBF,0x00,0x00,}}, {0x5A0E,2,{0x8A,0xC0,0x00,0x00,}}, {0x5A0F,2,{0x8A,0xC1,0x00,0x00,}}, {0x5A10,2,{0x8A,0xC2,0x00,0x00,}}, {0x5A11,2,{0xE6,0xB6,0x00,0x00,}}, {0x5A12,2,{0x8A,0xC3,0x00,0x00,}}, {0x5A13,2,{0xE6,0xB8,0x00,0x00,}}, {0x5A14,2,{0x8A,0xC4,0x00,0x00,}}, {0x5A15,2,{0x8A,0xC5,0x00,0x00,}}, {0x5A16,2,{0x8A,0xC6,0x00,0x00,}}, {0x5A17,2,{0x8A,0xC7,0x00,0x00,}}, {0x5A18,2,{0xC4,0xEF,0x00,0x00,}}, {0x5A19,2,{0x8A,0xC8,0x00,0x00,}}, {0x5A1A,2,{0x8A,0xC9,0x00,0x00,}}, {0x5A1B,2,{0x8A,0xCA,0x00,0x00,}}, {0x5A1C,2,{0xC4,0xC8,0x00,0x00,}}, {0x5A1D,2,{0x8A,0xCB,0x00,0x00,}}, {0x5A1E,2,{0x8A,0xCC,0x00,0x00,}}, {0x5A1F,2,{0xBE,0xEA,0x00,0x00,}}, {0x5A20,2,{0xC9,0xEF,0x00,0x00,}}, {0x5A21,2,{0x8A,0xCD,0x00,0x00,}}, {0x5A22,2,{0x8A,0xCE,0x00,0x00,}}, {0x5A23,2,{0xE6,0xB7,0x00,0x00,}}, {0x5A24,2,{0x8A,0xCF,0x00,0x00,}}, {0x5A25,2,{0xB6,0xF0,0x00,0x00,}}, {0x5A26,2,{0x8A,0xD0,0x00,0x00,}}, {0x5A27,2,{0x8A,0xD1,0x00,0x00,}}, {0x5A28,2,{0x8A,0xD2,0x00,0x00,}}, {0x5A29,2,{0xC3,0xE4,0x00,0x00,}}, {0x5A2A,2,{0x8A,0xD3,0x00,0x00,}}, {0x5A2B,2,{0x8A,0xD4,0x00,0x00,}}, {0x5A2C,2,{0x8A,0xD5,0x00,0x00,}}, {0x5A2D,2,{0x8A,0xD6,0x00,0x00,}}, {0x5A2E,2,{0x8A,0xD7,0x00,0x00,}}, {0x5A2F,2,{0x8A,0xD8,0x00,0x00,}}, {0x5A30,2,{0x8A,0xD9,0x00,0x00,}}, {0x5A31,2,{0xD3,0xE9,0x00,0x00,}}, {0x5A32,2,{0xE6,0xB4,0x00,0x00,}}, {0x5A33,2,{0x8A,0xDA,0x00,0x00,}}, {0x5A34,2,{0xE6,0xB5,0x00,0x00,}}, {0x5A35,2,{0x8A,0xDB,0x00,0x00,}}, {0x5A36,2,{0xC8,0xA2,0x00,0x00,}}, {0x5A37,2,{0x8A,0xDC,0x00,0x00,}}, {0x5A38,2,{0x8A,0xDD,0x00,0x00,}}, {0x5A39,2,{0x8A,0xDE,0x00,0x00,}}, {0x5A3A,2,{0x8A,0xDF,0x00,0x00,}}, {0x5A3B,2,{0x8A,0xE0,0x00,0x00,}}, {0x5A3C,2,{0xE6,0xBD,0x00,0x00,}}, {0x5A3D,2,{0x8A,0xE1,0x00,0x00,}}, {0x5A3E,2,{0x8A,0xE2,0x00,0x00,}}, {0x5A3F,2,{0x8A,0xE3,0x00,0x00,}}, {0x5A40,2,{0xE6,0xB9,0x00,0x00,}}, {0x5A41,2,{0x8A,0xE4,0x00,0x00,}}, {0x5A42,2,{0x8A,0xE5,0x00,0x00,}}, {0x5A43,2,{0x8A,0xE6,0x00,0x00,}}, {0x5A44,2,{0x8A,0xE7,0x00,0x00,}}, {0x5A45,2,{0x8A,0xE8,0x00,0x00,}}, {0x5A46,2,{0xC6,0xC5,0x00,0x00,}}, {0x5A47,2,{0x8A,0xE9,0x00,0x00,}}, {0x5A48,2,{0x8A,0xEA,0x00,0x00,}}, {0x5A49,2,{0xCD,0xF1,0x00,0x00,}}, {0x5A4A,2,{0xE6,0xBB,0x00,0x00,}}, {0x5A4B,2,{0x8A,0xEB,0x00,0x00,}}, {0x5A4C,2,{0x8A,0xEC,0x00,0x00,}}, {0x5A4D,2,{0x8A,0xED,0x00,0x00,}}, {0x5A4E,2,{0x8A,0xEE,0x00,0x00,}}, {0x5A4F,2,{0x8A,0xEF,0x00,0x00,}}, {0x5A50,2,{0x8A,0xF0,0x00,0x00,}}, {0x5A51,2,{0x8A,0xF1,0x00,0x00,}}, {0x5A52,2,{0x8A,0xF2,0x00,0x00,}}, {0x5A53,2,{0x8A,0xF3,0x00,0x00,}}, {0x5A54,2,{0x8A,0xF4,0x00,0x00,}}, {0x5A55,2,{0xE6,0xBC,0x00,0x00,}}, {0x5A56,2,{0x8A,0xF5,0x00,0x00,}}, {0x5A57,2,{0x8A,0xF6,0x00,0x00,}}, {0x5A58,2,{0x8A,0xF7,0x00,0x00,}}, {0x5A59,2,{0x8A,0xF8,0x00,0x00,}}, {0x5A5A,2,{0xBB,0xE9,0x00,0x00,}}, {0x5A5B,2,{0x8A,0xF9,0x00,0x00,}}, {0x5A5C,2,{0x8A,0xFA,0x00,0x00,}}, {0x5A5D,2,{0x8A,0xFB,0x00,0x00,}}, {0x5A5E,2,{0x8A,0xFC,0x00,0x00,}}, {0x5A5F,2,{0x8A,0xFD,0x00,0x00,}}, {0x5A60,2,{0x8A,0xFE,0x00,0x00,}}, {0x5A61,2,{0x8B,0x40,0x00,0x00,}}, {0x5A62,2,{0xE6,0xBE,0x00,0x00,}}, {0x5A63,2,{0x8B,0x41,0x00,0x00,}}, {0x5A64,2,{0x8B,0x42,0x00,0x00,}}, {0x5A65,2,{0x8B,0x43,0x00,0x00,}}, {0x5A66,2,{0x8B,0x44,0x00,0x00,}}, {0x5A67,2,{0xE6,0xBA,0x00,0x00,}}, {0x5A68,2,{0x8B,0x45,0x00,0x00,}}, {0x5A69,2,{0x8B,0x46,0x00,0x00,}}, {0x5A6A,2,{0xC0,0xB7,0x00,0x00,}}, {0x5A6B,2,{0x8B,0x47,0x00,0x00,}}, {0x5A6C,2,{0x8B,0x48,0x00,0x00,}}, {0x5A6D,2,{0x8B,0x49,0x00,0x00,}}, {0x5A6E,2,{0x8B,0x4A,0x00,0x00,}}, {0x5A6F,2,{0x8B,0x4B,0x00,0x00,}}, {0x5A70,2,{0x8B,0x4C,0x00,0x00,}}, {0x5A71,2,{0x8B,0x4D,0x00,0x00,}}, {0x5A72,2,{0x8B,0x4E,0x00,0x00,}}, {0x5A73,2,{0x8B,0x4F,0x00,0x00,}}, {0x5A74,2,{0xD3,0xA4,0x00,0x00,}}, {0x5A75,2,{0xE6,0xBF,0x00,0x00,}}, {0x5A76,2,{0xC9,0xF4,0x00,0x00,}}, {0x5A77,2,{0xE6,0xC3,0x00,0x00,}}, {0x5A78,2,{0x8B,0x50,0x00,0x00,}}, {0x5A79,2,{0x8B,0x51,0x00,0x00,}}, {0x5A7A,2,{0xE6,0xC4,0x00,0x00,}}, {0x5A7B,2,{0x8B,0x52,0x00,0x00,}}, {0x5A7C,2,{0x8B,0x53,0x00,0x00,}}, {0x5A7D,2,{0x8B,0x54,0x00,0x00,}}, {0x5A7E,2,{0x8B,0x55,0x00,0x00,}}, {0x5A7F,2,{0xD0,0xF6,0x00,0x00,}}, {0x5A80,2,{0x8B,0x56,0x00,0x00,}}, {0x5A81,2,{0x8B,0x57,0x00,0x00,}}, {0x5A82,2,{0x8B,0x58,0x00,0x00,}}, {0x5A83,2,{0x8B,0x59,0x00,0x00,}}, {0x5A84,2,{0x8B,0x5A,0x00,0x00,}}, {0x5A85,2,{0x8B,0x5B,0x00,0x00,}}, {0x5A86,2,{0x8B,0x5C,0x00,0x00,}}, {0x5A87,2,{0x8B,0x5D,0x00,0x00,}}, {0x5A88,2,{0x8B,0x5E,0x00,0x00,}}, {0x5A89,2,{0x8B,0x5F,0x00,0x00,}}, {0x5A8A,2,{0x8B,0x60,0x00,0x00,}}, {0x5A8B,2,{0x8B,0x61,0x00,0x00,}}, {0x5A8C,2,{0x8B,0x62,0x00,0x00,}}, {0x5A8D,2,{0x8B,0x63,0x00,0x00,}}, {0x5A8E,2,{0x8B,0x64,0x00,0x00,}}, {0x5A8F,2,{0x8B,0x65,0x00,0x00,}}, {0x5A90,2,{0x8B,0x66,0x00,0x00,}}, {0x5A91,2,{0x8B,0x67,0x00,0x00,}}, {0x5A92,2,{0xC3,0xBD,0x00,0x00,}}, {0x5A93,2,{0x8B,0x68,0x00,0x00,}}, {0x5A94,2,{0x8B,0x69,0x00,0x00,}}, {0x5A95,2,{0x8B,0x6A,0x00,0x00,}}, {0x5A96,2,{0x8B,0x6B,0x00,0x00,}}, {0x5A97,2,{0x8B,0x6C,0x00,0x00,}}, {0x5A98,2,{0x8B,0x6D,0x00,0x00,}}, {0x5A99,2,{0x8B,0x6E,0x00,0x00,}}, {0x5A9A,2,{0xC3,0xC4,0x00,0x00,}}, {0x5A9B,2,{0xE6,0xC2,0x00,0x00,}}, {0x5A9C,2,{0x8B,0x6F,0x00,0x00,}}, {0x5A9D,2,{0x8B,0x70,0x00,0x00,}}, {0x5A9E,2,{0x8B,0x71,0x00,0x00,}}, {0x5A9F,2,{0x8B,0x72,0x00,0x00,}}, {0x5AA0,2,{0x8B,0x73,0x00,0x00,}}, {0x5AA1,2,{0x8B,0x74,0x00,0x00,}}, {0x5AA2,2,{0x8B,0x75,0x00,0x00,}}, {0x5AA3,2,{0x8B,0x76,0x00,0x00,}}, {0x5AA4,2,{0x8B,0x77,0x00,0x00,}}, {0x5AA5,2,{0x8B,0x78,0x00,0x00,}}, {0x5AA6,2,{0x8B,0x79,0x00,0x00,}}, {0x5AA7,2,{0x8B,0x7A,0x00,0x00,}}, {0x5AA8,2,{0x8B,0x7B,0x00,0x00,}}, {0x5AA9,2,{0x8B,0x7C,0x00,0x00,}}, {0x5AAA,2,{0xE6,0xC1,0x00,0x00,}}, {0x5AAB,2,{0x8B,0x7D,0x00,0x00,}}, {0x5AAC,2,{0x8B,0x7E,0x00,0x00,}}, {0x5AAD,2,{0x8B,0x80,0x00,0x00,}}, {0x5AAE,2,{0x8B,0x81,0x00,0x00,}}, {0x5AAF,2,{0x8B,0x82,0x00,0x00,}}, {0x5AB0,2,{0x8B,0x83,0x00,0x00,}}, {0x5AB1,2,{0x8B,0x84,0x00,0x00,}}, {0x5AB2,2,{0xE6,0xC7,0x00,0x00,}}, {0x5AB3,2,{0xCF,0xB1,0x00,0x00,}}, {0x5AB4,2,{0x8B,0x85,0x00,0x00,}}, {0x5AB5,2,{0xEB,0xF4,0x00,0x00,}}, {0x5AB6,2,{0x8B,0x86,0x00,0x00,}}, {0x5AB7,2,{0x8B,0x87,0x00,0x00,}}, {0x5AB8,2,{0xE6,0xCA,0x00,0x00,}}, {0x5AB9,2,{0x8B,0x88,0x00,0x00,}}, {0x5ABA,2,{0x8B,0x89,0x00,0x00,}}, {0x5ABB,2,{0x8B,0x8A,0x00,0x00,}}, {0x5ABC,2,{0x8B,0x8B,0x00,0x00,}}, {0x5ABD,2,{0x8B,0x8C,0x00,0x00,}}, {0x5ABE,2,{0xE6,0xC5,0x00,0x00,}}, {0x5ABF,2,{0x8B,0x8D,0x00,0x00,}}, {0x5AC0,2,{0x8B,0x8E,0x00,0x00,}}, {0x5AC1,2,{0xBC,0xDE,0x00,0x00,}}, {0x5AC2,2,{0xC9,0xA9,0x00,0x00,}}, {0x5AC3,2,{0x8B,0x8F,0x00,0x00,}}, {0x5AC4,2,{0x8B,0x90,0x00,0x00,}}, {0x5AC5,2,{0x8B,0x91,0x00,0x00,}}, {0x5AC6,2,{0x8B,0x92,0x00,0x00,}}, {0x5AC7,2,{0x8B,0x93,0x00,0x00,}}, {0x5AC8,2,{0x8B,0x94,0x00,0x00,}}, {0x5AC9,2,{0xBC,0xB5,0x00,0x00,}}, {0x5ACA,2,{0x8B,0x95,0x00,0x00,}}, {0x5ACB,2,{0x8B,0x96,0x00,0x00,}}, {0x5ACC,2,{0xCF,0xD3,0x00,0x00,}}, {0x5ACD,2,{0x8B,0x97,0x00,0x00,}}, {0x5ACE,2,{0x8B,0x98,0x00,0x00,}}, {0x5ACF,2,{0x8B,0x99,0x00,0x00,}}, {0x5AD0,2,{0x8B,0x9A,0x00,0x00,}}, {0x5AD1,2,{0x8B,0x9B,0x00,0x00,}}, {0x5AD2,2,{0xE6,0xC8,0x00,0x00,}}, {0x5AD3,2,{0x8B,0x9C,0x00,0x00,}}, {0x5AD4,2,{0xE6,0xC9,0x00,0x00,}}, {0x5AD5,2,{0x8B,0x9D,0x00,0x00,}}, {0x5AD6,2,{0xE6,0xCE,0x00,0x00,}}, {0x5AD7,2,{0x8B,0x9E,0x00,0x00,}}, {0x5AD8,2,{0xE6,0xD0,0x00,0x00,}}, {0x5AD9,2,{0x8B,0x9F,0x00,0x00,}}, {0x5ADA,2,{0x8B,0xA0,0x00,0x00,}}, {0x5ADB,2,{0x8B,0xA1,0x00,0x00,}}, {0x5ADC,2,{0xE6,0xD1,0x00,0x00,}}, {0x5ADD,2,{0x8B,0xA2,0x00,0x00,}}, {0x5ADE,2,{0x8B,0xA3,0x00,0x00,}}, {0x5ADF,2,{0x8B,0xA4,0x00,0x00,}}, {0x5AE0,2,{0xE6,0xCB,0x00,0x00,}}, {0x5AE1,2,{0xB5,0xD5,0x00,0x00,}}, {0x5AE2,2,{0x8B,0xA5,0x00,0x00,}}, {0x5AE3,2,{0xE6,0xCC,0x00,0x00,}}, {0x5AE4,2,{0x8B,0xA6,0x00,0x00,}}, {0x5AE5,2,{0x8B,0xA7,0x00,0x00,}}, {0x5AE6,2,{0xE6,0xCF,0x00,0x00,}}, {0x5AE7,2,{0x8B,0xA8,0x00,0x00,}}, {0x5AE8,2,{0x8B,0xA9,0x00,0x00,}}, {0x5AE9,2,{0xC4,0xDB,0x00,0x00,}}, {0x5AEA,2,{0x8B,0xAA,0x00,0x00,}}, {0x5AEB,2,{0xE6,0xC6,0x00,0x00,}}, {0x5AEC,2,{0x8B,0xAB,0x00,0x00,}}, {0x5AED,2,{0x8B,0xAC,0x00,0x00,}}, {0x5AEE,2,{0x8B,0xAD,0x00,0x00,}}, {0x5AEF,2,{0x8B,0xAE,0x00,0x00,}}, {0x5AF0,2,{0x8B,0xAF,0x00,0x00,}}, {0x5AF1,2,{0xE6,0xCD,0x00,0x00,}}, {0x5AF2,2,{0x8B,0xB0,0x00,0x00,}}, {0x5AF3,2,{0x8B,0xB1,0x00,0x00,}}, {0x5AF4,2,{0x8B,0xB2,0x00,0x00,}}, {0x5AF5,2,{0x8B,0xB3,0x00,0x00,}}, {0x5AF6,2,{0x8B,0xB4,0x00,0x00,}}, {0x5AF7,2,{0x8B,0xB5,0x00,0x00,}}, {0x5AF8,2,{0x8B,0xB6,0x00,0x00,}}, {0x5AF9,2,{0x8B,0xB7,0x00,0x00,}}, {0x5AFA,2,{0x8B,0xB8,0x00,0x00,}}, {0x5AFB,2,{0x8B,0xB9,0x00,0x00,}}, {0x5AFC,2,{0x8B,0xBA,0x00,0x00,}}, {0x5AFD,2,{0x8B,0xBB,0x00,0x00,}}, {0x5AFE,2,{0x8B,0xBC,0x00,0x00,}}, {0x5AFF,2,{0x8B,0xBD,0x00,0x00,}}, {0x5B00,2,{0x8B,0xBE,0x00,0x00,}}, {0x5B01,2,{0x8B,0xBF,0x00,0x00,}}, {0x5B02,2,{0x8B,0xC0,0x00,0x00,}}, {0x5B03,2,{0x8B,0xC1,0x00,0x00,}}, {0x5B04,2,{0x8B,0xC2,0x00,0x00,}}, {0x5B05,2,{0x8B,0xC3,0x00,0x00,}}, {0x5B06,2,{0x8B,0xC4,0x00,0x00,}}, {0x5B07,2,{0x8B,0xC5,0x00,0x00,}}, {0x5B08,2,{0x8B,0xC6,0x00,0x00,}}, {0x5B09,2,{0xE6,0xD2,0x00,0x00,}}, {0x5B0A,2,{0x8B,0xC7,0x00,0x00,}}, {0x5B0B,2,{0x8B,0xC8,0x00,0x00,}}, {0x5B0C,2,{0x8B,0xC9,0x00,0x00,}}, {0x5B0D,2,{0x8B,0xCA,0x00,0x00,}}, {0x5B0E,2,{0x8B,0xCB,0x00,0x00,}}, {0x5B0F,2,{0x8B,0xCC,0x00,0x00,}}, {0x5B10,2,{0x8B,0xCD,0x00,0x00,}}, {0x5B11,2,{0x8B,0xCE,0x00,0x00,}}, {0x5B12,2,{0x8B,0xCF,0x00,0x00,}}, {0x5B13,2,{0x8B,0xD0,0x00,0x00,}}, {0x5B14,2,{0x8B,0xD1,0x00,0x00,}}, {0x5B15,2,{0x8B,0xD2,0x00,0x00,}}, {0x5B16,2,{0xE6,0xD4,0x00,0x00,}}, {0x5B17,2,{0xE6,0xD3,0x00,0x00,}}, {0x5B18,2,{0x8B,0xD3,0x00,0x00,}}, {0x5B19,2,{0x8B,0xD4,0x00,0x00,}}, {0x5B1A,2,{0x8B,0xD5,0x00,0x00,}}, {0x5B1B,2,{0x8B,0xD6,0x00,0x00,}}, {0x5B1C,2,{0x8B,0xD7,0x00,0x00,}}, {0x5B1D,2,{0x8B,0xD8,0x00,0x00,}}, {0x5B1E,2,{0x8B,0xD9,0x00,0x00,}}, {0x5B1F,2,{0x8B,0xDA,0x00,0x00,}}, {0x5B20,2,{0x8B,0xDB,0x00,0x00,}}, {0x5B21,2,{0x8B,0xDC,0x00,0x00,}}, {0x5B22,2,{0x8B,0xDD,0x00,0x00,}}, {0x5B23,2,{0x8B,0xDE,0x00,0x00,}}, {0x5B24,2,{0x8B,0xDF,0x00,0x00,}}, {0x5B25,2,{0x8B,0xE0,0x00,0x00,}}, {0x5B26,2,{0x8B,0xE1,0x00,0x00,}}, {0x5B27,2,{0x8B,0xE2,0x00,0x00,}}, {0x5B28,2,{0x8B,0xE3,0x00,0x00,}}, {0x5B29,2,{0x8B,0xE4,0x00,0x00,}}, {0x5B2A,2,{0x8B,0xE5,0x00,0x00,}}, {0x5B2B,2,{0x8B,0xE6,0x00,0x00,}}, {0x5B2C,2,{0x8B,0xE7,0x00,0x00,}}, {0x5B2D,2,{0x8B,0xE8,0x00,0x00,}}, {0x5B2E,2,{0x8B,0xE9,0x00,0x00,}}, {0x5B2F,2,{0x8B,0xEA,0x00,0x00,}}, {0x5B30,2,{0x8B,0xEB,0x00,0x00,}}, {0x5B31,2,{0x8B,0xEC,0x00,0x00,}}, {0x5B32,2,{0xE6,0xD5,0x00,0x00,}}, {0x5B33,2,{0x8B,0xED,0x00,0x00,}}, {0x5B34,2,{0xD9,0xF8,0x00,0x00,}}, {0x5B35,2,{0x8B,0xEE,0x00,0x00,}}, {0x5B36,2,{0x8B,0xEF,0x00,0x00,}}, {0x5B37,2,{0xE6,0xD6,0x00,0x00,}}, {0x5B38,2,{0x8B,0xF0,0x00,0x00,}}, {0x5B39,2,{0x8B,0xF1,0x00,0x00,}}, {0x5B3A,2,{0x8B,0xF2,0x00,0x00,}}, {0x5B3B,2,{0x8B,0xF3,0x00,0x00,}}, {0x5B3C,2,{0x8B,0xF4,0x00,0x00,}}, {0x5B3D,2,{0x8B,0xF5,0x00,0x00,}}, {0x5B3E,2,{0x8B,0xF6,0x00,0x00,}}, {0x5B3F,2,{0x8B,0xF7,0x00,0x00,}}, {0x5B40,2,{0xE6,0xD7,0x00,0x00,}}, {0x5B41,2,{0x8B,0xF8,0x00,0x00,}}, {0x5B42,2,{0x8B,0xF9,0x00,0x00,}}, {0x5B43,2,{0x8B,0xFA,0x00,0x00,}}, {0x5B44,2,{0x8B,0xFB,0x00,0x00,}}, {0x5B45,2,{0x8B,0xFC,0x00,0x00,}}, {0x5B46,2,{0x8B,0xFD,0x00,0x00,}}, {0x5B47,2,{0x8B,0xFE,0x00,0x00,}}, {0x5B48,2,{0x8C,0x40,0x00,0x00,}}, {0x5B49,2,{0x8C,0x41,0x00,0x00,}}, {0x5B4A,2,{0x8C,0x42,0x00,0x00,}}, {0x5B4B,2,{0x8C,0x43,0x00,0x00,}}, {0x5B4C,2,{0x8C,0x44,0x00,0x00,}}, {0x5B4D,2,{0x8C,0x45,0x00,0x00,}}, {0x5B4E,2,{0x8C,0x46,0x00,0x00,}}, {0x5B4F,2,{0x8C,0x47,0x00,0x00,}}, {0x5B50,2,{0xD7,0xD3,0x00,0x00,}}, {0x5B51,2,{0xE6,0xDD,0x00,0x00,}}, {0x5B52,2,{0x8C,0x48,0x00,0x00,}}, {0x5B53,2,{0xE6,0xDE,0x00,0x00,}}, {0x5B54,2,{0xBF,0xD7,0x00,0x00,}}, {0x5B55,2,{0xD4,0xD0,0x00,0x00,}}, {0x5B56,2,{0x8C,0x49,0x00,0x00,}}, {0x5B57,2,{0xD7,0xD6,0x00,0x00,}}, {0x5B58,2,{0xB4,0xE6,0x00,0x00,}}, {0x5B59,2,{0xCB,0xEF,0x00,0x00,}}, {0x5B5A,2,{0xE6,0xDA,0x00,0x00,}}, {0x5B5B,2,{0xD8,0xC3,0x00,0x00,}}, {0x5B5C,2,{0xD7,0xCE,0x00,0x00,}}, {0x5B5D,2,{0xD0,0xA2,0x00,0x00,}}, {0x5B5E,2,{0x8C,0x4A,0x00,0x00,}}, {0x5B5F,2,{0xC3,0xCF,0x00,0x00,}}, {0x5B60,2,{0x8C,0x4B,0x00,0x00,}}, {0x5B61,2,{0x8C,0x4C,0x00,0x00,}}, {0x5B62,2,{0xE6,0xDF,0x00,0x00,}}, {0x5B63,2,{0xBC,0xBE,0x00,0x00,}}, {0x5B64,2,{0xB9,0xC2,0x00,0x00,}}, {0x5B65,2,{0xE6,0xDB,0x00,0x00,}}, {0x5B66,2,{0xD1,0xA7,0x00,0x00,}}, {0x5B67,2,{0x8C,0x4D,0x00,0x00,}}, {0x5B68,2,{0x8C,0x4E,0x00,0x00,}}, {0x5B69,2,{0xBA,0xA2,0x00,0x00,}}, {0x5B6A,2,{0xC2,0xCF,0x00,0x00,}}, {0x5B6B,2,{0x8C,0x4F,0x00,0x00,}}, {0x5B6C,2,{0xD8,0xAB,0x00,0x00,}}, {0x5B6D,2,{0x8C,0x50,0x00,0x00,}}, {0x5B6E,2,{0x8C,0x51,0x00,0x00,}}, {0x5B6F,2,{0x8C,0x52,0x00,0x00,}}, {0x5B70,2,{0xCA,0xEB,0x00,0x00,}}, {0x5B71,2,{0xE5,0xEE,0x00,0x00,}}, {0x5B72,2,{0x8C,0x53,0x00,0x00,}}, {0x5B73,2,{0xE6,0xDC,0x00,0x00,}}, {0x5B74,2,{0x8C,0x54,0x00,0x00,}}, {0x5B75,2,{0xB7,0xF5,0x00,0x00,}}, {0x5B76,2,{0x8C,0x55,0x00,0x00,}}, {0x5B77,2,{0x8C,0x56,0x00,0x00,}}, {0x5B78,2,{0x8C,0x57,0x00,0x00,}}, {0x5B79,2,{0x8C,0x58,0x00,0x00,}}, {0x5B7A,2,{0xC8,0xE6,0x00,0x00,}}, {0x5B7B,2,{0x8C,0x59,0x00,0x00,}}, {0x5B7C,2,{0x8C,0x5A,0x00,0x00,}}, {0x5B7D,2,{0xC4,0xF5,0x00,0x00,}}, {0x5B7E,2,{0x8C,0x5B,0x00,0x00,}}, {0x5B7F,2,{0x8C,0x5C,0x00,0x00,}}, {0x5B80,2,{0xE5,0xB2,0x00,0x00,}}, {0x5B81,2,{0xC4,0xFE,0x00,0x00,}}, {0x5B82,2,{0x8C,0x5D,0x00,0x00,}}, {0x5B83,2,{0xCB,0xFC,0x00,0x00,}}, {0x5B84,2,{0xE5,0xB3,0x00,0x00,}}, {0x5B85,2,{0xD5,0xAC,0x00,0x00,}}, {0x5B86,2,{0x8C,0x5E,0x00,0x00,}}, {0x5B87,2,{0xD3,0xEE,0x00,0x00,}}, {0x5B88,2,{0xCA,0xD8,0x00,0x00,}}, {0x5B89,2,{0xB0,0xB2,0x00,0x00,}}, {0x5B8A,2,{0x8C,0x5F,0x00,0x00,}}, {0x5B8B,2,{0xCB,0xCE,0x00,0x00,}}, {0x5B8C,2,{0xCD,0xEA,0x00,0x00,}}, {0x5B8D,2,{0x8C,0x60,0x00,0x00,}}, {0x5B8E,2,{0x8C,0x61,0x00,0x00,}}, {0x5B8F,2,{0xBA,0xEA,0x00,0x00,}}, {0x5B90,2,{0x8C,0x62,0x00,0x00,}}, {0x5B91,2,{0x8C,0x63,0x00,0x00,}}, {0x5B92,2,{0x8C,0x64,0x00,0x00,}}, {0x5B93,2,{0xE5,0xB5,0x00,0x00,}}, {0x5B94,2,{0x8C,0x65,0x00,0x00,}}, {0x5B95,2,{0xE5,0xB4,0x00,0x00,}}, {0x5B96,2,{0x8C,0x66,0x00,0x00,}}, {0x5B97,2,{0xD7,0xDA,0x00,0x00,}}, {0x5B98,2,{0xB9,0xD9,0x00,0x00,}}, {0x5B99,2,{0xD6,0xE6,0x00,0x00,}}, {0x5B9A,2,{0xB6,0xA8,0x00,0x00,}}, {0x5B9B,2,{0xCD,0xF0,0x00,0x00,}}, {0x5B9C,2,{0xD2,0xCB,0x00,0x00,}}, {0x5B9D,2,{0xB1,0xA6,0x00,0x00,}}, {0x5B9E,2,{0xCA,0xB5,0x00,0x00,}}, {0x5B9F,2,{0x8C,0x67,0x00,0x00,}}, {0x5BA0,2,{0xB3,0xE8,0x00,0x00,}}, {0x5BA1,2,{0xC9,0xF3,0x00,0x00,}}, {0x5BA2,2,{0xBF,0xCD,0x00,0x00,}}, {0x5BA3,2,{0xD0,0xFB,0x00,0x00,}}, {0x5BA4,2,{0xCA,0xD2,0x00,0x00,}}, {0x5BA5,2,{0xE5,0xB6,0x00,0x00,}}, {0x5BA6,2,{0xBB,0xC2,0x00,0x00,}}, {0x5BA7,2,{0x8C,0x68,0x00,0x00,}}, {0x5BA8,2,{0x8C,0x69,0x00,0x00,}}, {0x5BA9,2,{0x8C,0x6A,0x00,0x00,}}, {0x5BAA,2,{0xCF,0xDC,0x00,0x00,}}, {0x5BAB,2,{0xB9,0xAC,0x00,0x00,}}, {0x5BAC,2,{0x8C,0x6B,0x00,0x00,}}, {0x5BAD,2,{0x8C,0x6C,0x00,0x00,}}, {0x5BAE,2,{0x8C,0x6D,0x00,0x00,}}, {0x5BAF,2,{0x8C,0x6E,0x00,0x00,}}, {0x5BB0,2,{0xD4,0xD7,0x00,0x00,}}, {0x5BB1,2,{0x8C,0x6F,0x00,0x00,}}, {0x5BB2,2,{0x8C,0x70,0x00,0x00,}}, {0x5BB3,2,{0xBA,0xA6,0x00,0x00,}}, {0x5BB4,2,{0xD1,0xE7,0x00,0x00,}}, {0x5BB5,2,{0xCF,0xFC,0x00,0x00,}}, {0x5BB6,2,{0xBC,0xD2,0x00,0x00,}}, {0x5BB7,2,{0x8C,0x71,0x00,0x00,}}, {0x5BB8,2,{0xE5,0xB7,0x00,0x00,}}, {0x5BB9,2,{0xC8,0xDD,0x00,0x00,}}, {0x5BBA,2,{0x8C,0x72,0x00,0x00,}}, {0x5BBB,2,{0x8C,0x73,0x00,0x00,}}, {0x5BBC,2,{0x8C,0x74,0x00,0x00,}}, {0x5BBD,2,{0xBF,0xED,0x00,0x00,}}, {0x5BBE,2,{0xB1,0xF6,0x00,0x00,}}, {0x5BBF,2,{0xCB,0xDE,0x00,0x00,}}, {0x5BC0,2,{0x8C,0x75,0x00,0x00,}}, {0x5BC1,2,{0x8C,0x76,0x00,0x00,}}, {0x5BC2,2,{0xBC,0xC5,0x00,0x00,}}, {0x5BC3,2,{0x8C,0x77,0x00,0x00,}}, {0x5BC4,2,{0xBC,0xC4,0x00,0x00,}}, {0x5BC5,2,{0xD2,0xFA,0x00,0x00,}}, {0x5BC6,2,{0xC3,0xDC,0x00,0x00,}}, {0x5BC7,2,{0xBF,0xDC,0x00,0x00,}}, {0x5BC8,2,{0x8C,0x78,0x00,0x00,}}, {0x5BC9,2,{0x8C,0x79,0x00,0x00,}}, {0x5BCA,2,{0x8C,0x7A,0x00,0x00,}}, {0x5BCB,2,{0x8C,0x7B,0x00,0x00,}}, {0x5BCC,2,{0xB8,0xBB,0x00,0x00,}}, {0x5BCD,2,{0x8C,0x7C,0x00,0x00,}}, {0x5BCE,2,{0x8C,0x7D,0x00,0x00,}}, {0x5BCF,2,{0x8C,0x7E,0x00,0x00,}}, {0x5BD0,2,{0xC3,0xC2,0x00,0x00,}}, {0x5BD1,2,{0x8C,0x80,0x00,0x00,}}, {0x5BD2,2,{0xBA,0xAE,0x00,0x00,}}, {0x5BD3,2,{0xD4,0xA2,0x00,0x00,}}, {0x5BD4,2,{0x8C,0x81,0x00,0x00,}}, {0x5BD5,2,{0x8C,0x82,0x00,0x00,}}, {0x5BD6,2,{0x8C,0x83,0x00,0x00,}}, {0x5BD7,2,{0x8C,0x84,0x00,0x00,}}, {0x5BD8,2,{0x8C,0x85,0x00,0x00,}}, {0x5BD9,2,{0x8C,0x86,0x00,0x00,}}, {0x5BDA,2,{0x8C,0x87,0x00,0x00,}}, {0x5BDB,2,{0x8C,0x88,0x00,0x00,}}, {0x5BDC,2,{0x8C,0x89,0x00,0x00,}}, {0x5BDD,2,{0xC7,0xDE,0x00,0x00,}}, {0x5BDE,2,{0xC4,0xAF,0x00,0x00,}}, {0x5BDF,2,{0xB2,0xEC,0x00,0x00,}}, {0x5BE0,2,{0x8C,0x8A,0x00,0x00,}}, {0x5BE1,2,{0xB9,0xD1,0x00,0x00,}}, {0x5BE2,2,{0x8C,0x8B,0x00,0x00,}}, {0x5BE3,2,{0x8C,0x8C,0x00,0x00,}}, {0x5BE4,2,{0xE5,0xBB,0x00,0x00,}}, {0x5BE5,2,{0xC1,0xC8,0x00,0x00,}}, {0x5BE6,2,{0x8C,0x8D,0x00,0x00,}}, {0x5BE7,2,{0x8C,0x8E,0x00,0x00,}}, {0x5BE8,2,{0xD5,0xAF,0x00,0x00,}}, {0x5BE9,2,{0x8C,0x8F,0x00,0x00,}}, {0x5BEA,2,{0x8C,0x90,0x00,0x00,}}, {0x5BEB,2,{0x8C,0x91,0x00,0x00,}}, {0x5BEC,2,{0x8C,0x92,0x00,0x00,}}, {0x5BED,2,{0x8C,0x93,0x00,0x00,}}, {0x5BEE,2,{0xE5,0xBC,0x00,0x00,}}, {0x5BEF,2,{0x8C,0x94,0x00,0x00,}}, {0x5BF0,2,{0xE5,0xBE,0x00,0x00,}}, {0x5BF1,2,{0x8C,0x95,0x00,0x00,}}, {0x5BF2,2,{0x8C,0x96,0x00,0x00,}}, {0x5BF3,2,{0x8C,0x97,0x00,0x00,}}, {0x5BF4,2,{0x8C,0x98,0x00,0x00,}}, {0x5BF5,2,{0x8C,0x99,0x00,0x00,}}, {0x5BF6,2,{0x8C,0x9A,0x00,0x00,}}, {0x5BF7,2,{0x8C,0x9B,0x00,0x00,}}, {0x5BF8,2,{0xB4,0xE7,0x00,0x00,}}, {0x5BF9,2,{0xB6,0xD4,0x00,0x00,}}, {0x5BFA,2,{0xCB,0xC2,0x00,0x00,}}, {0x5BFB,2,{0xD1,0xB0,0x00,0x00,}}, {0x5BFC,2,{0xB5,0xBC,0x00,0x00,}}, {0x5BFD,2,{0x8C,0x9C,0x00,0x00,}}, {0x5BFE,2,{0x8C,0x9D,0x00,0x00,}}, {0x5BFF,2,{0xCA,0xD9,0x00,0x00,}}, {0x5C00,2,{0x8C,0x9E,0x00,0x00,}}, {0x5C01,2,{0xB7,0xE2,0x00,0x00,}}, {0x5C02,2,{0x8C,0x9F,0x00,0x00,}}, {0x5C03,2,{0x8C,0xA0,0x00,0x00,}}, {0x5C04,2,{0xC9,0xE4,0x00,0x00,}}, {0x5C05,2,{0x8C,0xA1,0x00,0x00,}}, {0x5C06,2,{0xBD,0xAB,0x00,0x00,}}, {0x5C07,2,{0x8C,0xA2,0x00,0x00,}}, {0x5C08,2,{0x8C,0xA3,0x00,0x00,}}, {0x5C09,2,{0xCE,0xBE,0x00,0x00,}}, {0x5C0A,2,{0xD7,0xF0,0x00,0x00,}}, {0x5C0B,2,{0x8C,0xA4,0x00,0x00,}}, {0x5C0C,2,{0x8C,0xA5,0x00,0x00,}}, {0x5C0D,2,{0x8C,0xA6,0x00,0x00,}}, {0x5C0E,2,{0x8C,0xA7,0x00,0x00,}}, {0x5C0F,2,{0xD0,0xA1,0x00,0x00,}}, {0x5C10,2,{0x8C,0xA8,0x00,0x00,}}, {0x5C11,2,{0xC9,0xD9,0x00,0x00,}}, {0x5C12,2,{0x8C,0xA9,0x00,0x00,}}, {0x5C13,2,{0x8C,0xAA,0x00,0x00,}}, {0x5C14,2,{0xB6,0xFB,0x00,0x00,}}, {0x5C15,2,{0xE6,0xD8,0x00,0x00,}}, {0x5C16,2,{0xBC,0xE2,0x00,0x00,}}, {0x5C17,2,{0x8C,0xAB,0x00,0x00,}}, {0x5C18,2,{0xB3,0xBE,0x00,0x00,}}, {0x5C19,2,{0x8C,0xAC,0x00,0x00,}}, {0x5C1A,2,{0xC9,0xD0,0x00,0x00,}}, {0x5C1B,2,{0x8C,0xAD,0x00,0x00,}}, {0x5C1C,2,{0xE6,0xD9,0x00,0x00,}}, {0x5C1D,2,{0xB3,0xA2,0x00,0x00,}}, {0x5C1E,2,{0x8C,0xAE,0x00,0x00,}}, {0x5C1F,2,{0x8C,0xAF,0x00,0x00,}}, {0x5C20,2,{0x8C,0xB0,0x00,0x00,}}, {0x5C21,2,{0x8C,0xB1,0x00,0x00,}}, {0x5C22,2,{0xDE,0xCC,0x00,0x00,}}, {0x5C23,2,{0x8C,0xB2,0x00,0x00,}}, {0x5C24,2,{0xD3,0xC8,0x00,0x00,}}, {0x5C25,2,{0xDE,0xCD,0x00,0x00,}}, {0x5C26,2,{0x8C,0xB3,0x00,0x00,}}, {0x5C27,2,{0xD2,0xA2,0x00,0x00,}}, {0x5C28,2,{0x8C,0xB4,0x00,0x00,}}, {0x5C29,2,{0x8C,0xB5,0x00,0x00,}}, {0x5C2A,2,{0x8C,0xB6,0x00,0x00,}}, {0x5C2B,2,{0x8C,0xB7,0x00,0x00,}}, {0x5C2C,2,{0xDE,0xCE,0x00,0x00,}}, {0x5C2D,2,{0x8C,0xB8,0x00,0x00,}}, {0x5C2E,2,{0x8C,0xB9,0x00,0x00,}}, {0x5C2F,2,{0x8C,0xBA,0x00,0x00,}}, {0x5C30,2,{0x8C,0xBB,0x00,0x00,}}, {0x5C31,2,{0xBE,0xCD,0x00,0x00,}}, {0x5C32,2,{0x8C,0xBC,0x00,0x00,}}, {0x5C33,2,{0x8C,0xBD,0x00,0x00,}}, {0x5C34,2,{0xDE,0xCF,0x00,0x00,}}, {0x5C35,2,{0x8C,0xBE,0x00,0x00,}}, {0x5C36,2,{0x8C,0xBF,0x00,0x00,}}, {0x5C37,2,{0x8C,0xC0,0x00,0x00,}}, {0x5C38,2,{0xCA,0xAC,0x00,0x00,}}, {0x5C39,2,{0xD2,0xFC,0x00,0x00,}}, {0x5C3A,2,{0xB3,0xDF,0x00,0x00,}}, {0x5C3B,2,{0xE5,0xEA,0x00,0x00,}}, {0x5C3C,2,{0xC4,0xE1,0x00,0x00,}}, {0x5C3D,2,{0xBE,0xA1,0x00,0x00,}}, {0x5C3E,2,{0xCE,0xB2,0x00,0x00,}}, {0x5C3F,2,{0xC4,0xF2,0x00,0x00,}}, {0x5C40,2,{0xBE,0xD6,0x00,0x00,}}, {0x5C41,2,{0xC6,0xA8,0x00,0x00,}}, {0x5C42,2,{0xB2,0xE3,0x00,0x00,}}, {0x5C43,2,{0x8C,0xC1,0x00,0x00,}}, {0x5C44,2,{0x8C,0xC2,0x00,0x00,}}, {0x5C45,2,{0xBE,0xD3,0x00,0x00,}}, {0x5C46,2,{0x8C,0xC3,0x00,0x00,}}, {0x5C47,2,{0x8C,0xC4,0x00,0x00,}}, {0x5C48,2,{0xC7,0xFC,0x00,0x00,}}, {0x5C49,2,{0xCC,0xEB,0x00,0x00,}}, {0x5C4A,2,{0xBD,0xEC,0x00,0x00,}}, {0x5C4B,2,{0xCE,0xDD,0x00,0x00,}}, {0x5C4C,2,{0x8C,0xC5,0x00,0x00,}}, {0x5C4D,2,{0x8C,0xC6,0x00,0x00,}}, {0x5C4E,2,{0xCA,0xBA,0x00,0x00,}}, {0x5C4F,2,{0xC6,0xC1,0x00,0x00,}}, {0x5C50,2,{0xE5,0xEC,0x00,0x00,}}, {0x5C51,2,{0xD0,0xBC,0x00,0x00,}}, {0x5C52,2,{0x8C,0xC7,0x00,0x00,}}, {0x5C53,2,{0x8C,0xC8,0x00,0x00,}}, {0x5C54,2,{0x8C,0xC9,0x00,0x00,}}, {0x5C55,2,{0xD5,0xB9,0x00,0x00,}}, {0x5C56,2,{0x8C,0xCA,0x00,0x00,}}, {0x5C57,2,{0x8C,0xCB,0x00,0x00,}}, {0x5C58,2,{0x8C,0xCC,0x00,0x00,}}, {0x5C59,2,{0xE5,0xED,0x00,0x00,}}, {0x5C5A,2,{0x8C,0xCD,0x00,0x00,}}, {0x5C5B,2,{0x8C,0xCE,0x00,0x00,}}, {0x5C5C,2,{0x8C,0xCF,0x00,0x00,}}, {0x5C5D,2,{0x8C,0xD0,0x00,0x00,}}, {0x5C5E,2,{0xCA,0xF4,0x00,0x00,}}, {0x5C5F,2,{0x8C,0xD1,0x00,0x00,}}, {0x5C60,2,{0xCD,0xC0,0x00,0x00,}}, {0x5C61,2,{0xC2,0xC5,0x00,0x00,}}, {0x5C62,2,{0x8C,0xD2,0x00,0x00,}}, {0x5C63,2,{0xE5,0xEF,0x00,0x00,}}, {0x5C64,2,{0x8C,0xD3,0x00,0x00,}}, {0x5C65,2,{0xC2,0xC4,0x00,0x00,}}, {0x5C66,2,{0xE5,0xF0,0x00,0x00,}}, {0x5C67,2,{0x8C,0xD4,0x00,0x00,}}, {0x5C68,2,{0x8C,0xD5,0x00,0x00,}}, {0x5C69,2,{0x8C,0xD6,0x00,0x00,}}, {0x5C6A,2,{0x8C,0xD7,0x00,0x00,}}, {0x5C6B,2,{0x8C,0xD8,0x00,0x00,}}, {0x5C6C,2,{0x8C,0xD9,0x00,0x00,}}, {0x5C6D,2,{0x8C,0xDA,0x00,0x00,}}, {0x5C6E,2,{0xE5,0xF8,0x00,0x00,}}, {0x5C6F,2,{0xCD,0xCD,0x00,0x00,}}, {0x5C70,2,{0x8C,0xDB,0x00,0x00,}}, {0x5C71,2,{0xC9,0xBD,0x00,0x00,}}, {0x5C72,2,{0x8C,0xDC,0x00,0x00,}}, {0x5C73,2,{0x8C,0xDD,0x00,0x00,}}, {0x5C74,2,{0x8C,0xDE,0x00,0x00,}}, {0x5C75,2,{0x8C,0xDF,0x00,0x00,}}, {0x5C76,2,{0x8C,0xE0,0x00,0x00,}}, {0x5C77,2,{0x8C,0xE1,0x00,0x00,}}, {0x5C78,2,{0x8C,0xE2,0x00,0x00,}}, {0x5C79,2,{0xD2,0xD9,0x00,0x00,}}, {0x5C7A,2,{0xE1,0xA8,0x00,0x00,}}, {0x5C7B,2,{0x8C,0xE3,0x00,0x00,}}, {0x5C7C,2,{0x8C,0xE4,0x00,0x00,}}, {0x5C7D,2,{0x8C,0xE5,0x00,0x00,}}, {0x5C7E,2,{0x8C,0xE6,0x00,0x00,}}, {0x5C7F,2,{0xD3,0xEC,0x00,0x00,}}, {0x5C80,2,{0x8C,0xE7,0x00,0x00,}}, {0x5C81,2,{0xCB,0xEA,0x00,0x00,}}, {0x5C82,2,{0xC6,0xF1,0x00,0x00,}}, {0x5C83,2,{0x8C,0xE8,0x00,0x00,}}, {0x5C84,2,{0x8C,0xE9,0x00,0x00,}}, {0x5C85,2,{0x8C,0xEA,0x00,0x00,}}, {0x5C86,2,{0x8C,0xEB,0x00,0x00,}}, {0x5C87,2,{0x8C,0xEC,0x00,0x00,}}, {0x5C88,2,{0xE1,0xAC,0x00,0x00,}}, {0x5C89,2,{0x8C,0xED,0x00,0x00,}}, {0x5C8A,2,{0x8C,0xEE,0x00,0x00,}}, {0x5C8B,2,{0x8C,0xEF,0x00,0x00,}}, {0x5C8C,2,{0xE1,0xA7,0x00,0x00,}}, {0x5C8D,2,{0xE1,0xA9,0x00,0x00,}}, {0x5C8E,2,{0x8C,0xF0,0x00,0x00,}}, {0x5C8F,2,{0x8C,0xF1,0x00,0x00,}}, {0x5C90,2,{0xE1,0xAA,0x00,0x00,}}, {0x5C91,2,{0xE1,0xAF,0x00,0x00,}}, {0x5C92,2,{0x8C,0xF2,0x00,0x00,}}, {0x5C93,2,{0x8C,0xF3,0x00,0x00,}}, {0x5C94,2,{0xB2,0xED,0x00,0x00,}}, {0x5C95,2,{0x8C,0xF4,0x00,0x00,}}, {0x5C96,2,{0xE1,0xAB,0x00,0x00,}}, {0x5C97,2,{0xB8,0xDA,0x00,0x00,}}, {0x5C98,2,{0xE1,0xAD,0x00,0x00,}}, {0x5C99,2,{0xE1,0xAE,0x00,0x00,}}, {0x5C9A,2,{0xE1,0xB0,0x00,0x00,}}, {0x5C9B,2,{0xB5,0xBA,0x00,0x00,}}, {0x5C9C,2,{0xE1,0xB1,0x00,0x00,}}, {0x5C9D,2,{0x8C,0xF5,0x00,0x00,}}, {0x5C9E,2,{0x8C,0xF6,0x00,0x00,}}, {0x5C9F,2,{0x8C,0xF7,0x00,0x00,}}, {0x5CA0,2,{0x8C,0xF8,0x00,0x00,}}, {0x5CA1,2,{0x8C,0xF9,0x00,0x00,}}, {0x5CA2,2,{0xE1,0xB3,0x00,0x00,}}, {0x5CA3,2,{0xE1,0xB8,0x00,0x00,}}, {0x5CA4,2,{0x8C,0xFA,0x00,0x00,}}, {0x5CA5,2,{0x8C,0xFB,0x00,0x00,}}, {0x5CA6,2,{0x8C,0xFC,0x00,0x00,}}, {0x5CA7,2,{0x8C,0xFD,0x00,0x00,}}, {0x5CA8,2,{0x8C,0xFE,0x00,0x00,}}, {0x5CA9,2,{0xD1,0xD2,0x00,0x00,}}, {0x5CAA,2,{0x8D,0x40,0x00,0x00,}}, {0x5CAB,2,{0xE1,0xB6,0x00,0x00,}}, {0x5CAC,2,{0xE1,0xB5,0x00,0x00,}}, {0x5CAD,2,{0xC1,0xEB,0x00,0x00,}}, {0x5CAE,2,{0x8D,0x41,0x00,0x00,}}, {0x5CAF,2,{0x8D,0x42,0x00,0x00,}}, {0x5CB0,2,{0x8D,0x43,0x00,0x00,}}, {0x5CB1,2,{0xE1,0xB7,0x00,0x00,}}, {0x5CB2,2,{0x8D,0x44,0x00,0x00,}}, {0x5CB3,2,{0xD4,0xC0,0x00,0x00,}}, {0x5CB4,2,{0x8D,0x45,0x00,0x00,}}, {0x5CB5,2,{0xE1,0xB2,0x00,0x00,}}, {0x5CB6,2,{0x8D,0x46,0x00,0x00,}}, {0x5CB7,2,{0xE1,0xBA,0x00,0x00,}}, {0x5CB8,2,{0xB0,0xB6,0x00,0x00,}}, {0x5CB9,2,{0x8D,0x47,0x00,0x00,}}, {0x5CBA,2,{0x8D,0x48,0x00,0x00,}}, {0x5CBB,2,{0x8D,0x49,0x00,0x00,}}, {0x5CBC,2,{0x8D,0x4A,0x00,0x00,}}, {0x5CBD,2,{0xE1,0xB4,0x00,0x00,}}, {0x5CBE,2,{0x8D,0x4B,0x00,0x00,}}, {0x5CBF,2,{0xBF,0xF9,0x00,0x00,}}, {0x5CC0,2,{0x8D,0x4C,0x00,0x00,}}, {0x5CC1,2,{0xE1,0xB9,0x00,0x00,}}, {0x5CC2,2,{0x8D,0x4D,0x00,0x00,}}, {0x5CC3,2,{0x8D,0x4E,0x00,0x00,}}, {0x5CC4,2,{0xE1,0xBB,0x00,0x00,}}, {0x5CC5,2,{0x8D,0x4F,0x00,0x00,}}, {0x5CC6,2,{0x8D,0x50,0x00,0x00,}}, {0x5CC7,2,{0x8D,0x51,0x00,0x00,}}, {0x5CC8,2,{0x8D,0x52,0x00,0x00,}}, {0x5CC9,2,{0x8D,0x53,0x00,0x00,}}, {0x5CCA,2,{0x8D,0x54,0x00,0x00,}}, {0x5CCB,2,{0xE1,0xBE,0x00,0x00,}}, {0x5CCC,2,{0x8D,0x55,0x00,0x00,}}, {0x5CCD,2,{0x8D,0x56,0x00,0x00,}}, {0x5CCE,2,{0x8D,0x57,0x00,0x00,}}, {0x5CCF,2,{0x8D,0x58,0x00,0x00,}}, {0x5CD0,2,{0x8D,0x59,0x00,0x00,}}, {0x5CD1,2,{0x8D,0x5A,0x00,0x00,}}, {0x5CD2,2,{0xE1,0xBC,0x00,0x00,}}, {0x5CD3,2,{0x8D,0x5B,0x00,0x00,}}, {0x5CD4,2,{0x8D,0x5C,0x00,0x00,}}, {0x5CD5,2,{0x8D,0x5D,0x00,0x00,}}, {0x5CD6,2,{0x8D,0x5E,0x00,0x00,}}, {0x5CD7,2,{0x8D,0x5F,0x00,0x00,}}, {0x5CD8,2,{0x8D,0x60,0x00,0x00,}}, {0x5CD9,2,{0xD6,0xC5,0x00,0x00,}}, {0x5CDA,2,{0x8D,0x61,0x00,0x00,}}, {0x5CDB,2,{0x8D,0x62,0x00,0x00,}}, {0x5CDC,2,{0x8D,0x63,0x00,0x00,}}, {0x5CDD,2,{0x8D,0x64,0x00,0x00,}}, {0x5CDE,2,{0x8D,0x65,0x00,0x00,}}, {0x5CDF,2,{0x8D,0x66,0x00,0x00,}}, {0x5CE0,2,{0x8D,0x67,0x00,0x00,}}, {0x5CE1,2,{0xCF,0xBF,0x00,0x00,}}, {0x5CE2,2,{0x8D,0x68,0x00,0x00,}}, {0x5CE3,2,{0x8D,0x69,0x00,0x00,}}, {0x5CE4,2,{0xE1,0xBD,0x00,0x00,}}, {0x5CE5,2,{0xE1,0xBF,0x00,0x00,}}, {0x5CE6,2,{0xC2,0xCD,0x00,0x00,}}, {0x5CE7,2,{0x8D,0x6A,0x00,0x00,}}, {0x5CE8,2,{0xB6,0xEB,0x00,0x00,}}, {0x5CE9,2,{0x8D,0x6B,0x00,0x00,}}, {0x5CEA,2,{0xD3,0xF8,0x00,0x00,}}, {0x5CEB,2,{0x8D,0x6C,0x00,0x00,}}, {0x5CEC,2,{0x8D,0x6D,0x00,0x00,}}, {0x5CED,2,{0xC7,0xCD,0x00,0x00,}}, {0x5CEE,2,{0x8D,0x6E,0x00,0x00,}}, {0x5CEF,2,{0x8D,0x6F,0x00,0x00,}}, {0x5CF0,2,{0xB7,0xE5,0x00,0x00,}}, {0x5CF1,2,{0x8D,0x70,0x00,0x00,}}, {0x5CF2,2,{0x8D,0x71,0x00,0x00,}}, {0x5CF3,2,{0x8D,0x72,0x00,0x00,}}, {0x5CF4,2,{0x8D,0x73,0x00,0x00,}}, {0x5CF5,2,{0x8D,0x74,0x00,0x00,}}, {0x5CF6,2,{0x8D,0x75,0x00,0x00,}}, {0x5CF7,2,{0x8D,0x76,0x00,0x00,}}, {0x5CF8,2,{0x8D,0x77,0x00,0x00,}}, {0x5CF9,2,{0x8D,0x78,0x00,0x00,}}, {0x5CFA,2,{0x8D,0x79,0x00,0x00,}}, {0x5CFB,2,{0xBE,0xFE,0x00,0x00,}}, {0x5CFC,2,{0x8D,0x7A,0x00,0x00,}}, {0x5CFD,2,{0x8D,0x7B,0x00,0x00,}}, {0x5CFE,2,{0x8D,0x7C,0x00,0x00,}}, {0x5CFF,2,{0x8D,0x7D,0x00,0x00,}}, {0x5D00,2,{0x8D,0x7E,0x00,0x00,}}, {0x5D01,2,{0x8D,0x80,0x00,0x00,}}, {0x5D02,2,{0xE1,0xC0,0x00,0x00,}}, {0x5D03,2,{0xE1,0xC1,0x00,0x00,}}, {0x5D04,2,{0x8D,0x81,0x00,0x00,}}, {0x5D05,2,{0x8D,0x82,0x00,0x00,}}, {0x5D06,2,{0xE1,0xC7,0x00,0x00,}}, {0x5D07,2,{0xB3,0xE7,0x00,0x00,}}, {0x5D08,2,{0x8D,0x83,0x00,0x00,}}, {0x5D09,2,{0x8D,0x84,0x00,0x00,}}, {0x5D0A,2,{0x8D,0x85,0x00,0x00,}}, {0x5D0B,2,{0x8D,0x86,0x00,0x00,}}, {0x5D0C,2,{0x8D,0x87,0x00,0x00,}}, {0x5D0D,2,{0x8D,0x88,0x00,0x00,}}, {0x5D0E,2,{0xC6,0xE9,0x00,0x00,}}, {0x5D0F,2,{0x8D,0x89,0x00,0x00,}}, {0x5D10,2,{0x8D,0x8A,0x00,0x00,}}, {0x5D11,2,{0x8D,0x8B,0x00,0x00,}}, {0x5D12,2,{0x8D,0x8C,0x00,0x00,}}, {0x5D13,2,{0x8D,0x8D,0x00,0x00,}}, {0x5D14,2,{0xB4,0xDE,0x00,0x00,}}, {0x5D15,2,{0x8D,0x8E,0x00,0x00,}}, {0x5D16,2,{0xD1,0xC2,0x00,0x00,}}, {0x5D17,2,{0x8D,0x8F,0x00,0x00,}}, {0x5D18,2,{0x8D,0x90,0x00,0x00,}}, {0x5D19,2,{0x8D,0x91,0x00,0x00,}}, {0x5D1A,2,{0x8D,0x92,0x00,0x00,}}, {0x5D1B,2,{0xE1,0xC8,0x00,0x00,}}, {0x5D1C,2,{0x8D,0x93,0x00,0x00,}}, {0x5D1D,2,{0x8D,0x94,0x00,0x00,}}, {0x5D1E,2,{0xE1,0xC6,0x00,0x00,}}, {0x5D1F,2,{0x8D,0x95,0x00,0x00,}}, {0x5D20,2,{0x8D,0x96,0x00,0x00,}}, {0x5D21,2,{0x8D,0x97,0x00,0x00,}}, {0x5D22,2,{0x8D,0x98,0x00,0x00,}}, {0x5D23,2,{0x8D,0x99,0x00,0x00,}}, {0x5D24,2,{0xE1,0xC5,0x00,0x00,}}, {0x5D25,2,{0x8D,0x9A,0x00,0x00,}}, {0x5D26,2,{0xE1,0xC3,0x00,0x00,}}, {0x5D27,2,{0xE1,0xC2,0x00,0x00,}}, {0x5D28,2,{0x8D,0x9B,0x00,0x00,}}, {0x5D29,2,{0xB1,0xC0,0x00,0x00,}}, {0x5D2A,2,{0x8D,0x9C,0x00,0x00,}}, {0x5D2B,2,{0x8D,0x9D,0x00,0x00,}}, {0x5D2C,2,{0x8D,0x9E,0x00,0x00,}}, {0x5D2D,2,{0xD5,0xB8,0x00,0x00,}}, {0x5D2E,2,{0xE1,0xC4,0x00,0x00,}}, {0x5D2F,2,{0x8D,0x9F,0x00,0x00,}}, {0x5D30,2,{0x8D,0xA0,0x00,0x00,}}, {0x5D31,2,{0x8D,0xA1,0x00,0x00,}}, {0x5D32,2,{0x8D,0xA2,0x00,0x00,}}, {0x5D33,2,{0x8D,0xA3,0x00,0x00,}}, {0x5D34,2,{0xE1,0xCB,0x00,0x00,}}, {0x5D35,2,{0x8D,0xA4,0x00,0x00,}}, {0x5D36,2,{0x8D,0xA5,0x00,0x00,}}, {0x5D37,2,{0x8D,0xA6,0x00,0x00,}}, {0x5D38,2,{0x8D,0xA7,0x00,0x00,}}, {0x5D39,2,{0x8D,0xA8,0x00,0x00,}}, {0x5D3A,2,{0x8D,0xA9,0x00,0x00,}}, {0x5D3B,2,{0x8D,0xAA,0x00,0x00,}}, {0x5D3C,2,{0x8D,0xAB,0x00,0x00,}}, {0x5D3D,2,{0xE1,0xCC,0x00,0x00,}}, {0x5D3E,2,{0xE1,0xCA,0x00,0x00,}}, {0x5D3F,2,{0x8D,0xAC,0x00,0x00,}}, {0x5D40,2,{0x8D,0xAD,0x00,0x00,}}, {0x5D41,2,{0x8D,0xAE,0x00,0x00,}}, {0x5D42,2,{0x8D,0xAF,0x00,0x00,}}, {0x5D43,2,{0x8D,0xB0,0x00,0x00,}}, {0x5D44,2,{0x8D,0xB1,0x00,0x00,}}, {0x5D45,2,{0x8D,0xB2,0x00,0x00,}}, {0x5D46,2,{0x8D,0xB3,0x00,0x00,}}, {0x5D47,2,{0xEF,0xFA,0x00,0x00,}}, {0x5D48,2,{0x8D,0xB4,0x00,0x00,}}, {0x5D49,2,{0x8D,0xB5,0x00,0x00,}}, {0x5D4A,2,{0xE1,0xD3,0x00,0x00,}}, {0x5D4B,2,{0xE1,0xD2,0x00,0x00,}}, {0x5D4C,2,{0xC7,0xB6,0x00,0x00,}}, {0x5D4D,2,{0x8D,0xB6,0x00,0x00,}}, {0x5D4E,2,{0x8D,0xB7,0x00,0x00,}}, {0x5D4F,2,{0x8D,0xB8,0x00,0x00,}}, {0x5D50,2,{0x8D,0xB9,0x00,0x00,}}, {0x5D51,2,{0x8D,0xBA,0x00,0x00,}}, {0x5D52,2,{0x8D,0xBB,0x00,0x00,}}, {0x5D53,2,{0x8D,0xBC,0x00,0x00,}}, {0x5D54,2,{0x8D,0xBD,0x00,0x00,}}, {0x5D55,2,{0x8D,0xBE,0x00,0x00,}}, {0x5D56,2,{0x8D,0xBF,0x00,0x00,}}, {0x5D57,2,{0x8D,0xC0,0x00,0x00,}}, {0x5D58,2,{0xE1,0xC9,0x00,0x00,}}, {0x5D59,2,{0x8D,0xC1,0x00,0x00,}}, {0x5D5A,2,{0x8D,0xC2,0x00,0x00,}}, {0x5D5B,2,{0xE1,0xCE,0x00,0x00,}}, {0x5D5C,2,{0x8D,0xC3,0x00,0x00,}}, {0x5D5D,2,{0xE1,0xD0,0x00,0x00,}}, {0x5D5E,2,{0x8D,0xC4,0x00,0x00,}}, {0x5D5F,2,{0x8D,0xC5,0x00,0x00,}}, {0x5D60,2,{0x8D,0xC6,0x00,0x00,}}, {0x5D61,2,{0x8D,0xC7,0x00,0x00,}}, {0x5D62,2,{0x8D,0xC8,0x00,0x00,}}, {0x5D63,2,{0x8D,0xC9,0x00,0x00,}}, {0x5D64,2,{0x8D,0xCA,0x00,0x00,}}, {0x5D65,2,{0x8D,0xCB,0x00,0x00,}}, {0x5D66,2,{0x8D,0xCC,0x00,0x00,}}, {0x5D67,2,{0x8D,0xCD,0x00,0x00,}}, {0x5D68,2,{0x8D,0xCE,0x00,0x00,}}, {0x5D69,2,{0xE1,0xD4,0x00,0x00,}}, {0x5D6A,2,{0x8D,0xCF,0x00,0x00,}}, {0x5D6B,2,{0xE1,0xD1,0x00,0x00,}}, {0x5D6C,2,{0xE1,0xCD,0x00,0x00,}}, {0x5D6D,2,{0x8D,0xD0,0x00,0x00,}}, {0x5D6E,2,{0x8D,0xD1,0x00,0x00,}}, {0x5D6F,2,{0xE1,0xCF,0x00,0x00,}}, {0x5D70,2,{0x8D,0xD2,0x00,0x00,}}, {0x5D71,2,{0x8D,0xD3,0x00,0x00,}}, {0x5D72,2,{0x8D,0xD4,0x00,0x00,}}, {0x5D73,2,{0x8D,0xD5,0x00,0x00,}}, {0x5D74,2,{0xE1,0xD5,0x00,0x00,}}, {0x5D75,2,{0x8D,0xD6,0x00,0x00,}}, {0x5D76,2,{0x8D,0xD7,0x00,0x00,}}, {0x5D77,2,{0x8D,0xD8,0x00,0x00,}}, {0x5D78,2,{0x8D,0xD9,0x00,0x00,}}, {0x5D79,2,{0x8D,0xDA,0x00,0x00,}}, {0x5D7A,2,{0x8D,0xDB,0x00,0x00,}}, {0x5D7B,2,{0x8D,0xDC,0x00,0x00,}}, {0x5D7C,2,{0x8D,0xDD,0x00,0x00,}}, {0x5D7D,2,{0x8D,0xDE,0x00,0x00,}}, {0x5D7E,2,{0x8D,0xDF,0x00,0x00,}}, {0x5D7F,2,{0x8D,0xE0,0x00,0x00,}}, {0x5D80,2,{0x8D,0xE1,0x00,0x00,}}, {0x5D81,2,{0x8D,0xE2,0x00,0x00,}}, {0x5D82,2,{0xE1,0xD6,0x00,0x00,}}, {0x5D83,2,{0x8D,0xE3,0x00,0x00,}}, {0x5D84,2,{0x8D,0xE4,0x00,0x00,}}, {0x5D85,2,{0x8D,0xE5,0x00,0x00,}}, {0x5D86,2,{0x8D,0xE6,0x00,0x00,}}, {0x5D87,2,{0x8D,0xE7,0x00,0x00,}}, {0x5D88,2,{0x8D,0xE8,0x00,0x00,}}, {0x5D89,2,{0x8D,0xE9,0x00,0x00,}}, {0x5D8A,2,{0x8D,0xEA,0x00,0x00,}}, {0x5D8B,2,{0x8D,0xEB,0x00,0x00,}}, {0x5D8C,2,{0x8D,0xEC,0x00,0x00,}}, {0x5D8D,2,{0x8D,0xED,0x00,0x00,}}, {0x5D8E,2,{0x8D,0xEE,0x00,0x00,}}, {0x5D8F,2,{0x8D,0xEF,0x00,0x00,}}, {0x5D90,2,{0x8D,0xF0,0x00,0x00,}}, {0x5D91,2,{0x8D,0xF1,0x00,0x00,}}, {0x5D92,2,{0x8D,0xF2,0x00,0x00,}}, {0x5D93,2,{0x8D,0xF3,0x00,0x00,}}, {0x5D94,2,{0x8D,0xF4,0x00,0x00,}}, {0x5D95,2,{0x8D,0xF5,0x00,0x00,}}, {0x5D96,2,{0x8D,0xF6,0x00,0x00,}}, {0x5D97,2,{0x8D,0xF7,0x00,0x00,}}, {0x5D98,2,{0x8D,0xF8,0x00,0x00,}}, {0x5D99,2,{0xE1,0xD7,0x00,0x00,}}, {0x5D9A,2,{0x8D,0xF9,0x00,0x00,}}, {0x5D9B,2,{0x8D,0xFA,0x00,0x00,}}, {0x5D9C,2,{0x8D,0xFB,0x00,0x00,}}, {0x5D9D,2,{0xE1,0xD8,0x00,0x00,}}, {0x5D9E,2,{0x8D,0xFC,0x00,0x00,}}, {0x5D9F,2,{0x8D,0xFD,0x00,0x00,}}, {0x5DA0,2,{0x8D,0xFE,0x00,0x00,}}, {0x5DA1,2,{0x8E,0x40,0x00,0x00,}}, {0x5DA2,2,{0x8E,0x41,0x00,0x00,}}, {0x5DA3,2,{0x8E,0x42,0x00,0x00,}}, {0x5DA4,2,{0x8E,0x43,0x00,0x00,}}, {0x5DA5,2,{0x8E,0x44,0x00,0x00,}}, {0x5DA6,2,{0x8E,0x45,0x00,0x00,}}, {0x5DA7,2,{0x8E,0x46,0x00,0x00,}}, {0x5DA8,2,{0x8E,0x47,0x00,0x00,}}, {0x5DA9,2,{0x8E,0x48,0x00,0x00,}}, {0x5DAA,2,{0x8E,0x49,0x00,0x00,}}, {0x5DAB,2,{0x8E,0x4A,0x00,0x00,}}, {0x5DAC,2,{0x8E,0x4B,0x00,0x00,}}, {0x5DAD,2,{0x8E,0x4C,0x00,0x00,}}, {0x5DAE,2,{0x8E,0x4D,0x00,0x00,}}, {0x5DAF,2,{0x8E,0x4E,0x00,0x00,}}, {0x5DB0,2,{0x8E,0x4F,0x00,0x00,}}, {0x5DB1,2,{0x8E,0x50,0x00,0x00,}}, {0x5DB2,2,{0x8E,0x51,0x00,0x00,}}, {0x5DB3,2,{0x8E,0x52,0x00,0x00,}}, {0x5DB4,2,{0x8E,0x53,0x00,0x00,}}, {0x5DB5,2,{0x8E,0x54,0x00,0x00,}}, {0x5DB6,2,{0x8E,0x55,0x00,0x00,}}, {0x5DB7,2,{0xE1,0xDA,0x00,0x00,}}, {0x5DB8,2,{0x8E,0x56,0x00,0x00,}}, {0x5DB9,2,{0x8E,0x57,0x00,0x00,}}, {0x5DBA,2,{0x8E,0x58,0x00,0x00,}}, {0x5DBB,2,{0x8E,0x59,0x00,0x00,}}, {0x5DBC,2,{0x8E,0x5A,0x00,0x00,}}, {0x5DBD,2,{0x8E,0x5B,0x00,0x00,}}, {0x5DBE,2,{0x8E,0x5C,0x00,0x00,}}, {0x5DBF,2,{0x8E,0x5D,0x00,0x00,}}, {0x5DC0,2,{0x8E,0x5E,0x00,0x00,}}, {0x5DC1,2,{0x8E,0x5F,0x00,0x00,}}, {0x5DC2,2,{0x8E,0x60,0x00,0x00,}}, {0x5DC3,2,{0x8E,0x61,0x00,0x00,}}, {0x5DC4,2,{0x8E,0x62,0x00,0x00,}}, {0x5DC5,2,{0xE1,0xDB,0x00,0x00,}}, {0x5DC6,2,{0x8E,0x63,0x00,0x00,}}, {0x5DC7,2,{0x8E,0x64,0x00,0x00,}}, {0x5DC8,2,{0x8E,0x65,0x00,0x00,}}, {0x5DC9,2,{0x8E,0x66,0x00,0x00,}}, {0x5DCA,2,{0x8E,0x67,0x00,0x00,}}, {0x5DCB,2,{0x8E,0x68,0x00,0x00,}}, {0x5DCC,2,{0x8E,0x69,0x00,0x00,}}, {0x5DCD,2,{0xCE,0xA1,0x00,0x00,}}, {0x5DCE,2,{0x8E,0x6A,0x00,0x00,}}, {0x5DCF,2,{0x8E,0x6B,0x00,0x00,}}, {0x5DD0,2,{0x8E,0x6C,0x00,0x00,}}, {0x5DD1,2,{0x8E,0x6D,0x00,0x00,}}, {0x5DD2,2,{0x8E,0x6E,0x00,0x00,}}, {0x5DD3,2,{0x8E,0x6F,0x00,0x00,}}, {0x5DD4,2,{0x8E,0x70,0x00,0x00,}}, {0x5DD5,2,{0x8E,0x71,0x00,0x00,}}, {0x5DD6,2,{0x8E,0x72,0x00,0x00,}}, {0x5DD7,2,{0x8E,0x73,0x00,0x00,}}, {0x5DD8,2,{0x8E,0x74,0x00,0x00,}}, {0x5DD9,2,{0x8E,0x75,0x00,0x00,}}, {0x5DDA,2,{0x8E,0x76,0x00,0x00,}}, {0x5DDB,2,{0xE7,0xDD,0x00,0x00,}}, {0x5DDC,2,{0x8E,0x77,0x00,0x00,}}, {0x5DDD,2,{0xB4,0xA8,0x00,0x00,}}, {0x5DDE,2,{0xD6,0xDD,0x00,0x00,}}, {0x5DDF,2,{0x8E,0x78,0x00,0x00,}}, {0x5DE0,2,{0x8E,0x79,0x00,0x00,}}, {0x5DE1,2,{0xD1,0xB2,0x00,0x00,}}, {0x5DE2,2,{0xB3,0xB2,0x00,0x00,}}, {0x5DE3,2,{0x8E,0x7A,0x00,0x00,}}, {0x5DE4,2,{0x8E,0x7B,0x00,0x00,}}, {0x5DE5,2,{0xB9,0xA4,0x00,0x00,}}, {0x5DE6,2,{0xD7,0xF3,0x00,0x00,}}, {0x5DE7,2,{0xC7,0xC9,0x00,0x00,}}, {0x5DE8,2,{0xBE,0xDE,0x00,0x00,}}, {0x5DE9,2,{0xB9,0xAE,0x00,0x00,}}, {0x5DEA,2,{0x8E,0x7C,0x00,0x00,}}, {0x5DEB,2,{0xCE,0xD7,0x00,0x00,}}, {0x5DEC,2,{0x8E,0x7D,0x00,0x00,}}, {0x5DED,2,{0x8E,0x7E,0x00,0x00,}}, {0x5DEE,2,{0xB2,0xEE,0x00,0x00,}}, {0x5DEF,2,{0xDB,0xCF,0x00,0x00,}}, {0x5DF0,2,{0x8E,0x80,0x00,0x00,}}, {0x5DF1,2,{0xBC,0xBA,0x00,0x00,}}, {0x5DF2,2,{0xD2,0xD1,0x00,0x00,}}, {0x5DF3,2,{0xCB,0xC8,0x00,0x00,}}, {0x5DF4,2,{0xB0,0xCD,0x00,0x00,}}, {0x5DF5,2,{0x8E,0x81,0x00,0x00,}}, {0x5DF6,2,{0x8E,0x82,0x00,0x00,}}, {0x5DF7,2,{0xCF,0xEF,0x00,0x00,}}, {0x5DF8,2,{0x8E,0x83,0x00,0x00,}}, {0x5DF9,2,{0x8E,0x84,0x00,0x00,}}, {0x5DFA,2,{0x8E,0x85,0x00,0x00,}}, {0x5DFB,2,{0x8E,0x86,0x00,0x00,}}, {0x5DFC,2,{0x8E,0x87,0x00,0x00,}}, {0x5DFD,2,{0xD9,0xE3,0x00,0x00,}}, {0x5DFE,2,{0xBD,0xED,0x00,0x00,}}, {0x5DFF,2,{0x8E,0x88,0x00,0x00,}}, {0x5E00,2,{0x8E,0x89,0x00,0x00,}}, {0x5E01,2,{0xB1,0xD2,0x00,0x00,}}, {0x5E02,2,{0xCA,0xD0,0x00,0x00,}}, {0x5E03,2,{0xB2,0xBC,0x00,0x00,}}, {0x5E04,2,{0x8E,0x8A,0x00,0x00,}}, {0x5E05,2,{0xCB,0xA7,0x00,0x00,}}, {0x5E06,2,{0xB7,0xAB,0x00,0x00,}}, {0x5E07,2,{0x8E,0x8B,0x00,0x00,}}, {0x5E08,2,{0xCA,0xA6,0x00,0x00,}}, {0x5E09,2,{0x8E,0x8C,0x00,0x00,}}, {0x5E0A,2,{0x8E,0x8D,0x00,0x00,}}, {0x5E0B,2,{0x8E,0x8E,0x00,0x00,}}, {0x5E0C,2,{0xCF,0xA3,0x00,0x00,}}, {0x5E0D,2,{0x8E,0x8F,0x00,0x00,}}, {0x5E0E,2,{0x8E,0x90,0x00,0x00,}}, {0x5E0F,2,{0xE0,0xF8,0x00,0x00,}}, {0x5E10,2,{0xD5,0xCA,0x00,0x00,}}, {0x5E11,2,{0xE0,0xFB,0x00,0x00,}}, {0x5E12,2,{0x8E,0x91,0x00,0x00,}}, {0x5E13,2,{0x8E,0x92,0x00,0x00,}}, {0x5E14,2,{0xE0,0xFA,0x00,0x00,}}, {0x5E15,2,{0xC5,0xC1,0x00,0x00,}}, {0x5E16,2,{0xCC,0xFB,0x00,0x00,}}, {0x5E17,2,{0x8E,0x93,0x00,0x00,}}, {0x5E18,2,{0xC1,0xB1,0x00,0x00,}}, {0x5E19,2,{0xE0,0xF9,0x00,0x00,}}, {0x5E1A,2,{0xD6,0xE3,0x00,0x00,}}, {0x5E1B,2,{0xB2,0xAF,0x00,0x00,}}, {0x5E1C,2,{0xD6,0xC4,0x00,0x00,}}, {0x5E1D,2,{0xB5,0xDB,0x00,0x00,}}, {0x5E1E,2,{0x8E,0x94,0x00,0x00,}}, {0x5E1F,2,{0x8E,0x95,0x00,0x00,}}, {0x5E20,2,{0x8E,0x96,0x00,0x00,}}, {0x5E21,2,{0x8E,0x97,0x00,0x00,}}, {0x5E22,2,{0x8E,0x98,0x00,0x00,}}, {0x5E23,2,{0x8E,0x99,0x00,0x00,}}, {0x5E24,2,{0x8E,0x9A,0x00,0x00,}}, {0x5E25,2,{0x8E,0x9B,0x00,0x00,}}, {0x5E26,2,{0xB4,0xF8,0x00,0x00,}}, {0x5E27,2,{0xD6,0xA1,0x00,0x00,}}, {0x5E28,2,{0x8E,0x9C,0x00,0x00,}}, {0x5E29,2,{0x8E,0x9D,0x00,0x00,}}, {0x5E2A,2,{0x8E,0x9E,0x00,0x00,}}, {0x5E2B,2,{0x8E,0x9F,0x00,0x00,}}, {0x5E2C,2,{0x8E,0xA0,0x00,0x00,}}, {0x5E2D,2,{0xCF,0xAF,0x00,0x00,}}, {0x5E2E,2,{0xB0,0xEF,0x00,0x00,}}, {0x5E2F,2,{0x8E,0xA1,0x00,0x00,}}, {0x5E30,2,{0x8E,0xA2,0x00,0x00,}}, {0x5E31,2,{0xE0,0xFC,0x00,0x00,}}, {0x5E32,2,{0x8E,0xA3,0x00,0x00,}}, {0x5E33,2,{0x8E,0xA4,0x00,0x00,}}, {0x5E34,2,{0x8E,0xA5,0x00,0x00,}}, {0x5E35,2,{0x8E,0xA6,0x00,0x00,}}, {0x5E36,2,{0x8E,0xA7,0x00,0x00,}}, {0x5E37,2,{0xE1,0xA1,0x00,0x00,}}, {0x5E38,2,{0xB3,0xA3,0x00,0x00,}}, {0x5E39,2,{0x8E,0xA8,0x00,0x00,}}, {0x5E3A,2,{0x8E,0xA9,0x00,0x00,}}, {0x5E3B,2,{0xE0,0xFD,0x00,0x00,}}, {0x5E3C,2,{0xE0,0xFE,0x00,0x00,}}, {0x5E3D,2,{0xC3,0xB1,0x00,0x00,}}, {0x5E3E,2,{0x8E,0xAA,0x00,0x00,}}, {0x5E3F,2,{0x8E,0xAB,0x00,0x00,}}, {0x5E40,2,{0x8E,0xAC,0x00,0x00,}}, {0x5E41,2,{0x8E,0xAD,0x00,0x00,}}, {0x5E42,2,{0xC3,0xDD,0x00,0x00,}}, {0x5E43,2,{0x8E,0xAE,0x00,0x00,}}, {0x5E44,2,{0xE1,0xA2,0x00,0x00,}}, {0x5E45,2,{0xB7,0xF9,0x00,0x00,}}, {0x5E46,2,{0x8E,0xAF,0x00,0x00,}}, {0x5E47,2,{0x8E,0xB0,0x00,0x00,}}, {0x5E48,2,{0x8E,0xB1,0x00,0x00,}}, {0x5E49,2,{0x8E,0xB2,0x00,0x00,}}, {0x5E4A,2,{0x8E,0xB3,0x00,0x00,}}, {0x5E4B,2,{0x8E,0xB4,0x00,0x00,}}, {0x5E4C,2,{0xBB,0xCF,0x00,0x00,}}, {0x5E4D,2,{0x8E,0xB5,0x00,0x00,}}, {0x5E4E,2,{0x8E,0xB6,0x00,0x00,}}, {0x5E4F,2,{0x8E,0xB7,0x00,0x00,}}, {0x5E50,2,{0x8E,0xB8,0x00,0x00,}}, {0x5E51,2,{0x8E,0xB9,0x00,0x00,}}, {0x5E52,2,{0x8E,0xBA,0x00,0x00,}}, {0x5E53,2,{0x8E,0xBB,0x00,0x00,}}, {0x5E54,2,{0xE1,0xA3,0x00,0x00,}}, {0x5E55,2,{0xC4,0xBB,0x00,0x00,}}, {0x5E56,2,{0x8E,0xBC,0x00,0x00,}}, {0x5E57,2,{0x8E,0xBD,0x00,0x00,}}, {0x5E58,2,{0x8E,0xBE,0x00,0x00,}}, {0x5E59,2,{0x8E,0xBF,0x00,0x00,}}, {0x5E5A,2,{0x8E,0xC0,0x00,0x00,}}, {0x5E5B,2,{0xE1,0xA4,0x00,0x00,}}, {0x5E5C,2,{0x8E,0xC1,0x00,0x00,}}, {0x5E5D,2,{0x8E,0xC2,0x00,0x00,}}, {0x5E5E,2,{0xE1,0xA5,0x00,0x00,}}, {0x5E5F,2,{0x8E,0xC3,0x00,0x00,}}, {0x5E60,2,{0x8E,0xC4,0x00,0x00,}}, {0x5E61,2,{0xE1,0xA6,0x00,0x00,}}, {0x5E62,2,{0xB4,0xB1,0x00,0x00,}}, {0x5E63,2,{0x8E,0xC5,0x00,0x00,}}, {0x5E64,2,{0x8E,0xC6,0x00,0x00,}}, {0x5E65,2,{0x8E,0xC7,0x00,0x00,}}, {0x5E66,2,{0x8E,0xC8,0x00,0x00,}}, {0x5E67,2,{0x8E,0xC9,0x00,0x00,}}, {0x5E68,2,{0x8E,0xCA,0x00,0x00,}}, {0x5E69,2,{0x8E,0xCB,0x00,0x00,}}, {0x5E6A,2,{0x8E,0xCC,0x00,0x00,}}, {0x5E6B,2,{0x8E,0xCD,0x00,0x00,}}, {0x5E6C,2,{0x8E,0xCE,0x00,0x00,}}, {0x5E6D,2,{0x8E,0xCF,0x00,0x00,}}, {0x5E6E,2,{0x8E,0xD0,0x00,0x00,}}, {0x5E6F,2,{0x8E,0xD1,0x00,0x00,}}, {0x5E70,2,{0x8E,0xD2,0x00,0x00,}}, {0x5E71,2,{0x8E,0xD3,0x00,0x00,}}, {0x5E72,2,{0xB8,0xC9,0x00,0x00,}}, {0x5E73,2,{0xC6,0xBD,0x00,0x00,}}, {0x5E74,2,{0xC4,0xEA,0x00,0x00,}}, {0x5E75,2,{0x8E,0xD4,0x00,0x00,}}, {0x5E76,2,{0xB2,0xA2,0x00,0x00,}}, {0x5E77,2,{0x8E,0xD5,0x00,0x00,}}, {0x5E78,2,{0xD0,0xD2,0x00,0x00,}}, {0x5E79,2,{0x8E,0xD6,0x00,0x00,}}, {0x5E7A,2,{0xE7,0xDB,0x00,0x00,}}, {0x5E7B,2,{0xBB,0xC3,0x00,0x00,}}, {0x5E7C,2,{0xD3,0xD7,0x00,0x00,}}, {0x5E7D,2,{0xD3,0xC4,0x00,0x00,}}, {0x5E7E,2,{0x8E,0xD7,0x00,0x00,}}, {0x5E7F,2,{0xB9,0xE3,0x00,0x00,}}, {0x5E80,2,{0xE2,0xCF,0x00,0x00,}}, {0x5E81,2,{0x8E,0xD8,0x00,0x00,}}, {0x5E82,2,{0x8E,0xD9,0x00,0x00,}}, {0x5E83,2,{0x8E,0xDA,0x00,0x00,}}, {0x5E84,2,{0xD7,0xAF,0x00,0x00,}}, {0x5E85,2,{0x8E,0xDB,0x00,0x00,}}, {0x5E86,2,{0xC7,0xEC,0x00,0x00,}}, {0x5E87,2,{0xB1,0xD3,0x00,0x00,}}, {0x5E88,2,{0x8E,0xDC,0x00,0x00,}}, {0x5E89,2,{0x8E,0xDD,0x00,0x00,}}, {0x5E8A,2,{0xB4,0xB2,0x00,0x00,}}, {0x5E8B,2,{0xE2,0xD1,0x00,0x00,}}, {0x5E8C,2,{0x8E,0xDE,0x00,0x00,}}, {0x5E8D,2,{0x8E,0xDF,0x00,0x00,}}, {0x5E8E,2,{0x8E,0xE0,0x00,0x00,}}, {0x5E8F,2,{0xD0,0xF2,0x00,0x00,}}, {0x5E90,2,{0xC2,0xAE,0x00,0x00,}}, {0x5E91,2,{0xE2,0xD0,0x00,0x00,}}, {0x5E92,2,{0x8E,0xE1,0x00,0x00,}}, {0x5E93,2,{0xBF,0xE2,0x00,0x00,}}, {0x5E94,2,{0xD3,0xA6,0x00,0x00,}}, {0x5E95,2,{0xB5,0xD7,0x00,0x00,}}, {0x5E96,2,{0xE2,0xD2,0x00,0x00,}}, {0x5E97,2,{0xB5,0xEA,0x00,0x00,}}, {0x5E98,2,{0x8E,0xE2,0x00,0x00,}}, {0x5E99,2,{0xC3,0xED,0x00,0x00,}}, {0x5E9A,2,{0xB8,0xFD,0x00,0x00,}}, {0x5E9B,2,{0x8E,0xE3,0x00,0x00,}}, {0x5E9C,2,{0xB8,0xAE,0x00,0x00,}}, {0x5E9D,2,{0x8E,0xE4,0x00,0x00,}}, {0x5E9E,2,{0xC5,0xD3,0x00,0x00,}}, {0x5E9F,2,{0xB7,0xCF,0x00,0x00,}}, {0x5EA0,2,{0xE2,0xD4,0x00,0x00,}}, {0x5EA1,2,{0x8E,0xE5,0x00,0x00,}}, {0x5EA2,2,{0x8E,0xE6,0x00,0x00,}}, {0x5EA3,2,{0x8E,0xE7,0x00,0x00,}}, {0x5EA4,2,{0x8E,0xE8,0x00,0x00,}}, {0x5EA5,2,{0xE2,0xD3,0x00,0x00,}}, {0x5EA6,2,{0xB6,0xC8,0x00,0x00,}}, {0x5EA7,2,{0xD7,0xF9,0x00,0x00,}}, {0x5EA8,2,{0x8E,0xE9,0x00,0x00,}}, {0x5EA9,2,{0x8E,0xEA,0x00,0x00,}}, {0x5EAA,2,{0x8E,0xEB,0x00,0x00,}}, {0x5EAB,2,{0x8E,0xEC,0x00,0x00,}}, {0x5EAC,2,{0x8E,0xED,0x00,0x00,}}, {0x5EAD,2,{0xCD,0xA5,0x00,0x00,}}, {0x5EAE,2,{0x8E,0xEE,0x00,0x00,}}, {0x5EAF,2,{0x8E,0xEF,0x00,0x00,}}, {0x5EB0,2,{0x8E,0xF0,0x00,0x00,}}, {0x5EB1,2,{0x8E,0xF1,0x00,0x00,}}, {0x5EB2,2,{0x8E,0xF2,0x00,0x00,}}, {0x5EB3,2,{0xE2,0xD8,0x00,0x00,}}, {0x5EB4,2,{0x8E,0xF3,0x00,0x00,}}, {0x5EB5,2,{0xE2,0xD6,0x00,0x00,}}, {0x5EB6,2,{0xCA,0xFC,0x00,0x00,}}, {0x5EB7,2,{0xBF,0xB5,0x00,0x00,}}, {0x5EB8,2,{0xD3,0xB9,0x00,0x00,}}, {0x5EB9,2,{0xE2,0xD5,0x00,0x00,}}, {0x5EBA,2,{0x8E,0xF4,0x00,0x00,}}, {0x5EBB,2,{0x8E,0xF5,0x00,0x00,}}, {0x5EBC,2,{0x8E,0xF6,0x00,0x00,}}, {0x5EBD,2,{0x8E,0xF7,0x00,0x00,}}, {0x5EBE,2,{0xE2,0xD7,0x00,0x00,}}, {0x5EBF,2,{0x8E,0xF8,0x00,0x00,}}, {0x5EC0,2,{0x8E,0xF9,0x00,0x00,}}, {0x5EC1,2,{0x8E,0xFA,0x00,0x00,}}, {0x5EC2,2,{0x8E,0xFB,0x00,0x00,}}, {0x5EC3,2,{0x8E,0xFC,0x00,0x00,}}, {0x5EC4,2,{0x8E,0xFD,0x00,0x00,}}, {0x5EC5,2,{0x8E,0xFE,0x00,0x00,}}, {0x5EC6,2,{0x8F,0x40,0x00,0x00,}}, {0x5EC7,2,{0x8F,0x41,0x00,0x00,}}, {0x5EC8,2,{0x8F,0x42,0x00,0x00,}}, {0x5EC9,2,{0xC1,0xAE,0x00,0x00,}}, {0x5ECA,2,{0xC0,0xC8,0x00,0x00,}}, {0x5ECB,2,{0x8F,0x43,0x00,0x00,}}, {0x5ECC,2,{0x8F,0x44,0x00,0x00,}}, {0x5ECD,2,{0x8F,0x45,0x00,0x00,}}, {0x5ECE,2,{0x8F,0x46,0x00,0x00,}}, {0x5ECF,2,{0x8F,0x47,0x00,0x00,}}, {0x5ED0,2,{0x8F,0x48,0x00,0x00,}}, {0x5ED1,2,{0xE2,0xDB,0x00,0x00,}}, {0x5ED2,2,{0xE2,0xDA,0x00,0x00,}}, {0x5ED3,2,{0xC0,0xAA,0x00,0x00,}}, {0x5ED4,2,{0x8F,0x49,0x00,0x00,}}, {0x5ED5,2,{0x8F,0x4A,0x00,0x00,}}, {0x5ED6,2,{0xC1,0xCE,0x00,0x00,}}, {0x5ED7,2,{0x8F,0x4B,0x00,0x00,}}, {0x5ED8,2,{0x8F,0x4C,0x00,0x00,}}, {0x5ED9,2,{0x8F,0x4D,0x00,0x00,}}, {0x5EDA,2,{0x8F,0x4E,0x00,0x00,}}, {0x5EDB,2,{0xE2,0xDC,0x00,0x00,}}, {0x5EDC,2,{0x8F,0x4F,0x00,0x00,}}, {0x5EDD,2,{0x8F,0x50,0x00,0x00,}}, {0x5EDE,2,{0x8F,0x51,0x00,0x00,}}, {0x5EDF,2,{0x8F,0x52,0x00,0x00,}}, {0x5EE0,2,{0x8F,0x53,0x00,0x00,}}, {0x5EE1,2,{0x8F,0x54,0x00,0x00,}}, {0x5EE2,2,{0x8F,0x55,0x00,0x00,}}, {0x5EE3,2,{0x8F,0x56,0x00,0x00,}}, {0x5EE4,2,{0x8F,0x57,0x00,0x00,}}, {0x5EE5,2,{0x8F,0x58,0x00,0x00,}}, {0x5EE6,2,{0x8F,0x59,0x00,0x00,}}, {0x5EE7,2,{0x8F,0x5A,0x00,0x00,}}, {0x5EE8,2,{0xE2,0xDD,0x00,0x00,}}, {0x5EE9,2,{0x8F,0x5B,0x00,0x00,}}, {0x5EEA,2,{0xE2,0xDE,0x00,0x00,}}, {0x5EEB,2,{0x8F,0x5C,0x00,0x00,}}, {0x5EEC,2,{0x8F,0x5D,0x00,0x00,}}, {0x5EED,2,{0x8F,0x5E,0x00,0x00,}}, {0x5EEE,2,{0x8F,0x5F,0x00,0x00,}}, {0x5EEF,2,{0x8F,0x60,0x00,0x00,}}, {0x5EF0,2,{0x8F,0x61,0x00,0x00,}}, {0x5EF1,2,{0x8F,0x62,0x00,0x00,}}, {0x5EF2,2,{0x8F,0x63,0x00,0x00,}}, {0x5EF3,2,{0x8F,0x64,0x00,0x00,}}, {0x5EF4,2,{0xDB,0xC8,0x00,0x00,}}, {0x5EF5,2,{0x8F,0x65,0x00,0x00,}}, {0x5EF6,2,{0xD1,0xD3,0x00,0x00,}}, {0x5EF7,2,{0xCD,0xA2,0x00,0x00,}}, {0x5EF8,2,{0x8F,0x66,0x00,0x00,}}, {0x5EF9,2,{0x8F,0x67,0x00,0x00,}}, {0x5EFA,2,{0xBD,0xA8,0x00,0x00,}}, {0x5EFB,2,{0x8F,0x68,0x00,0x00,}}, {0x5EFC,2,{0x8F,0x69,0x00,0x00,}}, {0x5EFD,2,{0x8F,0x6A,0x00,0x00,}}, {0x5EFE,2,{0xDE,0xC3,0x00,0x00,}}, {0x5EFF,2,{0xD8,0xA5,0x00,0x00,}}, {0x5F00,2,{0xBF,0xAA,0x00,0x00,}}, {0x5F01,2,{0xDB,0xCD,0x00,0x00,}}, {0x5F02,2,{0xD2,0xEC,0x00,0x00,}}, {0x5F03,2,{0xC6,0xFA,0x00,0x00,}}, {0x5F04,2,{0xC5,0xAA,0x00,0x00,}}, {0x5F05,2,{0x8F,0x6B,0x00,0x00,}}, {0x5F06,2,{0x8F,0x6C,0x00,0x00,}}, {0x5F07,2,{0x8F,0x6D,0x00,0x00,}}, {0x5F08,2,{0xDE,0xC4,0x00,0x00,}}, {0x5F09,2,{0x8F,0x6E,0x00,0x00,}}, {0x5F0A,2,{0xB1,0xD7,0x00,0x00,}}, {0x5F0B,2,{0xDF,0xAE,0x00,0x00,}}, {0x5F0C,2,{0x8F,0x6F,0x00,0x00,}}, {0x5F0D,2,{0x8F,0x70,0x00,0x00,}}, {0x5F0E,2,{0x8F,0x71,0x00,0x00,}}, {0x5F0F,2,{0xCA,0xBD,0x00,0x00,}}, {0x5F10,2,{0x8F,0x72,0x00,0x00,}}, {0x5F11,2,{0xDF,0xB1,0x00,0x00,}}, {0x5F12,2,{0x8F,0x73,0x00,0x00,}}, {0x5F13,2,{0xB9,0xAD,0x00,0x00,}}, {0x5F14,2,{0x8F,0x74,0x00,0x00,}}, {0x5F15,2,{0xD2,0xFD,0x00,0x00,}}, {0x5F16,2,{0x8F,0x75,0x00,0x00,}}, {0x5F17,2,{0xB8,0xA5,0x00,0x00,}}, {0x5F18,2,{0xBA,0xEB,0x00,0x00,}}, {0x5F19,2,{0x8F,0x76,0x00,0x00,}}, {0x5F1A,2,{0x8F,0x77,0x00,0x00,}}, {0x5F1B,2,{0xB3,0xDA,0x00,0x00,}}, {0x5F1C,2,{0x8F,0x78,0x00,0x00,}}, {0x5F1D,2,{0x8F,0x79,0x00,0x00,}}, {0x5F1E,2,{0x8F,0x7A,0x00,0x00,}}, {0x5F1F,2,{0xB5,0xDC,0x00,0x00,}}, {0x5F20,2,{0xD5,0xC5,0x00,0x00,}}, {0x5F21,2,{0x8F,0x7B,0x00,0x00,}}, {0x5F22,2,{0x8F,0x7C,0x00,0x00,}}, {0x5F23,2,{0x8F,0x7D,0x00,0x00,}}, {0x5F24,2,{0x8F,0x7E,0x00,0x00,}}, {0x5F25,2,{0xC3,0xD6,0x00,0x00,}}, {0x5F26,2,{0xCF,0xD2,0x00,0x00,}}, {0x5F27,2,{0xBB,0xA1,0x00,0x00,}}, {0x5F28,2,{0x8F,0x80,0x00,0x00,}}, {0x5F29,2,{0xE5,0xF3,0x00,0x00,}}, {0x5F2A,2,{0xE5,0xF2,0x00,0x00,}}, {0x5F2B,2,{0x8F,0x81,0x00,0x00,}}, {0x5F2C,2,{0x8F,0x82,0x00,0x00,}}, {0x5F2D,2,{0xE5,0xF4,0x00,0x00,}}, {0x5F2E,2,{0x8F,0x83,0x00,0x00,}}, {0x5F2F,2,{0xCD,0xE4,0x00,0x00,}}, {0x5F30,2,{0x8F,0x84,0x00,0x00,}}, {0x5F31,2,{0xC8,0xF5,0x00,0x00,}}, {0x5F32,2,{0x8F,0x85,0x00,0x00,}}, {0x5F33,2,{0x8F,0x86,0x00,0x00,}}, {0x5F34,2,{0x8F,0x87,0x00,0x00,}}, {0x5F35,2,{0x8F,0x88,0x00,0x00,}}, {0x5F36,2,{0x8F,0x89,0x00,0x00,}}, {0x5F37,2,{0x8F,0x8A,0x00,0x00,}}, {0x5F38,2,{0x8F,0x8B,0x00,0x00,}}, {0x5F39,2,{0xB5,0xAF,0x00,0x00,}}, {0x5F3A,2,{0xC7,0xBF,0x00,0x00,}}, {0x5F3B,2,{0x8F,0x8C,0x00,0x00,}}, {0x5F3C,2,{0xE5,0xF6,0x00,0x00,}}, {0x5F3D,2,{0x8F,0x8D,0x00,0x00,}}, {0x5F3E,2,{0x8F,0x8E,0x00,0x00,}}, {0x5F3F,2,{0x8F,0x8F,0x00,0x00,}}, {0x5F40,2,{0xEC,0xB0,0x00,0x00,}}, {0x5F41,2,{0x8F,0x90,0x00,0x00,}}, {0x5F42,2,{0x8F,0x91,0x00,0x00,}}, {0x5F43,2,{0x8F,0x92,0x00,0x00,}}, {0x5F44,2,{0x8F,0x93,0x00,0x00,}}, {0x5F45,2,{0x8F,0x94,0x00,0x00,}}, {0x5F46,2,{0x8F,0x95,0x00,0x00,}}, {0x5F47,2,{0x8F,0x96,0x00,0x00,}}, {0x5F48,2,{0x8F,0x97,0x00,0x00,}}, {0x5F49,2,{0x8F,0x98,0x00,0x00,}}, {0x5F4A,2,{0x8F,0x99,0x00,0x00,}}, {0x5F4B,2,{0x8F,0x9A,0x00,0x00,}}, {0x5F4C,2,{0x8F,0x9B,0x00,0x00,}}, {0x5F4D,2,{0x8F,0x9C,0x00,0x00,}}, {0x5F4E,2,{0x8F,0x9D,0x00,0x00,}}, {0x5F4F,2,{0x8F,0x9E,0x00,0x00,}}, {0x5F50,2,{0xE5,0xE6,0x00,0x00,}}, {0x5F51,2,{0x8F,0x9F,0x00,0x00,}}, {0x5F52,2,{0xB9,0xE9,0x00,0x00,}}, {0x5F53,2,{0xB5,0xB1,0x00,0x00,}}, {0x5F54,2,{0x8F,0xA0,0x00,0x00,}}, {0x5F55,2,{0xC2,0xBC,0x00,0x00,}}, {0x5F56,2,{0xE5,0xE8,0x00,0x00,}}, {0x5F57,2,{0xE5,0xE7,0x00,0x00,}}, {0x5F58,2,{0xE5,0xE9,0x00,0x00,}}, {0x5F59,2,{0x8F,0xA1,0x00,0x00,}}, {0x5F5A,2,{0x8F,0xA2,0x00,0x00,}}, {0x5F5B,2,{0x8F,0xA3,0x00,0x00,}}, {0x5F5C,2,{0x8F,0xA4,0x00,0x00,}}, {0x5F5D,2,{0xD2,0xCD,0x00,0x00,}}, {0x5F5E,2,{0x8F,0xA5,0x00,0x00,}}, {0x5F5F,2,{0x8F,0xA6,0x00,0x00,}}, {0x5F60,2,{0x8F,0xA7,0x00,0x00,}}, {0x5F61,2,{0xE1,0xEA,0x00,0x00,}}, {0x5F62,2,{0xD0,0xCE,0x00,0x00,}}, {0x5F63,2,{0x8F,0xA8,0x00,0x00,}}, {0x5F64,2,{0xCD,0xAE,0x00,0x00,}}, {0x5F65,2,{0x8F,0xA9,0x00,0x00,}}, {0x5F66,2,{0xD1,0xE5,0x00,0x00,}}, {0x5F67,2,{0x8F,0xAA,0x00,0x00,}}, {0x5F68,2,{0x8F,0xAB,0x00,0x00,}}, {0x5F69,2,{0xB2,0xCA,0x00,0x00,}}, {0x5F6A,2,{0xB1,0xEB,0x00,0x00,}}, {0x5F6B,2,{0x8F,0xAC,0x00,0x00,}}, {0x5F6C,2,{0xB1,0xF2,0x00,0x00,}}, {0x5F6D,2,{0xC5,0xED,0x00,0x00,}}, {0x5F6E,2,{0x8F,0xAD,0x00,0x00,}}, {0x5F6F,2,{0x8F,0xAE,0x00,0x00,}}, {0x5F70,2,{0xD5,0xC3,0x00,0x00,}}, {0x5F71,2,{0xD3,0xB0,0x00,0x00,}}, {0x5F72,2,{0x8F,0xAF,0x00,0x00,}}, {0x5F73,2,{0xE1,0xDC,0x00,0x00,}}, {0x5F74,2,{0x8F,0xB0,0x00,0x00,}}, {0x5F75,2,{0x8F,0xB1,0x00,0x00,}}, {0x5F76,2,{0x8F,0xB2,0x00,0x00,}}, {0x5F77,2,{0xE1,0xDD,0x00,0x00,}}, {0x5F78,2,{0x8F,0xB3,0x00,0x00,}}, {0x5F79,2,{0xD2,0xDB,0x00,0x00,}}, {0x5F7A,2,{0x8F,0xB4,0x00,0x00,}}, {0x5F7B,2,{0xB3,0xB9,0x00,0x00,}}, {0x5F7C,2,{0xB1,0xCB,0x00,0x00,}}, {0x5F7D,2,{0x8F,0xB5,0x00,0x00,}}, {0x5F7E,2,{0x8F,0xB6,0x00,0x00,}}, {0x5F7F,2,{0x8F,0xB7,0x00,0x00,}}, {0x5F80,2,{0xCD,0xF9,0x00,0x00,}}, {0x5F81,2,{0xD5,0xF7,0x00,0x00,}}, {0x5F82,2,{0xE1,0xDE,0x00,0x00,}}, {0x5F83,2,{0x8F,0xB8,0x00,0x00,}}, {0x5F84,2,{0xBE,0xB6,0x00,0x00,}}, {0x5F85,2,{0xB4,0xFD,0x00,0x00,}}, {0x5F86,2,{0x8F,0xB9,0x00,0x00,}}, {0x5F87,2,{0xE1,0xDF,0x00,0x00,}}, {0x5F88,2,{0xBA,0xDC,0x00,0x00,}}, {0x5F89,2,{0xE1,0xE0,0x00,0x00,}}, {0x5F8A,2,{0xBB,0xB2,0x00,0x00,}}, {0x5F8B,2,{0xC2,0xC9,0x00,0x00,}}, {0x5F8C,2,{0xE1,0xE1,0x00,0x00,}}, {0x5F8D,2,{0x8F,0xBA,0x00,0x00,}}, {0x5F8E,2,{0x8F,0xBB,0x00,0x00,}}, {0x5F8F,2,{0x8F,0xBC,0x00,0x00,}}, {0x5F90,2,{0xD0,0xEC,0x00,0x00,}}, {0x5F91,2,{0x8F,0xBD,0x00,0x00,}}, {0x5F92,2,{0xCD,0xBD,0x00,0x00,}}, {0x5F93,2,{0x8F,0xBE,0x00,0x00,}}, {0x5F94,2,{0x8F,0xBF,0x00,0x00,}}, {0x5F95,2,{0xE1,0xE2,0x00,0x00,}}, {0x5F96,2,{0x8F,0xC0,0x00,0x00,}}, {0x5F97,2,{0xB5,0xC3,0x00,0x00,}}, {0x5F98,2,{0xC5,0xC7,0x00,0x00,}}, {0x5F99,2,{0xE1,0xE3,0x00,0x00,}}, {0x5F9A,2,{0x8F,0xC1,0x00,0x00,}}, {0x5F9B,2,{0x8F,0xC2,0x00,0x00,}}, {0x5F9C,2,{0xE1,0xE4,0x00,0x00,}}, {0x5F9D,2,{0x8F,0xC3,0x00,0x00,}}, {0x5F9E,2,{0x8F,0xC4,0x00,0x00,}}, {0x5F9F,2,{0x8F,0xC5,0x00,0x00,}}, {0x5FA0,2,{0x8F,0xC6,0x00,0x00,}}, {0x5FA1,2,{0xD3,0xF9,0x00,0x00,}}, {0x5FA2,2,{0x8F,0xC7,0x00,0x00,}}, {0x5FA3,2,{0x8F,0xC8,0x00,0x00,}}, {0x5FA4,2,{0x8F,0xC9,0x00,0x00,}}, {0x5FA5,2,{0x8F,0xCA,0x00,0x00,}}, {0x5FA6,2,{0x8F,0xCB,0x00,0x00,}}, {0x5FA7,2,{0x8F,0xCC,0x00,0x00,}}, {0x5FA8,2,{0xE1,0xE5,0x00,0x00,}}, {0x5FA9,2,{0x8F,0xCD,0x00,0x00,}}, {0x5FAA,2,{0xD1,0xAD,0x00,0x00,}}, {0x5FAB,2,{0x8F,0xCE,0x00,0x00,}}, {0x5FAC,2,{0x8F,0xCF,0x00,0x00,}}, {0x5FAD,2,{0xE1,0xE6,0x00,0x00,}}, {0x5FAE,2,{0xCE,0xA2,0x00,0x00,}}, {0x5FAF,2,{0x8F,0xD0,0x00,0x00,}}, {0x5FB0,2,{0x8F,0xD1,0x00,0x00,}}, {0x5FB1,2,{0x8F,0xD2,0x00,0x00,}}, {0x5FB2,2,{0x8F,0xD3,0x00,0x00,}}, {0x5FB3,2,{0x8F,0xD4,0x00,0x00,}}, {0x5FB4,2,{0x8F,0xD5,0x00,0x00,}}, {0x5FB5,2,{0xE1,0xE7,0x00,0x00,}}, {0x5FB6,2,{0x8F,0xD6,0x00,0x00,}}, {0x5FB7,2,{0xB5,0xC2,0x00,0x00,}}, {0x5FB8,2,{0x8F,0xD7,0x00,0x00,}}, {0x5FB9,2,{0x8F,0xD8,0x00,0x00,}}, {0x5FBA,2,{0x8F,0xD9,0x00,0x00,}}, {0x5FBB,2,{0x8F,0xDA,0x00,0x00,}}, {0x5FBC,2,{0xE1,0xE8,0x00,0x00,}}, {0x5FBD,2,{0xBB,0xD5,0x00,0x00,}}, {0x5FBE,2,{0x8F,0xDB,0x00,0x00,}}, {0x5FBF,2,{0x8F,0xDC,0x00,0x00,}}, {0x5FC0,2,{0x8F,0xDD,0x00,0x00,}}, {0x5FC1,2,{0x8F,0xDE,0x00,0x00,}}, {0x5FC2,2,{0x8F,0xDF,0x00,0x00,}}, {0x5FC3,2,{0xD0,0xC4,0x00,0x00,}}, {0x5FC4,2,{0xE2,0xE0,0x00,0x00,}}, {0x5FC5,2,{0xB1,0xD8,0x00,0x00,}}, {0x5FC6,2,{0xD2,0xE4,0x00,0x00,}}, {0x5FC7,2,{0x8F,0xE0,0x00,0x00,}}, {0x5FC8,2,{0x8F,0xE1,0x00,0x00,}}, {0x5FC9,2,{0xE2,0xE1,0x00,0x00,}}, {0x5FCA,2,{0x8F,0xE2,0x00,0x00,}}, {0x5FCB,2,{0x8F,0xE3,0x00,0x00,}}, {0x5FCC,2,{0xBC,0xC9,0x00,0x00,}}, {0x5FCD,2,{0xC8,0xCC,0x00,0x00,}}, {0x5FCE,2,{0x8F,0xE4,0x00,0x00,}}, {0x5FCF,2,{0xE2,0xE3,0x00,0x00,}}, {0x5FD0,2,{0xEC,0xFE,0x00,0x00,}}, {0x5FD1,2,{0xEC,0xFD,0x00,0x00,}}, {0x5FD2,2,{0xDF,0xAF,0x00,0x00,}}, {0x5FD3,2,{0x8F,0xE5,0x00,0x00,}}, {0x5FD4,2,{0x8F,0xE6,0x00,0x00,}}, {0x5FD5,2,{0x8F,0xE7,0x00,0x00,}}, {0x5FD6,2,{0xE2,0xE2,0x00,0x00,}}, {0x5FD7,2,{0xD6,0xBE,0x00,0x00,}}, {0x5FD8,2,{0xCD,0xFC,0x00,0x00,}}, {0x5FD9,2,{0xC3,0xA6,0x00,0x00,}}, {0x5FDA,2,{0x8F,0xE8,0x00,0x00,}}, {0x5FDB,2,{0x8F,0xE9,0x00,0x00,}}, {0x5FDC,2,{0x8F,0xEA,0x00,0x00,}}, {0x5FDD,2,{0xE3,0xC3,0x00,0x00,}}, {0x5FDE,2,{0x8F,0xEB,0x00,0x00,}}, {0x5FDF,2,{0x8F,0xEC,0x00,0x00,}}, {0x5FE0,2,{0xD6,0xD2,0x00,0x00,}}, {0x5FE1,2,{0xE2,0xE7,0x00,0x00,}}, {0x5FE2,2,{0x8F,0xED,0x00,0x00,}}, {0x5FE3,2,{0x8F,0xEE,0x00,0x00,}}, {0x5FE4,2,{0xE2,0xE8,0x00,0x00,}}, {0x5FE5,2,{0x8F,0xEF,0x00,0x00,}}, {0x5FE6,2,{0x8F,0xF0,0x00,0x00,}}, {0x5FE7,2,{0xD3,0xC7,0x00,0x00,}}, {0x5FE8,2,{0x8F,0xF1,0x00,0x00,}}, {0x5FE9,2,{0x8F,0xF2,0x00,0x00,}}, {0x5FEA,2,{0xE2,0xEC,0x00,0x00,}}, {0x5FEB,2,{0xBF,0xEC,0x00,0x00,}}, {0x5FEC,2,{0x8F,0xF3,0x00,0x00,}}, {0x5FED,2,{0xE2,0xED,0x00,0x00,}}, {0x5FEE,2,{0xE2,0xE5,0x00,0x00,}}, {0x5FEF,2,{0x8F,0xF4,0x00,0x00,}}, {0x5FF0,2,{0x8F,0xF5,0x00,0x00,}}, {0x5FF1,2,{0xB3,0xC0,0x00,0x00,}}, {0x5FF2,2,{0x8F,0xF6,0x00,0x00,}}, {0x5FF3,2,{0x8F,0xF7,0x00,0x00,}}, {0x5FF4,2,{0x8F,0xF8,0x00,0x00,}}, {0x5FF5,2,{0xC4,0xEE,0x00,0x00,}}, {0x5FF6,2,{0x8F,0xF9,0x00,0x00,}}, {0x5FF7,2,{0x8F,0xFA,0x00,0x00,}}, {0x5FF8,2,{0xE2,0xEE,0x00,0x00,}}, {0x5FF9,2,{0x8F,0xFB,0x00,0x00,}}, {0x5FFA,2,{0x8F,0xFC,0x00,0x00,}}, {0x5FFB,2,{0xD0,0xC3,0x00,0x00,}}, {0x5FFC,2,{0x8F,0xFD,0x00,0x00,}}, {0x5FFD,2,{0xBA,0xF6,0x00,0x00,}}, {0x5FFE,2,{0xE2,0xE9,0x00,0x00,}}, {0x5FFF,2,{0xB7,0xDE,0x00,0x00,}}, {0x6000,2,{0xBB,0xB3,0x00,0x00,}}, {0x6001,2,{0xCC,0xAC,0x00,0x00,}}, {0x6002,2,{0xCB,0xCB,0x00,0x00,}}, {0x6003,2,{0xE2,0xE4,0x00,0x00,}}, {0x6004,2,{0xE2,0xE6,0x00,0x00,}}, {0x6005,2,{0xE2,0xEA,0x00,0x00,}}, {0x6006,2,{0xE2,0xEB,0x00,0x00,}}, {0x6007,2,{0x8F,0xFE,0x00,0x00,}}, {0x6008,2,{0x90,0x40,0x00,0x00,}}, {0x6009,2,{0x90,0x41,0x00,0x00,}}, {0x600A,2,{0xE2,0xF7,0x00,0x00,}}, {0x600B,2,{0x90,0x42,0x00,0x00,}}, {0x600C,2,{0x90,0x43,0x00,0x00,}}, {0x600D,2,{0xE2,0xF4,0x00,0x00,}}, {0x600E,2,{0xD4,0xF5,0x00,0x00,}}, {0x600F,2,{0xE2,0xF3,0x00,0x00,}}, {0x6010,2,{0x90,0x44,0x00,0x00,}}, {0x6011,2,{0x90,0x45,0x00,0x00,}}, {0x6012,2,{0xC5,0xAD,0x00,0x00,}}, {0x6013,2,{0x90,0x46,0x00,0x00,}}, {0x6014,2,{0xD5,0xFA,0x00,0x00,}}, {0x6015,2,{0xC5,0xC2,0x00,0x00,}}, {0x6016,2,{0xB2,0xC0,0x00,0x00,}}, {0x6017,2,{0x90,0x47,0x00,0x00,}}, {0x6018,2,{0x90,0x48,0x00,0x00,}}, {0x6019,2,{0xE2,0xEF,0x00,0x00,}}, {0x601A,2,{0x90,0x49,0x00,0x00,}}, {0x601B,2,{0xE2,0xF2,0x00,0x00,}}, {0x601C,2,{0xC1,0xAF,0x00,0x00,}}, {0x601D,2,{0xCB,0xBC,0x00,0x00,}}, {0x601E,2,{0x90,0x4A,0x00,0x00,}}, {0x601F,2,{0x90,0x4B,0x00,0x00,}}, {0x6020,2,{0xB5,0xA1,0x00,0x00,}}, {0x6021,2,{0xE2,0xF9,0x00,0x00,}}, {0x6022,2,{0x90,0x4C,0x00,0x00,}}, {0x6023,2,{0x90,0x4D,0x00,0x00,}}, {0x6024,2,{0x90,0x4E,0x00,0x00,}}, {0x6025,2,{0xBC,0xB1,0x00,0x00,}}, {0x6026,2,{0xE2,0xF1,0x00,0x00,}}, {0x6027,2,{0xD0,0xD4,0x00,0x00,}}, {0x6028,2,{0xD4,0xB9,0x00,0x00,}}, {0x6029,2,{0xE2,0xF5,0x00,0x00,}}, {0x602A,2,{0xB9,0xD6,0x00,0x00,}}, {0x602B,2,{0xE2,0xF6,0x00,0x00,}}, {0x602C,2,{0x90,0x4F,0x00,0x00,}}, {0x602D,2,{0x90,0x50,0x00,0x00,}}, {0x602E,2,{0x90,0x51,0x00,0x00,}}, {0x602F,2,{0xC7,0xD3,0x00,0x00,}}, {0x6030,2,{0x90,0x52,0x00,0x00,}}, {0x6031,2,{0x90,0x53,0x00,0x00,}}, {0x6032,2,{0x90,0x54,0x00,0x00,}}, {0x6033,2,{0x90,0x55,0x00,0x00,}}, {0x6034,2,{0x90,0x56,0x00,0x00,}}, {0x6035,2,{0xE2,0xF0,0x00,0x00,}}, {0x6036,2,{0x90,0x57,0x00,0x00,}}, {0x6037,2,{0x90,0x58,0x00,0x00,}}, {0x6038,2,{0x90,0x59,0x00,0x00,}}, {0x6039,2,{0x90,0x5A,0x00,0x00,}}, {0x603A,2,{0x90,0x5B,0x00,0x00,}}, {0x603B,2,{0xD7,0xDC,0x00,0x00,}}, {0x603C,2,{0xED,0xA1,0x00,0x00,}}, {0x603D,2,{0x90,0x5C,0x00,0x00,}}, {0x603E,2,{0x90,0x5D,0x00,0x00,}}, {0x603F,2,{0xE2,0xF8,0x00,0x00,}}, {0x6040,2,{0x90,0x5E,0x00,0x00,}}, {0x6041,2,{0xED,0xA5,0x00,0x00,}}, {0x6042,2,{0xE2,0xFE,0x00,0x00,}}, {0x6043,2,{0xCA,0xD1,0x00,0x00,}}, {0x6044,2,{0x90,0x5F,0x00,0x00,}}, {0x6045,2,{0x90,0x60,0x00,0x00,}}, {0x6046,2,{0x90,0x61,0x00,0x00,}}, {0x6047,2,{0x90,0x62,0x00,0x00,}}, {0x6048,2,{0x90,0x63,0x00,0x00,}}, {0x6049,2,{0x90,0x64,0x00,0x00,}}, {0x604A,2,{0x90,0x65,0x00,0x00,}}, {0x604B,2,{0xC1,0xB5,0x00,0x00,}}, {0x604C,2,{0x90,0x66,0x00,0x00,}}, {0x604D,2,{0xBB,0xD0,0x00,0x00,}}, {0x604E,2,{0x90,0x67,0x00,0x00,}}, {0x604F,2,{0x90,0x68,0x00,0x00,}}, {0x6050,2,{0xBF,0xD6,0x00,0x00,}}, {0x6051,2,{0x90,0x69,0x00,0x00,}}, {0x6052,2,{0xBA,0xE3,0x00,0x00,}}, {0x6053,2,{0x90,0x6A,0x00,0x00,}}, {0x6054,2,{0x90,0x6B,0x00,0x00,}}, {0x6055,2,{0xCB,0xA1,0x00,0x00,}}, {0x6056,2,{0x90,0x6C,0x00,0x00,}}, {0x6057,2,{0x90,0x6D,0x00,0x00,}}, {0x6058,2,{0x90,0x6E,0x00,0x00,}}, {0x6059,2,{0xED,0xA6,0x00,0x00,}}, {0x605A,2,{0xED,0xA3,0x00,0x00,}}, {0x605B,2,{0x90,0x6F,0x00,0x00,}}, {0x605C,2,{0x90,0x70,0x00,0x00,}}, {0x605D,2,{0xED,0xA2,0x00,0x00,}}, {0x605E,2,{0x90,0x71,0x00,0x00,}}, {0x605F,2,{0x90,0x72,0x00,0x00,}}, {0x6060,2,{0x90,0x73,0x00,0x00,}}, {0x6061,2,{0x90,0x74,0x00,0x00,}}, {0x6062,2,{0xBB,0xD6,0x00,0x00,}}, {0x6063,2,{0xED,0xA7,0x00,0x00,}}, {0x6064,2,{0xD0,0xF4,0x00,0x00,}}, {0x6065,2,{0x90,0x75,0x00,0x00,}}, {0x6066,2,{0x90,0x76,0x00,0x00,}}, {0x6067,2,{0xED,0xA4,0x00,0x00,}}, {0x6068,2,{0xBA,0xDE,0x00,0x00,}}, {0x6069,2,{0xB6,0xF7,0x00,0x00,}}, {0x606A,2,{0xE3,0xA1,0x00,0x00,}}, {0x606B,2,{0xB6,0xB2,0x00,0x00,}}, {0x606C,2,{0xCC,0xF1,0x00,0x00,}}, {0x606D,2,{0xB9,0xA7,0x00,0x00,}}, {0x606E,2,{0x90,0x77,0x00,0x00,}}, {0x606F,2,{0xCF,0xA2,0x00,0x00,}}, {0x6070,2,{0xC7,0xA1,0x00,0x00,}}, {0x6071,2,{0x90,0x78,0x00,0x00,}}, {0x6072,2,{0x90,0x79,0x00,0x00,}}, {0x6073,2,{0xBF,0xD2,0x00,0x00,}}, {0x6074,2,{0x90,0x7A,0x00,0x00,}}, {0x6075,2,{0x90,0x7B,0x00,0x00,}}, {0x6076,2,{0xB6,0xF1,0x00,0x00,}}, {0x6077,2,{0x90,0x7C,0x00,0x00,}}, {0x6078,2,{0xE2,0xFA,0x00,0x00,}}, {0x6079,2,{0xE2,0xFB,0x00,0x00,}}, {0x607A,2,{0xE2,0xFD,0x00,0x00,}}, {0x607B,2,{0xE2,0xFC,0x00,0x00,}}, {0x607C,2,{0xC4,0xD5,0x00,0x00,}}, {0x607D,2,{0xE3,0xA2,0x00,0x00,}}, {0x607E,2,{0x90,0x7D,0x00,0x00,}}, {0x607F,2,{0xD3,0xC1,0x00,0x00,}}, {0x6080,2,{0x90,0x7E,0x00,0x00,}}, {0x6081,2,{0x90,0x80,0x00,0x00,}}, {0x6082,2,{0x90,0x81,0x00,0x00,}}, {0x6083,2,{0xE3,0xA7,0x00,0x00,}}, {0x6084,2,{0xC7,0xC4,0x00,0x00,}}, {0x6085,2,{0x90,0x82,0x00,0x00,}}, {0x6086,2,{0x90,0x83,0x00,0x00,}}, {0x6087,2,{0x90,0x84,0x00,0x00,}}, {0x6088,2,{0x90,0x85,0x00,0x00,}}, {0x6089,2,{0xCF,0xA4,0x00,0x00,}}, {0x608A,2,{0x90,0x86,0x00,0x00,}}, {0x608B,2,{0x90,0x87,0x00,0x00,}}, {0x608C,2,{0xE3,0xA9,0x00,0x00,}}, {0x608D,2,{0xBA,0xB7,0x00,0x00,}}, {0x608E,2,{0x90,0x88,0x00,0x00,}}, {0x608F,2,{0x90,0x89,0x00,0x00,}}, {0x6090,2,{0x90,0x8A,0x00,0x00,}}, {0x6091,2,{0x90,0x8B,0x00,0x00,}}, {0x6092,2,{0xE3,0xA8,0x00,0x00,}}, {0x6093,2,{0x90,0x8C,0x00,0x00,}}, {0x6094,2,{0xBB,0xDA,0x00,0x00,}}, {0x6095,2,{0x90,0x8D,0x00,0x00,}}, {0x6096,2,{0xE3,0xA3,0x00,0x00,}}, {0x6097,2,{0x90,0x8E,0x00,0x00,}}, {0x6098,2,{0x90,0x8F,0x00,0x00,}}, {0x6099,2,{0x90,0x90,0x00,0x00,}}, {0x609A,2,{0xE3,0xA4,0x00,0x00,}}, {0x609B,2,{0xE3,0xAA,0x00,0x00,}}, {0x609C,2,{0x90,0x91,0x00,0x00,}}, {0x609D,2,{0xE3,0xA6,0x00,0x00,}}, {0x609E,2,{0x90,0x92,0x00,0x00,}}, {0x609F,2,{0xCE,0xF2,0x00,0x00,}}, {0x60A0,2,{0xD3,0xC6,0x00,0x00,}}, {0x60A1,2,{0x90,0x93,0x00,0x00,}}, {0x60A2,2,{0x90,0x94,0x00,0x00,}}, {0x60A3,2,{0xBB,0xBC,0x00,0x00,}}, {0x60A4,2,{0x90,0x95,0x00,0x00,}}, {0x60A5,2,{0x90,0x96,0x00,0x00,}}, {0x60A6,2,{0xD4,0xC3,0x00,0x00,}}, {0x60A7,2,{0x90,0x97,0x00,0x00,}}, {0x60A8,2,{0xC4,0xFA,0x00,0x00,}}, {0x60A9,2,{0x90,0x98,0x00,0x00,}}, {0x60AA,2,{0x90,0x99,0x00,0x00,}}, {0x60AB,2,{0xED,0xA8,0x00,0x00,}}, {0x60AC,2,{0xD0,0xFC,0x00,0x00,}}, {0x60AD,2,{0xE3,0xA5,0x00,0x00,}}, {0x60AE,2,{0x90,0x9A,0x00,0x00,}}, {0x60AF,2,{0xC3,0xF5,0x00,0x00,}}, {0x60B0,2,{0x90,0x9B,0x00,0x00,}}, {0x60B1,2,{0xE3,0xAD,0x00,0x00,}}, {0x60B2,2,{0xB1,0xAF,0x00,0x00,}}, {0x60B3,2,{0x90,0x9C,0x00,0x00,}}, {0x60B4,2,{0xE3,0xB2,0x00,0x00,}}, {0x60B5,2,{0x90,0x9D,0x00,0x00,}}, {0x60B6,2,{0x90,0x9E,0x00,0x00,}}, {0x60B7,2,{0x90,0x9F,0x00,0x00,}}, {0x60B8,2,{0xBC,0xC2,0x00,0x00,}}, {0x60B9,2,{0x90,0xA0,0x00,0x00,}}, {0x60BA,2,{0x90,0xA1,0x00,0x00,}}, {0x60BB,2,{0xE3,0xAC,0x00,0x00,}}, {0x60BC,2,{0xB5,0xBF,0x00,0x00,}}, {0x60BD,2,{0x90,0xA2,0x00,0x00,}}, {0x60BE,2,{0x90,0xA3,0x00,0x00,}}, {0x60BF,2,{0x90,0xA4,0x00,0x00,}}, {0x60C0,2,{0x90,0xA5,0x00,0x00,}}, {0x60C1,2,{0x90,0xA6,0x00,0x00,}}, {0x60C2,2,{0x90,0xA7,0x00,0x00,}}, {0x60C3,2,{0x90,0xA8,0x00,0x00,}}, {0x60C4,2,{0x90,0xA9,0x00,0x00,}}, {0x60C5,2,{0xC7,0xE9,0x00,0x00,}}, {0x60C6,2,{0xE3,0xB0,0x00,0x00,}}, {0x60C7,2,{0x90,0xAA,0x00,0x00,}}, {0x60C8,2,{0x90,0xAB,0x00,0x00,}}, {0x60C9,2,{0x90,0xAC,0x00,0x00,}}, {0x60CA,2,{0xBE,0xAA,0x00,0x00,}}, {0x60CB,2,{0xCD,0xEF,0x00,0x00,}}, {0x60CC,2,{0x90,0xAD,0x00,0x00,}}, {0x60CD,2,{0x90,0xAE,0x00,0x00,}}, {0x60CE,2,{0x90,0xAF,0x00,0x00,}}, {0x60CF,2,{0x90,0xB0,0x00,0x00,}}, {0x60D0,2,{0x90,0xB1,0x00,0x00,}}, {0x60D1,2,{0xBB,0xF3,0x00,0x00,}}, {0x60D2,2,{0x90,0xB2,0x00,0x00,}}, {0x60D3,2,{0x90,0xB3,0x00,0x00,}}, {0x60D4,2,{0x90,0xB4,0x00,0x00,}}, {0x60D5,2,{0xCC,0xE8,0x00,0x00,}}, {0x60D6,2,{0x90,0xB5,0x00,0x00,}}, {0x60D7,2,{0x90,0xB6,0x00,0x00,}}, {0x60D8,2,{0xE3,0xAF,0x00,0x00,}}, {0x60D9,2,{0x90,0xB7,0x00,0x00,}}, {0x60DA,2,{0xE3,0xB1,0x00,0x00,}}, {0x60DB,2,{0x90,0xB8,0x00,0x00,}}, {0x60DC,2,{0xCF,0xA7,0x00,0x00,}}, {0x60DD,2,{0xE3,0xAE,0x00,0x00,}}, {0x60DE,2,{0x90,0xB9,0x00,0x00,}}, {0x60DF,2,{0xCE,0xA9,0x00,0x00,}}, {0x60E0,2,{0xBB,0xDD,0x00,0x00,}}, {0x60E1,2,{0x90,0xBA,0x00,0x00,}}, {0x60E2,2,{0x90,0xBB,0x00,0x00,}}, {0x60E3,2,{0x90,0xBC,0x00,0x00,}}, {0x60E4,2,{0x90,0xBD,0x00,0x00,}}, {0x60E5,2,{0x90,0xBE,0x00,0x00,}}, {0x60E6,2,{0xB5,0xEB,0x00,0x00,}}, {0x60E7,2,{0xBE,0xE5,0x00,0x00,}}, {0x60E8,2,{0xB2,0xD2,0x00,0x00,}}, {0x60E9,2,{0xB3,0xCD,0x00,0x00,}}, {0x60EA,2,{0x90,0xBF,0x00,0x00,}}, {0x60EB,2,{0xB1,0xB9,0x00,0x00,}}, {0x60EC,2,{0xE3,0xAB,0x00,0x00,}}, {0x60ED,2,{0xB2,0xD1,0x00,0x00,}}, {0x60EE,2,{0xB5,0xAC,0x00,0x00,}}, {0x60EF,2,{0xB9,0xDF,0x00,0x00,}}, {0x60F0,2,{0xB6,0xE8,0x00,0x00,}}, {0x60F1,2,{0x90,0xC0,0x00,0x00,}}, {0x60F2,2,{0x90,0xC1,0x00,0x00,}}, {0x60F3,2,{0xCF,0xEB,0x00,0x00,}}, {0x60F4,2,{0xE3,0xB7,0x00,0x00,}}, {0x60F5,2,{0x90,0xC2,0x00,0x00,}}, {0x60F6,2,{0xBB,0xCC,0x00,0x00,}}, {0x60F7,2,{0x90,0xC3,0x00,0x00,}}, {0x60F8,2,{0x90,0xC4,0x00,0x00,}}, {0x60F9,2,{0xC8,0xC7,0x00,0x00,}}, {0x60FA,2,{0xD0,0xCA,0x00,0x00,}}, {0x60FB,2,{0x90,0xC5,0x00,0x00,}}, {0x60FC,2,{0x90,0xC6,0x00,0x00,}}, {0x60FD,2,{0x90,0xC7,0x00,0x00,}}, {0x60FE,2,{0x90,0xC8,0x00,0x00,}}, {0x60FF,2,{0x90,0xC9,0x00,0x00,}}, {0x6100,2,{0xE3,0xB8,0x00,0x00,}}, {0x6101,2,{0xB3,0xEE,0x00,0x00,}}, {0x6102,2,{0x90,0xCA,0x00,0x00,}}, {0x6103,2,{0x90,0xCB,0x00,0x00,}}, {0x6104,2,{0x90,0xCC,0x00,0x00,}}, {0x6105,2,{0x90,0xCD,0x00,0x00,}}, {0x6106,2,{0xED,0xA9,0x00,0x00,}}, {0x6107,2,{0x90,0xCE,0x00,0x00,}}, {0x6108,2,{0xD3,0xFA,0x00,0x00,}}, {0x6109,2,{0xD3,0xE4,0x00,0x00,}}, {0x610A,2,{0x90,0xCF,0x00,0x00,}}, {0x610B,2,{0x90,0xD0,0x00,0x00,}}, {0x610C,2,{0x90,0xD1,0x00,0x00,}}, {0x610D,2,{0xED,0xAA,0x00,0x00,}}, {0x610E,2,{0xE3,0xB9,0x00,0x00,}}, {0x610F,2,{0xD2,0xE2,0x00,0x00,}}, {0x6110,2,{0x90,0xD2,0x00,0x00,}}, {0x6111,2,{0x90,0xD3,0x00,0x00,}}, {0x6112,2,{0x90,0xD4,0x00,0x00,}}, {0x6113,2,{0x90,0xD5,0x00,0x00,}}, {0x6114,2,{0x90,0xD6,0x00,0x00,}}, {0x6115,2,{0xE3,0xB5,0x00,0x00,}}, {0x6116,2,{0x90,0xD7,0x00,0x00,}}, {0x6117,2,{0x90,0xD8,0x00,0x00,}}, {0x6118,2,{0x90,0xD9,0x00,0x00,}}, {0x6119,2,{0x90,0xDA,0x00,0x00,}}, {0x611A,2,{0xD3,0xDE,0x00,0x00,}}, {0x611B,2,{0x90,0xDB,0x00,0x00,}}, {0x611C,2,{0x90,0xDC,0x00,0x00,}}, {0x611D,2,{0x90,0xDD,0x00,0x00,}}, {0x611E,2,{0x90,0xDE,0x00,0x00,}}, {0x611F,2,{0xB8,0xD0,0x00,0x00,}}, {0x6120,2,{0xE3,0xB3,0x00,0x00,}}, {0x6121,2,{0x90,0xDF,0x00,0x00,}}, {0x6122,2,{0x90,0xE0,0x00,0x00,}}, {0x6123,2,{0xE3,0xB6,0x00,0x00,}}, {0x6124,2,{0xB7,0xDF,0x00,0x00,}}, {0x6125,2,{0x90,0xE1,0x00,0x00,}}, {0x6126,2,{0xE3,0xB4,0x00,0x00,}}, {0x6127,2,{0xC0,0xA2,0x00,0x00,}}, {0x6128,2,{0x90,0xE2,0x00,0x00,}}, {0x6129,2,{0x90,0xE3,0x00,0x00,}}, {0x612A,2,{0x90,0xE4,0x00,0x00,}}, {0x612B,2,{0xE3,0xBA,0x00,0x00,}}, {0x612C,2,{0x90,0xE5,0x00,0x00,}}, {0x612D,2,{0x90,0xE6,0x00,0x00,}}, {0x612E,2,{0x90,0xE7,0x00,0x00,}}, {0x612F,2,{0x90,0xE8,0x00,0x00,}}, {0x6130,2,{0x90,0xE9,0x00,0x00,}}, {0x6131,2,{0x90,0xEA,0x00,0x00,}}, {0x6132,2,{0x90,0xEB,0x00,0x00,}}, {0x6133,2,{0x90,0xEC,0x00,0x00,}}, {0x6134,2,{0x90,0xED,0x00,0x00,}}, {0x6135,2,{0x90,0xEE,0x00,0x00,}}, {0x6136,2,{0x90,0xEF,0x00,0x00,}}, {0x6137,2,{0x90,0xF0,0x00,0x00,}}, {0x6138,2,{0x90,0xF1,0x00,0x00,}}, {0x6139,2,{0x90,0xF2,0x00,0x00,}}, {0x613A,2,{0x90,0xF3,0x00,0x00,}}, {0x613B,2,{0x90,0xF4,0x00,0x00,}}, {0x613C,2,{0x90,0xF5,0x00,0x00,}}, {0x613D,2,{0x90,0xF6,0x00,0x00,}}, {0x613E,2,{0x90,0xF7,0x00,0x00,}}, {0x613F,2,{0xD4,0xB8,0x00,0x00,}}, {0x6140,2,{0x90,0xF8,0x00,0x00,}}, {0x6141,2,{0x90,0xF9,0x00,0x00,}}, {0x6142,2,{0x90,0xFA,0x00,0x00,}}, {0x6143,2,{0x90,0xFB,0x00,0x00,}}, {0x6144,2,{0x90,0xFC,0x00,0x00,}}, {0x6145,2,{0x90,0xFD,0x00,0x00,}}, {0x6146,2,{0x90,0xFE,0x00,0x00,}}, {0x6147,2,{0x91,0x40,0x00,0x00,}}, {0x6148,2,{0xB4,0xC8,0x00,0x00,}}, {0x6149,2,{0x91,0x41,0x00,0x00,}}, {0x614A,2,{0xE3,0xBB,0x00,0x00,}}, {0x614B,2,{0x91,0x42,0x00,0x00,}}, {0x614C,2,{0xBB,0xC5,0x00,0x00,}}, {0x614D,2,{0x91,0x43,0x00,0x00,}}, {0x614E,2,{0xC9,0xF7,0x00,0x00,}}, {0x614F,2,{0x91,0x44,0x00,0x00,}}, {0x6150,2,{0x91,0x45,0x00,0x00,}}, {0x6151,2,{0xC9,0xE5,0x00,0x00,}}, {0x6152,2,{0x91,0x46,0x00,0x00,}}, {0x6153,2,{0x91,0x47,0x00,0x00,}}, {0x6154,2,{0x91,0x48,0x00,0x00,}}, {0x6155,2,{0xC4,0xBD,0x00,0x00,}}, {0x6156,2,{0x91,0x49,0x00,0x00,}}, {0x6157,2,{0x91,0x4A,0x00,0x00,}}, {0x6158,2,{0x91,0x4B,0x00,0x00,}}, {0x6159,2,{0x91,0x4C,0x00,0x00,}}, {0x615A,2,{0x91,0x4D,0x00,0x00,}}, {0x615B,2,{0x91,0x4E,0x00,0x00,}}, {0x615C,2,{0x91,0x4F,0x00,0x00,}}, {0x615D,2,{0xED,0xAB,0x00,0x00,}}, {0x615E,2,{0x91,0x50,0x00,0x00,}}, {0x615F,2,{0x91,0x51,0x00,0x00,}}, {0x6160,2,{0x91,0x52,0x00,0x00,}}, {0x6161,2,{0x91,0x53,0x00,0x00,}}, {0x6162,2,{0xC2,0xFD,0x00,0x00,}}, {0x6163,2,{0x91,0x54,0x00,0x00,}}, {0x6164,2,{0x91,0x55,0x00,0x00,}}, {0x6165,2,{0x91,0x56,0x00,0x00,}}, {0x6166,2,{0x91,0x57,0x00,0x00,}}, {0x6167,2,{0xBB,0xDB,0x00,0x00,}}, {0x6168,2,{0xBF,0xAE,0x00,0x00,}}, {0x6169,2,{0x91,0x58,0x00,0x00,}}, {0x616A,2,{0x91,0x59,0x00,0x00,}}, {0x616B,2,{0x91,0x5A,0x00,0x00,}}, {0x616C,2,{0x91,0x5B,0x00,0x00,}}, {0x616D,2,{0x91,0x5C,0x00,0x00,}}, {0x616E,2,{0x91,0x5D,0x00,0x00,}}, {0x616F,2,{0x91,0x5E,0x00,0x00,}}, {0x6170,2,{0xCE,0xBF,0x00,0x00,}}, {0x6171,2,{0x91,0x5F,0x00,0x00,}}, {0x6172,2,{0x91,0x60,0x00,0x00,}}, {0x6173,2,{0x91,0x61,0x00,0x00,}}, {0x6174,2,{0x91,0x62,0x00,0x00,}}, {0x6175,2,{0xE3,0xBC,0x00,0x00,}}, {0x6176,2,{0x91,0x63,0x00,0x00,}}, {0x6177,2,{0xBF,0xB6,0x00,0x00,}}, {0x6178,2,{0x91,0x64,0x00,0x00,}}, {0x6179,2,{0x91,0x65,0x00,0x00,}}, {0x617A,2,{0x91,0x66,0x00,0x00,}}, {0x617B,2,{0x91,0x67,0x00,0x00,}}, {0x617C,2,{0x91,0x68,0x00,0x00,}}, {0x617D,2,{0x91,0x69,0x00,0x00,}}, {0x617E,2,{0x91,0x6A,0x00,0x00,}}, {0x617F,2,{0x91,0x6B,0x00,0x00,}}, {0x6180,2,{0x91,0x6C,0x00,0x00,}}, {0x6181,2,{0x91,0x6D,0x00,0x00,}}, {0x6182,2,{0x91,0x6E,0x00,0x00,}}, {0x6183,2,{0x91,0x6F,0x00,0x00,}}, {0x6184,2,{0x91,0x70,0x00,0x00,}}, {0x6185,2,{0x91,0x71,0x00,0x00,}}, {0x6186,2,{0x91,0x72,0x00,0x00,}}, {0x6187,2,{0x91,0x73,0x00,0x00,}}, {0x6188,2,{0x91,0x74,0x00,0x00,}}, {0x6189,2,{0x91,0x75,0x00,0x00,}}, {0x618A,2,{0x91,0x76,0x00,0x00,}}, {0x618B,2,{0xB1,0xEF,0x00,0x00,}}, {0x618C,2,{0x91,0x77,0x00,0x00,}}, {0x618D,2,{0x91,0x78,0x00,0x00,}}, {0x618E,2,{0xD4,0xF7,0x00,0x00,}}, {0x618F,2,{0x91,0x79,0x00,0x00,}}, {0x6190,2,{0x91,0x7A,0x00,0x00,}}, {0x6191,2,{0x91,0x7B,0x00,0x00,}}, {0x6192,2,{0x91,0x7C,0x00,0x00,}}, {0x6193,2,{0x91,0x7D,0x00,0x00,}}, {0x6194,2,{0xE3,0xBE,0x00,0x00,}}, {0x6195,2,{0x91,0x7E,0x00,0x00,}}, {0x6196,2,{0x91,0x80,0x00,0x00,}}, {0x6197,2,{0x91,0x81,0x00,0x00,}}, {0x6198,2,{0x91,0x82,0x00,0x00,}}, {0x6199,2,{0x91,0x83,0x00,0x00,}}, {0x619A,2,{0x91,0x84,0x00,0x00,}}, {0x619B,2,{0x91,0x85,0x00,0x00,}}, {0x619C,2,{0x91,0x86,0x00,0x00,}}, {0x619D,2,{0xED,0xAD,0x00,0x00,}}, {0x619E,2,{0x91,0x87,0x00,0x00,}}, {0x619F,2,{0x91,0x88,0x00,0x00,}}, {0x61A0,2,{0x91,0x89,0x00,0x00,}}, {0x61A1,2,{0x91,0x8A,0x00,0x00,}}, {0x61A2,2,{0x91,0x8B,0x00,0x00,}}, {0x61A3,2,{0x91,0x8C,0x00,0x00,}}, {0x61A4,2,{0x91,0x8D,0x00,0x00,}}, {0x61A5,2,{0x91,0x8E,0x00,0x00,}}, {0x61A6,2,{0x91,0x8F,0x00,0x00,}}, {0x61A7,2,{0xE3,0xBF,0x00,0x00,}}, {0x61A8,2,{0xBA,0xA9,0x00,0x00,}}, {0x61A9,2,{0xED,0xAC,0x00,0x00,}}, {0x61AA,2,{0x91,0x90,0x00,0x00,}}, {0x61AB,2,{0x91,0x91,0x00,0x00,}}, {0x61AC,2,{0xE3,0xBD,0x00,0x00,}}, {0x61AD,2,{0x91,0x92,0x00,0x00,}}, {0x61AE,2,{0x91,0x93,0x00,0x00,}}, {0x61AF,2,{0x91,0x94,0x00,0x00,}}, {0x61B0,2,{0x91,0x95,0x00,0x00,}}, {0x61B1,2,{0x91,0x96,0x00,0x00,}}, {0x61B2,2,{0x91,0x97,0x00,0x00,}}, {0x61B3,2,{0x91,0x98,0x00,0x00,}}, {0x61B4,2,{0x91,0x99,0x00,0x00,}}, {0x61B5,2,{0x91,0x9A,0x00,0x00,}}, {0x61B6,2,{0x91,0x9B,0x00,0x00,}}, {0x61B7,2,{0xE3,0xC0,0x00,0x00,}}, {0x61B8,2,{0x91,0x9C,0x00,0x00,}}, {0x61B9,2,{0x91,0x9D,0x00,0x00,}}, {0x61BA,2,{0x91,0x9E,0x00,0x00,}}, {0x61BB,2,{0x91,0x9F,0x00,0x00,}}, {0x61BC,2,{0x91,0xA0,0x00,0x00,}}, {0x61BD,2,{0x91,0xA1,0x00,0x00,}}, {0x61BE,2,{0xBA,0xB6,0x00,0x00,}}, {0x61BF,2,{0x91,0xA2,0x00,0x00,}}, {0x61C0,2,{0x91,0xA3,0x00,0x00,}}, {0x61C1,2,{0x91,0xA4,0x00,0x00,}}, {0x61C2,2,{0xB6,0xAE,0x00,0x00,}}, {0x61C3,2,{0x91,0xA5,0x00,0x00,}}, {0x61C4,2,{0x91,0xA6,0x00,0x00,}}, {0x61C5,2,{0x91,0xA7,0x00,0x00,}}, {0x61C6,2,{0x91,0xA8,0x00,0x00,}}, {0x61C7,2,{0x91,0xA9,0x00,0x00,}}, {0x61C8,2,{0xD0,0xB8,0x00,0x00,}}, {0x61C9,2,{0x91,0xAA,0x00,0x00,}}, {0x61CA,2,{0xB0,0xC3,0x00,0x00,}}, {0x61CB,2,{0xED,0xAE,0x00,0x00,}}, {0x61CC,2,{0x91,0xAB,0x00,0x00,}}, {0x61CD,2,{0x91,0xAC,0x00,0x00,}}, {0x61CE,2,{0x91,0xAD,0x00,0x00,}}, {0x61CF,2,{0x91,0xAE,0x00,0x00,}}, {0x61D0,2,{0x91,0xAF,0x00,0x00,}}, {0x61D1,2,{0xED,0xAF,0x00,0x00,}}, {0x61D2,2,{0xC0,0xC1,0x00,0x00,}}, {0x61D3,2,{0x91,0xB0,0x00,0x00,}}, {0x61D4,2,{0xE3,0xC1,0x00,0x00,}}, {0x61D5,2,{0x91,0xB1,0x00,0x00,}}, {0x61D6,2,{0x91,0xB2,0x00,0x00,}}, {0x61D7,2,{0x91,0xB3,0x00,0x00,}}, {0x61D8,2,{0x91,0xB4,0x00,0x00,}}, {0x61D9,2,{0x91,0xB5,0x00,0x00,}}, {0x61DA,2,{0x91,0xB6,0x00,0x00,}}, {0x61DB,2,{0x91,0xB7,0x00,0x00,}}, {0x61DC,2,{0x91,0xB8,0x00,0x00,}}, {0x61DD,2,{0x91,0xB9,0x00,0x00,}}, {0x61DE,2,{0x91,0xBA,0x00,0x00,}}, {0x61DF,2,{0x91,0xBB,0x00,0x00,}}, {0x61E0,2,{0x91,0xBC,0x00,0x00,}}, {0x61E1,2,{0x91,0xBD,0x00,0x00,}}, {0x61E2,2,{0x91,0xBE,0x00,0x00,}}, {0x61E3,2,{0x91,0xBF,0x00,0x00,}}, {0x61E4,2,{0x91,0xC0,0x00,0x00,}}, {0x61E5,2,{0x91,0xC1,0x00,0x00,}}, {0x61E6,2,{0xC5,0xB3,0x00,0x00,}}, {0x61E7,2,{0x91,0xC2,0x00,0x00,}}, {0x61E8,2,{0x91,0xC3,0x00,0x00,}}, {0x61E9,2,{0x91,0xC4,0x00,0x00,}}, {0x61EA,2,{0x91,0xC5,0x00,0x00,}}, {0x61EB,2,{0x91,0xC6,0x00,0x00,}}, {0x61EC,2,{0x91,0xC7,0x00,0x00,}}, {0x61ED,2,{0x91,0xC8,0x00,0x00,}}, {0x61EE,2,{0x91,0xC9,0x00,0x00,}}, {0x61EF,2,{0x91,0xCA,0x00,0x00,}}, {0x61F0,2,{0x91,0xCB,0x00,0x00,}}, {0x61F1,2,{0x91,0xCC,0x00,0x00,}}, {0x61F2,2,{0x91,0xCD,0x00,0x00,}}, {0x61F3,2,{0x91,0xCE,0x00,0x00,}}, {0x61F4,2,{0x91,0xCF,0x00,0x00,}}, {0x61F5,2,{0xE3,0xC2,0x00,0x00,}}, {0x61F6,2,{0x91,0xD0,0x00,0x00,}}, {0x61F7,2,{0x91,0xD1,0x00,0x00,}}, {0x61F8,2,{0x91,0xD2,0x00,0x00,}}, {0x61F9,2,{0x91,0xD3,0x00,0x00,}}, {0x61FA,2,{0x91,0xD4,0x00,0x00,}}, {0x61FB,2,{0x91,0xD5,0x00,0x00,}}, {0x61FC,2,{0x91,0xD6,0x00,0x00,}}, {0x61FD,2,{0x91,0xD7,0x00,0x00,}}, {0x61FE,2,{0x91,0xD8,0x00,0x00,}}, {0x61FF,2,{0xDC,0xB2,0x00,0x00,}}, {0x6200,2,{0x91,0xD9,0x00,0x00,}}, {0x6201,2,{0x91,0xDA,0x00,0x00,}}, {0x6202,2,{0x91,0xDB,0x00,0x00,}}, {0x6203,2,{0x91,0xDC,0x00,0x00,}}, {0x6204,2,{0x91,0xDD,0x00,0x00,}}, {0x6205,2,{0x91,0xDE,0x00,0x00,}}, {0x6206,2,{0xED,0xB0,0x00,0x00,}}, {0x6207,2,{0x91,0xDF,0x00,0x00,}}, {0x6208,2,{0xB8,0xEA,0x00,0x00,}}, {0x6209,2,{0x91,0xE0,0x00,0x00,}}, {0x620A,2,{0xCE,0xEC,0x00,0x00,}}, {0x620B,2,{0xEA,0xA7,0x00,0x00,}}, {0x620C,2,{0xD0,0xE7,0x00,0x00,}}, {0x620D,2,{0xCA,0xF9,0x00,0x00,}}, {0x620E,2,{0xC8,0xD6,0x00,0x00,}}, {0x620F,2,{0xCF,0xB7,0x00,0x00,}}, {0x6210,2,{0xB3,0xC9,0x00,0x00,}}, {0x6211,2,{0xCE,0xD2,0x00,0x00,}}, {0x6212,2,{0xBD,0xE4,0x00,0x00,}}, {0x6213,2,{0x91,0xE1,0x00,0x00,}}, {0x6214,2,{0x91,0xE2,0x00,0x00,}}, {0x6215,2,{0xE3,0xDE,0x00,0x00,}}, {0x6216,2,{0xBB,0xF2,0x00,0x00,}}, {0x6217,2,{0xEA,0xA8,0x00,0x00,}}, {0x6218,2,{0xD5,0xBD,0x00,0x00,}}, {0x6219,2,{0x91,0xE3,0x00,0x00,}}, {0x621A,2,{0xC6,0xDD,0x00,0x00,}}, {0x621B,2,{0xEA,0xA9,0x00,0x00,}}, {0x621C,2,{0x91,0xE4,0x00,0x00,}}, {0x621D,2,{0x91,0xE5,0x00,0x00,}}, {0x621E,2,{0x91,0xE6,0x00,0x00,}}, {0x621F,2,{0xEA,0xAA,0x00,0x00,}}, {0x6220,2,{0x91,0xE7,0x00,0x00,}}, {0x6221,2,{0xEA,0xAC,0x00,0x00,}}, {0x6222,2,{0xEA,0xAB,0x00,0x00,}}, {0x6223,2,{0x91,0xE8,0x00,0x00,}}, {0x6224,2,{0xEA,0xAE,0x00,0x00,}}, {0x6225,2,{0xEA,0xAD,0x00,0x00,}}, {0x6226,2,{0x91,0xE9,0x00,0x00,}}, {0x6227,2,{0x91,0xEA,0x00,0x00,}}, {0x6228,2,{0x91,0xEB,0x00,0x00,}}, {0x6229,2,{0x91,0xEC,0x00,0x00,}}, {0x622A,2,{0xBD,0xD8,0x00,0x00,}}, {0x622B,2,{0x91,0xED,0x00,0x00,}}, {0x622C,2,{0xEA,0xAF,0x00,0x00,}}, {0x622D,2,{0x91,0xEE,0x00,0x00,}}, {0x622E,2,{0xC2,0xBE,0x00,0x00,}}, {0x622F,2,{0x91,0xEF,0x00,0x00,}}, {0x6230,2,{0x91,0xF0,0x00,0x00,}}, {0x6231,2,{0x91,0xF1,0x00,0x00,}}, {0x6232,2,{0x91,0xF2,0x00,0x00,}}, {0x6233,2,{0xB4,0xC1,0x00,0x00,}}, {0x6234,2,{0xB4,0xF7,0x00,0x00,}}, {0x6235,2,{0x91,0xF3,0x00,0x00,}}, {0x6236,2,{0x91,0xF4,0x00,0x00,}}, {0x6237,2,{0xBB,0xA7,0x00,0x00,}}, {0x6238,2,{0x91,0xF5,0x00,0x00,}}, {0x6239,2,{0x91,0xF6,0x00,0x00,}}, {0x623A,2,{0x91,0xF7,0x00,0x00,}}, {0x623B,2,{0x91,0xF8,0x00,0x00,}}, {0x623C,2,{0x91,0xF9,0x00,0x00,}}, {0x623D,2,{0xEC,0xE6,0x00,0x00,}}, {0x623E,2,{0xEC,0xE5,0x00,0x00,}}, {0x623F,2,{0xB7,0xBF,0x00,0x00,}}, {0x6240,2,{0xCB,0xF9,0x00,0x00,}}, {0x6241,2,{0xB1,0xE2,0x00,0x00,}}, {0x6242,2,{0x91,0xFA,0x00,0x00,}}, {0x6243,2,{0xEC,0xE7,0x00,0x00,}}, {0x6244,2,{0x91,0xFB,0x00,0x00,}}, {0x6245,2,{0x91,0xFC,0x00,0x00,}}, {0x6246,2,{0x91,0xFD,0x00,0x00,}}, {0x6247,2,{0xC9,0xC8,0x00,0x00,}}, {0x6248,2,{0xEC,0xE8,0x00,0x00,}}, {0x6249,2,{0xEC,0xE9,0x00,0x00,}}, {0x624A,2,{0x91,0xFE,0x00,0x00,}}, {0x624B,2,{0xCA,0xD6,0x00,0x00,}}, {0x624C,2,{0xDE,0xD0,0x00,0x00,}}, {0x624D,2,{0xB2,0xC5,0x00,0x00,}}, {0x624E,2,{0xD4,0xFA,0x00,0x00,}}, {0x624F,2,{0x92,0x40,0x00,0x00,}}, {0x6250,2,{0x92,0x41,0x00,0x00,}}, {0x6251,2,{0xC6,0xCB,0x00,0x00,}}, {0x6252,2,{0xB0,0xC7,0x00,0x00,}}, {0x6253,2,{0xB4,0xF2,0x00,0x00,}}, {0x6254,2,{0xC8,0xD3,0x00,0x00,}}, {0x6255,2,{0x92,0x42,0x00,0x00,}}, {0x6256,2,{0x92,0x43,0x00,0x00,}}, {0x6257,2,{0x92,0x44,0x00,0x00,}}, {0x6258,2,{0xCD,0xD0,0x00,0x00,}}, {0x6259,2,{0x92,0x45,0x00,0x00,}}, {0x625A,2,{0x92,0x46,0x00,0x00,}}, {0x625B,2,{0xBF,0xB8,0x00,0x00,}}, {0x625C,2,{0x92,0x47,0x00,0x00,}}, {0x625D,2,{0x92,0x48,0x00,0x00,}}, {0x625E,2,{0x92,0x49,0x00,0x00,}}, {0x625F,2,{0x92,0x4A,0x00,0x00,}}, {0x6260,2,{0x92,0x4B,0x00,0x00,}}, {0x6261,2,{0x92,0x4C,0x00,0x00,}}, {0x6262,2,{0x92,0x4D,0x00,0x00,}}, {0x6263,2,{0xBF,0xDB,0x00,0x00,}}, {0x6264,2,{0x92,0x4E,0x00,0x00,}}, {0x6265,2,{0x92,0x4F,0x00,0x00,}}, {0x6266,2,{0xC7,0xA4,0x00,0x00,}}, {0x6267,2,{0xD6,0xB4,0x00,0x00,}}, {0x6268,2,{0x92,0x50,0x00,0x00,}}, {0x6269,2,{0xC0,0xA9,0x00,0x00,}}, {0x626A,2,{0xDE,0xD1,0x00,0x00,}}, {0x626B,2,{0xC9,0xA8,0x00,0x00,}}, {0x626C,2,{0xD1,0xEF,0x00,0x00,}}, {0x626D,2,{0xC5,0xA4,0x00,0x00,}}, {0x626E,2,{0xB0,0xE7,0x00,0x00,}}, {0x626F,2,{0xB3,0xB6,0x00,0x00,}}, {0x6270,2,{0xC8,0xC5,0x00,0x00,}}, {0x6271,2,{0x92,0x51,0x00,0x00,}}, {0x6272,2,{0x92,0x52,0x00,0x00,}}, {0x6273,2,{0xB0,0xE2,0x00,0x00,}}, {0x6274,2,{0x92,0x53,0x00,0x00,}}, {0x6275,2,{0x92,0x54,0x00,0x00,}}, {0x6276,2,{0xB7,0xF6,0x00,0x00,}}, {0x6277,2,{0x92,0x55,0x00,0x00,}}, {0x6278,2,{0x92,0x56,0x00,0x00,}}, {0x6279,2,{0xC5,0xFA,0x00,0x00,}}, {0x627A,2,{0x92,0x57,0x00,0x00,}}, {0x627B,2,{0x92,0x58,0x00,0x00,}}, {0x627C,2,{0xB6,0xF3,0x00,0x00,}}, {0x627D,2,{0x92,0x59,0x00,0x00,}}, {0x627E,2,{0xD5,0xD2,0x00,0x00,}}, {0x627F,2,{0xB3,0xD0,0x00,0x00,}}, {0x6280,2,{0xBC,0xBC,0x00,0x00,}}, {0x6281,2,{0x92,0x5A,0x00,0x00,}}, {0x6282,2,{0x92,0x5B,0x00,0x00,}}, {0x6283,2,{0x92,0x5C,0x00,0x00,}}, {0x6284,2,{0xB3,0xAD,0x00,0x00,}}, {0x6285,2,{0x92,0x5D,0x00,0x00,}}, {0x6286,2,{0x92,0x5E,0x00,0x00,}}, {0x6287,2,{0x92,0x5F,0x00,0x00,}}, {0x6288,2,{0x92,0x60,0x00,0x00,}}, {0x6289,2,{0xBE,0xF1,0x00,0x00,}}, {0x628A,2,{0xB0,0xD1,0x00,0x00,}}, {0x628B,2,{0x92,0x61,0x00,0x00,}}, {0x628C,2,{0x92,0x62,0x00,0x00,}}, {0x628D,2,{0x92,0x63,0x00,0x00,}}, {0x628E,2,{0x92,0x64,0x00,0x00,}}, {0x628F,2,{0x92,0x65,0x00,0x00,}}, {0x6290,2,{0x92,0x66,0x00,0x00,}}, {0x6291,2,{0xD2,0xD6,0x00,0x00,}}, {0x6292,2,{0xCA,0xE3,0x00,0x00,}}, {0x6293,2,{0xD7,0xA5,0x00,0x00,}}, {0x6294,2,{0x92,0x67,0x00,0x00,}}, {0x6295,2,{0xCD,0xB6,0x00,0x00,}}, {0x6296,2,{0xB6,0xB6,0x00,0x00,}}, {0x6297,2,{0xBF,0xB9,0x00,0x00,}}, {0x6298,2,{0xD5,0xDB,0x00,0x00,}}, {0x6299,2,{0x92,0x68,0x00,0x00,}}, {0x629A,2,{0xB8,0xA7,0x00,0x00,}}, {0x629B,2,{0xC5,0xD7,0x00,0x00,}}, {0x629C,2,{0x92,0x69,0x00,0x00,}}, {0x629D,2,{0x92,0x6A,0x00,0x00,}}, {0x629E,2,{0x92,0x6B,0x00,0x00,}}, {0x629F,2,{0xDE,0xD2,0x00,0x00,}}, {0x62A0,2,{0xBF,0xD9,0x00,0x00,}}, {0x62A1,2,{0xC2,0xD5,0x00,0x00,}}, {0x62A2,2,{0xC7,0xC0,0x00,0x00,}}, {0x62A3,2,{0x92,0x6C,0x00,0x00,}}, {0x62A4,2,{0xBB,0xA4,0x00,0x00,}}, {0x62A5,2,{0xB1,0xA8,0x00,0x00,}}, {0x62A6,2,{0x92,0x6D,0x00,0x00,}}, {0x62A7,2,{0x92,0x6E,0x00,0x00,}}, {0x62A8,2,{0xC5,0xEA,0x00,0x00,}}, {0x62A9,2,{0x92,0x6F,0x00,0x00,}}, {0x62AA,2,{0x92,0x70,0x00,0x00,}}, {0x62AB,2,{0xC5,0xFB,0x00,0x00,}}, {0x62AC,2,{0xCC,0xA7,0x00,0x00,}}, {0x62AD,2,{0x92,0x71,0x00,0x00,}}, {0x62AE,2,{0x92,0x72,0x00,0x00,}}, {0x62AF,2,{0x92,0x73,0x00,0x00,}}, {0x62B0,2,{0x92,0x74,0x00,0x00,}}, {0x62B1,2,{0xB1,0xA7,0x00,0x00,}}, {0x62B2,2,{0x92,0x75,0x00,0x00,}}, {0x62B3,2,{0x92,0x76,0x00,0x00,}}, {0x62B4,2,{0x92,0x77,0x00,0x00,}}, {0x62B5,2,{0xB5,0xD6,0x00,0x00,}}, {0x62B6,2,{0x92,0x78,0x00,0x00,}}, {0x62B7,2,{0x92,0x79,0x00,0x00,}}, {0x62B8,2,{0x92,0x7A,0x00,0x00,}}, {0x62B9,2,{0xC4,0xA8,0x00,0x00,}}, {0x62BA,2,{0x92,0x7B,0x00,0x00,}}, {0x62BB,2,{0xDE,0xD3,0x00,0x00,}}, {0x62BC,2,{0xD1,0xBA,0x00,0x00,}}, {0x62BD,2,{0xB3,0xE9,0x00,0x00,}}, {0x62BE,2,{0x92,0x7C,0x00,0x00,}}, {0x62BF,2,{0xC3,0xF2,0x00,0x00,}}, {0x62C0,2,{0x92,0x7D,0x00,0x00,}}, {0x62C1,2,{0x92,0x7E,0x00,0x00,}}, {0x62C2,2,{0xB7,0xF7,0x00,0x00,}}, {0x62C3,2,{0x92,0x80,0x00,0x00,}}, {0x62C4,2,{0xD6,0xF4,0x00,0x00,}}, {0x62C5,2,{0xB5,0xA3,0x00,0x00,}}, {0x62C6,2,{0xB2,0xF0,0x00,0x00,}}, {0x62C7,2,{0xC4,0xB4,0x00,0x00,}}, {0x62C8,2,{0xC4,0xE9,0x00,0x00,}}, {0x62C9,2,{0xC0,0xAD,0x00,0x00,}}, {0x62CA,2,{0xDE,0xD4,0x00,0x00,}}, {0x62CB,2,{0x92,0x81,0x00,0x00,}}, {0x62CC,2,{0xB0,0xE8,0x00,0x00,}}, {0x62CD,2,{0xC5,0xC4,0x00,0x00,}}, {0x62CE,2,{0xC1,0xE0,0x00,0x00,}}, {0x62CF,2,{0x92,0x82,0x00,0x00,}}, {0x62D0,2,{0xB9,0xD5,0x00,0x00,}}, {0x62D1,2,{0x92,0x83,0x00,0x00,}}, {0x62D2,2,{0xBE,0xDC,0x00,0x00,}}, {0x62D3,2,{0xCD,0xD8,0x00,0x00,}}, {0x62D4,2,{0xB0,0xCE,0x00,0x00,}}, {0x62D5,2,{0x92,0x84,0x00,0x00,}}, {0x62D6,2,{0xCD,0xCF,0x00,0x00,}}, {0x62D7,2,{0xDE,0xD6,0x00,0x00,}}, {0x62D8,2,{0xBE,0xD0,0x00,0x00,}}, {0x62D9,2,{0xD7,0xBE,0x00,0x00,}}, {0x62DA,2,{0xDE,0xD5,0x00,0x00,}}, {0x62DB,2,{0xD5,0xD0,0x00,0x00,}}, {0x62DC,2,{0xB0,0xDD,0x00,0x00,}}, {0x62DD,2,{0x92,0x85,0x00,0x00,}}, {0x62DE,2,{0x92,0x86,0x00,0x00,}}, {0x62DF,2,{0xC4,0xE2,0x00,0x00,}}, {0x62E0,2,{0x92,0x87,0x00,0x00,}}, {0x62E1,2,{0x92,0x88,0x00,0x00,}}, {0x62E2,2,{0xC2,0xA3,0x00,0x00,}}, {0x62E3,2,{0xBC,0xF0,0x00,0x00,}}, {0x62E4,2,{0x92,0x89,0x00,0x00,}}, {0x62E5,2,{0xD3,0xB5,0x00,0x00,}}, {0x62E6,2,{0xC0,0xB9,0x00,0x00,}}, {0x62E7,2,{0xC5,0xA1,0x00,0x00,}}, {0x62E8,2,{0xB2,0xA6,0x00,0x00,}}, {0x62E9,2,{0xD4,0xF1,0x00,0x00,}}, {0x62EA,2,{0x92,0x8A,0x00,0x00,}}, {0x62EB,2,{0x92,0x8B,0x00,0x00,}}, {0x62EC,2,{0xC0,0xA8,0x00,0x00,}}, {0x62ED,2,{0xCA,0xC3,0x00,0x00,}}, {0x62EE,2,{0xDE,0xD7,0x00,0x00,}}, {0x62EF,2,{0xD5,0xFC,0x00,0x00,}}, {0x62F0,2,{0x92,0x8C,0x00,0x00,}}, {0x62F1,2,{0xB9,0xB0,0x00,0x00,}}, {0x62F2,2,{0x92,0x8D,0x00,0x00,}}, {0x62F3,2,{0xC8,0xAD,0x00,0x00,}}, {0x62F4,2,{0xCB,0xA9,0x00,0x00,}}, {0x62F5,2,{0x92,0x8E,0x00,0x00,}}, {0x62F6,2,{0xDE,0xD9,0x00,0x00,}}, {0x62F7,2,{0xBF,0xBD,0x00,0x00,}}, {0x62F8,2,{0x92,0x8F,0x00,0x00,}}, {0x62F9,2,{0x92,0x90,0x00,0x00,}}, {0x62FA,2,{0x92,0x91,0x00,0x00,}}, {0x62FB,2,{0x92,0x92,0x00,0x00,}}, {0x62FC,2,{0xC6,0xB4,0x00,0x00,}}, {0x62FD,2,{0xD7,0xA7,0x00,0x00,}}, {0x62FE,2,{0xCA,0xB0,0x00,0x00,}}, {0x62FF,2,{0xC4,0xC3,0x00,0x00,}}, {0x6300,2,{0x92,0x93,0x00,0x00,}}, {0x6301,2,{0xB3,0xD6,0x00,0x00,}}, {0x6302,2,{0xB9,0xD2,0x00,0x00,}}, {0x6303,2,{0x92,0x94,0x00,0x00,}}, {0x6304,2,{0x92,0x95,0x00,0x00,}}, {0x6305,2,{0x92,0x96,0x00,0x00,}}, {0x6306,2,{0x92,0x97,0x00,0x00,}}, {0x6307,2,{0xD6,0xB8,0x00,0x00,}}, {0x6308,2,{0xEA,0xFC,0x00,0x00,}}, {0x6309,2,{0xB0,0xB4,0x00,0x00,}}, {0x630A,2,{0x92,0x98,0x00,0x00,}}, {0x630B,2,{0x92,0x99,0x00,0x00,}}, {0x630C,2,{0x92,0x9A,0x00,0x00,}}, {0x630D,2,{0x92,0x9B,0x00,0x00,}}, {0x630E,2,{0xBF,0xE6,0x00,0x00,}}, {0x630F,2,{0x92,0x9C,0x00,0x00,}}, {0x6310,2,{0x92,0x9D,0x00,0x00,}}, {0x6311,2,{0xCC,0xF4,0x00,0x00,}}, {0x6312,2,{0x92,0x9E,0x00,0x00,}}, {0x6313,2,{0x92,0x9F,0x00,0x00,}}, {0x6314,2,{0x92,0xA0,0x00,0x00,}}, {0x6315,2,{0x92,0xA1,0x00,0x00,}}, {0x6316,2,{0xCD,0xDA,0x00,0x00,}}, {0x6317,2,{0x92,0xA2,0x00,0x00,}}, {0x6318,2,{0x92,0xA3,0x00,0x00,}}, {0x6319,2,{0x92,0xA4,0x00,0x00,}}, {0x631A,2,{0xD6,0xBF,0x00,0x00,}}, {0x631B,2,{0xC2,0xCE,0x00,0x00,}}, {0x631C,2,{0x92,0xA5,0x00,0x00,}}, {0x631D,2,{0xCE,0xCE,0x00,0x00,}}, {0x631E,2,{0xCC,0xA2,0x00,0x00,}}, {0x631F,2,{0xD0,0xAE,0x00,0x00,}}, {0x6320,2,{0xC4,0xD3,0x00,0x00,}}, {0x6321,2,{0xB5,0xB2,0x00,0x00,}}, {0x6322,2,{0xDE,0xD8,0x00,0x00,}}, {0x6323,2,{0xD5,0xF5,0x00,0x00,}}, {0x6324,2,{0xBC,0xB7,0x00,0x00,}}, {0x6325,2,{0xBB,0xD3,0x00,0x00,}}, {0x6326,2,{0x92,0xA6,0x00,0x00,}}, {0x6327,2,{0x92,0xA7,0x00,0x00,}}, {0x6328,2,{0xB0,0xA4,0x00,0x00,}}, {0x6329,2,{0x92,0xA8,0x00,0x00,}}, {0x632A,2,{0xC5,0xB2,0x00,0x00,}}, {0x632B,2,{0xB4,0xEC,0x00,0x00,}}, {0x632C,2,{0x92,0xA9,0x00,0x00,}}, {0x632D,2,{0x92,0xAA,0x00,0x00,}}, {0x632E,2,{0x92,0xAB,0x00,0x00,}}, {0x632F,2,{0xD5,0xF1,0x00,0x00,}}, {0x6330,2,{0x92,0xAC,0x00,0x00,}}, {0x6331,2,{0x92,0xAD,0x00,0x00,}}, {0x6332,2,{0xEA,0xFD,0x00,0x00,}}, {0x6333,2,{0x92,0xAE,0x00,0x00,}}, {0x6334,2,{0x92,0xAF,0x00,0x00,}}, {0x6335,2,{0x92,0xB0,0x00,0x00,}}, {0x6336,2,{0x92,0xB1,0x00,0x00,}}, {0x6337,2,{0x92,0xB2,0x00,0x00,}}, {0x6338,2,{0x92,0xB3,0x00,0x00,}}, {0x6339,2,{0xDE,0xDA,0x00,0x00,}}, {0x633A,2,{0xCD,0xA6,0x00,0x00,}}, {0x633B,2,{0x92,0xB4,0x00,0x00,}}, {0x633C,2,{0x92,0xB5,0x00,0x00,}}, {0x633D,2,{0xCD,0xEC,0x00,0x00,}}, {0x633E,2,{0x92,0xB6,0x00,0x00,}}, {0x633F,2,{0x92,0xB7,0x00,0x00,}}, {0x6340,2,{0x92,0xB8,0x00,0x00,}}, {0x6341,2,{0x92,0xB9,0x00,0x00,}}, {0x6342,2,{0xCE,0xE6,0x00,0x00,}}, {0x6343,2,{0xDE,0xDC,0x00,0x00,}}, {0x6344,2,{0x92,0xBA,0x00,0x00,}}, {0x6345,2,{0xCD,0xB1,0x00,0x00,}}, {0x6346,2,{0xC0,0xA6,0x00,0x00,}}, {0x6347,2,{0x92,0xBB,0x00,0x00,}}, {0x6348,2,{0x92,0xBC,0x00,0x00,}}, {0x6349,2,{0xD7,0xBD,0x00,0x00,}}, {0x634A,2,{0x92,0xBD,0x00,0x00,}}, {0x634B,2,{0xDE,0xDB,0x00,0x00,}}, {0x634C,2,{0xB0,0xC6,0x00,0x00,}}, {0x634D,2,{0xBA,0xB4,0x00,0x00,}}, {0x634E,2,{0xC9,0xD3,0x00,0x00,}}, {0x634F,2,{0xC4,0xF3,0x00,0x00,}}, {0x6350,2,{0xBE,0xE8,0x00,0x00,}}, {0x6351,2,{0x92,0xBE,0x00,0x00,}}, {0x6352,2,{0x92,0xBF,0x00,0x00,}}, {0x6353,2,{0x92,0xC0,0x00,0x00,}}, {0x6354,2,{0x92,0xC1,0x00,0x00,}}, {0x6355,2,{0xB2,0xB6,0x00,0x00,}}, {0x6356,2,{0x92,0xC2,0x00,0x00,}}, {0x6357,2,{0x92,0xC3,0x00,0x00,}}, {0x6358,2,{0x92,0xC4,0x00,0x00,}}, {0x6359,2,{0x92,0xC5,0x00,0x00,}}, {0x635A,2,{0x92,0xC6,0x00,0x00,}}, {0x635B,2,{0x92,0xC7,0x00,0x00,}}, {0x635C,2,{0x92,0xC8,0x00,0x00,}}, {0x635D,2,{0x92,0xC9,0x00,0x00,}}, {0x635E,2,{0xC0,0xCC,0x00,0x00,}}, {0x635F,2,{0xCB,0xF0,0x00,0x00,}}, {0x6360,2,{0x92,0xCA,0x00,0x00,}}, {0x6361,2,{0xBC,0xF1,0x00,0x00,}}, {0x6362,2,{0xBB,0xBB,0x00,0x00,}}, {0x6363,2,{0xB5,0xB7,0x00,0x00,}}, {0x6364,2,{0x92,0xCB,0x00,0x00,}}, {0x6365,2,{0x92,0xCC,0x00,0x00,}}, {0x6366,2,{0x92,0xCD,0x00,0x00,}}, {0x6367,2,{0xC5,0xF5,0x00,0x00,}}, {0x6368,2,{0x92,0xCE,0x00,0x00,}}, {0x6369,2,{0xDE,0xE6,0x00,0x00,}}, {0x636A,2,{0x92,0xCF,0x00,0x00,}}, {0x636B,2,{0x92,0xD0,0x00,0x00,}}, {0x636C,2,{0x92,0xD1,0x00,0x00,}}, {0x636D,2,{0xDE,0xE3,0x00,0x00,}}, {0x636E,2,{0xBE,0xDD,0x00,0x00,}}, {0x636F,2,{0x92,0xD2,0x00,0x00,}}, {0x6370,2,{0x92,0xD3,0x00,0x00,}}, {0x6371,2,{0xDE,0xDF,0x00,0x00,}}, {0x6372,2,{0x92,0xD4,0x00,0x00,}}, {0x6373,2,{0x92,0xD5,0x00,0x00,}}, {0x6374,2,{0x92,0xD6,0x00,0x00,}}, {0x6375,2,{0x92,0xD7,0x00,0x00,}}, {0x6376,2,{0xB4,0xB7,0x00,0x00,}}, {0x6377,2,{0xBD,0xDD,0x00,0x00,}}, {0x6378,2,{0x92,0xD8,0x00,0x00,}}, {0x6379,2,{0x92,0xD9,0x00,0x00,}}, {0x637A,2,{0xDE,0xE0,0x00,0x00,}}, {0x637B,2,{0xC4,0xED,0x00,0x00,}}, {0x637C,2,{0x92,0xDA,0x00,0x00,}}, {0x637D,2,{0x92,0xDB,0x00,0x00,}}, {0x637E,2,{0x92,0xDC,0x00,0x00,}}, {0x637F,2,{0x92,0xDD,0x00,0x00,}}, {0x6380,2,{0xCF,0xC6,0x00,0x00,}}, {0x6381,2,{0x92,0xDE,0x00,0x00,}}, {0x6382,2,{0xB5,0xE0,0x00,0x00,}}, {0x6383,2,{0x92,0xDF,0x00,0x00,}}, {0x6384,2,{0x92,0xE0,0x00,0x00,}}, {0x6385,2,{0x92,0xE1,0x00,0x00,}}, {0x6386,2,{0x92,0xE2,0x00,0x00,}}, {0x6387,2,{0xB6,0xDE,0x00,0x00,}}, {0x6388,2,{0xCA,0xDA,0x00,0x00,}}, {0x6389,2,{0xB5,0xF4,0x00,0x00,}}, {0x638A,2,{0xDE,0xE5,0x00,0x00,}}, {0x638B,2,{0x92,0xE3,0x00,0x00,}}, {0x638C,2,{0xD5,0xC6,0x00,0x00,}}, {0x638D,2,{0x92,0xE4,0x00,0x00,}}, {0x638E,2,{0xDE,0xE1,0x00,0x00,}}, {0x638F,2,{0xCC,0xCD,0x00,0x00,}}, {0x6390,2,{0xC6,0xFE,0x00,0x00,}}, {0x6391,2,{0x92,0xE5,0x00,0x00,}}, {0x6392,2,{0xC5,0xC5,0x00,0x00,}}, {0x6393,2,{0x92,0xE6,0x00,0x00,}}, {0x6394,2,{0x92,0xE7,0x00,0x00,}}, {0x6395,2,{0x92,0xE8,0x00,0x00,}}, {0x6396,2,{0xD2,0xB4,0x00,0x00,}}, {0x6397,2,{0x92,0xE9,0x00,0x00,}}, {0x6398,2,{0xBE,0xF2,0x00,0x00,}}, {0x6399,2,{0x92,0xEA,0x00,0x00,}}, {0x639A,2,{0x92,0xEB,0x00,0x00,}}, {0x639B,2,{0x92,0xEC,0x00,0x00,}}, {0x639C,2,{0x92,0xED,0x00,0x00,}}, {0x639D,2,{0x92,0xEE,0x00,0x00,}}, {0x639E,2,{0x92,0xEF,0x00,0x00,}}, {0x639F,2,{0x92,0xF0,0x00,0x00,}}, {0x63A0,2,{0xC2,0xD3,0x00,0x00,}}, {0x63A1,2,{0x92,0xF1,0x00,0x00,}}, {0x63A2,2,{0xCC,0xBD,0x00,0x00,}}, {0x63A3,2,{0xB3,0xB8,0x00,0x00,}}, {0x63A4,2,{0x92,0xF2,0x00,0x00,}}, {0x63A5,2,{0xBD,0xD3,0x00,0x00,}}, {0x63A6,2,{0x92,0xF3,0x00,0x00,}}, {0x63A7,2,{0xBF,0xD8,0x00,0x00,}}, {0x63A8,2,{0xCD,0xC6,0x00,0x00,}}, {0x63A9,2,{0xD1,0xDA,0x00,0x00,}}, {0x63AA,2,{0xB4,0xEB,0x00,0x00,}}, {0x63AB,2,{0x92,0xF4,0x00,0x00,}}, {0x63AC,2,{0xDE,0xE4,0x00,0x00,}}, {0x63AD,2,{0xDE,0xDD,0x00,0x00,}}, {0x63AE,2,{0xDE,0xE7,0x00,0x00,}}, {0x63AF,2,{0x92,0xF5,0x00,0x00,}}, {0x63B0,2,{0xEA,0xFE,0x00,0x00,}}, {0x63B1,2,{0x92,0xF6,0x00,0x00,}}, {0x63B2,2,{0x92,0xF7,0x00,0x00,}}, {0x63B3,2,{0xC2,0xB0,0x00,0x00,}}, {0x63B4,2,{0xDE,0xE2,0x00,0x00,}}, {0x63B5,2,{0x92,0xF8,0x00,0x00,}}, {0x63B6,2,{0x92,0xF9,0x00,0x00,}}, {0x63B7,2,{0xD6,0xC0,0x00,0x00,}}, {0x63B8,2,{0xB5,0xA7,0x00,0x00,}}, {0x63B9,2,{0x92,0xFA,0x00,0x00,}}, {0x63BA,2,{0xB2,0xF4,0x00,0x00,}}, {0x63BB,2,{0x92,0xFB,0x00,0x00,}}, {0x63BC,2,{0xDE,0xE8,0x00,0x00,}}, {0x63BD,2,{0x92,0xFC,0x00,0x00,}}, {0x63BE,2,{0xDE,0xF2,0x00,0x00,}}, {0x63BF,2,{0x92,0xFD,0x00,0x00,}}, {0x63C0,2,{0x92,0xFE,0x00,0x00,}}, {0x63C1,2,{0x93,0x40,0x00,0x00,}}, {0x63C2,2,{0x93,0x41,0x00,0x00,}}, {0x63C3,2,{0x93,0x42,0x00,0x00,}}, {0x63C4,2,{0xDE,0xED,0x00,0x00,}}, {0x63C5,2,{0x93,0x43,0x00,0x00,}}, {0x63C6,2,{0xDE,0xF1,0x00,0x00,}}, {0x63C7,2,{0x93,0x44,0x00,0x00,}}, {0x63C8,2,{0x93,0x45,0x00,0x00,}}, {0x63C9,2,{0xC8,0xE0,0x00,0x00,}}, {0x63CA,2,{0x93,0x46,0x00,0x00,}}, {0x63CB,2,{0x93,0x47,0x00,0x00,}}, {0x63CC,2,{0x93,0x48,0x00,0x00,}}, {0x63CD,2,{0xD7,0xE1,0x00,0x00,}}, {0x63CE,2,{0xDE,0xEF,0x00,0x00,}}, {0x63CF,2,{0xC3,0xE8,0x00,0x00,}}, {0x63D0,2,{0xCC,0xE1,0x00,0x00,}}, {0x63D1,2,{0x93,0x49,0x00,0x00,}}, {0x63D2,2,{0xB2,0xE5,0x00,0x00,}}, {0x63D3,2,{0x93,0x4A,0x00,0x00,}}, {0x63D4,2,{0x93,0x4B,0x00,0x00,}}, {0x63D5,2,{0x93,0x4C,0x00,0x00,}}, {0x63D6,2,{0xD2,0xBE,0x00,0x00,}}, {0x63D7,2,{0x93,0x4D,0x00,0x00,}}, {0x63D8,2,{0x93,0x4E,0x00,0x00,}}, {0x63D9,2,{0x93,0x4F,0x00,0x00,}}, {0x63DA,2,{0x93,0x50,0x00,0x00,}}, {0x63DB,2,{0x93,0x51,0x00,0x00,}}, {0x63DC,2,{0x93,0x52,0x00,0x00,}}, {0x63DD,2,{0x93,0x53,0x00,0x00,}}, {0x63DE,2,{0xDE,0xEE,0x00,0x00,}}, {0x63DF,2,{0x93,0x54,0x00,0x00,}}, {0x63E0,2,{0xDE,0xEB,0x00,0x00,}}, {0x63E1,2,{0xCE,0xD5,0x00,0x00,}}, {0x63E2,2,{0x93,0x55,0x00,0x00,}}, {0x63E3,2,{0xB4,0xA7,0x00,0x00,}}, {0x63E4,2,{0x93,0x56,0x00,0x00,}}, {0x63E5,2,{0x93,0x57,0x00,0x00,}}, {0x63E6,2,{0x93,0x58,0x00,0x00,}}, {0x63E7,2,{0x93,0x59,0x00,0x00,}}, {0x63E8,2,{0x93,0x5A,0x00,0x00,}}, {0x63E9,2,{0xBF,0xAB,0x00,0x00,}}, {0x63EA,2,{0xBE,0xBE,0x00,0x00,}}, {0x63EB,2,{0x93,0x5B,0x00,0x00,}}, {0x63EC,2,{0x93,0x5C,0x00,0x00,}}, {0x63ED,2,{0xBD,0xD2,0x00,0x00,}}, {0x63EE,2,{0x93,0x5D,0x00,0x00,}}, {0x63EF,2,{0x93,0x5E,0x00,0x00,}}, {0x63F0,2,{0x93,0x5F,0x00,0x00,}}, {0x63F1,2,{0x93,0x60,0x00,0x00,}}, {0x63F2,2,{0xDE,0xE9,0x00,0x00,}}, {0x63F3,2,{0x93,0x61,0x00,0x00,}}, {0x63F4,2,{0xD4,0xAE,0x00,0x00,}}, {0x63F5,2,{0x93,0x62,0x00,0x00,}}, {0x63F6,2,{0xDE,0xDE,0x00,0x00,}}, {0x63F7,2,{0x93,0x63,0x00,0x00,}}, {0x63F8,2,{0xDE,0xEA,0x00,0x00,}}, {0x63F9,2,{0x93,0x64,0x00,0x00,}}, {0x63FA,2,{0x93,0x65,0x00,0x00,}}, {0x63FB,2,{0x93,0x66,0x00,0x00,}}, {0x63FC,2,{0x93,0x67,0x00,0x00,}}, {0x63FD,2,{0xC0,0xBF,0x00,0x00,}}, {0x63FE,2,{0x93,0x68,0x00,0x00,}}, {0x63FF,2,{0xDE,0xEC,0x00,0x00,}}, {0x6400,2,{0xB2,0xF3,0x00,0x00,}}, {0x6401,2,{0xB8,0xE9,0x00,0x00,}}, {0x6402,2,{0xC2,0xA7,0x00,0x00,}}, {0x6403,2,{0x93,0x69,0x00,0x00,}}, {0x6404,2,{0x93,0x6A,0x00,0x00,}}, {0x6405,2,{0xBD,0xC1,0x00,0x00,}}, {0x6406,2,{0x93,0x6B,0x00,0x00,}}, {0x6407,2,{0x93,0x6C,0x00,0x00,}}, {0x6408,2,{0x93,0x6D,0x00,0x00,}}, {0x6409,2,{0x93,0x6E,0x00,0x00,}}, {0x640A,2,{0x93,0x6F,0x00,0x00,}}, {0x640B,2,{0xDE,0xF5,0x00,0x00,}}, {0x640C,2,{0xDE,0xF8,0x00,0x00,}}, {0x640D,2,{0x93,0x70,0x00,0x00,}}, {0x640E,2,{0x93,0x71,0x00,0x00,}}, {0x640F,2,{0xB2,0xAB,0x00,0x00,}}, {0x6410,2,{0xB4,0xA4,0x00,0x00,}}, {0x6411,2,{0x93,0x72,0x00,0x00,}}, {0x6412,2,{0x93,0x73,0x00,0x00,}}, {0x6413,2,{0xB4,0xEA,0x00,0x00,}}, {0x6414,2,{0xC9,0xA6,0x00,0x00,}}, {0x6415,2,{0x93,0x74,0x00,0x00,}}, {0x6416,2,{0x93,0x75,0x00,0x00,}}, {0x6417,2,{0x93,0x76,0x00,0x00,}}, {0x6418,2,{0x93,0x77,0x00,0x00,}}, {0x6419,2,{0x93,0x78,0x00,0x00,}}, {0x641A,2,{0x93,0x79,0x00,0x00,}}, {0x641B,2,{0xDE,0xF6,0x00,0x00,}}, {0x641C,2,{0xCB,0xD1,0x00,0x00,}}, {0x641D,2,{0x93,0x7A,0x00,0x00,}}, {0x641E,2,{0xB8,0xE3,0x00,0x00,}}, {0x641F,2,{0x93,0x7B,0x00,0x00,}}, {0x6420,2,{0xDE,0xF7,0x00,0x00,}}, {0x6421,2,{0xDE,0xFA,0x00,0x00,}}, {0x6422,2,{0x93,0x7C,0x00,0x00,}}, {0x6423,2,{0x93,0x7D,0x00,0x00,}}, {0x6424,2,{0x93,0x7E,0x00,0x00,}}, {0x6425,2,{0x93,0x80,0x00,0x00,}}, {0x6426,2,{0xDE,0xF9,0x00,0x00,}}, {0x6427,2,{0x93,0x81,0x00,0x00,}}, {0x6428,2,{0x93,0x82,0x00,0x00,}}, {0x6429,2,{0x93,0x83,0x00,0x00,}}, {0x642A,2,{0xCC,0xC2,0x00,0x00,}}, {0x642B,2,{0x93,0x84,0x00,0x00,}}, {0x642C,2,{0xB0,0xE1,0x00,0x00,}}, {0x642D,2,{0xB4,0xEE,0x00,0x00,}}, {0x642E,2,{0x93,0x85,0x00,0x00,}}, {0x642F,2,{0x93,0x86,0x00,0x00,}}, {0x6430,2,{0x93,0x87,0x00,0x00,}}, {0x6431,2,{0x93,0x88,0x00,0x00,}}, {0x6432,2,{0x93,0x89,0x00,0x00,}}, {0x6433,2,{0x93,0x8A,0x00,0x00,}}, {0x6434,2,{0xE5,0xBA,0x00,0x00,}}, {0x6435,2,{0x93,0x8B,0x00,0x00,}}, {0x6436,2,{0x93,0x8C,0x00,0x00,}}, {0x6437,2,{0x93,0x8D,0x00,0x00,}}, {0x6438,2,{0x93,0x8E,0x00,0x00,}}, {0x6439,2,{0x93,0x8F,0x00,0x00,}}, {0x643A,2,{0xD0,0xAF,0x00,0x00,}}, {0x643B,2,{0x93,0x90,0x00,0x00,}}, {0x643C,2,{0x93,0x91,0x00,0x00,}}, {0x643D,2,{0xB2,0xEB,0x00,0x00,}}, {0x643E,2,{0x93,0x92,0x00,0x00,}}, {0x643F,2,{0xEB,0xA1,0x00,0x00,}}, {0x6440,2,{0x93,0x93,0x00,0x00,}}, {0x6441,2,{0xDE,0xF4,0x00,0x00,}}, {0x6442,2,{0x93,0x94,0x00,0x00,}}, {0x6443,2,{0x93,0x95,0x00,0x00,}}, {0x6444,2,{0xC9,0xE3,0x00,0x00,}}, {0x6445,2,{0xDE,0xF3,0x00,0x00,}}, {0x6446,2,{0xB0,0xDA,0x00,0x00,}}, {0x6447,2,{0xD2,0xA1,0x00,0x00,}}, {0x6448,2,{0xB1,0xF7,0x00,0x00,}}, {0x6449,2,{0x93,0x96,0x00,0x00,}}, {0x644A,2,{0xCC,0xAF,0x00,0x00,}}, {0x644B,2,{0x93,0x97,0x00,0x00,}}, {0x644C,2,{0x93,0x98,0x00,0x00,}}, {0x644D,2,{0x93,0x99,0x00,0x00,}}, {0x644E,2,{0x93,0x9A,0x00,0x00,}}, {0x644F,2,{0x93,0x9B,0x00,0x00,}}, {0x6450,2,{0x93,0x9C,0x00,0x00,}}, {0x6451,2,{0x93,0x9D,0x00,0x00,}}, {0x6452,2,{0xDE,0xF0,0x00,0x00,}}, {0x6453,2,{0x93,0x9E,0x00,0x00,}}, {0x6454,2,{0xCB,0xA4,0x00,0x00,}}, {0x6455,2,{0x93,0x9F,0x00,0x00,}}, {0x6456,2,{0x93,0xA0,0x00,0x00,}}, {0x6457,2,{0x93,0xA1,0x00,0x00,}}, {0x6458,2,{0xD5,0xAA,0x00,0x00,}}, {0x6459,2,{0x93,0xA2,0x00,0x00,}}, {0x645A,2,{0x93,0xA3,0x00,0x00,}}, {0x645B,2,{0x93,0xA4,0x00,0x00,}}, {0x645C,2,{0x93,0xA5,0x00,0x00,}}, {0x645D,2,{0x93,0xA6,0x00,0x00,}}, {0x645E,2,{0xDE,0xFB,0x00,0x00,}}, {0x645F,2,{0x93,0xA7,0x00,0x00,}}, {0x6460,2,{0x93,0xA8,0x00,0x00,}}, {0x6461,2,{0x93,0xA9,0x00,0x00,}}, {0x6462,2,{0x93,0xAA,0x00,0x00,}}, {0x6463,2,{0x93,0xAB,0x00,0x00,}}, {0x6464,2,{0x93,0xAC,0x00,0x00,}}, {0x6465,2,{0x93,0xAD,0x00,0x00,}}, {0x6466,2,{0x93,0xAE,0x00,0x00,}}, {0x6467,2,{0xB4,0xDD,0x00,0x00,}}, {0x6468,2,{0x93,0xAF,0x00,0x00,}}, {0x6469,2,{0xC4,0xA6,0x00,0x00,}}, {0x646A,2,{0x93,0xB0,0x00,0x00,}}, {0x646B,2,{0x93,0xB1,0x00,0x00,}}, {0x646C,2,{0x93,0xB2,0x00,0x00,}}, {0x646D,2,{0xDE,0xFD,0x00,0x00,}}, {0x646E,2,{0x93,0xB3,0x00,0x00,}}, {0x646F,2,{0x93,0xB4,0x00,0x00,}}, {0x6470,2,{0x93,0xB5,0x00,0x00,}}, {0x6471,2,{0x93,0xB6,0x00,0x00,}}, {0x6472,2,{0x93,0xB7,0x00,0x00,}}, {0x6473,2,{0x93,0xB8,0x00,0x00,}}, {0x6474,2,{0x93,0xB9,0x00,0x00,}}, {0x6475,2,{0x93,0xBA,0x00,0x00,}}, {0x6476,2,{0x93,0xBB,0x00,0x00,}}, {0x6477,2,{0x93,0xBC,0x00,0x00,}}, {0x6478,2,{0xC3,0xFE,0x00,0x00,}}, {0x6479,2,{0xC4,0xA1,0x00,0x00,}}, {0x647A,2,{0xDF,0xA1,0x00,0x00,}}, {0x647B,2,{0x93,0xBD,0x00,0x00,}}, {0x647C,2,{0x93,0xBE,0x00,0x00,}}, {0x647D,2,{0x93,0xBF,0x00,0x00,}}, {0x647E,2,{0x93,0xC0,0x00,0x00,}}, {0x647F,2,{0x93,0xC1,0x00,0x00,}}, {0x6480,2,{0x93,0xC2,0x00,0x00,}}, {0x6481,2,{0x93,0xC3,0x00,0x00,}}, {0x6482,2,{0xC1,0xCC,0x00,0x00,}}, {0x6483,2,{0x93,0xC4,0x00,0x00,}}, {0x6484,2,{0xDE,0xFC,0x00,0x00,}}, {0x6485,2,{0xBE,0xEF,0x00,0x00,}}, {0x6486,2,{0x93,0xC5,0x00,0x00,}}, {0x6487,2,{0xC6,0xB2,0x00,0x00,}}, {0x6488,2,{0x93,0xC6,0x00,0x00,}}, {0x6489,2,{0x93,0xC7,0x00,0x00,}}, {0x648A,2,{0x93,0xC8,0x00,0x00,}}, {0x648B,2,{0x93,0xC9,0x00,0x00,}}, {0x648C,2,{0x93,0xCA,0x00,0x00,}}, {0x648D,2,{0x93,0xCB,0x00,0x00,}}, {0x648E,2,{0x93,0xCC,0x00,0x00,}}, {0x648F,2,{0x93,0xCD,0x00,0x00,}}, {0x6490,2,{0x93,0xCE,0x00,0x00,}}, {0x6491,2,{0xB3,0xC5,0x00,0x00,}}, {0x6492,2,{0xC8,0xF6,0x00,0x00,}}, {0x6493,2,{0x93,0xCF,0x00,0x00,}}, {0x6494,2,{0x93,0xD0,0x00,0x00,}}, {0x6495,2,{0xCB,0xBA,0x00,0x00,}}, {0x6496,2,{0xDE,0xFE,0x00,0x00,}}, {0x6497,2,{0x93,0xD1,0x00,0x00,}}, {0x6498,2,{0x93,0xD2,0x00,0x00,}}, {0x6499,2,{0xDF,0xA4,0x00,0x00,}}, {0x649A,2,{0x93,0xD3,0x00,0x00,}}, {0x649B,2,{0x93,0xD4,0x00,0x00,}}, {0x649C,2,{0x93,0xD5,0x00,0x00,}}, {0x649D,2,{0x93,0xD6,0x00,0x00,}}, {0x649E,2,{0xD7,0xB2,0x00,0x00,}}, {0x649F,2,{0x93,0xD7,0x00,0x00,}}, {0x64A0,2,{0x93,0xD8,0x00,0x00,}}, {0x64A1,2,{0x93,0xD9,0x00,0x00,}}, {0x64A2,2,{0x93,0xDA,0x00,0x00,}}, {0x64A3,2,{0x93,0xDB,0x00,0x00,}}, {0x64A4,2,{0xB3,0xB7,0x00,0x00,}}, {0x64A5,2,{0x93,0xDC,0x00,0x00,}}, {0x64A6,2,{0x93,0xDD,0x00,0x00,}}, {0x64A7,2,{0x93,0xDE,0x00,0x00,}}, {0x64A8,2,{0x93,0xDF,0x00,0x00,}}, {0x64A9,2,{0xC1,0xC3,0x00,0x00,}}, {0x64AA,2,{0x93,0xE0,0x00,0x00,}}, {0x64AB,2,{0x93,0xE1,0x00,0x00,}}, {0x64AC,2,{0xC7,0xCB,0x00,0x00,}}, {0x64AD,2,{0xB2,0xA5,0x00,0x00,}}, {0x64AE,2,{0xB4,0xE9,0x00,0x00,}}, {0x64AF,2,{0x93,0xE2,0x00,0x00,}}, {0x64B0,2,{0xD7,0xAB,0x00,0x00,}}, {0x64B1,2,{0x93,0xE3,0x00,0x00,}}, {0x64B2,2,{0x93,0xE4,0x00,0x00,}}, {0x64B3,2,{0x93,0xE5,0x00,0x00,}}, {0x64B4,2,{0x93,0xE6,0x00,0x00,}}, {0x64B5,2,{0xC4,0xEC,0x00,0x00,}}, {0x64B6,2,{0x93,0xE7,0x00,0x00,}}, {0x64B7,2,{0xDF,0xA2,0x00,0x00,}}, {0x64B8,2,{0xDF,0xA3,0x00,0x00,}}, {0x64B9,2,{0x93,0xE8,0x00,0x00,}}, {0x64BA,2,{0xDF,0xA5,0x00,0x00,}}, {0x64BB,2,{0x93,0xE9,0x00,0x00,}}, {0x64BC,2,{0xBA,0xB3,0x00,0x00,}}, {0x64BD,2,{0x93,0xEA,0x00,0x00,}}, {0x64BE,2,{0x93,0xEB,0x00,0x00,}}, {0x64BF,2,{0x93,0xEC,0x00,0x00,}}, {0x64C0,2,{0xDF,0xA6,0x00,0x00,}}, {0x64C1,2,{0x93,0xED,0x00,0x00,}}, {0x64C2,2,{0xC0,0xDE,0x00,0x00,}}, {0x64C3,2,{0x93,0xEE,0x00,0x00,}}, {0x64C4,2,{0x93,0xEF,0x00,0x00,}}, {0x64C5,2,{0xC9,0xC3,0x00,0x00,}}, {0x64C6,2,{0x93,0xF0,0x00,0x00,}}, {0x64C7,2,{0x93,0xF1,0x00,0x00,}}, {0x64C8,2,{0x93,0xF2,0x00,0x00,}}, {0x64C9,2,{0x93,0xF3,0x00,0x00,}}, {0x64CA,2,{0x93,0xF4,0x00,0x00,}}, {0x64CB,2,{0x93,0xF5,0x00,0x00,}}, {0x64CC,2,{0x93,0xF6,0x00,0x00,}}, {0x64CD,2,{0xB2,0xD9,0x00,0x00,}}, {0x64CE,2,{0xC7,0xE6,0x00,0x00,}}, {0x64CF,2,{0x93,0xF7,0x00,0x00,}}, {0x64D0,2,{0xDF,0xA7,0x00,0x00,}}, {0x64D1,2,{0x93,0xF8,0x00,0x00,}}, {0x64D2,2,{0xC7,0xDC,0x00,0x00,}}, {0x64D3,2,{0x93,0xF9,0x00,0x00,}}, {0x64D4,2,{0x93,0xFA,0x00,0x00,}}, {0x64D5,2,{0x93,0xFB,0x00,0x00,}}, {0x64D6,2,{0x93,0xFC,0x00,0x00,}}, {0x64D7,2,{0xDF,0xA8,0x00,0x00,}}, {0x64D8,2,{0xEB,0xA2,0x00,0x00,}}, {0x64D9,2,{0x93,0xFD,0x00,0x00,}}, {0x64DA,2,{0x93,0xFE,0x00,0x00,}}, {0x64DB,2,{0x94,0x40,0x00,0x00,}}, {0x64DC,2,{0x94,0x41,0x00,0x00,}}, {0x64DD,2,{0x94,0x42,0x00,0x00,}}, {0x64DE,2,{0xCB,0xD3,0x00,0x00,}}, {0x64DF,2,{0x94,0x43,0x00,0x00,}}, {0x64E0,2,{0x94,0x44,0x00,0x00,}}, {0x64E1,2,{0x94,0x45,0x00,0x00,}}, {0x64E2,2,{0xDF,0xAA,0x00,0x00,}}, {0x64E3,2,{0x94,0x46,0x00,0x00,}}, {0x64E4,2,{0xDF,0xA9,0x00,0x00,}}, {0x64E5,2,{0x94,0x47,0x00,0x00,}}, {0x64E6,2,{0xB2,0xC1,0x00,0x00,}}, {0x64E7,2,{0x94,0x48,0x00,0x00,}}, {0x64E8,2,{0x94,0x49,0x00,0x00,}}, {0x64E9,2,{0x94,0x4A,0x00,0x00,}}, {0x64EA,2,{0x94,0x4B,0x00,0x00,}}, {0x64EB,2,{0x94,0x4C,0x00,0x00,}}, {0x64EC,2,{0x94,0x4D,0x00,0x00,}}, {0x64ED,2,{0x94,0x4E,0x00,0x00,}}, {0x64EE,2,{0x94,0x4F,0x00,0x00,}}, {0x64EF,2,{0x94,0x50,0x00,0x00,}}, {0x64F0,2,{0x94,0x51,0x00,0x00,}}, {0x64F1,2,{0x94,0x52,0x00,0x00,}}, {0x64F2,2,{0x94,0x53,0x00,0x00,}}, {0x64F3,2,{0x94,0x54,0x00,0x00,}}, {0x64F4,2,{0x94,0x55,0x00,0x00,}}, {0x64F5,2,{0x94,0x56,0x00,0x00,}}, {0x64F6,2,{0x94,0x57,0x00,0x00,}}, {0x64F7,2,{0x94,0x58,0x00,0x00,}}, {0x64F8,2,{0x94,0x59,0x00,0x00,}}, {0x64F9,2,{0x94,0x5A,0x00,0x00,}}, {0x64FA,2,{0x94,0x5B,0x00,0x00,}}, {0x64FB,2,{0x94,0x5C,0x00,0x00,}}, {0x64FC,2,{0x94,0x5D,0x00,0x00,}}, {0x64FD,2,{0x94,0x5E,0x00,0x00,}}, {0x64FE,2,{0x94,0x5F,0x00,0x00,}}, {0x64FF,2,{0x94,0x60,0x00,0x00,}}, {0x6500,2,{0xC5,0xCA,0x00,0x00,}}, {0x6501,2,{0x94,0x61,0x00,0x00,}}, {0x6502,2,{0x94,0x62,0x00,0x00,}}, {0x6503,2,{0x94,0x63,0x00,0x00,}}, {0x6504,2,{0x94,0x64,0x00,0x00,}}, {0x6505,2,{0x94,0x65,0x00,0x00,}}, {0x6506,2,{0x94,0x66,0x00,0x00,}}, {0x6507,2,{0x94,0x67,0x00,0x00,}}, {0x6508,2,{0x94,0x68,0x00,0x00,}}, {0x6509,2,{0xDF,0xAB,0x00,0x00,}}, {0x650A,2,{0x94,0x69,0x00,0x00,}}, {0x650B,2,{0x94,0x6A,0x00,0x00,}}, {0x650C,2,{0x94,0x6B,0x00,0x00,}}, {0x650D,2,{0x94,0x6C,0x00,0x00,}}, {0x650E,2,{0x94,0x6D,0x00,0x00,}}, {0x650F,2,{0x94,0x6E,0x00,0x00,}}, {0x6510,2,{0x94,0x6F,0x00,0x00,}}, {0x6511,2,{0x94,0x70,0x00,0x00,}}, {0x6512,2,{0xD4,0xDC,0x00,0x00,}}, {0x6513,2,{0x94,0x71,0x00,0x00,}}, {0x6514,2,{0x94,0x72,0x00,0x00,}}, {0x6515,2,{0x94,0x73,0x00,0x00,}}, {0x6516,2,{0x94,0x74,0x00,0x00,}}, {0x6517,2,{0x94,0x75,0x00,0x00,}}, {0x6518,2,{0xC8,0xC1,0x00,0x00,}}, {0x6519,2,{0x94,0x76,0x00,0x00,}}, {0x651A,2,{0x94,0x77,0x00,0x00,}}, {0x651B,2,{0x94,0x78,0x00,0x00,}}, {0x651C,2,{0x94,0x79,0x00,0x00,}}, {0x651D,2,{0x94,0x7A,0x00,0x00,}}, {0x651E,2,{0x94,0x7B,0x00,0x00,}}, {0x651F,2,{0x94,0x7C,0x00,0x00,}}, {0x6520,2,{0x94,0x7D,0x00,0x00,}}, {0x6521,2,{0x94,0x7E,0x00,0x00,}}, {0x6522,2,{0x94,0x80,0x00,0x00,}}, {0x6523,2,{0x94,0x81,0x00,0x00,}}, {0x6524,2,{0x94,0x82,0x00,0x00,}}, {0x6525,2,{0xDF,0xAC,0x00,0x00,}}, {0x6526,2,{0x94,0x83,0x00,0x00,}}, {0x6527,2,{0x94,0x84,0x00,0x00,}}, {0x6528,2,{0x94,0x85,0x00,0x00,}}, {0x6529,2,{0x94,0x86,0x00,0x00,}}, {0x652A,2,{0x94,0x87,0x00,0x00,}}, {0x652B,2,{0xBE,0xF0,0x00,0x00,}}, {0x652C,2,{0x94,0x88,0x00,0x00,}}, {0x652D,2,{0x94,0x89,0x00,0x00,}}, {0x652E,2,{0xDF,0xAD,0x00,0x00,}}, {0x652F,2,{0xD6,0xA7,0x00,0x00,}}, {0x6530,2,{0x94,0x8A,0x00,0x00,}}, {0x6531,2,{0x94,0x8B,0x00,0x00,}}, {0x6532,2,{0x94,0x8C,0x00,0x00,}}, {0x6533,2,{0x94,0x8D,0x00,0x00,}}, {0x6534,2,{0xEA,0xB7,0x00,0x00,}}, {0x6535,2,{0xEB,0xB6,0x00,0x00,}}, {0x6536,2,{0xCA,0xD5,0x00,0x00,}}, {0x6537,2,{0x94,0x8E,0x00,0x00,}}, {0x6538,2,{0xD8,0xFC,0x00,0x00,}}, {0x6539,2,{0xB8,0xC4,0x00,0x00,}}, {0x653A,2,{0x94,0x8F,0x00,0x00,}}, {0x653B,2,{0xB9,0xA5,0x00,0x00,}}, {0x653C,2,{0x94,0x90,0x00,0x00,}}, {0x653D,2,{0x94,0x91,0x00,0x00,}}, {0x653E,2,{0xB7,0xC5,0x00,0x00,}}, {0x653F,2,{0xD5,0xFE,0x00,0x00,}}, {0x6540,2,{0x94,0x92,0x00,0x00,}}, {0x6541,2,{0x94,0x93,0x00,0x00,}}, {0x6542,2,{0x94,0x94,0x00,0x00,}}, {0x6543,2,{0x94,0x95,0x00,0x00,}}, {0x6544,2,{0x94,0x96,0x00,0x00,}}, {0x6545,2,{0xB9,0xCA,0x00,0x00,}}, {0x6546,2,{0x94,0x97,0x00,0x00,}}, {0x6547,2,{0x94,0x98,0x00,0x00,}}, {0x6548,2,{0xD0,0xA7,0x00,0x00,}}, {0x6549,2,{0xF4,0xCD,0x00,0x00,}}, {0x654A,2,{0x94,0x99,0x00,0x00,}}, {0x654B,2,{0x94,0x9A,0x00,0x00,}}, {0x654C,2,{0xB5,0xD0,0x00,0x00,}}, {0x654D,2,{0x94,0x9B,0x00,0x00,}}, {0x654E,2,{0x94,0x9C,0x00,0x00,}}, {0x654F,2,{0xC3,0xF4,0x00,0x00,}}, {0x6550,2,{0x94,0x9D,0x00,0x00,}}, {0x6551,2,{0xBE,0xC8,0x00,0x00,}}, {0x6552,2,{0x94,0x9E,0x00,0x00,}}, {0x6553,2,{0x94,0x9F,0x00,0x00,}}, {0x6554,2,{0x94,0xA0,0x00,0x00,}}, {0x6555,2,{0xEB,0xB7,0x00,0x00,}}, {0x6556,2,{0xB0,0xBD,0x00,0x00,}}, {0x6557,2,{0x94,0xA1,0x00,0x00,}}, {0x6558,2,{0x94,0xA2,0x00,0x00,}}, {0x6559,2,{0xBD,0xCC,0x00,0x00,}}, {0x655A,2,{0x94,0xA3,0x00,0x00,}}, {0x655B,2,{0xC1,0xB2,0x00,0x00,}}, {0x655C,2,{0x94,0xA4,0x00,0x00,}}, {0x655D,2,{0xB1,0xD6,0x00,0x00,}}, {0x655E,2,{0xB3,0xA8,0x00,0x00,}}, {0x655F,2,{0x94,0xA5,0x00,0x00,}}, {0x6560,2,{0x94,0xA6,0x00,0x00,}}, {0x6561,2,{0x94,0xA7,0x00,0x00,}}, {0x6562,2,{0xB8,0xD2,0x00,0x00,}}, {0x6563,2,{0xC9,0xA2,0x00,0x00,}}, {0x6564,2,{0x94,0xA8,0x00,0x00,}}, {0x6565,2,{0x94,0xA9,0x00,0x00,}}, {0x6566,2,{0xB6,0xD8,0x00,0x00,}}, {0x6567,2,{0x94,0xAA,0x00,0x00,}}, {0x6568,2,{0x94,0xAB,0x00,0x00,}}, {0x6569,2,{0x94,0xAC,0x00,0x00,}}, {0x656A,2,{0x94,0xAD,0x00,0x00,}}, {0x656B,2,{0xEB,0xB8,0x00,0x00,}}, {0x656C,2,{0xBE,0xB4,0x00,0x00,}}, {0x656D,2,{0x94,0xAE,0x00,0x00,}}, {0x656E,2,{0x94,0xAF,0x00,0x00,}}, {0x656F,2,{0x94,0xB0,0x00,0x00,}}, {0x6570,2,{0xCA,0xFD,0x00,0x00,}}, {0x6571,2,{0x94,0xB1,0x00,0x00,}}, {0x6572,2,{0xC7,0xC3,0x00,0x00,}}, {0x6573,2,{0x94,0xB2,0x00,0x00,}}, {0x6574,2,{0xD5,0xFB,0x00,0x00,}}, {0x6575,2,{0x94,0xB3,0x00,0x00,}}, {0x6576,2,{0x94,0xB4,0x00,0x00,}}, {0x6577,2,{0xB7,0xF3,0x00,0x00,}}, {0x6578,2,{0x94,0xB5,0x00,0x00,}}, {0x6579,2,{0x94,0xB6,0x00,0x00,}}, {0x657A,2,{0x94,0xB7,0x00,0x00,}}, {0x657B,2,{0x94,0xB8,0x00,0x00,}}, {0x657C,2,{0x94,0xB9,0x00,0x00,}}, {0x657D,2,{0x94,0xBA,0x00,0x00,}}, {0x657E,2,{0x94,0xBB,0x00,0x00,}}, {0x657F,2,{0x94,0xBC,0x00,0x00,}}, {0x6580,2,{0x94,0xBD,0x00,0x00,}}, {0x6581,2,{0x94,0xBE,0x00,0x00,}}, {0x6582,2,{0x94,0xBF,0x00,0x00,}}, {0x6583,2,{0x94,0xC0,0x00,0x00,}}, {0x6584,2,{0x94,0xC1,0x00,0x00,}}, {0x6585,2,{0x94,0xC2,0x00,0x00,}}, {0x6586,2,{0x94,0xC3,0x00,0x00,}}, {0x6587,2,{0xCE,0xC4,0x00,0x00,}}, {0x6588,2,{0x94,0xC4,0x00,0x00,}}, {0x6589,2,{0x94,0xC5,0x00,0x00,}}, {0x658A,2,{0x94,0xC6,0x00,0x00,}}, {0x658B,2,{0xD5,0xAB,0x00,0x00,}}, {0x658C,2,{0xB1,0xF3,0x00,0x00,}}, {0x658D,2,{0x94,0xC7,0x00,0x00,}}, {0x658E,2,{0x94,0xC8,0x00,0x00,}}, {0x658F,2,{0x94,0xC9,0x00,0x00,}}, {0x6590,2,{0xEC,0xB3,0x00,0x00,}}, {0x6591,2,{0xB0,0xDF,0x00,0x00,}}, {0x6592,2,{0x94,0xCA,0x00,0x00,}}, {0x6593,2,{0xEC,0xB5,0x00,0x00,}}, {0x6594,2,{0x94,0xCB,0x00,0x00,}}, {0x6595,2,{0x94,0xCC,0x00,0x00,}}, {0x6596,2,{0x94,0xCD,0x00,0x00,}}, {0x6597,2,{0xB6,0xB7,0x00,0x00,}}, {0x6598,2,{0x94,0xCE,0x00,0x00,}}, {0x6599,2,{0xC1,0xCF,0x00,0x00,}}, {0x659A,2,{0x94,0xCF,0x00,0x00,}}, {0x659B,2,{0xF5,0xFA,0x00,0x00,}}, {0x659C,2,{0xD0,0xB1,0x00,0x00,}}, {0x659D,2,{0x94,0xD0,0x00,0x00,}}, {0x659E,2,{0x94,0xD1,0x00,0x00,}}, {0x659F,2,{0xD5,0xE5,0x00,0x00,}}, {0x65A0,2,{0x94,0xD2,0x00,0x00,}}, {0x65A1,2,{0xCE,0xD3,0x00,0x00,}}, {0x65A2,2,{0x94,0xD3,0x00,0x00,}}, {0x65A3,2,{0x94,0xD4,0x00,0x00,}}, {0x65A4,2,{0xBD,0xEF,0x00,0x00,}}, {0x65A5,2,{0xB3,0xE2,0x00,0x00,}}, {0x65A6,2,{0x94,0xD5,0x00,0x00,}}, {0x65A7,2,{0xB8,0xAB,0x00,0x00,}}, {0x65A8,2,{0x94,0xD6,0x00,0x00,}}, {0x65A9,2,{0xD5,0xB6,0x00,0x00,}}, {0x65AA,2,{0x94,0xD7,0x00,0x00,}}, {0x65AB,2,{0xED,0xBD,0x00,0x00,}}, {0x65AC,2,{0x94,0xD8,0x00,0x00,}}, {0x65AD,2,{0xB6,0xCF,0x00,0x00,}}, {0x65AE,2,{0x94,0xD9,0x00,0x00,}}, {0x65AF,2,{0xCB,0xB9,0x00,0x00,}}, {0x65B0,2,{0xD0,0xC2,0x00,0x00,}}, {0x65B1,2,{0x94,0xDA,0x00,0x00,}}, {0x65B2,2,{0x94,0xDB,0x00,0x00,}}, {0x65B3,2,{0x94,0xDC,0x00,0x00,}}, {0x65B4,2,{0x94,0xDD,0x00,0x00,}}, {0x65B5,2,{0x94,0xDE,0x00,0x00,}}, {0x65B6,2,{0x94,0xDF,0x00,0x00,}}, {0x65B7,2,{0x94,0xE0,0x00,0x00,}}, {0x65B8,2,{0x94,0xE1,0x00,0x00,}}, {0x65B9,2,{0xB7,0xBD,0x00,0x00,}}, {0x65BA,2,{0x94,0xE2,0x00,0x00,}}, {0x65BB,2,{0x94,0xE3,0x00,0x00,}}, {0x65BC,2,{0xEC,0xB6,0x00,0x00,}}, {0x65BD,2,{0xCA,0xA9,0x00,0x00,}}, {0x65BE,2,{0x94,0xE4,0x00,0x00,}}, {0x65BF,2,{0x94,0xE5,0x00,0x00,}}, {0x65C0,2,{0x94,0xE6,0x00,0x00,}}, {0x65C1,2,{0xC5,0xD4,0x00,0x00,}}, {0x65C2,2,{0x94,0xE7,0x00,0x00,}}, {0x65C3,2,{0xEC,0xB9,0x00,0x00,}}, {0x65C4,2,{0xEC,0xB8,0x00,0x00,}}, {0x65C5,2,{0xC2,0xC3,0x00,0x00,}}, {0x65C6,2,{0xEC,0xB7,0x00,0x00,}}, {0x65C7,2,{0x94,0xE8,0x00,0x00,}}, {0x65C8,2,{0x94,0xE9,0x00,0x00,}}, {0x65C9,2,{0x94,0xEA,0x00,0x00,}}, {0x65CA,2,{0x94,0xEB,0x00,0x00,}}, {0x65CB,2,{0xD0,0xFD,0x00,0x00,}}, {0x65CC,2,{0xEC,0xBA,0x00,0x00,}}, {0x65CD,2,{0x94,0xEC,0x00,0x00,}}, {0x65CE,2,{0xEC,0xBB,0x00,0x00,}}, {0x65CF,2,{0xD7,0xE5,0x00,0x00,}}, {0x65D0,2,{0x94,0xED,0x00,0x00,}}, {0x65D1,2,{0x94,0xEE,0x00,0x00,}}, {0x65D2,2,{0xEC,0xBC,0x00,0x00,}}, {0x65D3,2,{0x94,0xEF,0x00,0x00,}}, {0x65D4,2,{0x94,0xF0,0x00,0x00,}}, {0x65D5,2,{0x94,0xF1,0x00,0x00,}}, {0x65D6,2,{0xEC,0xBD,0x00,0x00,}}, {0x65D7,2,{0xC6,0xEC,0x00,0x00,}}, {0x65D8,2,{0x94,0xF2,0x00,0x00,}}, {0x65D9,2,{0x94,0xF3,0x00,0x00,}}, {0x65DA,2,{0x94,0xF4,0x00,0x00,}}, {0x65DB,2,{0x94,0xF5,0x00,0x00,}}, {0x65DC,2,{0x94,0xF6,0x00,0x00,}}, {0x65DD,2,{0x94,0xF7,0x00,0x00,}}, {0x65DE,2,{0x94,0xF8,0x00,0x00,}}, {0x65DF,2,{0x94,0xF9,0x00,0x00,}}, {0x65E0,2,{0xCE,0xDE,0x00,0x00,}}, {0x65E1,2,{0x94,0xFA,0x00,0x00,}}, {0x65E2,2,{0xBC,0xC8,0x00,0x00,}}, {0x65E3,2,{0x94,0xFB,0x00,0x00,}}, {0x65E4,2,{0x94,0xFC,0x00,0x00,}}, {0x65E5,2,{0xC8,0xD5,0x00,0x00,}}, {0x65E6,2,{0xB5,0xA9,0x00,0x00,}}, {0x65E7,2,{0xBE,0xC9,0x00,0x00,}}, {0x65E8,2,{0xD6,0xBC,0x00,0x00,}}, {0x65E9,2,{0xD4,0xE7,0x00,0x00,}}, {0x65EA,2,{0x94,0xFD,0x00,0x00,}}, {0x65EB,2,{0x94,0xFE,0x00,0x00,}}, {0x65EC,2,{0xD1,0xAE,0x00,0x00,}}, {0x65ED,2,{0xD0,0xF1,0x00,0x00,}}, {0x65EE,2,{0xEA,0xB8,0x00,0x00,}}, {0x65EF,2,{0xEA,0xB9,0x00,0x00,}}, {0x65F0,2,{0xEA,0xBA,0x00,0x00,}}, {0x65F1,2,{0xBA,0xB5,0x00,0x00,}}, {0x65F2,2,{0x95,0x40,0x00,0x00,}}, {0x65F3,2,{0x95,0x41,0x00,0x00,}}, {0x65F4,2,{0x95,0x42,0x00,0x00,}}, {0x65F5,2,{0x95,0x43,0x00,0x00,}}, {0x65F6,2,{0xCA,0xB1,0x00,0x00,}}, {0x65F7,2,{0xBF,0xF5,0x00,0x00,}}, {0x65F8,2,{0x95,0x44,0x00,0x00,}}, {0x65F9,2,{0x95,0x45,0x00,0x00,}}, {0x65FA,2,{0xCD,0xFA,0x00,0x00,}}, {0x65FB,2,{0x95,0x46,0x00,0x00,}}, {0x65FC,2,{0x95,0x47,0x00,0x00,}}, {0x65FD,2,{0x95,0x48,0x00,0x00,}}, {0x65FE,2,{0x95,0x49,0x00,0x00,}}, {0x65FF,2,{0x95,0x4A,0x00,0x00,}}, {0x6600,2,{0xEA,0xC0,0x00,0x00,}}, {0x6601,2,{0x95,0x4B,0x00,0x00,}}, {0x6602,2,{0xB0,0xBA,0x00,0x00,}}, {0x6603,2,{0xEA,0xBE,0x00,0x00,}}, {0x6604,2,{0x95,0x4C,0x00,0x00,}}, {0x6605,2,{0x95,0x4D,0x00,0x00,}}, {0x6606,2,{0xC0,0xA5,0x00,0x00,}}, {0x6607,2,{0x95,0x4E,0x00,0x00,}}, {0x6608,2,{0x95,0x4F,0x00,0x00,}}, {0x6609,2,{0x95,0x50,0x00,0x00,}}, {0x660A,2,{0xEA,0xBB,0x00,0x00,}}, {0x660B,2,{0x95,0x51,0x00,0x00,}}, {0x660C,2,{0xB2,0xFD,0x00,0x00,}}, {0x660D,2,{0x95,0x52,0x00,0x00,}}, {0x660E,2,{0xC3,0xF7,0x00,0x00,}}, {0x660F,2,{0xBB,0xE8,0x00,0x00,}}, {0x6610,2,{0x95,0x53,0x00,0x00,}}, {0x6611,2,{0x95,0x54,0x00,0x00,}}, {0x6612,2,{0x95,0x55,0x00,0x00,}}, {0x6613,2,{0xD2,0xD7,0x00,0x00,}}, {0x6614,2,{0xCE,0xF4,0x00,0x00,}}, {0x6615,2,{0xEA,0xBF,0x00,0x00,}}, {0x6616,2,{0x95,0x56,0x00,0x00,}}, {0x6617,2,{0x95,0x57,0x00,0x00,}}, {0x6618,2,{0x95,0x58,0x00,0x00,}}, {0x6619,2,{0xEA,0xBC,0x00,0x00,}}, {0x661A,2,{0x95,0x59,0x00,0x00,}}, {0x661B,2,{0x95,0x5A,0x00,0x00,}}, {0x661C,2,{0x95,0x5B,0x00,0x00,}}, {0x661D,2,{0xEA,0xC3,0x00,0x00,}}, {0x661E,2,{0x95,0x5C,0x00,0x00,}}, {0x661F,2,{0xD0,0xC7,0x00,0x00,}}, {0x6620,2,{0xD3,0xB3,0x00,0x00,}}, {0x6621,2,{0x95,0x5D,0x00,0x00,}}, {0x6622,2,{0x95,0x5E,0x00,0x00,}}, {0x6623,2,{0x95,0x5F,0x00,0x00,}}, {0x6624,2,{0x95,0x60,0x00,0x00,}}, {0x6625,2,{0xB4,0xBA,0x00,0x00,}}, {0x6626,2,{0x95,0x61,0x00,0x00,}}, {0x6627,2,{0xC3,0xC1,0x00,0x00,}}, {0x6628,2,{0xD7,0xF2,0x00,0x00,}}, {0x6629,2,{0x95,0x62,0x00,0x00,}}, {0x662A,2,{0x95,0x63,0x00,0x00,}}, {0x662B,2,{0x95,0x64,0x00,0x00,}}, {0x662C,2,{0x95,0x65,0x00,0x00,}}, {0x662D,2,{0xD5,0xD1,0x00,0x00,}}, {0x662E,2,{0x95,0x66,0x00,0x00,}}, {0x662F,2,{0xCA,0xC7,0x00,0x00,}}, {0x6630,2,{0x95,0x67,0x00,0x00,}}, {0x6631,2,{0xEA,0xC5,0x00,0x00,}}, {0x6632,2,{0x95,0x68,0x00,0x00,}}, {0x6633,2,{0x95,0x69,0x00,0x00,}}, {0x6634,2,{0xEA,0xC4,0x00,0x00,}}, {0x6635,2,{0xEA,0xC7,0x00,0x00,}}, {0x6636,2,{0xEA,0xC6,0x00,0x00,}}, {0x6637,2,{0x95,0x6A,0x00,0x00,}}, {0x6638,2,{0x95,0x6B,0x00,0x00,}}, {0x6639,2,{0x95,0x6C,0x00,0x00,}}, {0x663A,2,{0x95,0x6D,0x00,0x00,}}, {0x663B,2,{0x95,0x6E,0x00,0x00,}}, {0x663C,2,{0xD6,0xE7,0x00,0x00,}}, {0x663D,2,{0x95,0x6F,0x00,0x00,}}, {0x663E,2,{0xCF,0xD4,0x00,0x00,}}, {0x663F,2,{0x95,0x70,0x00,0x00,}}, {0x6640,2,{0x95,0x71,0x00,0x00,}}, {0x6641,2,{0xEA,0xCB,0x00,0x00,}}, {0x6642,2,{0x95,0x72,0x00,0x00,}}, {0x6643,2,{0xBB,0xCE,0x00,0x00,}}, {0x6644,2,{0x95,0x73,0x00,0x00,}}, {0x6645,2,{0x95,0x74,0x00,0x00,}}, {0x6646,2,{0x95,0x75,0x00,0x00,}}, {0x6647,2,{0x95,0x76,0x00,0x00,}}, {0x6648,2,{0x95,0x77,0x00,0x00,}}, {0x6649,2,{0x95,0x78,0x00,0x00,}}, {0x664A,2,{0x95,0x79,0x00,0x00,}}, {0x664B,2,{0xBD,0xFA,0x00,0x00,}}, {0x664C,2,{0xC9,0xCE,0x00,0x00,}}, {0x664D,2,{0x95,0x7A,0x00,0x00,}}, {0x664E,2,{0x95,0x7B,0x00,0x00,}}, {0x664F,2,{0xEA,0xCC,0x00,0x00,}}, {0x6650,2,{0x95,0x7C,0x00,0x00,}}, {0x6651,2,{0x95,0x7D,0x00,0x00,}}, {0x6652,2,{0xC9,0xB9,0x00,0x00,}}, {0x6653,2,{0xCF,0xFE,0x00,0x00,}}, {0x6654,2,{0xEA,0xCA,0x00,0x00,}}, {0x6655,2,{0xD4,0xCE,0x00,0x00,}}, {0x6656,2,{0xEA,0xCD,0x00,0x00,}}, {0x6657,2,{0xEA,0xCF,0x00,0x00,}}, {0x6658,2,{0x95,0x7E,0x00,0x00,}}, {0x6659,2,{0x95,0x80,0x00,0x00,}}, {0x665A,2,{0xCD,0xED,0x00,0x00,}}, {0x665B,2,{0x95,0x81,0x00,0x00,}}, {0x665C,2,{0x95,0x82,0x00,0x00,}}, {0x665D,2,{0x95,0x83,0x00,0x00,}}, {0x665E,2,{0x95,0x84,0x00,0x00,}}, {0x665F,2,{0xEA,0xC9,0x00,0x00,}}, {0x6660,2,{0x95,0x85,0x00,0x00,}}, {0x6661,2,{0xEA,0xCE,0x00,0x00,}}, {0x6662,2,{0x95,0x86,0x00,0x00,}}, {0x6663,2,{0x95,0x87,0x00,0x00,}}, {0x6664,2,{0xCE,0xEE,0x00,0x00,}}, {0x6665,2,{0x95,0x88,0x00,0x00,}}, {0x6666,2,{0xBB,0xDE,0x00,0x00,}}, {0x6667,2,{0x95,0x89,0x00,0x00,}}, {0x6668,2,{0xB3,0xBF,0x00,0x00,}}, {0x6669,2,{0x95,0x8A,0x00,0x00,}}, {0x666A,2,{0x95,0x8B,0x00,0x00,}}, {0x666B,2,{0x95,0x8C,0x00,0x00,}}, {0x666C,2,{0x95,0x8D,0x00,0x00,}}, {0x666D,2,{0x95,0x8E,0x00,0x00,}}, {0x666E,2,{0xC6,0xD5,0x00,0x00,}}, {0x666F,2,{0xBE,0xB0,0x00,0x00,}}, {0x6670,2,{0xCE,0xFA,0x00,0x00,}}, {0x6671,2,{0x95,0x8F,0x00,0x00,}}, {0x6672,2,{0x95,0x90,0x00,0x00,}}, {0x6673,2,{0x95,0x91,0x00,0x00,}}, {0x6674,2,{0xC7,0xE7,0x00,0x00,}}, {0x6675,2,{0x95,0x92,0x00,0x00,}}, {0x6676,2,{0xBE,0xA7,0x00,0x00,}}, {0x6677,2,{0xEA,0xD0,0x00,0x00,}}, {0x6678,2,{0x95,0x93,0x00,0x00,}}, {0x6679,2,{0x95,0x94,0x00,0x00,}}, {0x667A,2,{0xD6,0xC7,0x00,0x00,}}, {0x667B,2,{0x95,0x95,0x00,0x00,}}, {0x667C,2,{0x95,0x96,0x00,0x00,}}, {0x667D,2,{0x95,0x97,0x00,0x00,}}, {0x667E,2,{0xC1,0xC0,0x00,0x00,}}, {0x667F,2,{0x95,0x98,0x00,0x00,}}, {0x6680,2,{0x95,0x99,0x00,0x00,}}, {0x6681,2,{0x95,0x9A,0x00,0x00,}}, {0x6682,2,{0xD4,0xDD,0x00,0x00,}}, {0x6683,2,{0x95,0x9B,0x00,0x00,}}, {0x6684,2,{0xEA,0xD1,0x00,0x00,}}, {0x6685,2,{0x95,0x9C,0x00,0x00,}}, {0x6686,2,{0x95,0x9D,0x00,0x00,}}, {0x6687,2,{0xCF,0xBE,0x00,0x00,}}, {0x6688,2,{0x95,0x9E,0x00,0x00,}}, {0x6689,2,{0x95,0x9F,0x00,0x00,}}, {0x668A,2,{0x95,0xA0,0x00,0x00,}}, {0x668B,2,{0x95,0xA1,0x00,0x00,}}, {0x668C,2,{0xEA,0xD2,0x00,0x00,}}, {0x668D,2,{0x95,0xA2,0x00,0x00,}}, {0x668E,2,{0x95,0xA3,0x00,0x00,}}, {0x668F,2,{0x95,0xA4,0x00,0x00,}}, {0x6690,2,{0x95,0xA5,0x00,0x00,}}, {0x6691,2,{0xCA,0xEE,0x00,0x00,}}, {0x6692,2,{0x95,0xA6,0x00,0x00,}}, {0x6693,2,{0x95,0xA7,0x00,0x00,}}, {0x6694,2,{0x95,0xA8,0x00,0x00,}}, {0x6695,2,{0x95,0xA9,0x00,0x00,}}, {0x6696,2,{0xC5,0xAF,0x00,0x00,}}, {0x6697,2,{0xB0,0xB5,0x00,0x00,}}, {0x6698,2,{0x95,0xAA,0x00,0x00,}}, {0x6699,2,{0x95,0xAB,0x00,0x00,}}, {0x669A,2,{0x95,0xAC,0x00,0x00,}}, {0x669B,2,{0x95,0xAD,0x00,0x00,}}, {0x669C,2,{0x95,0xAE,0x00,0x00,}}, {0x669D,2,{0xEA,0xD4,0x00,0x00,}}, {0x669E,2,{0x95,0xAF,0x00,0x00,}}, {0x669F,2,{0x95,0xB0,0x00,0x00,}}, {0x66A0,2,{0x95,0xB1,0x00,0x00,}}, {0x66A1,2,{0x95,0xB2,0x00,0x00,}}, {0x66A2,2,{0x95,0xB3,0x00,0x00,}}, {0x66A3,2,{0x95,0xB4,0x00,0x00,}}, {0x66A4,2,{0x95,0xB5,0x00,0x00,}}, {0x66A5,2,{0x95,0xB6,0x00,0x00,}}, {0x66A6,2,{0x95,0xB7,0x00,0x00,}}, {0x66A7,2,{0xEA,0xD3,0x00,0x00,}}, {0x66A8,2,{0xF4,0xDF,0x00,0x00,}}, {0x66A9,2,{0x95,0xB8,0x00,0x00,}}, {0x66AA,2,{0x95,0xB9,0x00,0x00,}}, {0x66AB,2,{0x95,0xBA,0x00,0x00,}}, {0x66AC,2,{0x95,0xBB,0x00,0x00,}}, {0x66AD,2,{0x95,0xBC,0x00,0x00,}}, {0x66AE,2,{0xC4,0xBA,0x00,0x00,}}, {0x66AF,2,{0x95,0xBD,0x00,0x00,}}, {0x66B0,2,{0x95,0xBE,0x00,0x00,}}, {0x66B1,2,{0x95,0xBF,0x00,0x00,}}, {0x66B2,2,{0x95,0xC0,0x00,0x00,}}, {0x66B3,2,{0x95,0xC1,0x00,0x00,}}, {0x66B4,2,{0xB1,0xA9,0x00,0x00,}}, {0x66B5,2,{0x95,0xC2,0x00,0x00,}}, {0x66B6,2,{0x95,0xC3,0x00,0x00,}}, {0x66B7,2,{0x95,0xC4,0x00,0x00,}}, {0x66B8,2,{0x95,0xC5,0x00,0x00,}}, {0x66B9,2,{0xE5,0xDF,0x00,0x00,}}, {0x66BA,2,{0x95,0xC6,0x00,0x00,}}, {0x66BB,2,{0x95,0xC7,0x00,0x00,}}, {0x66BC,2,{0x95,0xC8,0x00,0x00,}}, {0x66BD,2,{0x95,0xC9,0x00,0x00,}}, {0x66BE,2,{0xEA,0xD5,0x00,0x00,}}, {0x66BF,2,{0x95,0xCA,0x00,0x00,}}, {0x66C0,2,{0x95,0xCB,0x00,0x00,}}, {0x66C1,2,{0x95,0xCC,0x00,0x00,}}, {0x66C2,2,{0x95,0xCD,0x00,0x00,}}, {0x66C3,2,{0x95,0xCE,0x00,0x00,}}, {0x66C4,2,{0x95,0xCF,0x00,0x00,}}, {0x66C5,2,{0x95,0xD0,0x00,0x00,}}, {0x66C6,2,{0x95,0xD1,0x00,0x00,}}, {0x66C7,2,{0x95,0xD2,0x00,0x00,}}, {0x66C8,2,{0x95,0xD3,0x00,0x00,}}, {0x66C9,2,{0x95,0xD4,0x00,0x00,}}, {0x66CA,2,{0x95,0xD5,0x00,0x00,}}, {0x66CB,2,{0x95,0xD6,0x00,0x00,}}, {0x66CC,2,{0x95,0xD7,0x00,0x00,}}, {0x66CD,2,{0x95,0xD8,0x00,0x00,}}, {0x66CE,2,{0x95,0xD9,0x00,0x00,}}, {0x66CF,2,{0x95,0xDA,0x00,0x00,}}, {0x66D0,2,{0x95,0xDB,0x00,0x00,}}, {0x66D1,2,{0x95,0xDC,0x00,0x00,}}, {0x66D2,2,{0x95,0xDD,0x00,0x00,}}, {0x66D3,2,{0x95,0xDE,0x00,0x00,}}, {0x66D4,2,{0x95,0xDF,0x00,0x00,}}, {0x66D5,2,{0x95,0xE0,0x00,0x00,}}, {0x66D6,2,{0x95,0xE1,0x00,0x00,}}, {0x66D7,2,{0x95,0xE2,0x00,0x00,}}, {0x66D8,2,{0x95,0xE3,0x00,0x00,}}, {0x66D9,2,{0xCA,0xEF,0x00,0x00,}}, {0x66DA,2,{0x95,0xE4,0x00,0x00,}}, {0x66DB,2,{0xEA,0xD6,0x00,0x00,}}, {0x66DC,2,{0xEA,0xD7,0x00,0x00,}}, {0x66DD,2,{0xC6,0xD8,0x00,0x00,}}, {0x66DE,2,{0x95,0xE5,0x00,0x00,}}, {0x66DF,2,{0x95,0xE6,0x00,0x00,}}, {0x66E0,2,{0x95,0xE7,0x00,0x00,}}, {0x66E1,2,{0x95,0xE8,0x00,0x00,}}, {0x66E2,2,{0x95,0xE9,0x00,0x00,}}, {0x66E3,2,{0x95,0xEA,0x00,0x00,}}, {0x66E4,2,{0x95,0xEB,0x00,0x00,}}, {0x66E5,2,{0x95,0xEC,0x00,0x00,}}, {0x66E6,2,{0xEA,0xD8,0x00,0x00,}}, {0x66E7,2,{0x95,0xED,0x00,0x00,}}, {0x66E8,2,{0x95,0xEE,0x00,0x00,}}, {0x66E9,2,{0xEA,0xD9,0x00,0x00,}}, {0x66EA,2,{0x95,0xEF,0x00,0x00,}}, {0x66EB,2,{0x95,0xF0,0x00,0x00,}}, {0x66EC,2,{0x95,0xF1,0x00,0x00,}}, {0x66ED,2,{0x95,0xF2,0x00,0x00,}}, {0x66EE,2,{0x95,0xF3,0x00,0x00,}}, {0x66EF,2,{0x95,0xF4,0x00,0x00,}}, {0x66F0,2,{0xD4,0xBB,0x00,0x00,}}, {0x66F1,2,{0x95,0xF5,0x00,0x00,}}, {0x66F2,2,{0xC7,0xFA,0x00,0x00,}}, {0x66F3,2,{0xD2,0xB7,0x00,0x00,}}, {0x66F4,2,{0xB8,0xFC,0x00,0x00,}}, {0x66F5,2,{0x95,0xF6,0x00,0x00,}}, {0x66F6,2,{0x95,0xF7,0x00,0x00,}}, {0x66F7,2,{0xEA,0xC2,0x00,0x00,}}, {0x66F8,2,{0x95,0xF8,0x00,0x00,}}, {0x66F9,2,{0xB2,0xDC,0x00,0x00,}}, {0x66FA,2,{0x95,0xF9,0x00,0x00,}}, {0x66FB,2,{0x95,0xFA,0x00,0x00,}}, {0x66FC,2,{0xC2,0xFC,0x00,0x00,}}, {0x66FD,2,{0x95,0xFB,0x00,0x00,}}, {0x66FE,2,{0xD4,0xF8,0x00,0x00,}}, {0x66FF,2,{0xCC,0xE6,0x00,0x00,}}, {0x6700,2,{0xD7,0xEE,0x00,0x00,}}, {0x6701,2,{0x95,0xFC,0x00,0x00,}}, {0x6702,2,{0x95,0xFD,0x00,0x00,}}, {0x6703,2,{0x95,0xFE,0x00,0x00,}}, {0x6704,2,{0x96,0x40,0x00,0x00,}}, {0x6705,2,{0x96,0x41,0x00,0x00,}}, {0x6706,2,{0x96,0x42,0x00,0x00,}}, {0x6707,2,{0x96,0x43,0x00,0x00,}}, {0x6708,2,{0xD4,0xC2,0x00,0x00,}}, {0x6709,2,{0xD3,0xD0,0x00,0x00,}}, {0x670A,2,{0xEB,0xC3,0x00,0x00,}}, {0x670B,2,{0xC5,0xF3,0x00,0x00,}}, {0x670C,2,{0x96,0x44,0x00,0x00,}}, {0x670D,2,{0xB7,0xFE,0x00,0x00,}}, {0x670E,2,{0x96,0x45,0x00,0x00,}}, {0x670F,2,{0x96,0x46,0x00,0x00,}}, {0x6710,2,{0xEB,0xD4,0x00,0x00,}}, {0x6711,2,{0x96,0x47,0x00,0x00,}}, {0x6712,2,{0x96,0x48,0x00,0x00,}}, {0x6713,2,{0x96,0x49,0x00,0x00,}}, {0x6714,2,{0xCB,0xB7,0x00,0x00,}}, {0x6715,2,{0xEB,0xDE,0x00,0x00,}}, {0x6716,2,{0x96,0x4A,0x00,0x00,}}, {0x6717,2,{0xC0,0xCA,0x00,0x00,}}, {0x6718,2,{0x96,0x4B,0x00,0x00,}}, {0x6719,2,{0x96,0x4C,0x00,0x00,}}, {0x671A,2,{0x96,0x4D,0x00,0x00,}}, {0x671B,2,{0xCD,0xFB,0x00,0x00,}}, {0x671C,2,{0x96,0x4E,0x00,0x00,}}, {0x671D,2,{0xB3,0xAF,0x00,0x00,}}, {0x671E,2,{0x96,0x4F,0x00,0x00,}}, {0x671F,2,{0xC6,0xDA,0x00,0x00,}}, {0x6720,2,{0x96,0x50,0x00,0x00,}}, {0x6721,2,{0x96,0x51,0x00,0x00,}}, {0x6722,2,{0x96,0x52,0x00,0x00,}}, {0x6723,2,{0x96,0x53,0x00,0x00,}}, {0x6724,2,{0x96,0x54,0x00,0x00,}}, {0x6725,2,{0x96,0x55,0x00,0x00,}}, {0x6726,2,{0xEB,0xFC,0x00,0x00,}}, {0x6727,2,{0x96,0x56,0x00,0x00,}}, {0x6728,2,{0xC4,0xBE,0x00,0x00,}}, {0x6729,2,{0x96,0x57,0x00,0x00,}}, {0x672A,2,{0xCE,0xB4,0x00,0x00,}}, {0x672B,2,{0xC4,0xA9,0x00,0x00,}}, {0x672C,2,{0xB1,0xBE,0x00,0x00,}}, {0x672D,2,{0xD4,0xFD,0x00,0x00,}}, {0x672E,2,{0x96,0x58,0x00,0x00,}}, {0x672F,2,{0xCA,0xF5,0x00,0x00,}}, {0x6730,2,{0x96,0x59,0x00,0x00,}}, {0x6731,2,{0xD6,0xEC,0x00,0x00,}}, {0x6732,2,{0x96,0x5A,0x00,0x00,}}, {0x6733,2,{0x96,0x5B,0x00,0x00,}}, {0x6734,2,{0xC6,0xD3,0x00,0x00,}}, {0x6735,2,{0xB6,0xE4,0x00,0x00,}}, {0x6736,2,{0x96,0x5C,0x00,0x00,}}, {0x6737,2,{0x96,0x5D,0x00,0x00,}}, {0x6738,2,{0x96,0x5E,0x00,0x00,}}, {0x6739,2,{0x96,0x5F,0x00,0x00,}}, {0x673A,2,{0xBB,0xFA,0x00,0x00,}}, {0x673B,2,{0x96,0x60,0x00,0x00,}}, {0x673C,2,{0x96,0x61,0x00,0x00,}}, {0x673D,2,{0xD0,0xE0,0x00,0x00,}}, {0x673E,2,{0x96,0x62,0x00,0x00,}}, {0x673F,2,{0x96,0x63,0x00,0x00,}}, {0x6740,2,{0xC9,0xB1,0x00,0x00,}}, {0x6741,2,{0x96,0x64,0x00,0x00,}}, {0x6742,2,{0xD4,0xD3,0x00,0x00,}}, {0x6743,2,{0xC8,0xA8,0x00,0x00,}}, {0x6744,2,{0x96,0x65,0x00,0x00,}}, {0x6745,2,{0x96,0x66,0x00,0x00,}}, {0x6746,2,{0xB8,0xCB,0x00,0x00,}}, {0x6747,2,{0x96,0x67,0x00,0x00,}}, {0x6748,2,{0xE8,0xBE,0x00,0x00,}}, {0x6749,2,{0xC9,0xBC,0x00,0x00,}}, {0x674A,2,{0x96,0x68,0x00,0x00,}}, {0x674B,2,{0x96,0x69,0x00,0x00,}}, {0x674C,2,{0xE8,0xBB,0x00,0x00,}}, {0x674D,2,{0x96,0x6A,0x00,0x00,}}, {0x674E,2,{0xC0,0xEE,0x00,0x00,}}, {0x674F,2,{0xD0,0xD3,0x00,0x00,}}, {0x6750,2,{0xB2,0xC4,0x00,0x00,}}, {0x6751,2,{0xB4,0xE5,0x00,0x00,}}, {0x6752,2,{0x96,0x6B,0x00,0x00,}}, {0x6753,2,{0xE8,0xBC,0x00,0x00,}}, {0x6754,2,{0x96,0x6C,0x00,0x00,}}, {0x6755,2,{0x96,0x6D,0x00,0x00,}}, {0x6756,2,{0xD5,0xC8,0x00,0x00,}}, {0x6757,2,{0x96,0x6E,0x00,0x00,}}, {0x6758,2,{0x96,0x6F,0x00,0x00,}}, {0x6759,2,{0x96,0x70,0x00,0x00,}}, {0x675A,2,{0x96,0x71,0x00,0x00,}}, {0x675B,2,{0x96,0x72,0x00,0x00,}}, {0x675C,2,{0xB6,0xC5,0x00,0x00,}}, {0x675D,2,{0x96,0x73,0x00,0x00,}}, {0x675E,2,{0xE8,0xBD,0x00,0x00,}}, {0x675F,2,{0xCA,0xF8,0x00,0x00,}}, {0x6760,2,{0xB8,0xDC,0x00,0x00,}}, {0x6761,2,{0xCC,0xF5,0x00,0x00,}}, {0x6762,2,{0x96,0x74,0x00,0x00,}}, {0x6763,2,{0x96,0x75,0x00,0x00,}}, {0x6764,2,{0x96,0x76,0x00,0x00,}}, {0x6765,2,{0xC0,0xB4,0x00,0x00,}}, {0x6766,2,{0x96,0x77,0x00,0x00,}}, {0x6767,2,{0x96,0x78,0x00,0x00,}}, {0x6768,2,{0xD1,0xEE,0x00,0x00,}}, {0x6769,2,{0xE8,0xBF,0x00,0x00,}}, {0x676A,2,{0xE8,0xC2,0x00,0x00,}}, {0x676B,2,{0x96,0x79,0x00,0x00,}}, {0x676C,2,{0x96,0x7A,0x00,0x00,}}, {0x676D,2,{0xBA,0xBC,0x00,0x00,}}, {0x676E,2,{0x96,0x7B,0x00,0x00,}}, {0x676F,2,{0xB1,0xAD,0x00,0x00,}}, {0x6770,2,{0xBD,0xDC,0x00,0x00,}}, {0x6771,2,{0x96,0x7C,0x00,0x00,}}, {0x6772,2,{0xEA,0xBD,0x00,0x00,}}, {0x6773,2,{0xE8,0xC3,0x00,0x00,}}, {0x6774,2,{0x96,0x7D,0x00,0x00,}}, {0x6775,2,{0xE8,0xC6,0x00,0x00,}}, {0x6776,2,{0x96,0x7E,0x00,0x00,}}, {0x6777,2,{0xE8,0xCB,0x00,0x00,}}, {0x6778,2,{0x96,0x80,0x00,0x00,}}, {0x6779,2,{0x96,0x81,0x00,0x00,}}, {0x677A,2,{0x96,0x82,0x00,0x00,}}, {0x677B,2,{0x96,0x83,0x00,0x00,}}, {0x677C,2,{0xE8,0xCC,0x00,0x00,}}, {0x677D,2,{0x96,0x84,0x00,0x00,}}, {0x677E,2,{0xCB,0xC9,0x00,0x00,}}, {0x677F,2,{0xB0,0xE5,0x00,0x00,}}, {0x6780,2,{0x96,0x85,0x00,0x00,}}, {0x6781,2,{0xBC,0xAB,0x00,0x00,}}, {0x6782,2,{0x96,0x86,0x00,0x00,}}, {0x6783,2,{0x96,0x87,0x00,0x00,}}, {0x6784,2,{0xB9,0xB9,0x00,0x00,}}, {0x6785,2,{0x96,0x88,0x00,0x00,}}, {0x6786,2,{0x96,0x89,0x00,0x00,}}, {0x6787,2,{0xE8,0xC1,0x00,0x00,}}, {0x6788,2,{0x96,0x8A,0x00,0x00,}}, {0x6789,2,{0xCD,0xF7,0x00,0x00,}}, {0x678A,2,{0x96,0x8B,0x00,0x00,}}, {0x678B,2,{0xE8,0xCA,0x00,0x00,}}, {0x678C,2,{0x96,0x8C,0x00,0x00,}}, {0x678D,2,{0x96,0x8D,0x00,0x00,}}, {0x678E,2,{0x96,0x8E,0x00,0x00,}}, {0x678F,2,{0x96,0x8F,0x00,0x00,}}, {0x6790,2,{0xCE,0xF6,0x00,0x00,}}, {0x6791,2,{0x96,0x90,0x00,0x00,}}, {0x6792,2,{0x96,0x91,0x00,0x00,}}, {0x6793,2,{0x96,0x92,0x00,0x00,}}, {0x6794,2,{0x96,0x93,0x00,0x00,}}, {0x6795,2,{0xD5,0xED,0x00,0x00,}}, {0x6796,2,{0x96,0x94,0x00,0x00,}}, {0x6797,2,{0xC1,0xD6,0x00,0x00,}}, {0x6798,2,{0xE8,0xC4,0x00,0x00,}}, {0x6799,2,{0x96,0x95,0x00,0x00,}}, {0x679A,2,{0xC3,0xB6,0x00,0x00,}}, {0x679B,2,{0x96,0x96,0x00,0x00,}}, {0x679C,2,{0xB9,0xFB,0x00,0x00,}}, {0x679D,2,{0xD6,0xA6,0x00,0x00,}}, {0x679E,2,{0xE8,0xC8,0x00,0x00,}}, {0x679F,2,{0x96,0x97,0x00,0x00,}}, {0x67A0,2,{0x96,0x98,0x00,0x00,}}, {0x67A1,2,{0x96,0x99,0x00,0x00,}}, {0x67A2,2,{0xCA,0xE0,0x00,0x00,}}, {0x67A3,2,{0xD4,0xE6,0x00,0x00,}}, {0x67A4,2,{0x96,0x9A,0x00,0x00,}}, {0x67A5,2,{0xE8,0xC0,0x00,0x00,}}, {0x67A6,2,{0x96,0x9B,0x00,0x00,}}, {0x67A7,2,{0xE8,0xC5,0x00,0x00,}}, {0x67A8,2,{0xE8,0xC7,0x00,0x00,}}, {0x67A9,2,{0x96,0x9C,0x00,0x00,}}, {0x67AA,2,{0xC7,0xB9,0x00,0x00,}}, {0x67AB,2,{0xB7,0xE3,0x00,0x00,}}, {0x67AC,2,{0x96,0x9D,0x00,0x00,}}, {0x67AD,2,{0xE8,0xC9,0x00,0x00,}}, {0x67AE,2,{0x96,0x9E,0x00,0x00,}}, {0x67AF,2,{0xBF,0xDD,0x00,0x00,}}, {0x67B0,2,{0xE8,0xD2,0x00,0x00,}}, {0x67B1,2,{0x96,0x9F,0x00,0x00,}}, {0x67B2,2,{0x96,0xA0,0x00,0x00,}}, {0x67B3,2,{0xE8,0xD7,0x00,0x00,}}, {0x67B4,2,{0x96,0xA1,0x00,0x00,}}, {0x67B5,2,{0xE8,0xD5,0x00,0x00,}}, {0x67B6,2,{0xBC,0xDC,0x00,0x00,}}, {0x67B7,2,{0xBC,0xCF,0x00,0x00,}}, {0x67B8,2,{0xE8,0xDB,0x00,0x00,}}, {0x67B9,2,{0x96,0xA2,0x00,0x00,}}, {0x67BA,2,{0x96,0xA3,0x00,0x00,}}, {0x67BB,2,{0x96,0xA4,0x00,0x00,}}, {0x67BC,2,{0x96,0xA5,0x00,0x00,}}, {0x67BD,2,{0x96,0xA6,0x00,0x00,}}, {0x67BE,2,{0x96,0xA7,0x00,0x00,}}, {0x67BF,2,{0x96,0xA8,0x00,0x00,}}, {0x67C0,2,{0x96,0xA9,0x00,0x00,}}, {0x67C1,2,{0xE8,0xDE,0x00,0x00,}}, {0x67C2,2,{0x96,0xAA,0x00,0x00,}}, {0x67C3,2,{0xE8,0xDA,0x00,0x00,}}, {0x67C4,2,{0xB1,0xFA,0x00,0x00,}}, {0x67C5,2,{0x96,0xAB,0x00,0x00,}}, {0x67C6,2,{0x96,0xAC,0x00,0x00,}}, {0x67C7,2,{0x96,0xAD,0x00,0x00,}}, {0x67C8,2,{0x96,0xAE,0x00,0x00,}}, {0x67C9,2,{0x96,0xAF,0x00,0x00,}}, {0x67CA,2,{0x96,0xB0,0x00,0x00,}}, {0x67CB,2,{0x96,0xB1,0x00,0x00,}}, {0x67CC,2,{0x96,0xB2,0x00,0x00,}}, {0x67CD,2,{0x96,0xB3,0x00,0x00,}}, {0x67CE,2,{0x96,0xB4,0x00,0x00,}}, {0x67CF,2,{0xB0,0xD8,0x00,0x00,}}, {0x67D0,2,{0xC4,0xB3,0x00,0x00,}}, {0x67D1,2,{0xB8,0xCC,0x00,0x00,}}, {0x67D2,2,{0xC6,0xE2,0x00,0x00,}}, {0x67D3,2,{0xC8,0xBE,0x00,0x00,}}, {0x67D4,2,{0xC8,0xE1,0x00,0x00,}}, {0x67D5,2,{0x96,0xB5,0x00,0x00,}}, {0x67D6,2,{0x96,0xB6,0x00,0x00,}}, {0x67D7,2,{0x96,0xB7,0x00,0x00,}}, {0x67D8,2,{0xE8,0xCF,0x00,0x00,}}, {0x67D9,2,{0xE8,0xD4,0x00,0x00,}}, {0x67DA,2,{0xE8,0xD6,0x00,0x00,}}, {0x67DB,2,{0x96,0xB8,0x00,0x00,}}, {0x67DC,2,{0xB9,0xF1,0x00,0x00,}}, {0x67DD,2,{0xE8,0xD8,0x00,0x00,}}, {0x67DE,2,{0xD7,0xF5,0x00,0x00,}}, {0x67DF,2,{0x96,0xB9,0x00,0x00,}}, {0x67E0,2,{0xC4,0xFB,0x00,0x00,}}, {0x67E1,2,{0x96,0xBA,0x00,0x00,}}, {0x67E2,2,{0xE8,0xDC,0x00,0x00,}}, {0x67E3,2,{0x96,0xBB,0x00,0x00,}}, {0x67E4,2,{0x96,0xBC,0x00,0x00,}}, {0x67E5,2,{0xB2,0xE9,0x00,0x00,}}, {0x67E6,2,{0x96,0xBD,0x00,0x00,}}, {0x67E7,2,{0x96,0xBE,0x00,0x00,}}, {0x67E8,2,{0x96,0xBF,0x00,0x00,}}, {0x67E9,2,{0xE8,0xD1,0x00,0x00,}}, {0x67EA,2,{0x96,0xC0,0x00,0x00,}}, {0x67EB,2,{0x96,0xC1,0x00,0x00,}}, {0x67EC,2,{0xBC,0xED,0x00,0x00,}}, {0x67ED,2,{0x96,0xC2,0x00,0x00,}}, {0x67EE,2,{0x96,0xC3,0x00,0x00,}}, {0x67EF,2,{0xBF,0xC2,0x00,0x00,}}, {0x67F0,2,{0xE8,0xCD,0x00,0x00,}}, {0x67F1,2,{0xD6,0xF9,0x00,0x00,}}, {0x67F2,2,{0x96,0xC4,0x00,0x00,}}, {0x67F3,2,{0xC1,0xF8,0x00,0x00,}}, {0x67F4,2,{0xB2,0xF1,0x00,0x00,}}, {0x67F5,2,{0x96,0xC5,0x00,0x00,}}, {0x67F6,2,{0x96,0xC6,0x00,0x00,}}, {0x67F7,2,{0x96,0xC7,0x00,0x00,}}, {0x67F8,2,{0x96,0xC8,0x00,0x00,}}, {0x67F9,2,{0x96,0xC9,0x00,0x00,}}, {0x67FA,2,{0x96,0xCA,0x00,0x00,}}, {0x67FB,2,{0x96,0xCB,0x00,0x00,}}, {0x67FC,2,{0x96,0xCC,0x00,0x00,}}, {0x67FD,2,{0xE8,0xDF,0x00,0x00,}}, {0x67FE,2,{0x96,0xCD,0x00,0x00,}}, {0x67FF,2,{0xCA,0xC1,0x00,0x00,}}, {0x6800,2,{0xE8,0xD9,0x00,0x00,}}, {0x6801,2,{0x96,0xCE,0x00,0x00,}}, {0x6802,2,{0x96,0xCF,0x00,0x00,}}, {0x6803,2,{0x96,0xD0,0x00,0x00,}}, {0x6804,2,{0x96,0xD1,0x00,0x00,}}, {0x6805,2,{0xD5,0xA4,0x00,0x00,}}, {0x6806,2,{0x96,0xD2,0x00,0x00,}}, {0x6807,2,{0xB1,0xEA,0x00,0x00,}}, {0x6808,2,{0xD5,0xBB,0x00,0x00,}}, {0x6809,2,{0xE8,0xCE,0x00,0x00,}}, {0x680A,2,{0xE8,0xD0,0x00,0x00,}}, {0x680B,2,{0xB6,0xB0,0x00,0x00,}}, {0x680C,2,{0xE8,0xD3,0x00,0x00,}}, {0x680D,2,{0x96,0xD3,0x00,0x00,}}, {0x680E,2,{0xE8,0xDD,0x00,0x00,}}, {0x680F,2,{0xC0,0xB8,0x00,0x00,}}, {0x6810,2,{0x96,0xD4,0x00,0x00,}}, {0x6811,2,{0xCA,0xF7,0x00,0x00,}}, {0x6812,2,{0x96,0xD5,0x00,0x00,}}, {0x6813,2,{0xCB,0xA8,0x00,0x00,}}, {0x6814,2,{0x96,0xD6,0x00,0x00,}}, {0x6815,2,{0x96,0xD7,0x00,0x00,}}, {0x6816,2,{0xC6,0xDC,0x00,0x00,}}, {0x6817,2,{0xC0,0xF5,0x00,0x00,}}, {0x6818,2,{0x96,0xD8,0x00,0x00,}}, {0x6819,2,{0x96,0xD9,0x00,0x00,}}, {0x681A,2,{0x96,0xDA,0x00,0x00,}}, {0x681B,2,{0x96,0xDB,0x00,0x00,}}, {0x681C,2,{0x96,0xDC,0x00,0x00,}}, {0x681D,2,{0xE8,0xE9,0x00,0x00,}}, {0x681E,2,{0x96,0xDD,0x00,0x00,}}, {0x681F,2,{0x96,0xDE,0x00,0x00,}}, {0x6820,2,{0x96,0xDF,0x00,0x00,}}, {0x6821,2,{0xD0,0xA3,0x00,0x00,}}, {0x6822,2,{0x96,0xE0,0x00,0x00,}}, {0x6823,2,{0x96,0xE1,0x00,0x00,}}, {0x6824,2,{0x96,0xE2,0x00,0x00,}}, {0x6825,2,{0x96,0xE3,0x00,0x00,}}, {0x6826,2,{0x96,0xE4,0x00,0x00,}}, {0x6827,2,{0x96,0xE5,0x00,0x00,}}, {0x6828,2,{0x96,0xE6,0x00,0x00,}}, {0x6829,2,{0xE8,0xF2,0x00,0x00,}}, {0x682A,2,{0xD6,0xEA,0x00,0x00,}}, {0x682B,2,{0x96,0xE7,0x00,0x00,}}, {0x682C,2,{0x96,0xE8,0x00,0x00,}}, {0x682D,2,{0x96,0xE9,0x00,0x00,}}, {0x682E,2,{0x96,0xEA,0x00,0x00,}}, {0x682F,2,{0x96,0xEB,0x00,0x00,}}, {0x6830,2,{0x96,0xEC,0x00,0x00,}}, {0x6831,2,{0x96,0xED,0x00,0x00,}}, {0x6832,2,{0xE8,0xE0,0x00,0x00,}}, {0x6833,2,{0xE8,0xE1,0x00,0x00,}}, {0x6834,2,{0x96,0xEE,0x00,0x00,}}, {0x6835,2,{0x96,0xEF,0x00,0x00,}}, {0x6836,2,{0x96,0xF0,0x00,0x00,}}, {0x6837,2,{0xD1,0xF9,0x00,0x00,}}, {0x6838,2,{0xBA,0xCB,0x00,0x00,}}, {0x6839,2,{0xB8,0xF9,0x00,0x00,}}, {0x683A,2,{0x96,0xF1,0x00,0x00,}}, {0x683B,2,{0x96,0xF2,0x00,0x00,}}, {0x683C,2,{0xB8,0xF1,0x00,0x00,}}, {0x683D,2,{0xD4,0xD4,0x00,0x00,}}, {0x683E,2,{0xE8,0xEF,0x00,0x00,}}, {0x683F,2,{0x96,0xF3,0x00,0x00,}}, {0x6840,2,{0xE8,0xEE,0x00,0x00,}}, {0x6841,2,{0xE8,0xEC,0x00,0x00,}}, {0x6842,2,{0xB9,0xF0,0x00,0x00,}}, {0x6843,2,{0xCC,0xD2,0x00,0x00,}}, {0x6844,2,{0xE8,0xE6,0x00,0x00,}}, {0x6845,2,{0xCE,0xA6,0x00,0x00,}}, {0x6846,2,{0xBF,0xF2,0x00,0x00,}}, {0x6847,2,{0x96,0xF4,0x00,0x00,}}, {0x6848,2,{0xB0,0xB8,0x00,0x00,}}, {0x6849,2,{0xE8,0xF1,0x00,0x00,}}, {0x684A,2,{0xE8,0xF0,0x00,0x00,}}, {0x684B,2,{0x96,0xF5,0x00,0x00,}}, {0x684C,2,{0xD7,0xC0,0x00,0x00,}}, {0x684D,2,{0x96,0xF6,0x00,0x00,}}, {0x684E,2,{0xE8,0xE4,0x00,0x00,}}, {0x684F,2,{0x96,0xF7,0x00,0x00,}}, {0x6850,2,{0xCD,0xA9,0x00,0x00,}}, {0x6851,2,{0xC9,0xA3,0x00,0x00,}}, {0x6852,2,{0x96,0xF8,0x00,0x00,}}, {0x6853,2,{0xBB,0xB8,0x00,0x00,}}, {0x6854,2,{0xBD,0xDB,0x00,0x00,}}, {0x6855,2,{0xE8,0xEA,0x00,0x00,}}, {0x6856,2,{0x96,0xF9,0x00,0x00,}}, {0x6857,2,{0x96,0xFA,0x00,0x00,}}, {0x6858,2,{0x96,0xFB,0x00,0x00,}}, {0x6859,2,{0x96,0xFC,0x00,0x00,}}, {0x685A,2,{0x96,0xFD,0x00,0x00,}}, {0x685B,2,{0x96,0xFE,0x00,0x00,}}, {0x685C,2,{0x97,0x40,0x00,0x00,}}, {0x685D,2,{0x97,0x41,0x00,0x00,}}, {0x685E,2,{0x97,0x42,0x00,0x00,}}, {0x685F,2,{0x97,0x43,0x00,0x00,}}, {0x6860,2,{0xE8,0xE2,0x00,0x00,}}, {0x6861,2,{0xE8,0xE3,0x00,0x00,}}, {0x6862,2,{0xE8,0xE5,0x00,0x00,}}, {0x6863,2,{0xB5,0xB5,0x00,0x00,}}, {0x6864,2,{0xE8,0xE7,0x00,0x00,}}, {0x6865,2,{0xC7,0xC5,0x00,0x00,}}, {0x6866,2,{0xE8,0xEB,0x00,0x00,}}, {0x6867,2,{0xE8,0xED,0x00,0x00,}}, {0x6868,2,{0xBD,0xB0,0x00,0x00,}}, {0x6869,2,{0xD7,0xAE,0x00,0x00,}}, {0x686A,2,{0x97,0x44,0x00,0x00,}}, {0x686B,2,{0xE8,0xF8,0x00,0x00,}}, {0x686C,2,{0x97,0x45,0x00,0x00,}}, {0x686D,2,{0x97,0x46,0x00,0x00,}}, {0x686E,2,{0x97,0x47,0x00,0x00,}}, {0x686F,2,{0x97,0x48,0x00,0x00,}}, {0x6870,2,{0x97,0x49,0x00,0x00,}}, {0x6871,2,{0x97,0x4A,0x00,0x00,}}, {0x6872,2,{0x97,0x4B,0x00,0x00,}}, {0x6873,2,{0x97,0x4C,0x00,0x00,}}, {0x6874,2,{0xE8,0xF5,0x00,0x00,}}, {0x6875,2,{0x97,0x4D,0x00,0x00,}}, {0x6876,2,{0xCD,0xB0,0x00,0x00,}}, {0x6877,2,{0xE8,0xF6,0x00,0x00,}}, {0x6878,2,{0x97,0x4E,0x00,0x00,}}, {0x6879,2,{0x97,0x4F,0x00,0x00,}}, {0x687A,2,{0x97,0x50,0x00,0x00,}}, {0x687B,2,{0x97,0x51,0x00,0x00,}}, {0x687C,2,{0x97,0x52,0x00,0x00,}}, {0x687D,2,{0x97,0x53,0x00,0x00,}}, {0x687E,2,{0x97,0x54,0x00,0x00,}}, {0x687F,2,{0x97,0x55,0x00,0x00,}}, {0x6880,2,{0x97,0x56,0x00,0x00,}}, {0x6881,2,{0xC1,0xBA,0x00,0x00,}}, {0x6882,2,{0x97,0x57,0x00,0x00,}}, {0x6883,2,{0xE8,0xE8,0x00,0x00,}}, {0x6884,2,{0x97,0x58,0x00,0x00,}}, {0x6885,2,{0xC3,0xB7,0x00,0x00,}}, {0x6886,2,{0xB0,0xF0,0x00,0x00,}}, {0x6887,2,{0x97,0x59,0x00,0x00,}}, {0x6888,2,{0x97,0x5A,0x00,0x00,}}, {0x6889,2,{0x97,0x5B,0x00,0x00,}}, {0x688A,2,{0x97,0x5C,0x00,0x00,}}, {0x688B,2,{0x97,0x5D,0x00,0x00,}}, {0x688C,2,{0x97,0x5E,0x00,0x00,}}, {0x688D,2,{0x97,0x5F,0x00,0x00,}}, {0x688E,2,{0x97,0x60,0x00,0x00,}}, {0x688F,2,{0xE8,0xF4,0x00,0x00,}}, {0x6890,2,{0x97,0x61,0x00,0x00,}}, {0x6891,2,{0x97,0x62,0x00,0x00,}}, {0x6892,2,{0x97,0x63,0x00,0x00,}}, {0x6893,2,{0xE8,0xF7,0x00,0x00,}}, {0x6894,2,{0x97,0x64,0x00,0x00,}}, {0x6895,2,{0x97,0x65,0x00,0x00,}}, {0x6896,2,{0x97,0x66,0x00,0x00,}}, {0x6897,2,{0xB9,0xA3,0x00,0x00,}}, {0x6898,2,{0x97,0x67,0x00,0x00,}}, {0x6899,2,{0x97,0x68,0x00,0x00,}}, {0x689A,2,{0x97,0x69,0x00,0x00,}}, {0x689B,2,{0x97,0x6A,0x00,0x00,}}, {0x689C,2,{0x97,0x6B,0x00,0x00,}}, {0x689D,2,{0x97,0x6C,0x00,0x00,}}, {0x689E,2,{0x97,0x6D,0x00,0x00,}}, {0x689F,2,{0x97,0x6E,0x00,0x00,}}, {0x68A0,2,{0x97,0x6F,0x00,0x00,}}, {0x68A1,2,{0x97,0x70,0x00,0x00,}}, {0x68A2,2,{0xC9,0xD2,0x00,0x00,}}, {0x68A3,2,{0x97,0x71,0x00,0x00,}}, {0x68A4,2,{0x97,0x72,0x00,0x00,}}, {0x68A5,2,{0x97,0x73,0x00,0x00,}}, {0x68A6,2,{0xC3,0xCE,0x00,0x00,}}, {0x68A7,2,{0xCE,0xE0,0x00,0x00,}}, {0x68A8,2,{0xC0,0xE6,0x00,0x00,}}, {0x68A9,2,{0x97,0x74,0x00,0x00,}}, {0x68AA,2,{0x97,0x75,0x00,0x00,}}, {0x68AB,2,{0x97,0x76,0x00,0x00,}}, {0x68AC,2,{0x97,0x77,0x00,0x00,}}, {0x68AD,2,{0xCB,0xF3,0x00,0x00,}}, {0x68AE,2,{0x97,0x78,0x00,0x00,}}, {0x68AF,2,{0xCC,0xDD,0x00,0x00,}}, {0x68B0,2,{0xD0,0xB5,0x00,0x00,}}, {0x68B1,2,{0x97,0x79,0x00,0x00,}}, {0x68B2,2,{0x97,0x7A,0x00,0x00,}}, {0x68B3,2,{0xCA,0xE1,0x00,0x00,}}, {0x68B4,2,{0x97,0x7B,0x00,0x00,}}, {0x68B5,2,{0xE8,0xF3,0x00,0x00,}}, {0x68B6,2,{0x97,0x7C,0x00,0x00,}}, {0x68B7,2,{0x97,0x7D,0x00,0x00,}}, {0x68B8,2,{0x97,0x7E,0x00,0x00,}}, {0x68B9,2,{0x97,0x80,0x00,0x00,}}, {0x68BA,2,{0x97,0x81,0x00,0x00,}}, {0x68BB,2,{0x97,0x82,0x00,0x00,}}, {0x68BC,2,{0x97,0x83,0x00,0x00,}}, {0x68BD,2,{0x97,0x84,0x00,0x00,}}, {0x68BE,2,{0x97,0x85,0x00,0x00,}}, {0x68BF,2,{0x97,0x86,0x00,0x00,}}, {0x68C0,2,{0xBC,0xEC,0x00,0x00,}}, {0x68C1,2,{0x97,0x87,0x00,0x00,}}, {0x68C2,2,{0xE8,0xF9,0x00,0x00,}}, {0x68C3,2,{0x97,0x88,0x00,0x00,}}, {0x68C4,2,{0x97,0x89,0x00,0x00,}}, {0x68C5,2,{0x97,0x8A,0x00,0x00,}}, {0x68C6,2,{0x97,0x8B,0x00,0x00,}}, {0x68C7,2,{0x97,0x8C,0x00,0x00,}}, {0x68C8,2,{0x97,0x8D,0x00,0x00,}}, {0x68C9,2,{0xC3,0xDE,0x00,0x00,}}, {0x68CA,2,{0x97,0x8E,0x00,0x00,}}, {0x68CB,2,{0xC6,0xE5,0x00,0x00,}}, {0x68CC,2,{0x97,0x8F,0x00,0x00,}}, {0x68CD,2,{0xB9,0xF7,0x00,0x00,}}, {0x68CE,2,{0x97,0x90,0x00,0x00,}}, {0x68CF,2,{0x97,0x91,0x00,0x00,}}, {0x68D0,2,{0x97,0x92,0x00,0x00,}}, {0x68D1,2,{0x97,0x93,0x00,0x00,}}, {0x68D2,2,{0xB0,0xF4,0x00,0x00,}}, {0x68D3,2,{0x97,0x94,0x00,0x00,}}, {0x68D4,2,{0x97,0x95,0x00,0x00,}}, {0x68D5,2,{0xD7,0xD8,0x00,0x00,}}, {0x68D6,2,{0x97,0x96,0x00,0x00,}}, {0x68D7,2,{0x97,0x97,0x00,0x00,}}, {0x68D8,2,{0xBC,0xAC,0x00,0x00,}}, {0x68D9,2,{0x97,0x98,0x00,0x00,}}, {0x68DA,2,{0xC5,0xEF,0x00,0x00,}}, {0x68DB,2,{0x97,0x99,0x00,0x00,}}, {0x68DC,2,{0x97,0x9A,0x00,0x00,}}, {0x68DD,2,{0x97,0x9B,0x00,0x00,}}, {0x68DE,2,{0x97,0x9C,0x00,0x00,}}, {0x68DF,2,{0x97,0x9D,0x00,0x00,}}, {0x68E0,2,{0xCC,0xC4,0x00,0x00,}}, {0x68E1,2,{0x97,0x9E,0x00,0x00,}}, {0x68E2,2,{0x97,0x9F,0x00,0x00,}}, {0x68E3,2,{0xE9,0xA6,0x00,0x00,}}, {0x68E4,2,{0x97,0xA0,0x00,0x00,}}, {0x68E5,2,{0x97,0xA1,0x00,0x00,}}, {0x68E6,2,{0x97,0xA2,0x00,0x00,}}, {0x68E7,2,{0x97,0xA3,0x00,0x00,}}, {0x68E8,2,{0x97,0xA4,0x00,0x00,}}, {0x68E9,2,{0x97,0xA5,0x00,0x00,}}, {0x68EA,2,{0x97,0xA6,0x00,0x00,}}, {0x68EB,2,{0x97,0xA7,0x00,0x00,}}, {0x68EC,2,{0x97,0xA8,0x00,0x00,}}, {0x68ED,2,{0x97,0xA9,0x00,0x00,}}, {0x68EE,2,{0xC9,0xAD,0x00,0x00,}}, {0x68EF,2,{0x97,0xAA,0x00,0x00,}}, {0x68F0,2,{0xE9,0xA2,0x00,0x00,}}, {0x68F1,2,{0xC0,0xE2,0x00,0x00,}}, {0x68F2,2,{0x97,0xAB,0x00,0x00,}}, {0x68F3,2,{0x97,0xAC,0x00,0x00,}}, {0x68F4,2,{0x97,0xAD,0x00,0x00,}}, {0x68F5,2,{0xBF,0xC3,0x00,0x00,}}, {0x68F6,2,{0x97,0xAE,0x00,0x00,}}, {0x68F7,2,{0x97,0xAF,0x00,0x00,}}, {0x68F8,2,{0x97,0xB0,0x00,0x00,}}, {0x68F9,2,{0xE8,0xFE,0x00,0x00,}}, {0x68FA,2,{0xB9,0xD7,0x00,0x00,}}, {0x68FB,2,{0x97,0xB1,0x00,0x00,}}, {0x68FC,2,{0xE8,0xFB,0x00,0x00,}}, {0x68FD,2,{0x97,0xB2,0x00,0x00,}}, {0x68FE,2,{0x97,0xB3,0x00,0x00,}}, {0x68FF,2,{0x97,0xB4,0x00,0x00,}}, {0x6900,2,{0x97,0xB5,0x00,0x00,}}, {0x6901,2,{0xE9,0xA4,0x00,0x00,}}, {0x6902,2,{0x97,0xB6,0x00,0x00,}}, {0x6903,2,{0x97,0xB7,0x00,0x00,}}, {0x6904,2,{0x97,0xB8,0x00,0x00,}}, {0x6905,2,{0xD2,0xCE,0x00,0x00,}}, {0x6906,2,{0x97,0xB9,0x00,0x00,}}, {0x6907,2,{0x97,0xBA,0x00,0x00,}}, {0x6908,2,{0x97,0xBB,0x00,0x00,}}, {0x6909,2,{0x97,0xBC,0x00,0x00,}}, {0x690A,2,{0x97,0xBD,0x00,0x00,}}, {0x690B,2,{0xE9,0xA3,0x00,0x00,}}, {0x690C,2,{0x97,0xBE,0x00,0x00,}}, {0x690D,2,{0xD6,0xB2,0x00,0x00,}}, {0x690E,2,{0xD7,0xB5,0x00,0x00,}}, {0x690F,2,{0x97,0xBF,0x00,0x00,}}, {0x6910,2,{0xE9,0xA7,0x00,0x00,}}, {0x6911,2,{0x97,0xC0,0x00,0x00,}}, {0x6912,2,{0xBD,0xB7,0x00,0x00,}}, {0x6913,2,{0x97,0xC1,0x00,0x00,}}, {0x6914,2,{0x97,0xC2,0x00,0x00,}}, {0x6915,2,{0x97,0xC3,0x00,0x00,}}, {0x6916,2,{0x97,0xC4,0x00,0x00,}}, {0x6917,2,{0x97,0xC5,0x00,0x00,}}, {0x6918,2,{0x97,0xC6,0x00,0x00,}}, {0x6919,2,{0x97,0xC7,0x00,0x00,}}, {0x691A,2,{0x97,0xC8,0x00,0x00,}}, {0x691B,2,{0x97,0xC9,0x00,0x00,}}, {0x691C,2,{0x97,0xCA,0x00,0x00,}}, {0x691D,2,{0x97,0xCB,0x00,0x00,}}, {0x691E,2,{0x97,0xCC,0x00,0x00,}}, {0x691F,2,{0xE8,0xFC,0x00,0x00,}}, {0x6920,2,{0xE8,0xFD,0x00,0x00,}}, {0x6921,2,{0x97,0xCD,0x00,0x00,}}, {0x6922,2,{0x97,0xCE,0x00,0x00,}}, {0x6923,2,{0x97,0xCF,0x00,0x00,}}, {0x6924,2,{0xE9,0xA1,0x00,0x00,}}, {0x6925,2,{0x97,0xD0,0x00,0x00,}}, {0x6926,2,{0x97,0xD1,0x00,0x00,}}, {0x6927,2,{0x97,0xD2,0x00,0x00,}}, {0x6928,2,{0x97,0xD3,0x00,0x00,}}, {0x6929,2,{0x97,0xD4,0x00,0x00,}}, {0x692A,2,{0x97,0xD5,0x00,0x00,}}, {0x692B,2,{0x97,0xD6,0x00,0x00,}}, {0x692C,2,{0x97,0xD7,0x00,0x00,}}, {0x692D,2,{0xCD,0xD6,0x00,0x00,}}, {0x692E,2,{0x97,0xD8,0x00,0x00,}}, {0x692F,2,{0x97,0xD9,0x00,0x00,}}, {0x6930,2,{0xD2,0xAC,0x00,0x00,}}, {0x6931,2,{0x97,0xDA,0x00,0x00,}}, {0x6932,2,{0x97,0xDB,0x00,0x00,}}, {0x6933,2,{0x97,0xDC,0x00,0x00,}}, {0x6934,2,{0xE9,0xB2,0x00,0x00,}}, {0x6935,2,{0x97,0xDD,0x00,0x00,}}, {0x6936,2,{0x97,0xDE,0x00,0x00,}}, {0x6937,2,{0x97,0xDF,0x00,0x00,}}, {0x6938,2,{0x97,0xE0,0x00,0x00,}}, {0x6939,2,{0xE9,0xA9,0x00,0x00,}}, {0x693A,2,{0x97,0xE1,0x00,0x00,}}, {0x693B,2,{0x97,0xE2,0x00,0x00,}}, {0x693C,2,{0x97,0xE3,0x00,0x00,}}, {0x693D,2,{0xB4,0xAA,0x00,0x00,}}, {0x693E,2,{0x97,0xE4,0x00,0x00,}}, {0x693F,2,{0xB4,0xBB,0x00,0x00,}}, {0x6940,2,{0x97,0xE5,0x00,0x00,}}, {0x6941,2,{0x97,0xE6,0x00,0x00,}}, {0x6942,2,{0xE9,0xAB,0x00,0x00,}}, {0x6943,2,{0x97,0xE7,0x00,0x00,}}, {0x6944,2,{0x97,0xE8,0x00,0x00,}}, {0x6945,2,{0x97,0xE9,0x00,0x00,}}, {0x6946,2,{0x97,0xEA,0x00,0x00,}}, {0x6947,2,{0x97,0xEB,0x00,0x00,}}, {0x6948,2,{0x97,0xEC,0x00,0x00,}}, {0x6949,2,{0x97,0xED,0x00,0x00,}}, {0x694A,2,{0x97,0xEE,0x00,0x00,}}, {0x694B,2,{0x97,0xEF,0x00,0x00,}}, {0x694C,2,{0x97,0xF0,0x00,0x00,}}, {0x694D,2,{0x97,0xF1,0x00,0x00,}}, {0x694E,2,{0x97,0xF2,0x00,0x00,}}, {0x694F,2,{0x97,0xF3,0x00,0x00,}}, {0x6950,2,{0x97,0xF4,0x00,0x00,}}, {0x6951,2,{0x97,0xF5,0x00,0x00,}}, {0x6952,2,{0x97,0xF6,0x00,0x00,}}, {0x6953,2,{0x97,0xF7,0x00,0x00,}}, {0x6954,2,{0xD0,0xA8,0x00,0x00,}}, {0x6955,2,{0x97,0xF8,0x00,0x00,}}, {0x6956,2,{0x97,0xF9,0x00,0x00,}}, {0x6957,2,{0xE9,0xA5,0x00,0x00,}}, {0x6958,2,{0x97,0xFA,0x00,0x00,}}, {0x6959,2,{0x97,0xFB,0x00,0x00,}}, {0x695A,2,{0xB3,0xFE,0x00,0x00,}}, {0x695B,2,{0x97,0xFC,0x00,0x00,}}, {0x695C,2,{0x97,0xFD,0x00,0x00,}}, {0x695D,2,{0xE9,0xAC,0x00,0x00,}}, {0x695E,2,{0xC0,0xE3,0x00,0x00,}}, {0x695F,2,{0x97,0xFE,0x00,0x00,}}, {0x6960,2,{0xE9,0xAA,0x00,0x00,}}, {0x6961,2,{0x98,0x40,0x00,0x00,}}, {0x6962,2,{0x98,0x41,0x00,0x00,}}, {0x6963,2,{0xE9,0xB9,0x00,0x00,}}, {0x6964,2,{0x98,0x42,0x00,0x00,}}, {0x6965,2,{0x98,0x43,0x00,0x00,}}, {0x6966,2,{0xE9,0xB8,0x00,0x00,}}, {0x6967,2,{0x98,0x44,0x00,0x00,}}, {0x6968,2,{0x98,0x45,0x00,0x00,}}, {0x6969,2,{0x98,0x46,0x00,0x00,}}, {0x696A,2,{0x98,0x47,0x00,0x00,}}, {0x696B,2,{0xE9,0xAE,0x00,0x00,}}, {0x696C,2,{0x98,0x48,0x00,0x00,}}, {0x696D,2,{0x98,0x49,0x00,0x00,}}, {0x696E,2,{0xE8,0xFA,0x00,0x00,}}, {0x696F,2,{0x98,0x4A,0x00,0x00,}}, {0x6970,2,{0x98,0x4B,0x00,0x00,}}, {0x6971,2,{0xE9,0xA8,0x00,0x00,}}, {0x6972,2,{0x98,0x4C,0x00,0x00,}}, {0x6973,2,{0x98,0x4D,0x00,0x00,}}, {0x6974,2,{0x98,0x4E,0x00,0x00,}}, {0x6975,2,{0x98,0x4F,0x00,0x00,}}, {0x6976,2,{0x98,0x50,0x00,0x00,}}, {0x6977,2,{0xBF,0xAC,0x00,0x00,}}, {0x6978,2,{0xE9,0xB1,0x00,0x00,}}, {0x6979,2,{0xE9,0xBA,0x00,0x00,}}, {0x697A,2,{0x98,0x51,0x00,0x00,}}, {0x697B,2,{0x98,0x52,0x00,0x00,}}, {0x697C,2,{0xC2,0xA5,0x00,0x00,}}, {0x697D,2,{0x98,0x53,0x00,0x00,}}, {0x697E,2,{0x98,0x54,0x00,0x00,}}, {0x697F,2,{0x98,0x55,0x00,0x00,}}, {0x6980,2,{0xE9,0xAF,0x00,0x00,}}, {0x6981,2,{0x98,0x56,0x00,0x00,}}, {0x6982,2,{0xB8,0xC5,0x00,0x00,}}, {0x6983,2,{0x98,0x57,0x00,0x00,}}, {0x6984,2,{0xE9,0xAD,0x00,0x00,}}, {0x6985,2,{0x98,0x58,0x00,0x00,}}, {0x6986,2,{0xD3,0xDC,0x00,0x00,}}, {0x6987,2,{0xE9,0xB4,0x00,0x00,}}, {0x6988,2,{0xE9,0xB5,0x00,0x00,}}, {0x6989,2,{0xE9,0xB7,0x00,0x00,}}, {0x698A,2,{0x98,0x59,0x00,0x00,}}, {0x698B,2,{0x98,0x5A,0x00,0x00,}}, {0x698C,2,{0x98,0x5B,0x00,0x00,}}, {0x698D,2,{0xE9,0xC7,0x00,0x00,}}, {0x698E,2,{0x98,0x5C,0x00,0x00,}}, {0x698F,2,{0x98,0x5D,0x00,0x00,}}, {0x6990,2,{0x98,0x5E,0x00,0x00,}}, {0x6991,2,{0x98,0x5F,0x00,0x00,}}, {0x6992,2,{0x98,0x60,0x00,0x00,}}, {0x6993,2,{0x98,0x61,0x00,0x00,}}, {0x6994,2,{0xC0,0xC6,0x00,0x00,}}, {0x6995,2,{0xE9,0xC5,0x00,0x00,}}, {0x6996,2,{0x98,0x62,0x00,0x00,}}, {0x6997,2,{0x98,0x63,0x00,0x00,}}, {0x6998,2,{0xE9,0xB0,0x00,0x00,}}, {0x6999,2,{0x98,0x64,0x00,0x00,}}, {0x699A,2,{0x98,0x65,0x00,0x00,}}, {0x699B,2,{0xE9,0xBB,0x00,0x00,}}, {0x699C,2,{0xB0,0xF1,0x00,0x00,}}, {0x699D,2,{0x98,0x66,0x00,0x00,}}, {0x699E,2,{0x98,0x67,0x00,0x00,}}, {0x699F,2,{0x98,0x68,0x00,0x00,}}, {0x69A0,2,{0x98,0x69,0x00,0x00,}}, {0x69A1,2,{0x98,0x6A,0x00,0x00,}}, {0x69A2,2,{0x98,0x6B,0x00,0x00,}}, {0x69A3,2,{0x98,0x6C,0x00,0x00,}}, {0x69A4,2,{0x98,0x6D,0x00,0x00,}}, {0x69A5,2,{0x98,0x6E,0x00,0x00,}}, {0x69A6,2,{0x98,0x6F,0x00,0x00,}}, {0x69A7,2,{0xE9,0xBC,0x00,0x00,}}, {0x69A8,2,{0xD5,0xA5,0x00,0x00,}}, {0x69A9,2,{0x98,0x70,0x00,0x00,}}, {0x69AA,2,{0x98,0x71,0x00,0x00,}}, {0x69AB,2,{0xE9,0xBE,0x00,0x00,}}, {0x69AC,2,{0x98,0x72,0x00,0x00,}}, {0x69AD,2,{0xE9,0xBF,0x00,0x00,}}, {0x69AE,2,{0x98,0x73,0x00,0x00,}}, {0x69AF,2,{0x98,0x74,0x00,0x00,}}, {0x69B0,2,{0x98,0x75,0x00,0x00,}}, {0x69B1,2,{0xE9,0xC1,0x00,0x00,}}, {0x69B2,2,{0x98,0x76,0x00,0x00,}}, {0x69B3,2,{0x98,0x77,0x00,0x00,}}, {0x69B4,2,{0xC1,0xF1,0x00,0x00,}}, {0x69B5,2,{0x98,0x78,0x00,0x00,}}, {0x69B6,2,{0x98,0x79,0x00,0x00,}}, {0x69B7,2,{0xC8,0xB6,0x00,0x00,}}, {0x69B8,2,{0x98,0x7A,0x00,0x00,}}, {0x69B9,2,{0x98,0x7B,0x00,0x00,}}, {0x69BA,2,{0x98,0x7C,0x00,0x00,}}, {0x69BB,2,{0xE9,0xBD,0x00,0x00,}}, {0x69BC,2,{0x98,0x7D,0x00,0x00,}}, {0x69BD,2,{0x98,0x7E,0x00,0x00,}}, {0x69BE,2,{0x98,0x80,0x00,0x00,}}, {0x69BF,2,{0x98,0x81,0x00,0x00,}}, {0x69C0,2,{0x98,0x82,0x00,0x00,}}, {0x69C1,2,{0xE9,0xC2,0x00,0x00,}}, {0x69C2,2,{0x98,0x83,0x00,0x00,}}, {0x69C3,2,{0x98,0x84,0x00,0x00,}}, {0x69C4,2,{0x98,0x85,0x00,0x00,}}, {0x69C5,2,{0x98,0x86,0x00,0x00,}}, {0x69C6,2,{0x98,0x87,0x00,0x00,}}, {0x69C7,2,{0x98,0x88,0x00,0x00,}}, {0x69C8,2,{0x98,0x89,0x00,0x00,}}, {0x69C9,2,{0x98,0x8A,0x00,0x00,}}, {0x69CA,2,{0xE9,0xC3,0x00,0x00,}}, {0x69CB,2,{0x98,0x8B,0x00,0x00,}}, {0x69CC,2,{0xE9,0xB3,0x00,0x00,}}, {0x69CD,2,{0x98,0x8C,0x00,0x00,}}, {0x69CE,2,{0xE9,0xB6,0x00,0x00,}}, {0x69CF,2,{0x98,0x8D,0x00,0x00,}}, {0x69D0,2,{0xBB,0xB1,0x00,0x00,}}, {0x69D1,2,{0x98,0x8E,0x00,0x00,}}, {0x69D2,2,{0x98,0x8F,0x00,0x00,}}, {0x69D3,2,{0x98,0x90,0x00,0x00,}}, {0x69D4,2,{0xE9,0xC0,0x00,0x00,}}, {0x69D5,2,{0x98,0x91,0x00,0x00,}}, {0x69D6,2,{0x98,0x92,0x00,0x00,}}, {0x69D7,2,{0x98,0x93,0x00,0x00,}}, {0x69D8,2,{0x98,0x94,0x00,0x00,}}, {0x69D9,2,{0x98,0x95,0x00,0x00,}}, {0x69DA,2,{0x98,0x96,0x00,0x00,}}, {0x69DB,2,{0xBC,0xF7,0x00,0x00,}}, {0x69DC,2,{0x98,0x97,0x00,0x00,}}, {0x69DD,2,{0x98,0x98,0x00,0x00,}}, {0x69DE,2,{0x98,0x99,0x00,0x00,}}, {0x69DF,2,{0xE9,0xC4,0x00,0x00,}}, {0x69E0,2,{0xE9,0xC6,0x00,0x00,}}, {0x69E1,2,{0x98,0x9A,0x00,0x00,}}, {0x69E2,2,{0x98,0x9B,0x00,0x00,}}, {0x69E3,2,{0x98,0x9C,0x00,0x00,}}, {0x69E4,2,{0x98,0x9D,0x00,0x00,}}, {0x69E5,2,{0x98,0x9E,0x00,0x00,}}, {0x69E6,2,{0x98,0x9F,0x00,0x00,}}, {0x69E7,2,{0x98,0xA0,0x00,0x00,}}, {0x69E8,2,{0x98,0xA1,0x00,0x00,}}, {0x69E9,2,{0x98,0xA2,0x00,0x00,}}, {0x69EA,2,{0x98,0xA3,0x00,0x00,}}, {0x69EB,2,{0x98,0xA4,0x00,0x00,}}, {0x69EC,2,{0x98,0xA5,0x00,0x00,}}, {0x69ED,2,{0xE9,0xCA,0x00,0x00,}}, {0x69EE,2,{0x98,0xA6,0x00,0x00,}}, {0x69EF,2,{0x98,0xA7,0x00,0x00,}}, {0x69F0,2,{0x98,0xA8,0x00,0x00,}}, {0x69F1,2,{0x98,0xA9,0x00,0x00,}}, {0x69F2,2,{0xE9,0xCE,0x00,0x00,}}, {0x69F3,2,{0x98,0xAA,0x00,0x00,}}, {0x69F4,2,{0x98,0xAB,0x00,0x00,}}, {0x69F5,2,{0x98,0xAC,0x00,0x00,}}, {0x69F6,2,{0x98,0xAD,0x00,0x00,}}, {0x69F7,2,{0x98,0xAE,0x00,0x00,}}, {0x69F8,2,{0x98,0xAF,0x00,0x00,}}, {0x69F9,2,{0x98,0xB0,0x00,0x00,}}, {0x69FA,2,{0x98,0xB1,0x00,0x00,}}, {0x69FB,2,{0x98,0xB2,0x00,0x00,}}, {0x69FC,2,{0x98,0xB3,0x00,0x00,}}, {0x69FD,2,{0xB2,0xDB,0x00,0x00,}}, {0x69FE,2,{0x98,0xB4,0x00,0x00,}}, {0x69FF,2,{0xE9,0xC8,0x00,0x00,}}, {0x6A00,2,{0x98,0xB5,0x00,0x00,}}, {0x6A01,2,{0x98,0xB6,0x00,0x00,}}, {0x6A02,2,{0x98,0xB7,0x00,0x00,}}, {0x6A03,2,{0x98,0xB8,0x00,0x00,}}, {0x6A04,2,{0x98,0xB9,0x00,0x00,}}, {0x6A05,2,{0x98,0xBA,0x00,0x00,}}, {0x6A06,2,{0x98,0xBB,0x00,0x00,}}, {0x6A07,2,{0x98,0xBC,0x00,0x00,}}, {0x6A08,2,{0x98,0xBD,0x00,0x00,}}, {0x6A09,2,{0x98,0xBE,0x00,0x00,}}, {0x6A0A,2,{0xB7,0xAE,0x00,0x00,}}, {0x6A0B,2,{0x98,0xBF,0x00,0x00,}}, {0x6A0C,2,{0x98,0xC0,0x00,0x00,}}, {0x6A0D,2,{0x98,0xC1,0x00,0x00,}}, {0x6A0E,2,{0x98,0xC2,0x00,0x00,}}, {0x6A0F,2,{0x98,0xC3,0x00,0x00,}}, {0x6A10,2,{0x98,0xC4,0x00,0x00,}}, {0x6A11,2,{0x98,0xC5,0x00,0x00,}}, {0x6A12,2,{0x98,0xC6,0x00,0x00,}}, {0x6A13,2,{0x98,0xC7,0x00,0x00,}}, {0x6A14,2,{0x98,0xC8,0x00,0x00,}}, {0x6A15,2,{0x98,0xC9,0x00,0x00,}}, {0x6A16,2,{0x98,0xCA,0x00,0x00,}}, {0x6A17,2,{0xE9,0xCB,0x00,0x00,}}, {0x6A18,2,{0xE9,0xCC,0x00,0x00,}}, {0x6A19,2,{0x98,0xCB,0x00,0x00,}}, {0x6A1A,2,{0x98,0xCC,0x00,0x00,}}, {0x6A1B,2,{0x98,0xCD,0x00,0x00,}}, {0x6A1C,2,{0x98,0xCE,0x00,0x00,}}, {0x6A1D,2,{0x98,0xCF,0x00,0x00,}}, {0x6A1E,2,{0x98,0xD0,0x00,0x00,}}, {0x6A1F,2,{0xD5,0xC1,0x00,0x00,}}, {0x6A20,2,{0x98,0xD1,0x00,0x00,}}, {0x6A21,2,{0xC4,0xA3,0x00,0x00,}}, {0x6A22,2,{0x98,0xD2,0x00,0x00,}}, {0x6A23,2,{0x98,0xD3,0x00,0x00,}}, {0x6A24,2,{0x98,0xD4,0x00,0x00,}}, {0x6A25,2,{0x98,0xD5,0x00,0x00,}}, {0x6A26,2,{0x98,0xD6,0x00,0x00,}}, {0x6A27,2,{0x98,0xD7,0x00,0x00,}}, {0x6A28,2,{0xE9,0xD8,0x00,0x00,}}, {0x6A29,2,{0x98,0xD8,0x00,0x00,}}, {0x6A2A,2,{0xBA,0xE1,0x00,0x00,}}, {0x6A2B,2,{0x98,0xD9,0x00,0x00,}}, {0x6A2C,2,{0x98,0xDA,0x00,0x00,}}, {0x6A2D,2,{0x98,0xDB,0x00,0x00,}}, {0x6A2E,2,{0x98,0xDC,0x00,0x00,}}, {0x6A2F,2,{0xE9,0xC9,0x00,0x00,}}, {0x6A30,2,{0x98,0xDD,0x00,0x00,}}, {0x6A31,2,{0xD3,0xA3,0x00,0x00,}}, {0x6A32,2,{0x98,0xDE,0x00,0x00,}}, {0x6A33,2,{0x98,0xDF,0x00,0x00,}}, {0x6A34,2,{0x98,0xE0,0x00,0x00,}}, {0x6A35,2,{0xE9,0xD4,0x00,0x00,}}, {0x6A36,2,{0x98,0xE1,0x00,0x00,}}, {0x6A37,2,{0x98,0xE2,0x00,0x00,}}, {0x6A38,2,{0x98,0xE3,0x00,0x00,}}, {0x6A39,2,{0x98,0xE4,0x00,0x00,}}, {0x6A3A,2,{0x98,0xE5,0x00,0x00,}}, {0x6A3B,2,{0x98,0xE6,0x00,0x00,}}, {0x6A3C,2,{0x98,0xE7,0x00,0x00,}}, {0x6A3D,2,{0xE9,0xD7,0x00,0x00,}}, {0x6A3E,2,{0xE9,0xD0,0x00,0x00,}}, {0x6A3F,2,{0x98,0xE8,0x00,0x00,}}, {0x6A40,2,{0x98,0xE9,0x00,0x00,}}, {0x6A41,2,{0x98,0xEA,0x00,0x00,}}, {0x6A42,2,{0x98,0xEB,0x00,0x00,}}, {0x6A43,2,{0x98,0xEC,0x00,0x00,}}, {0x6A44,2,{0xE9,0xCF,0x00,0x00,}}, {0x6A45,2,{0x98,0xED,0x00,0x00,}}, {0x6A46,2,{0x98,0xEE,0x00,0x00,}}, {0x6A47,2,{0xC7,0xC1,0x00,0x00,}}, {0x6A48,2,{0x98,0xEF,0x00,0x00,}}, {0x6A49,2,{0x98,0xF0,0x00,0x00,}}, {0x6A4A,2,{0x98,0xF1,0x00,0x00,}}, {0x6A4B,2,{0x98,0xF2,0x00,0x00,}}, {0x6A4C,2,{0x98,0xF3,0x00,0x00,}}, {0x6A4D,2,{0x98,0xF4,0x00,0x00,}}, {0x6A4E,2,{0x98,0xF5,0x00,0x00,}}, {0x6A4F,2,{0x98,0xF6,0x00,0x00,}}, {0x6A50,2,{0xE9,0xD2,0x00,0x00,}}, {0x6A51,2,{0x98,0xF7,0x00,0x00,}}, {0x6A52,2,{0x98,0xF8,0x00,0x00,}}, {0x6A53,2,{0x98,0xF9,0x00,0x00,}}, {0x6A54,2,{0x98,0xFA,0x00,0x00,}}, {0x6A55,2,{0x98,0xFB,0x00,0x00,}}, {0x6A56,2,{0x98,0xFC,0x00,0x00,}}, {0x6A57,2,{0x98,0xFD,0x00,0x00,}}, {0x6A58,2,{0xE9,0xD9,0x00,0x00,}}, {0x6A59,2,{0xB3,0xC8,0x00,0x00,}}, {0x6A5A,2,{0x98,0xFE,0x00,0x00,}}, {0x6A5B,2,{0xE9,0xD3,0x00,0x00,}}, {0x6A5C,2,{0x99,0x40,0x00,0x00,}}, {0x6A5D,2,{0x99,0x41,0x00,0x00,}}, {0x6A5E,2,{0x99,0x42,0x00,0x00,}}, {0x6A5F,2,{0x99,0x43,0x00,0x00,}}, {0x6A60,2,{0x99,0x44,0x00,0x00,}}, {0x6A61,2,{0xCF,0xF0,0x00,0x00,}}, {0x6A62,2,{0x99,0x45,0x00,0x00,}}, {0x6A63,2,{0x99,0x46,0x00,0x00,}}, {0x6A64,2,{0x99,0x47,0x00,0x00,}}, {0x6A65,2,{0xE9,0xCD,0x00,0x00,}}, {0x6A66,2,{0x99,0x48,0x00,0x00,}}, {0x6A67,2,{0x99,0x49,0x00,0x00,}}, {0x6A68,2,{0x99,0x4A,0x00,0x00,}}, {0x6A69,2,{0x99,0x4B,0x00,0x00,}}, {0x6A6A,2,{0x99,0x4C,0x00,0x00,}}, {0x6A6B,2,{0x99,0x4D,0x00,0x00,}}, {0x6A6C,2,{0x99,0x4E,0x00,0x00,}}, {0x6A6D,2,{0x99,0x4F,0x00,0x00,}}, {0x6A6E,2,{0x99,0x50,0x00,0x00,}}, {0x6A6F,2,{0x99,0x51,0x00,0x00,}}, {0x6A70,2,{0x99,0x52,0x00,0x00,}}, {0x6A71,2,{0xB3,0xF7,0x00,0x00,}}, {0x6A72,2,{0x99,0x53,0x00,0x00,}}, {0x6A73,2,{0x99,0x54,0x00,0x00,}}, {0x6A74,2,{0x99,0x55,0x00,0x00,}}, {0x6A75,2,{0x99,0x56,0x00,0x00,}}, {0x6A76,2,{0x99,0x57,0x00,0x00,}}, {0x6A77,2,{0x99,0x58,0x00,0x00,}}, {0x6A78,2,{0x99,0x59,0x00,0x00,}}, {0x6A79,2,{0xE9,0xD6,0x00,0x00,}}, {0x6A7A,2,{0x99,0x5A,0x00,0x00,}}, {0x6A7B,2,{0x99,0x5B,0x00,0x00,}}, {0x6A7C,2,{0xE9,0xDA,0x00,0x00,}}, {0x6A7D,2,{0x99,0x5C,0x00,0x00,}}, {0x6A7E,2,{0x99,0x5D,0x00,0x00,}}, {0x6A7F,2,{0x99,0x5E,0x00,0x00,}}, {0x6A80,2,{0xCC,0xB4,0x00,0x00,}}, {0x6A81,2,{0x99,0x5F,0x00,0x00,}}, {0x6A82,2,{0x99,0x60,0x00,0x00,}}, {0x6A83,2,{0x99,0x61,0x00,0x00,}}, {0x6A84,2,{0xCF,0xAD,0x00,0x00,}}, {0x6A85,2,{0x99,0x62,0x00,0x00,}}, {0x6A86,2,{0x99,0x63,0x00,0x00,}}, {0x6A87,2,{0x99,0x64,0x00,0x00,}}, {0x6A88,2,{0x99,0x65,0x00,0x00,}}, {0x6A89,2,{0x99,0x66,0x00,0x00,}}, {0x6A8A,2,{0x99,0x67,0x00,0x00,}}, {0x6A8B,2,{0x99,0x68,0x00,0x00,}}, {0x6A8C,2,{0x99,0x69,0x00,0x00,}}, {0x6A8D,2,{0x99,0x6A,0x00,0x00,}}, {0x6A8E,2,{0xE9,0xD5,0x00,0x00,}}, {0x6A8F,2,{0x99,0x6B,0x00,0x00,}}, {0x6A90,2,{0xE9,0xDC,0x00,0x00,}}, {0x6A91,2,{0xE9,0xDB,0x00,0x00,}}, {0x6A92,2,{0x99,0x6C,0x00,0x00,}}, {0x6A93,2,{0x99,0x6D,0x00,0x00,}}, {0x6A94,2,{0x99,0x6E,0x00,0x00,}}, {0x6A95,2,{0x99,0x6F,0x00,0x00,}}, {0x6A96,2,{0x99,0x70,0x00,0x00,}}, {0x6A97,2,{0xE9,0xDE,0x00,0x00,}}, {0x6A98,2,{0x99,0x71,0x00,0x00,}}, {0x6A99,2,{0x99,0x72,0x00,0x00,}}, {0x6A9A,2,{0x99,0x73,0x00,0x00,}}, {0x6A9B,2,{0x99,0x74,0x00,0x00,}}, {0x6A9C,2,{0x99,0x75,0x00,0x00,}}, {0x6A9D,2,{0x99,0x76,0x00,0x00,}}, {0x6A9E,2,{0x99,0x77,0x00,0x00,}}, {0x6A9F,2,{0x99,0x78,0x00,0x00,}}, {0x6AA0,2,{0xE9,0xD1,0x00,0x00,}}, {0x6AA1,2,{0x99,0x79,0x00,0x00,}}, {0x6AA2,2,{0x99,0x7A,0x00,0x00,}}, {0x6AA3,2,{0x99,0x7B,0x00,0x00,}}, {0x6AA4,2,{0x99,0x7C,0x00,0x00,}}, {0x6AA5,2,{0x99,0x7D,0x00,0x00,}}, {0x6AA6,2,{0x99,0x7E,0x00,0x00,}}, {0x6AA7,2,{0x99,0x80,0x00,0x00,}}, {0x6AA8,2,{0x99,0x81,0x00,0x00,}}, {0x6AA9,2,{0xE9,0xDD,0x00,0x00,}}, {0x6AAA,2,{0x99,0x82,0x00,0x00,}}, {0x6AAB,2,{0xE9,0xDF,0x00,0x00,}}, {0x6AAC,2,{0xC3,0xCA,0x00,0x00,}}, {0x6AAD,2,{0x99,0x83,0x00,0x00,}}, {0x6AAE,2,{0x99,0x84,0x00,0x00,}}, {0x6AAF,2,{0x99,0x85,0x00,0x00,}}, {0x6AB0,2,{0x99,0x86,0x00,0x00,}}, {0x6AB1,2,{0x99,0x87,0x00,0x00,}}, {0x6AB2,2,{0x99,0x88,0x00,0x00,}}, {0x6AB3,2,{0x99,0x89,0x00,0x00,}}, {0x6AB4,2,{0x99,0x8A,0x00,0x00,}}, {0x6AB5,2,{0x99,0x8B,0x00,0x00,}}, {0x6AB6,2,{0x99,0x8C,0x00,0x00,}}, {0x6AB7,2,{0x99,0x8D,0x00,0x00,}}, {0x6AB8,2,{0x99,0x8E,0x00,0x00,}}, {0x6AB9,2,{0x99,0x8F,0x00,0x00,}}, {0x6ABA,2,{0x99,0x90,0x00,0x00,}}, {0x6ABB,2,{0x99,0x91,0x00,0x00,}}, {0x6ABC,2,{0x99,0x92,0x00,0x00,}}, {0x6ABD,2,{0x99,0x93,0x00,0x00,}}, {0x6ABE,2,{0x99,0x94,0x00,0x00,}}, {0x6ABF,2,{0x99,0x95,0x00,0x00,}}, {0x6AC0,2,{0x99,0x96,0x00,0x00,}}, {0x6AC1,2,{0x99,0x97,0x00,0x00,}}, {0x6AC2,2,{0x99,0x98,0x00,0x00,}}, {0x6AC3,2,{0x99,0x99,0x00,0x00,}}, {0x6AC4,2,{0x99,0x9A,0x00,0x00,}}, {0x6AC5,2,{0x99,0x9B,0x00,0x00,}}, {0x6AC6,2,{0x99,0x9C,0x00,0x00,}}, {0x6AC7,2,{0x99,0x9D,0x00,0x00,}}, {0x6AC8,2,{0x99,0x9E,0x00,0x00,}}, {0x6AC9,2,{0x99,0x9F,0x00,0x00,}}, {0x6ACA,2,{0x99,0xA0,0x00,0x00,}}, {0x6ACB,2,{0x99,0xA1,0x00,0x00,}}, {0x6ACC,2,{0x99,0xA2,0x00,0x00,}}, {0x6ACD,2,{0x99,0xA3,0x00,0x00,}}, {0x6ACE,2,{0x99,0xA4,0x00,0x00,}}, {0x6ACF,2,{0x99,0xA5,0x00,0x00,}}, {0x6AD0,2,{0x99,0xA6,0x00,0x00,}}, {0x6AD1,2,{0x99,0xA7,0x00,0x00,}}, {0x6AD2,2,{0x99,0xA8,0x00,0x00,}}, {0x6AD3,2,{0x99,0xA9,0x00,0x00,}}, {0x6AD4,2,{0x99,0xAA,0x00,0x00,}}, {0x6AD5,2,{0x99,0xAB,0x00,0x00,}}, {0x6AD6,2,{0x99,0xAC,0x00,0x00,}}, {0x6AD7,2,{0x99,0xAD,0x00,0x00,}}, {0x6AD8,2,{0x99,0xAE,0x00,0x00,}}, {0x6AD9,2,{0x99,0xAF,0x00,0x00,}}, {0x6ADA,2,{0x99,0xB0,0x00,0x00,}}, {0x6ADB,2,{0x99,0xB1,0x00,0x00,}}, {0x6ADC,2,{0x99,0xB2,0x00,0x00,}}, {0x6ADD,2,{0x99,0xB3,0x00,0x00,}}, {0x6ADE,2,{0x99,0xB4,0x00,0x00,}}, {0x6ADF,2,{0x99,0xB5,0x00,0x00,}}, {0x6AE0,2,{0x99,0xB6,0x00,0x00,}}, {0x6AE1,2,{0x99,0xB7,0x00,0x00,}}, {0x6AE2,2,{0x99,0xB8,0x00,0x00,}}, {0x6AE3,2,{0x99,0xB9,0x00,0x00,}}, {0x6AE4,2,{0x99,0xBA,0x00,0x00,}}, {0x6AE5,2,{0x99,0xBB,0x00,0x00,}}, {0x6AE6,2,{0x99,0xBC,0x00,0x00,}}, {0x6AE7,2,{0x99,0xBD,0x00,0x00,}}, {0x6AE8,2,{0x99,0xBE,0x00,0x00,}}, {0x6AE9,2,{0x99,0xBF,0x00,0x00,}}, {0x6AEA,2,{0x99,0xC0,0x00,0x00,}}, {0x6AEB,2,{0x99,0xC1,0x00,0x00,}}, {0x6AEC,2,{0x99,0xC2,0x00,0x00,}}, {0x6AED,2,{0x99,0xC3,0x00,0x00,}}, {0x6AEE,2,{0x99,0xC4,0x00,0x00,}}, {0x6AEF,2,{0x99,0xC5,0x00,0x00,}}, {0x6AF0,2,{0x99,0xC6,0x00,0x00,}}, {0x6AF1,2,{0x99,0xC7,0x00,0x00,}}, {0x6AF2,2,{0x99,0xC8,0x00,0x00,}}, {0x6AF3,2,{0x99,0xC9,0x00,0x00,}}, {0x6AF4,2,{0x99,0xCA,0x00,0x00,}}, {0x6AF5,2,{0x99,0xCB,0x00,0x00,}}, {0x6AF6,2,{0x99,0xCC,0x00,0x00,}}, {0x6AF7,2,{0x99,0xCD,0x00,0x00,}}, {0x6AF8,2,{0x99,0xCE,0x00,0x00,}}, {0x6AF9,2,{0x99,0xCF,0x00,0x00,}}, {0x6AFA,2,{0x99,0xD0,0x00,0x00,}}, {0x6AFB,2,{0x99,0xD1,0x00,0x00,}}, {0x6AFC,2,{0x99,0xD2,0x00,0x00,}}, {0x6AFD,2,{0x99,0xD3,0x00,0x00,}}, {0x6AFE,2,{0x99,0xD4,0x00,0x00,}}, {0x6AFF,2,{0x99,0xD5,0x00,0x00,}}, {0x6B00,2,{0x99,0xD6,0x00,0x00,}}, {0x6B01,2,{0x99,0xD7,0x00,0x00,}}, {0x6B02,2,{0x99,0xD8,0x00,0x00,}}, {0x6B03,2,{0x99,0xD9,0x00,0x00,}}, {0x6B04,2,{0x99,0xDA,0x00,0x00,}}, {0x6B05,2,{0x99,0xDB,0x00,0x00,}}, {0x6B06,2,{0x99,0xDC,0x00,0x00,}}, {0x6B07,2,{0x99,0xDD,0x00,0x00,}}, {0x6B08,2,{0x99,0xDE,0x00,0x00,}}, {0x6B09,2,{0x99,0xDF,0x00,0x00,}}, {0x6B0A,2,{0x99,0xE0,0x00,0x00,}}, {0x6B0B,2,{0x99,0xE1,0x00,0x00,}}, {0x6B0C,2,{0x99,0xE2,0x00,0x00,}}, {0x6B0D,2,{0x99,0xE3,0x00,0x00,}}, {0x6B0E,2,{0x99,0xE4,0x00,0x00,}}, {0x6B0F,2,{0x99,0xE5,0x00,0x00,}}, {0x6B10,2,{0x99,0xE6,0x00,0x00,}}, {0x6B11,2,{0x99,0xE7,0x00,0x00,}}, {0x6B12,2,{0x99,0xE8,0x00,0x00,}}, {0x6B13,2,{0x99,0xE9,0x00,0x00,}}, {0x6B14,2,{0x99,0xEA,0x00,0x00,}}, {0x6B15,2,{0x99,0xEB,0x00,0x00,}}, {0x6B16,2,{0x99,0xEC,0x00,0x00,}}, {0x6B17,2,{0x99,0xED,0x00,0x00,}}, {0x6B18,2,{0x99,0xEE,0x00,0x00,}}, {0x6B19,2,{0x99,0xEF,0x00,0x00,}}, {0x6B1A,2,{0x99,0xF0,0x00,0x00,}}, {0x6B1B,2,{0x99,0xF1,0x00,0x00,}}, {0x6B1C,2,{0x99,0xF2,0x00,0x00,}}, {0x6B1D,2,{0x99,0xF3,0x00,0x00,}}, {0x6B1E,2,{0x99,0xF4,0x00,0x00,}}, {0x6B1F,2,{0x99,0xF5,0x00,0x00,}}, {0x6B20,2,{0xC7,0xB7,0x00,0x00,}}, {0x6B21,2,{0xB4,0xCE,0x00,0x00,}}, {0x6B22,2,{0xBB,0xB6,0x00,0x00,}}, {0x6B23,2,{0xD0,0xC0,0x00,0x00,}}, {0x6B24,2,{0xEC,0xA3,0x00,0x00,}}, {0x6B25,2,{0x99,0xF6,0x00,0x00,}}, {0x6B26,2,{0x99,0xF7,0x00,0x00,}}, {0x6B27,2,{0xC5,0xB7,0x00,0x00,}}, {0x6B28,2,{0x99,0xF8,0x00,0x00,}}, {0x6B29,2,{0x99,0xF9,0x00,0x00,}}, {0x6B2A,2,{0x99,0xFA,0x00,0x00,}}, {0x6B2B,2,{0x99,0xFB,0x00,0x00,}}, {0x6B2C,2,{0x99,0xFC,0x00,0x00,}}, {0x6B2D,2,{0x99,0xFD,0x00,0x00,}}, {0x6B2E,2,{0x99,0xFE,0x00,0x00,}}, {0x6B2F,2,{0x9A,0x40,0x00,0x00,}}, {0x6B30,2,{0x9A,0x41,0x00,0x00,}}, {0x6B31,2,{0x9A,0x42,0x00,0x00,}}, {0x6B32,2,{0xD3,0xFB,0x00,0x00,}}, {0x6B33,2,{0x9A,0x43,0x00,0x00,}}, {0x6B34,2,{0x9A,0x44,0x00,0x00,}}, {0x6B35,2,{0x9A,0x45,0x00,0x00,}}, {0x6B36,2,{0x9A,0x46,0x00,0x00,}}, {0x6B37,2,{0xEC,0xA4,0x00,0x00,}}, {0x6B38,2,{0x9A,0x47,0x00,0x00,}}, {0x6B39,2,{0xEC,0xA5,0x00,0x00,}}, {0x6B3A,2,{0xC6,0xDB,0x00,0x00,}}, {0x6B3B,2,{0x9A,0x48,0x00,0x00,}}, {0x6B3C,2,{0x9A,0x49,0x00,0x00,}}, {0x6B3D,2,{0x9A,0x4A,0x00,0x00,}}, {0x6B3E,2,{0xBF,0xEE,0x00,0x00,}}, {0x6B3F,2,{0x9A,0x4B,0x00,0x00,}}, {0x6B40,2,{0x9A,0x4C,0x00,0x00,}}, {0x6B41,2,{0x9A,0x4D,0x00,0x00,}}, {0x6B42,2,{0x9A,0x4E,0x00,0x00,}}, {0x6B43,2,{0xEC,0xA6,0x00,0x00,}}, {0x6B44,2,{0x9A,0x4F,0x00,0x00,}}, {0x6B45,2,{0x9A,0x50,0x00,0x00,}}, {0x6B46,2,{0xEC,0xA7,0x00,0x00,}}, {0x6B47,2,{0xD0,0xAA,0x00,0x00,}}, {0x6B48,2,{0x9A,0x51,0x00,0x00,}}, {0x6B49,2,{0xC7,0xB8,0x00,0x00,}}, {0x6B4A,2,{0x9A,0x52,0x00,0x00,}}, {0x6B4B,2,{0x9A,0x53,0x00,0x00,}}, {0x6B4C,2,{0xB8,0xE8,0x00,0x00,}}, {0x6B4D,2,{0x9A,0x54,0x00,0x00,}}, {0x6B4E,2,{0x9A,0x55,0x00,0x00,}}, {0x6B4F,2,{0x9A,0x56,0x00,0x00,}}, {0x6B50,2,{0x9A,0x57,0x00,0x00,}}, {0x6B51,2,{0x9A,0x58,0x00,0x00,}}, {0x6B52,2,{0x9A,0x59,0x00,0x00,}}, {0x6B53,2,{0x9A,0x5A,0x00,0x00,}}, {0x6B54,2,{0x9A,0x5B,0x00,0x00,}}, {0x6B55,2,{0x9A,0x5C,0x00,0x00,}}, {0x6B56,2,{0x9A,0x5D,0x00,0x00,}}, {0x6B57,2,{0x9A,0x5E,0x00,0x00,}}, {0x6B58,2,{0x9A,0x5F,0x00,0x00,}}, {0x6B59,2,{0xEC,0xA8,0x00,0x00,}}, {0x6B5A,2,{0x9A,0x60,0x00,0x00,}}, {0x6B5B,2,{0x9A,0x61,0x00,0x00,}}, {0x6B5C,2,{0x9A,0x62,0x00,0x00,}}, {0x6B5D,2,{0x9A,0x63,0x00,0x00,}}, {0x6B5E,2,{0x9A,0x64,0x00,0x00,}}, {0x6B5F,2,{0x9A,0x65,0x00,0x00,}}, {0x6B60,2,{0x9A,0x66,0x00,0x00,}}, {0x6B61,2,{0x9A,0x67,0x00,0x00,}}, {0x6B62,2,{0xD6,0xB9,0x00,0x00,}}, {0x6B63,2,{0xD5,0xFD,0x00,0x00,}}, {0x6B64,2,{0xB4,0xCB,0x00,0x00,}}, {0x6B65,2,{0xB2,0xBD,0x00,0x00,}}, {0x6B66,2,{0xCE,0xE4,0x00,0x00,}}, {0x6B67,2,{0xC6,0xE7,0x00,0x00,}}, {0x6B68,2,{0x9A,0x68,0x00,0x00,}}, {0x6B69,2,{0x9A,0x69,0x00,0x00,}}, {0x6B6A,2,{0xCD,0xE1,0x00,0x00,}}, {0x6B6B,2,{0x9A,0x6A,0x00,0x00,}}, {0x6B6C,2,{0x9A,0x6B,0x00,0x00,}}, {0x6B6D,2,{0x9A,0x6C,0x00,0x00,}}, {0x6B6E,2,{0x9A,0x6D,0x00,0x00,}}, {0x6B6F,2,{0x9A,0x6E,0x00,0x00,}}, {0x6B70,2,{0x9A,0x6F,0x00,0x00,}}, {0x6B71,2,{0x9A,0x70,0x00,0x00,}}, {0x6B72,2,{0x9A,0x71,0x00,0x00,}}, {0x6B73,2,{0x9A,0x72,0x00,0x00,}}, {0x6B74,2,{0x9A,0x73,0x00,0x00,}}, {0x6B75,2,{0x9A,0x74,0x00,0x00,}}, {0x6B76,2,{0x9A,0x75,0x00,0x00,}}, {0x6B77,2,{0x9A,0x76,0x00,0x00,}}, {0x6B78,2,{0x9A,0x77,0x00,0x00,}}, {0x6B79,2,{0xB4,0xF5,0x00,0x00,}}, {0x6B7A,2,{0x9A,0x78,0x00,0x00,}}, {0x6B7B,2,{0xCB,0xC0,0x00,0x00,}}, {0x6B7C,2,{0xBC,0xDF,0x00,0x00,}}, {0x6B7D,2,{0x9A,0x79,0x00,0x00,}}, {0x6B7E,2,{0x9A,0x7A,0x00,0x00,}}, {0x6B7F,2,{0x9A,0x7B,0x00,0x00,}}, {0x6B80,2,{0x9A,0x7C,0x00,0x00,}}, {0x6B81,2,{0xE9,0xE2,0x00,0x00,}}, {0x6B82,2,{0xE9,0xE3,0x00,0x00,}}, {0x6B83,2,{0xD1,0xEA,0x00,0x00,}}, {0x6B84,2,{0xE9,0xE5,0x00,0x00,}}, {0x6B85,2,{0x9A,0x7D,0x00,0x00,}}, {0x6B86,2,{0xB4,0xF9,0x00,0x00,}}, {0x6B87,2,{0xE9,0xE4,0x00,0x00,}}, {0x6B88,2,{0x9A,0x7E,0x00,0x00,}}, {0x6B89,2,{0xD1,0xB3,0x00,0x00,}}, {0x6B8A,2,{0xCA,0xE2,0x00,0x00,}}, {0x6B8B,2,{0xB2,0xD0,0x00,0x00,}}, {0x6B8C,2,{0x9A,0x80,0x00,0x00,}}, {0x6B8D,2,{0xE9,0xE8,0x00,0x00,}}, {0x6B8E,2,{0x9A,0x81,0x00,0x00,}}, {0x6B8F,2,{0x9A,0x82,0x00,0x00,}}, {0x6B90,2,{0x9A,0x83,0x00,0x00,}}, {0x6B91,2,{0x9A,0x84,0x00,0x00,}}, {0x6B92,2,{0xE9,0xE6,0x00,0x00,}}, {0x6B93,2,{0xE9,0xE7,0x00,0x00,}}, {0x6B94,2,{0x9A,0x85,0x00,0x00,}}, {0x6B95,2,{0x9A,0x86,0x00,0x00,}}, {0x6B96,2,{0xD6,0xB3,0x00,0x00,}}, {0x6B97,2,{0x9A,0x87,0x00,0x00,}}, {0x6B98,2,{0x9A,0x88,0x00,0x00,}}, {0x6B99,2,{0x9A,0x89,0x00,0x00,}}, {0x6B9A,2,{0xE9,0xE9,0x00,0x00,}}, {0x6B9B,2,{0xE9,0xEA,0x00,0x00,}}, {0x6B9C,2,{0x9A,0x8A,0x00,0x00,}}, {0x6B9D,2,{0x9A,0x8B,0x00,0x00,}}, {0x6B9E,2,{0x9A,0x8C,0x00,0x00,}}, {0x6B9F,2,{0x9A,0x8D,0x00,0x00,}}, {0x6BA0,2,{0x9A,0x8E,0x00,0x00,}}, {0x6BA1,2,{0xE9,0xEB,0x00,0x00,}}, {0x6BA2,2,{0x9A,0x8F,0x00,0x00,}}, {0x6BA3,2,{0x9A,0x90,0x00,0x00,}}, {0x6BA4,2,{0x9A,0x91,0x00,0x00,}}, {0x6BA5,2,{0x9A,0x92,0x00,0x00,}}, {0x6BA6,2,{0x9A,0x93,0x00,0x00,}}, {0x6BA7,2,{0x9A,0x94,0x00,0x00,}}, {0x6BA8,2,{0x9A,0x95,0x00,0x00,}}, {0x6BA9,2,{0x9A,0x96,0x00,0x00,}}, {0x6BAA,2,{0xE9,0xEC,0x00,0x00,}}, {0x6BAB,2,{0x9A,0x97,0x00,0x00,}}, {0x6BAC,2,{0x9A,0x98,0x00,0x00,}}, {0x6BAD,2,{0x9A,0x99,0x00,0x00,}}, {0x6BAE,2,{0x9A,0x9A,0x00,0x00,}}, {0x6BAF,2,{0x9A,0x9B,0x00,0x00,}}, {0x6BB0,2,{0x9A,0x9C,0x00,0x00,}}, {0x6BB1,2,{0x9A,0x9D,0x00,0x00,}}, {0x6BB2,2,{0x9A,0x9E,0x00,0x00,}}, {0x6BB3,2,{0xEC,0xAF,0x00,0x00,}}, {0x6BB4,2,{0xC5,0xB9,0x00,0x00,}}, {0x6BB5,2,{0xB6,0xCE,0x00,0x00,}}, {0x6BB6,2,{0x9A,0x9F,0x00,0x00,}}, {0x6BB7,2,{0xD2,0xF3,0x00,0x00,}}, {0x6BB8,2,{0x9A,0xA0,0x00,0x00,}}, {0x6BB9,2,{0x9A,0xA1,0x00,0x00,}}, {0x6BBA,2,{0x9A,0xA2,0x00,0x00,}}, {0x6BBB,2,{0x9A,0xA3,0x00,0x00,}}, {0x6BBC,2,{0x9A,0xA4,0x00,0x00,}}, {0x6BBD,2,{0x9A,0xA5,0x00,0x00,}}, {0x6BBE,2,{0x9A,0xA6,0x00,0x00,}}, {0x6BBF,2,{0xB5,0xEE,0x00,0x00,}}, {0x6BC0,2,{0x9A,0xA7,0x00,0x00,}}, {0x6BC1,2,{0xBB,0xD9,0x00,0x00,}}, {0x6BC2,2,{0xEC,0xB1,0x00,0x00,}}, {0x6BC3,2,{0x9A,0xA8,0x00,0x00,}}, {0x6BC4,2,{0x9A,0xA9,0x00,0x00,}}, {0x6BC5,2,{0xD2,0xE3,0x00,0x00,}}, {0x6BC6,2,{0x9A,0xAA,0x00,0x00,}}, {0x6BC7,2,{0x9A,0xAB,0x00,0x00,}}, {0x6BC8,2,{0x9A,0xAC,0x00,0x00,}}, {0x6BC9,2,{0x9A,0xAD,0x00,0x00,}}, {0x6BCA,2,{0x9A,0xAE,0x00,0x00,}}, {0x6BCB,2,{0xCE,0xE3,0x00,0x00,}}, {0x6BCC,2,{0x9A,0xAF,0x00,0x00,}}, {0x6BCD,2,{0xC4,0xB8,0x00,0x00,}}, {0x6BCE,2,{0x9A,0xB0,0x00,0x00,}}, {0x6BCF,2,{0xC3,0xBF,0x00,0x00,}}, {0x6BD0,2,{0x9A,0xB1,0x00,0x00,}}, {0x6BD1,2,{0x9A,0xB2,0x00,0x00,}}, {0x6BD2,2,{0xB6,0xBE,0x00,0x00,}}, {0x6BD3,2,{0xD8,0xB9,0x00,0x00,}}, {0x6BD4,2,{0xB1,0xC8,0x00,0x00,}}, {0x6BD5,2,{0xB1,0xCF,0x00,0x00,}}, {0x6BD6,2,{0xB1,0xD1,0x00,0x00,}}, {0x6BD7,2,{0xC5,0xFE,0x00,0x00,}}, {0x6BD8,2,{0x9A,0xB3,0x00,0x00,}}, {0x6BD9,2,{0xB1,0xD0,0x00,0x00,}}, {0x6BDA,2,{0x9A,0xB4,0x00,0x00,}}, {0x6BDB,2,{0xC3,0xAB,0x00,0x00,}}, {0x6BDC,2,{0x9A,0xB5,0x00,0x00,}}, {0x6BDD,2,{0x9A,0xB6,0x00,0x00,}}, {0x6BDE,2,{0x9A,0xB7,0x00,0x00,}}, {0x6BDF,2,{0x9A,0xB8,0x00,0x00,}}, {0x6BE0,2,{0x9A,0xB9,0x00,0x00,}}, {0x6BE1,2,{0xD5,0xB1,0x00,0x00,}}, {0x6BE2,2,{0x9A,0xBA,0x00,0x00,}}, {0x6BE3,2,{0x9A,0xBB,0x00,0x00,}}, {0x6BE4,2,{0x9A,0xBC,0x00,0x00,}}, {0x6BE5,2,{0x9A,0xBD,0x00,0x00,}}, {0x6BE6,2,{0x9A,0xBE,0x00,0x00,}}, {0x6BE7,2,{0x9A,0xBF,0x00,0x00,}}, {0x6BE8,2,{0x9A,0xC0,0x00,0x00,}}, {0x6BE9,2,{0x9A,0xC1,0x00,0x00,}}, {0x6BEA,2,{0xEB,0xA4,0x00,0x00,}}, {0x6BEB,2,{0xBA,0xC1,0x00,0x00,}}, {0x6BEC,2,{0x9A,0xC2,0x00,0x00,}}, {0x6BED,2,{0x9A,0xC3,0x00,0x00,}}, {0x6BEE,2,{0x9A,0xC4,0x00,0x00,}}, {0x6BEF,2,{0xCC,0xBA,0x00,0x00,}}, {0x6BF0,2,{0x9A,0xC5,0x00,0x00,}}, {0x6BF1,2,{0x9A,0xC6,0x00,0x00,}}, {0x6BF2,2,{0x9A,0xC7,0x00,0x00,}}, {0x6BF3,2,{0xEB,0xA5,0x00,0x00,}}, {0x6BF4,2,{0x9A,0xC8,0x00,0x00,}}, {0x6BF5,2,{0xEB,0xA7,0x00,0x00,}}, {0x6BF6,2,{0x9A,0xC9,0x00,0x00,}}, {0x6BF7,2,{0x9A,0xCA,0x00,0x00,}}, {0x6BF8,2,{0x9A,0xCB,0x00,0x00,}}, {0x6BF9,2,{0xEB,0xA8,0x00,0x00,}}, {0x6BFA,2,{0x9A,0xCC,0x00,0x00,}}, {0x6BFB,2,{0x9A,0xCD,0x00,0x00,}}, {0x6BFC,2,{0x9A,0xCE,0x00,0x00,}}, {0x6BFD,2,{0xEB,0xA6,0x00,0x00,}}, {0x6BFE,2,{0x9A,0xCF,0x00,0x00,}}, {0x6BFF,2,{0x9A,0xD0,0x00,0x00,}}, {0x6C00,2,{0x9A,0xD1,0x00,0x00,}}, {0x6C01,2,{0x9A,0xD2,0x00,0x00,}}, {0x6C02,2,{0x9A,0xD3,0x00,0x00,}}, {0x6C03,2,{0x9A,0xD4,0x00,0x00,}}, {0x6C04,2,{0x9A,0xD5,0x00,0x00,}}, {0x6C05,2,{0xEB,0xA9,0x00,0x00,}}, {0x6C06,2,{0xEB,0xAB,0x00,0x00,}}, {0x6C07,2,{0xEB,0xAA,0x00,0x00,}}, {0x6C08,2,{0x9A,0xD6,0x00,0x00,}}, {0x6C09,2,{0x9A,0xD7,0x00,0x00,}}, {0x6C0A,2,{0x9A,0xD8,0x00,0x00,}}, {0x6C0B,2,{0x9A,0xD9,0x00,0x00,}}, {0x6C0C,2,{0x9A,0xDA,0x00,0x00,}}, {0x6C0D,2,{0xEB,0xAC,0x00,0x00,}}, {0x6C0E,2,{0x9A,0xDB,0x00,0x00,}}, {0x6C0F,2,{0xCA,0xCF,0x00,0x00,}}, {0x6C10,2,{0xD8,0xB5,0x00,0x00,}}, {0x6C11,2,{0xC3,0xF1,0x00,0x00,}}, {0x6C12,2,{0x9A,0xDC,0x00,0x00,}}, {0x6C13,2,{0xC3,0xA5,0x00,0x00,}}, {0x6C14,2,{0xC6,0xF8,0x00,0x00,}}, {0x6C15,2,{0xEB,0xAD,0x00,0x00,}}, {0x6C16,2,{0xC4,0xCA,0x00,0x00,}}, {0x6C17,2,{0x9A,0xDD,0x00,0x00,}}, {0x6C18,2,{0xEB,0xAE,0x00,0x00,}}, {0x6C19,2,{0xEB,0xAF,0x00,0x00,}}, {0x6C1A,2,{0xEB,0xB0,0x00,0x00,}}, {0x6C1B,2,{0xB7,0xD5,0x00,0x00,}}, {0x6C1C,2,{0x9A,0xDE,0x00,0x00,}}, {0x6C1D,2,{0x9A,0xDF,0x00,0x00,}}, {0x6C1E,2,{0x9A,0xE0,0x00,0x00,}}, {0x6C1F,2,{0xB7,0xFA,0x00,0x00,}}, {0x6C20,2,{0x9A,0xE1,0x00,0x00,}}, {0x6C21,2,{0xEB,0xB1,0x00,0x00,}}, {0x6C22,2,{0xC7,0xE2,0x00,0x00,}}, {0x6C23,2,{0x9A,0xE2,0x00,0x00,}}, {0x6C24,2,{0xEB,0xB3,0x00,0x00,}}, {0x6C25,2,{0x9A,0xE3,0x00,0x00,}}, {0x6C26,2,{0xBA,0xA4,0x00,0x00,}}, {0x6C27,2,{0xD1,0xF5,0x00,0x00,}}, {0x6C28,2,{0xB0,0xB1,0x00,0x00,}}, {0x6C29,2,{0xEB,0xB2,0x00,0x00,}}, {0x6C2A,2,{0xEB,0xB4,0x00,0x00,}}, {0x6C2B,2,{0x9A,0xE4,0x00,0x00,}}, {0x6C2C,2,{0x9A,0xE5,0x00,0x00,}}, {0x6C2D,2,{0x9A,0xE6,0x00,0x00,}}, {0x6C2E,2,{0xB5,0xAA,0x00,0x00,}}, {0x6C2F,2,{0xC2,0xC8,0x00,0x00,}}, {0x6C30,2,{0xC7,0xE8,0x00,0x00,}}, {0x6C31,2,{0x9A,0xE7,0x00,0x00,}}, {0x6C32,2,{0xEB,0xB5,0x00,0x00,}}, {0x6C33,2,{0x9A,0xE8,0x00,0x00,}}, {0x6C34,2,{0xCB,0xAE,0x00,0x00,}}, {0x6C35,2,{0xE3,0xDF,0x00,0x00,}}, {0x6C36,2,{0x9A,0xE9,0x00,0x00,}}, {0x6C37,2,{0x9A,0xEA,0x00,0x00,}}, {0x6C38,2,{0xD3,0xC0,0x00,0x00,}}, {0x6C39,2,{0x9A,0xEB,0x00,0x00,}}, {0x6C3A,2,{0x9A,0xEC,0x00,0x00,}}, {0x6C3B,2,{0x9A,0xED,0x00,0x00,}}, {0x6C3C,2,{0x9A,0xEE,0x00,0x00,}}, {0x6C3D,2,{0xD9,0xDB,0x00,0x00,}}, {0x6C3E,2,{0x9A,0xEF,0x00,0x00,}}, {0x6C3F,2,{0x9A,0xF0,0x00,0x00,}}, {0x6C40,2,{0xCD,0xA1,0x00,0x00,}}, {0x6C41,2,{0xD6,0xAD,0x00,0x00,}}, {0x6C42,2,{0xC7,0xF3,0x00,0x00,}}, {0x6C43,2,{0x9A,0xF1,0x00,0x00,}}, {0x6C44,2,{0x9A,0xF2,0x00,0x00,}}, {0x6C45,2,{0x9A,0xF3,0x00,0x00,}}, {0x6C46,2,{0xD9,0xE0,0x00,0x00,}}, {0x6C47,2,{0xBB,0xE3,0x00,0x00,}}, {0x6C48,2,{0x9A,0xF4,0x00,0x00,}}, {0x6C49,2,{0xBA,0xBA,0x00,0x00,}}, {0x6C4A,2,{0xE3,0xE2,0x00,0x00,}}, {0x6C4B,2,{0x9A,0xF5,0x00,0x00,}}, {0x6C4C,2,{0x9A,0xF6,0x00,0x00,}}, {0x6C4D,2,{0x9A,0xF7,0x00,0x00,}}, {0x6C4E,2,{0x9A,0xF8,0x00,0x00,}}, {0x6C4F,2,{0x9A,0xF9,0x00,0x00,}}, {0x6C50,2,{0xCF,0xAB,0x00,0x00,}}, {0x6C51,2,{0x9A,0xFA,0x00,0x00,}}, {0x6C52,2,{0x9A,0xFB,0x00,0x00,}}, {0x6C53,2,{0x9A,0xFC,0x00,0x00,}}, {0x6C54,2,{0xE3,0xE0,0x00,0x00,}}, {0x6C55,2,{0xC9,0xC7,0x00,0x00,}}, {0x6C56,2,{0x9A,0xFD,0x00,0x00,}}, {0x6C57,2,{0xBA,0xB9,0x00,0x00,}}, {0x6C58,2,{0x9A,0xFE,0x00,0x00,}}, {0x6C59,2,{0x9B,0x40,0x00,0x00,}}, {0x6C5A,2,{0x9B,0x41,0x00,0x00,}}, {0x6C5B,2,{0xD1,0xB4,0x00,0x00,}}, {0x6C5C,2,{0xE3,0xE1,0x00,0x00,}}, {0x6C5D,2,{0xC8,0xEA,0x00,0x00,}}, {0x6C5E,2,{0xB9,0xAF,0x00,0x00,}}, {0x6C5F,2,{0xBD,0xAD,0x00,0x00,}}, {0x6C60,2,{0xB3,0xD8,0x00,0x00,}}, {0x6C61,2,{0xCE,0xDB,0x00,0x00,}}, {0x6C62,2,{0x9B,0x42,0x00,0x00,}}, {0x6C63,2,{0x9B,0x43,0x00,0x00,}}, {0x6C64,2,{0xCC,0xC0,0x00,0x00,}}, {0x6C65,2,{0x9B,0x44,0x00,0x00,}}, {0x6C66,2,{0x9B,0x45,0x00,0x00,}}, {0x6C67,2,{0x9B,0x46,0x00,0x00,}}, {0x6C68,2,{0xE3,0xE8,0x00,0x00,}}, {0x6C69,2,{0xE3,0xE9,0x00,0x00,}}, {0x6C6A,2,{0xCD,0xF4,0x00,0x00,}}, {0x6C6B,2,{0x9B,0x47,0x00,0x00,}}, {0x6C6C,2,{0x9B,0x48,0x00,0x00,}}, {0x6C6D,2,{0x9B,0x49,0x00,0x00,}}, {0x6C6E,2,{0x9B,0x4A,0x00,0x00,}}, {0x6C6F,2,{0x9B,0x4B,0x00,0x00,}}, {0x6C70,2,{0xCC,0xAD,0x00,0x00,}}, {0x6C71,2,{0x9B,0x4C,0x00,0x00,}}, {0x6C72,2,{0xBC,0xB3,0x00,0x00,}}, {0x6C73,2,{0x9B,0x4D,0x00,0x00,}}, {0x6C74,2,{0xE3,0xEA,0x00,0x00,}}, {0x6C75,2,{0x9B,0x4E,0x00,0x00,}}, {0x6C76,2,{0xE3,0xEB,0x00,0x00,}}, {0x6C77,2,{0x9B,0x4F,0x00,0x00,}}, {0x6C78,2,{0x9B,0x50,0x00,0x00,}}, {0x6C79,2,{0xD0,0xDA,0x00,0x00,}}, {0x6C7A,2,{0x9B,0x51,0x00,0x00,}}, {0x6C7B,2,{0x9B,0x52,0x00,0x00,}}, {0x6C7C,2,{0x9B,0x53,0x00,0x00,}}, {0x6C7D,2,{0xC6,0xFB,0x00,0x00,}}, {0x6C7E,2,{0xB7,0xDA,0x00,0x00,}}, {0x6C7F,2,{0x9B,0x54,0x00,0x00,}}, {0x6C80,2,{0x9B,0x55,0x00,0x00,}}, {0x6C81,2,{0xC7,0xDF,0x00,0x00,}}, {0x6C82,2,{0xD2,0xCA,0x00,0x00,}}, {0x6C83,2,{0xCE,0xD6,0x00,0x00,}}, {0x6C84,2,{0x9B,0x56,0x00,0x00,}}, {0x6C85,2,{0xE3,0xE4,0x00,0x00,}}, {0x6C86,2,{0xE3,0xEC,0x00,0x00,}}, {0x6C87,2,{0x9B,0x57,0x00,0x00,}}, {0x6C88,2,{0xC9,0xF2,0x00,0x00,}}, {0x6C89,2,{0xB3,0xC1,0x00,0x00,}}, {0x6C8A,2,{0x9B,0x58,0x00,0x00,}}, {0x6C8B,2,{0x9B,0x59,0x00,0x00,}}, {0x6C8C,2,{0xE3,0xE7,0x00,0x00,}}, {0x6C8D,2,{0x9B,0x5A,0x00,0x00,}}, {0x6C8E,2,{0x9B,0x5B,0x00,0x00,}}, {0x6C8F,2,{0xC6,0xE3,0x00,0x00,}}, {0x6C90,2,{0xE3,0xE5,0x00,0x00,}}, {0x6C91,2,{0x9B,0x5C,0x00,0x00,}}, {0x6C92,2,{0x9B,0x5D,0x00,0x00,}}, {0x6C93,2,{0xED,0xB3,0x00,0x00,}}, {0x6C94,2,{0xE3,0xE6,0x00,0x00,}}, {0x6C95,2,{0x9B,0x5E,0x00,0x00,}}, {0x6C96,2,{0x9B,0x5F,0x00,0x00,}}, {0x6C97,2,{0x9B,0x60,0x00,0x00,}}, {0x6C98,2,{0x9B,0x61,0x00,0x00,}}, {0x6C99,2,{0xC9,0xB3,0x00,0x00,}}, {0x6C9A,2,{0x9B,0x62,0x00,0x00,}}, {0x6C9B,2,{0xC5,0xE6,0x00,0x00,}}, {0x6C9C,2,{0x9B,0x63,0x00,0x00,}}, {0x6C9D,2,{0x9B,0x64,0x00,0x00,}}, {0x6C9E,2,{0x9B,0x65,0x00,0x00,}}, {0x6C9F,2,{0xB9,0xB5,0x00,0x00,}}, {0x6CA0,2,{0x9B,0x66,0x00,0x00,}}, {0x6CA1,2,{0xC3,0xBB,0x00,0x00,}}, {0x6CA2,2,{0x9B,0x67,0x00,0x00,}}, {0x6CA3,2,{0xE3,0xE3,0x00,0x00,}}, {0x6CA4,2,{0xC5,0xBD,0x00,0x00,}}, {0x6CA5,2,{0xC1,0xA4,0x00,0x00,}}, {0x6CA6,2,{0xC2,0xD9,0x00,0x00,}}, {0x6CA7,2,{0xB2,0xD7,0x00,0x00,}}, {0x6CA8,2,{0x9B,0x68,0x00,0x00,}}, {0x6CA9,2,{0xE3,0xED,0x00,0x00,}}, {0x6CAA,2,{0xBB,0xA6,0x00,0x00,}}, {0x6CAB,2,{0xC4,0xAD,0x00,0x00,}}, {0x6CAC,2,{0x9B,0x69,0x00,0x00,}}, {0x6CAD,2,{0xE3,0xF0,0x00,0x00,}}, {0x6CAE,2,{0xBE,0xDA,0x00,0x00,}}, {0x6CAF,2,{0x9B,0x6A,0x00,0x00,}}, {0x6CB0,2,{0x9B,0x6B,0x00,0x00,}}, {0x6CB1,2,{0xE3,0xFB,0x00,0x00,}}, {0x6CB2,2,{0xE3,0xF5,0x00,0x00,}}, {0x6CB3,2,{0xBA,0xD3,0x00,0x00,}}, {0x6CB4,2,{0x9B,0x6C,0x00,0x00,}}, {0x6CB5,2,{0x9B,0x6D,0x00,0x00,}}, {0x6CB6,2,{0x9B,0x6E,0x00,0x00,}}, {0x6CB7,2,{0x9B,0x6F,0x00,0x00,}}, {0x6CB8,2,{0xB7,0xD0,0x00,0x00,}}, {0x6CB9,2,{0xD3,0xCD,0x00,0x00,}}, {0x6CBA,2,{0x9B,0x70,0x00,0x00,}}, {0x6CBB,2,{0xD6,0xCE,0x00,0x00,}}, {0x6CBC,2,{0xD5,0xD3,0x00,0x00,}}, {0x6CBD,2,{0xB9,0xC1,0x00,0x00,}}, {0x6CBE,2,{0xD5,0xB4,0x00,0x00,}}, {0x6CBF,2,{0xD1,0xD8,0x00,0x00,}}, {0x6CC0,2,{0x9B,0x71,0x00,0x00,}}, {0x6CC1,2,{0x9B,0x72,0x00,0x00,}}, {0x6CC2,2,{0x9B,0x73,0x00,0x00,}}, {0x6CC3,2,{0x9B,0x74,0x00,0x00,}}, {0x6CC4,2,{0xD0,0xB9,0x00,0x00,}}, {0x6CC5,2,{0xC7,0xF6,0x00,0x00,}}, {0x6CC6,2,{0x9B,0x75,0x00,0x00,}}, {0x6CC7,2,{0x9B,0x76,0x00,0x00,}}, {0x6CC8,2,{0x9B,0x77,0x00,0x00,}}, {0x6CC9,2,{0xC8,0xAA,0x00,0x00,}}, {0x6CCA,2,{0xB2,0xB4,0x00,0x00,}}, {0x6CCB,2,{0x9B,0x78,0x00,0x00,}}, {0x6CCC,2,{0xC3,0xDA,0x00,0x00,}}, {0x6CCD,2,{0x9B,0x79,0x00,0x00,}}, {0x6CCE,2,{0x9B,0x7A,0x00,0x00,}}, {0x6CCF,2,{0x9B,0x7B,0x00,0x00,}}, {0x6CD0,2,{0xE3,0xEE,0x00,0x00,}}, {0x6CD1,2,{0x9B,0x7C,0x00,0x00,}}, {0x6CD2,2,{0x9B,0x7D,0x00,0x00,}}, {0x6CD3,2,{0xE3,0xFC,0x00,0x00,}}, {0x6CD4,2,{0xE3,0xEF,0x00,0x00,}}, {0x6CD5,2,{0xB7,0xA8,0x00,0x00,}}, {0x6CD6,2,{0xE3,0xF7,0x00,0x00,}}, {0x6CD7,2,{0xE3,0xF4,0x00,0x00,}}, {0x6CD8,2,{0x9B,0x7E,0x00,0x00,}}, {0x6CD9,2,{0x9B,0x80,0x00,0x00,}}, {0x6CDA,2,{0x9B,0x81,0x00,0x00,}}, {0x6CDB,2,{0xB7,0xBA,0x00,0x00,}}, {0x6CDC,2,{0x9B,0x82,0x00,0x00,}}, {0x6CDD,2,{0x9B,0x83,0x00,0x00,}}, {0x6CDE,2,{0xC5,0xA2,0x00,0x00,}}, {0x6CDF,2,{0x9B,0x84,0x00,0x00,}}, {0x6CE0,2,{0xE3,0xF6,0x00,0x00,}}, {0x6CE1,2,{0xC5,0xDD,0x00,0x00,}}, {0x6CE2,2,{0xB2,0xA8,0x00,0x00,}}, {0x6CE3,2,{0xC6,0xFC,0x00,0x00,}}, {0x6CE4,2,{0x9B,0x85,0x00,0x00,}}, {0x6CE5,2,{0xC4,0xE0,0x00,0x00,}}, {0x6CE6,2,{0x9B,0x86,0x00,0x00,}}, {0x6CE7,2,{0x9B,0x87,0x00,0x00,}}, {0x6CE8,2,{0xD7,0xA2,0x00,0x00,}}, {0x6CE9,2,{0x9B,0x88,0x00,0x00,}}, {0x6CEA,2,{0xC0,0xE1,0x00,0x00,}}, {0x6CEB,2,{0xE3,0xF9,0x00,0x00,}}, {0x6CEC,2,{0x9B,0x89,0x00,0x00,}}, {0x6CED,2,{0x9B,0x8A,0x00,0x00,}}, {0x6CEE,2,{0xE3,0xFA,0x00,0x00,}}, {0x6CEF,2,{0xE3,0xFD,0x00,0x00,}}, {0x6CF0,2,{0xCC,0xA9,0x00,0x00,}}, {0x6CF1,2,{0xE3,0xF3,0x00,0x00,}}, {0x6CF2,2,{0x9B,0x8B,0x00,0x00,}}, {0x6CF3,2,{0xD3,0xBE,0x00,0x00,}}, {0x6CF4,2,{0x9B,0x8C,0x00,0x00,}}, {0x6CF5,2,{0xB1,0xC3,0x00,0x00,}}, {0x6CF6,2,{0xED,0xB4,0x00,0x00,}}, {0x6CF7,2,{0xE3,0xF1,0x00,0x00,}}, {0x6CF8,2,{0xE3,0xF2,0x00,0x00,}}, {0x6CF9,2,{0x9B,0x8D,0x00,0x00,}}, {0x6CFA,2,{0xE3,0xF8,0x00,0x00,}}, {0x6CFB,2,{0xD0,0xBA,0x00,0x00,}}, {0x6CFC,2,{0xC6,0xC3,0x00,0x00,}}, {0x6CFD,2,{0xD4,0xF3,0x00,0x00,}}, {0x6CFE,2,{0xE3,0xFE,0x00,0x00,}}, {0x6CFF,2,{0x9B,0x8E,0x00,0x00,}}, {0x6D00,2,{0x9B,0x8F,0x00,0x00,}}, {0x6D01,2,{0xBD,0xE0,0x00,0x00,}}, {0x6D02,2,{0x9B,0x90,0x00,0x00,}}, {0x6D03,2,{0x9B,0x91,0x00,0x00,}}, {0x6D04,2,{0xE4,0xA7,0x00,0x00,}}, {0x6D05,2,{0x9B,0x92,0x00,0x00,}}, {0x6D06,2,{0x9B,0x93,0x00,0x00,}}, {0x6D07,2,{0xE4,0xA6,0x00,0x00,}}, {0x6D08,2,{0x9B,0x94,0x00,0x00,}}, {0x6D09,2,{0x9B,0x95,0x00,0x00,}}, {0x6D0A,2,{0x9B,0x96,0x00,0x00,}}, {0x6D0B,2,{0xD1,0xF3,0x00,0x00,}}, {0x6D0C,2,{0xE4,0xA3,0x00,0x00,}}, {0x6D0D,2,{0x9B,0x97,0x00,0x00,}}, {0x6D0E,2,{0xE4,0xA9,0x00,0x00,}}, {0x6D0F,2,{0x9B,0x98,0x00,0x00,}}, {0x6D10,2,{0x9B,0x99,0x00,0x00,}}, {0x6D11,2,{0x9B,0x9A,0x00,0x00,}}, {0x6D12,2,{0xC8,0xF7,0x00,0x00,}}, {0x6D13,2,{0x9B,0x9B,0x00,0x00,}}, {0x6D14,2,{0x9B,0x9C,0x00,0x00,}}, {0x6D15,2,{0x9B,0x9D,0x00,0x00,}}, {0x6D16,2,{0x9B,0x9E,0x00,0x00,}}, {0x6D17,2,{0xCF,0xB4,0x00,0x00,}}, {0x6D18,2,{0x9B,0x9F,0x00,0x00,}}, {0x6D19,2,{0xE4,0xA8,0x00,0x00,}}, {0x6D1A,2,{0xE4,0xAE,0x00,0x00,}}, {0x6D1B,2,{0xC2,0xE5,0x00,0x00,}}, {0x6D1C,2,{0x9B,0xA0,0x00,0x00,}}, {0x6D1D,2,{0x9B,0xA1,0x00,0x00,}}, {0x6D1E,2,{0xB6,0xB4,0x00,0x00,}}, {0x6D1F,2,{0x9B,0xA2,0x00,0x00,}}, {0x6D20,2,{0x9B,0xA3,0x00,0x00,}}, {0x6D21,2,{0x9B,0xA4,0x00,0x00,}}, {0x6D22,2,{0x9B,0xA5,0x00,0x00,}}, {0x6D23,2,{0x9B,0xA6,0x00,0x00,}}, {0x6D24,2,{0x9B,0xA7,0x00,0x00,}}, {0x6D25,2,{0xBD,0xF2,0x00,0x00,}}, {0x6D26,2,{0x9B,0xA8,0x00,0x00,}}, {0x6D27,2,{0xE4,0xA2,0x00,0x00,}}, {0x6D28,2,{0x9B,0xA9,0x00,0x00,}}, {0x6D29,2,{0x9B,0xAA,0x00,0x00,}}, {0x6D2A,2,{0xBA,0xE9,0x00,0x00,}}, {0x6D2B,2,{0xE4,0xAA,0x00,0x00,}}, {0x6D2C,2,{0x9B,0xAB,0x00,0x00,}}, {0x6D2D,2,{0x9B,0xAC,0x00,0x00,}}, {0x6D2E,2,{0xE4,0xAC,0x00,0x00,}}, {0x6D2F,2,{0x9B,0xAD,0x00,0x00,}}, {0x6D30,2,{0x9B,0xAE,0x00,0x00,}}, {0x6D31,2,{0xB6,0xFD,0x00,0x00,}}, {0x6D32,2,{0xD6,0xDE,0x00,0x00,}}, {0x6D33,2,{0xE4,0xB2,0x00,0x00,}}, {0x6D34,2,{0x9B,0xAF,0x00,0x00,}}, {0x6D35,2,{0xE4,0xAD,0x00,0x00,}}, {0x6D36,2,{0x9B,0xB0,0x00,0x00,}}, {0x6D37,2,{0x9B,0xB1,0x00,0x00,}}, {0x6D38,2,{0x9B,0xB2,0x00,0x00,}}, {0x6D39,2,{0xE4,0xA1,0x00,0x00,}}, {0x6D3A,2,{0x9B,0xB3,0x00,0x00,}}, {0x6D3B,2,{0xBB,0xEE,0x00,0x00,}}, {0x6D3C,2,{0xCD,0xDD,0x00,0x00,}}, {0x6D3D,2,{0xC7,0xA2,0x00,0x00,}}, {0x6D3E,2,{0xC5,0xC9,0x00,0x00,}}, {0x6D3F,2,{0x9B,0xB4,0x00,0x00,}}, {0x6D40,2,{0x9B,0xB5,0x00,0x00,}}, {0x6D41,2,{0xC1,0xF7,0x00,0x00,}}, {0x6D42,2,{0x9B,0xB6,0x00,0x00,}}, {0x6D43,2,{0xE4,0xA4,0x00,0x00,}}, {0x6D44,2,{0x9B,0xB7,0x00,0x00,}}, {0x6D45,2,{0xC7,0xB3,0x00,0x00,}}, {0x6D46,2,{0xBD,0xAC,0x00,0x00,}}, {0x6D47,2,{0xBD,0xBD,0x00,0x00,}}, {0x6D48,2,{0xE4,0xA5,0x00,0x00,}}, {0x6D49,2,{0x9B,0xB8,0x00,0x00,}}, {0x6D4A,2,{0xD7,0xC7,0x00,0x00,}}, {0x6D4B,2,{0xB2,0xE2,0x00,0x00,}}, {0x6D4C,2,{0x9B,0xB9,0x00,0x00,}}, {0x6D4D,2,{0xE4,0xAB,0x00,0x00,}}, {0x6D4E,2,{0xBC,0xC3,0x00,0x00,}}, {0x6D4F,2,{0xE4,0xAF,0x00,0x00,}}, {0x6D50,2,{0x9B,0xBA,0x00,0x00,}}, {0x6D51,2,{0xBB,0xEB,0x00,0x00,}}, {0x6D52,2,{0xE4,0xB0,0x00,0x00,}}, {0x6D53,2,{0xC5,0xA8,0x00,0x00,}}, {0x6D54,2,{0xE4,0xB1,0x00,0x00,}}, {0x6D55,2,{0x9B,0xBB,0x00,0x00,}}, {0x6D56,2,{0x9B,0xBC,0x00,0x00,}}, {0x6D57,2,{0x9B,0xBD,0x00,0x00,}}, {0x6D58,2,{0x9B,0xBE,0x00,0x00,}}, {0x6D59,2,{0xD5,0xE3,0x00,0x00,}}, {0x6D5A,2,{0xBF,0xA3,0x00,0x00,}}, {0x6D5B,2,{0x9B,0xBF,0x00,0x00,}}, {0x6D5C,2,{0xE4,0xBA,0x00,0x00,}}, {0x6D5D,2,{0x9B,0xC0,0x00,0x00,}}, {0x6D5E,2,{0xE4,0xB7,0x00,0x00,}}, {0x6D5F,2,{0x9B,0xC1,0x00,0x00,}}, {0x6D60,2,{0xE4,0xBB,0x00,0x00,}}, {0x6D61,2,{0x9B,0xC2,0x00,0x00,}}, {0x6D62,2,{0x9B,0xC3,0x00,0x00,}}, {0x6D63,2,{0xE4,0xBD,0x00,0x00,}}, {0x6D64,2,{0x9B,0xC4,0x00,0x00,}}, {0x6D65,2,{0x9B,0xC5,0x00,0x00,}}, {0x6D66,2,{0xC6,0xD6,0x00,0x00,}}, {0x6D67,2,{0x9B,0xC6,0x00,0x00,}}, {0x6D68,2,{0x9B,0xC7,0x00,0x00,}}, {0x6D69,2,{0xBA,0xC6,0x00,0x00,}}, {0x6D6A,2,{0xC0,0xCB,0x00,0x00,}}, {0x6D6B,2,{0x9B,0xC8,0x00,0x00,}}, {0x6D6C,2,{0x9B,0xC9,0x00,0x00,}}, {0x6D6D,2,{0x9B,0xCA,0x00,0x00,}}, {0x6D6E,2,{0xB8,0xA1,0x00,0x00,}}, {0x6D6F,2,{0xE4,0xB4,0x00,0x00,}}, {0x6D70,2,{0x9B,0xCB,0x00,0x00,}}, {0x6D71,2,{0x9B,0xCC,0x00,0x00,}}, {0x6D72,2,{0x9B,0xCD,0x00,0x00,}}, {0x6D73,2,{0x9B,0xCE,0x00,0x00,}}, {0x6D74,2,{0xD4,0xA1,0x00,0x00,}}, {0x6D75,2,{0x9B,0xCF,0x00,0x00,}}, {0x6D76,2,{0x9B,0xD0,0x00,0x00,}}, {0x6D77,2,{0xBA,0xA3,0x00,0x00,}}, {0x6D78,2,{0xBD,0xFE,0x00,0x00,}}, {0x6D79,2,{0x9B,0xD1,0x00,0x00,}}, {0x6D7A,2,{0x9B,0xD2,0x00,0x00,}}, {0x6D7B,2,{0x9B,0xD3,0x00,0x00,}}, {0x6D7C,2,{0xE4,0xBC,0x00,0x00,}}, {0x6D7D,2,{0x9B,0xD4,0x00,0x00,}}, {0x6D7E,2,{0x9B,0xD5,0x00,0x00,}}, {0x6D7F,2,{0x9B,0xD6,0x00,0x00,}}, {0x6D80,2,{0x9B,0xD7,0x00,0x00,}}, {0x6D81,2,{0x9B,0xD8,0x00,0x00,}}, {0x6D82,2,{0xCD,0xBF,0x00,0x00,}}, {0x6D83,2,{0x9B,0xD9,0x00,0x00,}}, {0x6D84,2,{0x9B,0xDA,0x00,0x00,}}, {0x6D85,2,{0xC4,0xF9,0x00,0x00,}}, {0x6D86,2,{0x9B,0xDB,0x00,0x00,}}, {0x6D87,2,{0x9B,0xDC,0x00,0x00,}}, {0x6D88,2,{0xCF,0xFB,0x00,0x00,}}, {0x6D89,2,{0xC9,0xE6,0x00,0x00,}}, {0x6D8A,2,{0x9B,0xDD,0x00,0x00,}}, {0x6D8B,2,{0x9B,0xDE,0x00,0x00,}}, {0x6D8C,2,{0xD3,0xBF,0x00,0x00,}}, {0x6D8D,2,{0x9B,0xDF,0x00,0x00,}}, {0x6D8E,2,{0xCF,0xD1,0x00,0x00,}}, {0x6D8F,2,{0x9B,0xE0,0x00,0x00,}}, {0x6D90,2,{0x9B,0xE1,0x00,0x00,}}, {0x6D91,2,{0xE4,0xB3,0x00,0x00,}}, {0x6D92,2,{0x9B,0xE2,0x00,0x00,}}, {0x6D93,2,{0xE4,0xB8,0x00,0x00,}}, {0x6D94,2,{0xE4,0xB9,0x00,0x00,}}, {0x6D95,2,{0xCC,0xE9,0x00,0x00,}}, {0x6D96,2,{0x9B,0xE3,0x00,0x00,}}, {0x6D97,2,{0x9B,0xE4,0x00,0x00,}}, {0x6D98,2,{0x9B,0xE5,0x00,0x00,}}, {0x6D99,2,{0x9B,0xE6,0x00,0x00,}}, {0x6D9A,2,{0x9B,0xE7,0x00,0x00,}}, {0x6D9B,2,{0xCC,0xCE,0x00,0x00,}}, {0x6D9C,2,{0x9B,0xE8,0x00,0x00,}}, {0x6D9D,2,{0xC0,0xD4,0x00,0x00,}}, {0x6D9E,2,{0xE4,0xB5,0x00,0x00,}}, {0x6D9F,2,{0xC1,0xB0,0x00,0x00,}}, {0x6DA0,2,{0xE4,0xB6,0x00,0x00,}}, {0x6DA1,2,{0xCE,0xD0,0x00,0x00,}}, {0x6DA2,2,{0x9B,0xE9,0x00,0x00,}}, {0x6DA3,2,{0xBB,0xC1,0x00,0x00,}}, {0x6DA4,2,{0xB5,0xD3,0x00,0x00,}}, {0x6DA5,2,{0x9B,0xEA,0x00,0x00,}}, {0x6DA6,2,{0xC8,0xF3,0x00,0x00,}}, {0x6DA7,2,{0xBD,0xA7,0x00,0x00,}}, {0x6DA8,2,{0xD5,0xC7,0x00,0x00,}}, {0x6DA9,2,{0xC9,0xAC,0x00,0x00,}}, {0x6DAA,2,{0xB8,0xA2,0x00,0x00,}}, {0x6DAB,2,{0xE4,0xCA,0x00,0x00,}}, {0x6DAC,2,{0x9B,0xEB,0x00,0x00,}}, {0x6DAD,2,{0x9B,0xEC,0x00,0x00,}}, {0x6DAE,2,{0xE4,0xCC,0x00,0x00,}}, {0x6DAF,2,{0xD1,0xC4,0x00,0x00,}}, {0x6DB0,2,{0x9B,0xED,0x00,0x00,}}, {0x6DB1,2,{0x9B,0xEE,0x00,0x00,}}, {0x6DB2,2,{0xD2,0xBA,0x00,0x00,}}, {0x6DB3,2,{0x9B,0xEF,0x00,0x00,}}, {0x6DB4,2,{0x9B,0xF0,0x00,0x00,}}, {0x6DB5,2,{0xBA,0xAD,0x00,0x00,}}, {0x6DB6,2,{0x9B,0xF1,0x00,0x00,}}, {0x6DB7,2,{0x9B,0xF2,0x00,0x00,}}, {0x6DB8,2,{0xBA,0xD4,0x00,0x00,}}, {0x6DB9,2,{0x9B,0xF3,0x00,0x00,}}, {0x6DBA,2,{0x9B,0xF4,0x00,0x00,}}, {0x6DBB,2,{0x9B,0xF5,0x00,0x00,}}, {0x6DBC,2,{0x9B,0xF6,0x00,0x00,}}, {0x6DBD,2,{0x9B,0xF7,0x00,0x00,}}, {0x6DBE,2,{0x9B,0xF8,0x00,0x00,}}, {0x6DBF,2,{0xE4,0xC3,0x00,0x00,}}, {0x6DC0,2,{0xB5,0xED,0x00,0x00,}}, {0x6DC1,2,{0x9B,0xF9,0x00,0x00,}}, {0x6DC2,2,{0x9B,0xFA,0x00,0x00,}}, {0x6DC3,2,{0x9B,0xFB,0x00,0x00,}}, {0x6DC4,2,{0xD7,0xCD,0x00,0x00,}}, {0x6DC5,2,{0xE4,0xC0,0x00,0x00,}}, {0x6DC6,2,{0xCF,0xFD,0x00,0x00,}}, {0x6DC7,2,{0xE4,0xBF,0x00,0x00,}}, {0x6DC8,2,{0x9B,0xFC,0x00,0x00,}}, {0x6DC9,2,{0x9B,0xFD,0x00,0x00,}}, {0x6DCA,2,{0x9B,0xFE,0x00,0x00,}}, {0x6DCB,2,{0xC1,0xDC,0x00,0x00,}}, {0x6DCC,2,{0xCC,0xCA,0x00,0x00,}}, {0x6DCD,2,{0x9C,0x40,0x00,0x00,}}, {0x6DCE,2,{0x9C,0x41,0x00,0x00,}}, {0x6DCF,2,{0x9C,0x42,0x00,0x00,}}, {0x6DD0,2,{0x9C,0x43,0x00,0x00,}}, {0x6DD1,2,{0xCA,0xE7,0x00,0x00,}}, {0x6DD2,2,{0x9C,0x44,0x00,0x00,}}, {0x6DD3,2,{0x9C,0x45,0x00,0x00,}}, {0x6DD4,2,{0x9C,0x46,0x00,0x00,}}, {0x6DD5,2,{0x9C,0x47,0x00,0x00,}}, {0x6DD6,2,{0xC4,0xD7,0x00,0x00,}}, {0x6DD7,2,{0x9C,0x48,0x00,0x00,}}, {0x6DD8,2,{0xCC,0xD4,0x00,0x00,}}, {0x6DD9,2,{0xE4,0xC8,0x00,0x00,}}, {0x6DDA,2,{0x9C,0x49,0x00,0x00,}}, {0x6DDB,2,{0x9C,0x4A,0x00,0x00,}}, {0x6DDC,2,{0x9C,0x4B,0x00,0x00,}}, {0x6DDD,2,{0xE4,0xC7,0x00,0x00,}}, {0x6DDE,2,{0xE4,0xC1,0x00,0x00,}}, {0x6DDF,2,{0x9C,0x4C,0x00,0x00,}}, {0x6DE0,2,{0xE4,0xC4,0x00,0x00,}}, {0x6DE1,2,{0xB5,0xAD,0x00,0x00,}}, {0x6DE2,2,{0x9C,0x4D,0x00,0x00,}}, {0x6DE3,2,{0x9C,0x4E,0x00,0x00,}}, {0x6DE4,2,{0xD3,0xD9,0x00,0x00,}}, {0x6DE5,2,{0x9C,0x4F,0x00,0x00,}}, {0x6DE6,2,{0xE4,0xC6,0x00,0x00,}}, {0x6DE7,2,{0x9C,0x50,0x00,0x00,}}, {0x6DE8,2,{0x9C,0x51,0x00,0x00,}}, {0x6DE9,2,{0x9C,0x52,0x00,0x00,}}, {0x6DEA,2,{0x9C,0x53,0x00,0x00,}}, {0x6DEB,2,{0xD2,0xF9,0x00,0x00,}}, {0x6DEC,2,{0xB4,0xE3,0x00,0x00,}}, {0x6DED,2,{0x9C,0x54,0x00,0x00,}}, {0x6DEE,2,{0xBB,0xB4,0x00,0x00,}}, {0x6DEF,2,{0x9C,0x55,0x00,0x00,}}, {0x6DF0,2,{0x9C,0x56,0x00,0x00,}}, {0x6DF1,2,{0xC9,0xEE,0x00,0x00,}}, {0x6DF2,2,{0x9C,0x57,0x00,0x00,}}, {0x6DF3,2,{0xB4,0xBE,0x00,0x00,}}, {0x6DF4,2,{0x9C,0x58,0x00,0x00,}}, {0x6DF5,2,{0x9C,0x59,0x00,0x00,}}, {0x6DF6,2,{0x9C,0x5A,0x00,0x00,}}, {0x6DF7,2,{0xBB,0xEC,0x00,0x00,}}, {0x6DF8,2,{0x9C,0x5B,0x00,0x00,}}, {0x6DF9,2,{0xD1,0xCD,0x00,0x00,}}, {0x6DFA,2,{0x9C,0x5C,0x00,0x00,}}, {0x6DFB,2,{0xCC,0xED,0x00,0x00,}}, {0x6DFC,2,{0xED,0xB5,0x00,0x00,}}, {0x6DFD,2,{0x9C,0x5D,0x00,0x00,}}, {0x6DFE,2,{0x9C,0x5E,0x00,0x00,}}, {0x6DFF,2,{0x9C,0x5F,0x00,0x00,}}, {0x6E00,2,{0x9C,0x60,0x00,0x00,}}, {0x6E01,2,{0x9C,0x61,0x00,0x00,}}, {0x6E02,2,{0x9C,0x62,0x00,0x00,}}, {0x6E03,2,{0x9C,0x63,0x00,0x00,}}, {0x6E04,2,{0x9C,0x64,0x00,0x00,}}, {0x6E05,2,{0xC7,0xE5,0x00,0x00,}}, {0x6E06,2,{0x9C,0x65,0x00,0x00,}}, {0x6E07,2,{0x9C,0x66,0x00,0x00,}}, {0x6E08,2,{0x9C,0x67,0x00,0x00,}}, {0x6E09,2,{0x9C,0x68,0x00,0x00,}}, {0x6E0A,2,{0xD4,0xA8,0x00,0x00,}}, {0x6E0B,2,{0x9C,0x69,0x00,0x00,}}, {0x6E0C,2,{0xE4,0xCB,0x00,0x00,}}, {0x6E0D,2,{0xD7,0xD5,0x00,0x00,}}, {0x6E0E,2,{0xE4,0xC2,0x00,0x00,}}, {0x6E0F,2,{0x9C,0x6A,0x00,0x00,}}, {0x6E10,2,{0xBD,0xA5,0x00,0x00,}}, {0x6E11,2,{0xE4,0xC5,0x00,0x00,}}, {0x6E12,2,{0x9C,0x6B,0x00,0x00,}}, {0x6E13,2,{0x9C,0x6C,0x00,0x00,}}, {0x6E14,2,{0xD3,0xE6,0x00,0x00,}}, {0x6E15,2,{0x9C,0x6D,0x00,0x00,}}, {0x6E16,2,{0xE4,0xC9,0x00,0x00,}}, {0x6E17,2,{0xC9,0xF8,0x00,0x00,}}, {0x6E18,2,{0x9C,0x6E,0x00,0x00,}}, {0x6E19,2,{0x9C,0x6F,0x00,0x00,}}, {0x6E1A,2,{0xE4,0xBE,0x00,0x00,}}, {0x6E1B,2,{0x9C,0x70,0x00,0x00,}}, {0x6E1C,2,{0x9C,0x71,0x00,0x00,}}, {0x6E1D,2,{0xD3,0xE5,0x00,0x00,}}, {0x6E1E,2,{0x9C,0x72,0x00,0x00,}}, {0x6E1F,2,{0x9C,0x73,0x00,0x00,}}, {0x6E20,2,{0xC7,0xFE,0x00,0x00,}}, {0x6E21,2,{0xB6,0xC9,0x00,0x00,}}, {0x6E22,2,{0x9C,0x74,0x00,0x00,}}, {0x6E23,2,{0xD4,0xFC,0x00,0x00,}}, {0x6E24,2,{0xB2,0xB3,0x00,0x00,}}, {0x6E25,2,{0xE4,0xD7,0x00,0x00,}}, {0x6E26,2,{0x9C,0x75,0x00,0x00,}}, {0x6E27,2,{0x9C,0x76,0x00,0x00,}}, {0x6E28,2,{0x9C,0x77,0x00,0x00,}}, {0x6E29,2,{0xCE,0xC2,0x00,0x00,}}, {0x6E2A,2,{0x9C,0x78,0x00,0x00,}}, {0x6E2B,2,{0xE4,0xCD,0x00,0x00,}}, {0x6E2C,2,{0x9C,0x79,0x00,0x00,}}, {0x6E2D,2,{0xCE,0xBC,0x00,0x00,}}, {0x6E2E,2,{0x9C,0x7A,0x00,0x00,}}, {0x6E2F,2,{0xB8,0xDB,0x00,0x00,}}, {0x6E30,2,{0x9C,0x7B,0x00,0x00,}}, {0x6E31,2,{0x9C,0x7C,0x00,0x00,}}, {0x6E32,2,{0xE4,0xD6,0x00,0x00,}}, {0x6E33,2,{0x9C,0x7D,0x00,0x00,}}, {0x6E34,2,{0xBF,0xCA,0x00,0x00,}}, {0x6E35,2,{0x9C,0x7E,0x00,0x00,}}, {0x6E36,2,{0x9C,0x80,0x00,0x00,}}, {0x6E37,2,{0x9C,0x81,0x00,0x00,}}, {0x6E38,2,{0xD3,0xCE,0x00,0x00,}}, {0x6E39,2,{0x9C,0x82,0x00,0x00,}}, {0x6E3A,2,{0xC3,0xEC,0x00,0x00,}}, {0x6E3B,2,{0x9C,0x83,0x00,0x00,}}, {0x6E3C,2,{0x9C,0x84,0x00,0x00,}}, {0x6E3D,2,{0x9C,0x85,0x00,0x00,}}, {0x6E3E,2,{0x9C,0x86,0x00,0x00,}}, {0x6E3F,2,{0x9C,0x87,0x00,0x00,}}, {0x6E40,2,{0x9C,0x88,0x00,0x00,}}, {0x6E41,2,{0x9C,0x89,0x00,0x00,}}, {0x6E42,2,{0x9C,0x8A,0x00,0x00,}}, {0x6E43,2,{0xC5,0xC8,0x00,0x00,}}, {0x6E44,2,{0xE4,0xD8,0x00,0x00,}}, {0x6E45,2,{0x9C,0x8B,0x00,0x00,}}, {0x6E46,2,{0x9C,0x8C,0x00,0x00,}}, {0x6E47,2,{0x9C,0x8D,0x00,0x00,}}, {0x6E48,2,{0x9C,0x8E,0x00,0x00,}}, {0x6E49,2,{0x9C,0x8F,0x00,0x00,}}, {0x6E4A,2,{0x9C,0x90,0x00,0x00,}}, {0x6E4B,2,{0x9C,0x91,0x00,0x00,}}, {0x6E4C,2,{0x9C,0x92,0x00,0x00,}}, {0x6E4D,2,{0xCD,0xC4,0x00,0x00,}}, {0x6E4E,2,{0xE4,0xCF,0x00,0x00,}}, {0x6E4F,2,{0x9C,0x93,0x00,0x00,}}, {0x6E50,2,{0x9C,0x94,0x00,0x00,}}, {0x6E51,2,{0x9C,0x95,0x00,0x00,}}, {0x6E52,2,{0x9C,0x96,0x00,0x00,}}, {0x6E53,2,{0xE4,0xD4,0x00,0x00,}}, {0x6E54,2,{0xE4,0xD5,0x00,0x00,}}, {0x6E55,2,{0x9C,0x97,0x00,0x00,}}, {0x6E56,2,{0xBA,0xFE,0x00,0x00,}}, {0x6E57,2,{0x9C,0x98,0x00,0x00,}}, {0x6E58,2,{0xCF,0xE6,0x00,0x00,}}, {0x6E59,2,{0x9C,0x99,0x00,0x00,}}, {0x6E5A,2,{0x9C,0x9A,0x00,0x00,}}, {0x6E5B,2,{0xD5,0xBF,0x00,0x00,}}, {0x6E5C,2,{0x9C,0x9B,0x00,0x00,}}, {0x6E5D,2,{0x9C,0x9C,0x00,0x00,}}, {0x6E5E,2,{0x9C,0x9D,0x00,0x00,}}, {0x6E5F,2,{0xE4,0xD2,0x00,0x00,}}, {0x6E60,2,{0x9C,0x9E,0x00,0x00,}}, {0x6E61,2,{0x9C,0x9F,0x00,0x00,}}, {0x6E62,2,{0x9C,0xA0,0x00,0x00,}}, {0x6E63,2,{0x9C,0xA1,0x00,0x00,}}, {0x6E64,2,{0x9C,0xA2,0x00,0x00,}}, {0x6E65,2,{0x9C,0xA3,0x00,0x00,}}, {0x6E66,2,{0x9C,0xA4,0x00,0x00,}}, {0x6E67,2,{0x9C,0xA5,0x00,0x00,}}, {0x6E68,2,{0x9C,0xA6,0x00,0x00,}}, {0x6E69,2,{0x9C,0xA7,0x00,0x00,}}, {0x6E6A,2,{0x9C,0xA8,0x00,0x00,}}, {0x6E6B,2,{0xE4,0xD0,0x00,0x00,}}, {0x6E6C,2,{0x9C,0xA9,0x00,0x00,}}, {0x6E6D,2,{0x9C,0xAA,0x00,0x00,}}, {0x6E6E,2,{0xE4,0xCE,0x00,0x00,}}, {0x6E6F,2,{0x9C,0xAB,0x00,0x00,}}, {0x6E70,2,{0x9C,0xAC,0x00,0x00,}}, {0x6E71,2,{0x9C,0xAD,0x00,0x00,}}, {0x6E72,2,{0x9C,0xAE,0x00,0x00,}}, {0x6E73,2,{0x9C,0xAF,0x00,0x00,}}, {0x6E74,2,{0x9C,0xB0,0x00,0x00,}}, {0x6E75,2,{0x9C,0xB1,0x00,0x00,}}, {0x6E76,2,{0x9C,0xB2,0x00,0x00,}}, {0x6E77,2,{0x9C,0xB3,0x00,0x00,}}, {0x6E78,2,{0x9C,0xB4,0x00,0x00,}}, {0x6E79,2,{0x9C,0xB5,0x00,0x00,}}, {0x6E7A,2,{0x9C,0xB6,0x00,0x00,}}, {0x6E7B,2,{0x9C,0xB7,0x00,0x00,}}, {0x6E7C,2,{0x9C,0xB8,0x00,0x00,}}, {0x6E7D,2,{0x9C,0xB9,0x00,0x00,}}, {0x6E7E,2,{0xCD,0xE5,0x00,0x00,}}, {0x6E7F,2,{0xCA,0xAA,0x00,0x00,}}, {0x6E80,2,{0x9C,0xBA,0x00,0x00,}}, {0x6E81,2,{0x9C,0xBB,0x00,0x00,}}, {0x6E82,2,{0x9C,0xBC,0x00,0x00,}}, {0x6E83,2,{0xC0,0xA3,0x00,0x00,}}, {0x6E84,2,{0x9C,0xBD,0x00,0x00,}}, {0x6E85,2,{0xBD,0xA6,0x00,0x00,}}, {0x6E86,2,{0xE4,0xD3,0x00,0x00,}}, {0x6E87,2,{0x9C,0xBE,0x00,0x00,}}, {0x6E88,2,{0x9C,0xBF,0x00,0x00,}}, {0x6E89,2,{0xB8,0xC8,0x00,0x00,}}, {0x6E8A,2,{0x9C,0xC0,0x00,0x00,}}, {0x6E8B,2,{0x9C,0xC1,0x00,0x00,}}, {0x6E8C,2,{0x9C,0xC2,0x00,0x00,}}, {0x6E8D,2,{0x9C,0xC3,0x00,0x00,}}, {0x6E8E,2,{0x9C,0xC4,0x00,0x00,}}, {0x6E8F,2,{0xE4,0xE7,0x00,0x00,}}, {0x6E90,2,{0xD4,0xB4,0x00,0x00,}}, {0x6E91,2,{0x9C,0xC5,0x00,0x00,}}, {0x6E92,2,{0x9C,0xC6,0x00,0x00,}}, {0x6E93,2,{0x9C,0xC7,0x00,0x00,}}, {0x6E94,2,{0x9C,0xC8,0x00,0x00,}}, {0x6E95,2,{0x9C,0xC9,0x00,0x00,}}, {0x6E96,2,{0x9C,0xCA,0x00,0x00,}}, {0x6E97,2,{0x9C,0xCB,0x00,0x00,}}, {0x6E98,2,{0xE4,0xDB,0x00,0x00,}}, {0x6E99,2,{0x9C,0xCC,0x00,0x00,}}, {0x6E9A,2,{0x9C,0xCD,0x00,0x00,}}, {0x6E9B,2,{0x9C,0xCE,0x00,0x00,}}, {0x6E9C,2,{0xC1,0xEF,0x00,0x00,}}, {0x6E9D,2,{0x9C,0xCF,0x00,0x00,}}, {0x6E9E,2,{0x9C,0xD0,0x00,0x00,}}, {0x6E9F,2,{0xE4,0xE9,0x00,0x00,}}, {0x6EA0,2,{0x9C,0xD1,0x00,0x00,}}, {0x6EA1,2,{0x9C,0xD2,0x00,0x00,}}, {0x6EA2,2,{0xD2,0xE7,0x00,0x00,}}, {0x6EA3,2,{0x9C,0xD3,0x00,0x00,}}, {0x6EA4,2,{0x9C,0xD4,0x00,0x00,}}, {0x6EA5,2,{0xE4,0xDF,0x00,0x00,}}, {0x6EA6,2,{0x9C,0xD5,0x00,0x00,}}, {0x6EA7,2,{0xE4,0xE0,0x00,0x00,}}, {0x6EA8,2,{0x9C,0xD6,0x00,0x00,}}, {0x6EA9,2,{0x9C,0xD7,0x00,0x00,}}, {0x6EAA,2,{0xCF,0xAA,0x00,0x00,}}, {0x6EAB,2,{0x9C,0xD8,0x00,0x00,}}, {0x6EAC,2,{0x9C,0xD9,0x00,0x00,}}, {0x6EAD,2,{0x9C,0xDA,0x00,0x00,}}, {0x6EAE,2,{0x9C,0xDB,0x00,0x00,}}, {0x6EAF,2,{0xCB,0xDD,0x00,0x00,}}, {0x6EB0,2,{0x9C,0xDC,0x00,0x00,}}, {0x6EB1,2,{0xE4,0xDA,0x00,0x00,}}, {0x6EB2,2,{0xE4,0xD1,0x00,0x00,}}, {0x6EB3,2,{0x9C,0xDD,0x00,0x00,}}, {0x6EB4,2,{0xE4,0xE5,0x00,0x00,}}, {0x6EB5,2,{0x9C,0xDE,0x00,0x00,}}, {0x6EB6,2,{0xC8,0xDC,0x00,0x00,}}, {0x6EB7,2,{0xE4,0xE3,0x00,0x00,}}, {0x6EB8,2,{0x9C,0xDF,0x00,0x00,}}, {0x6EB9,2,{0x9C,0xE0,0x00,0x00,}}, {0x6EBA,2,{0xC4,0xE7,0x00,0x00,}}, {0x6EBB,2,{0xE4,0xE2,0x00,0x00,}}, {0x6EBC,2,{0x9C,0xE1,0x00,0x00,}}, {0x6EBD,2,{0xE4,0xE1,0x00,0x00,}}, {0x6EBE,2,{0x9C,0xE2,0x00,0x00,}}, {0x6EBF,2,{0x9C,0xE3,0x00,0x00,}}, {0x6EC0,2,{0x9C,0xE4,0x00,0x00,}}, {0x6EC1,2,{0xB3,0xFC,0x00,0x00,}}, {0x6EC2,2,{0xE4,0xE8,0x00,0x00,}}, {0x6EC3,2,{0x9C,0xE5,0x00,0x00,}}, {0x6EC4,2,{0x9C,0xE6,0x00,0x00,}}, {0x6EC5,2,{0x9C,0xE7,0x00,0x00,}}, {0x6EC6,2,{0x9C,0xE8,0x00,0x00,}}, {0x6EC7,2,{0xB5,0xE1,0x00,0x00,}}, {0x6EC8,2,{0x9C,0xE9,0x00,0x00,}}, {0x6EC9,2,{0x9C,0xEA,0x00,0x00,}}, {0x6ECA,2,{0x9C,0xEB,0x00,0x00,}}, {0x6ECB,2,{0xD7,0xCC,0x00,0x00,}}, {0x6ECC,2,{0x9C,0xEC,0x00,0x00,}}, {0x6ECD,2,{0x9C,0xED,0x00,0x00,}}, {0x6ECE,2,{0x9C,0xEE,0x00,0x00,}}, {0x6ECF,2,{0xE4,0xE6,0x00,0x00,}}, {0x6ED0,2,{0x9C,0xEF,0x00,0x00,}}, {0x6ED1,2,{0xBB,0xAC,0x00,0x00,}}, {0x6ED2,2,{0x9C,0xF0,0x00,0x00,}}, {0x6ED3,2,{0xD7,0xD2,0x00,0x00,}}, {0x6ED4,2,{0xCC,0xCF,0x00,0x00,}}, {0x6ED5,2,{0xEB,0xF8,0x00,0x00,}}, {0x6ED6,2,{0x9C,0xF1,0x00,0x00,}}, {0x6ED7,2,{0xE4,0xE4,0x00,0x00,}}, {0x6ED8,2,{0x9C,0xF2,0x00,0x00,}}, {0x6ED9,2,{0x9C,0xF3,0x00,0x00,}}, {0x6EDA,2,{0xB9,0xF6,0x00,0x00,}}, {0x6EDB,2,{0x9C,0xF4,0x00,0x00,}}, {0x6EDC,2,{0x9C,0xF5,0x00,0x00,}}, {0x6EDD,2,{0x9C,0xF6,0x00,0x00,}}, {0x6EDE,2,{0xD6,0xCD,0x00,0x00,}}, {0x6EDF,2,{0xE4,0xD9,0x00,0x00,}}, {0x6EE0,2,{0xE4,0xDC,0x00,0x00,}}, {0x6EE1,2,{0xC2,0xFA,0x00,0x00,}}, {0x6EE2,2,{0xE4,0xDE,0x00,0x00,}}, {0x6EE3,2,{0x9C,0xF7,0x00,0x00,}}, {0x6EE4,2,{0xC2,0xCB,0x00,0x00,}}, {0x6EE5,2,{0xC0,0xC4,0x00,0x00,}}, {0x6EE6,2,{0xC2,0xD0,0x00,0x00,}}, {0x6EE7,2,{0x9C,0xF8,0x00,0x00,}}, {0x6EE8,2,{0xB1,0xF5,0x00,0x00,}}, {0x6EE9,2,{0xCC,0xB2,0x00,0x00,}}, {0x6EEA,2,{0x9C,0xF9,0x00,0x00,}}, {0x6EEB,2,{0x9C,0xFA,0x00,0x00,}}, {0x6EEC,2,{0x9C,0xFB,0x00,0x00,}}, {0x6EED,2,{0x9C,0xFC,0x00,0x00,}}, {0x6EEE,2,{0x9C,0xFD,0x00,0x00,}}, {0x6EEF,2,{0x9C,0xFE,0x00,0x00,}}, {0x6EF0,2,{0x9D,0x40,0x00,0x00,}}, {0x6EF1,2,{0x9D,0x41,0x00,0x00,}}, {0x6EF2,2,{0x9D,0x42,0x00,0x00,}}, {0x6EF3,2,{0x9D,0x43,0x00,0x00,}}, {0x6EF4,2,{0xB5,0xCE,0x00,0x00,}}, {0x6EF5,2,{0x9D,0x44,0x00,0x00,}}, {0x6EF6,2,{0x9D,0x45,0x00,0x00,}}, {0x6EF7,2,{0x9D,0x46,0x00,0x00,}}, {0x6EF8,2,{0x9D,0x47,0x00,0x00,}}, {0x6EF9,2,{0xE4,0xEF,0x00,0x00,}}, {0x6EFA,2,{0x9D,0x48,0x00,0x00,}}, {0x6EFB,2,{0x9D,0x49,0x00,0x00,}}, {0x6EFC,2,{0x9D,0x4A,0x00,0x00,}}, {0x6EFD,2,{0x9D,0x4B,0x00,0x00,}}, {0x6EFE,2,{0x9D,0x4C,0x00,0x00,}}, {0x6EFF,2,{0x9D,0x4D,0x00,0x00,}}, {0x6F00,2,{0x9D,0x4E,0x00,0x00,}}, {0x6F01,2,{0x9D,0x4F,0x00,0x00,}}, {0x6F02,2,{0xC6,0xAF,0x00,0x00,}}, {0x6F03,2,{0x9D,0x50,0x00,0x00,}}, {0x6F04,2,{0x9D,0x51,0x00,0x00,}}, {0x6F05,2,{0x9D,0x52,0x00,0x00,}}, {0x6F06,2,{0xC6,0xE1,0x00,0x00,}}, {0x6F07,2,{0x9D,0x53,0x00,0x00,}}, {0x6F08,2,{0x9D,0x54,0x00,0x00,}}, {0x6F09,2,{0xE4,0xF5,0x00,0x00,}}, {0x6F0A,2,{0x9D,0x55,0x00,0x00,}}, {0x6F0B,2,{0x9D,0x56,0x00,0x00,}}, {0x6F0C,2,{0x9D,0x57,0x00,0x00,}}, {0x6F0D,2,{0x9D,0x58,0x00,0x00,}}, {0x6F0E,2,{0x9D,0x59,0x00,0x00,}}, {0x6F0F,2,{0xC2,0xA9,0x00,0x00,}}, {0x6F10,2,{0x9D,0x5A,0x00,0x00,}}, {0x6F11,2,{0x9D,0x5B,0x00,0x00,}}, {0x6F12,2,{0x9D,0x5C,0x00,0x00,}}, {0x6F13,2,{0xC0,0xEC,0x00,0x00,}}, {0x6F14,2,{0xD1,0xDD,0x00,0x00,}}, {0x6F15,2,{0xE4,0xEE,0x00,0x00,}}, {0x6F16,2,{0x9D,0x5D,0x00,0x00,}}, {0x6F17,2,{0x9D,0x5E,0x00,0x00,}}, {0x6F18,2,{0x9D,0x5F,0x00,0x00,}}, {0x6F19,2,{0x9D,0x60,0x00,0x00,}}, {0x6F1A,2,{0x9D,0x61,0x00,0x00,}}, {0x6F1B,2,{0x9D,0x62,0x00,0x00,}}, {0x6F1C,2,{0x9D,0x63,0x00,0x00,}}, {0x6F1D,2,{0x9D,0x64,0x00,0x00,}}, {0x6F1E,2,{0x9D,0x65,0x00,0x00,}}, {0x6F1F,2,{0x9D,0x66,0x00,0x00,}}, {0x6F20,2,{0xC4,0xAE,0x00,0x00,}}, {0x6F21,2,{0x9D,0x67,0x00,0x00,}}, {0x6F22,2,{0x9D,0x68,0x00,0x00,}}, {0x6F23,2,{0x9D,0x69,0x00,0x00,}}, {0x6F24,2,{0xE4,0xED,0x00,0x00,}}, {0x6F25,2,{0x9D,0x6A,0x00,0x00,}}, {0x6F26,2,{0x9D,0x6B,0x00,0x00,}}, {0x6F27,2,{0x9D,0x6C,0x00,0x00,}}, {0x6F28,2,{0x9D,0x6D,0x00,0x00,}}, {0x6F29,2,{0xE4,0xF6,0x00,0x00,}}, {0x6F2A,2,{0xE4,0xF4,0x00,0x00,}}, {0x6F2B,2,{0xC2,0xFE,0x00,0x00,}}, {0x6F2C,2,{0x9D,0x6E,0x00,0x00,}}, {0x6F2D,2,{0xE4,0xDD,0x00,0x00,}}, {0x6F2E,2,{0x9D,0x6F,0x00,0x00,}}, {0x6F2F,2,{0xE4,0xF0,0x00,0x00,}}, {0x6F30,2,{0x9D,0x70,0x00,0x00,}}, {0x6F31,2,{0xCA,0xFE,0x00,0x00,}}, {0x6F32,2,{0x9D,0x71,0x00,0x00,}}, {0x6F33,2,{0xD5,0xC4,0x00,0x00,}}, {0x6F34,2,{0x9D,0x72,0x00,0x00,}}, {0x6F35,2,{0x9D,0x73,0x00,0x00,}}, {0x6F36,2,{0xE4,0xF1,0x00,0x00,}}, {0x6F37,2,{0x9D,0x74,0x00,0x00,}}, {0x6F38,2,{0x9D,0x75,0x00,0x00,}}, {0x6F39,2,{0x9D,0x76,0x00,0x00,}}, {0x6F3A,2,{0x9D,0x77,0x00,0x00,}}, {0x6F3B,2,{0x9D,0x78,0x00,0x00,}}, {0x6F3C,2,{0x9D,0x79,0x00,0x00,}}, {0x6F3D,2,{0x9D,0x7A,0x00,0x00,}}, {0x6F3E,2,{0xD1,0xFA,0x00,0x00,}}, {0x6F3F,2,{0x9D,0x7B,0x00,0x00,}}, {0x6F40,2,{0x9D,0x7C,0x00,0x00,}}, {0x6F41,2,{0x9D,0x7D,0x00,0x00,}}, {0x6F42,2,{0x9D,0x7E,0x00,0x00,}}, {0x6F43,2,{0x9D,0x80,0x00,0x00,}}, {0x6F44,2,{0x9D,0x81,0x00,0x00,}}, {0x6F45,2,{0x9D,0x82,0x00,0x00,}}, {0x6F46,2,{0xE4,0xEB,0x00,0x00,}}, {0x6F47,2,{0xE4,0xEC,0x00,0x00,}}, {0x6F48,2,{0x9D,0x83,0x00,0x00,}}, {0x6F49,2,{0x9D,0x84,0x00,0x00,}}, {0x6F4A,2,{0x9D,0x85,0x00,0x00,}}, {0x6F4B,2,{0xE4,0xF2,0x00,0x00,}}, {0x6F4C,2,{0x9D,0x86,0x00,0x00,}}, {0x6F4D,2,{0xCE,0xAB,0x00,0x00,}}, {0x6F4E,2,{0x9D,0x87,0x00,0x00,}}, {0x6F4F,2,{0x9D,0x88,0x00,0x00,}}, {0x6F50,2,{0x9D,0x89,0x00,0x00,}}, {0x6F51,2,{0x9D,0x8A,0x00,0x00,}}, {0x6F52,2,{0x9D,0x8B,0x00,0x00,}}, {0x6F53,2,{0x9D,0x8C,0x00,0x00,}}, {0x6F54,2,{0x9D,0x8D,0x00,0x00,}}, {0x6F55,2,{0x9D,0x8E,0x00,0x00,}}, {0x6F56,2,{0x9D,0x8F,0x00,0x00,}}, {0x6F57,2,{0x9D,0x90,0x00,0x00,}}, {0x6F58,2,{0xC5,0xCB,0x00,0x00,}}, {0x6F59,2,{0x9D,0x91,0x00,0x00,}}, {0x6F5A,2,{0x9D,0x92,0x00,0x00,}}, {0x6F5B,2,{0x9D,0x93,0x00,0x00,}}, {0x6F5C,2,{0xC7,0xB1,0x00,0x00,}}, {0x6F5D,2,{0x9D,0x94,0x00,0x00,}}, {0x6F5E,2,{0xC2,0xBA,0x00,0x00,}}, {0x6F5F,2,{0x9D,0x95,0x00,0x00,}}, {0x6F60,2,{0x9D,0x96,0x00,0x00,}}, {0x6F61,2,{0x9D,0x97,0x00,0x00,}}, {0x6F62,2,{0xE4,0xEA,0x00,0x00,}}, {0x6F63,2,{0x9D,0x98,0x00,0x00,}}, {0x6F64,2,{0x9D,0x99,0x00,0x00,}}, {0x6F65,2,{0x9D,0x9A,0x00,0x00,}}, {0x6F66,2,{0xC1,0xCA,0x00,0x00,}}, {0x6F67,2,{0x9D,0x9B,0x00,0x00,}}, {0x6F68,2,{0x9D,0x9C,0x00,0x00,}}, {0x6F69,2,{0x9D,0x9D,0x00,0x00,}}, {0x6F6A,2,{0x9D,0x9E,0x00,0x00,}}, {0x6F6B,2,{0x9D,0x9F,0x00,0x00,}}, {0x6F6C,2,{0x9D,0xA0,0x00,0x00,}}, {0x6F6D,2,{0xCC,0xB6,0x00,0x00,}}, {0x6F6E,2,{0xB3,0xB1,0x00,0x00,}}, {0x6F6F,2,{0x9D,0xA1,0x00,0x00,}}, {0x6F70,2,{0x9D,0xA2,0x00,0x00,}}, {0x6F71,2,{0x9D,0xA3,0x00,0x00,}}, {0x6F72,2,{0xE4,0xFB,0x00,0x00,}}, {0x6F73,2,{0x9D,0xA4,0x00,0x00,}}, {0x6F74,2,{0xE4,0xF3,0x00,0x00,}}, {0x6F75,2,{0x9D,0xA5,0x00,0x00,}}, {0x6F76,2,{0x9D,0xA6,0x00,0x00,}}, {0x6F77,2,{0x9D,0xA7,0x00,0x00,}}, {0x6F78,2,{0xE4,0xFA,0x00,0x00,}}, {0x6F79,2,{0x9D,0xA8,0x00,0x00,}}, {0x6F7A,2,{0xE4,0xFD,0x00,0x00,}}, {0x6F7B,2,{0x9D,0xA9,0x00,0x00,}}, {0x6F7C,2,{0xE4,0xFC,0x00,0x00,}}, {0x6F7D,2,{0x9D,0xAA,0x00,0x00,}}, {0x6F7E,2,{0x9D,0xAB,0x00,0x00,}}, {0x6F7F,2,{0x9D,0xAC,0x00,0x00,}}, {0x6F80,2,{0x9D,0xAD,0x00,0x00,}}, {0x6F81,2,{0x9D,0xAE,0x00,0x00,}}, {0x6F82,2,{0x9D,0xAF,0x00,0x00,}}, {0x6F83,2,{0x9D,0xB0,0x00,0x00,}}, {0x6F84,2,{0xB3,0xCE,0x00,0x00,}}, {0x6F85,2,{0x9D,0xB1,0x00,0x00,}}, {0x6F86,2,{0x9D,0xB2,0x00,0x00,}}, {0x6F87,2,{0x9D,0xB3,0x00,0x00,}}, {0x6F88,2,{0xB3,0xBA,0x00,0x00,}}, {0x6F89,2,{0xE4,0xF7,0x00,0x00,}}, {0x6F8A,2,{0x9D,0xB4,0x00,0x00,}}, {0x6F8B,2,{0x9D,0xB5,0x00,0x00,}}, {0x6F8C,2,{0xE4,0xF9,0x00,0x00,}}, {0x6F8D,2,{0xE4,0xF8,0x00,0x00,}}, {0x6F8E,2,{0xC5,0xEC,0x00,0x00,}}, {0x6F8F,2,{0x9D,0xB6,0x00,0x00,}}, {0x6F90,2,{0x9D,0xB7,0x00,0x00,}}, {0x6F91,2,{0x9D,0xB8,0x00,0x00,}}, {0x6F92,2,{0x9D,0xB9,0x00,0x00,}}, {0x6F93,2,{0x9D,0xBA,0x00,0x00,}}, {0x6F94,2,{0x9D,0xBB,0x00,0x00,}}, {0x6F95,2,{0x9D,0xBC,0x00,0x00,}}, {0x6F96,2,{0x9D,0xBD,0x00,0x00,}}, {0x6F97,2,{0x9D,0xBE,0x00,0x00,}}, {0x6F98,2,{0x9D,0xBF,0x00,0x00,}}, {0x6F99,2,{0x9D,0xC0,0x00,0x00,}}, {0x6F9A,2,{0x9D,0xC1,0x00,0x00,}}, {0x6F9B,2,{0x9D,0xC2,0x00,0x00,}}, {0x6F9C,2,{0xC0,0xBD,0x00,0x00,}}, {0x6F9D,2,{0x9D,0xC3,0x00,0x00,}}, {0x6F9E,2,{0x9D,0xC4,0x00,0x00,}}, {0x6F9F,2,{0x9D,0xC5,0x00,0x00,}}, {0x6FA0,2,{0x9D,0xC6,0x00,0x00,}}, {0x6FA1,2,{0xD4,0xE8,0x00,0x00,}}, {0x6FA2,2,{0x9D,0xC7,0x00,0x00,}}, {0x6FA3,2,{0x9D,0xC8,0x00,0x00,}}, {0x6FA4,2,{0x9D,0xC9,0x00,0x00,}}, {0x6FA5,2,{0x9D,0xCA,0x00,0x00,}}, {0x6FA6,2,{0x9D,0xCB,0x00,0x00,}}, {0x6FA7,2,{0xE5,0xA2,0x00,0x00,}}, {0x6FA8,2,{0x9D,0xCC,0x00,0x00,}}, {0x6FA9,2,{0x9D,0xCD,0x00,0x00,}}, {0x6FAA,2,{0x9D,0xCE,0x00,0x00,}}, {0x6FAB,2,{0x9D,0xCF,0x00,0x00,}}, {0x6FAC,2,{0x9D,0xD0,0x00,0x00,}}, {0x6FAD,2,{0x9D,0xD1,0x00,0x00,}}, {0x6FAE,2,{0x9D,0xD2,0x00,0x00,}}, {0x6FAF,2,{0x9D,0xD3,0x00,0x00,}}, {0x6FB0,2,{0x9D,0xD4,0x00,0x00,}}, {0x6FB1,2,{0x9D,0xD5,0x00,0x00,}}, {0x6FB2,2,{0x9D,0xD6,0x00,0x00,}}, {0x6FB3,2,{0xB0,0xC4,0x00,0x00,}}, {0x6FB4,2,{0x9D,0xD7,0x00,0x00,}}, {0x6FB5,2,{0x9D,0xD8,0x00,0x00,}}, {0x6FB6,2,{0xE5,0xA4,0x00,0x00,}}, {0x6FB7,2,{0x9D,0xD9,0x00,0x00,}}, {0x6FB8,2,{0x9D,0xDA,0x00,0x00,}}, {0x6FB9,2,{0xE5,0xA3,0x00,0x00,}}, {0x6FBA,2,{0x9D,0xDB,0x00,0x00,}}, {0x6FBB,2,{0x9D,0xDC,0x00,0x00,}}, {0x6FBC,2,{0x9D,0xDD,0x00,0x00,}}, {0x6FBD,2,{0x9D,0xDE,0x00,0x00,}}, {0x6FBE,2,{0x9D,0xDF,0x00,0x00,}}, {0x6FBF,2,{0x9D,0xE0,0x00,0x00,}}, {0x6FC0,2,{0xBC,0xA4,0x00,0x00,}}, {0x6FC1,2,{0x9D,0xE1,0x00,0x00,}}, {0x6FC2,2,{0xE5,0xA5,0x00,0x00,}}, {0x6FC3,2,{0x9D,0xE2,0x00,0x00,}}, {0x6FC4,2,{0x9D,0xE3,0x00,0x00,}}, {0x6FC5,2,{0x9D,0xE4,0x00,0x00,}}, {0x6FC6,2,{0x9D,0xE5,0x00,0x00,}}, {0x6FC7,2,{0x9D,0xE6,0x00,0x00,}}, {0x6FC8,2,{0x9D,0xE7,0x00,0x00,}}, {0x6FC9,2,{0xE5,0xA1,0x00,0x00,}}, {0x6FCA,2,{0x9D,0xE8,0x00,0x00,}}, {0x6FCB,2,{0x9D,0xE9,0x00,0x00,}}, {0x6FCC,2,{0x9D,0xEA,0x00,0x00,}}, {0x6FCD,2,{0x9D,0xEB,0x00,0x00,}}, {0x6FCE,2,{0x9D,0xEC,0x00,0x00,}}, {0x6FCF,2,{0x9D,0xED,0x00,0x00,}}, {0x6FD0,2,{0x9D,0xEE,0x00,0x00,}}, {0x6FD1,2,{0xE4,0xFE,0x00,0x00,}}, {0x6FD2,2,{0xB1,0xF4,0x00,0x00,}}, {0x6FD3,2,{0x9D,0xEF,0x00,0x00,}}, {0x6FD4,2,{0x9D,0xF0,0x00,0x00,}}, {0x6FD5,2,{0x9D,0xF1,0x00,0x00,}}, {0x6FD6,2,{0x9D,0xF2,0x00,0x00,}}, {0x6FD7,2,{0x9D,0xF3,0x00,0x00,}}, {0x6FD8,2,{0x9D,0xF4,0x00,0x00,}}, {0x6FD9,2,{0x9D,0xF5,0x00,0x00,}}, {0x6FDA,2,{0x9D,0xF6,0x00,0x00,}}, {0x6FDB,2,{0x9D,0xF7,0x00,0x00,}}, {0x6FDC,2,{0x9D,0xF8,0x00,0x00,}}, {0x6FDD,2,{0x9D,0xF9,0x00,0x00,}}, {0x6FDE,2,{0xE5,0xA8,0x00,0x00,}}, {0x6FDF,2,{0x9D,0xFA,0x00,0x00,}}, {0x6FE0,2,{0xE5,0xA9,0x00,0x00,}}, {0x6FE1,2,{0xE5,0xA6,0x00,0x00,}}, {0x6FE2,2,{0x9D,0xFB,0x00,0x00,}}, {0x6FE3,2,{0x9D,0xFC,0x00,0x00,}}, {0x6FE4,2,{0x9D,0xFD,0x00,0x00,}}, {0x6FE5,2,{0x9D,0xFE,0x00,0x00,}}, {0x6FE6,2,{0x9E,0x40,0x00,0x00,}}, {0x6FE7,2,{0x9E,0x41,0x00,0x00,}}, {0x6FE8,2,{0x9E,0x42,0x00,0x00,}}, {0x6FE9,2,{0x9E,0x43,0x00,0x00,}}, {0x6FEA,2,{0x9E,0x44,0x00,0x00,}}, {0x6FEB,2,{0x9E,0x45,0x00,0x00,}}, {0x6FEC,2,{0x9E,0x46,0x00,0x00,}}, {0x6FED,2,{0x9E,0x47,0x00,0x00,}}, {0x6FEE,2,{0xE5,0xA7,0x00,0x00,}}, {0x6FEF,2,{0xE5,0xAA,0x00,0x00,}}, {0x6FF0,2,{0x9E,0x48,0x00,0x00,}}, {0x6FF1,2,{0x9E,0x49,0x00,0x00,}}, {0x6FF2,2,{0x9E,0x4A,0x00,0x00,}}, {0x6FF3,2,{0x9E,0x4B,0x00,0x00,}}, {0x6FF4,2,{0x9E,0x4C,0x00,0x00,}}, {0x6FF5,2,{0x9E,0x4D,0x00,0x00,}}, {0x6FF6,2,{0x9E,0x4E,0x00,0x00,}}, {0x6FF7,2,{0x9E,0x4F,0x00,0x00,}}, {0x6FF8,2,{0x9E,0x50,0x00,0x00,}}, {0x6FF9,2,{0x9E,0x51,0x00,0x00,}}, {0x6FFA,2,{0x9E,0x52,0x00,0x00,}}, {0x6FFB,2,{0x9E,0x53,0x00,0x00,}}, {0x6FFC,2,{0x9E,0x54,0x00,0x00,}}, {0x6FFD,2,{0x9E,0x55,0x00,0x00,}}, {0x6FFE,2,{0x9E,0x56,0x00,0x00,}}, {0x6FFF,2,{0x9E,0x57,0x00,0x00,}}, {0x7000,2,{0x9E,0x58,0x00,0x00,}}, {0x7001,2,{0x9E,0x59,0x00,0x00,}}, {0x7002,2,{0x9E,0x5A,0x00,0x00,}}, {0x7003,2,{0x9E,0x5B,0x00,0x00,}}, {0x7004,2,{0x9E,0x5C,0x00,0x00,}}, {0x7005,2,{0x9E,0x5D,0x00,0x00,}}, {0x7006,2,{0x9E,0x5E,0x00,0x00,}}, {0x7007,2,{0x9E,0x5F,0x00,0x00,}}, {0x7008,2,{0x9E,0x60,0x00,0x00,}}, {0x7009,2,{0x9E,0x61,0x00,0x00,}}, {0x700A,2,{0x9E,0x62,0x00,0x00,}}, {0x700B,2,{0x9E,0x63,0x00,0x00,}}, {0x700C,2,{0x9E,0x64,0x00,0x00,}}, {0x700D,2,{0x9E,0x65,0x00,0x00,}}, {0x700E,2,{0x9E,0x66,0x00,0x00,}}, {0x700F,2,{0x9E,0x67,0x00,0x00,}}, {0x7010,2,{0x9E,0x68,0x00,0x00,}}, {0x7011,2,{0xC6,0xD9,0x00,0x00,}}, {0x7012,2,{0x9E,0x69,0x00,0x00,}}, {0x7013,2,{0x9E,0x6A,0x00,0x00,}}, {0x7014,2,{0x9E,0x6B,0x00,0x00,}}, {0x7015,2,{0x9E,0x6C,0x00,0x00,}}, {0x7016,2,{0x9E,0x6D,0x00,0x00,}}, {0x7017,2,{0x9E,0x6E,0x00,0x00,}}, {0x7018,2,{0x9E,0x6F,0x00,0x00,}}, {0x7019,2,{0x9E,0x70,0x00,0x00,}}, {0x701A,2,{0xE5,0xAB,0x00,0x00,}}, {0x701B,2,{0xE5,0xAD,0x00,0x00,}}, {0x701C,2,{0x9E,0x71,0x00,0x00,}}, {0x701D,2,{0x9E,0x72,0x00,0x00,}}, {0x701E,2,{0x9E,0x73,0x00,0x00,}}, {0x701F,2,{0x9E,0x74,0x00,0x00,}}, {0x7020,2,{0x9E,0x75,0x00,0x00,}}, {0x7021,2,{0x9E,0x76,0x00,0x00,}}, {0x7022,2,{0x9E,0x77,0x00,0x00,}}, {0x7023,2,{0xE5,0xAC,0x00,0x00,}}, {0x7024,2,{0x9E,0x78,0x00,0x00,}}, {0x7025,2,{0x9E,0x79,0x00,0x00,}}, {0x7026,2,{0x9E,0x7A,0x00,0x00,}}, {0x7027,2,{0x9E,0x7B,0x00,0x00,}}, {0x7028,2,{0x9E,0x7C,0x00,0x00,}}, {0x7029,2,{0x9E,0x7D,0x00,0x00,}}, {0x702A,2,{0x9E,0x7E,0x00,0x00,}}, {0x702B,2,{0x9E,0x80,0x00,0x00,}}, {0x702C,2,{0x9E,0x81,0x00,0x00,}}, {0x702D,2,{0x9E,0x82,0x00,0x00,}}, {0x702E,2,{0x9E,0x83,0x00,0x00,}}, {0x702F,2,{0x9E,0x84,0x00,0x00,}}, {0x7030,2,{0x9E,0x85,0x00,0x00,}}, {0x7031,2,{0x9E,0x86,0x00,0x00,}}, {0x7032,2,{0x9E,0x87,0x00,0x00,}}, {0x7033,2,{0x9E,0x88,0x00,0x00,}}, {0x7034,2,{0x9E,0x89,0x00,0x00,}}, {0x7035,2,{0xE5,0xAF,0x00,0x00,}}, {0x7036,2,{0x9E,0x8A,0x00,0x00,}}, {0x7037,2,{0x9E,0x8B,0x00,0x00,}}, {0x7038,2,{0x9E,0x8C,0x00,0x00,}}, {0x7039,2,{0xE5,0xAE,0x00,0x00,}}, {0x703A,2,{0x9E,0x8D,0x00,0x00,}}, {0x703B,2,{0x9E,0x8E,0x00,0x00,}}, {0x703C,2,{0x9E,0x8F,0x00,0x00,}}, {0x703D,2,{0x9E,0x90,0x00,0x00,}}, {0x703E,2,{0x9E,0x91,0x00,0x00,}}, {0x703F,2,{0x9E,0x92,0x00,0x00,}}, {0x7040,2,{0x9E,0x93,0x00,0x00,}}, {0x7041,2,{0x9E,0x94,0x00,0x00,}}, {0x7042,2,{0x9E,0x95,0x00,0x00,}}, {0x7043,2,{0x9E,0x96,0x00,0x00,}}, {0x7044,2,{0x9E,0x97,0x00,0x00,}}, {0x7045,2,{0x9E,0x98,0x00,0x00,}}, {0x7046,2,{0x9E,0x99,0x00,0x00,}}, {0x7047,2,{0x9E,0x9A,0x00,0x00,}}, {0x7048,2,{0x9E,0x9B,0x00,0x00,}}, {0x7049,2,{0x9E,0x9C,0x00,0x00,}}, {0x704A,2,{0x9E,0x9D,0x00,0x00,}}, {0x704B,2,{0x9E,0x9E,0x00,0x00,}}, {0x704C,2,{0xB9,0xE0,0x00,0x00,}}, {0x704D,2,{0x9E,0x9F,0x00,0x00,}}, {0x704E,2,{0x9E,0xA0,0x00,0x00,}}, {0x704F,2,{0xE5,0xB0,0x00,0x00,}}, {0x7050,2,{0x9E,0xA1,0x00,0x00,}}, {0x7051,2,{0x9E,0xA2,0x00,0x00,}}, {0x7052,2,{0x9E,0xA3,0x00,0x00,}}, {0x7053,2,{0x9E,0xA4,0x00,0x00,}}, {0x7054,2,{0x9E,0xA5,0x00,0x00,}}, {0x7055,2,{0x9E,0xA6,0x00,0x00,}}, {0x7056,2,{0x9E,0xA7,0x00,0x00,}}, {0x7057,2,{0x9E,0xA8,0x00,0x00,}}, {0x7058,2,{0x9E,0xA9,0x00,0x00,}}, {0x7059,2,{0x9E,0xAA,0x00,0x00,}}, {0x705A,2,{0x9E,0xAB,0x00,0x00,}}, {0x705B,2,{0x9E,0xAC,0x00,0x00,}}, {0x705C,2,{0x9E,0xAD,0x00,0x00,}}, {0x705D,2,{0x9E,0xAE,0x00,0x00,}}, {0x705E,2,{0xE5,0xB1,0x00,0x00,}}, {0x705F,2,{0x9E,0xAF,0x00,0x00,}}, {0x7060,2,{0x9E,0xB0,0x00,0x00,}}, {0x7061,2,{0x9E,0xB1,0x00,0x00,}}, {0x7062,2,{0x9E,0xB2,0x00,0x00,}}, {0x7063,2,{0x9E,0xB3,0x00,0x00,}}, {0x7064,2,{0x9E,0xB4,0x00,0x00,}}, {0x7065,2,{0x9E,0xB5,0x00,0x00,}}, {0x7066,2,{0x9E,0xB6,0x00,0x00,}}, {0x7067,2,{0x9E,0xB7,0x00,0x00,}}, {0x7068,2,{0x9E,0xB8,0x00,0x00,}}, {0x7069,2,{0x9E,0xB9,0x00,0x00,}}, {0x706A,2,{0x9E,0xBA,0x00,0x00,}}, {0x706B,2,{0xBB,0xF0,0x00,0x00,}}, {0x706C,2,{0xEC,0xE1,0x00,0x00,}}, {0x706D,2,{0xC3,0xF0,0x00,0x00,}}, {0x706E,2,{0x9E,0xBB,0x00,0x00,}}, {0x706F,2,{0xB5,0xC6,0x00,0x00,}}, {0x7070,2,{0xBB,0xD2,0x00,0x00,}}, {0x7071,2,{0x9E,0xBC,0x00,0x00,}}, {0x7072,2,{0x9E,0xBD,0x00,0x00,}}, {0x7073,2,{0x9E,0xBE,0x00,0x00,}}, {0x7074,2,{0x9E,0xBF,0x00,0x00,}}, {0x7075,2,{0xC1,0xE9,0x00,0x00,}}, {0x7076,2,{0xD4,0xEE,0x00,0x00,}}, {0x7077,2,{0x9E,0xC0,0x00,0x00,}}, {0x7078,2,{0xBE,0xC4,0x00,0x00,}}, {0x7079,2,{0x9E,0xC1,0x00,0x00,}}, {0x707A,2,{0x9E,0xC2,0x00,0x00,}}, {0x707B,2,{0x9E,0xC3,0x00,0x00,}}, {0x707C,2,{0xD7,0xC6,0x00,0x00,}}, {0x707D,2,{0x9E,0xC4,0x00,0x00,}}, {0x707E,2,{0xD4,0xD6,0x00,0x00,}}, {0x707F,2,{0xB2,0xD3,0x00,0x00,}}, {0x7080,2,{0xEC,0xBE,0x00,0x00,}}, {0x7081,2,{0x9E,0xC5,0x00,0x00,}}, {0x7082,2,{0x9E,0xC6,0x00,0x00,}}, {0x7083,2,{0x9E,0xC7,0x00,0x00,}}, {0x7084,2,{0x9E,0xC8,0x00,0x00,}}, {0x7085,2,{0xEA,0xC1,0x00,0x00,}}, {0x7086,2,{0x9E,0xC9,0x00,0x00,}}, {0x7087,2,{0x9E,0xCA,0x00,0x00,}}, {0x7088,2,{0x9E,0xCB,0x00,0x00,}}, {0x7089,2,{0xC2,0xAF,0x00,0x00,}}, {0x708A,2,{0xB4,0xB6,0x00,0x00,}}, {0x708B,2,{0x9E,0xCC,0x00,0x00,}}, {0x708C,2,{0x9E,0xCD,0x00,0x00,}}, {0x708D,2,{0x9E,0xCE,0x00,0x00,}}, {0x708E,2,{0xD1,0xD7,0x00,0x00,}}, {0x708F,2,{0x9E,0xCF,0x00,0x00,}}, {0x7090,2,{0x9E,0xD0,0x00,0x00,}}, {0x7091,2,{0x9E,0xD1,0x00,0x00,}}, {0x7092,2,{0xB3,0xB4,0x00,0x00,}}, {0x7093,2,{0x9E,0xD2,0x00,0x00,}}, {0x7094,2,{0xC8,0xB2,0x00,0x00,}}, {0x7095,2,{0xBF,0xBB,0x00,0x00,}}, {0x7096,2,{0xEC,0xC0,0x00,0x00,}}, {0x7097,2,{0x9E,0xD3,0x00,0x00,}}, {0x7098,2,{0x9E,0xD4,0x00,0x00,}}, {0x7099,2,{0xD6,0xCB,0x00,0x00,}}, {0x709A,2,{0x9E,0xD5,0x00,0x00,}}, {0x709B,2,{0x9E,0xD6,0x00,0x00,}}, {0x709C,2,{0xEC,0xBF,0x00,0x00,}}, {0x709D,2,{0xEC,0xC1,0x00,0x00,}}, {0x709E,2,{0x9E,0xD7,0x00,0x00,}}, {0x709F,2,{0x9E,0xD8,0x00,0x00,}}, {0x70A0,2,{0x9E,0xD9,0x00,0x00,}}, {0x70A1,2,{0x9E,0xDA,0x00,0x00,}}, {0x70A2,2,{0x9E,0xDB,0x00,0x00,}}, {0x70A3,2,{0x9E,0xDC,0x00,0x00,}}, {0x70A4,2,{0x9E,0xDD,0x00,0x00,}}, {0x70A5,2,{0x9E,0xDE,0x00,0x00,}}, {0x70A6,2,{0x9E,0xDF,0x00,0x00,}}, {0x70A7,2,{0x9E,0xE0,0x00,0x00,}}, {0x70A8,2,{0x9E,0xE1,0x00,0x00,}}, {0x70A9,2,{0x9E,0xE2,0x00,0x00,}}, {0x70AA,2,{0x9E,0xE3,0x00,0x00,}}, {0x70AB,2,{0xEC,0xC5,0x00,0x00,}}, {0x70AC,2,{0xBE,0xE6,0x00,0x00,}}, {0x70AD,2,{0xCC,0xBF,0x00,0x00,}}, {0x70AE,2,{0xC5,0xDA,0x00,0x00,}}, {0x70AF,2,{0xBE,0xBC,0x00,0x00,}}, {0x70B0,2,{0x9E,0xE4,0x00,0x00,}}, {0x70B1,2,{0xEC,0xC6,0x00,0x00,}}, {0x70B2,2,{0x9E,0xE5,0x00,0x00,}}, {0x70B3,2,{0xB1,0xFE,0x00,0x00,}}, {0x70B4,2,{0x9E,0xE6,0x00,0x00,}}, {0x70B5,2,{0x9E,0xE7,0x00,0x00,}}, {0x70B6,2,{0x9E,0xE8,0x00,0x00,}}, {0x70B7,2,{0xEC,0xC4,0x00,0x00,}}, {0x70B8,2,{0xD5,0xA8,0x00,0x00,}}, {0x70B9,2,{0xB5,0xE3,0x00,0x00,}}, {0x70BA,2,{0x9E,0xE9,0x00,0x00,}}, {0x70BB,2,{0xEC,0xC2,0x00,0x00,}}, {0x70BC,2,{0xC1,0xB6,0x00,0x00,}}, {0x70BD,2,{0xB3,0xE3,0x00,0x00,}}, {0x70BE,2,{0x9E,0xEA,0x00,0x00,}}, {0x70BF,2,{0x9E,0xEB,0x00,0x00,}}, {0x70C0,2,{0xEC,0xC3,0x00,0x00,}}, {0x70C1,2,{0xCB,0xB8,0x00,0x00,}}, {0x70C2,2,{0xC0,0xC3,0x00,0x00,}}, {0x70C3,2,{0xCC,0xFE,0x00,0x00,}}, {0x70C4,2,{0x9E,0xEC,0x00,0x00,}}, {0x70C5,2,{0x9E,0xED,0x00,0x00,}}, {0x70C6,2,{0x9E,0xEE,0x00,0x00,}}, {0x70C7,2,{0x9E,0xEF,0x00,0x00,}}, {0x70C8,2,{0xC1,0xD2,0x00,0x00,}}, {0x70C9,2,{0x9E,0xF0,0x00,0x00,}}, {0x70CA,2,{0xEC,0xC8,0x00,0x00,}}, {0x70CB,2,{0x9E,0xF1,0x00,0x00,}}, {0x70CC,2,{0x9E,0xF2,0x00,0x00,}}, {0x70CD,2,{0x9E,0xF3,0x00,0x00,}}, {0x70CE,2,{0x9E,0xF4,0x00,0x00,}}, {0x70CF,2,{0x9E,0xF5,0x00,0x00,}}, {0x70D0,2,{0x9E,0xF6,0x00,0x00,}}, {0x70D1,2,{0x9E,0xF7,0x00,0x00,}}, {0x70D2,2,{0x9E,0xF8,0x00,0x00,}}, {0x70D3,2,{0x9E,0xF9,0x00,0x00,}}, {0x70D4,2,{0x9E,0xFA,0x00,0x00,}}, {0x70D5,2,{0x9E,0xFB,0x00,0x00,}}, {0x70D6,2,{0x9E,0xFC,0x00,0x00,}}, {0x70D7,2,{0x9E,0xFD,0x00,0x00,}}, {0x70D8,2,{0xBA,0xE6,0x00,0x00,}}, {0x70D9,2,{0xC0,0xD3,0x00,0x00,}}, {0x70DA,2,{0x9E,0xFE,0x00,0x00,}}, {0x70DB,2,{0xD6,0xF2,0x00,0x00,}}, {0x70DC,2,{0x9F,0x40,0x00,0x00,}}, {0x70DD,2,{0x9F,0x41,0x00,0x00,}}, {0x70DE,2,{0x9F,0x42,0x00,0x00,}}, {0x70DF,2,{0xD1,0xCC,0x00,0x00,}}, {0x70E0,2,{0x9F,0x43,0x00,0x00,}}, {0x70E1,2,{0x9F,0x44,0x00,0x00,}}, {0x70E2,2,{0x9F,0x45,0x00,0x00,}}, {0x70E3,2,{0x9F,0x46,0x00,0x00,}}, {0x70E4,2,{0xBF,0xBE,0x00,0x00,}}, {0x70E5,2,{0x9F,0x47,0x00,0x00,}}, {0x70E6,2,{0xB7,0xB3,0x00,0x00,}}, {0x70E7,2,{0xC9,0xD5,0x00,0x00,}}, {0x70E8,2,{0xEC,0xC7,0x00,0x00,}}, {0x70E9,2,{0xBB,0xE2,0x00,0x00,}}, {0x70EA,2,{0x9F,0x48,0x00,0x00,}}, {0x70EB,2,{0xCC,0xCC,0x00,0x00,}}, {0x70EC,2,{0xBD,0xFD,0x00,0x00,}}, {0x70ED,2,{0xC8,0xC8,0x00,0x00,}}, {0x70EE,2,{0x9F,0x49,0x00,0x00,}}, {0x70EF,2,{0xCF,0xA9,0x00,0x00,}}, {0x70F0,2,{0x9F,0x4A,0x00,0x00,}}, {0x70F1,2,{0x9F,0x4B,0x00,0x00,}}, {0x70F2,2,{0x9F,0x4C,0x00,0x00,}}, {0x70F3,2,{0x9F,0x4D,0x00,0x00,}}, {0x70F4,2,{0x9F,0x4E,0x00,0x00,}}, {0x70F5,2,{0x9F,0x4F,0x00,0x00,}}, {0x70F6,2,{0x9F,0x50,0x00,0x00,}}, {0x70F7,2,{0xCD,0xE9,0x00,0x00,}}, {0x70F8,2,{0x9F,0x51,0x00,0x00,}}, {0x70F9,2,{0xC5,0xEB,0x00,0x00,}}, {0x70FA,2,{0x9F,0x52,0x00,0x00,}}, {0x70FB,2,{0x9F,0x53,0x00,0x00,}}, {0x70FC,2,{0x9F,0x54,0x00,0x00,}}, {0x70FD,2,{0xB7,0xE9,0x00,0x00,}}, {0x70FE,2,{0x9F,0x55,0x00,0x00,}}, {0x70FF,2,{0x9F,0x56,0x00,0x00,}}, {0x7100,2,{0x9F,0x57,0x00,0x00,}}, {0x7101,2,{0x9F,0x58,0x00,0x00,}}, {0x7102,2,{0x9F,0x59,0x00,0x00,}}, {0x7103,2,{0x9F,0x5A,0x00,0x00,}}, {0x7104,2,{0x9F,0x5B,0x00,0x00,}}, {0x7105,2,{0x9F,0x5C,0x00,0x00,}}, {0x7106,2,{0x9F,0x5D,0x00,0x00,}}, {0x7107,2,{0x9F,0x5E,0x00,0x00,}}, {0x7108,2,{0x9F,0x5F,0x00,0x00,}}, {0x7109,2,{0xD1,0xC9,0x00,0x00,}}, {0x710A,2,{0xBA,0xB8,0x00,0x00,}}, {0x710B,2,{0x9F,0x60,0x00,0x00,}}, {0x710C,2,{0x9F,0x61,0x00,0x00,}}, {0x710D,2,{0x9F,0x62,0x00,0x00,}}, {0x710E,2,{0x9F,0x63,0x00,0x00,}}, {0x710F,2,{0x9F,0x64,0x00,0x00,}}, {0x7110,2,{0xEC,0xC9,0x00,0x00,}}, {0x7111,2,{0x9F,0x65,0x00,0x00,}}, {0x7112,2,{0x9F,0x66,0x00,0x00,}}, {0x7113,2,{0xEC,0xCA,0x00,0x00,}}, {0x7114,2,{0x9F,0x67,0x00,0x00,}}, {0x7115,2,{0xBB,0xC0,0x00,0x00,}}, {0x7116,2,{0xEC,0xCB,0x00,0x00,}}, {0x7117,2,{0x9F,0x68,0x00,0x00,}}, {0x7118,2,{0xEC,0xE2,0x00,0x00,}}, {0x7119,2,{0xB1,0xBA,0x00,0x00,}}, {0x711A,2,{0xB7,0xD9,0x00,0x00,}}, {0x711B,2,{0x9F,0x69,0x00,0x00,}}, {0x711C,2,{0x9F,0x6A,0x00,0x00,}}, {0x711D,2,{0x9F,0x6B,0x00,0x00,}}, {0x711E,2,{0x9F,0x6C,0x00,0x00,}}, {0x711F,2,{0x9F,0x6D,0x00,0x00,}}, {0x7120,2,{0x9F,0x6E,0x00,0x00,}}, {0x7121,2,{0x9F,0x6F,0x00,0x00,}}, {0x7122,2,{0x9F,0x70,0x00,0x00,}}, {0x7123,2,{0x9F,0x71,0x00,0x00,}}, {0x7124,2,{0x9F,0x72,0x00,0x00,}}, {0x7125,2,{0x9F,0x73,0x00,0x00,}}, {0x7126,2,{0xBD,0xB9,0x00,0x00,}}, {0x7127,2,{0x9F,0x74,0x00,0x00,}}, {0x7128,2,{0x9F,0x75,0x00,0x00,}}, {0x7129,2,{0x9F,0x76,0x00,0x00,}}, {0x712A,2,{0x9F,0x77,0x00,0x00,}}, {0x712B,2,{0x9F,0x78,0x00,0x00,}}, {0x712C,2,{0x9F,0x79,0x00,0x00,}}, {0x712D,2,{0x9F,0x7A,0x00,0x00,}}, {0x712E,2,{0x9F,0x7B,0x00,0x00,}}, {0x712F,2,{0xEC,0xCC,0x00,0x00,}}, {0x7130,2,{0xD1,0xE6,0x00,0x00,}}, {0x7131,2,{0xEC,0xCD,0x00,0x00,}}, {0x7132,2,{0x9F,0x7C,0x00,0x00,}}, {0x7133,2,{0x9F,0x7D,0x00,0x00,}}, {0x7134,2,{0x9F,0x7E,0x00,0x00,}}, {0x7135,2,{0x9F,0x80,0x00,0x00,}}, {0x7136,2,{0xC8,0xBB,0x00,0x00,}}, {0x7137,2,{0x9F,0x81,0x00,0x00,}}, {0x7138,2,{0x9F,0x82,0x00,0x00,}}, {0x7139,2,{0x9F,0x83,0x00,0x00,}}, {0x713A,2,{0x9F,0x84,0x00,0x00,}}, {0x713B,2,{0x9F,0x85,0x00,0x00,}}, {0x713C,2,{0x9F,0x86,0x00,0x00,}}, {0x713D,2,{0x9F,0x87,0x00,0x00,}}, {0x713E,2,{0x9F,0x88,0x00,0x00,}}, {0x713F,2,{0x9F,0x89,0x00,0x00,}}, {0x7140,2,{0x9F,0x8A,0x00,0x00,}}, {0x7141,2,{0x9F,0x8B,0x00,0x00,}}, {0x7142,2,{0x9F,0x8C,0x00,0x00,}}, {0x7143,2,{0x9F,0x8D,0x00,0x00,}}, {0x7144,2,{0x9F,0x8E,0x00,0x00,}}, {0x7145,2,{0xEC,0xD1,0x00,0x00,}}, {0x7146,2,{0x9F,0x8F,0x00,0x00,}}, {0x7147,2,{0x9F,0x90,0x00,0x00,}}, {0x7148,2,{0x9F,0x91,0x00,0x00,}}, {0x7149,2,{0x9F,0x92,0x00,0x00,}}, {0x714A,2,{0xEC,0xD3,0x00,0x00,}}, {0x714B,2,{0x9F,0x93,0x00,0x00,}}, {0x714C,2,{0xBB,0xCD,0x00,0x00,}}, {0x714D,2,{0x9F,0x94,0x00,0x00,}}, {0x714E,2,{0xBC,0xE5,0x00,0x00,}}, {0x714F,2,{0x9F,0x95,0x00,0x00,}}, {0x7150,2,{0x9F,0x96,0x00,0x00,}}, {0x7151,2,{0x9F,0x97,0x00,0x00,}}, {0x7152,2,{0x9F,0x98,0x00,0x00,}}, {0x7153,2,{0x9F,0x99,0x00,0x00,}}, {0x7154,2,{0x9F,0x9A,0x00,0x00,}}, {0x7155,2,{0x9F,0x9B,0x00,0x00,}}, {0x7156,2,{0x9F,0x9C,0x00,0x00,}}, {0x7157,2,{0x9F,0x9D,0x00,0x00,}}, {0x7158,2,{0x9F,0x9E,0x00,0x00,}}, {0x7159,2,{0x9F,0x9F,0x00,0x00,}}, {0x715A,2,{0x9F,0xA0,0x00,0x00,}}, {0x715B,2,{0x9F,0xA1,0x00,0x00,}}, {0x715C,2,{0xEC,0xCF,0x00,0x00,}}, {0x715D,2,{0x9F,0xA2,0x00,0x00,}}, {0x715E,2,{0xC9,0xB7,0x00,0x00,}}, {0x715F,2,{0x9F,0xA3,0x00,0x00,}}, {0x7160,2,{0x9F,0xA4,0x00,0x00,}}, {0x7161,2,{0x9F,0xA5,0x00,0x00,}}, {0x7162,2,{0x9F,0xA6,0x00,0x00,}}, {0x7163,2,{0x9F,0xA7,0x00,0x00,}}, {0x7164,2,{0xC3,0xBA,0x00,0x00,}}, {0x7165,2,{0x9F,0xA8,0x00,0x00,}}, {0x7166,2,{0xEC,0xE3,0x00,0x00,}}, {0x7167,2,{0xD5,0xD5,0x00,0x00,}}, {0x7168,2,{0xEC,0xD0,0x00,0x00,}}, {0x7169,2,{0x9F,0xA9,0x00,0x00,}}, {0x716A,2,{0x9F,0xAA,0x00,0x00,}}, {0x716B,2,{0x9F,0xAB,0x00,0x00,}}, {0x716C,2,{0x9F,0xAC,0x00,0x00,}}, {0x716D,2,{0x9F,0xAD,0x00,0x00,}}, {0x716E,2,{0xD6,0xF3,0x00,0x00,}}, {0x716F,2,{0x9F,0xAE,0x00,0x00,}}, {0x7170,2,{0x9F,0xAF,0x00,0x00,}}, {0x7171,2,{0x9F,0xB0,0x00,0x00,}}, {0x7172,2,{0xEC,0xD2,0x00,0x00,}}, {0x7173,2,{0xEC,0xCE,0x00,0x00,}}, {0x7174,2,{0x9F,0xB1,0x00,0x00,}}, {0x7175,2,{0x9F,0xB2,0x00,0x00,}}, {0x7176,2,{0x9F,0xB3,0x00,0x00,}}, {0x7177,2,{0x9F,0xB4,0x00,0x00,}}, {0x7178,2,{0xEC,0xD4,0x00,0x00,}}, {0x7179,2,{0x9F,0xB5,0x00,0x00,}}, {0x717A,2,{0xEC,0xD5,0x00,0x00,}}, {0x717B,2,{0x9F,0xB6,0x00,0x00,}}, {0x717C,2,{0x9F,0xB7,0x00,0x00,}}, {0x717D,2,{0xC9,0xBF,0x00,0x00,}}, {0x717E,2,{0x9F,0xB8,0x00,0x00,}}, {0x717F,2,{0x9F,0xB9,0x00,0x00,}}, {0x7180,2,{0x9F,0xBA,0x00,0x00,}}, {0x7181,2,{0x9F,0xBB,0x00,0x00,}}, {0x7182,2,{0x9F,0xBC,0x00,0x00,}}, {0x7183,2,{0x9F,0xBD,0x00,0x00,}}, {0x7184,2,{0xCF,0xA8,0x00,0x00,}}, {0x7185,2,{0x9F,0xBE,0x00,0x00,}}, {0x7186,2,{0x9F,0xBF,0x00,0x00,}}, {0x7187,2,{0x9F,0xC0,0x00,0x00,}}, {0x7188,2,{0x9F,0xC1,0x00,0x00,}}, {0x7189,2,{0x9F,0xC2,0x00,0x00,}}, {0x718A,2,{0xD0,0xDC,0x00,0x00,}}, {0x718B,2,{0x9F,0xC3,0x00,0x00,}}, {0x718C,2,{0x9F,0xC4,0x00,0x00,}}, {0x718D,2,{0x9F,0xC5,0x00,0x00,}}, {0x718E,2,{0x9F,0xC6,0x00,0x00,}}, {0x718F,2,{0xD1,0xAC,0x00,0x00,}}, {0x7190,2,{0x9F,0xC7,0x00,0x00,}}, {0x7191,2,{0x9F,0xC8,0x00,0x00,}}, {0x7192,2,{0x9F,0xC9,0x00,0x00,}}, {0x7193,2,{0x9F,0xCA,0x00,0x00,}}, {0x7194,2,{0xC8,0xDB,0x00,0x00,}}, {0x7195,2,{0x9F,0xCB,0x00,0x00,}}, {0x7196,2,{0x9F,0xCC,0x00,0x00,}}, {0x7197,2,{0x9F,0xCD,0x00,0x00,}}, {0x7198,2,{0xEC,0xD6,0x00,0x00,}}, {0x7199,2,{0xCE,0xF5,0x00,0x00,}}, {0x719A,2,{0x9F,0xCE,0x00,0x00,}}, {0x719B,2,{0x9F,0xCF,0x00,0x00,}}, {0x719C,2,{0x9F,0xD0,0x00,0x00,}}, {0x719D,2,{0x9F,0xD1,0x00,0x00,}}, {0x719E,2,{0x9F,0xD2,0x00,0x00,}}, {0x719F,2,{0xCA,0xEC,0x00,0x00,}}, {0x71A0,2,{0xEC,0xDA,0x00,0x00,}}, {0x71A1,2,{0x9F,0xD3,0x00,0x00,}}, {0x71A2,2,{0x9F,0xD4,0x00,0x00,}}, {0x71A3,2,{0x9F,0xD5,0x00,0x00,}}, {0x71A4,2,{0x9F,0xD6,0x00,0x00,}}, {0x71A5,2,{0x9F,0xD7,0x00,0x00,}}, {0x71A6,2,{0x9F,0xD8,0x00,0x00,}}, {0x71A7,2,{0x9F,0xD9,0x00,0x00,}}, {0x71A8,2,{0xEC,0xD9,0x00,0x00,}}, {0x71A9,2,{0x9F,0xDA,0x00,0x00,}}, {0x71AA,2,{0x9F,0xDB,0x00,0x00,}}, {0x71AB,2,{0x9F,0xDC,0x00,0x00,}}, {0x71AC,2,{0xB0,0xBE,0x00,0x00,}}, {0x71AD,2,{0x9F,0xDD,0x00,0x00,}}, {0x71AE,2,{0x9F,0xDE,0x00,0x00,}}, {0x71AF,2,{0x9F,0xDF,0x00,0x00,}}, {0x71B0,2,{0x9F,0xE0,0x00,0x00,}}, {0x71B1,2,{0x9F,0xE1,0x00,0x00,}}, {0x71B2,2,{0x9F,0xE2,0x00,0x00,}}, {0x71B3,2,{0xEC,0xD7,0x00,0x00,}}, {0x71B4,2,{0x9F,0xE3,0x00,0x00,}}, {0x71B5,2,{0xEC,0xD8,0x00,0x00,}}, {0x71B6,2,{0x9F,0xE4,0x00,0x00,}}, {0x71B7,2,{0x9F,0xE5,0x00,0x00,}}, {0x71B8,2,{0x9F,0xE6,0x00,0x00,}}, {0x71B9,2,{0xEC,0xE4,0x00,0x00,}}, {0x71BA,2,{0x9F,0xE7,0x00,0x00,}}, {0x71BB,2,{0x9F,0xE8,0x00,0x00,}}, {0x71BC,2,{0x9F,0xE9,0x00,0x00,}}, {0x71BD,2,{0x9F,0xEA,0x00,0x00,}}, {0x71BE,2,{0x9F,0xEB,0x00,0x00,}}, {0x71BF,2,{0x9F,0xEC,0x00,0x00,}}, {0x71C0,2,{0x9F,0xED,0x00,0x00,}}, {0x71C1,2,{0x9F,0xEE,0x00,0x00,}}, {0x71C2,2,{0x9F,0xEF,0x00,0x00,}}, {0x71C3,2,{0xC8,0xBC,0x00,0x00,}}, {0x71C4,2,{0x9F,0xF0,0x00,0x00,}}, {0x71C5,2,{0x9F,0xF1,0x00,0x00,}}, {0x71C6,2,{0x9F,0xF2,0x00,0x00,}}, {0x71C7,2,{0x9F,0xF3,0x00,0x00,}}, {0x71C8,2,{0x9F,0xF4,0x00,0x00,}}, {0x71C9,2,{0x9F,0xF5,0x00,0x00,}}, {0x71CA,2,{0x9F,0xF6,0x00,0x00,}}, {0x71CB,2,{0x9F,0xF7,0x00,0x00,}}, {0x71CC,2,{0x9F,0xF8,0x00,0x00,}}, {0x71CD,2,{0x9F,0xF9,0x00,0x00,}}, {0x71CE,2,{0xC1,0xC7,0x00,0x00,}}, {0x71CF,2,{0x9F,0xFA,0x00,0x00,}}, {0x71D0,2,{0x9F,0xFB,0x00,0x00,}}, {0x71D1,2,{0x9F,0xFC,0x00,0x00,}}, {0x71D2,2,{0x9F,0xFD,0x00,0x00,}}, {0x71D3,2,{0x9F,0xFE,0x00,0x00,}}, {0x71D4,2,{0xEC,0xDC,0x00,0x00,}}, {0x71D5,2,{0xD1,0xE0,0x00,0x00,}}, {0x71D6,2,{0xA0,0x40,0x00,0x00,}}, {0x71D7,2,{0xA0,0x41,0x00,0x00,}}, {0x71D8,2,{0xA0,0x42,0x00,0x00,}}, {0x71D9,2,{0xA0,0x43,0x00,0x00,}}, {0x71DA,2,{0xA0,0x44,0x00,0x00,}}, {0x71DB,2,{0xA0,0x45,0x00,0x00,}}, {0x71DC,2,{0xA0,0x46,0x00,0x00,}}, {0x71DD,2,{0xA0,0x47,0x00,0x00,}}, {0x71DE,2,{0xA0,0x48,0x00,0x00,}}, {0x71DF,2,{0xA0,0x49,0x00,0x00,}}, {0x71E0,2,{0xEC,0xDB,0x00,0x00,}}, {0x71E1,2,{0xA0,0x4A,0x00,0x00,}}, {0x71E2,2,{0xA0,0x4B,0x00,0x00,}}, {0x71E3,2,{0xA0,0x4C,0x00,0x00,}}, {0x71E4,2,{0xA0,0x4D,0x00,0x00,}}, {0x71E5,2,{0xD4,0xEF,0x00,0x00,}}, {0x71E6,2,{0xA0,0x4E,0x00,0x00,}}, {0x71E7,2,{0xEC,0xDD,0x00,0x00,}}, {0x71E8,2,{0xA0,0x4F,0x00,0x00,}}, {0x71E9,2,{0xA0,0x50,0x00,0x00,}}, {0x71EA,2,{0xA0,0x51,0x00,0x00,}}, {0x71EB,2,{0xA0,0x52,0x00,0x00,}}, {0x71EC,2,{0xA0,0x53,0x00,0x00,}}, {0x71ED,2,{0xA0,0x54,0x00,0x00,}}, {0x71EE,2,{0xDB,0xC6,0x00,0x00,}}, {0x71EF,2,{0xA0,0x55,0x00,0x00,}}, {0x71F0,2,{0xA0,0x56,0x00,0x00,}}, {0x71F1,2,{0xA0,0x57,0x00,0x00,}}, {0x71F2,2,{0xA0,0x58,0x00,0x00,}}, {0x71F3,2,{0xA0,0x59,0x00,0x00,}}, {0x71F4,2,{0xA0,0x5A,0x00,0x00,}}, {0x71F5,2,{0xA0,0x5B,0x00,0x00,}}, {0x71F6,2,{0xA0,0x5C,0x00,0x00,}}, {0x71F7,2,{0xA0,0x5D,0x00,0x00,}}, {0x71F8,2,{0xA0,0x5E,0x00,0x00,}}, {0x71F9,2,{0xEC,0xDE,0x00,0x00,}}, {0x71FA,2,{0xA0,0x5F,0x00,0x00,}}, {0x71FB,2,{0xA0,0x60,0x00,0x00,}}, {0x71FC,2,{0xA0,0x61,0x00,0x00,}}, {0x71FD,2,{0xA0,0x62,0x00,0x00,}}, {0x71FE,2,{0xA0,0x63,0x00,0x00,}}, {0x71FF,2,{0xA0,0x64,0x00,0x00,}}, {0x7200,2,{0xA0,0x65,0x00,0x00,}}, {0x7201,2,{0xA0,0x66,0x00,0x00,}}, {0x7202,2,{0xA0,0x67,0x00,0x00,}}, {0x7203,2,{0xA0,0x68,0x00,0x00,}}, {0x7204,2,{0xA0,0x69,0x00,0x00,}}, {0x7205,2,{0xA0,0x6A,0x00,0x00,}}, {0x7206,2,{0xB1,0xAC,0x00,0x00,}}, {0x7207,2,{0xA0,0x6B,0x00,0x00,}}, {0x7208,2,{0xA0,0x6C,0x00,0x00,}}, {0x7209,2,{0xA0,0x6D,0x00,0x00,}}, {0x720A,2,{0xA0,0x6E,0x00,0x00,}}, {0x720B,2,{0xA0,0x6F,0x00,0x00,}}, {0x720C,2,{0xA0,0x70,0x00,0x00,}}, {0x720D,2,{0xA0,0x71,0x00,0x00,}}, {0x720E,2,{0xA0,0x72,0x00,0x00,}}, {0x720F,2,{0xA0,0x73,0x00,0x00,}}, {0x7210,2,{0xA0,0x74,0x00,0x00,}}, {0x7211,2,{0xA0,0x75,0x00,0x00,}}, {0x7212,2,{0xA0,0x76,0x00,0x00,}}, {0x7213,2,{0xA0,0x77,0x00,0x00,}}, {0x7214,2,{0xA0,0x78,0x00,0x00,}}, {0x7215,2,{0xA0,0x79,0x00,0x00,}}, {0x7216,2,{0xA0,0x7A,0x00,0x00,}}, {0x7217,2,{0xA0,0x7B,0x00,0x00,}}, {0x7218,2,{0xA0,0x7C,0x00,0x00,}}, {0x7219,2,{0xA0,0x7D,0x00,0x00,}}, {0x721A,2,{0xA0,0x7E,0x00,0x00,}}, {0x721B,2,{0xA0,0x80,0x00,0x00,}}, {0x721C,2,{0xA0,0x81,0x00,0x00,}}, {0x721D,2,{0xEC,0xDF,0x00,0x00,}}, {0x721E,2,{0xA0,0x82,0x00,0x00,}}, {0x721F,2,{0xA0,0x83,0x00,0x00,}}, {0x7220,2,{0xA0,0x84,0x00,0x00,}}, {0x7221,2,{0xA0,0x85,0x00,0x00,}}, {0x7222,2,{0xA0,0x86,0x00,0x00,}}, {0x7223,2,{0xA0,0x87,0x00,0x00,}}, {0x7224,2,{0xA0,0x88,0x00,0x00,}}, {0x7225,2,{0xA0,0x89,0x00,0x00,}}, {0x7226,2,{0xA0,0x8A,0x00,0x00,}}, {0x7227,2,{0xA0,0x8B,0x00,0x00,}}, {0x7228,2,{0xEC,0xE0,0x00,0x00,}}, {0x7229,2,{0xA0,0x8C,0x00,0x00,}}, {0x722A,2,{0xD7,0xA6,0x00,0x00,}}, {0x722B,2,{0xA0,0x8D,0x00,0x00,}}, {0x722C,2,{0xC5,0xC0,0x00,0x00,}}, {0x722D,2,{0xA0,0x8E,0x00,0x00,}}, {0x722E,2,{0xA0,0x8F,0x00,0x00,}}, {0x722F,2,{0xA0,0x90,0x00,0x00,}}, {0x7230,2,{0xEB,0xBC,0x00,0x00,}}, {0x7231,2,{0xB0,0xAE,0x00,0x00,}}, {0x7232,2,{0xA0,0x91,0x00,0x00,}}, {0x7233,2,{0xA0,0x92,0x00,0x00,}}, {0x7234,2,{0xA0,0x93,0x00,0x00,}}, {0x7235,2,{0xBE,0xF4,0x00,0x00,}}, {0x7236,2,{0xB8,0xB8,0x00,0x00,}}, {0x7237,2,{0xD2,0xAF,0x00,0x00,}}, {0x7238,2,{0xB0,0xD6,0x00,0x00,}}, {0x7239,2,{0xB5,0xF9,0x00,0x00,}}, {0x723A,2,{0xA0,0x94,0x00,0x00,}}, {0x723B,2,{0xD8,0xB3,0x00,0x00,}}, {0x723C,2,{0xA0,0x95,0x00,0x00,}}, {0x723D,2,{0xCB,0xAC,0x00,0x00,}}, {0x723E,2,{0xA0,0x96,0x00,0x00,}}, {0x723F,2,{0xE3,0xDD,0x00,0x00,}}, {0x7240,2,{0xA0,0x97,0x00,0x00,}}, {0x7241,2,{0xA0,0x98,0x00,0x00,}}, {0x7242,2,{0xA0,0x99,0x00,0x00,}}, {0x7243,2,{0xA0,0x9A,0x00,0x00,}}, {0x7244,2,{0xA0,0x9B,0x00,0x00,}}, {0x7245,2,{0xA0,0x9C,0x00,0x00,}}, {0x7246,2,{0xA0,0x9D,0x00,0x00,}}, {0x7247,2,{0xC6,0xAC,0x00,0x00,}}, {0x7248,2,{0xB0,0xE6,0x00,0x00,}}, {0x7249,2,{0xA0,0x9E,0x00,0x00,}}, {0x724A,2,{0xA0,0x9F,0x00,0x00,}}, {0x724B,2,{0xA0,0xA0,0x00,0x00,}}, {0x724C,2,{0xC5,0xC6,0x00,0x00,}}, {0x724D,2,{0xEB,0xB9,0x00,0x00,}}, {0x724E,2,{0xA0,0xA1,0x00,0x00,}}, {0x724F,2,{0xA0,0xA2,0x00,0x00,}}, {0x7250,2,{0xA0,0xA3,0x00,0x00,}}, {0x7251,2,{0xA0,0xA4,0x00,0x00,}}, {0x7252,2,{0xEB,0xBA,0x00,0x00,}}, {0x7253,2,{0xA0,0xA5,0x00,0x00,}}, {0x7254,2,{0xA0,0xA6,0x00,0x00,}}, {0x7255,2,{0xA0,0xA7,0x00,0x00,}}, {0x7256,2,{0xEB,0xBB,0x00,0x00,}}, {0x7257,2,{0xA0,0xA8,0x00,0x00,}}, {0x7258,2,{0xA0,0xA9,0x00,0x00,}}, {0x7259,2,{0xD1,0xC0,0x00,0x00,}}, {0x725A,2,{0xA0,0xAA,0x00,0x00,}}, {0x725B,2,{0xC5,0xA3,0x00,0x00,}}, {0x725C,2,{0xA0,0xAB,0x00,0x00,}}, {0x725D,2,{0xEA,0xF2,0x00,0x00,}}, {0x725E,2,{0xA0,0xAC,0x00,0x00,}}, {0x725F,2,{0xC4,0xB2,0x00,0x00,}}, {0x7260,2,{0xA0,0xAD,0x00,0x00,}}, {0x7261,2,{0xC4,0xB5,0x00,0x00,}}, {0x7262,2,{0xC0,0xCE,0x00,0x00,}}, {0x7263,2,{0xA0,0xAE,0x00,0x00,}}, {0x7264,2,{0xA0,0xAF,0x00,0x00,}}, {0x7265,2,{0xA0,0xB0,0x00,0x00,}}, {0x7266,2,{0xEA,0xF3,0x00,0x00,}}, {0x7267,2,{0xC4,0xC1,0x00,0x00,}}, {0x7268,2,{0xA0,0xB1,0x00,0x00,}}, {0x7269,2,{0xCE,0xEF,0x00,0x00,}}, {0x726A,2,{0xA0,0xB2,0x00,0x00,}}, {0x726B,2,{0xA0,0xB3,0x00,0x00,}}, {0x726C,2,{0xA0,0xB4,0x00,0x00,}}, {0x726D,2,{0xA0,0xB5,0x00,0x00,}}, {0x726E,2,{0xEA,0xF0,0x00,0x00,}}, {0x726F,2,{0xEA,0xF4,0x00,0x00,}}, {0x7270,2,{0xA0,0xB6,0x00,0x00,}}, {0x7271,2,{0xA0,0xB7,0x00,0x00,}}, {0x7272,2,{0xC9,0xFC,0x00,0x00,}}, {0x7273,2,{0xA0,0xB8,0x00,0x00,}}, {0x7274,2,{0xA0,0xB9,0x00,0x00,}}, {0x7275,2,{0xC7,0xA3,0x00,0x00,}}, {0x7276,2,{0xA0,0xBA,0x00,0x00,}}, {0x7277,2,{0xA0,0xBB,0x00,0x00,}}, {0x7278,2,{0xA0,0xBC,0x00,0x00,}}, {0x7279,2,{0xCC,0xD8,0x00,0x00,}}, {0x727A,2,{0xCE,0xFE,0x00,0x00,}}, {0x727B,2,{0xA0,0xBD,0x00,0x00,}}, {0x727C,2,{0xA0,0xBE,0x00,0x00,}}, {0x727D,2,{0xA0,0xBF,0x00,0x00,}}, {0x727E,2,{0xEA,0xF5,0x00,0x00,}}, {0x727F,2,{0xEA,0xF6,0x00,0x00,}}, {0x7280,2,{0xCF,0xAC,0x00,0x00,}}, {0x7281,2,{0xC0,0xE7,0x00,0x00,}}, {0x7282,2,{0xA0,0xC0,0x00,0x00,}}, {0x7283,2,{0xA0,0xC1,0x00,0x00,}}, {0x7284,2,{0xEA,0xF7,0x00,0x00,}}, {0x7285,2,{0xA0,0xC2,0x00,0x00,}}, {0x7286,2,{0xA0,0xC3,0x00,0x00,}}, {0x7287,2,{0xA0,0xC4,0x00,0x00,}}, {0x7288,2,{0xA0,0xC5,0x00,0x00,}}, {0x7289,2,{0xA0,0xC6,0x00,0x00,}}, {0x728A,2,{0xB6,0xBF,0x00,0x00,}}, {0x728B,2,{0xEA,0xF8,0x00,0x00,}}, {0x728C,2,{0xA0,0xC7,0x00,0x00,}}, {0x728D,2,{0xEA,0xF9,0x00,0x00,}}, {0x728E,2,{0xA0,0xC8,0x00,0x00,}}, {0x728F,2,{0xEA,0xFA,0x00,0x00,}}, {0x7290,2,{0xA0,0xC9,0x00,0x00,}}, {0x7291,2,{0xA0,0xCA,0x00,0x00,}}, {0x7292,2,{0xEA,0xFB,0x00,0x00,}}, {0x7293,2,{0xA0,0xCB,0x00,0x00,}}, {0x7294,2,{0xA0,0xCC,0x00,0x00,}}, {0x7295,2,{0xA0,0xCD,0x00,0x00,}}, {0x7296,2,{0xA0,0xCE,0x00,0x00,}}, {0x7297,2,{0xA0,0xCF,0x00,0x00,}}, {0x7298,2,{0xA0,0xD0,0x00,0x00,}}, {0x7299,2,{0xA0,0xD1,0x00,0x00,}}, {0x729A,2,{0xA0,0xD2,0x00,0x00,}}, {0x729B,2,{0xA0,0xD3,0x00,0x00,}}, {0x729C,2,{0xA0,0xD4,0x00,0x00,}}, {0x729D,2,{0xA0,0xD5,0x00,0x00,}}, {0x729E,2,{0xA0,0xD6,0x00,0x00,}}, {0x729F,2,{0xEA,0xF1,0x00,0x00,}}, {0x72A0,2,{0xA0,0xD7,0x00,0x00,}}, {0x72A1,2,{0xA0,0xD8,0x00,0x00,}}, {0x72A2,2,{0xA0,0xD9,0x00,0x00,}}, {0x72A3,2,{0xA0,0xDA,0x00,0x00,}}, {0x72A4,2,{0xA0,0xDB,0x00,0x00,}}, {0x72A5,2,{0xA0,0xDC,0x00,0x00,}}, {0x72A6,2,{0xA0,0xDD,0x00,0x00,}}, {0x72A7,2,{0xA0,0xDE,0x00,0x00,}}, {0x72A8,2,{0xA0,0xDF,0x00,0x00,}}, {0x72A9,2,{0xA0,0xE0,0x00,0x00,}}, {0x72AA,2,{0xA0,0xE1,0x00,0x00,}}, {0x72AB,2,{0xA0,0xE2,0x00,0x00,}}, {0x72AC,2,{0xC8,0xAE,0x00,0x00,}}, {0x72AD,2,{0xE1,0xEB,0x00,0x00,}}, {0x72AE,2,{0xA0,0xE3,0x00,0x00,}}, {0x72AF,2,{0xB7,0xB8,0x00,0x00,}}, {0x72B0,2,{0xE1,0xEC,0x00,0x00,}}, {0x72B1,2,{0xA0,0xE4,0x00,0x00,}}, {0x72B2,2,{0xA0,0xE5,0x00,0x00,}}, {0x72B3,2,{0xA0,0xE6,0x00,0x00,}}, {0x72B4,2,{0xE1,0xED,0x00,0x00,}}, {0x72B5,2,{0xA0,0xE7,0x00,0x00,}}, {0x72B6,2,{0xD7,0xB4,0x00,0x00,}}, {0x72B7,2,{0xE1,0xEE,0x00,0x00,}}, {0x72B8,2,{0xE1,0xEF,0x00,0x00,}}, {0x72B9,2,{0xD3,0xCC,0x00,0x00,}}, {0x72BA,2,{0xA0,0xE8,0x00,0x00,}}, {0x72BB,2,{0xA0,0xE9,0x00,0x00,}}, {0x72BC,2,{0xA0,0xEA,0x00,0x00,}}, {0x72BD,2,{0xA0,0xEB,0x00,0x00,}}, {0x72BE,2,{0xA0,0xEC,0x00,0x00,}}, {0x72BF,2,{0xA0,0xED,0x00,0x00,}}, {0x72C0,2,{0xA0,0xEE,0x00,0x00,}}, {0x72C1,2,{0xE1,0xF1,0x00,0x00,}}, {0x72C2,2,{0xBF,0xF1,0x00,0x00,}}, {0x72C3,2,{0xE1,0xF0,0x00,0x00,}}, {0x72C4,2,{0xB5,0xD2,0x00,0x00,}}, {0x72C5,2,{0xA0,0xEF,0x00,0x00,}}, {0x72C6,2,{0xA0,0xF0,0x00,0x00,}}, {0x72C7,2,{0xA0,0xF1,0x00,0x00,}}, {0x72C8,2,{0xB1,0xB7,0x00,0x00,}}, {0x72C9,2,{0xA0,0xF2,0x00,0x00,}}, {0x72CA,2,{0xA0,0xF3,0x00,0x00,}}, {0x72CB,2,{0xA0,0xF4,0x00,0x00,}}, {0x72CC,2,{0xA0,0xF5,0x00,0x00,}}, {0x72CD,2,{0xE1,0xF3,0x00,0x00,}}, {0x72CE,2,{0xE1,0xF2,0x00,0x00,}}, {0x72CF,2,{0xA0,0xF6,0x00,0x00,}}, {0x72D0,2,{0xBA,0xFC,0x00,0x00,}}, {0x72D1,2,{0xA0,0xF7,0x00,0x00,}}, {0x72D2,2,{0xE1,0xF4,0x00,0x00,}}, {0x72D3,2,{0xA0,0xF8,0x00,0x00,}}, {0x72D4,2,{0xA0,0xF9,0x00,0x00,}}, {0x72D5,2,{0xA0,0xFA,0x00,0x00,}}, {0x72D6,2,{0xA0,0xFB,0x00,0x00,}}, {0x72D7,2,{0xB9,0xB7,0x00,0x00,}}, {0x72D8,2,{0xA0,0xFC,0x00,0x00,}}, {0x72D9,2,{0xBE,0xD1,0x00,0x00,}}, {0x72DA,2,{0xA0,0xFD,0x00,0x00,}}, {0x72DB,2,{0xA0,0xFE,0x00,0x00,}}, {0x72DC,2,{0xAA,0x40,0x00,0x00,}}, {0x72DD,2,{0xAA,0x41,0x00,0x00,}}, {0x72DE,2,{0xC4,0xFC,0x00,0x00,}}, {0x72DF,2,{0xAA,0x42,0x00,0x00,}}, {0x72E0,2,{0xBA,0xDD,0x00,0x00,}}, {0x72E1,2,{0xBD,0xC6,0x00,0x00,}}, {0x72E2,2,{0xAA,0x43,0x00,0x00,}}, {0x72E3,2,{0xAA,0x44,0x00,0x00,}}, {0x72E4,2,{0xAA,0x45,0x00,0x00,}}, {0x72E5,2,{0xAA,0x46,0x00,0x00,}}, {0x72E6,2,{0xAA,0x47,0x00,0x00,}}, {0x72E7,2,{0xAA,0x48,0x00,0x00,}}, {0x72E8,2,{0xE1,0xF5,0x00,0x00,}}, {0x72E9,2,{0xE1,0xF7,0x00,0x00,}}, {0x72EA,2,{0xAA,0x49,0x00,0x00,}}, {0x72EB,2,{0xAA,0x4A,0x00,0x00,}}, {0x72EC,2,{0xB6,0xC0,0x00,0x00,}}, {0x72ED,2,{0xCF,0xC1,0x00,0x00,}}, {0x72EE,2,{0xCA,0xA8,0x00,0x00,}}, {0x72EF,2,{0xE1,0xF6,0x00,0x00,}}, {0x72F0,2,{0xD5,0xF8,0x00,0x00,}}, {0x72F1,2,{0xD3,0xFC,0x00,0x00,}}, {0x72F2,2,{0xE1,0xF8,0x00,0x00,}}, {0x72F3,2,{0xE1,0xFC,0x00,0x00,}}, {0x72F4,2,{0xE1,0xF9,0x00,0x00,}}, {0x72F5,2,{0xAA,0x4B,0x00,0x00,}}, {0x72F6,2,{0xAA,0x4C,0x00,0x00,}}, {0x72F7,2,{0xE1,0xFA,0x00,0x00,}}, {0x72F8,2,{0xC0,0xEA,0x00,0x00,}}, {0x72F9,2,{0xAA,0x4D,0x00,0x00,}}, {0x72FA,2,{0xE1,0xFE,0x00,0x00,}}, {0x72FB,2,{0xE2,0xA1,0x00,0x00,}}, {0x72FC,2,{0xC0,0xC7,0x00,0x00,}}, {0x72FD,2,{0xAA,0x4E,0x00,0x00,}}, {0x72FE,2,{0xAA,0x4F,0x00,0x00,}}, {0x72FF,2,{0xAA,0x50,0x00,0x00,}}, {0x7300,2,{0xAA,0x51,0x00,0x00,}}, {0x7301,2,{0xE1,0xFB,0x00,0x00,}}, {0x7302,2,{0xAA,0x52,0x00,0x00,}}, {0x7303,2,{0xE1,0xFD,0x00,0x00,}}, {0x7304,2,{0xAA,0x53,0x00,0x00,}}, {0x7305,2,{0xAA,0x54,0x00,0x00,}}, {0x7306,2,{0xAA,0x55,0x00,0x00,}}, {0x7307,2,{0xAA,0x56,0x00,0x00,}}, {0x7308,2,{0xAA,0x57,0x00,0x00,}}, {0x7309,2,{0xAA,0x58,0x00,0x00,}}, {0x730A,2,{0xE2,0xA5,0x00,0x00,}}, {0x730B,2,{0xAA,0x59,0x00,0x00,}}, {0x730C,2,{0xAA,0x5A,0x00,0x00,}}, {0x730D,2,{0xAA,0x5B,0x00,0x00,}}, {0x730E,2,{0xC1,0xD4,0x00,0x00,}}, {0x730F,2,{0xAA,0x5C,0x00,0x00,}}, {0x7310,2,{0xAA,0x5D,0x00,0x00,}}, {0x7311,2,{0xAA,0x5E,0x00,0x00,}}, {0x7312,2,{0xAA,0x5F,0x00,0x00,}}, {0x7313,2,{0xE2,0xA3,0x00,0x00,}}, {0x7314,2,{0xAA,0x60,0x00,0x00,}}, {0x7315,2,{0xE2,0xA8,0x00,0x00,}}, {0x7316,2,{0xB2,0xFE,0x00,0x00,}}, {0x7317,2,{0xE2,0xA2,0x00,0x00,}}, {0x7318,2,{0xAA,0x61,0x00,0x00,}}, {0x7319,2,{0xAA,0x62,0x00,0x00,}}, {0x731A,2,{0xAA,0x63,0x00,0x00,}}, {0x731B,2,{0xC3,0xCD,0x00,0x00,}}, {0x731C,2,{0xB2,0xC2,0x00,0x00,}}, {0x731D,2,{0xE2,0xA7,0x00,0x00,}}, {0x731E,2,{0xE2,0xA6,0x00,0x00,}}, {0x731F,2,{0xAA,0x64,0x00,0x00,}}, {0x7320,2,{0xAA,0x65,0x00,0x00,}}, {0x7321,2,{0xE2,0xA4,0x00,0x00,}}, {0x7322,2,{0xE2,0xA9,0x00,0x00,}}, {0x7323,2,{0xAA,0x66,0x00,0x00,}}, {0x7324,2,{0xAA,0x67,0x00,0x00,}}, {0x7325,2,{0xE2,0xAB,0x00,0x00,}}, {0x7326,2,{0xAA,0x68,0x00,0x00,}}, {0x7327,2,{0xAA,0x69,0x00,0x00,}}, {0x7328,2,{0xAA,0x6A,0x00,0x00,}}, {0x7329,2,{0xD0,0xC9,0x00,0x00,}}, {0x732A,2,{0xD6,0xED,0x00,0x00,}}, {0x732B,2,{0xC3,0xA8,0x00,0x00,}}, {0x732C,2,{0xE2,0xAC,0x00,0x00,}}, {0x732D,2,{0xAA,0x6B,0x00,0x00,}}, {0x732E,2,{0xCF,0xD7,0x00,0x00,}}, {0x732F,2,{0xAA,0x6C,0x00,0x00,}}, {0x7330,2,{0xAA,0x6D,0x00,0x00,}}, {0x7331,2,{0xE2,0xAE,0x00,0x00,}}, {0x7332,2,{0xAA,0x6E,0x00,0x00,}}, {0x7333,2,{0xAA,0x6F,0x00,0x00,}}, {0x7334,2,{0xBA,0xEF,0x00,0x00,}}, {0x7335,2,{0xAA,0x70,0x00,0x00,}}, {0x7336,2,{0xAA,0x71,0x00,0x00,}}, {0x7337,2,{0xE9,0xE0,0x00,0x00,}}, {0x7338,2,{0xE2,0xAD,0x00,0x00,}}, {0x7339,2,{0xE2,0xAA,0x00,0x00,}}, {0x733A,2,{0xAA,0x72,0x00,0x00,}}, {0x733B,2,{0xAA,0x73,0x00,0x00,}}, {0x733C,2,{0xAA,0x74,0x00,0x00,}}, {0x733D,2,{0xAA,0x75,0x00,0x00,}}, {0x733E,2,{0xBB,0xAB,0x00,0x00,}}, {0x733F,2,{0xD4,0xB3,0x00,0x00,}}, {0x7340,2,{0xAA,0x76,0x00,0x00,}}, {0x7341,2,{0xAA,0x77,0x00,0x00,}}, {0x7342,2,{0xAA,0x78,0x00,0x00,}}, {0x7343,2,{0xAA,0x79,0x00,0x00,}}, {0x7344,2,{0xAA,0x7A,0x00,0x00,}}, {0x7345,2,{0xAA,0x7B,0x00,0x00,}}, {0x7346,2,{0xAA,0x7C,0x00,0x00,}}, {0x7347,2,{0xAA,0x7D,0x00,0x00,}}, {0x7348,2,{0xAA,0x7E,0x00,0x00,}}, {0x7349,2,{0xAA,0x80,0x00,0x00,}}, {0x734A,2,{0xAA,0x81,0x00,0x00,}}, {0x734B,2,{0xAA,0x82,0x00,0x00,}}, {0x734C,2,{0xAA,0x83,0x00,0x00,}}, {0x734D,2,{0xE2,0xB0,0x00,0x00,}}, {0x734E,2,{0xAA,0x84,0x00,0x00,}}, {0x734F,2,{0xAA,0x85,0x00,0x00,}}, {0x7350,2,{0xE2,0xAF,0x00,0x00,}}, {0x7351,2,{0xAA,0x86,0x00,0x00,}}, {0x7352,2,{0xE9,0xE1,0x00,0x00,}}, {0x7353,2,{0xAA,0x87,0x00,0x00,}}, {0x7354,2,{0xAA,0x88,0x00,0x00,}}, {0x7355,2,{0xAA,0x89,0x00,0x00,}}, {0x7356,2,{0xAA,0x8A,0x00,0x00,}}, {0x7357,2,{0xE2,0xB1,0x00,0x00,}}, {0x7358,2,{0xAA,0x8B,0x00,0x00,}}, {0x7359,2,{0xAA,0x8C,0x00,0x00,}}, {0x735A,2,{0xAA,0x8D,0x00,0x00,}}, {0x735B,2,{0xAA,0x8E,0x00,0x00,}}, {0x735C,2,{0xAA,0x8F,0x00,0x00,}}, {0x735D,2,{0xAA,0x90,0x00,0x00,}}, {0x735E,2,{0xAA,0x91,0x00,0x00,}}, {0x735F,2,{0xAA,0x92,0x00,0x00,}}, {0x7360,2,{0xE2,0xB2,0x00,0x00,}}, {0x7361,2,{0xAA,0x93,0x00,0x00,}}, {0x7362,2,{0xAA,0x94,0x00,0x00,}}, {0x7363,2,{0xAA,0x95,0x00,0x00,}}, {0x7364,2,{0xAA,0x96,0x00,0x00,}}, {0x7365,2,{0xAA,0x97,0x00,0x00,}}, {0x7366,2,{0xAA,0x98,0x00,0x00,}}, {0x7367,2,{0xAA,0x99,0x00,0x00,}}, {0x7368,2,{0xAA,0x9A,0x00,0x00,}}, {0x7369,2,{0xAA,0x9B,0x00,0x00,}}, {0x736A,2,{0xAA,0x9C,0x00,0x00,}}, {0x736B,2,{0xAA,0x9D,0x00,0x00,}}, {0x736C,2,{0xE2,0xB3,0x00,0x00,}}, {0x736D,2,{0xCC,0xA1,0x00,0x00,}}, {0x736E,2,{0xAA,0x9E,0x00,0x00,}}, {0x736F,2,{0xE2,0xB4,0x00,0x00,}}, {0x7370,2,{0xAA,0x9F,0x00,0x00,}}, {0x7371,2,{0xAA,0xA0,0x00,0x00,}}, {0x7372,2,{0xAB,0x40,0x00,0x00,}}, {0x7373,2,{0xAB,0x41,0x00,0x00,}}, {0x7374,2,{0xAB,0x42,0x00,0x00,}}, {0x7375,2,{0xAB,0x43,0x00,0x00,}}, {0x7376,2,{0xAB,0x44,0x00,0x00,}}, {0x7377,2,{0xAB,0x45,0x00,0x00,}}, {0x7378,2,{0xAB,0x46,0x00,0x00,}}, {0x7379,2,{0xAB,0x47,0x00,0x00,}}, {0x737A,2,{0xAB,0x48,0x00,0x00,}}, {0x737B,2,{0xAB,0x49,0x00,0x00,}}, {0x737C,2,{0xAB,0x4A,0x00,0x00,}}, {0x737D,2,{0xAB,0x4B,0x00,0x00,}}, {0x737E,2,{0xE2,0xB5,0x00,0x00,}}, {0x737F,2,{0xAB,0x4C,0x00,0x00,}}, {0x7380,2,{0xAB,0x4D,0x00,0x00,}}, {0x7381,2,{0xAB,0x4E,0x00,0x00,}}, {0x7382,2,{0xAB,0x4F,0x00,0x00,}}, {0x7383,2,{0xAB,0x50,0x00,0x00,}}, {0x7384,2,{0xD0,0xFE,0x00,0x00,}}, {0x7385,2,{0xAB,0x51,0x00,0x00,}}, {0x7386,2,{0xAB,0x52,0x00,0x00,}}, {0x7387,2,{0xC2,0xCA,0x00,0x00,}}, {0x7388,2,{0xAB,0x53,0x00,0x00,}}, {0x7389,2,{0xD3,0xF1,0x00,0x00,}}, {0x738A,2,{0xAB,0x54,0x00,0x00,}}, {0x738B,2,{0xCD,0xF5,0x00,0x00,}}, {0x738C,2,{0xAB,0x55,0x00,0x00,}}, {0x738D,2,{0xAB,0x56,0x00,0x00,}}, {0x738E,2,{0xE7,0xE0,0x00,0x00,}}, {0x738F,2,{0xAB,0x57,0x00,0x00,}}, {0x7390,2,{0xAB,0x58,0x00,0x00,}}, {0x7391,2,{0xE7,0xE1,0x00,0x00,}}, {0x7392,2,{0xAB,0x59,0x00,0x00,}}, {0x7393,2,{0xAB,0x5A,0x00,0x00,}}, {0x7394,2,{0xAB,0x5B,0x00,0x00,}}, {0x7395,2,{0xAB,0x5C,0x00,0x00,}}, {0x7396,2,{0xBE,0xC1,0x00,0x00,}}, {0x7397,2,{0xAB,0x5D,0x00,0x00,}}, {0x7398,2,{0xAB,0x5E,0x00,0x00,}}, {0x7399,2,{0xAB,0x5F,0x00,0x00,}}, {0x739A,2,{0xAB,0x60,0x00,0x00,}}, {0x739B,2,{0xC2,0xEA,0x00,0x00,}}, {0x739C,2,{0xAB,0x61,0x00,0x00,}}, {0x739D,2,{0xAB,0x62,0x00,0x00,}}, {0x739E,2,{0xAB,0x63,0x00,0x00,}}, {0x739F,2,{0xE7,0xE4,0x00,0x00,}}, {0x73A0,2,{0xAB,0x64,0x00,0x00,}}, {0x73A1,2,{0xAB,0x65,0x00,0x00,}}, {0x73A2,2,{0xE7,0xE3,0x00,0x00,}}, {0x73A3,2,{0xAB,0x66,0x00,0x00,}}, {0x73A4,2,{0xAB,0x67,0x00,0x00,}}, {0x73A5,2,{0xAB,0x68,0x00,0x00,}}, {0x73A6,2,{0xAB,0x69,0x00,0x00,}}, {0x73A7,2,{0xAB,0x6A,0x00,0x00,}}, {0x73A8,2,{0xAB,0x6B,0x00,0x00,}}, {0x73A9,2,{0xCD,0xE6,0x00,0x00,}}, {0x73AA,2,{0xAB,0x6C,0x00,0x00,}}, {0x73AB,2,{0xC3,0xB5,0x00,0x00,}}, {0x73AC,2,{0xAB,0x6D,0x00,0x00,}}, {0x73AD,2,{0xAB,0x6E,0x00,0x00,}}, {0x73AE,2,{0xE7,0xE2,0x00,0x00,}}, {0x73AF,2,{0xBB,0xB7,0x00,0x00,}}, {0x73B0,2,{0xCF,0xD6,0x00,0x00,}}, {0x73B1,2,{0xAB,0x6F,0x00,0x00,}}, {0x73B2,2,{0xC1,0xE1,0x00,0x00,}}, {0x73B3,2,{0xE7,0xE9,0x00,0x00,}}, {0x73B4,2,{0xAB,0x70,0x00,0x00,}}, {0x73B5,2,{0xAB,0x71,0x00,0x00,}}, {0x73B6,2,{0xAB,0x72,0x00,0x00,}}, {0x73B7,2,{0xE7,0xE8,0x00,0x00,}}, {0x73B8,2,{0xAB,0x73,0x00,0x00,}}, {0x73B9,2,{0xAB,0x74,0x00,0x00,}}, {0x73BA,2,{0xE7,0xF4,0x00,0x00,}}, {0x73BB,2,{0xB2,0xA3,0x00,0x00,}}, {0x73BC,2,{0xAB,0x75,0x00,0x00,}}, {0x73BD,2,{0xAB,0x76,0x00,0x00,}}, {0x73BE,2,{0xAB,0x77,0x00,0x00,}}, {0x73BF,2,{0xAB,0x78,0x00,0x00,}}, {0x73C0,2,{0xE7,0xEA,0x00,0x00,}}, {0x73C1,2,{0xAB,0x79,0x00,0x00,}}, {0x73C2,2,{0xE7,0xE6,0x00,0x00,}}, {0x73C3,2,{0xAB,0x7A,0x00,0x00,}}, {0x73C4,2,{0xAB,0x7B,0x00,0x00,}}, {0x73C5,2,{0xAB,0x7C,0x00,0x00,}}, {0x73C6,2,{0xAB,0x7D,0x00,0x00,}}, {0x73C7,2,{0xAB,0x7E,0x00,0x00,}}, {0x73C8,2,{0xE7,0xEC,0x00,0x00,}}, {0x73C9,2,{0xE7,0xEB,0x00,0x00,}}, {0x73CA,2,{0xC9,0xBA,0x00,0x00,}}, {0x73CB,2,{0xAB,0x80,0x00,0x00,}}, {0x73CC,2,{0xAB,0x81,0x00,0x00,}}, {0x73CD,2,{0xD5,0xE4,0x00,0x00,}}, {0x73CE,2,{0xAB,0x82,0x00,0x00,}}, {0x73CF,2,{0xE7,0xE5,0x00,0x00,}}, {0x73D0,2,{0xB7,0xA9,0x00,0x00,}}, {0x73D1,2,{0xE7,0xE7,0x00,0x00,}}, {0x73D2,2,{0xAB,0x83,0x00,0x00,}}, {0x73D3,2,{0xAB,0x84,0x00,0x00,}}, {0x73D4,2,{0xAB,0x85,0x00,0x00,}}, {0x73D5,2,{0xAB,0x86,0x00,0x00,}}, {0x73D6,2,{0xAB,0x87,0x00,0x00,}}, {0x73D7,2,{0xAB,0x88,0x00,0x00,}}, {0x73D8,2,{0xAB,0x89,0x00,0x00,}}, {0x73D9,2,{0xE7,0xEE,0x00,0x00,}}, {0x73DA,2,{0xAB,0x8A,0x00,0x00,}}, {0x73DB,2,{0xAB,0x8B,0x00,0x00,}}, {0x73DC,2,{0xAB,0x8C,0x00,0x00,}}, {0x73DD,2,{0xAB,0x8D,0x00,0x00,}}, {0x73DE,2,{0xE7,0xF3,0x00,0x00,}}, {0x73DF,2,{0xAB,0x8E,0x00,0x00,}}, {0x73E0,2,{0xD6,0xE9,0x00,0x00,}}, {0x73E1,2,{0xAB,0x8F,0x00,0x00,}}, {0x73E2,2,{0xAB,0x90,0x00,0x00,}}, {0x73E3,2,{0xAB,0x91,0x00,0x00,}}, {0x73E4,2,{0xAB,0x92,0x00,0x00,}}, {0x73E5,2,{0xE7,0xED,0x00,0x00,}}, {0x73E6,2,{0xAB,0x93,0x00,0x00,}}, {0x73E7,2,{0xE7,0xF2,0x00,0x00,}}, {0x73E8,2,{0xAB,0x94,0x00,0x00,}}, {0x73E9,2,{0xE7,0xF1,0x00,0x00,}}, {0x73EA,2,{0xAB,0x95,0x00,0x00,}}, {0x73EB,2,{0xAB,0x96,0x00,0x00,}}, {0x73EC,2,{0xAB,0x97,0x00,0x00,}}, {0x73ED,2,{0xB0,0xE0,0x00,0x00,}}, {0x73EE,2,{0xAB,0x98,0x00,0x00,}}, {0x73EF,2,{0xAB,0x99,0x00,0x00,}}, {0x73F0,2,{0xAB,0x9A,0x00,0x00,}}, {0x73F1,2,{0xAB,0x9B,0x00,0x00,}}, {0x73F2,2,{0xE7,0xF5,0x00,0x00,}}, {0x73F3,2,{0xAB,0x9C,0x00,0x00,}}, {0x73F4,2,{0xAB,0x9D,0x00,0x00,}}, {0x73F5,2,{0xAB,0x9E,0x00,0x00,}}, {0x73F6,2,{0xAB,0x9F,0x00,0x00,}}, {0x73F7,2,{0xAB,0xA0,0x00,0x00,}}, {0x73F8,2,{0xAC,0x40,0x00,0x00,}}, {0x73F9,2,{0xAC,0x41,0x00,0x00,}}, {0x73FA,2,{0xAC,0x42,0x00,0x00,}}, {0x73FB,2,{0xAC,0x43,0x00,0x00,}}, {0x73FC,2,{0xAC,0x44,0x00,0x00,}}, {0x73FD,2,{0xAC,0x45,0x00,0x00,}}, {0x73FE,2,{0xAC,0x46,0x00,0x00,}}, {0x73FF,2,{0xAC,0x47,0x00,0x00,}}, {0x7400,2,{0xAC,0x48,0x00,0x00,}}, {0x7401,2,{0xAC,0x49,0x00,0x00,}}, {0x7402,2,{0xAC,0x4A,0x00,0x00,}}, {0x7403,2,{0xC7,0xF2,0x00,0x00,}}, {0x7404,2,{0xAC,0x4B,0x00,0x00,}}, {0x7405,2,{0xC0,0xC5,0x00,0x00,}}, {0x7406,2,{0xC0,0xED,0x00,0x00,}}, {0x7407,2,{0xAC,0x4C,0x00,0x00,}}, {0x7408,2,{0xAC,0x4D,0x00,0x00,}}, {0x7409,2,{0xC1,0xF0,0x00,0x00,}}, {0x740A,2,{0xE7,0xF0,0x00,0x00,}}, {0x740B,2,{0xAC,0x4E,0x00,0x00,}}, {0x740C,2,{0xAC,0x4F,0x00,0x00,}}, {0x740D,2,{0xAC,0x50,0x00,0x00,}}, {0x740E,2,{0xAC,0x51,0x00,0x00,}}, {0x740F,2,{0xE7,0xF6,0x00,0x00,}}, {0x7410,2,{0xCB,0xF6,0x00,0x00,}}, {0x7411,2,{0xAC,0x52,0x00,0x00,}}, {0x7412,2,{0xAC,0x53,0x00,0x00,}}, {0x7413,2,{0xAC,0x54,0x00,0x00,}}, {0x7414,2,{0xAC,0x55,0x00,0x00,}}, {0x7415,2,{0xAC,0x56,0x00,0x00,}}, {0x7416,2,{0xAC,0x57,0x00,0x00,}}, {0x7417,2,{0xAC,0x58,0x00,0x00,}}, {0x7418,2,{0xAC,0x59,0x00,0x00,}}, {0x7419,2,{0xAC,0x5A,0x00,0x00,}}, {0x741A,2,{0xE8,0xA2,0x00,0x00,}}, {0x741B,2,{0xE8,0xA1,0x00,0x00,}}, {0x741C,2,{0xAC,0x5B,0x00,0x00,}}, {0x741D,2,{0xAC,0x5C,0x00,0x00,}}, {0x741E,2,{0xAC,0x5D,0x00,0x00,}}, {0x741F,2,{0xAC,0x5E,0x00,0x00,}}, {0x7420,2,{0xAC,0x5F,0x00,0x00,}}, {0x7421,2,{0xAC,0x60,0x00,0x00,}}, {0x7422,2,{0xD7,0xC1,0x00,0x00,}}, {0x7423,2,{0xAC,0x61,0x00,0x00,}}, {0x7424,2,{0xAC,0x62,0x00,0x00,}}, {0x7425,2,{0xE7,0xFA,0x00,0x00,}}, {0x7426,2,{0xE7,0xF9,0x00,0x00,}}, {0x7427,2,{0xAC,0x63,0x00,0x00,}}, {0x7428,2,{0xE7,0xFB,0x00,0x00,}}, {0x7429,2,{0xAC,0x64,0x00,0x00,}}, {0x742A,2,{0xE7,0xF7,0x00,0x00,}}, {0x742B,2,{0xAC,0x65,0x00,0x00,}}, {0x742C,2,{0xE7,0xFE,0x00,0x00,}}, {0x742D,2,{0xAC,0x66,0x00,0x00,}}, {0x742E,2,{0xE7,0xFD,0x00,0x00,}}, {0x742F,2,{0xAC,0x67,0x00,0x00,}}, {0x7430,2,{0xE7,0xFC,0x00,0x00,}}, {0x7431,2,{0xAC,0x68,0x00,0x00,}}, {0x7432,2,{0xAC,0x69,0x00,0x00,}}, {0x7433,2,{0xC1,0xD5,0x00,0x00,}}, {0x7434,2,{0xC7,0xD9,0x00,0x00,}}, {0x7435,2,{0xC5,0xFD,0x00,0x00,}}, {0x7436,2,{0xC5,0xC3,0x00,0x00,}}, {0x7437,2,{0xAC,0x6A,0x00,0x00,}}, {0x7438,2,{0xAC,0x6B,0x00,0x00,}}, {0x7439,2,{0xAC,0x6C,0x00,0x00,}}, {0x743A,2,{0xAC,0x6D,0x00,0x00,}}, {0x743B,2,{0xAC,0x6E,0x00,0x00,}}, {0x743C,2,{0xC7,0xED,0x00,0x00,}}, {0x743D,2,{0xAC,0x6F,0x00,0x00,}}, {0x743E,2,{0xAC,0x70,0x00,0x00,}}, {0x743F,2,{0xAC,0x71,0x00,0x00,}}, {0x7440,2,{0xAC,0x72,0x00,0x00,}}, {0x7441,2,{0xE8,0xA3,0x00,0x00,}}, {0x7442,2,{0xAC,0x73,0x00,0x00,}}, {0x7443,2,{0xAC,0x74,0x00,0x00,}}, {0x7444,2,{0xAC,0x75,0x00,0x00,}}, {0x7445,2,{0xAC,0x76,0x00,0x00,}}, {0x7446,2,{0xAC,0x77,0x00,0x00,}}, {0x7447,2,{0xAC,0x78,0x00,0x00,}}, {0x7448,2,{0xAC,0x79,0x00,0x00,}}, {0x7449,2,{0xAC,0x7A,0x00,0x00,}}, {0x744A,2,{0xAC,0x7B,0x00,0x00,}}, {0x744B,2,{0xAC,0x7C,0x00,0x00,}}, {0x744C,2,{0xAC,0x7D,0x00,0x00,}}, {0x744D,2,{0xAC,0x7E,0x00,0x00,}}, {0x744E,2,{0xAC,0x80,0x00,0x00,}}, {0x744F,2,{0xAC,0x81,0x00,0x00,}}, {0x7450,2,{0xAC,0x82,0x00,0x00,}}, {0x7451,2,{0xAC,0x83,0x00,0x00,}}, {0x7452,2,{0xAC,0x84,0x00,0x00,}}, {0x7453,2,{0xAC,0x85,0x00,0x00,}}, {0x7454,2,{0xAC,0x86,0x00,0x00,}}, {0x7455,2,{0xE8,0xA6,0x00,0x00,}}, {0x7456,2,{0xAC,0x87,0x00,0x00,}}, {0x7457,2,{0xE8,0xA5,0x00,0x00,}}, {0x7458,2,{0xAC,0x88,0x00,0x00,}}, {0x7459,2,{0xE8,0xA7,0x00,0x00,}}, {0x745A,2,{0xBA,0xF7,0x00,0x00,}}, {0x745B,2,{0xE7,0xF8,0x00,0x00,}}, {0x745C,2,{0xE8,0xA4,0x00,0x00,}}, {0x745D,2,{0xAC,0x89,0x00,0x00,}}, {0x745E,2,{0xC8,0xF0,0x00,0x00,}}, {0x745F,2,{0xC9,0xAA,0x00,0x00,}}, {0x7460,2,{0xAC,0x8A,0x00,0x00,}}, {0x7461,2,{0xAC,0x8B,0x00,0x00,}}, {0x7462,2,{0xAC,0x8C,0x00,0x00,}}, {0x7463,2,{0xAC,0x8D,0x00,0x00,}}, {0x7464,2,{0xAC,0x8E,0x00,0x00,}}, {0x7465,2,{0xAC,0x8F,0x00,0x00,}}, {0x7466,2,{0xAC,0x90,0x00,0x00,}}, {0x7467,2,{0xAC,0x91,0x00,0x00,}}, {0x7468,2,{0xAC,0x92,0x00,0x00,}}, {0x7469,2,{0xAC,0x93,0x00,0x00,}}, {0x746A,2,{0xAC,0x94,0x00,0x00,}}, {0x746B,2,{0xAC,0x95,0x00,0x00,}}, {0x746C,2,{0xAC,0x96,0x00,0x00,}}, {0x746D,2,{0xE8,0xA9,0x00,0x00,}}, {0x746E,2,{0xAC,0x97,0x00,0x00,}}, {0x746F,2,{0xAC,0x98,0x00,0x00,}}, {0x7470,2,{0xB9,0xE5,0x00,0x00,}}, {0x7471,2,{0xAC,0x99,0x00,0x00,}}, {0x7472,2,{0xAC,0x9A,0x00,0x00,}}, {0x7473,2,{0xAC,0x9B,0x00,0x00,}}, {0x7474,2,{0xAC,0x9C,0x00,0x00,}}, {0x7475,2,{0xAC,0x9D,0x00,0x00,}}, {0x7476,2,{0xD1,0xFE,0x00,0x00,}}, {0x7477,2,{0xE8,0xA8,0x00,0x00,}}, {0x7478,2,{0xAC,0x9E,0x00,0x00,}}, {0x7479,2,{0xAC,0x9F,0x00,0x00,}}, {0x747A,2,{0xAC,0xA0,0x00,0x00,}}, {0x747B,2,{0xAD,0x40,0x00,0x00,}}, {0x747C,2,{0xAD,0x41,0x00,0x00,}}, {0x747D,2,{0xAD,0x42,0x00,0x00,}}, {0x747E,2,{0xE8,0xAA,0x00,0x00,}}, {0x747F,2,{0xAD,0x43,0x00,0x00,}}, {0x7480,2,{0xE8,0xAD,0x00,0x00,}}, {0x7481,2,{0xE8,0xAE,0x00,0x00,}}, {0x7482,2,{0xAD,0x44,0x00,0x00,}}, {0x7483,2,{0xC1,0xA7,0x00,0x00,}}, {0x7484,2,{0xAD,0x45,0x00,0x00,}}, {0x7485,2,{0xAD,0x46,0x00,0x00,}}, {0x7486,2,{0xAD,0x47,0x00,0x00,}}, {0x7487,2,{0xE8,0xAF,0x00,0x00,}}, {0x7488,2,{0xAD,0x48,0x00,0x00,}}, {0x7489,2,{0xAD,0x49,0x00,0x00,}}, {0x748A,2,{0xAD,0x4A,0x00,0x00,}}, {0x748B,2,{0xE8,0xB0,0x00,0x00,}}, {0x748C,2,{0xAD,0x4B,0x00,0x00,}}, {0x748D,2,{0xAD,0x4C,0x00,0x00,}}, {0x748E,2,{0xE8,0xAC,0x00,0x00,}}, {0x748F,2,{0xAD,0x4D,0x00,0x00,}}, {0x7490,2,{0xE8,0xB4,0x00,0x00,}}, {0x7491,2,{0xAD,0x4E,0x00,0x00,}}, {0x7492,2,{0xAD,0x4F,0x00,0x00,}}, {0x7493,2,{0xAD,0x50,0x00,0x00,}}, {0x7494,2,{0xAD,0x51,0x00,0x00,}}, {0x7495,2,{0xAD,0x52,0x00,0x00,}}, {0x7496,2,{0xAD,0x53,0x00,0x00,}}, {0x7497,2,{0xAD,0x54,0x00,0x00,}}, {0x7498,2,{0xAD,0x55,0x00,0x00,}}, {0x7499,2,{0xAD,0x56,0x00,0x00,}}, {0x749A,2,{0xAD,0x57,0x00,0x00,}}, {0x749B,2,{0xAD,0x58,0x00,0x00,}}, {0x749C,2,{0xE8,0xAB,0x00,0x00,}}, {0x749D,2,{0xAD,0x59,0x00,0x00,}}, {0x749E,2,{0xE8,0xB1,0x00,0x00,}}, {0x749F,2,{0xAD,0x5A,0x00,0x00,}}, {0x74A0,2,{0xAD,0x5B,0x00,0x00,}}, {0x74A1,2,{0xAD,0x5C,0x00,0x00,}}, {0x74A2,2,{0xAD,0x5D,0x00,0x00,}}, {0x74A3,2,{0xAD,0x5E,0x00,0x00,}}, {0x74A4,2,{0xAD,0x5F,0x00,0x00,}}, {0x74A5,2,{0xAD,0x60,0x00,0x00,}}, {0x74A6,2,{0xAD,0x61,0x00,0x00,}}, {0x74A7,2,{0xE8,0xB5,0x00,0x00,}}, {0x74A8,2,{0xE8,0xB2,0x00,0x00,}}, {0x74A9,2,{0xE8,0xB3,0x00,0x00,}}, {0x74AA,2,{0xAD,0x62,0x00,0x00,}}, {0x74AB,2,{0xAD,0x63,0x00,0x00,}}, {0x74AC,2,{0xAD,0x64,0x00,0x00,}}, {0x74AD,2,{0xAD,0x65,0x00,0x00,}}, {0x74AE,2,{0xAD,0x66,0x00,0x00,}}, {0x74AF,2,{0xAD,0x67,0x00,0x00,}}, {0x74B0,2,{0xAD,0x68,0x00,0x00,}}, {0x74B1,2,{0xAD,0x69,0x00,0x00,}}, {0x74B2,2,{0xAD,0x6A,0x00,0x00,}}, {0x74B3,2,{0xAD,0x6B,0x00,0x00,}}, {0x74B4,2,{0xAD,0x6C,0x00,0x00,}}, {0x74B5,2,{0xAD,0x6D,0x00,0x00,}}, {0x74B6,2,{0xAD,0x6E,0x00,0x00,}}, {0x74B7,2,{0xAD,0x6F,0x00,0x00,}}, {0x74B8,2,{0xAD,0x70,0x00,0x00,}}, {0x74B9,2,{0xAD,0x71,0x00,0x00,}}, {0x74BA,2,{0xE8,0xB7,0x00,0x00,}}, {0x74BB,2,{0xAD,0x72,0x00,0x00,}}, {0x74BC,2,{0xAD,0x73,0x00,0x00,}}, {0x74BD,2,{0xAD,0x74,0x00,0x00,}}, {0x74BE,2,{0xAD,0x75,0x00,0x00,}}, {0x74BF,2,{0xAD,0x76,0x00,0x00,}}, {0x74C0,2,{0xAD,0x77,0x00,0x00,}}, {0x74C1,2,{0xAD,0x78,0x00,0x00,}}, {0x74C2,2,{0xAD,0x79,0x00,0x00,}}, {0x74C3,2,{0xAD,0x7A,0x00,0x00,}}, {0x74C4,2,{0xAD,0x7B,0x00,0x00,}}, {0x74C5,2,{0xAD,0x7C,0x00,0x00,}}, {0x74C6,2,{0xAD,0x7D,0x00,0x00,}}, {0x74C7,2,{0xAD,0x7E,0x00,0x00,}}, {0x74C8,2,{0xAD,0x80,0x00,0x00,}}, {0x74C9,2,{0xAD,0x81,0x00,0x00,}}, {0x74CA,2,{0xAD,0x82,0x00,0x00,}}, {0x74CB,2,{0xAD,0x83,0x00,0x00,}}, {0x74CC,2,{0xAD,0x84,0x00,0x00,}}, {0x74CD,2,{0xAD,0x85,0x00,0x00,}}, {0x74CE,2,{0xAD,0x86,0x00,0x00,}}, {0x74CF,2,{0xAD,0x87,0x00,0x00,}}, {0x74D0,2,{0xAD,0x88,0x00,0x00,}}, {0x74D1,2,{0xAD,0x89,0x00,0x00,}}, {0x74D2,2,{0xE8,0xB6,0x00,0x00,}}, {0x74D3,2,{0xAD,0x8A,0x00,0x00,}}, {0x74D4,2,{0xAD,0x8B,0x00,0x00,}}, {0x74D5,2,{0xAD,0x8C,0x00,0x00,}}, {0x74D6,2,{0xAD,0x8D,0x00,0x00,}}, {0x74D7,2,{0xAD,0x8E,0x00,0x00,}}, {0x74D8,2,{0xAD,0x8F,0x00,0x00,}}, {0x74D9,2,{0xAD,0x90,0x00,0x00,}}, {0x74DA,2,{0xAD,0x91,0x00,0x00,}}, {0x74DB,2,{0xAD,0x92,0x00,0x00,}}, {0x74DC,2,{0xB9,0xCF,0x00,0x00,}}, {0x74DD,2,{0xAD,0x93,0x00,0x00,}}, {0x74DE,2,{0xF0,0xAC,0x00,0x00,}}, {0x74DF,2,{0xAD,0x94,0x00,0x00,}}, {0x74E0,2,{0xF0,0xAD,0x00,0x00,}}, {0x74E1,2,{0xAD,0x95,0x00,0x00,}}, {0x74E2,2,{0xC6,0xB0,0x00,0x00,}}, {0x74E3,2,{0xB0,0xEA,0x00,0x00,}}, {0x74E4,2,{0xC8,0xBF,0x00,0x00,}}, {0x74E5,2,{0xAD,0x96,0x00,0x00,}}, {0x74E6,2,{0xCD,0xDF,0x00,0x00,}}, {0x74E7,2,{0xAD,0x97,0x00,0x00,}}, {0x74E8,2,{0xAD,0x98,0x00,0x00,}}, {0x74E9,2,{0xAD,0x99,0x00,0x00,}}, {0x74EA,2,{0xAD,0x9A,0x00,0x00,}}, {0x74EB,2,{0xAD,0x9B,0x00,0x00,}}, {0x74EC,2,{0xAD,0x9C,0x00,0x00,}}, {0x74ED,2,{0xAD,0x9D,0x00,0x00,}}, {0x74EE,2,{0xCE,0xCD,0x00,0x00,}}, {0x74EF,2,{0xEA,0xB1,0x00,0x00,}}, {0x74F0,2,{0xAD,0x9E,0x00,0x00,}}, {0x74F1,2,{0xAD,0x9F,0x00,0x00,}}, {0x74F2,2,{0xAD,0xA0,0x00,0x00,}}, {0x74F3,2,{0xAE,0x40,0x00,0x00,}}, {0x74F4,2,{0xEA,0xB2,0x00,0x00,}}, {0x74F5,2,{0xAE,0x41,0x00,0x00,}}, {0x74F6,2,{0xC6,0xBF,0x00,0x00,}}, {0x74F7,2,{0xB4,0xC9,0x00,0x00,}}, {0x74F8,2,{0xAE,0x42,0x00,0x00,}}, {0x74F9,2,{0xAE,0x43,0x00,0x00,}}, {0x74FA,2,{0xAE,0x44,0x00,0x00,}}, {0x74FB,2,{0xAE,0x45,0x00,0x00,}}, {0x74FC,2,{0xAE,0x46,0x00,0x00,}}, {0x74FD,2,{0xAE,0x47,0x00,0x00,}}, {0x74FE,2,{0xAE,0x48,0x00,0x00,}}, {0x74FF,2,{0xEA,0xB3,0x00,0x00,}}, {0x7500,2,{0xAE,0x49,0x00,0x00,}}, {0x7501,2,{0xAE,0x4A,0x00,0x00,}}, {0x7502,2,{0xAE,0x4B,0x00,0x00,}}, {0x7503,2,{0xAE,0x4C,0x00,0x00,}}, {0x7504,2,{0xD5,0xE7,0x00,0x00,}}, {0x7505,2,{0xAE,0x4D,0x00,0x00,}}, {0x7506,2,{0xAE,0x4E,0x00,0x00,}}, {0x7507,2,{0xAE,0x4F,0x00,0x00,}}, {0x7508,2,{0xAE,0x50,0x00,0x00,}}, {0x7509,2,{0xAE,0x51,0x00,0x00,}}, {0x750A,2,{0xAE,0x52,0x00,0x00,}}, {0x750B,2,{0xAE,0x53,0x00,0x00,}}, {0x750C,2,{0xAE,0x54,0x00,0x00,}}, {0x750D,2,{0xDD,0xF9,0x00,0x00,}}, {0x750E,2,{0xAE,0x55,0x00,0x00,}}, {0x750F,2,{0xEA,0xB4,0x00,0x00,}}, {0x7510,2,{0xAE,0x56,0x00,0x00,}}, {0x7511,2,{0xEA,0xB5,0x00,0x00,}}, {0x7512,2,{0xAE,0x57,0x00,0x00,}}, {0x7513,2,{0xEA,0xB6,0x00,0x00,}}, {0x7514,2,{0xAE,0x58,0x00,0x00,}}, {0x7515,2,{0xAE,0x59,0x00,0x00,}}, {0x7516,2,{0xAE,0x5A,0x00,0x00,}}, {0x7517,2,{0xAE,0x5B,0x00,0x00,}}, {0x7518,2,{0xB8,0xCA,0x00,0x00,}}, {0x7519,2,{0xDF,0xB0,0x00,0x00,}}, {0x751A,2,{0xC9,0xF5,0x00,0x00,}}, {0x751B,2,{0xAE,0x5C,0x00,0x00,}}, {0x751C,2,{0xCC,0xF0,0x00,0x00,}}, {0x751D,2,{0xAE,0x5D,0x00,0x00,}}, {0x751E,2,{0xAE,0x5E,0x00,0x00,}}, {0x751F,2,{0xC9,0xFA,0x00,0x00,}}, {0x7520,2,{0xAE,0x5F,0x00,0x00,}}, {0x7521,2,{0xAE,0x60,0x00,0x00,}}, {0x7522,2,{0xAE,0x61,0x00,0x00,}}, {0x7523,2,{0xAE,0x62,0x00,0x00,}}, {0x7524,2,{0xAE,0x63,0x00,0x00,}}, {0x7525,2,{0xC9,0xFB,0x00,0x00,}}, {0x7526,2,{0xAE,0x64,0x00,0x00,}}, {0x7527,2,{0xAE,0x65,0x00,0x00,}}, {0x7528,2,{0xD3,0xC3,0x00,0x00,}}, {0x7529,2,{0xCB,0xA6,0x00,0x00,}}, {0x752A,2,{0xAE,0x66,0x00,0x00,}}, {0x752B,2,{0xB8,0xA6,0x00,0x00,}}, {0x752C,2,{0xF0,0xAE,0x00,0x00,}}, {0x752D,2,{0xB1,0xC2,0x00,0x00,}}, {0x752E,2,{0xAE,0x67,0x00,0x00,}}, {0x752F,2,{0xE5,0xB8,0x00,0x00,}}, {0x7530,2,{0xCC,0xEF,0x00,0x00,}}, {0x7531,2,{0xD3,0xC9,0x00,0x00,}}, {0x7532,2,{0xBC,0xD7,0x00,0x00,}}, {0x7533,2,{0xC9,0xEA,0x00,0x00,}}, {0x7534,2,{0xAE,0x68,0x00,0x00,}}, {0x7535,2,{0xB5,0xE7,0x00,0x00,}}, {0x7536,2,{0xAE,0x69,0x00,0x00,}}, {0x7537,2,{0xC4,0xD0,0x00,0x00,}}, {0x7538,2,{0xB5,0xE9,0x00,0x00,}}, {0x7539,2,{0xAE,0x6A,0x00,0x00,}}, {0x753A,2,{0xEE,0xAE,0x00,0x00,}}, {0x753B,2,{0xBB,0xAD,0x00,0x00,}}, {0x753C,2,{0xAE,0x6B,0x00,0x00,}}, {0x753D,2,{0xAE,0x6C,0x00,0x00,}}, {0x753E,2,{0xE7,0xDE,0x00,0x00,}}, {0x753F,2,{0xAE,0x6D,0x00,0x00,}}, {0x7540,2,{0xEE,0xAF,0x00,0x00,}}, {0x7541,2,{0xAE,0x6E,0x00,0x00,}}, {0x7542,2,{0xAE,0x6F,0x00,0x00,}}, {0x7543,2,{0xAE,0x70,0x00,0x00,}}, {0x7544,2,{0xAE,0x71,0x00,0x00,}}, {0x7545,2,{0xB3,0xA9,0x00,0x00,}}, {0x7546,2,{0xAE,0x72,0x00,0x00,}}, {0x7547,2,{0xAE,0x73,0x00,0x00,}}, {0x7548,2,{0xEE,0xB2,0x00,0x00,}}, {0x7549,2,{0xAE,0x74,0x00,0x00,}}, {0x754A,2,{0xAE,0x75,0x00,0x00,}}, {0x754B,2,{0xEE,0xB1,0x00,0x00,}}, {0x754C,2,{0xBD,0xE7,0x00,0x00,}}, {0x754D,2,{0xAE,0x76,0x00,0x00,}}, {0x754E,2,{0xEE,0xB0,0x00,0x00,}}, {0x754F,2,{0xCE,0xB7,0x00,0x00,}}, {0x7550,2,{0xAE,0x77,0x00,0x00,}}, {0x7551,2,{0xAE,0x78,0x00,0x00,}}, {0x7552,2,{0xAE,0x79,0x00,0x00,}}, {0x7553,2,{0xAE,0x7A,0x00,0x00,}}, {0x7554,2,{0xC5,0xCF,0x00,0x00,}}, {0x7555,2,{0xAE,0x7B,0x00,0x00,}}, {0x7556,2,{0xAE,0x7C,0x00,0x00,}}, {0x7557,2,{0xAE,0x7D,0x00,0x00,}}, {0x7558,2,{0xAE,0x7E,0x00,0x00,}}, {0x7559,2,{0xC1,0xF4,0x00,0x00,}}, {0x755A,2,{0xDB,0xCE,0x00,0x00,}}, {0x755B,2,{0xEE,0xB3,0x00,0x00,}}, {0x755C,2,{0xD0,0xF3,0x00,0x00,}}, {0x755D,2,{0xAE,0x80,0x00,0x00,}}, {0x755E,2,{0xAE,0x81,0x00,0x00,}}, {0x755F,2,{0xAE,0x82,0x00,0x00,}}, {0x7560,2,{0xAE,0x83,0x00,0x00,}}, {0x7561,2,{0xAE,0x84,0x00,0x00,}}, {0x7562,2,{0xAE,0x85,0x00,0x00,}}, {0x7563,2,{0xAE,0x86,0x00,0x00,}}, {0x7564,2,{0xAE,0x87,0x00,0x00,}}, {0x7565,2,{0xC2,0xD4,0x00,0x00,}}, {0x7566,2,{0xC6,0xE8,0x00,0x00,}}, {0x7567,2,{0xAE,0x88,0x00,0x00,}}, {0x7568,2,{0xAE,0x89,0x00,0x00,}}, {0x7569,2,{0xAE,0x8A,0x00,0x00,}}, {0x756A,2,{0xB7,0xAC,0x00,0x00,}}, {0x756B,2,{0xAE,0x8B,0x00,0x00,}}, {0x756C,2,{0xAE,0x8C,0x00,0x00,}}, {0x756D,2,{0xAE,0x8D,0x00,0x00,}}, {0x756E,2,{0xAE,0x8E,0x00,0x00,}}, {0x756F,2,{0xAE,0x8F,0x00,0x00,}}, {0x7570,2,{0xAE,0x90,0x00,0x00,}}, {0x7571,2,{0xAE,0x91,0x00,0x00,}}, {0x7572,2,{0xEE,0xB4,0x00,0x00,}}, {0x7573,2,{0xAE,0x92,0x00,0x00,}}, {0x7574,2,{0xB3,0xEB,0x00,0x00,}}, {0x7575,2,{0xAE,0x93,0x00,0x00,}}, {0x7576,2,{0xAE,0x94,0x00,0x00,}}, {0x7577,2,{0xAE,0x95,0x00,0x00,}}, {0x7578,2,{0xBB,0xFB,0x00,0x00,}}, {0x7579,2,{0xEE,0xB5,0x00,0x00,}}, {0x757A,2,{0xAE,0x96,0x00,0x00,}}, {0x757B,2,{0xAE,0x97,0x00,0x00,}}, {0x757C,2,{0xAE,0x98,0x00,0x00,}}, {0x757D,2,{0xAE,0x99,0x00,0x00,}}, {0x757E,2,{0xAE,0x9A,0x00,0x00,}}, {0x757F,2,{0xE7,0xDC,0x00,0x00,}}, {0x7580,2,{0xAE,0x9B,0x00,0x00,}}, {0x7581,2,{0xAE,0x9C,0x00,0x00,}}, {0x7582,2,{0xAE,0x9D,0x00,0x00,}}, {0x7583,2,{0xEE,0xB6,0x00,0x00,}}, {0x7584,2,{0xAE,0x9E,0x00,0x00,}}, {0x7585,2,{0xAE,0x9F,0x00,0x00,}}, {0x7586,2,{0xBD,0xAE,0x00,0x00,}}, {0x7587,2,{0xAE,0xA0,0x00,0x00,}}, {0x7588,2,{0xAF,0x40,0x00,0x00,}}, {0x7589,2,{0xAF,0x41,0x00,0x00,}}, {0x758A,2,{0xAF,0x42,0x00,0x00,}}, {0x758B,2,{0xF1,0xE2,0x00,0x00,}}, {0x758C,2,{0xAF,0x43,0x00,0x00,}}, {0x758D,2,{0xAF,0x44,0x00,0x00,}}, {0x758E,2,{0xAF,0x45,0x00,0x00,}}, {0x758F,2,{0xCA,0xE8,0x00,0x00,}}, {0x7590,2,{0xAF,0x46,0x00,0x00,}}, {0x7591,2,{0xD2,0xC9,0x00,0x00,}}, {0x7592,2,{0xF0,0xDA,0x00,0x00,}}, {0x7593,2,{0xAF,0x47,0x00,0x00,}}, {0x7594,2,{0xF0,0xDB,0x00,0x00,}}, {0x7595,2,{0xAF,0x48,0x00,0x00,}}, {0x7596,2,{0xF0,0xDC,0x00,0x00,}}, {0x7597,2,{0xC1,0xC6,0x00,0x00,}}, {0x7598,2,{0xAF,0x49,0x00,0x00,}}, {0x7599,2,{0xB8,0xED,0x00,0x00,}}, {0x759A,2,{0xBE,0xCE,0x00,0x00,}}, {0x759B,2,{0xAF,0x4A,0x00,0x00,}}, {0x759C,2,{0xAF,0x4B,0x00,0x00,}}, {0x759D,2,{0xF0,0xDE,0x00,0x00,}}, {0x759E,2,{0xAF,0x4C,0x00,0x00,}}, {0x759F,2,{0xC5,0xB1,0x00,0x00,}}, {0x75A0,2,{0xF0,0xDD,0x00,0x00,}}, {0x75A1,2,{0xD1,0xF1,0x00,0x00,}}, {0x75A2,2,{0xAF,0x4D,0x00,0x00,}}, {0x75A3,2,{0xF0,0xE0,0x00,0x00,}}, {0x75A4,2,{0xB0,0xCC,0x00,0x00,}}, {0x75A5,2,{0xBD,0xEA,0x00,0x00,}}, {0x75A6,2,{0xAF,0x4E,0x00,0x00,}}, {0x75A7,2,{0xAF,0x4F,0x00,0x00,}}, {0x75A8,2,{0xAF,0x50,0x00,0x00,}}, {0x75A9,2,{0xAF,0x51,0x00,0x00,}}, {0x75AA,2,{0xAF,0x52,0x00,0x00,}}, {0x75AB,2,{0xD2,0xDF,0x00,0x00,}}, {0x75AC,2,{0xF0,0xDF,0x00,0x00,}}, {0x75AD,2,{0xAF,0x53,0x00,0x00,}}, {0x75AE,2,{0xB4,0xAF,0x00,0x00,}}, {0x75AF,2,{0xB7,0xE8,0x00,0x00,}}, {0x75B0,2,{0xF0,0xE6,0x00,0x00,}}, {0x75B1,2,{0xF0,0xE5,0x00,0x00,}}, {0x75B2,2,{0xC6,0xA3,0x00,0x00,}}, {0x75B3,2,{0xF0,0xE1,0x00,0x00,}}, {0x75B4,2,{0xF0,0xE2,0x00,0x00,}}, {0x75B5,2,{0xB4,0xC3,0x00,0x00,}}, {0x75B6,2,{0xAF,0x54,0x00,0x00,}}, {0x75B7,2,{0xAF,0x55,0x00,0x00,}}, {0x75B8,2,{0xF0,0xE3,0x00,0x00,}}, {0x75B9,2,{0xD5,0xEE,0x00,0x00,}}, {0x75BA,2,{0xAF,0x56,0x00,0x00,}}, {0x75BB,2,{0xAF,0x57,0x00,0x00,}}, {0x75BC,2,{0xCC,0xDB,0x00,0x00,}}, {0x75BD,2,{0xBE,0xD2,0x00,0x00,}}, {0x75BE,2,{0xBC,0xB2,0x00,0x00,}}, {0x75BF,2,{0xAF,0x58,0x00,0x00,}}, {0x75C0,2,{0xAF,0x59,0x00,0x00,}}, {0x75C1,2,{0xAF,0x5A,0x00,0x00,}}, {0x75C2,2,{0xF0,0xE8,0x00,0x00,}}, {0x75C3,2,{0xF0,0xE7,0x00,0x00,}}, {0x75C4,2,{0xF0,0xE4,0x00,0x00,}}, {0x75C5,2,{0xB2,0xA1,0x00,0x00,}}, {0x75C6,2,{0xAF,0x5B,0x00,0x00,}}, {0x75C7,2,{0xD6,0xA2,0x00,0x00,}}, {0x75C8,2,{0xD3,0xB8,0x00,0x00,}}, {0x75C9,2,{0xBE,0xB7,0x00,0x00,}}, {0x75CA,2,{0xC8,0xAC,0x00,0x00,}}, {0x75CB,2,{0xAF,0x5C,0x00,0x00,}}, {0x75CC,2,{0xAF,0x5D,0x00,0x00,}}, {0x75CD,2,{0xF0,0xEA,0x00,0x00,}}, {0x75CE,2,{0xAF,0x5E,0x00,0x00,}}, {0x75CF,2,{0xAF,0x5F,0x00,0x00,}}, {0x75D0,2,{0xAF,0x60,0x00,0x00,}}, {0x75D1,2,{0xAF,0x61,0x00,0x00,}}, {0x75D2,2,{0xD1,0xF7,0x00,0x00,}}, {0x75D3,2,{0xAF,0x62,0x00,0x00,}}, {0x75D4,2,{0xD6,0xCC,0x00,0x00,}}, {0x75D5,2,{0xBA,0xDB,0x00,0x00,}}, {0x75D6,2,{0xF0,0xE9,0x00,0x00,}}, {0x75D7,2,{0xAF,0x63,0x00,0x00,}}, {0x75D8,2,{0xB6,0xBB,0x00,0x00,}}, {0x75D9,2,{0xAF,0x64,0x00,0x00,}}, {0x75DA,2,{0xAF,0x65,0x00,0x00,}}, {0x75DB,2,{0xCD,0xB4,0x00,0x00,}}, {0x75DC,2,{0xAF,0x66,0x00,0x00,}}, {0x75DD,2,{0xAF,0x67,0x00,0x00,}}, {0x75DE,2,{0xC6,0xA6,0x00,0x00,}}, {0x75DF,2,{0xAF,0x68,0x00,0x00,}}, {0x75E0,2,{0xAF,0x69,0x00,0x00,}}, {0x75E1,2,{0xAF,0x6A,0x00,0x00,}}, {0x75E2,2,{0xC1,0xA1,0x00,0x00,}}, {0x75E3,2,{0xF0,0xEB,0x00,0x00,}}, {0x75E4,2,{0xF0,0xEE,0x00,0x00,}}, {0x75E5,2,{0xAF,0x6B,0x00,0x00,}}, {0x75E6,2,{0xF0,0xED,0x00,0x00,}}, {0x75E7,2,{0xF0,0xF0,0x00,0x00,}}, {0x75E8,2,{0xF0,0xEC,0x00,0x00,}}, {0x75E9,2,{0xAF,0x6C,0x00,0x00,}}, {0x75EA,2,{0xBB,0xBE,0x00,0x00,}}, {0x75EB,2,{0xF0,0xEF,0x00,0x00,}}, {0x75EC,2,{0xAF,0x6D,0x00,0x00,}}, {0x75ED,2,{0xAF,0x6E,0x00,0x00,}}, {0x75EE,2,{0xAF,0x6F,0x00,0x00,}}, {0x75EF,2,{0xAF,0x70,0x00,0x00,}}, {0x75F0,2,{0xCC,0xB5,0x00,0x00,}}, {0x75F1,2,{0xF0,0xF2,0x00,0x00,}}, {0x75F2,2,{0xAF,0x71,0x00,0x00,}}, {0x75F3,2,{0xAF,0x72,0x00,0x00,}}, {0x75F4,2,{0xB3,0xD5,0x00,0x00,}}, {0x75F5,2,{0xAF,0x73,0x00,0x00,}}, {0x75F6,2,{0xAF,0x74,0x00,0x00,}}, {0x75F7,2,{0xAF,0x75,0x00,0x00,}}, {0x75F8,2,{0xAF,0x76,0x00,0x00,}}, {0x75F9,2,{0xB1,0xD4,0x00,0x00,}}, {0x75FA,2,{0xAF,0x77,0x00,0x00,}}, {0x75FB,2,{0xAF,0x78,0x00,0x00,}}, {0x75FC,2,{0xF0,0xF3,0x00,0x00,}}, {0x75FD,2,{0xAF,0x79,0x00,0x00,}}, {0x75FE,2,{0xAF,0x7A,0x00,0x00,}}, {0x75FF,2,{0xF0,0xF4,0x00,0x00,}}, {0x7600,2,{0xF0,0xF6,0x00,0x00,}}, {0x7601,2,{0xB4,0xE1,0x00,0x00,}}, {0x7602,2,{0xAF,0x7B,0x00,0x00,}}, {0x7603,2,{0xF0,0xF1,0x00,0x00,}}, {0x7604,2,{0xAF,0x7C,0x00,0x00,}}, {0x7605,2,{0xF0,0xF7,0x00,0x00,}}, {0x7606,2,{0xAF,0x7D,0x00,0x00,}}, {0x7607,2,{0xAF,0x7E,0x00,0x00,}}, {0x7608,2,{0xAF,0x80,0x00,0x00,}}, {0x7609,2,{0xAF,0x81,0x00,0x00,}}, {0x760A,2,{0xF0,0xFA,0x00,0x00,}}, {0x760B,2,{0xAF,0x82,0x00,0x00,}}, {0x760C,2,{0xF0,0xF8,0x00,0x00,}}, {0x760D,2,{0xAF,0x83,0x00,0x00,}}, {0x760E,2,{0xAF,0x84,0x00,0x00,}}, {0x760F,2,{0xAF,0x85,0x00,0x00,}}, {0x7610,2,{0xF0,0xF5,0x00,0x00,}}, {0x7611,2,{0xAF,0x86,0x00,0x00,}}, {0x7612,2,{0xAF,0x87,0x00,0x00,}}, {0x7613,2,{0xAF,0x88,0x00,0x00,}}, {0x7614,2,{0xAF,0x89,0x00,0x00,}}, {0x7615,2,{0xF0,0xFD,0x00,0x00,}}, {0x7616,2,{0xAF,0x8A,0x00,0x00,}}, {0x7617,2,{0xF0,0xF9,0x00,0x00,}}, {0x7618,2,{0xF0,0xFC,0x00,0x00,}}, {0x7619,2,{0xF0,0xFE,0x00,0x00,}}, {0x761A,2,{0xAF,0x8B,0x00,0x00,}}, {0x761B,2,{0xF1,0xA1,0x00,0x00,}}, {0x761C,2,{0xAF,0x8C,0x00,0x00,}}, {0x761D,2,{0xAF,0x8D,0x00,0x00,}}, {0x761E,2,{0xAF,0x8E,0x00,0x00,}}, {0x761F,2,{0xCE,0xC1,0x00,0x00,}}, {0x7620,2,{0xF1,0xA4,0x00,0x00,}}, {0x7621,2,{0xAF,0x8F,0x00,0x00,}}, {0x7622,2,{0xF1,0xA3,0x00,0x00,}}, {0x7623,2,{0xAF,0x90,0x00,0x00,}}, {0x7624,2,{0xC1,0xF6,0x00,0x00,}}, {0x7625,2,{0xF0,0xFB,0x00,0x00,}}, {0x7626,2,{0xCA,0xDD,0x00,0x00,}}, {0x7627,2,{0xAF,0x91,0x00,0x00,}}, {0x7628,2,{0xAF,0x92,0x00,0x00,}}, {0x7629,2,{0xB4,0xF1,0x00,0x00,}}, {0x762A,2,{0xB1,0xF1,0x00,0x00,}}, {0x762B,2,{0xCC,0xB1,0x00,0x00,}}, {0x762C,2,{0xAF,0x93,0x00,0x00,}}, {0x762D,2,{0xF1,0xA6,0x00,0x00,}}, {0x762E,2,{0xAF,0x94,0x00,0x00,}}, {0x762F,2,{0xAF,0x95,0x00,0x00,}}, {0x7630,2,{0xF1,0xA7,0x00,0x00,}}, {0x7631,2,{0xAF,0x96,0x00,0x00,}}, {0x7632,2,{0xAF,0x97,0x00,0x00,}}, {0x7633,2,{0xF1,0xAC,0x00,0x00,}}, {0x7634,2,{0xD5,0xCE,0x00,0x00,}}, {0x7635,2,{0xF1,0xA9,0x00,0x00,}}, {0x7636,2,{0xAF,0x98,0x00,0x00,}}, {0x7637,2,{0xAF,0x99,0x00,0x00,}}, {0x7638,2,{0xC8,0xB3,0x00,0x00,}}, {0x7639,2,{0xAF,0x9A,0x00,0x00,}}, {0x763A,2,{0xAF,0x9B,0x00,0x00,}}, {0x763B,2,{0xAF,0x9C,0x00,0x00,}}, {0x763C,2,{0xF1,0xA2,0x00,0x00,}}, {0x763D,2,{0xAF,0x9D,0x00,0x00,}}, {0x763E,2,{0xF1,0xAB,0x00,0x00,}}, {0x763F,2,{0xF1,0xA8,0x00,0x00,}}, {0x7640,2,{0xF1,0xA5,0x00,0x00,}}, {0x7641,2,{0xAF,0x9E,0x00,0x00,}}, {0x7642,2,{0xAF,0x9F,0x00,0x00,}}, {0x7643,2,{0xF1,0xAA,0x00,0x00,}}, {0x7644,2,{0xAF,0xA0,0x00,0x00,}}, {0x7645,2,{0xB0,0x40,0x00,0x00,}}, {0x7646,2,{0xB0,0x41,0x00,0x00,}}, {0x7647,2,{0xB0,0x42,0x00,0x00,}}, {0x7648,2,{0xB0,0x43,0x00,0x00,}}, {0x7649,2,{0xB0,0x44,0x00,0x00,}}, {0x764A,2,{0xB0,0x45,0x00,0x00,}}, {0x764B,2,{0xB0,0x46,0x00,0x00,}}, {0x764C,2,{0xB0,0xA9,0x00,0x00,}}, {0x764D,2,{0xF1,0xAD,0x00,0x00,}}, {0x764E,2,{0xB0,0x47,0x00,0x00,}}, {0x764F,2,{0xB0,0x48,0x00,0x00,}}, {0x7650,2,{0xB0,0x49,0x00,0x00,}}, {0x7651,2,{0xB0,0x4A,0x00,0x00,}}, {0x7652,2,{0xB0,0x4B,0x00,0x00,}}, {0x7653,2,{0xB0,0x4C,0x00,0x00,}}, {0x7654,2,{0xF1,0xAF,0x00,0x00,}}, {0x7655,2,{0xB0,0x4D,0x00,0x00,}}, {0x7656,2,{0xF1,0xB1,0x00,0x00,}}, {0x7657,2,{0xB0,0x4E,0x00,0x00,}}, {0x7658,2,{0xB0,0x4F,0x00,0x00,}}, {0x7659,2,{0xB0,0x50,0x00,0x00,}}, {0x765A,2,{0xB0,0x51,0x00,0x00,}}, {0x765B,2,{0xB0,0x52,0x00,0x00,}}, {0x765C,2,{0xF1,0xB0,0x00,0x00,}}, {0x765D,2,{0xB0,0x53,0x00,0x00,}}, {0x765E,2,{0xF1,0xAE,0x00,0x00,}}, {0x765F,2,{0xB0,0x54,0x00,0x00,}}, {0x7660,2,{0xB0,0x55,0x00,0x00,}}, {0x7661,2,{0xB0,0x56,0x00,0x00,}}, {0x7662,2,{0xB0,0x57,0x00,0x00,}}, {0x7663,2,{0xD1,0xA2,0x00,0x00,}}, {0x7664,2,{0xB0,0x58,0x00,0x00,}}, {0x7665,2,{0xB0,0x59,0x00,0x00,}}, {0x7666,2,{0xB0,0x5A,0x00,0x00,}}, {0x7667,2,{0xB0,0x5B,0x00,0x00,}}, {0x7668,2,{0xB0,0x5C,0x00,0x00,}}, {0x7669,2,{0xB0,0x5D,0x00,0x00,}}, {0x766A,2,{0xB0,0x5E,0x00,0x00,}}, {0x766B,2,{0xF1,0xB2,0x00,0x00,}}, {0x766C,2,{0xB0,0x5F,0x00,0x00,}}, {0x766D,2,{0xB0,0x60,0x00,0x00,}}, {0x766E,2,{0xB0,0x61,0x00,0x00,}}, {0x766F,2,{0xF1,0xB3,0x00,0x00,}}, {0x7670,2,{0xB0,0x62,0x00,0x00,}}, {0x7671,2,{0xB0,0x63,0x00,0x00,}}, {0x7672,2,{0xB0,0x64,0x00,0x00,}}, {0x7673,2,{0xB0,0x65,0x00,0x00,}}, {0x7674,2,{0xB0,0x66,0x00,0x00,}}, {0x7675,2,{0xB0,0x67,0x00,0x00,}}, {0x7676,2,{0xB0,0x68,0x00,0x00,}}, {0x7677,2,{0xB0,0x69,0x00,0x00,}}, {0x7678,2,{0xB9,0xEF,0x00,0x00,}}, {0x7679,2,{0xB0,0x6A,0x00,0x00,}}, {0x767A,2,{0xB0,0x6B,0x00,0x00,}}, {0x767B,2,{0xB5,0xC7,0x00,0x00,}}, {0x767C,2,{0xB0,0x6C,0x00,0x00,}}, {0x767D,2,{0xB0,0xD7,0x00,0x00,}}, {0x767E,2,{0xB0,0xD9,0x00,0x00,}}, {0x767F,2,{0xB0,0x6D,0x00,0x00,}}, {0x7680,2,{0xB0,0x6E,0x00,0x00,}}, {0x7681,2,{0xB0,0x6F,0x00,0x00,}}, {0x7682,2,{0xD4,0xED,0x00,0x00,}}, {0x7683,2,{0xB0,0x70,0x00,0x00,}}, {0x7684,2,{0xB5,0xC4,0x00,0x00,}}, {0x7685,2,{0xB0,0x71,0x00,0x00,}}, {0x7686,2,{0xBD,0xD4,0x00,0x00,}}, {0x7687,2,{0xBB,0xCA,0x00,0x00,}}, {0x7688,2,{0xF0,0xA7,0x00,0x00,}}, {0x7689,2,{0xB0,0x72,0x00,0x00,}}, {0x768A,2,{0xB0,0x73,0x00,0x00,}}, {0x768B,2,{0xB8,0xDE,0x00,0x00,}}, {0x768C,2,{0xB0,0x74,0x00,0x00,}}, {0x768D,2,{0xB0,0x75,0x00,0x00,}}, {0x768E,2,{0xF0,0xA8,0x00,0x00,}}, {0x768F,2,{0xB0,0x76,0x00,0x00,}}, {0x7690,2,{0xB0,0x77,0x00,0x00,}}, {0x7691,2,{0xB0,0xA8,0x00,0x00,}}, {0x7692,2,{0xB0,0x78,0x00,0x00,}}, {0x7693,2,{0xF0,0xA9,0x00,0x00,}}, {0x7694,2,{0xB0,0x79,0x00,0x00,}}, {0x7695,2,{0xB0,0x7A,0x00,0x00,}}, {0x7696,2,{0xCD,0xEE,0x00,0x00,}}, {0x7697,2,{0xB0,0x7B,0x00,0x00,}}, {0x7698,2,{0xB0,0x7C,0x00,0x00,}}, {0x7699,2,{0xF0,0xAA,0x00,0x00,}}, {0x769A,2,{0xB0,0x7D,0x00,0x00,}}, {0x769B,2,{0xB0,0x7E,0x00,0x00,}}, {0x769C,2,{0xB0,0x80,0x00,0x00,}}, {0x769D,2,{0xB0,0x81,0x00,0x00,}}, {0x769E,2,{0xB0,0x82,0x00,0x00,}}, {0x769F,2,{0xB0,0x83,0x00,0x00,}}, {0x76A0,2,{0xB0,0x84,0x00,0x00,}}, {0x76A1,2,{0xB0,0x85,0x00,0x00,}}, {0x76A2,2,{0xB0,0x86,0x00,0x00,}}, {0x76A3,2,{0xB0,0x87,0x00,0x00,}}, {0x76A4,2,{0xF0,0xAB,0x00,0x00,}}, {0x76A5,2,{0xB0,0x88,0x00,0x00,}}, {0x76A6,2,{0xB0,0x89,0x00,0x00,}}, {0x76A7,2,{0xB0,0x8A,0x00,0x00,}}, {0x76A8,2,{0xB0,0x8B,0x00,0x00,}}, {0x76A9,2,{0xB0,0x8C,0x00,0x00,}}, {0x76AA,2,{0xB0,0x8D,0x00,0x00,}}, {0x76AB,2,{0xB0,0x8E,0x00,0x00,}}, {0x76AC,2,{0xB0,0x8F,0x00,0x00,}}, {0x76AD,2,{0xB0,0x90,0x00,0x00,}}, {0x76AE,2,{0xC6,0xA4,0x00,0x00,}}, {0x76AF,2,{0xB0,0x91,0x00,0x00,}}, {0x76B0,2,{0xB0,0x92,0x00,0x00,}}, {0x76B1,2,{0xD6,0xE5,0x00,0x00,}}, {0x76B2,2,{0xF1,0xE4,0x00,0x00,}}, {0x76B3,2,{0xB0,0x93,0x00,0x00,}}, {0x76B4,2,{0xF1,0xE5,0x00,0x00,}}, {0x76B5,2,{0xB0,0x94,0x00,0x00,}}, {0x76B6,2,{0xB0,0x95,0x00,0x00,}}, {0x76B7,2,{0xB0,0x96,0x00,0x00,}}, {0x76B8,2,{0xB0,0x97,0x00,0x00,}}, {0x76B9,2,{0xB0,0x98,0x00,0x00,}}, {0x76BA,2,{0xB0,0x99,0x00,0x00,}}, {0x76BB,2,{0xB0,0x9A,0x00,0x00,}}, {0x76BC,2,{0xB0,0x9B,0x00,0x00,}}, {0x76BD,2,{0xB0,0x9C,0x00,0x00,}}, {0x76BE,2,{0xB0,0x9D,0x00,0x00,}}, {0x76BF,2,{0xC3,0xF3,0x00,0x00,}}, {0x76C0,2,{0xB0,0x9E,0x00,0x00,}}, {0x76C1,2,{0xB0,0x9F,0x00,0x00,}}, {0x76C2,2,{0xD3,0xDB,0x00,0x00,}}, {0x76C3,2,{0xB0,0xA0,0x00,0x00,}}, {0x76C4,2,{0xB1,0x40,0x00,0x00,}}, {0x76C5,2,{0xD6,0xD1,0x00,0x00,}}, {0x76C6,2,{0xC5,0xE8,0x00,0x00,}}, {0x76C7,2,{0xB1,0x41,0x00,0x00,}}, {0x76C8,2,{0xD3,0xAF,0x00,0x00,}}, {0x76C9,2,{0xB1,0x42,0x00,0x00,}}, {0x76CA,2,{0xD2,0xE6,0x00,0x00,}}, {0x76CB,2,{0xB1,0x43,0x00,0x00,}}, {0x76CC,2,{0xB1,0x44,0x00,0x00,}}, {0x76CD,2,{0xEE,0xC1,0x00,0x00,}}, {0x76CE,2,{0xB0,0xBB,0x00,0x00,}}, {0x76CF,2,{0xD5,0xB5,0x00,0x00,}}, {0x76D0,2,{0xD1,0xCE,0x00,0x00,}}, {0x76D1,2,{0xBC,0xE0,0x00,0x00,}}, {0x76D2,2,{0xBA,0xD0,0x00,0x00,}}, {0x76D3,2,{0xB1,0x45,0x00,0x00,}}, {0x76D4,2,{0xBF,0xF8,0x00,0x00,}}, {0x76D5,2,{0xB1,0x46,0x00,0x00,}}, {0x76D6,2,{0xB8,0xC7,0x00,0x00,}}, {0x76D7,2,{0xB5,0xC1,0x00,0x00,}}, {0x76D8,2,{0xC5,0xCC,0x00,0x00,}}, {0x76D9,2,{0xB1,0x47,0x00,0x00,}}, {0x76DA,2,{0xB1,0x48,0x00,0x00,}}, {0x76DB,2,{0xCA,0xA2,0x00,0x00,}}, {0x76DC,2,{0xB1,0x49,0x00,0x00,}}, {0x76DD,2,{0xB1,0x4A,0x00,0x00,}}, {0x76DE,2,{0xB1,0x4B,0x00,0x00,}}, {0x76DF,2,{0xC3,0xCB,0x00,0x00,}}, {0x76E0,2,{0xB1,0x4C,0x00,0x00,}}, {0x76E1,2,{0xB1,0x4D,0x00,0x00,}}, {0x76E2,2,{0xB1,0x4E,0x00,0x00,}}, {0x76E3,2,{0xB1,0x4F,0x00,0x00,}}, {0x76E4,2,{0xB1,0x50,0x00,0x00,}}, {0x76E5,2,{0xEE,0xC2,0x00,0x00,}}, {0x76E6,2,{0xB1,0x51,0x00,0x00,}}, {0x76E7,2,{0xB1,0x52,0x00,0x00,}}, {0x76E8,2,{0xB1,0x53,0x00,0x00,}}, {0x76E9,2,{0xB1,0x54,0x00,0x00,}}, {0x76EA,2,{0xB1,0x55,0x00,0x00,}}, {0x76EB,2,{0xB1,0x56,0x00,0x00,}}, {0x76EC,2,{0xB1,0x57,0x00,0x00,}}, {0x76ED,2,{0xB1,0x58,0x00,0x00,}}, {0x76EE,2,{0xC4,0xBF,0x00,0x00,}}, {0x76EF,2,{0xB6,0xA2,0x00,0x00,}}, {0x76F0,2,{0xB1,0x59,0x00,0x00,}}, {0x76F1,2,{0xED,0xEC,0x00,0x00,}}, {0x76F2,2,{0xC3,0xA4,0x00,0x00,}}, {0x76F3,2,{0xB1,0x5A,0x00,0x00,}}, {0x76F4,2,{0xD6,0xB1,0x00,0x00,}}, {0x76F5,2,{0xB1,0x5B,0x00,0x00,}}, {0x76F6,2,{0xB1,0x5C,0x00,0x00,}}, {0x76F7,2,{0xB1,0x5D,0x00,0x00,}}, {0x76F8,2,{0xCF,0xE0,0x00,0x00,}}, {0x76F9,2,{0xED,0xEF,0x00,0x00,}}, {0x76FA,2,{0xB1,0x5E,0x00,0x00,}}, {0x76FB,2,{0xB1,0x5F,0x00,0x00,}}, {0x76FC,2,{0xC5,0xCE,0x00,0x00,}}, {0x76FD,2,{0xB1,0x60,0x00,0x00,}}, {0x76FE,2,{0xB6,0xDC,0x00,0x00,}}, {0x76FF,2,{0xB1,0x61,0x00,0x00,}}, {0x7700,2,{0xB1,0x62,0x00,0x00,}}, {0x7701,2,{0xCA,0xA1,0x00,0x00,}}, {0x7702,2,{0xB1,0x63,0x00,0x00,}}, {0x7703,2,{0xB1,0x64,0x00,0x00,}}, {0x7704,2,{0xED,0xED,0x00,0x00,}}, {0x7705,2,{0xB1,0x65,0x00,0x00,}}, {0x7706,2,{0xB1,0x66,0x00,0x00,}}, {0x7707,2,{0xED,0xF0,0x00,0x00,}}, {0x7708,2,{0xED,0xF1,0x00,0x00,}}, {0x7709,2,{0xC3,0xBC,0x00,0x00,}}, {0x770A,2,{0xB1,0x67,0x00,0x00,}}, {0x770B,2,{0xBF,0xB4,0x00,0x00,}}, {0x770C,2,{0xB1,0x68,0x00,0x00,}}, {0x770D,2,{0xED,0xEE,0x00,0x00,}}, {0x770E,2,{0xB1,0x69,0x00,0x00,}}, {0x770F,2,{0xB1,0x6A,0x00,0x00,}}, {0x7710,2,{0xB1,0x6B,0x00,0x00,}}, {0x7711,2,{0xB1,0x6C,0x00,0x00,}}, {0x7712,2,{0xB1,0x6D,0x00,0x00,}}, {0x7713,2,{0xB1,0x6E,0x00,0x00,}}, {0x7714,2,{0xB1,0x6F,0x00,0x00,}}, {0x7715,2,{0xB1,0x70,0x00,0x00,}}, {0x7716,2,{0xB1,0x71,0x00,0x00,}}, {0x7717,2,{0xB1,0x72,0x00,0x00,}}, {0x7718,2,{0xB1,0x73,0x00,0x00,}}, {0x7719,2,{0xED,0xF4,0x00,0x00,}}, {0x771A,2,{0xED,0xF2,0x00,0x00,}}, {0x771B,2,{0xB1,0x74,0x00,0x00,}}, {0x771C,2,{0xB1,0x75,0x00,0x00,}}, {0x771D,2,{0xB1,0x76,0x00,0x00,}}, {0x771E,2,{0xB1,0x77,0x00,0x00,}}, {0x771F,2,{0xD5,0xE6,0x00,0x00,}}, {0x7720,2,{0xC3,0xDF,0x00,0x00,}}, {0x7721,2,{0xB1,0x78,0x00,0x00,}}, {0x7722,2,{0xED,0xF3,0x00,0x00,}}, {0x7723,2,{0xB1,0x79,0x00,0x00,}}, {0x7724,2,{0xB1,0x7A,0x00,0x00,}}, {0x7725,2,{0xB1,0x7B,0x00,0x00,}}, {0x7726,2,{0xED,0xF6,0x00,0x00,}}, {0x7727,2,{0xB1,0x7C,0x00,0x00,}}, {0x7728,2,{0xD5,0xA3,0x00,0x00,}}, {0x7729,2,{0xD1,0xA3,0x00,0x00,}}, {0x772A,2,{0xB1,0x7D,0x00,0x00,}}, {0x772B,2,{0xB1,0x7E,0x00,0x00,}}, {0x772C,2,{0xB1,0x80,0x00,0x00,}}, {0x772D,2,{0xED,0xF5,0x00,0x00,}}, {0x772E,2,{0xB1,0x81,0x00,0x00,}}, {0x772F,2,{0xC3,0xD0,0x00,0x00,}}, {0x7730,2,{0xB1,0x82,0x00,0x00,}}, {0x7731,2,{0xB1,0x83,0x00,0x00,}}, {0x7732,2,{0xB1,0x84,0x00,0x00,}}, {0x7733,2,{0xB1,0x85,0x00,0x00,}}, {0x7734,2,{0xB1,0x86,0x00,0x00,}}, {0x7735,2,{0xED,0xF7,0x00,0x00,}}, {0x7736,2,{0xBF,0xF4,0x00,0x00,}}, {0x7737,2,{0xBE,0xEC,0x00,0x00,}}, {0x7738,2,{0xED,0xF8,0x00,0x00,}}, {0x7739,2,{0xB1,0x87,0x00,0x00,}}, {0x773A,2,{0xCC,0xF7,0x00,0x00,}}, {0x773B,2,{0xB1,0x88,0x00,0x00,}}, {0x773C,2,{0xD1,0xDB,0x00,0x00,}}, {0x773D,2,{0xB1,0x89,0x00,0x00,}}, {0x773E,2,{0xB1,0x8A,0x00,0x00,}}, {0x773F,2,{0xB1,0x8B,0x00,0x00,}}, {0x7740,2,{0xD7,0xC5,0x00,0x00,}}, {0x7741,2,{0xD5,0xF6,0x00,0x00,}}, {0x7742,2,{0xB1,0x8C,0x00,0x00,}}, {0x7743,2,{0xED,0xFC,0x00,0x00,}}, {0x7744,2,{0xB1,0x8D,0x00,0x00,}}, {0x7745,2,{0xB1,0x8E,0x00,0x00,}}, {0x7746,2,{0xB1,0x8F,0x00,0x00,}}, {0x7747,2,{0xED,0xFB,0x00,0x00,}}, {0x7748,2,{0xB1,0x90,0x00,0x00,}}, {0x7749,2,{0xB1,0x91,0x00,0x00,}}, {0x774A,2,{0xB1,0x92,0x00,0x00,}}, {0x774B,2,{0xB1,0x93,0x00,0x00,}}, {0x774C,2,{0xB1,0x94,0x00,0x00,}}, {0x774D,2,{0xB1,0x95,0x00,0x00,}}, {0x774E,2,{0xB1,0x96,0x00,0x00,}}, {0x774F,2,{0xB1,0x97,0x00,0x00,}}, {0x7750,2,{0xED,0xF9,0x00,0x00,}}, {0x7751,2,{0xED,0xFA,0x00,0x00,}}, {0x7752,2,{0xB1,0x98,0x00,0x00,}}, {0x7753,2,{0xB1,0x99,0x00,0x00,}}, {0x7754,2,{0xB1,0x9A,0x00,0x00,}}, {0x7755,2,{0xB1,0x9B,0x00,0x00,}}, {0x7756,2,{0xB1,0x9C,0x00,0x00,}}, {0x7757,2,{0xB1,0x9D,0x00,0x00,}}, {0x7758,2,{0xB1,0x9E,0x00,0x00,}}, {0x7759,2,{0xB1,0x9F,0x00,0x00,}}, {0x775A,2,{0xED,0xFD,0x00,0x00,}}, {0x775B,2,{0xBE,0xA6,0x00,0x00,}}, {0x775C,2,{0xB1,0xA0,0x00,0x00,}}, {0x775D,2,{0xB2,0x40,0x00,0x00,}}, {0x775E,2,{0xB2,0x41,0x00,0x00,}}, {0x775F,2,{0xB2,0x42,0x00,0x00,}}, {0x7760,2,{0xB2,0x43,0x00,0x00,}}, {0x7761,2,{0xCB,0xAF,0x00,0x00,}}, {0x7762,2,{0xEE,0xA1,0x00,0x00,}}, {0x7763,2,{0xB6,0xBD,0x00,0x00,}}, {0x7764,2,{0xB2,0x44,0x00,0x00,}}, {0x7765,2,{0xEE,0xA2,0x00,0x00,}}, {0x7766,2,{0xC4,0xC0,0x00,0x00,}}, {0x7767,2,{0xB2,0x45,0x00,0x00,}}, {0x7768,2,{0xED,0xFE,0x00,0x00,}}, {0x7769,2,{0xB2,0x46,0x00,0x00,}}, {0x776A,2,{0xB2,0x47,0x00,0x00,}}, {0x776B,2,{0xBD,0xDE,0x00,0x00,}}, {0x776C,2,{0xB2,0xC7,0x00,0x00,}}, {0x776D,2,{0xB2,0x48,0x00,0x00,}}, {0x776E,2,{0xB2,0x49,0x00,0x00,}}, {0x776F,2,{0xB2,0x4A,0x00,0x00,}}, {0x7770,2,{0xB2,0x4B,0x00,0x00,}}, {0x7771,2,{0xB2,0x4C,0x00,0x00,}}, {0x7772,2,{0xB2,0x4D,0x00,0x00,}}, {0x7773,2,{0xB2,0x4E,0x00,0x00,}}, {0x7774,2,{0xB2,0x4F,0x00,0x00,}}, {0x7775,2,{0xB2,0x50,0x00,0x00,}}, {0x7776,2,{0xB2,0x51,0x00,0x00,}}, {0x7777,2,{0xB2,0x52,0x00,0x00,}}, {0x7778,2,{0xB2,0x53,0x00,0x00,}}, {0x7779,2,{0xB6,0xC3,0x00,0x00,}}, {0x777A,2,{0xB2,0x54,0x00,0x00,}}, {0x777B,2,{0xB2,0x55,0x00,0x00,}}, {0x777C,2,{0xB2,0x56,0x00,0x00,}}, {0x777D,2,{0xEE,0xA5,0x00,0x00,}}, {0x777E,2,{0xD8,0xBA,0x00,0x00,}}, {0x777F,2,{0xEE,0xA3,0x00,0x00,}}, {0x7780,2,{0xEE,0xA6,0x00,0x00,}}, {0x7781,2,{0xB2,0x57,0x00,0x00,}}, {0x7782,2,{0xB2,0x58,0x00,0x00,}}, {0x7783,2,{0xB2,0x59,0x00,0x00,}}, {0x7784,2,{0xC3,0xE9,0x00,0x00,}}, {0x7785,2,{0xB3,0xF2,0x00,0x00,}}, {0x7786,2,{0xB2,0x5A,0x00,0x00,}}, {0x7787,2,{0xB2,0x5B,0x00,0x00,}}, {0x7788,2,{0xB2,0x5C,0x00,0x00,}}, {0x7789,2,{0xB2,0x5D,0x00,0x00,}}, {0x778A,2,{0xB2,0x5E,0x00,0x00,}}, {0x778B,2,{0xB2,0x5F,0x00,0x00,}}, {0x778C,2,{0xEE,0xA7,0x00,0x00,}}, {0x778D,2,{0xEE,0xA4,0x00,0x00,}}, {0x778E,2,{0xCF,0xB9,0x00,0x00,}}, {0x778F,2,{0xB2,0x60,0x00,0x00,}}, {0x7790,2,{0xB2,0x61,0x00,0x00,}}, {0x7791,2,{0xEE,0xA8,0x00,0x00,}}, {0x7792,2,{0xC2,0xF7,0x00,0x00,}}, {0x7793,2,{0xB2,0x62,0x00,0x00,}}, {0x7794,2,{0xB2,0x63,0x00,0x00,}}, {0x7795,2,{0xB2,0x64,0x00,0x00,}}, {0x7796,2,{0xB2,0x65,0x00,0x00,}}, {0x7797,2,{0xB2,0x66,0x00,0x00,}}, {0x7798,2,{0xB2,0x67,0x00,0x00,}}, {0x7799,2,{0xB2,0x68,0x00,0x00,}}, {0x779A,2,{0xB2,0x69,0x00,0x00,}}, {0x779B,2,{0xB2,0x6A,0x00,0x00,}}, {0x779C,2,{0xB2,0x6B,0x00,0x00,}}, {0x779D,2,{0xB2,0x6C,0x00,0x00,}}, {0x779E,2,{0xB2,0x6D,0x00,0x00,}}, {0x779F,2,{0xEE,0xA9,0x00,0x00,}}, {0x77A0,2,{0xEE,0xAA,0x00,0x00,}}, {0x77A1,2,{0xB2,0x6E,0x00,0x00,}}, {0x77A2,2,{0xDE,0xAB,0x00,0x00,}}, {0x77A3,2,{0xB2,0x6F,0x00,0x00,}}, {0x77A4,2,{0xB2,0x70,0x00,0x00,}}, {0x77A5,2,{0xC6,0xB3,0x00,0x00,}}, {0x77A6,2,{0xB2,0x71,0x00,0x00,}}, {0x77A7,2,{0xC7,0xC6,0x00,0x00,}}, {0x77A8,2,{0xB2,0x72,0x00,0x00,}}, {0x77A9,2,{0xD6,0xF5,0x00,0x00,}}, {0x77AA,2,{0xB5,0xC9,0x00,0x00,}}, {0x77AB,2,{0xB2,0x73,0x00,0x00,}}, {0x77AC,2,{0xCB,0xB2,0x00,0x00,}}, {0x77AD,2,{0xB2,0x74,0x00,0x00,}}, {0x77AE,2,{0xB2,0x75,0x00,0x00,}}, {0x77AF,2,{0xB2,0x76,0x00,0x00,}}, {0x77B0,2,{0xEE,0xAB,0x00,0x00,}}, {0x77B1,2,{0xB2,0x77,0x00,0x00,}}, {0x77B2,2,{0xB2,0x78,0x00,0x00,}}, {0x77B3,2,{0xCD,0xAB,0x00,0x00,}}, {0x77B4,2,{0xB2,0x79,0x00,0x00,}}, {0x77B5,2,{0xEE,0xAC,0x00,0x00,}}, {0x77B6,2,{0xB2,0x7A,0x00,0x00,}}, {0x77B7,2,{0xB2,0x7B,0x00,0x00,}}, {0x77B8,2,{0xB2,0x7C,0x00,0x00,}}, {0x77B9,2,{0xB2,0x7D,0x00,0x00,}}, {0x77BA,2,{0xB2,0x7E,0x00,0x00,}}, {0x77BB,2,{0xD5,0xB0,0x00,0x00,}}, {0x77BC,2,{0xB2,0x80,0x00,0x00,}}, {0x77BD,2,{0xEE,0xAD,0x00,0x00,}}, {0x77BE,2,{0xB2,0x81,0x00,0x00,}}, {0x77BF,2,{0xF6,0xC4,0x00,0x00,}}, {0x77C0,2,{0xB2,0x82,0x00,0x00,}}, {0x77C1,2,{0xB2,0x83,0x00,0x00,}}, {0x77C2,2,{0xB2,0x84,0x00,0x00,}}, {0x77C3,2,{0xB2,0x85,0x00,0x00,}}, {0x77C4,2,{0xB2,0x86,0x00,0x00,}}, {0x77C5,2,{0xB2,0x87,0x00,0x00,}}, {0x77C6,2,{0xB2,0x88,0x00,0x00,}}, {0x77C7,2,{0xB2,0x89,0x00,0x00,}}, {0x77C8,2,{0xB2,0x8A,0x00,0x00,}}, {0x77C9,2,{0xB2,0x8B,0x00,0x00,}}, {0x77CA,2,{0xB2,0x8C,0x00,0x00,}}, {0x77CB,2,{0xB2,0x8D,0x00,0x00,}}, {0x77CC,2,{0xB2,0x8E,0x00,0x00,}}, {0x77CD,2,{0xDB,0xC7,0x00,0x00,}}, {0x77CE,2,{0xB2,0x8F,0x00,0x00,}}, {0x77CF,2,{0xB2,0x90,0x00,0x00,}}, {0x77D0,2,{0xB2,0x91,0x00,0x00,}}, {0x77D1,2,{0xB2,0x92,0x00,0x00,}}, {0x77D2,2,{0xB2,0x93,0x00,0x00,}}, {0x77D3,2,{0xB2,0x94,0x00,0x00,}}, {0x77D4,2,{0xB2,0x95,0x00,0x00,}}, {0x77D5,2,{0xB2,0x96,0x00,0x00,}}, {0x77D6,2,{0xB2,0x97,0x00,0x00,}}, {0x77D7,2,{0xB4,0xA3,0x00,0x00,}}, {0x77D8,2,{0xB2,0x98,0x00,0x00,}}, {0x77D9,2,{0xB2,0x99,0x00,0x00,}}, {0x77DA,2,{0xB2,0x9A,0x00,0x00,}}, {0x77DB,2,{0xC3,0xAC,0x00,0x00,}}, {0x77DC,2,{0xF1,0xE6,0x00,0x00,}}, {0x77DD,2,{0xB2,0x9B,0x00,0x00,}}, {0x77DE,2,{0xB2,0x9C,0x00,0x00,}}, {0x77DF,2,{0xB2,0x9D,0x00,0x00,}}, {0x77E0,2,{0xB2,0x9E,0x00,0x00,}}, {0x77E1,2,{0xB2,0x9F,0x00,0x00,}}, {0x77E2,2,{0xCA,0xB8,0x00,0x00,}}, {0x77E3,2,{0xD2,0xD3,0x00,0x00,}}, {0x77E4,2,{0xB2,0xA0,0x00,0x00,}}, {0x77E5,2,{0xD6,0xAA,0x00,0x00,}}, {0x77E6,2,{0xB3,0x40,0x00,0x00,}}, {0x77E7,2,{0xEF,0xF2,0x00,0x00,}}, {0x77E8,2,{0xB3,0x41,0x00,0x00,}}, {0x77E9,2,{0xBE,0xD8,0x00,0x00,}}, {0x77EA,2,{0xB3,0x42,0x00,0x00,}}, {0x77EB,2,{0xBD,0xC3,0x00,0x00,}}, {0x77EC,2,{0xEF,0xF3,0x00,0x00,}}, {0x77ED,2,{0xB6,0xCC,0x00,0x00,}}, {0x77EE,2,{0xB0,0xAB,0x00,0x00,}}, {0x77EF,2,{0xB3,0x43,0x00,0x00,}}, {0x77F0,2,{0xB3,0x44,0x00,0x00,}}, {0x77F1,2,{0xB3,0x45,0x00,0x00,}}, {0x77F2,2,{0xB3,0x46,0x00,0x00,}}, {0x77F3,2,{0xCA,0xAF,0x00,0x00,}}, {0x77F4,2,{0xB3,0x47,0x00,0x00,}}, {0x77F5,2,{0xB3,0x48,0x00,0x00,}}, {0x77F6,2,{0xED,0xB6,0x00,0x00,}}, {0x77F7,2,{0xB3,0x49,0x00,0x00,}}, {0x77F8,2,{0xED,0xB7,0x00,0x00,}}, {0x77F9,2,{0xB3,0x4A,0x00,0x00,}}, {0x77FA,2,{0xB3,0x4B,0x00,0x00,}}, {0x77FB,2,{0xB3,0x4C,0x00,0x00,}}, {0x77FC,2,{0xB3,0x4D,0x00,0x00,}}, {0x77FD,2,{0xCE,0xF9,0x00,0x00,}}, {0x77FE,2,{0xB7,0xAF,0x00,0x00,}}, {0x77FF,2,{0xBF,0xF3,0x00,0x00,}}, {0x7800,2,{0xED,0xB8,0x00,0x00,}}, {0x7801,2,{0xC2,0xEB,0x00,0x00,}}, {0x7802,2,{0xC9,0xB0,0x00,0x00,}}, {0x7803,2,{0xB3,0x4E,0x00,0x00,}}, {0x7804,2,{0xB3,0x4F,0x00,0x00,}}, {0x7805,2,{0xB3,0x50,0x00,0x00,}}, {0x7806,2,{0xB3,0x51,0x00,0x00,}}, {0x7807,2,{0xB3,0x52,0x00,0x00,}}, {0x7808,2,{0xB3,0x53,0x00,0x00,}}, {0x7809,2,{0xED,0xB9,0x00,0x00,}}, {0x780A,2,{0xB3,0x54,0x00,0x00,}}, {0x780B,2,{0xB3,0x55,0x00,0x00,}}, {0x780C,2,{0xC6,0xF6,0x00,0x00,}}, {0x780D,2,{0xBF,0xB3,0x00,0x00,}}, {0x780E,2,{0xB3,0x56,0x00,0x00,}}, {0x780F,2,{0xB3,0x57,0x00,0x00,}}, {0x7810,2,{0xB3,0x58,0x00,0x00,}}, {0x7811,2,{0xED,0xBC,0x00,0x00,}}, {0x7812,2,{0xC5,0xF8,0x00,0x00,}}, {0x7813,2,{0xB3,0x59,0x00,0x00,}}, {0x7814,2,{0xD1,0xD0,0x00,0x00,}}, {0x7815,2,{0xB3,0x5A,0x00,0x00,}}, {0x7816,2,{0xD7,0xA9,0x00,0x00,}}, {0x7817,2,{0xED,0xBA,0x00,0x00,}}, {0x7818,2,{0xED,0xBB,0x00,0x00,}}, {0x7819,2,{0xB3,0x5B,0x00,0x00,}}, {0x781A,2,{0xD1,0xE2,0x00,0x00,}}, {0x781B,2,{0xB3,0x5C,0x00,0x00,}}, {0x781C,2,{0xED,0xBF,0x00,0x00,}}, {0x781D,2,{0xED,0xC0,0x00,0x00,}}, {0x781E,2,{0xB3,0x5D,0x00,0x00,}}, {0x781F,2,{0xED,0xC4,0x00,0x00,}}, {0x7820,2,{0xB3,0x5E,0x00,0x00,}}, {0x7821,2,{0xB3,0x5F,0x00,0x00,}}, {0x7822,2,{0xB3,0x60,0x00,0x00,}}, {0x7823,2,{0xED,0xC8,0x00,0x00,}}, {0x7824,2,{0xB3,0x61,0x00,0x00,}}, {0x7825,2,{0xED,0xC6,0x00,0x00,}}, {0x7826,2,{0xED,0xCE,0x00,0x00,}}, {0x7827,2,{0xD5,0xE8,0x00,0x00,}}, {0x7828,2,{0xB3,0x62,0x00,0x00,}}, {0x7829,2,{0xED,0xC9,0x00,0x00,}}, {0x782A,2,{0xB3,0x63,0x00,0x00,}}, {0x782B,2,{0xB3,0x64,0x00,0x00,}}, {0x782C,2,{0xED,0xC7,0x00,0x00,}}, {0x782D,2,{0xED,0xBE,0x00,0x00,}}, {0x782E,2,{0xB3,0x65,0x00,0x00,}}, {0x782F,2,{0xB3,0x66,0x00,0x00,}}, {0x7830,2,{0xC5,0xE9,0x00,0x00,}}, {0x7831,2,{0xB3,0x67,0x00,0x00,}}, {0x7832,2,{0xB3,0x68,0x00,0x00,}}, {0x7833,2,{0xB3,0x69,0x00,0x00,}}, {0x7834,2,{0xC6,0xC6,0x00,0x00,}}, {0x7835,2,{0xB3,0x6A,0x00,0x00,}}, {0x7836,2,{0xB3,0x6B,0x00,0x00,}}, {0x7837,2,{0xC9,0xE9,0x00,0x00,}}, {0x7838,2,{0xD4,0xD2,0x00,0x00,}}, {0x7839,2,{0xED,0xC1,0x00,0x00,}}, {0x783A,2,{0xED,0xC2,0x00,0x00,}}, {0x783B,2,{0xED,0xC3,0x00,0x00,}}, {0x783C,2,{0xED,0xC5,0x00,0x00,}}, {0x783D,2,{0xB3,0x6C,0x00,0x00,}}, {0x783E,2,{0xC0,0xF9,0x00,0x00,}}, {0x783F,2,{0xB3,0x6D,0x00,0x00,}}, {0x7840,2,{0xB4,0xA1,0x00,0x00,}}, {0x7841,2,{0xB3,0x6E,0x00,0x00,}}, {0x7842,2,{0xB3,0x6F,0x00,0x00,}}, {0x7843,2,{0xB3,0x70,0x00,0x00,}}, {0x7844,2,{0xB3,0x71,0x00,0x00,}}, {0x7845,2,{0xB9,0xE8,0x00,0x00,}}, {0x7846,2,{0xB3,0x72,0x00,0x00,}}, {0x7847,2,{0xED,0xD0,0x00,0x00,}}, {0x7848,2,{0xB3,0x73,0x00,0x00,}}, {0x7849,2,{0xB3,0x74,0x00,0x00,}}, {0x784A,2,{0xB3,0x75,0x00,0x00,}}, {0x784B,2,{0xB3,0x76,0x00,0x00,}}, {0x784C,2,{0xED,0xD1,0x00,0x00,}}, {0x784D,2,{0xB3,0x77,0x00,0x00,}}, {0x784E,2,{0xED,0xCA,0x00,0x00,}}, {0x784F,2,{0xB3,0x78,0x00,0x00,}}, {0x7850,2,{0xED,0xCF,0x00,0x00,}}, {0x7851,2,{0xB3,0x79,0x00,0x00,}}, {0x7852,2,{0xCE,0xF8,0x00,0x00,}}, {0x7853,2,{0xB3,0x7A,0x00,0x00,}}, {0x7854,2,{0xB3,0x7B,0x00,0x00,}}, {0x7855,2,{0xCB,0xB6,0x00,0x00,}}, {0x7856,2,{0xED,0xCC,0x00,0x00,}}, {0x7857,2,{0xED,0xCD,0x00,0x00,}}, {0x7858,2,{0xB3,0x7C,0x00,0x00,}}, {0x7859,2,{0xB3,0x7D,0x00,0x00,}}, {0x785A,2,{0xB3,0x7E,0x00,0x00,}}, {0x785B,2,{0xB3,0x80,0x00,0x00,}}, {0x785C,2,{0xB3,0x81,0x00,0x00,}}, {0x785D,2,{0xCF,0xF5,0x00,0x00,}}, {0x785E,2,{0xB3,0x82,0x00,0x00,}}, {0x785F,2,{0xB3,0x83,0x00,0x00,}}, {0x7860,2,{0xB3,0x84,0x00,0x00,}}, {0x7861,2,{0xB3,0x85,0x00,0x00,}}, {0x7862,2,{0xB3,0x86,0x00,0x00,}}, {0x7863,2,{0xB3,0x87,0x00,0x00,}}, {0x7864,2,{0xB3,0x88,0x00,0x00,}}, {0x7865,2,{0xB3,0x89,0x00,0x00,}}, {0x7866,2,{0xB3,0x8A,0x00,0x00,}}, {0x7867,2,{0xB3,0x8B,0x00,0x00,}}, {0x7868,2,{0xB3,0x8C,0x00,0x00,}}, {0x7869,2,{0xB3,0x8D,0x00,0x00,}}, {0x786A,2,{0xED,0xD2,0x00,0x00,}}, {0x786B,2,{0xC1,0xF2,0x00,0x00,}}, {0x786C,2,{0xD3,0xB2,0x00,0x00,}}, {0x786D,2,{0xED,0xCB,0x00,0x00,}}, {0x786E,2,{0xC8,0xB7,0x00,0x00,}}, {0x786F,2,{0xB3,0x8E,0x00,0x00,}}, {0x7870,2,{0xB3,0x8F,0x00,0x00,}}, {0x7871,2,{0xB3,0x90,0x00,0x00,}}, {0x7872,2,{0xB3,0x91,0x00,0x00,}}, {0x7873,2,{0xB3,0x92,0x00,0x00,}}, {0x7874,2,{0xB3,0x93,0x00,0x00,}}, {0x7875,2,{0xB3,0x94,0x00,0x00,}}, {0x7876,2,{0xB3,0x95,0x00,0x00,}}, {0x7877,2,{0xBC,0xEF,0x00,0x00,}}, {0x7878,2,{0xB3,0x96,0x00,0x00,}}, {0x7879,2,{0xB3,0x97,0x00,0x00,}}, {0x787A,2,{0xB3,0x98,0x00,0x00,}}, {0x787B,2,{0xB3,0x99,0x00,0x00,}}, {0x787C,2,{0xC5,0xF0,0x00,0x00,}}, {0x787D,2,{0xB3,0x9A,0x00,0x00,}}, {0x787E,2,{0xB3,0x9B,0x00,0x00,}}, {0x787F,2,{0xB3,0x9C,0x00,0x00,}}, {0x7880,2,{0xB3,0x9D,0x00,0x00,}}, {0x7881,2,{0xB3,0x9E,0x00,0x00,}}, {0x7882,2,{0xB3,0x9F,0x00,0x00,}}, {0x7883,2,{0xB3,0xA0,0x00,0x00,}}, {0x7884,2,{0xB4,0x40,0x00,0x00,}}, {0x7885,2,{0xB4,0x41,0x00,0x00,}}, {0x7886,2,{0xB4,0x42,0x00,0x00,}}, {0x7887,2,{0xED,0xD6,0x00,0x00,}}, {0x7888,2,{0xB4,0x43,0x00,0x00,}}, {0x7889,2,{0xB5,0xEF,0x00,0x00,}}, {0x788A,2,{0xB4,0x44,0x00,0x00,}}, {0x788B,2,{0xB4,0x45,0x00,0x00,}}, {0x788C,2,{0xC2,0xB5,0x00,0x00,}}, {0x788D,2,{0xB0,0xAD,0x00,0x00,}}, {0x788E,2,{0xCB,0xE9,0x00,0x00,}}, {0x788F,2,{0xB4,0x46,0x00,0x00,}}, {0x7890,2,{0xB4,0x47,0x00,0x00,}}, {0x7891,2,{0xB1,0xAE,0x00,0x00,}}, {0x7892,2,{0xB4,0x48,0x00,0x00,}}, {0x7893,2,{0xED,0xD4,0x00,0x00,}}, {0x7894,2,{0xB4,0x49,0x00,0x00,}}, {0x7895,2,{0xB4,0x4A,0x00,0x00,}}, {0x7896,2,{0xB4,0x4B,0x00,0x00,}}, {0x7897,2,{0xCD,0xEB,0x00,0x00,}}, {0x7898,2,{0xB5,0xE2,0x00,0x00,}}, {0x7899,2,{0xB4,0x4C,0x00,0x00,}}, {0x789A,2,{0xED,0xD5,0x00,0x00,}}, {0x789B,2,{0xED,0xD3,0x00,0x00,}}, {0x789C,2,{0xED,0xD7,0x00,0x00,}}, {0x789D,2,{0xB4,0x4D,0x00,0x00,}}, {0x789E,2,{0xB4,0x4E,0x00,0x00,}}, {0x789F,2,{0xB5,0xFA,0x00,0x00,}}, {0x78A0,2,{0xB4,0x4F,0x00,0x00,}}, {0x78A1,2,{0xED,0xD8,0x00,0x00,}}, {0x78A2,2,{0xB4,0x50,0x00,0x00,}}, {0x78A3,2,{0xED,0xD9,0x00,0x00,}}, {0x78A4,2,{0xB4,0x51,0x00,0x00,}}, {0x78A5,2,{0xED,0xDC,0x00,0x00,}}, {0x78A6,2,{0xB4,0x52,0x00,0x00,}}, {0x78A7,2,{0xB1,0xCC,0x00,0x00,}}, {0x78A8,2,{0xB4,0x53,0x00,0x00,}}, {0x78A9,2,{0xB4,0x54,0x00,0x00,}}, {0x78AA,2,{0xB4,0x55,0x00,0x00,}}, {0x78AB,2,{0xB4,0x56,0x00,0x00,}}, {0x78AC,2,{0xB4,0x57,0x00,0x00,}}, {0x78AD,2,{0xB4,0x58,0x00,0x00,}}, {0x78AE,2,{0xB4,0x59,0x00,0x00,}}, {0x78AF,2,{0xB4,0x5A,0x00,0x00,}}, {0x78B0,2,{0xC5,0xF6,0x00,0x00,}}, {0x78B1,2,{0xBC,0xEE,0x00,0x00,}}, {0x78B2,2,{0xED,0xDA,0x00,0x00,}}, {0x78B3,2,{0xCC,0xBC,0x00,0x00,}}, {0x78B4,2,{0xB2,0xEA,0x00,0x00,}}, {0x78B5,2,{0xB4,0x5B,0x00,0x00,}}, {0x78B6,2,{0xB4,0x5C,0x00,0x00,}}, {0x78B7,2,{0xB4,0x5D,0x00,0x00,}}, {0x78B8,2,{0xB4,0x5E,0x00,0x00,}}, {0x78B9,2,{0xED,0xDB,0x00,0x00,}}, {0x78BA,2,{0xB4,0x5F,0x00,0x00,}}, {0x78BB,2,{0xB4,0x60,0x00,0x00,}}, {0x78BC,2,{0xB4,0x61,0x00,0x00,}}, {0x78BD,2,{0xB4,0x62,0x00,0x00,}}, {0x78BE,2,{0xC4,0xEB,0x00,0x00,}}, {0x78BF,2,{0xB4,0x63,0x00,0x00,}}, {0x78C0,2,{0xB4,0x64,0x00,0x00,}}, {0x78C1,2,{0xB4,0xC5,0x00,0x00,}}, {0x78C2,2,{0xB4,0x65,0x00,0x00,}}, {0x78C3,2,{0xB4,0x66,0x00,0x00,}}, {0x78C4,2,{0xB4,0x67,0x00,0x00,}}, {0x78C5,2,{0xB0,0xF5,0x00,0x00,}}, {0x78C6,2,{0xB4,0x68,0x00,0x00,}}, {0x78C7,2,{0xB4,0x69,0x00,0x00,}}, {0x78C8,2,{0xB4,0x6A,0x00,0x00,}}, {0x78C9,2,{0xED,0xDF,0x00,0x00,}}, {0x78CA,2,{0xC0,0xDA,0x00,0x00,}}, {0x78CB,2,{0xB4,0xE8,0x00,0x00,}}, {0x78CC,2,{0xB4,0x6B,0x00,0x00,}}, {0x78CD,2,{0xB4,0x6C,0x00,0x00,}}, {0x78CE,2,{0xB4,0x6D,0x00,0x00,}}, {0x78CF,2,{0xB4,0x6E,0x00,0x00,}}, {0x78D0,2,{0xC5,0xCD,0x00,0x00,}}, {0x78D1,2,{0xB4,0x6F,0x00,0x00,}}, {0x78D2,2,{0xB4,0x70,0x00,0x00,}}, {0x78D3,2,{0xB4,0x71,0x00,0x00,}}, {0x78D4,2,{0xED,0xDD,0x00,0x00,}}, {0x78D5,2,{0xBF,0xC4,0x00,0x00,}}, {0x78D6,2,{0xB4,0x72,0x00,0x00,}}, {0x78D7,2,{0xB4,0x73,0x00,0x00,}}, {0x78D8,2,{0xB4,0x74,0x00,0x00,}}, {0x78D9,2,{0xED,0xDE,0x00,0x00,}}, {0x78DA,2,{0xB4,0x75,0x00,0x00,}}, {0x78DB,2,{0xB4,0x76,0x00,0x00,}}, {0x78DC,2,{0xB4,0x77,0x00,0x00,}}, {0x78DD,2,{0xB4,0x78,0x00,0x00,}}, {0x78DE,2,{0xB4,0x79,0x00,0x00,}}, {0x78DF,2,{0xB4,0x7A,0x00,0x00,}}, {0x78E0,2,{0xB4,0x7B,0x00,0x00,}}, {0x78E1,2,{0xB4,0x7C,0x00,0x00,}}, {0x78E2,2,{0xB4,0x7D,0x00,0x00,}}, {0x78E3,2,{0xB4,0x7E,0x00,0x00,}}, {0x78E4,2,{0xB4,0x80,0x00,0x00,}}, {0x78E5,2,{0xB4,0x81,0x00,0x00,}}, {0x78E6,2,{0xB4,0x82,0x00,0x00,}}, {0x78E7,2,{0xB4,0x83,0x00,0x00,}}, {0x78E8,2,{0xC4,0xA5,0x00,0x00,}}, {0x78E9,2,{0xB4,0x84,0x00,0x00,}}, {0x78EA,2,{0xB4,0x85,0x00,0x00,}}, {0x78EB,2,{0xB4,0x86,0x00,0x00,}}, {0x78EC,2,{0xED,0xE0,0x00,0x00,}}, {0x78ED,2,{0xB4,0x87,0x00,0x00,}}, {0x78EE,2,{0xB4,0x88,0x00,0x00,}}, {0x78EF,2,{0xB4,0x89,0x00,0x00,}}, {0x78F0,2,{0xB4,0x8A,0x00,0x00,}}, {0x78F1,2,{0xB4,0x8B,0x00,0x00,}}, {0x78F2,2,{0xED,0xE1,0x00,0x00,}}, {0x78F3,2,{0xB4,0x8C,0x00,0x00,}}, {0x78F4,2,{0xED,0xE3,0x00,0x00,}}, {0x78F5,2,{0xB4,0x8D,0x00,0x00,}}, {0x78F6,2,{0xB4,0x8E,0x00,0x00,}}, {0x78F7,2,{0xC1,0xD7,0x00,0x00,}}, {0x78F8,2,{0xB4,0x8F,0x00,0x00,}}, {0x78F9,2,{0xB4,0x90,0x00,0x00,}}, {0x78FA,2,{0xBB,0xC7,0x00,0x00,}}, {0x78FB,2,{0xB4,0x91,0x00,0x00,}}, {0x78FC,2,{0xB4,0x92,0x00,0x00,}}, {0x78FD,2,{0xB4,0x93,0x00,0x00,}}, {0x78FE,2,{0xB4,0x94,0x00,0x00,}}, {0x78FF,2,{0xB4,0x95,0x00,0x00,}}, {0x7900,2,{0xB4,0x96,0x00,0x00,}}, {0x7901,2,{0xBD,0xB8,0x00,0x00,}}, {0x7902,2,{0xB4,0x97,0x00,0x00,}}, {0x7903,2,{0xB4,0x98,0x00,0x00,}}, {0x7904,2,{0xB4,0x99,0x00,0x00,}}, {0x7905,2,{0xED,0xE2,0x00,0x00,}}, {0x7906,2,{0xB4,0x9A,0x00,0x00,}}, {0x7907,2,{0xB4,0x9B,0x00,0x00,}}, {0x7908,2,{0xB4,0x9C,0x00,0x00,}}, {0x7909,2,{0xB4,0x9D,0x00,0x00,}}, {0x790A,2,{0xB4,0x9E,0x00,0x00,}}, {0x790B,2,{0xB4,0x9F,0x00,0x00,}}, {0x790C,2,{0xB4,0xA0,0x00,0x00,}}, {0x790D,2,{0xB5,0x40,0x00,0x00,}}, {0x790E,2,{0xB5,0x41,0x00,0x00,}}, {0x790F,2,{0xB5,0x42,0x00,0x00,}}, {0x7910,2,{0xB5,0x43,0x00,0x00,}}, {0x7911,2,{0xB5,0x44,0x00,0x00,}}, {0x7912,2,{0xB5,0x45,0x00,0x00,}}, {0x7913,2,{0xED,0xE4,0x00,0x00,}}, {0x7914,2,{0xB5,0x46,0x00,0x00,}}, {0x7915,2,{0xB5,0x47,0x00,0x00,}}, {0x7916,2,{0xB5,0x48,0x00,0x00,}}, {0x7917,2,{0xB5,0x49,0x00,0x00,}}, {0x7918,2,{0xB5,0x4A,0x00,0x00,}}, {0x7919,2,{0xB5,0x4B,0x00,0x00,}}, {0x791A,2,{0xB5,0x4C,0x00,0x00,}}, {0x791B,2,{0xB5,0x4D,0x00,0x00,}}, {0x791C,2,{0xB5,0x4E,0x00,0x00,}}, {0x791D,2,{0xB5,0x4F,0x00,0x00,}}, {0x791E,2,{0xED,0xE6,0x00,0x00,}}, {0x791F,2,{0xB5,0x50,0x00,0x00,}}, {0x7920,2,{0xB5,0x51,0x00,0x00,}}, {0x7921,2,{0xB5,0x52,0x00,0x00,}}, {0x7922,2,{0xB5,0x53,0x00,0x00,}}, {0x7923,2,{0xB5,0x54,0x00,0x00,}}, {0x7924,2,{0xED,0xE5,0x00,0x00,}}, {0x7925,2,{0xB5,0x55,0x00,0x00,}}, {0x7926,2,{0xB5,0x56,0x00,0x00,}}, {0x7927,2,{0xB5,0x57,0x00,0x00,}}, {0x7928,2,{0xB5,0x58,0x00,0x00,}}, {0x7929,2,{0xB5,0x59,0x00,0x00,}}, {0x792A,2,{0xB5,0x5A,0x00,0x00,}}, {0x792B,2,{0xB5,0x5B,0x00,0x00,}}, {0x792C,2,{0xB5,0x5C,0x00,0x00,}}, {0x792D,2,{0xB5,0x5D,0x00,0x00,}}, {0x792E,2,{0xB5,0x5E,0x00,0x00,}}, {0x792F,2,{0xB5,0x5F,0x00,0x00,}}, {0x7930,2,{0xB5,0x60,0x00,0x00,}}, {0x7931,2,{0xB5,0x61,0x00,0x00,}}, {0x7932,2,{0xB5,0x62,0x00,0x00,}}, {0x7933,2,{0xB5,0x63,0x00,0x00,}}, {0x7934,2,{0xED,0xE7,0x00,0x00,}}, {0x7935,2,{0xB5,0x64,0x00,0x00,}}, {0x7936,2,{0xB5,0x65,0x00,0x00,}}, {0x7937,2,{0xB5,0x66,0x00,0x00,}}, {0x7938,2,{0xB5,0x67,0x00,0x00,}}, {0x7939,2,{0xB5,0x68,0x00,0x00,}}, {0x793A,2,{0xCA,0xBE,0x00,0x00,}}, {0x793B,2,{0xEC,0xEA,0x00,0x00,}}, {0x793C,2,{0xC0,0xF1,0x00,0x00,}}, {0x793D,2,{0xB5,0x69,0x00,0x00,}}, {0x793E,2,{0xC9,0xE7,0x00,0x00,}}, {0x793F,2,{0xB5,0x6A,0x00,0x00,}}, {0x7940,2,{0xEC,0xEB,0x00,0x00,}}, {0x7941,2,{0xC6,0xEE,0x00,0x00,}}, {0x7942,2,{0xB5,0x6B,0x00,0x00,}}, {0x7943,2,{0xB5,0x6C,0x00,0x00,}}, {0x7944,2,{0xB5,0x6D,0x00,0x00,}}, {0x7945,2,{0xB5,0x6E,0x00,0x00,}}, {0x7946,2,{0xEC,0xEC,0x00,0x00,}}, {0x7947,2,{0xB5,0x6F,0x00,0x00,}}, {0x7948,2,{0xC6,0xED,0x00,0x00,}}, {0x7949,2,{0xEC,0xED,0x00,0x00,}}, {0x794A,2,{0xB5,0x70,0x00,0x00,}}, {0x794B,2,{0xB5,0x71,0x00,0x00,}}, {0x794C,2,{0xB5,0x72,0x00,0x00,}}, {0x794D,2,{0xB5,0x73,0x00,0x00,}}, {0x794E,2,{0xB5,0x74,0x00,0x00,}}, {0x794F,2,{0xB5,0x75,0x00,0x00,}}, {0x7950,2,{0xB5,0x76,0x00,0x00,}}, {0x7951,2,{0xB5,0x77,0x00,0x00,}}, {0x7952,2,{0xB5,0x78,0x00,0x00,}}, {0x7953,2,{0xEC,0xF0,0x00,0x00,}}, {0x7954,2,{0xB5,0x79,0x00,0x00,}}, {0x7955,2,{0xB5,0x7A,0x00,0x00,}}, {0x7956,2,{0xD7,0xE6,0x00,0x00,}}, {0x7957,2,{0xEC,0xF3,0x00,0x00,}}, {0x7958,2,{0xB5,0x7B,0x00,0x00,}}, {0x7959,2,{0xB5,0x7C,0x00,0x00,}}, {0x795A,2,{0xEC,0xF1,0x00,0x00,}}, {0x795B,2,{0xEC,0xEE,0x00,0x00,}}, {0x795C,2,{0xEC,0xEF,0x00,0x00,}}, {0x795D,2,{0xD7,0xA3,0x00,0x00,}}, {0x795E,2,{0xC9,0xF1,0x00,0x00,}}, {0x795F,2,{0xCB,0xEE,0x00,0x00,}}, {0x7960,2,{0xEC,0xF4,0x00,0x00,}}, {0x7961,2,{0xB5,0x7D,0x00,0x00,}}, {0x7962,2,{0xEC,0xF2,0x00,0x00,}}, {0x7963,2,{0xB5,0x7E,0x00,0x00,}}, {0x7964,2,{0xB5,0x80,0x00,0x00,}}, {0x7965,2,{0xCF,0xE9,0x00,0x00,}}, {0x7966,2,{0xB5,0x81,0x00,0x00,}}, {0x7967,2,{0xEC,0xF6,0x00,0x00,}}, {0x7968,2,{0xC6,0xB1,0x00,0x00,}}, {0x7969,2,{0xB5,0x82,0x00,0x00,}}, {0x796A,2,{0xB5,0x83,0x00,0x00,}}, {0x796B,2,{0xB5,0x84,0x00,0x00,}}, {0x796C,2,{0xB5,0x85,0x00,0x00,}}, {0x796D,2,{0xBC,0xC0,0x00,0x00,}}, {0x796E,2,{0xB5,0x86,0x00,0x00,}}, {0x796F,2,{0xEC,0xF5,0x00,0x00,}}, {0x7970,2,{0xB5,0x87,0x00,0x00,}}, {0x7971,2,{0xB5,0x88,0x00,0x00,}}, {0x7972,2,{0xB5,0x89,0x00,0x00,}}, {0x7973,2,{0xB5,0x8A,0x00,0x00,}}, {0x7974,2,{0xB5,0x8B,0x00,0x00,}}, {0x7975,2,{0xB5,0x8C,0x00,0x00,}}, {0x7976,2,{0xB5,0x8D,0x00,0x00,}}, {0x7977,2,{0xB5,0xBB,0x00,0x00,}}, {0x7978,2,{0xBB,0xF6,0x00,0x00,}}, {0x7979,2,{0xB5,0x8E,0x00,0x00,}}, {0x797A,2,{0xEC,0xF7,0x00,0x00,}}, {0x797B,2,{0xB5,0x8F,0x00,0x00,}}, {0x797C,2,{0xB5,0x90,0x00,0x00,}}, {0x797D,2,{0xB5,0x91,0x00,0x00,}}, {0x797E,2,{0xB5,0x92,0x00,0x00,}}, {0x797F,2,{0xB5,0x93,0x00,0x00,}}, {0x7980,2,{0xD9,0xF7,0x00,0x00,}}, {0x7981,2,{0xBD,0xFB,0x00,0x00,}}, {0x7982,2,{0xB5,0x94,0x00,0x00,}}, {0x7983,2,{0xB5,0x95,0x00,0x00,}}, {0x7984,2,{0xC2,0xBB,0x00,0x00,}}, {0x7985,2,{0xEC,0xF8,0x00,0x00,}}, {0x7986,2,{0xB5,0x96,0x00,0x00,}}, {0x7987,2,{0xB5,0x97,0x00,0x00,}}, {0x7988,2,{0xB5,0x98,0x00,0x00,}}, {0x7989,2,{0xB5,0x99,0x00,0x00,}}, {0x798A,2,{0xEC,0xF9,0x00,0x00,}}, {0x798B,2,{0xB5,0x9A,0x00,0x00,}}, {0x798C,2,{0xB5,0x9B,0x00,0x00,}}, {0x798D,2,{0xB5,0x9C,0x00,0x00,}}, {0x798E,2,{0xB5,0x9D,0x00,0x00,}}, {0x798F,2,{0xB8,0xA3,0x00,0x00,}}, {0x7990,2,{0xB5,0x9E,0x00,0x00,}}, {0x7991,2,{0xB5,0x9F,0x00,0x00,}}, {0x7992,2,{0xB5,0xA0,0x00,0x00,}}, {0x7993,2,{0xB6,0x40,0x00,0x00,}}, {0x7994,2,{0xB6,0x41,0x00,0x00,}}, {0x7995,2,{0xB6,0x42,0x00,0x00,}}, {0x7996,2,{0xB6,0x43,0x00,0x00,}}, {0x7997,2,{0xB6,0x44,0x00,0x00,}}, {0x7998,2,{0xB6,0x45,0x00,0x00,}}, {0x7999,2,{0xB6,0x46,0x00,0x00,}}, {0x799A,2,{0xEC,0xFA,0x00,0x00,}}, {0x799B,2,{0xB6,0x47,0x00,0x00,}}, {0x799C,2,{0xB6,0x48,0x00,0x00,}}, {0x799D,2,{0xB6,0x49,0x00,0x00,}}, {0x799E,2,{0xB6,0x4A,0x00,0x00,}}, {0x799F,2,{0xB6,0x4B,0x00,0x00,}}, {0x79A0,2,{0xB6,0x4C,0x00,0x00,}}, {0x79A1,2,{0xB6,0x4D,0x00,0x00,}}, {0x79A2,2,{0xB6,0x4E,0x00,0x00,}}, {0x79A3,2,{0xB6,0x4F,0x00,0x00,}}, {0x79A4,2,{0xB6,0x50,0x00,0x00,}}, {0x79A5,2,{0xB6,0x51,0x00,0x00,}}, {0x79A6,2,{0xB6,0x52,0x00,0x00,}}, {0x79A7,2,{0xEC,0xFB,0x00,0x00,}}, {0x79A8,2,{0xB6,0x53,0x00,0x00,}}, {0x79A9,2,{0xB6,0x54,0x00,0x00,}}, {0x79AA,2,{0xB6,0x55,0x00,0x00,}}, {0x79AB,2,{0xB6,0x56,0x00,0x00,}}, {0x79AC,2,{0xB6,0x57,0x00,0x00,}}, {0x79AD,2,{0xB6,0x58,0x00,0x00,}}, {0x79AE,2,{0xB6,0x59,0x00,0x00,}}, {0x79AF,2,{0xB6,0x5A,0x00,0x00,}}, {0x79B0,2,{0xB6,0x5B,0x00,0x00,}}, {0x79B1,2,{0xB6,0x5C,0x00,0x00,}}, {0x79B2,2,{0xB6,0x5D,0x00,0x00,}}, {0x79B3,2,{0xEC,0xFC,0x00,0x00,}}, {0x79B4,2,{0xB6,0x5E,0x00,0x00,}}, {0x79B5,2,{0xB6,0x5F,0x00,0x00,}}, {0x79B6,2,{0xB6,0x60,0x00,0x00,}}, {0x79B7,2,{0xB6,0x61,0x00,0x00,}}, {0x79B8,2,{0xB6,0x62,0x00,0x00,}}, {0x79B9,2,{0xD3,0xED,0x00,0x00,}}, {0x79BA,2,{0xD8,0xAE,0x00,0x00,}}, {0x79BB,2,{0xC0,0xEB,0x00,0x00,}}, {0x79BC,2,{0xB6,0x63,0x00,0x00,}}, {0x79BD,2,{0xC7,0xDD,0x00,0x00,}}, {0x79BE,2,{0xBA,0xCC,0x00,0x00,}}, {0x79BF,2,{0xB6,0x64,0x00,0x00,}}, {0x79C0,2,{0xD0,0xE3,0x00,0x00,}}, {0x79C1,2,{0xCB,0xBD,0x00,0x00,}}, {0x79C2,2,{0xB6,0x65,0x00,0x00,}}, {0x79C3,2,{0xCD,0xBA,0x00,0x00,}}, {0x79C4,2,{0xB6,0x66,0x00,0x00,}}, {0x79C5,2,{0xB6,0x67,0x00,0x00,}}, {0x79C6,2,{0xB8,0xD1,0x00,0x00,}}, {0x79C7,2,{0xB6,0x68,0x00,0x00,}}, {0x79C8,2,{0xB6,0x69,0x00,0x00,}}, {0x79C9,2,{0xB1,0xFC,0x00,0x00,}}, {0x79CA,2,{0xB6,0x6A,0x00,0x00,}}, {0x79CB,2,{0xC7,0xEF,0x00,0x00,}}, {0x79CC,2,{0xB6,0x6B,0x00,0x00,}}, {0x79CD,2,{0xD6,0xD6,0x00,0x00,}}, {0x79CE,2,{0xB6,0x6C,0x00,0x00,}}, {0x79CF,2,{0xB6,0x6D,0x00,0x00,}}, {0x79D0,2,{0xB6,0x6E,0x00,0x00,}}, {0x79D1,2,{0xBF,0xC6,0x00,0x00,}}, {0x79D2,2,{0xC3,0xEB,0x00,0x00,}}, {0x79D3,2,{0xB6,0x6F,0x00,0x00,}}, {0x79D4,2,{0xB6,0x70,0x00,0x00,}}, {0x79D5,2,{0xEF,0xF5,0x00,0x00,}}, {0x79D6,2,{0xB6,0x71,0x00,0x00,}}, {0x79D7,2,{0xB6,0x72,0x00,0x00,}}, {0x79D8,2,{0xC3,0xD8,0x00,0x00,}}, {0x79D9,2,{0xB6,0x73,0x00,0x00,}}, {0x79DA,2,{0xB6,0x74,0x00,0x00,}}, {0x79DB,2,{0xB6,0x75,0x00,0x00,}}, {0x79DC,2,{0xB6,0x76,0x00,0x00,}}, {0x79DD,2,{0xB6,0x77,0x00,0x00,}}, {0x79DE,2,{0xB6,0x78,0x00,0x00,}}, {0x79DF,2,{0xD7,0xE2,0x00,0x00,}}, {0x79E0,2,{0xB6,0x79,0x00,0x00,}}, {0x79E1,2,{0xB6,0x7A,0x00,0x00,}}, {0x79E2,2,{0xB6,0x7B,0x00,0x00,}}, {0x79E3,2,{0xEF,0xF7,0x00,0x00,}}, {0x79E4,2,{0xB3,0xD3,0x00,0x00,}}, {0x79E5,2,{0xB6,0x7C,0x00,0x00,}}, {0x79E6,2,{0xC7,0xD8,0x00,0x00,}}, {0x79E7,2,{0xD1,0xED,0x00,0x00,}}, {0x79E8,2,{0xB6,0x7D,0x00,0x00,}}, {0x79E9,2,{0xD6,0xC8,0x00,0x00,}}, {0x79EA,2,{0xB6,0x7E,0x00,0x00,}}, {0x79EB,2,{0xEF,0xF8,0x00,0x00,}}, {0x79EC,2,{0xB6,0x80,0x00,0x00,}}, {0x79ED,2,{0xEF,0xF6,0x00,0x00,}}, {0x79EE,2,{0xB6,0x81,0x00,0x00,}}, {0x79EF,2,{0xBB,0xFD,0x00,0x00,}}, {0x79F0,2,{0xB3,0xC6,0x00,0x00,}}, {0x79F1,2,{0xB6,0x82,0x00,0x00,}}, {0x79F2,2,{0xB6,0x83,0x00,0x00,}}, {0x79F3,2,{0xB6,0x84,0x00,0x00,}}, {0x79F4,2,{0xB6,0x85,0x00,0x00,}}, {0x79F5,2,{0xB6,0x86,0x00,0x00,}}, {0x79F6,2,{0xB6,0x87,0x00,0x00,}}, {0x79F7,2,{0xB6,0x88,0x00,0x00,}}, {0x79F8,2,{0xBD,0xD5,0x00,0x00,}}, {0x79F9,2,{0xB6,0x89,0x00,0x00,}}, {0x79FA,2,{0xB6,0x8A,0x00,0x00,}}, {0x79FB,2,{0xD2,0xC6,0x00,0x00,}}, {0x79FC,2,{0xB6,0x8B,0x00,0x00,}}, {0x79FD,2,{0xBB,0xE0,0x00,0x00,}}, {0x79FE,2,{0xB6,0x8C,0x00,0x00,}}, {0x79FF,2,{0xB6,0x8D,0x00,0x00,}}, {0x7A00,2,{0xCF,0xA1,0x00,0x00,}}, {0x7A01,2,{0xB6,0x8E,0x00,0x00,}}, {0x7A02,2,{0xEF,0xFC,0x00,0x00,}}, {0x7A03,2,{0xEF,0xFB,0x00,0x00,}}, {0x7A04,2,{0xB6,0x8F,0x00,0x00,}}, {0x7A05,2,{0xB6,0x90,0x00,0x00,}}, {0x7A06,2,{0xEF,0xF9,0x00,0x00,}}, {0x7A07,2,{0xB6,0x91,0x00,0x00,}}, {0x7A08,2,{0xB6,0x92,0x00,0x00,}}, {0x7A09,2,{0xB6,0x93,0x00,0x00,}}, {0x7A0A,2,{0xB6,0x94,0x00,0x00,}}, {0x7A0B,2,{0xB3,0xCC,0x00,0x00,}}, {0x7A0C,2,{0xB6,0x95,0x00,0x00,}}, {0x7A0D,2,{0xC9,0xD4,0x00,0x00,}}, {0x7A0E,2,{0xCB,0xB0,0x00,0x00,}}, {0x7A0F,2,{0xB6,0x96,0x00,0x00,}}, {0x7A10,2,{0xB6,0x97,0x00,0x00,}}, {0x7A11,2,{0xB6,0x98,0x00,0x00,}}, {0x7A12,2,{0xB6,0x99,0x00,0x00,}}, {0x7A13,2,{0xB6,0x9A,0x00,0x00,}}, {0x7A14,2,{0xEF,0xFE,0x00,0x00,}}, {0x7A15,2,{0xB6,0x9B,0x00,0x00,}}, {0x7A16,2,{0xB6,0x9C,0x00,0x00,}}, {0x7A17,2,{0xB0,0xDE,0x00,0x00,}}, {0x7A18,2,{0xB6,0x9D,0x00,0x00,}}, {0x7A19,2,{0xB6,0x9E,0x00,0x00,}}, {0x7A1A,2,{0xD6,0xC9,0x00,0x00,}}, {0x7A1B,2,{0xB6,0x9F,0x00,0x00,}}, {0x7A1C,2,{0xB6,0xA0,0x00,0x00,}}, {0x7A1D,2,{0xB7,0x40,0x00,0x00,}}, {0x7A1E,2,{0xEF,0xFD,0x00,0x00,}}, {0x7A1F,2,{0xB7,0x41,0x00,0x00,}}, {0x7A20,2,{0xB3,0xED,0x00,0x00,}}, {0x7A21,2,{0xB7,0x42,0x00,0x00,}}, {0x7A22,2,{0xB7,0x43,0x00,0x00,}}, {0x7A23,2,{0xF6,0xD5,0x00,0x00,}}, {0x7A24,2,{0xB7,0x44,0x00,0x00,}}, {0x7A25,2,{0xB7,0x45,0x00,0x00,}}, {0x7A26,2,{0xB7,0x46,0x00,0x00,}}, {0x7A27,2,{0xB7,0x47,0x00,0x00,}}, {0x7A28,2,{0xB7,0x48,0x00,0x00,}}, {0x7A29,2,{0xB7,0x49,0x00,0x00,}}, {0x7A2A,2,{0xB7,0x4A,0x00,0x00,}}, {0x7A2B,2,{0xB7,0x4B,0x00,0x00,}}, {0x7A2C,2,{0xB7,0x4C,0x00,0x00,}}, {0x7A2D,2,{0xB7,0x4D,0x00,0x00,}}, {0x7A2E,2,{0xB7,0x4E,0x00,0x00,}}, {0x7A2F,2,{0xB7,0x4F,0x00,0x00,}}, {0x7A30,2,{0xB7,0x50,0x00,0x00,}}, {0x7A31,2,{0xB7,0x51,0x00,0x00,}}, {0x7A32,2,{0xB7,0x52,0x00,0x00,}}, {0x7A33,2,{0xCE,0xC8,0x00,0x00,}}, {0x7A34,2,{0xB7,0x53,0x00,0x00,}}, {0x7A35,2,{0xB7,0x54,0x00,0x00,}}, {0x7A36,2,{0xB7,0x55,0x00,0x00,}}, {0x7A37,2,{0xF0,0xA2,0x00,0x00,}}, {0x7A38,2,{0xB7,0x56,0x00,0x00,}}, {0x7A39,2,{0xF0,0xA1,0x00,0x00,}}, {0x7A3A,2,{0xB7,0x57,0x00,0x00,}}, {0x7A3B,2,{0xB5,0xBE,0x00,0x00,}}, {0x7A3C,2,{0xBC,0xDA,0x00,0x00,}}, {0x7A3D,2,{0xBB,0xFC,0x00,0x00,}}, {0x7A3E,2,{0xB7,0x58,0x00,0x00,}}, {0x7A3F,2,{0xB8,0xE5,0x00,0x00,}}, {0x7A40,2,{0xB7,0x59,0x00,0x00,}}, {0x7A41,2,{0xB7,0x5A,0x00,0x00,}}, {0x7A42,2,{0xB7,0x5B,0x00,0x00,}}, {0x7A43,2,{0xB7,0x5C,0x00,0x00,}}, {0x7A44,2,{0xB7,0x5D,0x00,0x00,}}, {0x7A45,2,{0xB7,0x5E,0x00,0x00,}}, {0x7A46,2,{0xC4,0xC2,0x00,0x00,}}, {0x7A47,2,{0xB7,0x5F,0x00,0x00,}}, {0x7A48,2,{0xB7,0x60,0x00,0x00,}}, {0x7A49,2,{0xB7,0x61,0x00,0x00,}}, {0x7A4A,2,{0xB7,0x62,0x00,0x00,}}, {0x7A4B,2,{0xB7,0x63,0x00,0x00,}}, {0x7A4C,2,{0xB7,0x64,0x00,0x00,}}, {0x7A4D,2,{0xB7,0x65,0x00,0x00,}}, {0x7A4E,2,{0xB7,0x66,0x00,0x00,}}, {0x7A4F,2,{0xB7,0x67,0x00,0x00,}}, {0x7A50,2,{0xB7,0x68,0x00,0x00,}}, {0x7A51,2,{0xF0,0xA3,0x00,0x00,}}, {0x7A52,2,{0xB7,0x69,0x00,0x00,}}, {0x7A53,2,{0xB7,0x6A,0x00,0x00,}}, {0x7A54,2,{0xB7,0x6B,0x00,0x00,}}, {0x7A55,2,{0xB7,0x6C,0x00,0x00,}}, {0x7A56,2,{0xB7,0x6D,0x00,0x00,}}, {0x7A57,2,{0xCB,0xEB,0x00,0x00,}}, {0x7A58,2,{0xB7,0x6E,0x00,0x00,}}, {0x7A59,2,{0xB7,0x6F,0x00,0x00,}}, {0x7A5A,2,{0xB7,0x70,0x00,0x00,}}, {0x7A5B,2,{0xB7,0x71,0x00,0x00,}}, {0x7A5C,2,{0xB7,0x72,0x00,0x00,}}, {0x7A5D,2,{0xB7,0x73,0x00,0x00,}}, {0x7A5E,2,{0xB7,0x74,0x00,0x00,}}, {0x7A5F,2,{0xB7,0x75,0x00,0x00,}}, {0x7A60,2,{0xB7,0x76,0x00,0x00,}}, {0x7A61,2,{0xB7,0x77,0x00,0x00,}}, {0x7A62,2,{0xB7,0x78,0x00,0x00,}}, {0x7A63,2,{0xB7,0x79,0x00,0x00,}}, {0x7A64,2,{0xB7,0x7A,0x00,0x00,}}, {0x7A65,2,{0xB7,0x7B,0x00,0x00,}}, {0x7A66,2,{0xB7,0x7C,0x00,0x00,}}, {0x7A67,2,{0xB7,0x7D,0x00,0x00,}}, {0x7A68,2,{0xB7,0x7E,0x00,0x00,}}, {0x7A69,2,{0xB7,0x80,0x00,0x00,}}, {0x7A6A,2,{0xB7,0x81,0x00,0x00,}}, {0x7A6B,2,{0xB7,0x82,0x00,0x00,}}, {0x7A6C,2,{0xB7,0x83,0x00,0x00,}}, {0x7A6D,2,{0xB7,0x84,0x00,0x00,}}, {0x7A6E,2,{0xB7,0x85,0x00,0x00,}}, {0x7A6F,2,{0xB7,0x86,0x00,0x00,}}, {0x7A70,2,{0xF0,0xA6,0x00,0x00,}}, {0x7A71,2,{0xB7,0x87,0x00,0x00,}}, {0x7A72,2,{0xB7,0x88,0x00,0x00,}}, {0x7A73,2,{0xB7,0x89,0x00,0x00,}}, {0x7A74,2,{0xD1,0xA8,0x00,0x00,}}, {0x7A75,2,{0xB7,0x8A,0x00,0x00,}}, {0x7A76,2,{0xBE,0xBF,0x00,0x00,}}, {0x7A77,2,{0xC7,0xEE,0x00,0x00,}}, {0x7A78,2,{0xF1,0xB6,0x00,0x00,}}, {0x7A79,2,{0xF1,0xB7,0x00,0x00,}}, {0x7A7A,2,{0xBF,0xD5,0x00,0x00,}}, {0x7A7B,2,{0xB7,0x8B,0x00,0x00,}}, {0x7A7C,2,{0xB7,0x8C,0x00,0x00,}}, {0x7A7D,2,{0xB7,0x8D,0x00,0x00,}}, {0x7A7E,2,{0xB7,0x8E,0x00,0x00,}}, {0x7A7F,2,{0xB4,0xA9,0x00,0x00,}}, {0x7A80,2,{0xF1,0xB8,0x00,0x00,}}, {0x7A81,2,{0xCD,0xBB,0x00,0x00,}}, {0x7A82,2,{0xB7,0x8F,0x00,0x00,}}, {0x7A83,2,{0xC7,0xD4,0x00,0x00,}}, {0x7A84,2,{0xD5,0xAD,0x00,0x00,}}, {0x7A85,2,{0xB7,0x90,0x00,0x00,}}, {0x7A86,2,{0xF1,0xB9,0x00,0x00,}}, {0x7A87,2,{0xB7,0x91,0x00,0x00,}}, {0x7A88,2,{0xF1,0xBA,0x00,0x00,}}, {0x7A89,2,{0xB7,0x92,0x00,0x00,}}, {0x7A8A,2,{0xB7,0x93,0x00,0x00,}}, {0x7A8B,2,{0xB7,0x94,0x00,0x00,}}, {0x7A8C,2,{0xB7,0x95,0x00,0x00,}}, {0x7A8D,2,{0xC7,0xCF,0x00,0x00,}}, {0x7A8E,2,{0xB7,0x96,0x00,0x00,}}, {0x7A8F,2,{0xB7,0x97,0x00,0x00,}}, {0x7A90,2,{0xB7,0x98,0x00,0x00,}}, {0x7A91,2,{0xD2,0xA4,0x00,0x00,}}, {0x7A92,2,{0xD6,0xCF,0x00,0x00,}}, {0x7A93,2,{0xB7,0x99,0x00,0x00,}}, {0x7A94,2,{0xB7,0x9A,0x00,0x00,}}, {0x7A95,2,{0xF1,0xBB,0x00,0x00,}}, {0x7A96,2,{0xBD,0xD1,0x00,0x00,}}, {0x7A97,2,{0xB4,0xB0,0x00,0x00,}}, {0x7A98,2,{0xBE,0xBD,0x00,0x00,}}, {0x7A99,2,{0xB7,0x9B,0x00,0x00,}}, {0x7A9A,2,{0xB7,0x9C,0x00,0x00,}}, {0x7A9B,2,{0xB7,0x9D,0x00,0x00,}}, {0x7A9C,2,{0xB4,0xDC,0x00,0x00,}}, {0x7A9D,2,{0xCE,0xD1,0x00,0x00,}}, {0x7A9E,2,{0xB7,0x9E,0x00,0x00,}}, {0x7A9F,2,{0xBF,0xDF,0x00,0x00,}}, {0x7AA0,2,{0xF1,0xBD,0x00,0x00,}}, {0x7AA1,2,{0xB7,0x9F,0x00,0x00,}}, {0x7AA2,2,{0xB7,0xA0,0x00,0x00,}}, {0x7AA3,2,{0xB8,0x40,0x00,0x00,}}, {0x7AA4,2,{0xB8,0x41,0x00,0x00,}}, {0x7AA5,2,{0xBF,0xFA,0x00,0x00,}}, {0x7AA6,2,{0xF1,0xBC,0x00,0x00,}}, {0x7AA7,2,{0xB8,0x42,0x00,0x00,}}, {0x7AA8,2,{0xF1,0xBF,0x00,0x00,}}, {0x7AA9,2,{0xB8,0x43,0x00,0x00,}}, {0x7AAA,2,{0xB8,0x44,0x00,0x00,}}, {0x7AAB,2,{0xB8,0x45,0x00,0x00,}}, {0x7AAC,2,{0xF1,0xBE,0x00,0x00,}}, {0x7AAD,2,{0xF1,0xC0,0x00,0x00,}}, {0x7AAE,2,{0xB8,0x46,0x00,0x00,}}, {0x7AAF,2,{0xB8,0x47,0x00,0x00,}}, {0x7AB0,2,{0xB8,0x48,0x00,0x00,}}, {0x7AB1,2,{0xB8,0x49,0x00,0x00,}}, {0x7AB2,2,{0xB8,0x4A,0x00,0x00,}}, {0x7AB3,2,{0xF1,0xC1,0x00,0x00,}}, {0x7AB4,2,{0xB8,0x4B,0x00,0x00,}}, {0x7AB5,2,{0xB8,0x4C,0x00,0x00,}}, {0x7AB6,2,{0xB8,0x4D,0x00,0x00,}}, {0x7AB7,2,{0xB8,0x4E,0x00,0x00,}}, {0x7AB8,2,{0xB8,0x4F,0x00,0x00,}}, {0x7AB9,2,{0xB8,0x50,0x00,0x00,}}, {0x7ABA,2,{0xB8,0x51,0x00,0x00,}}, {0x7ABB,2,{0xB8,0x52,0x00,0x00,}}, {0x7ABC,2,{0xB8,0x53,0x00,0x00,}}, {0x7ABD,2,{0xB8,0x54,0x00,0x00,}}, {0x7ABE,2,{0xB8,0x55,0x00,0x00,}}, {0x7ABF,2,{0xC1,0xFE,0x00,0x00,}}, {0x7AC0,2,{0xB8,0x56,0x00,0x00,}}, {0x7AC1,2,{0xB8,0x57,0x00,0x00,}}, {0x7AC2,2,{0xB8,0x58,0x00,0x00,}}, {0x7AC3,2,{0xB8,0x59,0x00,0x00,}}, {0x7AC4,2,{0xB8,0x5A,0x00,0x00,}}, {0x7AC5,2,{0xB8,0x5B,0x00,0x00,}}, {0x7AC6,2,{0xB8,0x5C,0x00,0x00,}}, {0x7AC7,2,{0xB8,0x5D,0x00,0x00,}}, {0x7AC8,2,{0xB8,0x5E,0x00,0x00,}}, {0x7AC9,2,{0xB8,0x5F,0x00,0x00,}}, {0x7ACA,2,{0xB8,0x60,0x00,0x00,}}, {0x7ACB,2,{0xC1,0xA2,0x00,0x00,}}, {0x7ACC,2,{0xB8,0x61,0x00,0x00,}}, {0x7ACD,2,{0xB8,0x62,0x00,0x00,}}, {0x7ACE,2,{0xB8,0x63,0x00,0x00,}}, {0x7ACF,2,{0xB8,0x64,0x00,0x00,}}, {0x7AD0,2,{0xB8,0x65,0x00,0x00,}}, {0x7AD1,2,{0xB8,0x66,0x00,0x00,}}, {0x7AD2,2,{0xB8,0x67,0x00,0x00,}}, {0x7AD3,2,{0xB8,0x68,0x00,0x00,}}, {0x7AD4,2,{0xB8,0x69,0x00,0x00,}}, {0x7AD5,2,{0xB8,0x6A,0x00,0x00,}}, {0x7AD6,2,{0xCA,0xFA,0x00,0x00,}}, {0x7AD7,2,{0xB8,0x6B,0x00,0x00,}}, {0x7AD8,2,{0xB8,0x6C,0x00,0x00,}}, {0x7AD9,2,{0xD5,0xBE,0x00,0x00,}}, {0x7ADA,2,{0xB8,0x6D,0x00,0x00,}}, {0x7ADB,2,{0xB8,0x6E,0x00,0x00,}}, {0x7ADC,2,{0xB8,0x6F,0x00,0x00,}}, {0x7ADD,2,{0xB8,0x70,0x00,0x00,}}, {0x7ADE,2,{0xBE,0xBA,0x00,0x00,}}, {0x7ADF,2,{0xBE,0xB9,0x00,0x00,}}, {0x7AE0,2,{0xD5,0xC2,0x00,0x00,}}, {0x7AE1,2,{0xB8,0x71,0x00,0x00,}}, {0x7AE2,2,{0xB8,0x72,0x00,0x00,}}, {0x7AE3,2,{0xBF,0xA2,0x00,0x00,}}, {0x7AE4,2,{0xB8,0x73,0x00,0x00,}}, {0x7AE5,2,{0xCD,0xAF,0x00,0x00,}}, {0x7AE6,2,{0xF1,0xB5,0x00,0x00,}}, {0x7AE7,2,{0xB8,0x74,0x00,0x00,}}, {0x7AE8,2,{0xB8,0x75,0x00,0x00,}}, {0x7AE9,2,{0xB8,0x76,0x00,0x00,}}, {0x7AEA,2,{0xB8,0x77,0x00,0x00,}}, {0x7AEB,2,{0xB8,0x78,0x00,0x00,}}, {0x7AEC,2,{0xB8,0x79,0x00,0x00,}}, {0x7AED,2,{0xBD,0xDF,0x00,0x00,}}, {0x7AEE,2,{0xB8,0x7A,0x00,0x00,}}, {0x7AEF,2,{0xB6,0xCB,0x00,0x00,}}, {0x7AF0,2,{0xB8,0x7B,0x00,0x00,}}, {0x7AF1,2,{0xB8,0x7C,0x00,0x00,}}, {0x7AF2,2,{0xB8,0x7D,0x00,0x00,}}, {0x7AF3,2,{0xB8,0x7E,0x00,0x00,}}, {0x7AF4,2,{0xB8,0x80,0x00,0x00,}}, {0x7AF5,2,{0xB8,0x81,0x00,0x00,}}, {0x7AF6,2,{0xB8,0x82,0x00,0x00,}}, {0x7AF7,2,{0xB8,0x83,0x00,0x00,}}, {0x7AF8,2,{0xB8,0x84,0x00,0x00,}}, {0x7AF9,2,{0xD6,0xF1,0x00,0x00,}}, {0x7AFA,2,{0xF3,0xC3,0x00,0x00,}}, {0x7AFB,2,{0xB8,0x85,0x00,0x00,}}, {0x7AFC,2,{0xB8,0x86,0x00,0x00,}}, {0x7AFD,2,{0xF3,0xC4,0x00,0x00,}}, {0x7AFE,2,{0xB8,0x87,0x00,0x00,}}, {0x7AFF,2,{0xB8,0xCD,0x00,0x00,}}, {0x7B00,2,{0xB8,0x88,0x00,0x00,}}, {0x7B01,2,{0xB8,0x89,0x00,0x00,}}, {0x7B02,2,{0xB8,0x8A,0x00,0x00,}}, {0x7B03,2,{0xF3,0xC6,0x00,0x00,}}, {0x7B04,2,{0xF3,0xC7,0x00,0x00,}}, {0x7B05,2,{0xB8,0x8B,0x00,0x00,}}, {0x7B06,2,{0xB0,0xCA,0x00,0x00,}}, {0x7B07,2,{0xB8,0x8C,0x00,0x00,}}, {0x7B08,2,{0xF3,0xC5,0x00,0x00,}}, {0x7B09,2,{0xB8,0x8D,0x00,0x00,}}, {0x7B0A,2,{0xF3,0xC9,0x00,0x00,}}, {0x7B0B,2,{0xCB,0xF1,0x00,0x00,}}, {0x7B0C,2,{0xB8,0x8E,0x00,0x00,}}, {0x7B0D,2,{0xB8,0x8F,0x00,0x00,}}, {0x7B0E,2,{0xB8,0x90,0x00,0x00,}}, {0x7B0F,2,{0xF3,0xCB,0x00,0x00,}}, {0x7B10,2,{0xB8,0x91,0x00,0x00,}}, {0x7B11,2,{0xD0,0xA6,0x00,0x00,}}, {0x7B12,2,{0xB8,0x92,0x00,0x00,}}, {0x7B13,2,{0xB8,0x93,0x00,0x00,}}, {0x7B14,2,{0xB1,0xCA,0x00,0x00,}}, {0x7B15,2,{0xF3,0xC8,0x00,0x00,}}, {0x7B16,2,{0xB8,0x94,0x00,0x00,}}, {0x7B17,2,{0xB8,0x95,0x00,0x00,}}, {0x7B18,2,{0xB8,0x96,0x00,0x00,}}, {0x7B19,2,{0xF3,0xCF,0x00,0x00,}}, {0x7B1A,2,{0xB8,0x97,0x00,0x00,}}, {0x7B1B,2,{0xB5,0xD1,0x00,0x00,}}, {0x7B1C,2,{0xB8,0x98,0x00,0x00,}}, {0x7B1D,2,{0xB8,0x99,0x00,0x00,}}, {0x7B1E,2,{0xF3,0xD7,0x00,0x00,}}, {0x7B1F,2,{0xB8,0x9A,0x00,0x00,}}, {0x7B20,2,{0xF3,0xD2,0x00,0x00,}}, {0x7B21,2,{0xB8,0x9B,0x00,0x00,}}, {0x7B22,2,{0xB8,0x9C,0x00,0x00,}}, {0x7B23,2,{0xB8,0x9D,0x00,0x00,}}, {0x7B24,2,{0xF3,0xD4,0x00,0x00,}}, {0x7B25,2,{0xF3,0xD3,0x00,0x00,}}, {0x7B26,2,{0xB7,0xFB,0x00,0x00,}}, {0x7B27,2,{0xB8,0x9E,0x00,0x00,}}, {0x7B28,2,{0xB1,0xBF,0x00,0x00,}}, {0x7B29,2,{0xB8,0x9F,0x00,0x00,}}, {0x7B2A,2,{0xF3,0xCE,0x00,0x00,}}, {0x7B2B,2,{0xF3,0xCA,0x00,0x00,}}, {0x7B2C,2,{0xB5,0xDA,0x00,0x00,}}, {0x7B2D,2,{0xB8,0xA0,0x00,0x00,}}, {0x7B2E,2,{0xF3,0xD0,0x00,0x00,}}, {0x7B2F,2,{0xB9,0x40,0x00,0x00,}}, {0x7B30,2,{0xB9,0x41,0x00,0x00,}}, {0x7B31,2,{0xF3,0xD1,0x00,0x00,}}, {0x7B32,2,{0xB9,0x42,0x00,0x00,}}, {0x7B33,2,{0xF3,0xD5,0x00,0x00,}}, {0x7B34,2,{0xB9,0x43,0x00,0x00,}}, {0x7B35,2,{0xB9,0x44,0x00,0x00,}}, {0x7B36,2,{0xB9,0x45,0x00,0x00,}}, {0x7B37,2,{0xB9,0x46,0x00,0x00,}}, {0x7B38,2,{0xF3,0xCD,0x00,0x00,}}, {0x7B39,2,{0xB9,0x47,0x00,0x00,}}, {0x7B3A,2,{0xBC,0xE3,0x00,0x00,}}, {0x7B3B,2,{0xB9,0x48,0x00,0x00,}}, {0x7B3C,2,{0xC1,0xFD,0x00,0x00,}}, {0x7B3D,2,{0xB9,0x49,0x00,0x00,}}, {0x7B3E,2,{0xF3,0xD6,0x00,0x00,}}, {0x7B3F,2,{0xB9,0x4A,0x00,0x00,}}, {0x7B40,2,{0xB9,0x4B,0x00,0x00,}}, {0x7B41,2,{0xB9,0x4C,0x00,0x00,}}, {0x7B42,2,{0xB9,0x4D,0x00,0x00,}}, {0x7B43,2,{0xB9,0x4E,0x00,0x00,}}, {0x7B44,2,{0xB9,0x4F,0x00,0x00,}}, {0x7B45,2,{0xF3,0xDA,0x00,0x00,}}, {0x7B46,2,{0xB9,0x50,0x00,0x00,}}, {0x7B47,2,{0xF3,0xCC,0x00,0x00,}}, {0x7B48,2,{0xB9,0x51,0x00,0x00,}}, {0x7B49,2,{0xB5,0xC8,0x00,0x00,}}, {0x7B4A,2,{0xB9,0x52,0x00,0x00,}}, {0x7B4B,2,{0xBD,0xEE,0x00,0x00,}}, {0x7B4C,2,{0xF3,0xDC,0x00,0x00,}}, {0x7B4D,2,{0xB9,0x53,0x00,0x00,}}, {0x7B4E,2,{0xB9,0x54,0x00,0x00,}}, {0x7B4F,2,{0xB7,0xA4,0x00,0x00,}}, {0x7B50,2,{0xBF,0xF0,0x00,0x00,}}, {0x7B51,2,{0xD6,0xFE,0x00,0x00,}}, {0x7B52,2,{0xCD,0xB2,0x00,0x00,}}, {0x7B53,2,{0xB9,0x55,0x00,0x00,}}, {0x7B54,2,{0xB4,0xF0,0x00,0x00,}}, {0x7B55,2,{0xB9,0x56,0x00,0x00,}}, {0x7B56,2,{0xB2,0xDF,0x00,0x00,}}, {0x7B57,2,{0xB9,0x57,0x00,0x00,}}, {0x7B58,2,{0xF3,0xD8,0x00,0x00,}}, {0x7B59,2,{0xB9,0x58,0x00,0x00,}}, {0x7B5A,2,{0xF3,0xD9,0x00,0x00,}}, {0x7B5B,2,{0xC9,0xB8,0x00,0x00,}}, {0x7B5C,2,{0xB9,0x59,0x00,0x00,}}, {0x7B5D,2,{0xF3,0xDD,0x00,0x00,}}, {0x7B5E,2,{0xB9,0x5A,0x00,0x00,}}, {0x7B5F,2,{0xB9,0x5B,0x00,0x00,}}, {0x7B60,2,{0xF3,0xDE,0x00,0x00,}}, {0x7B61,2,{0xB9,0x5C,0x00,0x00,}}, {0x7B62,2,{0xF3,0xE1,0x00,0x00,}}, {0x7B63,2,{0xB9,0x5D,0x00,0x00,}}, {0x7B64,2,{0xB9,0x5E,0x00,0x00,}}, {0x7B65,2,{0xB9,0x5F,0x00,0x00,}}, {0x7B66,2,{0xB9,0x60,0x00,0x00,}}, {0x7B67,2,{0xB9,0x61,0x00,0x00,}}, {0x7B68,2,{0xB9,0x62,0x00,0x00,}}, {0x7B69,2,{0xB9,0x63,0x00,0x00,}}, {0x7B6A,2,{0xB9,0x64,0x00,0x00,}}, {0x7B6B,2,{0xB9,0x65,0x00,0x00,}}, {0x7B6C,2,{0xB9,0x66,0x00,0x00,}}, {0x7B6D,2,{0xB9,0x67,0x00,0x00,}}, {0x7B6E,2,{0xF3,0xDF,0x00,0x00,}}, {0x7B6F,2,{0xB9,0x68,0x00,0x00,}}, {0x7B70,2,{0xB9,0x69,0x00,0x00,}}, {0x7B71,2,{0xF3,0xE3,0x00,0x00,}}, {0x7B72,2,{0xF3,0xE2,0x00,0x00,}}, {0x7B73,2,{0xB9,0x6A,0x00,0x00,}}, {0x7B74,2,{0xB9,0x6B,0x00,0x00,}}, {0x7B75,2,{0xF3,0xDB,0x00,0x00,}}, {0x7B76,2,{0xB9,0x6C,0x00,0x00,}}, {0x7B77,2,{0xBF,0xEA,0x00,0x00,}}, {0x7B78,2,{0xB9,0x6D,0x00,0x00,}}, {0x7B79,2,{0xB3,0xEF,0x00,0x00,}}, {0x7B7A,2,{0xB9,0x6E,0x00,0x00,}}, {0x7B7B,2,{0xF3,0xE0,0x00,0x00,}}, {0x7B7C,2,{0xB9,0x6F,0x00,0x00,}}, {0x7B7D,2,{0xB9,0x70,0x00,0x00,}}, {0x7B7E,2,{0xC7,0xA9,0x00,0x00,}}, {0x7B7F,2,{0xB9,0x71,0x00,0x00,}}, {0x7B80,2,{0xBC,0xF2,0x00,0x00,}}, {0x7B81,2,{0xB9,0x72,0x00,0x00,}}, {0x7B82,2,{0xB9,0x73,0x00,0x00,}}, {0x7B83,2,{0xB9,0x74,0x00,0x00,}}, {0x7B84,2,{0xB9,0x75,0x00,0x00,}}, {0x7B85,2,{0xF3,0xEB,0x00,0x00,}}, {0x7B86,2,{0xB9,0x76,0x00,0x00,}}, {0x7B87,2,{0xB9,0x77,0x00,0x00,}}, {0x7B88,2,{0xB9,0x78,0x00,0x00,}}, {0x7B89,2,{0xB9,0x79,0x00,0x00,}}, {0x7B8A,2,{0xB9,0x7A,0x00,0x00,}}, {0x7B8B,2,{0xB9,0x7B,0x00,0x00,}}, {0x7B8C,2,{0xB9,0x7C,0x00,0x00,}}, {0x7B8D,2,{0xB9,0xBF,0x00,0x00,}}, {0x7B8E,2,{0xB9,0x7D,0x00,0x00,}}, {0x7B8F,2,{0xB9,0x7E,0x00,0x00,}}, {0x7B90,2,{0xF3,0xE4,0x00,0x00,}}, {0x7B91,2,{0xB9,0x80,0x00,0x00,}}, {0x7B92,2,{0xB9,0x81,0x00,0x00,}}, {0x7B93,2,{0xB9,0x82,0x00,0x00,}}, {0x7B94,2,{0xB2,0xAD,0x00,0x00,}}, {0x7B95,2,{0xBB,0xFE,0x00,0x00,}}, {0x7B96,2,{0xB9,0x83,0x00,0x00,}}, {0x7B97,2,{0xCB,0xE3,0x00,0x00,}}, {0x7B98,2,{0xB9,0x84,0x00,0x00,}}, {0x7B99,2,{0xB9,0x85,0x00,0x00,}}, {0x7B9A,2,{0xB9,0x86,0x00,0x00,}}, {0x7B9B,2,{0xB9,0x87,0x00,0x00,}}, {0x7B9C,2,{0xF3,0xED,0x00,0x00,}}, {0x7B9D,2,{0xF3,0xE9,0x00,0x00,}}, {0x7B9E,2,{0xB9,0x88,0x00,0x00,}}, {0x7B9F,2,{0xB9,0x89,0x00,0x00,}}, {0x7BA0,2,{0xB9,0x8A,0x00,0x00,}}, {0x7BA1,2,{0xB9,0xDC,0x00,0x00,}}, {0x7BA2,2,{0xF3,0xEE,0x00,0x00,}}, {0x7BA3,2,{0xB9,0x8B,0x00,0x00,}}, {0x7BA4,2,{0xB9,0x8C,0x00,0x00,}}, {0x7BA5,2,{0xB9,0x8D,0x00,0x00,}}, {0x7BA6,2,{0xF3,0xE5,0x00,0x00,}}, {0x7BA7,2,{0xF3,0xE6,0x00,0x00,}}, {0x7BA8,2,{0xF3,0xEA,0x00,0x00,}}, {0x7BA9,2,{0xC2,0xE1,0x00,0x00,}}, {0x7BAA,2,{0xF3,0xEC,0x00,0x00,}}, {0x7BAB,2,{0xF3,0xEF,0x00,0x00,}}, {0x7BAC,2,{0xF3,0xE8,0x00,0x00,}}, {0x7BAD,2,{0xBC,0xFD,0x00,0x00,}}, {0x7BAE,2,{0xB9,0x8E,0x00,0x00,}}, {0x7BAF,2,{0xB9,0x8F,0x00,0x00,}}, {0x7BB0,2,{0xB9,0x90,0x00,0x00,}}, {0x7BB1,2,{0xCF,0xE4,0x00,0x00,}}, {0x7BB2,2,{0xB9,0x91,0x00,0x00,}}, {0x7BB3,2,{0xB9,0x92,0x00,0x00,}}, {0x7BB4,2,{0xF3,0xF0,0x00,0x00,}}, {0x7BB5,2,{0xB9,0x93,0x00,0x00,}}, {0x7BB6,2,{0xB9,0x94,0x00,0x00,}}, {0x7BB7,2,{0xB9,0x95,0x00,0x00,}}, {0x7BB8,2,{0xF3,0xE7,0x00,0x00,}}, {0x7BB9,2,{0xB9,0x96,0x00,0x00,}}, {0x7BBA,2,{0xB9,0x97,0x00,0x00,}}, {0x7BBB,2,{0xB9,0x98,0x00,0x00,}}, {0x7BBC,2,{0xB9,0x99,0x00,0x00,}}, {0x7BBD,2,{0xB9,0x9A,0x00,0x00,}}, {0x7BBE,2,{0xB9,0x9B,0x00,0x00,}}, {0x7BBF,2,{0xB9,0x9C,0x00,0x00,}}, {0x7BC0,2,{0xB9,0x9D,0x00,0x00,}}, {0x7BC1,2,{0xF3,0xF2,0x00,0x00,}}, {0x7BC2,2,{0xB9,0x9E,0x00,0x00,}}, {0x7BC3,2,{0xB9,0x9F,0x00,0x00,}}, {0x7BC4,2,{0xB9,0xA0,0x00,0x00,}}, {0x7BC5,2,{0xBA,0x40,0x00,0x00,}}, {0x7BC6,2,{0xD7,0xAD,0x00,0x00,}}, {0x7BC7,2,{0xC6,0xAA,0x00,0x00,}}, {0x7BC8,2,{0xBA,0x41,0x00,0x00,}}, {0x7BC9,2,{0xBA,0x42,0x00,0x00,}}, {0x7BCA,2,{0xBA,0x43,0x00,0x00,}}, {0x7BCB,2,{0xBA,0x44,0x00,0x00,}}, {0x7BCC,2,{0xF3,0xF3,0x00,0x00,}}, {0x7BCD,2,{0xBA,0x45,0x00,0x00,}}, {0x7BCE,2,{0xBA,0x46,0x00,0x00,}}, {0x7BCF,2,{0xBA,0x47,0x00,0x00,}}, {0x7BD0,2,{0xBA,0x48,0x00,0x00,}}, {0x7BD1,2,{0xF3,0xF1,0x00,0x00,}}, {0x7BD2,2,{0xBA,0x49,0x00,0x00,}}, {0x7BD3,2,{0xC2,0xA8,0x00,0x00,}}, {0x7BD4,2,{0xBA,0x4A,0x00,0x00,}}, {0x7BD5,2,{0xBA,0x4B,0x00,0x00,}}, {0x7BD6,2,{0xBA,0x4C,0x00,0x00,}}, {0x7BD7,2,{0xBA,0x4D,0x00,0x00,}}, {0x7BD8,2,{0xBA,0x4E,0x00,0x00,}}, {0x7BD9,2,{0xB8,0xDD,0x00,0x00,}}, {0x7BDA,2,{0xF3,0xF5,0x00,0x00,}}, {0x7BDB,2,{0xBA,0x4F,0x00,0x00,}}, {0x7BDC,2,{0xBA,0x50,0x00,0x00,}}, {0x7BDD,2,{0xF3,0xF4,0x00,0x00,}}, {0x7BDE,2,{0xBA,0x51,0x00,0x00,}}, {0x7BDF,2,{0xBA,0x52,0x00,0x00,}}, {0x7BE0,2,{0xBA,0x53,0x00,0x00,}}, {0x7BE1,2,{0xB4,0xDB,0x00,0x00,}}, {0x7BE2,2,{0xBA,0x54,0x00,0x00,}}, {0x7BE3,2,{0xBA,0x55,0x00,0x00,}}, {0x7BE4,2,{0xBA,0x56,0x00,0x00,}}, {0x7BE5,2,{0xF3,0xF6,0x00,0x00,}}, {0x7BE6,2,{0xF3,0xF7,0x00,0x00,}}, {0x7BE7,2,{0xBA,0x57,0x00,0x00,}}, {0x7BE8,2,{0xBA,0x58,0x00,0x00,}}, {0x7BE9,2,{0xBA,0x59,0x00,0x00,}}, {0x7BEA,2,{0xF3,0xF8,0x00,0x00,}}, {0x7BEB,2,{0xBA,0x5A,0x00,0x00,}}, {0x7BEC,2,{0xBA,0x5B,0x00,0x00,}}, {0x7BED,2,{0xBA,0x5C,0x00,0x00,}}, {0x7BEE,2,{0xC0,0xBA,0x00,0x00,}}, {0x7BEF,2,{0xBA,0x5D,0x00,0x00,}}, {0x7BF0,2,{0xBA,0x5E,0x00,0x00,}}, {0x7BF1,2,{0xC0,0xE9,0x00,0x00,}}, {0x7BF2,2,{0xBA,0x5F,0x00,0x00,}}, {0x7BF3,2,{0xBA,0x60,0x00,0x00,}}, {0x7BF4,2,{0xBA,0x61,0x00,0x00,}}, {0x7BF5,2,{0xBA,0x62,0x00,0x00,}}, {0x7BF6,2,{0xBA,0x63,0x00,0x00,}}, {0x7BF7,2,{0xC5,0xF1,0x00,0x00,}}, {0x7BF8,2,{0xBA,0x64,0x00,0x00,}}, {0x7BF9,2,{0xBA,0x65,0x00,0x00,}}, {0x7BFA,2,{0xBA,0x66,0x00,0x00,}}, {0x7BFB,2,{0xBA,0x67,0x00,0x00,}}, {0x7BFC,2,{0xF3,0xFB,0x00,0x00,}}, {0x7BFD,2,{0xBA,0x68,0x00,0x00,}}, {0x7BFE,2,{0xF3,0xFA,0x00,0x00,}}, {0x7BFF,2,{0xBA,0x69,0x00,0x00,}}, {0x7C00,2,{0xBA,0x6A,0x00,0x00,}}, {0x7C01,2,{0xBA,0x6B,0x00,0x00,}}, {0x7C02,2,{0xBA,0x6C,0x00,0x00,}}, {0x7C03,2,{0xBA,0x6D,0x00,0x00,}}, {0x7C04,2,{0xBA,0x6E,0x00,0x00,}}, {0x7C05,2,{0xBA,0x6F,0x00,0x00,}}, {0x7C06,2,{0xBA,0x70,0x00,0x00,}}, {0x7C07,2,{0xB4,0xD8,0x00,0x00,}}, {0x7C08,2,{0xBA,0x71,0x00,0x00,}}, {0x7C09,2,{0xBA,0x72,0x00,0x00,}}, {0x7C0A,2,{0xBA,0x73,0x00,0x00,}}, {0x7C0B,2,{0xF3,0xFE,0x00,0x00,}}, {0x7C0C,2,{0xF3,0xF9,0x00,0x00,}}, {0x7C0D,2,{0xBA,0x74,0x00,0x00,}}, {0x7C0E,2,{0xBA,0x75,0x00,0x00,}}, {0x7C0F,2,{0xF3,0xFC,0x00,0x00,}}, {0x7C10,2,{0xBA,0x76,0x00,0x00,}}, {0x7C11,2,{0xBA,0x77,0x00,0x00,}}, {0x7C12,2,{0xBA,0x78,0x00,0x00,}}, {0x7C13,2,{0xBA,0x79,0x00,0x00,}}, {0x7C14,2,{0xBA,0x7A,0x00,0x00,}}, {0x7C15,2,{0xBA,0x7B,0x00,0x00,}}, {0x7C16,2,{0xF3,0xFD,0x00,0x00,}}, {0x7C17,2,{0xBA,0x7C,0x00,0x00,}}, {0x7C18,2,{0xBA,0x7D,0x00,0x00,}}, {0x7C19,2,{0xBA,0x7E,0x00,0x00,}}, {0x7C1A,2,{0xBA,0x80,0x00,0x00,}}, {0x7C1B,2,{0xBA,0x81,0x00,0x00,}}, {0x7C1C,2,{0xBA,0x82,0x00,0x00,}}, {0x7C1D,2,{0xBA,0x83,0x00,0x00,}}, {0x7C1E,2,{0xBA,0x84,0x00,0x00,}}, {0x7C1F,2,{0xF4,0xA1,0x00,0x00,}}, {0x7C20,2,{0xBA,0x85,0x00,0x00,}}, {0x7C21,2,{0xBA,0x86,0x00,0x00,}}, {0x7C22,2,{0xBA,0x87,0x00,0x00,}}, {0x7C23,2,{0xBA,0x88,0x00,0x00,}}, {0x7C24,2,{0xBA,0x89,0x00,0x00,}}, {0x7C25,2,{0xBA,0x8A,0x00,0x00,}}, {0x7C26,2,{0xF4,0xA3,0x00,0x00,}}, {0x7C27,2,{0xBB,0xC9,0x00,0x00,}}, {0x7C28,2,{0xBA,0x8B,0x00,0x00,}}, {0x7C29,2,{0xBA,0x8C,0x00,0x00,}}, {0x7C2A,2,{0xF4,0xA2,0x00,0x00,}}, {0x7C2B,2,{0xBA,0x8D,0x00,0x00,}}, {0x7C2C,2,{0xBA,0x8E,0x00,0x00,}}, {0x7C2D,2,{0xBA,0x8F,0x00,0x00,}}, {0x7C2E,2,{0xBA,0x90,0x00,0x00,}}, {0x7C2F,2,{0xBA,0x91,0x00,0x00,}}, {0x7C30,2,{0xBA,0x92,0x00,0x00,}}, {0x7C31,2,{0xBA,0x93,0x00,0x00,}}, {0x7C32,2,{0xBA,0x94,0x00,0x00,}}, {0x7C33,2,{0xBA,0x95,0x00,0x00,}}, {0x7C34,2,{0xBA,0x96,0x00,0x00,}}, {0x7C35,2,{0xBA,0x97,0x00,0x00,}}, {0x7C36,2,{0xBA,0x98,0x00,0x00,}}, {0x7C37,2,{0xBA,0x99,0x00,0x00,}}, {0x7C38,2,{0xF4,0xA4,0x00,0x00,}}, {0x7C39,2,{0xBA,0x9A,0x00,0x00,}}, {0x7C3A,2,{0xBA,0x9B,0x00,0x00,}}, {0x7C3B,2,{0xBA,0x9C,0x00,0x00,}}, {0x7C3C,2,{0xBA,0x9D,0x00,0x00,}}, {0x7C3D,2,{0xBA,0x9E,0x00,0x00,}}, {0x7C3E,2,{0xBA,0x9F,0x00,0x00,}}, {0x7C3F,2,{0xB2,0xBE,0x00,0x00,}}, {0x7C40,2,{0xF4,0xA6,0x00,0x00,}}, {0x7C41,2,{0xF4,0xA5,0x00,0x00,}}, {0x7C42,2,{0xBA,0xA0,0x00,0x00,}}, {0x7C43,2,{0xBB,0x40,0x00,0x00,}}, {0x7C44,2,{0xBB,0x41,0x00,0x00,}}, {0x7C45,2,{0xBB,0x42,0x00,0x00,}}, {0x7C46,2,{0xBB,0x43,0x00,0x00,}}, {0x7C47,2,{0xBB,0x44,0x00,0x00,}}, {0x7C48,2,{0xBB,0x45,0x00,0x00,}}, {0x7C49,2,{0xBB,0x46,0x00,0x00,}}, {0x7C4A,2,{0xBB,0x47,0x00,0x00,}}, {0x7C4B,2,{0xBB,0x48,0x00,0x00,}}, {0x7C4C,2,{0xBB,0x49,0x00,0x00,}}, {0x7C4D,2,{0xBC,0xAE,0x00,0x00,}}, {0x7C4E,2,{0xBB,0x4A,0x00,0x00,}}, {0x7C4F,2,{0xBB,0x4B,0x00,0x00,}}, {0x7C50,2,{0xBB,0x4C,0x00,0x00,}}, {0x7C51,2,{0xBB,0x4D,0x00,0x00,}}, {0x7C52,2,{0xBB,0x4E,0x00,0x00,}}, {0x7C53,2,{0xBB,0x4F,0x00,0x00,}}, {0x7C54,2,{0xBB,0x50,0x00,0x00,}}, {0x7C55,2,{0xBB,0x51,0x00,0x00,}}, {0x7C56,2,{0xBB,0x52,0x00,0x00,}}, {0x7C57,2,{0xBB,0x53,0x00,0x00,}}, {0x7C58,2,{0xBB,0x54,0x00,0x00,}}, {0x7C59,2,{0xBB,0x55,0x00,0x00,}}, {0x7C5A,2,{0xBB,0x56,0x00,0x00,}}, {0x7C5B,2,{0xBB,0x57,0x00,0x00,}}, {0x7C5C,2,{0xBB,0x58,0x00,0x00,}}, {0x7C5D,2,{0xBB,0x59,0x00,0x00,}}, {0x7C5E,2,{0xBB,0x5A,0x00,0x00,}}, {0x7C5F,2,{0xBB,0x5B,0x00,0x00,}}, {0x7C60,2,{0xBB,0x5C,0x00,0x00,}}, {0x7C61,2,{0xBB,0x5D,0x00,0x00,}}, {0x7C62,2,{0xBB,0x5E,0x00,0x00,}}, {0x7C63,2,{0xBB,0x5F,0x00,0x00,}}, {0x7C64,2,{0xBB,0x60,0x00,0x00,}}, {0x7C65,2,{0xBB,0x61,0x00,0x00,}}, {0x7C66,2,{0xBB,0x62,0x00,0x00,}}, {0x7C67,2,{0xBB,0x63,0x00,0x00,}}, {0x7C68,2,{0xBB,0x64,0x00,0x00,}}, {0x7C69,2,{0xBB,0x65,0x00,0x00,}}, {0x7C6A,2,{0xBB,0x66,0x00,0x00,}}, {0x7C6B,2,{0xBB,0x67,0x00,0x00,}}, {0x7C6C,2,{0xBB,0x68,0x00,0x00,}}, {0x7C6D,2,{0xBB,0x69,0x00,0x00,}}, {0x7C6E,2,{0xBB,0x6A,0x00,0x00,}}, {0x7C6F,2,{0xBB,0x6B,0x00,0x00,}}, {0x7C70,2,{0xBB,0x6C,0x00,0x00,}}, {0x7C71,2,{0xBB,0x6D,0x00,0x00,}}, {0x7C72,2,{0xBB,0x6E,0x00,0x00,}}, {0x7C73,2,{0xC3,0xD7,0x00,0x00,}}, {0x7C74,2,{0xD9,0xE1,0x00,0x00,}}, {0x7C75,2,{0xBB,0x6F,0x00,0x00,}}, {0x7C76,2,{0xBB,0x70,0x00,0x00,}}, {0x7C77,2,{0xBB,0x71,0x00,0x00,}}, {0x7C78,2,{0xBB,0x72,0x00,0x00,}}, {0x7C79,2,{0xBB,0x73,0x00,0x00,}}, {0x7C7A,2,{0xBB,0x74,0x00,0x00,}}, {0x7C7B,2,{0xC0,0xE0,0x00,0x00,}}, {0x7C7C,2,{0xF4,0xCC,0x00,0x00,}}, {0x7C7D,2,{0xD7,0xD1,0x00,0x00,}}, {0x7C7E,2,{0xBB,0x75,0x00,0x00,}}, {0x7C7F,2,{0xBB,0x76,0x00,0x00,}}, {0x7C80,2,{0xBB,0x77,0x00,0x00,}}, {0x7C81,2,{0xBB,0x78,0x00,0x00,}}, {0x7C82,2,{0xBB,0x79,0x00,0x00,}}, {0x7C83,2,{0xBB,0x7A,0x00,0x00,}}, {0x7C84,2,{0xBB,0x7B,0x00,0x00,}}, {0x7C85,2,{0xBB,0x7C,0x00,0x00,}}, {0x7C86,2,{0xBB,0x7D,0x00,0x00,}}, {0x7C87,2,{0xBB,0x7E,0x00,0x00,}}, {0x7C88,2,{0xBB,0x80,0x00,0x00,}}, {0x7C89,2,{0xB7,0xDB,0x00,0x00,}}, {0x7C8A,2,{0xBB,0x81,0x00,0x00,}}, {0x7C8B,2,{0xBB,0x82,0x00,0x00,}}, {0x7C8C,2,{0xBB,0x83,0x00,0x00,}}, {0x7C8D,2,{0xBB,0x84,0x00,0x00,}}, {0x7C8E,2,{0xBB,0x85,0x00,0x00,}}, {0x7C8F,2,{0xBB,0x86,0x00,0x00,}}, {0x7C90,2,{0xBB,0x87,0x00,0x00,}}, {0x7C91,2,{0xF4,0xCE,0x00,0x00,}}, {0x7C92,2,{0xC1,0xA3,0x00,0x00,}}, {0x7C93,2,{0xBB,0x88,0x00,0x00,}}, {0x7C94,2,{0xBB,0x89,0x00,0x00,}}, {0x7C95,2,{0xC6,0xC9,0x00,0x00,}}, {0x7C96,2,{0xBB,0x8A,0x00,0x00,}}, {0x7C97,2,{0xB4,0xD6,0x00,0x00,}}, {0x7C98,2,{0xD5,0xB3,0x00,0x00,}}, {0x7C99,2,{0xBB,0x8B,0x00,0x00,}}, {0x7C9A,2,{0xBB,0x8C,0x00,0x00,}}, {0x7C9B,2,{0xBB,0x8D,0x00,0x00,}}, {0x7C9C,2,{0xF4,0xD0,0x00,0x00,}}, {0x7C9D,2,{0xF4,0xCF,0x00,0x00,}}, {0x7C9E,2,{0xF4,0xD1,0x00,0x00,}}, {0x7C9F,2,{0xCB,0xDA,0x00,0x00,}}, {0x7CA0,2,{0xBB,0x8E,0x00,0x00,}}, {0x7CA1,2,{0xBB,0x8F,0x00,0x00,}}, {0x7CA2,2,{0xF4,0xD2,0x00,0x00,}}, {0x7CA3,2,{0xBB,0x90,0x00,0x00,}}, {0x7CA4,2,{0xD4,0xC1,0x00,0x00,}}, {0x7CA5,2,{0xD6,0xE0,0x00,0x00,}}, {0x7CA6,2,{0xBB,0x91,0x00,0x00,}}, {0x7CA7,2,{0xBB,0x92,0x00,0x00,}}, {0x7CA8,2,{0xBB,0x93,0x00,0x00,}}, {0x7CA9,2,{0xBB,0x94,0x00,0x00,}}, {0x7CAA,2,{0xB7,0xE0,0x00,0x00,}}, {0x7CAB,2,{0xBB,0x95,0x00,0x00,}}, {0x7CAC,2,{0xBB,0x96,0x00,0x00,}}, {0x7CAD,2,{0xBB,0x97,0x00,0x00,}}, {0x7CAE,2,{0xC1,0xB8,0x00,0x00,}}, {0x7CAF,2,{0xBB,0x98,0x00,0x00,}}, {0x7CB0,2,{0xBB,0x99,0x00,0x00,}}, {0x7CB1,2,{0xC1,0xBB,0x00,0x00,}}, {0x7CB2,2,{0xF4,0xD3,0x00,0x00,}}, {0x7CB3,2,{0xBE,0xAC,0x00,0x00,}}, {0x7CB4,2,{0xBB,0x9A,0x00,0x00,}}, {0x7CB5,2,{0xBB,0x9B,0x00,0x00,}}, {0x7CB6,2,{0xBB,0x9C,0x00,0x00,}}, {0x7CB7,2,{0xBB,0x9D,0x00,0x00,}}, {0x7CB8,2,{0xBB,0x9E,0x00,0x00,}}, {0x7CB9,2,{0xB4,0xE2,0x00,0x00,}}, {0x7CBA,2,{0xBB,0x9F,0x00,0x00,}}, {0x7CBB,2,{0xBB,0xA0,0x00,0x00,}}, {0x7CBC,2,{0xF4,0xD4,0x00,0x00,}}, {0x7CBD,2,{0xF4,0xD5,0x00,0x00,}}, {0x7CBE,2,{0xBE,0xAB,0x00,0x00,}}, {0x7CBF,2,{0xBC,0x40,0x00,0x00,}}, {0x7CC0,2,{0xBC,0x41,0x00,0x00,}}, {0x7CC1,2,{0xF4,0xD6,0x00,0x00,}}, {0x7CC2,2,{0xBC,0x42,0x00,0x00,}}, {0x7CC3,2,{0xBC,0x43,0x00,0x00,}}, {0x7CC4,2,{0xBC,0x44,0x00,0x00,}}, {0x7CC5,2,{0xF4,0xDB,0x00,0x00,}}, {0x7CC6,2,{0xBC,0x45,0x00,0x00,}}, {0x7CC7,2,{0xF4,0xD7,0x00,0x00,}}, {0x7CC8,2,{0xF4,0xDA,0x00,0x00,}}, {0x7CC9,2,{0xBC,0x46,0x00,0x00,}}, {0x7CCA,2,{0xBA,0xFD,0x00,0x00,}}, {0x7CCB,2,{0xBC,0x47,0x00,0x00,}}, {0x7CCC,2,{0xF4,0xD8,0x00,0x00,}}, {0x7CCD,2,{0xF4,0xD9,0x00,0x00,}}, {0x7CCE,2,{0xBC,0x48,0x00,0x00,}}, {0x7CCF,2,{0xBC,0x49,0x00,0x00,}}, {0x7CD0,2,{0xBC,0x4A,0x00,0x00,}}, {0x7CD1,2,{0xBC,0x4B,0x00,0x00,}}, {0x7CD2,2,{0xBC,0x4C,0x00,0x00,}}, {0x7CD3,2,{0xBC,0x4D,0x00,0x00,}}, {0x7CD4,2,{0xBC,0x4E,0x00,0x00,}}, {0x7CD5,2,{0xB8,0xE2,0x00,0x00,}}, {0x7CD6,2,{0xCC,0xC7,0x00,0x00,}}, {0x7CD7,2,{0xF4,0xDC,0x00,0x00,}}, {0x7CD8,2,{0xBC,0x4F,0x00,0x00,}}, {0x7CD9,2,{0xB2,0xDA,0x00,0x00,}}, {0x7CDA,2,{0xBC,0x50,0x00,0x00,}}, {0x7CDB,2,{0xBC,0x51,0x00,0x00,}}, {0x7CDC,2,{0xC3,0xD3,0x00,0x00,}}, {0x7CDD,2,{0xBC,0x52,0x00,0x00,}}, {0x7CDE,2,{0xBC,0x53,0x00,0x00,}}, {0x7CDF,2,{0xD4,0xE3,0x00,0x00,}}, {0x7CE0,2,{0xBF,0xB7,0x00,0x00,}}, {0x7CE1,2,{0xBC,0x54,0x00,0x00,}}, {0x7CE2,2,{0xBC,0x55,0x00,0x00,}}, {0x7CE3,2,{0xBC,0x56,0x00,0x00,}}, {0x7CE4,2,{0xBC,0x57,0x00,0x00,}}, {0x7CE5,2,{0xBC,0x58,0x00,0x00,}}, {0x7CE6,2,{0xBC,0x59,0x00,0x00,}}, {0x7CE7,2,{0xBC,0x5A,0x00,0x00,}}, {0x7CE8,2,{0xF4,0xDD,0x00,0x00,}}, {0x7CE9,2,{0xBC,0x5B,0x00,0x00,}}, {0x7CEA,2,{0xBC,0x5C,0x00,0x00,}}, {0x7CEB,2,{0xBC,0x5D,0x00,0x00,}}, {0x7CEC,2,{0xBC,0x5E,0x00,0x00,}}, {0x7CED,2,{0xBC,0x5F,0x00,0x00,}}, {0x7CEE,2,{0xBC,0x60,0x00,0x00,}}, {0x7CEF,2,{0xC5,0xB4,0x00,0x00,}}, {0x7CF0,2,{0xBC,0x61,0x00,0x00,}}, {0x7CF1,2,{0xBC,0x62,0x00,0x00,}}, {0x7CF2,2,{0xBC,0x63,0x00,0x00,}}, {0x7CF3,2,{0xBC,0x64,0x00,0x00,}}, {0x7CF4,2,{0xBC,0x65,0x00,0x00,}}, {0x7CF5,2,{0xBC,0x66,0x00,0x00,}}, {0x7CF6,2,{0xBC,0x67,0x00,0x00,}}, {0x7CF7,2,{0xBC,0x68,0x00,0x00,}}, {0x7CF8,2,{0xF4,0xE9,0x00,0x00,}}, {0x7CF9,2,{0xBC,0x69,0x00,0x00,}}, {0x7CFA,2,{0xBC,0x6A,0x00,0x00,}}, {0x7CFB,2,{0xCF,0xB5,0x00,0x00,}}, {0x7CFC,2,{0xBC,0x6B,0x00,0x00,}}, {0x7CFD,2,{0xBC,0x6C,0x00,0x00,}}, {0x7CFE,2,{0xBC,0x6D,0x00,0x00,}}, {0x7CFF,2,{0xBC,0x6E,0x00,0x00,}}, {0x7D00,2,{0xBC,0x6F,0x00,0x00,}}, {0x7D01,2,{0xBC,0x70,0x00,0x00,}}, {0x7D02,2,{0xBC,0x71,0x00,0x00,}}, {0x7D03,2,{0xBC,0x72,0x00,0x00,}}, {0x7D04,2,{0xBC,0x73,0x00,0x00,}}, {0x7D05,2,{0xBC,0x74,0x00,0x00,}}, {0x7D06,2,{0xBC,0x75,0x00,0x00,}}, {0x7D07,2,{0xBC,0x76,0x00,0x00,}}, {0x7D08,2,{0xBC,0x77,0x00,0x00,}}, {0x7D09,2,{0xBC,0x78,0x00,0x00,}}, {0x7D0A,2,{0xCE,0xC9,0x00,0x00,}}, {0x7D0B,2,{0xBC,0x79,0x00,0x00,}}, {0x7D0C,2,{0xBC,0x7A,0x00,0x00,}}, {0x7D0D,2,{0xBC,0x7B,0x00,0x00,}}, {0x7D0E,2,{0xBC,0x7C,0x00,0x00,}}, {0x7D0F,2,{0xBC,0x7D,0x00,0x00,}}, {0x7D10,2,{0xBC,0x7E,0x00,0x00,}}, {0x7D11,2,{0xBC,0x80,0x00,0x00,}}, {0x7D12,2,{0xBC,0x81,0x00,0x00,}}, {0x7D13,2,{0xBC,0x82,0x00,0x00,}}, {0x7D14,2,{0xBC,0x83,0x00,0x00,}}, {0x7D15,2,{0xBC,0x84,0x00,0x00,}}, {0x7D16,2,{0xBC,0x85,0x00,0x00,}}, {0x7D17,2,{0xBC,0x86,0x00,0x00,}}, {0x7D18,2,{0xBC,0x87,0x00,0x00,}}, {0x7D19,2,{0xBC,0x88,0x00,0x00,}}, {0x7D1A,2,{0xBC,0x89,0x00,0x00,}}, {0x7D1B,2,{0xBC,0x8A,0x00,0x00,}}, {0x7D1C,2,{0xBC,0x8B,0x00,0x00,}}, {0x7D1D,2,{0xBC,0x8C,0x00,0x00,}}, {0x7D1E,2,{0xBC,0x8D,0x00,0x00,}}, {0x7D1F,2,{0xBC,0x8E,0x00,0x00,}}, {0x7D20,2,{0xCB,0xD8,0x00,0x00,}}, {0x7D21,2,{0xBC,0x8F,0x00,0x00,}}, {0x7D22,2,{0xCB,0xF7,0x00,0x00,}}, {0x7D23,2,{0xBC,0x90,0x00,0x00,}}, {0x7D24,2,{0xBC,0x91,0x00,0x00,}}, {0x7D25,2,{0xBC,0x92,0x00,0x00,}}, {0x7D26,2,{0xBC,0x93,0x00,0x00,}}, {0x7D27,2,{0xBD,0xF4,0x00,0x00,}}, {0x7D28,2,{0xBC,0x94,0x00,0x00,}}, {0x7D29,2,{0xBC,0x95,0x00,0x00,}}, {0x7D2A,2,{0xBC,0x96,0x00,0x00,}}, {0x7D2B,2,{0xD7,0xCF,0x00,0x00,}}, {0x7D2C,2,{0xBC,0x97,0x00,0x00,}}, {0x7D2D,2,{0xBC,0x98,0x00,0x00,}}, {0x7D2E,2,{0xBC,0x99,0x00,0x00,}}, {0x7D2F,2,{0xC0,0xDB,0x00,0x00,}}, {0x7D30,2,{0xBC,0x9A,0x00,0x00,}}, {0x7D31,2,{0xBC,0x9B,0x00,0x00,}}, {0x7D32,2,{0xBC,0x9C,0x00,0x00,}}, {0x7D33,2,{0xBC,0x9D,0x00,0x00,}}, {0x7D34,2,{0xBC,0x9E,0x00,0x00,}}, {0x7D35,2,{0xBC,0x9F,0x00,0x00,}}, {0x7D36,2,{0xBC,0xA0,0x00,0x00,}}, {0x7D37,2,{0xBD,0x40,0x00,0x00,}}, {0x7D38,2,{0xBD,0x41,0x00,0x00,}}, {0x7D39,2,{0xBD,0x42,0x00,0x00,}}, {0x7D3A,2,{0xBD,0x43,0x00,0x00,}}, {0x7D3B,2,{0xBD,0x44,0x00,0x00,}}, {0x7D3C,2,{0xBD,0x45,0x00,0x00,}}, {0x7D3D,2,{0xBD,0x46,0x00,0x00,}}, {0x7D3E,2,{0xBD,0x47,0x00,0x00,}}, {0x7D3F,2,{0xBD,0x48,0x00,0x00,}}, {0x7D40,2,{0xBD,0x49,0x00,0x00,}}, {0x7D41,2,{0xBD,0x4A,0x00,0x00,}}, {0x7D42,2,{0xBD,0x4B,0x00,0x00,}}, {0x7D43,2,{0xBD,0x4C,0x00,0x00,}}, {0x7D44,2,{0xBD,0x4D,0x00,0x00,}}, {0x7D45,2,{0xBD,0x4E,0x00,0x00,}}, {0x7D46,2,{0xBD,0x4F,0x00,0x00,}}, {0x7D47,2,{0xBD,0x50,0x00,0x00,}}, {0x7D48,2,{0xBD,0x51,0x00,0x00,}}, {0x7D49,2,{0xBD,0x52,0x00,0x00,}}, {0x7D4A,2,{0xBD,0x53,0x00,0x00,}}, {0x7D4B,2,{0xBD,0x54,0x00,0x00,}}, {0x7D4C,2,{0xBD,0x55,0x00,0x00,}}, {0x7D4D,2,{0xBD,0x56,0x00,0x00,}}, {0x7D4E,2,{0xBD,0x57,0x00,0x00,}}, {0x7D4F,2,{0xBD,0x58,0x00,0x00,}}, {0x7D50,2,{0xBD,0x59,0x00,0x00,}}, {0x7D51,2,{0xBD,0x5A,0x00,0x00,}}, {0x7D52,2,{0xBD,0x5B,0x00,0x00,}}, {0x7D53,2,{0xBD,0x5C,0x00,0x00,}}, {0x7D54,2,{0xBD,0x5D,0x00,0x00,}}, {0x7D55,2,{0xBD,0x5E,0x00,0x00,}}, {0x7D56,2,{0xBD,0x5F,0x00,0x00,}}, {0x7D57,2,{0xBD,0x60,0x00,0x00,}}, {0x7D58,2,{0xBD,0x61,0x00,0x00,}}, {0x7D59,2,{0xBD,0x62,0x00,0x00,}}, {0x7D5A,2,{0xBD,0x63,0x00,0x00,}}, {0x7D5B,2,{0xBD,0x64,0x00,0x00,}}, {0x7D5C,2,{0xBD,0x65,0x00,0x00,}}, {0x7D5D,2,{0xBD,0x66,0x00,0x00,}}, {0x7D5E,2,{0xBD,0x67,0x00,0x00,}}, {0x7D5F,2,{0xBD,0x68,0x00,0x00,}}, {0x7D60,2,{0xBD,0x69,0x00,0x00,}}, {0x7D61,2,{0xBD,0x6A,0x00,0x00,}}, {0x7D62,2,{0xBD,0x6B,0x00,0x00,}}, {0x7D63,2,{0xBD,0x6C,0x00,0x00,}}, {0x7D64,2,{0xBD,0x6D,0x00,0x00,}}, {0x7D65,2,{0xBD,0x6E,0x00,0x00,}}, {0x7D66,2,{0xBD,0x6F,0x00,0x00,}}, {0x7D67,2,{0xBD,0x70,0x00,0x00,}}, {0x7D68,2,{0xBD,0x71,0x00,0x00,}}, {0x7D69,2,{0xBD,0x72,0x00,0x00,}}, {0x7D6A,2,{0xBD,0x73,0x00,0x00,}}, {0x7D6B,2,{0xBD,0x74,0x00,0x00,}}, {0x7D6C,2,{0xBD,0x75,0x00,0x00,}}, {0x7D6D,2,{0xBD,0x76,0x00,0x00,}}, {0x7D6E,2,{0xD0,0xF5,0x00,0x00,}}, {0x7D6F,2,{0xBD,0x77,0x00,0x00,}}, {0x7D70,2,{0xBD,0x78,0x00,0x00,}}, {0x7D71,2,{0xBD,0x79,0x00,0x00,}}, {0x7D72,2,{0xBD,0x7A,0x00,0x00,}}, {0x7D73,2,{0xBD,0x7B,0x00,0x00,}}, {0x7D74,2,{0xBD,0x7C,0x00,0x00,}}, {0x7D75,2,{0xBD,0x7D,0x00,0x00,}}, {0x7D76,2,{0xBD,0x7E,0x00,0x00,}}, {0x7D77,2,{0xF4,0xEA,0x00,0x00,}}, {0x7D78,2,{0xBD,0x80,0x00,0x00,}}, {0x7D79,2,{0xBD,0x81,0x00,0x00,}}, {0x7D7A,2,{0xBD,0x82,0x00,0x00,}}, {0x7D7B,2,{0xBD,0x83,0x00,0x00,}}, {0x7D7C,2,{0xBD,0x84,0x00,0x00,}}, {0x7D7D,2,{0xBD,0x85,0x00,0x00,}}, {0x7D7E,2,{0xBD,0x86,0x00,0x00,}}, {0x7D7F,2,{0xBD,0x87,0x00,0x00,}}, {0x7D80,2,{0xBD,0x88,0x00,0x00,}}, {0x7D81,2,{0xBD,0x89,0x00,0x00,}}, {0x7D82,2,{0xBD,0x8A,0x00,0x00,}}, {0x7D83,2,{0xBD,0x8B,0x00,0x00,}}, {0x7D84,2,{0xBD,0x8C,0x00,0x00,}}, {0x7D85,2,{0xBD,0x8D,0x00,0x00,}}, {0x7D86,2,{0xBD,0x8E,0x00,0x00,}}, {0x7D87,2,{0xBD,0x8F,0x00,0x00,}}, {0x7D88,2,{0xBD,0x90,0x00,0x00,}}, {0x7D89,2,{0xBD,0x91,0x00,0x00,}}, {0x7D8A,2,{0xBD,0x92,0x00,0x00,}}, {0x7D8B,2,{0xBD,0x93,0x00,0x00,}}, {0x7D8C,2,{0xBD,0x94,0x00,0x00,}}, {0x7D8D,2,{0xBD,0x95,0x00,0x00,}}, {0x7D8E,2,{0xBD,0x96,0x00,0x00,}}, {0x7D8F,2,{0xBD,0x97,0x00,0x00,}}, {0x7D90,2,{0xBD,0x98,0x00,0x00,}}, {0x7D91,2,{0xBD,0x99,0x00,0x00,}}, {0x7D92,2,{0xBD,0x9A,0x00,0x00,}}, {0x7D93,2,{0xBD,0x9B,0x00,0x00,}}, {0x7D94,2,{0xBD,0x9C,0x00,0x00,}}, {0x7D95,2,{0xBD,0x9D,0x00,0x00,}}, {0x7D96,2,{0xBD,0x9E,0x00,0x00,}}, {0x7D97,2,{0xBD,0x9F,0x00,0x00,}}, {0x7D98,2,{0xBD,0xA0,0x00,0x00,}}, {0x7D99,2,{0xBE,0x40,0x00,0x00,}}, {0x7D9A,2,{0xBE,0x41,0x00,0x00,}}, {0x7D9B,2,{0xBE,0x42,0x00,0x00,}}, {0x7D9C,2,{0xBE,0x43,0x00,0x00,}}, {0x7D9D,2,{0xBE,0x44,0x00,0x00,}}, {0x7D9E,2,{0xBE,0x45,0x00,0x00,}}, {0x7D9F,2,{0xBE,0x46,0x00,0x00,}}, {0x7DA0,2,{0xBE,0x47,0x00,0x00,}}, {0x7DA1,2,{0xBE,0x48,0x00,0x00,}}, {0x7DA2,2,{0xBE,0x49,0x00,0x00,}}, {0x7DA3,2,{0xBE,0x4A,0x00,0x00,}}, {0x7DA4,2,{0xBE,0x4B,0x00,0x00,}}, {0x7DA5,2,{0xBE,0x4C,0x00,0x00,}}, {0x7DA6,2,{0xF4,0xEB,0x00,0x00,}}, {0x7DA7,2,{0xBE,0x4D,0x00,0x00,}}, {0x7DA8,2,{0xBE,0x4E,0x00,0x00,}}, {0x7DA9,2,{0xBE,0x4F,0x00,0x00,}}, {0x7DAA,2,{0xBE,0x50,0x00,0x00,}}, {0x7DAB,2,{0xBE,0x51,0x00,0x00,}}, {0x7DAC,2,{0xBE,0x52,0x00,0x00,}}, {0x7DAD,2,{0xBE,0x53,0x00,0x00,}}, {0x7DAE,2,{0xF4,0xEC,0x00,0x00,}}, {0x7DAF,2,{0xBE,0x54,0x00,0x00,}}, {0x7DB0,2,{0xBE,0x55,0x00,0x00,}}, {0x7DB1,2,{0xBE,0x56,0x00,0x00,}}, {0x7DB2,2,{0xBE,0x57,0x00,0x00,}}, {0x7DB3,2,{0xBE,0x58,0x00,0x00,}}, {0x7DB4,2,{0xBE,0x59,0x00,0x00,}}, {0x7DB5,2,{0xBE,0x5A,0x00,0x00,}}, {0x7DB6,2,{0xBE,0x5B,0x00,0x00,}}, {0x7DB7,2,{0xBE,0x5C,0x00,0x00,}}, {0x7DB8,2,{0xBE,0x5D,0x00,0x00,}}, {0x7DB9,2,{0xBE,0x5E,0x00,0x00,}}, {0x7DBA,2,{0xBE,0x5F,0x00,0x00,}}, {0x7DBB,2,{0xBE,0x60,0x00,0x00,}}, {0x7DBC,2,{0xBE,0x61,0x00,0x00,}}, {0x7DBD,2,{0xBE,0x62,0x00,0x00,}}, {0x7DBE,2,{0xBE,0x63,0x00,0x00,}}, {0x7DBF,2,{0xBE,0x64,0x00,0x00,}}, {0x7DC0,2,{0xBE,0x65,0x00,0x00,}}, {0x7DC1,2,{0xBE,0x66,0x00,0x00,}}, {0x7DC2,2,{0xBE,0x67,0x00,0x00,}}, {0x7DC3,2,{0xBE,0x68,0x00,0x00,}}, {0x7DC4,2,{0xBE,0x69,0x00,0x00,}}, {0x7DC5,2,{0xBE,0x6A,0x00,0x00,}}, {0x7DC6,2,{0xBE,0x6B,0x00,0x00,}}, {0x7DC7,2,{0xBE,0x6C,0x00,0x00,}}, {0x7DC8,2,{0xBE,0x6D,0x00,0x00,}}, {0x7DC9,2,{0xBE,0x6E,0x00,0x00,}}, {0x7DCA,2,{0xBE,0x6F,0x00,0x00,}}, {0x7DCB,2,{0xBE,0x70,0x00,0x00,}}, {0x7DCC,2,{0xBE,0x71,0x00,0x00,}}, {0x7DCD,2,{0xBE,0x72,0x00,0x00,}}, {0x7DCE,2,{0xBE,0x73,0x00,0x00,}}, {0x7DCF,2,{0xBE,0x74,0x00,0x00,}}, {0x7DD0,2,{0xBE,0x75,0x00,0x00,}}, {0x7DD1,2,{0xBE,0x76,0x00,0x00,}}, {0x7DD2,2,{0xBE,0x77,0x00,0x00,}}, {0x7DD3,2,{0xBE,0x78,0x00,0x00,}}, {0x7DD4,2,{0xBE,0x79,0x00,0x00,}}, {0x7DD5,2,{0xBE,0x7A,0x00,0x00,}}, {0x7DD6,2,{0xBE,0x7B,0x00,0x00,}}, {0x7DD7,2,{0xBE,0x7C,0x00,0x00,}}, {0x7DD8,2,{0xBE,0x7D,0x00,0x00,}}, {0x7DD9,2,{0xBE,0x7E,0x00,0x00,}}, {0x7DDA,2,{0xBE,0x80,0x00,0x00,}}, {0x7DDB,2,{0xBE,0x81,0x00,0x00,}}, {0x7DDC,2,{0xBE,0x82,0x00,0x00,}}, {0x7DDD,2,{0xBE,0x83,0x00,0x00,}}, {0x7DDE,2,{0xBE,0x84,0x00,0x00,}}, {0x7DDF,2,{0xBE,0x85,0x00,0x00,}}, {0x7DE0,2,{0xBE,0x86,0x00,0x00,}}, {0x7DE1,2,{0xBE,0x87,0x00,0x00,}}, {0x7DE2,2,{0xBE,0x88,0x00,0x00,}}, {0x7DE3,2,{0xBE,0x89,0x00,0x00,}}, {0x7DE4,2,{0xBE,0x8A,0x00,0x00,}}, {0x7DE5,2,{0xBE,0x8B,0x00,0x00,}}, {0x7DE6,2,{0xBE,0x8C,0x00,0x00,}}, {0x7DE7,2,{0xBE,0x8D,0x00,0x00,}}, {0x7DE8,2,{0xBE,0x8E,0x00,0x00,}}, {0x7DE9,2,{0xBE,0x8F,0x00,0x00,}}, {0x7DEA,2,{0xBE,0x90,0x00,0x00,}}, {0x7DEB,2,{0xBE,0x91,0x00,0x00,}}, {0x7DEC,2,{0xBE,0x92,0x00,0x00,}}, {0x7DED,2,{0xBE,0x93,0x00,0x00,}}, {0x7DEE,2,{0xBE,0x94,0x00,0x00,}}, {0x7DEF,2,{0xBE,0x95,0x00,0x00,}}, {0x7DF0,2,{0xBE,0x96,0x00,0x00,}}, {0x7DF1,2,{0xBE,0x97,0x00,0x00,}}, {0x7DF2,2,{0xBE,0x98,0x00,0x00,}}, {0x7DF3,2,{0xBE,0x99,0x00,0x00,}}, {0x7DF4,2,{0xBE,0x9A,0x00,0x00,}}, {0x7DF5,2,{0xBE,0x9B,0x00,0x00,}}, {0x7DF6,2,{0xBE,0x9C,0x00,0x00,}}, {0x7DF7,2,{0xBE,0x9D,0x00,0x00,}}, {0x7DF8,2,{0xBE,0x9E,0x00,0x00,}}, {0x7DF9,2,{0xBE,0x9F,0x00,0x00,}}, {0x7DFA,2,{0xBE,0xA0,0x00,0x00,}}, {0x7DFB,2,{0xBF,0x40,0x00,0x00,}}, {0x7DFC,2,{0xBF,0x41,0x00,0x00,}}, {0x7DFD,2,{0xBF,0x42,0x00,0x00,}}, {0x7DFE,2,{0xBF,0x43,0x00,0x00,}}, {0x7DFF,2,{0xBF,0x44,0x00,0x00,}}, {0x7E00,2,{0xBF,0x45,0x00,0x00,}}, {0x7E01,2,{0xBF,0x46,0x00,0x00,}}, {0x7E02,2,{0xBF,0x47,0x00,0x00,}}, {0x7E03,2,{0xBF,0x48,0x00,0x00,}}, {0x7E04,2,{0xBF,0x49,0x00,0x00,}}, {0x7E05,2,{0xBF,0x4A,0x00,0x00,}}, {0x7E06,2,{0xBF,0x4B,0x00,0x00,}}, {0x7E07,2,{0xBF,0x4C,0x00,0x00,}}, {0x7E08,2,{0xBF,0x4D,0x00,0x00,}}, {0x7E09,2,{0xBF,0x4E,0x00,0x00,}}, {0x7E0A,2,{0xBF,0x4F,0x00,0x00,}}, {0x7E0B,2,{0xBF,0x50,0x00,0x00,}}, {0x7E0C,2,{0xBF,0x51,0x00,0x00,}}, {0x7E0D,2,{0xBF,0x52,0x00,0x00,}}, {0x7E0E,2,{0xBF,0x53,0x00,0x00,}}, {0x7E0F,2,{0xBF,0x54,0x00,0x00,}}, {0x7E10,2,{0xBF,0x55,0x00,0x00,}}, {0x7E11,2,{0xBF,0x56,0x00,0x00,}}, {0x7E12,2,{0xBF,0x57,0x00,0x00,}}, {0x7E13,2,{0xBF,0x58,0x00,0x00,}}, {0x7E14,2,{0xBF,0x59,0x00,0x00,}}, {0x7E15,2,{0xBF,0x5A,0x00,0x00,}}, {0x7E16,2,{0xBF,0x5B,0x00,0x00,}}, {0x7E17,2,{0xBF,0x5C,0x00,0x00,}}, {0x7E18,2,{0xBF,0x5D,0x00,0x00,}}, {0x7E19,2,{0xBF,0x5E,0x00,0x00,}}, {0x7E1A,2,{0xBF,0x5F,0x00,0x00,}}, {0x7E1B,2,{0xBF,0x60,0x00,0x00,}}, {0x7E1C,2,{0xBF,0x61,0x00,0x00,}}, {0x7E1D,2,{0xBF,0x62,0x00,0x00,}}, {0x7E1E,2,{0xBF,0x63,0x00,0x00,}}, {0x7E1F,2,{0xBF,0x64,0x00,0x00,}}, {0x7E20,2,{0xBF,0x65,0x00,0x00,}}, {0x7E21,2,{0xBF,0x66,0x00,0x00,}}, {0x7E22,2,{0xBF,0x67,0x00,0x00,}}, {0x7E23,2,{0xBF,0x68,0x00,0x00,}}, {0x7E24,2,{0xBF,0x69,0x00,0x00,}}, {0x7E25,2,{0xBF,0x6A,0x00,0x00,}}, {0x7E26,2,{0xBF,0x6B,0x00,0x00,}}, {0x7E27,2,{0xBF,0x6C,0x00,0x00,}}, {0x7E28,2,{0xBF,0x6D,0x00,0x00,}}, {0x7E29,2,{0xBF,0x6E,0x00,0x00,}}, {0x7E2A,2,{0xBF,0x6F,0x00,0x00,}}, {0x7E2B,2,{0xBF,0x70,0x00,0x00,}}, {0x7E2C,2,{0xBF,0x71,0x00,0x00,}}, {0x7E2D,2,{0xBF,0x72,0x00,0x00,}}, {0x7E2E,2,{0xBF,0x73,0x00,0x00,}}, {0x7E2F,2,{0xBF,0x74,0x00,0x00,}}, {0x7E30,2,{0xBF,0x75,0x00,0x00,}}, {0x7E31,2,{0xBF,0x76,0x00,0x00,}}, {0x7E32,2,{0xBF,0x77,0x00,0x00,}}, {0x7E33,2,{0xBF,0x78,0x00,0x00,}}, {0x7E34,2,{0xBF,0x79,0x00,0x00,}}, {0x7E35,2,{0xBF,0x7A,0x00,0x00,}}, {0x7E36,2,{0xBF,0x7B,0x00,0x00,}}, {0x7E37,2,{0xBF,0x7C,0x00,0x00,}}, {0x7E38,2,{0xBF,0x7D,0x00,0x00,}}, {0x7E39,2,{0xBF,0x7E,0x00,0x00,}}, {0x7E3A,2,{0xBF,0x80,0x00,0x00,}}, {0x7E3B,2,{0xF7,0xE3,0x00,0x00,}}, {0x7E3C,2,{0xBF,0x81,0x00,0x00,}}, {0x7E3D,2,{0xBF,0x82,0x00,0x00,}}, {0x7E3E,2,{0xBF,0x83,0x00,0x00,}}, {0x7E3F,2,{0xBF,0x84,0x00,0x00,}}, {0x7E40,2,{0xBF,0x85,0x00,0x00,}}, {0x7E41,2,{0xB7,0xB1,0x00,0x00,}}, {0x7E42,2,{0xBF,0x86,0x00,0x00,}}, {0x7E43,2,{0xBF,0x87,0x00,0x00,}}, {0x7E44,2,{0xBF,0x88,0x00,0x00,}}, {0x7E45,2,{0xBF,0x89,0x00,0x00,}}, {0x7E46,2,{0xBF,0x8A,0x00,0x00,}}, {0x7E47,2,{0xF4,0xED,0x00,0x00,}}, {0x7E48,2,{0xBF,0x8B,0x00,0x00,}}, {0x7E49,2,{0xBF,0x8C,0x00,0x00,}}, {0x7E4A,2,{0xBF,0x8D,0x00,0x00,}}, {0x7E4B,2,{0xBF,0x8E,0x00,0x00,}}, {0x7E4C,2,{0xBF,0x8F,0x00,0x00,}}, {0x7E4D,2,{0xBF,0x90,0x00,0x00,}}, {0x7E4E,2,{0xBF,0x91,0x00,0x00,}}, {0x7E4F,2,{0xBF,0x92,0x00,0x00,}}, {0x7E50,2,{0xBF,0x93,0x00,0x00,}}, {0x7E51,2,{0xBF,0x94,0x00,0x00,}}, {0x7E52,2,{0xBF,0x95,0x00,0x00,}}, {0x7E53,2,{0xBF,0x96,0x00,0x00,}}, {0x7E54,2,{0xBF,0x97,0x00,0x00,}}, {0x7E55,2,{0xBF,0x98,0x00,0x00,}}, {0x7E56,2,{0xBF,0x99,0x00,0x00,}}, {0x7E57,2,{0xBF,0x9A,0x00,0x00,}}, {0x7E58,2,{0xBF,0x9B,0x00,0x00,}}, {0x7E59,2,{0xBF,0x9C,0x00,0x00,}}, {0x7E5A,2,{0xBF,0x9D,0x00,0x00,}}, {0x7E5B,2,{0xBF,0x9E,0x00,0x00,}}, {0x7E5C,2,{0xBF,0x9F,0x00,0x00,}}, {0x7E5D,2,{0xBF,0xA0,0x00,0x00,}}, {0x7E5E,2,{0xC0,0x40,0x00,0x00,}}, {0x7E5F,2,{0xC0,0x41,0x00,0x00,}}, {0x7E60,2,{0xC0,0x42,0x00,0x00,}}, {0x7E61,2,{0xC0,0x43,0x00,0x00,}}, {0x7E62,2,{0xC0,0x44,0x00,0x00,}}, {0x7E63,2,{0xC0,0x45,0x00,0x00,}}, {0x7E64,2,{0xC0,0x46,0x00,0x00,}}, {0x7E65,2,{0xC0,0x47,0x00,0x00,}}, {0x7E66,2,{0xC0,0x48,0x00,0x00,}}, {0x7E67,2,{0xC0,0x49,0x00,0x00,}}, {0x7E68,2,{0xC0,0x4A,0x00,0x00,}}, {0x7E69,2,{0xC0,0x4B,0x00,0x00,}}, {0x7E6A,2,{0xC0,0x4C,0x00,0x00,}}, {0x7E6B,2,{0xC0,0x4D,0x00,0x00,}}, {0x7E6C,2,{0xC0,0x4E,0x00,0x00,}}, {0x7E6D,2,{0xC0,0x4F,0x00,0x00,}}, {0x7E6E,2,{0xC0,0x50,0x00,0x00,}}, {0x7E6F,2,{0xC0,0x51,0x00,0x00,}}, {0x7E70,2,{0xC0,0x52,0x00,0x00,}}, {0x7E71,2,{0xC0,0x53,0x00,0x00,}}, {0x7E72,2,{0xC0,0x54,0x00,0x00,}}, {0x7E73,2,{0xC0,0x55,0x00,0x00,}}, {0x7E74,2,{0xC0,0x56,0x00,0x00,}}, {0x7E75,2,{0xC0,0x57,0x00,0x00,}}, {0x7E76,2,{0xC0,0x58,0x00,0x00,}}, {0x7E77,2,{0xC0,0x59,0x00,0x00,}}, {0x7E78,2,{0xC0,0x5A,0x00,0x00,}}, {0x7E79,2,{0xC0,0x5B,0x00,0x00,}}, {0x7E7A,2,{0xC0,0x5C,0x00,0x00,}}, {0x7E7B,2,{0xC0,0x5D,0x00,0x00,}}, {0x7E7C,2,{0xC0,0x5E,0x00,0x00,}}, {0x7E7D,2,{0xC0,0x5F,0x00,0x00,}}, {0x7E7E,2,{0xC0,0x60,0x00,0x00,}}, {0x7E7F,2,{0xC0,0x61,0x00,0x00,}}, {0x7E80,2,{0xC0,0x62,0x00,0x00,}}, {0x7E81,2,{0xC0,0x63,0x00,0x00,}}, {0x7E82,2,{0xD7,0xEB,0x00,0x00,}}, {0x7E83,2,{0xC0,0x64,0x00,0x00,}}, {0x7E84,2,{0xC0,0x65,0x00,0x00,}}, {0x7E85,2,{0xC0,0x66,0x00,0x00,}}, {0x7E86,2,{0xC0,0x67,0x00,0x00,}}, {0x7E87,2,{0xC0,0x68,0x00,0x00,}}, {0x7E88,2,{0xC0,0x69,0x00,0x00,}}, {0x7E89,2,{0xC0,0x6A,0x00,0x00,}}, {0x7E8A,2,{0xC0,0x6B,0x00,0x00,}}, {0x7E8B,2,{0xC0,0x6C,0x00,0x00,}}, {0x7E8C,2,{0xC0,0x6D,0x00,0x00,}}, {0x7E8D,2,{0xC0,0x6E,0x00,0x00,}}, {0x7E8E,2,{0xC0,0x6F,0x00,0x00,}}, {0x7E8F,2,{0xC0,0x70,0x00,0x00,}}, {0x7E90,2,{0xC0,0x71,0x00,0x00,}}, {0x7E91,2,{0xC0,0x72,0x00,0x00,}}, {0x7E92,2,{0xC0,0x73,0x00,0x00,}}, {0x7E93,2,{0xC0,0x74,0x00,0x00,}}, {0x7E94,2,{0xC0,0x75,0x00,0x00,}}, {0x7E95,2,{0xC0,0x76,0x00,0x00,}}, {0x7E96,2,{0xC0,0x77,0x00,0x00,}}, {0x7E97,2,{0xC0,0x78,0x00,0x00,}}, {0x7E98,2,{0xC0,0x79,0x00,0x00,}}, {0x7E99,2,{0xC0,0x7A,0x00,0x00,}}, {0x7E9A,2,{0xC0,0x7B,0x00,0x00,}}, {0x7E9B,2,{0xF4,0xEE,0x00,0x00,}}, {0x7E9C,2,{0xC0,0x7C,0x00,0x00,}}, {0x7E9D,2,{0xC0,0x7D,0x00,0x00,}}, {0x7E9E,2,{0xC0,0x7E,0x00,0x00,}}, {0x7E9F,2,{0xE6,0xF9,0x00,0x00,}}, {0x7EA0,2,{0xBE,0xC0,0x00,0x00,}}, {0x7EA1,2,{0xE6,0xFA,0x00,0x00,}}, {0x7EA2,2,{0xBA,0xEC,0x00,0x00,}}, {0x7EA3,2,{0xE6,0xFB,0x00,0x00,}}, {0x7EA4,2,{0xCF,0xCB,0x00,0x00,}}, {0x7EA5,2,{0xE6,0xFC,0x00,0x00,}}, {0x7EA6,2,{0xD4,0xBC,0x00,0x00,}}, {0x7EA7,2,{0xBC,0xB6,0x00,0x00,}}, {0x7EA8,2,{0xE6,0xFD,0x00,0x00,}}, {0x7EA9,2,{0xE6,0xFE,0x00,0x00,}}, {0x7EAA,2,{0xBC,0xCD,0x00,0x00,}}, {0x7EAB,2,{0xC8,0xD2,0x00,0x00,}}, {0x7EAC,2,{0xCE,0xB3,0x00,0x00,}}, {0x7EAD,2,{0xE7,0xA1,0x00,0x00,}}, {0x7EAE,2,{0xC0,0x80,0x00,0x00,}}, {0x7EAF,2,{0xB4,0xBF,0x00,0x00,}}, {0x7EB0,2,{0xE7,0xA2,0x00,0x00,}}, {0x7EB1,2,{0xC9,0xB4,0x00,0x00,}}, {0x7EB2,2,{0xB8,0xD9,0x00,0x00,}}, {0x7EB3,2,{0xC4,0xC9,0x00,0x00,}}, {0x7EB4,2,{0xC0,0x81,0x00,0x00,}}, {0x7EB5,2,{0xD7,0xDD,0x00,0x00,}}, {0x7EB6,2,{0xC2,0xDA,0x00,0x00,}}, {0x7EB7,2,{0xB7,0xD7,0x00,0x00,}}, {0x7EB8,2,{0xD6,0xBD,0x00,0x00,}}, {0x7EB9,2,{0xCE,0xC6,0x00,0x00,}}, {0x7EBA,2,{0xB7,0xC4,0x00,0x00,}}, {0x7EBB,2,{0xC0,0x82,0x00,0x00,}}, {0x7EBC,2,{0xC0,0x83,0x00,0x00,}}, {0x7EBD,2,{0xC5,0xA6,0x00,0x00,}}, {0x7EBE,2,{0xE7,0xA3,0x00,0x00,}}, {0x7EBF,2,{0xCF,0xDF,0x00,0x00,}}, {0x7EC0,2,{0xE7,0xA4,0x00,0x00,}}, {0x7EC1,2,{0xE7,0xA5,0x00,0x00,}}, {0x7EC2,2,{0xE7,0xA6,0x00,0x00,}}, {0x7EC3,2,{0xC1,0xB7,0x00,0x00,}}, {0x7EC4,2,{0xD7,0xE9,0x00,0x00,}}, {0x7EC5,2,{0xC9,0xF0,0x00,0x00,}}, {0x7EC6,2,{0xCF,0xB8,0x00,0x00,}}, {0x7EC7,2,{0xD6,0xAF,0x00,0x00,}}, {0x7EC8,2,{0xD6,0xD5,0x00,0x00,}}, {0x7EC9,2,{0xE7,0xA7,0x00,0x00,}}, {0x7ECA,2,{0xB0,0xED,0x00,0x00,}}, {0x7ECB,2,{0xE7,0xA8,0x00,0x00,}}, {0x7ECC,2,{0xE7,0xA9,0x00,0x00,}}, {0x7ECD,2,{0xC9,0xDC,0x00,0x00,}}, {0x7ECE,2,{0xD2,0xEF,0x00,0x00,}}, {0x7ECF,2,{0xBE,0xAD,0x00,0x00,}}, {0x7ED0,2,{0xE7,0xAA,0x00,0x00,}}, {0x7ED1,2,{0xB0,0xF3,0x00,0x00,}}, {0x7ED2,2,{0xC8,0xDE,0x00,0x00,}}, {0x7ED3,2,{0xBD,0xE1,0x00,0x00,}}, {0x7ED4,2,{0xE7,0xAB,0x00,0x00,}}, {0x7ED5,2,{0xC8,0xC6,0x00,0x00,}}, {0x7ED6,2,{0xC0,0x84,0x00,0x00,}}, {0x7ED7,2,{0xE7,0xAC,0x00,0x00,}}, {0x7ED8,2,{0xBB,0xE6,0x00,0x00,}}, {0x7ED9,2,{0xB8,0xF8,0x00,0x00,}}, {0x7EDA,2,{0xD1,0xA4,0x00,0x00,}}, {0x7EDB,2,{0xE7,0xAD,0x00,0x00,}}, {0x7EDC,2,{0xC2,0xE7,0x00,0x00,}}, {0x7EDD,2,{0xBE,0xF8,0x00,0x00,}}, {0x7EDE,2,{0xBD,0xCA,0x00,0x00,}}, {0x7EDF,2,{0xCD,0xB3,0x00,0x00,}}, {0x7EE0,2,{0xE7,0xAE,0x00,0x00,}}, {0x7EE1,2,{0xE7,0xAF,0x00,0x00,}}, {0x7EE2,2,{0xBE,0xEE,0x00,0x00,}}, {0x7EE3,2,{0xD0,0xE5,0x00,0x00,}}, {0x7EE4,2,{0xC0,0x85,0x00,0x00,}}, {0x7EE5,2,{0xCB,0xE7,0x00,0x00,}}, {0x7EE6,2,{0xCC,0xD0,0x00,0x00,}}, {0x7EE7,2,{0xBC,0xCC,0x00,0x00,}}, {0x7EE8,2,{0xE7,0xB0,0x00,0x00,}}, {0x7EE9,2,{0xBC,0xA8,0x00,0x00,}}, {0x7EEA,2,{0xD0,0xF7,0x00,0x00,}}, {0x7EEB,2,{0xE7,0xB1,0x00,0x00,}}, {0x7EEC,2,{0xC0,0x86,0x00,0x00,}}, {0x7EED,2,{0xD0,0xF8,0x00,0x00,}}, {0x7EEE,2,{0xE7,0xB2,0x00,0x00,}}, {0x7EEF,2,{0xE7,0xB3,0x00,0x00,}}, {0x7EF0,2,{0xB4,0xC2,0x00,0x00,}}, {0x7EF1,2,{0xE7,0xB4,0x00,0x00,}}, {0x7EF2,2,{0xE7,0xB5,0x00,0x00,}}, {0x7EF3,2,{0xC9,0xFE,0x00,0x00,}}, {0x7EF4,2,{0xCE,0xAC,0x00,0x00,}}, {0x7EF5,2,{0xC3,0xE0,0x00,0x00,}}, {0x7EF6,2,{0xE7,0xB7,0x00,0x00,}}, {0x7EF7,2,{0xB1,0xC1,0x00,0x00,}}, {0x7EF8,2,{0xB3,0xF1,0x00,0x00,}}, {0x7EF9,2,{0xC0,0x87,0x00,0x00,}}, {0x7EFA,2,{0xE7,0xB8,0x00,0x00,}}, {0x7EFB,2,{0xE7,0xB9,0x00,0x00,}}, {0x7EFC,2,{0xD7,0xDB,0x00,0x00,}}, {0x7EFD,2,{0xD5,0xC0,0x00,0x00,}}, {0x7EFE,2,{0xE7,0xBA,0x00,0x00,}}, {0x7EFF,2,{0xC2,0xCC,0x00,0x00,}}, {0x7F00,2,{0xD7,0xBA,0x00,0x00,}}, {0x7F01,2,{0xE7,0xBB,0x00,0x00,}}, {0x7F02,2,{0xE7,0xBC,0x00,0x00,}}, {0x7F03,2,{0xE7,0xBD,0x00,0x00,}}, {0x7F04,2,{0xBC,0xEA,0x00,0x00,}}, {0x7F05,2,{0xC3,0xE5,0x00,0x00,}}, {0x7F06,2,{0xC0,0xC2,0x00,0x00,}}, {0x7F07,2,{0xE7,0xBE,0x00,0x00,}}, {0x7F08,2,{0xE7,0xBF,0x00,0x00,}}, {0x7F09,2,{0xBC,0xA9,0x00,0x00,}}, {0x7F0A,2,{0xC0,0x88,0x00,0x00,}}, {0x7F0B,2,{0xE7,0xC0,0x00,0x00,}}, {0x7F0C,2,{0xE7,0xC1,0x00,0x00,}}, {0x7F0D,2,{0xE7,0xB6,0x00,0x00,}}, {0x7F0E,2,{0xB6,0xD0,0x00,0x00,}}, {0x7F0F,2,{0xE7,0xC2,0x00,0x00,}}, {0x7F10,2,{0xC0,0x89,0x00,0x00,}}, {0x7F11,2,{0xE7,0xC3,0x00,0x00,}}, {0x7F12,2,{0xE7,0xC4,0x00,0x00,}}, {0x7F13,2,{0xBB,0xBA,0x00,0x00,}}, {0x7F14,2,{0xB5,0xDE,0x00,0x00,}}, {0x7F15,2,{0xC2,0xC6,0x00,0x00,}}, {0x7F16,2,{0xB1,0xE0,0x00,0x00,}}, {0x7F17,2,{0xE7,0xC5,0x00,0x00,}}, {0x7F18,2,{0xD4,0xB5,0x00,0x00,}}, {0x7F19,2,{0xE7,0xC6,0x00,0x00,}}, {0x7F1A,2,{0xB8,0xBF,0x00,0x00,}}, {0x7F1B,2,{0xE7,0xC8,0x00,0x00,}}, {0x7F1C,2,{0xE7,0xC7,0x00,0x00,}}, {0x7F1D,2,{0xB7,0xEC,0x00,0x00,}}, {0x7F1E,2,{0xC0,0x8A,0x00,0x00,}}, {0x7F1F,2,{0xE7,0xC9,0x00,0x00,}}, {0x7F20,2,{0xB2,0xF8,0x00,0x00,}}, {0x7F21,2,{0xE7,0xCA,0x00,0x00,}}, {0x7F22,2,{0xE7,0xCB,0x00,0x00,}}, {0x7F23,2,{0xE7,0xCC,0x00,0x00,}}, {0x7F24,2,{0xE7,0xCD,0x00,0x00,}}, {0x7F25,2,{0xE7,0xCE,0x00,0x00,}}, {0x7F26,2,{0xE7,0xCF,0x00,0x00,}}, {0x7F27,2,{0xE7,0xD0,0x00,0x00,}}, {0x7F28,2,{0xD3,0xA7,0x00,0x00,}}, {0x7F29,2,{0xCB,0xF5,0x00,0x00,}}, {0x7F2A,2,{0xE7,0xD1,0x00,0x00,}}, {0x7F2B,2,{0xE7,0xD2,0x00,0x00,}}, {0x7F2C,2,{0xE7,0xD3,0x00,0x00,}}, {0x7F2D,2,{0xE7,0xD4,0x00,0x00,}}, {0x7F2E,2,{0xC9,0xC9,0x00,0x00,}}, {0x7F2F,2,{0xE7,0xD5,0x00,0x00,}}, {0x7F30,2,{0xE7,0xD6,0x00,0x00,}}, {0x7F31,2,{0xE7,0xD7,0x00,0x00,}}, {0x7F32,2,{0xE7,0xD8,0x00,0x00,}}, {0x7F33,2,{0xE7,0xD9,0x00,0x00,}}, {0x7F34,2,{0xBD,0xC9,0x00,0x00,}}, {0x7F35,2,{0xE7,0xDA,0x00,0x00,}}, {0x7F36,2,{0xF3,0xBE,0x00,0x00,}}, {0x7F37,2,{0xC0,0x8B,0x00,0x00,}}, {0x7F38,2,{0xB8,0xD7,0x00,0x00,}}, {0x7F39,2,{0xC0,0x8C,0x00,0x00,}}, {0x7F3A,2,{0xC8,0xB1,0x00,0x00,}}, {0x7F3B,2,{0xC0,0x8D,0x00,0x00,}}, {0x7F3C,2,{0xC0,0x8E,0x00,0x00,}}, {0x7F3D,2,{0xC0,0x8F,0x00,0x00,}}, {0x7F3E,2,{0xC0,0x90,0x00,0x00,}}, {0x7F3F,2,{0xC0,0x91,0x00,0x00,}}, {0x7F40,2,{0xC0,0x92,0x00,0x00,}}, {0x7F41,2,{0xC0,0x93,0x00,0x00,}}, {0x7F42,2,{0xF3,0xBF,0x00,0x00,}}, {0x7F43,2,{0xC0,0x94,0x00,0x00,}}, {0x7F44,2,{0xF3,0xC0,0x00,0x00,}}, {0x7F45,2,{0xF3,0xC1,0x00,0x00,}}, {0x7F46,2,{0xC0,0x95,0x00,0x00,}}, {0x7F47,2,{0xC0,0x96,0x00,0x00,}}, {0x7F48,2,{0xC0,0x97,0x00,0x00,}}, {0x7F49,2,{0xC0,0x98,0x00,0x00,}}, {0x7F4A,2,{0xC0,0x99,0x00,0x00,}}, {0x7F4B,2,{0xC0,0x9A,0x00,0x00,}}, {0x7F4C,2,{0xC0,0x9B,0x00,0x00,}}, {0x7F4D,2,{0xC0,0x9C,0x00,0x00,}}, {0x7F4E,2,{0xC0,0x9D,0x00,0x00,}}, {0x7F4F,2,{0xC0,0x9E,0x00,0x00,}}, {0x7F50,2,{0xB9,0xDE,0x00,0x00,}}, {0x7F51,2,{0xCD,0xF8,0x00,0x00,}}, {0x7F52,2,{0xC0,0x9F,0x00,0x00,}}, {0x7F53,2,{0xC0,0xA0,0x00,0x00,}}, {0x7F54,2,{0xD8,0xE8,0x00,0x00,}}, {0x7F55,2,{0xBA,0xB1,0x00,0x00,}}, {0x7F56,2,{0xC1,0x40,0x00,0x00,}}, {0x7F57,2,{0xC2,0xDE,0x00,0x00,}}, {0x7F58,2,{0xEE,0xB7,0x00,0x00,}}, {0x7F59,2,{0xC1,0x41,0x00,0x00,}}, {0x7F5A,2,{0xB7,0xA3,0x00,0x00,}}, {0x7F5B,2,{0xC1,0x42,0x00,0x00,}}, {0x7F5C,2,{0xC1,0x43,0x00,0x00,}}, {0x7F5D,2,{0xC1,0x44,0x00,0x00,}}, {0x7F5E,2,{0xC1,0x45,0x00,0x00,}}, {0x7F5F,2,{0xEE,0xB9,0x00,0x00,}}, {0x7F60,2,{0xC1,0x46,0x00,0x00,}}, {0x7F61,2,{0xEE,0xB8,0x00,0x00,}}, {0x7F62,2,{0xB0,0xD5,0x00,0x00,}}, {0x7F63,2,{0xC1,0x47,0x00,0x00,}}, {0x7F64,2,{0xC1,0x48,0x00,0x00,}}, {0x7F65,2,{0xC1,0x49,0x00,0x00,}}, {0x7F66,2,{0xC1,0x4A,0x00,0x00,}}, {0x7F67,2,{0xC1,0x4B,0x00,0x00,}}, {0x7F68,2,{0xEE,0xBB,0x00,0x00,}}, {0x7F69,2,{0xD5,0xD6,0x00,0x00,}}, {0x7F6A,2,{0xD7,0xEF,0x00,0x00,}}, {0x7F6B,2,{0xC1,0x4C,0x00,0x00,}}, {0x7F6C,2,{0xC1,0x4D,0x00,0x00,}}, {0x7F6D,2,{0xC1,0x4E,0x00,0x00,}}, {0x7F6E,2,{0xD6,0xC3,0x00,0x00,}}, {0x7F6F,2,{0xC1,0x4F,0x00,0x00,}}, {0x7F70,2,{0xC1,0x50,0x00,0x00,}}, {0x7F71,2,{0xEE,0xBD,0x00,0x00,}}, {0x7F72,2,{0xCA,0xF0,0x00,0x00,}}, {0x7F73,2,{0xC1,0x51,0x00,0x00,}}, {0x7F74,2,{0xEE,0xBC,0x00,0x00,}}, {0x7F75,2,{0xC1,0x52,0x00,0x00,}}, {0x7F76,2,{0xC1,0x53,0x00,0x00,}}, {0x7F77,2,{0xC1,0x54,0x00,0x00,}}, {0x7F78,2,{0xC1,0x55,0x00,0x00,}}, {0x7F79,2,{0xEE,0xBE,0x00,0x00,}}, {0x7F7A,2,{0xC1,0x56,0x00,0x00,}}, {0x7F7B,2,{0xC1,0x57,0x00,0x00,}}, {0x7F7C,2,{0xC1,0x58,0x00,0x00,}}, {0x7F7D,2,{0xC1,0x59,0x00,0x00,}}, {0x7F7E,2,{0xEE,0xC0,0x00,0x00,}}, {0x7F7F,2,{0xC1,0x5A,0x00,0x00,}}, {0x7F80,2,{0xC1,0x5B,0x00,0x00,}}, {0x7F81,2,{0xEE,0xBF,0x00,0x00,}}, {0x7F82,2,{0xC1,0x5C,0x00,0x00,}}, {0x7F83,2,{0xC1,0x5D,0x00,0x00,}}, {0x7F84,2,{0xC1,0x5E,0x00,0x00,}}, {0x7F85,2,{0xC1,0x5F,0x00,0x00,}}, {0x7F86,2,{0xC1,0x60,0x00,0x00,}}, {0x7F87,2,{0xC1,0x61,0x00,0x00,}}, {0x7F88,2,{0xC1,0x62,0x00,0x00,}}, {0x7F89,2,{0xC1,0x63,0x00,0x00,}}, {0x7F8A,2,{0xD1,0xF2,0x00,0x00,}}, {0x7F8B,2,{0xC1,0x64,0x00,0x00,}}, {0x7F8C,2,{0xC7,0xBC,0x00,0x00,}}, {0x7F8D,2,{0xC1,0x65,0x00,0x00,}}, {0x7F8E,2,{0xC3,0xC0,0x00,0x00,}}, {0x7F8F,2,{0xC1,0x66,0x00,0x00,}}, {0x7F90,2,{0xC1,0x67,0x00,0x00,}}, {0x7F91,2,{0xC1,0x68,0x00,0x00,}}, {0x7F92,2,{0xC1,0x69,0x00,0x00,}}, {0x7F93,2,{0xC1,0x6A,0x00,0x00,}}, {0x7F94,2,{0xB8,0xE1,0x00,0x00,}}, {0x7F95,2,{0xC1,0x6B,0x00,0x00,}}, {0x7F96,2,{0xC1,0x6C,0x00,0x00,}}, {0x7F97,2,{0xC1,0x6D,0x00,0x00,}}, {0x7F98,2,{0xC1,0x6E,0x00,0x00,}}, {0x7F99,2,{0xC1,0x6F,0x00,0x00,}}, {0x7F9A,2,{0xC1,0xE7,0x00,0x00,}}, {0x7F9B,2,{0xC1,0x70,0x00,0x00,}}, {0x7F9C,2,{0xC1,0x71,0x00,0x00,}}, {0x7F9D,2,{0xF4,0xC6,0x00,0x00,}}, {0x7F9E,2,{0xD0,0xDF,0x00,0x00,}}, {0x7F9F,2,{0xF4,0xC7,0x00,0x00,}}, {0x7FA0,2,{0xC1,0x72,0x00,0x00,}}, {0x7FA1,2,{0xCF,0xDB,0x00,0x00,}}, {0x7FA2,2,{0xC1,0x73,0x00,0x00,}}, {0x7FA3,2,{0xC1,0x74,0x00,0x00,}}, {0x7FA4,2,{0xC8,0xBA,0x00,0x00,}}, {0x7FA5,2,{0xC1,0x75,0x00,0x00,}}, {0x7FA6,2,{0xC1,0x76,0x00,0x00,}}, {0x7FA7,2,{0xF4,0xC8,0x00,0x00,}}, {0x7FA8,2,{0xC1,0x77,0x00,0x00,}}, {0x7FA9,2,{0xC1,0x78,0x00,0x00,}}, {0x7FAA,2,{0xC1,0x79,0x00,0x00,}}, {0x7FAB,2,{0xC1,0x7A,0x00,0x00,}}, {0x7FAC,2,{0xC1,0x7B,0x00,0x00,}}, {0x7FAD,2,{0xC1,0x7C,0x00,0x00,}}, {0x7FAE,2,{0xC1,0x7D,0x00,0x00,}}, {0x7FAF,2,{0xF4,0xC9,0x00,0x00,}}, {0x7FB0,2,{0xF4,0xCA,0x00,0x00,}}, {0x7FB1,2,{0xC1,0x7E,0x00,0x00,}}, {0x7FB2,2,{0xF4,0xCB,0x00,0x00,}}, {0x7FB3,2,{0xC1,0x80,0x00,0x00,}}, {0x7FB4,2,{0xC1,0x81,0x00,0x00,}}, {0x7FB5,2,{0xC1,0x82,0x00,0x00,}}, {0x7FB6,2,{0xC1,0x83,0x00,0x00,}}, {0x7FB7,2,{0xC1,0x84,0x00,0x00,}}, {0x7FB8,2,{0xD9,0xFA,0x00,0x00,}}, {0x7FB9,2,{0xB8,0xFE,0x00,0x00,}}, {0x7FBA,2,{0xC1,0x85,0x00,0x00,}}, {0x7FBB,2,{0xC1,0x86,0x00,0x00,}}, {0x7FBC,2,{0xE5,0xF1,0x00,0x00,}}, {0x7FBD,2,{0xD3,0xF0,0x00,0x00,}}, {0x7FBE,2,{0xC1,0x87,0x00,0x00,}}, {0x7FBF,2,{0xF4,0xE0,0x00,0x00,}}, {0x7FC0,2,{0xC1,0x88,0x00,0x00,}}, {0x7FC1,2,{0xCE,0xCC,0x00,0x00,}}, {0x7FC2,2,{0xC1,0x89,0x00,0x00,}}, {0x7FC3,2,{0xC1,0x8A,0x00,0x00,}}, {0x7FC4,2,{0xC1,0x8B,0x00,0x00,}}, {0x7FC5,2,{0xB3,0xE1,0x00,0x00,}}, {0x7FC6,2,{0xC1,0x8C,0x00,0x00,}}, {0x7FC7,2,{0xC1,0x8D,0x00,0x00,}}, {0x7FC8,2,{0xC1,0x8E,0x00,0x00,}}, {0x7FC9,2,{0xC1,0x8F,0x00,0x00,}}, {0x7FCA,2,{0xF1,0xB4,0x00,0x00,}}, {0x7FCB,2,{0xC1,0x90,0x00,0x00,}}, {0x7FCC,2,{0xD2,0xEE,0x00,0x00,}}, {0x7FCD,2,{0xC1,0x91,0x00,0x00,}}, {0x7FCE,2,{0xF4,0xE1,0x00,0x00,}}, {0x7FCF,2,{0xC1,0x92,0x00,0x00,}}, {0x7FD0,2,{0xC1,0x93,0x00,0x00,}}, {0x7FD1,2,{0xC1,0x94,0x00,0x00,}}, {0x7FD2,2,{0xC1,0x95,0x00,0x00,}}, {0x7FD3,2,{0xC1,0x96,0x00,0x00,}}, {0x7FD4,2,{0xCF,0xE8,0x00,0x00,}}, {0x7FD5,2,{0xF4,0xE2,0x00,0x00,}}, {0x7FD6,2,{0xC1,0x97,0x00,0x00,}}, {0x7FD7,2,{0xC1,0x98,0x00,0x00,}}, {0x7FD8,2,{0xC7,0xCC,0x00,0x00,}}, {0x7FD9,2,{0xC1,0x99,0x00,0x00,}}, {0x7FDA,2,{0xC1,0x9A,0x00,0x00,}}, {0x7FDB,2,{0xC1,0x9B,0x00,0x00,}}, {0x7FDC,2,{0xC1,0x9C,0x00,0x00,}}, {0x7FDD,2,{0xC1,0x9D,0x00,0x00,}}, {0x7FDE,2,{0xC1,0x9E,0x00,0x00,}}, {0x7FDF,2,{0xB5,0xD4,0x00,0x00,}}, {0x7FE0,2,{0xB4,0xE4,0x00,0x00,}}, {0x7FE1,2,{0xF4,0xE4,0x00,0x00,}}, {0x7FE2,2,{0xC1,0x9F,0x00,0x00,}}, {0x7FE3,2,{0xC1,0xA0,0x00,0x00,}}, {0x7FE4,2,{0xC2,0x40,0x00,0x00,}}, {0x7FE5,2,{0xF4,0xE3,0x00,0x00,}}, {0x7FE6,2,{0xF4,0xE5,0x00,0x00,}}, {0x7FE7,2,{0xC2,0x41,0x00,0x00,}}, {0x7FE8,2,{0xC2,0x42,0x00,0x00,}}, {0x7FE9,2,{0xF4,0xE6,0x00,0x00,}}, {0x7FEA,2,{0xC2,0x43,0x00,0x00,}}, {0x7FEB,2,{0xC2,0x44,0x00,0x00,}}, {0x7FEC,2,{0xC2,0x45,0x00,0x00,}}, {0x7FED,2,{0xC2,0x46,0x00,0x00,}}, {0x7FEE,2,{0xF4,0xE7,0x00,0x00,}}, {0x7FEF,2,{0xC2,0x47,0x00,0x00,}}, {0x7FF0,2,{0xBA,0xB2,0x00,0x00,}}, {0x7FF1,2,{0xB0,0xBF,0x00,0x00,}}, {0x7FF2,2,{0xC2,0x48,0x00,0x00,}}, {0x7FF3,2,{0xF4,0xE8,0x00,0x00,}}, {0x7FF4,2,{0xC2,0x49,0x00,0x00,}}, {0x7FF5,2,{0xC2,0x4A,0x00,0x00,}}, {0x7FF6,2,{0xC2,0x4B,0x00,0x00,}}, {0x7FF7,2,{0xC2,0x4C,0x00,0x00,}}, {0x7FF8,2,{0xC2,0x4D,0x00,0x00,}}, {0x7FF9,2,{0xC2,0x4E,0x00,0x00,}}, {0x7FFA,2,{0xC2,0x4F,0x00,0x00,}}, {0x7FFB,2,{0xB7,0xAD,0x00,0x00,}}, {0x7FFC,2,{0xD2,0xED,0x00,0x00,}}, {0x7FFD,2,{0xC2,0x50,0x00,0x00,}}, {0x7FFE,2,{0xC2,0x51,0x00,0x00,}}, {0x7FFF,2,{0xC2,0x52,0x00,0x00,}}, {0x8000,2,{0xD2,0xAB,0x00,0x00,}}, {0x8001,2,{0xC0,0xCF,0x00,0x00,}}, {0x8002,2,{0xC2,0x53,0x00,0x00,}}, {0x8003,2,{0xBF,0xBC,0x00,0x00,}}, {0x8004,2,{0xEB,0xA3,0x00,0x00,}}, {0x8005,2,{0xD5,0xDF,0x00,0x00,}}, {0x8006,2,{0xEA,0xC8,0x00,0x00,}}, {0x8007,2,{0xC2,0x54,0x00,0x00,}}, {0x8008,2,{0xC2,0x55,0x00,0x00,}}, {0x8009,2,{0xC2,0x56,0x00,0x00,}}, {0x800A,2,{0xC2,0x57,0x00,0x00,}}, {0x800B,2,{0xF1,0xF3,0x00,0x00,}}, {0x800C,2,{0xB6,0xF8,0x00,0x00,}}, {0x800D,2,{0xCB,0xA3,0x00,0x00,}}, {0x800E,2,{0xC2,0x58,0x00,0x00,}}, {0x800F,2,{0xC2,0x59,0x00,0x00,}}, {0x8010,2,{0xC4,0xCD,0x00,0x00,}}, {0x8011,2,{0xC2,0x5A,0x00,0x00,}}, {0x8012,2,{0xF1,0xE7,0x00,0x00,}}, {0x8013,2,{0xC2,0x5B,0x00,0x00,}}, {0x8014,2,{0xF1,0xE8,0x00,0x00,}}, {0x8015,2,{0xB8,0xFB,0x00,0x00,}}, {0x8016,2,{0xF1,0xE9,0x00,0x00,}}, {0x8017,2,{0xBA,0xC4,0x00,0x00,}}, {0x8018,2,{0xD4,0xC5,0x00,0x00,}}, {0x8019,2,{0xB0,0xD2,0x00,0x00,}}, {0x801A,2,{0xC2,0x5C,0x00,0x00,}}, {0x801B,2,{0xC2,0x5D,0x00,0x00,}}, {0x801C,2,{0xF1,0xEA,0x00,0x00,}}, {0x801D,2,{0xC2,0x5E,0x00,0x00,}}, {0x801E,2,{0xC2,0x5F,0x00,0x00,}}, {0x801F,2,{0xC2,0x60,0x00,0x00,}}, {0x8020,2,{0xF1,0xEB,0x00,0x00,}}, {0x8021,2,{0xC2,0x61,0x00,0x00,}}, {0x8022,2,{0xF1,0xEC,0x00,0x00,}}, {0x8023,2,{0xC2,0x62,0x00,0x00,}}, {0x8024,2,{0xC2,0x63,0x00,0x00,}}, {0x8025,2,{0xF1,0xED,0x00,0x00,}}, {0x8026,2,{0xF1,0xEE,0x00,0x00,}}, {0x8027,2,{0xF1,0xEF,0x00,0x00,}}, {0x8028,2,{0xF1,0xF1,0x00,0x00,}}, {0x8029,2,{0xF1,0xF0,0x00,0x00,}}, {0x802A,2,{0xC5,0xD5,0x00,0x00,}}, {0x802B,2,{0xC2,0x64,0x00,0x00,}}, {0x802C,2,{0xC2,0x65,0x00,0x00,}}, {0x802D,2,{0xC2,0x66,0x00,0x00,}}, {0x802E,2,{0xC2,0x67,0x00,0x00,}}, {0x802F,2,{0xC2,0x68,0x00,0x00,}}, {0x8030,2,{0xC2,0x69,0x00,0x00,}}, {0x8031,2,{0xF1,0xF2,0x00,0x00,}}, {0x8032,2,{0xC2,0x6A,0x00,0x00,}}, {0x8033,2,{0xB6,0xFA,0x00,0x00,}}, {0x8034,2,{0xC2,0x6B,0x00,0x00,}}, {0x8035,2,{0xF1,0xF4,0x00,0x00,}}, {0x8036,2,{0xD2,0xAE,0x00,0x00,}}, {0x8037,2,{0xDE,0xC7,0x00,0x00,}}, {0x8038,2,{0xCB,0xCA,0x00,0x00,}}, {0x8039,2,{0xC2,0x6C,0x00,0x00,}}, {0x803A,2,{0xC2,0x6D,0x00,0x00,}}, {0x803B,2,{0xB3,0xDC,0x00,0x00,}}, {0x803C,2,{0xC2,0x6E,0x00,0x00,}}, {0x803D,2,{0xB5,0xA2,0x00,0x00,}}, {0x803E,2,{0xC2,0x6F,0x00,0x00,}}, {0x803F,2,{0xB9,0xA2,0x00,0x00,}}, {0x8040,2,{0xC2,0x70,0x00,0x00,}}, {0x8041,2,{0xC2,0x71,0x00,0x00,}}, {0x8042,2,{0xC4,0xF4,0x00,0x00,}}, {0x8043,2,{0xF1,0xF5,0x00,0x00,}}, {0x8044,2,{0xC2,0x72,0x00,0x00,}}, {0x8045,2,{0xC2,0x73,0x00,0x00,}}, {0x8046,2,{0xF1,0xF6,0x00,0x00,}}, {0x8047,2,{0xC2,0x74,0x00,0x00,}}, {0x8048,2,{0xC2,0x75,0x00,0x00,}}, {0x8049,2,{0xC2,0x76,0x00,0x00,}}, {0x804A,2,{0xC1,0xC4,0x00,0x00,}}, {0x804B,2,{0xC1,0xFB,0x00,0x00,}}, {0x804C,2,{0xD6,0xB0,0x00,0x00,}}, {0x804D,2,{0xF1,0xF7,0x00,0x00,}}, {0x804E,2,{0xC2,0x77,0x00,0x00,}}, {0x804F,2,{0xC2,0x78,0x00,0x00,}}, {0x8050,2,{0xC2,0x79,0x00,0x00,}}, {0x8051,2,{0xC2,0x7A,0x00,0x00,}}, {0x8052,2,{0xF1,0xF8,0x00,0x00,}}, {0x8053,2,{0xC2,0x7B,0x00,0x00,}}, {0x8054,2,{0xC1,0xAA,0x00,0x00,}}, {0x8055,2,{0xC2,0x7C,0x00,0x00,}}, {0x8056,2,{0xC2,0x7D,0x00,0x00,}}, {0x8057,2,{0xC2,0x7E,0x00,0x00,}}, {0x8058,2,{0xC6,0xB8,0x00,0x00,}}, {0x8059,2,{0xC2,0x80,0x00,0x00,}}, {0x805A,2,{0xBE,0xDB,0x00,0x00,}}, {0x805B,2,{0xC2,0x81,0x00,0x00,}}, {0x805C,2,{0xC2,0x82,0x00,0x00,}}, {0x805D,2,{0xC2,0x83,0x00,0x00,}}, {0x805E,2,{0xC2,0x84,0x00,0x00,}}, {0x805F,2,{0xC2,0x85,0x00,0x00,}}, {0x8060,2,{0xC2,0x86,0x00,0x00,}}, {0x8061,2,{0xC2,0x87,0x00,0x00,}}, {0x8062,2,{0xC2,0x88,0x00,0x00,}}, {0x8063,2,{0xC2,0x89,0x00,0x00,}}, {0x8064,2,{0xC2,0x8A,0x00,0x00,}}, {0x8065,2,{0xC2,0x8B,0x00,0x00,}}, {0x8066,2,{0xC2,0x8C,0x00,0x00,}}, {0x8067,2,{0xC2,0x8D,0x00,0x00,}}, {0x8068,2,{0xC2,0x8E,0x00,0x00,}}, {0x8069,2,{0xF1,0xF9,0x00,0x00,}}, {0x806A,2,{0xB4,0xCF,0x00,0x00,}}, {0x806B,2,{0xC2,0x8F,0x00,0x00,}}, {0x806C,2,{0xC2,0x90,0x00,0x00,}}, {0x806D,2,{0xC2,0x91,0x00,0x00,}}, {0x806E,2,{0xC2,0x92,0x00,0x00,}}, {0x806F,2,{0xC2,0x93,0x00,0x00,}}, {0x8070,2,{0xC2,0x94,0x00,0x00,}}, {0x8071,2,{0xF1,0xFA,0x00,0x00,}}, {0x8072,2,{0xC2,0x95,0x00,0x00,}}, {0x8073,2,{0xC2,0x96,0x00,0x00,}}, {0x8074,2,{0xC2,0x97,0x00,0x00,}}, {0x8075,2,{0xC2,0x98,0x00,0x00,}}, {0x8076,2,{0xC2,0x99,0x00,0x00,}}, {0x8077,2,{0xC2,0x9A,0x00,0x00,}}, {0x8078,2,{0xC2,0x9B,0x00,0x00,}}, {0x8079,2,{0xC2,0x9C,0x00,0x00,}}, {0x807A,2,{0xC2,0x9D,0x00,0x00,}}, {0x807B,2,{0xC2,0x9E,0x00,0x00,}}, {0x807C,2,{0xC2,0x9F,0x00,0x00,}}, {0x807D,2,{0xC2,0xA0,0x00,0x00,}}, {0x807E,2,{0xC3,0x40,0x00,0x00,}}, {0x807F,2,{0xED,0xB2,0x00,0x00,}}, {0x8080,2,{0xED,0xB1,0x00,0x00,}}, {0x8081,2,{0xC3,0x41,0x00,0x00,}}, {0x8082,2,{0xC3,0x42,0x00,0x00,}}, {0x8083,2,{0xCB,0xE0,0x00,0x00,}}, {0x8084,2,{0xD2,0xDE,0x00,0x00,}}, {0x8085,2,{0xC3,0x43,0x00,0x00,}}, {0x8086,2,{0xCB,0xC1,0x00,0x00,}}, {0x8087,2,{0xD5,0xD8,0x00,0x00,}}, {0x8088,2,{0xC3,0x44,0x00,0x00,}}, {0x8089,2,{0xC8,0xE2,0x00,0x00,}}, {0x808A,2,{0xC3,0x45,0x00,0x00,}}, {0x808B,2,{0xC0,0xDF,0x00,0x00,}}, {0x808C,2,{0xBC,0xA1,0x00,0x00,}}, {0x808D,2,{0xC3,0x46,0x00,0x00,}}, {0x808E,2,{0xC3,0x47,0x00,0x00,}}, {0x808F,2,{0xC3,0x48,0x00,0x00,}}, {0x8090,2,{0xC3,0x49,0x00,0x00,}}, {0x8091,2,{0xC3,0x4A,0x00,0x00,}}, {0x8092,2,{0xC3,0x4B,0x00,0x00,}}, {0x8093,2,{0xEB,0xC1,0x00,0x00,}}, {0x8094,2,{0xC3,0x4C,0x00,0x00,}}, {0x8095,2,{0xC3,0x4D,0x00,0x00,}}, {0x8096,2,{0xD0,0xA4,0x00,0x00,}}, {0x8097,2,{0xC3,0x4E,0x00,0x00,}}, {0x8098,2,{0xD6,0xE2,0x00,0x00,}}, {0x8099,2,{0xC3,0x4F,0x00,0x00,}}, {0x809A,2,{0xB6,0xC7,0x00,0x00,}}, {0x809B,2,{0xB8,0xD8,0x00,0x00,}}, {0x809C,2,{0xEB,0xC0,0x00,0x00,}}, {0x809D,2,{0xB8,0xCE,0x00,0x00,}}, {0x809E,2,{0xC3,0x50,0x00,0x00,}}, {0x809F,2,{0xEB,0xBF,0x00,0x00,}}, {0x80A0,2,{0xB3,0xA6,0x00,0x00,}}, {0x80A1,2,{0xB9,0xC9,0x00,0x00,}}, {0x80A2,2,{0xD6,0xAB,0x00,0x00,}}, {0x80A3,2,{0xC3,0x51,0x00,0x00,}}, {0x80A4,2,{0xB7,0xF4,0x00,0x00,}}, {0x80A5,2,{0xB7,0xCA,0x00,0x00,}}, {0x80A6,2,{0xC3,0x52,0x00,0x00,}}, {0x80A7,2,{0xC3,0x53,0x00,0x00,}}, {0x80A8,2,{0xC3,0x54,0x00,0x00,}}, {0x80A9,2,{0xBC,0xE7,0x00,0x00,}}, {0x80AA,2,{0xB7,0xBE,0x00,0x00,}}, {0x80AB,2,{0xEB,0xC6,0x00,0x00,}}, {0x80AC,2,{0xC3,0x55,0x00,0x00,}}, {0x80AD,2,{0xEB,0xC7,0x00,0x00,}}, {0x80AE,2,{0xB0,0xB9,0x00,0x00,}}, {0x80AF,2,{0xBF,0xCF,0x00,0x00,}}, {0x80B0,2,{0xC3,0x56,0x00,0x00,}}, {0x80B1,2,{0xEB,0xC5,0x00,0x00,}}, {0x80B2,2,{0xD3,0xFD,0x00,0x00,}}, {0x80B3,2,{0xC3,0x57,0x00,0x00,}}, {0x80B4,2,{0xEB,0xC8,0x00,0x00,}}, {0x80B5,2,{0xC3,0x58,0x00,0x00,}}, {0x80B6,2,{0xC3,0x59,0x00,0x00,}}, {0x80B7,2,{0xEB,0xC9,0x00,0x00,}}, {0x80B8,2,{0xC3,0x5A,0x00,0x00,}}, {0x80B9,2,{0xC3,0x5B,0x00,0x00,}}, {0x80BA,2,{0xB7,0xCE,0x00,0x00,}}, {0x80BB,2,{0xC3,0x5C,0x00,0x00,}}, {0x80BC,2,{0xEB,0xC2,0x00,0x00,}}, {0x80BD,2,{0xEB,0xC4,0x00,0x00,}}, {0x80BE,2,{0xC9,0xF6,0x00,0x00,}}, {0x80BF,2,{0xD6,0xD7,0x00,0x00,}}, {0x80C0,2,{0xD5,0xCD,0x00,0x00,}}, {0x80C1,2,{0xD0,0xB2,0x00,0x00,}}, {0x80C2,2,{0xEB,0xCF,0x00,0x00,}}, {0x80C3,2,{0xCE,0xB8,0x00,0x00,}}, {0x80C4,2,{0xEB,0xD0,0x00,0x00,}}, {0x80C5,2,{0xC3,0x5D,0x00,0x00,}}, {0x80C6,2,{0xB5,0xA8,0x00,0x00,}}, {0x80C7,2,{0xC3,0x5E,0x00,0x00,}}, {0x80C8,2,{0xC3,0x5F,0x00,0x00,}}, {0x80C9,2,{0xC3,0x60,0x00,0x00,}}, {0x80CA,2,{0xC3,0x61,0x00,0x00,}}, {0x80CB,2,{0xC3,0x62,0x00,0x00,}}, {0x80CC,2,{0xB1,0xB3,0x00,0x00,}}, {0x80CD,2,{0xEB,0xD2,0x00,0x00,}}, {0x80CE,2,{0xCC,0xA5,0x00,0x00,}}, {0x80CF,2,{0xC3,0x63,0x00,0x00,}}, {0x80D0,2,{0xC3,0x64,0x00,0x00,}}, {0x80D1,2,{0xC3,0x65,0x00,0x00,}}, {0x80D2,2,{0xC3,0x66,0x00,0x00,}}, {0x80D3,2,{0xC3,0x67,0x00,0x00,}}, {0x80D4,2,{0xC3,0x68,0x00,0x00,}}, {0x80D5,2,{0xC3,0x69,0x00,0x00,}}, {0x80D6,2,{0xC5,0xD6,0x00,0x00,}}, {0x80D7,2,{0xEB,0xD3,0x00,0x00,}}, {0x80D8,2,{0xC3,0x6A,0x00,0x00,}}, {0x80D9,2,{0xEB,0xD1,0x00,0x00,}}, {0x80DA,2,{0xC5,0xDF,0x00,0x00,}}, {0x80DB,2,{0xEB,0xCE,0x00,0x00,}}, {0x80DC,2,{0xCA,0xA4,0x00,0x00,}}, {0x80DD,2,{0xEB,0xD5,0x00,0x00,}}, {0x80DE,2,{0xB0,0xFB,0x00,0x00,}}, {0x80DF,2,{0xC3,0x6B,0x00,0x00,}}, {0x80E0,2,{0xC3,0x6C,0x00,0x00,}}, {0x80E1,2,{0xBA,0xFA,0x00,0x00,}}, {0x80E2,2,{0xC3,0x6D,0x00,0x00,}}, {0x80E3,2,{0xC3,0x6E,0x00,0x00,}}, {0x80E4,2,{0xD8,0xB7,0x00,0x00,}}, {0x80E5,2,{0xF1,0xE3,0x00,0x00,}}, {0x80E6,2,{0xC3,0x6F,0x00,0x00,}}, {0x80E7,2,{0xEB,0xCA,0x00,0x00,}}, {0x80E8,2,{0xEB,0xCB,0x00,0x00,}}, {0x80E9,2,{0xEB,0xCC,0x00,0x00,}}, {0x80EA,2,{0xEB,0xCD,0x00,0x00,}}, {0x80EB,2,{0xEB,0xD6,0x00,0x00,}}, {0x80EC,2,{0xE6,0xC0,0x00,0x00,}}, {0x80ED,2,{0xEB,0xD9,0x00,0x00,}}, {0x80EE,2,{0xC3,0x70,0x00,0x00,}}, {0x80EF,2,{0xBF,0xE8,0x00,0x00,}}, {0x80F0,2,{0xD2,0xC8,0x00,0x00,}}, {0x80F1,2,{0xEB,0xD7,0x00,0x00,}}, {0x80F2,2,{0xEB,0xDC,0x00,0x00,}}, {0x80F3,2,{0xB8,0xEC,0x00,0x00,}}, {0x80F4,2,{0xEB,0xD8,0x00,0x00,}}, {0x80F5,2,{0xC3,0x71,0x00,0x00,}}, {0x80F6,2,{0xBD,0xBA,0x00,0x00,}}, {0x80F7,2,{0xC3,0x72,0x00,0x00,}}, {0x80F8,2,{0xD0,0xD8,0x00,0x00,}}, {0x80F9,2,{0xC3,0x73,0x00,0x00,}}, {0x80FA,2,{0xB0,0xB7,0x00,0x00,}}, {0x80FB,2,{0xC3,0x74,0x00,0x00,}}, {0x80FC,2,{0xEB,0xDD,0x00,0x00,}}, {0x80FD,2,{0xC4,0xDC,0x00,0x00,}}, {0x80FE,2,{0xC3,0x75,0x00,0x00,}}, {0x80FF,2,{0xC3,0x76,0x00,0x00,}}, {0x8100,2,{0xC3,0x77,0x00,0x00,}}, {0x8101,2,{0xC3,0x78,0x00,0x00,}}, {0x8102,2,{0xD6,0xAC,0x00,0x00,}}, {0x8103,2,{0xC3,0x79,0x00,0x00,}}, {0x8104,2,{0xC3,0x7A,0x00,0x00,}}, {0x8105,2,{0xC3,0x7B,0x00,0x00,}}, {0x8106,2,{0xB4,0xE0,0x00,0x00,}}, {0x8107,2,{0xC3,0x7C,0x00,0x00,}}, {0x8108,2,{0xC3,0x7D,0x00,0x00,}}, {0x8109,2,{0xC2,0xF6,0x00,0x00,}}, {0x810A,2,{0xBC,0xB9,0x00,0x00,}}, {0x810B,2,{0xC3,0x7E,0x00,0x00,}}, {0x810C,2,{0xC3,0x80,0x00,0x00,}}, {0x810D,2,{0xEB,0xDA,0x00,0x00,}}, {0x810E,2,{0xEB,0xDB,0x00,0x00,}}, {0x810F,2,{0xD4,0xE0,0x00,0x00,}}, {0x8110,2,{0xC6,0xEA,0x00,0x00,}}, {0x8111,2,{0xC4,0xD4,0x00,0x00,}}, {0x8112,2,{0xEB,0xDF,0x00,0x00,}}, {0x8113,2,{0xC5,0xA7,0x00,0x00,}}, {0x8114,2,{0xD9,0xF5,0x00,0x00,}}, {0x8115,2,{0xC3,0x81,0x00,0x00,}}, {0x8116,2,{0xB2,0xB1,0x00,0x00,}}, {0x8117,2,{0xC3,0x82,0x00,0x00,}}, {0x8118,2,{0xEB,0xE4,0x00,0x00,}}, {0x8119,2,{0xC3,0x83,0x00,0x00,}}, {0x811A,2,{0xBD,0xC5,0x00,0x00,}}, {0x811B,2,{0xC3,0x84,0x00,0x00,}}, {0x811C,2,{0xC3,0x85,0x00,0x00,}}, {0x811D,2,{0xC3,0x86,0x00,0x00,}}, {0x811E,2,{0xEB,0xE2,0x00,0x00,}}, {0x811F,2,{0xC3,0x87,0x00,0x00,}}, {0x8120,2,{0xC3,0x88,0x00,0x00,}}, {0x8121,2,{0xC3,0x89,0x00,0x00,}}, {0x8122,2,{0xC3,0x8A,0x00,0x00,}}, {0x8123,2,{0xC3,0x8B,0x00,0x00,}}, {0x8124,2,{0xC3,0x8C,0x00,0x00,}}, {0x8125,2,{0xC3,0x8D,0x00,0x00,}}, {0x8126,2,{0xC3,0x8E,0x00,0x00,}}, {0x8127,2,{0xC3,0x8F,0x00,0x00,}}, {0x8128,2,{0xC3,0x90,0x00,0x00,}}, {0x8129,2,{0xC3,0x91,0x00,0x00,}}, {0x812A,2,{0xC3,0x92,0x00,0x00,}}, {0x812B,2,{0xC3,0x93,0x00,0x00,}}, {0x812C,2,{0xEB,0xE3,0x00,0x00,}}, {0x812D,2,{0xC3,0x94,0x00,0x00,}}, {0x812E,2,{0xC3,0x95,0x00,0x00,}}, {0x812F,2,{0xB8,0xAC,0x00,0x00,}}, {0x8130,2,{0xC3,0x96,0x00,0x00,}}, {0x8131,2,{0xCD,0xD1,0x00,0x00,}}, {0x8132,2,{0xEB,0xE5,0x00,0x00,}}, {0x8133,2,{0xC3,0x97,0x00,0x00,}}, {0x8134,2,{0xC3,0x98,0x00,0x00,}}, {0x8135,2,{0xC3,0x99,0x00,0x00,}}, {0x8136,2,{0xEB,0xE1,0x00,0x00,}}, {0x8137,2,{0xC3,0x9A,0x00,0x00,}}, {0x8138,2,{0xC1,0xB3,0x00,0x00,}}, {0x8139,2,{0xC3,0x9B,0x00,0x00,}}, {0x813A,2,{0xC3,0x9C,0x00,0x00,}}, {0x813B,2,{0xC3,0x9D,0x00,0x00,}}, {0x813C,2,{0xC3,0x9E,0x00,0x00,}}, {0x813D,2,{0xC3,0x9F,0x00,0x00,}}, {0x813E,2,{0xC6,0xA2,0x00,0x00,}}, {0x813F,2,{0xC3,0xA0,0x00,0x00,}}, {0x8140,2,{0xC4,0x40,0x00,0x00,}}, {0x8141,2,{0xC4,0x41,0x00,0x00,}}, {0x8142,2,{0xC4,0x42,0x00,0x00,}}, {0x8143,2,{0xC4,0x43,0x00,0x00,}}, {0x8144,2,{0xC4,0x44,0x00,0x00,}}, {0x8145,2,{0xC4,0x45,0x00,0x00,}}, {0x8146,2,{0xCC,0xF3,0x00,0x00,}}, {0x8147,2,{0xC4,0x46,0x00,0x00,}}, {0x8148,2,{0xEB,0xE6,0x00,0x00,}}, {0x8149,2,{0xC4,0x47,0x00,0x00,}}, {0x814A,2,{0xC0,0xB0,0x00,0x00,}}, {0x814B,2,{0xD2,0xB8,0x00,0x00,}}, {0x814C,2,{0xEB,0xE7,0x00,0x00,}}, {0x814D,2,{0xC4,0x48,0x00,0x00,}}, {0x814E,2,{0xC4,0x49,0x00,0x00,}}, {0x814F,2,{0xC4,0x4A,0x00,0x00,}}, {0x8150,2,{0xB8,0xAF,0x00,0x00,}}, {0x8151,2,{0xB8,0xAD,0x00,0x00,}}, {0x8152,2,{0xC4,0x4B,0x00,0x00,}}, {0x8153,2,{0xEB,0xE8,0x00,0x00,}}, {0x8154,2,{0xC7,0xBB,0x00,0x00,}}, {0x8155,2,{0xCD,0xF3,0x00,0x00,}}, {0x8156,2,{0xC4,0x4C,0x00,0x00,}}, {0x8157,2,{0xC4,0x4D,0x00,0x00,}}, {0x8158,2,{0xC4,0x4E,0x00,0x00,}}, {0x8159,2,{0xEB,0xEA,0x00,0x00,}}, {0x815A,2,{0xEB,0xEB,0x00,0x00,}}, {0x815B,2,{0xC4,0x4F,0x00,0x00,}}, {0x815C,2,{0xC4,0x50,0x00,0x00,}}, {0x815D,2,{0xC4,0x51,0x00,0x00,}}, {0x815E,2,{0xC4,0x52,0x00,0x00,}}, {0x815F,2,{0xC4,0x53,0x00,0x00,}}, {0x8160,2,{0xEB,0xED,0x00,0x00,}}, {0x8161,2,{0xC4,0x54,0x00,0x00,}}, {0x8162,2,{0xC4,0x55,0x00,0x00,}}, {0x8163,2,{0xC4,0x56,0x00,0x00,}}, {0x8164,2,{0xC4,0x57,0x00,0x00,}}, {0x8165,2,{0xD0,0xC8,0x00,0x00,}}, {0x8166,2,{0xC4,0x58,0x00,0x00,}}, {0x8167,2,{0xEB,0xF2,0x00,0x00,}}, {0x8168,2,{0xC4,0x59,0x00,0x00,}}, {0x8169,2,{0xEB,0xEE,0x00,0x00,}}, {0x816A,2,{0xC4,0x5A,0x00,0x00,}}, {0x816B,2,{0xC4,0x5B,0x00,0x00,}}, {0x816C,2,{0xC4,0x5C,0x00,0x00,}}, {0x816D,2,{0xEB,0xF1,0x00,0x00,}}, {0x816E,2,{0xC8,0xF9,0x00,0x00,}}, {0x816F,2,{0xC4,0x5D,0x00,0x00,}}, {0x8170,2,{0xD1,0xFC,0x00,0x00,}}, {0x8171,2,{0xEB,0xEC,0x00,0x00,}}, {0x8172,2,{0xC4,0x5E,0x00,0x00,}}, {0x8173,2,{0xC4,0x5F,0x00,0x00,}}, {0x8174,2,{0xEB,0xE9,0x00,0x00,}}, {0x8175,2,{0xC4,0x60,0x00,0x00,}}, {0x8176,2,{0xC4,0x61,0x00,0x00,}}, {0x8177,2,{0xC4,0x62,0x00,0x00,}}, {0x8178,2,{0xC4,0x63,0x00,0x00,}}, {0x8179,2,{0xB8,0xB9,0x00,0x00,}}, {0x817A,2,{0xCF,0xD9,0x00,0x00,}}, {0x817B,2,{0xC4,0xE5,0x00,0x00,}}, {0x817C,2,{0xEB,0xEF,0x00,0x00,}}, {0x817D,2,{0xEB,0xF0,0x00,0x00,}}, {0x817E,2,{0xCC,0xDA,0x00,0x00,}}, {0x817F,2,{0xCD,0xC8,0x00,0x00,}}, {0x8180,2,{0xB0,0xF2,0x00,0x00,}}, {0x8181,2,{0xC4,0x64,0x00,0x00,}}, {0x8182,2,{0xEB,0xF6,0x00,0x00,}}, {0x8183,2,{0xC4,0x65,0x00,0x00,}}, {0x8184,2,{0xC4,0x66,0x00,0x00,}}, {0x8185,2,{0xC4,0x67,0x00,0x00,}}, {0x8186,2,{0xC4,0x68,0x00,0x00,}}, {0x8187,2,{0xC4,0x69,0x00,0x00,}}, {0x8188,2,{0xEB,0xF5,0x00,0x00,}}, {0x8189,2,{0xC4,0x6A,0x00,0x00,}}, {0x818A,2,{0xB2,0xB2,0x00,0x00,}}, {0x818B,2,{0xC4,0x6B,0x00,0x00,}}, {0x818C,2,{0xC4,0x6C,0x00,0x00,}}, {0x818D,2,{0xC4,0x6D,0x00,0x00,}}, {0x818E,2,{0xC4,0x6E,0x00,0x00,}}, {0x818F,2,{0xB8,0xE0,0x00,0x00,}}, {0x8190,2,{0xC4,0x6F,0x00,0x00,}}, {0x8191,2,{0xEB,0xF7,0x00,0x00,}}, {0x8192,2,{0xC4,0x70,0x00,0x00,}}, {0x8193,2,{0xC4,0x71,0x00,0x00,}}, {0x8194,2,{0xC4,0x72,0x00,0x00,}}, {0x8195,2,{0xC4,0x73,0x00,0x00,}}, {0x8196,2,{0xC4,0x74,0x00,0x00,}}, {0x8197,2,{0xC4,0x75,0x00,0x00,}}, {0x8198,2,{0xB1,0xEC,0x00,0x00,}}, {0x8199,2,{0xC4,0x76,0x00,0x00,}}, {0x819A,2,{0xC4,0x77,0x00,0x00,}}, {0x819B,2,{0xCC,0xC5,0x00,0x00,}}, {0x819C,2,{0xC4,0xA4,0x00,0x00,}}, {0x819D,2,{0xCF,0xA5,0x00,0x00,}}, {0x819E,2,{0xC4,0x78,0x00,0x00,}}, {0x819F,2,{0xC4,0x79,0x00,0x00,}}, {0x81A0,2,{0xC4,0x7A,0x00,0x00,}}, {0x81A1,2,{0xC4,0x7B,0x00,0x00,}}, {0x81A2,2,{0xC4,0x7C,0x00,0x00,}}, {0x81A3,2,{0xEB,0xF9,0x00,0x00,}}, {0x81A4,2,{0xC4,0x7D,0x00,0x00,}}, {0x81A5,2,{0xC4,0x7E,0x00,0x00,}}, {0x81A6,2,{0xEC,0xA2,0x00,0x00,}}, {0x81A7,2,{0xC4,0x80,0x00,0x00,}}, {0x81A8,2,{0xC5,0xF2,0x00,0x00,}}, {0x81A9,2,{0xC4,0x81,0x00,0x00,}}, {0x81AA,2,{0xEB,0xFA,0x00,0x00,}}, {0x81AB,2,{0xC4,0x82,0x00,0x00,}}, {0x81AC,2,{0xC4,0x83,0x00,0x00,}}, {0x81AD,2,{0xC4,0x84,0x00,0x00,}}, {0x81AE,2,{0xC4,0x85,0x00,0x00,}}, {0x81AF,2,{0xC4,0x86,0x00,0x00,}}, {0x81B0,2,{0xC4,0x87,0x00,0x00,}}, {0x81B1,2,{0xC4,0x88,0x00,0x00,}}, {0x81B2,2,{0xC4,0x89,0x00,0x00,}}, {0x81B3,2,{0xC9,0xC5,0x00,0x00,}}, {0x81B4,2,{0xC4,0x8A,0x00,0x00,}}, {0x81B5,2,{0xC4,0x8B,0x00,0x00,}}, {0x81B6,2,{0xC4,0x8C,0x00,0x00,}}, {0x81B7,2,{0xC4,0x8D,0x00,0x00,}}, {0x81B8,2,{0xC4,0x8E,0x00,0x00,}}, {0x81B9,2,{0xC4,0x8F,0x00,0x00,}}, {0x81BA,2,{0xE2,0xDF,0x00,0x00,}}, {0x81BB,2,{0xEB,0xFE,0x00,0x00,}}, {0x81BC,2,{0xC4,0x90,0x00,0x00,}}, {0x81BD,2,{0xC4,0x91,0x00,0x00,}}, {0x81BE,2,{0xC4,0x92,0x00,0x00,}}, {0x81BF,2,{0xC4,0x93,0x00,0x00,}}, {0x81C0,2,{0xCD,0xCE,0x00,0x00,}}, {0x81C1,2,{0xEC,0xA1,0x00,0x00,}}, {0x81C2,2,{0xB1,0xDB,0x00,0x00,}}, {0x81C3,2,{0xD3,0xB7,0x00,0x00,}}, {0x81C4,2,{0xC4,0x94,0x00,0x00,}}, {0x81C5,2,{0xC4,0x95,0x00,0x00,}}, {0x81C6,2,{0xD2,0xDC,0x00,0x00,}}, {0x81C7,2,{0xC4,0x96,0x00,0x00,}}, {0x81C8,2,{0xC4,0x97,0x00,0x00,}}, {0x81C9,2,{0xC4,0x98,0x00,0x00,}}, {0x81CA,2,{0xEB,0xFD,0x00,0x00,}}, {0x81CB,2,{0xC4,0x99,0x00,0x00,}}, {0x81CC,2,{0xEB,0xFB,0x00,0x00,}}, {0x81CD,2,{0xC4,0x9A,0x00,0x00,}}, {0x81CE,2,{0xC4,0x9B,0x00,0x00,}}, {0x81CF,2,{0xC4,0x9C,0x00,0x00,}}, {0x81D0,2,{0xC4,0x9D,0x00,0x00,}}, {0x81D1,2,{0xC4,0x9E,0x00,0x00,}}, {0x81D2,2,{0xC4,0x9F,0x00,0x00,}}, {0x81D3,2,{0xC4,0xA0,0x00,0x00,}}, {0x81D4,2,{0xC5,0x40,0x00,0x00,}}, {0x81D5,2,{0xC5,0x41,0x00,0x00,}}, {0x81D6,2,{0xC5,0x42,0x00,0x00,}}, {0x81D7,2,{0xC5,0x43,0x00,0x00,}}, {0x81D8,2,{0xC5,0x44,0x00,0x00,}}, {0x81D9,2,{0xC5,0x45,0x00,0x00,}}, {0x81DA,2,{0xC5,0x46,0x00,0x00,}}, {0x81DB,2,{0xC5,0x47,0x00,0x00,}}, {0x81DC,2,{0xC5,0x48,0x00,0x00,}}, {0x81DD,2,{0xC5,0x49,0x00,0x00,}}, {0x81DE,2,{0xC5,0x4A,0x00,0x00,}}, {0x81DF,2,{0xC5,0x4B,0x00,0x00,}}, {0x81E0,2,{0xC5,0x4C,0x00,0x00,}}, {0x81E1,2,{0xC5,0x4D,0x00,0x00,}}, {0x81E2,2,{0xC5,0x4E,0x00,0x00,}}, {0x81E3,2,{0xB3,0xBC,0x00,0x00,}}, {0x81E4,2,{0xC5,0x4F,0x00,0x00,}}, {0x81E5,2,{0xC5,0x50,0x00,0x00,}}, {0x81E6,2,{0xC5,0x51,0x00,0x00,}}, {0x81E7,2,{0xEA,0xB0,0x00,0x00,}}, {0x81E8,2,{0xC5,0x52,0x00,0x00,}}, {0x81E9,2,{0xC5,0x53,0x00,0x00,}}, {0x81EA,2,{0xD7,0xD4,0x00,0x00,}}, {0x81EB,2,{0xC5,0x54,0x00,0x00,}}, {0x81EC,2,{0xF4,0xAB,0x00,0x00,}}, {0x81ED,2,{0xB3,0xF4,0x00,0x00,}}, {0x81EE,2,{0xC5,0x55,0x00,0x00,}}, {0x81EF,2,{0xC5,0x56,0x00,0x00,}}, {0x81F0,2,{0xC5,0x57,0x00,0x00,}}, {0x81F1,2,{0xC5,0x58,0x00,0x00,}}, {0x81F2,2,{0xC5,0x59,0x00,0x00,}}, {0x81F3,2,{0xD6,0xC1,0x00,0x00,}}, {0x81F4,2,{0xD6,0xC2,0x00,0x00,}}, {0x81F5,2,{0xC5,0x5A,0x00,0x00,}}, {0x81F6,2,{0xC5,0x5B,0x00,0x00,}}, {0x81F7,2,{0xC5,0x5C,0x00,0x00,}}, {0x81F8,2,{0xC5,0x5D,0x00,0x00,}}, {0x81F9,2,{0xC5,0x5E,0x00,0x00,}}, {0x81FA,2,{0xC5,0x5F,0x00,0x00,}}, {0x81FB,2,{0xD5,0xE9,0x00,0x00,}}, {0x81FC,2,{0xBE,0xCA,0x00,0x00,}}, {0x81FD,2,{0xC5,0x60,0x00,0x00,}}, {0x81FE,2,{0xF4,0xA7,0x00,0x00,}}, {0x81FF,2,{0xC5,0x61,0x00,0x00,}}, {0x8200,2,{0xD2,0xA8,0x00,0x00,}}, {0x8201,2,{0xF4,0xA8,0x00,0x00,}}, {0x8202,2,{0xF4,0xA9,0x00,0x00,}}, {0x8203,2,{0xC5,0x62,0x00,0x00,}}, {0x8204,2,{0xF4,0xAA,0x00,0x00,}}, {0x8205,2,{0xBE,0xCB,0x00,0x00,}}, {0x8206,2,{0xD3,0xDF,0x00,0x00,}}, {0x8207,2,{0xC5,0x63,0x00,0x00,}}, {0x8208,2,{0xC5,0x64,0x00,0x00,}}, {0x8209,2,{0xC5,0x65,0x00,0x00,}}, {0x820A,2,{0xC5,0x66,0x00,0x00,}}, {0x820B,2,{0xC5,0x67,0x00,0x00,}}, {0x820C,2,{0xC9,0xE0,0x00,0x00,}}, {0x820D,2,{0xC9,0xE1,0x00,0x00,}}, {0x820E,2,{0xC5,0x68,0x00,0x00,}}, {0x820F,2,{0xC5,0x69,0x00,0x00,}}, {0x8210,2,{0xF3,0xC2,0x00,0x00,}}, {0x8211,2,{0xC5,0x6A,0x00,0x00,}}, {0x8212,2,{0xCA,0xE6,0x00,0x00,}}, {0x8213,2,{0xC5,0x6B,0x00,0x00,}}, {0x8214,2,{0xCC,0xF2,0x00,0x00,}}, {0x8215,2,{0xC5,0x6C,0x00,0x00,}}, {0x8216,2,{0xC5,0x6D,0x00,0x00,}}, {0x8217,2,{0xC5,0x6E,0x00,0x00,}}, {0x8218,2,{0xC5,0x6F,0x00,0x00,}}, {0x8219,2,{0xC5,0x70,0x00,0x00,}}, {0x821A,2,{0xC5,0x71,0x00,0x00,}}, {0x821B,2,{0xE2,0xB6,0x00,0x00,}}, {0x821C,2,{0xCB,0xB4,0x00,0x00,}}, {0x821D,2,{0xC5,0x72,0x00,0x00,}}, {0x821E,2,{0xCE,0xE8,0x00,0x00,}}, {0x821F,2,{0xD6,0xDB,0x00,0x00,}}, {0x8220,2,{0xC5,0x73,0x00,0x00,}}, {0x8221,2,{0xF4,0xAD,0x00,0x00,}}, {0x8222,2,{0xF4,0xAE,0x00,0x00,}}, {0x8223,2,{0xF4,0xAF,0x00,0x00,}}, {0x8224,2,{0xC5,0x74,0x00,0x00,}}, {0x8225,2,{0xC5,0x75,0x00,0x00,}}, {0x8226,2,{0xC5,0x76,0x00,0x00,}}, {0x8227,2,{0xC5,0x77,0x00,0x00,}}, {0x8228,2,{0xF4,0xB2,0x00,0x00,}}, {0x8229,2,{0xC5,0x78,0x00,0x00,}}, {0x822A,2,{0xBA,0xBD,0x00,0x00,}}, {0x822B,2,{0xF4,0xB3,0x00,0x00,}}, {0x822C,2,{0xB0,0xE3,0x00,0x00,}}, {0x822D,2,{0xF4,0xB0,0x00,0x00,}}, {0x822E,2,{0xC5,0x79,0x00,0x00,}}, {0x822F,2,{0xF4,0xB1,0x00,0x00,}}, {0x8230,2,{0xBD,0xA2,0x00,0x00,}}, {0x8231,2,{0xB2,0xD5,0x00,0x00,}}, {0x8232,2,{0xC5,0x7A,0x00,0x00,}}, {0x8233,2,{0xF4,0xB6,0x00,0x00,}}, {0x8234,2,{0xF4,0xB7,0x00,0x00,}}, {0x8235,2,{0xB6,0xE6,0x00,0x00,}}, {0x8236,2,{0xB2,0xB0,0x00,0x00,}}, {0x8237,2,{0xCF,0xCF,0x00,0x00,}}, {0x8238,2,{0xF4,0xB4,0x00,0x00,}}, {0x8239,2,{0xB4,0xAC,0x00,0x00,}}, {0x823A,2,{0xC5,0x7B,0x00,0x00,}}, {0x823B,2,{0xF4,0xB5,0x00,0x00,}}, {0x823C,2,{0xC5,0x7C,0x00,0x00,}}, {0x823D,2,{0xC5,0x7D,0x00,0x00,}}, {0x823E,2,{0xF4,0xB8,0x00,0x00,}}, {0x823F,2,{0xC5,0x7E,0x00,0x00,}}, {0x8240,2,{0xC5,0x80,0x00,0x00,}}, {0x8241,2,{0xC5,0x81,0x00,0x00,}}, {0x8242,2,{0xC5,0x82,0x00,0x00,}}, {0x8243,2,{0xC5,0x83,0x00,0x00,}}, {0x8244,2,{0xF4,0xB9,0x00,0x00,}}, {0x8245,2,{0xC5,0x84,0x00,0x00,}}, {0x8246,2,{0xC5,0x85,0x00,0x00,}}, {0x8247,2,{0xCD,0xA7,0x00,0x00,}}, {0x8248,2,{0xC5,0x86,0x00,0x00,}}, {0x8249,2,{0xF4,0xBA,0x00,0x00,}}, {0x824A,2,{0xC5,0x87,0x00,0x00,}}, {0x824B,2,{0xF4,0xBB,0x00,0x00,}}, {0x824C,2,{0xC5,0x88,0x00,0x00,}}, {0x824D,2,{0xC5,0x89,0x00,0x00,}}, {0x824E,2,{0xC5,0x8A,0x00,0x00,}}, {0x824F,2,{0xF4,0xBC,0x00,0x00,}}, {0x8250,2,{0xC5,0x8B,0x00,0x00,}}, {0x8251,2,{0xC5,0x8C,0x00,0x00,}}, {0x8252,2,{0xC5,0x8D,0x00,0x00,}}, {0x8253,2,{0xC5,0x8E,0x00,0x00,}}, {0x8254,2,{0xC5,0x8F,0x00,0x00,}}, {0x8255,2,{0xC5,0x90,0x00,0x00,}}, {0x8256,2,{0xC5,0x91,0x00,0x00,}}, {0x8257,2,{0xC5,0x92,0x00,0x00,}}, {0x8258,2,{0xCB,0xD2,0x00,0x00,}}, {0x8259,2,{0xC5,0x93,0x00,0x00,}}, {0x825A,2,{0xF4,0xBD,0x00,0x00,}}, {0x825B,2,{0xC5,0x94,0x00,0x00,}}, {0x825C,2,{0xC5,0x95,0x00,0x00,}}, {0x825D,2,{0xC5,0x96,0x00,0x00,}}, {0x825E,2,{0xC5,0x97,0x00,0x00,}}, {0x825F,2,{0xF4,0xBE,0x00,0x00,}}, {0x8260,2,{0xC5,0x98,0x00,0x00,}}, {0x8261,2,{0xC5,0x99,0x00,0x00,}}, {0x8262,2,{0xC5,0x9A,0x00,0x00,}}, {0x8263,2,{0xC5,0x9B,0x00,0x00,}}, {0x8264,2,{0xC5,0x9C,0x00,0x00,}}, {0x8265,2,{0xC5,0x9D,0x00,0x00,}}, {0x8266,2,{0xC5,0x9E,0x00,0x00,}}, {0x8267,2,{0xC5,0x9F,0x00,0x00,}}, {0x8268,2,{0xF4,0xBF,0x00,0x00,}}, {0x8269,2,{0xC5,0xA0,0x00,0x00,}}, {0x826A,2,{0xC6,0x40,0x00,0x00,}}, {0x826B,2,{0xC6,0x41,0x00,0x00,}}, {0x826C,2,{0xC6,0x42,0x00,0x00,}}, {0x826D,2,{0xC6,0x43,0x00,0x00,}}, {0x826E,2,{0xF4,0xDE,0x00,0x00,}}, {0x826F,2,{0xC1,0xBC,0x00,0x00,}}, {0x8270,2,{0xBC,0xE8,0x00,0x00,}}, {0x8271,2,{0xC6,0x44,0x00,0x00,}}, {0x8272,2,{0xC9,0xAB,0x00,0x00,}}, {0x8273,2,{0xD1,0xDE,0x00,0x00,}}, {0x8274,2,{0xE5,0xF5,0x00,0x00,}}, {0x8275,2,{0xC6,0x45,0x00,0x00,}}, {0x8276,2,{0xC6,0x46,0x00,0x00,}}, {0x8277,2,{0xC6,0x47,0x00,0x00,}}, {0x8278,2,{0xC6,0x48,0x00,0x00,}}, {0x8279,2,{0xDC,0xB3,0x00,0x00,}}, {0x827A,2,{0xD2,0xD5,0x00,0x00,}}, {0x827B,2,{0xC6,0x49,0x00,0x00,}}, {0x827C,2,{0xC6,0x4A,0x00,0x00,}}, {0x827D,2,{0xDC,0xB4,0x00,0x00,}}, {0x827E,2,{0xB0,0xAC,0x00,0x00,}}, {0x827F,2,{0xDC,0xB5,0x00,0x00,}}, {0x8280,2,{0xC6,0x4B,0x00,0x00,}}, {0x8281,2,{0xC6,0x4C,0x00,0x00,}}, {0x8282,2,{0xBD,0xDA,0x00,0x00,}}, {0x8283,2,{0xC6,0x4D,0x00,0x00,}}, {0x8284,2,{0xDC,0xB9,0x00,0x00,}}, {0x8285,2,{0xC6,0x4E,0x00,0x00,}}, {0x8286,2,{0xC6,0x4F,0x00,0x00,}}, {0x8287,2,{0xC6,0x50,0x00,0x00,}}, {0x8288,2,{0xD8,0xC2,0x00,0x00,}}, {0x8289,2,{0xC6,0x51,0x00,0x00,}}, {0x828A,2,{0xDC,0xB7,0x00,0x00,}}, {0x828B,2,{0xD3,0xF3,0x00,0x00,}}, {0x828C,2,{0xC6,0x52,0x00,0x00,}}, {0x828D,2,{0xC9,0xD6,0x00,0x00,}}, {0x828E,2,{0xDC,0xBA,0x00,0x00,}}, {0x828F,2,{0xDC,0xB6,0x00,0x00,}}, {0x8290,2,{0xC6,0x53,0x00,0x00,}}, {0x8291,2,{0xDC,0xBB,0x00,0x00,}}, {0x8292,2,{0xC3,0xA2,0x00,0x00,}}, {0x8293,2,{0xC6,0x54,0x00,0x00,}}, {0x8294,2,{0xC6,0x55,0x00,0x00,}}, {0x8295,2,{0xC6,0x56,0x00,0x00,}}, {0x8296,2,{0xC6,0x57,0x00,0x00,}}, {0x8297,2,{0xDC,0xBC,0x00,0x00,}}, {0x8298,2,{0xDC,0xC5,0x00,0x00,}}, {0x8299,2,{0xDC,0xBD,0x00,0x00,}}, {0x829A,2,{0xC6,0x58,0x00,0x00,}}, {0x829B,2,{0xC6,0x59,0x00,0x00,}}, {0x829C,2,{0xCE,0xDF,0x00,0x00,}}, {0x829D,2,{0xD6,0xA5,0x00,0x00,}}, {0x829E,2,{0xC6,0x5A,0x00,0x00,}}, {0x829F,2,{0xDC,0xCF,0x00,0x00,}}, {0x82A0,2,{0xC6,0x5B,0x00,0x00,}}, {0x82A1,2,{0xDC,0xCD,0x00,0x00,}}, {0x82A2,2,{0xC6,0x5C,0x00,0x00,}}, {0x82A3,2,{0xC6,0x5D,0x00,0x00,}}, {0x82A4,2,{0xDC,0xD2,0x00,0x00,}}, {0x82A5,2,{0xBD,0xE6,0x00,0x00,}}, {0x82A6,2,{0xC2,0xAB,0x00,0x00,}}, {0x82A7,2,{0xC6,0x5E,0x00,0x00,}}, {0x82A8,2,{0xDC,0xB8,0x00,0x00,}}, {0x82A9,2,{0xDC,0xCB,0x00,0x00,}}, {0x82AA,2,{0xDC,0xCE,0x00,0x00,}}, {0x82AB,2,{0xDC,0xBE,0x00,0x00,}}, {0x82AC,2,{0xB7,0xD2,0x00,0x00,}}, {0x82AD,2,{0xB0,0xC5,0x00,0x00,}}, {0x82AE,2,{0xDC,0xC7,0x00,0x00,}}, {0x82AF,2,{0xD0,0xBE,0x00,0x00,}}, {0x82B0,2,{0xDC,0xC1,0x00,0x00,}}, {0x82B1,2,{0xBB,0xA8,0x00,0x00,}}, {0x82B2,2,{0xC6,0x5F,0x00,0x00,}}, {0x82B3,2,{0xB7,0xBC,0x00,0x00,}}, {0x82B4,2,{0xDC,0xCC,0x00,0x00,}}, {0x82B5,2,{0xC6,0x60,0x00,0x00,}}, {0x82B6,2,{0xC6,0x61,0x00,0x00,}}, {0x82B7,2,{0xDC,0xC6,0x00,0x00,}}, {0x82B8,2,{0xDC,0xBF,0x00,0x00,}}, {0x82B9,2,{0xC7,0xDB,0x00,0x00,}}, {0x82BA,2,{0xC6,0x62,0x00,0x00,}}, {0x82BB,2,{0xC6,0x63,0x00,0x00,}}, {0x82BC,2,{0xC6,0x64,0x00,0x00,}}, {0x82BD,2,{0xD1,0xBF,0x00,0x00,}}, {0x82BE,2,{0xDC,0xC0,0x00,0x00,}}, {0x82BF,2,{0xC6,0x65,0x00,0x00,}}, {0x82C0,2,{0xC6,0x66,0x00,0x00,}}, {0x82C1,2,{0xDC,0xCA,0x00,0x00,}}, {0x82C2,2,{0xC6,0x67,0x00,0x00,}}, {0x82C3,2,{0xC6,0x68,0x00,0x00,}}, {0x82C4,2,{0xDC,0xD0,0x00,0x00,}}, {0x82C5,2,{0xC6,0x69,0x00,0x00,}}, {0x82C6,2,{0xC6,0x6A,0x00,0x00,}}, {0x82C7,2,{0xCE,0xAD,0x00,0x00,}}, {0x82C8,2,{0xDC,0xC2,0x00,0x00,}}, {0x82C9,2,{0xC6,0x6B,0x00,0x00,}}, {0x82CA,2,{0xDC,0xC3,0x00,0x00,}}, {0x82CB,2,{0xDC,0xC8,0x00,0x00,}}, {0x82CC,2,{0xDC,0xC9,0x00,0x00,}}, {0x82CD,2,{0xB2,0xD4,0x00,0x00,}}, {0x82CE,2,{0xDC,0xD1,0x00,0x00,}}, {0x82CF,2,{0xCB,0xD5,0x00,0x00,}}, {0x82D0,2,{0xC6,0x6C,0x00,0x00,}}, {0x82D1,2,{0xD4,0xB7,0x00,0x00,}}, {0x82D2,2,{0xDC,0xDB,0x00,0x00,}}, {0x82D3,2,{0xDC,0xDF,0x00,0x00,}}, {0x82D4,2,{0xCC,0xA6,0x00,0x00,}}, {0x82D5,2,{0xDC,0xE6,0x00,0x00,}}, {0x82D6,2,{0xC6,0x6D,0x00,0x00,}}, {0x82D7,2,{0xC3,0xE7,0x00,0x00,}}, {0x82D8,2,{0xDC,0xDC,0x00,0x00,}}, {0x82D9,2,{0xC6,0x6E,0x00,0x00,}}, {0x82DA,2,{0xC6,0x6F,0x00,0x00,}}, {0x82DB,2,{0xBF,0xC1,0x00,0x00,}}, {0x82DC,2,{0xDC,0xD9,0x00,0x00,}}, {0x82DD,2,{0xC6,0x70,0x00,0x00,}}, {0x82DE,2,{0xB0,0xFA,0x00,0x00,}}, {0x82DF,2,{0xB9,0xB6,0x00,0x00,}}, {0x82E0,2,{0xDC,0xE5,0x00,0x00,}}, {0x82E1,2,{0xDC,0xD3,0x00,0x00,}}, {0x82E2,2,{0xC6,0x71,0x00,0x00,}}, {0x82E3,2,{0xDC,0xC4,0x00,0x00,}}, {0x82E4,2,{0xDC,0xD6,0x00,0x00,}}, {0x82E5,2,{0xC8,0xF4,0x00,0x00,}}, {0x82E6,2,{0xBF,0xE0,0x00,0x00,}}, {0x82E7,2,{0xC6,0x72,0x00,0x00,}}, {0x82E8,2,{0xC6,0x73,0x00,0x00,}}, {0x82E9,2,{0xC6,0x74,0x00,0x00,}}, {0x82EA,2,{0xC6,0x75,0x00,0x00,}}, {0x82EB,2,{0xC9,0xBB,0x00,0x00,}}, {0x82EC,2,{0xC6,0x76,0x00,0x00,}}, {0x82ED,2,{0xC6,0x77,0x00,0x00,}}, {0x82EE,2,{0xC6,0x78,0x00,0x00,}}, {0x82EF,2,{0xB1,0xBD,0x00,0x00,}}, {0x82F0,2,{0xC6,0x79,0x00,0x00,}}, {0x82F1,2,{0xD3,0xA2,0x00,0x00,}}, {0x82F2,2,{0xC6,0x7A,0x00,0x00,}}, {0x82F3,2,{0xC6,0x7B,0x00,0x00,}}, {0x82F4,2,{0xDC,0xDA,0x00,0x00,}}, {0x82F5,2,{0xC6,0x7C,0x00,0x00,}}, {0x82F6,2,{0xC6,0x7D,0x00,0x00,}}, {0x82F7,2,{0xDC,0xD5,0x00,0x00,}}, {0x82F8,2,{0xC6,0x7E,0x00,0x00,}}, {0x82F9,2,{0xC6,0xBB,0x00,0x00,}}, {0x82FA,2,{0xC6,0x80,0x00,0x00,}}, {0x82FB,2,{0xDC,0xDE,0x00,0x00,}}, {0x82FC,2,{0xC6,0x81,0x00,0x00,}}, {0x82FD,2,{0xC6,0x82,0x00,0x00,}}, {0x82FE,2,{0xC6,0x83,0x00,0x00,}}, {0x82FF,2,{0xC6,0x84,0x00,0x00,}}, {0x8300,2,{0xC6,0x85,0x00,0x00,}}, {0x8301,2,{0xD7,0xC2,0x00,0x00,}}, {0x8302,2,{0xC3,0xAF,0x00,0x00,}}, {0x8303,2,{0xB7,0xB6,0x00,0x00,}}, {0x8304,2,{0xC7,0xD1,0x00,0x00,}}, {0x8305,2,{0xC3,0xA9,0x00,0x00,}}, {0x8306,2,{0xDC,0xE2,0x00,0x00,}}, {0x8307,2,{0xDC,0xD8,0x00,0x00,}}, {0x8308,2,{0xDC,0xEB,0x00,0x00,}}, {0x8309,2,{0xDC,0xD4,0x00,0x00,}}, {0x830A,2,{0xC6,0x86,0x00,0x00,}}, {0x830B,2,{0xC6,0x87,0x00,0x00,}}, {0x830C,2,{0xDC,0xDD,0x00,0x00,}}, {0x830D,2,{0xC6,0x88,0x00,0x00,}}, {0x830E,2,{0xBE,0xA5,0x00,0x00,}}, {0x830F,2,{0xDC,0xD7,0x00,0x00,}}, {0x8310,2,{0xC6,0x89,0x00,0x00,}}, {0x8311,2,{0xDC,0xE0,0x00,0x00,}}, {0x8312,2,{0xC6,0x8A,0x00,0x00,}}, {0x8313,2,{0xC6,0x8B,0x00,0x00,}}, {0x8314,2,{0xDC,0xE3,0x00,0x00,}}, {0x8315,2,{0xDC,0xE4,0x00,0x00,}}, {0x8316,2,{0xC6,0x8C,0x00,0x00,}}, {0x8317,2,{0xDC,0xF8,0x00,0x00,}}, {0x8318,2,{0xC6,0x8D,0x00,0x00,}}, {0x8319,2,{0xC6,0x8E,0x00,0x00,}}, {0x831A,2,{0xDC,0xE1,0x00,0x00,}}, {0x831B,2,{0xDD,0xA2,0x00,0x00,}}, {0x831C,2,{0xDC,0xE7,0x00,0x00,}}, {0x831D,2,{0xC6,0x8F,0x00,0x00,}}, {0x831E,2,{0xC6,0x90,0x00,0x00,}}, {0x831F,2,{0xC6,0x91,0x00,0x00,}}, {0x8320,2,{0xC6,0x92,0x00,0x00,}}, {0x8321,2,{0xC6,0x93,0x00,0x00,}}, {0x8322,2,{0xC6,0x94,0x00,0x00,}}, {0x8323,2,{0xC6,0x95,0x00,0x00,}}, {0x8324,2,{0xC6,0x96,0x00,0x00,}}, {0x8325,2,{0xC6,0x97,0x00,0x00,}}, {0x8326,2,{0xC6,0x98,0x00,0x00,}}, {0x8327,2,{0xBC,0xEB,0x00,0x00,}}, {0x8328,2,{0xB4,0xC4,0x00,0x00,}}, {0x8329,2,{0xC6,0x99,0x00,0x00,}}, {0x832A,2,{0xC6,0x9A,0x00,0x00,}}, {0x832B,2,{0xC3,0xA3,0x00,0x00,}}, {0x832C,2,{0xB2,0xE7,0x00,0x00,}}, {0x832D,2,{0xDC,0xFA,0x00,0x00,}}, {0x832E,2,{0xC6,0x9B,0x00,0x00,}}, {0x832F,2,{0xDC,0xF2,0x00,0x00,}}, {0x8330,2,{0xC6,0x9C,0x00,0x00,}}, {0x8331,2,{0xDC,0xEF,0x00,0x00,}}, {0x8332,2,{0xC6,0x9D,0x00,0x00,}}, {0x8333,2,{0xDC,0xFC,0x00,0x00,}}, {0x8334,2,{0xDC,0xEE,0x00,0x00,}}, {0x8335,2,{0xD2,0xF0,0x00,0x00,}}, {0x8336,2,{0xB2,0xE8,0x00,0x00,}}, {0x8337,2,{0xC6,0x9E,0x00,0x00,}}, {0x8338,2,{0xC8,0xD7,0x00,0x00,}}, {0x8339,2,{0xC8,0xE3,0x00,0x00,}}, {0x833A,2,{0xDC,0xFB,0x00,0x00,}}, {0x833B,2,{0xC6,0x9F,0x00,0x00,}}, {0x833C,2,{0xDC,0xED,0x00,0x00,}}, {0x833D,2,{0xC6,0xA0,0x00,0x00,}}, {0x833E,2,{0xC7,0x40,0x00,0x00,}}, {0x833F,2,{0xC7,0x41,0x00,0x00,}}, {0x8340,2,{0xDC,0xF7,0x00,0x00,}}, {0x8341,2,{0xC7,0x42,0x00,0x00,}}, {0x8342,2,{0xC7,0x43,0x00,0x00,}}, {0x8343,2,{0xDC,0xF5,0x00,0x00,}}, {0x8344,2,{0xC7,0x44,0x00,0x00,}}, {0x8345,2,{0xC7,0x45,0x00,0x00,}}, {0x8346,2,{0xBE,0xA3,0x00,0x00,}}, {0x8347,2,{0xDC,0xF4,0x00,0x00,}}, {0x8348,2,{0xC7,0x46,0x00,0x00,}}, {0x8349,2,{0xB2,0xDD,0x00,0x00,}}, {0x834A,2,{0xC7,0x47,0x00,0x00,}}, {0x834B,2,{0xC7,0x48,0x00,0x00,}}, {0x834C,2,{0xC7,0x49,0x00,0x00,}}, {0x834D,2,{0xC7,0x4A,0x00,0x00,}}, {0x834E,2,{0xC7,0x4B,0x00,0x00,}}, {0x834F,2,{0xDC,0xF3,0x00,0x00,}}, {0x8350,2,{0xBC,0xF6,0x00,0x00,}}, {0x8351,2,{0xDC,0xE8,0x00,0x00,}}, {0x8352,2,{0xBB,0xC4,0x00,0x00,}}, {0x8353,2,{0xC7,0x4C,0x00,0x00,}}, {0x8354,2,{0xC0,0xF3,0x00,0x00,}}, {0x8355,2,{0xC7,0x4D,0x00,0x00,}}, {0x8356,2,{0xC7,0x4E,0x00,0x00,}}, {0x8357,2,{0xC7,0x4F,0x00,0x00,}}, {0x8358,2,{0xC7,0x50,0x00,0x00,}}, {0x8359,2,{0xC7,0x51,0x00,0x00,}}, {0x835A,2,{0xBC,0xD4,0x00,0x00,}}, {0x835B,2,{0xDC,0xE9,0x00,0x00,}}, {0x835C,2,{0xDC,0xEA,0x00,0x00,}}, {0x835D,2,{0xC7,0x52,0x00,0x00,}}, {0x835E,2,{0xDC,0xF1,0x00,0x00,}}, {0x835F,2,{0xDC,0xF6,0x00,0x00,}}, {0x8360,2,{0xDC,0xF9,0x00,0x00,}}, {0x8361,2,{0xB5,0xB4,0x00,0x00,}}, {0x8362,2,{0xC7,0x53,0x00,0x00,}}, {0x8363,2,{0xC8,0xD9,0x00,0x00,}}, {0x8364,2,{0xBB,0xE7,0x00,0x00,}}, {0x8365,2,{0xDC,0xFE,0x00,0x00,}}, {0x8366,2,{0xDC,0xFD,0x00,0x00,}}, {0x8367,2,{0xD3,0xAB,0x00,0x00,}}, {0x8368,2,{0xDD,0xA1,0x00,0x00,}}, {0x8369,2,{0xDD,0xA3,0x00,0x00,}}, {0x836A,2,{0xDD,0xA5,0x00,0x00,}}, {0x836B,2,{0xD2,0xF1,0x00,0x00,}}, {0x836C,2,{0xDD,0xA4,0x00,0x00,}}, {0x836D,2,{0xDD,0xA6,0x00,0x00,}}, {0x836E,2,{0xDD,0xA7,0x00,0x00,}}, {0x836F,2,{0xD2,0xA9,0x00,0x00,}}, {0x8370,2,{0xC7,0x54,0x00,0x00,}}, {0x8371,2,{0xC7,0x55,0x00,0x00,}}, {0x8372,2,{0xC7,0x56,0x00,0x00,}}, {0x8373,2,{0xC7,0x57,0x00,0x00,}}, {0x8374,2,{0xC7,0x58,0x00,0x00,}}, {0x8375,2,{0xC7,0x59,0x00,0x00,}}, {0x8376,2,{0xC7,0x5A,0x00,0x00,}}, {0x8377,2,{0xBA,0xC9,0x00,0x00,}}, {0x8378,2,{0xDD,0xA9,0x00,0x00,}}, {0x8379,2,{0xC7,0x5B,0x00,0x00,}}, {0x837A,2,{0xC7,0x5C,0x00,0x00,}}, {0x837B,2,{0xDD,0xB6,0x00,0x00,}}, {0x837C,2,{0xDD,0xB1,0x00,0x00,}}, {0x837D,2,{0xDD,0xB4,0x00,0x00,}}, {0x837E,2,{0xC7,0x5D,0x00,0x00,}}, {0x837F,2,{0xC7,0x5E,0x00,0x00,}}, {0x8380,2,{0xC7,0x5F,0x00,0x00,}}, {0x8381,2,{0xC7,0x60,0x00,0x00,}}, {0x8382,2,{0xC7,0x61,0x00,0x00,}}, {0x8383,2,{0xC7,0x62,0x00,0x00,}}, {0x8384,2,{0xC7,0x63,0x00,0x00,}}, {0x8385,2,{0xDD,0xB0,0x00,0x00,}}, {0x8386,2,{0xC6,0xCE,0x00,0x00,}}, {0x8387,2,{0xC7,0x64,0x00,0x00,}}, {0x8388,2,{0xC7,0x65,0x00,0x00,}}, {0x8389,2,{0xC0,0xF2,0x00,0x00,}}, {0x838A,2,{0xC7,0x66,0x00,0x00,}}, {0x838B,2,{0xC7,0x67,0x00,0x00,}}, {0x838C,2,{0xC7,0x68,0x00,0x00,}}, {0x838D,2,{0xC7,0x69,0x00,0x00,}}, {0x838E,2,{0xC9,0xAF,0x00,0x00,}}, {0x838F,2,{0xC7,0x6A,0x00,0x00,}}, {0x8390,2,{0xC7,0x6B,0x00,0x00,}}, {0x8391,2,{0xC7,0x6C,0x00,0x00,}}, {0x8392,2,{0xDC,0xEC,0x00,0x00,}}, {0x8393,2,{0xDD,0xAE,0x00,0x00,}}, {0x8394,2,{0xC7,0x6D,0x00,0x00,}}, {0x8395,2,{0xC7,0x6E,0x00,0x00,}}, {0x8396,2,{0xC7,0x6F,0x00,0x00,}}, {0x8397,2,{0xC7,0x70,0x00,0x00,}}, {0x8398,2,{0xDD,0xB7,0x00,0x00,}}, {0x8399,2,{0xC7,0x71,0x00,0x00,}}, {0x839A,2,{0xC7,0x72,0x00,0x00,}}, {0x839B,2,{0xDC,0xF0,0x00,0x00,}}, {0x839C,2,{0xDD,0xAF,0x00,0x00,}}, {0x839D,2,{0xC7,0x73,0x00,0x00,}}, {0x839E,2,{0xDD,0xB8,0x00,0x00,}}, {0x839F,2,{0xC7,0x74,0x00,0x00,}}, {0x83A0,2,{0xDD,0xAC,0x00,0x00,}}, {0x83A1,2,{0xC7,0x75,0x00,0x00,}}, {0x83A2,2,{0xC7,0x76,0x00,0x00,}}, {0x83A3,2,{0xC7,0x77,0x00,0x00,}}, {0x83A4,2,{0xC7,0x78,0x00,0x00,}}, {0x83A5,2,{0xC7,0x79,0x00,0x00,}}, {0x83A6,2,{0xC7,0x7A,0x00,0x00,}}, {0x83A7,2,{0xC7,0x7B,0x00,0x00,}}, {0x83A8,2,{0xDD,0xB9,0x00,0x00,}}, {0x83A9,2,{0xDD,0xB3,0x00,0x00,}}, {0x83AA,2,{0xDD,0xAD,0x00,0x00,}}, {0x83AB,2,{0xC4,0xAA,0x00,0x00,}}, {0x83AC,2,{0xC7,0x7C,0x00,0x00,}}, {0x83AD,2,{0xC7,0x7D,0x00,0x00,}}, {0x83AE,2,{0xC7,0x7E,0x00,0x00,}}, {0x83AF,2,{0xC7,0x80,0x00,0x00,}}, {0x83B0,2,{0xDD,0xA8,0x00,0x00,}}, {0x83B1,2,{0xC0,0xB3,0x00,0x00,}}, {0x83B2,2,{0xC1,0xAB,0x00,0x00,}}, {0x83B3,2,{0xDD,0xAA,0x00,0x00,}}, {0x83B4,2,{0xDD,0xAB,0x00,0x00,}}, {0x83B5,2,{0xC7,0x81,0x00,0x00,}}, {0x83B6,2,{0xDD,0xB2,0x00,0x00,}}, {0x83B7,2,{0xBB,0xF1,0x00,0x00,}}, {0x83B8,2,{0xDD,0xB5,0x00,0x00,}}, {0x83B9,2,{0xD3,0xA8,0x00,0x00,}}, {0x83BA,2,{0xDD,0xBA,0x00,0x00,}}, {0x83BB,2,{0xC7,0x82,0x00,0x00,}}, {0x83BC,2,{0xDD,0xBB,0x00,0x00,}}, {0x83BD,2,{0xC3,0xA7,0x00,0x00,}}, {0x83BE,2,{0xC7,0x83,0x00,0x00,}}, {0x83BF,2,{0xC7,0x84,0x00,0x00,}}, {0x83C0,2,{0xDD,0xD2,0x00,0x00,}}, {0x83C1,2,{0xDD,0xBC,0x00,0x00,}}, {0x83C2,2,{0xC7,0x85,0x00,0x00,}}, {0x83C3,2,{0xC7,0x86,0x00,0x00,}}, {0x83C4,2,{0xC7,0x87,0x00,0x00,}}, {0x83C5,2,{0xDD,0xD1,0x00,0x00,}}, {0x83C6,2,{0xC7,0x88,0x00,0x00,}}, {0x83C7,2,{0xB9,0xBD,0x00,0x00,}}, {0x83C8,2,{0xC7,0x89,0x00,0x00,}}, {0x83C9,2,{0xC7,0x8A,0x00,0x00,}}, {0x83CA,2,{0xBE,0xD5,0x00,0x00,}}, {0x83CB,2,{0xC7,0x8B,0x00,0x00,}}, {0x83CC,2,{0xBE,0xFA,0x00,0x00,}}, {0x83CD,2,{0xC7,0x8C,0x00,0x00,}}, {0x83CE,2,{0xC7,0x8D,0x00,0x00,}}, {0x83CF,2,{0xBA,0xCA,0x00,0x00,}}, {0x83D0,2,{0xC7,0x8E,0x00,0x00,}}, {0x83D1,2,{0xC7,0x8F,0x00,0x00,}}, {0x83D2,2,{0xC7,0x90,0x00,0x00,}}, {0x83D3,2,{0xC7,0x91,0x00,0x00,}}, {0x83D4,2,{0xDD,0xCA,0x00,0x00,}}, {0x83D5,2,{0xC7,0x92,0x00,0x00,}}, {0x83D6,2,{0xDD,0xC5,0x00,0x00,}}, {0x83D7,2,{0xC7,0x93,0x00,0x00,}}, {0x83D8,2,{0xDD,0xBF,0x00,0x00,}}, {0x83D9,2,{0xC7,0x94,0x00,0x00,}}, {0x83DA,2,{0xC7,0x95,0x00,0x00,}}, {0x83DB,2,{0xC7,0x96,0x00,0x00,}}, {0x83DC,2,{0xB2,0xCB,0x00,0x00,}}, {0x83DD,2,{0xDD,0xC3,0x00,0x00,}}, {0x83DE,2,{0xC7,0x97,0x00,0x00,}}, {0x83DF,2,{0xDD,0xCB,0x00,0x00,}}, {0x83E0,2,{0xB2,0xA4,0x00,0x00,}}, {0x83E1,2,{0xDD,0xD5,0x00,0x00,}}, {0x83E2,2,{0xC7,0x98,0x00,0x00,}}, {0x83E3,2,{0xC7,0x99,0x00,0x00,}}, {0x83E4,2,{0xC7,0x9A,0x00,0x00,}}, {0x83E5,2,{0xDD,0xBE,0x00,0x00,}}, {0x83E6,2,{0xC7,0x9B,0x00,0x00,}}, {0x83E7,2,{0xC7,0x9C,0x00,0x00,}}, {0x83E8,2,{0xC7,0x9D,0x00,0x00,}}, {0x83E9,2,{0xC6,0xD0,0x00,0x00,}}, {0x83EA,2,{0xDD,0xD0,0x00,0x00,}}, {0x83EB,2,{0xC7,0x9E,0x00,0x00,}}, {0x83EC,2,{0xC7,0x9F,0x00,0x00,}}, {0x83ED,2,{0xC7,0xA0,0x00,0x00,}}, {0x83EE,2,{0xC8,0x40,0x00,0x00,}}, {0x83EF,2,{0xC8,0x41,0x00,0x00,}}, {0x83F0,2,{0xDD,0xD4,0x00,0x00,}}, {0x83F1,2,{0xC1,0xE2,0x00,0x00,}}, {0x83F2,2,{0xB7,0xC6,0x00,0x00,}}, {0x83F3,2,{0xC8,0x42,0x00,0x00,}}, {0x83F4,2,{0xC8,0x43,0x00,0x00,}}, {0x83F5,2,{0xC8,0x44,0x00,0x00,}}, {0x83F6,2,{0xC8,0x45,0x00,0x00,}}, {0x83F7,2,{0xC8,0x46,0x00,0x00,}}, {0x83F8,2,{0xDD,0xCE,0x00,0x00,}}, {0x83F9,2,{0xDD,0xCF,0x00,0x00,}}, {0x83FA,2,{0xC8,0x47,0x00,0x00,}}, {0x83FB,2,{0xC8,0x48,0x00,0x00,}}, {0x83FC,2,{0xC8,0x49,0x00,0x00,}}, {0x83FD,2,{0xDD,0xC4,0x00,0x00,}}, {0x83FE,2,{0xC8,0x4A,0x00,0x00,}}, {0x83FF,2,{0xC8,0x4B,0x00,0x00,}}, {0x8400,2,{0xC8,0x4C,0x00,0x00,}}, {0x8401,2,{0xDD,0xBD,0x00,0x00,}}, {0x8402,2,{0xC8,0x4D,0x00,0x00,}}, {0x8403,2,{0xDD,0xCD,0x00,0x00,}}, {0x8404,2,{0xCC,0xD1,0x00,0x00,}}, {0x8405,2,{0xC8,0x4E,0x00,0x00,}}, {0x8406,2,{0xDD,0xC9,0x00,0x00,}}, {0x8407,2,{0xC8,0x4F,0x00,0x00,}}, {0x8408,2,{0xC8,0x50,0x00,0x00,}}, {0x8409,2,{0xC8,0x51,0x00,0x00,}}, {0x840A,2,{0xC8,0x52,0x00,0x00,}}, {0x840B,2,{0xDD,0xC2,0x00,0x00,}}, {0x840C,2,{0xC3,0xC8,0x00,0x00,}}, {0x840D,2,{0xC6,0xBC,0x00,0x00,}}, {0x840E,2,{0xCE,0xAE,0x00,0x00,}}, {0x840F,2,{0xDD,0xCC,0x00,0x00,}}, {0x8410,2,{0xC8,0x53,0x00,0x00,}}, {0x8411,2,{0xDD,0xC8,0x00,0x00,}}, {0x8412,2,{0xC8,0x54,0x00,0x00,}}, {0x8413,2,{0xC8,0x55,0x00,0x00,}}, {0x8414,2,{0xC8,0x56,0x00,0x00,}}, {0x8415,2,{0xC8,0x57,0x00,0x00,}}, {0x8416,2,{0xC8,0x58,0x00,0x00,}}, {0x8417,2,{0xC8,0x59,0x00,0x00,}}, {0x8418,2,{0xDD,0xC1,0x00,0x00,}}, {0x8419,2,{0xC8,0x5A,0x00,0x00,}}, {0x841A,2,{0xC8,0x5B,0x00,0x00,}}, {0x841B,2,{0xC8,0x5C,0x00,0x00,}}, {0x841C,2,{0xDD,0xC6,0x00,0x00,}}, {0x841D,2,{0xC2,0xDC,0x00,0x00,}}, {0x841E,2,{0xC8,0x5D,0x00,0x00,}}, {0x841F,2,{0xC8,0x5E,0x00,0x00,}}, {0x8420,2,{0xC8,0x5F,0x00,0x00,}}, {0x8421,2,{0xC8,0x60,0x00,0x00,}}, {0x8422,2,{0xC8,0x61,0x00,0x00,}}, {0x8423,2,{0xC8,0x62,0x00,0x00,}}, {0x8424,2,{0xD3,0xA9,0x00,0x00,}}, {0x8425,2,{0xD3,0xAA,0x00,0x00,}}, {0x8426,2,{0xDD,0xD3,0x00,0x00,}}, {0x8427,2,{0xCF,0xF4,0x00,0x00,}}, {0x8428,2,{0xC8,0xF8,0x00,0x00,}}, {0x8429,2,{0xC8,0x63,0x00,0x00,}}, {0x842A,2,{0xC8,0x64,0x00,0x00,}}, {0x842B,2,{0xC8,0x65,0x00,0x00,}}, {0x842C,2,{0xC8,0x66,0x00,0x00,}}, {0x842D,2,{0xC8,0x67,0x00,0x00,}}, {0x842E,2,{0xC8,0x68,0x00,0x00,}}, {0x842F,2,{0xC8,0x69,0x00,0x00,}}, {0x8430,2,{0xC8,0x6A,0x00,0x00,}}, {0x8431,2,{0xDD,0xE6,0x00,0x00,}}, {0x8432,2,{0xC8,0x6B,0x00,0x00,}}, {0x8433,2,{0xC8,0x6C,0x00,0x00,}}, {0x8434,2,{0xC8,0x6D,0x00,0x00,}}, {0x8435,2,{0xC8,0x6E,0x00,0x00,}}, {0x8436,2,{0xC8,0x6F,0x00,0x00,}}, {0x8437,2,{0xC8,0x70,0x00,0x00,}}, {0x8438,2,{0xDD,0xC7,0x00,0x00,}}, {0x8439,2,{0xC8,0x71,0x00,0x00,}}, {0x843A,2,{0xC8,0x72,0x00,0x00,}}, {0x843B,2,{0xC8,0x73,0x00,0x00,}}, {0x843C,2,{0xDD,0xE0,0x00,0x00,}}, {0x843D,2,{0xC2,0xE4,0x00,0x00,}}, {0x843E,2,{0xC8,0x74,0x00,0x00,}}, {0x843F,2,{0xC8,0x75,0x00,0x00,}}, {0x8440,2,{0xC8,0x76,0x00,0x00,}}, {0x8441,2,{0xC8,0x77,0x00,0x00,}}, {0x8442,2,{0xC8,0x78,0x00,0x00,}}, {0x8443,2,{0xC8,0x79,0x00,0x00,}}, {0x8444,2,{0xC8,0x7A,0x00,0x00,}}, {0x8445,2,{0xC8,0x7B,0x00,0x00,}}, {0x8446,2,{0xDD,0xE1,0x00,0x00,}}, {0x8447,2,{0xC8,0x7C,0x00,0x00,}}, {0x8448,2,{0xC8,0x7D,0x00,0x00,}}, {0x8449,2,{0xC8,0x7E,0x00,0x00,}}, {0x844A,2,{0xC8,0x80,0x00,0x00,}}, {0x844B,2,{0xC8,0x81,0x00,0x00,}}, {0x844C,2,{0xC8,0x82,0x00,0x00,}}, {0x844D,2,{0xC8,0x83,0x00,0x00,}}, {0x844E,2,{0xC8,0x84,0x00,0x00,}}, {0x844F,2,{0xC8,0x85,0x00,0x00,}}, {0x8450,2,{0xC8,0x86,0x00,0x00,}}, {0x8451,2,{0xDD,0xD7,0x00,0x00,}}, {0x8452,2,{0xC8,0x87,0x00,0x00,}}, {0x8453,2,{0xC8,0x88,0x00,0x00,}}, {0x8454,2,{0xC8,0x89,0x00,0x00,}}, {0x8455,2,{0xC8,0x8A,0x00,0x00,}}, {0x8456,2,{0xC8,0x8B,0x00,0x00,}}, {0x8457,2,{0xD6,0xF8,0x00,0x00,}}, {0x8458,2,{0xC8,0x8C,0x00,0x00,}}, {0x8459,2,{0xDD,0xD9,0x00,0x00,}}, {0x845A,2,{0xDD,0xD8,0x00,0x00,}}, {0x845B,2,{0xB8,0xF0,0x00,0x00,}}, {0x845C,2,{0xDD,0xD6,0x00,0x00,}}, {0x845D,2,{0xC8,0x8D,0x00,0x00,}}, {0x845E,2,{0xC8,0x8E,0x00,0x00,}}, {0x845F,2,{0xC8,0x8F,0x00,0x00,}}, {0x8460,2,{0xC8,0x90,0x00,0x00,}}, {0x8461,2,{0xC6,0xCF,0x00,0x00,}}, {0x8462,2,{0xC8,0x91,0x00,0x00,}}, {0x8463,2,{0xB6,0xAD,0x00,0x00,}}, {0x8464,2,{0xC8,0x92,0x00,0x00,}}, {0x8465,2,{0xC8,0x93,0x00,0x00,}}, {0x8466,2,{0xC8,0x94,0x00,0x00,}}, {0x8467,2,{0xC8,0x95,0x00,0x00,}}, {0x8468,2,{0xC8,0x96,0x00,0x00,}}, {0x8469,2,{0xDD,0xE2,0x00,0x00,}}, {0x846A,2,{0xC8,0x97,0x00,0x00,}}, {0x846B,2,{0xBA,0xF9,0x00,0x00,}}, {0x846C,2,{0xD4,0xE1,0x00,0x00,}}, {0x846D,2,{0xDD,0xE7,0x00,0x00,}}, {0x846E,2,{0xC8,0x98,0x00,0x00,}}, {0x846F,2,{0xC8,0x99,0x00,0x00,}}, {0x8470,2,{0xC8,0x9A,0x00,0x00,}}, {0x8471,2,{0xB4,0xD0,0x00,0x00,}}, {0x8472,2,{0xC8,0x9B,0x00,0x00,}}, {0x8473,2,{0xDD,0xDA,0x00,0x00,}}, {0x8474,2,{0xC8,0x9C,0x00,0x00,}}, {0x8475,2,{0xBF,0xFB,0x00,0x00,}}, {0x8476,2,{0xDD,0xE3,0x00,0x00,}}, {0x8477,2,{0xC8,0x9D,0x00,0x00,}}, {0x8478,2,{0xDD,0xDF,0x00,0x00,}}, {0x8479,2,{0xC8,0x9E,0x00,0x00,}}, {0x847A,2,{0xDD,0xDD,0x00,0x00,}}, {0x847B,2,{0xC8,0x9F,0x00,0x00,}}, {0x847C,2,{0xC8,0xA0,0x00,0x00,}}, {0x847D,2,{0xC9,0x40,0x00,0x00,}}, {0x847E,2,{0xC9,0x41,0x00,0x00,}}, {0x847F,2,{0xC9,0x42,0x00,0x00,}}, {0x8480,2,{0xC9,0x43,0x00,0x00,}}, {0x8481,2,{0xC9,0x44,0x00,0x00,}}, {0x8482,2,{0xB5,0xD9,0x00,0x00,}}, {0x8483,2,{0xC9,0x45,0x00,0x00,}}, {0x8484,2,{0xC9,0x46,0x00,0x00,}}, {0x8485,2,{0xC9,0x47,0x00,0x00,}}, {0x8486,2,{0xC9,0x48,0x00,0x00,}}, {0x8487,2,{0xDD,0xDB,0x00,0x00,}}, {0x8488,2,{0xDD,0xDC,0x00,0x00,}}, {0x8489,2,{0xDD,0xDE,0x00,0x00,}}, {0x848A,2,{0xC9,0x49,0x00,0x00,}}, {0x848B,2,{0xBD,0xAF,0x00,0x00,}}, {0x848C,2,{0xDD,0xE4,0x00,0x00,}}, {0x848D,2,{0xC9,0x4A,0x00,0x00,}}, {0x848E,2,{0xDD,0xE5,0x00,0x00,}}, {0x848F,2,{0xC9,0x4B,0x00,0x00,}}, {0x8490,2,{0xC9,0x4C,0x00,0x00,}}, {0x8491,2,{0xC9,0x4D,0x00,0x00,}}, {0x8492,2,{0xC9,0x4E,0x00,0x00,}}, {0x8493,2,{0xC9,0x4F,0x00,0x00,}}, {0x8494,2,{0xC9,0x50,0x00,0x00,}}, {0x8495,2,{0xC9,0x51,0x00,0x00,}}, {0x8496,2,{0xC9,0x52,0x00,0x00,}}, {0x8497,2,{0xDD,0xF5,0x00,0x00,}}, {0x8498,2,{0xC9,0x53,0x00,0x00,}}, {0x8499,2,{0xC3,0xC9,0x00,0x00,}}, {0x849A,2,{0xC9,0x54,0x00,0x00,}}, {0x849B,2,{0xC9,0x55,0x00,0x00,}}, {0x849C,2,{0xCB,0xE2,0x00,0x00,}}, {0x849D,2,{0xC9,0x56,0x00,0x00,}}, {0x849E,2,{0xC9,0x57,0x00,0x00,}}, {0x849F,2,{0xC9,0x58,0x00,0x00,}}, {0x84A0,2,{0xC9,0x59,0x00,0x00,}}, {0x84A1,2,{0xDD,0xF2,0x00,0x00,}}, {0x84A2,2,{0xC9,0x5A,0x00,0x00,}}, {0x84A3,2,{0xC9,0x5B,0x00,0x00,}}, {0x84A4,2,{0xC9,0x5C,0x00,0x00,}}, {0x84A5,2,{0xC9,0x5D,0x00,0x00,}}, {0x84A6,2,{0xC9,0x5E,0x00,0x00,}}, {0x84A7,2,{0xC9,0x5F,0x00,0x00,}}, {0x84A8,2,{0xC9,0x60,0x00,0x00,}}, {0x84A9,2,{0xC9,0x61,0x00,0x00,}}, {0x84AA,2,{0xC9,0x62,0x00,0x00,}}, {0x84AB,2,{0xC9,0x63,0x00,0x00,}}, {0x84AC,2,{0xC9,0x64,0x00,0x00,}}, {0x84AD,2,{0xC9,0x65,0x00,0x00,}}, {0x84AE,2,{0xC9,0x66,0x00,0x00,}}, {0x84AF,2,{0xD8,0xE1,0x00,0x00,}}, {0x84B0,2,{0xC9,0x67,0x00,0x00,}}, {0x84B1,2,{0xC9,0x68,0x00,0x00,}}, {0x84B2,2,{0xC6,0xD1,0x00,0x00,}}, {0x84B3,2,{0xC9,0x69,0x00,0x00,}}, {0x84B4,2,{0xDD,0xF4,0x00,0x00,}}, {0x84B5,2,{0xC9,0x6A,0x00,0x00,}}, {0x84B6,2,{0xC9,0x6B,0x00,0x00,}}, {0x84B7,2,{0xC9,0x6C,0x00,0x00,}}, {0x84B8,2,{0xD5,0xF4,0x00,0x00,}}, {0x84B9,2,{0xDD,0xF3,0x00,0x00,}}, {0x84BA,2,{0xDD,0xF0,0x00,0x00,}}, {0x84BB,2,{0xC9,0x6D,0x00,0x00,}}, {0x84BC,2,{0xC9,0x6E,0x00,0x00,}}, {0x84BD,2,{0xDD,0xEC,0x00,0x00,}}, {0x84BE,2,{0xC9,0x6F,0x00,0x00,}}, {0x84BF,2,{0xDD,0xEF,0x00,0x00,}}, {0x84C0,2,{0xC9,0x70,0x00,0x00,}}, {0x84C1,2,{0xDD,0xE8,0x00,0x00,}}, {0x84C2,2,{0xC9,0x71,0x00,0x00,}}, {0x84C3,2,{0xC9,0x72,0x00,0x00,}}, {0x84C4,2,{0xD0,0xEE,0x00,0x00,}}, {0x84C5,2,{0xC9,0x73,0x00,0x00,}}, {0x84C6,2,{0xC9,0x74,0x00,0x00,}}, {0x84C7,2,{0xC9,0x75,0x00,0x00,}}, {0x84C8,2,{0xC9,0x76,0x00,0x00,}}, {0x84C9,2,{0xC8,0xD8,0x00,0x00,}}, {0x84CA,2,{0xDD,0xEE,0x00,0x00,}}, {0x84CB,2,{0xC9,0x77,0x00,0x00,}}, {0x84CC,2,{0xC9,0x78,0x00,0x00,}}, {0x84CD,2,{0xDD,0xE9,0x00,0x00,}}, {0x84CE,2,{0xC9,0x79,0x00,0x00,}}, {0x84CF,2,{0xC9,0x7A,0x00,0x00,}}, {0x84D0,2,{0xDD,0xEA,0x00,0x00,}}, {0x84D1,2,{0xCB,0xF2,0x00,0x00,}}, {0x84D2,2,{0xC9,0x7B,0x00,0x00,}}, {0x84D3,2,{0xDD,0xED,0x00,0x00,}}, {0x84D4,2,{0xC9,0x7C,0x00,0x00,}}, {0x84D5,2,{0xC9,0x7D,0x00,0x00,}}, {0x84D6,2,{0xB1,0xCD,0x00,0x00,}}, {0x84D7,2,{0xC9,0x7E,0x00,0x00,}}, {0x84D8,2,{0xC9,0x80,0x00,0x00,}}, {0x84D9,2,{0xC9,0x81,0x00,0x00,}}, {0x84DA,2,{0xC9,0x82,0x00,0x00,}}, {0x84DB,2,{0xC9,0x83,0x00,0x00,}}, {0x84DC,2,{0xC9,0x84,0x00,0x00,}}, {0x84DD,2,{0xC0,0xB6,0x00,0x00,}}, {0x84DE,2,{0xC9,0x85,0x00,0x00,}}, {0x84DF,2,{0xBC,0xBB,0x00,0x00,}}, {0x84E0,2,{0xDD,0xF1,0x00,0x00,}}, {0x84E1,2,{0xC9,0x86,0x00,0x00,}}, {0x84E2,2,{0xC9,0x87,0x00,0x00,}}, {0x84E3,2,{0xDD,0xF7,0x00,0x00,}}, {0x84E4,2,{0xC9,0x88,0x00,0x00,}}, {0x84E5,2,{0xDD,0xF6,0x00,0x00,}}, {0x84E6,2,{0xDD,0xEB,0x00,0x00,}}, {0x84E7,2,{0xC9,0x89,0x00,0x00,}}, {0x84E8,2,{0xC9,0x8A,0x00,0x00,}}, {0x84E9,2,{0xC9,0x8B,0x00,0x00,}}, {0x84EA,2,{0xC9,0x8C,0x00,0x00,}}, {0x84EB,2,{0xC9,0x8D,0x00,0x00,}}, {0x84EC,2,{0xC5,0xEE,0x00,0x00,}}, {0x84ED,2,{0xC9,0x8E,0x00,0x00,}}, {0x84EE,2,{0xC9,0x8F,0x00,0x00,}}, {0x84EF,2,{0xC9,0x90,0x00,0x00,}}, {0x84F0,2,{0xDD,0xFB,0x00,0x00,}}, {0x84F1,2,{0xC9,0x91,0x00,0x00,}}, {0x84F2,2,{0xC9,0x92,0x00,0x00,}}, {0x84F3,2,{0xC9,0x93,0x00,0x00,}}, {0x84F4,2,{0xC9,0x94,0x00,0x00,}}, {0x84F5,2,{0xC9,0x95,0x00,0x00,}}, {0x84F6,2,{0xC9,0x96,0x00,0x00,}}, {0x84F7,2,{0xC9,0x97,0x00,0x00,}}, {0x84F8,2,{0xC9,0x98,0x00,0x00,}}, {0x84F9,2,{0xC9,0x99,0x00,0x00,}}, {0x84FA,2,{0xC9,0x9A,0x00,0x00,}}, {0x84FB,2,{0xC9,0x9B,0x00,0x00,}}, {0x84FC,2,{0xDE,0xA4,0x00,0x00,}}, {0x84FD,2,{0xC9,0x9C,0x00,0x00,}}, {0x84FE,2,{0xC9,0x9D,0x00,0x00,}}, {0x84FF,2,{0xDE,0xA3,0x00,0x00,}}, {0x8500,2,{0xC9,0x9E,0x00,0x00,}}, {0x8501,2,{0xC9,0x9F,0x00,0x00,}}, {0x8502,2,{0xC9,0xA0,0x00,0x00,}}, {0x8503,2,{0xCA,0x40,0x00,0x00,}}, {0x8504,2,{0xCA,0x41,0x00,0x00,}}, {0x8505,2,{0xCA,0x42,0x00,0x00,}}, {0x8506,2,{0xCA,0x43,0x00,0x00,}}, {0x8507,2,{0xCA,0x44,0x00,0x00,}}, {0x8508,2,{0xCA,0x45,0x00,0x00,}}, {0x8509,2,{0xCA,0x46,0x00,0x00,}}, {0x850A,2,{0xCA,0x47,0x00,0x00,}}, {0x850B,2,{0xCA,0x48,0x00,0x00,}}, {0x850C,2,{0xDD,0xF8,0x00,0x00,}}, {0x850D,2,{0xCA,0x49,0x00,0x00,}}, {0x850E,2,{0xCA,0x4A,0x00,0x00,}}, {0x850F,2,{0xCA,0x4B,0x00,0x00,}}, {0x8510,2,{0xCA,0x4C,0x00,0x00,}}, {0x8511,2,{0xC3,0xEF,0x00,0x00,}}, {0x8512,2,{0xCA,0x4D,0x00,0x00,}}, {0x8513,2,{0xC2,0xFB,0x00,0x00,}}, {0x8514,2,{0xCA,0x4E,0x00,0x00,}}, {0x8515,2,{0xCA,0x4F,0x00,0x00,}}, {0x8516,2,{0xCA,0x50,0x00,0x00,}}, {0x8517,2,{0xD5,0xE1,0x00,0x00,}}, {0x8518,2,{0xCA,0x51,0x00,0x00,}}, {0x8519,2,{0xCA,0x52,0x00,0x00,}}, {0x851A,2,{0xCE,0xB5,0x00,0x00,}}, {0x851B,2,{0xCA,0x53,0x00,0x00,}}, {0x851C,2,{0xCA,0x54,0x00,0x00,}}, {0x851D,2,{0xCA,0x55,0x00,0x00,}}, {0x851E,2,{0xCA,0x56,0x00,0x00,}}, {0x851F,2,{0xDD,0xFD,0x00,0x00,}}, {0x8520,2,{0xCA,0x57,0x00,0x00,}}, {0x8521,2,{0xB2,0xCC,0x00,0x00,}}, {0x8522,2,{0xCA,0x58,0x00,0x00,}}, {0x8523,2,{0xCA,0x59,0x00,0x00,}}, {0x8524,2,{0xCA,0x5A,0x00,0x00,}}, {0x8525,2,{0xCA,0x5B,0x00,0x00,}}, {0x8526,2,{0xCA,0x5C,0x00,0x00,}}, {0x8527,2,{0xCA,0x5D,0x00,0x00,}}, {0x8528,2,{0xCA,0x5E,0x00,0x00,}}, {0x8529,2,{0xCA,0x5F,0x00,0x00,}}, {0x852A,2,{0xCA,0x60,0x00,0x00,}}, {0x852B,2,{0xC4,0xE8,0x00,0x00,}}, {0x852C,2,{0xCA,0xDF,0x00,0x00,}}, {0x852D,2,{0xCA,0x61,0x00,0x00,}}, {0x852E,2,{0xCA,0x62,0x00,0x00,}}, {0x852F,2,{0xCA,0x63,0x00,0x00,}}, {0x8530,2,{0xCA,0x64,0x00,0x00,}}, {0x8531,2,{0xCA,0x65,0x00,0x00,}}, {0x8532,2,{0xCA,0x66,0x00,0x00,}}, {0x8533,2,{0xCA,0x67,0x00,0x00,}}, {0x8534,2,{0xCA,0x68,0x00,0x00,}}, {0x8535,2,{0xCA,0x69,0x00,0x00,}}, {0x8536,2,{0xCA,0x6A,0x00,0x00,}}, {0x8537,2,{0xC7,0xBE,0x00,0x00,}}, {0x8538,2,{0xDD,0xFA,0x00,0x00,}}, {0x8539,2,{0xDD,0xFC,0x00,0x00,}}, {0x853A,2,{0xDD,0xFE,0x00,0x00,}}, {0x853B,2,{0xDE,0xA2,0x00,0x00,}}, {0x853C,2,{0xB0,0xAA,0x00,0x00,}}, {0x853D,2,{0xB1,0xCE,0x00,0x00,}}, {0x853E,2,{0xCA,0x6B,0x00,0x00,}}, {0x853F,2,{0xCA,0x6C,0x00,0x00,}}, {0x8540,2,{0xCA,0x6D,0x00,0x00,}}, {0x8541,2,{0xCA,0x6E,0x00,0x00,}}, {0x8542,2,{0xCA,0x6F,0x00,0x00,}}, {0x8543,2,{0xDE,0xAC,0x00,0x00,}}, {0x8544,2,{0xCA,0x70,0x00,0x00,}}, {0x8545,2,{0xCA,0x71,0x00,0x00,}}, {0x8546,2,{0xCA,0x72,0x00,0x00,}}, {0x8547,2,{0xCA,0x73,0x00,0x00,}}, {0x8548,2,{0xDE,0xA6,0x00,0x00,}}, {0x8549,2,{0xBD,0xB6,0x00,0x00,}}, {0x854A,2,{0xC8,0xEF,0x00,0x00,}}, {0x854B,2,{0xCA,0x74,0x00,0x00,}}, {0x854C,2,{0xCA,0x75,0x00,0x00,}}, {0x854D,2,{0xCA,0x76,0x00,0x00,}}, {0x854E,2,{0xCA,0x77,0x00,0x00,}}, {0x854F,2,{0xCA,0x78,0x00,0x00,}}, {0x8550,2,{0xCA,0x79,0x00,0x00,}}, {0x8551,2,{0xCA,0x7A,0x00,0x00,}}, {0x8552,2,{0xCA,0x7B,0x00,0x00,}}, {0x8553,2,{0xCA,0x7C,0x00,0x00,}}, {0x8554,2,{0xCA,0x7D,0x00,0x00,}}, {0x8555,2,{0xCA,0x7E,0x00,0x00,}}, {0x8556,2,{0xDE,0xA1,0x00,0x00,}}, {0x8557,2,{0xCA,0x80,0x00,0x00,}}, {0x8558,2,{0xCA,0x81,0x00,0x00,}}, {0x8559,2,{0xDE,0xA5,0x00,0x00,}}, {0x855A,2,{0xCA,0x82,0x00,0x00,}}, {0x855B,2,{0xCA,0x83,0x00,0x00,}}, {0x855C,2,{0xCA,0x84,0x00,0x00,}}, {0x855D,2,{0xCA,0x85,0x00,0x00,}}, {0x855E,2,{0xDE,0xA9,0x00,0x00,}}, {0x855F,2,{0xCA,0x86,0x00,0x00,}}, {0x8560,2,{0xCA,0x87,0x00,0x00,}}, {0x8561,2,{0xCA,0x88,0x00,0x00,}}, {0x8562,2,{0xCA,0x89,0x00,0x00,}}, {0x8563,2,{0xCA,0x8A,0x00,0x00,}}, {0x8564,2,{0xDE,0xA8,0x00,0x00,}}, {0x8565,2,{0xCA,0x8B,0x00,0x00,}}, {0x8566,2,{0xCA,0x8C,0x00,0x00,}}, {0x8567,2,{0xCA,0x8D,0x00,0x00,}}, {0x8568,2,{0xDE,0xA7,0x00,0x00,}}, {0x8569,2,{0xCA,0x8E,0x00,0x00,}}, {0x856A,2,{0xCA,0x8F,0x00,0x00,}}, {0x856B,2,{0xCA,0x90,0x00,0x00,}}, {0x856C,2,{0xCA,0x91,0x00,0x00,}}, {0x856D,2,{0xCA,0x92,0x00,0x00,}}, {0x856E,2,{0xCA,0x93,0x00,0x00,}}, {0x856F,2,{0xCA,0x94,0x00,0x00,}}, {0x8570,2,{0xCA,0x95,0x00,0x00,}}, {0x8571,2,{0xCA,0x96,0x00,0x00,}}, {0x8572,2,{0xDE,0xAD,0x00,0x00,}}, {0x8573,2,{0xCA,0x97,0x00,0x00,}}, {0x8574,2,{0xD4,0xCC,0x00,0x00,}}, {0x8575,2,{0xCA,0x98,0x00,0x00,}}, {0x8576,2,{0xCA,0x99,0x00,0x00,}}, {0x8577,2,{0xCA,0x9A,0x00,0x00,}}, {0x8578,2,{0xCA,0x9B,0x00,0x00,}}, {0x8579,2,{0xDE,0xB3,0x00,0x00,}}, {0x857A,2,{0xDE,0xAA,0x00,0x00,}}, {0x857B,2,{0xDE,0xAE,0x00,0x00,}}, {0x857C,2,{0xCA,0x9C,0x00,0x00,}}, {0x857D,2,{0xCA,0x9D,0x00,0x00,}}, {0x857E,2,{0xC0,0xD9,0x00,0x00,}}, {0x857F,2,{0xCA,0x9E,0x00,0x00,}}, {0x8580,2,{0xCA,0x9F,0x00,0x00,}}, {0x8581,2,{0xCA,0xA0,0x00,0x00,}}, {0x8582,2,{0xCB,0x40,0x00,0x00,}}, {0x8583,2,{0xCB,0x41,0x00,0x00,}}, {0x8584,2,{0xB1,0xA1,0x00,0x00,}}, {0x8585,2,{0xDE,0xB6,0x00,0x00,}}, {0x8586,2,{0xCB,0x42,0x00,0x00,}}, {0x8587,2,{0xDE,0xB1,0x00,0x00,}}, {0x8588,2,{0xCB,0x43,0x00,0x00,}}, {0x8589,2,{0xCB,0x44,0x00,0x00,}}, {0x858A,2,{0xCB,0x45,0x00,0x00,}}, {0x858B,2,{0xCB,0x46,0x00,0x00,}}, {0x858C,2,{0xCB,0x47,0x00,0x00,}}, {0x858D,2,{0xCB,0x48,0x00,0x00,}}, {0x858E,2,{0xCB,0x49,0x00,0x00,}}, {0x858F,2,{0xDE,0xB2,0x00,0x00,}}, {0x8590,2,{0xCB,0x4A,0x00,0x00,}}, {0x8591,2,{0xCB,0x4B,0x00,0x00,}}, {0x8592,2,{0xCB,0x4C,0x00,0x00,}}, {0x8593,2,{0xCB,0x4D,0x00,0x00,}}, {0x8594,2,{0xCB,0x4E,0x00,0x00,}}, {0x8595,2,{0xCB,0x4F,0x00,0x00,}}, {0x8596,2,{0xCB,0x50,0x00,0x00,}}, {0x8597,2,{0xCB,0x51,0x00,0x00,}}, {0x8598,2,{0xCB,0x52,0x00,0x00,}}, {0x8599,2,{0xCB,0x53,0x00,0x00,}}, {0x859A,2,{0xCB,0x54,0x00,0x00,}}, {0x859B,2,{0xD1,0xA6,0x00,0x00,}}, {0x859C,2,{0xDE,0xB5,0x00,0x00,}}, {0x859D,2,{0xCB,0x55,0x00,0x00,}}, {0x859E,2,{0xCB,0x56,0x00,0x00,}}, {0x859F,2,{0xCB,0x57,0x00,0x00,}}, {0x85A0,2,{0xCB,0x58,0x00,0x00,}}, {0x85A1,2,{0xCB,0x59,0x00,0x00,}}, {0x85A2,2,{0xCB,0x5A,0x00,0x00,}}, {0x85A3,2,{0xCB,0x5B,0x00,0x00,}}, {0x85A4,2,{0xDE,0xAF,0x00,0x00,}}, {0x85A5,2,{0xCB,0x5C,0x00,0x00,}}, {0x85A6,2,{0xCB,0x5D,0x00,0x00,}}, {0x85A7,2,{0xCB,0x5E,0x00,0x00,}}, {0x85A8,2,{0xDE,0xB0,0x00,0x00,}}, {0x85A9,2,{0xCB,0x5F,0x00,0x00,}}, {0x85AA,2,{0xD0,0xBD,0x00,0x00,}}, {0x85AB,2,{0xCB,0x60,0x00,0x00,}}, {0x85AC,2,{0xCB,0x61,0x00,0x00,}}, {0x85AD,2,{0xCB,0x62,0x00,0x00,}}, {0x85AE,2,{0xDE,0xB4,0x00,0x00,}}, {0x85AF,2,{0xCA,0xED,0x00,0x00,}}, {0x85B0,2,{0xDE,0xB9,0x00,0x00,}}, {0x85B1,2,{0xCB,0x63,0x00,0x00,}}, {0x85B2,2,{0xCB,0x64,0x00,0x00,}}, {0x85B3,2,{0xCB,0x65,0x00,0x00,}}, {0x85B4,2,{0xCB,0x66,0x00,0x00,}}, {0x85B5,2,{0xCB,0x67,0x00,0x00,}}, {0x85B6,2,{0xCB,0x68,0x00,0x00,}}, {0x85B7,2,{0xDE,0xB8,0x00,0x00,}}, {0x85B8,2,{0xCB,0x69,0x00,0x00,}}, {0x85B9,2,{0xDE,0xB7,0x00,0x00,}}, {0x85BA,2,{0xCB,0x6A,0x00,0x00,}}, {0x85BB,2,{0xCB,0x6B,0x00,0x00,}}, {0x85BC,2,{0xCB,0x6C,0x00,0x00,}}, {0x85BD,2,{0xCB,0x6D,0x00,0x00,}}, {0x85BE,2,{0xCB,0x6E,0x00,0x00,}}, {0x85BF,2,{0xCB,0x6F,0x00,0x00,}}, {0x85C0,2,{0xCB,0x70,0x00,0x00,}}, {0x85C1,2,{0xDE,0xBB,0x00,0x00,}}, {0x85C2,2,{0xCB,0x71,0x00,0x00,}}, {0x85C3,2,{0xCB,0x72,0x00,0x00,}}, {0x85C4,2,{0xCB,0x73,0x00,0x00,}}, {0x85C5,2,{0xCB,0x74,0x00,0x00,}}, {0x85C6,2,{0xCB,0x75,0x00,0x00,}}, {0x85C7,2,{0xCB,0x76,0x00,0x00,}}, {0x85C8,2,{0xCB,0x77,0x00,0x00,}}, {0x85C9,2,{0xBD,0xE5,0x00,0x00,}}, {0x85CA,2,{0xCB,0x78,0x00,0x00,}}, {0x85CB,2,{0xCB,0x79,0x00,0x00,}}, {0x85CC,2,{0xCB,0x7A,0x00,0x00,}}, {0x85CD,2,{0xCB,0x7B,0x00,0x00,}}, {0x85CE,2,{0xCB,0x7C,0x00,0x00,}}, {0x85CF,2,{0xB2,0xD8,0x00,0x00,}}, {0x85D0,2,{0xC3,0xEA,0x00,0x00,}}, {0x85D1,2,{0xCB,0x7D,0x00,0x00,}}, {0x85D2,2,{0xCB,0x7E,0x00,0x00,}}, {0x85D3,2,{0xDE,0xBA,0x00,0x00,}}, {0x85D4,2,{0xCB,0x80,0x00,0x00,}}, {0x85D5,2,{0xC5,0xBA,0x00,0x00,}}, {0x85D6,2,{0xCB,0x81,0x00,0x00,}}, {0x85D7,2,{0xCB,0x82,0x00,0x00,}}, {0x85D8,2,{0xCB,0x83,0x00,0x00,}}, {0x85D9,2,{0xCB,0x84,0x00,0x00,}}, {0x85DA,2,{0xCB,0x85,0x00,0x00,}}, {0x85DB,2,{0xCB,0x86,0x00,0x00,}}, {0x85DC,2,{0xDE,0xBC,0x00,0x00,}}, {0x85DD,2,{0xCB,0x87,0x00,0x00,}}, {0x85DE,2,{0xCB,0x88,0x00,0x00,}}, {0x85DF,2,{0xCB,0x89,0x00,0x00,}}, {0x85E0,2,{0xCB,0x8A,0x00,0x00,}}, {0x85E1,2,{0xCB,0x8B,0x00,0x00,}}, {0x85E2,2,{0xCB,0x8C,0x00,0x00,}}, {0x85E3,2,{0xCB,0x8D,0x00,0x00,}}, {0x85E4,2,{0xCC,0xD9,0x00,0x00,}}, {0x85E5,2,{0xCB,0x8E,0x00,0x00,}}, {0x85E6,2,{0xCB,0x8F,0x00,0x00,}}, {0x85E7,2,{0xCB,0x90,0x00,0x00,}}, {0x85E8,2,{0xCB,0x91,0x00,0x00,}}, {0x85E9,2,{0xB7,0xAA,0x00,0x00,}}, {0x85EA,2,{0xCB,0x92,0x00,0x00,}}, {0x85EB,2,{0xCB,0x93,0x00,0x00,}}, {0x85EC,2,{0xCB,0x94,0x00,0x00,}}, {0x85ED,2,{0xCB,0x95,0x00,0x00,}}, {0x85EE,2,{0xCB,0x96,0x00,0x00,}}, {0x85EF,2,{0xCB,0x97,0x00,0x00,}}, {0x85F0,2,{0xCB,0x98,0x00,0x00,}}, {0x85F1,2,{0xCB,0x99,0x00,0x00,}}, {0x85F2,2,{0xCB,0x9A,0x00,0x00,}}, {0x85F3,2,{0xCB,0x9B,0x00,0x00,}}, {0x85F4,2,{0xCB,0x9C,0x00,0x00,}}, {0x85F5,2,{0xCB,0x9D,0x00,0x00,}}, {0x85F6,2,{0xCB,0x9E,0x00,0x00,}}, {0x85F7,2,{0xCB,0x9F,0x00,0x00,}}, {0x85F8,2,{0xCB,0xA0,0x00,0x00,}}, {0x85F9,2,{0xCC,0x40,0x00,0x00,}}, {0x85FA,2,{0xCC,0x41,0x00,0x00,}}, {0x85FB,2,{0xD4,0xE5,0x00,0x00,}}, {0x85FC,2,{0xCC,0x42,0x00,0x00,}}, {0x85FD,2,{0xCC,0x43,0x00,0x00,}}, {0x85FE,2,{0xCC,0x44,0x00,0x00,}}, {0x85FF,2,{0xDE,0xBD,0x00,0x00,}}, {0x8600,2,{0xCC,0x45,0x00,0x00,}}, {0x8601,2,{0xCC,0x46,0x00,0x00,}}, {0x8602,2,{0xCC,0x47,0x00,0x00,}}, {0x8603,2,{0xCC,0x48,0x00,0x00,}}, {0x8604,2,{0xCC,0x49,0x00,0x00,}}, {0x8605,2,{0xDE,0xBF,0x00,0x00,}}, {0x8606,2,{0xCC,0x4A,0x00,0x00,}}, {0x8607,2,{0xCC,0x4B,0x00,0x00,}}, {0x8608,2,{0xCC,0x4C,0x00,0x00,}}, {0x8609,2,{0xCC,0x4D,0x00,0x00,}}, {0x860A,2,{0xCC,0x4E,0x00,0x00,}}, {0x860B,2,{0xCC,0x4F,0x00,0x00,}}, {0x860C,2,{0xCC,0x50,0x00,0x00,}}, {0x860D,2,{0xCC,0x51,0x00,0x00,}}, {0x860E,2,{0xCC,0x52,0x00,0x00,}}, {0x860F,2,{0xCC,0x53,0x00,0x00,}}, {0x8610,2,{0xCC,0x54,0x00,0x00,}}, {0x8611,2,{0xC4,0xA2,0x00,0x00,}}, {0x8612,2,{0xCC,0x55,0x00,0x00,}}, {0x8613,2,{0xCC,0x56,0x00,0x00,}}, {0x8614,2,{0xCC,0x57,0x00,0x00,}}, {0x8615,2,{0xCC,0x58,0x00,0x00,}}, {0x8616,2,{0xDE,0xC1,0x00,0x00,}}, {0x8617,2,{0xCC,0x59,0x00,0x00,}}, {0x8618,2,{0xCC,0x5A,0x00,0x00,}}, {0x8619,2,{0xCC,0x5B,0x00,0x00,}}, {0x861A,2,{0xCC,0x5C,0x00,0x00,}}, {0x861B,2,{0xCC,0x5D,0x00,0x00,}}, {0x861C,2,{0xCC,0x5E,0x00,0x00,}}, {0x861D,2,{0xCC,0x5F,0x00,0x00,}}, {0x861E,2,{0xCC,0x60,0x00,0x00,}}, {0x861F,2,{0xCC,0x61,0x00,0x00,}}, {0x8620,2,{0xCC,0x62,0x00,0x00,}}, {0x8621,2,{0xCC,0x63,0x00,0x00,}}, {0x8622,2,{0xCC,0x64,0x00,0x00,}}, {0x8623,2,{0xCC,0x65,0x00,0x00,}}, {0x8624,2,{0xCC,0x66,0x00,0x00,}}, {0x8625,2,{0xCC,0x67,0x00,0x00,}}, {0x8626,2,{0xCC,0x68,0x00,0x00,}}, {0x8627,2,{0xDE,0xBE,0x00,0x00,}}, {0x8628,2,{0xCC,0x69,0x00,0x00,}}, {0x8629,2,{0xDE,0xC0,0x00,0x00,}}, {0x862A,2,{0xCC,0x6A,0x00,0x00,}}, {0x862B,2,{0xCC,0x6B,0x00,0x00,}}, {0x862C,2,{0xCC,0x6C,0x00,0x00,}}, {0x862D,2,{0xCC,0x6D,0x00,0x00,}}, {0x862E,2,{0xCC,0x6E,0x00,0x00,}}, {0x862F,2,{0xCC,0x6F,0x00,0x00,}}, {0x8630,2,{0xCC,0x70,0x00,0x00,}}, {0x8631,2,{0xCC,0x71,0x00,0x00,}}, {0x8632,2,{0xCC,0x72,0x00,0x00,}}, {0x8633,2,{0xCC,0x73,0x00,0x00,}}, {0x8634,2,{0xCC,0x74,0x00,0x00,}}, {0x8635,2,{0xCC,0x75,0x00,0x00,}}, {0x8636,2,{0xCC,0x76,0x00,0x00,}}, {0x8637,2,{0xCC,0x77,0x00,0x00,}}, {0x8638,2,{0xD5,0xBA,0x00,0x00,}}, {0x8639,2,{0xCC,0x78,0x00,0x00,}}, {0x863A,2,{0xCC,0x79,0x00,0x00,}}, {0x863B,2,{0xCC,0x7A,0x00,0x00,}}, {0x863C,2,{0xDE,0xC2,0x00,0x00,}}, {0x863D,2,{0xCC,0x7B,0x00,0x00,}}, {0x863E,2,{0xCC,0x7C,0x00,0x00,}}, {0x863F,2,{0xCC,0x7D,0x00,0x00,}}, {0x8640,2,{0xCC,0x7E,0x00,0x00,}}, {0x8641,2,{0xCC,0x80,0x00,0x00,}}, {0x8642,2,{0xCC,0x81,0x00,0x00,}}, {0x8643,2,{0xCC,0x82,0x00,0x00,}}, {0x8644,2,{0xCC,0x83,0x00,0x00,}}, {0x8645,2,{0xCC,0x84,0x00,0x00,}}, {0x8646,2,{0xCC,0x85,0x00,0x00,}}, {0x8647,2,{0xCC,0x86,0x00,0x00,}}, {0x8648,2,{0xCC,0x87,0x00,0x00,}}, {0x8649,2,{0xCC,0x88,0x00,0x00,}}, {0x864A,2,{0xCC,0x89,0x00,0x00,}}, {0x864B,2,{0xCC,0x8A,0x00,0x00,}}, {0x864C,2,{0xCC,0x8B,0x00,0x00,}}, {0x864D,2,{0xF2,0xAE,0x00,0x00,}}, {0x864E,2,{0xBB,0xA2,0x00,0x00,}}, {0x864F,2,{0xC2,0xB2,0x00,0x00,}}, {0x8650,2,{0xC5,0xB0,0x00,0x00,}}, {0x8651,2,{0xC2,0xC7,0x00,0x00,}}, {0x8652,2,{0xCC,0x8C,0x00,0x00,}}, {0x8653,2,{0xCC,0x8D,0x00,0x00,}}, {0x8654,2,{0xF2,0xAF,0x00,0x00,}}, {0x8655,2,{0xCC,0x8E,0x00,0x00,}}, {0x8656,2,{0xCC,0x8F,0x00,0x00,}}, {0x8657,2,{0xCC,0x90,0x00,0x00,}}, {0x8658,2,{0xCC,0x91,0x00,0x00,}}, {0x8659,2,{0xCC,0x92,0x00,0x00,}}, {0x865A,2,{0xD0,0xE9,0x00,0x00,}}, {0x865B,2,{0xCC,0x93,0x00,0x00,}}, {0x865C,2,{0xCC,0x94,0x00,0x00,}}, {0x865D,2,{0xCC,0x95,0x00,0x00,}}, {0x865E,2,{0xD3,0xDD,0x00,0x00,}}, {0x865F,2,{0xCC,0x96,0x00,0x00,}}, {0x8660,2,{0xCC,0x97,0x00,0x00,}}, {0x8661,2,{0xCC,0x98,0x00,0x00,}}, {0x8662,2,{0xEB,0xBD,0x00,0x00,}}, {0x8663,2,{0xCC,0x99,0x00,0x00,}}, {0x8664,2,{0xCC,0x9A,0x00,0x00,}}, {0x8665,2,{0xCC,0x9B,0x00,0x00,}}, {0x8666,2,{0xCC,0x9C,0x00,0x00,}}, {0x8667,2,{0xCC,0x9D,0x00,0x00,}}, {0x8668,2,{0xCC,0x9E,0x00,0x00,}}, {0x8669,2,{0xCC,0x9F,0x00,0x00,}}, {0x866A,2,{0xCC,0xA0,0x00,0x00,}}, {0x866B,2,{0xB3,0xE6,0x00,0x00,}}, {0x866C,2,{0xF2,0xB0,0x00,0x00,}}, {0x866D,2,{0xCD,0x40,0x00,0x00,}}, {0x866E,2,{0xF2,0xB1,0x00,0x00,}}, {0x866F,2,{0xCD,0x41,0x00,0x00,}}, {0x8670,2,{0xCD,0x42,0x00,0x00,}}, {0x8671,2,{0xCA,0xAD,0x00,0x00,}}, {0x8672,2,{0xCD,0x43,0x00,0x00,}}, {0x8673,2,{0xCD,0x44,0x00,0x00,}}, {0x8674,2,{0xCD,0x45,0x00,0x00,}}, {0x8675,2,{0xCD,0x46,0x00,0x00,}}, {0x8676,2,{0xCD,0x47,0x00,0x00,}}, {0x8677,2,{0xCD,0x48,0x00,0x00,}}, {0x8678,2,{0xCD,0x49,0x00,0x00,}}, {0x8679,2,{0xBA,0xE7,0x00,0x00,}}, {0x867A,2,{0xF2,0xB3,0x00,0x00,}}, {0x867B,2,{0xF2,0xB5,0x00,0x00,}}, {0x867C,2,{0xF2,0xB4,0x00,0x00,}}, {0x867D,2,{0xCB,0xE4,0x00,0x00,}}, {0x867E,2,{0xCF,0xBA,0x00,0x00,}}, {0x867F,2,{0xF2,0xB2,0x00,0x00,}}, {0x8680,2,{0xCA,0xB4,0x00,0x00,}}, {0x8681,2,{0xD2,0xCF,0x00,0x00,}}, {0x8682,2,{0xC2,0xEC,0x00,0x00,}}, {0x8683,2,{0xCD,0x4A,0x00,0x00,}}, {0x8684,2,{0xCD,0x4B,0x00,0x00,}}, {0x8685,2,{0xCD,0x4C,0x00,0x00,}}, {0x8686,2,{0xCD,0x4D,0x00,0x00,}}, {0x8687,2,{0xCD,0x4E,0x00,0x00,}}, {0x8688,2,{0xCD,0x4F,0x00,0x00,}}, {0x8689,2,{0xCD,0x50,0x00,0x00,}}, {0x868A,2,{0xCE,0xC3,0x00,0x00,}}, {0x868B,2,{0xF2,0xB8,0x00,0x00,}}, {0x868C,2,{0xB0,0xF6,0x00,0x00,}}, {0x868D,2,{0xF2,0xB7,0x00,0x00,}}, {0x868E,2,{0xCD,0x51,0x00,0x00,}}, {0x868F,2,{0xCD,0x52,0x00,0x00,}}, {0x8690,2,{0xCD,0x53,0x00,0x00,}}, {0x8691,2,{0xCD,0x54,0x00,0x00,}}, {0x8692,2,{0xCD,0x55,0x00,0x00,}}, {0x8693,2,{0xF2,0xBE,0x00,0x00,}}, {0x8694,2,{0xCD,0x56,0x00,0x00,}}, {0x8695,2,{0xB2,0xCF,0x00,0x00,}}, {0x8696,2,{0xCD,0x57,0x00,0x00,}}, {0x8697,2,{0xCD,0x58,0x00,0x00,}}, {0x8698,2,{0xCD,0x59,0x00,0x00,}}, {0x8699,2,{0xCD,0x5A,0x00,0x00,}}, {0x869A,2,{0xCD,0x5B,0x00,0x00,}}, {0x869B,2,{0xCD,0x5C,0x00,0x00,}}, {0x869C,2,{0xD1,0xC1,0x00,0x00,}}, {0x869D,2,{0xF2,0xBA,0x00,0x00,}}, {0x869E,2,{0xCD,0x5D,0x00,0x00,}}, {0x869F,2,{0xCD,0x5E,0x00,0x00,}}, {0x86A0,2,{0xCD,0x5F,0x00,0x00,}}, {0x86A1,2,{0xCD,0x60,0x00,0x00,}}, {0x86A2,2,{0xCD,0x61,0x00,0x00,}}, {0x86A3,2,{0xF2,0xBC,0x00,0x00,}}, {0x86A4,2,{0xD4,0xE9,0x00,0x00,}}, {0x86A5,2,{0xCD,0x62,0x00,0x00,}}, {0x86A6,2,{0xCD,0x63,0x00,0x00,}}, {0x86A7,2,{0xF2,0xBB,0x00,0x00,}}, {0x86A8,2,{0xF2,0xB6,0x00,0x00,}}, {0x86A9,2,{0xF2,0xBF,0x00,0x00,}}, {0x86AA,2,{0xF2,0xBD,0x00,0x00,}}, {0x86AB,2,{0xCD,0x64,0x00,0x00,}}, {0x86AC,2,{0xF2,0xB9,0x00,0x00,}}, {0x86AD,2,{0xCD,0x65,0x00,0x00,}}, {0x86AE,2,{0xCD,0x66,0x00,0x00,}}, {0x86AF,2,{0xF2,0xC7,0x00,0x00,}}, {0x86B0,2,{0xF2,0xC4,0x00,0x00,}}, {0x86B1,2,{0xF2,0xC6,0x00,0x00,}}, {0x86B2,2,{0xCD,0x67,0x00,0x00,}}, {0x86B3,2,{0xCD,0x68,0x00,0x00,}}, {0x86B4,2,{0xF2,0xCA,0x00,0x00,}}, {0x86B5,2,{0xF2,0xC2,0x00,0x00,}}, {0x86B6,2,{0xF2,0xC0,0x00,0x00,}}, {0x86B7,2,{0xCD,0x69,0x00,0x00,}}, {0x86B8,2,{0xCD,0x6A,0x00,0x00,}}, {0x86B9,2,{0xCD,0x6B,0x00,0x00,}}, {0x86BA,2,{0xF2,0xC5,0x00,0x00,}}, {0x86BB,2,{0xCD,0x6C,0x00,0x00,}}, {0x86BC,2,{0xCD,0x6D,0x00,0x00,}}, {0x86BD,2,{0xCD,0x6E,0x00,0x00,}}, {0x86BE,2,{0xCD,0x6F,0x00,0x00,}}, {0x86BF,2,{0xCD,0x70,0x00,0x00,}}, {0x86C0,2,{0xD6,0xFB,0x00,0x00,}}, {0x86C1,2,{0xCD,0x71,0x00,0x00,}}, {0x86C2,2,{0xCD,0x72,0x00,0x00,}}, {0x86C3,2,{0xCD,0x73,0x00,0x00,}}, {0x86C4,2,{0xF2,0xC1,0x00,0x00,}}, {0x86C5,2,{0xCD,0x74,0x00,0x00,}}, {0x86C6,2,{0xC7,0xF9,0x00,0x00,}}, {0x86C7,2,{0xC9,0xDF,0x00,0x00,}}, {0x86C8,2,{0xCD,0x75,0x00,0x00,}}, {0x86C9,2,{0xF2,0xC8,0x00,0x00,}}, {0x86CA,2,{0xB9,0xC6,0x00,0x00,}}, {0x86CB,2,{0xB5,0xB0,0x00,0x00,}}, {0x86CC,2,{0xCD,0x76,0x00,0x00,}}, {0x86CD,2,{0xCD,0x77,0x00,0x00,}}, {0x86CE,2,{0xF2,0xC3,0x00,0x00,}}, {0x86CF,2,{0xF2,0xC9,0x00,0x00,}}, {0x86D0,2,{0xF2,0xD0,0x00,0x00,}}, {0x86D1,2,{0xF2,0xD6,0x00,0x00,}}, {0x86D2,2,{0xCD,0x78,0x00,0x00,}}, {0x86D3,2,{0xCD,0x79,0x00,0x00,}}, {0x86D4,2,{0xBB,0xD7,0x00,0x00,}}, {0x86D5,2,{0xCD,0x7A,0x00,0x00,}}, {0x86D6,2,{0xCD,0x7B,0x00,0x00,}}, {0x86D7,2,{0xCD,0x7C,0x00,0x00,}}, {0x86D8,2,{0xF2,0xD5,0x00,0x00,}}, {0x86D9,2,{0xCD,0xDC,0x00,0x00,}}, {0x86DA,2,{0xCD,0x7D,0x00,0x00,}}, {0x86DB,2,{0xD6,0xEB,0x00,0x00,}}, {0x86DC,2,{0xCD,0x7E,0x00,0x00,}}, {0x86DD,2,{0xCD,0x80,0x00,0x00,}}, {0x86DE,2,{0xF2,0xD2,0x00,0x00,}}, {0x86DF,2,{0xF2,0xD4,0x00,0x00,}}, {0x86E0,2,{0xCD,0x81,0x00,0x00,}}, {0x86E1,2,{0xCD,0x82,0x00,0x00,}}, {0x86E2,2,{0xCD,0x83,0x00,0x00,}}, {0x86E3,2,{0xCD,0x84,0x00,0x00,}}, {0x86E4,2,{0xB8,0xF2,0x00,0x00,}}, {0x86E5,2,{0xCD,0x85,0x00,0x00,}}, {0x86E6,2,{0xCD,0x86,0x00,0x00,}}, {0x86E7,2,{0xCD,0x87,0x00,0x00,}}, {0x86E8,2,{0xCD,0x88,0x00,0x00,}}, {0x86E9,2,{0xF2,0xCB,0x00,0x00,}}, {0x86EA,2,{0xCD,0x89,0x00,0x00,}}, {0x86EB,2,{0xCD,0x8A,0x00,0x00,}}, {0x86EC,2,{0xCD,0x8B,0x00,0x00,}}, {0x86ED,2,{0xF2,0xCE,0x00,0x00,}}, {0x86EE,2,{0xC2,0xF9,0x00,0x00,}}, {0x86EF,2,{0xCD,0x8C,0x00,0x00,}}, {0x86F0,2,{0xD5,0xDD,0x00,0x00,}}, {0x86F1,2,{0xF2,0xCC,0x00,0x00,}}, {0x86F2,2,{0xF2,0xCD,0x00,0x00,}}, {0x86F3,2,{0xF2,0xCF,0x00,0x00,}}, {0x86F4,2,{0xF2,0xD3,0x00,0x00,}}, {0x86F5,2,{0xCD,0x8D,0x00,0x00,}}, {0x86F6,2,{0xCD,0x8E,0x00,0x00,}}, {0x86F7,2,{0xCD,0x8F,0x00,0x00,}}, {0x86F8,2,{0xF2,0xD9,0x00,0x00,}}, {0x86F9,2,{0xD3,0xBC,0x00,0x00,}}, {0x86FA,2,{0xCD,0x90,0x00,0x00,}}, {0x86FB,2,{0xCD,0x91,0x00,0x00,}}, {0x86FC,2,{0xCD,0x92,0x00,0x00,}}, {0x86FD,2,{0xCD,0x93,0x00,0x00,}}, {0x86FE,2,{0xB6,0xEA,0x00,0x00,}}, {0x86FF,2,{0xCD,0x94,0x00,0x00,}}, {0x8700,2,{0xCA,0xF1,0x00,0x00,}}, {0x8701,2,{0xCD,0x95,0x00,0x00,}}, {0x8702,2,{0xB7,0xE4,0x00,0x00,}}, {0x8703,2,{0xF2,0xD7,0x00,0x00,}}, {0x8704,2,{0xCD,0x96,0x00,0x00,}}, {0x8705,2,{0xCD,0x97,0x00,0x00,}}, {0x8706,2,{0xCD,0x98,0x00,0x00,}}, {0x8707,2,{0xF2,0xD8,0x00,0x00,}}, {0x8708,2,{0xF2,0xDA,0x00,0x00,}}, {0x8709,2,{0xF2,0xDD,0x00,0x00,}}, {0x870A,2,{0xF2,0xDB,0x00,0x00,}}, {0x870B,2,{0xCD,0x99,0x00,0x00,}}, {0x870C,2,{0xCD,0x9A,0x00,0x00,}}, {0x870D,2,{0xF2,0xDC,0x00,0x00,}}, {0x870E,2,{0xCD,0x9B,0x00,0x00,}}, {0x870F,2,{0xCD,0x9C,0x00,0x00,}}, {0x8710,2,{0xCD,0x9D,0x00,0x00,}}, {0x8711,2,{0xCD,0x9E,0x00,0x00,}}, {0x8712,2,{0xD1,0xD1,0x00,0x00,}}, {0x8713,2,{0xF2,0xD1,0x00,0x00,}}, {0x8714,2,{0xCD,0x9F,0x00,0x00,}}, {0x8715,2,{0xCD,0xC9,0x00,0x00,}}, {0x8716,2,{0xCD,0xA0,0x00,0x00,}}, {0x8717,2,{0xCE,0xCF,0x00,0x00,}}, {0x8718,2,{0xD6,0xA9,0x00,0x00,}}, {0x8719,2,{0xCE,0x40,0x00,0x00,}}, {0x871A,2,{0xF2,0xE3,0x00,0x00,}}, {0x871B,2,{0xCE,0x41,0x00,0x00,}}, {0x871C,2,{0xC3,0xDB,0x00,0x00,}}, {0x871D,2,{0xCE,0x42,0x00,0x00,}}, {0x871E,2,{0xF2,0xE0,0x00,0x00,}}, {0x871F,2,{0xCE,0x43,0x00,0x00,}}, {0x8720,2,{0xCE,0x44,0x00,0x00,}}, {0x8721,2,{0xC0,0xAF,0x00,0x00,}}, {0x8722,2,{0xF2,0xEC,0x00,0x00,}}, {0x8723,2,{0xF2,0xDE,0x00,0x00,}}, {0x8724,2,{0xCE,0x45,0x00,0x00,}}, {0x8725,2,{0xF2,0xE1,0x00,0x00,}}, {0x8726,2,{0xCE,0x46,0x00,0x00,}}, {0x8727,2,{0xCE,0x47,0x00,0x00,}}, {0x8728,2,{0xCE,0x48,0x00,0x00,}}, {0x8729,2,{0xF2,0xE8,0x00,0x00,}}, {0x872A,2,{0xCE,0x49,0x00,0x00,}}, {0x872B,2,{0xCE,0x4A,0x00,0x00,}}, {0x872C,2,{0xCE,0x4B,0x00,0x00,}}, {0x872D,2,{0xCE,0x4C,0x00,0x00,}}, {0x872E,2,{0xF2,0xE2,0x00,0x00,}}, {0x872F,2,{0xCE,0x4D,0x00,0x00,}}, {0x8730,2,{0xCE,0x4E,0x00,0x00,}}, {0x8731,2,{0xF2,0xE7,0x00,0x00,}}, {0x8732,2,{0xCE,0x4F,0x00,0x00,}}, {0x8733,2,{0xCE,0x50,0x00,0x00,}}, {0x8734,2,{0xF2,0xE6,0x00,0x00,}}, {0x8735,2,{0xCE,0x51,0x00,0x00,}}, {0x8736,2,{0xCE,0x52,0x00,0x00,}}, {0x8737,2,{0xF2,0xE9,0x00,0x00,}}, {0x8738,2,{0xCE,0x53,0x00,0x00,}}, {0x8739,2,{0xCE,0x54,0x00,0x00,}}, {0x873A,2,{0xCE,0x55,0x00,0x00,}}, {0x873B,2,{0xF2,0xDF,0x00,0x00,}}, {0x873C,2,{0xCE,0x56,0x00,0x00,}}, {0x873D,2,{0xCE,0x57,0x00,0x00,}}, {0x873E,2,{0xF2,0xE4,0x00,0x00,}}, {0x873F,2,{0xF2,0xEA,0x00,0x00,}}, {0x8740,2,{0xCE,0x58,0x00,0x00,}}, {0x8741,2,{0xCE,0x59,0x00,0x00,}}, {0x8742,2,{0xCE,0x5A,0x00,0x00,}}, {0x8743,2,{0xCE,0x5B,0x00,0x00,}}, {0x8744,2,{0xCE,0x5C,0x00,0x00,}}, {0x8745,2,{0xCE,0x5D,0x00,0x00,}}, {0x8746,2,{0xCE,0x5E,0x00,0x00,}}, {0x8747,2,{0xD3,0xAC,0x00,0x00,}}, {0x8748,2,{0xF2,0xE5,0x00,0x00,}}, {0x8749,2,{0xB2,0xF5,0x00,0x00,}}, {0x874A,2,{0xCE,0x5F,0x00,0x00,}}, {0x874B,2,{0xCE,0x60,0x00,0x00,}}, {0x874C,2,{0xF2,0xF2,0x00,0x00,}}, {0x874D,2,{0xCE,0x61,0x00,0x00,}}, {0x874E,2,{0xD0,0xAB,0x00,0x00,}}, {0x874F,2,{0xCE,0x62,0x00,0x00,}}, {0x8750,2,{0xCE,0x63,0x00,0x00,}}, {0x8751,2,{0xCE,0x64,0x00,0x00,}}, {0x8752,2,{0xCE,0x65,0x00,0x00,}}, {0x8753,2,{0xF2,0xF5,0x00,0x00,}}, {0x8754,2,{0xCE,0x66,0x00,0x00,}}, {0x8755,2,{0xCE,0x67,0x00,0x00,}}, {0x8756,2,{0xCE,0x68,0x00,0x00,}}, {0x8757,2,{0xBB,0xC8,0x00,0x00,}}, {0x8758,2,{0xCE,0x69,0x00,0x00,}}, {0x8759,2,{0xF2,0xF9,0x00,0x00,}}, {0x875A,2,{0xCE,0x6A,0x00,0x00,}}, {0x875B,2,{0xCE,0x6B,0x00,0x00,}}, {0x875C,2,{0xCE,0x6C,0x00,0x00,}}, {0x875D,2,{0xCE,0x6D,0x00,0x00,}}, {0x875E,2,{0xCE,0x6E,0x00,0x00,}}, {0x875F,2,{0xCE,0x6F,0x00,0x00,}}, {0x8760,2,{0xF2,0xF0,0x00,0x00,}}, {0x8761,2,{0xCE,0x70,0x00,0x00,}}, {0x8762,2,{0xCE,0x71,0x00,0x00,}}, {0x8763,2,{0xF2,0xF6,0x00,0x00,}}, {0x8764,2,{0xF2,0xF8,0x00,0x00,}}, {0x8765,2,{0xF2,0xFA,0x00,0x00,}}, {0x8766,2,{0xCE,0x72,0x00,0x00,}}, {0x8767,2,{0xCE,0x73,0x00,0x00,}}, {0x8768,2,{0xCE,0x74,0x00,0x00,}}, {0x8769,2,{0xCE,0x75,0x00,0x00,}}, {0x876A,2,{0xCE,0x76,0x00,0x00,}}, {0x876B,2,{0xCE,0x77,0x00,0x00,}}, {0x876C,2,{0xCE,0x78,0x00,0x00,}}, {0x876D,2,{0xCE,0x79,0x00,0x00,}}, {0x876E,2,{0xF2,0xF3,0x00,0x00,}}, {0x876F,2,{0xCE,0x7A,0x00,0x00,}}, {0x8770,2,{0xF2,0xF1,0x00,0x00,}}, {0x8771,2,{0xCE,0x7B,0x00,0x00,}}, {0x8772,2,{0xCE,0x7C,0x00,0x00,}}, {0x8773,2,{0xCE,0x7D,0x00,0x00,}}, {0x8774,2,{0xBA,0xFB,0x00,0x00,}}, {0x8775,2,{0xCE,0x7E,0x00,0x00,}}, {0x8776,2,{0xB5,0xFB,0x00,0x00,}}, {0x8777,2,{0xCE,0x80,0x00,0x00,}}, {0x8778,2,{0xCE,0x81,0x00,0x00,}}, {0x8779,2,{0xCE,0x82,0x00,0x00,}}, {0x877A,2,{0xCE,0x83,0x00,0x00,}}, {0x877B,2,{0xF2,0xEF,0x00,0x00,}}, {0x877C,2,{0xF2,0xF7,0x00,0x00,}}, {0x877D,2,{0xF2,0xED,0x00,0x00,}}, {0x877E,2,{0xF2,0xEE,0x00,0x00,}}, {0x877F,2,{0xCE,0x84,0x00,0x00,}}, {0x8780,2,{0xCE,0x85,0x00,0x00,}}, {0x8781,2,{0xCE,0x86,0x00,0x00,}}, {0x8782,2,{0xF2,0xEB,0x00,0x00,}}, {0x8783,2,{0xF3,0xA6,0x00,0x00,}}, {0x8784,2,{0xCE,0x87,0x00,0x00,}}, {0x8785,2,{0xF3,0xA3,0x00,0x00,}}, {0x8786,2,{0xCE,0x88,0x00,0x00,}}, {0x8787,2,{0xCE,0x89,0x00,0x00,}}, {0x8788,2,{0xF3,0xA2,0x00,0x00,}}, {0x8789,2,{0xCE,0x8A,0x00,0x00,}}, {0x878A,2,{0xCE,0x8B,0x00,0x00,}}, {0x878B,2,{0xF2,0xF4,0x00,0x00,}}, {0x878C,2,{0xCE,0x8C,0x00,0x00,}}, {0x878D,2,{0xC8,0xDA,0x00,0x00,}}, {0x878E,2,{0xCE,0x8D,0x00,0x00,}}, {0x878F,2,{0xCE,0x8E,0x00,0x00,}}, {0x8790,2,{0xCE,0x8F,0x00,0x00,}}, {0x8791,2,{0xCE,0x90,0x00,0x00,}}, {0x8792,2,{0xCE,0x91,0x00,0x00,}}, {0x8793,2,{0xF2,0xFB,0x00,0x00,}}, {0x8794,2,{0xCE,0x92,0x00,0x00,}}, {0x8795,2,{0xCE,0x93,0x00,0x00,}}, {0x8796,2,{0xCE,0x94,0x00,0x00,}}, {0x8797,2,{0xF3,0xA5,0x00,0x00,}}, {0x8798,2,{0xCE,0x95,0x00,0x00,}}, {0x8799,2,{0xCE,0x96,0x00,0x00,}}, {0x879A,2,{0xCE,0x97,0x00,0x00,}}, {0x879B,2,{0xCE,0x98,0x00,0x00,}}, {0x879C,2,{0xCE,0x99,0x00,0x00,}}, {0x879D,2,{0xCE,0x9A,0x00,0x00,}}, {0x879E,2,{0xCE,0x9B,0x00,0x00,}}, {0x879F,2,{0xC3,0xF8,0x00,0x00,}}, {0x87A0,2,{0xCE,0x9C,0x00,0x00,}}, {0x87A1,2,{0xCE,0x9D,0x00,0x00,}}, {0x87A2,2,{0xCE,0x9E,0x00,0x00,}}, {0x87A3,2,{0xCE,0x9F,0x00,0x00,}}, {0x87A4,2,{0xCE,0xA0,0x00,0x00,}}, {0x87A5,2,{0xCF,0x40,0x00,0x00,}}, {0x87A6,2,{0xCF,0x41,0x00,0x00,}}, {0x87A7,2,{0xCF,0x42,0x00,0x00,}}, {0x87A8,2,{0xF2,0xFD,0x00,0x00,}}, {0x87A9,2,{0xCF,0x43,0x00,0x00,}}, {0x87AA,2,{0xCF,0x44,0x00,0x00,}}, {0x87AB,2,{0xF3,0xA7,0x00,0x00,}}, {0x87AC,2,{0xF3,0xA9,0x00,0x00,}}, {0x87AD,2,{0xF3,0xA4,0x00,0x00,}}, {0x87AE,2,{0xCF,0x45,0x00,0x00,}}, {0x87AF,2,{0xF2,0xFC,0x00,0x00,}}, {0x87B0,2,{0xCF,0x46,0x00,0x00,}}, {0x87B1,2,{0xCF,0x47,0x00,0x00,}}, {0x87B2,2,{0xCF,0x48,0x00,0x00,}}, {0x87B3,2,{0xF3,0xAB,0x00,0x00,}}, {0x87B4,2,{0xCF,0x49,0x00,0x00,}}, {0x87B5,2,{0xF3,0xAA,0x00,0x00,}}, {0x87B6,2,{0xCF,0x4A,0x00,0x00,}}, {0x87B7,2,{0xCF,0x4B,0x00,0x00,}}, {0x87B8,2,{0xCF,0x4C,0x00,0x00,}}, {0x87B9,2,{0xCF,0x4D,0x00,0x00,}}, {0x87BA,2,{0xC2,0xDD,0x00,0x00,}}, {0x87BB,2,{0xCF,0x4E,0x00,0x00,}}, {0x87BC,2,{0xCF,0x4F,0x00,0x00,}}, {0x87BD,2,{0xF3,0xAE,0x00,0x00,}}, {0x87BE,2,{0xCF,0x50,0x00,0x00,}}, {0x87BF,2,{0xCF,0x51,0x00,0x00,}}, {0x87C0,2,{0xF3,0xB0,0x00,0x00,}}, {0x87C1,2,{0xCF,0x52,0x00,0x00,}}, {0x87C2,2,{0xCF,0x53,0x00,0x00,}}, {0x87C3,2,{0xCF,0x54,0x00,0x00,}}, {0x87C4,2,{0xCF,0x55,0x00,0x00,}}, {0x87C5,2,{0xCF,0x56,0x00,0x00,}}, {0x87C6,2,{0xF3,0xA1,0x00,0x00,}}, {0x87C7,2,{0xCF,0x57,0x00,0x00,}}, {0x87C8,2,{0xCF,0x58,0x00,0x00,}}, {0x87C9,2,{0xCF,0x59,0x00,0x00,}}, {0x87CA,2,{0xF3,0xB1,0x00,0x00,}}, {0x87CB,2,{0xF3,0xAC,0x00,0x00,}}, {0x87CC,2,{0xCF,0x5A,0x00,0x00,}}, {0x87CD,2,{0xCF,0x5B,0x00,0x00,}}, {0x87CE,2,{0xCF,0x5C,0x00,0x00,}}, {0x87CF,2,{0xCF,0x5D,0x00,0x00,}}, {0x87D0,2,{0xCF,0x5E,0x00,0x00,}}, {0x87D1,2,{0xF3,0xAF,0x00,0x00,}}, {0x87D2,2,{0xF2,0xFE,0x00,0x00,}}, {0x87D3,2,{0xF3,0xAD,0x00,0x00,}}, {0x87D4,2,{0xCF,0x5F,0x00,0x00,}}, {0x87D5,2,{0xCF,0x60,0x00,0x00,}}, {0x87D6,2,{0xCF,0x61,0x00,0x00,}}, {0x87D7,2,{0xCF,0x62,0x00,0x00,}}, {0x87D8,2,{0xCF,0x63,0x00,0x00,}}, {0x87D9,2,{0xCF,0x64,0x00,0x00,}}, {0x87DA,2,{0xCF,0x65,0x00,0x00,}}, {0x87DB,2,{0xF3,0xB2,0x00,0x00,}}, {0x87DC,2,{0xCF,0x66,0x00,0x00,}}, {0x87DD,2,{0xCF,0x67,0x00,0x00,}}, {0x87DE,2,{0xCF,0x68,0x00,0x00,}}, {0x87DF,2,{0xCF,0x69,0x00,0x00,}}, {0x87E0,2,{0xF3,0xB4,0x00,0x00,}}, {0x87E1,2,{0xCF,0x6A,0x00,0x00,}}, {0x87E2,2,{0xCF,0x6B,0x00,0x00,}}, {0x87E3,2,{0xCF,0x6C,0x00,0x00,}}, {0x87E4,2,{0xCF,0x6D,0x00,0x00,}}, {0x87E5,2,{0xF3,0xA8,0x00,0x00,}}, {0x87E6,2,{0xCF,0x6E,0x00,0x00,}}, {0x87E7,2,{0xCF,0x6F,0x00,0x00,}}, {0x87E8,2,{0xCF,0x70,0x00,0x00,}}, {0x87E9,2,{0xCF,0x71,0x00,0x00,}}, {0x87EA,2,{0xF3,0xB3,0x00,0x00,}}, {0x87EB,2,{0xCF,0x72,0x00,0x00,}}, {0x87EC,2,{0xCF,0x73,0x00,0x00,}}, {0x87ED,2,{0xCF,0x74,0x00,0x00,}}, {0x87EE,2,{0xF3,0xB5,0x00,0x00,}}, {0x87EF,2,{0xCF,0x75,0x00,0x00,}}, {0x87F0,2,{0xCF,0x76,0x00,0x00,}}, {0x87F1,2,{0xCF,0x77,0x00,0x00,}}, {0x87F2,2,{0xCF,0x78,0x00,0x00,}}, {0x87F3,2,{0xCF,0x79,0x00,0x00,}}, {0x87F4,2,{0xCF,0x7A,0x00,0x00,}}, {0x87F5,2,{0xCF,0x7B,0x00,0x00,}}, {0x87F6,2,{0xCF,0x7C,0x00,0x00,}}, {0x87F7,2,{0xCF,0x7D,0x00,0x00,}}, {0x87F8,2,{0xCF,0x7E,0x00,0x00,}}, {0x87F9,2,{0xD0,0xB7,0x00,0x00,}}, {0x87FA,2,{0xCF,0x80,0x00,0x00,}}, {0x87FB,2,{0xCF,0x81,0x00,0x00,}}, {0x87FC,2,{0xCF,0x82,0x00,0x00,}}, {0x87FD,2,{0xCF,0x83,0x00,0x00,}}, {0x87FE,2,{0xF3,0xB8,0x00,0x00,}}, {0x87FF,2,{0xCF,0x84,0x00,0x00,}}, {0x8800,2,{0xCF,0x85,0x00,0x00,}}, {0x8801,2,{0xCF,0x86,0x00,0x00,}}, {0x8802,2,{0xCF,0x87,0x00,0x00,}}, {0x8803,2,{0xD9,0xF9,0x00,0x00,}}, {0x8804,2,{0xCF,0x88,0x00,0x00,}}, {0x8805,2,{0xCF,0x89,0x00,0x00,}}, {0x8806,2,{0xCF,0x8A,0x00,0x00,}}, {0x8807,2,{0xCF,0x8B,0x00,0x00,}}, {0x8808,2,{0xCF,0x8C,0x00,0x00,}}, {0x8809,2,{0xCF,0x8D,0x00,0x00,}}, {0x880A,2,{0xF3,0xB9,0x00,0x00,}}, {0x880B,2,{0xCF,0x8E,0x00,0x00,}}, {0x880C,2,{0xCF,0x8F,0x00,0x00,}}, {0x880D,2,{0xCF,0x90,0x00,0x00,}}, {0x880E,2,{0xCF,0x91,0x00,0x00,}}, {0x880F,2,{0xCF,0x92,0x00,0x00,}}, {0x8810,2,{0xCF,0x93,0x00,0x00,}}, {0x8811,2,{0xCF,0x94,0x00,0x00,}}, {0x8812,2,{0xCF,0x95,0x00,0x00,}}, {0x8813,2,{0xF3,0xB7,0x00,0x00,}}, {0x8814,2,{0xCF,0x96,0x00,0x00,}}, {0x8815,2,{0xC8,0xE4,0x00,0x00,}}, {0x8816,2,{0xF3,0xB6,0x00,0x00,}}, {0x8817,2,{0xCF,0x97,0x00,0x00,}}, {0x8818,2,{0xCF,0x98,0x00,0x00,}}, {0x8819,2,{0xCF,0x99,0x00,0x00,}}, {0x881A,2,{0xCF,0x9A,0x00,0x00,}}, {0x881B,2,{0xF3,0xBA,0x00,0x00,}}, {0x881C,2,{0xCF,0x9B,0x00,0x00,}}, {0x881D,2,{0xCF,0x9C,0x00,0x00,}}, {0x881E,2,{0xCF,0x9D,0x00,0x00,}}, {0x881F,2,{0xCF,0x9E,0x00,0x00,}}, {0x8820,2,{0xCF,0x9F,0x00,0x00,}}, {0x8821,2,{0xF3,0xBB,0x00,0x00,}}, {0x8822,2,{0xB4,0xC0,0x00,0x00,}}, {0x8823,2,{0xCF,0xA0,0x00,0x00,}}, {0x8824,2,{0xD0,0x40,0x00,0x00,}}, {0x8825,2,{0xD0,0x41,0x00,0x00,}}, {0x8826,2,{0xD0,0x42,0x00,0x00,}}, {0x8827,2,{0xD0,0x43,0x00,0x00,}}, {0x8828,2,{0xD0,0x44,0x00,0x00,}}, {0x8829,2,{0xD0,0x45,0x00,0x00,}}, {0x882A,2,{0xD0,0x46,0x00,0x00,}}, {0x882B,2,{0xD0,0x47,0x00,0x00,}}, {0x882C,2,{0xD0,0x48,0x00,0x00,}}, {0x882D,2,{0xD0,0x49,0x00,0x00,}}, {0x882E,2,{0xD0,0x4A,0x00,0x00,}}, {0x882F,2,{0xD0,0x4B,0x00,0x00,}}, {0x8830,2,{0xD0,0x4C,0x00,0x00,}}, {0x8831,2,{0xD0,0x4D,0x00,0x00,}}, {0x8832,2,{0xEE,0xC3,0x00,0x00,}}, {0x8833,2,{0xD0,0x4E,0x00,0x00,}}, {0x8834,2,{0xD0,0x4F,0x00,0x00,}}, {0x8835,2,{0xD0,0x50,0x00,0x00,}}, {0x8836,2,{0xD0,0x51,0x00,0x00,}}, {0x8837,2,{0xD0,0x52,0x00,0x00,}}, {0x8838,2,{0xD0,0x53,0x00,0x00,}}, {0x8839,2,{0xF3,0xBC,0x00,0x00,}}, {0x883A,2,{0xD0,0x54,0x00,0x00,}}, {0x883B,2,{0xD0,0x55,0x00,0x00,}}, {0x883C,2,{0xF3,0xBD,0x00,0x00,}}, {0x883D,2,{0xD0,0x56,0x00,0x00,}}, {0x883E,2,{0xD0,0x57,0x00,0x00,}}, {0x883F,2,{0xD0,0x58,0x00,0x00,}}, {0x8840,2,{0xD1,0xAA,0x00,0x00,}}, {0x8841,2,{0xD0,0x59,0x00,0x00,}}, {0x8842,2,{0xD0,0x5A,0x00,0x00,}}, {0x8843,2,{0xD0,0x5B,0x00,0x00,}}, {0x8844,2,{0xF4,0xAC,0x00,0x00,}}, {0x8845,2,{0xD0,0xC6,0x00,0x00,}}, {0x8846,2,{0xD0,0x5C,0x00,0x00,}}, {0x8847,2,{0xD0,0x5D,0x00,0x00,}}, {0x8848,2,{0xD0,0x5E,0x00,0x00,}}, {0x8849,2,{0xD0,0x5F,0x00,0x00,}}, {0x884A,2,{0xD0,0x60,0x00,0x00,}}, {0x884B,2,{0xD0,0x61,0x00,0x00,}}, {0x884C,2,{0xD0,0xD0,0x00,0x00,}}, {0x884D,2,{0xD1,0xDC,0x00,0x00,}}, {0x884E,2,{0xD0,0x62,0x00,0x00,}}, {0x884F,2,{0xD0,0x63,0x00,0x00,}}, {0x8850,2,{0xD0,0x64,0x00,0x00,}}, {0x8851,2,{0xD0,0x65,0x00,0x00,}}, {0x8852,2,{0xD0,0x66,0x00,0x00,}}, {0x8853,2,{0xD0,0x67,0x00,0x00,}}, {0x8854,2,{0xCF,0xCE,0x00,0x00,}}, {0x8855,2,{0xD0,0x68,0x00,0x00,}}, {0x8856,2,{0xD0,0x69,0x00,0x00,}}, {0x8857,2,{0xBD,0xD6,0x00,0x00,}}, {0x8858,2,{0xD0,0x6A,0x00,0x00,}}, {0x8859,2,{0xD1,0xC3,0x00,0x00,}}, {0x885A,2,{0xD0,0x6B,0x00,0x00,}}, {0x885B,2,{0xD0,0x6C,0x00,0x00,}}, {0x885C,2,{0xD0,0x6D,0x00,0x00,}}, {0x885D,2,{0xD0,0x6E,0x00,0x00,}}, {0x885E,2,{0xD0,0x6F,0x00,0x00,}}, {0x885F,2,{0xD0,0x70,0x00,0x00,}}, {0x8860,2,{0xD0,0x71,0x00,0x00,}}, {0x8861,2,{0xBA,0xE2,0x00,0x00,}}, {0x8862,2,{0xE1,0xE9,0x00,0x00,}}, {0x8863,2,{0xD2,0xC2,0x00,0x00,}}, {0x8864,2,{0xF1,0xC2,0x00,0x00,}}, {0x8865,2,{0xB2,0xB9,0x00,0x00,}}, {0x8866,2,{0xD0,0x72,0x00,0x00,}}, {0x8867,2,{0xD0,0x73,0x00,0x00,}}, {0x8868,2,{0xB1,0xED,0x00,0x00,}}, {0x8869,2,{0xF1,0xC3,0x00,0x00,}}, {0x886A,2,{0xD0,0x74,0x00,0x00,}}, {0x886B,2,{0xC9,0xC0,0x00,0x00,}}, {0x886C,2,{0xB3,0xC4,0x00,0x00,}}, {0x886D,2,{0xD0,0x75,0x00,0x00,}}, {0x886E,2,{0xD9,0xF2,0x00,0x00,}}, {0x886F,2,{0xD0,0x76,0x00,0x00,}}, {0x8870,2,{0xCB,0xA5,0x00,0x00,}}, {0x8871,2,{0xD0,0x77,0x00,0x00,}}, {0x8872,2,{0xF1,0xC4,0x00,0x00,}}, {0x8873,2,{0xD0,0x78,0x00,0x00,}}, {0x8874,2,{0xD0,0x79,0x00,0x00,}}, {0x8875,2,{0xD0,0x7A,0x00,0x00,}}, {0x8876,2,{0xD0,0x7B,0x00,0x00,}}, {0x8877,2,{0xD6,0xD4,0x00,0x00,}}, {0x8878,2,{0xD0,0x7C,0x00,0x00,}}, {0x8879,2,{0xD0,0x7D,0x00,0x00,}}, {0x887A,2,{0xD0,0x7E,0x00,0x00,}}, {0x887B,2,{0xD0,0x80,0x00,0x00,}}, {0x887C,2,{0xD0,0x81,0x00,0x00,}}, {0x887D,2,{0xF1,0xC5,0x00,0x00,}}, {0x887E,2,{0xF4,0xC0,0x00,0x00,}}, {0x887F,2,{0xF1,0xC6,0x00,0x00,}}, {0x8880,2,{0xD0,0x82,0x00,0x00,}}, {0x8881,2,{0xD4,0xAC,0x00,0x00,}}, {0x8882,2,{0xF1,0xC7,0x00,0x00,}}, {0x8883,2,{0xD0,0x83,0x00,0x00,}}, {0x8884,2,{0xB0,0xC0,0x00,0x00,}}, {0x8885,2,{0xF4,0xC1,0x00,0x00,}}, {0x8886,2,{0xD0,0x84,0x00,0x00,}}, {0x8887,2,{0xD0,0x85,0x00,0x00,}}, {0x8888,2,{0xF4,0xC2,0x00,0x00,}}, {0x8889,2,{0xD0,0x86,0x00,0x00,}}, {0x888A,2,{0xD0,0x87,0x00,0x00,}}, {0x888B,2,{0xB4,0xFC,0x00,0x00,}}, {0x888C,2,{0xD0,0x88,0x00,0x00,}}, {0x888D,2,{0xC5,0xDB,0x00,0x00,}}, {0x888E,2,{0xD0,0x89,0x00,0x00,}}, {0x888F,2,{0xD0,0x8A,0x00,0x00,}}, {0x8890,2,{0xD0,0x8B,0x00,0x00,}}, {0x8891,2,{0xD0,0x8C,0x00,0x00,}}, {0x8892,2,{0xCC,0xBB,0x00,0x00,}}, {0x8893,2,{0xD0,0x8D,0x00,0x00,}}, {0x8894,2,{0xD0,0x8E,0x00,0x00,}}, {0x8895,2,{0xD0,0x8F,0x00,0x00,}}, {0x8896,2,{0xD0,0xE4,0x00,0x00,}}, {0x8897,2,{0xD0,0x90,0x00,0x00,}}, {0x8898,2,{0xD0,0x91,0x00,0x00,}}, {0x8899,2,{0xD0,0x92,0x00,0x00,}}, {0x889A,2,{0xD0,0x93,0x00,0x00,}}, {0x889B,2,{0xD0,0x94,0x00,0x00,}}, {0x889C,2,{0xCD,0xE0,0x00,0x00,}}, {0x889D,2,{0xD0,0x95,0x00,0x00,}}, {0x889E,2,{0xD0,0x96,0x00,0x00,}}, {0x889F,2,{0xD0,0x97,0x00,0x00,}}, {0x88A0,2,{0xD0,0x98,0x00,0x00,}}, {0x88A1,2,{0xD0,0x99,0x00,0x00,}}, {0x88A2,2,{0xF1,0xC8,0x00,0x00,}}, {0x88A3,2,{0xD0,0x9A,0x00,0x00,}}, {0x88A4,2,{0xD9,0xF3,0x00,0x00,}}, {0x88A5,2,{0xD0,0x9B,0x00,0x00,}}, {0x88A6,2,{0xD0,0x9C,0x00,0x00,}}, {0x88A7,2,{0xD0,0x9D,0x00,0x00,}}, {0x88A8,2,{0xD0,0x9E,0x00,0x00,}}, {0x88A9,2,{0xD0,0x9F,0x00,0x00,}}, {0x88AA,2,{0xD0,0xA0,0x00,0x00,}}, {0x88AB,2,{0xB1,0xBB,0x00,0x00,}}, {0x88AC,2,{0xD1,0x40,0x00,0x00,}}, {0x88AD,2,{0xCF,0xAE,0x00,0x00,}}, {0x88AE,2,{0xD1,0x41,0x00,0x00,}}, {0x88AF,2,{0xD1,0x42,0x00,0x00,}}, {0x88B0,2,{0xD1,0x43,0x00,0x00,}}, {0x88B1,2,{0xB8,0xA4,0x00,0x00,}}, {0x88B2,2,{0xD1,0x44,0x00,0x00,}}, {0x88B3,2,{0xD1,0x45,0x00,0x00,}}, {0x88B4,2,{0xD1,0x46,0x00,0x00,}}, {0x88B5,2,{0xD1,0x47,0x00,0x00,}}, {0x88B6,2,{0xD1,0x48,0x00,0x00,}}, {0x88B7,2,{0xF1,0xCA,0x00,0x00,}}, {0x88B8,2,{0xD1,0x49,0x00,0x00,}}, {0x88B9,2,{0xD1,0x4A,0x00,0x00,}}, {0x88BA,2,{0xD1,0x4B,0x00,0x00,}}, {0x88BB,2,{0xD1,0x4C,0x00,0x00,}}, {0x88BC,2,{0xF1,0xCB,0x00,0x00,}}, {0x88BD,2,{0xD1,0x4D,0x00,0x00,}}, {0x88BE,2,{0xD1,0x4E,0x00,0x00,}}, {0x88BF,2,{0xD1,0x4F,0x00,0x00,}}, {0x88C0,2,{0xD1,0x50,0x00,0x00,}}, {0x88C1,2,{0xB2,0xC3,0x00,0x00,}}, {0x88C2,2,{0xC1,0xD1,0x00,0x00,}}, {0x88C3,2,{0xD1,0x51,0x00,0x00,}}, {0x88C4,2,{0xD1,0x52,0x00,0x00,}}, {0x88C5,2,{0xD7,0xB0,0x00,0x00,}}, {0x88C6,2,{0xF1,0xC9,0x00,0x00,}}, {0x88C7,2,{0xD1,0x53,0x00,0x00,}}, {0x88C8,2,{0xD1,0x54,0x00,0x00,}}, {0x88C9,2,{0xF1,0xCC,0x00,0x00,}}, {0x88CA,2,{0xD1,0x55,0x00,0x00,}}, {0x88CB,2,{0xD1,0x56,0x00,0x00,}}, {0x88CC,2,{0xD1,0x57,0x00,0x00,}}, {0x88CD,2,{0xD1,0x58,0x00,0x00,}}, {0x88CE,2,{0xF1,0xCE,0x00,0x00,}}, {0x88CF,2,{0xD1,0x59,0x00,0x00,}}, {0x88D0,2,{0xD1,0x5A,0x00,0x00,}}, {0x88D1,2,{0xD1,0x5B,0x00,0x00,}}, {0x88D2,2,{0xD9,0xF6,0x00,0x00,}}, {0x88D3,2,{0xD1,0x5C,0x00,0x00,}}, {0x88D4,2,{0xD2,0xE1,0x00,0x00,}}, {0x88D5,2,{0xD4,0xA3,0x00,0x00,}}, {0x88D6,2,{0xD1,0x5D,0x00,0x00,}}, {0x88D7,2,{0xD1,0x5E,0x00,0x00,}}, {0x88D8,2,{0xF4,0xC3,0x00,0x00,}}, {0x88D9,2,{0xC8,0xB9,0x00,0x00,}}, {0x88DA,2,{0xD1,0x5F,0x00,0x00,}}, {0x88DB,2,{0xD1,0x60,0x00,0x00,}}, {0x88DC,2,{0xD1,0x61,0x00,0x00,}}, {0x88DD,2,{0xD1,0x62,0x00,0x00,}}, {0x88DE,2,{0xD1,0x63,0x00,0x00,}}, {0x88DF,2,{0xF4,0xC4,0x00,0x00,}}, {0x88E0,2,{0xD1,0x64,0x00,0x00,}}, {0x88E1,2,{0xD1,0x65,0x00,0x00,}}, {0x88E2,2,{0xF1,0xCD,0x00,0x00,}}, {0x88E3,2,{0xF1,0xCF,0x00,0x00,}}, {0x88E4,2,{0xBF,0xE3,0x00,0x00,}}, {0x88E5,2,{0xF1,0xD0,0x00,0x00,}}, {0x88E6,2,{0xD1,0x66,0x00,0x00,}}, {0x88E7,2,{0xD1,0x67,0x00,0x00,}}, {0x88E8,2,{0xF1,0xD4,0x00,0x00,}}, {0x88E9,2,{0xD1,0x68,0x00,0x00,}}, {0x88EA,2,{0xD1,0x69,0x00,0x00,}}, {0x88EB,2,{0xD1,0x6A,0x00,0x00,}}, {0x88EC,2,{0xD1,0x6B,0x00,0x00,}}, {0x88ED,2,{0xD1,0x6C,0x00,0x00,}}, {0x88EE,2,{0xD1,0x6D,0x00,0x00,}}, {0x88EF,2,{0xD1,0x6E,0x00,0x00,}}, {0x88F0,2,{0xF1,0xD6,0x00,0x00,}}, {0x88F1,2,{0xF1,0xD1,0x00,0x00,}}, {0x88F2,2,{0xD1,0x6F,0x00,0x00,}}, {0x88F3,2,{0xC9,0xD1,0x00,0x00,}}, {0x88F4,2,{0xC5,0xE1,0x00,0x00,}}, {0x88F5,2,{0xD1,0x70,0x00,0x00,}}, {0x88F6,2,{0xD1,0x71,0x00,0x00,}}, {0x88F7,2,{0xD1,0x72,0x00,0x00,}}, {0x88F8,2,{0xC2,0xE3,0x00,0x00,}}, {0x88F9,2,{0xB9,0xFC,0x00,0x00,}}, {0x88FA,2,{0xD1,0x73,0x00,0x00,}}, {0x88FB,2,{0xD1,0x74,0x00,0x00,}}, {0x88FC,2,{0xF1,0xD3,0x00,0x00,}}, {0x88FD,2,{0xD1,0x75,0x00,0x00,}}, {0x88FE,2,{0xF1,0xD5,0x00,0x00,}}, {0x88FF,2,{0xD1,0x76,0x00,0x00,}}, {0x8900,2,{0xD1,0x77,0x00,0x00,}}, {0x8901,2,{0xD1,0x78,0x00,0x00,}}, {0x8902,2,{0xB9,0xD3,0x00,0x00,}}, {0x8903,2,{0xD1,0x79,0x00,0x00,}}, {0x8904,2,{0xD1,0x7A,0x00,0x00,}}, {0x8905,2,{0xD1,0x7B,0x00,0x00,}}, {0x8906,2,{0xD1,0x7C,0x00,0x00,}}, {0x8907,2,{0xD1,0x7D,0x00,0x00,}}, {0x8908,2,{0xD1,0x7E,0x00,0x00,}}, {0x8909,2,{0xD1,0x80,0x00,0x00,}}, {0x890A,2,{0xF1,0xDB,0x00,0x00,}}, {0x890B,2,{0xD1,0x81,0x00,0x00,}}, {0x890C,2,{0xD1,0x82,0x00,0x00,}}, {0x890D,2,{0xD1,0x83,0x00,0x00,}}, {0x890E,2,{0xD1,0x84,0x00,0x00,}}, {0x890F,2,{0xD1,0x85,0x00,0x00,}}, {0x8910,2,{0xBA,0xD6,0x00,0x00,}}, {0x8911,2,{0xD1,0x86,0x00,0x00,}}, {0x8912,2,{0xB0,0xFD,0x00,0x00,}}, {0x8913,2,{0xF1,0xD9,0x00,0x00,}}, {0x8914,2,{0xD1,0x87,0x00,0x00,}}, {0x8915,2,{0xD1,0x88,0x00,0x00,}}, {0x8916,2,{0xD1,0x89,0x00,0x00,}}, {0x8917,2,{0xD1,0x8A,0x00,0x00,}}, {0x8918,2,{0xD1,0x8B,0x00,0x00,}}, {0x8919,2,{0xF1,0xD8,0x00,0x00,}}, {0x891A,2,{0xF1,0xD2,0x00,0x00,}}, {0x891B,2,{0xF1,0xDA,0x00,0x00,}}, {0x891C,2,{0xD1,0x8C,0x00,0x00,}}, {0x891D,2,{0xD1,0x8D,0x00,0x00,}}, {0x891E,2,{0xD1,0x8E,0x00,0x00,}}, {0x891F,2,{0xD1,0x8F,0x00,0x00,}}, {0x8920,2,{0xD1,0x90,0x00,0x00,}}, {0x8921,2,{0xF1,0xD7,0x00,0x00,}}, {0x8922,2,{0xD1,0x91,0x00,0x00,}}, {0x8923,2,{0xD1,0x92,0x00,0x00,}}, {0x8924,2,{0xD1,0x93,0x00,0x00,}}, {0x8925,2,{0xC8,0xEC,0x00,0x00,}}, {0x8926,2,{0xD1,0x94,0x00,0x00,}}, {0x8927,2,{0xD1,0x95,0x00,0x00,}}, {0x8928,2,{0xD1,0x96,0x00,0x00,}}, {0x8929,2,{0xD1,0x97,0x00,0x00,}}, {0x892A,2,{0xCD,0xCA,0x00,0x00,}}, {0x892B,2,{0xF1,0xDD,0x00,0x00,}}, {0x892C,2,{0xD1,0x98,0x00,0x00,}}, {0x892D,2,{0xD1,0x99,0x00,0x00,}}, {0x892E,2,{0xD1,0x9A,0x00,0x00,}}, {0x892F,2,{0xD1,0x9B,0x00,0x00,}}, {0x8930,2,{0xE5,0xBD,0x00,0x00,}}, {0x8931,2,{0xD1,0x9C,0x00,0x00,}}, {0x8932,2,{0xD1,0x9D,0x00,0x00,}}, {0x8933,2,{0xD1,0x9E,0x00,0x00,}}, {0x8934,2,{0xF1,0xDC,0x00,0x00,}}, {0x8935,2,{0xD1,0x9F,0x00,0x00,}}, {0x8936,2,{0xF1,0xDE,0x00,0x00,}}, {0x8937,2,{0xD1,0xA0,0x00,0x00,}}, {0x8938,2,{0xD2,0x40,0x00,0x00,}}, {0x8939,2,{0xD2,0x41,0x00,0x00,}}, {0x893A,2,{0xD2,0x42,0x00,0x00,}}, {0x893B,2,{0xD2,0x43,0x00,0x00,}}, {0x893C,2,{0xD2,0x44,0x00,0x00,}}, {0x893D,2,{0xD2,0x45,0x00,0x00,}}, {0x893E,2,{0xD2,0x46,0x00,0x00,}}, {0x893F,2,{0xD2,0x47,0x00,0x00,}}, {0x8940,2,{0xD2,0x48,0x00,0x00,}}, {0x8941,2,{0xF1,0xDF,0x00,0x00,}}, {0x8942,2,{0xD2,0x49,0x00,0x00,}}, {0x8943,2,{0xD2,0x4A,0x00,0x00,}}, {0x8944,2,{0xCF,0xE5,0x00,0x00,}}, {0x8945,2,{0xD2,0x4B,0x00,0x00,}}, {0x8946,2,{0xD2,0x4C,0x00,0x00,}}, {0x8947,2,{0xD2,0x4D,0x00,0x00,}}, {0x8948,2,{0xD2,0x4E,0x00,0x00,}}, {0x8949,2,{0xD2,0x4F,0x00,0x00,}}, {0x894A,2,{0xD2,0x50,0x00,0x00,}}, {0x894B,2,{0xD2,0x51,0x00,0x00,}}, {0x894C,2,{0xD2,0x52,0x00,0x00,}}, {0x894D,2,{0xD2,0x53,0x00,0x00,}}, {0x894E,2,{0xD2,0x54,0x00,0x00,}}, {0x894F,2,{0xD2,0x55,0x00,0x00,}}, {0x8950,2,{0xD2,0x56,0x00,0x00,}}, {0x8951,2,{0xD2,0x57,0x00,0x00,}}, {0x8952,2,{0xD2,0x58,0x00,0x00,}}, {0x8953,2,{0xD2,0x59,0x00,0x00,}}, {0x8954,2,{0xD2,0x5A,0x00,0x00,}}, {0x8955,2,{0xD2,0x5B,0x00,0x00,}}, {0x8956,2,{0xD2,0x5C,0x00,0x00,}}, {0x8957,2,{0xD2,0x5D,0x00,0x00,}}, {0x8958,2,{0xD2,0x5E,0x00,0x00,}}, {0x8959,2,{0xD2,0x5F,0x00,0x00,}}, {0x895A,2,{0xD2,0x60,0x00,0x00,}}, {0x895B,2,{0xD2,0x61,0x00,0x00,}}, {0x895C,2,{0xD2,0x62,0x00,0x00,}}, {0x895D,2,{0xD2,0x63,0x00,0x00,}}, {0x895E,2,{0xF4,0xC5,0x00,0x00,}}, {0x895F,2,{0xBD,0xF3,0x00,0x00,}}, {0x8960,2,{0xD2,0x64,0x00,0x00,}}, {0x8961,2,{0xD2,0x65,0x00,0x00,}}, {0x8962,2,{0xD2,0x66,0x00,0x00,}}, {0x8963,2,{0xD2,0x67,0x00,0x00,}}, {0x8964,2,{0xD2,0x68,0x00,0x00,}}, {0x8965,2,{0xD2,0x69,0x00,0x00,}}, {0x8966,2,{0xF1,0xE0,0x00,0x00,}}, {0x8967,2,{0xD2,0x6A,0x00,0x00,}}, {0x8968,2,{0xD2,0x6B,0x00,0x00,}}, {0x8969,2,{0xD2,0x6C,0x00,0x00,}}, {0x896A,2,{0xD2,0x6D,0x00,0x00,}}, {0x896B,2,{0xD2,0x6E,0x00,0x00,}}, {0x896C,2,{0xD2,0x6F,0x00,0x00,}}, {0x896D,2,{0xD2,0x70,0x00,0x00,}}, {0x896E,2,{0xD2,0x71,0x00,0x00,}}, {0x896F,2,{0xD2,0x72,0x00,0x00,}}, {0x8970,2,{0xD2,0x73,0x00,0x00,}}, {0x8971,2,{0xD2,0x74,0x00,0x00,}}, {0x8972,2,{0xD2,0x75,0x00,0x00,}}, {0x8973,2,{0xD2,0x76,0x00,0x00,}}, {0x8974,2,{0xD2,0x77,0x00,0x00,}}, {0x8975,2,{0xD2,0x78,0x00,0x00,}}, {0x8976,2,{0xD2,0x79,0x00,0x00,}}, {0x8977,2,{0xD2,0x7A,0x00,0x00,}}, {0x8978,2,{0xD2,0x7B,0x00,0x00,}}, {0x8979,2,{0xD2,0x7C,0x00,0x00,}}, {0x897A,2,{0xD2,0x7D,0x00,0x00,}}, {0x897B,2,{0xF1,0xE1,0x00,0x00,}}, {0x897C,2,{0xD2,0x7E,0x00,0x00,}}, {0x897D,2,{0xD2,0x80,0x00,0x00,}}, {0x897E,2,{0xD2,0x81,0x00,0x00,}}, {0x897F,2,{0xCE,0xF7,0x00,0x00,}}, {0x8980,2,{0xD2,0x82,0x00,0x00,}}, {0x8981,2,{0xD2,0xAA,0x00,0x00,}}, {0x8982,2,{0xD2,0x83,0x00,0x00,}}, {0x8983,2,{0xF1,0xFB,0x00,0x00,}}, {0x8984,2,{0xD2,0x84,0x00,0x00,}}, {0x8985,2,{0xD2,0x85,0x00,0x00,}}, {0x8986,2,{0xB8,0xB2,0x00,0x00,}}, {0x8987,2,{0xD2,0x86,0x00,0x00,}}, {0x8988,2,{0xD2,0x87,0x00,0x00,}}, {0x8989,2,{0xD2,0x88,0x00,0x00,}}, {0x898A,2,{0xD2,0x89,0x00,0x00,}}, {0x898B,2,{0xD2,0x8A,0x00,0x00,}}, {0x898C,2,{0xD2,0x8B,0x00,0x00,}}, {0x898D,2,{0xD2,0x8C,0x00,0x00,}}, {0x898E,2,{0xD2,0x8D,0x00,0x00,}}, {0x898F,2,{0xD2,0x8E,0x00,0x00,}}, {0x8990,2,{0xD2,0x8F,0x00,0x00,}}, {0x8991,2,{0xD2,0x90,0x00,0x00,}}, {0x8992,2,{0xD2,0x91,0x00,0x00,}}, {0x8993,2,{0xD2,0x92,0x00,0x00,}}, {0x8994,2,{0xD2,0x93,0x00,0x00,}}, {0x8995,2,{0xD2,0x94,0x00,0x00,}}, {0x8996,2,{0xD2,0x95,0x00,0x00,}}, {0x8997,2,{0xD2,0x96,0x00,0x00,}}, {0x8998,2,{0xD2,0x97,0x00,0x00,}}, {0x8999,2,{0xD2,0x98,0x00,0x00,}}, {0x899A,2,{0xD2,0x99,0x00,0x00,}}, {0x899B,2,{0xD2,0x9A,0x00,0x00,}}, {0x899C,2,{0xD2,0x9B,0x00,0x00,}}, {0x899D,2,{0xD2,0x9C,0x00,0x00,}}, {0x899E,2,{0xD2,0x9D,0x00,0x00,}}, {0x899F,2,{0xD2,0x9E,0x00,0x00,}}, {0x89A0,2,{0xD2,0x9F,0x00,0x00,}}, {0x89A1,2,{0xD2,0xA0,0x00,0x00,}}, {0x89A2,2,{0xD3,0x40,0x00,0x00,}}, {0x89A3,2,{0xD3,0x41,0x00,0x00,}}, {0x89A4,2,{0xD3,0x42,0x00,0x00,}}, {0x89A5,2,{0xD3,0x43,0x00,0x00,}}, {0x89A6,2,{0xD3,0x44,0x00,0x00,}}, {0x89A7,2,{0xD3,0x45,0x00,0x00,}}, {0x89A8,2,{0xD3,0x46,0x00,0x00,}}, {0x89A9,2,{0xD3,0x47,0x00,0x00,}}, {0x89AA,2,{0xD3,0x48,0x00,0x00,}}, {0x89AB,2,{0xD3,0x49,0x00,0x00,}}, {0x89AC,2,{0xD3,0x4A,0x00,0x00,}}, {0x89AD,2,{0xD3,0x4B,0x00,0x00,}}, {0x89AE,2,{0xD3,0x4C,0x00,0x00,}}, {0x89AF,2,{0xD3,0x4D,0x00,0x00,}}, {0x89B0,2,{0xD3,0x4E,0x00,0x00,}}, {0x89B1,2,{0xD3,0x4F,0x00,0x00,}}, {0x89B2,2,{0xD3,0x50,0x00,0x00,}}, {0x89B3,2,{0xD3,0x51,0x00,0x00,}}, {0x89B4,2,{0xD3,0x52,0x00,0x00,}}, {0x89B5,2,{0xD3,0x53,0x00,0x00,}}, {0x89B6,2,{0xD3,0x54,0x00,0x00,}}, {0x89B7,2,{0xD3,0x55,0x00,0x00,}}, {0x89B8,2,{0xD3,0x56,0x00,0x00,}}, {0x89B9,2,{0xD3,0x57,0x00,0x00,}}, {0x89BA,2,{0xD3,0x58,0x00,0x00,}}, {0x89BB,2,{0xD3,0x59,0x00,0x00,}}, {0x89BC,2,{0xD3,0x5A,0x00,0x00,}}, {0x89BD,2,{0xD3,0x5B,0x00,0x00,}}, {0x89BE,2,{0xD3,0x5C,0x00,0x00,}}, {0x89BF,2,{0xD3,0x5D,0x00,0x00,}}, {0x89C0,2,{0xD3,0x5E,0x00,0x00,}}, {0x89C1,2,{0xBC,0xFB,0x00,0x00,}}, {0x89C2,2,{0xB9,0xDB,0x00,0x00,}}, {0x89C3,2,{0xD3,0x5F,0x00,0x00,}}, {0x89C4,2,{0xB9,0xE6,0x00,0x00,}}, {0x89C5,2,{0xC3,0xD9,0x00,0x00,}}, {0x89C6,2,{0xCA,0xD3,0x00,0x00,}}, {0x89C7,2,{0xEA,0xE8,0x00,0x00,}}, {0x89C8,2,{0xC0,0xC0,0x00,0x00,}}, {0x89C9,2,{0xBE,0xF5,0x00,0x00,}}, {0x89CA,2,{0xEA,0xE9,0x00,0x00,}}, {0x89CB,2,{0xEA,0xEA,0x00,0x00,}}, {0x89CC,2,{0xEA,0xEB,0x00,0x00,}}, {0x89CD,2,{0xD3,0x60,0x00,0x00,}}, {0x89CE,2,{0xEA,0xEC,0x00,0x00,}}, {0x89CF,2,{0xEA,0xED,0x00,0x00,}}, {0x89D0,2,{0xEA,0xEE,0x00,0x00,}}, {0x89D1,2,{0xEA,0xEF,0x00,0x00,}}, {0x89D2,2,{0xBD,0xC7,0x00,0x00,}}, {0x89D3,2,{0xD3,0x61,0x00,0x00,}}, {0x89D4,2,{0xD3,0x62,0x00,0x00,}}, {0x89D5,2,{0xD3,0x63,0x00,0x00,}}, {0x89D6,2,{0xF5,0xFB,0x00,0x00,}}, {0x89D7,2,{0xD3,0x64,0x00,0x00,}}, {0x89D8,2,{0xD3,0x65,0x00,0x00,}}, {0x89D9,2,{0xD3,0x66,0x00,0x00,}}, {0x89DA,2,{0xF5,0xFD,0x00,0x00,}}, {0x89DB,2,{0xD3,0x67,0x00,0x00,}}, {0x89DC,2,{0xF5,0xFE,0x00,0x00,}}, {0x89DD,2,{0xD3,0x68,0x00,0x00,}}, {0x89DE,2,{0xF5,0xFC,0x00,0x00,}}, {0x89DF,2,{0xD3,0x69,0x00,0x00,}}, {0x89E0,2,{0xD3,0x6A,0x00,0x00,}}, {0x89E1,2,{0xD3,0x6B,0x00,0x00,}}, {0x89E2,2,{0xD3,0x6C,0x00,0x00,}}, {0x89E3,2,{0xBD,0xE2,0x00,0x00,}}, {0x89E4,2,{0xD3,0x6D,0x00,0x00,}}, {0x89E5,2,{0xF6,0xA1,0x00,0x00,}}, {0x89E6,2,{0xB4,0xA5,0x00,0x00,}}, {0x89E7,2,{0xD3,0x6E,0x00,0x00,}}, {0x89E8,2,{0xD3,0x6F,0x00,0x00,}}, {0x89E9,2,{0xD3,0x70,0x00,0x00,}}, {0x89EA,2,{0xD3,0x71,0x00,0x00,}}, {0x89EB,2,{0xF6,0xA2,0x00,0x00,}}, {0x89EC,2,{0xD3,0x72,0x00,0x00,}}, {0x89ED,2,{0xD3,0x73,0x00,0x00,}}, {0x89EE,2,{0xD3,0x74,0x00,0x00,}}, {0x89EF,2,{0xF6,0xA3,0x00,0x00,}}, {0x89F0,2,{0xD3,0x75,0x00,0x00,}}, {0x89F1,2,{0xD3,0x76,0x00,0x00,}}, {0x89F2,2,{0xD3,0x77,0x00,0x00,}}, {0x89F3,2,{0xEC,0xB2,0x00,0x00,}}, {0x89F4,2,{0xD3,0x78,0x00,0x00,}}, {0x89F5,2,{0xD3,0x79,0x00,0x00,}}, {0x89F6,2,{0xD3,0x7A,0x00,0x00,}}, {0x89F7,2,{0xD3,0x7B,0x00,0x00,}}, {0x89F8,2,{0xD3,0x7C,0x00,0x00,}}, {0x89F9,2,{0xD3,0x7D,0x00,0x00,}}, {0x89FA,2,{0xD3,0x7E,0x00,0x00,}}, {0x89FB,2,{0xD3,0x80,0x00,0x00,}}, {0x89FC,2,{0xD3,0x81,0x00,0x00,}}, {0x89FD,2,{0xD3,0x82,0x00,0x00,}}, {0x89FE,2,{0xD3,0x83,0x00,0x00,}}, {0x89FF,2,{0xD3,0x84,0x00,0x00,}}, {0x8A00,2,{0xD1,0xD4,0x00,0x00,}}, {0x8A01,2,{0xD3,0x85,0x00,0x00,}}, {0x8A02,2,{0xD3,0x86,0x00,0x00,}}, {0x8A03,2,{0xD3,0x87,0x00,0x00,}}, {0x8A04,2,{0xD3,0x88,0x00,0x00,}}, {0x8A05,2,{0xD3,0x89,0x00,0x00,}}, {0x8A06,2,{0xD3,0x8A,0x00,0x00,}}, {0x8A07,2,{0xD9,0xEA,0x00,0x00,}}, {0x8A08,2,{0xD3,0x8B,0x00,0x00,}}, {0x8A09,2,{0xD3,0x8C,0x00,0x00,}}, {0x8A0A,2,{0xD3,0x8D,0x00,0x00,}}, {0x8A0B,2,{0xD3,0x8E,0x00,0x00,}}, {0x8A0C,2,{0xD3,0x8F,0x00,0x00,}}, {0x8A0D,2,{0xD3,0x90,0x00,0x00,}}, {0x8A0E,2,{0xD3,0x91,0x00,0x00,}}, {0x8A0F,2,{0xD3,0x92,0x00,0x00,}}, {0x8A10,2,{0xD3,0x93,0x00,0x00,}}, {0x8A11,2,{0xD3,0x94,0x00,0x00,}}, {0x8A12,2,{0xD3,0x95,0x00,0x00,}}, {0x8A13,2,{0xD3,0x96,0x00,0x00,}}, {0x8A14,2,{0xD3,0x97,0x00,0x00,}}, {0x8A15,2,{0xD3,0x98,0x00,0x00,}}, {0x8A16,2,{0xD3,0x99,0x00,0x00,}}, {0x8A17,2,{0xD3,0x9A,0x00,0x00,}}, {0x8A18,2,{0xD3,0x9B,0x00,0x00,}}, {0x8A19,2,{0xD3,0x9C,0x00,0x00,}}, {0x8A1A,2,{0xD3,0x9D,0x00,0x00,}}, {0x8A1B,2,{0xD3,0x9E,0x00,0x00,}}, {0x8A1C,2,{0xD3,0x9F,0x00,0x00,}}, {0x8A1D,2,{0xD3,0xA0,0x00,0x00,}}, {0x8A1E,2,{0xD4,0x40,0x00,0x00,}}, {0x8A1F,2,{0xD4,0x41,0x00,0x00,}}, {0x8A20,2,{0xD4,0x42,0x00,0x00,}}, {0x8A21,2,{0xD4,0x43,0x00,0x00,}}, {0x8A22,2,{0xD4,0x44,0x00,0x00,}}, {0x8A23,2,{0xD4,0x45,0x00,0x00,}}, {0x8A24,2,{0xD4,0x46,0x00,0x00,}}, {0x8A25,2,{0xD4,0x47,0x00,0x00,}}, {0x8A26,2,{0xD4,0x48,0x00,0x00,}}, {0x8A27,2,{0xD4,0x49,0x00,0x00,}}, {0x8A28,2,{0xD4,0x4A,0x00,0x00,}}, {0x8A29,2,{0xD4,0x4B,0x00,0x00,}}, {0x8A2A,2,{0xD4,0x4C,0x00,0x00,}}, {0x8A2B,2,{0xD4,0x4D,0x00,0x00,}}, {0x8A2C,2,{0xD4,0x4E,0x00,0x00,}}, {0x8A2D,2,{0xD4,0x4F,0x00,0x00,}}, {0x8A2E,2,{0xD4,0x50,0x00,0x00,}}, {0x8A2F,2,{0xD4,0x51,0x00,0x00,}}, {0x8A30,2,{0xD4,0x52,0x00,0x00,}}, {0x8A31,2,{0xD4,0x53,0x00,0x00,}}, {0x8A32,2,{0xD4,0x54,0x00,0x00,}}, {0x8A33,2,{0xD4,0x55,0x00,0x00,}}, {0x8A34,2,{0xD4,0x56,0x00,0x00,}}, {0x8A35,2,{0xD4,0x57,0x00,0x00,}}, {0x8A36,2,{0xD4,0x58,0x00,0x00,}}, {0x8A37,2,{0xD4,0x59,0x00,0x00,}}, {0x8A38,2,{0xD4,0x5A,0x00,0x00,}}, {0x8A39,2,{0xD4,0x5B,0x00,0x00,}}, {0x8A3A,2,{0xD4,0x5C,0x00,0x00,}}, {0x8A3B,2,{0xD4,0x5D,0x00,0x00,}}, {0x8A3C,2,{0xD4,0x5E,0x00,0x00,}}, {0x8A3D,2,{0xD4,0x5F,0x00,0x00,}}, {0x8A3E,2,{0xF6,0xA4,0x00,0x00,}}, {0x8A3F,2,{0xD4,0x60,0x00,0x00,}}, {0x8A40,2,{0xD4,0x61,0x00,0x00,}}, {0x8A41,2,{0xD4,0x62,0x00,0x00,}}, {0x8A42,2,{0xD4,0x63,0x00,0x00,}}, {0x8A43,2,{0xD4,0x64,0x00,0x00,}}, {0x8A44,2,{0xD4,0x65,0x00,0x00,}}, {0x8A45,2,{0xD4,0x66,0x00,0x00,}}, {0x8A46,2,{0xD4,0x67,0x00,0x00,}}, {0x8A47,2,{0xD4,0x68,0x00,0x00,}}, {0x8A48,2,{0xEE,0xBA,0x00,0x00,}}, {0x8A49,2,{0xD4,0x69,0x00,0x00,}}, {0x8A4A,2,{0xD4,0x6A,0x00,0x00,}}, {0x8A4B,2,{0xD4,0x6B,0x00,0x00,}}, {0x8A4C,2,{0xD4,0x6C,0x00,0x00,}}, {0x8A4D,2,{0xD4,0x6D,0x00,0x00,}}, {0x8A4E,2,{0xD4,0x6E,0x00,0x00,}}, {0x8A4F,2,{0xD4,0x6F,0x00,0x00,}}, {0x8A50,2,{0xD4,0x70,0x00,0x00,}}, {0x8A51,2,{0xD4,0x71,0x00,0x00,}}, {0x8A52,2,{0xD4,0x72,0x00,0x00,}}, {0x8A53,2,{0xD4,0x73,0x00,0x00,}}, {0x8A54,2,{0xD4,0x74,0x00,0x00,}}, {0x8A55,2,{0xD4,0x75,0x00,0x00,}}, {0x8A56,2,{0xD4,0x76,0x00,0x00,}}, {0x8A57,2,{0xD4,0x77,0x00,0x00,}}, {0x8A58,2,{0xD4,0x78,0x00,0x00,}}, {0x8A59,2,{0xD4,0x79,0x00,0x00,}}, {0x8A5A,2,{0xD4,0x7A,0x00,0x00,}}, {0x8A5B,2,{0xD4,0x7B,0x00,0x00,}}, {0x8A5C,2,{0xD4,0x7C,0x00,0x00,}}, {0x8A5D,2,{0xD4,0x7D,0x00,0x00,}}, {0x8A5E,2,{0xD4,0x7E,0x00,0x00,}}, {0x8A5F,2,{0xD4,0x80,0x00,0x00,}}, {0x8A60,2,{0xD4,0x81,0x00,0x00,}}, {0x8A61,2,{0xD4,0x82,0x00,0x00,}}, {0x8A62,2,{0xD4,0x83,0x00,0x00,}}, {0x8A63,2,{0xD4,0x84,0x00,0x00,}}, {0x8A64,2,{0xD4,0x85,0x00,0x00,}}, {0x8A65,2,{0xD4,0x86,0x00,0x00,}}, {0x8A66,2,{0xD4,0x87,0x00,0x00,}}, {0x8A67,2,{0xD4,0x88,0x00,0x00,}}, {0x8A68,2,{0xD4,0x89,0x00,0x00,}}, {0x8A69,2,{0xD4,0x8A,0x00,0x00,}}, {0x8A6A,2,{0xD4,0x8B,0x00,0x00,}}, {0x8A6B,2,{0xD4,0x8C,0x00,0x00,}}, {0x8A6C,2,{0xD4,0x8D,0x00,0x00,}}, {0x8A6D,2,{0xD4,0x8E,0x00,0x00,}}, {0x8A6E,2,{0xD4,0x8F,0x00,0x00,}}, {0x8A6F,2,{0xD4,0x90,0x00,0x00,}}, {0x8A70,2,{0xD4,0x91,0x00,0x00,}}, {0x8A71,2,{0xD4,0x92,0x00,0x00,}}, {0x8A72,2,{0xD4,0x93,0x00,0x00,}}, {0x8A73,2,{0xD4,0x94,0x00,0x00,}}, {0x8A74,2,{0xD4,0x95,0x00,0x00,}}, {0x8A75,2,{0xD4,0x96,0x00,0x00,}}, {0x8A76,2,{0xD4,0x97,0x00,0x00,}}, {0x8A77,2,{0xD4,0x98,0x00,0x00,}}, {0x8A78,2,{0xD4,0x99,0x00,0x00,}}, {0x8A79,2,{0xD5,0xB2,0x00,0x00,}}, {0x8A7A,2,{0xD4,0x9A,0x00,0x00,}}, {0x8A7B,2,{0xD4,0x9B,0x00,0x00,}}, {0x8A7C,2,{0xD4,0x9C,0x00,0x00,}}, {0x8A7D,2,{0xD4,0x9D,0x00,0x00,}}, {0x8A7E,2,{0xD4,0x9E,0x00,0x00,}}, {0x8A7F,2,{0xD4,0x9F,0x00,0x00,}}, {0x8A80,2,{0xD4,0xA0,0x00,0x00,}}, {0x8A81,2,{0xD5,0x40,0x00,0x00,}}, {0x8A82,2,{0xD5,0x41,0x00,0x00,}}, {0x8A83,2,{0xD5,0x42,0x00,0x00,}}, {0x8A84,2,{0xD5,0x43,0x00,0x00,}}, {0x8A85,2,{0xD5,0x44,0x00,0x00,}}, {0x8A86,2,{0xD5,0x45,0x00,0x00,}}, {0x8A87,2,{0xD5,0x46,0x00,0x00,}}, {0x8A88,2,{0xD5,0x47,0x00,0x00,}}, {0x8A89,2,{0xD3,0xFE,0x00,0x00,}}, {0x8A8A,2,{0xCC,0xDC,0x00,0x00,}}, {0x8A8B,2,{0xD5,0x48,0x00,0x00,}}, {0x8A8C,2,{0xD5,0x49,0x00,0x00,}}, {0x8A8D,2,{0xD5,0x4A,0x00,0x00,}}, {0x8A8E,2,{0xD5,0x4B,0x00,0x00,}}, {0x8A8F,2,{0xD5,0x4C,0x00,0x00,}}, {0x8A90,2,{0xD5,0x4D,0x00,0x00,}}, {0x8A91,2,{0xD5,0x4E,0x00,0x00,}}, {0x8A92,2,{0xD5,0x4F,0x00,0x00,}}, {0x8A93,2,{0xCA,0xC4,0x00,0x00,}}, {0x8A94,2,{0xD5,0x50,0x00,0x00,}}, {0x8A95,2,{0xD5,0x51,0x00,0x00,}}, {0x8A96,2,{0xD5,0x52,0x00,0x00,}}, {0x8A97,2,{0xD5,0x53,0x00,0x00,}}, {0x8A98,2,{0xD5,0x54,0x00,0x00,}}, {0x8A99,2,{0xD5,0x55,0x00,0x00,}}, {0x8A9A,2,{0xD5,0x56,0x00,0x00,}}, {0x8A9B,2,{0xD5,0x57,0x00,0x00,}}, {0x8A9C,2,{0xD5,0x58,0x00,0x00,}}, {0x8A9D,2,{0xD5,0x59,0x00,0x00,}}, {0x8A9E,2,{0xD5,0x5A,0x00,0x00,}}, {0x8A9F,2,{0xD5,0x5B,0x00,0x00,}}, {0x8AA0,2,{0xD5,0x5C,0x00,0x00,}}, {0x8AA1,2,{0xD5,0x5D,0x00,0x00,}}, {0x8AA2,2,{0xD5,0x5E,0x00,0x00,}}, {0x8AA3,2,{0xD5,0x5F,0x00,0x00,}}, {0x8AA4,2,{0xD5,0x60,0x00,0x00,}}, {0x8AA5,2,{0xD5,0x61,0x00,0x00,}}, {0x8AA6,2,{0xD5,0x62,0x00,0x00,}}, {0x8AA7,2,{0xD5,0x63,0x00,0x00,}}, {0x8AA8,2,{0xD5,0x64,0x00,0x00,}}, {0x8AA9,2,{0xD5,0x65,0x00,0x00,}}, {0x8AAA,2,{0xD5,0x66,0x00,0x00,}}, {0x8AAB,2,{0xD5,0x67,0x00,0x00,}}, {0x8AAC,2,{0xD5,0x68,0x00,0x00,}}, {0x8AAD,2,{0xD5,0x69,0x00,0x00,}}, {0x8AAE,2,{0xD5,0x6A,0x00,0x00,}}, {0x8AAF,2,{0xD5,0x6B,0x00,0x00,}}, {0x8AB0,2,{0xD5,0x6C,0x00,0x00,}}, {0x8AB1,2,{0xD5,0x6D,0x00,0x00,}}, {0x8AB2,2,{0xD5,0x6E,0x00,0x00,}}, {0x8AB3,2,{0xD5,0x6F,0x00,0x00,}}, {0x8AB4,2,{0xD5,0x70,0x00,0x00,}}, {0x8AB5,2,{0xD5,0x71,0x00,0x00,}}, {0x8AB6,2,{0xD5,0x72,0x00,0x00,}}, {0x8AB7,2,{0xD5,0x73,0x00,0x00,}}, {0x8AB8,2,{0xD5,0x74,0x00,0x00,}}, {0x8AB9,2,{0xD5,0x75,0x00,0x00,}}, {0x8ABA,2,{0xD5,0x76,0x00,0x00,}}, {0x8ABB,2,{0xD5,0x77,0x00,0x00,}}, {0x8ABC,2,{0xD5,0x78,0x00,0x00,}}, {0x8ABD,2,{0xD5,0x79,0x00,0x00,}}, {0x8ABE,2,{0xD5,0x7A,0x00,0x00,}}, {0x8ABF,2,{0xD5,0x7B,0x00,0x00,}}, {0x8AC0,2,{0xD5,0x7C,0x00,0x00,}}, {0x8AC1,2,{0xD5,0x7D,0x00,0x00,}}, {0x8AC2,2,{0xD5,0x7E,0x00,0x00,}}, {0x8AC3,2,{0xD5,0x80,0x00,0x00,}}, {0x8AC4,2,{0xD5,0x81,0x00,0x00,}}, {0x8AC5,2,{0xD5,0x82,0x00,0x00,}}, {0x8AC6,2,{0xD5,0x83,0x00,0x00,}}, {0x8AC7,2,{0xD5,0x84,0x00,0x00,}}, {0x8AC8,2,{0xD5,0x85,0x00,0x00,}}, {0x8AC9,2,{0xD5,0x86,0x00,0x00,}}, {0x8ACA,2,{0xD5,0x87,0x00,0x00,}}, {0x8ACB,2,{0xD5,0x88,0x00,0x00,}}, {0x8ACC,2,{0xD5,0x89,0x00,0x00,}}, {0x8ACD,2,{0xD5,0x8A,0x00,0x00,}}, {0x8ACE,2,{0xD5,0x8B,0x00,0x00,}}, {0x8ACF,2,{0xD5,0x8C,0x00,0x00,}}, {0x8AD0,2,{0xD5,0x8D,0x00,0x00,}}, {0x8AD1,2,{0xD5,0x8E,0x00,0x00,}}, {0x8AD2,2,{0xD5,0x8F,0x00,0x00,}}, {0x8AD3,2,{0xD5,0x90,0x00,0x00,}}, {0x8AD4,2,{0xD5,0x91,0x00,0x00,}}, {0x8AD5,2,{0xD5,0x92,0x00,0x00,}}, {0x8AD6,2,{0xD5,0x93,0x00,0x00,}}, {0x8AD7,2,{0xD5,0x94,0x00,0x00,}}, {0x8AD8,2,{0xD5,0x95,0x00,0x00,}}, {0x8AD9,2,{0xD5,0x96,0x00,0x00,}}, {0x8ADA,2,{0xD5,0x97,0x00,0x00,}}, {0x8ADB,2,{0xD5,0x98,0x00,0x00,}}, {0x8ADC,2,{0xD5,0x99,0x00,0x00,}}, {0x8ADD,2,{0xD5,0x9A,0x00,0x00,}}, {0x8ADE,2,{0xD5,0x9B,0x00,0x00,}}, {0x8ADF,2,{0xD5,0x9C,0x00,0x00,}}, {0x8AE0,2,{0xD5,0x9D,0x00,0x00,}}, {0x8AE1,2,{0xD5,0x9E,0x00,0x00,}}, {0x8AE2,2,{0xD5,0x9F,0x00,0x00,}}, {0x8AE3,2,{0xD5,0xA0,0x00,0x00,}}, {0x8AE4,2,{0xD6,0x40,0x00,0x00,}}, {0x8AE5,2,{0xD6,0x41,0x00,0x00,}}, {0x8AE6,2,{0xD6,0x42,0x00,0x00,}}, {0x8AE7,2,{0xD6,0x43,0x00,0x00,}}, {0x8AE8,2,{0xD6,0x44,0x00,0x00,}}, {0x8AE9,2,{0xD6,0x45,0x00,0x00,}}, {0x8AEA,2,{0xD6,0x46,0x00,0x00,}}, {0x8AEB,2,{0xD6,0x47,0x00,0x00,}}, {0x8AEC,2,{0xD6,0x48,0x00,0x00,}}, {0x8AED,2,{0xD6,0x49,0x00,0x00,}}, {0x8AEE,2,{0xD6,0x4A,0x00,0x00,}}, {0x8AEF,2,{0xD6,0x4B,0x00,0x00,}}, {0x8AF0,2,{0xD6,0x4C,0x00,0x00,}}, {0x8AF1,2,{0xD6,0x4D,0x00,0x00,}}, {0x8AF2,2,{0xD6,0x4E,0x00,0x00,}}, {0x8AF3,2,{0xD6,0x4F,0x00,0x00,}}, {0x8AF4,2,{0xD6,0x50,0x00,0x00,}}, {0x8AF5,2,{0xD6,0x51,0x00,0x00,}}, {0x8AF6,2,{0xD6,0x52,0x00,0x00,}}, {0x8AF7,2,{0xD6,0x53,0x00,0x00,}}, {0x8AF8,2,{0xD6,0x54,0x00,0x00,}}, {0x8AF9,2,{0xD6,0x55,0x00,0x00,}}, {0x8AFA,2,{0xD6,0x56,0x00,0x00,}}, {0x8AFB,2,{0xD6,0x57,0x00,0x00,}}, {0x8AFC,2,{0xD6,0x58,0x00,0x00,}}, {0x8AFD,2,{0xD6,0x59,0x00,0x00,}}, {0x8AFE,2,{0xD6,0x5A,0x00,0x00,}}, {0x8AFF,2,{0xD6,0x5B,0x00,0x00,}}, {0x8B00,2,{0xD6,0x5C,0x00,0x00,}}, {0x8B01,2,{0xD6,0x5D,0x00,0x00,}}, {0x8B02,2,{0xD6,0x5E,0x00,0x00,}}, {0x8B03,2,{0xD6,0x5F,0x00,0x00,}}, {0x8B04,2,{0xD6,0x60,0x00,0x00,}}, {0x8B05,2,{0xD6,0x61,0x00,0x00,}}, {0x8B06,2,{0xD6,0x62,0x00,0x00,}}, {0x8B07,2,{0xE5,0xC0,0x00,0x00,}}, {0x8B08,2,{0xD6,0x63,0x00,0x00,}}, {0x8B09,2,{0xD6,0x64,0x00,0x00,}}, {0x8B0A,2,{0xD6,0x65,0x00,0x00,}}, {0x8B0B,2,{0xD6,0x66,0x00,0x00,}}, {0x8B0C,2,{0xD6,0x67,0x00,0x00,}}, {0x8B0D,2,{0xD6,0x68,0x00,0x00,}}, {0x8B0E,2,{0xD6,0x69,0x00,0x00,}}, {0x8B0F,2,{0xD6,0x6A,0x00,0x00,}}, {0x8B10,2,{0xD6,0x6B,0x00,0x00,}}, {0x8B11,2,{0xD6,0x6C,0x00,0x00,}}, {0x8B12,2,{0xD6,0x6D,0x00,0x00,}}, {0x8B13,2,{0xD6,0x6E,0x00,0x00,}}, {0x8B14,2,{0xD6,0x6F,0x00,0x00,}}, {0x8B15,2,{0xD6,0x70,0x00,0x00,}}, {0x8B16,2,{0xD6,0x71,0x00,0x00,}}, {0x8B17,2,{0xD6,0x72,0x00,0x00,}}, {0x8B18,2,{0xD6,0x73,0x00,0x00,}}, {0x8B19,2,{0xD6,0x74,0x00,0x00,}}, {0x8B1A,2,{0xD6,0x75,0x00,0x00,}}, {0x8B1B,2,{0xD6,0x76,0x00,0x00,}}, {0x8B1C,2,{0xD6,0x77,0x00,0x00,}}, {0x8B1D,2,{0xD6,0x78,0x00,0x00,}}, {0x8B1E,2,{0xD6,0x79,0x00,0x00,}}, {0x8B1F,2,{0xD6,0x7A,0x00,0x00,}}, {0x8B20,2,{0xD6,0x7B,0x00,0x00,}}, {0x8B21,2,{0xD6,0x7C,0x00,0x00,}}, {0x8B22,2,{0xD6,0x7D,0x00,0x00,}}, {0x8B23,2,{0xD6,0x7E,0x00,0x00,}}, {0x8B24,2,{0xD6,0x80,0x00,0x00,}}, {0x8B25,2,{0xD6,0x81,0x00,0x00,}}, {0x8B26,2,{0xF6,0xA5,0x00,0x00,}}, {0x8B27,2,{0xD6,0x82,0x00,0x00,}}, {0x8B28,2,{0xD6,0x83,0x00,0x00,}}, {0x8B29,2,{0xD6,0x84,0x00,0x00,}}, {0x8B2A,2,{0xD6,0x85,0x00,0x00,}}, {0x8B2B,2,{0xD6,0x86,0x00,0x00,}}, {0x8B2C,2,{0xD6,0x87,0x00,0x00,}}, {0x8B2D,2,{0xD6,0x88,0x00,0x00,}}, {0x8B2E,2,{0xD6,0x89,0x00,0x00,}}, {0x8B2F,2,{0xD6,0x8A,0x00,0x00,}}, {0x8B30,2,{0xD6,0x8B,0x00,0x00,}}, {0x8B31,2,{0xD6,0x8C,0x00,0x00,}}, {0x8B32,2,{0xD6,0x8D,0x00,0x00,}}, {0x8B33,2,{0xD6,0x8E,0x00,0x00,}}, {0x8B34,2,{0xD6,0x8F,0x00,0x00,}}, {0x8B35,2,{0xD6,0x90,0x00,0x00,}}, {0x8B36,2,{0xD6,0x91,0x00,0x00,}}, {0x8B37,2,{0xD6,0x92,0x00,0x00,}}, {0x8B38,2,{0xD6,0x93,0x00,0x00,}}, {0x8B39,2,{0xD6,0x94,0x00,0x00,}}, {0x8B3A,2,{0xD6,0x95,0x00,0x00,}}, {0x8B3B,2,{0xD6,0x96,0x00,0x00,}}, {0x8B3C,2,{0xD6,0x97,0x00,0x00,}}, {0x8B3D,2,{0xD6,0x98,0x00,0x00,}}, {0x8B3E,2,{0xD6,0x99,0x00,0x00,}}, {0x8B3F,2,{0xD6,0x9A,0x00,0x00,}}, {0x8B40,2,{0xD6,0x9B,0x00,0x00,}}, {0x8B41,2,{0xD6,0x9C,0x00,0x00,}}, {0x8B42,2,{0xD6,0x9D,0x00,0x00,}}, {0x8B43,2,{0xD6,0x9E,0x00,0x00,}}, {0x8B44,2,{0xD6,0x9F,0x00,0x00,}}, {0x8B45,2,{0xD6,0xA0,0x00,0x00,}}, {0x8B46,2,{0xD7,0x40,0x00,0x00,}}, {0x8B47,2,{0xD7,0x41,0x00,0x00,}}, {0x8B48,2,{0xD7,0x42,0x00,0x00,}}, {0x8B49,2,{0xD7,0x43,0x00,0x00,}}, {0x8B4A,2,{0xD7,0x44,0x00,0x00,}}, {0x8B4B,2,{0xD7,0x45,0x00,0x00,}}, {0x8B4C,2,{0xD7,0x46,0x00,0x00,}}, {0x8B4D,2,{0xD7,0x47,0x00,0x00,}}, {0x8B4E,2,{0xD7,0x48,0x00,0x00,}}, {0x8B4F,2,{0xD7,0x49,0x00,0x00,}}, {0x8B50,2,{0xD7,0x4A,0x00,0x00,}}, {0x8B51,2,{0xD7,0x4B,0x00,0x00,}}, {0x8B52,2,{0xD7,0x4C,0x00,0x00,}}, {0x8B53,2,{0xD7,0x4D,0x00,0x00,}}, {0x8B54,2,{0xD7,0x4E,0x00,0x00,}}, {0x8B55,2,{0xD7,0x4F,0x00,0x00,}}, {0x8B56,2,{0xD7,0x50,0x00,0x00,}}, {0x8B57,2,{0xD7,0x51,0x00,0x00,}}, {0x8B58,2,{0xD7,0x52,0x00,0x00,}}, {0x8B59,2,{0xD7,0x53,0x00,0x00,}}, {0x8B5A,2,{0xD7,0x54,0x00,0x00,}}, {0x8B5B,2,{0xD7,0x55,0x00,0x00,}}, {0x8B5C,2,{0xD7,0x56,0x00,0x00,}}, {0x8B5D,2,{0xD7,0x57,0x00,0x00,}}, {0x8B5E,2,{0xD7,0x58,0x00,0x00,}}, {0x8B5F,2,{0xD7,0x59,0x00,0x00,}}, {0x8B60,2,{0xD7,0x5A,0x00,0x00,}}, {0x8B61,2,{0xD7,0x5B,0x00,0x00,}}, {0x8B62,2,{0xD7,0x5C,0x00,0x00,}}, {0x8B63,2,{0xD7,0x5D,0x00,0x00,}}, {0x8B64,2,{0xD7,0x5E,0x00,0x00,}}, {0x8B65,2,{0xD7,0x5F,0x00,0x00,}}, {0x8B66,2,{0xBE,0xAF,0x00,0x00,}}, {0x8B67,2,{0xD7,0x60,0x00,0x00,}}, {0x8B68,2,{0xD7,0x61,0x00,0x00,}}, {0x8B69,2,{0xD7,0x62,0x00,0x00,}}, {0x8B6A,2,{0xD7,0x63,0x00,0x00,}}, {0x8B6B,2,{0xD7,0x64,0x00,0x00,}}, {0x8B6C,2,{0xC6,0xA9,0x00,0x00,}}, {0x8B6D,2,{0xD7,0x65,0x00,0x00,}}, {0x8B6E,2,{0xD7,0x66,0x00,0x00,}}, {0x8B6F,2,{0xD7,0x67,0x00,0x00,}}, {0x8B70,2,{0xD7,0x68,0x00,0x00,}}, {0x8B71,2,{0xD7,0x69,0x00,0x00,}}, {0x8B72,2,{0xD7,0x6A,0x00,0x00,}}, {0x8B73,2,{0xD7,0x6B,0x00,0x00,}}, {0x8B74,2,{0xD7,0x6C,0x00,0x00,}}, {0x8B75,2,{0xD7,0x6D,0x00,0x00,}}, {0x8B76,2,{0xD7,0x6E,0x00,0x00,}}, {0x8B77,2,{0xD7,0x6F,0x00,0x00,}}, {0x8B78,2,{0xD7,0x70,0x00,0x00,}}, {0x8B79,2,{0xD7,0x71,0x00,0x00,}}, {0x8B7A,2,{0xD7,0x72,0x00,0x00,}}, {0x8B7B,2,{0xD7,0x73,0x00,0x00,}}, {0x8B7C,2,{0xD7,0x74,0x00,0x00,}}, {0x8B7D,2,{0xD7,0x75,0x00,0x00,}}, {0x8B7E,2,{0xD7,0x76,0x00,0x00,}}, {0x8B7F,2,{0xD7,0x77,0x00,0x00,}}, {0x8B80,2,{0xD7,0x78,0x00,0x00,}}, {0x8B81,2,{0xD7,0x79,0x00,0x00,}}, {0x8B82,2,{0xD7,0x7A,0x00,0x00,}}, {0x8B83,2,{0xD7,0x7B,0x00,0x00,}}, {0x8B84,2,{0xD7,0x7C,0x00,0x00,}}, {0x8B85,2,{0xD7,0x7D,0x00,0x00,}}, {0x8B86,2,{0xD7,0x7E,0x00,0x00,}}, {0x8B87,2,{0xD7,0x80,0x00,0x00,}}, {0x8B88,2,{0xD7,0x81,0x00,0x00,}}, {0x8B89,2,{0xD7,0x82,0x00,0x00,}}, {0x8B8A,2,{0xD7,0x83,0x00,0x00,}}, {0x8B8B,2,{0xD7,0x84,0x00,0x00,}}, {0x8B8C,2,{0xD7,0x85,0x00,0x00,}}, {0x8B8D,2,{0xD7,0x86,0x00,0x00,}}, {0x8B8E,2,{0xD7,0x87,0x00,0x00,}}, {0x8B8F,2,{0xD7,0x88,0x00,0x00,}}, {0x8B90,2,{0xD7,0x89,0x00,0x00,}}, {0x8B91,2,{0xD7,0x8A,0x00,0x00,}}, {0x8B92,2,{0xD7,0x8B,0x00,0x00,}}, {0x8B93,2,{0xD7,0x8C,0x00,0x00,}}, {0x8B94,2,{0xD7,0x8D,0x00,0x00,}}, {0x8B95,2,{0xD7,0x8E,0x00,0x00,}}, {0x8B96,2,{0xD7,0x8F,0x00,0x00,}}, {0x8B97,2,{0xD7,0x90,0x00,0x00,}}, {0x8B98,2,{0xD7,0x91,0x00,0x00,}}, {0x8B99,2,{0xD7,0x92,0x00,0x00,}}, {0x8B9A,2,{0xD7,0x93,0x00,0x00,}}, {0x8B9B,2,{0xD7,0x94,0x00,0x00,}}, {0x8B9C,2,{0xD7,0x95,0x00,0x00,}}, {0x8B9D,2,{0xD7,0x96,0x00,0x00,}}, {0x8B9E,2,{0xD7,0x97,0x00,0x00,}}, {0x8B9F,2,{0xD7,0x98,0x00,0x00,}}, {0x8BA0,2,{0xDA,0xA5,0x00,0x00,}}, {0x8BA1,2,{0xBC,0xC6,0x00,0x00,}}, {0x8BA2,2,{0xB6,0xA9,0x00,0x00,}}, {0x8BA3,2,{0xB8,0xBC,0x00,0x00,}}, {0x8BA4,2,{0xC8,0xCF,0x00,0x00,}}, {0x8BA5,2,{0xBC,0xA5,0x00,0x00,}}, {0x8BA6,2,{0xDA,0xA6,0x00,0x00,}}, {0x8BA7,2,{0xDA,0xA7,0x00,0x00,}}, {0x8BA8,2,{0xCC,0xD6,0x00,0x00,}}, {0x8BA9,2,{0xC8,0xC3,0x00,0x00,}}, {0x8BAA,2,{0xDA,0xA8,0x00,0x00,}}, {0x8BAB,2,{0xC6,0xFD,0x00,0x00,}}, {0x8BAC,2,{0xD7,0x99,0x00,0x00,}}, {0x8BAD,2,{0xD1,0xB5,0x00,0x00,}}, {0x8BAE,2,{0xD2,0xE9,0x00,0x00,}}, {0x8BAF,2,{0xD1,0xB6,0x00,0x00,}}, {0x8BB0,2,{0xBC,0xC7,0x00,0x00,}}, {0x8BB1,2,{0xD7,0x9A,0x00,0x00,}}, {0x8BB2,2,{0xBD,0xB2,0x00,0x00,}}, {0x8BB3,2,{0xBB,0xE4,0x00,0x00,}}, {0x8BB4,2,{0xDA,0xA9,0x00,0x00,}}, {0x8BB5,2,{0xDA,0xAA,0x00,0x00,}}, {0x8BB6,2,{0xD1,0xC8,0x00,0x00,}}, {0x8BB7,2,{0xDA,0xAB,0x00,0x00,}}, {0x8BB8,2,{0xD0,0xED,0x00,0x00,}}, {0x8BB9,2,{0xB6,0xEF,0x00,0x00,}}, {0x8BBA,2,{0xC2,0xDB,0x00,0x00,}}, {0x8BBB,2,{0xD7,0x9B,0x00,0x00,}}, {0x8BBC,2,{0xCB,0xCF,0x00,0x00,}}, {0x8BBD,2,{0xB7,0xED,0x00,0x00,}}, {0x8BBE,2,{0xC9,0xE8,0x00,0x00,}}, {0x8BBF,2,{0xB7,0xC3,0x00,0x00,}}, {0x8BC0,2,{0xBE,0xF7,0x00,0x00,}}, {0x8BC1,2,{0xD6,0xA4,0x00,0x00,}}, {0x8BC2,2,{0xDA,0xAC,0x00,0x00,}}, {0x8BC3,2,{0xDA,0xAD,0x00,0x00,}}, {0x8BC4,2,{0xC6,0xC0,0x00,0x00,}}, {0x8BC5,2,{0xD7,0xE7,0x00,0x00,}}, {0x8BC6,2,{0xCA,0xB6,0x00,0x00,}}, {0x8BC7,2,{0xD7,0x9C,0x00,0x00,}}, {0x8BC8,2,{0xD5,0xA9,0x00,0x00,}}, {0x8BC9,2,{0xCB,0xDF,0x00,0x00,}}, {0x8BCA,2,{0xD5,0xEF,0x00,0x00,}}, {0x8BCB,2,{0xDA,0xAE,0x00,0x00,}}, {0x8BCC,2,{0xD6,0xDF,0x00,0x00,}}, {0x8BCD,2,{0xB4,0xCA,0x00,0x00,}}, {0x8BCE,2,{0xDA,0xB0,0x00,0x00,}}, {0x8BCF,2,{0xDA,0xAF,0x00,0x00,}}, {0x8BD0,2,{0xD7,0x9D,0x00,0x00,}}, {0x8BD1,2,{0xD2,0xEB,0x00,0x00,}}, {0x8BD2,2,{0xDA,0xB1,0x00,0x00,}}, {0x8BD3,2,{0xDA,0xB2,0x00,0x00,}}, {0x8BD4,2,{0xDA,0xB3,0x00,0x00,}}, {0x8BD5,2,{0xCA,0xD4,0x00,0x00,}}, {0x8BD6,2,{0xDA,0xB4,0x00,0x00,}}, {0x8BD7,2,{0xCA,0xAB,0x00,0x00,}}, {0x8BD8,2,{0xDA,0xB5,0x00,0x00,}}, {0x8BD9,2,{0xDA,0xB6,0x00,0x00,}}, {0x8BDA,2,{0xB3,0xCF,0x00,0x00,}}, {0x8BDB,2,{0xD6,0xEF,0x00,0x00,}}, {0x8BDC,2,{0xDA,0xB7,0x00,0x00,}}, {0x8BDD,2,{0xBB,0xB0,0x00,0x00,}}, {0x8BDE,2,{0xB5,0xAE,0x00,0x00,}}, {0x8BDF,2,{0xDA,0xB8,0x00,0x00,}}, {0x8BE0,2,{0xDA,0xB9,0x00,0x00,}}, {0x8BE1,2,{0xB9,0xEE,0x00,0x00,}}, {0x8BE2,2,{0xD1,0xAF,0x00,0x00,}}, {0x8BE3,2,{0xD2,0xE8,0x00,0x00,}}, {0x8BE4,2,{0xDA,0xBA,0x00,0x00,}}, {0x8BE5,2,{0xB8,0xC3,0x00,0x00,}}, {0x8BE6,2,{0xCF,0xEA,0x00,0x00,}}, {0x8BE7,2,{0xB2,0xEF,0x00,0x00,}}, {0x8BE8,2,{0xDA,0xBB,0x00,0x00,}}, {0x8BE9,2,{0xDA,0xBC,0x00,0x00,}}, {0x8BEA,2,{0xD7,0x9E,0x00,0x00,}}, {0x8BEB,2,{0xBD,0xEB,0x00,0x00,}}, {0x8BEC,2,{0xCE,0xDC,0x00,0x00,}}, {0x8BED,2,{0xD3,0xEF,0x00,0x00,}}, {0x8BEE,2,{0xDA,0xBD,0x00,0x00,}}, {0x8BEF,2,{0xCE,0xF3,0x00,0x00,}}, {0x8BF0,2,{0xDA,0xBE,0x00,0x00,}}, {0x8BF1,2,{0xD3,0xD5,0x00,0x00,}}, {0x8BF2,2,{0xBB,0xE5,0x00,0x00,}}, {0x8BF3,2,{0xDA,0xBF,0x00,0x00,}}, {0x8BF4,2,{0xCB,0xB5,0x00,0x00,}}, {0x8BF5,2,{0xCB,0xD0,0x00,0x00,}}, {0x8BF6,2,{0xDA,0xC0,0x00,0x00,}}, {0x8BF7,2,{0xC7,0xEB,0x00,0x00,}}, {0x8BF8,2,{0xD6,0xEE,0x00,0x00,}}, {0x8BF9,2,{0xDA,0xC1,0x00,0x00,}}, {0x8BFA,2,{0xC5,0xB5,0x00,0x00,}}, {0x8BFB,2,{0xB6,0xC1,0x00,0x00,}}, {0x8BFC,2,{0xDA,0xC2,0x00,0x00,}}, {0x8BFD,2,{0xB7,0xCC,0x00,0x00,}}, {0x8BFE,2,{0xBF,0xCE,0x00,0x00,}}, {0x8BFF,2,{0xDA,0xC3,0x00,0x00,}}, {0x8C00,2,{0xDA,0xC4,0x00,0x00,}}, {0x8C01,2,{0xCB,0xAD,0x00,0x00,}}, {0x8C02,2,{0xDA,0xC5,0x00,0x00,}}, {0x8C03,2,{0xB5,0xF7,0x00,0x00,}}, {0x8C04,2,{0xDA,0xC6,0x00,0x00,}}, {0x8C05,2,{0xC1,0xC2,0x00,0x00,}}, {0x8C06,2,{0xD7,0xBB,0x00,0x00,}}, {0x8C07,2,{0xDA,0xC7,0x00,0x00,}}, {0x8C08,2,{0xCC,0xB8,0x00,0x00,}}, {0x8C09,2,{0xD7,0x9F,0x00,0x00,}}, {0x8C0A,2,{0xD2,0xEA,0x00,0x00,}}, {0x8C0B,2,{0xC4,0xB1,0x00,0x00,}}, {0x8C0C,2,{0xDA,0xC8,0x00,0x00,}}, {0x8C0D,2,{0xB5,0xFD,0x00,0x00,}}, {0x8C0E,2,{0xBB,0xD1,0x00,0x00,}}, {0x8C0F,2,{0xDA,0xC9,0x00,0x00,}}, {0x8C10,2,{0xD0,0xB3,0x00,0x00,}}, {0x8C11,2,{0xDA,0xCA,0x00,0x00,}}, {0x8C12,2,{0xDA,0xCB,0x00,0x00,}}, {0x8C13,2,{0xCE,0xBD,0x00,0x00,}}, {0x8C14,2,{0xDA,0xCC,0x00,0x00,}}, {0x8C15,2,{0xDA,0xCD,0x00,0x00,}}, {0x8C16,2,{0xDA,0xCE,0x00,0x00,}}, {0x8C17,2,{0xB2,0xF7,0x00,0x00,}}, {0x8C18,2,{0xDA,0xD1,0x00,0x00,}}, {0x8C19,2,{0xDA,0xCF,0x00,0x00,}}, {0x8C1A,2,{0xD1,0xE8,0x00,0x00,}}, {0x8C1B,2,{0xDA,0xD0,0x00,0x00,}}, {0x8C1C,2,{0xC3,0xD5,0x00,0x00,}}, {0x8C1D,2,{0xDA,0xD2,0x00,0x00,}}, {0x8C1E,2,{0xD7,0xA0,0x00,0x00,}}, {0x8C1F,2,{0xDA,0xD3,0x00,0x00,}}, {0x8C20,2,{0xDA,0xD4,0x00,0x00,}}, {0x8C21,2,{0xDA,0xD5,0x00,0x00,}}, {0x8C22,2,{0xD0,0xBB,0x00,0x00,}}, {0x8C23,2,{0xD2,0xA5,0x00,0x00,}}, {0x8C24,2,{0xB0,0xF9,0x00,0x00,}}, {0x8C25,2,{0xDA,0xD6,0x00,0x00,}}, {0x8C26,2,{0xC7,0xAB,0x00,0x00,}}, {0x8C27,2,{0xDA,0xD7,0x00,0x00,}}, {0x8C28,2,{0xBD,0xF7,0x00,0x00,}}, {0x8C29,2,{0xC3,0xA1,0x00,0x00,}}, {0x8C2A,2,{0xDA,0xD8,0x00,0x00,}}, {0x8C2B,2,{0xDA,0xD9,0x00,0x00,}}, {0x8C2C,2,{0xC3,0xFD,0x00,0x00,}}, {0x8C2D,2,{0xCC,0xB7,0x00,0x00,}}, {0x8C2E,2,{0xDA,0xDA,0x00,0x00,}}, {0x8C2F,2,{0xDA,0xDB,0x00,0x00,}}, {0x8C30,2,{0xC0,0xBE,0x00,0x00,}}, {0x8C31,2,{0xC6,0xD7,0x00,0x00,}}, {0x8C32,2,{0xDA,0xDC,0x00,0x00,}}, {0x8C33,2,{0xDA,0xDD,0x00,0x00,}}, {0x8C34,2,{0xC7,0xB4,0x00,0x00,}}, {0x8C35,2,{0xDA,0xDE,0x00,0x00,}}, {0x8C36,2,{0xDA,0xDF,0x00,0x00,}}, {0x8C37,2,{0xB9,0xC8,0x00,0x00,}}, {0x8C38,2,{0xD8,0x40,0x00,0x00,}}, {0x8C39,2,{0xD8,0x41,0x00,0x00,}}, {0x8C3A,2,{0xD8,0x42,0x00,0x00,}}, {0x8C3B,2,{0xD8,0x43,0x00,0x00,}}, {0x8C3C,2,{0xD8,0x44,0x00,0x00,}}, {0x8C3D,2,{0xD8,0x45,0x00,0x00,}}, {0x8C3E,2,{0xD8,0x46,0x00,0x00,}}, {0x8C3F,2,{0xD8,0x47,0x00,0x00,}}, {0x8C40,2,{0xD8,0x48,0x00,0x00,}}, {0x8C41,2,{0xBB,0xED,0x00,0x00,}}, {0x8C42,2,{0xD8,0x49,0x00,0x00,}}, {0x8C43,2,{0xD8,0x4A,0x00,0x00,}}, {0x8C44,2,{0xD8,0x4B,0x00,0x00,}}, {0x8C45,2,{0xD8,0x4C,0x00,0x00,}}, {0x8C46,2,{0xB6,0xB9,0x00,0x00,}}, {0x8C47,2,{0xF4,0xF8,0x00,0x00,}}, {0x8C48,2,{0xD8,0x4D,0x00,0x00,}}, {0x8C49,2,{0xF4,0xF9,0x00,0x00,}}, {0x8C4A,2,{0xD8,0x4E,0x00,0x00,}}, {0x8C4B,2,{0xD8,0x4F,0x00,0x00,}}, {0x8C4C,2,{0xCD,0xE3,0x00,0x00,}}, {0x8C4D,2,{0xD8,0x50,0x00,0x00,}}, {0x8C4E,2,{0xD8,0x51,0x00,0x00,}}, {0x8C4F,2,{0xD8,0x52,0x00,0x00,}}, {0x8C50,2,{0xD8,0x53,0x00,0x00,}}, {0x8C51,2,{0xD8,0x54,0x00,0x00,}}, {0x8C52,2,{0xD8,0x55,0x00,0x00,}}, {0x8C53,2,{0xD8,0x56,0x00,0x00,}}, {0x8C54,2,{0xD8,0x57,0x00,0x00,}}, {0x8C55,2,{0xF5,0xB9,0x00,0x00,}}, {0x8C56,2,{0xD8,0x58,0x00,0x00,}}, {0x8C57,2,{0xD8,0x59,0x00,0x00,}}, {0x8C58,2,{0xD8,0x5A,0x00,0x00,}}, {0x8C59,2,{0xD8,0x5B,0x00,0x00,}}, {0x8C5A,2,{0xEB,0xE0,0x00,0x00,}}, {0x8C5B,2,{0xD8,0x5C,0x00,0x00,}}, {0x8C5C,2,{0xD8,0x5D,0x00,0x00,}}, {0x8C5D,2,{0xD8,0x5E,0x00,0x00,}}, {0x8C5E,2,{0xD8,0x5F,0x00,0x00,}}, {0x8C5F,2,{0xD8,0x60,0x00,0x00,}}, {0x8C60,2,{0xD8,0x61,0x00,0x00,}}, {0x8C61,2,{0xCF,0xF3,0x00,0x00,}}, {0x8C62,2,{0xBB,0xBF,0x00,0x00,}}, {0x8C63,2,{0xD8,0x62,0x00,0x00,}}, {0x8C64,2,{0xD8,0x63,0x00,0x00,}}, {0x8C65,2,{0xD8,0x64,0x00,0x00,}}, {0x8C66,2,{0xD8,0x65,0x00,0x00,}}, {0x8C67,2,{0xD8,0x66,0x00,0x00,}}, {0x8C68,2,{0xD8,0x67,0x00,0x00,}}, {0x8C69,2,{0xD8,0x68,0x00,0x00,}}, {0x8C6A,2,{0xBA,0xC0,0x00,0x00,}}, {0x8C6B,2,{0xD4,0xA5,0x00,0x00,}}, {0x8C6C,2,{0xD8,0x69,0x00,0x00,}}, {0x8C6D,2,{0xD8,0x6A,0x00,0x00,}}, {0x8C6E,2,{0xD8,0x6B,0x00,0x00,}}, {0x8C6F,2,{0xD8,0x6C,0x00,0x00,}}, {0x8C70,2,{0xD8,0x6D,0x00,0x00,}}, {0x8C71,2,{0xD8,0x6E,0x00,0x00,}}, {0x8C72,2,{0xD8,0x6F,0x00,0x00,}}, {0x8C73,2,{0xE1,0xD9,0x00,0x00,}}, {0x8C74,2,{0xD8,0x70,0x00,0x00,}}, {0x8C75,2,{0xD8,0x71,0x00,0x00,}}, {0x8C76,2,{0xD8,0x72,0x00,0x00,}}, {0x8C77,2,{0xD8,0x73,0x00,0x00,}}, {0x8C78,2,{0xF5,0xF4,0x00,0x00,}}, {0x8C79,2,{0xB1,0xAA,0x00,0x00,}}, {0x8C7A,2,{0xB2,0xF2,0x00,0x00,}}, {0x8C7B,2,{0xD8,0x74,0x00,0x00,}}, {0x8C7C,2,{0xD8,0x75,0x00,0x00,}}, {0x8C7D,2,{0xD8,0x76,0x00,0x00,}}, {0x8C7E,2,{0xD8,0x77,0x00,0x00,}}, {0x8C7F,2,{0xD8,0x78,0x00,0x00,}}, {0x8C80,2,{0xD8,0x79,0x00,0x00,}}, {0x8C81,2,{0xD8,0x7A,0x00,0x00,}}, {0x8C82,2,{0xF5,0xF5,0x00,0x00,}}, {0x8C83,2,{0xD8,0x7B,0x00,0x00,}}, {0x8C84,2,{0xD8,0x7C,0x00,0x00,}}, {0x8C85,2,{0xF5,0xF7,0x00,0x00,}}, {0x8C86,2,{0xD8,0x7D,0x00,0x00,}}, {0x8C87,2,{0xD8,0x7E,0x00,0x00,}}, {0x8C88,2,{0xD8,0x80,0x00,0x00,}}, {0x8C89,2,{0xBA,0xD1,0x00,0x00,}}, {0x8C8A,2,{0xF5,0xF6,0x00,0x00,}}, {0x8C8B,2,{0xD8,0x81,0x00,0x00,}}, {0x8C8C,2,{0xC3,0xB2,0x00,0x00,}}, {0x8C8D,2,{0xD8,0x82,0x00,0x00,}}, {0x8C8E,2,{0xD8,0x83,0x00,0x00,}}, {0x8C8F,2,{0xD8,0x84,0x00,0x00,}}, {0x8C90,2,{0xD8,0x85,0x00,0x00,}}, {0x8C91,2,{0xD8,0x86,0x00,0x00,}}, {0x8C92,2,{0xD8,0x87,0x00,0x00,}}, {0x8C93,2,{0xD8,0x88,0x00,0x00,}}, {0x8C94,2,{0xF5,0xF9,0x00,0x00,}}, {0x8C95,2,{0xD8,0x89,0x00,0x00,}}, {0x8C96,2,{0xD8,0x8A,0x00,0x00,}}, {0x8C97,2,{0xD8,0x8B,0x00,0x00,}}, {0x8C98,2,{0xF5,0xF8,0x00,0x00,}}, {0x8C99,2,{0xD8,0x8C,0x00,0x00,}}, {0x8C9A,2,{0xD8,0x8D,0x00,0x00,}}, {0x8C9B,2,{0xD8,0x8E,0x00,0x00,}}, {0x8C9C,2,{0xD8,0x8F,0x00,0x00,}}, {0x8C9D,2,{0xD8,0x90,0x00,0x00,}}, {0x8C9E,2,{0xD8,0x91,0x00,0x00,}}, {0x8C9F,2,{0xD8,0x92,0x00,0x00,}}, {0x8CA0,2,{0xD8,0x93,0x00,0x00,}}, {0x8CA1,2,{0xD8,0x94,0x00,0x00,}}, {0x8CA2,2,{0xD8,0x95,0x00,0x00,}}, {0x8CA3,2,{0xD8,0x96,0x00,0x00,}}, {0x8CA4,2,{0xD8,0x97,0x00,0x00,}}, {0x8CA5,2,{0xD8,0x98,0x00,0x00,}}, {0x8CA6,2,{0xD8,0x99,0x00,0x00,}}, {0x8CA7,2,{0xD8,0x9A,0x00,0x00,}}, {0x8CA8,2,{0xD8,0x9B,0x00,0x00,}}, {0x8CA9,2,{0xD8,0x9C,0x00,0x00,}}, {0x8CAA,2,{0xD8,0x9D,0x00,0x00,}}, {0x8CAB,2,{0xD8,0x9E,0x00,0x00,}}, {0x8CAC,2,{0xD8,0x9F,0x00,0x00,}}, {0x8CAD,2,{0xD8,0xA0,0x00,0x00,}}, {0x8CAE,2,{0xD9,0x40,0x00,0x00,}}, {0x8CAF,2,{0xD9,0x41,0x00,0x00,}}, {0x8CB0,2,{0xD9,0x42,0x00,0x00,}}, {0x8CB1,2,{0xD9,0x43,0x00,0x00,}}, {0x8CB2,2,{0xD9,0x44,0x00,0x00,}}, {0x8CB3,2,{0xD9,0x45,0x00,0x00,}}, {0x8CB4,2,{0xD9,0x46,0x00,0x00,}}, {0x8CB5,2,{0xD9,0x47,0x00,0x00,}}, {0x8CB6,2,{0xD9,0x48,0x00,0x00,}}, {0x8CB7,2,{0xD9,0x49,0x00,0x00,}}, {0x8CB8,2,{0xD9,0x4A,0x00,0x00,}}, {0x8CB9,2,{0xD9,0x4B,0x00,0x00,}}, {0x8CBA,2,{0xD9,0x4C,0x00,0x00,}}, {0x8CBB,2,{0xD9,0x4D,0x00,0x00,}}, {0x8CBC,2,{0xD9,0x4E,0x00,0x00,}}, {0x8CBD,2,{0xD9,0x4F,0x00,0x00,}}, {0x8CBE,2,{0xD9,0x50,0x00,0x00,}}, {0x8CBF,2,{0xD9,0x51,0x00,0x00,}}, {0x8CC0,2,{0xD9,0x52,0x00,0x00,}}, {0x8CC1,2,{0xD9,0x53,0x00,0x00,}}, {0x8CC2,2,{0xD9,0x54,0x00,0x00,}}, {0x8CC3,2,{0xD9,0x55,0x00,0x00,}}, {0x8CC4,2,{0xD9,0x56,0x00,0x00,}}, {0x8CC5,2,{0xD9,0x57,0x00,0x00,}}, {0x8CC6,2,{0xD9,0x58,0x00,0x00,}}, {0x8CC7,2,{0xD9,0x59,0x00,0x00,}}, {0x8CC8,2,{0xD9,0x5A,0x00,0x00,}}, {0x8CC9,2,{0xD9,0x5B,0x00,0x00,}}, {0x8CCA,2,{0xD9,0x5C,0x00,0x00,}}, {0x8CCB,2,{0xD9,0x5D,0x00,0x00,}}, {0x8CCC,2,{0xD9,0x5E,0x00,0x00,}}, {0x8CCD,2,{0xD9,0x5F,0x00,0x00,}}, {0x8CCE,2,{0xD9,0x60,0x00,0x00,}}, {0x8CCF,2,{0xD9,0x61,0x00,0x00,}}, {0x8CD0,2,{0xD9,0x62,0x00,0x00,}}, {0x8CD1,2,{0xD9,0x63,0x00,0x00,}}, {0x8CD2,2,{0xD9,0x64,0x00,0x00,}}, {0x8CD3,2,{0xD9,0x65,0x00,0x00,}}, {0x8CD4,2,{0xD9,0x66,0x00,0x00,}}, {0x8CD5,2,{0xD9,0x67,0x00,0x00,}}, {0x8CD6,2,{0xD9,0x68,0x00,0x00,}}, {0x8CD7,2,{0xD9,0x69,0x00,0x00,}}, {0x8CD8,2,{0xD9,0x6A,0x00,0x00,}}, {0x8CD9,2,{0xD9,0x6B,0x00,0x00,}}, {0x8CDA,2,{0xD9,0x6C,0x00,0x00,}}, {0x8CDB,2,{0xD9,0x6D,0x00,0x00,}}, {0x8CDC,2,{0xD9,0x6E,0x00,0x00,}}, {0x8CDD,2,{0xD9,0x6F,0x00,0x00,}}, {0x8CDE,2,{0xD9,0x70,0x00,0x00,}}, {0x8CDF,2,{0xD9,0x71,0x00,0x00,}}, {0x8CE0,2,{0xD9,0x72,0x00,0x00,}}, {0x8CE1,2,{0xD9,0x73,0x00,0x00,}}, {0x8CE2,2,{0xD9,0x74,0x00,0x00,}}, {0x8CE3,2,{0xD9,0x75,0x00,0x00,}}, {0x8CE4,2,{0xD9,0x76,0x00,0x00,}}, {0x8CE5,2,{0xD9,0x77,0x00,0x00,}}, {0x8CE6,2,{0xD9,0x78,0x00,0x00,}}, {0x8CE7,2,{0xD9,0x79,0x00,0x00,}}, {0x8CE8,2,{0xD9,0x7A,0x00,0x00,}}, {0x8CE9,2,{0xD9,0x7B,0x00,0x00,}}, {0x8CEA,2,{0xD9,0x7C,0x00,0x00,}}, {0x8CEB,2,{0xD9,0x7D,0x00,0x00,}}, {0x8CEC,2,{0xD9,0x7E,0x00,0x00,}}, {0x8CED,2,{0xD9,0x80,0x00,0x00,}}, {0x8CEE,2,{0xD9,0x81,0x00,0x00,}}, {0x8CEF,2,{0xD9,0x82,0x00,0x00,}}, {0x8CF0,2,{0xD9,0x83,0x00,0x00,}}, {0x8CF1,2,{0xD9,0x84,0x00,0x00,}}, {0x8CF2,2,{0xD9,0x85,0x00,0x00,}}, {0x8CF3,2,{0xD9,0x86,0x00,0x00,}}, {0x8CF4,2,{0xD9,0x87,0x00,0x00,}}, {0x8CF5,2,{0xD9,0x88,0x00,0x00,}}, {0x8CF6,2,{0xD9,0x89,0x00,0x00,}}, {0x8CF7,2,{0xD9,0x8A,0x00,0x00,}}, {0x8CF8,2,{0xD9,0x8B,0x00,0x00,}}, {0x8CF9,2,{0xD9,0x8C,0x00,0x00,}}, {0x8CFA,2,{0xD9,0x8D,0x00,0x00,}}, {0x8CFB,2,{0xD9,0x8E,0x00,0x00,}}, {0x8CFC,2,{0xD9,0x8F,0x00,0x00,}}, {0x8CFD,2,{0xD9,0x90,0x00,0x00,}}, {0x8CFE,2,{0xD9,0x91,0x00,0x00,}}, {0x8CFF,2,{0xD9,0x92,0x00,0x00,}}, {0x8D00,2,{0xD9,0x93,0x00,0x00,}}, {0x8D01,2,{0xD9,0x94,0x00,0x00,}}, {0x8D02,2,{0xD9,0x95,0x00,0x00,}}, {0x8D03,2,{0xD9,0x96,0x00,0x00,}}, {0x8D04,2,{0xD9,0x97,0x00,0x00,}}, {0x8D05,2,{0xD9,0x98,0x00,0x00,}}, {0x8D06,2,{0xD9,0x99,0x00,0x00,}}, {0x8D07,2,{0xD9,0x9A,0x00,0x00,}}, {0x8D08,2,{0xD9,0x9B,0x00,0x00,}}, {0x8D09,2,{0xD9,0x9C,0x00,0x00,}}, {0x8D0A,2,{0xD9,0x9D,0x00,0x00,}}, {0x8D0B,2,{0xD9,0x9E,0x00,0x00,}}, {0x8D0C,2,{0xD9,0x9F,0x00,0x00,}}, {0x8D0D,2,{0xD9,0xA0,0x00,0x00,}}, {0x8D0E,2,{0xDA,0x40,0x00,0x00,}}, {0x8D0F,2,{0xDA,0x41,0x00,0x00,}}, {0x8D10,2,{0xDA,0x42,0x00,0x00,}}, {0x8D11,2,{0xDA,0x43,0x00,0x00,}}, {0x8D12,2,{0xDA,0x44,0x00,0x00,}}, {0x8D13,2,{0xDA,0x45,0x00,0x00,}}, {0x8D14,2,{0xDA,0x46,0x00,0x00,}}, {0x8D15,2,{0xDA,0x47,0x00,0x00,}}, {0x8D16,2,{0xDA,0x48,0x00,0x00,}}, {0x8D17,2,{0xDA,0x49,0x00,0x00,}}, {0x8D18,2,{0xDA,0x4A,0x00,0x00,}}, {0x8D19,2,{0xDA,0x4B,0x00,0x00,}}, {0x8D1A,2,{0xDA,0x4C,0x00,0x00,}}, {0x8D1B,2,{0xDA,0x4D,0x00,0x00,}}, {0x8D1C,2,{0xDA,0x4E,0x00,0x00,}}, {0x8D1D,2,{0xB1,0xB4,0x00,0x00,}}, {0x8D1E,2,{0xD5,0xEA,0x00,0x00,}}, {0x8D1F,2,{0xB8,0xBA,0x00,0x00,}}, {0x8D20,2,{0xDA,0x4F,0x00,0x00,}}, {0x8D21,2,{0xB9,0xB1,0x00,0x00,}}, {0x8D22,2,{0xB2,0xC6,0x00,0x00,}}, {0x8D23,2,{0xD4,0xF0,0x00,0x00,}}, {0x8D24,2,{0xCF,0xCD,0x00,0x00,}}, {0x8D25,2,{0xB0,0xDC,0x00,0x00,}}, {0x8D26,2,{0xD5,0xCB,0x00,0x00,}}, {0x8D27,2,{0xBB,0xF5,0x00,0x00,}}, {0x8D28,2,{0xD6,0xCA,0x00,0x00,}}, {0x8D29,2,{0xB7,0xB7,0x00,0x00,}}, {0x8D2A,2,{0xCC,0xB0,0x00,0x00,}}, {0x8D2B,2,{0xC6,0xB6,0x00,0x00,}}, {0x8D2C,2,{0xB1,0xE1,0x00,0x00,}}, {0x8D2D,2,{0xB9,0xBA,0x00,0x00,}}, {0x8D2E,2,{0xD6,0xFC,0x00,0x00,}}, {0x8D2F,2,{0xB9,0xE1,0x00,0x00,}}, {0x8D30,2,{0xB7,0xA1,0x00,0x00,}}, {0x8D31,2,{0xBC,0xFA,0x00,0x00,}}, {0x8D32,2,{0xEA,0xDA,0x00,0x00,}}, {0x8D33,2,{0xEA,0xDB,0x00,0x00,}}, {0x8D34,2,{0xCC,0xF9,0x00,0x00,}}, {0x8D35,2,{0xB9,0xF3,0x00,0x00,}}, {0x8D36,2,{0xEA,0xDC,0x00,0x00,}}, {0x8D37,2,{0xB4,0xFB,0x00,0x00,}}, {0x8D38,2,{0xC3,0xB3,0x00,0x00,}}, {0x8D39,2,{0xB7,0xD1,0x00,0x00,}}, {0x8D3A,2,{0xBA,0xD8,0x00,0x00,}}, {0x8D3B,2,{0xEA,0xDD,0x00,0x00,}}, {0x8D3C,2,{0xD4,0xF4,0x00,0x00,}}, {0x8D3D,2,{0xEA,0xDE,0x00,0x00,}}, {0x8D3E,2,{0xBC,0xD6,0x00,0x00,}}, {0x8D3F,2,{0xBB,0xDF,0x00,0x00,}}, {0x8D40,2,{0xEA,0xDF,0x00,0x00,}}, {0x8D41,2,{0xC1,0xDE,0x00,0x00,}}, {0x8D42,2,{0xC2,0xB8,0x00,0x00,}}, {0x8D43,2,{0xD4,0xDF,0x00,0x00,}}, {0x8D44,2,{0xD7,0xCA,0x00,0x00,}}, {0x8D45,2,{0xEA,0xE0,0x00,0x00,}}, {0x8D46,2,{0xEA,0xE1,0x00,0x00,}}, {0x8D47,2,{0xEA,0xE4,0x00,0x00,}}, {0x8D48,2,{0xEA,0xE2,0x00,0x00,}}, {0x8D49,2,{0xEA,0xE3,0x00,0x00,}}, {0x8D4A,2,{0xC9,0xDE,0x00,0x00,}}, {0x8D4B,2,{0xB8,0xB3,0x00,0x00,}}, {0x8D4C,2,{0xB6,0xC4,0x00,0x00,}}, {0x8D4D,2,{0xEA,0xE5,0x00,0x00,}}, {0x8D4E,2,{0xCA,0xEA,0x00,0x00,}}, {0x8D4F,2,{0xC9,0xCD,0x00,0x00,}}, {0x8D50,2,{0xB4,0xCD,0x00,0x00,}}, {0x8D51,2,{0xDA,0x50,0x00,0x00,}}, {0x8D52,2,{0xDA,0x51,0x00,0x00,}}, {0x8D53,2,{0xE2,0xD9,0x00,0x00,}}, {0x8D54,2,{0xC5,0xE2,0x00,0x00,}}, {0x8D55,2,{0xEA,0xE6,0x00,0x00,}}, {0x8D56,2,{0xC0,0xB5,0x00,0x00,}}, {0x8D57,2,{0xDA,0x52,0x00,0x00,}}, {0x8D58,2,{0xD7,0xB8,0x00,0x00,}}, {0x8D59,2,{0xEA,0xE7,0x00,0x00,}}, {0x8D5A,2,{0xD7,0xAC,0x00,0x00,}}, {0x8D5B,2,{0xC8,0xFC,0x00,0x00,}}, {0x8D5C,2,{0xD8,0xD3,0x00,0x00,}}, {0x8D5D,2,{0xD8,0xCD,0x00,0x00,}}, {0x8D5E,2,{0xD4,0xDE,0x00,0x00,}}, {0x8D5F,2,{0xDA,0x53,0x00,0x00,}}, {0x8D60,2,{0xD4,0xF9,0x00,0x00,}}, {0x8D61,2,{0xC9,0xC4,0x00,0x00,}}, {0x8D62,2,{0xD3,0xAE,0x00,0x00,}}, {0x8D63,2,{0xB8,0xD3,0x00,0x00,}}, {0x8D64,2,{0xB3,0xE0,0x00,0x00,}}, {0x8D65,2,{0xDA,0x54,0x00,0x00,}}, {0x8D66,2,{0xC9,0xE2,0x00,0x00,}}, {0x8D67,2,{0xF4,0xF6,0x00,0x00,}}, {0x8D68,2,{0xDA,0x55,0x00,0x00,}}, {0x8D69,2,{0xDA,0x56,0x00,0x00,}}, {0x8D6A,2,{0xDA,0x57,0x00,0x00,}}, {0x8D6B,2,{0xBA,0xD5,0x00,0x00,}}, {0x8D6C,2,{0xDA,0x58,0x00,0x00,}}, {0x8D6D,2,{0xF4,0xF7,0x00,0x00,}}, {0x8D6E,2,{0xDA,0x59,0x00,0x00,}}, {0x8D6F,2,{0xDA,0x5A,0x00,0x00,}}, {0x8D70,2,{0xD7,0xDF,0x00,0x00,}}, {0x8D71,2,{0xDA,0x5B,0x00,0x00,}}, {0x8D72,2,{0xDA,0x5C,0x00,0x00,}}, {0x8D73,2,{0xF4,0xF1,0x00,0x00,}}, {0x8D74,2,{0xB8,0xB0,0x00,0x00,}}, {0x8D75,2,{0xD5,0xD4,0x00,0x00,}}, {0x8D76,2,{0xB8,0xCF,0x00,0x00,}}, {0x8D77,2,{0xC6,0xF0,0x00,0x00,}}, {0x8D78,2,{0xDA,0x5D,0x00,0x00,}}, {0x8D79,2,{0xDA,0x5E,0x00,0x00,}}, {0x8D7A,2,{0xDA,0x5F,0x00,0x00,}}, {0x8D7B,2,{0xDA,0x60,0x00,0x00,}}, {0x8D7C,2,{0xDA,0x61,0x00,0x00,}}, {0x8D7D,2,{0xDA,0x62,0x00,0x00,}}, {0x8D7E,2,{0xDA,0x63,0x00,0x00,}}, {0x8D7F,2,{0xDA,0x64,0x00,0x00,}}, {0x8D80,2,{0xDA,0x65,0x00,0x00,}}, {0x8D81,2,{0xB3,0xC3,0x00,0x00,}}, {0x8D82,2,{0xDA,0x66,0x00,0x00,}}, {0x8D83,2,{0xDA,0x67,0x00,0x00,}}, {0x8D84,2,{0xF4,0xF2,0x00,0x00,}}, {0x8D85,2,{0xB3,0xAC,0x00,0x00,}}, {0x8D86,2,{0xDA,0x68,0x00,0x00,}}, {0x8D87,2,{0xDA,0x69,0x00,0x00,}}, {0x8D88,2,{0xDA,0x6A,0x00,0x00,}}, {0x8D89,2,{0xDA,0x6B,0x00,0x00,}}, {0x8D8A,2,{0xD4,0xBD,0x00,0x00,}}, {0x8D8B,2,{0xC7,0xF7,0x00,0x00,}}, {0x8D8C,2,{0xDA,0x6C,0x00,0x00,}}, {0x8D8D,2,{0xDA,0x6D,0x00,0x00,}}, {0x8D8E,2,{0xDA,0x6E,0x00,0x00,}}, {0x8D8F,2,{0xDA,0x6F,0x00,0x00,}}, {0x8D90,2,{0xDA,0x70,0x00,0x00,}}, {0x8D91,2,{0xF4,0xF4,0x00,0x00,}}, {0x8D92,2,{0xDA,0x71,0x00,0x00,}}, {0x8D93,2,{0xDA,0x72,0x00,0x00,}}, {0x8D94,2,{0xF4,0xF3,0x00,0x00,}}, {0x8D95,2,{0xDA,0x73,0x00,0x00,}}, {0x8D96,2,{0xDA,0x74,0x00,0x00,}}, {0x8D97,2,{0xDA,0x75,0x00,0x00,}}, {0x8D98,2,{0xDA,0x76,0x00,0x00,}}, {0x8D99,2,{0xDA,0x77,0x00,0x00,}}, {0x8D9A,2,{0xDA,0x78,0x00,0x00,}}, {0x8D9B,2,{0xDA,0x79,0x00,0x00,}}, {0x8D9C,2,{0xDA,0x7A,0x00,0x00,}}, {0x8D9D,2,{0xDA,0x7B,0x00,0x00,}}, {0x8D9E,2,{0xDA,0x7C,0x00,0x00,}}, {0x8D9F,2,{0xCC,0xCB,0x00,0x00,}}, {0x8DA0,2,{0xDA,0x7D,0x00,0x00,}}, {0x8DA1,2,{0xDA,0x7E,0x00,0x00,}}, {0x8DA2,2,{0xDA,0x80,0x00,0x00,}}, {0x8DA3,2,{0xC8,0xA4,0x00,0x00,}}, {0x8DA4,2,{0xDA,0x81,0x00,0x00,}}, {0x8DA5,2,{0xDA,0x82,0x00,0x00,}}, {0x8DA6,2,{0xDA,0x83,0x00,0x00,}}, {0x8DA7,2,{0xDA,0x84,0x00,0x00,}}, {0x8DA8,2,{0xDA,0x85,0x00,0x00,}}, {0x8DA9,2,{0xDA,0x86,0x00,0x00,}}, {0x8DAA,2,{0xDA,0x87,0x00,0x00,}}, {0x8DAB,2,{0xDA,0x88,0x00,0x00,}}, {0x8DAC,2,{0xDA,0x89,0x00,0x00,}}, {0x8DAD,2,{0xDA,0x8A,0x00,0x00,}}, {0x8DAE,2,{0xDA,0x8B,0x00,0x00,}}, {0x8DAF,2,{0xDA,0x8C,0x00,0x00,}}, {0x8DB0,2,{0xDA,0x8D,0x00,0x00,}}, {0x8DB1,2,{0xF4,0xF5,0x00,0x00,}}, {0x8DB2,2,{0xDA,0x8E,0x00,0x00,}}, {0x8DB3,2,{0xD7,0xE3,0x00,0x00,}}, {0x8DB4,2,{0xC5,0xBF,0x00,0x00,}}, {0x8DB5,2,{0xF5,0xC0,0x00,0x00,}}, {0x8DB6,2,{0xDA,0x8F,0x00,0x00,}}, {0x8DB7,2,{0xDA,0x90,0x00,0x00,}}, {0x8DB8,2,{0xF5,0xBB,0x00,0x00,}}, {0x8DB9,2,{0xDA,0x91,0x00,0x00,}}, {0x8DBA,2,{0xF5,0xC3,0x00,0x00,}}, {0x8DBB,2,{0xDA,0x92,0x00,0x00,}}, {0x8DBC,2,{0xF5,0xC2,0x00,0x00,}}, {0x8DBD,2,{0xDA,0x93,0x00,0x00,}}, {0x8DBE,2,{0xD6,0xBA,0x00,0x00,}}, {0x8DBF,2,{0xF5,0xC1,0x00,0x00,}}, {0x8DC0,2,{0xDA,0x94,0x00,0x00,}}, {0x8DC1,2,{0xDA,0x95,0x00,0x00,}}, {0x8DC2,2,{0xDA,0x96,0x00,0x00,}}, {0x8DC3,2,{0xD4,0xBE,0x00,0x00,}}, {0x8DC4,2,{0xF5,0xC4,0x00,0x00,}}, {0x8DC5,2,{0xDA,0x97,0x00,0x00,}}, {0x8DC6,2,{0xF5,0xCC,0x00,0x00,}}, {0x8DC7,2,{0xDA,0x98,0x00,0x00,}}, {0x8DC8,2,{0xDA,0x99,0x00,0x00,}}, {0x8DC9,2,{0xDA,0x9A,0x00,0x00,}}, {0x8DCA,2,{0xDA,0x9B,0x00,0x00,}}, {0x8DCB,2,{0xB0,0xCF,0x00,0x00,}}, {0x8DCC,2,{0xB5,0xF8,0x00,0x00,}}, {0x8DCD,2,{0xDA,0x9C,0x00,0x00,}}, {0x8DCE,2,{0xF5,0xC9,0x00,0x00,}}, {0x8DCF,2,{0xF5,0xCA,0x00,0x00,}}, {0x8DD0,2,{0xDA,0x9D,0x00,0x00,}}, {0x8DD1,2,{0xC5,0xDC,0x00,0x00,}}, {0x8DD2,2,{0xDA,0x9E,0x00,0x00,}}, {0x8DD3,2,{0xDA,0x9F,0x00,0x00,}}, {0x8DD4,2,{0xDA,0xA0,0x00,0x00,}}, {0x8DD5,2,{0xDB,0x40,0x00,0x00,}}, {0x8DD6,2,{0xF5,0xC5,0x00,0x00,}}, {0x8DD7,2,{0xF5,0xC6,0x00,0x00,}}, {0x8DD8,2,{0xDB,0x41,0x00,0x00,}}, {0x8DD9,2,{0xDB,0x42,0x00,0x00,}}, {0x8DDA,2,{0xF5,0xC7,0x00,0x00,}}, {0x8DDB,2,{0xF5,0xCB,0x00,0x00,}}, {0x8DDC,2,{0xDB,0x43,0x00,0x00,}}, {0x8DDD,2,{0xBE,0xE0,0x00,0x00,}}, {0x8DDE,2,{0xF5,0xC8,0x00,0x00,}}, {0x8DDF,2,{0xB8,0xFA,0x00,0x00,}}, {0x8DE0,2,{0xDB,0x44,0x00,0x00,}}, {0x8DE1,2,{0xDB,0x45,0x00,0x00,}}, {0x8DE2,2,{0xDB,0x46,0x00,0x00,}}, {0x8DE3,2,{0xF5,0xD0,0x00,0x00,}}, {0x8DE4,2,{0xF5,0xD3,0x00,0x00,}}, {0x8DE5,2,{0xDB,0x47,0x00,0x00,}}, {0x8DE6,2,{0xDB,0x48,0x00,0x00,}}, {0x8DE7,2,{0xDB,0x49,0x00,0x00,}}, {0x8DE8,2,{0xBF,0xE7,0x00,0x00,}}, {0x8DE9,2,{0xDB,0x4A,0x00,0x00,}}, {0x8DEA,2,{0xB9,0xF2,0x00,0x00,}}, {0x8DEB,2,{0xF5,0xBC,0x00,0x00,}}, {0x8DEC,2,{0xF5,0xCD,0x00,0x00,}}, {0x8DED,2,{0xDB,0x4B,0x00,0x00,}}, {0x8DEE,2,{0xDB,0x4C,0x00,0x00,}}, {0x8DEF,2,{0xC2,0xB7,0x00,0x00,}}, {0x8DF0,2,{0xDB,0x4D,0x00,0x00,}}, {0x8DF1,2,{0xDB,0x4E,0x00,0x00,}}, {0x8DF2,2,{0xDB,0x4F,0x00,0x00,}}, {0x8DF3,2,{0xCC,0xF8,0x00,0x00,}}, {0x8DF4,2,{0xDB,0x50,0x00,0x00,}}, {0x8DF5,2,{0xBC,0xF9,0x00,0x00,}}, {0x8DF6,2,{0xDB,0x51,0x00,0x00,}}, {0x8DF7,2,{0xF5,0xCE,0x00,0x00,}}, {0x8DF8,2,{0xF5,0xCF,0x00,0x00,}}, {0x8DF9,2,{0xF5,0xD1,0x00,0x00,}}, {0x8DFA,2,{0xB6,0xE5,0x00,0x00,}}, {0x8DFB,2,{0xF5,0xD2,0x00,0x00,}}, {0x8DFC,2,{0xDB,0x52,0x00,0x00,}}, {0x8DFD,2,{0xF5,0xD5,0x00,0x00,}}, {0x8DFE,2,{0xDB,0x53,0x00,0x00,}}, {0x8DFF,2,{0xDB,0x54,0x00,0x00,}}, {0x8E00,2,{0xDB,0x55,0x00,0x00,}}, {0x8E01,2,{0xDB,0x56,0x00,0x00,}}, {0x8E02,2,{0xDB,0x57,0x00,0x00,}}, {0x8E03,2,{0xDB,0x58,0x00,0x00,}}, {0x8E04,2,{0xDB,0x59,0x00,0x00,}}, {0x8E05,2,{0xF5,0xBD,0x00,0x00,}}, {0x8E06,2,{0xDB,0x5A,0x00,0x00,}}, {0x8E07,2,{0xDB,0x5B,0x00,0x00,}}, {0x8E08,2,{0xDB,0x5C,0x00,0x00,}}, {0x8E09,2,{0xF5,0xD4,0x00,0x00,}}, {0x8E0A,2,{0xD3,0xBB,0x00,0x00,}}, {0x8E0B,2,{0xDB,0x5D,0x00,0x00,}}, {0x8E0C,2,{0xB3,0xEC,0x00,0x00,}}, {0x8E0D,2,{0xDB,0x5E,0x00,0x00,}}, {0x8E0E,2,{0xDB,0x5F,0x00,0x00,}}, {0x8E0F,2,{0xCC,0xA4,0x00,0x00,}}, {0x8E10,2,{0xDB,0x60,0x00,0x00,}}, {0x8E11,2,{0xDB,0x61,0x00,0x00,}}, {0x8E12,2,{0xDB,0x62,0x00,0x00,}}, {0x8E13,2,{0xDB,0x63,0x00,0x00,}}, {0x8E14,2,{0xF5,0xD6,0x00,0x00,}}, {0x8E15,2,{0xDB,0x64,0x00,0x00,}}, {0x8E16,2,{0xDB,0x65,0x00,0x00,}}, {0x8E17,2,{0xDB,0x66,0x00,0x00,}}, {0x8E18,2,{0xDB,0x67,0x00,0x00,}}, {0x8E19,2,{0xDB,0x68,0x00,0x00,}}, {0x8E1A,2,{0xDB,0x69,0x00,0x00,}}, {0x8E1B,2,{0xDB,0x6A,0x00,0x00,}}, {0x8E1C,2,{0xDB,0x6B,0x00,0x00,}}, {0x8E1D,2,{0xF5,0xD7,0x00,0x00,}}, {0x8E1E,2,{0xBE,0xE1,0x00,0x00,}}, {0x8E1F,2,{0xF5,0xD8,0x00,0x00,}}, {0x8E20,2,{0xDB,0x6C,0x00,0x00,}}, {0x8E21,2,{0xDB,0x6D,0x00,0x00,}}, {0x8E22,2,{0xCC,0xDF,0x00,0x00,}}, {0x8E23,2,{0xF5,0xDB,0x00,0x00,}}, {0x8E24,2,{0xDB,0x6E,0x00,0x00,}}, {0x8E25,2,{0xDB,0x6F,0x00,0x00,}}, {0x8E26,2,{0xDB,0x70,0x00,0x00,}}, {0x8E27,2,{0xDB,0x71,0x00,0x00,}}, {0x8E28,2,{0xDB,0x72,0x00,0x00,}}, {0x8E29,2,{0xB2,0xC8,0x00,0x00,}}, {0x8E2A,2,{0xD7,0xD9,0x00,0x00,}}, {0x8E2B,2,{0xDB,0x73,0x00,0x00,}}, {0x8E2C,2,{0xF5,0xD9,0x00,0x00,}}, {0x8E2D,2,{0xDB,0x74,0x00,0x00,}}, {0x8E2E,2,{0xF5,0xDA,0x00,0x00,}}, {0x8E2F,2,{0xF5,0xDC,0x00,0x00,}}, {0x8E30,2,{0xDB,0x75,0x00,0x00,}}, {0x8E31,2,{0xF5,0xE2,0x00,0x00,}}, {0x8E32,2,{0xDB,0x76,0x00,0x00,}}, {0x8E33,2,{0xDB,0x77,0x00,0x00,}}, {0x8E34,2,{0xDB,0x78,0x00,0x00,}}, {0x8E35,2,{0xF5,0xE0,0x00,0x00,}}, {0x8E36,2,{0xDB,0x79,0x00,0x00,}}, {0x8E37,2,{0xDB,0x7A,0x00,0x00,}}, {0x8E38,2,{0xDB,0x7B,0x00,0x00,}}, {0x8E39,2,{0xF5,0xDF,0x00,0x00,}}, {0x8E3A,2,{0xF5,0xDD,0x00,0x00,}}, {0x8E3B,2,{0xDB,0x7C,0x00,0x00,}}, {0x8E3C,2,{0xDB,0x7D,0x00,0x00,}}, {0x8E3D,2,{0xF5,0xE1,0x00,0x00,}}, {0x8E3E,2,{0xDB,0x7E,0x00,0x00,}}, {0x8E3F,2,{0xDB,0x80,0x00,0x00,}}, {0x8E40,2,{0xF5,0xDE,0x00,0x00,}}, {0x8E41,2,{0xF5,0xE4,0x00,0x00,}}, {0x8E42,2,{0xF5,0xE5,0x00,0x00,}}, {0x8E43,2,{0xDB,0x81,0x00,0x00,}}, {0x8E44,2,{0xCC,0xE3,0x00,0x00,}}, {0x8E45,2,{0xDB,0x82,0x00,0x00,}}, {0x8E46,2,{0xDB,0x83,0x00,0x00,}}, {0x8E47,2,{0xE5,0xBF,0x00,0x00,}}, {0x8E48,2,{0xB5,0xB8,0x00,0x00,}}, {0x8E49,2,{0xF5,0xE3,0x00,0x00,}}, {0x8E4A,2,{0xF5,0xE8,0x00,0x00,}}, {0x8E4B,2,{0xCC,0xA3,0x00,0x00,}}, {0x8E4C,2,{0xDB,0x84,0x00,0x00,}}, {0x8E4D,2,{0xDB,0x85,0x00,0x00,}}, {0x8E4E,2,{0xDB,0x86,0x00,0x00,}}, {0x8E4F,2,{0xDB,0x87,0x00,0x00,}}, {0x8E50,2,{0xDB,0x88,0x00,0x00,}}, {0x8E51,2,{0xF5,0xE6,0x00,0x00,}}, {0x8E52,2,{0xF5,0xE7,0x00,0x00,}}, {0x8E53,2,{0xDB,0x89,0x00,0x00,}}, {0x8E54,2,{0xDB,0x8A,0x00,0x00,}}, {0x8E55,2,{0xDB,0x8B,0x00,0x00,}}, {0x8E56,2,{0xDB,0x8C,0x00,0x00,}}, {0x8E57,2,{0xDB,0x8D,0x00,0x00,}}, {0x8E58,2,{0xDB,0x8E,0x00,0x00,}}, {0x8E59,2,{0xF5,0xBE,0x00,0x00,}}, {0x8E5A,2,{0xDB,0x8F,0x00,0x00,}}, {0x8E5B,2,{0xDB,0x90,0x00,0x00,}}, {0x8E5C,2,{0xDB,0x91,0x00,0x00,}}, {0x8E5D,2,{0xDB,0x92,0x00,0x00,}}, {0x8E5E,2,{0xDB,0x93,0x00,0x00,}}, {0x8E5F,2,{0xDB,0x94,0x00,0x00,}}, {0x8E60,2,{0xDB,0x95,0x00,0x00,}}, {0x8E61,2,{0xDB,0x96,0x00,0x00,}}, {0x8E62,2,{0xDB,0x97,0x00,0x00,}}, {0x8E63,2,{0xDB,0x98,0x00,0x00,}}, {0x8E64,2,{0xDB,0x99,0x00,0x00,}}, {0x8E65,2,{0xDB,0x9A,0x00,0x00,}}, {0x8E66,2,{0xB1,0xC4,0x00,0x00,}}, {0x8E67,2,{0xDB,0x9B,0x00,0x00,}}, {0x8E68,2,{0xDB,0x9C,0x00,0x00,}}, {0x8E69,2,{0xF5,0xBF,0x00,0x00,}}, {0x8E6A,2,{0xDB,0x9D,0x00,0x00,}}, {0x8E6B,2,{0xDB,0x9E,0x00,0x00,}}, {0x8E6C,2,{0xB5,0xC5,0x00,0x00,}}, {0x8E6D,2,{0xB2,0xE4,0x00,0x00,}}, {0x8E6E,2,{0xDB,0x9F,0x00,0x00,}}, {0x8E6F,2,{0xF5,0xEC,0x00,0x00,}}, {0x8E70,2,{0xF5,0xE9,0x00,0x00,}}, {0x8E71,2,{0xDB,0xA0,0x00,0x00,}}, {0x8E72,2,{0xB6,0xD7,0x00,0x00,}}, {0x8E73,2,{0xDC,0x40,0x00,0x00,}}, {0x8E74,2,{0xF5,0xED,0x00,0x00,}}, {0x8E75,2,{0xDC,0x41,0x00,0x00,}}, {0x8E76,2,{0xF5,0xEA,0x00,0x00,}}, {0x8E77,2,{0xDC,0x42,0x00,0x00,}}, {0x8E78,2,{0xDC,0x43,0x00,0x00,}}, {0x8E79,2,{0xDC,0x44,0x00,0x00,}}, {0x8E7A,2,{0xDC,0x45,0x00,0x00,}}, {0x8E7B,2,{0xDC,0x46,0x00,0x00,}}, {0x8E7C,2,{0xF5,0xEB,0x00,0x00,}}, {0x8E7D,2,{0xDC,0x47,0x00,0x00,}}, {0x8E7E,2,{0xDC,0x48,0x00,0x00,}}, {0x8E7F,2,{0xB4,0xDA,0x00,0x00,}}, {0x8E80,2,{0xDC,0x49,0x00,0x00,}}, {0x8E81,2,{0xD4,0xEA,0x00,0x00,}}, {0x8E82,2,{0xDC,0x4A,0x00,0x00,}}, {0x8E83,2,{0xDC,0x4B,0x00,0x00,}}, {0x8E84,2,{0xDC,0x4C,0x00,0x00,}}, {0x8E85,2,{0xF5,0xEE,0x00,0x00,}}, {0x8E86,2,{0xDC,0x4D,0x00,0x00,}}, {0x8E87,2,{0xB3,0xF9,0x00,0x00,}}, {0x8E88,2,{0xDC,0x4E,0x00,0x00,}}, {0x8E89,2,{0xDC,0x4F,0x00,0x00,}}, {0x8E8A,2,{0xDC,0x50,0x00,0x00,}}, {0x8E8B,2,{0xDC,0x51,0x00,0x00,}}, {0x8E8C,2,{0xDC,0x52,0x00,0x00,}}, {0x8E8D,2,{0xDC,0x53,0x00,0x00,}}, {0x8E8E,2,{0xDC,0x54,0x00,0x00,}}, {0x8E8F,2,{0xF5,0xEF,0x00,0x00,}}, {0x8E90,2,{0xF5,0xF1,0x00,0x00,}}, {0x8E91,2,{0xDC,0x55,0x00,0x00,}}, {0x8E92,2,{0xDC,0x56,0x00,0x00,}}, {0x8E93,2,{0xDC,0x57,0x00,0x00,}}, {0x8E94,2,{0xF5,0xF0,0x00,0x00,}}, {0x8E95,2,{0xDC,0x58,0x00,0x00,}}, {0x8E96,2,{0xDC,0x59,0x00,0x00,}}, {0x8E97,2,{0xDC,0x5A,0x00,0x00,}}, {0x8E98,2,{0xDC,0x5B,0x00,0x00,}}, {0x8E99,2,{0xDC,0x5C,0x00,0x00,}}, {0x8E9A,2,{0xDC,0x5D,0x00,0x00,}}, {0x8E9B,2,{0xDC,0x5E,0x00,0x00,}}, {0x8E9C,2,{0xF5,0xF2,0x00,0x00,}}, {0x8E9D,2,{0xDC,0x5F,0x00,0x00,}}, {0x8E9E,2,{0xF5,0xF3,0x00,0x00,}}, {0x8E9F,2,{0xDC,0x60,0x00,0x00,}}, {0x8EA0,2,{0xDC,0x61,0x00,0x00,}}, {0x8EA1,2,{0xDC,0x62,0x00,0x00,}}, {0x8EA2,2,{0xDC,0x63,0x00,0x00,}}, {0x8EA3,2,{0xDC,0x64,0x00,0x00,}}, {0x8EA4,2,{0xDC,0x65,0x00,0x00,}}, {0x8EA5,2,{0xDC,0x66,0x00,0x00,}}, {0x8EA6,2,{0xDC,0x67,0x00,0x00,}}, {0x8EA7,2,{0xDC,0x68,0x00,0x00,}}, {0x8EA8,2,{0xDC,0x69,0x00,0x00,}}, {0x8EA9,2,{0xDC,0x6A,0x00,0x00,}}, {0x8EAA,2,{0xDC,0x6B,0x00,0x00,}}, {0x8EAB,2,{0xC9,0xED,0x00,0x00,}}, {0x8EAC,2,{0xB9,0xAA,0x00,0x00,}}, {0x8EAD,2,{0xDC,0x6C,0x00,0x00,}}, {0x8EAE,2,{0xDC,0x6D,0x00,0x00,}}, {0x8EAF,2,{0xC7,0xFB,0x00,0x00,}}, {0x8EB0,2,{0xDC,0x6E,0x00,0x00,}}, {0x8EB1,2,{0xDC,0x6F,0x00,0x00,}}, {0x8EB2,2,{0xB6,0xE3,0x00,0x00,}}, {0x8EB3,2,{0xDC,0x70,0x00,0x00,}}, {0x8EB4,2,{0xDC,0x71,0x00,0x00,}}, {0x8EB5,2,{0xDC,0x72,0x00,0x00,}}, {0x8EB6,2,{0xDC,0x73,0x00,0x00,}}, {0x8EB7,2,{0xDC,0x74,0x00,0x00,}}, {0x8EB8,2,{0xDC,0x75,0x00,0x00,}}, {0x8EB9,2,{0xDC,0x76,0x00,0x00,}}, {0x8EBA,2,{0xCC,0xC9,0x00,0x00,}}, {0x8EBB,2,{0xDC,0x77,0x00,0x00,}}, {0x8EBC,2,{0xDC,0x78,0x00,0x00,}}, {0x8EBD,2,{0xDC,0x79,0x00,0x00,}}, {0x8EBE,2,{0xDC,0x7A,0x00,0x00,}}, {0x8EBF,2,{0xDC,0x7B,0x00,0x00,}}, {0x8EC0,2,{0xDC,0x7C,0x00,0x00,}}, {0x8EC1,2,{0xDC,0x7D,0x00,0x00,}}, {0x8EC2,2,{0xDC,0x7E,0x00,0x00,}}, {0x8EC3,2,{0xDC,0x80,0x00,0x00,}}, {0x8EC4,2,{0xDC,0x81,0x00,0x00,}}, {0x8EC5,2,{0xDC,0x82,0x00,0x00,}}, {0x8EC6,2,{0xDC,0x83,0x00,0x00,}}, {0x8EC7,2,{0xDC,0x84,0x00,0x00,}}, {0x8EC8,2,{0xDC,0x85,0x00,0x00,}}, {0x8EC9,2,{0xDC,0x86,0x00,0x00,}}, {0x8ECA,2,{0xDC,0x87,0x00,0x00,}}, {0x8ECB,2,{0xDC,0x88,0x00,0x00,}}, {0x8ECC,2,{0xDC,0x89,0x00,0x00,}}, {0x8ECD,2,{0xDC,0x8A,0x00,0x00,}}, {0x8ECE,2,{0xEA,0xA6,0x00,0x00,}}, {0x8ECF,2,{0xDC,0x8B,0x00,0x00,}}, {0x8ED0,2,{0xDC,0x8C,0x00,0x00,}}, {0x8ED1,2,{0xDC,0x8D,0x00,0x00,}}, {0x8ED2,2,{0xDC,0x8E,0x00,0x00,}}, {0x8ED3,2,{0xDC,0x8F,0x00,0x00,}}, {0x8ED4,2,{0xDC,0x90,0x00,0x00,}}, {0x8ED5,2,{0xDC,0x91,0x00,0x00,}}, {0x8ED6,2,{0xDC,0x92,0x00,0x00,}}, {0x8ED7,2,{0xDC,0x93,0x00,0x00,}}, {0x8ED8,2,{0xDC,0x94,0x00,0x00,}}, {0x8ED9,2,{0xDC,0x95,0x00,0x00,}}, {0x8EDA,2,{0xDC,0x96,0x00,0x00,}}, {0x8EDB,2,{0xDC,0x97,0x00,0x00,}}, {0x8EDC,2,{0xDC,0x98,0x00,0x00,}}, {0x8EDD,2,{0xDC,0x99,0x00,0x00,}}, {0x8EDE,2,{0xDC,0x9A,0x00,0x00,}}, {0x8EDF,2,{0xDC,0x9B,0x00,0x00,}}, {0x8EE0,2,{0xDC,0x9C,0x00,0x00,}}, {0x8EE1,2,{0xDC,0x9D,0x00,0x00,}}, {0x8EE2,2,{0xDC,0x9E,0x00,0x00,}}, {0x8EE3,2,{0xDC,0x9F,0x00,0x00,}}, {0x8EE4,2,{0xDC,0xA0,0x00,0x00,}}, {0x8EE5,2,{0xDD,0x40,0x00,0x00,}}, {0x8EE6,2,{0xDD,0x41,0x00,0x00,}}, {0x8EE7,2,{0xDD,0x42,0x00,0x00,}}, {0x8EE8,2,{0xDD,0x43,0x00,0x00,}}, {0x8EE9,2,{0xDD,0x44,0x00,0x00,}}, {0x8EEA,2,{0xDD,0x45,0x00,0x00,}}, {0x8EEB,2,{0xDD,0x46,0x00,0x00,}}, {0x8EEC,2,{0xDD,0x47,0x00,0x00,}}, {0x8EED,2,{0xDD,0x48,0x00,0x00,}}, {0x8EEE,2,{0xDD,0x49,0x00,0x00,}}, {0x8EEF,2,{0xDD,0x4A,0x00,0x00,}}, {0x8EF0,2,{0xDD,0x4B,0x00,0x00,}}, {0x8EF1,2,{0xDD,0x4C,0x00,0x00,}}, {0x8EF2,2,{0xDD,0x4D,0x00,0x00,}}, {0x8EF3,2,{0xDD,0x4E,0x00,0x00,}}, {0x8EF4,2,{0xDD,0x4F,0x00,0x00,}}, {0x8EF5,2,{0xDD,0x50,0x00,0x00,}}, {0x8EF6,2,{0xDD,0x51,0x00,0x00,}}, {0x8EF7,2,{0xDD,0x52,0x00,0x00,}}, {0x8EF8,2,{0xDD,0x53,0x00,0x00,}}, {0x8EF9,2,{0xDD,0x54,0x00,0x00,}}, {0x8EFA,2,{0xDD,0x55,0x00,0x00,}}, {0x8EFB,2,{0xDD,0x56,0x00,0x00,}}, {0x8EFC,2,{0xDD,0x57,0x00,0x00,}}, {0x8EFD,2,{0xDD,0x58,0x00,0x00,}}, {0x8EFE,2,{0xDD,0x59,0x00,0x00,}}, {0x8EFF,2,{0xDD,0x5A,0x00,0x00,}}, {0x8F00,2,{0xDD,0x5B,0x00,0x00,}}, {0x8F01,2,{0xDD,0x5C,0x00,0x00,}}, {0x8F02,2,{0xDD,0x5D,0x00,0x00,}}, {0x8F03,2,{0xDD,0x5E,0x00,0x00,}}, {0x8F04,2,{0xDD,0x5F,0x00,0x00,}}, {0x8F05,2,{0xDD,0x60,0x00,0x00,}}, {0x8F06,2,{0xDD,0x61,0x00,0x00,}}, {0x8F07,2,{0xDD,0x62,0x00,0x00,}}, {0x8F08,2,{0xDD,0x63,0x00,0x00,}}, {0x8F09,2,{0xDD,0x64,0x00,0x00,}}, {0x8F0A,2,{0xDD,0x65,0x00,0x00,}}, {0x8F0B,2,{0xDD,0x66,0x00,0x00,}}, {0x8F0C,2,{0xDD,0x67,0x00,0x00,}}, {0x8F0D,2,{0xDD,0x68,0x00,0x00,}}, {0x8F0E,2,{0xDD,0x69,0x00,0x00,}}, {0x8F0F,2,{0xDD,0x6A,0x00,0x00,}}, {0x8F10,2,{0xDD,0x6B,0x00,0x00,}}, {0x8F11,2,{0xDD,0x6C,0x00,0x00,}}, {0x8F12,2,{0xDD,0x6D,0x00,0x00,}}, {0x8F13,2,{0xDD,0x6E,0x00,0x00,}}, {0x8F14,2,{0xDD,0x6F,0x00,0x00,}}, {0x8F15,2,{0xDD,0x70,0x00,0x00,}}, {0x8F16,2,{0xDD,0x71,0x00,0x00,}}, {0x8F17,2,{0xDD,0x72,0x00,0x00,}}, {0x8F18,2,{0xDD,0x73,0x00,0x00,}}, {0x8F19,2,{0xDD,0x74,0x00,0x00,}}, {0x8F1A,2,{0xDD,0x75,0x00,0x00,}}, {0x8F1B,2,{0xDD,0x76,0x00,0x00,}}, {0x8F1C,2,{0xDD,0x77,0x00,0x00,}}, {0x8F1D,2,{0xDD,0x78,0x00,0x00,}}, {0x8F1E,2,{0xDD,0x79,0x00,0x00,}}, {0x8F1F,2,{0xDD,0x7A,0x00,0x00,}}, {0x8F20,2,{0xDD,0x7B,0x00,0x00,}}, {0x8F21,2,{0xDD,0x7C,0x00,0x00,}}, {0x8F22,2,{0xDD,0x7D,0x00,0x00,}}, {0x8F23,2,{0xDD,0x7E,0x00,0x00,}}, {0x8F24,2,{0xDD,0x80,0x00,0x00,}}, {0x8F25,2,{0xDD,0x81,0x00,0x00,}}, {0x8F26,2,{0xDD,0x82,0x00,0x00,}}, {0x8F27,2,{0xDD,0x83,0x00,0x00,}}, {0x8F28,2,{0xDD,0x84,0x00,0x00,}}, {0x8F29,2,{0xDD,0x85,0x00,0x00,}}, {0x8F2A,2,{0xDD,0x86,0x00,0x00,}}, {0x8F2B,2,{0xDD,0x87,0x00,0x00,}}, {0x8F2C,2,{0xDD,0x88,0x00,0x00,}}, {0x8F2D,2,{0xDD,0x89,0x00,0x00,}}, {0x8F2E,2,{0xDD,0x8A,0x00,0x00,}}, {0x8F2F,2,{0xDD,0x8B,0x00,0x00,}}, {0x8F30,2,{0xDD,0x8C,0x00,0x00,}}, {0x8F31,2,{0xDD,0x8D,0x00,0x00,}}, {0x8F32,2,{0xDD,0x8E,0x00,0x00,}}, {0x8F33,2,{0xDD,0x8F,0x00,0x00,}}, {0x8F34,2,{0xDD,0x90,0x00,0x00,}}, {0x8F35,2,{0xDD,0x91,0x00,0x00,}}, {0x8F36,2,{0xDD,0x92,0x00,0x00,}}, {0x8F37,2,{0xDD,0x93,0x00,0x00,}}, {0x8F38,2,{0xDD,0x94,0x00,0x00,}}, {0x8F39,2,{0xDD,0x95,0x00,0x00,}}, {0x8F3A,2,{0xDD,0x96,0x00,0x00,}}, {0x8F3B,2,{0xDD,0x97,0x00,0x00,}}, {0x8F3C,2,{0xDD,0x98,0x00,0x00,}}, {0x8F3D,2,{0xDD,0x99,0x00,0x00,}}, {0x8F3E,2,{0xDD,0x9A,0x00,0x00,}}, {0x8F3F,2,{0xDD,0x9B,0x00,0x00,}}, {0x8F40,2,{0xDD,0x9C,0x00,0x00,}}, {0x8F41,2,{0xDD,0x9D,0x00,0x00,}}, {0x8F42,2,{0xDD,0x9E,0x00,0x00,}}, {0x8F43,2,{0xDD,0x9F,0x00,0x00,}}, {0x8F44,2,{0xDD,0xA0,0x00,0x00,}}, {0x8F45,2,{0xDE,0x40,0x00,0x00,}}, {0x8F46,2,{0xDE,0x41,0x00,0x00,}}, {0x8F47,2,{0xDE,0x42,0x00,0x00,}}, {0x8F48,2,{0xDE,0x43,0x00,0x00,}}, {0x8F49,2,{0xDE,0x44,0x00,0x00,}}, {0x8F4A,2,{0xDE,0x45,0x00,0x00,}}, {0x8F4B,2,{0xDE,0x46,0x00,0x00,}}, {0x8F4C,2,{0xDE,0x47,0x00,0x00,}}, {0x8F4D,2,{0xDE,0x48,0x00,0x00,}}, {0x8F4E,2,{0xDE,0x49,0x00,0x00,}}, {0x8F4F,2,{0xDE,0x4A,0x00,0x00,}}, {0x8F50,2,{0xDE,0x4B,0x00,0x00,}}, {0x8F51,2,{0xDE,0x4C,0x00,0x00,}}, {0x8F52,2,{0xDE,0x4D,0x00,0x00,}}, {0x8F53,2,{0xDE,0x4E,0x00,0x00,}}, {0x8F54,2,{0xDE,0x4F,0x00,0x00,}}, {0x8F55,2,{0xDE,0x50,0x00,0x00,}}, {0x8F56,2,{0xDE,0x51,0x00,0x00,}}, {0x8F57,2,{0xDE,0x52,0x00,0x00,}}, {0x8F58,2,{0xDE,0x53,0x00,0x00,}}, {0x8F59,2,{0xDE,0x54,0x00,0x00,}}, {0x8F5A,2,{0xDE,0x55,0x00,0x00,}}, {0x8F5B,2,{0xDE,0x56,0x00,0x00,}}, {0x8F5C,2,{0xDE,0x57,0x00,0x00,}}, {0x8F5D,2,{0xDE,0x58,0x00,0x00,}}, {0x8F5E,2,{0xDE,0x59,0x00,0x00,}}, {0x8F5F,2,{0xDE,0x5A,0x00,0x00,}}, {0x8F60,2,{0xDE,0x5B,0x00,0x00,}}, {0x8F61,2,{0xDE,0x5C,0x00,0x00,}}, {0x8F62,2,{0xDE,0x5D,0x00,0x00,}}, {0x8F63,2,{0xDE,0x5E,0x00,0x00,}}, {0x8F64,2,{0xDE,0x5F,0x00,0x00,}}, {0x8F65,2,{0xDE,0x60,0x00,0x00,}}, {0x8F66,2,{0xB3,0xB5,0x00,0x00,}}, {0x8F67,2,{0xD4,0xFE,0x00,0x00,}}, {0x8F68,2,{0xB9,0xEC,0x00,0x00,}}, {0x8F69,2,{0xD0,0xF9,0x00,0x00,}}, {0x8F6A,2,{0xDE,0x61,0x00,0x00,}}, {0x8F6B,2,{0xE9,0xED,0x00,0x00,}}, {0x8F6C,2,{0xD7,0xAA,0x00,0x00,}}, {0x8F6D,2,{0xE9,0xEE,0x00,0x00,}}, {0x8F6E,2,{0xC2,0xD6,0x00,0x00,}}, {0x8F6F,2,{0xC8,0xED,0x00,0x00,}}, {0x8F70,2,{0xBA,0xE4,0x00,0x00,}}, {0x8F71,2,{0xE9,0xEF,0x00,0x00,}}, {0x8F72,2,{0xE9,0xF0,0x00,0x00,}}, {0x8F73,2,{0xE9,0xF1,0x00,0x00,}}, {0x8F74,2,{0xD6,0xE1,0x00,0x00,}}, {0x8F75,2,{0xE9,0xF2,0x00,0x00,}}, {0x8F76,2,{0xE9,0xF3,0x00,0x00,}}, {0x8F77,2,{0xE9,0xF5,0x00,0x00,}}, {0x8F78,2,{0xE9,0xF4,0x00,0x00,}}, {0x8F79,2,{0xE9,0xF6,0x00,0x00,}}, {0x8F7A,2,{0xE9,0xF7,0x00,0x00,}}, {0x8F7B,2,{0xC7,0xE1,0x00,0x00,}}, {0x8F7C,2,{0xE9,0xF8,0x00,0x00,}}, {0x8F7D,2,{0xD4,0xD8,0x00,0x00,}}, {0x8F7E,2,{0xE9,0xF9,0x00,0x00,}}, {0x8F7F,2,{0xBD,0xCE,0x00,0x00,}}, {0x8F80,2,{0xDE,0x62,0x00,0x00,}}, {0x8F81,2,{0xE9,0xFA,0x00,0x00,}}, {0x8F82,2,{0xE9,0xFB,0x00,0x00,}}, {0x8F83,2,{0xBD,0xCF,0x00,0x00,}}, {0x8F84,2,{0xE9,0xFC,0x00,0x00,}}, {0x8F85,2,{0xB8,0xA8,0x00,0x00,}}, {0x8F86,2,{0xC1,0xBE,0x00,0x00,}}, {0x8F87,2,{0xE9,0xFD,0x00,0x00,}}, {0x8F88,2,{0xB1,0xB2,0x00,0x00,}}, {0x8F89,2,{0xBB,0xD4,0x00,0x00,}}, {0x8F8A,2,{0xB9,0xF5,0x00,0x00,}}, {0x8F8B,2,{0xE9,0xFE,0x00,0x00,}}, {0x8F8C,2,{0xDE,0x63,0x00,0x00,}}, {0x8F8D,2,{0xEA,0xA1,0x00,0x00,}}, {0x8F8E,2,{0xEA,0xA2,0x00,0x00,}}, {0x8F8F,2,{0xEA,0xA3,0x00,0x00,}}, {0x8F90,2,{0xB7,0xF8,0x00,0x00,}}, {0x8F91,2,{0xBC,0xAD,0x00,0x00,}}, {0x8F92,2,{0xDE,0x64,0x00,0x00,}}, {0x8F93,2,{0xCA,0xE4,0x00,0x00,}}, {0x8F94,2,{0xE0,0xCE,0x00,0x00,}}, {0x8F95,2,{0xD4,0xAF,0x00,0x00,}}, {0x8F96,2,{0xCF,0xBD,0x00,0x00,}}, {0x8F97,2,{0xD5,0xB7,0x00,0x00,}}, {0x8F98,2,{0xEA,0xA4,0x00,0x00,}}, {0x8F99,2,{0xD5,0xDE,0x00,0x00,}}, {0x8F9A,2,{0xEA,0xA5,0x00,0x00,}}, {0x8F9B,2,{0xD0,0xC1,0x00,0x00,}}, {0x8F9C,2,{0xB9,0xBC,0x00,0x00,}}, {0x8F9D,2,{0xDE,0x65,0x00,0x00,}}, {0x8F9E,2,{0xB4,0xC7,0x00,0x00,}}, {0x8F9F,2,{0xB1,0xD9,0x00,0x00,}}, {0x8FA0,2,{0xDE,0x66,0x00,0x00,}}, {0x8FA1,2,{0xDE,0x67,0x00,0x00,}}, {0x8FA2,2,{0xDE,0x68,0x00,0x00,}}, {0x8FA3,2,{0xC0,0xB1,0x00,0x00,}}, {0x8FA4,2,{0xDE,0x69,0x00,0x00,}}, {0x8FA5,2,{0xDE,0x6A,0x00,0x00,}}, {0x8FA6,2,{0xDE,0x6B,0x00,0x00,}}, {0x8FA7,2,{0xDE,0x6C,0x00,0x00,}}, {0x8FA8,2,{0xB1,0xE6,0x00,0x00,}}, {0x8FA9,2,{0xB1,0xE7,0x00,0x00,}}, {0x8FAA,2,{0xDE,0x6D,0x00,0x00,}}, {0x8FAB,2,{0xB1,0xE8,0x00,0x00,}}, {0x8FAC,2,{0xDE,0x6E,0x00,0x00,}}, {0x8FAD,2,{0xDE,0x6F,0x00,0x00,}}, {0x8FAE,2,{0xDE,0x70,0x00,0x00,}}, {0x8FAF,2,{0xDE,0x71,0x00,0x00,}}, {0x8FB0,2,{0xB3,0xBD,0x00,0x00,}}, {0x8FB1,2,{0xC8,0xE8,0x00,0x00,}}, {0x8FB2,2,{0xDE,0x72,0x00,0x00,}}, {0x8FB3,2,{0xDE,0x73,0x00,0x00,}}, {0x8FB4,2,{0xDE,0x74,0x00,0x00,}}, {0x8FB5,2,{0xDE,0x75,0x00,0x00,}}, {0x8FB6,2,{0xE5,0xC1,0x00,0x00,}}, {0x8FB7,2,{0xDE,0x76,0x00,0x00,}}, {0x8FB8,2,{0xDE,0x77,0x00,0x00,}}, {0x8FB9,2,{0xB1,0xDF,0x00,0x00,}}, {0x8FBA,2,{0xDE,0x78,0x00,0x00,}}, {0x8FBB,2,{0xDE,0x79,0x00,0x00,}}, {0x8FBC,2,{0xDE,0x7A,0x00,0x00,}}, {0x8FBD,2,{0xC1,0xC9,0x00,0x00,}}, {0x8FBE,2,{0xB4,0xEF,0x00,0x00,}}, {0x8FBF,2,{0xDE,0x7B,0x00,0x00,}}, {0x8FC0,2,{0xDE,0x7C,0x00,0x00,}}, {0x8FC1,2,{0xC7,0xA8,0x00,0x00,}}, {0x8FC2,2,{0xD3,0xD8,0x00,0x00,}}, {0x8FC3,2,{0xDE,0x7D,0x00,0x00,}}, {0x8FC4,2,{0xC6,0xF9,0x00,0x00,}}, {0x8FC5,2,{0xD1,0xB8,0x00,0x00,}}, {0x8FC6,2,{0xDE,0x7E,0x00,0x00,}}, {0x8FC7,2,{0xB9,0xFD,0x00,0x00,}}, {0x8FC8,2,{0xC2,0xF5,0x00,0x00,}}, {0x8FC9,2,{0xDE,0x80,0x00,0x00,}}, {0x8FCA,2,{0xDE,0x81,0x00,0x00,}}, {0x8FCB,2,{0xDE,0x82,0x00,0x00,}}, {0x8FCC,2,{0xDE,0x83,0x00,0x00,}}, {0x8FCD,2,{0xDE,0x84,0x00,0x00,}}, {0x8FCE,2,{0xD3,0xAD,0x00,0x00,}}, {0x8FCF,2,{0xDE,0x85,0x00,0x00,}}, {0x8FD0,2,{0xD4,0xCB,0x00,0x00,}}, {0x8FD1,2,{0xBD,0xFC,0x00,0x00,}}, {0x8FD2,2,{0xDE,0x86,0x00,0x00,}}, {0x8FD3,2,{0xE5,0xC2,0x00,0x00,}}, {0x8FD4,2,{0xB7,0xB5,0x00,0x00,}}, {0x8FD5,2,{0xE5,0xC3,0x00,0x00,}}, {0x8FD6,2,{0xDE,0x87,0x00,0x00,}}, {0x8FD7,2,{0xDE,0x88,0x00,0x00,}}, {0x8FD8,2,{0xBB,0xB9,0x00,0x00,}}, {0x8FD9,2,{0xD5,0xE2,0x00,0x00,}}, {0x8FDA,2,{0xDE,0x89,0x00,0x00,}}, {0x8FDB,2,{0xBD,0xF8,0x00,0x00,}}, {0x8FDC,2,{0xD4,0xB6,0x00,0x00,}}, {0x8FDD,2,{0xCE,0xA5,0x00,0x00,}}, {0x8FDE,2,{0xC1,0xAC,0x00,0x00,}}, {0x8FDF,2,{0xB3,0xD9,0x00,0x00,}}, {0x8FE0,2,{0xDE,0x8A,0x00,0x00,}}, {0x8FE1,2,{0xDE,0x8B,0x00,0x00,}}, {0x8FE2,2,{0xCC,0xF6,0x00,0x00,}}, {0x8FE3,2,{0xDE,0x8C,0x00,0x00,}}, {0x8FE4,2,{0xE5,0xC6,0x00,0x00,}}, {0x8FE5,2,{0xE5,0xC4,0x00,0x00,}}, {0x8FE6,2,{0xE5,0xC8,0x00,0x00,}}, {0x8FE7,2,{0xDE,0x8D,0x00,0x00,}}, {0x8FE8,2,{0xE5,0xCA,0x00,0x00,}}, {0x8FE9,2,{0xE5,0xC7,0x00,0x00,}}, {0x8FEA,2,{0xB5,0xCF,0x00,0x00,}}, {0x8FEB,2,{0xC6,0xC8,0x00,0x00,}}, {0x8FEC,2,{0xDE,0x8E,0x00,0x00,}}, {0x8FED,2,{0xB5,0xFC,0x00,0x00,}}, {0x8FEE,2,{0xE5,0xC5,0x00,0x00,}}, {0x8FEF,2,{0xDE,0x8F,0x00,0x00,}}, {0x8FF0,2,{0xCA,0xF6,0x00,0x00,}}, {0x8FF1,2,{0xDE,0x90,0x00,0x00,}}, {0x8FF2,2,{0xDE,0x91,0x00,0x00,}}, {0x8FF3,2,{0xE5,0xC9,0x00,0x00,}}, {0x8FF4,2,{0xDE,0x92,0x00,0x00,}}, {0x8FF5,2,{0xDE,0x93,0x00,0x00,}}, {0x8FF6,2,{0xDE,0x94,0x00,0x00,}}, {0x8FF7,2,{0xC3,0xD4,0x00,0x00,}}, {0x8FF8,2,{0xB1,0xC5,0x00,0x00,}}, {0x8FF9,2,{0xBC,0xA3,0x00,0x00,}}, {0x8FFA,2,{0xDE,0x95,0x00,0x00,}}, {0x8FFB,2,{0xDE,0x96,0x00,0x00,}}, {0x8FFC,2,{0xDE,0x97,0x00,0x00,}}, {0x8FFD,2,{0xD7,0xB7,0x00,0x00,}}, {0x8FFE,2,{0xDE,0x98,0x00,0x00,}}, {0x8FFF,2,{0xDE,0x99,0x00,0x00,}}, {0x9000,2,{0xCD,0xCB,0x00,0x00,}}, {0x9001,2,{0xCB,0xCD,0x00,0x00,}}, {0x9002,2,{0xCA,0xCA,0x00,0x00,}}, {0x9003,2,{0xCC,0xD3,0x00,0x00,}}, {0x9004,2,{0xE5,0xCC,0x00,0x00,}}, {0x9005,2,{0xE5,0xCB,0x00,0x00,}}, {0x9006,2,{0xC4,0xE6,0x00,0x00,}}, {0x9007,2,{0xDE,0x9A,0x00,0x00,}}, {0x9008,2,{0xDE,0x9B,0x00,0x00,}}, {0x9009,2,{0xD1,0xA1,0x00,0x00,}}, {0x900A,2,{0xD1,0xB7,0x00,0x00,}}, {0x900B,2,{0xE5,0xCD,0x00,0x00,}}, {0x900C,2,{0xDE,0x9C,0x00,0x00,}}, {0x900D,2,{0xE5,0xD0,0x00,0x00,}}, {0x900E,2,{0xDE,0x9D,0x00,0x00,}}, {0x900F,2,{0xCD,0xB8,0x00,0x00,}}, {0x9010,2,{0xD6,0xF0,0x00,0x00,}}, {0x9011,2,{0xE5,0xCF,0x00,0x00,}}, {0x9012,2,{0xB5,0xDD,0x00,0x00,}}, {0x9013,2,{0xDE,0x9E,0x00,0x00,}}, {0x9014,2,{0xCD,0xBE,0x00,0x00,}}, {0x9015,2,{0xDE,0x9F,0x00,0x00,}}, {0x9016,2,{0xE5,0xD1,0x00,0x00,}}, {0x9017,2,{0xB6,0xBA,0x00,0x00,}}, {0x9018,2,{0xDE,0xA0,0x00,0x00,}}, {0x9019,2,{0xDF,0x40,0x00,0x00,}}, {0x901A,2,{0xCD,0xA8,0x00,0x00,}}, {0x901B,2,{0xB9,0xE4,0x00,0x00,}}, {0x901C,2,{0xDF,0x41,0x00,0x00,}}, {0x901D,2,{0xCA,0xC5,0x00,0x00,}}, {0x901E,2,{0xB3,0xD1,0x00,0x00,}}, {0x901F,2,{0xCB,0xD9,0x00,0x00,}}, {0x9020,2,{0xD4,0xEC,0x00,0x00,}}, {0x9021,2,{0xE5,0xD2,0x00,0x00,}}, {0x9022,2,{0xB7,0xEA,0x00,0x00,}}, {0x9023,2,{0xDF,0x42,0x00,0x00,}}, {0x9024,2,{0xDF,0x43,0x00,0x00,}}, {0x9025,2,{0xDF,0x44,0x00,0x00,}}, {0x9026,2,{0xE5,0xCE,0x00,0x00,}}, {0x9027,2,{0xDF,0x45,0x00,0x00,}}, {0x9028,2,{0xDF,0x46,0x00,0x00,}}, {0x9029,2,{0xDF,0x47,0x00,0x00,}}, {0x902A,2,{0xDF,0x48,0x00,0x00,}}, {0x902B,2,{0xDF,0x49,0x00,0x00,}}, {0x902C,2,{0xDF,0x4A,0x00,0x00,}}, {0x902D,2,{0xE5,0xD5,0x00,0x00,}}, {0x902E,2,{0xB4,0xFE,0x00,0x00,}}, {0x902F,2,{0xE5,0xD6,0x00,0x00,}}, {0x9030,2,{0xDF,0x4B,0x00,0x00,}}, {0x9031,2,{0xDF,0x4C,0x00,0x00,}}, {0x9032,2,{0xDF,0x4D,0x00,0x00,}}, {0x9033,2,{0xDF,0x4E,0x00,0x00,}}, {0x9034,2,{0xDF,0x4F,0x00,0x00,}}, {0x9035,2,{0xE5,0xD3,0x00,0x00,}}, {0x9036,2,{0xE5,0xD4,0x00,0x00,}}, {0x9037,2,{0xDF,0x50,0x00,0x00,}}, {0x9038,2,{0xD2,0xDD,0x00,0x00,}}, {0x9039,2,{0xDF,0x51,0x00,0x00,}}, {0x903A,2,{0xDF,0x52,0x00,0x00,}}, {0x903B,2,{0xC2,0xDF,0x00,0x00,}}, {0x903C,2,{0xB1,0xC6,0x00,0x00,}}, {0x903D,2,{0xDF,0x53,0x00,0x00,}}, {0x903E,2,{0xD3,0xE2,0x00,0x00,}}, {0x903F,2,{0xDF,0x54,0x00,0x00,}}, {0x9040,2,{0xDF,0x55,0x00,0x00,}}, {0x9041,2,{0xB6,0xDD,0x00,0x00,}}, {0x9042,2,{0xCB,0xEC,0x00,0x00,}}, {0x9043,2,{0xDF,0x56,0x00,0x00,}}, {0x9044,2,{0xE5,0xD7,0x00,0x00,}}, {0x9045,2,{0xDF,0x57,0x00,0x00,}}, {0x9046,2,{0xDF,0x58,0x00,0x00,}}, {0x9047,2,{0xD3,0xF6,0x00,0x00,}}, {0x9048,2,{0xDF,0x59,0x00,0x00,}}, {0x9049,2,{0xDF,0x5A,0x00,0x00,}}, {0x904A,2,{0xDF,0x5B,0x00,0x00,}}, {0x904B,2,{0xDF,0x5C,0x00,0x00,}}, {0x904C,2,{0xDF,0x5D,0x00,0x00,}}, {0x904D,2,{0xB1,0xE9,0x00,0x00,}}, {0x904E,2,{0xDF,0x5E,0x00,0x00,}}, {0x904F,2,{0xB6,0xF4,0x00,0x00,}}, {0x9050,2,{0xE5,0xDA,0x00,0x00,}}, {0x9051,2,{0xE5,0xD8,0x00,0x00,}}, {0x9052,2,{0xE5,0xD9,0x00,0x00,}}, {0x9053,2,{0xB5,0xC0,0x00,0x00,}}, {0x9054,2,{0xDF,0x5F,0x00,0x00,}}, {0x9055,2,{0xDF,0x60,0x00,0x00,}}, {0x9056,2,{0xDF,0x61,0x00,0x00,}}, {0x9057,2,{0xD2,0xC5,0x00,0x00,}}, {0x9058,2,{0xE5,0xDC,0x00,0x00,}}, {0x9059,2,{0xDF,0x62,0x00,0x00,}}, {0x905A,2,{0xDF,0x63,0x00,0x00,}}, {0x905B,2,{0xE5,0xDE,0x00,0x00,}}, {0x905C,2,{0xDF,0x64,0x00,0x00,}}, {0x905D,2,{0xDF,0x65,0x00,0x00,}}, {0x905E,2,{0xDF,0x66,0x00,0x00,}}, {0x905F,2,{0xDF,0x67,0x00,0x00,}}, {0x9060,2,{0xDF,0x68,0x00,0x00,}}, {0x9061,2,{0xDF,0x69,0x00,0x00,}}, {0x9062,2,{0xE5,0xDD,0x00,0x00,}}, {0x9063,2,{0xC7,0xB2,0x00,0x00,}}, {0x9064,2,{0xDF,0x6A,0x00,0x00,}}, {0x9065,2,{0xD2,0xA3,0x00,0x00,}}, {0x9066,2,{0xDF,0x6B,0x00,0x00,}}, {0x9067,2,{0xDF,0x6C,0x00,0x00,}}, {0x9068,2,{0xE5,0xDB,0x00,0x00,}}, {0x9069,2,{0xDF,0x6D,0x00,0x00,}}, {0x906A,2,{0xDF,0x6E,0x00,0x00,}}, {0x906B,2,{0xDF,0x6F,0x00,0x00,}}, {0x906C,2,{0xDF,0x70,0x00,0x00,}}, {0x906D,2,{0xD4,0xE2,0x00,0x00,}}, {0x906E,2,{0xD5,0xDA,0x00,0x00,}}, {0x906F,2,{0xDF,0x71,0x00,0x00,}}, {0x9070,2,{0xDF,0x72,0x00,0x00,}}, {0x9071,2,{0xDF,0x73,0x00,0x00,}}, {0x9072,2,{0xDF,0x74,0x00,0x00,}}, {0x9073,2,{0xDF,0x75,0x00,0x00,}}, {0x9074,2,{0xE5,0xE0,0x00,0x00,}}, {0x9075,2,{0xD7,0xF1,0x00,0x00,}}, {0x9076,2,{0xDF,0x76,0x00,0x00,}}, {0x9077,2,{0xDF,0x77,0x00,0x00,}}, {0x9078,2,{0xDF,0x78,0x00,0x00,}}, {0x9079,2,{0xDF,0x79,0x00,0x00,}}, {0x907A,2,{0xDF,0x7A,0x00,0x00,}}, {0x907B,2,{0xDF,0x7B,0x00,0x00,}}, {0x907C,2,{0xDF,0x7C,0x00,0x00,}}, {0x907D,2,{0xE5,0xE1,0x00,0x00,}}, {0x907E,2,{0xDF,0x7D,0x00,0x00,}}, {0x907F,2,{0xB1,0xDC,0x00,0x00,}}, {0x9080,2,{0xD1,0xFB,0x00,0x00,}}, {0x9081,2,{0xDF,0x7E,0x00,0x00,}}, {0x9082,2,{0xE5,0xE2,0x00,0x00,}}, {0x9083,2,{0xE5,0xE4,0x00,0x00,}}, {0x9084,2,{0xDF,0x80,0x00,0x00,}}, {0x9085,2,{0xDF,0x81,0x00,0x00,}}, {0x9086,2,{0xDF,0x82,0x00,0x00,}}, {0x9087,2,{0xDF,0x83,0x00,0x00,}}, {0x9088,2,{0xE5,0xE3,0x00,0x00,}}, {0x9089,2,{0xDF,0x84,0x00,0x00,}}, {0x908A,2,{0xDF,0x85,0x00,0x00,}}, {0x908B,2,{0xE5,0xE5,0x00,0x00,}}, {0x908C,2,{0xDF,0x86,0x00,0x00,}}, {0x908D,2,{0xDF,0x87,0x00,0x00,}}, {0x908E,2,{0xDF,0x88,0x00,0x00,}}, {0x908F,2,{0xDF,0x89,0x00,0x00,}}, {0x9090,2,{0xDF,0x8A,0x00,0x00,}}, {0x9091,2,{0xD2,0xD8,0x00,0x00,}}, {0x9092,2,{0xDF,0x8B,0x00,0x00,}}, {0x9093,2,{0xB5,0xCB,0x00,0x00,}}, {0x9094,2,{0xDF,0x8C,0x00,0x00,}}, {0x9095,2,{0xE7,0xDF,0x00,0x00,}}, {0x9096,2,{0xDF,0x8D,0x00,0x00,}}, {0x9097,2,{0xDA,0xF5,0x00,0x00,}}, {0x9098,2,{0xDF,0x8E,0x00,0x00,}}, {0x9099,2,{0xDA,0xF8,0x00,0x00,}}, {0x909A,2,{0xDF,0x8F,0x00,0x00,}}, {0x909B,2,{0xDA,0xF6,0x00,0x00,}}, {0x909C,2,{0xDF,0x90,0x00,0x00,}}, {0x909D,2,{0xDA,0xF7,0x00,0x00,}}, {0x909E,2,{0xDF,0x91,0x00,0x00,}}, {0x909F,2,{0xDF,0x92,0x00,0x00,}}, {0x90A0,2,{0xDF,0x93,0x00,0x00,}}, {0x90A1,2,{0xDA,0xFA,0x00,0x00,}}, {0x90A2,2,{0xD0,0xCF,0x00,0x00,}}, {0x90A3,2,{0xC4,0xC7,0x00,0x00,}}, {0x90A4,2,{0xDF,0x94,0x00,0x00,}}, {0x90A5,2,{0xDF,0x95,0x00,0x00,}}, {0x90A6,2,{0xB0,0xEE,0x00,0x00,}}, {0x90A7,2,{0xDF,0x96,0x00,0x00,}}, {0x90A8,2,{0xDF,0x97,0x00,0x00,}}, {0x90A9,2,{0xDF,0x98,0x00,0x00,}}, {0x90AA,2,{0xD0,0xB0,0x00,0x00,}}, {0x90AB,2,{0xDF,0x99,0x00,0x00,}}, {0x90AC,2,{0xDA,0xF9,0x00,0x00,}}, {0x90AD,2,{0xDF,0x9A,0x00,0x00,}}, {0x90AE,2,{0xD3,0xCA,0x00,0x00,}}, {0x90AF,2,{0xBA,0xAA,0x00,0x00,}}, {0x90B0,2,{0xDB,0xA2,0x00,0x00,}}, {0x90B1,2,{0xC7,0xF1,0x00,0x00,}}, {0x90B2,2,{0xDF,0x9B,0x00,0x00,}}, {0x90B3,2,{0xDA,0xFC,0x00,0x00,}}, {0x90B4,2,{0xDA,0xFB,0x00,0x00,}}, {0x90B5,2,{0xC9,0xDB,0x00,0x00,}}, {0x90B6,2,{0xDA,0xFD,0x00,0x00,}}, {0x90B7,2,{0xDF,0x9C,0x00,0x00,}}, {0x90B8,2,{0xDB,0xA1,0x00,0x00,}}, {0x90B9,2,{0xD7,0xDE,0x00,0x00,}}, {0x90BA,2,{0xDA,0xFE,0x00,0x00,}}, {0x90BB,2,{0xC1,0xDA,0x00,0x00,}}, {0x90BC,2,{0xDF,0x9D,0x00,0x00,}}, {0x90BD,2,{0xDF,0x9E,0x00,0x00,}}, {0x90BE,2,{0xDB,0xA5,0x00,0x00,}}, {0x90BF,2,{0xDF,0x9F,0x00,0x00,}}, {0x90C0,2,{0xDF,0xA0,0x00,0x00,}}, {0x90C1,2,{0xD3,0xF4,0x00,0x00,}}, {0x90C2,2,{0xE0,0x40,0x00,0x00,}}, {0x90C3,2,{0xE0,0x41,0x00,0x00,}}, {0x90C4,2,{0xDB,0xA7,0x00,0x00,}}, {0x90C5,2,{0xDB,0xA4,0x00,0x00,}}, {0x90C6,2,{0xE0,0x42,0x00,0x00,}}, {0x90C7,2,{0xDB,0xA8,0x00,0x00,}}, {0x90C8,2,{0xE0,0x43,0x00,0x00,}}, {0x90C9,2,{0xE0,0x44,0x00,0x00,}}, {0x90CA,2,{0xBD,0xBC,0x00,0x00,}}, {0x90CB,2,{0xE0,0x45,0x00,0x00,}}, {0x90CC,2,{0xE0,0x46,0x00,0x00,}}, {0x90CD,2,{0xE0,0x47,0x00,0x00,}}, {0x90CE,2,{0xC0,0xC9,0x00,0x00,}}, {0x90CF,2,{0xDB,0xA3,0x00,0x00,}}, {0x90D0,2,{0xDB,0xA6,0x00,0x00,}}, {0x90D1,2,{0xD6,0xA3,0x00,0x00,}}, {0x90D2,2,{0xE0,0x48,0x00,0x00,}}, {0x90D3,2,{0xDB,0xA9,0x00,0x00,}}, {0x90D4,2,{0xE0,0x49,0x00,0x00,}}, {0x90D5,2,{0xE0,0x4A,0x00,0x00,}}, {0x90D6,2,{0xE0,0x4B,0x00,0x00,}}, {0x90D7,2,{0xDB,0xAD,0x00,0x00,}}, {0x90D8,2,{0xE0,0x4C,0x00,0x00,}}, {0x90D9,2,{0xE0,0x4D,0x00,0x00,}}, {0x90DA,2,{0xE0,0x4E,0x00,0x00,}}, {0x90DB,2,{0xDB,0xAE,0x00,0x00,}}, {0x90DC,2,{0xDB,0xAC,0x00,0x00,}}, {0x90DD,2,{0xBA,0xC2,0x00,0x00,}}, {0x90DE,2,{0xE0,0x4F,0x00,0x00,}}, {0x90DF,2,{0xE0,0x50,0x00,0x00,}}, {0x90E0,2,{0xE0,0x51,0x00,0x00,}}, {0x90E1,2,{0xBF,0xA4,0x00,0x00,}}, {0x90E2,2,{0xDB,0xAB,0x00,0x00,}}, {0x90E3,2,{0xE0,0x52,0x00,0x00,}}, {0x90E4,2,{0xE0,0x53,0x00,0x00,}}, {0x90E5,2,{0xE0,0x54,0x00,0x00,}}, {0x90E6,2,{0xDB,0xAA,0x00,0x00,}}, {0x90E7,2,{0xD4,0xC7,0x00,0x00,}}, {0x90E8,2,{0xB2,0xBF,0x00,0x00,}}, {0x90E9,2,{0xE0,0x55,0x00,0x00,}}, {0x90EA,2,{0xE0,0x56,0x00,0x00,}}, {0x90EB,2,{0xDB,0xAF,0x00,0x00,}}, {0x90EC,2,{0xE0,0x57,0x00,0x00,}}, {0x90ED,2,{0xB9,0xF9,0x00,0x00,}}, {0x90EE,2,{0xE0,0x58,0x00,0x00,}}, {0x90EF,2,{0xDB,0xB0,0x00,0x00,}}, {0x90F0,2,{0xE0,0x59,0x00,0x00,}}, {0x90F1,2,{0xE0,0x5A,0x00,0x00,}}, {0x90F2,2,{0xE0,0x5B,0x00,0x00,}}, {0x90F3,2,{0xE0,0x5C,0x00,0x00,}}, {0x90F4,2,{0xB3,0xBB,0x00,0x00,}}, {0x90F5,2,{0xE0,0x5D,0x00,0x00,}}, {0x90F6,2,{0xE0,0x5E,0x00,0x00,}}, {0x90F7,2,{0xE0,0x5F,0x00,0x00,}}, {0x90F8,2,{0xB5,0xA6,0x00,0x00,}}, {0x90F9,2,{0xE0,0x60,0x00,0x00,}}, {0x90FA,2,{0xE0,0x61,0x00,0x00,}}, {0x90FB,2,{0xE0,0x62,0x00,0x00,}}, {0x90FC,2,{0xE0,0x63,0x00,0x00,}}, {0x90FD,2,{0xB6,0xBC,0x00,0x00,}}, {0x90FE,2,{0xDB,0xB1,0x00,0x00,}}, {0x90FF,2,{0xE0,0x64,0x00,0x00,}}, {0x9100,2,{0xE0,0x65,0x00,0x00,}}, {0x9101,2,{0xE0,0x66,0x00,0x00,}}, {0x9102,2,{0xB6,0xF5,0x00,0x00,}}, {0x9103,2,{0xE0,0x67,0x00,0x00,}}, {0x9104,2,{0xDB,0xB2,0x00,0x00,}}, {0x9105,2,{0xE0,0x68,0x00,0x00,}}, {0x9106,2,{0xE0,0x69,0x00,0x00,}}, {0x9107,2,{0xE0,0x6A,0x00,0x00,}}, {0x9108,2,{0xE0,0x6B,0x00,0x00,}}, {0x9109,2,{0xE0,0x6C,0x00,0x00,}}, {0x910A,2,{0xE0,0x6D,0x00,0x00,}}, {0x910B,2,{0xE0,0x6E,0x00,0x00,}}, {0x910C,2,{0xE0,0x6F,0x00,0x00,}}, {0x910D,2,{0xE0,0x70,0x00,0x00,}}, {0x910E,2,{0xE0,0x71,0x00,0x00,}}, {0x910F,2,{0xE0,0x72,0x00,0x00,}}, {0x9110,2,{0xE0,0x73,0x00,0x00,}}, {0x9111,2,{0xE0,0x74,0x00,0x00,}}, {0x9112,2,{0xE0,0x75,0x00,0x00,}}, {0x9113,2,{0xE0,0x76,0x00,0x00,}}, {0x9114,2,{0xE0,0x77,0x00,0x00,}}, {0x9115,2,{0xE0,0x78,0x00,0x00,}}, {0x9116,2,{0xE0,0x79,0x00,0x00,}}, {0x9117,2,{0xE0,0x7A,0x00,0x00,}}, {0x9118,2,{0xE0,0x7B,0x00,0x00,}}, {0x9119,2,{0xB1,0xC9,0x00,0x00,}}, {0x911A,2,{0xE0,0x7C,0x00,0x00,}}, {0x911B,2,{0xE0,0x7D,0x00,0x00,}}, {0x911C,2,{0xE0,0x7E,0x00,0x00,}}, {0x911D,2,{0xE0,0x80,0x00,0x00,}}, {0x911E,2,{0xDB,0xB4,0x00,0x00,}}, {0x911F,2,{0xE0,0x81,0x00,0x00,}}, {0x9120,2,{0xE0,0x82,0x00,0x00,}}, {0x9121,2,{0xE0,0x83,0x00,0x00,}}, {0x9122,2,{0xDB,0xB3,0x00,0x00,}}, {0x9123,2,{0xDB,0xB5,0x00,0x00,}}, {0x9124,2,{0xE0,0x84,0x00,0x00,}}, {0x9125,2,{0xE0,0x85,0x00,0x00,}}, {0x9126,2,{0xE0,0x86,0x00,0x00,}}, {0x9127,2,{0xE0,0x87,0x00,0x00,}}, {0x9128,2,{0xE0,0x88,0x00,0x00,}}, {0x9129,2,{0xE0,0x89,0x00,0x00,}}, {0x912A,2,{0xE0,0x8A,0x00,0x00,}}, {0x912B,2,{0xE0,0x8B,0x00,0x00,}}, {0x912C,2,{0xE0,0x8C,0x00,0x00,}}, {0x912D,2,{0xE0,0x8D,0x00,0x00,}}, {0x912E,2,{0xE0,0x8E,0x00,0x00,}}, {0x912F,2,{0xDB,0xB7,0x00,0x00,}}, {0x9130,2,{0xE0,0x8F,0x00,0x00,}}, {0x9131,2,{0xDB,0xB6,0x00,0x00,}}, {0x9132,2,{0xE0,0x90,0x00,0x00,}}, {0x9133,2,{0xE0,0x91,0x00,0x00,}}, {0x9134,2,{0xE0,0x92,0x00,0x00,}}, {0x9135,2,{0xE0,0x93,0x00,0x00,}}, {0x9136,2,{0xE0,0x94,0x00,0x00,}}, {0x9137,2,{0xE0,0x95,0x00,0x00,}}, {0x9138,2,{0xE0,0x96,0x00,0x00,}}, {0x9139,2,{0xDB,0xB8,0x00,0x00,}}, {0x913A,2,{0xE0,0x97,0x00,0x00,}}, {0x913B,2,{0xE0,0x98,0x00,0x00,}}, {0x913C,2,{0xE0,0x99,0x00,0x00,}}, {0x913D,2,{0xE0,0x9A,0x00,0x00,}}, {0x913E,2,{0xE0,0x9B,0x00,0x00,}}, {0x913F,2,{0xE0,0x9C,0x00,0x00,}}, {0x9140,2,{0xE0,0x9D,0x00,0x00,}}, {0x9141,2,{0xE0,0x9E,0x00,0x00,}}, {0x9142,2,{0xE0,0x9F,0x00,0x00,}}, {0x9143,2,{0xDB,0xB9,0x00,0x00,}}, {0x9144,2,{0xE0,0xA0,0x00,0x00,}}, {0x9145,2,{0xE1,0x40,0x00,0x00,}}, {0x9146,2,{0xDB,0xBA,0x00,0x00,}}, {0x9147,2,{0xE1,0x41,0x00,0x00,}}, {0x9148,2,{0xE1,0x42,0x00,0x00,}}, {0x9149,2,{0xD3,0xCF,0x00,0x00,}}, {0x914A,2,{0xF4,0xFA,0x00,0x00,}}, {0x914B,2,{0xC7,0xF5,0x00,0x00,}}, {0x914C,2,{0xD7,0xC3,0x00,0x00,}}, {0x914D,2,{0xC5,0xE4,0x00,0x00,}}, {0x914E,2,{0xF4,0xFC,0x00,0x00,}}, {0x914F,2,{0xF4,0xFD,0x00,0x00,}}, {0x9150,2,{0xF4,0xFB,0x00,0x00,}}, {0x9151,2,{0xE1,0x43,0x00,0x00,}}, {0x9152,2,{0xBE,0xC6,0x00,0x00,}}, {0x9153,2,{0xE1,0x44,0x00,0x00,}}, {0x9154,2,{0xE1,0x45,0x00,0x00,}}, {0x9155,2,{0xE1,0x46,0x00,0x00,}}, {0x9156,2,{0xE1,0x47,0x00,0x00,}}, {0x9157,2,{0xD0,0xEF,0x00,0x00,}}, {0x9158,2,{0xE1,0x48,0x00,0x00,}}, {0x9159,2,{0xE1,0x49,0x00,0x00,}}, {0x915A,2,{0xB7,0xD3,0x00,0x00,}}, {0x915B,2,{0xE1,0x4A,0x00,0x00,}}, {0x915C,2,{0xE1,0x4B,0x00,0x00,}}, {0x915D,2,{0xD4,0xCD,0x00,0x00,}}, {0x915E,2,{0xCC,0xAA,0x00,0x00,}}, {0x915F,2,{0xE1,0x4C,0x00,0x00,}}, {0x9160,2,{0xE1,0x4D,0x00,0x00,}}, {0x9161,2,{0xF5,0xA2,0x00,0x00,}}, {0x9162,2,{0xF5,0xA1,0x00,0x00,}}, {0x9163,2,{0xBA,0xA8,0x00,0x00,}}, {0x9164,2,{0xF4,0xFE,0x00,0x00,}}, {0x9165,2,{0xCB,0xD6,0x00,0x00,}}, {0x9166,2,{0xE1,0x4E,0x00,0x00,}}, {0x9167,2,{0xE1,0x4F,0x00,0x00,}}, {0x9168,2,{0xE1,0x50,0x00,0x00,}}, {0x9169,2,{0xF5,0xA4,0x00,0x00,}}, {0x916A,2,{0xC0,0xD2,0x00,0x00,}}, {0x916B,2,{0xE1,0x51,0x00,0x00,}}, {0x916C,2,{0xB3,0xEA,0x00,0x00,}}, {0x916D,2,{0xE1,0x52,0x00,0x00,}}, {0x916E,2,{0xCD,0xAA,0x00,0x00,}}, {0x916F,2,{0xF5,0xA5,0x00,0x00,}}, {0x9170,2,{0xF5,0xA3,0x00,0x00,}}, {0x9171,2,{0xBD,0xB4,0x00,0x00,}}, {0x9172,2,{0xF5,0xA8,0x00,0x00,}}, {0x9173,2,{0xE1,0x53,0x00,0x00,}}, {0x9174,2,{0xF5,0xA9,0x00,0x00,}}, {0x9175,2,{0xBD,0xCD,0x00,0x00,}}, {0x9176,2,{0xC3,0xB8,0x00,0x00,}}, {0x9177,2,{0xBF,0xE1,0x00,0x00,}}, {0x9178,2,{0xCB,0xE1,0x00,0x00,}}, {0x9179,2,{0xF5,0xAA,0x00,0x00,}}, {0x917A,2,{0xE1,0x54,0x00,0x00,}}, {0x917B,2,{0xE1,0x55,0x00,0x00,}}, {0x917C,2,{0xE1,0x56,0x00,0x00,}}, {0x917D,2,{0xF5,0xA6,0x00,0x00,}}, {0x917E,2,{0xF5,0xA7,0x00,0x00,}}, {0x917F,2,{0xC4,0xF0,0x00,0x00,}}, {0x9180,2,{0xE1,0x57,0x00,0x00,}}, {0x9181,2,{0xE1,0x58,0x00,0x00,}}, {0x9182,2,{0xE1,0x59,0x00,0x00,}}, {0x9183,2,{0xE1,0x5A,0x00,0x00,}}, {0x9184,2,{0xE1,0x5B,0x00,0x00,}}, {0x9185,2,{0xF5,0xAC,0x00,0x00,}}, {0x9186,2,{0xE1,0x5C,0x00,0x00,}}, {0x9187,2,{0xB4,0xBC,0x00,0x00,}}, {0x9188,2,{0xE1,0x5D,0x00,0x00,}}, {0x9189,2,{0xD7,0xED,0x00,0x00,}}, {0x918A,2,{0xE1,0x5E,0x00,0x00,}}, {0x918B,2,{0xB4,0xD7,0x00,0x00,}}, {0x918C,2,{0xF5,0xAB,0x00,0x00,}}, {0x918D,2,{0xF5,0xAE,0x00,0x00,}}, {0x918E,2,{0xE1,0x5F,0x00,0x00,}}, {0x918F,2,{0xE1,0x60,0x00,0x00,}}, {0x9190,2,{0xF5,0xAD,0x00,0x00,}}, {0x9191,2,{0xF5,0xAF,0x00,0x00,}}, {0x9192,2,{0xD0,0xD1,0x00,0x00,}}, {0x9193,2,{0xE1,0x61,0x00,0x00,}}, {0x9194,2,{0xE1,0x62,0x00,0x00,}}, {0x9195,2,{0xE1,0x63,0x00,0x00,}}, {0x9196,2,{0xE1,0x64,0x00,0x00,}}, {0x9197,2,{0xE1,0x65,0x00,0x00,}}, {0x9198,2,{0xE1,0x66,0x00,0x00,}}, {0x9199,2,{0xE1,0x67,0x00,0x00,}}, {0x919A,2,{0xC3,0xD1,0x00,0x00,}}, {0x919B,2,{0xC8,0xA9,0x00,0x00,}}, {0x919C,2,{0xE1,0x68,0x00,0x00,}}, {0x919D,2,{0xE1,0x69,0x00,0x00,}}, {0x919E,2,{0xE1,0x6A,0x00,0x00,}}, {0x919F,2,{0xE1,0x6B,0x00,0x00,}}, {0x91A0,2,{0xE1,0x6C,0x00,0x00,}}, {0x91A1,2,{0xE1,0x6D,0x00,0x00,}}, {0x91A2,2,{0xF5,0xB0,0x00,0x00,}}, {0x91A3,2,{0xF5,0xB1,0x00,0x00,}}, {0x91A4,2,{0xE1,0x6E,0x00,0x00,}}, {0x91A5,2,{0xE1,0x6F,0x00,0x00,}}, {0x91A6,2,{0xE1,0x70,0x00,0x00,}}, {0x91A7,2,{0xE1,0x71,0x00,0x00,}}, {0x91A8,2,{0xE1,0x72,0x00,0x00,}}, {0x91A9,2,{0xE1,0x73,0x00,0x00,}}, {0x91AA,2,{0xF5,0xB2,0x00,0x00,}}, {0x91AB,2,{0xE1,0x74,0x00,0x00,}}, {0x91AC,2,{0xE1,0x75,0x00,0x00,}}, {0x91AD,2,{0xF5,0xB3,0x00,0x00,}}, {0x91AE,2,{0xF5,0xB4,0x00,0x00,}}, {0x91AF,2,{0xF5,0xB5,0x00,0x00,}}, {0x91B0,2,{0xE1,0x76,0x00,0x00,}}, {0x91B1,2,{0xE1,0x77,0x00,0x00,}}, {0x91B2,2,{0xE1,0x78,0x00,0x00,}}, {0x91B3,2,{0xE1,0x79,0x00,0x00,}}, {0x91B4,2,{0xF5,0xB7,0x00,0x00,}}, {0x91B5,2,{0xF5,0xB6,0x00,0x00,}}, {0x91B6,2,{0xE1,0x7A,0x00,0x00,}}, {0x91B7,2,{0xE1,0x7B,0x00,0x00,}}, {0x91B8,2,{0xE1,0x7C,0x00,0x00,}}, {0x91B9,2,{0xE1,0x7D,0x00,0x00,}}, {0x91BA,2,{0xF5,0xB8,0x00,0x00,}}, {0x91BB,2,{0xE1,0x7E,0x00,0x00,}}, {0x91BC,2,{0xE1,0x80,0x00,0x00,}}, {0x91BD,2,{0xE1,0x81,0x00,0x00,}}, {0x91BE,2,{0xE1,0x82,0x00,0x00,}}, {0x91BF,2,{0xE1,0x83,0x00,0x00,}}, {0x91C0,2,{0xE1,0x84,0x00,0x00,}}, {0x91C1,2,{0xE1,0x85,0x00,0x00,}}, {0x91C2,2,{0xE1,0x86,0x00,0x00,}}, {0x91C3,2,{0xE1,0x87,0x00,0x00,}}, {0x91C4,2,{0xE1,0x88,0x00,0x00,}}, {0x91C5,2,{0xE1,0x89,0x00,0x00,}}, {0x91C6,2,{0xE1,0x8A,0x00,0x00,}}, {0x91C7,2,{0xB2,0xC9,0x00,0x00,}}, {0x91C8,2,{0xE1,0x8B,0x00,0x00,}}, {0x91C9,2,{0xD3,0xD4,0x00,0x00,}}, {0x91CA,2,{0xCA,0xCD,0x00,0x00,}}, {0x91CB,2,{0xE1,0x8C,0x00,0x00,}}, {0x91CC,2,{0xC0,0xEF,0x00,0x00,}}, {0x91CD,2,{0xD6,0xD8,0x00,0x00,}}, {0x91CE,2,{0xD2,0xB0,0x00,0x00,}}, {0x91CF,2,{0xC1,0xBF,0x00,0x00,}}, {0x91D0,2,{0xE1,0x8D,0x00,0x00,}}, {0x91D1,2,{0xBD,0xF0,0x00,0x00,}}, {0x91D2,2,{0xE1,0x8E,0x00,0x00,}}, {0x91D3,2,{0xE1,0x8F,0x00,0x00,}}, {0x91D4,2,{0xE1,0x90,0x00,0x00,}}, {0x91D5,2,{0xE1,0x91,0x00,0x00,}}, {0x91D6,2,{0xE1,0x92,0x00,0x00,}}, {0x91D7,2,{0xE1,0x93,0x00,0x00,}}, {0x91D8,2,{0xE1,0x94,0x00,0x00,}}, {0x91D9,2,{0xE1,0x95,0x00,0x00,}}, {0x91DA,2,{0xE1,0x96,0x00,0x00,}}, {0x91DB,2,{0xE1,0x97,0x00,0x00,}}, {0x91DC,2,{0xB8,0xAA,0x00,0x00,}}, {0x91DD,2,{0xE1,0x98,0x00,0x00,}}, {0x91DE,2,{0xE1,0x99,0x00,0x00,}}, {0x91DF,2,{0xE1,0x9A,0x00,0x00,}}, {0x91E0,2,{0xE1,0x9B,0x00,0x00,}}, {0x91E1,2,{0xE1,0x9C,0x00,0x00,}}, {0x91E2,2,{0xE1,0x9D,0x00,0x00,}}, {0x91E3,2,{0xE1,0x9E,0x00,0x00,}}, {0x91E4,2,{0xE1,0x9F,0x00,0x00,}}, {0x91E5,2,{0xE1,0xA0,0x00,0x00,}}, {0x91E6,2,{0xE2,0x40,0x00,0x00,}}, {0x91E7,2,{0xE2,0x41,0x00,0x00,}}, {0x91E8,2,{0xE2,0x42,0x00,0x00,}}, {0x91E9,2,{0xE2,0x43,0x00,0x00,}}, {0x91EA,2,{0xE2,0x44,0x00,0x00,}}, {0x91EB,2,{0xE2,0x45,0x00,0x00,}}, {0x91EC,2,{0xE2,0x46,0x00,0x00,}}, {0x91ED,2,{0xE2,0x47,0x00,0x00,}}, {0x91EE,2,{0xE2,0x48,0x00,0x00,}}, {0x91EF,2,{0xE2,0x49,0x00,0x00,}}, {0x91F0,2,{0xE2,0x4A,0x00,0x00,}}, {0x91F1,2,{0xE2,0x4B,0x00,0x00,}}, {0x91F2,2,{0xE2,0x4C,0x00,0x00,}}, {0x91F3,2,{0xE2,0x4D,0x00,0x00,}}, {0x91F4,2,{0xE2,0x4E,0x00,0x00,}}, {0x91F5,2,{0xE2,0x4F,0x00,0x00,}}, {0x91F6,2,{0xE2,0x50,0x00,0x00,}}, {0x91F7,2,{0xE2,0x51,0x00,0x00,}}, {0x91F8,2,{0xE2,0x52,0x00,0x00,}}, {0x91F9,2,{0xE2,0x53,0x00,0x00,}}, {0x91FA,2,{0xE2,0x54,0x00,0x00,}}, {0x91FB,2,{0xE2,0x55,0x00,0x00,}}, {0x91FC,2,{0xE2,0x56,0x00,0x00,}}, {0x91FD,2,{0xE2,0x57,0x00,0x00,}}, {0x91FE,2,{0xE2,0x58,0x00,0x00,}}, {0x91FF,2,{0xE2,0x59,0x00,0x00,}}, {0x9200,2,{0xE2,0x5A,0x00,0x00,}}, {0x9201,2,{0xE2,0x5B,0x00,0x00,}}, {0x9202,2,{0xE2,0x5C,0x00,0x00,}}, {0x9203,2,{0xE2,0x5D,0x00,0x00,}}, {0x9204,2,{0xE2,0x5E,0x00,0x00,}}, {0x9205,2,{0xE2,0x5F,0x00,0x00,}}, {0x9206,2,{0xE2,0x60,0x00,0x00,}}, {0x9207,2,{0xE2,0x61,0x00,0x00,}}, {0x9208,2,{0xE2,0x62,0x00,0x00,}}, {0x9209,2,{0xE2,0x63,0x00,0x00,}}, {0x920A,2,{0xE2,0x64,0x00,0x00,}}, {0x920B,2,{0xE2,0x65,0x00,0x00,}}, {0x920C,2,{0xE2,0x66,0x00,0x00,}}, {0x920D,2,{0xE2,0x67,0x00,0x00,}}, {0x920E,2,{0xE2,0x68,0x00,0x00,}}, {0x920F,2,{0xE2,0x69,0x00,0x00,}}, {0x9210,2,{0xE2,0x6A,0x00,0x00,}}, {0x9211,2,{0xE2,0x6B,0x00,0x00,}}, {0x9212,2,{0xE2,0x6C,0x00,0x00,}}, {0x9213,2,{0xE2,0x6D,0x00,0x00,}}, {0x9214,2,{0xE2,0x6E,0x00,0x00,}}, {0x9215,2,{0xE2,0x6F,0x00,0x00,}}, {0x9216,2,{0xE2,0x70,0x00,0x00,}}, {0x9217,2,{0xE2,0x71,0x00,0x00,}}, {0x9218,2,{0xE2,0x72,0x00,0x00,}}, {0x9219,2,{0xE2,0x73,0x00,0x00,}}, {0x921A,2,{0xE2,0x74,0x00,0x00,}}, {0x921B,2,{0xE2,0x75,0x00,0x00,}}, {0x921C,2,{0xE2,0x76,0x00,0x00,}}, {0x921D,2,{0xE2,0x77,0x00,0x00,}}, {0x921E,2,{0xE2,0x78,0x00,0x00,}}, {0x921F,2,{0xE2,0x79,0x00,0x00,}}, {0x9220,2,{0xE2,0x7A,0x00,0x00,}}, {0x9221,2,{0xE2,0x7B,0x00,0x00,}}, {0x9222,2,{0xE2,0x7C,0x00,0x00,}}, {0x9223,2,{0xE2,0x7D,0x00,0x00,}}, {0x9224,2,{0xE2,0x7E,0x00,0x00,}}, {0x9225,2,{0xE2,0x80,0x00,0x00,}}, {0x9226,2,{0xE2,0x81,0x00,0x00,}}, {0x9227,2,{0xE2,0x82,0x00,0x00,}}, {0x9228,2,{0xE2,0x83,0x00,0x00,}}, {0x9229,2,{0xE2,0x84,0x00,0x00,}}, {0x922A,2,{0xE2,0x85,0x00,0x00,}}, {0x922B,2,{0xE2,0x86,0x00,0x00,}}, {0x922C,2,{0xE2,0x87,0x00,0x00,}}, {0x922D,2,{0xE2,0x88,0x00,0x00,}}, {0x922E,2,{0xE2,0x89,0x00,0x00,}}, {0x922F,2,{0xE2,0x8A,0x00,0x00,}}, {0x9230,2,{0xE2,0x8B,0x00,0x00,}}, {0x9231,2,{0xE2,0x8C,0x00,0x00,}}, {0x9232,2,{0xE2,0x8D,0x00,0x00,}}, {0x9233,2,{0xE2,0x8E,0x00,0x00,}}, {0x9234,2,{0xE2,0x8F,0x00,0x00,}}, {0x9235,2,{0xE2,0x90,0x00,0x00,}}, {0x9236,2,{0xE2,0x91,0x00,0x00,}}, {0x9237,2,{0xE2,0x92,0x00,0x00,}}, {0x9238,2,{0xE2,0x93,0x00,0x00,}}, {0x9239,2,{0xE2,0x94,0x00,0x00,}}, {0x923A,2,{0xE2,0x95,0x00,0x00,}}, {0x923B,2,{0xE2,0x96,0x00,0x00,}}, {0x923C,2,{0xE2,0x97,0x00,0x00,}}, {0x923D,2,{0xE2,0x98,0x00,0x00,}}, {0x923E,2,{0xE2,0x99,0x00,0x00,}}, {0x923F,2,{0xE2,0x9A,0x00,0x00,}}, {0x9240,2,{0xE2,0x9B,0x00,0x00,}}, {0x9241,2,{0xE2,0x9C,0x00,0x00,}}, {0x9242,2,{0xE2,0x9D,0x00,0x00,}}, {0x9243,2,{0xE2,0x9E,0x00,0x00,}}, {0x9244,2,{0xE2,0x9F,0x00,0x00,}}, {0x9245,2,{0xE2,0xA0,0x00,0x00,}}, {0x9246,2,{0xE3,0x40,0x00,0x00,}}, {0x9247,2,{0xE3,0x41,0x00,0x00,}}, {0x9248,2,{0xE3,0x42,0x00,0x00,}}, {0x9249,2,{0xE3,0x43,0x00,0x00,}}, {0x924A,2,{0xE3,0x44,0x00,0x00,}}, {0x924B,2,{0xE3,0x45,0x00,0x00,}}, {0x924C,2,{0xE3,0x46,0x00,0x00,}}, {0x924D,2,{0xE3,0x47,0x00,0x00,}}, {0x924E,2,{0xE3,0x48,0x00,0x00,}}, {0x924F,2,{0xE3,0x49,0x00,0x00,}}, {0x9250,2,{0xE3,0x4A,0x00,0x00,}}, {0x9251,2,{0xE3,0x4B,0x00,0x00,}}, {0x9252,2,{0xE3,0x4C,0x00,0x00,}}, {0x9253,2,{0xE3,0x4D,0x00,0x00,}}, {0x9254,2,{0xE3,0x4E,0x00,0x00,}}, {0x9255,2,{0xE3,0x4F,0x00,0x00,}}, {0x9256,2,{0xE3,0x50,0x00,0x00,}}, {0x9257,2,{0xE3,0x51,0x00,0x00,}}, {0x9258,2,{0xE3,0x52,0x00,0x00,}}, {0x9259,2,{0xE3,0x53,0x00,0x00,}}, {0x925A,2,{0xE3,0x54,0x00,0x00,}}, {0x925B,2,{0xE3,0x55,0x00,0x00,}}, {0x925C,2,{0xE3,0x56,0x00,0x00,}}, {0x925D,2,{0xE3,0x57,0x00,0x00,}}, {0x925E,2,{0xE3,0x58,0x00,0x00,}}, {0x925F,2,{0xE3,0x59,0x00,0x00,}}, {0x9260,2,{0xE3,0x5A,0x00,0x00,}}, {0x9261,2,{0xE3,0x5B,0x00,0x00,}}, {0x9262,2,{0xE3,0x5C,0x00,0x00,}}, {0x9263,2,{0xE3,0x5D,0x00,0x00,}}, {0x9264,2,{0xE3,0x5E,0x00,0x00,}}, {0x9265,2,{0xE3,0x5F,0x00,0x00,}}, {0x9266,2,{0xE3,0x60,0x00,0x00,}}, {0x9267,2,{0xE3,0x61,0x00,0x00,}}, {0x9268,2,{0xE3,0x62,0x00,0x00,}}, {0x9269,2,{0xE3,0x63,0x00,0x00,}}, {0x926A,2,{0xE3,0x64,0x00,0x00,}}, {0x926B,2,{0xE3,0x65,0x00,0x00,}}, {0x926C,2,{0xE3,0x66,0x00,0x00,}}, {0x926D,2,{0xE3,0x67,0x00,0x00,}}, {0x926E,2,{0xE3,0x68,0x00,0x00,}}, {0x926F,2,{0xE3,0x69,0x00,0x00,}}, {0x9270,2,{0xE3,0x6A,0x00,0x00,}}, {0x9271,2,{0xE3,0x6B,0x00,0x00,}}, {0x9272,2,{0xE3,0x6C,0x00,0x00,}}, {0x9273,2,{0xE3,0x6D,0x00,0x00,}}, {0x9274,2,{0xBC,0xF8,0x00,0x00,}}, {0x9275,2,{0xE3,0x6E,0x00,0x00,}}, {0x9276,2,{0xE3,0x6F,0x00,0x00,}}, {0x9277,2,{0xE3,0x70,0x00,0x00,}}, {0x9278,2,{0xE3,0x71,0x00,0x00,}}, {0x9279,2,{0xE3,0x72,0x00,0x00,}}, {0x927A,2,{0xE3,0x73,0x00,0x00,}}, {0x927B,2,{0xE3,0x74,0x00,0x00,}}, {0x927C,2,{0xE3,0x75,0x00,0x00,}}, {0x927D,2,{0xE3,0x76,0x00,0x00,}}, {0x927E,2,{0xE3,0x77,0x00,0x00,}}, {0x927F,2,{0xE3,0x78,0x00,0x00,}}, {0x9280,2,{0xE3,0x79,0x00,0x00,}}, {0x9281,2,{0xE3,0x7A,0x00,0x00,}}, {0x9282,2,{0xE3,0x7B,0x00,0x00,}}, {0x9283,2,{0xE3,0x7C,0x00,0x00,}}, {0x9284,2,{0xE3,0x7D,0x00,0x00,}}, {0x9285,2,{0xE3,0x7E,0x00,0x00,}}, {0x9286,2,{0xE3,0x80,0x00,0x00,}}, {0x9287,2,{0xE3,0x81,0x00,0x00,}}, {0x9288,2,{0xE3,0x82,0x00,0x00,}}, {0x9289,2,{0xE3,0x83,0x00,0x00,}}, {0x928A,2,{0xE3,0x84,0x00,0x00,}}, {0x928B,2,{0xE3,0x85,0x00,0x00,}}, {0x928C,2,{0xE3,0x86,0x00,0x00,}}, {0x928D,2,{0xE3,0x87,0x00,0x00,}}, {0x928E,2,{0xF6,0xC6,0x00,0x00,}}, {0x928F,2,{0xE3,0x88,0x00,0x00,}}, {0x9290,2,{0xE3,0x89,0x00,0x00,}}, {0x9291,2,{0xE3,0x8A,0x00,0x00,}}, {0x9292,2,{0xE3,0x8B,0x00,0x00,}}, {0x9293,2,{0xE3,0x8C,0x00,0x00,}}, {0x9294,2,{0xE3,0x8D,0x00,0x00,}}, {0x9295,2,{0xE3,0x8E,0x00,0x00,}}, {0x9296,2,{0xE3,0x8F,0x00,0x00,}}, {0x9297,2,{0xE3,0x90,0x00,0x00,}}, {0x9298,2,{0xE3,0x91,0x00,0x00,}}, {0x9299,2,{0xE3,0x92,0x00,0x00,}}, {0x929A,2,{0xE3,0x93,0x00,0x00,}}, {0x929B,2,{0xE3,0x94,0x00,0x00,}}, {0x929C,2,{0xE3,0x95,0x00,0x00,}}, {0x929D,2,{0xE3,0x96,0x00,0x00,}}, {0x929E,2,{0xE3,0x97,0x00,0x00,}}, {0x929F,2,{0xE3,0x98,0x00,0x00,}}, {0x92A0,2,{0xE3,0x99,0x00,0x00,}}, {0x92A1,2,{0xE3,0x9A,0x00,0x00,}}, {0x92A2,2,{0xE3,0x9B,0x00,0x00,}}, {0x92A3,2,{0xE3,0x9C,0x00,0x00,}}, {0x92A4,2,{0xE3,0x9D,0x00,0x00,}}, {0x92A5,2,{0xE3,0x9E,0x00,0x00,}}, {0x92A6,2,{0xE3,0x9F,0x00,0x00,}}, {0x92A7,2,{0xE3,0xA0,0x00,0x00,}}, {0x92A8,2,{0xE4,0x40,0x00,0x00,}}, {0x92A9,2,{0xE4,0x41,0x00,0x00,}}, {0x92AA,2,{0xE4,0x42,0x00,0x00,}}, {0x92AB,2,{0xE4,0x43,0x00,0x00,}}, {0x92AC,2,{0xE4,0x44,0x00,0x00,}}, {0x92AD,2,{0xE4,0x45,0x00,0x00,}}, {0x92AE,2,{0xF6,0xC7,0x00,0x00,}}, {0x92AF,2,{0xE4,0x46,0x00,0x00,}}, {0x92B0,2,{0xE4,0x47,0x00,0x00,}}, {0x92B1,2,{0xE4,0x48,0x00,0x00,}}, {0x92B2,2,{0xE4,0x49,0x00,0x00,}}, {0x92B3,2,{0xE4,0x4A,0x00,0x00,}}, {0x92B4,2,{0xE4,0x4B,0x00,0x00,}}, {0x92B5,2,{0xE4,0x4C,0x00,0x00,}}, {0x92B6,2,{0xE4,0x4D,0x00,0x00,}}, {0x92B7,2,{0xE4,0x4E,0x00,0x00,}}, {0x92B8,2,{0xE4,0x4F,0x00,0x00,}}, {0x92B9,2,{0xE4,0x50,0x00,0x00,}}, {0x92BA,2,{0xE4,0x51,0x00,0x00,}}, {0x92BB,2,{0xE4,0x52,0x00,0x00,}}, {0x92BC,2,{0xE4,0x53,0x00,0x00,}}, {0x92BD,2,{0xE4,0x54,0x00,0x00,}}, {0x92BE,2,{0xE4,0x55,0x00,0x00,}}, {0x92BF,2,{0xE4,0x56,0x00,0x00,}}, {0x92C0,2,{0xE4,0x57,0x00,0x00,}}, {0x92C1,2,{0xE4,0x58,0x00,0x00,}}, {0x92C2,2,{0xE4,0x59,0x00,0x00,}}, {0x92C3,2,{0xE4,0x5A,0x00,0x00,}}, {0x92C4,2,{0xE4,0x5B,0x00,0x00,}}, {0x92C5,2,{0xE4,0x5C,0x00,0x00,}}, {0x92C6,2,{0xE4,0x5D,0x00,0x00,}}, {0x92C7,2,{0xE4,0x5E,0x00,0x00,}}, {0x92C8,2,{0xF6,0xC8,0x00,0x00,}}, {0x92C9,2,{0xE4,0x5F,0x00,0x00,}}, {0x92CA,2,{0xE4,0x60,0x00,0x00,}}, {0x92CB,2,{0xE4,0x61,0x00,0x00,}}, {0x92CC,2,{0xE4,0x62,0x00,0x00,}}, {0x92CD,2,{0xE4,0x63,0x00,0x00,}}, {0x92CE,2,{0xE4,0x64,0x00,0x00,}}, {0x92CF,2,{0xE4,0x65,0x00,0x00,}}, {0x92D0,2,{0xE4,0x66,0x00,0x00,}}, {0x92D1,2,{0xE4,0x67,0x00,0x00,}}, {0x92D2,2,{0xE4,0x68,0x00,0x00,}}, {0x92D3,2,{0xE4,0x69,0x00,0x00,}}, {0x92D4,2,{0xE4,0x6A,0x00,0x00,}}, {0x92D5,2,{0xE4,0x6B,0x00,0x00,}}, {0x92D6,2,{0xE4,0x6C,0x00,0x00,}}, {0x92D7,2,{0xE4,0x6D,0x00,0x00,}}, {0x92D8,2,{0xE4,0x6E,0x00,0x00,}}, {0x92D9,2,{0xE4,0x6F,0x00,0x00,}}, {0x92DA,2,{0xE4,0x70,0x00,0x00,}}, {0x92DB,2,{0xE4,0x71,0x00,0x00,}}, {0x92DC,2,{0xE4,0x72,0x00,0x00,}}, {0x92DD,2,{0xE4,0x73,0x00,0x00,}}, {0x92DE,2,{0xE4,0x74,0x00,0x00,}}, {0x92DF,2,{0xE4,0x75,0x00,0x00,}}, {0x92E0,2,{0xE4,0x76,0x00,0x00,}}, {0x92E1,2,{0xE4,0x77,0x00,0x00,}}, {0x92E2,2,{0xE4,0x78,0x00,0x00,}}, {0x92E3,2,{0xE4,0x79,0x00,0x00,}}, {0x92E4,2,{0xE4,0x7A,0x00,0x00,}}, {0x92E5,2,{0xE4,0x7B,0x00,0x00,}}, {0x92E6,2,{0xE4,0x7C,0x00,0x00,}}, {0x92E7,2,{0xE4,0x7D,0x00,0x00,}}, {0x92E8,2,{0xE4,0x7E,0x00,0x00,}}, {0x92E9,2,{0xE4,0x80,0x00,0x00,}}, {0x92EA,2,{0xE4,0x81,0x00,0x00,}}, {0x92EB,2,{0xE4,0x82,0x00,0x00,}}, {0x92EC,2,{0xE4,0x83,0x00,0x00,}}, {0x92ED,2,{0xE4,0x84,0x00,0x00,}}, {0x92EE,2,{0xE4,0x85,0x00,0x00,}}, {0x92EF,2,{0xE4,0x86,0x00,0x00,}}, {0x92F0,2,{0xE4,0x87,0x00,0x00,}}, {0x92F1,2,{0xE4,0x88,0x00,0x00,}}, {0x92F2,2,{0xE4,0x89,0x00,0x00,}}, {0x92F3,2,{0xE4,0x8A,0x00,0x00,}}, {0x92F4,2,{0xE4,0x8B,0x00,0x00,}}, {0x92F5,2,{0xE4,0x8C,0x00,0x00,}}, {0x92F6,2,{0xE4,0x8D,0x00,0x00,}}, {0x92F7,2,{0xE4,0x8E,0x00,0x00,}}, {0x92F8,2,{0xE4,0x8F,0x00,0x00,}}, {0x92F9,2,{0xE4,0x90,0x00,0x00,}}, {0x92FA,2,{0xE4,0x91,0x00,0x00,}}, {0x92FB,2,{0xE4,0x92,0x00,0x00,}}, {0x92FC,2,{0xE4,0x93,0x00,0x00,}}, {0x92FD,2,{0xE4,0x94,0x00,0x00,}}, {0x92FE,2,{0xE4,0x95,0x00,0x00,}}, {0x92FF,2,{0xE4,0x96,0x00,0x00,}}, {0x9300,2,{0xE4,0x97,0x00,0x00,}}, {0x9301,2,{0xE4,0x98,0x00,0x00,}}, {0x9302,2,{0xE4,0x99,0x00,0x00,}}, {0x9303,2,{0xE4,0x9A,0x00,0x00,}}, {0x9304,2,{0xE4,0x9B,0x00,0x00,}}, {0x9305,2,{0xE4,0x9C,0x00,0x00,}}, {0x9306,2,{0xE4,0x9D,0x00,0x00,}}, {0x9307,2,{0xE4,0x9E,0x00,0x00,}}, {0x9308,2,{0xE4,0x9F,0x00,0x00,}}, {0x9309,2,{0xE4,0xA0,0x00,0x00,}}, {0x930A,2,{0xE5,0x40,0x00,0x00,}}, {0x930B,2,{0xE5,0x41,0x00,0x00,}}, {0x930C,2,{0xE5,0x42,0x00,0x00,}}, {0x930D,2,{0xE5,0x43,0x00,0x00,}}, {0x930E,2,{0xE5,0x44,0x00,0x00,}}, {0x930F,2,{0xE5,0x45,0x00,0x00,}}, {0x9310,2,{0xE5,0x46,0x00,0x00,}}, {0x9311,2,{0xE5,0x47,0x00,0x00,}}, {0x9312,2,{0xE5,0x48,0x00,0x00,}}, {0x9313,2,{0xE5,0x49,0x00,0x00,}}, {0x9314,2,{0xE5,0x4A,0x00,0x00,}}, {0x9315,2,{0xE5,0x4B,0x00,0x00,}}, {0x9316,2,{0xE5,0x4C,0x00,0x00,}}, {0x9317,2,{0xE5,0x4D,0x00,0x00,}}, {0x9318,2,{0xE5,0x4E,0x00,0x00,}}, {0x9319,2,{0xE5,0x4F,0x00,0x00,}}, {0x931A,2,{0xE5,0x50,0x00,0x00,}}, {0x931B,2,{0xE5,0x51,0x00,0x00,}}, {0x931C,2,{0xE5,0x52,0x00,0x00,}}, {0x931D,2,{0xE5,0x53,0x00,0x00,}}, {0x931E,2,{0xE5,0x54,0x00,0x00,}}, {0x931F,2,{0xE5,0x55,0x00,0x00,}}, {0x9320,2,{0xE5,0x56,0x00,0x00,}}, {0x9321,2,{0xE5,0x57,0x00,0x00,}}, {0x9322,2,{0xE5,0x58,0x00,0x00,}}, {0x9323,2,{0xE5,0x59,0x00,0x00,}}, {0x9324,2,{0xE5,0x5A,0x00,0x00,}}, {0x9325,2,{0xE5,0x5B,0x00,0x00,}}, {0x9326,2,{0xE5,0x5C,0x00,0x00,}}, {0x9327,2,{0xE5,0x5D,0x00,0x00,}}, {0x9328,2,{0xE5,0x5E,0x00,0x00,}}, {0x9329,2,{0xE5,0x5F,0x00,0x00,}}, {0x932A,2,{0xE5,0x60,0x00,0x00,}}, {0x932B,2,{0xE5,0x61,0x00,0x00,}}, {0x932C,2,{0xE5,0x62,0x00,0x00,}}, {0x932D,2,{0xE5,0x63,0x00,0x00,}}, {0x932E,2,{0xE5,0x64,0x00,0x00,}}, {0x932F,2,{0xE5,0x65,0x00,0x00,}}, {0x9330,2,{0xE5,0x66,0x00,0x00,}}, {0x9331,2,{0xE5,0x67,0x00,0x00,}}, {0x9332,2,{0xE5,0x68,0x00,0x00,}}, {0x9333,2,{0xE5,0x69,0x00,0x00,}}, {0x9334,2,{0xE5,0x6A,0x00,0x00,}}, {0x9335,2,{0xE5,0x6B,0x00,0x00,}}, {0x9336,2,{0xE5,0x6C,0x00,0x00,}}, {0x9337,2,{0xE5,0x6D,0x00,0x00,}}, {0x9338,2,{0xE5,0x6E,0x00,0x00,}}, {0x9339,2,{0xE5,0x6F,0x00,0x00,}}, {0x933A,2,{0xE5,0x70,0x00,0x00,}}, {0x933B,2,{0xE5,0x71,0x00,0x00,}}, {0x933C,2,{0xE5,0x72,0x00,0x00,}}, {0x933D,2,{0xE5,0x73,0x00,0x00,}}, {0x933E,2,{0xF6,0xC9,0x00,0x00,}}, {0x933F,2,{0xE5,0x74,0x00,0x00,}}, {0x9340,2,{0xE5,0x75,0x00,0x00,}}, {0x9341,2,{0xE5,0x76,0x00,0x00,}}, {0x9342,2,{0xE5,0x77,0x00,0x00,}}, {0x9343,2,{0xE5,0x78,0x00,0x00,}}, {0x9344,2,{0xE5,0x79,0x00,0x00,}}, {0x9345,2,{0xE5,0x7A,0x00,0x00,}}, {0x9346,2,{0xE5,0x7B,0x00,0x00,}}, {0x9347,2,{0xE5,0x7C,0x00,0x00,}}, {0x9348,2,{0xE5,0x7D,0x00,0x00,}}, {0x9349,2,{0xE5,0x7E,0x00,0x00,}}, {0x934A,2,{0xE5,0x80,0x00,0x00,}}, {0x934B,2,{0xE5,0x81,0x00,0x00,}}, {0x934C,2,{0xE5,0x82,0x00,0x00,}}, {0x934D,2,{0xE5,0x83,0x00,0x00,}}, {0x934E,2,{0xE5,0x84,0x00,0x00,}}, {0x934F,2,{0xE5,0x85,0x00,0x00,}}, {0x9350,2,{0xE5,0x86,0x00,0x00,}}, {0x9351,2,{0xE5,0x87,0x00,0x00,}}, {0x9352,2,{0xE5,0x88,0x00,0x00,}}, {0x9353,2,{0xE5,0x89,0x00,0x00,}}, {0x9354,2,{0xE5,0x8A,0x00,0x00,}}, {0x9355,2,{0xE5,0x8B,0x00,0x00,}}, {0x9356,2,{0xE5,0x8C,0x00,0x00,}}, {0x9357,2,{0xE5,0x8D,0x00,0x00,}}, {0x9358,2,{0xE5,0x8E,0x00,0x00,}}, {0x9359,2,{0xE5,0x8F,0x00,0x00,}}, {0x935A,2,{0xE5,0x90,0x00,0x00,}}, {0x935B,2,{0xE5,0x91,0x00,0x00,}}, {0x935C,2,{0xE5,0x92,0x00,0x00,}}, {0x935D,2,{0xE5,0x93,0x00,0x00,}}, {0x935E,2,{0xE5,0x94,0x00,0x00,}}, {0x935F,2,{0xE5,0x95,0x00,0x00,}}, {0x9360,2,{0xE5,0x96,0x00,0x00,}}, {0x9361,2,{0xE5,0x97,0x00,0x00,}}, {0x9362,2,{0xE5,0x98,0x00,0x00,}}, {0x9363,2,{0xE5,0x99,0x00,0x00,}}, {0x9364,2,{0xE5,0x9A,0x00,0x00,}}, {0x9365,2,{0xE5,0x9B,0x00,0x00,}}, {0x9366,2,{0xE5,0x9C,0x00,0x00,}}, {0x9367,2,{0xE5,0x9D,0x00,0x00,}}, {0x9368,2,{0xE5,0x9E,0x00,0x00,}}, {0x9369,2,{0xE5,0x9F,0x00,0x00,}}, {0x936A,2,{0xF6,0xCA,0x00,0x00,}}, {0x936B,2,{0xE5,0xA0,0x00,0x00,}}, {0x936C,2,{0xE6,0x40,0x00,0x00,}}, {0x936D,2,{0xE6,0x41,0x00,0x00,}}, {0x936E,2,{0xE6,0x42,0x00,0x00,}}, {0x936F,2,{0xE6,0x43,0x00,0x00,}}, {0x9370,2,{0xE6,0x44,0x00,0x00,}}, {0x9371,2,{0xE6,0x45,0x00,0x00,}}, {0x9372,2,{0xE6,0x46,0x00,0x00,}}, {0x9373,2,{0xE6,0x47,0x00,0x00,}}, {0x9374,2,{0xE6,0x48,0x00,0x00,}}, {0x9375,2,{0xE6,0x49,0x00,0x00,}}, {0x9376,2,{0xE6,0x4A,0x00,0x00,}}, {0x9377,2,{0xE6,0x4B,0x00,0x00,}}, {0x9378,2,{0xE6,0x4C,0x00,0x00,}}, {0x9379,2,{0xE6,0x4D,0x00,0x00,}}, {0x937A,2,{0xE6,0x4E,0x00,0x00,}}, {0x937B,2,{0xE6,0x4F,0x00,0x00,}}, {0x937C,2,{0xE6,0x50,0x00,0x00,}}, {0x937D,2,{0xE6,0x51,0x00,0x00,}}, {0x937E,2,{0xE6,0x52,0x00,0x00,}}, {0x937F,2,{0xE6,0x53,0x00,0x00,}}, {0x9380,2,{0xE6,0x54,0x00,0x00,}}, {0x9381,2,{0xE6,0x55,0x00,0x00,}}, {0x9382,2,{0xE6,0x56,0x00,0x00,}}, {0x9383,2,{0xE6,0x57,0x00,0x00,}}, {0x9384,2,{0xE6,0x58,0x00,0x00,}}, {0x9385,2,{0xE6,0x59,0x00,0x00,}}, {0x9386,2,{0xE6,0x5A,0x00,0x00,}}, {0x9387,2,{0xE6,0x5B,0x00,0x00,}}, {0x9388,2,{0xE6,0x5C,0x00,0x00,}}, {0x9389,2,{0xE6,0x5D,0x00,0x00,}}, {0x938A,2,{0xE6,0x5E,0x00,0x00,}}, {0x938B,2,{0xE6,0x5F,0x00,0x00,}}, {0x938C,2,{0xE6,0x60,0x00,0x00,}}, {0x938D,2,{0xE6,0x61,0x00,0x00,}}, {0x938E,2,{0xE6,0x62,0x00,0x00,}}, {0x938F,2,{0xF6,0xCC,0x00,0x00,}}, {0x9390,2,{0xE6,0x63,0x00,0x00,}}, {0x9391,2,{0xE6,0x64,0x00,0x00,}}, {0x9392,2,{0xE6,0x65,0x00,0x00,}}, {0x9393,2,{0xE6,0x66,0x00,0x00,}}, {0x9394,2,{0xE6,0x67,0x00,0x00,}}, {0x9395,2,{0xE6,0x68,0x00,0x00,}}, {0x9396,2,{0xE6,0x69,0x00,0x00,}}, {0x9397,2,{0xE6,0x6A,0x00,0x00,}}, {0x9398,2,{0xE6,0x6B,0x00,0x00,}}, {0x9399,2,{0xE6,0x6C,0x00,0x00,}}, {0x939A,2,{0xE6,0x6D,0x00,0x00,}}, {0x939B,2,{0xE6,0x6E,0x00,0x00,}}, {0x939C,2,{0xE6,0x6F,0x00,0x00,}}, {0x939D,2,{0xE6,0x70,0x00,0x00,}}, {0x939E,2,{0xE6,0x71,0x00,0x00,}}, {0x939F,2,{0xE6,0x72,0x00,0x00,}}, {0x93A0,2,{0xE6,0x73,0x00,0x00,}}, {0x93A1,2,{0xE6,0x74,0x00,0x00,}}, {0x93A2,2,{0xE6,0x75,0x00,0x00,}}, {0x93A3,2,{0xE6,0x76,0x00,0x00,}}, {0x93A4,2,{0xE6,0x77,0x00,0x00,}}, {0x93A5,2,{0xE6,0x78,0x00,0x00,}}, {0x93A6,2,{0xE6,0x79,0x00,0x00,}}, {0x93A7,2,{0xE6,0x7A,0x00,0x00,}}, {0x93A8,2,{0xE6,0x7B,0x00,0x00,}}, {0x93A9,2,{0xE6,0x7C,0x00,0x00,}}, {0x93AA,2,{0xE6,0x7D,0x00,0x00,}}, {0x93AB,2,{0xE6,0x7E,0x00,0x00,}}, {0x93AC,2,{0xE6,0x80,0x00,0x00,}}, {0x93AD,2,{0xE6,0x81,0x00,0x00,}}, {0x93AE,2,{0xE6,0x82,0x00,0x00,}}, {0x93AF,2,{0xE6,0x83,0x00,0x00,}}, {0x93B0,2,{0xE6,0x84,0x00,0x00,}}, {0x93B1,2,{0xE6,0x85,0x00,0x00,}}, {0x93B2,2,{0xE6,0x86,0x00,0x00,}}, {0x93B3,2,{0xE6,0x87,0x00,0x00,}}, {0x93B4,2,{0xE6,0x88,0x00,0x00,}}, {0x93B5,2,{0xE6,0x89,0x00,0x00,}}, {0x93B6,2,{0xE6,0x8A,0x00,0x00,}}, {0x93B7,2,{0xE6,0x8B,0x00,0x00,}}, {0x93B8,2,{0xE6,0x8C,0x00,0x00,}}, {0x93B9,2,{0xE6,0x8D,0x00,0x00,}}, {0x93BA,2,{0xE6,0x8E,0x00,0x00,}}, {0x93BB,2,{0xE6,0x8F,0x00,0x00,}}, {0x93BC,2,{0xE6,0x90,0x00,0x00,}}, {0x93BD,2,{0xE6,0x91,0x00,0x00,}}, {0x93BE,2,{0xE6,0x92,0x00,0x00,}}, {0x93BF,2,{0xE6,0x93,0x00,0x00,}}, {0x93C0,2,{0xE6,0x94,0x00,0x00,}}, {0x93C1,2,{0xE6,0x95,0x00,0x00,}}, {0x93C2,2,{0xE6,0x96,0x00,0x00,}}, {0x93C3,2,{0xE6,0x97,0x00,0x00,}}, {0x93C4,2,{0xE6,0x98,0x00,0x00,}}, {0x93C5,2,{0xE6,0x99,0x00,0x00,}}, {0x93C6,2,{0xE6,0x9A,0x00,0x00,}}, {0x93C7,2,{0xE6,0x9B,0x00,0x00,}}, {0x93C8,2,{0xE6,0x9C,0x00,0x00,}}, {0x93C9,2,{0xE6,0x9D,0x00,0x00,}}, {0x93CA,2,{0xF6,0xCB,0x00,0x00,}}, {0x93CB,2,{0xE6,0x9E,0x00,0x00,}}, {0x93CC,2,{0xE6,0x9F,0x00,0x00,}}, {0x93CD,2,{0xE6,0xA0,0x00,0x00,}}, {0x93CE,2,{0xE7,0x40,0x00,0x00,}}, {0x93CF,2,{0xE7,0x41,0x00,0x00,}}, {0x93D0,2,{0xE7,0x42,0x00,0x00,}}, {0x93D1,2,{0xE7,0x43,0x00,0x00,}}, {0x93D2,2,{0xE7,0x44,0x00,0x00,}}, {0x93D3,2,{0xE7,0x45,0x00,0x00,}}, {0x93D4,2,{0xE7,0x46,0x00,0x00,}}, {0x93D5,2,{0xE7,0x47,0x00,0x00,}}, {0x93D6,2,{0xF7,0xE9,0x00,0x00,}}, {0x93D7,2,{0xE7,0x48,0x00,0x00,}}, {0x93D8,2,{0xE7,0x49,0x00,0x00,}}, {0x93D9,2,{0xE7,0x4A,0x00,0x00,}}, {0x93DA,2,{0xE7,0x4B,0x00,0x00,}}, {0x93DB,2,{0xE7,0x4C,0x00,0x00,}}, {0x93DC,2,{0xE7,0x4D,0x00,0x00,}}, {0x93DD,2,{0xE7,0x4E,0x00,0x00,}}, {0x93DE,2,{0xE7,0x4F,0x00,0x00,}}, {0x93DF,2,{0xE7,0x50,0x00,0x00,}}, {0x93E0,2,{0xE7,0x51,0x00,0x00,}}, {0x93E1,2,{0xE7,0x52,0x00,0x00,}}, {0x93E2,2,{0xE7,0x53,0x00,0x00,}}, {0x93E3,2,{0xE7,0x54,0x00,0x00,}}, {0x93E4,2,{0xE7,0x55,0x00,0x00,}}, {0x93E5,2,{0xE7,0x56,0x00,0x00,}}, {0x93E6,2,{0xE7,0x57,0x00,0x00,}}, {0x93E7,2,{0xE7,0x58,0x00,0x00,}}, {0x93E8,2,{0xE7,0x59,0x00,0x00,}}, {0x93E9,2,{0xE7,0x5A,0x00,0x00,}}, {0x93EA,2,{0xE7,0x5B,0x00,0x00,}}, {0x93EB,2,{0xE7,0x5C,0x00,0x00,}}, {0x93EC,2,{0xE7,0x5D,0x00,0x00,}}, {0x93ED,2,{0xE7,0x5E,0x00,0x00,}}, {0x93EE,2,{0xE7,0x5F,0x00,0x00,}}, {0x93EF,2,{0xE7,0x60,0x00,0x00,}}, {0x93F0,2,{0xE7,0x61,0x00,0x00,}}, {0x93F1,2,{0xE7,0x62,0x00,0x00,}}, {0x93F2,2,{0xE7,0x63,0x00,0x00,}}, {0x93F3,2,{0xE7,0x64,0x00,0x00,}}, {0x93F4,2,{0xE7,0x65,0x00,0x00,}}, {0x93F5,2,{0xE7,0x66,0x00,0x00,}}, {0x93F6,2,{0xE7,0x67,0x00,0x00,}}, {0x93F7,2,{0xE7,0x68,0x00,0x00,}}, {0x93F8,2,{0xE7,0x69,0x00,0x00,}}, {0x93F9,2,{0xE7,0x6A,0x00,0x00,}}, {0x93FA,2,{0xE7,0x6B,0x00,0x00,}}, {0x93FB,2,{0xE7,0x6C,0x00,0x00,}}, {0x93FC,2,{0xE7,0x6D,0x00,0x00,}}, {0x93FD,2,{0xE7,0x6E,0x00,0x00,}}, {0x93FE,2,{0xE7,0x6F,0x00,0x00,}}, {0x93FF,2,{0xE7,0x70,0x00,0x00,}}, {0x9400,2,{0xE7,0x71,0x00,0x00,}}, {0x9401,2,{0xE7,0x72,0x00,0x00,}}, {0x9402,2,{0xE7,0x73,0x00,0x00,}}, {0x9403,2,{0xE7,0x74,0x00,0x00,}}, {0x9404,2,{0xE7,0x75,0x00,0x00,}}, {0x9405,2,{0xE7,0x76,0x00,0x00,}}, {0x9406,2,{0xE7,0x77,0x00,0x00,}}, {0x9407,2,{0xE7,0x78,0x00,0x00,}}, {0x9408,2,{0xE7,0x79,0x00,0x00,}}, {0x9409,2,{0xE7,0x7A,0x00,0x00,}}, {0x940A,2,{0xE7,0x7B,0x00,0x00,}}, {0x940B,2,{0xE7,0x7C,0x00,0x00,}}, {0x940C,2,{0xE7,0x7D,0x00,0x00,}}, {0x940D,2,{0xE7,0x7E,0x00,0x00,}}, {0x940E,2,{0xE7,0x80,0x00,0x00,}}, {0x940F,2,{0xE7,0x81,0x00,0x00,}}, {0x9410,2,{0xE7,0x82,0x00,0x00,}}, {0x9411,2,{0xE7,0x83,0x00,0x00,}}, {0x9412,2,{0xE7,0x84,0x00,0x00,}}, {0x9413,2,{0xE7,0x85,0x00,0x00,}}, {0x9414,2,{0xE7,0x86,0x00,0x00,}}, {0x9415,2,{0xE7,0x87,0x00,0x00,}}, {0x9416,2,{0xE7,0x88,0x00,0x00,}}, {0x9417,2,{0xE7,0x89,0x00,0x00,}}, {0x9418,2,{0xE7,0x8A,0x00,0x00,}}, {0x9419,2,{0xE7,0x8B,0x00,0x00,}}, {0x941A,2,{0xE7,0x8C,0x00,0x00,}}, {0x941B,2,{0xE7,0x8D,0x00,0x00,}}, {0x941C,2,{0xE7,0x8E,0x00,0x00,}}, {0x941D,2,{0xE7,0x8F,0x00,0x00,}}, {0x941E,2,{0xE7,0x90,0x00,0x00,}}, {0x941F,2,{0xE7,0x91,0x00,0x00,}}, {0x9420,2,{0xE7,0x92,0x00,0x00,}}, {0x9421,2,{0xE7,0x93,0x00,0x00,}}, {0x9422,2,{0xE7,0x94,0x00,0x00,}}, {0x9423,2,{0xE7,0x95,0x00,0x00,}}, {0x9424,2,{0xE7,0x96,0x00,0x00,}}, {0x9425,2,{0xE7,0x97,0x00,0x00,}}, {0x9426,2,{0xE7,0x98,0x00,0x00,}}, {0x9427,2,{0xE7,0x99,0x00,0x00,}}, {0x9428,2,{0xE7,0x9A,0x00,0x00,}}, {0x9429,2,{0xE7,0x9B,0x00,0x00,}}, {0x942A,2,{0xE7,0x9C,0x00,0x00,}}, {0x942B,2,{0xE7,0x9D,0x00,0x00,}}, {0x942C,2,{0xE7,0x9E,0x00,0x00,}}, {0x942D,2,{0xE7,0x9F,0x00,0x00,}}, {0x942E,2,{0xE7,0xA0,0x00,0x00,}}, {0x942F,2,{0xE8,0x40,0x00,0x00,}}, {0x9430,2,{0xE8,0x41,0x00,0x00,}}, {0x9431,2,{0xE8,0x42,0x00,0x00,}}, {0x9432,2,{0xE8,0x43,0x00,0x00,}}, {0x9433,2,{0xE8,0x44,0x00,0x00,}}, {0x9434,2,{0xE8,0x45,0x00,0x00,}}, {0x9435,2,{0xE8,0x46,0x00,0x00,}}, {0x9436,2,{0xE8,0x47,0x00,0x00,}}, {0x9437,2,{0xE8,0x48,0x00,0x00,}}, {0x9438,2,{0xE8,0x49,0x00,0x00,}}, {0x9439,2,{0xE8,0x4A,0x00,0x00,}}, {0x943A,2,{0xE8,0x4B,0x00,0x00,}}, {0x943B,2,{0xE8,0x4C,0x00,0x00,}}, {0x943C,2,{0xE8,0x4D,0x00,0x00,}}, {0x943D,2,{0xE8,0x4E,0x00,0x00,}}, {0x943E,2,{0xF6,0xCD,0x00,0x00,}}, {0x943F,2,{0xE8,0x4F,0x00,0x00,}}, {0x9440,2,{0xE8,0x50,0x00,0x00,}}, {0x9441,2,{0xE8,0x51,0x00,0x00,}}, {0x9442,2,{0xE8,0x52,0x00,0x00,}}, {0x9443,2,{0xE8,0x53,0x00,0x00,}}, {0x9444,2,{0xE8,0x54,0x00,0x00,}}, {0x9445,2,{0xE8,0x55,0x00,0x00,}}, {0x9446,2,{0xE8,0x56,0x00,0x00,}}, {0x9447,2,{0xE8,0x57,0x00,0x00,}}, {0x9448,2,{0xE8,0x58,0x00,0x00,}}, {0x9449,2,{0xE8,0x59,0x00,0x00,}}, {0x944A,2,{0xE8,0x5A,0x00,0x00,}}, {0x944B,2,{0xE8,0x5B,0x00,0x00,}}, {0x944C,2,{0xE8,0x5C,0x00,0x00,}}, {0x944D,2,{0xE8,0x5D,0x00,0x00,}}, {0x944E,2,{0xE8,0x5E,0x00,0x00,}}, {0x944F,2,{0xE8,0x5F,0x00,0x00,}}, {0x9450,2,{0xE8,0x60,0x00,0x00,}}, {0x9451,2,{0xE8,0x61,0x00,0x00,}}, {0x9452,2,{0xE8,0x62,0x00,0x00,}}, {0x9453,2,{0xE8,0x63,0x00,0x00,}}, {0x9454,2,{0xE8,0x64,0x00,0x00,}}, {0x9455,2,{0xE8,0x65,0x00,0x00,}}, {0x9456,2,{0xE8,0x66,0x00,0x00,}}, {0x9457,2,{0xE8,0x67,0x00,0x00,}}, {0x9458,2,{0xE8,0x68,0x00,0x00,}}, {0x9459,2,{0xE8,0x69,0x00,0x00,}}, {0x945A,2,{0xE8,0x6A,0x00,0x00,}}, {0x945B,2,{0xE8,0x6B,0x00,0x00,}}, {0x945C,2,{0xE8,0x6C,0x00,0x00,}}, {0x945D,2,{0xE8,0x6D,0x00,0x00,}}, {0x945E,2,{0xE8,0x6E,0x00,0x00,}}, {0x945F,2,{0xE8,0x6F,0x00,0x00,}}, {0x9460,2,{0xE8,0x70,0x00,0x00,}}, {0x9461,2,{0xE8,0x71,0x00,0x00,}}, {0x9462,2,{0xE8,0x72,0x00,0x00,}}, {0x9463,2,{0xE8,0x73,0x00,0x00,}}, {0x9464,2,{0xE8,0x74,0x00,0x00,}}, {0x9465,2,{0xE8,0x75,0x00,0x00,}}, {0x9466,2,{0xE8,0x76,0x00,0x00,}}, {0x9467,2,{0xE8,0x77,0x00,0x00,}}, {0x9468,2,{0xE8,0x78,0x00,0x00,}}, {0x9469,2,{0xE8,0x79,0x00,0x00,}}, {0x946A,2,{0xE8,0x7A,0x00,0x00,}}, {0x946B,2,{0xF6,0xCE,0x00,0x00,}}, {0x946C,2,{0xE8,0x7B,0x00,0x00,}}, {0x946D,2,{0xE8,0x7C,0x00,0x00,}}, {0x946E,2,{0xE8,0x7D,0x00,0x00,}}, {0x946F,2,{0xE8,0x7E,0x00,0x00,}}, {0x9470,2,{0xE8,0x80,0x00,0x00,}}, {0x9471,2,{0xE8,0x81,0x00,0x00,}}, {0x9472,2,{0xE8,0x82,0x00,0x00,}}, {0x9473,2,{0xE8,0x83,0x00,0x00,}}, {0x9474,2,{0xE8,0x84,0x00,0x00,}}, {0x9475,2,{0xE8,0x85,0x00,0x00,}}, {0x9476,2,{0xE8,0x86,0x00,0x00,}}, {0x9477,2,{0xE8,0x87,0x00,0x00,}}, {0x9478,2,{0xE8,0x88,0x00,0x00,}}, {0x9479,2,{0xE8,0x89,0x00,0x00,}}, {0x947A,2,{0xE8,0x8A,0x00,0x00,}}, {0x947B,2,{0xE8,0x8B,0x00,0x00,}}, {0x947C,2,{0xE8,0x8C,0x00,0x00,}}, {0x947D,2,{0xE8,0x8D,0x00,0x00,}}, {0x947E,2,{0xE8,0x8E,0x00,0x00,}}, {0x947F,2,{0xE8,0x8F,0x00,0x00,}}, {0x9480,2,{0xE8,0x90,0x00,0x00,}}, {0x9481,2,{0xE8,0x91,0x00,0x00,}}, {0x9482,2,{0xE8,0x92,0x00,0x00,}}, {0x9483,2,{0xE8,0x93,0x00,0x00,}}, {0x9484,2,{0xE8,0x94,0x00,0x00,}}, {0x9485,2,{0xEE,0xC4,0x00,0x00,}}, {0x9486,2,{0xEE,0xC5,0x00,0x00,}}, {0x9487,2,{0xEE,0xC6,0x00,0x00,}}, {0x9488,2,{0xD5,0xEB,0x00,0x00,}}, {0x9489,2,{0xB6,0xA4,0x00,0x00,}}, {0x948A,2,{0xEE,0xC8,0x00,0x00,}}, {0x948B,2,{0xEE,0xC7,0x00,0x00,}}, {0x948C,2,{0xEE,0xC9,0x00,0x00,}}, {0x948D,2,{0xEE,0xCA,0x00,0x00,}}, {0x948E,2,{0xC7,0xA5,0x00,0x00,}}, {0x948F,2,{0xEE,0xCB,0x00,0x00,}}, {0x9490,2,{0xEE,0xCC,0x00,0x00,}}, {0x9491,2,{0xE8,0x95,0x00,0x00,}}, {0x9492,2,{0xB7,0xB0,0x00,0x00,}}, {0x9493,2,{0xB5,0xF6,0x00,0x00,}}, {0x9494,2,{0xEE,0xCD,0x00,0x00,}}, {0x9495,2,{0xEE,0xCF,0x00,0x00,}}, {0x9496,2,{0xE8,0x96,0x00,0x00,}}, {0x9497,2,{0xEE,0xCE,0x00,0x00,}}, {0x9498,2,{0xE8,0x97,0x00,0x00,}}, {0x9499,2,{0xB8,0xC6,0x00,0x00,}}, {0x949A,2,{0xEE,0xD0,0x00,0x00,}}, {0x949B,2,{0xEE,0xD1,0x00,0x00,}}, {0x949C,2,{0xEE,0xD2,0x00,0x00,}}, {0x949D,2,{0xB6,0xDB,0x00,0x00,}}, {0x949E,2,{0xB3,0xAE,0x00,0x00,}}, {0x949F,2,{0xD6,0xD3,0x00,0x00,}}, {0x94A0,2,{0xC4,0xC6,0x00,0x00,}}, {0x94A1,2,{0xB1,0xB5,0x00,0x00,}}, {0x94A2,2,{0xB8,0xD6,0x00,0x00,}}, {0x94A3,2,{0xEE,0xD3,0x00,0x00,}}, {0x94A4,2,{0xEE,0xD4,0x00,0x00,}}, {0x94A5,2,{0xD4,0xBF,0x00,0x00,}}, {0x94A6,2,{0xC7,0xD5,0x00,0x00,}}, {0x94A7,2,{0xBE,0xFB,0x00,0x00,}}, {0x94A8,2,{0xCE,0xD9,0x00,0x00,}}, {0x94A9,2,{0xB9,0xB3,0x00,0x00,}}, {0x94AA,2,{0xEE,0xD6,0x00,0x00,}}, {0x94AB,2,{0xEE,0xD5,0x00,0x00,}}, {0x94AC,2,{0xEE,0xD8,0x00,0x00,}}, {0x94AD,2,{0xEE,0xD7,0x00,0x00,}}, {0x94AE,2,{0xC5,0xA5,0x00,0x00,}}, {0x94AF,2,{0xEE,0xD9,0x00,0x00,}}, {0x94B0,2,{0xEE,0xDA,0x00,0x00,}}, {0x94B1,2,{0xC7,0xAE,0x00,0x00,}}, {0x94B2,2,{0xEE,0xDB,0x00,0x00,}}, {0x94B3,2,{0xC7,0xAF,0x00,0x00,}}, {0x94B4,2,{0xEE,0xDC,0x00,0x00,}}, {0x94B5,2,{0xB2,0xA7,0x00,0x00,}}, {0x94B6,2,{0xEE,0xDD,0x00,0x00,}}, {0x94B7,2,{0xEE,0xDE,0x00,0x00,}}, {0x94B8,2,{0xEE,0xDF,0x00,0x00,}}, {0x94B9,2,{0xEE,0xE0,0x00,0x00,}}, {0x94BA,2,{0xEE,0xE1,0x00,0x00,}}, {0x94BB,2,{0xD7,0xEA,0x00,0x00,}}, {0x94BC,2,{0xEE,0xE2,0x00,0x00,}}, {0x94BD,2,{0xEE,0xE3,0x00,0x00,}}, {0x94BE,2,{0xBC,0xD8,0x00,0x00,}}, {0x94BF,2,{0xEE,0xE4,0x00,0x00,}}, {0x94C0,2,{0xD3,0xCB,0x00,0x00,}}, {0x94C1,2,{0xCC,0xFA,0x00,0x00,}}, {0x94C2,2,{0xB2,0xAC,0x00,0x00,}}, {0x94C3,2,{0xC1,0xE5,0x00,0x00,}}, {0x94C4,2,{0xEE,0xE5,0x00,0x00,}}, {0x94C5,2,{0xC7,0xA6,0x00,0x00,}}, {0x94C6,2,{0xC3,0xAD,0x00,0x00,}}, {0x94C7,2,{0xE8,0x98,0x00,0x00,}}, {0x94C8,2,{0xEE,0xE6,0x00,0x00,}}, {0x94C9,2,{0xEE,0xE7,0x00,0x00,}}, {0x94CA,2,{0xEE,0xE8,0x00,0x00,}}, {0x94CB,2,{0xEE,0xE9,0x00,0x00,}}, {0x94CC,2,{0xEE,0xEA,0x00,0x00,}}, {0x94CD,2,{0xEE,0xEB,0x00,0x00,}}, {0x94CE,2,{0xEE,0xEC,0x00,0x00,}}, {0x94CF,2,{0xE8,0x99,0x00,0x00,}}, {0x94D0,2,{0xEE,0xED,0x00,0x00,}}, {0x94D1,2,{0xEE,0xEE,0x00,0x00,}}, {0x94D2,2,{0xEE,0xEF,0x00,0x00,}}, {0x94D3,2,{0xE8,0x9A,0x00,0x00,}}, {0x94D4,2,{0xE8,0x9B,0x00,0x00,}}, {0x94D5,2,{0xEE,0xF0,0x00,0x00,}}, {0x94D6,2,{0xEE,0xF1,0x00,0x00,}}, {0x94D7,2,{0xEE,0xF2,0x00,0x00,}}, {0x94D8,2,{0xEE,0xF4,0x00,0x00,}}, {0x94D9,2,{0xEE,0xF3,0x00,0x00,}}, {0x94DA,2,{0xE8,0x9C,0x00,0x00,}}, {0x94DB,2,{0xEE,0xF5,0x00,0x00,}}, {0x94DC,2,{0xCD,0xAD,0x00,0x00,}}, {0x94DD,2,{0xC2,0xC1,0x00,0x00,}}, {0x94DE,2,{0xEE,0xF6,0x00,0x00,}}, {0x94DF,2,{0xEE,0xF7,0x00,0x00,}}, {0x94E0,2,{0xEE,0xF8,0x00,0x00,}}, {0x94E1,2,{0xD5,0xA1,0x00,0x00,}}, {0x94E2,2,{0xEE,0xF9,0x00,0x00,}}, {0x94E3,2,{0xCF,0xB3,0x00,0x00,}}, {0x94E4,2,{0xEE,0xFA,0x00,0x00,}}, {0x94E5,2,{0xEE,0xFB,0x00,0x00,}}, {0x94E6,2,{0xE8,0x9D,0x00,0x00,}}, {0x94E7,2,{0xEE,0xFC,0x00,0x00,}}, {0x94E8,2,{0xEE,0xFD,0x00,0x00,}}, {0x94E9,2,{0xEF,0xA1,0x00,0x00,}}, {0x94EA,2,{0xEE,0xFE,0x00,0x00,}}, {0x94EB,2,{0xEF,0xA2,0x00,0x00,}}, {0x94EC,2,{0xB8,0xF5,0x00,0x00,}}, {0x94ED,2,{0xC3,0xFA,0x00,0x00,}}, {0x94EE,2,{0xEF,0xA3,0x00,0x00,}}, {0x94EF,2,{0xEF,0xA4,0x00,0x00,}}, {0x94F0,2,{0xBD,0xC2,0x00,0x00,}}, {0x94F1,2,{0xD2,0xBF,0x00,0x00,}}, {0x94F2,2,{0xB2,0xF9,0x00,0x00,}}, {0x94F3,2,{0xEF,0xA5,0x00,0x00,}}, {0x94F4,2,{0xEF,0xA6,0x00,0x00,}}, {0x94F5,2,{0xEF,0xA7,0x00,0x00,}}, {0x94F6,2,{0xD2,0xF8,0x00,0x00,}}, {0x94F7,2,{0xEF,0xA8,0x00,0x00,}}, {0x94F8,2,{0xD6,0xFD,0x00,0x00,}}, {0x94F9,2,{0xEF,0xA9,0x00,0x00,}}, {0x94FA,2,{0xC6,0xCC,0x00,0x00,}}, {0x94FB,2,{0xE8,0x9E,0x00,0x00,}}, {0x94FC,2,{0xEF,0xAA,0x00,0x00,}}, {0x94FD,2,{0xEF,0xAB,0x00,0x00,}}, {0x94FE,2,{0xC1,0xB4,0x00,0x00,}}, {0x94FF,2,{0xEF,0xAC,0x00,0x00,}}, {0x9500,2,{0xCF,0xFA,0x00,0x00,}}, {0x9501,2,{0xCB,0xF8,0x00,0x00,}}, {0x9502,2,{0xEF,0xAE,0x00,0x00,}}, {0x9503,2,{0xEF,0xAD,0x00,0x00,}}, {0x9504,2,{0xB3,0xFA,0x00,0x00,}}, {0x9505,2,{0xB9,0xF8,0x00,0x00,}}, {0x9506,2,{0xEF,0xAF,0x00,0x00,}}, {0x9507,2,{0xEF,0xB0,0x00,0x00,}}, {0x9508,2,{0xD0,0xE2,0x00,0x00,}}, {0x9509,2,{0xEF,0xB1,0x00,0x00,}}, {0x950A,2,{0xEF,0xB2,0x00,0x00,}}, {0x950B,2,{0xB7,0xE6,0x00,0x00,}}, {0x950C,2,{0xD0,0xBF,0x00,0x00,}}, {0x950D,2,{0xEF,0xB3,0x00,0x00,}}, {0x950E,2,{0xEF,0xB4,0x00,0x00,}}, {0x950F,2,{0xEF,0xB5,0x00,0x00,}}, {0x9510,2,{0xC8,0xF1,0x00,0x00,}}, {0x9511,2,{0xCC,0xE0,0x00,0x00,}}, {0x9512,2,{0xEF,0xB6,0x00,0x00,}}, {0x9513,2,{0xEF,0xB7,0x00,0x00,}}, {0x9514,2,{0xEF,0xB8,0x00,0x00,}}, {0x9515,2,{0xEF,0xB9,0x00,0x00,}}, {0x9516,2,{0xEF,0xBA,0x00,0x00,}}, {0x9517,2,{0xD5,0xE0,0x00,0x00,}}, {0x9518,2,{0xEF,0xBB,0x00,0x00,}}, {0x9519,2,{0xB4,0xED,0x00,0x00,}}, {0x951A,2,{0xC3,0xAA,0x00,0x00,}}, {0x951B,2,{0xEF,0xBC,0x00,0x00,}}, {0x951C,2,{0xE8,0x9F,0x00,0x00,}}, {0x951D,2,{0xEF,0xBD,0x00,0x00,}}, {0x951E,2,{0xEF,0xBE,0x00,0x00,}}, {0x951F,2,{0xEF,0xBF,0x00,0x00,}}, {0x9520,2,{0xE8,0xA0,0x00,0x00,}}, {0x9521,2,{0xCE,0xFD,0x00,0x00,}}, {0x9522,2,{0xEF,0xC0,0x00,0x00,}}, {0x9523,2,{0xC2,0xE0,0x00,0x00,}}, {0x9524,2,{0xB4,0xB8,0x00,0x00,}}, {0x9525,2,{0xD7,0xB6,0x00,0x00,}}, {0x9526,2,{0xBD,0xF5,0x00,0x00,}}, {0x9527,2,{0xE9,0x40,0x00,0x00,}}, {0x9528,2,{0xCF,0xC7,0x00,0x00,}}, {0x9529,2,{0xEF,0xC3,0x00,0x00,}}, {0x952A,2,{0xEF,0xC1,0x00,0x00,}}, {0x952B,2,{0xEF,0xC2,0x00,0x00,}}, {0x952C,2,{0xEF,0xC4,0x00,0x00,}}, {0x952D,2,{0xB6,0xA7,0x00,0x00,}}, {0x952E,2,{0xBC,0xFC,0x00,0x00,}}, {0x952F,2,{0xBE,0xE2,0x00,0x00,}}, {0x9530,2,{0xC3,0xCC,0x00,0x00,}}, {0x9531,2,{0xEF,0xC5,0x00,0x00,}}, {0x9532,2,{0xEF,0xC6,0x00,0x00,}}, {0x9533,2,{0xE9,0x41,0x00,0x00,}}, {0x9534,2,{0xEF,0xC7,0x00,0x00,}}, {0x9535,2,{0xEF,0xCF,0x00,0x00,}}, {0x9536,2,{0xEF,0xC8,0x00,0x00,}}, {0x9537,2,{0xEF,0xC9,0x00,0x00,}}, {0x9538,2,{0xEF,0xCA,0x00,0x00,}}, {0x9539,2,{0xC7,0xC2,0x00,0x00,}}, {0x953A,2,{0xEF,0xF1,0x00,0x00,}}, {0x953B,2,{0xB6,0xCD,0x00,0x00,}}, {0x953C,2,{0xEF,0xCB,0x00,0x00,}}, {0x953D,2,{0xE9,0x42,0x00,0x00,}}, {0x953E,2,{0xEF,0xCC,0x00,0x00,}}, {0x953F,2,{0xEF,0xCD,0x00,0x00,}}, {0x9540,2,{0xB6,0xC6,0x00,0x00,}}, {0x9541,2,{0xC3,0xBE,0x00,0x00,}}, {0x9542,2,{0xEF,0xCE,0x00,0x00,}}, {0x9543,2,{0xE9,0x43,0x00,0x00,}}, {0x9544,2,{0xEF,0xD0,0x00,0x00,}}, {0x9545,2,{0xEF,0xD1,0x00,0x00,}}, {0x9546,2,{0xEF,0xD2,0x00,0x00,}}, {0x9547,2,{0xD5,0xF2,0x00,0x00,}}, {0x9548,2,{0xE9,0x44,0x00,0x00,}}, {0x9549,2,{0xEF,0xD3,0x00,0x00,}}, {0x954A,2,{0xC4,0xF7,0x00,0x00,}}, {0x954B,2,{0xE9,0x45,0x00,0x00,}}, {0x954C,2,{0xEF,0xD4,0x00,0x00,}}, {0x954D,2,{0xC4,0xF8,0x00,0x00,}}, {0x954E,2,{0xEF,0xD5,0x00,0x00,}}, {0x954F,2,{0xEF,0xD6,0x00,0x00,}}, {0x9550,2,{0xB8,0xE4,0x00,0x00,}}, {0x9551,2,{0xB0,0xF7,0x00,0x00,}}, {0x9552,2,{0xEF,0xD7,0x00,0x00,}}, {0x9553,2,{0xEF,0xD8,0x00,0x00,}}, {0x9554,2,{0xEF,0xD9,0x00,0x00,}}, {0x9555,2,{0xE9,0x46,0x00,0x00,}}, {0x9556,2,{0xEF,0xDA,0x00,0x00,}}, {0x9557,2,{0xEF,0xDB,0x00,0x00,}}, {0x9558,2,{0xEF,0xDC,0x00,0x00,}}, {0x9559,2,{0xEF,0xDD,0x00,0x00,}}, {0x955A,2,{0xE9,0x47,0x00,0x00,}}, {0x955B,2,{0xEF,0xDE,0x00,0x00,}}, {0x955C,2,{0xBE,0xB5,0x00,0x00,}}, {0x955D,2,{0xEF,0xE1,0x00,0x00,}}, {0x955E,2,{0xEF,0xDF,0x00,0x00,}}, {0x955F,2,{0xEF,0xE0,0x00,0x00,}}, {0x9560,2,{0xE9,0x48,0x00,0x00,}}, {0x9561,2,{0xEF,0xE2,0x00,0x00,}}, {0x9562,2,{0xEF,0xE3,0x00,0x00,}}, {0x9563,2,{0xC1,0xCD,0x00,0x00,}}, {0x9564,2,{0xEF,0xE4,0x00,0x00,}}, {0x9565,2,{0xEF,0xE5,0x00,0x00,}}, {0x9566,2,{0xEF,0xE6,0x00,0x00,}}, {0x9567,2,{0xEF,0xE7,0x00,0x00,}}, {0x9568,2,{0xEF,0xE8,0x00,0x00,}}, {0x9569,2,{0xEF,0xE9,0x00,0x00,}}, {0x956A,2,{0xEF,0xEA,0x00,0x00,}}, {0x956B,2,{0xEF,0xEB,0x00,0x00,}}, {0x956C,2,{0xEF,0xEC,0x00,0x00,}}, {0x956D,2,{0xC0,0xD8,0x00,0x00,}}, {0x956E,2,{0xE9,0x49,0x00,0x00,}}, {0x956F,2,{0xEF,0xED,0x00,0x00,}}, {0x9570,2,{0xC1,0xAD,0x00,0x00,}}, {0x9571,2,{0xEF,0xEE,0x00,0x00,}}, {0x9572,2,{0xEF,0xEF,0x00,0x00,}}, {0x9573,2,{0xEF,0xF0,0x00,0x00,}}, {0x9574,2,{0xE9,0x4A,0x00,0x00,}}, {0x9575,2,{0xE9,0x4B,0x00,0x00,}}, {0x9576,2,{0xCF,0xE2,0x00,0x00,}}, {0x9577,2,{0xE9,0x4C,0x00,0x00,}}, {0x9578,2,{0xE9,0x4D,0x00,0x00,}}, {0x9579,2,{0xE9,0x4E,0x00,0x00,}}, {0x957A,2,{0xE9,0x4F,0x00,0x00,}}, {0x957B,2,{0xE9,0x50,0x00,0x00,}}, {0x957C,2,{0xE9,0x51,0x00,0x00,}}, {0x957D,2,{0xE9,0x52,0x00,0x00,}}, {0x957E,2,{0xE9,0x53,0x00,0x00,}}, {0x957F,2,{0xB3,0xA4,0x00,0x00,}}, {0x9580,2,{0xE9,0x54,0x00,0x00,}}, {0x9581,2,{0xE9,0x55,0x00,0x00,}}, {0x9582,2,{0xE9,0x56,0x00,0x00,}}, {0x9583,2,{0xE9,0x57,0x00,0x00,}}, {0x9584,2,{0xE9,0x58,0x00,0x00,}}, {0x9585,2,{0xE9,0x59,0x00,0x00,}}, {0x9586,2,{0xE9,0x5A,0x00,0x00,}}, {0x9587,2,{0xE9,0x5B,0x00,0x00,}}, {0x9588,2,{0xE9,0x5C,0x00,0x00,}}, {0x9589,2,{0xE9,0x5D,0x00,0x00,}}, {0x958A,2,{0xE9,0x5E,0x00,0x00,}}, {0x958B,2,{0xE9,0x5F,0x00,0x00,}}, {0x958C,2,{0xE9,0x60,0x00,0x00,}}, {0x958D,2,{0xE9,0x61,0x00,0x00,}}, {0x958E,2,{0xE9,0x62,0x00,0x00,}}, {0x958F,2,{0xE9,0x63,0x00,0x00,}}, {0x9590,2,{0xE9,0x64,0x00,0x00,}}, {0x9591,2,{0xE9,0x65,0x00,0x00,}}, {0x9592,2,{0xE9,0x66,0x00,0x00,}}, {0x9593,2,{0xE9,0x67,0x00,0x00,}}, {0x9594,2,{0xE9,0x68,0x00,0x00,}}, {0x9595,2,{0xE9,0x69,0x00,0x00,}}, {0x9596,2,{0xE9,0x6A,0x00,0x00,}}, {0x9597,2,{0xE9,0x6B,0x00,0x00,}}, {0x9598,2,{0xE9,0x6C,0x00,0x00,}}, {0x9599,2,{0xE9,0x6D,0x00,0x00,}}, {0x959A,2,{0xE9,0x6E,0x00,0x00,}}, {0x959B,2,{0xE9,0x6F,0x00,0x00,}}, {0x959C,2,{0xE9,0x70,0x00,0x00,}}, {0x959D,2,{0xE9,0x71,0x00,0x00,}}, {0x959E,2,{0xE9,0x72,0x00,0x00,}}, {0x959F,2,{0xE9,0x73,0x00,0x00,}}, {0x95A0,2,{0xE9,0x74,0x00,0x00,}}, {0x95A1,2,{0xE9,0x75,0x00,0x00,}}, {0x95A2,2,{0xE9,0x76,0x00,0x00,}}, {0x95A3,2,{0xE9,0x77,0x00,0x00,}}, {0x95A4,2,{0xE9,0x78,0x00,0x00,}}, {0x95A5,2,{0xE9,0x79,0x00,0x00,}}, {0x95A6,2,{0xE9,0x7A,0x00,0x00,}}, {0x95A7,2,{0xE9,0x7B,0x00,0x00,}}, {0x95A8,2,{0xE9,0x7C,0x00,0x00,}}, {0x95A9,2,{0xE9,0x7D,0x00,0x00,}}, {0x95AA,2,{0xE9,0x7E,0x00,0x00,}}, {0x95AB,2,{0xE9,0x80,0x00,0x00,}}, {0x95AC,2,{0xE9,0x81,0x00,0x00,}}, {0x95AD,2,{0xE9,0x82,0x00,0x00,}}, {0x95AE,2,{0xE9,0x83,0x00,0x00,}}, {0x95AF,2,{0xE9,0x84,0x00,0x00,}}, {0x95B0,2,{0xE9,0x85,0x00,0x00,}}, {0x95B1,2,{0xE9,0x86,0x00,0x00,}}, {0x95B2,2,{0xE9,0x87,0x00,0x00,}}, {0x95B3,2,{0xE9,0x88,0x00,0x00,}}, {0x95B4,2,{0xE9,0x89,0x00,0x00,}}, {0x95B5,2,{0xE9,0x8A,0x00,0x00,}}, {0x95B6,2,{0xE9,0x8B,0x00,0x00,}}, {0x95B7,2,{0xE9,0x8C,0x00,0x00,}}, {0x95B8,2,{0xE9,0x8D,0x00,0x00,}}, {0x95B9,2,{0xE9,0x8E,0x00,0x00,}}, {0x95BA,2,{0xE9,0x8F,0x00,0x00,}}, {0x95BB,2,{0xE9,0x90,0x00,0x00,}}, {0x95BC,2,{0xE9,0x91,0x00,0x00,}}, {0x95BD,2,{0xE9,0x92,0x00,0x00,}}, {0x95BE,2,{0xE9,0x93,0x00,0x00,}}, {0x95BF,2,{0xE9,0x94,0x00,0x00,}}, {0x95C0,2,{0xE9,0x95,0x00,0x00,}}, {0x95C1,2,{0xE9,0x96,0x00,0x00,}}, {0x95C2,2,{0xE9,0x97,0x00,0x00,}}, {0x95C3,2,{0xE9,0x98,0x00,0x00,}}, {0x95C4,2,{0xE9,0x99,0x00,0x00,}}, {0x95C5,2,{0xE9,0x9A,0x00,0x00,}}, {0x95C6,2,{0xE9,0x9B,0x00,0x00,}}, {0x95C7,2,{0xE9,0x9C,0x00,0x00,}}, {0x95C8,2,{0xE9,0x9D,0x00,0x00,}}, {0x95C9,2,{0xE9,0x9E,0x00,0x00,}}, {0x95CA,2,{0xE9,0x9F,0x00,0x00,}}, {0x95CB,2,{0xE9,0xA0,0x00,0x00,}}, {0x95CC,2,{0xEA,0x40,0x00,0x00,}}, {0x95CD,2,{0xEA,0x41,0x00,0x00,}}, {0x95CE,2,{0xEA,0x42,0x00,0x00,}}, {0x95CF,2,{0xEA,0x43,0x00,0x00,}}, {0x95D0,2,{0xEA,0x44,0x00,0x00,}}, {0x95D1,2,{0xEA,0x45,0x00,0x00,}}, {0x95D2,2,{0xEA,0x46,0x00,0x00,}}, {0x95D3,2,{0xEA,0x47,0x00,0x00,}}, {0x95D4,2,{0xEA,0x48,0x00,0x00,}}, {0x95D5,2,{0xEA,0x49,0x00,0x00,}}, {0x95D6,2,{0xEA,0x4A,0x00,0x00,}}, {0x95D7,2,{0xEA,0x4B,0x00,0x00,}}, {0x95D8,2,{0xEA,0x4C,0x00,0x00,}}, {0x95D9,2,{0xEA,0x4D,0x00,0x00,}}, {0x95DA,2,{0xEA,0x4E,0x00,0x00,}}, {0x95DB,2,{0xEA,0x4F,0x00,0x00,}}, {0x95DC,2,{0xEA,0x50,0x00,0x00,}}, {0x95DD,2,{0xEA,0x51,0x00,0x00,}}, {0x95DE,2,{0xEA,0x52,0x00,0x00,}}, {0x95DF,2,{0xEA,0x53,0x00,0x00,}}, {0x95E0,2,{0xEA,0x54,0x00,0x00,}}, {0x95E1,2,{0xEA,0x55,0x00,0x00,}}, {0x95E2,2,{0xEA,0x56,0x00,0x00,}}, {0x95E3,2,{0xEA,0x57,0x00,0x00,}}, {0x95E4,2,{0xEA,0x58,0x00,0x00,}}, {0x95E5,2,{0xEA,0x59,0x00,0x00,}}, {0x95E6,2,{0xEA,0x5A,0x00,0x00,}}, {0x95E7,2,{0xEA,0x5B,0x00,0x00,}}, {0x95E8,2,{0xC3,0xC5,0x00,0x00,}}, {0x95E9,2,{0xE3,0xC5,0x00,0x00,}}, {0x95EA,2,{0xC9,0xC1,0x00,0x00,}}, {0x95EB,2,{0xE3,0xC6,0x00,0x00,}}, {0x95EC,2,{0xEA,0x5C,0x00,0x00,}}, {0x95ED,2,{0xB1,0xD5,0x00,0x00,}}, {0x95EE,2,{0xCE,0xCA,0x00,0x00,}}, {0x95EF,2,{0xB4,0xB3,0x00,0x00,}}, {0x95F0,2,{0xC8,0xF2,0x00,0x00,}}, {0x95F1,2,{0xE3,0xC7,0x00,0x00,}}, {0x95F2,2,{0xCF,0xD0,0x00,0x00,}}, {0x95F3,2,{0xE3,0xC8,0x00,0x00,}}, {0x95F4,2,{0xBC,0xE4,0x00,0x00,}}, {0x95F5,2,{0xE3,0xC9,0x00,0x00,}}, {0x95F6,2,{0xE3,0xCA,0x00,0x00,}}, {0x95F7,2,{0xC3,0xC6,0x00,0x00,}}, {0x95F8,2,{0xD5,0xA2,0x00,0x00,}}, {0x95F9,2,{0xC4,0xD6,0x00,0x00,}}, {0x95FA,2,{0xB9,0xEB,0x00,0x00,}}, {0x95FB,2,{0xCE,0xC5,0x00,0x00,}}, {0x95FC,2,{0xE3,0xCB,0x00,0x00,}}, {0x95FD,2,{0xC3,0xF6,0x00,0x00,}}, {0x95FE,2,{0xE3,0xCC,0x00,0x00,}}, {0x95FF,2,{0xEA,0x5D,0x00,0x00,}}, {0x9600,2,{0xB7,0xA7,0x00,0x00,}}, {0x9601,2,{0xB8,0xF3,0x00,0x00,}}, {0x9602,2,{0xBA,0xD2,0x00,0x00,}}, {0x9603,2,{0xE3,0xCD,0x00,0x00,}}, {0x9604,2,{0xE3,0xCE,0x00,0x00,}}, {0x9605,2,{0xD4,0xC4,0x00,0x00,}}, {0x9606,2,{0xE3,0xCF,0x00,0x00,}}, {0x9607,2,{0xEA,0x5E,0x00,0x00,}}, {0x9608,2,{0xE3,0xD0,0x00,0x00,}}, {0x9609,2,{0xD1,0xCB,0x00,0x00,}}, {0x960A,2,{0xE3,0xD1,0x00,0x00,}}, {0x960B,2,{0xE3,0xD2,0x00,0x00,}}, {0x960C,2,{0xE3,0xD3,0x00,0x00,}}, {0x960D,2,{0xE3,0xD4,0x00,0x00,}}, {0x960E,2,{0xD1,0xD6,0x00,0x00,}}, {0x960F,2,{0xE3,0xD5,0x00,0x00,}}, {0x9610,2,{0xB2,0xFB,0x00,0x00,}}, {0x9611,2,{0xC0,0xBB,0x00,0x00,}}, {0x9612,2,{0xE3,0xD6,0x00,0x00,}}, {0x9613,2,{0xEA,0x5F,0x00,0x00,}}, {0x9614,2,{0xC0,0xAB,0x00,0x00,}}, {0x9615,2,{0xE3,0xD7,0x00,0x00,}}, {0x9616,2,{0xE3,0xD8,0x00,0x00,}}, {0x9617,2,{0xE3,0xD9,0x00,0x00,}}, {0x9618,2,{0xEA,0x60,0x00,0x00,}}, {0x9619,2,{0xE3,0xDA,0x00,0x00,}}, {0x961A,2,{0xE3,0xDB,0x00,0x00,}}, {0x961B,2,{0xEA,0x61,0x00,0x00,}}, {0x961C,2,{0xB8,0xB7,0x00,0x00,}}, {0x961D,2,{0xDA,0xE2,0x00,0x00,}}, {0x961E,2,{0xEA,0x62,0x00,0x00,}}, {0x961F,2,{0xB6,0xD3,0x00,0x00,}}, {0x9620,2,{0xEA,0x63,0x00,0x00,}}, {0x9621,2,{0xDA,0xE4,0x00,0x00,}}, {0x9622,2,{0xDA,0xE3,0x00,0x00,}}, {0x9623,2,{0xEA,0x64,0x00,0x00,}}, {0x9624,2,{0xEA,0x65,0x00,0x00,}}, {0x9625,2,{0xEA,0x66,0x00,0x00,}}, {0x9626,2,{0xEA,0x67,0x00,0x00,}}, {0x9627,2,{0xEA,0x68,0x00,0x00,}}, {0x9628,2,{0xEA,0x69,0x00,0x00,}}, {0x9629,2,{0xEA,0x6A,0x00,0x00,}}, {0x962A,2,{0xDA,0xE6,0x00,0x00,}}, {0x962B,2,{0xEA,0x6B,0x00,0x00,}}, {0x962C,2,{0xEA,0x6C,0x00,0x00,}}, {0x962D,2,{0xEA,0x6D,0x00,0x00,}}, {0x962E,2,{0xC8,0xEE,0x00,0x00,}}, {0x962F,2,{0xEA,0x6E,0x00,0x00,}}, {0x9630,2,{0xEA,0x6F,0x00,0x00,}}, {0x9631,2,{0xDA,0xE5,0x00,0x00,}}, {0x9632,2,{0xB7,0xC0,0x00,0x00,}}, {0x9633,2,{0xD1,0xF4,0x00,0x00,}}, {0x9634,2,{0xD2,0xF5,0x00,0x00,}}, {0x9635,2,{0xD5,0xF3,0x00,0x00,}}, {0x9636,2,{0xBD,0xD7,0x00,0x00,}}, {0x9637,2,{0xEA,0x70,0x00,0x00,}}, {0x9638,2,{0xEA,0x71,0x00,0x00,}}, {0x9639,2,{0xEA,0x72,0x00,0x00,}}, {0x963A,2,{0xEA,0x73,0x00,0x00,}}, {0x963B,2,{0xD7,0xE8,0x00,0x00,}}, {0x963C,2,{0xDA,0xE8,0x00,0x00,}}, {0x963D,2,{0xDA,0xE7,0x00,0x00,}}, {0x963E,2,{0xEA,0x74,0x00,0x00,}}, {0x963F,2,{0xB0,0xA2,0x00,0x00,}}, {0x9640,2,{0xCD,0xD3,0x00,0x00,}}, {0x9641,2,{0xEA,0x75,0x00,0x00,}}, {0x9642,2,{0xDA,0xE9,0x00,0x00,}}, {0x9643,2,{0xEA,0x76,0x00,0x00,}}, {0x9644,2,{0xB8,0xBD,0x00,0x00,}}, {0x9645,2,{0xBC,0xCA,0x00,0x00,}}, {0x9646,2,{0xC2,0xBD,0x00,0x00,}}, {0x9647,2,{0xC2,0xA4,0x00,0x00,}}, {0x9648,2,{0xB3,0xC2,0x00,0x00,}}, {0x9649,2,{0xDA,0xEA,0x00,0x00,}}, {0x964A,2,{0xEA,0x77,0x00,0x00,}}, {0x964B,2,{0xC2,0xAA,0x00,0x00,}}, {0x964C,2,{0xC4,0xB0,0x00,0x00,}}, {0x964D,2,{0xBD,0xB5,0x00,0x00,}}, {0x964E,2,{0xEA,0x78,0x00,0x00,}}, {0x964F,2,{0xEA,0x79,0x00,0x00,}}, {0x9650,2,{0xCF,0xDE,0x00,0x00,}}, {0x9651,2,{0xEA,0x7A,0x00,0x00,}}, {0x9652,2,{0xEA,0x7B,0x00,0x00,}}, {0x9653,2,{0xEA,0x7C,0x00,0x00,}}, {0x9654,2,{0xDA,0xEB,0x00,0x00,}}, {0x9655,2,{0xC9,0xC2,0x00,0x00,}}, {0x9656,2,{0xEA,0x7D,0x00,0x00,}}, {0x9657,2,{0xEA,0x7E,0x00,0x00,}}, {0x9658,2,{0xEA,0x80,0x00,0x00,}}, {0x9659,2,{0xEA,0x81,0x00,0x00,}}, {0x965A,2,{0xEA,0x82,0x00,0x00,}}, {0x965B,2,{0xB1,0xDD,0x00,0x00,}}, {0x965C,2,{0xEA,0x83,0x00,0x00,}}, {0x965D,2,{0xEA,0x84,0x00,0x00,}}, {0x965E,2,{0xEA,0x85,0x00,0x00,}}, {0x965F,2,{0xDA,0xEC,0x00,0x00,}}, {0x9660,2,{0xEA,0x86,0x00,0x00,}}, {0x9661,2,{0xB6,0xB8,0x00,0x00,}}, {0x9662,2,{0xD4,0xBA,0x00,0x00,}}, {0x9663,2,{0xEA,0x87,0x00,0x00,}}, {0x9664,2,{0xB3,0xFD,0x00,0x00,}}, {0x9665,2,{0xEA,0x88,0x00,0x00,}}, {0x9666,2,{0xEA,0x89,0x00,0x00,}}, {0x9667,2,{0xDA,0xED,0x00,0x00,}}, {0x9668,2,{0xD4,0xC9,0x00,0x00,}}, {0x9669,2,{0xCF,0xD5,0x00,0x00,}}, {0x966A,2,{0xC5,0xE3,0x00,0x00,}}, {0x966B,2,{0xEA,0x8A,0x00,0x00,}}, {0x966C,2,{0xDA,0xEE,0x00,0x00,}}, {0x966D,2,{0xEA,0x8B,0x00,0x00,}}, {0x966E,2,{0xEA,0x8C,0x00,0x00,}}, {0x966F,2,{0xEA,0x8D,0x00,0x00,}}, {0x9670,2,{0xEA,0x8E,0x00,0x00,}}, {0x9671,2,{0xEA,0x8F,0x00,0x00,}}, {0x9672,2,{0xDA,0xEF,0x00,0x00,}}, {0x9673,2,{0xEA,0x90,0x00,0x00,}}, {0x9674,2,{0xDA,0xF0,0x00,0x00,}}, {0x9675,2,{0xC1,0xEA,0x00,0x00,}}, {0x9676,2,{0xCC,0xD5,0x00,0x00,}}, {0x9677,2,{0xCF,0xDD,0x00,0x00,}}, {0x9678,2,{0xEA,0x91,0x00,0x00,}}, {0x9679,2,{0xEA,0x92,0x00,0x00,}}, {0x967A,2,{0xEA,0x93,0x00,0x00,}}, {0x967B,2,{0xEA,0x94,0x00,0x00,}}, {0x967C,2,{0xEA,0x95,0x00,0x00,}}, {0x967D,2,{0xEA,0x96,0x00,0x00,}}, {0x967E,2,{0xEA,0x97,0x00,0x00,}}, {0x967F,2,{0xEA,0x98,0x00,0x00,}}, {0x9680,2,{0xEA,0x99,0x00,0x00,}}, {0x9681,2,{0xEA,0x9A,0x00,0x00,}}, {0x9682,2,{0xEA,0x9B,0x00,0x00,}}, {0x9683,2,{0xEA,0x9C,0x00,0x00,}}, {0x9684,2,{0xEA,0x9D,0x00,0x00,}}, {0x9685,2,{0xD3,0xE7,0x00,0x00,}}, {0x9686,2,{0xC2,0xA1,0x00,0x00,}}, {0x9687,2,{0xEA,0x9E,0x00,0x00,}}, {0x9688,2,{0xDA,0xF1,0x00,0x00,}}, {0x9689,2,{0xEA,0x9F,0x00,0x00,}}, {0x968A,2,{0xEA,0xA0,0x00,0x00,}}, {0x968B,2,{0xCB,0xE5,0x00,0x00,}}, {0x968C,2,{0xEB,0x40,0x00,0x00,}}, {0x968D,2,{0xDA,0xF2,0x00,0x00,}}, {0x968E,2,{0xEB,0x41,0x00,0x00,}}, {0x968F,2,{0xCB,0xE6,0x00,0x00,}}, {0x9690,2,{0xD2,0xFE,0x00,0x00,}}, {0x9691,2,{0xEB,0x42,0x00,0x00,}}, {0x9692,2,{0xEB,0x43,0x00,0x00,}}, {0x9693,2,{0xEB,0x44,0x00,0x00,}}, {0x9694,2,{0xB8,0xF4,0x00,0x00,}}, {0x9695,2,{0xEB,0x45,0x00,0x00,}}, {0x9696,2,{0xEB,0x46,0x00,0x00,}}, {0x9697,2,{0xDA,0xF3,0x00,0x00,}}, {0x9698,2,{0xB0,0xAF,0x00,0x00,}}, {0x9699,2,{0xCF,0xB6,0x00,0x00,}}, {0x969A,2,{0xEB,0x47,0x00,0x00,}}, {0x969B,2,{0xEB,0x48,0x00,0x00,}}, {0x969C,2,{0xD5,0xCF,0x00,0x00,}}, {0x969D,2,{0xEB,0x49,0x00,0x00,}}, {0x969E,2,{0xEB,0x4A,0x00,0x00,}}, {0x969F,2,{0xEB,0x4B,0x00,0x00,}}, {0x96A0,2,{0xEB,0x4C,0x00,0x00,}}, {0x96A1,2,{0xEB,0x4D,0x00,0x00,}}, {0x96A2,2,{0xEB,0x4E,0x00,0x00,}}, {0x96A3,2,{0xEB,0x4F,0x00,0x00,}}, {0x96A4,2,{0xEB,0x50,0x00,0x00,}}, {0x96A5,2,{0xEB,0x51,0x00,0x00,}}, {0x96A6,2,{0xEB,0x52,0x00,0x00,}}, {0x96A7,2,{0xCB,0xED,0x00,0x00,}}, {0x96A8,2,{0xEB,0x53,0x00,0x00,}}, {0x96A9,2,{0xEB,0x54,0x00,0x00,}}, {0x96AA,2,{0xEB,0x55,0x00,0x00,}}, {0x96AB,2,{0xEB,0x56,0x00,0x00,}}, {0x96AC,2,{0xEB,0x57,0x00,0x00,}}, {0x96AD,2,{0xEB,0x58,0x00,0x00,}}, {0x96AE,2,{0xEB,0x59,0x00,0x00,}}, {0x96AF,2,{0xEB,0x5A,0x00,0x00,}}, {0x96B0,2,{0xDA,0xF4,0x00,0x00,}}, {0x96B1,2,{0xEB,0x5B,0x00,0x00,}}, {0x96B2,2,{0xEB,0x5C,0x00,0x00,}}, {0x96B3,2,{0xE3,0xC4,0x00,0x00,}}, {0x96B4,2,{0xEB,0x5D,0x00,0x00,}}, {0x96B5,2,{0xEB,0x5E,0x00,0x00,}}, {0x96B6,2,{0xC1,0xA5,0x00,0x00,}}, {0x96B7,2,{0xEB,0x5F,0x00,0x00,}}, {0x96B8,2,{0xEB,0x60,0x00,0x00,}}, {0x96B9,2,{0xF6,0xBF,0x00,0x00,}}, {0x96BA,2,{0xEB,0x61,0x00,0x00,}}, {0x96BB,2,{0xEB,0x62,0x00,0x00,}}, {0x96BC,2,{0xF6,0xC0,0x00,0x00,}}, {0x96BD,2,{0xF6,0xC1,0x00,0x00,}}, {0x96BE,2,{0xC4,0xD1,0x00,0x00,}}, {0x96BF,2,{0xEB,0x63,0x00,0x00,}}, {0x96C0,2,{0xC8,0xB8,0x00,0x00,}}, {0x96C1,2,{0xD1,0xE3,0x00,0x00,}}, {0x96C2,2,{0xEB,0x64,0x00,0x00,}}, {0x96C3,2,{0xEB,0x65,0x00,0x00,}}, {0x96C4,2,{0xD0,0xDB,0x00,0x00,}}, {0x96C5,2,{0xD1,0xC5,0x00,0x00,}}, {0x96C6,2,{0xBC,0xAF,0x00,0x00,}}, {0x96C7,2,{0xB9,0xCD,0x00,0x00,}}, {0x96C8,2,{0xEB,0x66,0x00,0x00,}}, {0x96C9,2,{0xEF,0xF4,0x00,0x00,}}, {0x96CA,2,{0xEB,0x67,0x00,0x00,}}, {0x96CB,2,{0xEB,0x68,0x00,0x00,}}, {0x96CC,2,{0xB4,0xC6,0x00,0x00,}}, {0x96CD,2,{0xD3,0xBA,0x00,0x00,}}, {0x96CE,2,{0xF6,0xC2,0x00,0x00,}}, {0x96CF,2,{0xB3,0xFB,0x00,0x00,}}, {0x96D0,2,{0xEB,0x69,0x00,0x00,}}, {0x96D1,2,{0xEB,0x6A,0x00,0x00,}}, {0x96D2,2,{0xF6,0xC3,0x00,0x00,}}, {0x96D3,2,{0xEB,0x6B,0x00,0x00,}}, {0x96D4,2,{0xEB,0x6C,0x00,0x00,}}, {0x96D5,2,{0xB5,0xF1,0x00,0x00,}}, {0x96D6,2,{0xEB,0x6D,0x00,0x00,}}, {0x96D7,2,{0xEB,0x6E,0x00,0x00,}}, {0x96D8,2,{0xEB,0x6F,0x00,0x00,}}, {0x96D9,2,{0xEB,0x70,0x00,0x00,}}, {0x96DA,2,{0xEB,0x71,0x00,0x00,}}, {0x96DB,2,{0xEB,0x72,0x00,0x00,}}, {0x96DC,2,{0xEB,0x73,0x00,0x00,}}, {0x96DD,2,{0xEB,0x74,0x00,0x00,}}, {0x96DE,2,{0xEB,0x75,0x00,0x00,}}, {0x96DF,2,{0xEB,0x76,0x00,0x00,}}, {0x96E0,2,{0xF6,0xC5,0x00,0x00,}}, {0x96E1,2,{0xEB,0x77,0x00,0x00,}}, {0x96E2,2,{0xEB,0x78,0x00,0x00,}}, {0x96E3,2,{0xEB,0x79,0x00,0x00,}}, {0x96E4,2,{0xEB,0x7A,0x00,0x00,}}, {0x96E5,2,{0xEB,0x7B,0x00,0x00,}}, {0x96E6,2,{0xEB,0x7C,0x00,0x00,}}, {0x96E7,2,{0xEB,0x7D,0x00,0x00,}}, {0x96E8,2,{0xD3,0xEA,0x00,0x00,}}, {0x96E9,2,{0xF6,0xA7,0x00,0x00,}}, {0x96EA,2,{0xD1,0xA9,0x00,0x00,}}, {0x96EB,2,{0xEB,0x7E,0x00,0x00,}}, {0x96EC,2,{0xEB,0x80,0x00,0x00,}}, {0x96ED,2,{0xEB,0x81,0x00,0x00,}}, {0x96EE,2,{0xEB,0x82,0x00,0x00,}}, {0x96EF,2,{0xF6,0xA9,0x00,0x00,}}, {0x96F0,2,{0xEB,0x83,0x00,0x00,}}, {0x96F1,2,{0xEB,0x84,0x00,0x00,}}, {0x96F2,2,{0xEB,0x85,0x00,0x00,}}, {0x96F3,2,{0xF6,0xA8,0x00,0x00,}}, {0x96F4,2,{0xEB,0x86,0x00,0x00,}}, {0x96F5,2,{0xEB,0x87,0x00,0x00,}}, {0x96F6,2,{0xC1,0xE3,0x00,0x00,}}, {0x96F7,2,{0xC0,0xD7,0x00,0x00,}}, {0x96F8,2,{0xEB,0x88,0x00,0x00,}}, {0x96F9,2,{0xB1,0xA2,0x00,0x00,}}, {0x96FA,2,{0xEB,0x89,0x00,0x00,}}, {0x96FB,2,{0xEB,0x8A,0x00,0x00,}}, {0x96FC,2,{0xEB,0x8B,0x00,0x00,}}, {0x96FD,2,{0xEB,0x8C,0x00,0x00,}}, {0x96FE,2,{0xCE,0xED,0x00,0x00,}}, {0x96FF,2,{0xEB,0x8D,0x00,0x00,}}, {0x9700,2,{0xD0,0xE8,0x00,0x00,}}, {0x9701,2,{0xF6,0xAB,0x00,0x00,}}, {0x9702,2,{0xEB,0x8E,0x00,0x00,}}, {0x9703,2,{0xEB,0x8F,0x00,0x00,}}, {0x9704,2,{0xCF,0xF6,0x00,0x00,}}, {0x9705,2,{0xEB,0x90,0x00,0x00,}}, {0x9706,2,{0xF6,0xAA,0x00,0x00,}}, {0x9707,2,{0xD5,0xF0,0x00,0x00,}}, {0x9708,2,{0xF6,0xAC,0x00,0x00,}}, {0x9709,2,{0xC3,0xB9,0x00,0x00,}}, {0x970A,2,{0xEB,0x91,0x00,0x00,}}, {0x970B,2,{0xEB,0x92,0x00,0x00,}}, {0x970C,2,{0xEB,0x93,0x00,0x00,}}, {0x970D,2,{0xBB,0xF4,0x00,0x00,}}, {0x970E,2,{0xF6,0xAE,0x00,0x00,}}, {0x970F,2,{0xF6,0xAD,0x00,0x00,}}, {0x9710,2,{0xEB,0x94,0x00,0x00,}}, {0x9711,2,{0xEB,0x95,0x00,0x00,}}, {0x9712,2,{0xEB,0x96,0x00,0x00,}}, {0x9713,2,{0xC4,0xDE,0x00,0x00,}}, {0x9714,2,{0xEB,0x97,0x00,0x00,}}, {0x9715,2,{0xEB,0x98,0x00,0x00,}}, {0x9716,2,{0xC1,0xD8,0x00,0x00,}}, {0x9717,2,{0xEB,0x99,0x00,0x00,}}, {0x9718,2,{0xEB,0x9A,0x00,0x00,}}, {0x9719,2,{0xEB,0x9B,0x00,0x00,}}, {0x971A,2,{0xEB,0x9C,0x00,0x00,}}, {0x971B,2,{0xEB,0x9D,0x00,0x00,}}, {0x971C,2,{0xCB,0xAA,0x00,0x00,}}, {0x971D,2,{0xEB,0x9E,0x00,0x00,}}, {0x971E,2,{0xCF,0xBC,0x00,0x00,}}, {0x971F,2,{0xEB,0x9F,0x00,0x00,}}, {0x9720,2,{0xEB,0xA0,0x00,0x00,}}, {0x9721,2,{0xEC,0x40,0x00,0x00,}}, {0x9722,2,{0xEC,0x41,0x00,0x00,}}, {0x9723,2,{0xEC,0x42,0x00,0x00,}}, {0x9724,2,{0xEC,0x43,0x00,0x00,}}, {0x9725,2,{0xEC,0x44,0x00,0x00,}}, {0x9726,2,{0xEC,0x45,0x00,0x00,}}, {0x9727,2,{0xEC,0x46,0x00,0x00,}}, {0x9728,2,{0xEC,0x47,0x00,0x00,}}, {0x9729,2,{0xEC,0x48,0x00,0x00,}}, {0x972A,2,{0xF6,0xAF,0x00,0x00,}}, {0x972B,2,{0xEC,0x49,0x00,0x00,}}, {0x972C,2,{0xEC,0x4A,0x00,0x00,}}, {0x972D,2,{0xF6,0xB0,0x00,0x00,}}, {0x972E,2,{0xEC,0x4B,0x00,0x00,}}, {0x972F,2,{0xEC,0x4C,0x00,0x00,}}, {0x9730,2,{0xF6,0xB1,0x00,0x00,}}, {0x9731,2,{0xEC,0x4D,0x00,0x00,}}, {0x9732,2,{0xC2,0xB6,0x00,0x00,}}, {0x9733,2,{0xEC,0x4E,0x00,0x00,}}, {0x9734,2,{0xEC,0x4F,0x00,0x00,}}, {0x9735,2,{0xEC,0x50,0x00,0x00,}}, {0x9736,2,{0xEC,0x51,0x00,0x00,}}, {0x9737,2,{0xEC,0x52,0x00,0x00,}}, {0x9738,2,{0xB0,0xD4,0x00,0x00,}}, {0x9739,2,{0xC5,0xF9,0x00,0x00,}}, {0x973A,2,{0xEC,0x53,0x00,0x00,}}, {0x973B,2,{0xEC,0x54,0x00,0x00,}}, {0x973C,2,{0xEC,0x55,0x00,0x00,}}, {0x973D,2,{0xEC,0x56,0x00,0x00,}}, {0x973E,2,{0xF6,0xB2,0x00,0x00,}}, {0x973F,2,{0xEC,0x57,0x00,0x00,}}, {0x9740,2,{0xEC,0x58,0x00,0x00,}}, {0x9741,2,{0xEC,0x59,0x00,0x00,}}, {0x9742,2,{0xEC,0x5A,0x00,0x00,}}, {0x9743,2,{0xEC,0x5B,0x00,0x00,}}, {0x9744,2,{0xEC,0x5C,0x00,0x00,}}, {0x9745,2,{0xEC,0x5D,0x00,0x00,}}, {0x9746,2,{0xEC,0x5E,0x00,0x00,}}, {0x9747,2,{0xEC,0x5F,0x00,0x00,}}, {0x9748,2,{0xEC,0x60,0x00,0x00,}}, {0x9749,2,{0xEC,0x61,0x00,0x00,}}, {0x974A,2,{0xEC,0x62,0x00,0x00,}}, {0x974B,2,{0xEC,0x63,0x00,0x00,}}, {0x974C,2,{0xEC,0x64,0x00,0x00,}}, {0x974D,2,{0xEC,0x65,0x00,0x00,}}, {0x974E,2,{0xEC,0x66,0x00,0x00,}}, {0x974F,2,{0xEC,0x67,0x00,0x00,}}, {0x9750,2,{0xEC,0x68,0x00,0x00,}}, {0x9751,2,{0xEC,0x69,0x00,0x00,}}, {0x9752,2,{0xC7,0xE0,0x00,0x00,}}, {0x9753,2,{0xF6,0xA6,0x00,0x00,}}, {0x9754,2,{0xEC,0x6A,0x00,0x00,}}, {0x9755,2,{0xEC,0x6B,0x00,0x00,}}, {0x9756,2,{0xBE,0xB8,0x00,0x00,}}, {0x9757,2,{0xEC,0x6C,0x00,0x00,}}, {0x9758,2,{0xEC,0x6D,0x00,0x00,}}, {0x9759,2,{0xBE,0xB2,0x00,0x00,}}, {0x975A,2,{0xEC,0x6E,0x00,0x00,}}, {0x975B,2,{0xB5,0xE5,0x00,0x00,}}, {0x975C,2,{0xEC,0x6F,0x00,0x00,}}, {0x975D,2,{0xEC,0x70,0x00,0x00,}}, {0x975E,2,{0xB7,0xC7,0x00,0x00,}}, {0x975F,2,{0xEC,0x71,0x00,0x00,}}, {0x9760,2,{0xBF,0xBF,0x00,0x00,}}, {0x9761,2,{0xC3,0xD2,0x00,0x00,}}, {0x9762,2,{0xC3,0xE6,0x00,0x00,}}, {0x9763,2,{0xEC,0x72,0x00,0x00,}}, {0x9764,2,{0xEC,0x73,0x00,0x00,}}, {0x9765,2,{0xD8,0xCC,0x00,0x00,}}, {0x9766,2,{0xEC,0x74,0x00,0x00,}}, {0x9767,2,{0xEC,0x75,0x00,0x00,}}, {0x9768,2,{0xEC,0x76,0x00,0x00,}}, {0x9769,2,{0xB8,0xEF,0x00,0x00,}}, {0x976A,2,{0xEC,0x77,0x00,0x00,}}, {0x976B,2,{0xEC,0x78,0x00,0x00,}}, {0x976C,2,{0xEC,0x79,0x00,0x00,}}, {0x976D,2,{0xEC,0x7A,0x00,0x00,}}, {0x976E,2,{0xEC,0x7B,0x00,0x00,}}, {0x976F,2,{0xEC,0x7C,0x00,0x00,}}, {0x9770,2,{0xEC,0x7D,0x00,0x00,}}, {0x9771,2,{0xEC,0x7E,0x00,0x00,}}, {0x9772,2,{0xEC,0x80,0x00,0x00,}}, {0x9773,2,{0xBD,0xF9,0x00,0x00,}}, {0x9774,2,{0xD1,0xA5,0x00,0x00,}}, {0x9775,2,{0xEC,0x81,0x00,0x00,}}, {0x9776,2,{0xB0,0xD0,0x00,0x00,}}, {0x9777,2,{0xEC,0x82,0x00,0x00,}}, {0x9778,2,{0xEC,0x83,0x00,0x00,}}, {0x9779,2,{0xEC,0x84,0x00,0x00,}}, {0x977A,2,{0xEC,0x85,0x00,0x00,}}, {0x977B,2,{0xEC,0x86,0x00,0x00,}}, {0x977C,2,{0xF7,0xB0,0x00,0x00,}}, {0x977D,2,{0xEC,0x87,0x00,0x00,}}, {0x977E,2,{0xEC,0x88,0x00,0x00,}}, {0x977F,2,{0xEC,0x89,0x00,0x00,}}, {0x9780,2,{0xEC,0x8A,0x00,0x00,}}, {0x9781,2,{0xEC,0x8B,0x00,0x00,}}, {0x9782,2,{0xEC,0x8C,0x00,0x00,}}, {0x9783,2,{0xEC,0x8D,0x00,0x00,}}, {0x9784,2,{0xEC,0x8E,0x00,0x00,}}, {0x9785,2,{0xF7,0xB1,0x00,0x00,}}, {0x9786,2,{0xEC,0x8F,0x00,0x00,}}, {0x9787,2,{0xEC,0x90,0x00,0x00,}}, {0x9788,2,{0xEC,0x91,0x00,0x00,}}, {0x9789,2,{0xEC,0x92,0x00,0x00,}}, {0x978A,2,{0xEC,0x93,0x00,0x00,}}, {0x978B,2,{0xD0,0xAC,0x00,0x00,}}, {0x978C,2,{0xEC,0x94,0x00,0x00,}}, {0x978D,2,{0xB0,0xB0,0x00,0x00,}}, {0x978E,2,{0xEC,0x95,0x00,0x00,}}, {0x978F,2,{0xEC,0x96,0x00,0x00,}}, {0x9790,2,{0xEC,0x97,0x00,0x00,}}, {0x9791,2,{0xF7,0xB2,0x00,0x00,}}, {0x9792,2,{0xF7,0xB3,0x00,0x00,}}, {0x9793,2,{0xEC,0x98,0x00,0x00,}}, {0x9794,2,{0xF7,0xB4,0x00,0x00,}}, {0x9795,2,{0xEC,0x99,0x00,0x00,}}, {0x9796,2,{0xEC,0x9A,0x00,0x00,}}, {0x9797,2,{0xEC,0x9B,0x00,0x00,}}, {0x9798,2,{0xC7,0xCA,0x00,0x00,}}, {0x9799,2,{0xEC,0x9C,0x00,0x00,}}, {0x979A,2,{0xEC,0x9D,0x00,0x00,}}, {0x979B,2,{0xEC,0x9E,0x00,0x00,}}, {0x979C,2,{0xEC,0x9F,0x00,0x00,}}, {0x979D,2,{0xEC,0xA0,0x00,0x00,}}, {0x979E,2,{0xED,0x40,0x00,0x00,}}, {0x979F,2,{0xED,0x41,0x00,0x00,}}, {0x97A0,2,{0xBE,0xCF,0x00,0x00,}}, {0x97A1,2,{0xED,0x42,0x00,0x00,}}, {0x97A2,2,{0xED,0x43,0x00,0x00,}}, {0x97A3,2,{0xF7,0xB7,0x00,0x00,}}, {0x97A4,2,{0xED,0x44,0x00,0x00,}}, {0x97A5,2,{0xED,0x45,0x00,0x00,}}, {0x97A6,2,{0xED,0x46,0x00,0x00,}}, {0x97A7,2,{0xED,0x47,0x00,0x00,}}, {0x97A8,2,{0xED,0x48,0x00,0x00,}}, {0x97A9,2,{0xED,0x49,0x00,0x00,}}, {0x97AA,2,{0xED,0x4A,0x00,0x00,}}, {0x97AB,2,{0xF7,0xB6,0x00,0x00,}}, {0x97AC,2,{0xED,0x4B,0x00,0x00,}}, {0x97AD,2,{0xB1,0xDE,0x00,0x00,}}, {0x97AE,2,{0xED,0x4C,0x00,0x00,}}, {0x97AF,2,{0xF7,0xB5,0x00,0x00,}}, {0x97B0,2,{0xED,0x4D,0x00,0x00,}}, {0x97B1,2,{0xED,0x4E,0x00,0x00,}}, {0x97B2,2,{0xF7,0xB8,0x00,0x00,}}, {0x97B3,2,{0xED,0x4F,0x00,0x00,}}, {0x97B4,2,{0xF7,0xB9,0x00,0x00,}}, {0x97B5,2,{0xED,0x50,0x00,0x00,}}, {0x97B6,2,{0xED,0x51,0x00,0x00,}}, {0x97B7,2,{0xED,0x52,0x00,0x00,}}, {0x97B8,2,{0xED,0x53,0x00,0x00,}}, {0x97B9,2,{0xED,0x54,0x00,0x00,}}, {0x97BA,2,{0xED,0x55,0x00,0x00,}}, {0x97BB,2,{0xED,0x56,0x00,0x00,}}, {0x97BC,2,{0xED,0x57,0x00,0x00,}}, {0x97BD,2,{0xED,0x58,0x00,0x00,}}, {0x97BE,2,{0xED,0x59,0x00,0x00,}}, {0x97BF,2,{0xED,0x5A,0x00,0x00,}}, {0x97C0,2,{0xED,0x5B,0x00,0x00,}}, {0x97C1,2,{0xED,0x5C,0x00,0x00,}}, {0x97C2,2,{0xED,0x5D,0x00,0x00,}}, {0x97C3,2,{0xED,0x5E,0x00,0x00,}}, {0x97C4,2,{0xED,0x5F,0x00,0x00,}}, {0x97C5,2,{0xED,0x60,0x00,0x00,}}, {0x97C6,2,{0xED,0x61,0x00,0x00,}}, {0x97C7,2,{0xED,0x62,0x00,0x00,}}, {0x97C8,2,{0xED,0x63,0x00,0x00,}}, {0x97C9,2,{0xED,0x64,0x00,0x00,}}, {0x97CA,2,{0xED,0x65,0x00,0x00,}}, {0x97CB,2,{0xED,0x66,0x00,0x00,}}, {0x97CC,2,{0xED,0x67,0x00,0x00,}}, {0x97CD,2,{0xED,0x68,0x00,0x00,}}, {0x97CE,2,{0xED,0x69,0x00,0x00,}}, {0x97CF,2,{0xED,0x6A,0x00,0x00,}}, {0x97D0,2,{0xED,0x6B,0x00,0x00,}}, {0x97D1,2,{0xED,0x6C,0x00,0x00,}}, {0x97D2,2,{0xED,0x6D,0x00,0x00,}}, {0x97D3,2,{0xED,0x6E,0x00,0x00,}}, {0x97D4,2,{0xED,0x6F,0x00,0x00,}}, {0x97D5,2,{0xED,0x70,0x00,0x00,}}, {0x97D6,2,{0xED,0x71,0x00,0x00,}}, {0x97D7,2,{0xED,0x72,0x00,0x00,}}, {0x97D8,2,{0xED,0x73,0x00,0x00,}}, {0x97D9,2,{0xED,0x74,0x00,0x00,}}, {0x97DA,2,{0xED,0x75,0x00,0x00,}}, {0x97DB,2,{0xED,0x76,0x00,0x00,}}, {0x97DC,2,{0xED,0x77,0x00,0x00,}}, {0x97DD,2,{0xED,0x78,0x00,0x00,}}, {0x97DE,2,{0xED,0x79,0x00,0x00,}}, {0x97DF,2,{0xED,0x7A,0x00,0x00,}}, {0x97E0,2,{0xED,0x7B,0x00,0x00,}}, {0x97E1,2,{0xED,0x7C,0x00,0x00,}}, {0x97E2,2,{0xED,0x7D,0x00,0x00,}}, {0x97E3,2,{0xED,0x7E,0x00,0x00,}}, {0x97E4,2,{0xED,0x80,0x00,0x00,}}, {0x97E5,2,{0xED,0x81,0x00,0x00,}}, {0x97E6,2,{0xCE,0xA4,0x00,0x00,}}, {0x97E7,2,{0xC8,0xCD,0x00,0x00,}}, {0x97E8,2,{0xED,0x82,0x00,0x00,}}, {0x97E9,2,{0xBA,0xAB,0x00,0x00,}}, {0x97EA,2,{0xE8,0xB8,0x00,0x00,}}, {0x97EB,2,{0xE8,0xB9,0x00,0x00,}}, {0x97EC,2,{0xE8,0xBA,0x00,0x00,}}, {0x97ED,2,{0xBE,0xC2,0x00,0x00,}}, {0x97EE,2,{0xED,0x83,0x00,0x00,}}, {0x97EF,2,{0xED,0x84,0x00,0x00,}}, {0x97F0,2,{0xED,0x85,0x00,0x00,}}, {0x97F1,2,{0xED,0x86,0x00,0x00,}}, {0x97F2,2,{0xED,0x87,0x00,0x00,}}, {0x97F3,2,{0xD2,0xF4,0x00,0x00,}}, {0x97F4,2,{0xED,0x88,0x00,0x00,}}, {0x97F5,2,{0xD4,0xCF,0x00,0x00,}}, {0x97F6,2,{0xC9,0xD8,0x00,0x00,}}, {0x97F7,2,{0xED,0x89,0x00,0x00,}}, {0x97F8,2,{0xED,0x8A,0x00,0x00,}}, {0x97F9,2,{0xED,0x8B,0x00,0x00,}}, {0x97FA,2,{0xED,0x8C,0x00,0x00,}}, {0x97FB,2,{0xED,0x8D,0x00,0x00,}}, {0x97FC,2,{0xED,0x8E,0x00,0x00,}}, {0x97FD,2,{0xED,0x8F,0x00,0x00,}}, {0x97FE,2,{0xED,0x90,0x00,0x00,}}, {0x97FF,2,{0xED,0x91,0x00,0x00,}}, {0x9800,2,{0xED,0x92,0x00,0x00,}}, {0x9801,2,{0xED,0x93,0x00,0x00,}}, {0x9802,2,{0xED,0x94,0x00,0x00,}}, {0x9803,2,{0xED,0x95,0x00,0x00,}}, {0x9804,2,{0xED,0x96,0x00,0x00,}}, {0x9805,2,{0xED,0x97,0x00,0x00,}}, {0x9806,2,{0xED,0x98,0x00,0x00,}}, {0x9807,2,{0xED,0x99,0x00,0x00,}}, {0x9808,2,{0xED,0x9A,0x00,0x00,}}, {0x9809,2,{0xED,0x9B,0x00,0x00,}}, {0x980A,2,{0xED,0x9C,0x00,0x00,}}, {0x980B,2,{0xED,0x9D,0x00,0x00,}}, {0x980C,2,{0xED,0x9E,0x00,0x00,}}, {0x980D,2,{0xED,0x9F,0x00,0x00,}}, {0x980E,2,{0xED,0xA0,0x00,0x00,}}, {0x980F,2,{0xEE,0x40,0x00,0x00,}}, {0x9810,2,{0xEE,0x41,0x00,0x00,}}, {0x9811,2,{0xEE,0x42,0x00,0x00,}}, {0x9812,2,{0xEE,0x43,0x00,0x00,}}, {0x9813,2,{0xEE,0x44,0x00,0x00,}}, {0x9814,2,{0xEE,0x45,0x00,0x00,}}, {0x9815,2,{0xEE,0x46,0x00,0x00,}}, {0x9816,2,{0xEE,0x47,0x00,0x00,}}, {0x9817,2,{0xEE,0x48,0x00,0x00,}}, {0x9818,2,{0xEE,0x49,0x00,0x00,}}, {0x9819,2,{0xEE,0x4A,0x00,0x00,}}, {0x981A,2,{0xEE,0x4B,0x00,0x00,}}, {0x981B,2,{0xEE,0x4C,0x00,0x00,}}, {0x981C,2,{0xEE,0x4D,0x00,0x00,}}, {0x981D,2,{0xEE,0x4E,0x00,0x00,}}, {0x981E,2,{0xEE,0x4F,0x00,0x00,}}, {0x981F,2,{0xEE,0x50,0x00,0x00,}}, {0x9820,2,{0xEE,0x51,0x00,0x00,}}, {0x9821,2,{0xEE,0x52,0x00,0x00,}}, {0x9822,2,{0xEE,0x53,0x00,0x00,}}, {0x9823,2,{0xEE,0x54,0x00,0x00,}}, {0x9824,2,{0xEE,0x55,0x00,0x00,}}, {0x9825,2,{0xEE,0x56,0x00,0x00,}}, {0x9826,2,{0xEE,0x57,0x00,0x00,}}, {0x9827,2,{0xEE,0x58,0x00,0x00,}}, {0x9828,2,{0xEE,0x59,0x00,0x00,}}, {0x9829,2,{0xEE,0x5A,0x00,0x00,}}, {0x982A,2,{0xEE,0x5B,0x00,0x00,}}, {0x982B,2,{0xEE,0x5C,0x00,0x00,}}, {0x982C,2,{0xEE,0x5D,0x00,0x00,}}, {0x982D,2,{0xEE,0x5E,0x00,0x00,}}, {0x982E,2,{0xEE,0x5F,0x00,0x00,}}, {0x982F,2,{0xEE,0x60,0x00,0x00,}}, {0x9830,2,{0xEE,0x61,0x00,0x00,}}, {0x9831,2,{0xEE,0x62,0x00,0x00,}}, {0x9832,2,{0xEE,0x63,0x00,0x00,}}, {0x9833,2,{0xEE,0x64,0x00,0x00,}}, {0x9834,2,{0xEE,0x65,0x00,0x00,}}, {0x9835,2,{0xEE,0x66,0x00,0x00,}}, {0x9836,2,{0xEE,0x67,0x00,0x00,}}, {0x9837,2,{0xEE,0x68,0x00,0x00,}}, {0x9838,2,{0xEE,0x69,0x00,0x00,}}, {0x9839,2,{0xEE,0x6A,0x00,0x00,}}, {0x983A,2,{0xEE,0x6B,0x00,0x00,}}, {0x983B,2,{0xEE,0x6C,0x00,0x00,}}, {0x983C,2,{0xEE,0x6D,0x00,0x00,}}, {0x983D,2,{0xEE,0x6E,0x00,0x00,}}, {0x983E,2,{0xEE,0x6F,0x00,0x00,}}, {0x983F,2,{0xEE,0x70,0x00,0x00,}}, {0x9840,2,{0xEE,0x71,0x00,0x00,}}, {0x9841,2,{0xEE,0x72,0x00,0x00,}}, {0x9842,2,{0xEE,0x73,0x00,0x00,}}, {0x9843,2,{0xEE,0x74,0x00,0x00,}}, {0x9844,2,{0xEE,0x75,0x00,0x00,}}, {0x9845,2,{0xEE,0x76,0x00,0x00,}}, {0x9846,2,{0xEE,0x77,0x00,0x00,}}, {0x9847,2,{0xEE,0x78,0x00,0x00,}}, {0x9848,2,{0xEE,0x79,0x00,0x00,}}, {0x9849,2,{0xEE,0x7A,0x00,0x00,}}, {0x984A,2,{0xEE,0x7B,0x00,0x00,}}, {0x984B,2,{0xEE,0x7C,0x00,0x00,}}, {0x984C,2,{0xEE,0x7D,0x00,0x00,}}, {0x984D,2,{0xEE,0x7E,0x00,0x00,}}, {0x984E,2,{0xEE,0x80,0x00,0x00,}}, {0x984F,2,{0xEE,0x81,0x00,0x00,}}, {0x9850,2,{0xEE,0x82,0x00,0x00,}}, {0x9851,2,{0xEE,0x83,0x00,0x00,}}, {0x9852,2,{0xEE,0x84,0x00,0x00,}}, {0x9853,2,{0xEE,0x85,0x00,0x00,}}, {0x9854,2,{0xEE,0x86,0x00,0x00,}}, {0x9855,2,{0xEE,0x87,0x00,0x00,}}, {0x9856,2,{0xEE,0x88,0x00,0x00,}}, {0x9857,2,{0xEE,0x89,0x00,0x00,}}, {0x9858,2,{0xEE,0x8A,0x00,0x00,}}, {0x9859,2,{0xEE,0x8B,0x00,0x00,}}, {0x985A,2,{0xEE,0x8C,0x00,0x00,}}, {0x985B,2,{0xEE,0x8D,0x00,0x00,}}, {0x985C,2,{0xEE,0x8E,0x00,0x00,}}, {0x985D,2,{0xEE,0x8F,0x00,0x00,}}, {0x985E,2,{0xEE,0x90,0x00,0x00,}}, {0x985F,2,{0xEE,0x91,0x00,0x00,}}, {0x9860,2,{0xEE,0x92,0x00,0x00,}}, {0x9861,2,{0xEE,0x93,0x00,0x00,}}, {0x9862,2,{0xEE,0x94,0x00,0x00,}}, {0x9863,2,{0xEE,0x95,0x00,0x00,}}, {0x9864,2,{0xEE,0x96,0x00,0x00,}}, {0x9865,2,{0xEE,0x97,0x00,0x00,}}, {0x9866,2,{0xEE,0x98,0x00,0x00,}}, {0x9867,2,{0xEE,0x99,0x00,0x00,}}, {0x9868,2,{0xEE,0x9A,0x00,0x00,}}, {0x9869,2,{0xEE,0x9B,0x00,0x00,}}, {0x986A,2,{0xEE,0x9C,0x00,0x00,}}, {0x986B,2,{0xEE,0x9D,0x00,0x00,}}, {0x986C,2,{0xEE,0x9E,0x00,0x00,}}, {0x986D,2,{0xEE,0x9F,0x00,0x00,}}, {0x986E,2,{0xEE,0xA0,0x00,0x00,}}, {0x986F,2,{0xEF,0x40,0x00,0x00,}}, {0x9870,2,{0xEF,0x41,0x00,0x00,}}, {0x9871,2,{0xEF,0x42,0x00,0x00,}}, {0x9872,2,{0xEF,0x43,0x00,0x00,}}, {0x9873,2,{0xEF,0x44,0x00,0x00,}}, {0x9874,2,{0xEF,0x45,0x00,0x00,}}, {0x9875,2,{0xD2,0xB3,0x00,0x00,}}, {0x9876,2,{0xB6,0xA5,0x00,0x00,}}, {0x9877,2,{0xC7,0xEA,0x00,0x00,}}, {0x9878,2,{0xF1,0xFC,0x00,0x00,}}, {0x9879,2,{0xCF,0xEE,0x00,0x00,}}, {0x987A,2,{0xCB,0xB3,0x00,0x00,}}, {0x987B,2,{0xD0,0xEB,0x00,0x00,}}, {0x987C,2,{0xE7,0xEF,0x00,0x00,}}, {0x987D,2,{0xCD,0xE7,0x00,0x00,}}, {0x987E,2,{0xB9,0xCB,0x00,0x00,}}, {0x987F,2,{0xB6,0xD9,0x00,0x00,}}, {0x9880,2,{0xF1,0xFD,0x00,0x00,}}, {0x9881,2,{0xB0,0xE4,0x00,0x00,}}, {0x9882,2,{0xCB,0xCC,0x00,0x00,}}, {0x9883,2,{0xF1,0xFE,0x00,0x00,}}, {0x9884,2,{0xD4,0xA4,0x00,0x00,}}, {0x9885,2,{0xC2,0xAD,0x00,0x00,}}, {0x9886,2,{0xC1,0xEC,0x00,0x00,}}, {0x9887,2,{0xC6,0xC4,0x00,0x00,}}, {0x9888,2,{0xBE,0xB1,0x00,0x00,}}, {0x9889,2,{0xF2,0xA1,0x00,0x00,}}, {0x988A,2,{0xBC,0xD5,0x00,0x00,}}, {0x988B,2,{0xEF,0x46,0x00,0x00,}}, {0x988C,2,{0xF2,0xA2,0x00,0x00,}}, {0x988D,2,{0xF2,0xA3,0x00,0x00,}}, {0x988E,2,{0xEF,0x47,0x00,0x00,}}, {0x988F,2,{0xF2,0xA4,0x00,0x00,}}, {0x9890,2,{0xD2,0xC3,0x00,0x00,}}, {0x9891,2,{0xC6,0xB5,0x00,0x00,}}, {0x9892,2,{0xEF,0x48,0x00,0x00,}}, {0x9893,2,{0xCD,0xC7,0x00,0x00,}}, {0x9894,2,{0xF2,0xA5,0x00,0x00,}}, {0x9895,2,{0xEF,0x49,0x00,0x00,}}, {0x9896,2,{0xD3,0xB1,0x00,0x00,}}, {0x9897,2,{0xBF,0xC5,0x00,0x00,}}, {0x9898,2,{0xCC,0xE2,0x00,0x00,}}, {0x9899,2,{0xEF,0x4A,0x00,0x00,}}, {0x989A,2,{0xF2,0xA6,0x00,0x00,}}, {0x989B,2,{0xF2,0xA7,0x00,0x00,}}, {0x989C,2,{0xD1,0xD5,0x00,0x00,}}, {0x989D,2,{0xB6,0xEE,0x00,0x00,}}, {0x989E,2,{0xF2,0xA8,0x00,0x00,}}, {0x989F,2,{0xF2,0xA9,0x00,0x00,}}, {0x98A0,2,{0xB5,0xDF,0x00,0x00,}}, {0x98A1,2,{0xF2,0xAA,0x00,0x00,}}, {0x98A2,2,{0xF2,0xAB,0x00,0x00,}}, {0x98A3,2,{0xEF,0x4B,0x00,0x00,}}, {0x98A4,2,{0xB2,0xFC,0x00,0x00,}}, {0x98A5,2,{0xF2,0xAC,0x00,0x00,}}, {0x98A6,2,{0xF2,0xAD,0x00,0x00,}}, {0x98A7,2,{0xC8,0xA7,0x00,0x00,}}, {0x98A8,2,{0xEF,0x4C,0x00,0x00,}}, {0x98A9,2,{0xEF,0x4D,0x00,0x00,}}, {0x98AA,2,{0xEF,0x4E,0x00,0x00,}}, {0x98AB,2,{0xEF,0x4F,0x00,0x00,}}, {0x98AC,2,{0xEF,0x50,0x00,0x00,}}, {0x98AD,2,{0xEF,0x51,0x00,0x00,}}, {0x98AE,2,{0xEF,0x52,0x00,0x00,}}, {0x98AF,2,{0xEF,0x53,0x00,0x00,}}, {0x98B0,2,{0xEF,0x54,0x00,0x00,}}, {0x98B1,2,{0xEF,0x55,0x00,0x00,}}, {0x98B2,2,{0xEF,0x56,0x00,0x00,}}, {0x98B3,2,{0xEF,0x57,0x00,0x00,}}, {0x98B4,2,{0xEF,0x58,0x00,0x00,}}, {0x98B5,2,{0xEF,0x59,0x00,0x00,}}, {0x98B6,2,{0xEF,0x5A,0x00,0x00,}}, {0x98B7,2,{0xEF,0x5B,0x00,0x00,}}, {0x98B8,2,{0xEF,0x5C,0x00,0x00,}}, {0x98B9,2,{0xEF,0x5D,0x00,0x00,}}, {0x98BA,2,{0xEF,0x5E,0x00,0x00,}}, {0x98BB,2,{0xEF,0x5F,0x00,0x00,}}, {0x98BC,2,{0xEF,0x60,0x00,0x00,}}, {0x98BD,2,{0xEF,0x61,0x00,0x00,}}, {0x98BE,2,{0xEF,0x62,0x00,0x00,}}, {0x98BF,2,{0xEF,0x63,0x00,0x00,}}, {0x98C0,2,{0xEF,0x64,0x00,0x00,}}, {0x98C1,2,{0xEF,0x65,0x00,0x00,}}, {0x98C2,2,{0xEF,0x66,0x00,0x00,}}, {0x98C3,2,{0xEF,0x67,0x00,0x00,}}, {0x98C4,2,{0xEF,0x68,0x00,0x00,}}, {0x98C5,2,{0xEF,0x69,0x00,0x00,}}, {0x98C6,2,{0xEF,0x6A,0x00,0x00,}}, {0x98C7,2,{0xEF,0x6B,0x00,0x00,}}, {0x98C8,2,{0xEF,0x6C,0x00,0x00,}}, {0x98C9,2,{0xEF,0x6D,0x00,0x00,}}, {0x98CA,2,{0xEF,0x6E,0x00,0x00,}}, {0x98CB,2,{0xEF,0x6F,0x00,0x00,}}, {0x98CC,2,{0xEF,0x70,0x00,0x00,}}, {0x98CD,2,{0xEF,0x71,0x00,0x00,}}, {0x98CE,2,{0xB7,0xE7,0x00,0x00,}}, {0x98CF,2,{0xEF,0x72,0x00,0x00,}}, {0x98D0,2,{0xEF,0x73,0x00,0x00,}}, {0x98D1,2,{0xEC,0xA9,0x00,0x00,}}, {0x98D2,2,{0xEC,0xAA,0x00,0x00,}}, {0x98D3,2,{0xEC,0xAB,0x00,0x00,}}, {0x98D4,2,{0xEF,0x74,0x00,0x00,}}, {0x98D5,2,{0xEC,0xAC,0x00,0x00,}}, {0x98D6,2,{0xEF,0x75,0x00,0x00,}}, {0x98D7,2,{0xEF,0x76,0x00,0x00,}}, {0x98D8,2,{0xC6,0xAE,0x00,0x00,}}, {0x98D9,2,{0xEC,0xAD,0x00,0x00,}}, {0x98DA,2,{0xEC,0xAE,0x00,0x00,}}, {0x98DB,2,{0xEF,0x77,0x00,0x00,}}, {0x98DC,2,{0xEF,0x78,0x00,0x00,}}, {0x98DD,2,{0xEF,0x79,0x00,0x00,}}, {0x98DE,2,{0xB7,0xC9,0x00,0x00,}}, {0x98DF,2,{0xCA,0xB3,0x00,0x00,}}, {0x98E0,2,{0xEF,0x7A,0x00,0x00,}}, {0x98E1,2,{0xEF,0x7B,0x00,0x00,}}, {0x98E2,2,{0xEF,0x7C,0x00,0x00,}}, {0x98E3,2,{0xEF,0x7D,0x00,0x00,}}, {0x98E4,2,{0xEF,0x7E,0x00,0x00,}}, {0x98E5,2,{0xEF,0x80,0x00,0x00,}}, {0x98E6,2,{0xEF,0x81,0x00,0x00,}}, {0x98E7,2,{0xE2,0xB8,0x00,0x00,}}, {0x98E8,2,{0xF7,0xCF,0x00,0x00,}}, {0x98E9,2,{0xEF,0x82,0x00,0x00,}}, {0x98EA,2,{0xEF,0x83,0x00,0x00,}}, {0x98EB,2,{0xEF,0x84,0x00,0x00,}}, {0x98EC,2,{0xEF,0x85,0x00,0x00,}}, {0x98ED,2,{0xEF,0x86,0x00,0x00,}}, {0x98EE,2,{0xEF,0x87,0x00,0x00,}}, {0x98EF,2,{0xEF,0x88,0x00,0x00,}}, {0x98F0,2,{0xEF,0x89,0x00,0x00,}}, {0x98F1,2,{0xEF,0x8A,0x00,0x00,}}, {0x98F2,2,{0xEF,0x8B,0x00,0x00,}}, {0x98F3,2,{0xEF,0x8C,0x00,0x00,}}, {0x98F4,2,{0xEF,0x8D,0x00,0x00,}}, {0x98F5,2,{0xEF,0x8E,0x00,0x00,}}, {0x98F6,2,{0xEF,0x8F,0x00,0x00,}}, {0x98F7,2,{0xEF,0x90,0x00,0x00,}}, {0x98F8,2,{0xEF,0x91,0x00,0x00,}}, {0x98F9,2,{0xEF,0x92,0x00,0x00,}}, {0x98FA,2,{0xEF,0x93,0x00,0x00,}}, {0x98FB,2,{0xEF,0x94,0x00,0x00,}}, {0x98FC,2,{0xEF,0x95,0x00,0x00,}}, {0x98FD,2,{0xEF,0x96,0x00,0x00,}}, {0x98FE,2,{0xEF,0x97,0x00,0x00,}}, {0x98FF,2,{0xEF,0x98,0x00,0x00,}}, {0x9900,2,{0xEF,0x99,0x00,0x00,}}, {0x9901,2,{0xEF,0x9A,0x00,0x00,}}, {0x9902,2,{0xEF,0x9B,0x00,0x00,}}, {0x9903,2,{0xEF,0x9C,0x00,0x00,}}, {0x9904,2,{0xEF,0x9D,0x00,0x00,}}, {0x9905,2,{0xEF,0x9E,0x00,0x00,}}, {0x9906,2,{0xEF,0x9F,0x00,0x00,}}, {0x9907,2,{0xEF,0xA0,0x00,0x00,}}, {0x9908,2,{0xF0,0x40,0x00,0x00,}}, {0x9909,2,{0xF0,0x41,0x00,0x00,}}, {0x990A,2,{0xF0,0x42,0x00,0x00,}}, {0x990B,2,{0xF0,0x43,0x00,0x00,}}, {0x990C,2,{0xF0,0x44,0x00,0x00,}}, {0x990D,2,{0xF7,0xD0,0x00,0x00,}}, {0x990E,2,{0xF0,0x45,0x00,0x00,}}, {0x990F,2,{0xF0,0x46,0x00,0x00,}}, {0x9910,2,{0xB2,0xCD,0x00,0x00,}}, {0x9911,2,{0xF0,0x47,0x00,0x00,}}, {0x9912,2,{0xF0,0x48,0x00,0x00,}}, {0x9913,2,{0xF0,0x49,0x00,0x00,}}, {0x9914,2,{0xF0,0x4A,0x00,0x00,}}, {0x9915,2,{0xF0,0x4B,0x00,0x00,}}, {0x9916,2,{0xF0,0x4C,0x00,0x00,}}, {0x9917,2,{0xF0,0x4D,0x00,0x00,}}, {0x9918,2,{0xF0,0x4E,0x00,0x00,}}, {0x9919,2,{0xF0,0x4F,0x00,0x00,}}, {0x991A,2,{0xF0,0x50,0x00,0x00,}}, {0x991B,2,{0xF0,0x51,0x00,0x00,}}, {0x991C,2,{0xF0,0x52,0x00,0x00,}}, {0x991D,2,{0xF0,0x53,0x00,0x00,}}, {0x991E,2,{0xF0,0x54,0x00,0x00,}}, {0x991F,2,{0xF0,0x55,0x00,0x00,}}, {0x9920,2,{0xF0,0x56,0x00,0x00,}}, {0x9921,2,{0xF0,0x57,0x00,0x00,}}, {0x9922,2,{0xF0,0x58,0x00,0x00,}}, {0x9923,2,{0xF0,0x59,0x00,0x00,}}, {0x9924,2,{0xF0,0x5A,0x00,0x00,}}, {0x9925,2,{0xF0,0x5B,0x00,0x00,}}, {0x9926,2,{0xF0,0x5C,0x00,0x00,}}, {0x9927,2,{0xF0,0x5D,0x00,0x00,}}, {0x9928,2,{0xF0,0x5E,0x00,0x00,}}, {0x9929,2,{0xF0,0x5F,0x00,0x00,}}, {0x992A,2,{0xF0,0x60,0x00,0x00,}}, {0x992B,2,{0xF0,0x61,0x00,0x00,}}, {0x992C,2,{0xF0,0x62,0x00,0x00,}}, {0x992D,2,{0xF0,0x63,0x00,0x00,}}, {0x992E,2,{0xF7,0xD1,0x00,0x00,}}, {0x992F,2,{0xF0,0x64,0x00,0x00,}}, {0x9930,2,{0xF0,0x65,0x00,0x00,}}, {0x9931,2,{0xF0,0x66,0x00,0x00,}}, {0x9932,2,{0xF0,0x67,0x00,0x00,}}, {0x9933,2,{0xF0,0x68,0x00,0x00,}}, {0x9934,2,{0xF0,0x69,0x00,0x00,}}, {0x9935,2,{0xF0,0x6A,0x00,0x00,}}, {0x9936,2,{0xF0,0x6B,0x00,0x00,}}, {0x9937,2,{0xF0,0x6C,0x00,0x00,}}, {0x9938,2,{0xF0,0x6D,0x00,0x00,}}, {0x9939,2,{0xF0,0x6E,0x00,0x00,}}, {0x993A,2,{0xF0,0x6F,0x00,0x00,}}, {0x993B,2,{0xF0,0x70,0x00,0x00,}}, {0x993C,2,{0xF0,0x71,0x00,0x00,}}, {0x993D,2,{0xF0,0x72,0x00,0x00,}}, {0x993E,2,{0xF0,0x73,0x00,0x00,}}, {0x993F,2,{0xF0,0x74,0x00,0x00,}}, {0x9940,2,{0xF0,0x75,0x00,0x00,}}, {0x9941,2,{0xF0,0x76,0x00,0x00,}}, {0x9942,2,{0xF0,0x77,0x00,0x00,}}, {0x9943,2,{0xF0,0x78,0x00,0x00,}}, {0x9944,2,{0xF0,0x79,0x00,0x00,}}, {0x9945,2,{0xF0,0x7A,0x00,0x00,}}, {0x9946,2,{0xF0,0x7B,0x00,0x00,}}, {0x9947,2,{0xF0,0x7C,0x00,0x00,}}, {0x9948,2,{0xF0,0x7D,0x00,0x00,}}, {0x9949,2,{0xF0,0x7E,0x00,0x00,}}, {0x994A,2,{0xF0,0x80,0x00,0x00,}}, {0x994B,2,{0xF0,0x81,0x00,0x00,}}, {0x994C,2,{0xF0,0x82,0x00,0x00,}}, {0x994D,2,{0xF0,0x83,0x00,0x00,}}, {0x994E,2,{0xF0,0x84,0x00,0x00,}}, {0x994F,2,{0xF0,0x85,0x00,0x00,}}, {0x9950,2,{0xF0,0x86,0x00,0x00,}}, {0x9951,2,{0xF0,0x87,0x00,0x00,}}, {0x9952,2,{0xF0,0x88,0x00,0x00,}}, {0x9953,2,{0xF0,0x89,0x00,0x00,}}, {0x9954,2,{0xF7,0xD3,0x00,0x00,}}, {0x9955,2,{0xF7,0xD2,0x00,0x00,}}, {0x9956,2,{0xF0,0x8A,0x00,0x00,}}, {0x9957,2,{0xF0,0x8B,0x00,0x00,}}, {0x9958,2,{0xF0,0x8C,0x00,0x00,}}, {0x9959,2,{0xF0,0x8D,0x00,0x00,}}, {0x995A,2,{0xF0,0x8E,0x00,0x00,}}, {0x995B,2,{0xF0,0x8F,0x00,0x00,}}, {0x995C,2,{0xF0,0x90,0x00,0x00,}}, {0x995D,2,{0xF0,0x91,0x00,0x00,}}, {0x995E,2,{0xF0,0x92,0x00,0x00,}}, {0x995F,2,{0xF0,0x93,0x00,0x00,}}, {0x9960,2,{0xF0,0x94,0x00,0x00,}}, {0x9961,2,{0xF0,0x95,0x00,0x00,}}, {0x9962,2,{0xF0,0x96,0x00,0x00,}}, {0x9963,2,{0xE2,0xBB,0x00,0x00,}}, {0x9964,2,{0xF0,0x97,0x00,0x00,}}, {0x9965,2,{0xBC,0xA2,0x00,0x00,}}, {0x9966,2,{0xF0,0x98,0x00,0x00,}}, {0x9967,2,{0xE2,0xBC,0x00,0x00,}}, {0x9968,2,{0xE2,0xBD,0x00,0x00,}}, {0x9969,2,{0xE2,0xBE,0x00,0x00,}}, {0x996A,2,{0xE2,0xBF,0x00,0x00,}}, {0x996B,2,{0xE2,0xC0,0x00,0x00,}}, {0x996C,2,{0xE2,0xC1,0x00,0x00,}}, {0x996D,2,{0xB7,0xB9,0x00,0x00,}}, {0x996E,2,{0xD2,0xFB,0x00,0x00,}}, {0x996F,2,{0xBD,0xA4,0x00,0x00,}}, {0x9970,2,{0xCA,0xCE,0x00,0x00,}}, {0x9971,2,{0xB1,0xA5,0x00,0x00,}}, {0x9972,2,{0xCB,0xC7,0x00,0x00,}}, {0x9973,2,{0xF0,0x99,0x00,0x00,}}, {0x9974,2,{0xE2,0xC2,0x00,0x00,}}, {0x9975,2,{0xB6,0xFC,0x00,0x00,}}, {0x9976,2,{0xC8,0xC4,0x00,0x00,}}, {0x9977,2,{0xE2,0xC3,0x00,0x00,}}, {0x9978,2,{0xF0,0x9A,0x00,0x00,}}, {0x9979,2,{0xF0,0x9B,0x00,0x00,}}, {0x997A,2,{0xBD,0xC8,0x00,0x00,}}, {0x997B,2,{0xF0,0x9C,0x00,0x00,}}, {0x997C,2,{0xB1,0xFD,0x00,0x00,}}, {0x997D,2,{0xE2,0xC4,0x00,0x00,}}, {0x997E,2,{0xF0,0x9D,0x00,0x00,}}, {0x997F,2,{0xB6,0xF6,0x00,0x00,}}, {0x9980,2,{0xE2,0xC5,0x00,0x00,}}, {0x9981,2,{0xC4,0xD9,0x00,0x00,}}, {0x9982,2,{0xF0,0x9E,0x00,0x00,}}, {0x9983,2,{0xF0,0x9F,0x00,0x00,}}, {0x9984,2,{0xE2,0xC6,0x00,0x00,}}, {0x9985,2,{0xCF,0xDA,0x00,0x00,}}, {0x9986,2,{0xB9,0xDD,0x00,0x00,}}, {0x9987,2,{0xE2,0xC7,0x00,0x00,}}, {0x9988,2,{0xC0,0xA1,0x00,0x00,}}, {0x9989,2,{0xF0,0xA0,0x00,0x00,}}, {0x998A,2,{0xE2,0xC8,0x00,0x00,}}, {0x998B,2,{0xB2,0xF6,0x00,0x00,}}, {0x998C,2,{0xF1,0x40,0x00,0x00,}}, {0x998D,2,{0xE2,0xC9,0x00,0x00,}}, {0x998E,2,{0xF1,0x41,0x00,0x00,}}, {0x998F,2,{0xC1,0xF3,0x00,0x00,}}, {0x9990,2,{0xE2,0xCA,0x00,0x00,}}, {0x9991,2,{0xE2,0xCB,0x00,0x00,}}, {0x9992,2,{0xC2,0xF8,0x00,0x00,}}, {0x9993,2,{0xE2,0xCC,0x00,0x00,}}, {0x9994,2,{0xE2,0xCD,0x00,0x00,}}, {0x9995,2,{0xE2,0xCE,0x00,0x00,}}, {0x9996,2,{0xCA,0xD7,0x00,0x00,}}, {0x9997,2,{0xD8,0xB8,0x00,0x00,}}, {0x9998,2,{0xD9,0xE5,0x00,0x00,}}, {0x9999,2,{0xCF,0xE3,0x00,0x00,}}, {0x999A,2,{0xF1,0x42,0x00,0x00,}}, {0x999B,2,{0xF1,0x43,0x00,0x00,}}, {0x999C,2,{0xF1,0x44,0x00,0x00,}}, {0x999D,2,{0xF1,0x45,0x00,0x00,}}, {0x999E,2,{0xF1,0x46,0x00,0x00,}}, {0x999F,2,{0xF1,0x47,0x00,0x00,}}, {0x99A0,2,{0xF1,0x48,0x00,0x00,}}, {0x99A1,2,{0xF1,0x49,0x00,0x00,}}, {0x99A2,2,{0xF1,0x4A,0x00,0x00,}}, {0x99A3,2,{0xF1,0x4B,0x00,0x00,}}, {0x99A4,2,{0xF1,0x4C,0x00,0x00,}}, {0x99A5,2,{0xF0,0xA5,0x00,0x00,}}, {0x99A6,2,{0xF1,0x4D,0x00,0x00,}}, {0x99A7,2,{0xF1,0x4E,0x00,0x00,}}, {0x99A8,2,{0xDC,0xB0,0x00,0x00,}}, {0x99A9,2,{0xF1,0x4F,0x00,0x00,}}, {0x99AA,2,{0xF1,0x50,0x00,0x00,}}, {0x99AB,2,{0xF1,0x51,0x00,0x00,}}, {0x99AC,2,{0xF1,0x52,0x00,0x00,}}, {0x99AD,2,{0xF1,0x53,0x00,0x00,}}, {0x99AE,2,{0xF1,0x54,0x00,0x00,}}, {0x99AF,2,{0xF1,0x55,0x00,0x00,}}, {0x99B0,2,{0xF1,0x56,0x00,0x00,}}, {0x99B1,2,{0xF1,0x57,0x00,0x00,}}, {0x99B2,2,{0xF1,0x58,0x00,0x00,}}, {0x99B3,2,{0xF1,0x59,0x00,0x00,}}, {0x99B4,2,{0xF1,0x5A,0x00,0x00,}}, {0x99B5,2,{0xF1,0x5B,0x00,0x00,}}, {0x99B6,2,{0xF1,0x5C,0x00,0x00,}}, {0x99B7,2,{0xF1,0x5D,0x00,0x00,}}, {0x99B8,2,{0xF1,0x5E,0x00,0x00,}}, {0x99B9,2,{0xF1,0x5F,0x00,0x00,}}, {0x99BA,2,{0xF1,0x60,0x00,0x00,}}, {0x99BB,2,{0xF1,0x61,0x00,0x00,}}, {0x99BC,2,{0xF1,0x62,0x00,0x00,}}, {0x99BD,2,{0xF1,0x63,0x00,0x00,}}, {0x99BE,2,{0xF1,0x64,0x00,0x00,}}, {0x99BF,2,{0xF1,0x65,0x00,0x00,}}, {0x99C0,2,{0xF1,0x66,0x00,0x00,}}, {0x99C1,2,{0xF1,0x67,0x00,0x00,}}, {0x99C2,2,{0xF1,0x68,0x00,0x00,}}, {0x99C3,2,{0xF1,0x69,0x00,0x00,}}, {0x99C4,2,{0xF1,0x6A,0x00,0x00,}}, {0x99C5,2,{0xF1,0x6B,0x00,0x00,}}, {0x99C6,2,{0xF1,0x6C,0x00,0x00,}}, {0x99C7,2,{0xF1,0x6D,0x00,0x00,}}, {0x99C8,2,{0xF1,0x6E,0x00,0x00,}}, {0x99C9,2,{0xF1,0x6F,0x00,0x00,}}, {0x99CA,2,{0xF1,0x70,0x00,0x00,}}, {0x99CB,2,{0xF1,0x71,0x00,0x00,}}, {0x99CC,2,{0xF1,0x72,0x00,0x00,}}, {0x99CD,2,{0xF1,0x73,0x00,0x00,}}, {0x99CE,2,{0xF1,0x74,0x00,0x00,}}, {0x99CF,2,{0xF1,0x75,0x00,0x00,}}, {0x99D0,2,{0xF1,0x76,0x00,0x00,}}, {0x99D1,2,{0xF1,0x77,0x00,0x00,}}, {0x99D2,2,{0xF1,0x78,0x00,0x00,}}, {0x99D3,2,{0xF1,0x79,0x00,0x00,}}, {0x99D4,2,{0xF1,0x7A,0x00,0x00,}}, {0x99D5,2,{0xF1,0x7B,0x00,0x00,}}, {0x99D6,2,{0xF1,0x7C,0x00,0x00,}}, {0x99D7,2,{0xF1,0x7D,0x00,0x00,}}, {0x99D8,2,{0xF1,0x7E,0x00,0x00,}}, {0x99D9,2,{0xF1,0x80,0x00,0x00,}}, {0x99DA,2,{0xF1,0x81,0x00,0x00,}}, {0x99DB,2,{0xF1,0x82,0x00,0x00,}}, {0x99DC,2,{0xF1,0x83,0x00,0x00,}}, {0x99DD,2,{0xF1,0x84,0x00,0x00,}}, {0x99DE,2,{0xF1,0x85,0x00,0x00,}}, {0x99DF,2,{0xF1,0x86,0x00,0x00,}}, {0x99E0,2,{0xF1,0x87,0x00,0x00,}}, {0x99E1,2,{0xF1,0x88,0x00,0x00,}}, {0x99E2,2,{0xF1,0x89,0x00,0x00,}}, {0x99E3,2,{0xF1,0x8A,0x00,0x00,}}, {0x99E4,2,{0xF1,0x8B,0x00,0x00,}}, {0x99E5,2,{0xF1,0x8C,0x00,0x00,}}, {0x99E6,2,{0xF1,0x8D,0x00,0x00,}}, {0x99E7,2,{0xF1,0x8E,0x00,0x00,}}, {0x99E8,2,{0xF1,0x8F,0x00,0x00,}}, {0x99E9,2,{0xF1,0x90,0x00,0x00,}}, {0x99EA,2,{0xF1,0x91,0x00,0x00,}}, {0x99EB,2,{0xF1,0x92,0x00,0x00,}}, {0x99EC,2,{0xF1,0x93,0x00,0x00,}}, {0x99ED,2,{0xF1,0x94,0x00,0x00,}}, {0x99EE,2,{0xF1,0x95,0x00,0x00,}}, {0x99EF,2,{0xF1,0x96,0x00,0x00,}}, {0x99F0,2,{0xF1,0x97,0x00,0x00,}}, {0x99F1,2,{0xF1,0x98,0x00,0x00,}}, {0x99F2,2,{0xF1,0x99,0x00,0x00,}}, {0x99F3,2,{0xF1,0x9A,0x00,0x00,}}, {0x99F4,2,{0xF1,0x9B,0x00,0x00,}}, {0x99F5,2,{0xF1,0x9C,0x00,0x00,}}, {0x99F6,2,{0xF1,0x9D,0x00,0x00,}}, {0x99F7,2,{0xF1,0x9E,0x00,0x00,}}, {0x99F8,2,{0xF1,0x9F,0x00,0x00,}}, {0x99F9,2,{0xF1,0xA0,0x00,0x00,}}, {0x99FA,2,{0xF2,0x40,0x00,0x00,}}, {0x99FB,2,{0xF2,0x41,0x00,0x00,}}, {0x99FC,2,{0xF2,0x42,0x00,0x00,}}, {0x99FD,2,{0xF2,0x43,0x00,0x00,}}, {0x99FE,2,{0xF2,0x44,0x00,0x00,}}, {0x99FF,2,{0xF2,0x45,0x00,0x00,}}, {0x9A00,2,{0xF2,0x46,0x00,0x00,}}, {0x9A01,2,{0xF2,0x47,0x00,0x00,}}, {0x9A02,2,{0xF2,0x48,0x00,0x00,}}, {0x9A03,2,{0xF2,0x49,0x00,0x00,}}, {0x9A04,2,{0xF2,0x4A,0x00,0x00,}}, {0x9A05,2,{0xF2,0x4B,0x00,0x00,}}, {0x9A06,2,{0xF2,0x4C,0x00,0x00,}}, {0x9A07,2,{0xF2,0x4D,0x00,0x00,}}, {0x9A08,2,{0xF2,0x4E,0x00,0x00,}}, {0x9A09,2,{0xF2,0x4F,0x00,0x00,}}, {0x9A0A,2,{0xF2,0x50,0x00,0x00,}}, {0x9A0B,2,{0xF2,0x51,0x00,0x00,}}, {0x9A0C,2,{0xF2,0x52,0x00,0x00,}}, {0x9A0D,2,{0xF2,0x53,0x00,0x00,}}, {0x9A0E,2,{0xF2,0x54,0x00,0x00,}}, {0x9A0F,2,{0xF2,0x55,0x00,0x00,}}, {0x9A10,2,{0xF2,0x56,0x00,0x00,}}, {0x9A11,2,{0xF2,0x57,0x00,0x00,}}, {0x9A12,2,{0xF2,0x58,0x00,0x00,}}, {0x9A13,2,{0xF2,0x59,0x00,0x00,}}, {0x9A14,2,{0xF2,0x5A,0x00,0x00,}}, {0x9A15,2,{0xF2,0x5B,0x00,0x00,}}, {0x9A16,2,{0xF2,0x5C,0x00,0x00,}}, {0x9A17,2,{0xF2,0x5D,0x00,0x00,}}, {0x9A18,2,{0xF2,0x5E,0x00,0x00,}}, {0x9A19,2,{0xF2,0x5F,0x00,0x00,}}, {0x9A1A,2,{0xF2,0x60,0x00,0x00,}}, {0x9A1B,2,{0xF2,0x61,0x00,0x00,}}, {0x9A1C,2,{0xF2,0x62,0x00,0x00,}}, {0x9A1D,2,{0xF2,0x63,0x00,0x00,}}, {0x9A1E,2,{0xF2,0x64,0x00,0x00,}}, {0x9A1F,2,{0xF2,0x65,0x00,0x00,}}, {0x9A20,2,{0xF2,0x66,0x00,0x00,}}, {0x9A21,2,{0xF2,0x67,0x00,0x00,}}, {0x9A22,2,{0xF2,0x68,0x00,0x00,}}, {0x9A23,2,{0xF2,0x69,0x00,0x00,}}, {0x9A24,2,{0xF2,0x6A,0x00,0x00,}}, {0x9A25,2,{0xF2,0x6B,0x00,0x00,}}, {0x9A26,2,{0xF2,0x6C,0x00,0x00,}}, {0x9A27,2,{0xF2,0x6D,0x00,0x00,}}, {0x9A28,2,{0xF2,0x6E,0x00,0x00,}}, {0x9A29,2,{0xF2,0x6F,0x00,0x00,}}, {0x9A2A,2,{0xF2,0x70,0x00,0x00,}}, {0x9A2B,2,{0xF2,0x71,0x00,0x00,}}, {0x9A2C,2,{0xF2,0x72,0x00,0x00,}}, {0x9A2D,2,{0xF2,0x73,0x00,0x00,}}, {0x9A2E,2,{0xF2,0x74,0x00,0x00,}}, {0x9A2F,2,{0xF2,0x75,0x00,0x00,}}, {0x9A30,2,{0xF2,0x76,0x00,0x00,}}, {0x9A31,2,{0xF2,0x77,0x00,0x00,}}, {0x9A32,2,{0xF2,0x78,0x00,0x00,}}, {0x9A33,2,{0xF2,0x79,0x00,0x00,}}, {0x9A34,2,{0xF2,0x7A,0x00,0x00,}}, {0x9A35,2,{0xF2,0x7B,0x00,0x00,}}, {0x9A36,2,{0xF2,0x7C,0x00,0x00,}}, {0x9A37,2,{0xF2,0x7D,0x00,0x00,}}, {0x9A38,2,{0xF2,0x7E,0x00,0x00,}}, {0x9A39,2,{0xF2,0x80,0x00,0x00,}}, {0x9A3A,2,{0xF2,0x81,0x00,0x00,}}, {0x9A3B,2,{0xF2,0x82,0x00,0x00,}}, {0x9A3C,2,{0xF2,0x83,0x00,0x00,}}, {0x9A3D,2,{0xF2,0x84,0x00,0x00,}}, {0x9A3E,2,{0xF2,0x85,0x00,0x00,}}, {0x9A3F,2,{0xF2,0x86,0x00,0x00,}}, {0x9A40,2,{0xF2,0x87,0x00,0x00,}}, {0x9A41,2,{0xF2,0x88,0x00,0x00,}}, {0x9A42,2,{0xF2,0x89,0x00,0x00,}}, {0x9A43,2,{0xF2,0x8A,0x00,0x00,}}, {0x9A44,2,{0xF2,0x8B,0x00,0x00,}}, {0x9A45,2,{0xF2,0x8C,0x00,0x00,}}, {0x9A46,2,{0xF2,0x8D,0x00,0x00,}}, {0x9A47,2,{0xF2,0x8E,0x00,0x00,}}, {0x9A48,2,{0xF2,0x8F,0x00,0x00,}}, {0x9A49,2,{0xF2,0x90,0x00,0x00,}}, {0x9A4A,2,{0xF2,0x91,0x00,0x00,}}, {0x9A4B,2,{0xF2,0x92,0x00,0x00,}}, {0x9A4C,2,{0xF2,0x93,0x00,0x00,}}, {0x9A4D,2,{0xF2,0x94,0x00,0x00,}}, {0x9A4E,2,{0xF2,0x95,0x00,0x00,}}, {0x9A4F,2,{0xF2,0x96,0x00,0x00,}}, {0x9A50,2,{0xF2,0x97,0x00,0x00,}}, {0x9A51,2,{0xF2,0x98,0x00,0x00,}}, {0x9A52,2,{0xF2,0x99,0x00,0x00,}}, {0x9A53,2,{0xF2,0x9A,0x00,0x00,}}, {0x9A54,2,{0xF2,0x9B,0x00,0x00,}}, {0x9A55,2,{0xF2,0x9C,0x00,0x00,}}, {0x9A56,2,{0xF2,0x9D,0x00,0x00,}}, {0x9A57,2,{0xF2,0x9E,0x00,0x00,}}, {0x9A58,2,{0xF2,0x9F,0x00,0x00,}}, {0x9A59,2,{0xF2,0xA0,0x00,0x00,}}, {0x9A5A,2,{0xF3,0x40,0x00,0x00,}}, {0x9A5B,2,{0xF3,0x41,0x00,0x00,}}, {0x9A5C,2,{0xF3,0x42,0x00,0x00,}}, {0x9A5D,2,{0xF3,0x43,0x00,0x00,}}, {0x9A5E,2,{0xF3,0x44,0x00,0x00,}}, {0x9A5F,2,{0xF3,0x45,0x00,0x00,}}, {0x9A60,2,{0xF3,0x46,0x00,0x00,}}, {0x9A61,2,{0xF3,0x47,0x00,0x00,}}, {0x9A62,2,{0xF3,0x48,0x00,0x00,}}, {0x9A63,2,{0xF3,0x49,0x00,0x00,}}, {0x9A64,2,{0xF3,0x4A,0x00,0x00,}}, {0x9A65,2,{0xF3,0x4B,0x00,0x00,}}, {0x9A66,2,{0xF3,0x4C,0x00,0x00,}}, {0x9A67,2,{0xF3,0x4D,0x00,0x00,}}, {0x9A68,2,{0xF3,0x4E,0x00,0x00,}}, {0x9A69,2,{0xF3,0x4F,0x00,0x00,}}, {0x9A6A,2,{0xF3,0x50,0x00,0x00,}}, {0x9A6B,2,{0xF3,0x51,0x00,0x00,}}, {0x9A6C,2,{0xC2,0xED,0x00,0x00,}}, {0x9A6D,2,{0xD4,0xA6,0x00,0x00,}}, {0x9A6E,2,{0xCD,0xD4,0x00,0x00,}}, {0x9A6F,2,{0xD1,0xB1,0x00,0x00,}}, {0x9A70,2,{0xB3,0xDB,0x00,0x00,}}, {0x9A71,2,{0xC7,0xFD,0x00,0x00,}}, {0x9A72,2,{0xF3,0x52,0x00,0x00,}}, {0x9A73,2,{0xB2,0xB5,0x00,0x00,}}, {0x9A74,2,{0xC2,0xBF,0x00,0x00,}}, {0x9A75,2,{0xE6,0xE0,0x00,0x00,}}, {0x9A76,2,{0xCA,0xBB,0x00,0x00,}}, {0x9A77,2,{0xE6,0xE1,0x00,0x00,}}, {0x9A78,2,{0xE6,0xE2,0x00,0x00,}}, {0x9A79,2,{0xBE,0xD4,0x00,0x00,}}, {0x9A7A,2,{0xE6,0xE3,0x00,0x00,}}, {0x9A7B,2,{0xD7,0xA4,0x00,0x00,}}, {0x9A7C,2,{0xCD,0xD5,0x00,0x00,}}, {0x9A7D,2,{0xE6,0xE5,0x00,0x00,}}, {0x9A7E,2,{0xBC,0xDD,0x00,0x00,}}, {0x9A7F,2,{0xE6,0xE4,0x00,0x00,}}, {0x9A80,2,{0xE6,0xE6,0x00,0x00,}}, {0x9A81,2,{0xE6,0xE7,0x00,0x00,}}, {0x9A82,2,{0xC2,0xEE,0x00,0x00,}}, {0x9A83,2,{0xF3,0x53,0x00,0x00,}}, {0x9A84,2,{0xBD,0xBE,0x00,0x00,}}, {0x9A85,2,{0xE6,0xE8,0x00,0x00,}}, {0x9A86,2,{0xC2,0xE6,0x00,0x00,}}, {0x9A87,2,{0xBA,0xA7,0x00,0x00,}}, {0x9A88,2,{0xE6,0xE9,0x00,0x00,}}, {0x9A89,2,{0xF3,0x54,0x00,0x00,}}, {0x9A8A,2,{0xE6,0xEA,0x00,0x00,}}, {0x9A8B,2,{0xB3,0xD2,0x00,0x00,}}, {0x9A8C,2,{0xD1,0xE9,0x00,0x00,}}, {0x9A8D,2,{0xF3,0x55,0x00,0x00,}}, {0x9A8E,2,{0xF3,0x56,0x00,0x00,}}, {0x9A8F,2,{0xBF,0xA5,0x00,0x00,}}, {0x9A90,2,{0xE6,0xEB,0x00,0x00,}}, {0x9A91,2,{0xC6,0xEF,0x00,0x00,}}, {0x9A92,2,{0xE6,0xEC,0x00,0x00,}}, {0x9A93,2,{0xE6,0xED,0x00,0x00,}}, {0x9A94,2,{0xF3,0x57,0x00,0x00,}}, {0x9A95,2,{0xF3,0x58,0x00,0x00,}}, {0x9A96,2,{0xE6,0xEE,0x00,0x00,}}, {0x9A97,2,{0xC6,0xAD,0x00,0x00,}}, {0x9A98,2,{0xE6,0xEF,0x00,0x00,}}, {0x9A99,2,{0xF3,0x59,0x00,0x00,}}, {0x9A9A,2,{0xC9,0xA7,0x00,0x00,}}, {0x9A9B,2,{0xE6,0xF0,0x00,0x00,}}, {0x9A9C,2,{0xE6,0xF1,0x00,0x00,}}, {0x9A9D,2,{0xE6,0xF2,0x00,0x00,}}, {0x9A9E,2,{0xE5,0xB9,0x00,0x00,}}, {0x9A9F,2,{0xE6,0xF3,0x00,0x00,}}, {0x9AA0,2,{0xE6,0xF4,0x00,0x00,}}, {0x9AA1,2,{0xC2,0xE2,0x00,0x00,}}, {0x9AA2,2,{0xE6,0xF5,0x00,0x00,}}, {0x9AA3,2,{0xE6,0xF6,0x00,0x00,}}, {0x9AA4,2,{0xD6,0xE8,0x00,0x00,}}, {0x9AA5,2,{0xE6,0xF7,0x00,0x00,}}, {0x9AA6,2,{0xF3,0x5A,0x00,0x00,}}, {0x9AA7,2,{0xE6,0xF8,0x00,0x00,}}, {0x9AA8,2,{0xB9,0xC7,0x00,0x00,}}, {0x9AA9,2,{0xF3,0x5B,0x00,0x00,}}, {0x9AAA,2,{0xF3,0x5C,0x00,0x00,}}, {0x9AAB,2,{0xF3,0x5D,0x00,0x00,}}, {0x9AAC,2,{0xF3,0x5E,0x00,0x00,}}, {0x9AAD,2,{0xF3,0x5F,0x00,0x00,}}, {0x9AAE,2,{0xF3,0x60,0x00,0x00,}}, {0x9AAF,2,{0xF3,0x61,0x00,0x00,}}, {0x9AB0,2,{0xF7,0xBB,0x00,0x00,}}, {0x9AB1,2,{0xF7,0xBA,0x00,0x00,}}, {0x9AB2,2,{0xF3,0x62,0x00,0x00,}}, {0x9AB3,2,{0xF3,0x63,0x00,0x00,}}, {0x9AB4,2,{0xF3,0x64,0x00,0x00,}}, {0x9AB5,2,{0xF3,0x65,0x00,0x00,}}, {0x9AB6,2,{0xF7,0xBE,0x00,0x00,}}, {0x9AB7,2,{0xF7,0xBC,0x00,0x00,}}, {0x9AB8,2,{0xBA,0xA1,0x00,0x00,}}, {0x9AB9,2,{0xF3,0x66,0x00,0x00,}}, {0x9ABA,2,{0xF7,0xBF,0x00,0x00,}}, {0x9ABB,2,{0xF3,0x67,0x00,0x00,}}, {0x9ABC,2,{0xF7,0xC0,0x00,0x00,}}, {0x9ABD,2,{0xF3,0x68,0x00,0x00,}}, {0x9ABE,2,{0xF3,0x69,0x00,0x00,}}, {0x9ABF,2,{0xF3,0x6A,0x00,0x00,}}, {0x9AC0,2,{0xF7,0xC2,0x00,0x00,}}, {0x9AC1,2,{0xF7,0xC1,0x00,0x00,}}, {0x9AC2,2,{0xF7,0xC4,0x00,0x00,}}, {0x9AC3,2,{0xF3,0x6B,0x00,0x00,}}, {0x9AC4,2,{0xF3,0x6C,0x00,0x00,}}, {0x9AC5,2,{0xF7,0xC3,0x00,0x00,}}, {0x9AC6,2,{0xF3,0x6D,0x00,0x00,}}, {0x9AC7,2,{0xF3,0x6E,0x00,0x00,}}, {0x9AC8,2,{0xF3,0x6F,0x00,0x00,}}, {0x9AC9,2,{0xF3,0x70,0x00,0x00,}}, {0x9ACA,2,{0xF3,0x71,0x00,0x00,}}, {0x9ACB,2,{0xF7,0xC5,0x00,0x00,}}, {0x9ACC,2,{0xF7,0xC6,0x00,0x00,}}, {0x9ACD,2,{0xF3,0x72,0x00,0x00,}}, {0x9ACE,2,{0xF3,0x73,0x00,0x00,}}, {0x9ACF,2,{0xF3,0x74,0x00,0x00,}}, {0x9AD0,2,{0xF3,0x75,0x00,0x00,}}, {0x9AD1,2,{0xF7,0xC7,0x00,0x00,}}, {0x9AD2,2,{0xF3,0x76,0x00,0x00,}}, {0x9AD3,2,{0xCB,0xE8,0x00,0x00,}}, {0x9AD4,2,{0xF3,0x77,0x00,0x00,}}, {0x9AD5,2,{0xF3,0x78,0x00,0x00,}}, {0x9AD6,2,{0xF3,0x79,0x00,0x00,}}, {0x9AD7,2,{0xF3,0x7A,0x00,0x00,}}, {0x9AD8,2,{0xB8,0xDF,0x00,0x00,}}, {0x9AD9,2,{0xF3,0x7B,0x00,0x00,}}, {0x9ADA,2,{0xF3,0x7C,0x00,0x00,}}, {0x9ADB,2,{0xF3,0x7D,0x00,0x00,}}, {0x9ADC,2,{0xF3,0x7E,0x00,0x00,}}, {0x9ADD,2,{0xF3,0x80,0x00,0x00,}}, {0x9ADE,2,{0xF3,0x81,0x00,0x00,}}, {0x9ADF,2,{0xF7,0xD4,0x00,0x00,}}, {0x9AE0,2,{0xF3,0x82,0x00,0x00,}}, {0x9AE1,2,{0xF7,0xD5,0x00,0x00,}}, {0x9AE2,2,{0xF3,0x83,0x00,0x00,}}, {0x9AE3,2,{0xF3,0x84,0x00,0x00,}}, {0x9AE4,2,{0xF3,0x85,0x00,0x00,}}, {0x9AE5,2,{0xF3,0x86,0x00,0x00,}}, {0x9AE6,2,{0xF7,0xD6,0x00,0x00,}}, {0x9AE7,2,{0xF3,0x87,0x00,0x00,}}, {0x9AE8,2,{0xF3,0x88,0x00,0x00,}}, {0x9AE9,2,{0xF3,0x89,0x00,0x00,}}, {0x9AEA,2,{0xF3,0x8A,0x00,0x00,}}, {0x9AEB,2,{0xF7,0xD8,0x00,0x00,}}, {0x9AEC,2,{0xF3,0x8B,0x00,0x00,}}, {0x9AED,2,{0xF7,0xDA,0x00,0x00,}}, {0x9AEE,2,{0xF3,0x8C,0x00,0x00,}}, {0x9AEF,2,{0xF7,0xD7,0x00,0x00,}}, {0x9AF0,2,{0xF3,0x8D,0x00,0x00,}}, {0x9AF1,2,{0xF3,0x8E,0x00,0x00,}}, {0x9AF2,2,{0xF3,0x8F,0x00,0x00,}}, {0x9AF3,2,{0xF3,0x90,0x00,0x00,}}, {0x9AF4,2,{0xF3,0x91,0x00,0x00,}}, {0x9AF5,2,{0xF3,0x92,0x00,0x00,}}, {0x9AF6,2,{0xF3,0x93,0x00,0x00,}}, {0x9AF7,2,{0xF3,0x94,0x00,0x00,}}, {0x9AF8,2,{0xF3,0x95,0x00,0x00,}}, {0x9AF9,2,{0xF7,0xDB,0x00,0x00,}}, {0x9AFA,2,{0xF3,0x96,0x00,0x00,}}, {0x9AFB,2,{0xF7,0xD9,0x00,0x00,}}, {0x9AFC,2,{0xF3,0x97,0x00,0x00,}}, {0x9AFD,2,{0xF3,0x98,0x00,0x00,}}, {0x9AFE,2,{0xF3,0x99,0x00,0x00,}}, {0x9AFF,2,{0xF3,0x9A,0x00,0x00,}}, {0x9B00,2,{0xF3,0x9B,0x00,0x00,}}, {0x9B01,2,{0xF3,0x9C,0x00,0x00,}}, {0x9B02,2,{0xF3,0x9D,0x00,0x00,}}, {0x9B03,2,{0xD7,0xD7,0x00,0x00,}}, {0x9B04,2,{0xF3,0x9E,0x00,0x00,}}, {0x9B05,2,{0xF3,0x9F,0x00,0x00,}}, {0x9B06,2,{0xF3,0xA0,0x00,0x00,}}, {0x9B07,2,{0xF4,0x40,0x00,0x00,}}, {0x9B08,2,{0xF7,0xDC,0x00,0x00,}}, {0x9B09,2,{0xF4,0x41,0x00,0x00,}}, {0x9B0A,2,{0xF4,0x42,0x00,0x00,}}, {0x9B0B,2,{0xF4,0x43,0x00,0x00,}}, {0x9B0C,2,{0xF4,0x44,0x00,0x00,}}, {0x9B0D,2,{0xF4,0x45,0x00,0x00,}}, {0x9B0E,2,{0xF4,0x46,0x00,0x00,}}, {0x9B0F,2,{0xF7,0xDD,0x00,0x00,}}, {0x9B10,2,{0xF4,0x47,0x00,0x00,}}, {0x9B11,2,{0xF4,0x48,0x00,0x00,}}, {0x9B12,2,{0xF4,0x49,0x00,0x00,}}, {0x9B13,2,{0xF7,0xDE,0x00,0x00,}}, {0x9B14,2,{0xF4,0x4A,0x00,0x00,}}, {0x9B15,2,{0xF4,0x4B,0x00,0x00,}}, {0x9B16,2,{0xF4,0x4C,0x00,0x00,}}, {0x9B17,2,{0xF4,0x4D,0x00,0x00,}}, {0x9B18,2,{0xF4,0x4E,0x00,0x00,}}, {0x9B19,2,{0xF4,0x4F,0x00,0x00,}}, {0x9B1A,2,{0xF4,0x50,0x00,0x00,}}, {0x9B1B,2,{0xF4,0x51,0x00,0x00,}}, {0x9B1C,2,{0xF4,0x52,0x00,0x00,}}, {0x9B1D,2,{0xF4,0x53,0x00,0x00,}}, {0x9B1E,2,{0xF4,0x54,0x00,0x00,}}, {0x9B1F,2,{0xF7,0xDF,0x00,0x00,}}, {0x9B20,2,{0xF4,0x55,0x00,0x00,}}, {0x9B21,2,{0xF4,0x56,0x00,0x00,}}, {0x9B22,2,{0xF4,0x57,0x00,0x00,}}, {0x9B23,2,{0xF7,0xE0,0x00,0x00,}}, {0x9B24,2,{0xF4,0x58,0x00,0x00,}}, {0x9B25,2,{0xF4,0x59,0x00,0x00,}}, {0x9B26,2,{0xF4,0x5A,0x00,0x00,}}, {0x9B27,2,{0xF4,0x5B,0x00,0x00,}}, {0x9B28,2,{0xF4,0x5C,0x00,0x00,}}, {0x9B29,2,{0xF4,0x5D,0x00,0x00,}}, {0x9B2A,2,{0xF4,0x5E,0x00,0x00,}}, {0x9B2B,2,{0xF4,0x5F,0x00,0x00,}}, {0x9B2C,2,{0xF4,0x60,0x00,0x00,}}, {0x9B2D,2,{0xF4,0x61,0x00,0x00,}}, {0x9B2E,2,{0xF4,0x62,0x00,0x00,}}, {0x9B2F,2,{0xDB,0xCB,0x00,0x00,}}, {0x9B30,2,{0xF4,0x63,0x00,0x00,}}, {0x9B31,2,{0xF4,0x64,0x00,0x00,}}, {0x9B32,2,{0xD8,0xAA,0x00,0x00,}}, {0x9B33,2,{0xF4,0x65,0x00,0x00,}}, {0x9B34,2,{0xF4,0x66,0x00,0x00,}}, {0x9B35,2,{0xF4,0x67,0x00,0x00,}}, {0x9B36,2,{0xF4,0x68,0x00,0x00,}}, {0x9B37,2,{0xF4,0x69,0x00,0x00,}}, {0x9B38,2,{0xF4,0x6A,0x00,0x00,}}, {0x9B39,2,{0xF4,0x6B,0x00,0x00,}}, {0x9B3A,2,{0xF4,0x6C,0x00,0x00,}}, {0x9B3B,2,{0xE5,0xF7,0x00,0x00,}}, {0x9B3C,2,{0xB9,0xED,0x00,0x00,}}, {0x9B3D,2,{0xF4,0x6D,0x00,0x00,}}, {0x9B3E,2,{0xF4,0x6E,0x00,0x00,}}, {0x9B3F,2,{0xF4,0x6F,0x00,0x00,}}, {0x9B40,2,{0xF4,0x70,0x00,0x00,}}, {0x9B41,2,{0xBF,0xFD,0x00,0x00,}}, {0x9B42,2,{0xBB,0xEA,0x00,0x00,}}, {0x9B43,2,{0xF7,0xC9,0x00,0x00,}}, {0x9B44,2,{0xC6,0xC7,0x00,0x00,}}, {0x9B45,2,{0xF7,0xC8,0x00,0x00,}}, {0x9B46,2,{0xF4,0x71,0x00,0x00,}}, {0x9B47,2,{0xF7,0xCA,0x00,0x00,}}, {0x9B48,2,{0xF7,0xCC,0x00,0x00,}}, {0x9B49,2,{0xF7,0xCB,0x00,0x00,}}, {0x9B4A,2,{0xF4,0x72,0x00,0x00,}}, {0x9B4B,2,{0xF4,0x73,0x00,0x00,}}, {0x9B4C,2,{0xF4,0x74,0x00,0x00,}}, {0x9B4D,2,{0xF7,0xCD,0x00,0x00,}}, {0x9B4E,2,{0xF4,0x75,0x00,0x00,}}, {0x9B4F,2,{0xCE,0xBA,0x00,0x00,}}, {0x9B50,2,{0xF4,0x76,0x00,0x00,}}, {0x9B51,2,{0xF7,0xCE,0x00,0x00,}}, {0x9B52,2,{0xF4,0x77,0x00,0x00,}}, {0x9B53,2,{0xF4,0x78,0x00,0x00,}}, {0x9B54,2,{0xC4,0xA7,0x00,0x00,}}, {0x9B55,2,{0xF4,0x79,0x00,0x00,}}, {0x9B56,2,{0xF4,0x7A,0x00,0x00,}}, {0x9B57,2,{0xF4,0x7B,0x00,0x00,}}, {0x9B58,2,{0xF4,0x7C,0x00,0x00,}}, {0x9B59,2,{0xF4,0x7D,0x00,0x00,}}, {0x9B5A,2,{0xF4,0x7E,0x00,0x00,}}, {0x9B5B,2,{0xF4,0x80,0x00,0x00,}}, {0x9B5C,2,{0xF4,0x81,0x00,0x00,}}, {0x9B5D,2,{0xF4,0x82,0x00,0x00,}}, {0x9B5E,2,{0xF4,0x83,0x00,0x00,}}, {0x9B5F,2,{0xF4,0x84,0x00,0x00,}}, {0x9B60,2,{0xF4,0x85,0x00,0x00,}}, {0x9B61,2,{0xF4,0x86,0x00,0x00,}}, {0x9B62,2,{0xF4,0x87,0x00,0x00,}}, {0x9B63,2,{0xF4,0x88,0x00,0x00,}}, {0x9B64,2,{0xF4,0x89,0x00,0x00,}}, {0x9B65,2,{0xF4,0x8A,0x00,0x00,}}, {0x9B66,2,{0xF4,0x8B,0x00,0x00,}}, {0x9B67,2,{0xF4,0x8C,0x00,0x00,}}, {0x9B68,2,{0xF4,0x8D,0x00,0x00,}}, {0x9B69,2,{0xF4,0x8E,0x00,0x00,}}, {0x9B6A,2,{0xF4,0x8F,0x00,0x00,}}, {0x9B6B,2,{0xF4,0x90,0x00,0x00,}}, {0x9B6C,2,{0xF4,0x91,0x00,0x00,}}, {0x9B6D,2,{0xF4,0x92,0x00,0x00,}}, {0x9B6E,2,{0xF4,0x93,0x00,0x00,}}, {0x9B6F,2,{0xF4,0x94,0x00,0x00,}}, {0x9B70,2,{0xF4,0x95,0x00,0x00,}}, {0x9B71,2,{0xF4,0x96,0x00,0x00,}}, {0x9B72,2,{0xF4,0x97,0x00,0x00,}}, {0x9B73,2,{0xF4,0x98,0x00,0x00,}}, {0x9B74,2,{0xF4,0x99,0x00,0x00,}}, {0x9B75,2,{0xF4,0x9A,0x00,0x00,}}, {0x9B76,2,{0xF4,0x9B,0x00,0x00,}}, {0x9B77,2,{0xF4,0x9C,0x00,0x00,}}, {0x9B78,2,{0xF4,0x9D,0x00,0x00,}}, {0x9B79,2,{0xF4,0x9E,0x00,0x00,}}, {0x9B7A,2,{0xF4,0x9F,0x00,0x00,}}, {0x9B7B,2,{0xF4,0xA0,0x00,0x00,}}, {0x9B7C,2,{0xF5,0x40,0x00,0x00,}}, {0x9B7D,2,{0xF5,0x41,0x00,0x00,}}, {0x9B7E,2,{0xF5,0x42,0x00,0x00,}}, {0x9B7F,2,{0xF5,0x43,0x00,0x00,}}, {0x9B80,2,{0xF5,0x44,0x00,0x00,}}, {0x9B81,2,{0xF5,0x45,0x00,0x00,}}, {0x9B82,2,{0xF5,0x46,0x00,0x00,}}, {0x9B83,2,{0xF5,0x47,0x00,0x00,}}, {0x9B84,2,{0xF5,0x48,0x00,0x00,}}, {0x9B85,2,{0xF5,0x49,0x00,0x00,}}, {0x9B86,2,{0xF5,0x4A,0x00,0x00,}}, {0x9B87,2,{0xF5,0x4B,0x00,0x00,}}, {0x9B88,2,{0xF5,0x4C,0x00,0x00,}}, {0x9B89,2,{0xF5,0x4D,0x00,0x00,}}, {0x9B8A,2,{0xF5,0x4E,0x00,0x00,}}, {0x9B8B,2,{0xF5,0x4F,0x00,0x00,}}, {0x9B8C,2,{0xF5,0x50,0x00,0x00,}}, {0x9B8D,2,{0xF5,0x51,0x00,0x00,}}, {0x9B8E,2,{0xF5,0x52,0x00,0x00,}}, {0x9B8F,2,{0xF5,0x53,0x00,0x00,}}, {0x9B90,2,{0xF5,0x54,0x00,0x00,}}, {0x9B91,2,{0xF5,0x55,0x00,0x00,}}, {0x9B92,2,{0xF5,0x56,0x00,0x00,}}, {0x9B93,2,{0xF5,0x57,0x00,0x00,}}, {0x9B94,2,{0xF5,0x58,0x00,0x00,}}, {0x9B95,2,{0xF5,0x59,0x00,0x00,}}, {0x9B96,2,{0xF5,0x5A,0x00,0x00,}}, {0x9B97,2,{0xF5,0x5B,0x00,0x00,}}, {0x9B98,2,{0xF5,0x5C,0x00,0x00,}}, {0x9B99,2,{0xF5,0x5D,0x00,0x00,}}, {0x9B9A,2,{0xF5,0x5E,0x00,0x00,}}, {0x9B9B,2,{0xF5,0x5F,0x00,0x00,}}, {0x9B9C,2,{0xF5,0x60,0x00,0x00,}}, {0x9B9D,2,{0xF5,0x61,0x00,0x00,}}, {0x9B9E,2,{0xF5,0x62,0x00,0x00,}}, {0x9B9F,2,{0xF5,0x63,0x00,0x00,}}, {0x9BA0,2,{0xF5,0x64,0x00,0x00,}}, {0x9BA1,2,{0xF5,0x65,0x00,0x00,}}, {0x9BA2,2,{0xF5,0x66,0x00,0x00,}}, {0x9BA3,2,{0xF5,0x67,0x00,0x00,}}, {0x9BA4,2,{0xF5,0x68,0x00,0x00,}}, {0x9BA5,2,{0xF5,0x69,0x00,0x00,}}, {0x9BA6,2,{0xF5,0x6A,0x00,0x00,}}, {0x9BA7,2,{0xF5,0x6B,0x00,0x00,}}, {0x9BA8,2,{0xF5,0x6C,0x00,0x00,}}, {0x9BA9,2,{0xF5,0x6D,0x00,0x00,}}, {0x9BAA,2,{0xF5,0x6E,0x00,0x00,}}, {0x9BAB,2,{0xF5,0x6F,0x00,0x00,}}, {0x9BAC,2,{0xF5,0x70,0x00,0x00,}}, {0x9BAD,2,{0xF5,0x71,0x00,0x00,}}, {0x9BAE,2,{0xF5,0x72,0x00,0x00,}}, {0x9BAF,2,{0xF5,0x73,0x00,0x00,}}, {0x9BB0,2,{0xF5,0x74,0x00,0x00,}}, {0x9BB1,2,{0xF5,0x75,0x00,0x00,}}, {0x9BB2,2,{0xF5,0x76,0x00,0x00,}}, {0x9BB3,2,{0xF5,0x77,0x00,0x00,}}, {0x9BB4,2,{0xF5,0x78,0x00,0x00,}}, {0x9BB5,2,{0xF5,0x79,0x00,0x00,}}, {0x9BB6,2,{0xF5,0x7A,0x00,0x00,}}, {0x9BB7,2,{0xF5,0x7B,0x00,0x00,}}, {0x9BB8,2,{0xF5,0x7C,0x00,0x00,}}, {0x9BB9,2,{0xF5,0x7D,0x00,0x00,}}, {0x9BBA,2,{0xF5,0x7E,0x00,0x00,}}, {0x9BBB,2,{0xF5,0x80,0x00,0x00,}}, {0x9BBC,2,{0xF5,0x81,0x00,0x00,}}, {0x9BBD,2,{0xF5,0x82,0x00,0x00,}}, {0x9BBE,2,{0xF5,0x83,0x00,0x00,}}, {0x9BBF,2,{0xF5,0x84,0x00,0x00,}}, {0x9BC0,2,{0xF5,0x85,0x00,0x00,}}, {0x9BC1,2,{0xF5,0x86,0x00,0x00,}}, {0x9BC2,2,{0xF5,0x87,0x00,0x00,}}, {0x9BC3,2,{0xF5,0x88,0x00,0x00,}}, {0x9BC4,2,{0xF5,0x89,0x00,0x00,}}, {0x9BC5,2,{0xF5,0x8A,0x00,0x00,}}, {0x9BC6,2,{0xF5,0x8B,0x00,0x00,}}, {0x9BC7,2,{0xF5,0x8C,0x00,0x00,}}, {0x9BC8,2,{0xF5,0x8D,0x00,0x00,}}, {0x9BC9,2,{0xF5,0x8E,0x00,0x00,}}, {0x9BCA,2,{0xF5,0x8F,0x00,0x00,}}, {0x9BCB,2,{0xF5,0x90,0x00,0x00,}}, {0x9BCC,2,{0xF5,0x91,0x00,0x00,}}, {0x9BCD,2,{0xF5,0x92,0x00,0x00,}}, {0x9BCE,2,{0xF5,0x93,0x00,0x00,}}, {0x9BCF,2,{0xF5,0x94,0x00,0x00,}}, {0x9BD0,2,{0xF5,0x95,0x00,0x00,}}, {0x9BD1,2,{0xF5,0x96,0x00,0x00,}}, {0x9BD2,2,{0xF5,0x97,0x00,0x00,}}, {0x9BD3,2,{0xF5,0x98,0x00,0x00,}}, {0x9BD4,2,{0xF5,0x99,0x00,0x00,}}, {0x9BD5,2,{0xF5,0x9A,0x00,0x00,}}, {0x9BD6,2,{0xF5,0x9B,0x00,0x00,}}, {0x9BD7,2,{0xF5,0x9C,0x00,0x00,}}, {0x9BD8,2,{0xF5,0x9D,0x00,0x00,}}, {0x9BD9,2,{0xF5,0x9E,0x00,0x00,}}, {0x9BDA,2,{0xF5,0x9F,0x00,0x00,}}, {0x9BDB,2,{0xF5,0xA0,0x00,0x00,}}, {0x9BDC,2,{0xF6,0x40,0x00,0x00,}}, {0x9BDD,2,{0xF6,0x41,0x00,0x00,}}, {0x9BDE,2,{0xF6,0x42,0x00,0x00,}}, {0x9BDF,2,{0xF6,0x43,0x00,0x00,}}, {0x9BE0,2,{0xF6,0x44,0x00,0x00,}}, {0x9BE1,2,{0xF6,0x45,0x00,0x00,}}, {0x9BE2,2,{0xF6,0x46,0x00,0x00,}}, {0x9BE3,2,{0xF6,0x47,0x00,0x00,}}, {0x9BE4,2,{0xF6,0x48,0x00,0x00,}}, {0x9BE5,2,{0xF6,0x49,0x00,0x00,}}, {0x9BE6,2,{0xF6,0x4A,0x00,0x00,}}, {0x9BE7,2,{0xF6,0x4B,0x00,0x00,}}, {0x9BE8,2,{0xF6,0x4C,0x00,0x00,}}, {0x9BE9,2,{0xF6,0x4D,0x00,0x00,}}, {0x9BEA,2,{0xF6,0x4E,0x00,0x00,}}, {0x9BEB,2,{0xF6,0x4F,0x00,0x00,}}, {0x9BEC,2,{0xF6,0x50,0x00,0x00,}}, {0x9BED,2,{0xF6,0x51,0x00,0x00,}}, {0x9BEE,2,{0xF6,0x52,0x00,0x00,}}, {0x9BEF,2,{0xF6,0x53,0x00,0x00,}}, {0x9BF0,2,{0xF6,0x54,0x00,0x00,}}, {0x9BF1,2,{0xF6,0x55,0x00,0x00,}}, {0x9BF2,2,{0xF6,0x56,0x00,0x00,}}, {0x9BF3,2,{0xF6,0x57,0x00,0x00,}}, {0x9BF4,2,{0xF6,0x58,0x00,0x00,}}, {0x9BF5,2,{0xF6,0x59,0x00,0x00,}}, {0x9BF6,2,{0xF6,0x5A,0x00,0x00,}}, {0x9BF7,2,{0xF6,0x5B,0x00,0x00,}}, {0x9BF8,2,{0xF6,0x5C,0x00,0x00,}}, {0x9BF9,2,{0xF6,0x5D,0x00,0x00,}}, {0x9BFA,2,{0xF6,0x5E,0x00,0x00,}}, {0x9BFB,2,{0xF6,0x5F,0x00,0x00,}}, {0x9BFC,2,{0xF6,0x60,0x00,0x00,}}, {0x9BFD,2,{0xF6,0x61,0x00,0x00,}}, {0x9BFE,2,{0xF6,0x62,0x00,0x00,}}, {0x9BFF,2,{0xF6,0x63,0x00,0x00,}}, {0x9C00,2,{0xF6,0x64,0x00,0x00,}}, {0x9C01,2,{0xF6,0x65,0x00,0x00,}}, {0x9C02,2,{0xF6,0x66,0x00,0x00,}}, {0x9C03,2,{0xF6,0x67,0x00,0x00,}}, {0x9C04,2,{0xF6,0x68,0x00,0x00,}}, {0x9C05,2,{0xF6,0x69,0x00,0x00,}}, {0x9C06,2,{0xF6,0x6A,0x00,0x00,}}, {0x9C07,2,{0xF6,0x6B,0x00,0x00,}}, {0x9C08,2,{0xF6,0x6C,0x00,0x00,}}, {0x9C09,2,{0xF6,0x6D,0x00,0x00,}}, {0x9C0A,2,{0xF6,0x6E,0x00,0x00,}}, {0x9C0B,2,{0xF6,0x6F,0x00,0x00,}}, {0x9C0C,2,{0xF6,0x70,0x00,0x00,}}, {0x9C0D,2,{0xF6,0x71,0x00,0x00,}}, {0x9C0E,2,{0xF6,0x72,0x00,0x00,}}, {0x9C0F,2,{0xF6,0x73,0x00,0x00,}}, {0x9C10,2,{0xF6,0x74,0x00,0x00,}}, {0x9C11,2,{0xF6,0x75,0x00,0x00,}}, {0x9C12,2,{0xF6,0x76,0x00,0x00,}}, {0x9C13,2,{0xF6,0x77,0x00,0x00,}}, {0x9C14,2,{0xF6,0x78,0x00,0x00,}}, {0x9C15,2,{0xF6,0x79,0x00,0x00,}}, {0x9C16,2,{0xF6,0x7A,0x00,0x00,}}, {0x9C17,2,{0xF6,0x7B,0x00,0x00,}}, {0x9C18,2,{0xF6,0x7C,0x00,0x00,}}, {0x9C19,2,{0xF6,0x7D,0x00,0x00,}}, {0x9C1A,2,{0xF6,0x7E,0x00,0x00,}}, {0x9C1B,2,{0xF6,0x80,0x00,0x00,}}, {0x9C1C,2,{0xF6,0x81,0x00,0x00,}}, {0x9C1D,2,{0xF6,0x82,0x00,0x00,}}, {0x9C1E,2,{0xF6,0x83,0x00,0x00,}}, {0x9C1F,2,{0xF6,0x84,0x00,0x00,}}, {0x9C20,2,{0xF6,0x85,0x00,0x00,}}, {0x9C21,2,{0xF6,0x86,0x00,0x00,}}, {0x9C22,2,{0xF6,0x87,0x00,0x00,}}, {0x9C23,2,{0xF6,0x88,0x00,0x00,}}, {0x9C24,2,{0xF6,0x89,0x00,0x00,}}, {0x9C25,2,{0xF6,0x8A,0x00,0x00,}}, {0x9C26,2,{0xF6,0x8B,0x00,0x00,}}, {0x9C27,2,{0xF6,0x8C,0x00,0x00,}}, {0x9C28,2,{0xF6,0x8D,0x00,0x00,}}, {0x9C29,2,{0xF6,0x8E,0x00,0x00,}}, {0x9C2A,2,{0xF6,0x8F,0x00,0x00,}}, {0x9C2B,2,{0xF6,0x90,0x00,0x00,}}, {0x9C2C,2,{0xF6,0x91,0x00,0x00,}}, {0x9C2D,2,{0xF6,0x92,0x00,0x00,}}, {0x9C2E,2,{0xF6,0x93,0x00,0x00,}}, {0x9C2F,2,{0xF6,0x94,0x00,0x00,}}, {0x9C30,2,{0xF6,0x95,0x00,0x00,}}, {0x9C31,2,{0xF6,0x96,0x00,0x00,}}, {0x9C32,2,{0xF6,0x97,0x00,0x00,}}, {0x9C33,2,{0xF6,0x98,0x00,0x00,}}, {0x9C34,2,{0xF6,0x99,0x00,0x00,}}, {0x9C35,2,{0xF6,0x9A,0x00,0x00,}}, {0x9C36,2,{0xF6,0x9B,0x00,0x00,}}, {0x9C37,2,{0xF6,0x9C,0x00,0x00,}}, {0x9C38,2,{0xF6,0x9D,0x00,0x00,}}, {0x9C39,2,{0xF6,0x9E,0x00,0x00,}}, {0x9C3A,2,{0xF6,0x9F,0x00,0x00,}}, {0x9C3B,2,{0xF6,0xA0,0x00,0x00,}}, {0x9C3C,2,{0xF7,0x40,0x00,0x00,}}, {0x9C3D,2,{0xF7,0x41,0x00,0x00,}}, {0x9C3E,2,{0xF7,0x42,0x00,0x00,}}, {0x9C3F,2,{0xF7,0x43,0x00,0x00,}}, {0x9C40,2,{0xF7,0x44,0x00,0x00,}}, {0x9C41,2,{0xF7,0x45,0x00,0x00,}}, {0x9C42,2,{0xF7,0x46,0x00,0x00,}}, {0x9C43,2,{0xF7,0x47,0x00,0x00,}}, {0x9C44,2,{0xF7,0x48,0x00,0x00,}}, {0x9C45,2,{0xF7,0x49,0x00,0x00,}}, {0x9C46,2,{0xF7,0x4A,0x00,0x00,}}, {0x9C47,2,{0xF7,0x4B,0x00,0x00,}}, {0x9C48,2,{0xF7,0x4C,0x00,0x00,}}, {0x9C49,2,{0xF7,0x4D,0x00,0x00,}}, {0x9C4A,2,{0xF7,0x4E,0x00,0x00,}}, {0x9C4B,2,{0xF7,0x4F,0x00,0x00,}}, {0x9C4C,2,{0xF7,0x50,0x00,0x00,}}, {0x9C4D,2,{0xF7,0x51,0x00,0x00,}}, {0x9C4E,2,{0xF7,0x52,0x00,0x00,}}, {0x9C4F,2,{0xF7,0x53,0x00,0x00,}}, {0x9C50,2,{0xF7,0x54,0x00,0x00,}}, {0x9C51,2,{0xF7,0x55,0x00,0x00,}}, {0x9C52,2,{0xF7,0x56,0x00,0x00,}}, {0x9C53,2,{0xF7,0x57,0x00,0x00,}}, {0x9C54,2,{0xF7,0x58,0x00,0x00,}}, {0x9C55,2,{0xF7,0x59,0x00,0x00,}}, {0x9C56,2,{0xF7,0x5A,0x00,0x00,}}, {0x9C57,2,{0xF7,0x5B,0x00,0x00,}}, {0x9C58,2,{0xF7,0x5C,0x00,0x00,}}, {0x9C59,2,{0xF7,0x5D,0x00,0x00,}}, {0x9C5A,2,{0xF7,0x5E,0x00,0x00,}}, {0x9C5B,2,{0xF7,0x5F,0x00,0x00,}}, {0x9C5C,2,{0xF7,0x60,0x00,0x00,}}, {0x9C5D,2,{0xF7,0x61,0x00,0x00,}}, {0x9C5E,2,{0xF7,0x62,0x00,0x00,}}, {0x9C5F,2,{0xF7,0x63,0x00,0x00,}}, {0x9C60,2,{0xF7,0x64,0x00,0x00,}}, {0x9C61,2,{0xF7,0x65,0x00,0x00,}}, {0x9C62,2,{0xF7,0x66,0x00,0x00,}}, {0x9C63,2,{0xF7,0x67,0x00,0x00,}}, {0x9C64,2,{0xF7,0x68,0x00,0x00,}}, {0x9C65,2,{0xF7,0x69,0x00,0x00,}}, {0x9C66,2,{0xF7,0x6A,0x00,0x00,}}, {0x9C67,2,{0xF7,0x6B,0x00,0x00,}}, {0x9C68,2,{0xF7,0x6C,0x00,0x00,}}, {0x9C69,2,{0xF7,0x6D,0x00,0x00,}}, {0x9C6A,2,{0xF7,0x6E,0x00,0x00,}}, {0x9C6B,2,{0xF7,0x6F,0x00,0x00,}}, {0x9C6C,2,{0xF7,0x70,0x00,0x00,}}, {0x9C6D,2,{0xF7,0x71,0x00,0x00,}}, {0x9C6E,2,{0xF7,0x72,0x00,0x00,}}, {0x9C6F,2,{0xF7,0x73,0x00,0x00,}}, {0x9C70,2,{0xF7,0x74,0x00,0x00,}}, {0x9C71,2,{0xF7,0x75,0x00,0x00,}}, {0x9C72,2,{0xF7,0x76,0x00,0x00,}}, {0x9C73,2,{0xF7,0x77,0x00,0x00,}}, {0x9C74,2,{0xF7,0x78,0x00,0x00,}}, {0x9C75,2,{0xF7,0x79,0x00,0x00,}}, {0x9C76,2,{0xF7,0x7A,0x00,0x00,}}, {0x9C77,2,{0xF7,0x7B,0x00,0x00,}}, {0x9C78,2,{0xF7,0x7C,0x00,0x00,}}, {0x9C79,2,{0xF7,0x7D,0x00,0x00,}}, {0x9C7A,2,{0xF7,0x7E,0x00,0x00,}}, {0x9C7B,2,{0xF7,0x80,0x00,0x00,}}, {0x9C7C,2,{0xD3,0xE3,0x00,0x00,}}, {0x9C7D,2,{0xF7,0x81,0x00,0x00,}}, {0x9C7E,2,{0xF7,0x82,0x00,0x00,}}, {0x9C7F,2,{0xF6,0xCF,0x00,0x00,}}, {0x9C80,2,{0xF7,0x83,0x00,0x00,}}, {0x9C81,2,{0xC2,0xB3,0x00,0x00,}}, {0x9C82,2,{0xF6,0xD0,0x00,0x00,}}, {0x9C83,2,{0xF7,0x84,0x00,0x00,}}, {0x9C84,2,{0xF7,0x85,0x00,0x00,}}, {0x9C85,2,{0xF6,0xD1,0x00,0x00,}}, {0x9C86,2,{0xF6,0xD2,0x00,0x00,}}, {0x9C87,2,{0xF6,0xD3,0x00,0x00,}}, {0x9C88,2,{0xF6,0xD4,0x00,0x00,}}, {0x9C89,2,{0xF7,0x86,0x00,0x00,}}, {0x9C8A,2,{0xF7,0x87,0x00,0x00,}}, {0x9C8B,2,{0xF6,0xD6,0x00,0x00,}}, {0x9C8C,2,{0xF7,0x88,0x00,0x00,}}, {0x9C8D,2,{0xB1,0xAB,0x00,0x00,}}, {0x9C8E,2,{0xF6,0xD7,0x00,0x00,}}, {0x9C8F,2,{0xF7,0x89,0x00,0x00,}}, {0x9C90,2,{0xF6,0xD8,0x00,0x00,}}, {0x9C91,2,{0xF6,0xD9,0x00,0x00,}}, {0x9C92,2,{0xF6,0xDA,0x00,0x00,}}, {0x9C93,2,{0xF7,0x8A,0x00,0x00,}}, {0x9C94,2,{0xF6,0xDB,0x00,0x00,}}, {0x9C95,2,{0xF6,0xDC,0x00,0x00,}}, {0x9C96,2,{0xF7,0x8B,0x00,0x00,}}, {0x9C97,2,{0xF7,0x8C,0x00,0x00,}}, {0x9C98,2,{0xF7,0x8D,0x00,0x00,}}, {0x9C99,2,{0xF7,0x8E,0x00,0x00,}}, {0x9C9A,2,{0xF6,0xDD,0x00,0x00,}}, {0x9C9B,2,{0xF6,0xDE,0x00,0x00,}}, {0x9C9C,2,{0xCF,0xCA,0x00,0x00,}}, {0x9C9D,2,{0xF7,0x8F,0x00,0x00,}}, {0x9C9E,2,{0xF6,0xDF,0x00,0x00,}}, {0x9C9F,2,{0xF6,0xE0,0x00,0x00,}}, {0x9CA0,2,{0xF6,0xE1,0x00,0x00,}}, {0x9CA1,2,{0xF6,0xE2,0x00,0x00,}}, {0x9CA2,2,{0xF6,0xE3,0x00,0x00,}}, {0x9CA3,2,{0xF6,0xE4,0x00,0x00,}}, {0x9CA4,2,{0xC0,0xF0,0x00,0x00,}}, {0x9CA5,2,{0xF6,0xE5,0x00,0x00,}}, {0x9CA6,2,{0xF6,0xE6,0x00,0x00,}}, {0x9CA7,2,{0xF6,0xE7,0x00,0x00,}}, {0x9CA8,2,{0xF6,0xE8,0x00,0x00,}}, {0x9CA9,2,{0xF6,0xE9,0x00,0x00,}}, {0x9CAA,2,{0xF7,0x90,0x00,0x00,}}, {0x9CAB,2,{0xF6,0xEA,0x00,0x00,}}, {0x9CAC,2,{0xF7,0x91,0x00,0x00,}}, {0x9CAD,2,{0xF6,0xEB,0x00,0x00,}}, {0x9CAE,2,{0xF6,0xEC,0x00,0x00,}}, {0x9CAF,2,{0xF7,0x92,0x00,0x00,}}, {0x9CB0,2,{0xF6,0xED,0x00,0x00,}}, {0x9CB1,2,{0xF6,0xEE,0x00,0x00,}}, {0x9CB2,2,{0xF6,0xEF,0x00,0x00,}}, {0x9CB3,2,{0xF6,0xF0,0x00,0x00,}}, {0x9CB4,2,{0xF6,0xF1,0x00,0x00,}}, {0x9CB5,2,{0xF6,0xF2,0x00,0x00,}}, {0x9CB6,2,{0xF6,0xF3,0x00,0x00,}}, {0x9CB7,2,{0xF6,0xF4,0x00,0x00,}}, {0x9CB8,2,{0xBE,0xA8,0x00,0x00,}}, {0x9CB9,2,{0xF7,0x93,0x00,0x00,}}, {0x9CBA,2,{0xF6,0xF5,0x00,0x00,}}, {0x9CBB,2,{0xF6,0xF6,0x00,0x00,}}, {0x9CBC,2,{0xF6,0xF7,0x00,0x00,}}, {0x9CBD,2,{0xF6,0xF8,0x00,0x00,}}, {0x9CBE,2,{0xF7,0x94,0x00,0x00,}}, {0x9CBF,2,{0xF7,0x95,0x00,0x00,}}, {0x9CC0,2,{0xF7,0x96,0x00,0x00,}}, {0x9CC1,2,{0xF7,0x97,0x00,0x00,}}, {0x9CC2,2,{0xF7,0x98,0x00,0x00,}}, {0x9CC3,2,{0xC8,0xFA,0x00,0x00,}}, {0x9CC4,2,{0xF6,0xF9,0x00,0x00,}}, {0x9CC5,2,{0xF6,0xFA,0x00,0x00,}}, {0x9CC6,2,{0xF6,0xFB,0x00,0x00,}}, {0x9CC7,2,{0xF6,0xFC,0x00,0x00,}}, {0x9CC8,2,{0xF7,0x99,0x00,0x00,}}, {0x9CC9,2,{0xF7,0x9A,0x00,0x00,}}, {0x9CCA,2,{0xF6,0xFD,0x00,0x00,}}, {0x9CCB,2,{0xF6,0xFE,0x00,0x00,}}, {0x9CCC,2,{0xF7,0xA1,0x00,0x00,}}, {0x9CCD,2,{0xF7,0xA2,0x00,0x00,}}, {0x9CCE,2,{0xF7,0xA3,0x00,0x00,}}, {0x9CCF,2,{0xF7,0xA4,0x00,0x00,}}, {0x9CD0,2,{0xF7,0xA5,0x00,0x00,}}, {0x9CD1,2,{0xF7,0x9B,0x00,0x00,}}, {0x9CD2,2,{0xF7,0x9C,0x00,0x00,}}, {0x9CD3,2,{0xF7,0xA6,0x00,0x00,}}, {0x9CD4,2,{0xF7,0xA7,0x00,0x00,}}, {0x9CD5,2,{0xF7,0xA8,0x00,0x00,}}, {0x9CD6,2,{0xB1,0xEE,0x00,0x00,}}, {0x9CD7,2,{0xF7,0xA9,0x00,0x00,}}, {0x9CD8,2,{0xF7,0xAA,0x00,0x00,}}, {0x9CD9,2,{0xF7,0xAB,0x00,0x00,}}, {0x9CDA,2,{0xF7,0x9D,0x00,0x00,}}, {0x9CDB,2,{0xF7,0x9E,0x00,0x00,}}, {0x9CDC,2,{0xF7,0xAC,0x00,0x00,}}, {0x9CDD,2,{0xF7,0xAD,0x00,0x00,}}, {0x9CDE,2,{0xC1,0xDB,0x00,0x00,}}, {0x9CDF,2,{0xF7,0xAE,0x00,0x00,}}, {0x9CE0,2,{0xF7,0x9F,0x00,0x00,}}, {0x9CE1,2,{0xF7,0xA0,0x00,0x00,}}, {0x9CE2,2,{0xF7,0xAF,0x00,0x00,}}, {0x9CE3,2,{0xF8,0x40,0x00,0x00,}}, {0x9CE4,2,{0xF8,0x41,0x00,0x00,}}, {0x9CE5,2,{0xF8,0x42,0x00,0x00,}}, {0x9CE6,2,{0xF8,0x43,0x00,0x00,}}, {0x9CE7,2,{0xF8,0x44,0x00,0x00,}}, {0x9CE8,2,{0xF8,0x45,0x00,0x00,}}, {0x9CE9,2,{0xF8,0x46,0x00,0x00,}}, {0x9CEA,2,{0xF8,0x47,0x00,0x00,}}, {0x9CEB,2,{0xF8,0x48,0x00,0x00,}}, {0x9CEC,2,{0xF8,0x49,0x00,0x00,}}, {0x9CED,2,{0xF8,0x4A,0x00,0x00,}}, {0x9CEE,2,{0xF8,0x4B,0x00,0x00,}}, {0x9CEF,2,{0xF8,0x4C,0x00,0x00,}}, {0x9CF0,2,{0xF8,0x4D,0x00,0x00,}}, {0x9CF1,2,{0xF8,0x4E,0x00,0x00,}}, {0x9CF2,2,{0xF8,0x4F,0x00,0x00,}}, {0x9CF3,2,{0xF8,0x50,0x00,0x00,}}, {0x9CF4,2,{0xF8,0x51,0x00,0x00,}}, {0x9CF5,2,{0xF8,0x52,0x00,0x00,}}, {0x9CF6,2,{0xF8,0x53,0x00,0x00,}}, {0x9CF7,2,{0xF8,0x54,0x00,0x00,}}, {0x9CF8,2,{0xF8,0x55,0x00,0x00,}}, {0x9CF9,2,{0xF8,0x56,0x00,0x00,}}, {0x9CFA,2,{0xF8,0x57,0x00,0x00,}}, {0x9CFB,2,{0xF8,0x58,0x00,0x00,}}, {0x9CFC,2,{0xF8,0x59,0x00,0x00,}}, {0x9CFD,2,{0xF8,0x5A,0x00,0x00,}}, {0x9CFE,2,{0xF8,0x5B,0x00,0x00,}}, {0x9CFF,2,{0xF8,0x5C,0x00,0x00,}}, {0x9D00,2,{0xF8,0x5D,0x00,0x00,}}, {0x9D01,2,{0xF8,0x5E,0x00,0x00,}}, {0x9D02,2,{0xF8,0x5F,0x00,0x00,}}, {0x9D03,2,{0xF8,0x60,0x00,0x00,}}, {0x9D04,2,{0xF8,0x61,0x00,0x00,}}, {0x9D05,2,{0xF8,0x62,0x00,0x00,}}, {0x9D06,2,{0xF8,0x63,0x00,0x00,}}, {0x9D07,2,{0xF8,0x64,0x00,0x00,}}, {0x9D08,2,{0xF8,0x65,0x00,0x00,}}, {0x9D09,2,{0xF8,0x66,0x00,0x00,}}, {0x9D0A,2,{0xF8,0x67,0x00,0x00,}}, {0x9D0B,2,{0xF8,0x68,0x00,0x00,}}, {0x9D0C,2,{0xF8,0x69,0x00,0x00,}}, {0x9D0D,2,{0xF8,0x6A,0x00,0x00,}}, {0x9D0E,2,{0xF8,0x6B,0x00,0x00,}}, {0x9D0F,2,{0xF8,0x6C,0x00,0x00,}}, {0x9D10,2,{0xF8,0x6D,0x00,0x00,}}, {0x9D11,2,{0xF8,0x6E,0x00,0x00,}}, {0x9D12,2,{0xF8,0x6F,0x00,0x00,}}, {0x9D13,2,{0xF8,0x70,0x00,0x00,}}, {0x9D14,2,{0xF8,0x71,0x00,0x00,}}, {0x9D15,2,{0xF8,0x72,0x00,0x00,}}, {0x9D16,2,{0xF8,0x73,0x00,0x00,}}, {0x9D17,2,{0xF8,0x74,0x00,0x00,}}, {0x9D18,2,{0xF8,0x75,0x00,0x00,}}, {0x9D19,2,{0xF8,0x76,0x00,0x00,}}, {0x9D1A,2,{0xF8,0x77,0x00,0x00,}}, {0x9D1B,2,{0xF8,0x78,0x00,0x00,}}, {0x9D1C,2,{0xF8,0x79,0x00,0x00,}}, {0x9D1D,2,{0xF8,0x7A,0x00,0x00,}}, {0x9D1E,2,{0xF8,0x7B,0x00,0x00,}}, {0x9D1F,2,{0xF8,0x7C,0x00,0x00,}}, {0x9D20,2,{0xF8,0x7D,0x00,0x00,}}, {0x9D21,2,{0xF8,0x7E,0x00,0x00,}}, {0x9D22,2,{0xF8,0x80,0x00,0x00,}}, {0x9D23,2,{0xF8,0x81,0x00,0x00,}}, {0x9D24,2,{0xF8,0x82,0x00,0x00,}}, {0x9D25,2,{0xF8,0x83,0x00,0x00,}}, {0x9D26,2,{0xF8,0x84,0x00,0x00,}}, {0x9D27,2,{0xF8,0x85,0x00,0x00,}}, {0x9D28,2,{0xF8,0x86,0x00,0x00,}}, {0x9D29,2,{0xF8,0x87,0x00,0x00,}}, {0x9D2A,2,{0xF8,0x88,0x00,0x00,}}, {0x9D2B,2,{0xF8,0x89,0x00,0x00,}}, {0x9D2C,2,{0xF8,0x8A,0x00,0x00,}}, {0x9D2D,2,{0xF8,0x8B,0x00,0x00,}}, {0x9D2E,2,{0xF8,0x8C,0x00,0x00,}}, {0x9D2F,2,{0xF8,0x8D,0x00,0x00,}}, {0x9D30,2,{0xF8,0x8E,0x00,0x00,}}, {0x9D31,2,{0xF8,0x8F,0x00,0x00,}}, {0x9D32,2,{0xF8,0x90,0x00,0x00,}}, {0x9D33,2,{0xF8,0x91,0x00,0x00,}}, {0x9D34,2,{0xF8,0x92,0x00,0x00,}}, {0x9D35,2,{0xF8,0x93,0x00,0x00,}}, {0x9D36,2,{0xF8,0x94,0x00,0x00,}}, {0x9D37,2,{0xF8,0x95,0x00,0x00,}}, {0x9D38,2,{0xF8,0x96,0x00,0x00,}}, {0x9D39,2,{0xF8,0x97,0x00,0x00,}}, {0x9D3A,2,{0xF8,0x98,0x00,0x00,}}, {0x9D3B,2,{0xF8,0x99,0x00,0x00,}}, {0x9D3C,2,{0xF8,0x9A,0x00,0x00,}}, {0x9D3D,2,{0xF8,0x9B,0x00,0x00,}}, {0x9D3E,2,{0xF8,0x9C,0x00,0x00,}}, {0x9D3F,2,{0xF8,0x9D,0x00,0x00,}}, {0x9D40,2,{0xF8,0x9E,0x00,0x00,}}, {0x9D41,2,{0xF8,0x9F,0x00,0x00,}}, {0x9D42,2,{0xF8,0xA0,0x00,0x00,}}, {0x9D43,2,{0xF9,0x40,0x00,0x00,}}, {0x9D44,2,{0xF9,0x41,0x00,0x00,}}, {0x9D45,2,{0xF9,0x42,0x00,0x00,}}, {0x9D46,2,{0xF9,0x43,0x00,0x00,}}, {0x9D47,2,{0xF9,0x44,0x00,0x00,}}, {0x9D48,2,{0xF9,0x45,0x00,0x00,}}, {0x9D49,2,{0xF9,0x46,0x00,0x00,}}, {0x9D4A,2,{0xF9,0x47,0x00,0x00,}}, {0x9D4B,2,{0xF9,0x48,0x00,0x00,}}, {0x9D4C,2,{0xF9,0x49,0x00,0x00,}}, {0x9D4D,2,{0xF9,0x4A,0x00,0x00,}}, {0x9D4E,2,{0xF9,0x4B,0x00,0x00,}}, {0x9D4F,2,{0xF9,0x4C,0x00,0x00,}}, {0x9D50,2,{0xF9,0x4D,0x00,0x00,}}, {0x9D51,2,{0xF9,0x4E,0x00,0x00,}}, {0x9D52,2,{0xF9,0x4F,0x00,0x00,}}, {0x9D53,2,{0xF9,0x50,0x00,0x00,}}, {0x9D54,2,{0xF9,0x51,0x00,0x00,}}, {0x9D55,2,{0xF9,0x52,0x00,0x00,}}, {0x9D56,2,{0xF9,0x53,0x00,0x00,}}, {0x9D57,2,{0xF9,0x54,0x00,0x00,}}, {0x9D58,2,{0xF9,0x55,0x00,0x00,}}, {0x9D59,2,{0xF9,0x56,0x00,0x00,}}, {0x9D5A,2,{0xF9,0x57,0x00,0x00,}}, {0x9D5B,2,{0xF9,0x58,0x00,0x00,}}, {0x9D5C,2,{0xF9,0x59,0x00,0x00,}}, {0x9D5D,2,{0xF9,0x5A,0x00,0x00,}}, {0x9D5E,2,{0xF9,0x5B,0x00,0x00,}}, {0x9D5F,2,{0xF9,0x5C,0x00,0x00,}}, {0x9D60,2,{0xF9,0x5D,0x00,0x00,}}, {0x9D61,2,{0xF9,0x5E,0x00,0x00,}}, {0x9D62,2,{0xF9,0x5F,0x00,0x00,}}, {0x9D63,2,{0xF9,0x60,0x00,0x00,}}, {0x9D64,2,{0xF9,0x61,0x00,0x00,}}, {0x9D65,2,{0xF9,0x62,0x00,0x00,}}, {0x9D66,2,{0xF9,0x63,0x00,0x00,}}, {0x9D67,2,{0xF9,0x64,0x00,0x00,}}, {0x9D68,2,{0xF9,0x65,0x00,0x00,}}, {0x9D69,2,{0xF9,0x66,0x00,0x00,}}, {0x9D6A,2,{0xF9,0x67,0x00,0x00,}}, {0x9D6B,2,{0xF9,0x68,0x00,0x00,}}, {0x9D6C,2,{0xF9,0x69,0x00,0x00,}}, {0x9D6D,2,{0xF9,0x6A,0x00,0x00,}}, {0x9D6E,2,{0xF9,0x6B,0x00,0x00,}}, {0x9D6F,2,{0xF9,0x6C,0x00,0x00,}}, {0x9D70,2,{0xF9,0x6D,0x00,0x00,}}, {0x9D71,2,{0xF9,0x6E,0x00,0x00,}}, {0x9D72,2,{0xF9,0x6F,0x00,0x00,}}, {0x9D73,2,{0xF9,0x70,0x00,0x00,}}, {0x9D74,2,{0xF9,0x71,0x00,0x00,}}, {0x9D75,2,{0xF9,0x72,0x00,0x00,}}, {0x9D76,2,{0xF9,0x73,0x00,0x00,}}, {0x9D77,2,{0xF9,0x74,0x00,0x00,}}, {0x9D78,2,{0xF9,0x75,0x00,0x00,}}, {0x9D79,2,{0xF9,0x76,0x00,0x00,}}, {0x9D7A,2,{0xF9,0x77,0x00,0x00,}}, {0x9D7B,2,{0xF9,0x78,0x00,0x00,}}, {0x9D7C,2,{0xF9,0x79,0x00,0x00,}}, {0x9D7D,2,{0xF9,0x7A,0x00,0x00,}}, {0x9D7E,2,{0xF9,0x7B,0x00,0x00,}}, {0x9D7F,2,{0xF9,0x7C,0x00,0x00,}}, {0x9D80,2,{0xF9,0x7D,0x00,0x00,}}, {0x9D81,2,{0xF9,0x7E,0x00,0x00,}}, {0x9D82,2,{0xF9,0x80,0x00,0x00,}}, {0x9D83,2,{0xF9,0x81,0x00,0x00,}}, {0x9D84,2,{0xF9,0x82,0x00,0x00,}}, {0x9D85,2,{0xF9,0x83,0x00,0x00,}}, {0x9D86,2,{0xF9,0x84,0x00,0x00,}}, {0x9D87,2,{0xF9,0x85,0x00,0x00,}}, {0x9D88,2,{0xF9,0x86,0x00,0x00,}}, {0x9D89,2,{0xF9,0x87,0x00,0x00,}}, {0x9D8A,2,{0xF9,0x88,0x00,0x00,}}, {0x9D8B,2,{0xF9,0x89,0x00,0x00,}}, {0x9D8C,2,{0xF9,0x8A,0x00,0x00,}}, {0x9D8D,2,{0xF9,0x8B,0x00,0x00,}}, {0x9D8E,2,{0xF9,0x8C,0x00,0x00,}}, {0x9D8F,2,{0xF9,0x8D,0x00,0x00,}}, {0x9D90,2,{0xF9,0x8E,0x00,0x00,}}, {0x9D91,2,{0xF9,0x8F,0x00,0x00,}}, {0x9D92,2,{0xF9,0x90,0x00,0x00,}}, {0x9D93,2,{0xF9,0x91,0x00,0x00,}}, {0x9D94,2,{0xF9,0x92,0x00,0x00,}}, {0x9D95,2,{0xF9,0x93,0x00,0x00,}}, {0x9D96,2,{0xF9,0x94,0x00,0x00,}}, {0x9D97,2,{0xF9,0x95,0x00,0x00,}}, {0x9D98,2,{0xF9,0x96,0x00,0x00,}}, {0x9D99,2,{0xF9,0x97,0x00,0x00,}}, {0x9D9A,2,{0xF9,0x98,0x00,0x00,}}, {0x9D9B,2,{0xF9,0x99,0x00,0x00,}}, {0x9D9C,2,{0xF9,0x9A,0x00,0x00,}}, {0x9D9D,2,{0xF9,0x9B,0x00,0x00,}}, {0x9D9E,2,{0xF9,0x9C,0x00,0x00,}}, {0x9D9F,2,{0xF9,0x9D,0x00,0x00,}}, {0x9DA0,2,{0xF9,0x9E,0x00,0x00,}}, {0x9DA1,2,{0xF9,0x9F,0x00,0x00,}}, {0x9DA2,2,{0xF9,0xA0,0x00,0x00,}}, {0x9DA3,2,{0xFA,0x40,0x00,0x00,}}, {0x9DA4,2,{0xFA,0x41,0x00,0x00,}}, {0x9DA5,2,{0xFA,0x42,0x00,0x00,}}, {0x9DA6,2,{0xFA,0x43,0x00,0x00,}}, {0x9DA7,2,{0xFA,0x44,0x00,0x00,}}, {0x9DA8,2,{0xFA,0x45,0x00,0x00,}}, {0x9DA9,2,{0xFA,0x46,0x00,0x00,}}, {0x9DAA,2,{0xFA,0x47,0x00,0x00,}}, {0x9DAB,2,{0xFA,0x48,0x00,0x00,}}, {0x9DAC,2,{0xFA,0x49,0x00,0x00,}}, {0x9DAD,2,{0xFA,0x4A,0x00,0x00,}}, {0x9DAE,2,{0xFA,0x4B,0x00,0x00,}}, {0x9DAF,2,{0xFA,0x4C,0x00,0x00,}}, {0x9DB0,2,{0xFA,0x4D,0x00,0x00,}}, {0x9DB1,2,{0xFA,0x4E,0x00,0x00,}}, {0x9DB2,2,{0xFA,0x4F,0x00,0x00,}}, {0x9DB3,2,{0xFA,0x50,0x00,0x00,}}, {0x9DB4,2,{0xFA,0x51,0x00,0x00,}}, {0x9DB5,2,{0xFA,0x52,0x00,0x00,}}, {0x9DB6,2,{0xFA,0x53,0x00,0x00,}}, {0x9DB7,2,{0xFA,0x54,0x00,0x00,}}, {0x9DB8,2,{0xFA,0x55,0x00,0x00,}}, {0x9DB9,2,{0xFA,0x56,0x00,0x00,}}, {0x9DBA,2,{0xFA,0x57,0x00,0x00,}}, {0x9DBB,2,{0xFA,0x58,0x00,0x00,}}, {0x9DBC,2,{0xFA,0x59,0x00,0x00,}}, {0x9DBD,2,{0xFA,0x5A,0x00,0x00,}}, {0x9DBE,2,{0xFA,0x5B,0x00,0x00,}}, {0x9DBF,2,{0xFA,0x5C,0x00,0x00,}}, {0x9DC0,2,{0xFA,0x5D,0x00,0x00,}}, {0x9DC1,2,{0xFA,0x5E,0x00,0x00,}}, {0x9DC2,2,{0xFA,0x5F,0x00,0x00,}}, {0x9DC3,2,{0xFA,0x60,0x00,0x00,}}, {0x9DC4,2,{0xFA,0x61,0x00,0x00,}}, {0x9DC5,2,{0xFA,0x62,0x00,0x00,}}, {0x9DC6,2,{0xFA,0x63,0x00,0x00,}}, {0x9DC7,2,{0xFA,0x64,0x00,0x00,}}, {0x9DC8,2,{0xFA,0x65,0x00,0x00,}}, {0x9DC9,2,{0xFA,0x66,0x00,0x00,}}, {0x9DCA,2,{0xFA,0x67,0x00,0x00,}}, {0x9DCB,2,{0xFA,0x68,0x00,0x00,}}, {0x9DCC,2,{0xFA,0x69,0x00,0x00,}}, {0x9DCD,2,{0xFA,0x6A,0x00,0x00,}}, {0x9DCE,2,{0xFA,0x6B,0x00,0x00,}}, {0x9DCF,2,{0xFA,0x6C,0x00,0x00,}}, {0x9DD0,2,{0xFA,0x6D,0x00,0x00,}}, {0x9DD1,2,{0xFA,0x6E,0x00,0x00,}}, {0x9DD2,2,{0xFA,0x6F,0x00,0x00,}}, {0x9DD3,2,{0xFA,0x70,0x00,0x00,}}, {0x9DD4,2,{0xFA,0x71,0x00,0x00,}}, {0x9DD5,2,{0xFA,0x72,0x00,0x00,}}, {0x9DD6,2,{0xFA,0x73,0x00,0x00,}}, {0x9DD7,2,{0xFA,0x74,0x00,0x00,}}, {0x9DD8,2,{0xFA,0x75,0x00,0x00,}}, {0x9DD9,2,{0xFA,0x76,0x00,0x00,}}, {0x9DDA,2,{0xFA,0x77,0x00,0x00,}}, {0x9DDB,2,{0xFA,0x78,0x00,0x00,}}, {0x9DDC,2,{0xFA,0x79,0x00,0x00,}}, {0x9DDD,2,{0xFA,0x7A,0x00,0x00,}}, {0x9DDE,2,{0xFA,0x7B,0x00,0x00,}}, {0x9DDF,2,{0xFA,0x7C,0x00,0x00,}}, {0x9DE0,2,{0xFA,0x7D,0x00,0x00,}}, {0x9DE1,2,{0xFA,0x7E,0x00,0x00,}}, {0x9DE2,2,{0xFA,0x80,0x00,0x00,}}, {0x9DE3,2,{0xFA,0x81,0x00,0x00,}}, {0x9DE4,2,{0xFA,0x82,0x00,0x00,}}, {0x9DE5,2,{0xFA,0x83,0x00,0x00,}}, {0x9DE6,2,{0xFA,0x84,0x00,0x00,}}, {0x9DE7,2,{0xFA,0x85,0x00,0x00,}}, {0x9DE8,2,{0xFA,0x86,0x00,0x00,}}, {0x9DE9,2,{0xFA,0x87,0x00,0x00,}}, {0x9DEA,2,{0xFA,0x88,0x00,0x00,}}, {0x9DEB,2,{0xFA,0x89,0x00,0x00,}}, {0x9DEC,2,{0xFA,0x8A,0x00,0x00,}}, {0x9DED,2,{0xFA,0x8B,0x00,0x00,}}, {0x9DEE,2,{0xFA,0x8C,0x00,0x00,}}, {0x9DEF,2,{0xFA,0x8D,0x00,0x00,}}, {0x9DF0,2,{0xFA,0x8E,0x00,0x00,}}, {0x9DF1,2,{0xFA,0x8F,0x00,0x00,}}, {0x9DF2,2,{0xFA,0x90,0x00,0x00,}}, {0x9DF3,2,{0xFA,0x91,0x00,0x00,}}, {0x9DF4,2,{0xFA,0x92,0x00,0x00,}}, {0x9DF5,2,{0xFA,0x93,0x00,0x00,}}, {0x9DF6,2,{0xFA,0x94,0x00,0x00,}}, {0x9DF7,2,{0xFA,0x95,0x00,0x00,}}, {0x9DF8,2,{0xFA,0x96,0x00,0x00,}}, {0x9DF9,2,{0xFA,0x97,0x00,0x00,}}, {0x9DFA,2,{0xFA,0x98,0x00,0x00,}}, {0x9DFB,2,{0xFA,0x99,0x00,0x00,}}, {0x9DFC,2,{0xFA,0x9A,0x00,0x00,}}, {0x9DFD,2,{0xFA,0x9B,0x00,0x00,}}, {0x9DFE,2,{0xFA,0x9C,0x00,0x00,}}, {0x9DFF,2,{0xFA,0x9D,0x00,0x00,}}, {0x9E00,2,{0xFA,0x9E,0x00,0x00,}}, {0x9E01,2,{0xFA,0x9F,0x00,0x00,}}, {0x9E02,2,{0xFA,0xA0,0x00,0x00,}}, {0x9E03,2,{0xFB,0x40,0x00,0x00,}}, {0x9E04,2,{0xFB,0x41,0x00,0x00,}}, {0x9E05,2,{0xFB,0x42,0x00,0x00,}}, {0x9E06,2,{0xFB,0x43,0x00,0x00,}}, {0x9E07,2,{0xFB,0x44,0x00,0x00,}}, {0x9E08,2,{0xFB,0x45,0x00,0x00,}}, {0x9E09,2,{0xFB,0x46,0x00,0x00,}}, {0x9E0A,2,{0xFB,0x47,0x00,0x00,}}, {0x9E0B,2,{0xFB,0x48,0x00,0x00,}}, {0x9E0C,2,{0xFB,0x49,0x00,0x00,}}, {0x9E0D,2,{0xFB,0x4A,0x00,0x00,}}, {0x9E0E,2,{0xFB,0x4B,0x00,0x00,}}, {0x9E0F,2,{0xFB,0x4C,0x00,0x00,}}, {0x9E10,2,{0xFB,0x4D,0x00,0x00,}}, {0x9E11,2,{0xFB,0x4E,0x00,0x00,}}, {0x9E12,2,{0xFB,0x4F,0x00,0x00,}}, {0x9E13,2,{0xFB,0x50,0x00,0x00,}}, {0x9E14,2,{0xFB,0x51,0x00,0x00,}}, {0x9E15,2,{0xFB,0x52,0x00,0x00,}}, {0x9E16,2,{0xFB,0x53,0x00,0x00,}}, {0x9E17,2,{0xFB,0x54,0x00,0x00,}}, {0x9E18,2,{0xFB,0x55,0x00,0x00,}}, {0x9E19,2,{0xFB,0x56,0x00,0x00,}}, {0x9E1A,2,{0xFB,0x57,0x00,0x00,}}, {0x9E1B,2,{0xFB,0x58,0x00,0x00,}}, {0x9E1C,2,{0xFB,0x59,0x00,0x00,}}, {0x9E1D,2,{0xFB,0x5A,0x00,0x00,}}, {0x9E1E,2,{0xFB,0x5B,0x00,0x00,}}, {0x9E1F,2,{0xC4,0xF1,0x00,0x00,}}, {0x9E20,2,{0xF0,0xAF,0x00,0x00,}}, {0x9E21,2,{0xBC,0xA6,0x00,0x00,}}, {0x9E22,2,{0xF0,0xB0,0x00,0x00,}}, {0x9E23,2,{0xC3,0xF9,0x00,0x00,}}, {0x9E24,2,{0xFB,0x5C,0x00,0x00,}}, {0x9E25,2,{0xC5,0xB8,0x00,0x00,}}, {0x9E26,2,{0xD1,0xBB,0x00,0x00,}}, {0x9E27,2,{0xFB,0x5D,0x00,0x00,}}, {0x9E28,2,{0xF0,0xB1,0x00,0x00,}}, {0x9E29,2,{0xF0,0xB2,0x00,0x00,}}, {0x9E2A,2,{0xF0,0xB3,0x00,0x00,}}, {0x9E2B,2,{0xF0,0xB4,0x00,0x00,}}, {0x9E2C,2,{0xF0,0xB5,0x00,0x00,}}, {0x9E2D,2,{0xD1,0xBC,0x00,0x00,}}, {0x9E2E,2,{0xFB,0x5E,0x00,0x00,}}, {0x9E2F,2,{0xD1,0xEC,0x00,0x00,}}, {0x9E30,2,{0xFB,0x5F,0x00,0x00,}}, {0x9E31,2,{0xF0,0xB7,0x00,0x00,}}, {0x9E32,2,{0xF0,0xB6,0x00,0x00,}}, {0x9E33,2,{0xD4,0xA7,0x00,0x00,}}, {0x9E34,2,{0xFB,0x60,0x00,0x00,}}, {0x9E35,2,{0xCD,0xD2,0x00,0x00,}}, {0x9E36,2,{0xF0,0xB8,0x00,0x00,}}, {0x9E37,2,{0xF0,0xBA,0x00,0x00,}}, {0x9E38,2,{0xF0,0xB9,0x00,0x00,}}, {0x9E39,2,{0xF0,0xBB,0x00,0x00,}}, {0x9E3A,2,{0xF0,0xBC,0x00,0x00,}}, {0x9E3B,2,{0xFB,0x61,0x00,0x00,}}, {0x9E3C,2,{0xFB,0x62,0x00,0x00,}}, {0x9E3D,2,{0xB8,0xEB,0x00,0x00,}}, {0x9E3E,2,{0xF0,0xBD,0x00,0x00,}}, {0x9E3F,2,{0xBA,0xE8,0x00,0x00,}}, {0x9E40,2,{0xFB,0x63,0x00,0x00,}}, {0x9E41,2,{0xF0,0xBE,0x00,0x00,}}, {0x9E42,2,{0xF0,0xBF,0x00,0x00,}}, {0x9E43,2,{0xBE,0xE9,0x00,0x00,}}, {0x9E44,2,{0xF0,0xC0,0x00,0x00,}}, {0x9E45,2,{0xB6,0xEC,0x00,0x00,}}, {0x9E46,2,{0xF0,0xC1,0x00,0x00,}}, {0x9E47,2,{0xF0,0xC2,0x00,0x00,}}, {0x9E48,2,{0xF0,0xC3,0x00,0x00,}}, {0x9E49,2,{0xF0,0xC4,0x00,0x00,}}, {0x9E4A,2,{0xC8,0xB5,0x00,0x00,}}, {0x9E4B,2,{0xF0,0xC5,0x00,0x00,}}, {0x9E4C,2,{0xF0,0xC6,0x00,0x00,}}, {0x9E4D,2,{0xFB,0x64,0x00,0x00,}}, {0x9E4E,2,{0xF0,0xC7,0x00,0x00,}}, {0x9E4F,2,{0xC5,0xF4,0x00,0x00,}}, {0x9E50,2,{0xFB,0x65,0x00,0x00,}}, {0x9E51,2,{0xF0,0xC8,0x00,0x00,}}, {0x9E52,2,{0xFB,0x66,0x00,0x00,}}, {0x9E53,2,{0xFB,0x67,0x00,0x00,}}, {0x9E54,2,{0xFB,0x68,0x00,0x00,}}, {0x9E55,2,{0xF0,0xC9,0x00,0x00,}}, {0x9E56,2,{0xFB,0x69,0x00,0x00,}}, {0x9E57,2,{0xF0,0xCA,0x00,0x00,}}, {0x9E58,2,{0xF7,0xBD,0x00,0x00,}}, {0x9E59,2,{0xFB,0x6A,0x00,0x00,}}, {0x9E5A,2,{0xF0,0xCB,0x00,0x00,}}, {0x9E5B,2,{0xF0,0xCC,0x00,0x00,}}, {0x9E5C,2,{0xF0,0xCD,0x00,0x00,}}, {0x9E5D,2,{0xFB,0x6B,0x00,0x00,}}, {0x9E5E,2,{0xF0,0xCE,0x00,0x00,}}, {0x9E5F,2,{0xFB,0x6C,0x00,0x00,}}, {0x9E60,2,{0xFB,0x6D,0x00,0x00,}}, {0x9E61,2,{0xFB,0x6E,0x00,0x00,}}, {0x9E62,2,{0xFB,0x6F,0x00,0x00,}}, {0x9E63,2,{0xF0,0xCF,0x00,0x00,}}, {0x9E64,2,{0xBA,0xD7,0x00,0x00,}}, {0x9E65,2,{0xFB,0x70,0x00,0x00,}}, {0x9E66,2,{0xF0,0xD0,0x00,0x00,}}, {0x9E67,2,{0xF0,0xD1,0x00,0x00,}}, {0x9E68,2,{0xF0,0xD2,0x00,0x00,}}, {0x9E69,2,{0xF0,0xD3,0x00,0x00,}}, {0x9E6A,2,{0xF0,0xD4,0x00,0x00,}}, {0x9E6B,2,{0xF0,0xD5,0x00,0x00,}}, {0x9E6C,2,{0xF0,0xD6,0x00,0x00,}}, {0x9E6D,2,{0xF0,0xD8,0x00,0x00,}}, {0x9E6E,2,{0xFB,0x71,0x00,0x00,}}, {0x9E6F,2,{0xFB,0x72,0x00,0x00,}}, {0x9E70,2,{0xD3,0xA5,0x00,0x00,}}, {0x9E71,2,{0xF0,0xD7,0x00,0x00,}}, {0x9E72,2,{0xFB,0x73,0x00,0x00,}}, {0x9E73,2,{0xF0,0xD9,0x00,0x00,}}, {0x9E74,2,{0xFB,0x74,0x00,0x00,}}, {0x9E75,2,{0xFB,0x75,0x00,0x00,}}, {0x9E76,2,{0xFB,0x76,0x00,0x00,}}, {0x9E77,2,{0xFB,0x77,0x00,0x00,}}, {0x9E78,2,{0xFB,0x78,0x00,0x00,}}, {0x9E79,2,{0xFB,0x79,0x00,0x00,}}, {0x9E7A,2,{0xFB,0x7A,0x00,0x00,}}, {0x9E7B,2,{0xFB,0x7B,0x00,0x00,}}, {0x9E7C,2,{0xFB,0x7C,0x00,0x00,}}, {0x9E7D,2,{0xFB,0x7D,0x00,0x00,}}, {0x9E7E,2,{0xF5,0xBA,0x00,0x00,}}, {0x9E7F,2,{0xC2,0xB9,0x00,0x00,}}, {0x9E80,2,{0xFB,0x7E,0x00,0x00,}}, {0x9E81,2,{0xFB,0x80,0x00,0x00,}}, {0x9E82,2,{0xF7,0xE4,0x00,0x00,}}, {0x9E83,2,{0xFB,0x81,0x00,0x00,}}, {0x9E84,2,{0xFB,0x82,0x00,0x00,}}, {0x9E85,2,{0xFB,0x83,0x00,0x00,}}, {0x9E86,2,{0xFB,0x84,0x00,0x00,}}, {0x9E87,2,{0xF7,0xE5,0x00,0x00,}}, {0x9E88,2,{0xF7,0xE6,0x00,0x00,}}, {0x9E89,2,{0xFB,0x85,0x00,0x00,}}, {0x9E8A,2,{0xFB,0x86,0x00,0x00,}}, {0x9E8B,2,{0xF7,0xE7,0x00,0x00,}}, {0x9E8C,2,{0xFB,0x87,0x00,0x00,}}, {0x9E8D,2,{0xFB,0x88,0x00,0x00,}}, {0x9E8E,2,{0xFB,0x89,0x00,0x00,}}, {0x9E8F,2,{0xFB,0x8A,0x00,0x00,}}, {0x9E90,2,{0xFB,0x8B,0x00,0x00,}}, {0x9E91,2,{0xFB,0x8C,0x00,0x00,}}, {0x9E92,2,{0xF7,0xE8,0x00,0x00,}}, {0x9E93,2,{0xC2,0xB4,0x00,0x00,}}, {0x9E94,2,{0xFB,0x8D,0x00,0x00,}}, {0x9E95,2,{0xFB,0x8E,0x00,0x00,}}, {0x9E96,2,{0xFB,0x8F,0x00,0x00,}}, {0x9E97,2,{0xFB,0x90,0x00,0x00,}}, {0x9E98,2,{0xFB,0x91,0x00,0x00,}}, {0x9E99,2,{0xFB,0x92,0x00,0x00,}}, {0x9E9A,2,{0xFB,0x93,0x00,0x00,}}, {0x9E9B,2,{0xFB,0x94,0x00,0x00,}}, {0x9E9C,2,{0xFB,0x95,0x00,0x00,}}, {0x9E9D,2,{0xF7,0xEA,0x00,0x00,}}, {0x9E9E,2,{0xFB,0x96,0x00,0x00,}}, {0x9E9F,2,{0xF7,0xEB,0x00,0x00,}}, {0x9EA0,2,{0xFB,0x97,0x00,0x00,}}, {0x9EA1,2,{0xFB,0x98,0x00,0x00,}}, {0x9EA2,2,{0xFB,0x99,0x00,0x00,}}, {0x9EA3,2,{0xFB,0x9A,0x00,0x00,}}, {0x9EA4,2,{0xFB,0x9B,0x00,0x00,}}, {0x9EA5,2,{0xFB,0x9C,0x00,0x00,}}, {0x9EA6,2,{0xC2,0xF3,0x00,0x00,}}, {0x9EA7,2,{0xFB,0x9D,0x00,0x00,}}, {0x9EA8,2,{0xFB,0x9E,0x00,0x00,}}, {0x9EA9,2,{0xFB,0x9F,0x00,0x00,}}, {0x9EAA,2,{0xFB,0xA0,0x00,0x00,}}, {0x9EAB,2,{0xFC,0x40,0x00,0x00,}}, {0x9EAC,2,{0xFC,0x41,0x00,0x00,}}, {0x9EAD,2,{0xFC,0x42,0x00,0x00,}}, {0x9EAE,2,{0xFC,0x43,0x00,0x00,}}, {0x9EAF,2,{0xFC,0x44,0x00,0x00,}}, {0x9EB0,2,{0xFC,0x45,0x00,0x00,}}, {0x9EB1,2,{0xFC,0x46,0x00,0x00,}}, {0x9EB2,2,{0xFC,0x47,0x00,0x00,}}, {0x9EB3,2,{0xFC,0x48,0x00,0x00,}}, {0x9EB4,2,{0xF4,0xF0,0x00,0x00,}}, {0x9EB5,2,{0xFC,0x49,0x00,0x00,}}, {0x9EB6,2,{0xFC,0x4A,0x00,0x00,}}, {0x9EB7,2,{0xFC,0x4B,0x00,0x00,}}, {0x9EB8,2,{0xF4,0xEF,0x00,0x00,}}, {0x9EB9,2,{0xFC,0x4C,0x00,0x00,}}, {0x9EBA,2,{0xFC,0x4D,0x00,0x00,}}, {0x9EBB,2,{0xC2,0xE9,0x00,0x00,}}, {0x9EBC,2,{0xFC,0x4E,0x00,0x00,}}, {0x9EBD,2,{0xF7,0xE1,0x00,0x00,}}, {0x9EBE,2,{0xF7,0xE2,0x00,0x00,}}, {0x9EBF,2,{0xFC,0x4F,0x00,0x00,}}, {0x9EC0,2,{0xFC,0x50,0x00,0x00,}}, {0x9EC1,2,{0xFC,0x51,0x00,0x00,}}, {0x9EC2,2,{0xFC,0x52,0x00,0x00,}}, {0x9EC3,2,{0xFC,0x53,0x00,0x00,}}, {0x9EC4,2,{0xBB,0xC6,0x00,0x00,}}, {0x9EC5,2,{0xFC,0x54,0x00,0x00,}}, {0x9EC6,2,{0xFC,0x55,0x00,0x00,}}, {0x9EC7,2,{0xFC,0x56,0x00,0x00,}}, {0x9EC8,2,{0xFC,0x57,0x00,0x00,}}, {0x9EC9,2,{0xD9,0xE4,0x00,0x00,}}, {0x9ECA,2,{0xFC,0x58,0x00,0x00,}}, {0x9ECB,2,{0xFC,0x59,0x00,0x00,}}, {0x9ECC,2,{0xFC,0x5A,0x00,0x00,}}, {0x9ECD,2,{0xCA,0xF2,0x00,0x00,}}, {0x9ECE,2,{0xC0,0xE8,0x00,0x00,}}, {0x9ECF,2,{0xF0,0xA4,0x00,0x00,}}, {0x9ED0,2,{0xFC,0x5B,0x00,0x00,}}, {0x9ED1,2,{0xBA,0xDA,0x00,0x00,}}, {0x9ED2,2,{0xFC,0x5C,0x00,0x00,}}, {0x9ED3,2,{0xFC,0x5D,0x00,0x00,}}, {0x9ED4,2,{0xC7,0xAD,0x00,0x00,}}, {0x9ED5,2,{0xFC,0x5E,0x00,0x00,}}, {0x9ED6,2,{0xFC,0x5F,0x00,0x00,}}, {0x9ED7,2,{0xFC,0x60,0x00,0x00,}}, {0x9ED8,2,{0xC4,0xAC,0x00,0x00,}}, {0x9ED9,2,{0xFC,0x61,0x00,0x00,}}, {0x9EDA,2,{0xFC,0x62,0x00,0x00,}}, {0x9EDB,2,{0xF7,0xEC,0x00,0x00,}}, {0x9EDC,2,{0xF7,0xED,0x00,0x00,}}, {0x9EDD,2,{0xF7,0xEE,0x00,0x00,}}, {0x9EDE,2,{0xFC,0x63,0x00,0x00,}}, {0x9EDF,2,{0xF7,0xF0,0x00,0x00,}}, {0x9EE0,2,{0xF7,0xEF,0x00,0x00,}}, {0x9EE1,2,{0xFC,0x64,0x00,0x00,}}, {0x9EE2,2,{0xF7,0xF1,0x00,0x00,}}, {0x9EE3,2,{0xFC,0x65,0x00,0x00,}}, {0x9EE4,2,{0xFC,0x66,0x00,0x00,}}, {0x9EE5,2,{0xF7,0xF4,0x00,0x00,}}, {0x9EE6,2,{0xFC,0x67,0x00,0x00,}}, {0x9EE7,2,{0xF7,0xF3,0x00,0x00,}}, {0x9EE8,2,{0xFC,0x68,0x00,0x00,}}, {0x9EE9,2,{0xF7,0xF2,0x00,0x00,}}, {0x9EEA,2,{0xF7,0xF5,0x00,0x00,}}, {0x9EEB,2,{0xFC,0x69,0x00,0x00,}}, {0x9EEC,2,{0xFC,0x6A,0x00,0x00,}}, {0x9EED,2,{0xFC,0x6B,0x00,0x00,}}, {0x9EEE,2,{0xFC,0x6C,0x00,0x00,}}, {0x9EEF,2,{0xF7,0xF6,0x00,0x00,}}, {0x9EF0,2,{0xFC,0x6D,0x00,0x00,}}, {0x9EF1,2,{0xFC,0x6E,0x00,0x00,}}, {0x9EF2,2,{0xFC,0x6F,0x00,0x00,}}, {0x9EF3,2,{0xFC,0x70,0x00,0x00,}}, {0x9EF4,2,{0xFC,0x71,0x00,0x00,}}, {0x9EF5,2,{0xFC,0x72,0x00,0x00,}}, {0x9EF6,2,{0xFC,0x73,0x00,0x00,}}, {0x9EF7,2,{0xFC,0x74,0x00,0x00,}}, {0x9EF8,2,{0xFC,0x75,0x00,0x00,}}, {0x9EF9,2,{0xED,0xE9,0x00,0x00,}}, {0x9EFA,2,{0xFC,0x76,0x00,0x00,}}, {0x9EFB,2,{0xED,0xEA,0x00,0x00,}}, {0x9EFC,2,{0xED,0xEB,0x00,0x00,}}, {0x9EFD,2,{0xFC,0x77,0x00,0x00,}}, {0x9EFE,2,{0xF6,0xBC,0x00,0x00,}}, {0x9EFF,2,{0xFC,0x78,0x00,0x00,}}, {0x9F00,2,{0xFC,0x79,0x00,0x00,}}, {0x9F01,2,{0xFC,0x7A,0x00,0x00,}}, {0x9F02,2,{0xFC,0x7B,0x00,0x00,}}, {0x9F03,2,{0xFC,0x7C,0x00,0x00,}}, {0x9F04,2,{0xFC,0x7D,0x00,0x00,}}, {0x9F05,2,{0xFC,0x7E,0x00,0x00,}}, {0x9F06,2,{0xFC,0x80,0x00,0x00,}}, {0x9F07,2,{0xFC,0x81,0x00,0x00,}}, {0x9F08,2,{0xFC,0x82,0x00,0x00,}}, {0x9F09,2,{0xFC,0x83,0x00,0x00,}}, {0x9F0A,2,{0xFC,0x84,0x00,0x00,}}, {0x9F0B,2,{0xF6,0xBD,0x00,0x00,}}, {0x9F0C,2,{0xFC,0x85,0x00,0x00,}}, {0x9F0D,2,{0xF6,0xBE,0x00,0x00,}}, {0x9F0E,2,{0xB6,0xA6,0x00,0x00,}}, {0x9F0F,2,{0xFC,0x86,0x00,0x00,}}, {0x9F10,2,{0xD8,0xBE,0x00,0x00,}}, {0x9F11,2,{0xFC,0x87,0x00,0x00,}}, {0x9F12,2,{0xFC,0x88,0x00,0x00,}}, {0x9F13,2,{0xB9,0xC4,0x00,0x00,}}, {0x9F14,2,{0xFC,0x89,0x00,0x00,}}, {0x9F15,2,{0xFC,0x8A,0x00,0x00,}}, {0x9F16,2,{0xFC,0x8B,0x00,0x00,}}, {0x9F17,2,{0xD8,0xBB,0x00,0x00,}}, {0x9F18,2,{0xFC,0x8C,0x00,0x00,}}, {0x9F19,2,{0xDC,0xB1,0x00,0x00,}}, {0x9F1A,2,{0xFC,0x8D,0x00,0x00,}}, {0x9F1B,2,{0xFC,0x8E,0x00,0x00,}}, {0x9F1C,2,{0xFC,0x8F,0x00,0x00,}}, {0x9F1D,2,{0xFC,0x90,0x00,0x00,}}, {0x9F1E,2,{0xFC,0x91,0x00,0x00,}}, {0x9F1F,2,{0xFC,0x92,0x00,0x00,}}, {0x9F20,2,{0xCA,0xF3,0x00,0x00,}}, {0x9F21,2,{0xFC,0x93,0x00,0x00,}}, {0x9F22,2,{0xF7,0xF7,0x00,0x00,}}, {0x9F23,2,{0xFC,0x94,0x00,0x00,}}, {0x9F24,2,{0xFC,0x95,0x00,0x00,}}, {0x9F25,2,{0xFC,0x96,0x00,0x00,}}, {0x9F26,2,{0xFC,0x97,0x00,0x00,}}, {0x9F27,2,{0xFC,0x98,0x00,0x00,}}, {0x9F28,2,{0xFC,0x99,0x00,0x00,}}, {0x9F29,2,{0xFC,0x9A,0x00,0x00,}}, {0x9F2A,2,{0xFC,0x9B,0x00,0x00,}}, {0x9F2B,2,{0xFC,0x9C,0x00,0x00,}}, {0x9F2C,2,{0xF7,0xF8,0x00,0x00,}}, {0x9F2D,2,{0xFC,0x9D,0x00,0x00,}}, {0x9F2E,2,{0xFC,0x9E,0x00,0x00,}}, {0x9F2F,2,{0xF7,0xF9,0x00,0x00,}}, {0x9F30,2,{0xFC,0x9F,0x00,0x00,}}, {0x9F31,2,{0xFC,0xA0,0x00,0x00,}}, {0x9F32,2,{0xFD,0x40,0x00,0x00,}}, {0x9F33,2,{0xFD,0x41,0x00,0x00,}}, {0x9F34,2,{0xFD,0x42,0x00,0x00,}}, {0x9F35,2,{0xFD,0x43,0x00,0x00,}}, {0x9F36,2,{0xFD,0x44,0x00,0x00,}}, {0x9F37,2,{0xF7,0xFB,0x00,0x00,}}, {0x9F38,2,{0xFD,0x45,0x00,0x00,}}, {0x9F39,2,{0xF7,0xFA,0x00,0x00,}}, {0x9F3A,2,{0xFD,0x46,0x00,0x00,}}, {0x9F3B,2,{0xB1,0xC7,0x00,0x00,}}, {0x9F3C,2,{0xFD,0x47,0x00,0x00,}}, {0x9F3D,2,{0xF7,0xFC,0x00,0x00,}}, {0x9F3E,2,{0xF7,0xFD,0x00,0x00,}}, {0x9F3F,2,{0xFD,0x48,0x00,0x00,}}, {0x9F40,2,{0xFD,0x49,0x00,0x00,}}, {0x9F41,2,{0xFD,0x4A,0x00,0x00,}}, {0x9F42,2,{0xFD,0x4B,0x00,0x00,}}, {0x9F43,2,{0xFD,0x4C,0x00,0x00,}}, {0x9F44,2,{0xF7,0xFE,0x00,0x00,}}, {0x9F45,2,{0xFD,0x4D,0x00,0x00,}}, {0x9F46,2,{0xFD,0x4E,0x00,0x00,}}, {0x9F47,2,{0xFD,0x4F,0x00,0x00,}}, {0x9F48,2,{0xFD,0x50,0x00,0x00,}}, {0x9F49,2,{0xFD,0x51,0x00,0x00,}}, {0x9F4A,2,{0xFD,0x52,0x00,0x00,}}, {0x9F4B,2,{0xFD,0x53,0x00,0x00,}}, {0x9F4C,2,{0xFD,0x54,0x00,0x00,}}, {0x9F4D,2,{0xFD,0x55,0x00,0x00,}}, {0x9F4E,2,{0xFD,0x56,0x00,0x00,}}, {0x9F4F,2,{0xFD,0x57,0x00,0x00,}}, {0x9F50,2,{0xC6,0xEB,0x00,0x00,}}, {0x9F51,2,{0xEC,0xB4,0x00,0x00,}}, {0x9F52,2,{0xFD,0x58,0x00,0x00,}}, {0x9F53,2,{0xFD,0x59,0x00,0x00,}}, {0x9F54,2,{0xFD,0x5A,0x00,0x00,}}, {0x9F55,2,{0xFD,0x5B,0x00,0x00,}}, {0x9F56,2,{0xFD,0x5C,0x00,0x00,}}, {0x9F57,2,{0xFD,0x5D,0x00,0x00,}}, {0x9F58,2,{0xFD,0x5E,0x00,0x00,}}, {0x9F59,2,{0xFD,0x5F,0x00,0x00,}}, {0x9F5A,2,{0xFD,0x60,0x00,0x00,}}, {0x9F5B,2,{0xFD,0x61,0x00,0x00,}}, {0x9F5C,2,{0xFD,0x62,0x00,0x00,}}, {0x9F5D,2,{0xFD,0x63,0x00,0x00,}}, {0x9F5E,2,{0xFD,0x64,0x00,0x00,}}, {0x9F5F,2,{0xFD,0x65,0x00,0x00,}}, {0x9F60,2,{0xFD,0x66,0x00,0x00,}}, {0x9F61,2,{0xFD,0x67,0x00,0x00,}}, {0x9F62,2,{0xFD,0x68,0x00,0x00,}}, {0x9F63,2,{0xFD,0x69,0x00,0x00,}}, {0x9F64,2,{0xFD,0x6A,0x00,0x00,}}, {0x9F65,2,{0xFD,0x6B,0x00,0x00,}}, {0x9F66,2,{0xFD,0x6C,0x00,0x00,}}, {0x9F67,2,{0xFD,0x6D,0x00,0x00,}}, {0x9F68,2,{0xFD,0x6E,0x00,0x00,}}, {0x9F69,2,{0xFD,0x6F,0x00,0x00,}}, {0x9F6A,2,{0xFD,0x70,0x00,0x00,}}, {0x9F6B,2,{0xFD,0x71,0x00,0x00,}}, {0x9F6C,2,{0xFD,0x72,0x00,0x00,}}, {0x9F6D,2,{0xFD,0x73,0x00,0x00,}}, {0x9F6E,2,{0xFD,0x74,0x00,0x00,}}, {0x9F6F,2,{0xFD,0x75,0x00,0x00,}}, {0x9F70,2,{0xFD,0x76,0x00,0x00,}}, {0x9F71,2,{0xFD,0x77,0x00,0x00,}}, {0x9F72,2,{0xFD,0x78,0x00,0x00,}}, {0x9F73,2,{0xFD,0x79,0x00,0x00,}}, {0x9F74,2,{0xFD,0x7A,0x00,0x00,}}, {0x9F75,2,{0xFD,0x7B,0x00,0x00,}}, {0x9F76,2,{0xFD,0x7C,0x00,0x00,}}, {0x9F77,2,{0xFD,0x7D,0x00,0x00,}}, {0x9F78,2,{0xFD,0x7E,0x00,0x00,}}, {0x9F79,2,{0xFD,0x80,0x00,0x00,}}, {0x9F7A,2,{0xFD,0x81,0x00,0x00,}}, {0x9F7B,2,{0xFD,0x82,0x00,0x00,}}, {0x9F7C,2,{0xFD,0x83,0x00,0x00,}}, {0x9F7D,2,{0xFD,0x84,0x00,0x00,}}, {0x9F7E,2,{0xFD,0x85,0x00,0x00,}}, {0x9F7F,2,{0xB3,0xDD,0x00,0x00,}}, {0x9F80,2,{0xF6,0xB3,0x00,0x00,}}, {0x9F81,2,{0xFD,0x86,0x00,0x00,}}, {0x9F82,2,{0xFD,0x87,0x00,0x00,}}, {0x9F83,2,{0xF6,0xB4,0x00,0x00,}}, {0x9F84,2,{0xC1,0xE4,0x00,0x00,}}, {0x9F85,2,{0xF6,0xB5,0x00,0x00,}}, {0x9F86,2,{0xF6,0xB6,0x00,0x00,}}, {0x9F87,2,{0xF6,0xB7,0x00,0x00,}}, {0x9F88,2,{0xF6,0xB8,0x00,0x00,}}, {0x9F89,2,{0xF6,0xB9,0x00,0x00,}}, {0x9F8A,2,{0xF6,0xBA,0x00,0x00,}}, {0x9F8B,2,{0xC8,0xA3,0x00,0x00,}}, {0x9F8C,2,{0xF6,0xBB,0x00,0x00,}}, {0x9F8D,2,{0xFD,0x88,0x00,0x00,}}, {0x9F8E,2,{0xFD,0x89,0x00,0x00,}}, {0x9F8F,2,{0xFD,0x8A,0x00,0x00,}}, {0x9F90,2,{0xFD,0x8B,0x00,0x00,}}, {0x9F91,2,{0xFD,0x8C,0x00,0x00,}}, {0x9F92,2,{0xFD,0x8D,0x00,0x00,}}, {0x9F93,2,{0xFD,0x8E,0x00,0x00,}}, {0x9F94,2,{0xFD,0x8F,0x00,0x00,}}, {0x9F95,2,{0xFD,0x90,0x00,0x00,}}, {0x9F96,2,{0xFD,0x91,0x00,0x00,}}, {0x9F97,2,{0xFD,0x92,0x00,0x00,}}, {0x9F98,2,{0xFD,0x93,0x00,0x00,}}, {0x9F99,2,{0xC1,0xFA,0x00,0x00,}}, {0x9F9A,2,{0xB9,0xA8,0x00,0x00,}}, {0x9F9B,2,{0xED,0xE8,0x00,0x00,}}, {0x9F9C,2,{0xFD,0x94,0x00,0x00,}}, {0x9F9D,2,{0xFD,0x95,0x00,0x00,}}, {0x9F9E,2,{0xFD,0x96,0x00,0x00,}}, {0x9F9F,2,{0xB9,0xEA,0x00,0x00,}}, {0x9FA0,2,{0xD9,0xDF,0x00,0x00,}}, {0x9FA1,2,{0xFD,0x97,0x00,0x00,}}, {0x9FA2,2,{0xFD,0x98,0x00,0x00,}}, {0x9FA3,2,{0xFD,0x99,0x00,0x00,}}, {0x9FA4,2,{0xFD,0x9A,0x00,0x00,}}, {0x9FA5,2,{0xFD,0x9B,0x00,0x00,}}, {0xE000,2,{0xAA,0xA1,0x00,0x00,}}, {0xE001,2,{0xAA,0xA2,0x00,0x00,}}, {0xE002,2,{0xAA,0xA3,0x00,0x00,}}, {0xE003,2,{0xAA,0xA4,0x00,0x00,}}, {0xE004,2,{0xAA,0xA5,0x00,0x00,}}, {0xE005,2,{0xAA,0xA6,0x00,0x00,}}, {0xE006,2,{0xAA,0xA7,0x00,0x00,}}, {0xE007,2,{0xAA,0xA8,0x00,0x00,}}, {0xE008,2,{0xAA,0xA9,0x00,0x00,}}, {0xE009,2,{0xAA,0xAA,0x00,0x00,}}, {0xE00A,2,{0xAA,0xAB,0x00,0x00,}}, {0xE00B,2,{0xAA,0xAC,0x00,0x00,}}, {0xE00C,2,{0xAA,0xAD,0x00,0x00,}}, {0xE00D,2,{0xAA,0xAE,0x00,0x00,}}, {0xE00E,2,{0xAA,0xAF,0x00,0x00,}}, {0xE00F,2,{0xAA,0xB0,0x00,0x00,}}, {0xE010,2,{0xAA,0xB1,0x00,0x00,}}, {0xE011,2,{0xAA,0xB2,0x00,0x00,}}, {0xE012,2,{0xAA,0xB3,0x00,0x00,}}, {0xE013,2,{0xAA,0xB4,0x00,0x00,}}, {0xE014,2,{0xAA,0xB5,0x00,0x00,}}, {0xE015,2,{0xAA,0xB6,0x00,0x00,}}, {0xE016,2,{0xAA,0xB7,0x00,0x00,}}, {0xE017,2,{0xAA,0xB8,0x00,0x00,}}, {0xE018,2,{0xAA,0xB9,0x00,0x00,}}, {0xE019,2,{0xAA,0xBA,0x00,0x00,}}, {0xE01A,2,{0xAA,0xBB,0x00,0x00,}}, {0xE01B,2,{0xAA,0xBC,0x00,0x00,}}, {0xE01C,2,{0xAA,0xBD,0x00,0x00,}}, {0xE01D,2,{0xAA,0xBE,0x00,0x00,}}, {0xE01E,2,{0xAA,0xBF,0x00,0x00,}}, {0xE01F,2,{0xAA,0xC0,0x00,0x00,}}, {0xE020,2,{0xAA,0xC1,0x00,0x00,}}, {0xE021,2,{0xAA,0xC2,0x00,0x00,}}, {0xE022,2,{0xAA,0xC3,0x00,0x00,}}, {0xE023,2,{0xAA,0xC4,0x00,0x00,}}, {0xE024,2,{0xAA,0xC5,0x00,0x00,}}, {0xE025,2,{0xAA,0xC6,0x00,0x00,}}, {0xE026,2,{0xAA,0xC7,0x00,0x00,}}, {0xE027,2,{0xAA,0xC8,0x00,0x00,}}, {0xE028,2,{0xAA,0xC9,0x00,0x00,}}, {0xE029,2,{0xAA,0xCA,0x00,0x00,}}, {0xE02A,2,{0xAA,0xCB,0x00,0x00,}}, {0xE02B,2,{0xAA,0xCC,0x00,0x00,}}, {0xE02C,2,{0xAA,0xCD,0x00,0x00,}}, {0xE02D,2,{0xAA,0xCE,0x00,0x00,}}, {0xE02E,2,{0xAA,0xCF,0x00,0x00,}}, {0xE02F,2,{0xAA,0xD0,0x00,0x00,}}, {0xE030,2,{0xAA,0xD1,0x00,0x00,}}, {0xE031,2,{0xAA,0xD2,0x00,0x00,}}, {0xE032,2,{0xAA,0xD3,0x00,0x00,}}, {0xE033,2,{0xAA,0xD4,0x00,0x00,}}, {0xE034,2,{0xAA,0xD5,0x00,0x00,}}, {0xE035,2,{0xAA,0xD6,0x00,0x00,}}, {0xE036,2,{0xAA,0xD7,0x00,0x00,}}, {0xE037,2,{0xAA,0xD8,0x00,0x00,}}, {0xE038,2,{0xAA,0xD9,0x00,0x00,}}, {0xE039,2,{0xAA,0xDA,0x00,0x00,}}, {0xE03A,2,{0xAA,0xDB,0x00,0x00,}}, {0xE03B,2,{0xAA,0xDC,0x00,0x00,}}, {0xE03C,2,{0xAA,0xDD,0x00,0x00,}}, {0xE03D,2,{0xAA,0xDE,0x00,0x00,}}, {0xE03E,2,{0xAA,0xDF,0x00,0x00,}}, {0xE03F,2,{0xAA,0xE0,0x00,0x00,}}, {0xE040,2,{0xAA,0xE1,0x00,0x00,}}, {0xE041,2,{0xAA,0xE2,0x00,0x00,}}, {0xE042,2,{0xAA,0xE3,0x00,0x00,}}, {0xE043,2,{0xAA,0xE4,0x00,0x00,}}, {0xE044,2,{0xAA,0xE5,0x00,0x00,}}, {0xE045,2,{0xAA,0xE6,0x00,0x00,}}, {0xE046,2,{0xAA,0xE7,0x00,0x00,}}, {0xE047,2,{0xAA,0xE8,0x00,0x00,}}, {0xE048,2,{0xAA,0xE9,0x00,0x00,}}, {0xE049,2,{0xAA,0xEA,0x00,0x00,}}, {0xE04A,2,{0xAA,0xEB,0x00,0x00,}}, {0xE04B,2,{0xAA,0xEC,0x00,0x00,}}, {0xE04C,2,{0xAA,0xED,0x00,0x00,}}, {0xE04D,2,{0xAA,0xEE,0x00,0x00,}}, {0xE04E,2,{0xAA,0xEF,0x00,0x00,}}, {0xE04F,2,{0xAA,0xF0,0x00,0x00,}}, {0xE050,2,{0xAA,0xF1,0x00,0x00,}}, {0xE051,2,{0xAA,0xF2,0x00,0x00,}}, {0xE052,2,{0xAA,0xF3,0x00,0x00,}}, {0xE053,2,{0xAA,0xF4,0x00,0x00,}}, {0xE054,2,{0xAA,0xF5,0x00,0x00,}}, {0xE055,2,{0xAA,0xF6,0x00,0x00,}}, {0xE056,2,{0xAA,0xF7,0x00,0x00,}}, {0xE057,2,{0xAA,0xF8,0x00,0x00,}}, {0xE058,2,{0xAA,0xF9,0x00,0x00,}}, {0xE059,2,{0xAA,0xFA,0x00,0x00,}}, {0xE05A,2,{0xAA,0xFB,0x00,0x00,}}, {0xE05B,2,{0xAA,0xFC,0x00,0x00,}}, {0xE05C,2,{0xAA,0xFD,0x00,0x00,}}, {0xE05D,2,{0xAA,0xFE,0x00,0x00,}}, {0xE05E,2,{0xAB,0xA1,0x00,0x00,}}, {0xE05F,2,{0xAB,0xA2,0x00,0x00,}}, {0xE060,2,{0xAB,0xA3,0x00,0x00,}}, {0xE061,2,{0xAB,0xA4,0x00,0x00,}}, {0xE062,2,{0xAB,0xA5,0x00,0x00,}}, {0xE063,2,{0xAB,0xA6,0x00,0x00,}}, {0xE064,2,{0xAB,0xA7,0x00,0x00,}}, {0xE065,2,{0xAB,0xA8,0x00,0x00,}}, {0xE066,2,{0xAB,0xA9,0x00,0x00,}}, {0xE067,2,{0xAB,0xAA,0x00,0x00,}}, {0xE068,2,{0xAB,0xAB,0x00,0x00,}}, {0xE069,2,{0xAB,0xAC,0x00,0x00,}}, {0xE06A,2,{0xAB,0xAD,0x00,0x00,}}, {0xE06B,2,{0xAB,0xAE,0x00,0x00,}}, {0xE06C,2,{0xAB,0xAF,0x00,0x00,}}, {0xE06D,2,{0xAB,0xB0,0x00,0x00,}}, {0xE06E,2,{0xAB,0xB1,0x00,0x00,}}, {0xE06F,2,{0xAB,0xB2,0x00,0x00,}}, {0xE070,2,{0xAB,0xB3,0x00,0x00,}}, {0xE071,2,{0xAB,0xB4,0x00,0x00,}}, {0xE072,2,{0xAB,0xB5,0x00,0x00,}}, {0xE073,2,{0xAB,0xB6,0x00,0x00,}}, {0xE074,2,{0xAB,0xB7,0x00,0x00,}}, {0xE075,2,{0xAB,0xB8,0x00,0x00,}}, {0xE076,2,{0xAB,0xB9,0x00,0x00,}}, {0xE077,2,{0xAB,0xBA,0x00,0x00,}}, {0xE078,2,{0xAB,0xBB,0x00,0x00,}}, {0xE079,2,{0xAB,0xBC,0x00,0x00,}}, {0xE07A,2,{0xAB,0xBD,0x00,0x00,}}, {0xE07B,2,{0xAB,0xBE,0x00,0x00,}}, {0xE07C,2,{0xAB,0xBF,0x00,0x00,}}, {0xE07D,2,{0xAB,0xC0,0x00,0x00,}}, {0xE07E,2,{0xAB,0xC1,0x00,0x00,}}, {0xE07F,2,{0xAB,0xC2,0x00,0x00,}}, {0xE080,2,{0xAB,0xC3,0x00,0x00,}}, {0xE081,2,{0xAB,0xC4,0x00,0x00,}}, {0xE082,2,{0xAB,0xC5,0x00,0x00,}}, {0xE083,2,{0xAB,0xC6,0x00,0x00,}}, {0xE084,2,{0xAB,0xC7,0x00,0x00,}}, {0xE085,2,{0xAB,0xC8,0x00,0x00,}}, {0xE086,2,{0xAB,0xC9,0x00,0x00,}}, {0xE087,2,{0xAB,0xCA,0x00,0x00,}}, {0xE088,2,{0xAB,0xCB,0x00,0x00,}}, {0xE089,2,{0xAB,0xCC,0x00,0x00,}}, {0xE08A,2,{0xAB,0xCD,0x00,0x00,}}, {0xE08B,2,{0xAB,0xCE,0x00,0x00,}}, {0xE08C,2,{0xAB,0xCF,0x00,0x00,}}, {0xE08D,2,{0xAB,0xD0,0x00,0x00,}}, {0xE08E,2,{0xAB,0xD1,0x00,0x00,}}, {0xE08F,2,{0xAB,0xD2,0x00,0x00,}}, {0xE090,2,{0xAB,0xD3,0x00,0x00,}}, {0xE091,2,{0xAB,0xD4,0x00,0x00,}}, {0xE092,2,{0xAB,0xD5,0x00,0x00,}}, {0xE093,2,{0xAB,0xD6,0x00,0x00,}}, {0xE094,2,{0xAB,0xD7,0x00,0x00,}}, {0xE095,2,{0xAB,0xD8,0x00,0x00,}}, {0xE096,2,{0xAB,0xD9,0x00,0x00,}}, {0xE097,2,{0xAB,0xDA,0x00,0x00,}}, {0xE098,2,{0xAB,0xDB,0x00,0x00,}}, {0xE099,2,{0xAB,0xDC,0x00,0x00,}}, {0xE09A,2,{0xAB,0xDD,0x00,0x00,}}, {0xE09B,2,{0xAB,0xDE,0x00,0x00,}}, {0xE09C,2,{0xAB,0xDF,0x00,0x00,}}, {0xE09D,2,{0xAB,0xE0,0x00,0x00,}}, {0xE09E,2,{0xAB,0xE1,0x00,0x00,}}, {0xE09F,2,{0xAB,0xE2,0x00,0x00,}}, {0xE0A0,2,{0xAB,0xE3,0x00,0x00,}}, {0xE0A1,2,{0xAB,0xE4,0x00,0x00,}}, {0xE0A2,2,{0xAB,0xE5,0x00,0x00,}}, {0xE0A3,2,{0xAB,0xE6,0x00,0x00,}}, {0xE0A4,2,{0xAB,0xE7,0x00,0x00,}}, {0xE0A5,2,{0xAB,0xE8,0x00,0x00,}}, {0xE0A6,2,{0xAB,0xE9,0x00,0x00,}}, {0xE0A7,2,{0xAB,0xEA,0x00,0x00,}}, {0xE0A8,2,{0xAB,0xEB,0x00,0x00,}}, {0xE0A9,2,{0xAB,0xEC,0x00,0x00,}}, {0xE0AA,2,{0xAB,0xED,0x00,0x00,}}, {0xE0AB,2,{0xAB,0xEE,0x00,0x00,}}, {0xE0AC,2,{0xAB,0xEF,0x00,0x00,}}, {0xE0AD,2,{0xAB,0xF0,0x00,0x00,}}, {0xE0AE,2,{0xAB,0xF1,0x00,0x00,}}, {0xE0AF,2,{0xAB,0xF2,0x00,0x00,}}, {0xE0B0,2,{0xAB,0xF3,0x00,0x00,}}, {0xE0B1,2,{0xAB,0xF4,0x00,0x00,}}, {0xE0B2,2,{0xAB,0xF5,0x00,0x00,}}, {0xE0B3,2,{0xAB,0xF6,0x00,0x00,}}, {0xE0B4,2,{0xAB,0xF7,0x00,0x00,}}, {0xE0B5,2,{0xAB,0xF8,0x00,0x00,}}, {0xE0B6,2,{0xAB,0xF9,0x00,0x00,}}, {0xE0B7,2,{0xAB,0xFA,0x00,0x00,}}, {0xE0B8,2,{0xAB,0xFB,0x00,0x00,}}, {0xE0B9,2,{0xAB,0xFC,0x00,0x00,}}, {0xE0BA,2,{0xAB,0xFD,0x00,0x00,}}, {0xE0BB,2,{0xAB,0xFE,0x00,0x00,}}, {0xE0BC,2,{0xAC,0xA1,0x00,0x00,}}, {0xE0BD,2,{0xAC,0xA2,0x00,0x00,}}, {0xE0BE,2,{0xAC,0xA3,0x00,0x00,}}, {0xE0BF,2,{0xAC,0xA4,0x00,0x00,}}, {0xE0C0,2,{0xAC,0xA5,0x00,0x00,}}, {0xE0C1,2,{0xAC,0xA6,0x00,0x00,}}, {0xE0C2,2,{0xAC,0xA7,0x00,0x00,}}, {0xE0C3,2,{0xAC,0xA8,0x00,0x00,}}, {0xE0C4,2,{0xAC,0xA9,0x00,0x00,}}, {0xE0C5,2,{0xAC,0xAA,0x00,0x00,}}, {0xE0C6,2,{0xAC,0xAB,0x00,0x00,}}, {0xE0C7,2,{0xAC,0xAC,0x00,0x00,}}, {0xE0C8,2,{0xAC,0xAD,0x00,0x00,}}, {0xE0C9,2,{0xAC,0xAE,0x00,0x00,}}, {0xE0CA,2,{0xAC,0xAF,0x00,0x00,}}, {0xE0CB,2,{0xAC,0xB0,0x00,0x00,}}, {0xE0CC,2,{0xAC,0xB1,0x00,0x00,}}, {0xE0CD,2,{0xAC,0xB2,0x00,0x00,}}, {0xE0CE,2,{0xAC,0xB3,0x00,0x00,}}, {0xE0CF,2,{0xAC,0xB4,0x00,0x00,}}, {0xE0D0,2,{0xAC,0xB5,0x00,0x00,}}, {0xE0D1,2,{0xAC,0xB6,0x00,0x00,}}, {0xE0D2,2,{0xAC,0xB7,0x00,0x00,}}, {0xE0D3,2,{0xAC,0xB8,0x00,0x00,}}, {0xE0D4,2,{0xAC,0xB9,0x00,0x00,}}, {0xE0D5,2,{0xAC,0xBA,0x00,0x00,}}, {0xE0D6,2,{0xAC,0xBB,0x00,0x00,}}, {0xE0D7,2,{0xAC,0xBC,0x00,0x00,}}, {0xE0D8,2,{0xAC,0xBD,0x00,0x00,}}, {0xE0D9,2,{0xAC,0xBE,0x00,0x00,}}, {0xE0DA,2,{0xAC,0xBF,0x00,0x00,}}, {0xE0DB,2,{0xAC,0xC0,0x00,0x00,}}, {0xE0DC,2,{0xAC,0xC1,0x00,0x00,}}, {0xE0DD,2,{0xAC,0xC2,0x00,0x00,}}, {0xE0DE,2,{0xAC,0xC3,0x00,0x00,}}, {0xE0DF,2,{0xAC,0xC4,0x00,0x00,}}, {0xE0E0,2,{0xAC,0xC5,0x00,0x00,}}, {0xE0E1,2,{0xAC,0xC6,0x00,0x00,}}, {0xE0E2,2,{0xAC,0xC7,0x00,0x00,}}, {0xE0E3,2,{0xAC,0xC8,0x00,0x00,}}, {0xE0E4,2,{0xAC,0xC9,0x00,0x00,}}, {0xE0E5,2,{0xAC,0xCA,0x00,0x00,}}, {0xE0E6,2,{0xAC,0xCB,0x00,0x00,}}, {0xE0E7,2,{0xAC,0xCC,0x00,0x00,}}, {0xE0E8,2,{0xAC,0xCD,0x00,0x00,}}, {0xE0E9,2,{0xAC,0xCE,0x00,0x00,}}, {0xE0EA,2,{0xAC,0xCF,0x00,0x00,}}, {0xE0EB,2,{0xAC,0xD0,0x00,0x00,}}, {0xE0EC,2,{0xAC,0xD1,0x00,0x00,}}, {0xE0ED,2,{0xAC,0xD2,0x00,0x00,}}, {0xE0EE,2,{0xAC,0xD3,0x00,0x00,}}, {0xE0EF,2,{0xAC,0xD4,0x00,0x00,}}, {0xE0F0,2,{0xAC,0xD5,0x00,0x00,}}, {0xE0F1,2,{0xAC,0xD6,0x00,0x00,}}, {0xE0F2,2,{0xAC,0xD7,0x00,0x00,}}, {0xE0F3,2,{0xAC,0xD8,0x00,0x00,}}, {0xE0F4,2,{0xAC,0xD9,0x00,0x00,}}, {0xE0F5,2,{0xAC,0xDA,0x00,0x00,}}, {0xE0F6,2,{0xAC,0xDB,0x00,0x00,}}, {0xE0F7,2,{0xAC,0xDC,0x00,0x00,}}, {0xE0F8,2,{0xAC,0xDD,0x00,0x00,}}, {0xE0F9,2,{0xAC,0xDE,0x00,0x00,}}, {0xE0FA,2,{0xAC,0xDF,0x00,0x00,}}, {0xE0FB,2,{0xAC,0xE0,0x00,0x00,}}, {0xE0FC,2,{0xAC,0xE1,0x00,0x00,}}, {0xE0FD,2,{0xAC,0xE2,0x00,0x00,}}, {0xE0FE,2,{0xAC,0xE3,0x00,0x00,}}, {0xE0FF,2,{0xAC,0xE4,0x00,0x00,}}, {0xE100,2,{0xAC,0xE5,0x00,0x00,}}, {0xE101,2,{0xAC,0xE6,0x00,0x00,}}, {0xE102,2,{0xAC,0xE7,0x00,0x00,}}, {0xE103,2,{0xAC,0xE8,0x00,0x00,}}, {0xE104,2,{0xAC,0xE9,0x00,0x00,}}, {0xE105,2,{0xAC,0xEA,0x00,0x00,}}, {0xE106,2,{0xAC,0xEB,0x00,0x00,}}, {0xE107,2,{0xAC,0xEC,0x00,0x00,}}, {0xE108,2,{0xAC,0xED,0x00,0x00,}}, {0xE109,2,{0xAC,0xEE,0x00,0x00,}}, {0xE10A,2,{0xAC,0xEF,0x00,0x00,}}, {0xE10B,2,{0xAC,0xF0,0x00,0x00,}}, {0xE10C,2,{0xAC,0xF1,0x00,0x00,}}, {0xE10D,2,{0xAC,0xF2,0x00,0x00,}}, {0xE10E,2,{0xAC,0xF3,0x00,0x00,}}, {0xE10F,2,{0xAC,0xF4,0x00,0x00,}}, {0xE110,2,{0xAC,0xF5,0x00,0x00,}}, {0xE111,2,{0xAC,0xF6,0x00,0x00,}}, {0xE112,2,{0xAC,0xF7,0x00,0x00,}}, {0xE113,2,{0xAC,0xF8,0x00,0x00,}}, {0xE114,2,{0xAC,0xF9,0x00,0x00,}}, {0xE115,2,{0xAC,0xFA,0x00,0x00,}}, {0xE116,2,{0xAC,0xFB,0x00,0x00,}}, {0xE117,2,{0xAC,0xFC,0x00,0x00,}}, {0xE118,2,{0xAC,0xFD,0x00,0x00,}}, {0xE119,2,{0xAC,0xFE,0x00,0x00,}}, {0xE11A,2,{0xAD,0xA1,0x00,0x00,}}, {0xE11B,2,{0xAD,0xA2,0x00,0x00,}}, {0xE11C,2,{0xAD,0xA3,0x00,0x00,}}, {0xE11D,2,{0xAD,0xA4,0x00,0x00,}}, {0xE11E,2,{0xAD,0xA5,0x00,0x00,}}, {0xE11F,2,{0xAD,0xA6,0x00,0x00,}}, {0xE120,2,{0xAD,0xA7,0x00,0x00,}}, {0xE121,2,{0xAD,0xA8,0x00,0x00,}}, {0xE122,2,{0xAD,0xA9,0x00,0x00,}}, {0xE123,2,{0xAD,0xAA,0x00,0x00,}}, {0xE124,2,{0xAD,0xAB,0x00,0x00,}}, {0xE125,2,{0xAD,0xAC,0x00,0x00,}}, {0xE126,2,{0xAD,0xAD,0x00,0x00,}}, {0xE127,2,{0xAD,0xAE,0x00,0x00,}}, {0xE128,2,{0xAD,0xAF,0x00,0x00,}}, {0xE129,2,{0xAD,0xB0,0x00,0x00,}}, {0xE12A,2,{0xAD,0xB1,0x00,0x00,}}, {0xE12B,2,{0xAD,0xB2,0x00,0x00,}}, {0xE12C,2,{0xAD,0xB3,0x00,0x00,}}, {0xE12D,2,{0xAD,0xB4,0x00,0x00,}}, {0xE12E,2,{0xAD,0xB5,0x00,0x00,}}, {0xE12F,2,{0xAD,0xB6,0x00,0x00,}}, {0xE130,2,{0xAD,0xB7,0x00,0x00,}}, {0xE131,2,{0xAD,0xB8,0x00,0x00,}}, {0xE132,2,{0xAD,0xB9,0x00,0x00,}}, {0xE133,2,{0xAD,0xBA,0x00,0x00,}}, {0xE134,2,{0xAD,0xBB,0x00,0x00,}}, {0xE135,2,{0xAD,0xBC,0x00,0x00,}}, {0xE136,2,{0xAD,0xBD,0x00,0x00,}}, {0xE137,2,{0xAD,0xBE,0x00,0x00,}}, {0xE138,2,{0xAD,0xBF,0x00,0x00,}}, {0xE139,2,{0xAD,0xC0,0x00,0x00,}}, {0xE13A,2,{0xAD,0xC1,0x00,0x00,}}, {0xE13B,2,{0xAD,0xC2,0x00,0x00,}}, {0xE13C,2,{0xAD,0xC3,0x00,0x00,}}, {0xE13D,2,{0xAD,0xC4,0x00,0x00,}}, {0xE13E,2,{0xAD,0xC5,0x00,0x00,}}, {0xE13F,2,{0xAD,0xC6,0x00,0x00,}}, {0xE140,2,{0xAD,0xC7,0x00,0x00,}}, {0xE141,2,{0xAD,0xC8,0x00,0x00,}}, {0xE142,2,{0xAD,0xC9,0x00,0x00,}}, {0xE143,2,{0xAD,0xCA,0x00,0x00,}}, {0xE144,2,{0xAD,0xCB,0x00,0x00,}}, {0xE145,2,{0xAD,0xCC,0x00,0x00,}}, {0xE146,2,{0xAD,0xCD,0x00,0x00,}}, {0xE147,2,{0xAD,0xCE,0x00,0x00,}}, {0xE148,2,{0xAD,0xCF,0x00,0x00,}}, {0xE149,2,{0xAD,0xD0,0x00,0x00,}}, {0xE14A,2,{0xAD,0xD1,0x00,0x00,}}, {0xE14B,2,{0xAD,0xD2,0x00,0x00,}}, {0xE14C,2,{0xAD,0xD3,0x00,0x00,}}, {0xE14D,2,{0xAD,0xD4,0x00,0x00,}}, {0xE14E,2,{0xAD,0xD5,0x00,0x00,}}, {0xE14F,2,{0xAD,0xD6,0x00,0x00,}}, {0xE150,2,{0xAD,0xD7,0x00,0x00,}}, {0xE151,2,{0xAD,0xD8,0x00,0x00,}}, {0xE152,2,{0xAD,0xD9,0x00,0x00,}}, {0xE153,2,{0xAD,0xDA,0x00,0x00,}}, {0xE154,2,{0xAD,0xDB,0x00,0x00,}}, {0xE155,2,{0xAD,0xDC,0x00,0x00,}}, {0xE156,2,{0xAD,0xDD,0x00,0x00,}}, {0xE157,2,{0xAD,0xDE,0x00,0x00,}}, {0xE158,2,{0xAD,0xDF,0x00,0x00,}}, {0xE159,2,{0xAD,0xE0,0x00,0x00,}}, {0xE15A,2,{0xAD,0xE1,0x00,0x00,}}, {0xE15B,2,{0xAD,0xE2,0x00,0x00,}}, {0xE15C,2,{0xAD,0xE3,0x00,0x00,}}, {0xE15D,2,{0xAD,0xE4,0x00,0x00,}}, {0xE15E,2,{0xAD,0xE5,0x00,0x00,}}, {0xE15F,2,{0xAD,0xE6,0x00,0x00,}}, {0xE160,2,{0xAD,0xE7,0x00,0x00,}}, {0xE161,2,{0xAD,0xE8,0x00,0x00,}}, {0xE162,2,{0xAD,0xE9,0x00,0x00,}}, {0xE163,2,{0xAD,0xEA,0x00,0x00,}}, {0xE164,2,{0xAD,0xEB,0x00,0x00,}}, {0xE165,2,{0xAD,0xEC,0x00,0x00,}}, {0xE166,2,{0xAD,0xED,0x00,0x00,}}, {0xE167,2,{0xAD,0xEE,0x00,0x00,}}, {0xE168,2,{0xAD,0xEF,0x00,0x00,}}, {0xE169,2,{0xAD,0xF0,0x00,0x00,}}, {0xE16A,2,{0xAD,0xF1,0x00,0x00,}}, {0xE16B,2,{0xAD,0xF2,0x00,0x00,}}, {0xE16C,2,{0xAD,0xF3,0x00,0x00,}}, {0xE16D,2,{0xAD,0xF4,0x00,0x00,}}, {0xE16E,2,{0xAD,0xF5,0x00,0x00,}}, {0xE16F,2,{0xAD,0xF6,0x00,0x00,}}, {0xE170,2,{0xAD,0xF7,0x00,0x00,}}, {0xE171,2,{0xAD,0xF8,0x00,0x00,}}, {0xE172,2,{0xAD,0xF9,0x00,0x00,}}, {0xE173,2,{0xAD,0xFA,0x00,0x00,}}, {0xE174,2,{0xAD,0xFB,0x00,0x00,}}, {0xE175,2,{0xAD,0xFC,0x00,0x00,}}, {0xE176,2,{0xAD,0xFD,0x00,0x00,}}, {0xE177,2,{0xAD,0xFE,0x00,0x00,}}, {0xE178,2,{0xAE,0xA1,0x00,0x00,}}, {0xE179,2,{0xAE,0xA2,0x00,0x00,}}, {0xE17A,2,{0xAE,0xA3,0x00,0x00,}}, {0xE17B,2,{0xAE,0xA4,0x00,0x00,}}, {0xE17C,2,{0xAE,0xA5,0x00,0x00,}}, {0xE17D,2,{0xAE,0xA6,0x00,0x00,}}, {0xE17E,2,{0xAE,0xA7,0x00,0x00,}}, {0xE17F,2,{0xAE,0xA8,0x00,0x00,}}, {0xE180,2,{0xAE,0xA9,0x00,0x00,}}, {0xE181,2,{0xAE,0xAA,0x00,0x00,}}, {0xE182,2,{0xAE,0xAB,0x00,0x00,}}, {0xE183,2,{0xAE,0xAC,0x00,0x00,}}, {0xE184,2,{0xAE,0xAD,0x00,0x00,}}, {0xE185,2,{0xAE,0xAE,0x00,0x00,}}, {0xE186,2,{0xAE,0xAF,0x00,0x00,}}, {0xE187,2,{0xAE,0xB0,0x00,0x00,}}, {0xE188,2,{0xAE,0xB1,0x00,0x00,}}, {0xE189,2,{0xAE,0xB2,0x00,0x00,}}, {0xE18A,2,{0xAE,0xB3,0x00,0x00,}}, {0xE18B,2,{0xAE,0xB4,0x00,0x00,}}, {0xE18C,2,{0xAE,0xB5,0x00,0x00,}}, {0xE18D,2,{0xAE,0xB6,0x00,0x00,}}, {0xE18E,2,{0xAE,0xB7,0x00,0x00,}}, {0xE18F,2,{0xAE,0xB8,0x00,0x00,}}, {0xE190,2,{0xAE,0xB9,0x00,0x00,}}, {0xE191,2,{0xAE,0xBA,0x00,0x00,}}, {0xE192,2,{0xAE,0xBB,0x00,0x00,}}, {0xE193,2,{0xAE,0xBC,0x00,0x00,}}, {0xE194,2,{0xAE,0xBD,0x00,0x00,}}, {0xE195,2,{0xAE,0xBE,0x00,0x00,}}, {0xE196,2,{0xAE,0xBF,0x00,0x00,}}, {0xE197,2,{0xAE,0xC0,0x00,0x00,}}, {0xE198,2,{0xAE,0xC1,0x00,0x00,}}, {0xE199,2,{0xAE,0xC2,0x00,0x00,}}, {0xE19A,2,{0xAE,0xC3,0x00,0x00,}}, {0xE19B,2,{0xAE,0xC4,0x00,0x00,}}, {0xE19C,2,{0xAE,0xC5,0x00,0x00,}}, {0xE19D,2,{0xAE,0xC6,0x00,0x00,}}, {0xE19E,2,{0xAE,0xC7,0x00,0x00,}}, {0xE19F,2,{0xAE,0xC8,0x00,0x00,}}, {0xE1A0,2,{0xAE,0xC9,0x00,0x00,}}, {0xE1A1,2,{0xAE,0xCA,0x00,0x00,}}, {0xE1A2,2,{0xAE,0xCB,0x00,0x00,}}, {0xE1A3,2,{0xAE,0xCC,0x00,0x00,}}, {0xE1A4,2,{0xAE,0xCD,0x00,0x00,}}, {0xE1A5,2,{0xAE,0xCE,0x00,0x00,}}, {0xE1A6,2,{0xAE,0xCF,0x00,0x00,}}, {0xE1A7,2,{0xAE,0xD0,0x00,0x00,}}, {0xE1A8,2,{0xAE,0xD1,0x00,0x00,}}, {0xE1A9,2,{0xAE,0xD2,0x00,0x00,}}, {0xE1AA,2,{0xAE,0xD3,0x00,0x00,}}, {0xE1AB,2,{0xAE,0xD4,0x00,0x00,}}, {0xE1AC,2,{0xAE,0xD5,0x00,0x00,}}, {0xE1AD,2,{0xAE,0xD6,0x00,0x00,}}, {0xE1AE,2,{0xAE,0xD7,0x00,0x00,}}, {0xE1AF,2,{0xAE,0xD8,0x00,0x00,}}, {0xE1B0,2,{0xAE,0xD9,0x00,0x00,}}, {0xE1B1,2,{0xAE,0xDA,0x00,0x00,}}, {0xE1B2,2,{0xAE,0xDB,0x00,0x00,}}, {0xE1B3,2,{0xAE,0xDC,0x00,0x00,}}, {0xE1B4,2,{0xAE,0xDD,0x00,0x00,}}, {0xE1B5,2,{0xAE,0xDE,0x00,0x00,}}, {0xE1B6,2,{0xAE,0xDF,0x00,0x00,}}, {0xE1B7,2,{0xAE,0xE0,0x00,0x00,}}, {0xE1B8,2,{0xAE,0xE1,0x00,0x00,}}, {0xE1B9,2,{0xAE,0xE2,0x00,0x00,}}, {0xE1BA,2,{0xAE,0xE3,0x00,0x00,}}, {0xE1BB,2,{0xAE,0xE4,0x00,0x00,}}, {0xE1BC,2,{0xAE,0xE5,0x00,0x00,}}, {0xE1BD,2,{0xAE,0xE6,0x00,0x00,}}, {0xE1BE,2,{0xAE,0xE7,0x00,0x00,}}, {0xE1BF,2,{0xAE,0xE8,0x00,0x00,}}, {0xE1C0,2,{0xAE,0xE9,0x00,0x00,}}, {0xE1C1,2,{0xAE,0xEA,0x00,0x00,}}, {0xE1C2,2,{0xAE,0xEB,0x00,0x00,}}, {0xE1C3,2,{0xAE,0xEC,0x00,0x00,}}, {0xE1C4,2,{0xAE,0xED,0x00,0x00,}}, {0xE1C5,2,{0xAE,0xEE,0x00,0x00,}}, {0xE1C6,2,{0xAE,0xEF,0x00,0x00,}}, {0xE1C7,2,{0xAE,0xF0,0x00,0x00,}}, {0xE1C8,2,{0xAE,0xF1,0x00,0x00,}}, {0xE1C9,2,{0xAE,0xF2,0x00,0x00,}}, {0xE1CA,2,{0xAE,0xF3,0x00,0x00,}}, {0xE1CB,2,{0xAE,0xF4,0x00,0x00,}}, {0xE1CC,2,{0xAE,0xF5,0x00,0x00,}}, {0xE1CD,2,{0xAE,0xF6,0x00,0x00,}}, {0xE1CE,2,{0xAE,0xF7,0x00,0x00,}}, {0xE1CF,2,{0xAE,0xF8,0x00,0x00,}}, {0xE1D0,2,{0xAE,0xF9,0x00,0x00,}}, {0xE1D1,2,{0xAE,0xFA,0x00,0x00,}}, {0xE1D2,2,{0xAE,0xFB,0x00,0x00,}}, {0xE1D3,2,{0xAE,0xFC,0x00,0x00,}}, {0xE1D4,2,{0xAE,0xFD,0x00,0x00,}}, {0xE1D5,2,{0xAE,0xFE,0x00,0x00,}}, {0xE1D6,2,{0xAF,0xA1,0x00,0x00,}}, {0xE1D7,2,{0xAF,0xA2,0x00,0x00,}}, {0xE1D8,2,{0xAF,0xA3,0x00,0x00,}}, {0xE1D9,2,{0xAF,0xA4,0x00,0x00,}}, {0xE1DA,2,{0xAF,0xA5,0x00,0x00,}}, {0xE1DB,2,{0xAF,0xA6,0x00,0x00,}}, {0xE1DC,2,{0xAF,0xA7,0x00,0x00,}}, {0xE1DD,2,{0xAF,0xA8,0x00,0x00,}}, {0xE1DE,2,{0xAF,0xA9,0x00,0x00,}}, {0xE1DF,2,{0xAF,0xAA,0x00,0x00,}}, {0xE1E0,2,{0xAF,0xAB,0x00,0x00,}}, {0xE1E1,2,{0xAF,0xAC,0x00,0x00,}}, {0xE1E2,2,{0xAF,0xAD,0x00,0x00,}}, {0xE1E3,2,{0xAF,0xAE,0x00,0x00,}}, {0xE1E4,2,{0xAF,0xAF,0x00,0x00,}}, {0xE1E5,2,{0xAF,0xB0,0x00,0x00,}}, {0xE1E6,2,{0xAF,0xB1,0x00,0x00,}}, {0xE1E7,2,{0xAF,0xB2,0x00,0x00,}}, {0xE1E8,2,{0xAF,0xB3,0x00,0x00,}}, {0xE1E9,2,{0xAF,0xB4,0x00,0x00,}}, {0xE1EA,2,{0xAF,0xB5,0x00,0x00,}}, {0xE1EB,2,{0xAF,0xB6,0x00,0x00,}}, {0xE1EC,2,{0xAF,0xB7,0x00,0x00,}}, {0xE1ED,2,{0xAF,0xB8,0x00,0x00,}}, {0xE1EE,2,{0xAF,0xB9,0x00,0x00,}}, {0xE1EF,2,{0xAF,0xBA,0x00,0x00,}}, {0xE1F0,2,{0xAF,0xBB,0x00,0x00,}}, {0xE1F1,2,{0xAF,0xBC,0x00,0x00,}}, {0xE1F2,2,{0xAF,0xBD,0x00,0x00,}}, {0xE1F3,2,{0xAF,0xBE,0x00,0x00,}}, {0xE1F4,2,{0xAF,0xBF,0x00,0x00,}}, {0xE1F5,2,{0xAF,0xC0,0x00,0x00,}}, {0xE1F6,2,{0xAF,0xC1,0x00,0x00,}}, {0xE1F7,2,{0xAF,0xC2,0x00,0x00,}}, {0xE1F8,2,{0xAF,0xC3,0x00,0x00,}}, {0xE1F9,2,{0xAF,0xC4,0x00,0x00,}}, {0xE1FA,2,{0xAF,0xC5,0x00,0x00,}}, {0xE1FB,2,{0xAF,0xC6,0x00,0x00,}}, {0xE1FC,2,{0xAF,0xC7,0x00,0x00,}}, {0xE1FD,2,{0xAF,0xC8,0x00,0x00,}}, {0xE1FE,2,{0xAF,0xC9,0x00,0x00,}}, {0xE1FF,2,{0xAF,0xCA,0x00,0x00,}}, {0xE200,2,{0xAF,0xCB,0x00,0x00,}}, {0xE201,2,{0xAF,0xCC,0x00,0x00,}}, {0xE202,2,{0xAF,0xCD,0x00,0x00,}}, {0xE203,2,{0xAF,0xCE,0x00,0x00,}}, {0xE204,2,{0xAF,0xCF,0x00,0x00,}}, {0xE205,2,{0xAF,0xD0,0x00,0x00,}}, {0xE206,2,{0xAF,0xD1,0x00,0x00,}}, {0xE207,2,{0xAF,0xD2,0x00,0x00,}}, {0xE208,2,{0xAF,0xD3,0x00,0x00,}}, {0xE209,2,{0xAF,0xD4,0x00,0x00,}}, {0xE20A,2,{0xAF,0xD5,0x00,0x00,}}, {0xE20B,2,{0xAF,0xD6,0x00,0x00,}}, {0xE20C,2,{0xAF,0xD7,0x00,0x00,}}, {0xE20D,2,{0xAF,0xD8,0x00,0x00,}}, {0xE20E,2,{0xAF,0xD9,0x00,0x00,}}, {0xE20F,2,{0xAF,0xDA,0x00,0x00,}}, {0xE210,2,{0xAF,0xDB,0x00,0x00,}}, {0xE211,2,{0xAF,0xDC,0x00,0x00,}}, {0xE212,2,{0xAF,0xDD,0x00,0x00,}}, {0xE213,2,{0xAF,0xDE,0x00,0x00,}}, {0xE214,2,{0xAF,0xDF,0x00,0x00,}}, {0xE215,2,{0xAF,0xE0,0x00,0x00,}}, {0xE216,2,{0xAF,0xE1,0x00,0x00,}}, {0xE217,2,{0xAF,0xE2,0x00,0x00,}}, {0xE218,2,{0xAF,0xE3,0x00,0x00,}}, {0xE219,2,{0xAF,0xE4,0x00,0x00,}}, {0xE21A,2,{0xAF,0xE5,0x00,0x00,}}, {0xE21B,2,{0xAF,0xE6,0x00,0x00,}}, {0xE21C,2,{0xAF,0xE7,0x00,0x00,}}, {0xE21D,2,{0xAF,0xE8,0x00,0x00,}}, {0xE21E,2,{0xAF,0xE9,0x00,0x00,}}, {0xE21F,2,{0xAF,0xEA,0x00,0x00,}}, {0xE220,2,{0xAF,0xEB,0x00,0x00,}}, {0xE221,2,{0xAF,0xEC,0x00,0x00,}}, {0xE222,2,{0xAF,0xED,0x00,0x00,}}, {0xE223,2,{0xAF,0xEE,0x00,0x00,}}, {0xE224,2,{0xAF,0xEF,0x00,0x00,}}, {0xE225,2,{0xAF,0xF0,0x00,0x00,}}, {0xE226,2,{0xAF,0xF1,0x00,0x00,}}, {0xE227,2,{0xAF,0xF2,0x00,0x00,}}, {0xE228,2,{0xAF,0xF3,0x00,0x00,}}, {0xE229,2,{0xAF,0xF4,0x00,0x00,}}, {0xE22A,2,{0xAF,0xF5,0x00,0x00,}}, {0xE22B,2,{0xAF,0xF6,0x00,0x00,}}, {0xE22C,2,{0xAF,0xF7,0x00,0x00,}}, {0xE22D,2,{0xAF,0xF8,0x00,0x00,}}, {0xE22E,2,{0xAF,0xF9,0x00,0x00,}}, {0xE22F,2,{0xAF,0xFA,0x00,0x00,}}, {0xE230,2,{0xAF,0xFB,0x00,0x00,}}, {0xE231,2,{0xAF,0xFC,0x00,0x00,}}, {0xE232,2,{0xAF,0xFD,0x00,0x00,}}, {0xE233,2,{0xAF,0xFE,0x00,0x00,}}, {0xE234,2,{0xF8,0xA1,0x00,0x00,}}, {0xE235,2,{0xF8,0xA2,0x00,0x00,}}, {0xE236,2,{0xF8,0xA3,0x00,0x00,}}, {0xE237,2,{0xF8,0xA4,0x00,0x00,}}, {0xE238,2,{0xF8,0xA5,0x00,0x00,}}, {0xE239,2,{0xF8,0xA6,0x00,0x00,}}, {0xE23A,2,{0xF8,0xA7,0x00,0x00,}}, {0xE23B,2,{0xF8,0xA8,0x00,0x00,}}, {0xE23C,2,{0xF8,0xA9,0x00,0x00,}}, {0xE23D,2,{0xF8,0xAA,0x00,0x00,}}, {0xE23E,2,{0xF8,0xAB,0x00,0x00,}}, {0xE23F,2,{0xF8,0xAC,0x00,0x00,}}, {0xE240,2,{0xF8,0xAD,0x00,0x00,}}, {0xE241,2,{0xF8,0xAE,0x00,0x00,}}, {0xE242,2,{0xF8,0xAF,0x00,0x00,}}, {0xE243,2,{0xF8,0xB0,0x00,0x00,}}, {0xE244,2,{0xF8,0xB1,0x00,0x00,}}, {0xE245,2,{0xF8,0xB2,0x00,0x00,}}, {0xE246,2,{0xF8,0xB3,0x00,0x00,}}, {0xE247,2,{0xF8,0xB4,0x00,0x00,}}, {0xE248,2,{0xF8,0xB5,0x00,0x00,}}, {0xE249,2,{0xF8,0xB6,0x00,0x00,}}, {0xE24A,2,{0xF8,0xB7,0x00,0x00,}}, {0xE24B,2,{0xF8,0xB8,0x00,0x00,}}, {0xE24C,2,{0xF8,0xB9,0x00,0x00,}}, {0xE24D,2,{0xF8,0xBA,0x00,0x00,}}, {0xE24E,2,{0xF8,0xBB,0x00,0x00,}}, {0xE24F,2,{0xF8,0xBC,0x00,0x00,}}, {0xE250,2,{0xF8,0xBD,0x00,0x00,}}, {0xE251,2,{0xF8,0xBE,0x00,0x00,}}, {0xE252,2,{0xF8,0xBF,0x00,0x00,}}, {0xE253,2,{0xF8,0xC0,0x00,0x00,}}, {0xE254,2,{0xF8,0xC1,0x00,0x00,}}, {0xE255,2,{0xF8,0xC2,0x00,0x00,}}, {0xE256,2,{0xF8,0xC3,0x00,0x00,}}, {0xE257,2,{0xF8,0xC4,0x00,0x00,}}, {0xE258,2,{0xF8,0xC5,0x00,0x00,}}, {0xE259,2,{0xF8,0xC6,0x00,0x00,}}, {0xE25A,2,{0xF8,0xC7,0x00,0x00,}}, {0xE25B,2,{0xF8,0xC8,0x00,0x00,}}, {0xE25C,2,{0xF8,0xC9,0x00,0x00,}}, {0xE25D,2,{0xF8,0xCA,0x00,0x00,}}, {0xE25E,2,{0xF8,0xCB,0x00,0x00,}}, {0xE25F,2,{0xF8,0xCC,0x00,0x00,}}, {0xE260,2,{0xF8,0xCD,0x00,0x00,}}, {0xE261,2,{0xF8,0xCE,0x00,0x00,}}, {0xE262,2,{0xF8,0xCF,0x00,0x00,}}, {0xE263,2,{0xF8,0xD0,0x00,0x00,}}, {0xE264,2,{0xF8,0xD1,0x00,0x00,}}, {0xE265,2,{0xF8,0xD2,0x00,0x00,}}, {0xE266,2,{0xF8,0xD3,0x00,0x00,}}, {0xE267,2,{0xF8,0xD4,0x00,0x00,}}, {0xE268,2,{0xF8,0xD5,0x00,0x00,}}, {0xE269,2,{0xF8,0xD6,0x00,0x00,}}, {0xE26A,2,{0xF8,0xD7,0x00,0x00,}}, {0xE26B,2,{0xF8,0xD8,0x00,0x00,}}, {0xE26C,2,{0xF8,0xD9,0x00,0x00,}}, {0xE26D,2,{0xF8,0xDA,0x00,0x00,}}, {0xE26E,2,{0xF8,0xDB,0x00,0x00,}}, {0xE26F,2,{0xF8,0xDC,0x00,0x00,}}, {0xE270,2,{0xF8,0xDD,0x00,0x00,}}, {0xE271,2,{0xF8,0xDE,0x00,0x00,}}, {0xE272,2,{0xF8,0xDF,0x00,0x00,}}, {0xE273,2,{0xF8,0xE0,0x00,0x00,}}, {0xE274,2,{0xF8,0xE1,0x00,0x00,}}, {0xE275,2,{0xF8,0xE2,0x00,0x00,}}, {0xE276,2,{0xF8,0xE3,0x00,0x00,}}, {0xE277,2,{0xF8,0xE4,0x00,0x00,}}, {0xE278,2,{0xF8,0xE5,0x00,0x00,}}, {0xE279,2,{0xF8,0xE6,0x00,0x00,}}, {0xE27A,2,{0xF8,0xE7,0x00,0x00,}}, {0xE27B,2,{0xF8,0xE8,0x00,0x00,}}, {0xE27C,2,{0xF8,0xE9,0x00,0x00,}}, {0xE27D,2,{0xF8,0xEA,0x00,0x00,}}, {0xE27E,2,{0xF8,0xEB,0x00,0x00,}}, {0xE27F,2,{0xF8,0xEC,0x00,0x00,}}, {0xE280,2,{0xF8,0xED,0x00,0x00,}}, {0xE281,2,{0xF8,0xEE,0x00,0x00,}}, {0xE282,2,{0xF8,0xEF,0x00,0x00,}}, {0xE283,2,{0xF8,0xF0,0x00,0x00,}}, {0xE284,2,{0xF8,0xF1,0x00,0x00,}}, {0xE285,2,{0xF8,0xF2,0x00,0x00,}}, {0xE286,2,{0xF8,0xF3,0x00,0x00,}}, {0xE287,2,{0xF8,0xF4,0x00,0x00,}}, {0xE288,2,{0xF8,0xF5,0x00,0x00,}}, {0xE289,2,{0xF8,0xF6,0x00,0x00,}}, {0xE28A,2,{0xF8,0xF7,0x00,0x00,}}, {0xE28B,2,{0xF8,0xF8,0x00,0x00,}}, {0xE28C,2,{0xF8,0xF9,0x00,0x00,}}, {0xE28D,2,{0xF8,0xFA,0x00,0x00,}}, {0xE28E,2,{0xF8,0xFB,0x00,0x00,}}, {0xE28F,2,{0xF8,0xFC,0x00,0x00,}}, {0xE290,2,{0xF8,0xFD,0x00,0x00,}}, {0xE291,2,{0xF8,0xFE,0x00,0x00,}}, {0xE292,2,{0xF9,0xA1,0x00,0x00,}}, {0xE293,2,{0xF9,0xA2,0x00,0x00,}}, {0xE294,2,{0xF9,0xA3,0x00,0x00,}}, {0xE295,2,{0xF9,0xA4,0x00,0x00,}}, {0xE296,2,{0xF9,0xA5,0x00,0x00,}}, {0xE297,2,{0xF9,0xA6,0x00,0x00,}}, {0xE298,2,{0xF9,0xA7,0x00,0x00,}}, {0xE299,2,{0xF9,0xA8,0x00,0x00,}}, {0xE29A,2,{0xF9,0xA9,0x00,0x00,}}, {0xE29B,2,{0xF9,0xAA,0x00,0x00,}}, {0xE29C,2,{0xF9,0xAB,0x00,0x00,}}, {0xE29D,2,{0xF9,0xAC,0x00,0x00,}}, {0xE29E,2,{0xF9,0xAD,0x00,0x00,}}, {0xE29F,2,{0xF9,0xAE,0x00,0x00,}}, {0xE2A0,2,{0xF9,0xAF,0x00,0x00,}}, {0xE2A1,2,{0xF9,0xB0,0x00,0x00,}}, {0xE2A2,2,{0xF9,0xB1,0x00,0x00,}}, {0xE2A3,2,{0xF9,0xB2,0x00,0x00,}}, {0xE2A4,2,{0xF9,0xB3,0x00,0x00,}}, {0xE2A5,2,{0xF9,0xB4,0x00,0x00,}}, {0xE2A6,2,{0xF9,0xB5,0x00,0x00,}}, {0xE2A7,2,{0xF9,0xB6,0x00,0x00,}}, {0xE2A8,2,{0xF9,0xB7,0x00,0x00,}}, {0xE2A9,2,{0xF9,0xB8,0x00,0x00,}}, {0xE2AA,2,{0xF9,0xB9,0x00,0x00,}}, {0xE2AB,2,{0xF9,0xBA,0x00,0x00,}}, {0xE2AC,2,{0xF9,0xBB,0x00,0x00,}}, {0xE2AD,2,{0xF9,0xBC,0x00,0x00,}}, {0xE2AE,2,{0xF9,0xBD,0x00,0x00,}}, {0xE2AF,2,{0xF9,0xBE,0x00,0x00,}}, {0xE2B0,2,{0xF9,0xBF,0x00,0x00,}}, {0xE2B1,2,{0xF9,0xC0,0x00,0x00,}}, {0xE2B2,2,{0xF9,0xC1,0x00,0x00,}}, {0xE2B3,2,{0xF9,0xC2,0x00,0x00,}}, {0xE2B4,2,{0xF9,0xC3,0x00,0x00,}}, {0xE2B5,2,{0xF9,0xC4,0x00,0x00,}}, {0xE2B6,2,{0xF9,0xC5,0x00,0x00,}}, {0xE2B7,2,{0xF9,0xC6,0x00,0x00,}}, {0xE2B8,2,{0xF9,0xC7,0x00,0x00,}}, {0xE2B9,2,{0xF9,0xC8,0x00,0x00,}}, {0xE2BA,2,{0xF9,0xC9,0x00,0x00,}}, {0xE2BB,2,{0xF9,0xCA,0x00,0x00,}}, {0xE2BC,2,{0xF9,0xCB,0x00,0x00,}}, {0xE2BD,2,{0xF9,0xCC,0x00,0x00,}}, {0xE2BE,2,{0xF9,0xCD,0x00,0x00,}}, {0xE2BF,2,{0xF9,0xCE,0x00,0x00,}}, {0xE2C0,2,{0xF9,0xCF,0x00,0x00,}}, {0xE2C1,2,{0xF9,0xD0,0x00,0x00,}}, {0xE2C2,2,{0xF9,0xD1,0x00,0x00,}}, {0xE2C3,2,{0xF9,0xD2,0x00,0x00,}}, {0xE2C4,2,{0xF9,0xD3,0x00,0x00,}}, {0xE2C5,2,{0xF9,0xD4,0x00,0x00,}}, {0xE2C6,2,{0xF9,0xD5,0x00,0x00,}}, {0xE2C7,2,{0xF9,0xD6,0x00,0x00,}}, {0xE2C8,2,{0xF9,0xD7,0x00,0x00,}}, {0xE2C9,2,{0xF9,0xD8,0x00,0x00,}}, {0xE2CA,2,{0xF9,0xD9,0x00,0x00,}}, {0xE2CB,2,{0xF9,0xDA,0x00,0x00,}}, {0xE2CC,2,{0xF9,0xDB,0x00,0x00,}}, {0xE2CD,2,{0xF9,0xDC,0x00,0x00,}}, {0xE2CE,2,{0xF9,0xDD,0x00,0x00,}}, {0xE2CF,2,{0xF9,0xDE,0x00,0x00,}}, {0xE2D0,2,{0xF9,0xDF,0x00,0x00,}}, {0xE2D1,2,{0xF9,0xE0,0x00,0x00,}}, {0xE2D2,2,{0xF9,0xE1,0x00,0x00,}}, {0xE2D3,2,{0xF9,0xE2,0x00,0x00,}}, {0xE2D4,2,{0xF9,0xE3,0x00,0x00,}}, {0xE2D5,2,{0xF9,0xE4,0x00,0x00,}}, {0xE2D6,2,{0xF9,0xE5,0x00,0x00,}}, {0xE2D7,2,{0xF9,0xE6,0x00,0x00,}}, {0xE2D8,2,{0xF9,0xE7,0x00,0x00,}}, {0xE2D9,2,{0xF9,0xE8,0x00,0x00,}}, {0xE2DA,2,{0xF9,0xE9,0x00,0x00,}}, {0xE2DB,2,{0xF9,0xEA,0x00,0x00,}}, {0xE2DC,2,{0xF9,0xEB,0x00,0x00,}}, {0xE2DD,2,{0xF9,0xEC,0x00,0x00,}}, {0xE2DE,2,{0xF9,0xED,0x00,0x00,}}, {0xE2DF,2,{0xF9,0xEE,0x00,0x00,}}, {0xE2E0,2,{0xF9,0xEF,0x00,0x00,}}, {0xE2E1,2,{0xF9,0xF0,0x00,0x00,}}, {0xE2E2,2,{0xF9,0xF1,0x00,0x00,}}, {0xE2E3,2,{0xF9,0xF2,0x00,0x00,}}, {0xE2E4,2,{0xF9,0xF3,0x00,0x00,}}, {0xE2E5,2,{0xF9,0xF4,0x00,0x00,}}, {0xE2E6,2,{0xF9,0xF5,0x00,0x00,}}, {0xE2E7,2,{0xF9,0xF6,0x00,0x00,}}, {0xE2E8,2,{0xF9,0xF7,0x00,0x00,}}, {0xE2E9,2,{0xF9,0xF8,0x00,0x00,}}, {0xE2EA,2,{0xF9,0xF9,0x00,0x00,}}, {0xE2EB,2,{0xF9,0xFA,0x00,0x00,}}, {0xE2EC,2,{0xF9,0xFB,0x00,0x00,}}, {0xE2ED,2,{0xF9,0xFC,0x00,0x00,}}, {0xE2EE,2,{0xF9,0xFD,0x00,0x00,}}, {0xE2EF,2,{0xF9,0xFE,0x00,0x00,}}, {0xE2F0,2,{0xFA,0xA1,0x00,0x00,}}, {0xE2F1,2,{0xFA,0xA2,0x00,0x00,}}, {0xE2F2,2,{0xFA,0xA3,0x00,0x00,}}, {0xE2F3,2,{0xFA,0xA4,0x00,0x00,}}, {0xE2F4,2,{0xFA,0xA5,0x00,0x00,}}, {0xE2F5,2,{0xFA,0xA6,0x00,0x00,}}, {0xE2F6,2,{0xFA,0xA7,0x00,0x00,}}, {0xE2F7,2,{0xFA,0xA8,0x00,0x00,}}, {0xE2F8,2,{0xFA,0xA9,0x00,0x00,}}, {0xE2F9,2,{0xFA,0xAA,0x00,0x00,}}, {0xE2FA,2,{0xFA,0xAB,0x00,0x00,}}, {0xE2FB,2,{0xFA,0xAC,0x00,0x00,}}, {0xE2FC,2,{0xFA,0xAD,0x00,0x00,}}, {0xE2FD,2,{0xFA,0xAE,0x00,0x00,}}, {0xE2FE,2,{0xFA,0xAF,0x00,0x00,}}, {0xE2FF,2,{0xFA,0xB0,0x00,0x00,}}, {0xE300,2,{0xFA,0xB1,0x00,0x00,}}, {0xE301,2,{0xFA,0xB2,0x00,0x00,}}, {0xE302,2,{0xFA,0xB3,0x00,0x00,}}, {0xE303,2,{0xFA,0xB4,0x00,0x00,}}, {0xE304,2,{0xFA,0xB5,0x00,0x00,}}, {0xE305,2,{0xFA,0xB6,0x00,0x00,}}, {0xE306,2,{0xFA,0xB7,0x00,0x00,}}, {0xE307,2,{0xFA,0xB8,0x00,0x00,}}, {0xE308,2,{0xFA,0xB9,0x00,0x00,}}, {0xE309,2,{0xFA,0xBA,0x00,0x00,}}, {0xE30A,2,{0xFA,0xBB,0x00,0x00,}}, {0xE30B,2,{0xFA,0xBC,0x00,0x00,}}, {0xE30C,2,{0xFA,0xBD,0x00,0x00,}}, {0xE30D,2,{0xFA,0xBE,0x00,0x00,}}, {0xE30E,2,{0xFA,0xBF,0x00,0x00,}}, {0xE30F,2,{0xFA,0xC0,0x00,0x00,}}, {0xE310,2,{0xFA,0xC1,0x00,0x00,}}, {0xE311,2,{0xFA,0xC2,0x00,0x00,}}, {0xE312,2,{0xFA,0xC3,0x00,0x00,}}, {0xE313,2,{0xFA,0xC4,0x00,0x00,}}, {0xE314,2,{0xFA,0xC5,0x00,0x00,}}, {0xE315,2,{0xFA,0xC6,0x00,0x00,}}, {0xE316,2,{0xFA,0xC7,0x00,0x00,}}, {0xE317,2,{0xFA,0xC8,0x00,0x00,}}, {0xE318,2,{0xFA,0xC9,0x00,0x00,}}, {0xE319,2,{0xFA,0xCA,0x00,0x00,}}, {0xE31A,2,{0xFA,0xCB,0x00,0x00,}}, {0xE31B,2,{0xFA,0xCC,0x00,0x00,}}, {0xE31C,2,{0xFA,0xCD,0x00,0x00,}}, {0xE31D,2,{0xFA,0xCE,0x00,0x00,}}, {0xE31E,2,{0xFA,0xCF,0x00,0x00,}}, {0xE31F,2,{0xFA,0xD0,0x00,0x00,}}, {0xE320,2,{0xFA,0xD1,0x00,0x00,}}, {0xE321,2,{0xFA,0xD2,0x00,0x00,}}, {0xE322,2,{0xFA,0xD3,0x00,0x00,}}, {0xE323,2,{0xFA,0xD4,0x00,0x00,}}, {0xE324,2,{0xFA,0xD5,0x00,0x00,}}, {0xE325,2,{0xFA,0xD6,0x00,0x00,}}, {0xE326,2,{0xFA,0xD7,0x00,0x00,}}, {0xE327,2,{0xFA,0xD8,0x00,0x00,}}, {0xE328,2,{0xFA,0xD9,0x00,0x00,}}, {0xE329,2,{0xFA,0xDA,0x00,0x00,}}, {0xE32A,2,{0xFA,0xDB,0x00,0x00,}}, {0xE32B,2,{0xFA,0xDC,0x00,0x00,}}, {0xE32C,2,{0xFA,0xDD,0x00,0x00,}}, {0xE32D,2,{0xFA,0xDE,0x00,0x00,}}, {0xE32E,2,{0xFA,0xDF,0x00,0x00,}}, {0xE32F,2,{0xFA,0xE0,0x00,0x00,}}, {0xE330,2,{0xFA,0xE1,0x00,0x00,}}, {0xE331,2,{0xFA,0xE2,0x00,0x00,}}, {0xE332,2,{0xFA,0xE3,0x00,0x00,}}, {0xE333,2,{0xFA,0xE4,0x00,0x00,}}, {0xE334,2,{0xFA,0xE5,0x00,0x00,}}, {0xE335,2,{0xFA,0xE6,0x00,0x00,}}, {0xE336,2,{0xFA,0xE7,0x00,0x00,}}, {0xE337,2,{0xFA,0xE8,0x00,0x00,}}, {0xE338,2,{0xFA,0xE9,0x00,0x00,}}, {0xE339,2,{0xFA,0xEA,0x00,0x00,}}, {0xE33A,2,{0xFA,0xEB,0x00,0x00,}}, {0xE33B,2,{0xFA,0xEC,0x00,0x00,}}, {0xE33C,2,{0xFA,0xED,0x00,0x00,}}, {0xE33D,2,{0xFA,0xEE,0x00,0x00,}}, {0xE33E,2,{0xFA,0xEF,0x00,0x00,}}, {0xE33F,2,{0xFA,0xF0,0x00,0x00,}}, {0xE340,2,{0xFA,0xF1,0x00,0x00,}}, {0xE341,2,{0xFA,0xF2,0x00,0x00,}}, {0xE342,2,{0xFA,0xF3,0x00,0x00,}}, {0xE343,2,{0xFA,0xF4,0x00,0x00,}}, {0xE344,2,{0xFA,0xF5,0x00,0x00,}}, {0xE345,2,{0xFA,0xF6,0x00,0x00,}}, {0xE346,2,{0xFA,0xF7,0x00,0x00,}}, {0xE347,2,{0xFA,0xF8,0x00,0x00,}}, {0xE348,2,{0xFA,0xF9,0x00,0x00,}}, {0xE349,2,{0xFA,0xFA,0x00,0x00,}}, {0xE34A,2,{0xFA,0xFB,0x00,0x00,}}, {0xE34B,2,{0xFA,0xFC,0x00,0x00,}}, {0xE34C,2,{0xFA,0xFD,0x00,0x00,}}, {0xE34D,2,{0xFA,0xFE,0x00,0x00,}}, {0xE34E,2,{0xFB,0xA1,0x00,0x00,}}, {0xE34F,2,{0xFB,0xA2,0x00,0x00,}}, {0xE350,2,{0xFB,0xA3,0x00,0x00,}}, {0xE351,2,{0xFB,0xA4,0x00,0x00,}}, {0xE352,2,{0xFB,0xA5,0x00,0x00,}}, {0xE353,2,{0xFB,0xA6,0x00,0x00,}}, {0xE354,2,{0xFB,0xA7,0x00,0x00,}}, {0xE355,2,{0xFB,0xA8,0x00,0x00,}}, {0xE356,2,{0xFB,0xA9,0x00,0x00,}}, {0xE357,2,{0xFB,0xAA,0x00,0x00,}}, {0xE358,2,{0xFB,0xAB,0x00,0x00,}}, {0xE359,2,{0xFB,0xAC,0x00,0x00,}}, {0xE35A,2,{0xFB,0xAD,0x00,0x00,}}, {0xE35B,2,{0xFB,0xAE,0x00,0x00,}}, {0xE35C,2,{0xFB,0xAF,0x00,0x00,}}, {0xE35D,2,{0xFB,0xB0,0x00,0x00,}}, {0xE35E,2,{0xFB,0xB1,0x00,0x00,}}, {0xE35F,2,{0xFB,0xB2,0x00,0x00,}}, {0xE360,2,{0xFB,0xB3,0x00,0x00,}}, {0xE361,2,{0xFB,0xB4,0x00,0x00,}}, {0xE362,2,{0xFB,0xB5,0x00,0x00,}}, {0xE363,2,{0xFB,0xB6,0x00,0x00,}}, {0xE364,2,{0xFB,0xB7,0x00,0x00,}}, {0xE365,2,{0xFB,0xB8,0x00,0x00,}}, {0xE366,2,{0xFB,0xB9,0x00,0x00,}}, {0xE367,2,{0xFB,0xBA,0x00,0x00,}}, {0xE368,2,{0xFB,0xBB,0x00,0x00,}}, {0xE369,2,{0xFB,0xBC,0x00,0x00,}}, {0xE36A,2,{0xFB,0xBD,0x00,0x00,}}, {0xE36B,2,{0xFB,0xBE,0x00,0x00,}}, {0xE36C,2,{0xFB,0xBF,0x00,0x00,}}, {0xE36D,2,{0xFB,0xC0,0x00,0x00,}}, {0xE36E,2,{0xFB,0xC1,0x00,0x00,}}, {0xE36F,2,{0xFB,0xC2,0x00,0x00,}}, {0xE370,2,{0xFB,0xC3,0x00,0x00,}}, {0xE371,2,{0xFB,0xC4,0x00,0x00,}}, {0xE372,2,{0xFB,0xC5,0x00,0x00,}}, {0xE373,2,{0xFB,0xC6,0x00,0x00,}}, {0xE374,2,{0xFB,0xC7,0x00,0x00,}}, {0xE375,2,{0xFB,0xC8,0x00,0x00,}}, {0xE376,2,{0xFB,0xC9,0x00,0x00,}}, {0xE377,2,{0xFB,0xCA,0x00,0x00,}}, {0xE378,2,{0xFB,0xCB,0x00,0x00,}}, {0xE379,2,{0xFB,0xCC,0x00,0x00,}}, {0xE37A,2,{0xFB,0xCD,0x00,0x00,}}, {0xE37B,2,{0xFB,0xCE,0x00,0x00,}}, {0xE37C,2,{0xFB,0xCF,0x00,0x00,}}, {0xE37D,2,{0xFB,0xD0,0x00,0x00,}}, {0xE37E,2,{0xFB,0xD1,0x00,0x00,}}, {0xE37F,2,{0xFB,0xD2,0x00,0x00,}}, {0xE380,2,{0xFB,0xD3,0x00,0x00,}}, {0xE381,2,{0xFB,0xD4,0x00,0x00,}}, {0xE382,2,{0xFB,0xD5,0x00,0x00,}}, {0xE383,2,{0xFB,0xD6,0x00,0x00,}}, {0xE384,2,{0xFB,0xD7,0x00,0x00,}}, {0xE385,2,{0xFB,0xD8,0x00,0x00,}}, {0xE386,2,{0xFB,0xD9,0x00,0x00,}}, {0xE387,2,{0xFB,0xDA,0x00,0x00,}}, {0xE388,2,{0xFB,0xDB,0x00,0x00,}}, {0xE389,2,{0xFB,0xDC,0x00,0x00,}}, {0xE38A,2,{0xFB,0xDD,0x00,0x00,}}, {0xE38B,2,{0xFB,0xDE,0x00,0x00,}}, {0xE38C,2,{0xFB,0xDF,0x00,0x00,}}, {0xE38D,2,{0xFB,0xE0,0x00,0x00,}}, {0xE38E,2,{0xFB,0xE1,0x00,0x00,}}, {0xE38F,2,{0xFB,0xE2,0x00,0x00,}}, {0xE390,2,{0xFB,0xE3,0x00,0x00,}}, {0xE391,2,{0xFB,0xE4,0x00,0x00,}}, {0xE392,2,{0xFB,0xE5,0x00,0x00,}}, {0xE393,2,{0xFB,0xE6,0x00,0x00,}}, {0xE394,2,{0xFB,0xE7,0x00,0x00,}}, {0xE395,2,{0xFB,0xE8,0x00,0x00,}}, {0xE396,2,{0xFB,0xE9,0x00,0x00,}}, {0xE397,2,{0xFB,0xEA,0x00,0x00,}}, {0xE398,2,{0xFB,0xEB,0x00,0x00,}}, {0xE399,2,{0xFB,0xEC,0x00,0x00,}}, {0xE39A,2,{0xFB,0xED,0x00,0x00,}}, {0xE39B,2,{0xFB,0xEE,0x00,0x00,}}, {0xE39C,2,{0xFB,0xEF,0x00,0x00,}}, {0xE39D,2,{0xFB,0xF0,0x00,0x00,}}, {0xE39E,2,{0xFB,0xF1,0x00,0x00,}}, {0xE39F,2,{0xFB,0xF2,0x00,0x00,}}, {0xE3A0,2,{0xFB,0xF3,0x00,0x00,}}, {0xE3A1,2,{0xFB,0xF4,0x00,0x00,}}, {0xE3A2,2,{0xFB,0xF5,0x00,0x00,}}, {0xE3A3,2,{0xFB,0xF6,0x00,0x00,}}, {0xE3A4,2,{0xFB,0xF7,0x00,0x00,}}, {0xE3A5,2,{0xFB,0xF8,0x00,0x00,}}, {0xE3A6,2,{0xFB,0xF9,0x00,0x00,}}, {0xE3A7,2,{0xFB,0xFA,0x00,0x00,}}, {0xE3A8,2,{0xFB,0xFB,0x00,0x00,}}, {0xE3A9,2,{0xFB,0xFC,0x00,0x00,}}, {0xE3AA,2,{0xFB,0xFD,0x00,0x00,}}, {0xE3AB,2,{0xFB,0xFE,0x00,0x00,}}, {0xE3AC,2,{0xFC,0xA1,0x00,0x00,}}, {0xE3AD,2,{0xFC,0xA2,0x00,0x00,}}, {0xE3AE,2,{0xFC,0xA3,0x00,0x00,}}, {0xE3AF,2,{0xFC,0xA4,0x00,0x00,}}, {0xE3B0,2,{0xFC,0xA5,0x00,0x00,}}, {0xE3B1,2,{0xFC,0xA6,0x00,0x00,}}, {0xE3B2,2,{0xFC,0xA7,0x00,0x00,}}, {0xE3B3,2,{0xFC,0xA8,0x00,0x00,}}, {0xE3B4,2,{0xFC,0xA9,0x00,0x00,}}, {0xE3B5,2,{0xFC,0xAA,0x00,0x00,}}, {0xE3B6,2,{0xFC,0xAB,0x00,0x00,}}, {0xE3B7,2,{0xFC,0xAC,0x00,0x00,}}, {0xE3B8,2,{0xFC,0xAD,0x00,0x00,}}, {0xE3B9,2,{0xFC,0xAE,0x00,0x00,}}, {0xE3BA,2,{0xFC,0xAF,0x00,0x00,}}, {0xE3BB,2,{0xFC,0xB0,0x00,0x00,}}, {0xE3BC,2,{0xFC,0xB1,0x00,0x00,}}, {0xE3BD,2,{0xFC,0xB2,0x00,0x00,}}, {0xE3BE,2,{0xFC,0xB3,0x00,0x00,}}, {0xE3BF,2,{0xFC,0xB4,0x00,0x00,}}, {0xE3C0,2,{0xFC,0xB5,0x00,0x00,}}, {0xE3C1,2,{0xFC,0xB6,0x00,0x00,}}, {0xE3C2,2,{0xFC,0xB7,0x00,0x00,}}, {0xE3C3,2,{0xFC,0xB8,0x00,0x00,}}, {0xE3C4,2,{0xFC,0xB9,0x00,0x00,}}, {0xE3C5,2,{0xFC,0xBA,0x00,0x00,}}, {0xE3C6,2,{0xFC,0xBB,0x00,0x00,}}, {0xE3C7,2,{0xFC,0xBC,0x00,0x00,}}, {0xE3C8,2,{0xFC,0xBD,0x00,0x00,}}, {0xE3C9,2,{0xFC,0xBE,0x00,0x00,}}, {0xE3CA,2,{0xFC,0xBF,0x00,0x00,}}, {0xE3CB,2,{0xFC,0xC0,0x00,0x00,}}, {0xE3CC,2,{0xFC,0xC1,0x00,0x00,}}, {0xE3CD,2,{0xFC,0xC2,0x00,0x00,}}, {0xE3CE,2,{0xFC,0xC3,0x00,0x00,}}, {0xE3CF,2,{0xFC,0xC4,0x00,0x00,}}, {0xE3D0,2,{0xFC,0xC5,0x00,0x00,}}, {0xE3D1,2,{0xFC,0xC6,0x00,0x00,}}, {0xE3D2,2,{0xFC,0xC7,0x00,0x00,}}, {0xE3D3,2,{0xFC,0xC8,0x00,0x00,}}, {0xE3D4,2,{0xFC,0xC9,0x00,0x00,}}, {0xE3D5,2,{0xFC,0xCA,0x00,0x00,}}, {0xE3D6,2,{0xFC,0xCB,0x00,0x00,}}, {0xE3D7,2,{0xFC,0xCC,0x00,0x00,}}, {0xE3D8,2,{0xFC,0xCD,0x00,0x00,}}, {0xE3D9,2,{0xFC,0xCE,0x00,0x00,}}, {0xE3DA,2,{0xFC,0xCF,0x00,0x00,}}, {0xE3DB,2,{0xFC,0xD0,0x00,0x00,}}, {0xE3DC,2,{0xFC,0xD1,0x00,0x00,}}, {0xE3DD,2,{0xFC,0xD2,0x00,0x00,}}, {0xE3DE,2,{0xFC,0xD3,0x00,0x00,}}, {0xE3DF,2,{0xFC,0xD4,0x00,0x00,}}, {0xE3E0,2,{0xFC,0xD5,0x00,0x00,}}, {0xE3E1,2,{0xFC,0xD6,0x00,0x00,}}, {0xE3E2,2,{0xFC,0xD7,0x00,0x00,}}, {0xE3E3,2,{0xFC,0xD8,0x00,0x00,}}, {0xE3E4,2,{0xFC,0xD9,0x00,0x00,}}, {0xE3E5,2,{0xFC,0xDA,0x00,0x00,}}, {0xE3E6,2,{0xFC,0xDB,0x00,0x00,}}, {0xE3E7,2,{0xFC,0xDC,0x00,0x00,}}, {0xE3E8,2,{0xFC,0xDD,0x00,0x00,}}, {0xE3E9,2,{0xFC,0xDE,0x00,0x00,}}, {0xE3EA,2,{0xFC,0xDF,0x00,0x00,}}, {0xE3EB,2,{0xFC,0xE0,0x00,0x00,}}, {0xE3EC,2,{0xFC,0xE1,0x00,0x00,}}, {0xE3ED,2,{0xFC,0xE2,0x00,0x00,}}, {0xE3EE,2,{0xFC,0xE3,0x00,0x00,}}, {0xE3EF,2,{0xFC,0xE4,0x00,0x00,}}, {0xE3F0,2,{0xFC,0xE5,0x00,0x00,}}, {0xE3F1,2,{0xFC,0xE6,0x00,0x00,}}, {0xE3F2,2,{0xFC,0xE7,0x00,0x00,}}, {0xE3F3,2,{0xFC,0xE8,0x00,0x00,}}, {0xE3F4,2,{0xFC,0xE9,0x00,0x00,}}, {0xE3F5,2,{0xFC,0xEA,0x00,0x00,}}, {0xE3F6,2,{0xFC,0xEB,0x00,0x00,}}, {0xE3F7,2,{0xFC,0xEC,0x00,0x00,}}, {0xE3F8,2,{0xFC,0xED,0x00,0x00,}}, {0xE3F9,2,{0xFC,0xEE,0x00,0x00,}}, {0xE3FA,2,{0xFC,0xEF,0x00,0x00,}}, {0xE3FB,2,{0xFC,0xF0,0x00,0x00,}}, {0xE3FC,2,{0xFC,0xF1,0x00,0x00,}}, {0xE3FD,2,{0xFC,0xF2,0x00,0x00,}}, {0xE3FE,2,{0xFC,0xF3,0x00,0x00,}}, {0xE3FF,2,{0xFC,0xF4,0x00,0x00,}}, {0xE400,2,{0xFC,0xF5,0x00,0x00,}}, {0xE401,2,{0xFC,0xF6,0x00,0x00,}}, {0xE402,2,{0xFC,0xF7,0x00,0x00,}}, {0xE403,2,{0xFC,0xF8,0x00,0x00,}}, {0xE404,2,{0xFC,0xF9,0x00,0x00,}}, {0xE405,2,{0xFC,0xFA,0x00,0x00,}}, {0xE406,2,{0xFC,0xFB,0x00,0x00,}}, {0xE407,2,{0xFC,0xFC,0x00,0x00,}}, {0xE408,2,{0xFC,0xFD,0x00,0x00,}}, {0xE409,2,{0xFC,0xFE,0x00,0x00,}}, {0xE40A,2,{0xFD,0xA1,0x00,0x00,}}, {0xE40B,2,{0xFD,0xA2,0x00,0x00,}}, {0xE40C,2,{0xFD,0xA3,0x00,0x00,}}, {0xE40D,2,{0xFD,0xA4,0x00,0x00,}}, {0xE40E,2,{0xFD,0xA5,0x00,0x00,}}, {0xE40F,2,{0xFD,0xA6,0x00,0x00,}}, {0xE410,2,{0xFD,0xA7,0x00,0x00,}}, {0xE411,2,{0xFD,0xA8,0x00,0x00,}}, {0xE412,2,{0xFD,0xA9,0x00,0x00,}}, {0xE413,2,{0xFD,0xAA,0x00,0x00,}}, {0xE414,2,{0xFD,0xAB,0x00,0x00,}}, {0xE415,2,{0xFD,0xAC,0x00,0x00,}}, {0xE416,2,{0xFD,0xAD,0x00,0x00,}}, {0xE417,2,{0xFD,0xAE,0x00,0x00,}}, {0xE418,2,{0xFD,0xAF,0x00,0x00,}}, {0xE419,2,{0xFD,0xB0,0x00,0x00,}}, {0xE41A,2,{0xFD,0xB1,0x00,0x00,}}, {0xE41B,2,{0xFD,0xB2,0x00,0x00,}}, {0xE41C,2,{0xFD,0xB3,0x00,0x00,}}, {0xE41D,2,{0xFD,0xB4,0x00,0x00,}}, {0xE41E,2,{0xFD,0xB5,0x00,0x00,}}, {0xE41F,2,{0xFD,0xB6,0x00,0x00,}}, {0xE420,2,{0xFD,0xB7,0x00,0x00,}}, {0xE421,2,{0xFD,0xB8,0x00,0x00,}}, {0xE422,2,{0xFD,0xB9,0x00,0x00,}}, {0xE423,2,{0xFD,0xBA,0x00,0x00,}}, {0xE424,2,{0xFD,0xBB,0x00,0x00,}}, {0xE425,2,{0xFD,0xBC,0x00,0x00,}}, {0xE426,2,{0xFD,0xBD,0x00,0x00,}}, {0xE427,2,{0xFD,0xBE,0x00,0x00,}}, {0xE428,2,{0xFD,0xBF,0x00,0x00,}}, {0xE429,2,{0xFD,0xC0,0x00,0x00,}}, {0xE42A,2,{0xFD,0xC1,0x00,0x00,}}, {0xE42B,2,{0xFD,0xC2,0x00,0x00,}}, {0xE42C,2,{0xFD,0xC3,0x00,0x00,}}, {0xE42D,2,{0xFD,0xC4,0x00,0x00,}}, {0xE42E,2,{0xFD,0xC5,0x00,0x00,}}, {0xE42F,2,{0xFD,0xC6,0x00,0x00,}}, {0xE430,2,{0xFD,0xC7,0x00,0x00,}}, {0xE431,2,{0xFD,0xC8,0x00,0x00,}}, {0xE432,2,{0xFD,0xC9,0x00,0x00,}}, {0xE433,2,{0xFD,0xCA,0x00,0x00,}}, {0xE434,2,{0xFD,0xCB,0x00,0x00,}}, {0xE435,2,{0xFD,0xCC,0x00,0x00,}}, {0xE436,2,{0xFD,0xCD,0x00,0x00,}}, {0xE437,2,{0xFD,0xCE,0x00,0x00,}}, {0xE438,2,{0xFD,0xCF,0x00,0x00,}}, {0xE439,2,{0xFD,0xD0,0x00,0x00,}}, {0xE43A,2,{0xFD,0xD1,0x00,0x00,}}, {0xE43B,2,{0xFD,0xD2,0x00,0x00,}}, {0xE43C,2,{0xFD,0xD3,0x00,0x00,}}, {0xE43D,2,{0xFD,0xD4,0x00,0x00,}}, {0xE43E,2,{0xFD,0xD5,0x00,0x00,}}, {0xE43F,2,{0xFD,0xD6,0x00,0x00,}}, {0xE440,2,{0xFD,0xD7,0x00,0x00,}}, {0xE441,2,{0xFD,0xD8,0x00,0x00,}}, {0xE442,2,{0xFD,0xD9,0x00,0x00,}}, {0xE443,2,{0xFD,0xDA,0x00,0x00,}}, {0xE444,2,{0xFD,0xDB,0x00,0x00,}}, {0xE445,2,{0xFD,0xDC,0x00,0x00,}}, {0xE446,2,{0xFD,0xDD,0x00,0x00,}}, {0xE447,2,{0xFD,0xDE,0x00,0x00,}}, {0xE448,2,{0xFD,0xDF,0x00,0x00,}}, {0xE449,2,{0xFD,0xE0,0x00,0x00,}}, {0xE44A,2,{0xFD,0xE1,0x00,0x00,}}, {0xE44B,2,{0xFD,0xE2,0x00,0x00,}}, {0xE44C,2,{0xFD,0xE3,0x00,0x00,}}, {0xE44D,2,{0xFD,0xE4,0x00,0x00,}}, {0xE44E,2,{0xFD,0xE5,0x00,0x00,}}, {0xE44F,2,{0xFD,0xE6,0x00,0x00,}}, {0xE450,2,{0xFD,0xE7,0x00,0x00,}}, {0xE451,2,{0xFD,0xE8,0x00,0x00,}}, {0xE452,2,{0xFD,0xE9,0x00,0x00,}}, {0xE453,2,{0xFD,0xEA,0x00,0x00,}}, {0xE454,2,{0xFD,0xEB,0x00,0x00,}}, {0xE455,2,{0xFD,0xEC,0x00,0x00,}}, {0xE456,2,{0xFD,0xED,0x00,0x00,}}, {0xE457,2,{0xFD,0xEE,0x00,0x00,}}, {0xE458,2,{0xFD,0xEF,0x00,0x00,}}, {0xE459,2,{0xFD,0xF0,0x00,0x00,}}, {0xE45A,2,{0xFD,0xF1,0x00,0x00,}}, {0xE45B,2,{0xFD,0xF2,0x00,0x00,}}, {0xE45C,2,{0xFD,0xF3,0x00,0x00,}}, {0xE45D,2,{0xFD,0xF4,0x00,0x00,}}, {0xE45E,2,{0xFD,0xF5,0x00,0x00,}}, {0xE45F,2,{0xFD,0xF6,0x00,0x00,}}, {0xE460,2,{0xFD,0xF7,0x00,0x00,}}, {0xE461,2,{0xFD,0xF8,0x00,0x00,}}, {0xE462,2,{0xFD,0xF9,0x00,0x00,}}, {0xE463,2,{0xFD,0xFA,0x00,0x00,}}, {0xE464,2,{0xFD,0xFB,0x00,0x00,}}, {0xE465,2,{0xFD,0xFC,0x00,0x00,}}, {0xE466,2,{0xFD,0xFD,0x00,0x00,}}, {0xE467,2,{0xFD,0xFE,0x00,0x00,}}, {0xE468,2,{0xFE,0xA1,0x00,0x00,}}, {0xE469,2,{0xFE,0xA2,0x00,0x00,}}, {0xE46A,2,{0xFE,0xA3,0x00,0x00,}}, {0xE46B,2,{0xFE,0xA4,0x00,0x00,}}, {0xE46C,2,{0xFE,0xA5,0x00,0x00,}}, {0xE46D,2,{0xFE,0xA6,0x00,0x00,}}, {0xE46E,2,{0xFE,0xA7,0x00,0x00,}}, {0xE46F,2,{0xFE,0xA8,0x00,0x00,}}, {0xE470,2,{0xFE,0xA9,0x00,0x00,}}, {0xE471,2,{0xFE,0xAA,0x00,0x00,}}, {0xE472,2,{0xFE,0xAB,0x00,0x00,}}, {0xE473,2,{0xFE,0xAC,0x00,0x00,}}, {0xE474,2,{0xFE,0xAD,0x00,0x00,}}, {0xE475,2,{0xFE,0xAE,0x00,0x00,}}, {0xE476,2,{0xFE,0xAF,0x00,0x00,}}, {0xE477,2,{0xFE,0xB0,0x00,0x00,}}, {0xE478,2,{0xFE,0xB1,0x00,0x00,}}, {0xE479,2,{0xFE,0xB2,0x00,0x00,}}, {0xE47A,2,{0xFE,0xB3,0x00,0x00,}}, {0xE47B,2,{0xFE,0xB4,0x00,0x00,}}, {0xE47C,2,{0xFE,0xB5,0x00,0x00,}}, {0xE47D,2,{0xFE,0xB6,0x00,0x00,}}, {0xE47E,2,{0xFE,0xB7,0x00,0x00,}}, {0xE47F,2,{0xFE,0xB8,0x00,0x00,}}, {0xE480,2,{0xFE,0xB9,0x00,0x00,}}, {0xE481,2,{0xFE,0xBA,0x00,0x00,}}, {0xE482,2,{0xFE,0xBB,0x00,0x00,}}, {0xE483,2,{0xFE,0xBC,0x00,0x00,}}, {0xE484,2,{0xFE,0xBD,0x00,0x00,}}, {0xE485,2,{0xFE,0xBE,0x00,0x00,}}, {0xE486,2,{0xFE,0xBF,0x00,0x00,}}, {0xE487,2,{0xFE,0xC0,0x00,0x00,}}, {0xE488,2,{0xFE,0xC1,0x00,0x00,}}, {0xE489,2,{0xFE,0xC2,0x00,0x00,}}, {0xE48A,2,{0xFE,0xC3,0x00,0x00,}}, {0xE48B,2,{0xFE,0xC4,0x00,0x00,}}, {0xE48C,2,{0xFE,0xC5,0x00,0x00,}}, {0xE48D,2,{0xFE,0xC6,0x00,0x00,}}, {0xE48E,2,{0xFE,0xC7,0x00,0x00,}}, {0xE48F,2,{0xFE,0xC8,0x00,0x00,}}, {0xE490,2,{0xFE,0xC9,0x00,0x00,}}, {0xE491,2,{0xFE,0xCA,0x00,0x00,}}, {0xE492,2,{0xFE,0xCB,0x00,0x00,}}, {0xE493,2,{0xFE,0xCC,0x00,0x00,}}, {0xE494,2,{0xFE,0xCD,0x00,0x00,}}, {0xE495,2,{0xFE,0xCE,0x00,0x00,}}, {0xE496,2,{0xFE,0xCF,0x00,0x00,}}, {0xE497,2,{0xFE,0xD0,0x00,0x00,}}, {0xE498,2,{0xFE,0xD1,0x00,0x00,}}, {0xE499,2,{0xFE,0xD2,0x00,0x00,}}, {0xE49A,2,{0xFE,0xD3,0x00,0x00,}}, {0xE49B,2,{0xFE,0xD4,0x00,0x00,}}, {0xE49C,2,{0xFE,0xD5,0x00,0x00,}}, {0xE49D,2,{0xFE,0xD6,0x00,0x00,}}, {0xE49E,2,{0xFE,0xD7,0x00,0x00,}}, {0xE49F,2,{0xFE,0xD8,0x00,0x00,}}, {0xE4A0,2,{0xFE,0xD9,0x00,0x00,}}, {0xE4A1,2,{0xFE,0xDA,0x00,0x00,}}, {0xE4A2,2,{0xFE,0xDB,0x00,0x00,}}, {0xE4A3,2,{0xFE,0xDC,0x00,0x00,}}, {0xE4A4,2,{0xFE,0xDD,0x00,0x00,}}, {0xE4A5,2,{0xFE,0xDE,0x00,0x00,}}, {0xE4A6,2,{0xFE,0xDF,0x00,0x00,}}, {0xE4A7,2,{0xFE,0xE0,0x00,0x00,}}, {0xE4A8,2,{0xFE,0xE1,0x00,0x00,}}, {0xE4A9,2,{0xFE,0xE2,0x00,0x00,}}, {0xE4AA,2,{0xFE,0xE3,0x00,0x00,}}, {0xE4AB,2,{0xFE,0xE4,0x00,0x00,}}, {0xE4AC,2,{0xFE,0xE5,0x00,0x00,}}, {0xE4AD,2,{0xFE,0xE6,0x00,0x00,}}, {0xE4AE,2,{0xFE,0xE7,0x00,0x00,}}, {0xE4AF,2,{0xFE,0xE8,0x00,0x00,}}, {0xE4B0,2,{0xFE,0xE9,0x00,0x00,}}, {0xE4B1,2,{0xFE,0xEA,0x00,0x00,}}, {0xE4B2,2,{0xFE,0xEB,0x00,0x00,}}, {0xE4B3,2,{0xFE,0xEC,0x00,0x00,}}, {0xE4B4,2,{0xFE,0xED,0x00,0x00,}}, {0xE4B5,2,{0xFE,0xEE,0x00,0x00,}}, {0xE4B6,2,{0xFE,0xEF,0x00,0x00,}}, {0xE4B7,2,{0xFE,0xF0,0x00,0x00,}}, {0xE4B8,2,{0xFE,0xF1,0x00,0x00,}}, {0xE4B9,2,{0xFE,0xF2,0x00,0x00,}}, {0xE4BA,2,{0xFE,0xF3,0x00,0x00,}}, {0xE4BB,2,{0xFE,0xF4,0x00,0x00,}}, {0xE4BC,2,{0xFE,0xF5,0x00,0x00,}}, {0xE4BD,2,{0xFE,0xF6,0x00,0x00,}}, {0xE4BE,2,{0xFE,0xF7,0x00,0x00,}}, {0xE4BF,2,{0xFE,0xF8,0x00,0x00,}}, {0xE4C0,2,{0xFE,0xF9,0x00,0x00,}}, {0xE4C1,2,{0xFE,0xFA,0x00,0x00,}}, {0xE4C2,2,{0xFE,0xFB,0x00,0x00,}}, {0xE4C3,2,{0xFE,0xFC,0x00,0x00,}}, {0xE4C4,2,{0xFE,0xFD,0x00,0x00,}}, {0xE4C5,2,{0xFE,0xFE,0x00,0x00,}}, {0xE4C6,2,{0xA1,0x40,0x00,0x00,}}, {0xE4C7,2,{0xA1,0x41,0x00,0x00,}}, {0xE4C8,2,{0xA1,0x42,0x00,0x00,}}, {0xE4C9,2,{0xA1,0x43,0x00,0x00,}}, {0xE4CA,2,{0xA1,0x44,0x00,0x00,}}, {0xE4CB,2,{0xA1,0x45,0x00,0x00,}}, {0xE4CC,2,{0xA1,0x46,0x00,0x00,}}, {0xE4CD,2,{0xA1,0x47,0x00,0x00,}}, {0xE4CE,2,{0xA1,0x48,0x00,0x00,}}, {0xE4CF,2,{0xA1,0x49,0x00,0x00,}}, {0xE4D0,2,{0xA1,0x4A,0x00,0x00,}}, {0xE4D1,2,{0xA1,0x4B,0x00,0x00,}}, {0xE4D2,2,{0xA1,0x4C,0x00,0x00,}}, {0xE4D3,2,{0xA1,0x4D,0x00,0x00,}}, {0xE4D4,2,{0xA1,0x4E,0x00,0x00,}}, {0xE4D5,2,{0xA1,0x4F,0x00,0x00,}}, {0xE4D6,2,{0xA1,0x50,0x00,0x00,}}, {0xE4D7,2,{0xA1,0x51,0x00,0x00,}}, {0xE4D8,2,{0xA1,0x52,0x00,0x00,}}, {0xE4D9,2,{0xA1,0x53,0x00,0x00,}}, {0xE4DA,2,{0xA1,0x54,0x00,0x00,}}, {0xE4DB,2,{0xA1,0x55,0x00,0x00,}}, {0xE4DC,2,{0xA1,0x56,0x00,0x00,}}, {0xE4DD,2,{0xA1,0x57,0x00,0x00,}}, {0xE4DE,2,{0xA1,0x58,0x00,0x00,}}, {0xE4DF,2,{0xA1,0x59,0x00,0x00,}}, {0xE4E0,2,{0xA1,0x5A,0x00,0x00,}}, {0xE4E1,2,{0xA1,0x5B,0x00,0x00,}}, {0xE4E2,2,{0xA1,0x5C,0x00,0x00,}}, {0xE4E3,2,{0xA1,0x5D,0x00,0x00,}}, {0xE4E4,2,{0xA1,0x5E,0x00,0x00,}}, {0xE4E5,2,{0xA1,0x5F,0x00,0x00,}}, {0xE4E6,2,{0xA1,0x60,0x00,0x00,}}, {0xE4E7,2,{0xA1,0x61,0x00,0x00,}}, {0xE4E8,2,{0xA1,0x62,0x00,0x00,}}, {0xE4E9,2,{0xA1,0x63,0x00,0x00,}}, {0xE4EA,2,{0xA1,0x64,0x00,0x00,}}, {0xE4EB,2,{0xA1,0x65,0x00,0x00,}}, {0xE4EC,2,{0xA1,0x66,0x00,0x00,}}, {0xE4ED,2,{0xA1,0x67,0x00,0x00,}}, {0xE4EE,2,{0xA1,0x68,0x00,0x00,}}, {0xE4EF,2,{0xA1,0x69,0x00,0x00,}}, {0xE4F0,2,{0xA1,0x6A,0x00,0x00,}}, {0xE4F1,2,{0xA1,0x6B,0x00,0x00,}}, {0xE4F2,2,{0xA1,0x6C,0x00,0x00,}}, {0xE4F3,2,{0xA1,0x6D,0x00,0x00,}}, {0xE4F4,2,{0xA1,0x6E,0x00,0x00,}}, {0xE4F5,2,{0xA1,0x6F,0x00,0x00,}}, {0xE4F6,2,{0xA1,0x70,0x00,0x00,}}, {0xE4F7,2,{0xA1,0x71,0x00,0x00,}}, {0xE4F8,2,{0xA1,0x72,0x00,0x00,}}, {0xE4F9,2,{0xA1,0x73,0x00,0x00,}}, {0xE4FA,2,{0xA1,0x74,0x00,0x00,}}, {0xE4FB,2,{0xA1,0x75,0x00,0x00,}}, {0xE4FC,2,{0xA1,0x76,0x00,0x00,}}, {0xE4FD,2,{0xA1,0x77,0x00,0x00,}}, {0xE4FE,2,{0xA1,0x78,0x00,0x00,}}, {0xE4FF,2,{0xA1,0x79,0x00,0x00,}}, {0xE500,2,{0xA1,0x7A,0x00,0x00,}}, {0xE501,2,{0xA1,0x7B,0x00,0x00,}}, {0xE502,2,{0xA1,0x7C,0x00,0x00,}}, {0xE503,2,{0xA1,0x7D,0x00,0x00,}}, {0xE504,2,{0xA1,0x7E,0x00,0x00,}}, {0xE505,2,{0xA1,0x80,0x00,0x00,}}, {0xE506,2,{0xA1,0x81,0x00,0x00,}}, {0xE507,2,{0xA1,0x82,0x00,0x00,}}, {0xE508,2,{0xA1,0x83,0x00,0x00,}}, {0xE509,2,{0xA1,0x84,0x00,0x00,}}, {0xE50A,2,{0xA1,0x85,0x00,0x00,}}, {0xE50B,2,{0xA1,0x86,0x00,0x00,}}, {0xE50C,2,{0xA1,0x87,0x00,0x00,}}, {0xE50D,2,{0xA1,0x88,0x00,0x00,}}, {0xE50E,2,{0xA1,0x89,0x00,0x00,}}, {0xE50F,2,{0xA1,0x8A,0x00,0x00,}}, {0xE510,2,{0xA1,0x8B,0x00,0x00,}}, {0xE511,2,{0xA1,0x8C,0x00,0x00,}}, {0xE512,2,{0xA1,0x8D,0x00,0x00,}}, {0xE513,2,{0xA1,0x8E,0x00,0x00,}}, {0xE514,2,{0xA1,0x8F,0x00,0x00,}}, {0xE515,2,{0xA1,0x90,0x00,0x00,}}, {0xE516,2,{0xA1,0x91,0x00,0x00,}}, {0xE517,2,{0xA1,0x92,0x00,0x00,}}, {0xE518,2,{0xA1,0x93,0x00,0x00,}}, {0xE519,2,{0xA1,0x94,0x00,0x00,}}, {0xE51A,2,{0xA1,0x95,0x00,0x00,}}, {0xE51B,2,{0xA1,0x96,0x00,0x00,}}, {0xE51C,2,{0xA1,0x97,0x00,0x00,}}, {0xE51D,2,{0xA1,0x98,0x00,0x00,}}, {0xE51E,2,{0xA1,0x99,0x00,0x00,}}, {0xE51F,2,{0xA1,0x9A,0x00,0x00,}}, {0xE520,2,{0xA1,0x9B,0x00,0x00,}}, {0xE521,2,{0xA1,0x9C,0x00,0x00,}}, {0xE522,2,{0xA1,0x9D,0x00,0x00,}}, {0xE523,2,{0xA1,0x9E,0x00,0x00,}}, {0xE524,2,{0xA1,0x9F,0x00,0x00,}}, {0xE525,2,{0xA1,0xA0,0x00,0x00,}}, {0xE526,2,{0xA2,0x40,0x00,0x00,}}, {0xE527,2,{0xA2,0x41,0x00,0x00,}}, {0xE528,2,{0xA2,0x42,0x00,0x00,}}, {0xE529,2,{0xA2,0x43,0x00,0x00,}}, {0xE52A,2,{0xA2,0x44,0x00,0x00,}}, {0xE52B,2,{0xA2,0x45,0x00,0x00,}}, {0xE52C,2,{0xA2,0x46,0x00,0x00,}}, {0xE52D,2,{0xA2,0x47,0x00,0x00,}}, {0xE52E,2,{0xA2,0x48,0x00,0x00,}}, {0xE52F,2,{0xA2,0x49,0x00,0x00,}}, {0xE530,2,{0xA2,0x4A,0x00,0x00,}}, {0xE531,2,{0xA2,0x4B,0x00,0x00,}}, {0xE532,2,{0xA2,0x4C,0x00,0x00,}}, {0xE533,2,{0xA2,0x4D,0x00,0x00,}}, {0xE534,2,{0xA2,0x4E,0x00,0x00,}}, {0xE535,2,{0xA2,0x4F,0x00,0x00,}}, {0xE536,2,{0xA2,0x50,0x00,0x00,}}, {0xE537,2,{0xA2,0x51,0x00,0x00,}}, {0xE538,2,{0xA2,0x52,0x00,0x00,}}, {0xE539,2,{0xA2,0x53,0x00,0x00,}}, {0xE53A,2,{0xA2,0x54,0x00,0x00,}}, {0xE53B,2,{0xA2,0x55,0x00,0x00,}}, {0xE53C,2,{0xA2,0x56,0x00,0x00,}}, {0xE53D,2,{0xA2,0x57,0x00,0x00,}}, {0xE53E,2,{0xA2,0x58,0x00,0x00,}}, {0xE53F,2,{0xA2,0x59,0x00,0x00,}}, {0xE540,2,{0xA2,0x5A,0x00,0x00,}}, {0xE541,2,{0xA2,0x5B,0x00,0x00,}}, {0xE542,2,{0xA2,0x5C,0x00,0x00,}}, {0xE543,2,{0xA2,0x5D,0x00,0x00,}}, {0xE544,2,{0xA2,0x5E,0x00,0x00,}}, {0xE545,2,{0xA2,0x5F,0x00,0x00,}}, {0xE546,2,{0xA2,0x60,0x00,0x00,}}, {0xE547,2,{0xA2,0x61,0x00,0x00,}}, {0xE548,2,{0xA2,0x62,0x00,0x00,}}, {0xE549,2,{0xA2,0x63,0x00,0x00,}}, {0xE54A,2,{0xA2,0x64,0x00,0x00,}}, {0xE54B,2,{0xA2,0x65,0x00,0x00,}}, {0xE54C,2,{0xA2,0x66,0x00,0x00,}}, {0xE54D,2,{0xA2,0x67,0x00,0x00,}}, {0xE54E,2,{0xA2,0x68,0x00,0x00,}}, {0xE54F,2,{0xA2,0x69,0x00,0x00,}}, {0xE550,2,{0xA2,0x6A,0x00,0x00,}}, {0xE551,2,{0xA2,0x6B,0x00,0x00,}}, {0xE552,2,{0xA2,0x6C,0x00,0x00,}}, {0xE553,2,{0xA2,0x6D,0x00,0x00,}}, {0xE554,2,{0xA2,0x6E,0x00,0x00,}}, {0xE555,2,{0xA2,0x6F,0x00,0x00,}}, {0xE556,2,{0xA2,0x70,0x00,0x00,}}, {0xE557,2,{0xA2,0x71,0x00,0x00,}}, {0xE558,2,{0xA2,0x72,0x00,0x00,}}, {0xE559,2,{0xA2,0x73,0x00,0x00,}}, {0xE55A,2,{0xA2,0x74,0x00,0x00,}}, {0xE55B,2,{0xA2,0x75,0x00,0x00,}}, {0xE55C,2,{0xA2,0x76,0x00,0x00,}}, {0xE55D,2,{0xA2,0x77,0x00,0x00,}}, {0xE55E,2,{0xA2,0x78,0x00,0x00,}}, {0xE55F,2,{0xA2,0x79,0x00,0x00,}}, {0xE560,2,{0xA2,0x7A,0x00,0x00,}}, {0xE561,2,{0xA2,0x7B,0x00,0x00,}}, {0xE562,2,{0xA2,0x7C,0x00,0x00,}}, {0xE563,2,{0xA2,0x7D,0x00,0x00,}}, {0xE564,2,{0xA2,0x7E,0x00,0x00,}}, {0xE565,2,{0xA2,0x80,0x00,0x00,}}, {0xE566,2,{0xA2,0x81,0x00,0x00,}}, {0xE567,2,{0xA2,0x82,0x00,0x00,}}, {0xE568,2,{0xA2,0x83,0x00,0x00,}}, {0xE569,2,{0xA2,0x84,0x00,0x00,}}, {0xE56A,2,{0xA2,0x85,0x00,0x00,}}, {0xE56B,2,{0xA2,0x86,0x00,0x00,}}, {0xE56C,2,{0xA2,0x87,0x00,0x00,}}, {0xE56D,2,{0xA2,0x88,0x00,0x00,}}, {0xE56E,2,{0xA2,0x89,0x00,0x00,}}, {0xE56F,2,{0xA2,0x8A,0x00,0x00,}}, {0xE570,2,{0xA2,0x8B,0x00,0x00,}}, {0xE571,2,{0xA2,0x8C,0x00,0x00,}}, {0xE572,2,{0xA2,0x8D,0x00,0x00,}}, {0xE573,2,{0xA2,0x8E,0x00,0x00,}}, {0xE574,2,{0xA2,0x8F,0x00,0x00,}}, {0xE575,2,{0xA2,0x90,0x00,0x00,}}, {0xE576,2,{0xA2,0x91,0x00,0x00,}}, {0xE577,2,{0xA2,0x92,0x00,0x00,}}, {0xE578,2,{0xA2,0x93,0x00,0x00,}}, {0xE579,2,{0xA2,0x94,0x00,0x00,}}, {0xE57A,2,{0xA2,0x95,0x00,0x00,}}, {0xE57B,2,{0xA2,0x96,0x00,0x00,}}, {0xE57C,2,{0xA2,0x97,0x00,0x00,}}, {0xE57D,2,{0xA2,0x98,0x00,0x00,}}, {0xE57E,2,{0xA2,0x99,0x00,0x00,}}, {0xE57F,2,{0xA2,0x9A,0x00,0x00,}}, {0xE580,2,{0xA2,0x9B,0x00,0x00,}}, {0xE581,2,{0xA2,0x9C,0x00,0x00,}}, {0xE582,2,{0xA2,0x9D,0x00,0x00,}}, {0xE583,2,{0xA2,0x9E,0x00,0x00,}}, {0xE584,2,{0xA2,0x9F,0x00,0x00,}}, {0xE585,2,{0xA2,0xA0,0x00,0x00,}}, {0xE586,2,{0xA3,0x40,0x00,0x00,}}, {0xE587,2,{0xA3,0x41,0x00,0x00,}}, {0xE588,2,{0xA3,0x42,0x00,0x00,}}, {0xE589,2,{0xA3,0x43,0x00,0x00,}}, {0xE58A,2,{0xA3,0x44,0x00,0x00,}}, {0xE58B,2,{0xA3,0x45,0x00,0x00,}}, {0xE58C,2,{0xA3,0x46,0x00,0x00,}}, {0xE58D,2,{0xA3,0x47,0x00,0x00,}}, {0xE58E,2,{0xA3,0x48,0x00,0x00,}}, {0xE58F,2,{0xA3,0x49,0x00,0x00,}}, {0xE590,2,{0xA3,0x4A,0x00,0x00,}}, {0xE591,2,{0xA3,0x4B,0x00,0x00,}}, {0xE592,2,{0xA3,0x4C,0x00,0x00,}}, {0xE593,2,{0xA3,0x4D,0x00,0x00,}}, {0xE594,2,{0xA3,0x4E,0x00,0x00,}}, {0xE595,2,{0xA3,0x4F,0x00,0x00,}}, {0xE596,2,{0xA3,0x50,0x00,0x00,}}, {0xE597,2,{0xA3,0x51,0x00,0x00,}}, {0xE598,2,{0xA3,0x52,0x00,0x00,}}, {0xE599,2,{0xA3,0x53,0x00,0x00,}}, {0xE59A,2,{0xA3,0x54,0x00,0x00,}}, {0xE59B,2,{0xA3,0x55,0x00,0x00,}}, {0xE59C,2,{0xA3,0x56,0x00,0x00,}}, {0xE59D,2,{0xA3,0x57,0x00,0x00,}}, {0xE59E,2,{0xA3,0x58,0x00,0x00,}}, {0xE59F,2,{0xA3,0x59,0x00,0x00,}}, {0xE5A0,2,{0xA3,0x5A,0x00,0x00,}}, {0xE5A1,2,{0xA3,0x5B,0x00,0x00,}}, {0xE5A2,2,{0xA3,0x5C,0x00,0x00,}}, {0xE5A3,2,{0xA3,0x5D,0x00,0x00,}}, {0xE5A4,2,{0xA3,0x5E,0x00,0x00,}}, {0xE5A5,2,{0xA3,0x5F,0x00,0x00,}}, {0xE5A6,2,{0xA3,0x60,0x00,0x00,}}, {0xE5A7,2,{0xA3,0x61,0x00,0x00,}}, {0xE5A8,2,{0xA3,0x62,0x00,0x00,}}, {0xE5A9,2,{0xA3,0x63,0x00,0x00,}}, {0xE5AA,2,{0xA3,0x64,0x00,0x00,}}, {0xE5AB,2,{0xA3,0x65,0x00,0x00,}}, {0xE5AC,2,{0xA3,0x66,0x00,0x00,}}, {0xE5AD,2,{0xA3,0x67,0x00,0x00,}}, {0xE5AE,2,{0xA3,0x68,0x00,0x00,}}, {0xE5AF,2,{0xA3,0x69,0x00,0x00,}}, {0xE5B0,2,{0xA3,0x6A,0x00,0x00,}}, {0xE5B1,2,{0xA3,0x6B,0x00,0x00,}}, {0xE5B2,2,{0xA3,0x6C,0x00,0x00,}}, {0xE5B3,2,{0xA3,0x6D,0x00,0x00,}}, {0xE5B4,2,{0xA3,0x6E,0x00,0x00,}}, {0xE5B5,2,{0xA3,0x6F,0x00,0x00,}}, {0xE5B6,2,{0xA3,0x70,0x00,0x00,}}, {0xE5B7,2,{0xA3,0x71,0x00,0x00,}}, {0xE5B8,2,{0xA3,0x72,0x00,0x00,}}, {0xE5B9,2,{0xA3,0x73,0x00,0x00,}}, {0xE5BA,2,{0xA3,0x74,0x00,0x00,}}, {0xE5BB,2,{0xA3,0x75,0x00,0x00,}}, {0xE5BC,2,{0xA3,0x76,0x00,0x00,}}, {0xE5BD,2,{0xA3,0x77,0x00,0x00,}}, {0xE5BE,2,{0xA3,0x78,0x00,0x00,}}, {0xE5BF,2,{0xA3,0x79,0x00,0x00,}}, {0xE5C0,2,{0xA3,0x7A,0x00,0x00,}}, {0xE5C1,2,{0xA3,0x7B,0x00,0x00,}}, {0xE5C2,2,{0xA3,0x7C,0x00,0x00,}}, {0xE5C3,2,{0xA3,0x7D,0x00,0x00,}}, {0xE5C4,2,{0xA3,0x7E,0x00,0x00,}}, {0xE5C5,2,{0xA3,0x80,0x00,0x00,}}, {0xE5C6,2,{0xA3,0x81,0x00,0x00,}}, {0xE5C7,2,{0xA3,0x82,0x00,0x00,}}, {0xE5C8,2,{0xA3,0x83,0x00,0x00,}}, {0xE5C9,2,{0xA3,0x84,0x00,0x00,}}, {0xE5CA,2,{0xA3,0x85,0x00,0x00,}}, {0xE5CB,2,{0xA3,0x86,0x00,0x00,}}, {0xE5CC,2,{0xA3,0x87,0x00,0x00,}}, {0xE5CD,2,{0xA3,0x88,0x00,0x00,}}, {0xE5CE,2,{0xA3,0x89,0x00,0x00,}}, {0xE5CF,2,{0xA3,0x8A,0x00,0x00,}}, {0xE5D0,2,{0xA3,0x8B,0x00,0x00,}}, {0xE5D1,2,{0xA3,0x8C,0x00,0x00,}}, {0xE5D2,2,{0xA3,0x8D,0x00,0x00,}}, {0xE5D3,2,{0xA3,0x8E,0x00,0x00,}}, {0xE5D4,2,{0xA3,0x8F,0x00,0x00,}}, {0xE5D5,2,{0xA3,0x90,0x00,0x00,}}, {0xE5D6,2,{0xA3,0x91,0x00,0x00,}}, {0xE5D7,2,{0xA3,0x92,0x00,0x00,}}, {0xE5D8,2,{0xA3,0x93,0x00,0x00,}}, {0xE5D9,2,{0xA3,0x94,0x00,0x00,}}, {0xE5DA,2,{0xA3,0x95,0x00,0x00,}}, {0xE5DB,2,{0xA3,0x96,0x00,0x00,}}, {0xE5DC,2,{0xA3,0x97,0x00,0x00,}}, {0xE5DD,2,{0xA3,0x98,0x00,0x00,}}, {0xE5DE,2,{0xA3,0x99,0x00,0x00,}}, {0xE5DF,2,{0xA3,0x9A,0x00,0x00,}}, {0xE5E0,2,{0xA3,0x9B,0x00,0x00,}}, {0xE5E1,2,{0xA3,0x9C,0x00,0x00,}}, {0xE5E2,2,{0xA3,0x9D,0x00,0x00,}}, {0xE5E3,2,{0xA3,0x9E,0x00,0x00,}}, {0xE5E4,2,{0xA3,0x9F,0x00,0x00,}}, {0xE5E5,2,{0xA3,0xA0,0x00,0x00,}}, {0xE5E6,2,{0xA4,0x40,0x00,0x00,}}, {0xE5E7,2,{0xA4,0x41,0x00,0x00,}}, {0xE5E8,2,{0xA4,0x42,0x00,0x00,}}, {0xE5E9,2,{0xA4,0x43,0x00,0x00,}}, {0xE5EA,2,{0xA4,0x44,0x00,0x00,}}, {0xE5EB,2,{0xA4,0x45,0x00,0x00,}}, {0xE5EC,2,{0xA4,0x46,0x00,0x00,}}, {0xE5ED,2,{0xA4,0x47,0x00,0x00,}}, {0xE5EE,2,{0xA4,0x48,0x00,0x00,}}, {0xE5EF,2,{0xA4,0x49,0x00,0x00,}}, {0xE5F0,2,{0xA4,0x4A,0x00,0x00,}}, {0xE5F1,2,{0xA4,0x4B,0x00,0x00,}}, {0xE5F2,2,{0xA4,0x4C,0x00,0x00,}}, {0xE5F3,2,{0xA4,0x4D,0x00,0x00,}}, {0xE5F4,2,{0xA4,0x4E,0x00,0x00,}}, {0xE5F5,2,{0xA4,0x4F,0x00,0x00,}}, {0xE5F6,2,{0xA4,0x50,0x00,0x00,}}, {0xE5F7,2,{0xA4,0x51,0x00,0x00,}}, {0xE5F8,2,{0xA4,0x52,0x00,0x00,}}, {0xE5F9,2,{0xA4,0x53,0x00,0x00,}}, {0xE5FA,2,{0xA4,0x54,0x00,0x00,}}, {0xE5FB,2,{0xA4,0x55,0x00,0x00,}}, {0xE5FC,2,{0xA4,0x56,0x00,0x00,}}, {0xE5FD,2,{0xA4,0x57,0x00,0x00,}}, {0xE5FE,2,{0xA4,0x58,0x00,0x00,}}, {0xE5FF,2,{0xA4,0x59,0x00,0x00,}}, {0xE600,2,{0xA4,0x5A,0x00,0x00,}}, {0xE601,2,{0xA4,0x5B,0x00,0x00,}}, {0xE602,2,{0xA4,0x5C,0x00,0x00,}}, {0xE603,2,{0xA4,0x5D,0x00,0x00,}}, {0xE604,2,{0xA4,0x5E,0x00,0x00,}}, {0xE605,2,{0xA4,0x5F,0x00,0x00,}}, {0xE606,2,{0xA4,0x60,0x00,0x00,}}, {0xE607,2,{0xA4,0x61,0x00,0x00,}}, {0xE608,2,{0xA4,0x62,0x00,0x00,}}, {0xE609,2,{0xA4,0x63,0x00,0x00,}}, {0xE60A,2,{0xA4,0x64,0x00,0x00,}}, {0xE60B,2,{0xA4,0x65,0x00,0x00,}}, {0xE60C,2,{0xA4,0x66,0x00,0x00,}}, {0xE60D,2,{0xA4,0x67,0x00,0x00,}}, {0xE60E,2,{0xA4,0x68,0x00,0x00,}}, {0xE60F,2,{0xA4,0x69,0x00,0x00,}}, {0xE610,2,{0xA4,0x6A,0x00,0x00,}}, {0xE611,2,{0xA4,0x6B,0x00,0x00,}}, {0xE612,2,{0xA4,0x6C,0x00,0x00,}}, {0xE613,2,{0xA4,0x6D,0x00,0x00,}}, {0xE614,2,{0xA4,0x6E,0x00,0x00,}}, {0xE615,2,{0xA4,0x6F,0x00,0x00,}}, {0xE616,2,{0xA4,0x70,0x00,0x00,}}, {0xE617,2,{0xA4,0x71,0x00,0x00,}}, {0xE618,2,{0xA4,0x72,0x00,0x00,}}, {0xE619,2,{0xA4,0x73,0x00,0x00,}}, {0xE61A,2,{0xA4,0x74,0x00,0x00,}}, {0xE61B,2,{0xA4,0x75,0x00,0x00,}}, {0xE61C,2,{0xA4,0x76,0x00,0x00,}}, {0xE61D,2,{0xA4,0x77,0x00,0x00,}}, {0xE61E,2,{0xA4,0x78,0x00,0x00,}}, {0xE61F,2,{0xA4,0x79,0x00,0x00,}}, {0xE620,2,{0xA4,0x7A,0x00,0x00,}}, {0xE621,2,{0xA4,0x7B,0x00,0x00,}}, {0xE622,2,{0xA4,0x7C,0x00,0x00,}}, {0xE623,2,{0xA4,0x7D,0x00,0x00,}}, {0xE624,2,{0xA4,0x7E,0x00,0x00,}}, {0xE625,2,{0xA4,0x80,0x00,0x00,}}, {0xE626,2,{0xA4,0x81,0x00,0x00,}}, {0xE627,2,{0xA4,0x82,0x00,0x00,}}, {0xE628,2,{0xA4,0x83,0x00,0x00,}}, {0xE629,2,{0xA4,0x84,0x00,0x00,}}, {0xE62A,2,{0xA4,0x85,0x00,0x00,}}, {0xE62B,2,{0xA4,0x86,0x00,0x00,}}, {0xE62C,2,{0xA4,0x87,0x00,0x00,}}, {0xE62D,2,{0xA4,0x88,0x00,0x00,}}, {0xE62E,2,{0xA4,0x89,0x00,0x00,}}, {0xE62F,2,{0xA4,0x8A,0x00,0x00,}}, {0xE630,2,{0xA4,0x8B,0x00,0x00,}}, {0xE631,2,{0xA4,0x8C,0x00,0x00,}}, {0xE632,2,{0xA4,0x8D,0x00,0x00,}}, {0xE633,2,{0xA4,0x8E,0x00,0x00,}}, {0xE634,2,{0xA4,0x8F,0x00,0x00,}}, {0xE635,2,{0xA4,0x90,0x00,0x00,}}, {0xE636,2,{0xA4,0x91,0x00,0x00,}}, {0xE637,2,{0xA4,0x92,0x00,0x00,}}, {0xE638,2,{0xA4,0x93,0x00,0x00,}}, {0xE639,2,{0xA4,0x94,0x00,0x00,}}, {0xE63A,2,{0xA4,0x95,0x00,0x00,}}, {0xE63B,2,{0xA4,0x96,0x00,0x00,}}, {0xE63C,2,{0xA4,0x97,0x00,0x00,}}, {0xE63D,2,{0xA4,0x98,0x00,0x00,}}, {0xE63E,2,{0xA4,0x99,0x00,0x00,}}, {0xE63F,2,{0xA4,0x9A,0x00,0x00,}}, {0xE640,2,{0xA4,0x9B,0x00,0x00,}}, {0xE641,2,{0xA4,0x9C,0x00,0x00,}}, {0xE642,2,{0xA4,0x9D,0x00,0x00,}}, {0xE643,2,{0xA4,0x9E,0x00,0x00,}}, {0xE644,2,{0xA4,0x9F,0x00,0x00,}}, {0xE645,2,{0xA4,0xA0,0x00,0x00,}}, {0xE646,2,{0xA5,0x40,0x00,0x00,}}, {0xE647,2,{0xA5,0x41,0x00,0x00,}}, {0xE648,2,{0xA5,0x42,0x00,0x00,}}, {0xE649,2,{0xA5,0x43,0x00,0x00,}}, {0xE64A,2,{0xA5,0x44,0x00,0x00,}}, {0xE64B,2,{0xA5,0x45,0x00,0x00,}}, {0xE64C,2,{0xA5,0x46,0x00,0x00,}}, {0xE64D,2,{0xA5,0x47,0x00,0x00,}}, {0xE64E,2,{0xA5,0x48,0x00,0x00,}}, {0xE64F,2,{0xA5,0x49,0x00,0x00,}}, {0xE650,2,{0xA5,0x4A,0x00,0x00,}}, {0xE651,2,{0xA5,0x4B,0x00,0x00,}}, {0xE652,2,{0xA5,0x4C,0x00,0x00,}}, {0xE653,2,{0xA5,0x4D,0x00,0x00,}}, {0xE654,2,{0xA5,0x4E,0x00,0x00,}}, {0xE655,2,{0xA5,0x4F,0x00,0x00,}}, {0xE656,2,{0xA5,0x50,0x00,0x00,}}, {0xE657,2,{0xA5,0x51,0x00,0x00,}}, {0xE658,2,{0xA5,0x52,0x00,0x00,}}, {0xE659,2,{0xA5,0x53,0x00,0x00,}}, {0xE65A,2,{0xA5,0x54,0x00,0x00,}}, {0xE65B,2,{0xA5,0x55,0x00,0x00,}}, {0xE65C,2,{0xA5,0x56,0x00,0x00,}}, {0xE65D,2,{0xA5,0x57,0x00,0x00,}}, {0xE65E,2,{0xA5,0x58,0x00,0x00,}}, {0xE65F,2,{0xA5,0x59,0x00,0x00,}}, {0xE660,2,{0xA5,0x5A,0x00,0x00,}}, {0xE661,2,{0xA5,0x5B,0x00,0x00,}}, {0xE662,2,{0xA5,0x5C,0x00,0x00,}}, {0xE663,2,{0xA5,0x5D,0x00,0x00,}}, {0xE664,2,{0xA5,0x5E,0x00,0x00,}}, {0xE665,2,{0xA5,0x5F,0x00,0x00,}}, {0xE666,2,{0xA5,0x60,0x00,0x00,}}, {0xE667,2,{0xA5,0x61,0x00,0x00,}}, {0xE668,2,{0xA5,0x62,0x00,0x00,}}, {0xE669,2,{0xA5,0x63,0x00,0x00,}}, {0xE66A,2,{0xA5,0x64,0x00,0x00,}}, {0xE66B,2,{0xA5,0x65,0x00,0x00,}}, {0xE66C,2,{0xA5,0x66,0x00,0x00,}}, {0xE66D,2,{0xA5,0x67,0x00,0x00,}}, {0xE66E,2,{0xA5,0x68,0x00,0x00,}}, {0xE66F,2,{0xA5,0x69,0x00,0x00,}}, {0xE670,2,{0xA5,0x6A,0x00,0x00,}}, {0xE671,2,{0xA5,0x6B,0x00,0x00,}}, {0xE672,2,{0xA5,0x6C,0x00,0x00,}}, {0xE673,2,{0xA5,0x6D,0x00,0x00,}}, {0xE674,2,{0xA5,0x6E,0x00,0x00,}}, {0xE675,2,{0xA5,0x6F,0x00,0x00,}}, {0xE676,2,{0xA5,0x70,0x00,0x00,}}, {0xE677,2,{0xA5,0x71,0x00,0x00,}}, {0xE678,2,{0xA5,0x72,0x00,0x00,}}, {0xE679,2,{0xA5,0x73,0x00,0x00,}}, {0xE67A,2,{0xA5,0x74,0x00,0x00,}}, {0xE67B,2,{0xA5,0x75,0x00,0x00,}}, {0xE67C,2,{0xA5,0x76,0x00,0x00,}}, {0xE67D,2,{0xA5,0x77,0x00,0x00,}}, {0xE67E,2,{0xA5,0x78,0x00,0x00,}}, {0xE67F,2,{0xA5,0x79,0x00,0x00,}}, {0xE680,2,{0xA5,0x7A,0x00,0x00,}}, {0xE681,2,{0xA5,0x7B,0x00,0x00,}}, {0xE682,2,{0xA5,0x7C,0x00,0x00,}}, {0xE683,2,{0xA5,0x7D,0x00,0x00,}}, {0xE684,2,{0xA5,0x7E,0x00,0x00,}}, {0xE685,2,{0xA5,0x80,0x00,0x00,}}, {0xE686,2,{0xA5,0x81,0x00,0x00,}}, {0xE687,2,{0xA5,0x82,0x00,0x00,}}, {0xE688,2,{0xA5,0x83,0x00,0x00,}}, {0xE689,2,{0xA5,0x84,0x00,0x00,}}, {0xE68A,2,{0xA5,0x85,0x00,0x00,}}, {0xE68B,2,{0xA5,0x86,0x00,0x00,}}, {0xE68C,2,{0xA5,0x87,0x00,0x00,}}, {0xE68D,2,{0xA5,0x88,0x00,0x00,}}, {0xE68E,2,{0xA5,0x89,0x00,0x00,}}, {0xE68F,2,{0xA5,0x8A,0x00,0x00,}}, {0xE690,2,{0xA5,0x8B,0x00,0x00,}}, {0xE691,2,{0xA5,0x8C,0x00,0x00,}}, {0xE692,2,{0xA5,0x8D,0x00,0x00,}}, {0xE693,2,{0xA5,0x8E,0x00,0x00,}}, {0xE694,2,{0xA5,0x8F,0x00,0x00,}}, {0xE695,2,{0xA5,0x90,0x00,0x00,}}, {0xE696,2,{0xA5,0x91,0x00,0x00,}}, {0xE697,2,{0xA5,0x92,0x00,0x00,}}, {0xE698,2,{0xA5,0x93,0x00,0x00,}}, {0xE699,2,{0xA5,0x94,0x00,0x00,}}, {0xE69A,2,{0xA5,0x95,0x00,0x00,}}, {0xE69B,2,{0xA5,0x96,0x00,0x00,}}, {0xE69C,2,{0xA5,0x97,0x00,0x00,}}, {0xE69D,2,{0xA5,0x98,0x00,0x00,}}, {0xE69E,2,{0xA5,0x99,0x00,0x00,}}, {0xE69F,2,{0xA5,0x9A,0x00,0x00,}}, {0xE6A0,2,{0xA5,0x9B,0x00,0x00,}}, {0xE6A1,2,{0xA5,0x9C,0x00,0x00,}}, {0xE6A2,2,{0xA5,0x9D,0x00,0x00,}}, {0xE6A3,2,{0xA5,0x9E,0x00,0x00,}}, {0xE6A4,2,{0xA5,0x9F,0x00,0x00,}}, {0xE6A5,2,{0xA5,0xA0,0x00,0x00,}}, {0xE6A6,2,{0xA6,0x40,0x00,0x00,}}, {0xE6A7,2,{0xA6,0x41,0x00,0x00,}}, {0xE6A8,2,{0xA6,0x42,0x00,0x00,}}, {0xE6A9,2,{0xA6,0x43,0x00,0x00,}}, {0xE6AA,2,{0xA6,0x44,0x00,0x00,}}, {0xE6AB,2,{0xA6,0x45,0x00,0x00,}}, {0xE6AC,2,{0xA6,0x46,0x00,0x00,}}, {0xE6AD,2,{0xA6,0x47,0x00,0x00,}}, {0xE6AE,2,{0xA6,0x48,0x00,0x00,}}, {0xE6AF,2,{0xA6,0x49,0x00,0x00,}}, {0xE6B0,2,{0xA6,0x4A,0x00,0x00,}}, {0xE6B1,2,{0xA6,0x4B,0x00,0x00,}}, {0xE6B2,2,{0xA6,0x4C,0x00,0x00,}}, {0xE6B3,2,{0xA6,0x4D,0x00,0x00,}}, {0xE6B4,2,{0xA6,0x4E,0x00,0x00,}}, {0xE6B5,2,{0xA6,0x4F,0x00,0x00,}}, {0xE6B6,2,{0xA6,0x50,0x00,0x00,}}, {0xE6B7,2,{0xA6,0x51,0x00,0x00,}}, {0xE6B8,2,{0xA6,0x52,0x00,0x00,}}, {0xE6B9,2,{0xA6,0x53,0x00,0x00,}}, {0xE6BA,2,{0xA6,0x54,0x00,0x00,}}, {0xE6BB,2,{0xA6,0x55,0x00,0x00,}}, {0xE6BC,2,{0xA6,0x56,0x00,0x00,}}, {0xE6BD,2,{0xA6,0x57,0x00,0x00,}}, {0xE6BE,2,{0xA6,0x58,0x00,0x00,}}, {0xE6BF,2,{0xA6,0x59,0x00,0x00,}}, {0xE6C0,2,{0xA6,0x5A,0x00,0x00,}}, {0xE6C1,2,{0xA6,0x5B,0x00,0x00,}}, {0xE6C2,2,{0xA6,0x5C,0x00,0x00,}}, {0xE6C3,2,{0xA6,0x5D,0x00,0x00,}}, {0xE6C4,2,{0xA6,0x5E,0x00,0x00,}}, {0xE6C5,2,{0xA6,0x5F,0x00,0x00,}}, {0xE6C6,2,{0xA6,0x60,0x00,0x00,}}, {0xE6C7,2,{0xA6,0x61,0x00,0x00,}}, {0xE6C8,2,{0xA6,0x62,0x00,0x00,}}, {0xE6C9,2,{0xA6,0x63,0x00,0x00,}}, {0xE6CA,2,{0xA6,0x64,0x00,0x00,}}, {0xE6CB,2,{0xA6,0x65,0x00,0x00,}}, {0xE6CC,2,{0xA6,0x66,0x00,0x00,}}, {0xE6CD,2,{0xA6,0x67,0x00,0x00,}}, {0xE6CE,2,{0xA6,0x68,0x00,0x00,}}, {0xE6CF,2,{0xA6,0x69,0x00,0x00,}}, {0xE6D0,2,{0xA6,0x6A,0x00,0x00,}}, {0xE6D1,2,{0xA6,0x6B,0x00,0x00,}}, {0xE6D2,2,{0xA6,0x6C,0x00,0x00,}}, {0xE6D3,2,{0xA6,0x6D,0x00,0x00,}}, {0xE6D4,2,{0xA6,0x6E,0x00,0x00,}}, {0xE6D5,2,{0xA6,0x6F,0x00,0x00,}}, {0xE6D6,2,{0xA6,0x70,0x00,0x00,}}, {0xE6D7,2,{0xA6,0x71,0x00,0x00,}}, {0xE6D8,2,{0xA6,0x72,0x00,0x00,}}, {0xE6D9,2,{0xA6,0x73,0x00,0x00,}}, {0xE6DA,2,{0xA6,0x74,0x00,0x00,}}, {0xE6DB,2,{0xA6,0x75,0x00,0x00,}}, {0xE6DC,2,{0xA6,0x76,0x00,0x00,}}, {0xE6DD,2,{0xA6,0x77,0x00,0x00,}}, {0xE6DE,2,{0xA6,0x78,0x00,0x00,}}, {0xE6DF,2,{0xA6,0x79,0x00,0x00,}}, {0xE6E0,2,{0xA6,0x7A,0x00,0x00,}}, {0xE6E1,2,{0xA6,0x7B,0x00,0x00,}}, {0xE6E2,2,{0xA6,0x7C,0x00,0x00,}}, {0xE6E3,2,{0xA6,0x7D,0x00,0x00,}}, {0xE6E4,2,{0xA6,0x7E,0x00,0x00,}}, {0xE6E5,2,{0xA6,0x80,0x00,0x00,}}, {0xE6E6,2,{0xA6,0x81,0x00,0x00,}}, {0xE6E7,2,{0xA6,0x82,0x00,0x00,}}, {0xE6E8,2,{0xA6,0x83,0x00,0x00,}}, {0xE6E9,2,{0xA6,0x84,0x00,0x00,}}, {0xE6EA,2,{0xA6,0x85,0x00,0x00,}}, {0xE6EB,2,{0xA6,0x86,0x00,0x00,}}, {0xE6EC,2,{0xA6,0x87,0x00,0x00,}}, {0xE6ED,2,{0xA6,0x88,0x00,0x00,}}, {0xE6EE,2,{0xA6,0x89,0x00,0x00,}}, {0xE6EF,2,{0xA6,0x8A,0x00,0x00,}}, {0xE6F0,2,{0xA6,0x8B,0x00,0x00,}}, {0xE6F1,2,{0xA6,0x8C,0x00,0x00,}}, {0xE6F2,2,{0xA6,0x8D,0x00,0x00,}}, {0xE6F3,2,{0xA6,0x8E,0x00,0x00,}}, {0xE6F4,2,{0xA6,0x8F,0x00,0x00,}}, {0xE6F5,2,{0xA6,0x90,0x00,0x00,}}, {0xE6F6,2,{0xA6,0x91,0x00,0x00,}}, {0xE6F7,2,{0xA6,0x92,0x00,0x00,}}, {0xE6F8,2,{0xA6,0x93,0x00,0x00,}}, {0xE6F9,2,{0xA6,0x94,0x00,0x00,}}, {0xE6FA,2,{0xA6,0x95,0x00,0x00,}}, {0xE6FB,2,{0xA6,0x96,0x00,0x00,}}, {0xE6FC,2,{0xA6,0x97,0x00,0x00,}}, {0xE6FD,2,{0xA6,0x98,0x00,0x00,}}, {0xE6FE,2,{0xA6,0x99,0x00,0x00,}}, {0xE6FF,2,{0xA6,0x9A,0x00,0x00,}}, {0xE700,2,{0xA6,0x9B,0x00,0x00,}}, {0xE701,2,{0xA6,0x9C,0x00,0x00,}}, {0xE702,2,{0xA6,0x9D,0x00,0x00,}}, {0xE703,2,{0xA6,0x9E,0x00,0x00,}}, {0xE704,2,{0xA6,0x9F,0x00,0x00,}}, {0xE705,2,{0xA6,0xA0,0x00,0x00,}}, {0xE706,2,{0xA7,0x40,0x00,0x00,}}, {0xE707,2,{0xA7,0x41,0x00,0x00,}}, {0xE708,2,{0xA7,0x42,0x00,0x00,}}, {0xE709,2,{0xA7,0x43,0x00,0x00,}}, {0xE70A,2,{0xA7,0x44,0x00,0x00,}}, {0xE70B,2,{0xA7,0x45,0x00,0x00,}}, {0xE70C,2,{0xA7,0x46,0x00,0x00,}}, {0xE70D,2,{0xA7,0x47,0x00,0x00,}}, {0xE70E,2,{0xA7,0x48,0x00,0x00,}}, {0xE70F,2,{0xA7,0x49,0x00,0x00,}}, {0xE710,2,{0xA7,0x4A,0x00,0x00,}}, {0xE711,2,{0xA7,0x4B,0x00,0x00,}}, {0xE712,2,{0xA7,0x4C,0x00,0x00,}}, {0xE713,2,{0xA7,0x4D,0x00,0x00,}}, {0xE714,2,{0xA7,0x4E,0x00,0x00,}}, {0xE715,2,{0xA7,0x4F,0x00,0x00,}}, {0xE716,2,{0xA7,0x50,0x00,0x00,}}, {0xE717,2,{0xA7,0x51,0x00,0x00,}}, {0xE718,2,{0xA7,0x52,0x00,0x00,}}, {0xE719,2,{0xA7,0x53,0x00,0x00,}}, {0xE71A,2,{0xA7,0x54,0x00,0x00,}}, {0xE71B,2,{0xA7,0x55,0x00,0x00,}}, {0xE71C,2,{0xA7,0x56,0x00,0x00,}}, {0xE71D,2,{0xA7,0x57,0x00,0x00,}}, {0xE71E,2,{0xA7,0x58,0x00,0x00,}}, {0xE71F,2,{0xA7,0x59,0x00,0x00,}}, {0xE720,2,{0xA7,0x5A,0x00,0x00,}}, {0xE721,2,{0xA7,0x5B,0x00,0x00,}}, {0xE722,2,{0xA7,0x5C,0x00,0x00,}}, {0xE723,2,{0xA7,0x5D,0x00,0x00,}}, {0xE724,2,{0xA7,0x5E,0x00,0x00,}}, {0xE725,2,{0xA7,0x5F,0x00,0x00,}}, {0xE726,2,{0xA7,0x60,0x00,0x00,}}, {0xE727,2,{0xA7,0x61,0x00,0x00,}}, {0xE728,2,{0xA7,0x62,0x00,0x00,}}, {0xE729,2,{0xA7,0x63,0x00,0x00,}}, {0xE72A,2,{0xA7,0x64,0x00,0x00,}}, {0xE72B,2,{0xA7,0x65,0x00,0x00,}}, {0xE72C,2,{0xA7,0x66,0x00,0x00,}}, {0xE72D,2,{0xA7,0x67,0x00,0x00,}}, {0xE72E,2,{0xA7,0x68,0x00,0x00,}}, {0xE72F,2,{0xA7,0x69,0x00,0x00,}}, {0xE730,2,{0xA7,0x6A,0x00,0x00,}}, {0xE731,2,{0xA7,0x6B,0x00,0x00,}}, {0xE732,2,{0xA7,0x6C,0x00,0x00,}}, {0xE733,2,{0xA7,0x6D,0x00,0x00,}}, {0xE734,2,{0xA7,0x6E,0x00,0x00,}}, {0xE735,2,{0xA7,0x6F,0x00,0x00,}}, {0xE736,2,{0xA7,0x70,0x00,0x00,}}, {0xE737,2,{0xA7,0x71,0x00,0x00,}}, {0xE738,2,{0xA7,0x72,0x00,0x00,}}, {0xE739,2,{0xA7,0x73,0x00,0x00,}}, {0xE73A,2,{0xA7,0x74,0x00,0x00,}}, {0xE73B,2,{0xA7,0x75,0x00,0x00,}}, {0xE73C,2,{0xA7,0x76,0x00,0x00,}}, {0xE73D,2,{0xA7,0x77,0x00,0x00,}}, {0xE73E,2,{0xA7,0x78,0x00,0x00,}}, {0xE73F,2,{0xA7,0x79,0x00,0x00,}}, {0xE740,2,{0xA7,0x7A,0x00,0x00,}}, {0xE741,2,{0xA7,0x7B,0x00,0x00,}}, {0xE742,2,{0xA7,0x7C,0x00,0x00,}}, {0xE743,2,{0xA7,0x7D,0x00,0x00,}}, {0xE744,2,{0xA7,0x7E,0x00,0x00,}}, {0xE745,2,{0xA7,0x80,0x00,0x00,}}, {0xE746,2,{0xA7,0x81,0x00,0x00,}}, {0xE747,2,{0xA7,0x82,0x00,0x00,}}, {0xE748,2,{0xA7,0x83,0x00,0x00,}}, {0xE749,2,{0xA7,0x84,0x00,0x00,}}, {0xE74A,2,{0xA7,0x85,0x00,0x00,}}, {0xE74B,2,{0xA7,0x86,0x00,0x00,}}, {0xE74C,2,{0xA7,0x87,0x00,0x00,}}, {0xE74D,2,{0xA7,0x88,0x00,0x00,}}, {0xE74E,2,{0xA7,0x89,0x00,0x00,}}, {0xE74F,2,{0xA7,0x8A,0x00,0x00,}}, {0xE750,2,{0xA7,0x8B,0x00,0x00,}}, {0xE751,2,{0xA7,0x8C,0x00,0x00,}}, {0xE752,2,{0xA7,0x8D,0x00,0x00,}}, {0xE753,2,{0xA7,0x8E,0x00,0x00,}}, {0xE754,2,{0xA7,0x8F,0x00,0x00,}}, {0xE755,2,{0xA7,0x90,0x00,0x00,}}, {0xE756,2,{0xA7,0x91,0x00,0x00,}}, {0xE757,2,{0xA7,0x92,0x00,0x00,}}, {0xE758,2,{0xA7,0x93,0x00,0x00,}}, {0xE759,2,{0xA7,0x94,0x00,0x00,}}, {0xE75A,2,{0xA7,0x95,0x00,0x00,}}, {0xE75B,2,{0xA7,0x96,0x00,0x00,}}, {0xE75C,2,{0xA7,0x97,0x00,0x00,}}, {0xE75D,2,{0xA7,0x98,0x00,0x00,}}, {0xE75E,2,{0xA7,0x99,0x00,0x00,}}, {0xE75F,2,{0xA7,0x9A,0x00,0x00,}}, {0xE760,2,{0xA7,0x9B,0x00,0x00,}}, {0xE761,2,{0xA7,0x9C,0x00,0x00,}}, {0xE762,2,{0xA7,0x9D,0x00,0x00,}}, {0xE763,2,{0xA7,0x9E,0x00,0x00,}}, {0xE764,2,{0xA7,0x9F,0x00,0x00,}}, {0xE765,2,{0xA7,0xA0,0x00,0x00,}}, {0xE766,2,{0xA2,0xAB,0x00,0x00,}}, {0xE767,2,{0xA2,0xAC,0x00,0x00,}}, {0xE768,2,{0xA2,0xAD,0x00,0x00,}}, {0xE769,2,{0xA2,0xAE,0x00,0x00,}}, {0xE76A,2,{0xA2,0xAF,0x00,0x00,}}, {0xE76B,2,{0xA2,0xB0,0x00,0x00,}}, {0xE76C,4,{0x83,0x36,0xC7,0x39,}}, {0xE76D,2,{0xA2,0xE4,0x00,0x00,}}, {0xE76E,2,{0xA2,0xEF,0x00,0x00,}}, {0xE76F,2,{0xA2,0xF0,0x00,0x00,}}, {0xE770,2,{0xA2,0xFD,0x00,0x00,}}, {0xE771,2,{0xA2,0xFE,0x00,0x00,}}, {0xE772,2,{0xA4,0xF4,0x00,0x00,}}, {0xE773,2,{0xA4,0xF5,0x00,0x00,}}, {0xE774,2,{0xA4,0xF6,0x00,0x00,}}, {0xE775,2,{0xA4,0xF7,0x00,0x00,}}, {0xE776,2,{0xA4,0xF8,0x00,0x00,}}, {0xE777,2,{0xA4,0xF9,0x00,0x00,}}, {0xE778,2,{0xA4,0xFA,0x00,0x00,}}, {0xE779,2,{0xA4,0xFB,0x00,0x00,}}, {0xE77A,2,{0xA4,0xFC,0x00,0x00,}}, {0xE77B,2,{0xA4,0xFD,0x00,0x00,}}, {0xE77C,2,{0xA4,0xFE,0x00,0x00,}}, {0xE77D,2,{0xA5,0xF7,0x00,0x00,}}, {0xE77E,2,{0xA5,0xF8,0x00,0x00,}}, {0xE77F,2,{0xA5,0xF9,0x00,0x00,}}, {0xE780,2,{0xA5,0xFA,0x00,0x00,}}, {0xE781,2,{0xA5,0xFB,0x00,0x00,}}, {0xE782,2,{0xA5,0xFC,0x00,0x00,}}, {0xE783,2,{0xA5,0xFD,0x00,0x00,}}, {0xE784,2,{0xA5,0xFE,0x00,0x00,}}, {0xE785,2,{0xA6,0xB9,0x00,0x00,}}, {0xE786,2,{0xA6,0xBA,0x00,0x00,}}, {0xE787,2,{0xA6,0xBB,0x00,0x00,}}, {0xE788,2,{0xA6,0xBC,0x00,0x00,}}, {0xE789,2,{0xA6,0xBD,0x00,0x00,}}, {0xE78A,2,{0xA6,0xBE,0x00,0x00,}}, {0xE78B,2,{0xA6,0xBF,0x00,0x00,}}, {0xE78C,2,{0xA6,0xC0,0x00,0x00,}}, {0xE78D,2,{0xA6,0xD9,0x00,0x00,}}, {0xE78E,2,{0xA6,0xDA,0x00,0x00,}}, {0xE78F,2,{0xA6,0xDB,0x00,0x00,}}, {0xE790,2,{0xA6,0xDC,0x00,0x00,}}, {0xE791,2,{0xA6,0xDD,0x00,0x00,}}, {0xE792,2,{0xA6,0xDE,0x00,0x00,}}, {0xE793,2,{0xA6,0xDF,0x00,0x00,}}, {0xE794,2,{0xA6,0xEC,0x00,0x00,}}, {0xE795,2,{0xA6,0xED,0x00,0x00,}}, {0xE796,2,{0xA6,0xF3,0x00,0x00,}}, {0xE797,2,{0xA6,0xF6,0x00,0x00,}}, {0xE798,2,{0xA6,0xF7,0x00,0x00,}}, {0xE799,2,{0xA6,0xF8,0x00,0x00,}}, {0xE79A,2,{0xA6,0xF9,0x00,0x00,}}, {0xE79B,2,{0xA6,0xFA,0x00,0x00,}}, {0xE79C,2,{0xA6,0xFB,0x00,0x00,}}, {0xE79D,2,{0xA6,0xFC,0x00,0x00,}}, {0xE79E,2,{0xA6,0xFD,0x00,0x00,}}, {0xE79F,2,{0xA6,0xFE,0x00,0x00,}}, {0xE7A0,2,{0xA7,0xC2,0x00,0x00,}}, {0xE7A1,2,{0xA7,0xC3,0x00,0x00,}}, {0xE7A2,2,{0xA7,0xC4,0x00,0x00,}}, {0xE7A3,2,{0xA7,0xC5,0x00,0x00,}}, {0xE7A4,2,{0xA7,0xC6,0x00,0x00,}}, {0xE7A5,2,{0xA7,0xC7,0x00,0x00,}}, {0xE7A6,2,{0xA7,0xC8,0x00,0x00,}}, {0xE7A7,2,{0xA7,0xC9,0x00,0x00,}}, {0xE7A8,2,{0xA7,0xCA,0x00,0x00,}}, {0xE7A9,2,{0xA7,0xCB,0x00,0x00,}}, {0xE7AA,2,{0xA7,0xCC,0x00,0x00,}}, {0xE7AB,2,{0xA7,0xCD,0x00,0x00,}}, {0xE7AC,2,{0xA7,0xCE,0x00,0x00,}}, {0xE7AD,2,{0xA7,0xCF,0x00,0x00,}}, {0xE7AE,2,{0xA7,0xD0,0x00,0x00,}}, {0xE7AF,2,{0xA7,0xF2,0x00,0x00,}}, {0xE7B0,2,{0xA7,0xF3,0x00,0x00,}}, {0xE7B1,2,{0xA7,0xF4,0x00,0x00,}}, {0xE7B2,2,{0xA7,0xF5,0x00,0x00,}}, {0xE7B3,2,{0xA7,0xF6,0x00,0x00,}}, {0xE7B4,2,{0xA7,0xF7,0x00,0x00,}}, {0xE7B5,2,{0xA7,0xF8,0x00,0x00,}}, {0xE7B6,2,{0xA7,0xF9,0x00,0x00,}}, {0xE7B7,2,{0xA7,0xFA,0x00,0x00,}}, {0xE7B8,2,{0xA7,0xFB,0x00,0x00,}}, {0xE7B9,2,{0xA7,0xFC,0x00,0x00,}}, {0xE7BA,2,{0xA7,0xFD,0x00,0x00,}}, {0xE7BB,2,{0xA7,0xFE,0x00,0x00,}}, {0xE7BC,2,{0xA8,0x96,0x00,0x00,}}, {0xE7BD,2,{0xA8,0x97,0x00,0x00,}}, {0xE7BE,2,{0xA8,0x98,0x00,0x00,}}, {0xE7BF,2,{0xA8,0x99,0x00,0x00,}}, {0xE7C0,2,{0xA8,0x9A,0x00,0x00,}}, {0xE7C1,2,{0xA8,0x9B,0x00,0x00,}}, {0xE7C2,2,{0xA8,0x9C,0x00,0x00,}}, {0xE7C3,2,{0xA8,0x9D,0x00,0x00,}}, {0xE7C4,2,{0xA8,0x9E,0x00,0x00,}}, {0xE7C5,2,{0xA8,0x9F,0x00,0x00,}}, {0xE7C6,2,{0xA8,0xA0,0x00,0x00,}}, {0xE7C7,2,{0xA8,0xBC,0x00,0x00,}}, {0xE7C8,4,{0x83,0x36,0xC8,0x30,}}, {0xE7C9,2,{0xA8,0xC1,0x00,0x00,}}, {0xE7CA,2,{0xA8,0xC2,0x00,0x00,}}, {0xE7CB,2,{0xA8,0xC3,0x00,0x00,}}, {0xE7CC,2,{0xA8,0xC4,0x00,0x00,}}, {0xE7CD,2,{0xA8,0xEA,0x00,0x00,}}, {0xE7CE,2,{0xA8,0xEB,0x00,0x00,}}, {0xE7CF,2,{0xA8,0xEC,0x00,0x00,}}, {0xE7D0,2,{0xA8,0xED,0x00,0x00,}}, {0xE7D1,2,{0xA8,0xEE,0x00,0x00,}}, {0xE7D2,2,{0xA8,0xEF,0x00,0x00,}}, {0xE7D3,2,{0xA8,0xF0,0x00,0x00,}}, {0xE7D4,2,{0xA8,0xF1,0x00,0x00,}}, {0xE7D5,2,{0xA8,0xF2,0x00,0x00,}}, {0xE7D6,2,{0xA8,0xF3,0x00,0x00,}}, {0xE7D7,2,{0xA8,0xF4,0x00,0x00,}}, {0xE7D8,2,{0xA8,0xF5,0x00,0x00,}}, {0xE7D9,2,{0xA8,0xF6,0x00,0x00,}}, {0xE7DA,2,{0xA8,0xF7,0x00,0x00,}}, {0xE7DB,2,{0xA8,0xF8,0x00,0x00,}}, {0xE7DC,2,{0xA8,0xF9,0x00,0x00,}}, {0xE7DD,2,{0xA8,0xFA,0x00,0x00,}}, {0xE7DE,2,{0xA8,0xFB,0x00,0x00,}}, {0xE7DF,2,{0xA8,0xFC,0x00,0x00,}}, {0xE7E0,2,{0xA8,0xFD,0x00,0x00,}}, {0xE7E1,2,{0xA8,0xFE,0x00,0x00,}}, {0xE7E2,2,{0xA9,0x58,0x00,0x00,}}, {0xE7E3,2,{0xA9,0x5B,0x00,0x00,}}, {0xE7E4,2,{0xA9,0x5D,0x00,0x00,}}, {0xE7E5,2,{0xA9,0x5E,0x00,0x00,}}, {0xE7E6,2,{0xA9,0x5F,0x00,0x00,}}, {0xE7E7,4,{0x83,0x36,0xC8,0x31,}}, {0xE7E8,4,{0x83,0x36,0xC8,0x32,}}, {0xE7E9,4,{0x83,0x36,0xC8,0x33,}}, {0xE7EA,4,{0x83,0x36,0xC8,0x34,}}, {0xE7EB,4,{0x83,0x36,0xC8,0x35,}}, {0xE7EC,4,{0x83,0x36,0xC8,0x36,}}, {0xE7ED,4,{0x83,0x36,0xC8,0x37,}}, {0xE7EE,4,{0x83,0x36,0xC8,0x38,}}, {0xE7EF,4,{0x83,0x36,0xC8,0x39,}}, {0xE7F0,4,{0x83,0x36,0xC9,0x30,}}, {0xE7F1,4,{0x83,0x36,0xC9,0x31,}}, {0xE7F2,4,{0x83,0x36,0xC9,0x32,}}, {0xE7F3,4,{0x83,0x36,0xC9,0x33,}}, {0xE7F4,2,{0xA9,0x97,0x00,0x00,}}, {0xE7F5,2,{0xA9,0x98,0x00,0x00,}}, {0xE7F6,2,{0xA9,0x99,0x00,0x00,}}, {0xE7F7,2,{0xA9,0x9A,0x00,0x00,}}, {0xE7F8,2,{0xA9,0x9B,0x00,0x00,}}, {0xE7F9,2,{0xA9,0x9C,0x00,0x00,}}, {0xE7FA,2,{0xA9,0x9D,0x00,0x00,}}, {0xE7FB,2,{0xA9,0x9E,0x00,0x00,}}, {0xE7FC,2,{0xA9,0x9F,0x00,0x00,}}, {0xE7FD,2,{0xA9,0xA0,0x00,0x00,}}, {0xE7FE,2,{0xA9,0xA1,0x00,0x00,}}, {0xE7FF,2,{0xA9,0xA2,0x00,0x00,}}, {0xE800,2,{0xA9,0xA3,0x00,0x00,}}, {0xE801,2,{0xA9,0xF0,0x00,0x00,}}, {0xE802,2,{0xA9,0xF1,0x00,0x00,}}, {0xE803,2,{0xA9,0xF2,0x00,0x00,}}, {0xE804,2,{0xA9,0xF3,0x00,0x00,}}, {0xE805,2,{0xA9,0xF4,0x00,0x00,}}, {0xE806,2,{0xA9,0xF5,0x00,0x00,}}, {0xE807,2,{0xA9,0xF6,0x00,0x00,}}, {0xE808,2,{0xA9,0xF7,0x00,0x00,}}, {0xE809,2,{0xA9,0xF8,0x00,0x00,}}, {0xE80A,2,{0xA9,0xF9,0x00,0x00,}}, {0xE80B,2,{0xA9,0xFA,0x00,0x00,}}, {0xE80C,2,{0xA9,0xFB,0x00,0x00,}}, {0xE80D,2,{0xA9,0xFC,0x00,0x00,}}, {0xE80E,2,{0xA9,0xFD,0x00,0x00,}}, {0xE80F,2,{0xA9,0xFE,0x00,0x00,}}, {0xE810,2,{0xD7,0xFA,0x00,0x00,}}, {0xE811,2,{0xD7,0xFB,0x00,0x00,}}, {0xE812,2,{0xD7,0xFC,0x00,0x00,}}, {0xE813,2,{0xD7,0xFD,0x00,0x00,}}, {0xE814,2,{0xD7,0xFE,0x00,0x00,}}, {0xE815,4,{0x83,0x36,0xC9,0x34,}}, {0xE816,2,{0xFE,0x51,0x00,0x00,}}, {0xE817,2,{0xFE,0x52,0x00,0x00,}}, {0xE818,2,{0xFE,0x53,0x00,0x00,}}, {0xE819,4,{0x83,0x36,0xC9,0x35,}}, {0xE81A,4,{0x83,0x36,0xC9,0x36,}}, {0xE81B,4,{0x83,0x36,0xC9,0x37,}}, {0xE81C,4,{0x83,0x36,0xC9,0x38,}}, {0xE81D,4,{0x83,0x36,0xC9,0x39,}}, {0xE81E,2,{0xFE,0x59,0x00,0x00,}}, {0xE81F,4,{0x83,0x36,0xCA,0x30,}}, {0xE820,4,{0x83,0x36,0xCA,0x31,}}, {0xE821,4,{0x83,0x36,0xCA,0x32,}}, {0xE822,4,{0x83,0x36,0xCA,0x33,}}, {0xE823,4,{0x83,0x36,0xCA,0x34,}}, {0xE824,4,{0x83,0x36,0xCA,0x35,}}, {0xE825,4,{0x83,0x36,0xCA,0x36,}}, {0xE826,2,{0xFE,0x61,0x00,0x00,}}, {0xE827,4,{0x83,0x36,0xCA,0x37,}}, {0xE828,4,{0x83,0x36,0xCA,0x38,}}, {0xE829,4,{0x83,0x36,0xCA,0x39,}}, {0xE82A,4,{0x83,0x36,0xCB,0x30,}}, {0xE82B,2,{0xFE,0x66,0x00,0x00,}}, {0xE82C,2,{0xFE,0x67,0x00,0x00,}}, {0xE82D,4,{0x83,0x36,0xCB,0x31,}}, {0xE82E,4,{0x83,0x36,0xCB,0x32,}}, {0xE82F,4,{0x83,0x36,0xCB,0x33,}}, {0xE830,4,{0x83,0x36,0xCB,0x34,}}, {0xE831,2,{0xFE,0x6C,0x00,0x00,}}, {0xE832,2,{0xFE,0x6D,0x00,0x00,}}, {0xE833,4,{0x83,0x36,0xCB,0x35,}}, {0xE834,4,{0x83,0x36,0xCB,0x36,}}, {0xE835,4,{0x83,0x36,0xCB,0x37,}}, {0xE836,4,{0x83,0x36,0xCB,0x38,}}, {0xE837,4,{0x83,0x36,0xCB,0x39,}}, {0xE838,4,{0x83,0x36,0xCC,0x30,}}, {0xE839,4,{0x83,0x36,0xCC,0x31,}}, {0xE83A,4,{0x83,0x36,0xCC,0x32,}}, {0xE83B,2,{0xFE,0x76,0x00,0x00,}}, {0xE83C,4,{0x83,0x36,0xCC,0x33,}}, {0xE83D,4,{0x83,0x36,0xCC,0x34,}}, {0xE83E,4,{0x83,0x36,0xCC,0x35,}}, {0xE83F,4,{0x83,0x36,0xCC,0x36,}}, {0xE840,4,{0x83,0x36,0xCC,0x37,}}, {0xE841,4,{0x83,0x36,0xCC,0x38,}}, {0xE842,4,{0x83,0x36,0xCC,0x39,}}, {0xE843,2,{0xFE,0x7E,0x00,0x00,}}, {0xE844,4,{0x83,0x36,0xCD,0x30,}}, {0xE845,4,{0x83,0x36,0xCD,0x31,}}, {0xE846,4,{0x83,0x36,0xCD,0x32,}}, {0xE847,4,{0x83,0x36,0xCD,0x33,}}, {0xE848,4,{0x83,0x36,0xCD,0x34,}}, {0xE849,4,{0x83,0x36,0xCD,0x35,}}, {0xE84A,4,{0x83,0x36,0xCD,0x36,}}, {0xE84B,4,{0x83,0x36,0xCD,0x37,}}, {0xE84C,4,{0x83,0x36,0xCD,0x38,}}, {0xE84D,4,{0x83,0x36,0xCD,0x39,}}, {0xE84E,4,{0x83,0x36,0xCE,0x30,}}, {0xE84F,4,{0x83,0x36,0xCE,0x31,}}, {0xE850,4,{0x83,0x36,0xCE,0x32,}}, {0xE851,4,{0x83,0x36,0xCE,0x33,}}, {0xE852,4,{0x83,0x36,0xCE,0x34,}}, {0xE853,4,{0x83,0x36,0xCE,0x35,}}, {0xE854,2,{0xFE,0x90,0x00,0x00,}}, {0xE855,2,{0xFE,0x91,0x00,0x00,}}, {0xE856,4,{0x83,0x36,0xCE,0x36,}}, {0xE857,4,{0x83,0x36,0xCE,0x37,}}, {0xE858,4,{0x83,0x36,0xCE,0x38,}}, {0xE859,4,{0x83,0x36,0xCE,0x39,}}, {0xE85A,4,{0x83,0x36,0xCF,0x30,}}, {0xE85B,4,{0x83,0x36,0xCF,0x31,}}, {0xE85C,4,{0x83,0x36,0xCF,0x32,}}, {0xE85D,4,{0x83,0x36,0xCF,0x33,}}, {0xE85E,4,{0x83,0x36,0xCF,0x34,}}, {0xE85F,4,{0x83,0x36,0xCF,0x35,}}, {0xE860,4,{0x83,0x36,0xCF,0x36,}}, {0xE861,4,{0x83,0x36,0xCF,0x37,}}, {0xE862,4,{0x83,0x36,0xCF,0x38,}}, {0xE863,4,{0x83,0x36,0xCF,0x39,}}, {0xE864,2,{0xFE,0xA0,0x00,0x00,}}, {0xF92C,2,{0xFD,0x9C,0x00,0x00,}}, {0xF92D,4,{0x84,0x30,0x85,0x35,}}, {0xF92E,4,{0x84,0x30,0x85,0x36,}}, {0xF92F,4,{0x84,0x30,0x85,0x37,}}, {0xF930,4,{0x84,0x30,0x85,0x38,}}, {0xF931,4,{0x84,0x30,0x85,0x39,}}, {0xF932,4,{0x84,0x30,0x86,0x30,}}, {0xF933,4,{0x84,0x30,0x86,0x31,}}, {0xF934,4,{0x84,0x30,0x86,0x32,}}, {0xF935,4,{0x84,0x30,0x86,0x33,}}, {0xF936,4,{0x84,0x30,0x86,0x34,}}, {0xF937,4,{0x84,0x30,0x86,0x35,}}, {0xF938,4,{0x84,0x30,0x86,0x36,}}, {0xF939,4,{0x84,0x30,0x86,0x37,}}, {0xF93A,4,{0x84,0x30,0x86,0x38,}}, {0xF93B,4,{0x84,0x30,0x86,0x39,}}, {0xF93C,4,{0x84,0x30,0x87,0x30,}}, {0xF93D,4,{0x84,0x30,0x87,0x31,}}, {0xF93E,4,{0x84,0x30,0x87,0x32,}}, {0xF93F,4,{0x84,0x30,0x87,0x33,}}, {0xF940,4,{0x84,0x30,0x87,0x34,}}, {0xF941,4,{0x84,0x30,0x87,0x35,}}, {0xF942,4,{0x84,0x30,0x87,0x36,}}, {0xF943,4,{0x84,0x30,0x87,0x37,}}, {0xF944,4,{0x84,0x30,0x87,0x38,}}, {0xF945,4,{0x84,0x30,0x87,0x39,}}, {0xF946,4,{0x84,0x30,0x88,0x30,}}, {0xF947,4,{0x84,0x30,0x88,0x31,}}, {0xF948,4,{0x84,0x30,0x88,0x32,}}, {0xF949,4,{0x84,0x30,0x88,0x33,}}, {0xF94A,4,{0x84,0x30,0x88,0x34,}}, {0xF94B,4,{0x84,0x30,0x88,0x35,}}, {0xF94C,4,{0x84,0x30,0x88,0x36,}}, {0xF94D,4,{0x84,0x30,0x88,0x37,}}, {0xF94E,4,{0x84,0x30,0x88,0x38,}}, {0xF94F,4,{0x84,0x30,0x88,0x39,}}, {0xF950,4,{0x84,0x30,0x89,0x30,}}, {0xF951,4,{0x84,0x30,0x89,0x31,}}, {0xF952,4,{0x84,0x30,0x89,0x32,}}, {0xF953,4,{0x84,0x30,0x89,0x33,}}, {0xF954,4,{0x84,0x30,0x89,0x34,}}, {0xF955,4,{0x84,0x30,0x89,0x35,}}, {0xF956,4,{0x84,0x30,0x89,0x36,}}, {0xF957,4,{0x84,0x30,0x89,0x37,}}, {0xF958,4,{0x84,0x30,0x89,0x38,}}, {0xF959,4,{0x84,0x30,0x89,0x39,}}, {0xF95A,4,{0x84,0x30,0x8A,0x30,}}, {0xF95B,4,{0x84,0x30,0x8A,0x31,}}, {0xF95C,4,{0x84,0x30,0x8A,0x32,}}, {0xF95D,4,{0x84,0x30,0x8A,0x33,}}, {0xF95E,4,{0x84,0x30,0x8A,0x34,}}, {0xF95F,4,{0x84,0x30,0x8A,0x35,}}, {0xF960,4,{0x84,0x30,0x8A,0x36,}}, {0xF961,4,{0x84,0x30,0x8A,0x37,}}, {0xF962,4,{0x84,0x30,0x8A,0x38,}}, {0xF963,4,{0x84,0x30,0x8A,0x39,}}, {0xF964,4,{0x84,0x30,0x8B,0x30,}}, {0xF965,4,{0x84,0x30,0x8B,0x31,}}, {0xF966,4,{0x84,0x30,0x8B,0x32,}}, {0xF967,4,{0x84,0x30,0x8B,0x33,}}, {0xF968,4,{0x84,0x30,0x8B,0x34,}}, {0xF969,4,{0x84,0x30,0x8B,0x35,}}, {0xF96A,4,{0x84,0x30,0x8B,0x36,}}, {0xF96B,4,{0x84,0x30,0x8B,0x37,}}, {0xF96C,4,{0x84,0x30,0x8B,0x38,}}, {0xF96D,4,{0x84,0x30,0x8B,0x39,}}, {0xF96E,4,{0x84,0x30,0x8C,0x30,}}, {0xF96F,4,{0x84,0x30,0x8C,0x31,}}, {0xF970,4,{0x84,0x30,0x8C,0x32,}}, {0xF971,4,{0x84,0x30,0x8C,0x33,}}, {0xF972,4,{0x84,0x30,0x8C,0x34,}}, {0xF973,4,{0x84,0x30,0x8C,0x35,}}, {0xF974,4,{0x84,0x30,0x8C,0x36,}}, {0xF975,4,{0x84,0x30,0x8C,0x37,}}, {0xF976,4,{0x84,0x30,0x8C,0x38,}}, {0xF977,4,{0x84,0x30,0x8C,0x39,}}, {0xF978,4,{0x84,0x30,0x8D,0x30,}}, {0xF979,2,{0xFD,0x9D,0x00,0x00,}}, {0xF97A,4,{0x84,0x30,0x8D,0x31,}}, {0xF97B,4,{0x84,0x30,0x8D,0x32,}}, {0xF97C,4,{0x84,0x30,0x8D,0x33,}}, {0xF97D,4,{0x84,0x30,0x8D,0x34,}}, {0xF97E,4,{0x84,0x30,0x8D,0x35,}}, {0xF97F,4,{0x84,0x30,0x8D,0x36,}}, {0xF980,4,{0x84,0x30,0x8D,0x37,}}, {0xF981,4,{0x84,0x30,0x8D,0x38,}}, {0xF982,4,{0x84,0x30,0x8D,0x39,}}, {0xF983,4,{0x84,0x30,0x8E,0x30,}}, {0xF984,4,{0x84,0x30,0x8E,0x31,}}, {0xF985,4,{0x84,0x30,0x8E,0x32,}}, {0xF986,4,{0x84,0x30,0x8E,0x33,}}, {0xF987,4,{0x84,0x30,0x8E,0x34,}}, {0xF988,4,{0x84,0x30,0x8E,0x35,}}, {0xF989,4,{0x84,0x30,0x8E,0x36,}}, {0xF98A,4,{0x84,0x30,0x8E,0x37,}}, {0xF98B,4,{0x84,0x30,0x8E,0x38,}}, {0xF98C,4,{0x84,0x30,0x8E,0x39,}}, {0xF98D,4,{0x84,0x30,0x8F,0x30,}}, {0xF98E,4,{0x84,0x30,0x8F,0x31,}}, {0xF98F,4,{0x84,0x30,0x8F,0x32,}}, {0xF990,4,{0x84,0x30,0x8F,0x33,}}, {0xF991,4,{0x84,0x30,0x8F,0x34,}}, {0xF992,4,{0x84,0x30,0x8F,0x35,}}, {0xF993,4,{0x84,0x30,0x8F,0x36,}}, {0xF994,4,{0x84,0x30,0x8F,0x37,}}, {0xF995,2,{0xFD,0x9E,0x00,0x00,}}, {0xF996,4,{0x84,0x30,0x8F,0x38,}}, {0xF997,4,{0x84,0x30,0x8F,0x39,}}, {0xF998,4,{0x84,0x30,0x90,0x30,}}, {0xF999,4,{0x84,0x30,0x90,0x31,}}, {0xF99A,4,{0x84,0x30,0x90,0x32,}}, {0xF99B,4,{0x84,0x30,0x90,0x33,}}, {0xF99C,4,{0x84,0x30,0x90,0x34,}}, {0xF99D,4,{0x84,0x30,0x90,0x35,}}, {0xF99E,4,{0x84,0x30,0x90,0x36,}}, {0xF99F,4,{0x84,0x30,0x90,0x37,}}, {0xF9A0,4,{0x84,0x30,0x90,0x38,}}, {0xF9A1,4,{0x84,0x30,0x90,0x39,}}, {0xF9A2,4,{0x84,0x30,0x91,0x30,}}, {0xF9A3,4,{0x84,0x30,0x91,0x31,}}, {0xF9A4,4,{0x84,0x30,0x91,0x32,}}, {0xF9A5,4,{0x84,0x30,0x91,0x33,}}, {0xF9A6,4,{0x84,0x30,0x91,0x34,}}, {0xF9A7,4,{0x84,0x30,0x91,0x35,}}, {0xF9A8,4,{0x84,0x30,0x91,0x36,}}, {0xF9A9,4,{0x84,0x30,0x91,0x37,}}, {0xF9AA,4,{0x84,0x30,0x91,0x38,}}, {0xF9AB,4,{0x84,0x30,0x91,0x39,}}, {0xF9AC,4,{0x84,0x30,0x92,0x30,}}, {0xF9AD,4,{0x84,0x30,0x92,0x31,}}, {0xF9AE,4,{0x84,0x30,0x92,0x32,}}, {0xF9AF,4,{0x84,0x30,0x92,0x33,}}, {0xF9B0,4,{0x84,0x30,0x92,0x34,}}, {0xF9B1,4,{0x84,0x30,0x92,0x35,}}, {0xF9B2,4,{0x84,0x30,0x92,0x36,}}, {0xF9B3,4,{0x84,0x30,0x92,0x37,}}, {0xF9B4,4,{0x84,0x30,0x92,0x38,}}, {0xF9B5,4,{0x84,0x30,0x92,0x39,}}, {0xF9B6,4,{0x84,0x30,0x93,0x30,}}, {0xF9B7,4,{0x84,0x30,0x93,0x31,}}, {0xF9B8,4,{0x84,0x30,0x93,0x32,}}, {0xF9B9,4,{0x84,0x30,0x93,0x33,}}, {0xF9BA,4,{0x84,0x30,0x93,0x34,}}, {0xF9BB,4,{0x84,0x30,0x93,0x35,}}, {0xF9BC,4,{0x84,0x30,0x93,0x36,}}, {0xF9BD,4,{0x84,0x30,0x93,0x37,}}, {0xF9BE,4,{0x84,0x30,0x93,0x38,}}, {0xF9BF,4,{0x84,0x30,0x93,0x39,}}, {0xF9C0,4,{0x84,0x30,0x94,0x30,}}, {0xF9C1,4,{0x84,0x30,0x94,0x31,}}, {0xF9C2,4,{0x84,0x30,0x94,0x32,}}, {0xF9C3,4,{0x84,0x30,0x94,0x33,}}, {0xF9C4,4,{0x84,0x30,0x94,0x34,}}, {0xF9C5,4,{0x84,0x30,0x94,0x35,}}, {0xF9C6,4,{0x84,0x30,0x94,0x36,}}, {0xF9C7,4,{0x84,0x30,0x94,0x37,}}, {0xF9C8,4,{0x84,0x30,0x94,0x38,}}, {0xF9C9,4,{0x84,0x30,0x94,0x39,}}, {0xF9CA,4,{0x84,0x30,0x95,0x30,}}, {0xF9CB,4,{0x84,0x30,0x95,0x31,}}, {0xF9CC,4,{0x84,0x30,0x95,0x32,}}, {0xF9CD,4,{0x84,0x30,0x95,0x33,}}, {0xF9CE,4,{0x84,0x30,0x95,0x34,}}, {0xF9CF,4,{0x84,0x30,0x95,0x35,}}, {0xF9D0,4,{0x84,0x30,0x95,0x36,}}, {0xF9D1,4,{0x84,0x30,0x95,0x37,}}, {0xF9D2,4,{0x84,0x30,0x95,0x38,}}, {0xF9D3,4,{0x84,0x30,0x95,0x39,}}, {0xF9D4,4,{0x84,0x30,0x96,0x30,}}, {0xF9D5,4,{0x84,0x30,0x96,0x31,}}, {0xF9D6,4,{0x84,0x30,0x96,0x32,}}, {0xF9D7,4,{0x84,0x30,0x96,0x33,}}, {0xF9D8,4,{0x84,0x30,0x96,0x34,}}, {0xF9D9,4,{0x84,0x30,0x96,0x35,}}, {0xF9DA,4,{0x84,0x30,0x96,0x36,}}, {0xF9DB,4,{0x84,0x30,0x96,0x37,}}, {0xF9DC,4,{0x84,0x30,0x96,0x38,}}, {0xF9DD,4,{0x84,0x30,0x96,0x39,}}, {0xF9DE,4,{0x84,0x30,0x97,0x30,}}, {0xF9DF,4,{0x84,0x30,0x97,0x31,}}, {0xF9E0,4,{0x84,0x30,0x97,0x32,}}, {0xF9E1,4,{0x84,0x30,0x97,0x33,}}, {0xF9E2,4,{0x84,0x30,0x97,0x34,}}, {0xF9E3,4,{0x84,0x30,0x97,0x35,}}, {0xF9E4,4,{0x84,0x30,0x97,0x36,}}, {0xF9E5,4,{0x84,0x30,0x97,0x37,}}, {0xF9E6,4,{0x84,0x30,0x97,0x38,}}, {0xF9E7,2,{0xFD,0x9F,0x00,0x00,}}, {0xF9E8,4,{0x84,0x30,0x97,0x39,}}, {0xF9E9,4,{0x84,0x30,0x98,0x30,}}, {0xF9EA,4,{0x84,0x30,0x98,0x31,}}, {0xF9EB,4,{0x84,0x30,0x98,0x32,}}, {0xF9EC,4,{0x84,0x30,0x98,0x33,}}, {0xF9ED,4,{0x84,0x30,0x98,0x34,}}, {0xF9EE,4,{0x84,0x30,0x98,0x35,}}, {0xF9EF,4,{0x84,0x30,0x98,0x36,}}, {0xF9F0,4,{0x84,0x30,0x98,0x37,}}, {0xF9F1,2,{0xFD,0xA0,0x00,0x00,}}, {0xF9F2,4,{0x84,0x30,0x98,0x38,}}, {0xF9F3,4,{0x84,0x30,0x98,0x39,}}, {0xF9F4,4,{0x84,0x30,0x99,0x30,}}, {0xF9F5,4,{0x84,0x30,0x99,0x31,}}, {0xF9F6,4,{0x84,0x30,0x99,0x32,}}, {0xF9F7,4,{0x84,0x30,0x99,0x33,}}, {0xF9F8,4,{0x84,0x30,0x99,0x34,}}, {0xF9F9,4,{0x84,0x30,0x99,0x35,}}, {0xF9FA,4,{0x84,0x30,0x99,0x36,}}, {0xF9FB,4,{0x84,0x30,0x99,0x37,}}, {0xF9FC,4,{0x84,0x30,0x99,0x38,}}, {0xF9FD,4,{0x84,0x30,0x99,0x39,}}, {0xF9FE,4,{0x84,0x30,0x9A,0x30,}}, {0xF9FF,4,{0x84,0x30,0x9A,0x31,}}, {0xFA00,4,{0x84,0x30,0x9A,0x32,}}, {0xFA01,4,{0x84,0x30,0x9A,0x33,}}, {0xFA02,4,{0x84,0x30,0x9A,0x34,}}, {0xFA03,4,{0x84,0x30,0x9A,0x35,}}, {0xFA04,4,{0x84,0x30,0x9A,0x36,}}, {0xFA05,4,{0x84,0x30,0x9A,0x37,}}, {0xFA06,4,{0x84,0x30,0x9A,0x38,}}, {0xFA07,4,{0x84,0x30,0x9A,0x39,}}, {0xFA08,4,{0x84,0x30,0x9B,0x30,}}, {0xFA09,4,{0x84,0x30,0x9B,0x31,}}, {0xFA0A,4,{0x84,0x30,0x9B,0x32,}}, {0xFA0B,4,{0x84,0x30,0x9B,0x33,}}, {0xFA0C,2,{0xFE,0x40,0x00,0x00,}}, {0xFA0D,2,{0xFE,0x41,0x00,0x00,}}, {0xFA0E,2,{0xFE,0x42,0x00,0x00,}}, {0xFA0F,2,{0xFE,0x43,0x00,0x00,}}, {0xFA10,4,{0x84,0x30,0x9B,0x34,}}, {0xFA11,2,{0xFE,0x44,0x00,0x00,}}, {0xFA12,4,{0x84,0x30,0x9B,0x35,}}, {0xFA13,2,{0xFE,0x45,0x00,0x00,}}, {0xFA14,2,{0xFE,0x46,0x00,0x00,}}, {0xFA15,4,{0x84,0x30,0x9B,0x36,}}, {0xFA16,4,{0x84,0x30,0x9B,0x37,}}, {0xFA17,4,{0x84,0x30,0x9B,0x38,}}, {0xFA18,2,{0xFE,0x47,0x00,0x00,}}, {0xFA19,4,{0x84,0x30,0x9B,0x39,}}, {0xFA1A,4,{0x84,0x30,0x9C,0x30,}}, {0xFA1B,4,{0x84,0x30,0x9C,0x31,}}, {0xFA1C,4,{0x84,0x30,0x9C,0x32,}}, {0xFA1D,4,{0x84,0x30,0x9C,0x33,}}, {0xFA1E,4,{0x84,0x30,0x9C,0x34,}}, {0xFA1F,2,{0xFE,0x48,0x00,0x00,}}, {0xFA20,2,{0xFE,0x49,0x00,0x00,}}, {0xFA21,2,{0xFE,0x4A,0x00,0x00,}}, {0xFA22,4,{0x84,0x30,0x9C,0x35,}}, {0xFA23,2,{0xFE,0x4B,0x00,0x00,}}, {0xFA24,2,{0xFE,0x4C,0x00,0x00,}}, {0xFA25,4,{0x84,0x30,0x9C,0x36,}}, {0xFA26,4,{0x84,0x30,0x9C,0x37,}}, {0xFA27,2,{0xFE,0x4D,0x00,0x00,}}, {0xFA28,2,{0xFE,0x4E,0x00,0x00,}}, {0xFA29,2,{0xFE,0x4F,0x00,0x00,}}, {0xFE30,2,{0xA9,0x55,0x00,0x00,}}, {0xFE31,2,{0xA6,0xF2,0x00,0x00,}}, {0xFE32,4,{0x84,0x31,0x85,0x38,}}, {0xFE33,2,{0xA6,0xF4,0x00,0x00,}}, {0xFE34,2,{0xA6,0xF5,0x00,0x00,}}, {0xFE35,2,{0xA6,0xE0,0x00,0x00,}}, {0xFE36,2,{0xA6,0xE1,0x00,0x00,}}, {0xFE37,2,{0xA6,0xF0,0x00,0x00,}}, {0xFE38,2,{0xA6,0xF1,0x00,0x00,}}, {0xFE39,2,{0xA6,0xE2,0x00,0x00,}}, {0xFE3A,2,{0xA6,0xE3,0x00,0x00,}}, {0xFE3B,2,{0xA6,0xEE,0x00,0x00,}}, {0xFE3C,2,{0xA6,0xEF,0x00,0x00,}}, {0xFE3D,2,{0xA6,0xE6,0x00,0x00,}}, {0xFE3E,2,{0xA6,0xE7,0x00,0x00,}}, {0xFE3F,2,{0xA6,0xE4,0x00,0x00,}}, {0xFE40,2,{0xA6,0xE5,0x00,0x00,}}, {0xFE41,2,{0xA6,0xE8,0x00,0x00,}}, {0xFE42,2,{0xA6,0xE9,0x00,0x00,}}, {0xFE43,2,{0xA6,0xEA,0x00,0x00,}}, {0xFE44,2,{0xA6,0xEB,0x00,0x00,}}, {0xFE45,4,{0x84,0x31,0x85,0x39,}}, {0xFE46,4,{0x84,0x31,0x86,0x30,}}, {0xFE47,4,{0x84,0x31,0x86,0x31,}}, {0xFE48,4,{0x84,0x31,0x86,0x32,}}, {0xFE49,2,{0xA9,0x68,0x00,0x00,}}, {0xFE4A,2,{0xA9,0x69,0x00,0x00,}}, {0xFE4B,2,{0xA9,0x6A,0x00,0x00,}}, {0xFE4C,2,{0xA9,0x6B,0x00,0x00,}}, {0xFE4D,2,{0xA9,0x6C,0x00,0x00,}}, {0xFE4E,2,{0xA9,0x6D,0x00,0x00,}}, {0xFE4F,2,{0xA9,0x6E,0x00,0x00,}}, {0xFE50,2,{0xA9,0x6F,0x00,0x00,}}, {0xFE51,2,{0xA9,0x70,0x00,0x00,}}, {0xFE52,2,{0xA9,0x71,0x00,0x00,}}, {0xFE53,4,{0x84,0x31,0x86,0x33,}}, {0xFE54,2,{0xA9,0x72,0x00,0x00,}}, {0xFE55,2,{0xA9,0x73,0x00,0x00,}}, {0xFE56,2,{0xA9,0x74,0x00,0x00,}}, {0xFE57,2,{0xA9,0x75,0x00,0x00,}}, {0xFE58,4,{0x84,0x31,0x86,0x34,}}, {0xFE59,2,{0xA9,0x76,0x00,0x00,}}, {0xFE5A,2,{0xA9,0x77,0x00,0x00,}}, {0xFE5B,2,{0xA9,0x78,0x00,0x00,}}, {0xFE5C,2,{0xA9,0x79,0x00,0x00,}}, {0xFE5D,2,{0xA9,0x7A,0x00,0x00,}}, {0xFE5E,2,{0xA9,0x7B,0x00,0x00,}}, {0xFE5F,2,{0xA9,0x7C,0x00,0x00,}}, {0xFE60,2,{0xA9,0x7D,0x00,0x00,}}, {0xFE61,2,{0xA9,0x7E,0x00,0x00,}}, {0xFE62,2,{0xA9,0x80,0x00,0x00,}}, {0xFE63,2,{0xA9,0x81,0x00,0x00,}}, {0xFE64,2,{0xA9,0x82,0x00,0x00,}}, {0xFE65,2,{0xA9,0x83,0x00,0x00,}}, {0xFE66,2,{0xA9,0x84,0x00,0x00,}}, {0xFE67,4,{0x84,0x31,0x86,0x35,}}, {0xFE68,2,{0xA9,0x85,0x00,0x00,}}, {0xFE69,2,{0xA9,0x86,0x00,0x00,}}, {0xFE6A,2,{0xA9,0x87,0x00,0x00,}}, {0xFE6B,2,{0xA9,0x88,0x00,0x00,}}, {0xFE6C,4,{0x84,0x31,0x86,0x36,}}, {0xFE6D,4,{0x84,0x31,0x86,0x37,}}, {0xFE6E,4,{0x84,0x31,0x86,0x38,}}, {0xFE6F,4,{0x84,0x31,0x86,0x39,}}, {0xFE70,4,{0x84,0x31,0x87,0x30,}}, {0xFE71,4,{0x84,0x31,0x87,0x31,}}, {0xFE72,4,{0x84,0x31,0x87,0x32,}}, {0xFE73,4,{0x84,0x31,0x87,0x33,}}, {0xFE74,4,{0x84,0x31,0x87,0x34,}}, {0xFE75,4,{0x84,0x31,0x87,0x35,}}, {0xFE76,4,{0x84,0x31,0x87,0x36,}}, {0xFE77,4,{0x84,0x31,0x87,0x37,}}, {0xFE78,4,{0x84,0x31,0x87,0x38,}}, {0xFE79,4,{0x84,0x31,0x87,0x39,}}, {0xFE7A,4,{0x84,0x31,0x88,0x30,}}, {0xFE7B,4,{0x84,0x31,0x88,0x31,}}, {0xFE7C,4,{0x84,0x31,0x88,0x32,}}, {0xFE7D,4,{0x84,0x31,0x88,0x33,}}, {0xFE7E,4,{0x84,0x31,0x88,0x34,}}, {0xFE7F,4,{0x84,0x31,0x88,0x35,}}, {0xFE80,4,{0x84,0x31,0x88,0x36,}}, {0xFE81,4,{0x84,0x31,0x88,0x37,}}, {0xFE82,4,{0x84,0x31,0x88,0x38,}}, {0xFE83,4,{0x84,0x31,0x88,0x39,}}, {0xFE84,4,{0x84,0x31,0x89,0x30,}}, {0xFE85,4,{0x84,0x31,0x89,0x31,}}, {0xFE86,4,{0x84,0x31,0x89,0x32,}}, {0xFE87,4,{0x84,0x31,0x89,0x33,}}, {0xFE88,4,{0x84,0x31,0x89,0x34,}}, {0xFE89,4,{0x84,0x31,0x89,0x35,}}, {0xFE8A,4,{0x84,0x31,0x89,0x36,}}, {0xFE8B,4,{0x84,0x31,0x89,0x37,}}, {0xFE8C,4,{0x84,0x31,0x89,0x38,}}, {0xFE8D,4,{0x84,0x31,0x89,0x39,}}, {0xFE8E,4,{0x84,0x31,0x8A,0x30,}}, {0xFE8F,4,{0x84,0x31,0x8A,0x31,}}, {0xFE90,4,{0x84,0x31,0x8A,0x32,}}, {0xFE91,4,{0x84,0x31,0x8A,0x33,}}, {0xFE92,4,{0x84,0x31,0x8A,0x34,}}, {0xFE93,4,{0x84,0x31,0x8A,0x35,}}, {0xFE94,4,{0x84,0x31,0x8A,0x36,}}, {0xFE95,4,{0x84,0x31,0x8A,0x37,}}, {0xFE96,4,{0x84,0x31,0x8A,0x38,}}, {0xFE97,4,{0x84,0x31,0x8A,0x39,}}, {0xFE98,4,{0x84,0x31,0x8B,0x30,}}, {0xFE99,4,{0x84,0x31,0x8B,0x31,}}, {0xFE9A,4,{0x84,0x31,0x8B,0x32,}}, {0xFE9B,4,{0x84,0x31,0x8B,0x33,}}, {0xFE9C,4,{0x84,0x31,0x8B,0x34,}}, {0xFE9D,4,{0x84,0x31,0x8B,0x35,}}, {0xFE9E,4,{0x84,0x31,0x8B,0x36,}}, {0xFE9F,4,{0x84,0x31,0x8B,0x37,}}, {0xFEA0,4,{0x84,0x31,0x8B,0x38,}}, {0xFEA1,4,{0x84,0x31,0x8B,0x39,}}, {0xFEA2,4,{0x84,0x31,0x8C,0x30,}}, {0xFEA3,4,{0x84,0x31,0x8C,0x31,}}, {0xFEA4,4,{0x84,0x31,0x8C,0x32,}}, {0xFEA5,4,{0x84,0x31,0x8C,0x33,}}, {0xFEA6,4,{0x84,0x31,0x8C,0x34,}}, {0xFEA7,4,{0x84,0x31,0x8C,0x35,}}, {0xFEA8,4,{0x84,0x31,0x8C,0x36,}}, {0xFEA9,4,{0x84,0x31,0x8C,0x37,}}, {0xFEAA,4,{0x84,0x31,0x8C,0x38,}}, {0xFEAB,4,{0x84,0x31,0x8C,0x39,}}, {0xFEAC,4,{0x84,0x31,0x8D,0x30,}}, {0xFEAD,4,{0x84,0x31,0x8D,0x31,}}, {0xFEAE,4,{0x84,0x31,0x8D,0x32,}}, {0xFEAF,4,{0x84,0x31,0x8D,0x33,}}, {0xFEB0,4,{0x84,0x31,0x8D,0x34,}}, {0xFEB1,4,{0x84,0x31,0x8D,0x35,}}, {0xFEB2,4,{0x84,0x31,0x8D,0x36,}}, {0xFEB3,4,{0x84,0x31,0x8D,0x37,}}, {0xFEB4,4,{0x84,0x31,0x8D,0x38,}}, {0xFEB5,4,{0x84,0x31,0x8D,0x39,}}, {0xFEB6,4,{0x84,0x31,0x8E,0x30,}}, {0xFEB7,4,{0x84,0x31,0x8E,0x31,}}, {0xFEB8,4,{0x84,0x31,0x8E,0x32,}}, {0xFEB9,4,{0x84,0x31,0x8E,0x33,}}, {0xFEBA,4,{0x84,0x31,0x8E,0x34,}}, {0xFEBB,4,{0x84,0x31,0x8E,0x35,}}, {0xFEBC,4,{0x84,0x31,0x8E,0x36,}}, {0xFEBD,4,{0x84,0x31,0x8E,0x37,}}, {0xFEBE,4,{0x84,0x31,0x8E,0x38,}}, {0xFEBF,4,{0x84,0x31,0x8E,0x39,}}, {0xFEC0,4,{0x84,0x31,0x8F,0x30,}}, {0xFEC1,4,{0x84,0x31,0x8F,0x31,}}, {0xFEC2,4,{0x84,0x31,0x8F,0x32,}}, {0xFEC3,4,{0x84,0x31,0x8F,0x33,}}, {0xFEC4,4,{0x84,0x31,0x8F,0x34,}}, {0xFEC5,4,{0x84,0x31,0x8F,0x35,}}, {0xFEC6,4,{0x84,0x31,0x8F,0x36,}}, {0xFEC7,4,{0x84,0x31,0x8F,0x37,}}, {0xFEC8,4,{0x84,0x31,0x8F,0x38,}}, {0xFEC9,4,{0x84,0x31,0x8F,0x39,}}, {0xFECA,4,{0x84,0x31,0x90,0x30,}}, {0xFECB,4,{0x84,0x31,0x90,0x31,}}, {0xFECC,4,{0x84,0x31,0x90,0x32,}}, {0xFECD,4,{0x84,0x31,0x90,0x33,}}, {0xFECE,4,{0x84,0x31,0x90,0x34,}}, {0xFECF,4,{0x84,0x31,0x90,0x35,}}, {0xFED0,4,{0x84,0x31,0x90,0x36,}}, {0xFED1,4,{0x84,0x31,0x90,0x37,}}, {0xFED2,4,{0x84,0x31,0x90,0x38,}}, {0xFED3,4,{0x84,0x31,0x90,0x39,}}, {0xFED4,4,{0x84,0x31,0x91,0x30,}}, {0xFED5,4,{0x84,0x31,0x91,0x31,}}, {0xFED6,4,{0x84,0x31,0x91,0x32,}}, {0xFED7,4,{0x84,0x31,0x91,0x33,}}, {0xFED8,4,{0x84,0x31,0x91,0x34,}}, {0xFED9,4,{0x84,0x31,0x91,0x35,}}, {0xFEDA,4,{0x84,0x31,0x91,0x36,}}, {0xFEDB,4,{0x84,0x31,0x91,0x37,}}, {0xFEDC,4,{0x84,0x31,0x91,0x38,}}, {0xFEDD,4,{0x84,0x31,0x91,0x39,}}, {0xFEDE,4,{0x84,0x31,0x92,0x30,}}, {0xFEDF,4,{0x84,0x31,0x92,0x31,}}, {0xFEE0,4,{0x84,0x31,0x92,0x32,}}, {0xFEE1,4,{0x84,0x31,0x92,0x33,}}, {0xFEE2,4,{0x84,0x31,0x92,0x34,}}, {0xFEE3,4,{0x84,0x31,0x92,0x35,}}, {0xFEE4,4,{0x84,0x31,0x92,0x36,}}, {0xFEE5,4,{0x84,0x31,0x92,0x37,}}, {0xFEE6,4,{0x84,0x31,0x92,0x38,}}, {0xFEE7,4,{0x84,0x31,0x92,0x39,}}, {0xFEE8,4,{0x84,0x31,0x93,0x30,}}, {0xFEE9,4,{0x84,0x31,0x93,0x31,}}, {0xFEEA,4,{0x84,0x31,0x93,0x32,}}, {0xFEEB,4,{0x84,0x31,0x93,0x33,}}, {0xFEEC,4,{0x84,0x31,0x93,0x34,}}, {0xFEED,4,{0x84,0x31,0x93,0x35,}}, {0xFEEE,4,{0x84,0x31,0x93,0x36,}}, {0xFEEF,4,{0x84,0x31,0x93,0x37,}}, {0xFEF0,4,{0x84,0x31,0x93,0x38,}}, {0xFEF1,4,{0x84,0x31,0x93,0x39,}}, {0xFEF2,4,{0x84,0x31,0x94,0x30,}}, {0xFEF3,4,{0x84,0x31,0x94,0x31,}}, {0xFEF4,4,{0x84,0x31,0x94,0x32,}}, {0xFEF5,4,{0x84,0x31,0x94,0x33,}}, {0xFEF6,4,{0x84,0x31,0x94,0x34,}}, {0xFEF7,4,{0x84,0x31,0x94,0x35,}}, {0xFEF8,4,{0x84,0x31,0x94,0x36,}}, {0xFEF9,4,{0x84,0x31,0x94,0x37,}}, {0xFEFA,4,{0x84,0x31,0x94,0x38,}}, {0xFEFB,4,{0x84,0x31,0x94,0x39,}}, {0xFEFC,4,{0x84,0x31,0x95,0x30,}}, {0xFEFD,4,{0x84,0x31,0x95,0x31,}}, {0xFEFE,4,{0x84,0x31,0x95,0x32,}}, {0xFEFF,4,{0x84,0x31,0x95,0x33,}}, {0xFF00,4,{0x84,0x31,0x95,0x34,}}, {0xFF01,2,{0xA3,0xA1,0x00,0x00,}}, {0xFF02,2,{0xA3,0xA2,0x00,0x00,}}, {0xFF03,2,{0xA3,0xA3,0x00,0x00,}}, {0xFF04,2,{0xA1,0xE7,0x00,0x00,}}, {0xFF05,2,{0xA3,0xA5,0x00,0x00,}}, {0xFF06,2,{0xA3,0xA6,0x00,0x00,}}, {0xFF07,2,{0xA3,0xA7,0x00,0x00,}}, {0xFF08,2,{0xA3,0xA8,0x00,0x00,}}, {0xFF09,2,{0xA3,0xA9,0x00,0x00,}}, {0xFF0A,2,{0xA3,0xAA,0x00,0x00,}}, {0xFF0B,2,{0xA3,0xAB,0x00,0x00,}}, {0xFF0C,2,{0xA3,0xAC,0x00,0x00,}}, {0xFF0D,2,{0xA3,0xAD,0x00,0x00,}}, {0xFF0E,2,{0xA3,0xAE,0x00,0x00,}}, {0xFF0F,2,{0xA3,0xAF,0x00,0x00,}}, {0xFF10,2,{0xA3,0xB0,0x00,0x00,}}, {0xFF11,2,{0xA3,0xB1,0x00,0x00,}}, {0xFF12,2,{0xA3,0xB2,0x00,0x00,}}, {0xFF13,2,{0xA3,0xB3,0x00,0x00,}}, {0xFF14,2,{0xA3,0xB4,0x00,0x00,}}, {0xFF15,2,{0xA3,0xB5,0x00,0x00,}}, {0xFF16,2,{0xA3,0xB6,0x00,0x00,}}, {0xFF17,2,{0xA3,0xB7,0x00,0x00,}}, {0xFF18,2,{0xA3,0xB8,0x00,0x00,}}, {0xFF19,2,{0xA3,0xB9,0x00,0x00,}}, {0xFF1A,2,{0xA3,0xBA,0x00,0x00,}}, {0xFF1B,2,{0xA3,0xBB,0x00,0x00,}}, {0xFF1C,2,{0xA3,0xBC,0x00,0x00,}}, {0xFF1D,2,{0xA3,0xBD,0x00,0x00,}}, {0xFF1E,2,{0xA3,0xBE,0x00,0x00,}}, {0xFF1F,2,{0xA3,0xBF,0x00,0x00,}}, {0xFF20,2,{0xA3,0xC0,0x00,0x00,}}, {0xFF21,2,{0xA3,0xC1,0x00,0x00,}}, {0xFF22,2,{0xA3,0xC2,0x00,0x00,}}, {0xFF23,2,{0xA3,0xC3,0x00,0x00,}}, {0xFF24,2,{0xA3,0xC4,0x00,0x00,}}, {0xFF25,2,{0xA3,0xC5,0x00,0x00,}}, {0xFF26,2,{0xA3,0xC6,0x00,0x00,}}, {0xFF27,2,{0xA3,0xC7,0x00,0x00,}}, {0xFF28,2,{0xA3,0xC8,0x00,0x00,}}, {0xFF29,2,{0xA3,0xC9,0x00,0x00,}}, {0xFF2A,2,{0xA3,0xCA,0x00,0x00,}}, {0xFF2B,2,{0xA3,0xCB,0x00,0x00,}}, {0xFF2C,2,{0xA3,0xCC,0x00,0x00,}}, {0xFF2D,2,{0xA3,0xCD,0x00,0x00,}}, {0xFF2E,2,{0xA3,0xCE,0x00,0x00,}}, {0xFF2F,2,{0xA3,0xCF,0x00,0x00,}}, {0xFF30,2,{0xA3,0xD0,0x00,0x00,}}, {0xFF31,2,{0xA3,0xD1,0x00,0x00,}}, {0xFF32,2,{0xA3,0xD2,0x00,0x00,}}, {0xFF33,2,{0xA3,0xD3,0x00,0x00,}}, {0xFF34,2,{0xA3,0xD4,0x00,0x00,}}, {0xFF35,2,{0xA3,0xD5,0x00,0x00,}}, {0xFF36,2,{0xA3,0xD6,0x00,0x00,}}, {0xFF37,2,{0xA3,0xD7,0x00,0x00,}}, {0xFF38,2,{0xA3,0xD8,0x00,0x00,}}, {0xFF39,2,{0xA3,0xD9,0x00,0x00,}}, {0xFF3A,2,{0xA3,0xDA,0x00,0x00,}}, {0xFF3B,2,{0xA3,0xDB,0x00,0x00,}}, {0xFF3C,2,{0xA3,0xDC,0x00,0x00,}}, {0xFF3D,2,{0xA3,0xDD,0x00,0x00,}}, {0xFF3E,2,{0xA3,0xDE,0x00,0x00,}}, {0xFF3F,2,{0xA3,0xDF,0x00,0x00,}}, {0xFF40,2,{0xA3,0xE0,0x00,0x00,}}, {0xFF41,2,{0xA3,0xE1,0x00,0x00,}}, {0xFF42,2,{0xA3,0xE2,0x00,0x00,}}, {0xFF43,2,{0xA3,0xE3,0x00,0x00,}}, {0xFF44,2,{0xA3,0xE4,0x00,0x00,}}, {0xFF45,2,{0xA3,0xE5,0x00,0x00,}}, {0xFF46,2,{0xA3,0xE6,0x00,0x00,}}, {0xFF47,2,{0xA3,0xE7,0x00,0x00,}}, {0xFF48,2,{0xA3,0xE8,0x00,0x00,}}, {0xFF49,2,{0xA3,0xE9,0x00,0x00,}}, {0xFF4A,2,{0xA3,0xEA,0x00,0x00,}}, {0xFF4B,2,{0xA3,0xEB,0x00,0x00,}}, {0xFF4C,2,{0xA3,0xEC,0x00,0x00,}}, {0xFF4D,2,{0xA3,0xED,0x00,0x00,}}, {0xFF4E,2,{0xA3,0xEE,0x00,0x00,}}, {0xFF4F,2,{0xA3,0xEF,0x00,0x00,}}, {0xFF50,2,{0xA3,0xF0,0x00,0x00,}}, {0xFF51,2,{0xA3,0xF1,0x00,0x00,}}, {0xFF52,2,{0xA3,0xF2,0x00,0x00,}}, {0xFF53,2,{0xA3,0xF3,0x00,0x00,}}, {0xFF54,2,{0xA3,0xF4,0x00,0x00,}}, {0xFF55,2,{0xA3,0xF5,0x00,0x00,}}, {0xFF56,2,{0xA3,0xF6,0x00,0x00,}}, {0xFF57,2,{0xA3,0xF7,0x00,0x00,}}, {0xFF58,2,{0xA3,0xF8,0x00,0x00,}}, {0xFF59,2,{0xA3,0xF9,0x00,0x00,}}, {0xFF5A,2,{0xA3,0xFA,0x00,0x00,}}, {0xFF5B,2,{0xA3,0xFB,0x00,0x00,}}, {0xFF5C,2,{0xA3,0xFC,0x00,0x00,}}, {0xFF5D,2,{0xA3,0xFD,0x00,0x00,}}, {0xFF5E,2,{0xA1,0xAB,0x00,0x00,}}, {0xFF5F,4,{0x84,0x31,0x95,0x35,}}, {0xFF60,4,{0x84,0x31,0x95,0x36,}}, {0xFF61,4,{0x84,0x31,0x95,0x37,}}, {0xFF62,4,{0x84,0x31,0x95,0x38,}}, {0xFF63,4,{0x84,0x31,0x95,0x39,}}, {0xFF64,4,{0x84,0x31,0x96,0x30,}}, {0xFF65,4,{0x84,0x31,0x96,0x31,}}, {0xFF66,4,{0x84,0x31,0x96,0x32,}}, {0xFF67,4,{0x84,0x31,0x96,0x33,}}, {0xFF68,4,{0x84,0x31,0x96,0x34,}}, {0xFF69,4,{0x84,0x31,0x96,0x35,}}, {0xFF6A,4,{0x84,0x31,0x96,0x36,}}, {0xFF6B,4,{0x84,0x31,0x96,0x37,}}, {0xFF6C,4,{0x84,0x31,0x96,0x38,}}, {0xFF6D,4,{0x84,0x31,0x96,0x39,}}, {0xFF6E,4,{0x84,0x31,0x97,0x30,}}, {0xFF6F,4,{0x84,0x31,0x97,0x31,}}, {0xFF70,4,{0x84,0x31,0x97,0x32,}}, {0xFF71,4,{0x84,0x31,0x97,0x33,}}, {0xFF72,4,{0x84,0x31,0x97,0x34,}}, {0xFF73,4,{0x84,0x31,0x97,0x35,}}, {0xFF74,4,{0x84,0x31,0x97,0x36,}}, {0xFF75,4,{0x84,0x31,0x97,0x37,}}, {0xFF76,4,{0x84,0x31,0x97,0x38,}}, {0xFF77,4,{0x84,0x31,0x97,0x39,}}, {0xFF78,4,{0x84,0x31,0x98,0x30,}}, {0xFF79,4,{0x84,0x31,0x98,0x31,}}, {0xFF7A,4,{0x84,0x31,0x98,0x32,}}, {0xFF7B,4,{0x84,0x31,0x98,0x33,}}, {0xFF7C,4,{0x84,0x31,0x98,0x34,}}, {0xFF7D,4,{0x84,0x31,0x98,0x35,}}, {0xFF7E,4,{0x84,0x31,0x98,0x36,}}, {0xFF7F,4,{0x84,0x31,0x98,0x37,}}, {0xFF80,4,{0x84,0x31,0x98,0x38,}}, {0xFF81,4,{0x84,0x31,0x98,0x39,}}, {0xFF82,4,{0x84,0x31,0x99,0x30,}}, {0xFF83,4,{0x84,0x31,0x99,0x31,}}, {0xFF84,4,{0x84,0x31,0x99,0x32,}}, {0xFF85,4,{0x84,0x31,0x99,0x33,}}, {0xFF86,4,{0x84,0x31,0x99,0x34,}}, {0xFF87,4,{0x84,0x31,0x99,0x35,}}, {0xFF88,4,{0x84,0x31,0x99,0x36,}}, {0xFF89,4,{0x84,0x31,0x99,0x37,}}, {0xFF8A,4,{0x84,0x31,0x99,0x38,}}, {0xFF8B,4,{0x84,0x31,0x99,0x39,}}, {0xFF8C,4,{0x84,0x31,0x9A,0x30,}}, {0xFF8D,4,{0x84,0x31,0x9A,0x31,}}, {0xFF8E,4,{0x84,0x31,0x9A,0x32,}}, {0xFF8F,4,{0x84,0x31,0x9A,0x33,}}, {0xFF90,4,{0x84,0x31,0x9A,0x34,}}, {0xFF91,4,{0x84,0x31,0x9A,0x35,}}, {0xFF92,4,{0x84,0x31,0x9A,0x36,}}, {0xFF93,4,{0x84,0x31,0x9A,0x37,}}, {0xFF94,4,{0x84,0x31,0x9A,0x38,}}, {0xFF95,4,{0x84,0x31,0x9A,0x39,}}, {0xFF96,4,{0x84,0x31,0x9B,0x30,}}, {0xFF97,4,{0x84,0x31,0x9B,0x31,}}, {0xFF98,4,{0x84,0x31,0x9B,0x32,}}, {0xFF99,4,{0x84,0x31,0x9B,0x33,}}, {0xFF9A,4,{0x84,0x31,0x9B,0x34,}}, {0xFF9B,4,{0x84,0x31,0x9B,0x35,}}, {0xFF9C,4,{0x84,0x31,0x9B,0x36,}}, {0xFF9D,4,{0x84,0x31,0x9B,0x37,}}, {0xFF9E,4,{0x84,0x31,0x9B,0x38,}}, {0xFF9F,4,{0x84,0x31,0x9B,0x39,}}, {0xFFA0,4,{0x84,0x31,0x9C,0x30,}}, {0xFFA1,4,{0x84,0x31,0x9C,0x31,}}, {0xFFA2,4,{0x84,0x31,0x9C,0x32,}}, {0xFFA3,4,{0x84,0x31,0x9C,0x33,}}, {0xFFA4,4,{0x84,0x31,0x9C,0x34,}}, {0xFFA5,4,{0x84,0x31,0x9C,0x35,}}, {0xFFA6,4,{0x84,0x31,0x9C,0x36,}}, {0xFFA7,4,{0x84,0x31,0x9C,0x37,}}, {0xFFA8,4,{0x84,0x31,0x9C,0x38,}}, {0xFFA9,4,{0x84,0x31,0x9C,0x39,}}, {0xFFAA,4,{0x84,0x31,0x9D,0x30,}}, {0xFFAB,4,{0x84,0x31,0x9D,0x31,}}, {0xFFAC,4,{0x84,0x31,0x9D,0x32,}}, {0xFFAD,4,{0x84,0x31,0x9D,0x33,}}, {0xFFAE,4,{0x84,0x31,0x9D,0x34,}}, {0xFFAF,4,{0x84,0x31,0x9D,0x35,}}, {0xFFB0,4,{0x84,0x31,0x9D,0x36,}}, {0xFFB1,4,{0x84,0x31,0x9D,0x37,}}, {0xFFB2,4,{0x84,0x31,0x9D,0x38,}}, {0xFFB3,4,{0x84,0x31,0x9D,0x39,}}, {0xFFB4,4,{0x84,0x31,0x9E,0x30,}}, {0xFFB5,4,{0x84,0x31,0x9E,0x31,}}, {0xFFB6,4,{0x84,0x31,0x9E,0x32,}}, {0xFFB7,4,{0x84,0x31,0x9E,0x33,}}, {0xFFB8,4,{0x84,0x31,0x9E,0x34,}}, {0xFFB9,4,{0x84,0x31,0x9E,0x35,}}, {0xFFBA,4,{0x84,0x31,0x9E,0x36,}}, {0xFFBB,4,{0x84,0x31,0x9E,0x37,}}, {0xFFBC,4,{0x84,0x31,0x9E,0x38,}}, {0xFFBD,4,{0x84,0x31,0x9E,0x39,}}, {0xFFBE,4,{0x84,0x31,0x9F,0x30,}}, {0xFFBF,4,{0x84,0x31,0x9F,0x31,}}, {0xFFC0,4,{0x84,0x31,0x9F,0x32,}}, {0xFFC1,4,{0x84,0x31,0x9F,0x33,}}, {0xFFC2,4,{0x84,0x31,0x9F,0x34,}}, {0xFFC3,4,{0x84,0x31,0x9F,0x35,}}, {0xFFC4,4,{0x84,0x31,0x9F,0x36,}}, {0xFFC5,4,{0x84,0x31,0x9F,0x37,}}, {0xFFC6,4,{0x84,0x31,0x9F,0x38,}}, {0xFFC7,4,{0x84,0x31,0x9F,0x39,}}, {0xFFC8,4,{0x84,0x31,0xA0,0x30,}}, {0xFFC9,4,{0x84,0x31,0xA0,0x31,}}, {0xFFCA,4,{0x84,0x31,0xA0,0x32,}}, {0xFFCB,4,{0x84,0x31,0xA0,0x33,}}, {0xFFCC,4,{0x84,0x31,0xA0,0x34,}}, {0xFFCD,4,{0x84,0x31,0xA0,0x35,}}, {0xFFCE,4,{0x84,0x31,0xA0,0x36,}}, {0xFFCF,4,{0x84,0x31,0xA0,0x37,}}, {0xFFD0,4,{0x84,0x31,0xA0,0x38,}}, {0xFFD1,4,{0x84,0x31,0xA0,0x39,}}, {0xFFD2,4,{0x84,0x31,0xA1,0x30,}}, {0xFFD3,4,{0x84,0x31,0xA1,0x31,}}, {0xFFD4,4,{0x84,0x31,0xA1,0x32,}}, {0xFFD5,4,{0x84,0x31,0xA1,0x33,}}, {0xFFD6,4,{0x84,0x31,0xA1,0x34,}}, {0xFFD7,4,{0x84,0x31,0xA1,0x35,}}, {0xFFD8,4,{0x84,0x31,0xA1,0x36,}}, {0xFFD9,4,{0x84,0x31,0xA1,0x37,}}, {0xFFDA,4,{0x84,0x31,0xA1,0x38,}}, {0xFFDB,4,{0x84,0x31,0xA1,0x39,}}, {0xFFDC,4,{0x84,0x31,0xA2,0x30,}}, {0xFFDD,4,{0x84,0x31,0xA2,0x31,}}, {0xFFDE,4,{0x84,0x31,0xA2,0x32,}}, {0xFFDF,4,{0x84,0x31,0xA2,0x33,}}, {0xFFE0,2,{0xA1,0xE9,0x00,0x00,}}, {0xFFE1,2,{0xA1,0xEA,0x00,0x00,}}, {0xFFE2,2,{0xA9,0x56,0x00,0x00,}}, {0xFFE3,2,{0xA3,0xFE,0x00,0x00,}}, {0xFFE4,2,{0xA9,0x57,0x00,0x00,}}, {0xFFE5,2,{0xA3,0xA4,0x00,0x00,}}, }; unsigned int ngb18030_enums = sizeof( gb18030_enums ) / sizeof( gb18030_enums[0] ); hs-bibutils-6.10.0.0/bibutils/generic.c0000644000000000000000000000622407346545000015753 0ustar0000000000000000/* generic.c * * Copyright (c) Chris Putnam 2016-2020 * * Source code released under GPL version 2 * * xxxx_convertf() stubs that can be shared. */ #include "bu_auth.h" #include "marc_auth.h" #include "name.h" #include "notes.h" #include "pages.h" #include "serialno.h" #include "title.h" #include "url.h" #include "utf8.h" #include "generic.h" /* stub for processtypes that aren't used, such as DEFAULT and ALWAYS handled by bibcore.c */ int generic_null( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return BIBL_OK; } int generic_url( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return urls_split_and_add( str_cstr( invalue ), bibout, level ); } int generic_notes( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( notes_add( bibout, invalue, level ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_pages( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( pages_add( bibout, outtag, invalue, level ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( name_add( bibout, outtag, str_cstr( invalue ), level, &(pm->asis), &(pm->corps) ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_serialno( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( addsn( bibout, str_cstr( invalue ), level ) ) return BIBL_OK; return BIBL_ERR_MEMERR; } /* SIMPLE = just copy */ int generic_simple( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( fields_add( bibout, outtag, str_cstr( invalue ), level ) == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* just like generic_null(), but useful if we need one that isn't identical to generic_null() ala biblatexin.c */ int generic_skip( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { fields_set_used( bibin, n ); return BIBL_OK; } int generic_title( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( title_process( bibout, outtag, str_cstr( invalue ), level, pm->nosplittitle ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_genre( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int status; if ( is_marc_genre( str_cstr( invalue ) ) ) status = fields_add( bibout, "GENRE:MARC", str_cstr( invalue ), level ); else if ( is_bu_genre( str_cstr( invalue ) ) ) status = fields_add( bibout, "GENRE:BIBUTILS", str_cstr( invalue ), level ); else status = fields_add( bibout, "GENRE:UNKNOWN", str_cstr( invalue ), level ); if ( status == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } void generic_writeheader( FILE *outptr, param *pm ) { if ( pm->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.10.0.0/bibutils/generic.c0000755000000000000000000000622407346545000015756 0ustar0000000000000000/* generic.c * * Copyright (c) Chris Putnam 2016-2020 * * Source code released under GPL version 2 * * xxxx_convertf() stubs that can be shared. */ #include "bu_auth.h" #include "marc_auth.h" #include "name.h" #include "notes.h" #include "pages.h" #include "serialno.h" #include "title.h" #include "url.h" #include "utf8.h" #include "generic.h" /* stub for processtypes that aren't used, such as DEFAULT and ALWAYS handled by bibcore.c */ int generic_null( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return BIBL_OK; } int generic_url( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return urls_split_and_add( str_cstr( invalue ), bibout, level ); } int generic_notes( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( notes_add( bibout, invalue, level ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_pages( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( pages_add( bibout, outtag, invalue, level ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( name_add( bibout, outtag, str_cstr( invalue ), level, &(pm->asis), &(pm->corps) ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_serialno( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( addsn( bibout, str_cstr( invalue ), level ) ) return BIBL_OK; return BIBL_ERR_MEMERR; } /* SIMPLE = just copy */ int generic_simple( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( fields_add( bibout, outtag, str_cstr( invalue ), level ) == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* just like generic_null(), but useful if we need one that isn't identical to generic_null() ala biblatexin.c */ int generic_skip( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { fields_set_used( bibin, n ); return BIBL_OK; } int generic_title( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( title_process( bibout, outtag, str_cstr( invalue ), level, pm->nosplittitle ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_genre( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int status; if ( is_marc_genre( str_cstr( invalue ) ) ) status = fields_add( bibout, "GENRE:MARC", str_cstr( invalue ), level ); else if ( is_bu_genre( str_cstr( invalue ) ) ) status = fields_add( bibout, "GENRE:BIBUTILS", str_cstr( invalue ), level ); else status = fields_add( bibout, "GENRE:UNKNOWN", str_cstr( invalue ), level ); if ( status == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } void generic_writeheader( FILE *outptr, param *pm ) { if ( pm->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.10.0.0/bibutils/generic.h0000755000000000000000000000272307346545000015763 0ustar0000000000000000/* generic.h * * Copyright (c) Chris Putnam 2016-2019 * * Source code released under GPL version 2 * */ #ifndef GENERIC_H #define GENERIC_H #include #include "bibutils.h" int generic_null ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_url ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_notes ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_pages ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_person ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_serialno( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_simple ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_skip ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_title ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_genre ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); void generic_writeheader( FILE *outptr, param *pm ); #endif hs-bibutils-6.10.0.0/bibutils/intlist.c0000644000000000000000000002175307346545000016031 0ustar0000000000000000/* * intlist.c * * Copyright (c) Chris Putnam 2007-2020 * * Version 1/12/2017 * * Source code released under the GPL version 2 * * Implements a simple managed array of ints * */ #include #include #include "intlist.h" #define INTLIST_MINALLOC (20) static int intlist_validn( intlist *il, int n ) { if ( n < 0 || n >= il->n ) return 0; return 1; } int intlist_wasfound( intlist *il, int n ) { if ( n!=-1 ) return 1; else return 0; } int intlist_wasnotfound( intlist *il, int n ) { if ( n==-1 ) return 1; else return 0; } static int intlist_alloc( intlist *il, int alloc_size ) { il->data = ( int * ) calloc( alloc_size, sizeof( int ) ); if ( !(il->data) ) return INTLIST_MEMERR; il->max = alloc_size; il->n = 0; return INTLIST_OK; } static int intlist_realloc( intlist *il, int alloc_size ) { int i, *more; more = ( int * ) realloc( il->data, sizeof( int ) * alloc_size ); if ( !more ) return INTLIST_MEMERR; il->data = more; il->max = alloc_size; for ( i=il->max; idata[i] = 0; return INTLIST_OK; } static int intlist_ensure_space( intlist *il, int n ) { int alloc = n; if ( il->max == 0 ) { if ( alloc < INTLIST_MINALLOC ) alloc = INTLIST_MINALLOC; return intlist_alloc( il, alloc ); } else if ( il->max <= n ) { if ( alloc < il->max * 2 ) alloc = il->max * 2; return intlist_realloc( il, alloc ); } return INTLIST_OK; } /* intlist_add() * * Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_add( intlist *il, int value ) { int status; assert( il ); status = intlist_ensure_space( il, il->n+1 ); if ( status == INTLIST_OK ) { il->data[ il->n ] = value; il->n++; } return status; } /* intlist_add_unique() * * Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_add_unique( intlist *il, int value ) { int n; assert( il ); n = intlist_find( il, value ); if ( intlist_wasnotfound( il, n ) ) return intlist_add( il, value ); else return INTLIST_OK; } int intlist_find_or_add( intlist *il, int value ) { int n, status; n = intlist_find( il, value ); if ( intlist_wasfound( il, n ) ) { return n; } else { status = intlist_add( il, value ); if ( status!=INTLIST_OK ) return -1; else return il->n - 1; } } /* intlist_find() * * Returns position of value in range [0,n), or -1 if * value cannot be found */ int intlist_find( intlist *il, int value ) { int i; assert( il ); for ( i=0; in; ++i ) if ( il->data[i]==value ) return i; return -1; } static int intlist_remove_pos_core( intlist *il, int pos ) { int i; assert( il ); for ( i=pos; in-1; ++i ) il->data[i] = il->data[i+1]; il->n -= 1; return INTLIST_OK; } /* intlist_remove_pos() * * Returns INTLIST_OK on success. */ int intlist_remove_pos( intlist *il, int pos ) { assert( il ); assert( intlist_validn( il, pos ) ); return intlist_remove_pos_core( il, pos ); } /* intlist_remove() * * Removes first instance of value from the intlist. * Returns INTLIST_OK/INTLIST_VALUE_MISSING */ int intlist_remove( intlist *il, int value ) { int pos; assert( il ); pos = intlist_find( il, value ); if ( pos==-1 ) return INTLIST_VALUE_MISSING; return intlist_remove_pos_core( il, pos ); } /* don't actually free space, just reset counter */ void intlist_empty( intlist *il ) { assert( il ); il->n = 0; } void intlist_free( intlist *il ) { assert( il ); if ( il->data ) free( il->data ); intlist_init( il ); } void intlist_delete( intlist *il ) { assert( il ); if ( il->data ) free( il->data ); free( il ); } void intlist_init( intlist *il ) { assert( il ); il->data = NULL; il->max = 0; il->n = 0; } /* Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_init_fill( intlist *il, int n, int v ) { intlist_init( il ); return intlist_fill( il, n, v ); } /* intlist_init_range() * * Initializes intlist to values from [low,high) with step step. * Returns INTLIST_OK/INTLIST_MEMERR. */ int intlist_init_range( intlist *il, int low, int high, int step ) { intlist_init( il ); return intlist_fill_range( il, low, high, step ); } /* intlist_new() * * Allocates an empty intlist. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new( void ) { intlist *il; il = ( intlist * ) malloc( sizeof( intlist ) ); if ( il ) intlist_init( il ); return il; } /* intlist_new_range() * * Allocates a intlist initialized to values from [low,high) in increments of step. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new_range( int low, int high, int step ) { intlist *il; int status; il = intlist_new(); if ( il ) { status = intlist_fill_range( il, low, high, step ); if ( status==INTLIST_MEMERR ) { intlist_free( il ); free( il ); il = NULL; } } return il; } /* intlist_new_range() * * Allocates a intlist initialized to n elements with value v. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new_fill( int n, int v ) { intlist *il; int status; il = intlist_new(); if ( il ) { status = intlist_fill( il, n, v ); if ( status==INTLIST_MEMERR ) { intlist_free( il ); free( il ); il = NULL; } } return il; } /* intlist_fill() * * Fill an intlist with n elements of value v. * * Returns INTLIST_OK or INTLIST_MEMERR. */ int intlist_fill( intlist *il, int n, int v ) { int i, status; assert ( n > 0 ); status = intlist_ensure_space( il, n ); if ( status==INTLIST_OK ) { for ( i=0; idata[i] = v; il->n = n; } return status; } /* intlist_fill_range() * * Fill an intlist with the values [low,high) in increments of step * * Returns INTLIST_OK or INTLIST_MEMERR. */ int intlist_fill_range( intlist *il, int low, int high, int step ) { int i, n, status; n = ( high - low ) / step + 1; assert ( n > 0 ); status = intlist_ensure_space( il, n ); if ( status==INTLIST_OK ) { il->n = 0; /* ...fill intlist with range */ if ( step > 0 ) { for ( i=low; idata[il->n] = i; il->n += 1; } } else { for ( i=low; i>high; i+=step ) { il->data[il->n] = i; il->n += 1; } } } return status; } static int intcomp( const void *v1, const void *v2 ) { int *i1 = ( int * ) v1; int *i2 = ( int * ) v2; if ( *i1 < *i2 ) return -1; else if ( *i1 > *i2 ) return 1; return 0; } void intlist_sort( intlist *il ) { assert( il ); qsort( il->data, il->n, sizeof( int ), intcomp ); } /* Returns random integer in the range [floor,ceil) */ static int randomint( int floor, int ceil ) { int len = ceil - floor; return floor + rand() % len; } static void swap( int *a, int *b ) { int tmp; tmp = *a; *a = *b; *b = tmp; } void intlist_randomize( intlist *il ) { int i, j; assert( il ); if ( il->n < 2 ) return; for ( i=0; in; ++i ) { j = randomint( i, il->n ); if ( i==j ) continue; swap( &(il->data[i]), &(il->data[j]) ); } } /* Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_copy( intlist *to, intlist *from ) { int i, status; assert( to ); assert( from ); status = intlist_ensure_space( to, from->n ); if ( status==INTLIST_OK ) { to->n = from->n; for ( i=0; in; ++i ) to->data[i] = from->data[i]; } return status; } /* Returns pointer on success, NULL on error */ intlist * intlist_dup( intlist *il ) { intlist *l; int status; assert( il ); l = intlist_new(); if ( l ) { status = intlist_copy( l, il ); if ( status==INTLIST_MEMERR ) { intlist_delete( l ); l = NULL; } } return l; } int intlist_append( intlist *to, intlist *from ) { int i, status; assert( to ); assert( from ); status = intlist_ensure_space( to, to->n + from->n ); if ( status == INTLIST_OK ) { for ( i=0; in; ++i ) to->data[ to->n + i ] = from->data[ i ]; to->n += from->n; } return status; } int intlist_append_unique( intlist *to, intlist *from ) { int i, nsave, status = INTLIST_OK; assert( to ); assert( from ); nsave = to->n; for ( i=0; in; ++i ) { if ( intlist_find( to, from->data[i] )!=-1 ) continue; status = intlist_add( to, from->data[i] ); if ( status==INTLIST_MEMERR ) { to->n = nsave; } } return status; } int intlist_get( intlist *il, int pos ) { assert( il ); assert( intlist_validn( il, pos ) ); return il->data[pos]; } /* intlist_set() * * Returns INTLIST_OK */ int intlist_set( intlist *il, int pos, int value ) { assert( il ); assert( intlist_validn( il, pos ) ); il->data[pos] = value; return INTLIST_OK; } float intlist_median( intlist *il ) { intlist *tmp; float median; int m1, m2; assert( il ); if ( il->n==0 ) return 0.0; tmp = intlist_dup( il ); if ( !tmp ) return 0.0; intlist_sort( tmp ); if ( tmp->n % 2 == 1 ) { median = intlist_get( tmp, tmp->n / 2 ); } else { m1 = intlist_get( tmp, tmp->n / 2 ); m2 = intlist_get( tmp, tmp->n / 2 - 1); median = ( m1 + m2 ) / 2.0; } intlist_delete( tmp ); return median; } float intlist_mean( intlist *il ) { float sum = 0.0; int i; assert( il ); if ( il->n==0 ) return 0.0; for ( i=0; in; ++i ) sum += intlist_get( il, i ); return sum / il->n; } hs-bibutils-6.10.0.0/bibutils/intlist.c0000755000000000000000000002175307346545000016034 0ustar0000000000000000/* * intlist.c * * Copyright (c) Chris Putnam 2007-2020 * * Version 1/12/2017 * * Source code released under the GPL version 2 * * Implements a simple managed array of ints * */ #include #include #include "intlist.h" #define INTLIST_MINALLOC (20) static int intlist_validn( intlist *il, int n ) { if ( n < 0 || n >= il->n ) return 0; return 1; } int intlist_wasfound( intlist *il, int n ) { if ( n!=-1 ) return 1; else return 0; } int intlist_wasnotfound( intlist *il, int n ) { if ( n==-1 ) return 1; else return 0; } static int intlist_alloc( intlist *il, int alloc_size ) { il->data = ( int * ) calloc( alloc_size, sizeof( int ) ); if ( !(il->data) ) return INTLIST_MEMERR; il->max = alloc_size; il->n = 0; return INTLIST_OK; } static int intlist_realloc( intlist *il, int alloc_size ) { int i, *more; more = ( int * ) realloc( il->data, sizeof( int ) * alloc_size ); if ( !more ) return INTLIST_MEMERR; il->data = more; il->max = alloc_size; for ( i=il->max; idata[i] = 0; return INTLIST_OK; } static int intlist_ensure_space( intlist *il, int n ) { int alloc = n; if ( il->max == 0 ) { if ( alloc < INTLIST_MINALLOC ) alloc = INTLIST_MINALLOC; return intlist_alloc( il, alloc ); } else if ( il->max <= n ) { if ( alloc < il->max * 2 ) alloc = il->max * 2; return intlist_realloc( il, alloc ); } return INTLIST_OK; } /* intlist_add() * * Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_add( intlist *il, int value ) { int status; assert( il ); status = intlist_ensure_space( il, il->n+1 ); if ( status == INTLIST_OK ) { il->data[ il->n ] = value; il->n++; } return status; } /* intlist_add_unique() * * Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_add_unique( intlist *il, int value ) { int n; assert( il ); n = intlist_find( il, value ); if ( intlist_wasnotfound( il, n ) ) return intlist_add( il, value ); else return INTLIST_OK; } int intlist_find_or_add( intlist *il, int value ) { int n, status; n = intlist_find( il, value ); if ( intlist_wasfound( il, n ) ) { return n; } else { status = intlist_add( il, value ); if ( status!=INTLIST_OK ) return -1; else return il->n - 1; } } /* intlist_find() * * Returns position of value in range [0,n), or -1 if * value cannot be found */ int intlist_find( intlist *il, int value ) { int i; assert( il ); for ( i=0; in; ++i ) if ( il->data[i]==value ) return i; return -1; } static int intlist_remove_pos_core( intlist *il, int pos ) { int i; assert( il ); for ( i=pos; in-1; ++i ) il->data[i] = il->data[i+1]; il->n -= 1; return INTLIST_OK; } /* intlist_remove_pos() * * Returns INTLIST_OK on success. */ int intlist_remove_pos( intlist *il, int pos ) { assert( il ); assert( intlist_validn( il, pos ) ); return intlist_remove_pos_core( il, pos ); } /* intlist_remove() * * Removes first instance of value from the intlist. * Returns INTLIST_OK/INTLIST_VALUE_MISSING */ int intlist_remove( intlist *il, int value ) { int pos; assert( il ); pos = intlist_find( il, value ); if ( pos==-1 ) return INTLIST_VALUE_MISSING; return intlist_remove_pos_core( il, pos ); } /* don't actually free space, just reset counter */ void intlist_empty( intlist *il ) { assert( il ); il->n = 0; } void intlist_free( intlist *il ) { assert( il ); if ( il->data ) free( il->data ); intlist_init( il ); } void intlist_delete( intlist *il ) { assert( il ); if ( il->data ) free( il->data ); free( il ); } void intlist_init( intlist *il ) { assert( il ); il->data = NULL; il->max = 0; il->n = 0; } /* Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_init_fill( intlist *il, int n, int v ) { intlist_init( il ); return intlist_fill( il, n, v ); } /* intlist_init_range() * * Initializes intlist to values from [low,high) with step step. * Returns INTLIST_OK/INTLIST_MEMERR. */ int intlist_init_range( intlist *il, int low, int high, int step ) { intlist_init( il ); return intlist_fill_range( il, low, high, step ); } /* intlist_new() * * Allocates an empty intlist. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new( void ) { intlist *il; il = ( intlist * ) malloc( sizeof( intlist ) ); if ( il ) intlist_init( il ); return il; } /* intlist_new_range() * * Allocates a intlist initialized to values from [low,high) in increments of step. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new_range( int low, int high, int step ) { intlist *il; int status; il = intlist_new(); if ( il ) { status = intlist_fill_range( il, low, high, step ); if ( status==INTLIST_MEMERR ) { intlist_free( il ); free( il ); il = NULL; } } return il; } /* intlist_new_range() * * Allocates a intlist initialized to n elements with value v. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new_fill( int n, int v ) { intlist *il; int status; il = intlist_new(); if ( il ) { status = intlist_fill( il, n, v ); if ( status==INTLIST_MEMERR ) { intlist_free( il ); free( il ); il = NULL; } } return il; } /* intlist_fill() * * Fill an intlist with n elements of value v. * * Returns INTLIST_OK or INTLIST_MEMERR. */ int intlist_fill( intlist *il, int n, int v ) { int i, status; assert ( n > 0 ); status = intlist_ensure_space( il, n ); if ( status==INTLIST_OK ) { for ( i=0; idata[i] = v; il->n = n; } return status; } /* intlist_fill_range() * * Fill an intlist with the values [low,high) in increments of step * * Returns INTLIST_OK or INTLIST_MEMERR. */ int intlist_fill_range( intlist *il, int low, int high, int step ) { int i, n, status; n = ( high - low ) / step + 1; assert ( n > 0 ); status = intlist_ensure_space( il, n ); if ( status==INTLIST_OK ) { il->n = 0; /* ...fill intlist with range */ if ( step > 0 ) { for ( i=low; idata[il->n] = i; il->n += 1; } } else { for ( i=low; i>high; i+=step ) { il->data[il->n] = i; il->n += 1; } } } return status; } static int intcomp( const void *v1, const void *v2 ) { int *i1 = ( int * ) v1; int *i2 = ( int * ) v2; if ( *i1 < *i2 ) return -1; else if ( *i1 > *i2 ) return 1; return 0; } void intlist_sort( intlist *il ) { assert( il ); qsort( il->data, il->n, sizeof( int ), intcomp ); } /* Returns random integer in the range [floor,ceil) */ static int randomint( int floor, int ceil ) { int len = ceil - floor; return floor + rand() % len; } static void swap( int *a, int *b ) { int tmp; tmp = *a; *a = *b; *b = tmp; } void intlist_randomize( intlist *il ) { int i, j; assert( il ); if ( il->n < 2 ) return; for ( i=0; in; ++i ) { j = randomint( i, il->n ); if ( i==j ) continue; swap( &(il->data[i]), &(il->data[j]) ); } } /* Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_copy( intlist *to, intlist *from ) { int i, status; assert( to ); assert( from ); status = intlist_ensure_space( to, from->n ); if ( status==INTLIST_OK ) { to->n = from->n; for ( i=0; in; ++i ) to->data[i] = from->data[i]; } return status; } /* Returns pointer on success, NULL on error */ intlist * intlist_dup( intlist *il ) { intlist *l; int status; assert( il ); l = intlist_new(); if ( l ) { status = intlist_copy( l, il ); if ( status==INTLIST_MEMERR ) { intlist_delete( l ); l = NULL; } } return l; } int intlist_append( intlist *to, intlist *from ) { int i, status; assert( to ); assert( from ); status = intlist_ensure_space( to, to->n + from->n ); if ( status == INTLIST_OK ) { for ( i=0; in; ++i ) to->data[ to->n + i ] = from->data[ i ]; to->n += from->n; } return status; } int intlist_append_unique( intlist *to, intlist *from ) { int i, nsave, status = INTLIST_OK; assert( to ); assert( from ); nsave = to->n; for ( i=0; in; ++i ) { if ( intlist_find( to, from->data[i] )!=-1 ) continue; status = intlist_add( to, from->data[i] ); if ( status==INTLIST_MEMERR ) { to->n = nsave; } } return status; } int intlist_get( intlist *il, int pos ) { assert( il ); assert( intlist_validn( il, pos ) ); return il->data[pos]; } /* intlist_set() * * Returns INTLIST_OK */ int intlist_set( intlist *il, int pos, int value ) { assert( il ); assert( intlist_validn( il, pos ) ); il->data[pos] = value; return INTLIST_OK; } float intlist_median( intlist *il ) { intlist *tmp; float median; int m1, m2; assert( il ); if ( il->n==0 ) return 0.0; tmp = intlist_dup( il ); if ( !tmp ) return 0.0; intlist_sort( tmp ); if ( tmp->n % 2 == 1 ) { median = intlist_get( tmp, tmp->n / 2 ); } else { m1 = intlist_get( tmp, tmp->n / 2 ); m2 = intlist_get( tmp, tmp->n / 2 - 1); median = ( m1 + m2 ) / 2.0; } intlist_delete( tmp ); return median; } float intlist_mean( intlist *il ) { float sum = 0.0; int i; assert( il ); if ( il->n==0 ) return 0.0; for ( i=0; in; ++i ) sum += intlist_get( il, i ); return sum / il->n; } hs-bibutils-6.10.0.0/bibutils/intlist.h0000755000000000000000000000331107346545000016027 0ustar0000000000000000/* * intlist.h * * Copyright (c) Chris Putnam 2007-2019 * * Version 01/12/2017 * * Source code released under the GPL version 2 * */ #ifndef INTLIST_H #define INTLIST_H #define INTLIST_OK (0) #define INTLIST_MEMERR (-1) #define INTLIST_VALUE_MISSING (-2) typedef struct intlist { int n, max; int *data; } intlist; void intlist_init( intlist *il ); int intlist_init_fill( intlist *il, int n, int value ); int intlist_init_range( intlist *il, int low, int high, int step ); intlist * intlist_new( void ); intlist * intlist_new_fill( int n, int value ); intlist * intlist_new_range( int low, int high, int step ); void intlist_delete( intlist *il ); void intlist_sort( intlist *il ); void intlist_randomize( intlist *il ); int intlist_add( intlist *il, int value ); int intlist_add_unique( intlist *il, int value ); int intlist_fill( intlist *il, int n, int value ); int intlist_fill_range( intlist *il, int low, int high, int step ); int intlist_find( intlist *il, int searchvalue ); int intlist_find_or_add( intlist *il, int searchvalue ); void intlist_empty( intlist *il ); void intlist_free( intlist *il ); int intlist_copy( intlist *to, intlist *from ); intlist * intlist_dup( intlist *from ); int intlist_get( intlist *il, int pos ); int intlist_set( intlist *il, int pos, int value ); int intlist_remove( intlist *il, int searchvalue ); int intlist_remove_pos( intlist *il, int pos ); int intlist_append( intlist *to, intlist *from ); int intlist_append_unique( intlist *to, intlist *from ); float intlist_median( intlist *il ); float intlist_mean( intlist *il ); #endif hs-bibutils-6.10.0.0/bibutils/is_ws.c0000644000000000000000000000134407346545000015461 0ustar0000000000000000/* * is_ws.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include "is_ws.h" /* is_ws(), is whitespace */ int is_ws( const char ch ) { if ( ch==' ' || ch=='\n' || ch=='\t' || ch=='\r' ) return 1; else return 0; } const char * skip_ws( const char *p ) { if ( p ) { while ( is_ws( *p ) ) p++; } return p; } const char * skip_notws( const char *p ) { if ( p ) { while ( *p && !is_ws( *p ) ) p++; } return p; } const char * skip_line( const char *p ) { /* ...skip until end-of-line markers */ while ( *p && *p!='\n' && *p!='\r' ) p++; /* ...skip end-of-line marker */ if ( *p=='\r' ) p++; /* for CR LF or just CR end of lines */ if ( *p=='\n' ) p++; return p; } hs-bibutils-6.10.0.0/bibutils/is_ws.c0000755000000000000000000000134407346545000015464 0ustar0000000000000000/* * is_ws.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include "is_ws.h" /* is_ws(), is whitespace */ int is_ws( const char ch ) { if ( ch==' ' || ch=='\n' || ch=='\t' || ch=='\r' ) return 1; else return 0; } const char * skip_ws( const char *p ) { if ( p ) { while ( is_ws( *p ) ) p++; } return p; } const char * skip_notws( const char *p ) { if ( p ) { while ( *p && !is_ws( *p ) ) p++; } return p; } const char * skip_line( const char *p ) { /* ...skip until end-of-line markers */ while ( *p && *p!='\n' && *p!='\r' ) p++; /* ...skip end-of-line marker */ if ( *p=='\r' ) p++; /* for CR LF or just CR end of lines */ if ( *p=='\n' ) p++; return p; } hs-bibutils-6.10.0.0/bibutils/is_ws.h0000755000000000000000000000046007346545000015467 0ustar0000000000000000/* * is_ws.h * * Copyright (c) Chris Putnam 2003-2019 * * Source code released under the GPL version 2 * */ #ifndef IS_WS_H #define IS_WS_H int is_ws( const char ch ); const char *skip_ws( const char *p ); const char *skip_notws( const char *p ); const char *skip_line( const char *p ); #endif hs-bibutils-6.10.0.0/bibutils/isiin.c0000644000000000000000000002547107346545000015457 0ustar0000000000000000/* * isiin.c * * Copyright (c) Chris Putnam 2004-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "name.h" #include "fields.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants isi_all[]; extern int isi_nall; static int isiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int isiin_typef( fields *isiin, const char *filename, int nref, param *p ); static int isiin_convertf( fields *isiin, fields *info, int reftype, param *p ); static int isiin_processf( fields *isiin, const char *p, const char *filename, long nref, param *pm ); /***************************************************** PUBLIC: void isiin_initparams() *****************************************************/ int isiin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_ISIIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = isiin_readf; pm->processf = isiin_processf; pm->cleanf = NULL; pm->typef = isiin_typef; pm->convertf = isiin_convertf; pm->all = isi_all; pm->nall = isi_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int isiin_readf() *****************************************************/ /* ISI definition of a tag is strict: * char 1 = uppercase alphabetic character * char 2 = uppercase alphabetic character or digit */ static int is_isi_tag( const char *buf ) { if ( !isupper( (unsigned char )buf[0] ) ) return 0; if ( !( isupper( (unsigned char )buf[1] ) || isdigit( (unsigned char )buf[1] ) ) ) return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int isiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( str_is_empty( line ) ) continue; p = str_cstr( line ); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } /* Each reference ends with 'ER ' */ if ( is_isi_tag( p ) ) { if ( !strncmp( p, "FN ", 3 ) ) { if (strncasecmp( p, "FN ISI Export Format",20)){ fprintf( stderr, ": warning file FN type not '%s' not recognized.\n", /*r->progname,*/ p ); } } else if ( !strncmp( p, "VR ", 3 ) ) { if ( strncasecmp( p, "VR 1.0", 6 ) ) { fprintf(stderr,": warning file version number '%s' not recognized, expected 'VR 1.0'\n", /*r->progname,*/ p ); } } else if ( !strncmp( p, "ER", 2 ) ) haveref = 1; else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); inref = 1; } str_empty( line ); } /* not a tag, but we'll append to the last values */ else if ( inref ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); str_empty( line ); } else { str_empty( line ); } } return haveref; } /***************************************************** PUBLIC: int isiin_processf() *****************************************************/ static const char * process_tagged_line( str *tag, str *value, const char *p ) { int i = 0; /* collect tag and skip past it */ while ( i<2 && *p && *p!='\r' && *p!='\n') { str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) { str_addchar( value, *p ); p++; } str_trimendingws( value ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static const char * process_untagged_line( str *value, const char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) { str_addchar( value, *p ); p++; } str_trimendingws( value ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static int add_tag_value( fields *isiin, str *tag, str *value, int *tag_added ) { int status; if ( str_has_value( tag ) && str_has_value( value ) ) { status = fields_add( isiin, str_cstr( tag ), str_cstr( value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } else { *tag_added = 0; } return BIBL_OK; } static int merge_tag_value( fields *isiin, str *tag, str *value, int *tag_added ) { int n, status; str *oldvalue; if ( str_has_value( value ) ) { if ( *tag_added==1 ) { n = fields_num( isiin ); if ( n==0 ) return BIBL_OK; /* only one AU or AF for list of authors */ if ( !strcmp( str_cstr( tag ), "AU" ) ) { status = fields_add( isiin, "AU", str_cstr( value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strcmp( str_cstr( tag ), "AF" ) ) { status = fields_add( isiin, "AF", str_cstr( value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } /* otherwise append multiline data */ else { oldvalue = fields_value( isiin, n-1, FIELDS_STRP_NOUSE ); str_addchar( oldvalue, ' ' ); str_strcat( oldvalue, value ); if ( str_memerr( oldvalue ) ) return BIBL_ERR_MEMERR; } } else { status = fields_add( isiin, str_cstr( tag ), str_cstr( value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } } return BIBL_OK; } static int isiin_processf( fields *isiin, const char *p, const char *filename, long nref, param *pm ) { int status, tag_added = 0, ret = 1; str tag, value; strs_init( &tag, &value, NULL ); while ( *p ) { /* ...with tag, add */ if ( is_isi_tag( p ) ) { str_empty( &tag ); str_empty( &value ); p = process_tagged_line( &tag, &value, p ); status = add_tag_value( isiin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } /* ...untagged, merge -- one AU or AF for list of authors */ else { str_empty( &value ); p = process_untagged_line( &value, p ); status = merge_tag_value( isiin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } } out: strs_free( &value, &tag, NULL ); return ret; } /***************************************************** PUBLIC: int isiin_typef() *****************************************************/ static int isiin_typef( fields *isiin, const char *filename, int nref, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename=""; ntypename = fields_find( isiin, "PT", LEVEL_MAIN ); nrefname = fields_find( isiin, "UT", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( isiin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( isiin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int isiin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* pull off authors first--use AF before AU */ static int isiin_addauthors( fields *isiin, fields *info, int reftype, variants *all, int nall, slist *asis, slist *corps ) { char *newtag, *authortype, use_af[]="AF", use_au[]="AU"; int level, i, n, has_af=0, has_au=0, nfields, ok; str *t, *d; nfields = fields_num( isiin ); for ( i=0; idata, "AU" ) ) has_au++; if ( !strcasecmp( t->data, "AF" ) ) has_af++; } if ( has_af ) authortype = use_af; else if ( has_au ) authortype = use_au; else return BIBL_OK; /* no authors */ for ( i=0; idata, authortype ) ) continue; d = fields_value( isiin, i, FIELDS_STRP ); n = process_findoldtag( authortype, reftype, all, nall ); level = ((all[reftype]).tags[n]).level; newtag = all[reftype].tags[n].newstr; ok = name_add( info, newtag, d->data, level, asis, corps ); if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int isiin_keyword( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { const char *p = str_cstr( invalue ); int fstatus, status = BIBL_OK; str keyword; str_init( &keyword ); while ( *p ) { p = str_cpytodelim( &keyword, skip_ws( p ), ";", 1 ); if ( str_memerr( &keyword ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &keyword ) ) { fstatus = fields_add( bibout, outtag, keyword.data, level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: str_free( &keyword ); return status; } static void isiin_report_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "PT" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify ISI tag '%s'\n", tag ); } } static int isiin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SERIALNO ] = generic_serialno, [ DATE ] = generic_simple, [ NOTES ] = generic_notes, [ KEYWORD ] = isiin_keyword, }; int process, level, i, nfields, status; str *intag, *invalue; char *outtag; status = isiin_addauthors( bibin, bibout, reftype, p->all, p->nall, &(p->asis), &(p->corps) ); if ( status!=BIBL_OK ) return status; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { isiin_report_notag( p, str_cstr( intag ) ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.10.0.0/bibutils/isiin.c0000755000000000000000000002547107346545000015462 0ustar0000000000000000/* * isiin.c * * Copyright (c) Chris Putnam 2004-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "name.h" #include "fields.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants isi_all[]; extern int isi_nall; static int isiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int isiin_typef( fields *isiin, const char *filename, int nref, param *p ); static int isiin_convertf( fields *isiin, fields *info, int reftype, param *p ); static int isiin_processf( fields *isiin, const char *p, const char *filename, long nref, param *pm ); /***************************************************** PUBLIC: void isiin_initparams() *****************************************************/ int isiin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_ISIIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = isiin_readf; pm->processf = isiin_processf; pm->cleanf = NULL; pm->typef = isiin_typef; pm->convertf = isiin_convertf; pm->all = isi_all; pm->nall = isi_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int isiin_readf() *****************************************************/ /* ISI definition of a tag is strict: * char 1 = uppercase alphabetic character * char 2 = uppercase alphabetic character or digit */ static int is_isi_tag( const char *buf ) { if ( !isupper( (unsigned char )buf[0] ) ) return 0; if ( !( isupper( (unsigned char )buf[1] ) || isdigit( (unsigned char )buf[1] ) ) ) return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int isiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( str_is_empty( line ) ) continue; p = str_cstr( line ); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } /* Each reference ends with 'ER ' */ if ( is_isi_tag( p ) ) { if ( !strncmp( p, "FN ", 3 ) ) { if (strncasecmp( p, "FN ISI Export Format",20)){ fprintf( stderr, ": warning file FN type not '%s' not recognized.\n", /*r->progname,*/ p ); } } else if ( !strncmp( p, "VR ", 3 ) ) { if ( strncasecmp( p, "VR 1.0", 6 ) ) { fprintf(stderr,": warning file version number '%s' not recognized, expected 'VR 1.0'\n", /*r->progname,*/ p ); } } else if ( !strncmp( p, "ER", 2 ) ) haveref = 1; else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); inref = 1; } str_empty( line ); } /* not a tag, but we'll append to the last values */ else if ( inref ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); str_empty( line ); } else { str_empty( line ); } } return haveref; } /***************************************************** PUBLIC: int isiin_processf() *****************************************************/ static const char * process_tagged_line( str *tag, str *value, const char *p ) { int i = 0; /* collect tag and skip past it */ while ( i<2 && *p && *p!='\r' && *p!='\n') { str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) { str_addchar( value, *p ); p++; } str_trimendingws( value ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static const char * process_untagged_line( str *value, const char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) { str_addchar( value, *p ); p++; } str_trimendingws( value ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static int add_tag_value( fields *isiin, str *tag, str *value, int *tag_added ) { int status; if ( str_has_value( tag ) && str_has_value( value ) ) { status = fields_add( isiin, str_cstr( tag ), str_cstr( value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } else { *tag_added = 0; } return BIBL_OK; } static int merge_tag_value( fields *isiin, str *tag, str *value, int *tag_added ) { int n, status; str *oldvalue; if ( str_has_value( value ) ) { if ( *tag_added==1 ) { n = fields_num( isiin ); if ( n==0 ) return BIBL_OK; /* only one AU or AF for list of authors */ if ( !strcmp( str_cstr( tag ), "AU" ) ) { status = fields_add( isiin, "AU", str_cstr( value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strcmp( str_cstr( tag ), "AF" ) ) { status = fields_add( isiin, "AF", str_cstr( value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } /* otherwise append multiline data */ else { oldvalue = fields_value( isiin, n-1, FIELDS_STRP_NOUSE ); str_addchar( oldvalue, ' ' ); str_strcat( oldvalue, value ); if ( str_memerr( oldvalue ) ) return BIBL_ERR_MEMERR; } } else { status = fields_add( isiin, str_cstr( tag ), str_cstr( value ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } } return BIBL_OK; } static int isiin_processf( fields *isiin, const char *p, const char *filename, long nref, param *pm ) { int status, tag_added = 0, ret = 1; str tag, value; strs_init( &tag, &value, NULL ); while ( *p ) { /* ...with tag, add */ if ( is_isi_tag( p ) ) { str_empty( &tag ); str_empty( &value ); p = process_tagged_line( &tag, &value, p ); status = add_tag_value( isiin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } /* ...untagged, merge -- one AU or AF for list of authors */ else { str_empty( &value ); p = process_untagged_line( &value, p ); status = merge_tag_value( isiin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } } out: strs_free( &value, &tag, NULL ); return ret; } /***************************************************** PUBLIC: int isiin_typef() *****************************************************/ static int isiin_typef( fields *isiin, const char *filename, int nref, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename=""; ntypename = fields_find( isiin, "PT", LEVEL_MAIN ); nrefname = fields_find( isiin, "UT", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( isiin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( isiin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int isiin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* pull off authors first--use AF before AU */ static int isiin_addauthors( fields *isiin, fields *info, int reftype, variants *all, int nall, slist *asis, slist *corps ) { char *newtag, *authortype, use_af[]="AF", use_au[]="AU"; int level, i, n, has_af=0, has_au=0, nfields, ok; str *t, *d; nfields = fields_num( isiin ); for ( i=0; idata, "AU" ) ) has_au++; if ( !strcasecmp( t->data, "AF" ) ) has_af++; } if ( has_af ) authortype = use_af; else if ( has_au ) authortype = use_au; else return BIBL_OK; /* no authors */ for ( i=0; idata, authortype ) ) continue; d = fields_value( isiin, i, FIELDS_STRP ); n = process_findoldtag( authortype, reftype, all, nall ); level = ((all[reftype]).tags[n]).level; newtag = all[reftype].tags[n].newstr; ok = name_add( info, newtag, d->data, level, asis, corps ); if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int isiin_keyword( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { const char *p = str_cstr( invalue ); int fstatus, status = BIBL_OK; str keyword; str_init( &keyword ); while ( *p ) { p = str_cpytodelim( &keyword, skip_ws( p ), ";", 1 ); if ( str_memerr( &keyword ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &keyword ) ) { fstatus = fields_add( bibout, outtag, keyword.data, level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: str_free( &keyword ); return status; } static void isiin_report_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "PT" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify ISI tag '%s'\n", tag ); } } static int isiin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SERIALNO ] = generic_serialno, [ DATE ] = generic_simple, [ NOTES ] = generic_notes, [ KEYWORD ] = isiin_keyword, }; int process, level, i, nfields, status; str *intag, *invalue; char *outtag; status = isiin_addauthors( bibin, bibout, reftype, p->all, p->nall, &(p->asis), &(p->corps) ); if ( status!=BIBL_OK ) return status; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { isiin_report_notag( p, str_cstr( intag ) ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.10.0.0/bibutils/isiout.c0000644000000000000000000002513107346545000015651 0ustar0000000000000000/* * isiout.c * * Copyright (c) Chris Putnam 2008-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "bibformats.h" #include "bibutils.h" #include "fields.h" #include "generic.h" #include "str.h" #include "title.h" #include "type.h" #include "utf8.h" /***************************************************** PUBLIC: int isiout_initparams() *****************************************************/ static int isiout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); static int isiout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int isiout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_ISIOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; if ( pm->charsetout == BIBL_CHARSET_UNICODE ) { pm->utf8out = pm->utf8bom = 1; } pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = isiout_assemble; pm->writef = isiout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int isiout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE = 1, TYPE_INBOOK = 2, TYPE_BOOK = 3, }; static int get_type( fields *in ) { match_type genre_matches[] = { { "periodical", TYPE_ARTICLE, LEVEL_ANY }, { "academic journal", TYPE_ARTICLE, LEVEL_ANY }, { "journal article", TYPE_ARTICLE, LEVEL_ANY }, { "book", TYPE_BOOK, LEVEL_MAIN }, { "book", TYPE_INBOOK, LEVEL_ANY }, { "book chapter", TYPE_INBOOK, LEVEL_ANY }, { "collection", TYPE_BOOK, LEVEL_MAIN }, { "collection", TYPE_INBOOK, LEVEL_ANY }, }; int ngenre_matches = sizeof( genre_matches ) / sizeof( genre_matches[0] ); match_type issuance_matches[] = { { "monographic", TYPE_BOOK, LEVEL_MAIN }, { "monographic", TYPE_INBOOK, LEVEL_ANY }, }; int nissuance_matches = sizeof( issuance_matches ) / sizeof( issuance_matches[0] ); int type; type = type_from_mods_hints( in, TYPE_FROM_GENRE, genre_matches, ngenre_matches, TYPE_UNKNOWN ); if ( type!=TYPE_UNKNOWN ) return type; return type_from_mods_hints( in, TYPE_FROM_ISSUANCE, issuance_matches, nissuance_matches, TYPE_UNKNOWN ); } static void append_type( int type, fields *out, int *status ) { int fstatus; char *s; switch( type ) { case TYPE_ARTICLE: s = "Journal"; break; case TYPE_INBOOK: s = "Chapter"; break; case TYPE_BOOK: s = "Book"; break; default: s = "Unknown"; break; } fstatus = fields_add( out, "PT", s, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_titlecore( fields *in, char *isitag, int level, char *maintag, char *subtag, fields *out, int *status ) { str *mainttl = fields_findv( in, level, FIELDS_STRP, maintag ); str *subttl = fields_findv( in, level, FIELDS_STRP, subtag ); str fullttl; int fstatus; str_init( &fullttl ); title_combine( &fullttl, mainttl, subttl ); if ( str_memerr( &fullttl ) ) { *status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fullttl ) ) { fstatus = fields_add( out, isitag, str_cstr( &fullttl ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } out: str_free( &fullttl ); } static void append_title( fields *in, char *isitag, int level, fields *out, int *status ) { append_titlecore( in, isitag, level, "TITLE", "SUBTITLE", out, status ); } static void append_abbrtitle( fields *in, char *isitag, int level, fields *out, int *status ) { append_titlecore( in, isitag, level, "SHORTTITLE", "SHORTSUBTITLE", out, status ); } static void append_keywords( fields *in, fields *out, int *status ) { vplist_index i; str keywords; int fstatus; vplist kw; str_init( &keywords ); vplist_init( &kw ); fields_findv_each( in, LEVEL_ANY, FIELDS_STRP, &kw, "KEYWORD" ); if ( kw.n ) { for ( i=0; i0 ) str_strcatc( &keywords, "; " ); str_strcat( &keywords, (str *) vplist_get( &kw, i ) ); } if ( str_memerr( &keywords ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, "DE", str_cstr( &keywords ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } } out: vplist_free( &kw ); str_free( &keywords ); } static void process_person( str *person, char *name ) { str family, given, suffix; char *p = name; str_empty( person ); strs_init( &family, &given, &suffix, NULL ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); while ( *p=='|' && *(p+1)!='|' ) { p++; if ( *p!='|' ) str_addchar( &given, *p++ ); while ( *p && *p!='|' ) p++; } if ( *p=='|' && *(p+1)=='|' ) { p += 2; while ( *p && *p!='|' ) str_addchar( &suffix, *p++ ); } if ( str_has_value( &family ) ) str_strcat( person, &family ); if ( str_has_value( &suffix ) ) { if ( str_has_value( &family ) ) str_strcatc( person, " " ); str_strcat( person, &suffix ); } if ( str_has_value( &given ) ) { if ( str_has_value( person ) ) str_strcatc( person, ", " ); str_strcat( person, &given ); } strs_free( &family, &given, &suffix, NULL ); } static void append_people( fields *f, char *tag, char *isitag, int level, fields *out, int *status ) { vplist_index i; vplist people; str person; int fstatus; str_init( &person ); vplist_init( &people ); fields_findv_each( f, level, FIELDS_CHRP, &people, tag ); for ( i=0; in; ++i ) { fprintf( fp, "%s %s\n", ( char * ) fields_tag ( out, i, FIELDS_CHRP ), ( char * ) fields_value( out, i, FIELDS_CHRP ) ); } fprintf( fp, "ER\n\n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/isiout.c0000755000000000000000000002513107346545000015654 0ustar0000000000000000/* * isiout.c * * Copyright (c) Chris Putnam 2008-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "bibformats.h" #include "bibutils.h" #include "fields.h" #include "generic.h" #include "str.h" #include "title.h" #include "type.h" #include "utf8.h" /***************************************************** PUBLIC: int isiout_initparams() *****************************************************/ static int isiout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); static int isiout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int isiout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_ISIOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; if ( pm->charsetout == BIBL_CHARSET_UNICODE ) { pm->utf8out = pm->utf8bom = 1; } pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = isiout_assemble; pm->writef = isiout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int isiout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE = 1, TYPE_INBOOK = 2, TYPE_BOOK = 3, }; static int get_type( fields *in ) { match_type genre_matches[] = { { "periodical", TYPE_ARTICLE, LEVEL_ANY }, { "academic journal", TYPE_ARTICLE, LEVEL_ANY }, { "journal article", TYPE_ARTICLE, LEVEL_ANY }, { "book", TYPE_BOOK, LEVEL_MAIN }, { "book", TYPE_INBOOK, LEVEL_ANY }, { "book chapter", TYPE_INBOOK, LEVEL_ANY }, { "collection", TYPE_BOOK, LEVEL_MAIN }, { "collection", TYPE_INBOOK, LEVEL_ANY }, }; int ngenre_matches = sizeof( genre_matches ) / sizeof( genre_matches[0] ); match_type issuance_matches[] = { { "monographic", TYPE_BOOK, LEVEL_MAIN }, { "monographic", TYPE_INBOOK, LEVEL_ANY }, }; int nissuance_matches = sizeof( issuance_matches ) / sizeof( issuance_matches[0] ); int type; type = type_from_mods_hints( in, TYPE_FROM_GENRE, genre_matches, ngenre_matches, TYPE_UNKNOWN ); if ( type!=TYPE_UNKNOWN ) return type; return type_from_mods_hints( in, TYPE_FROM_ISSUANCE, issuance_matches, nissuance_matches, TYPE_UNKNOWN ); } static void append_type( int type, fields *out, int *status ) { int fstatus; char *s; switch( type ) { case TYPE_ARTICLE: s = "Journal"; break; case TYPE_INBOOK: s = "Chapter"; break; case TYPE_BOOK: s = "Book"; break; default: s = "Unknown"; break; } fstatus = fields_add( out, "PT", s, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_titlecore( fields *in, char *isitag, int level, char *maintag, char *subtag, fields *out, int *status ) { str *mainttl = fields_findv( in, level, FIELDS_STRP, maintag ); str *subttl = fields_findv( in, level, FIELDS_STRP, subtag ); str fullttl; int fstatus; str_init( &fullttl ); title_combine( &fullttl, mainttl, subttl ); if ( str_memerr( &fullttl ) ) { *status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fullttl ) ) { fstatus = fields_add( out, isitag, str_cstr( &fullttl ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } out: str_free( &fullttl ); } static void append_title( fields *in, char *isitag, int level, fields *out, int *status ) { append_titlecore( in, isitag, level, "TITLE", "SUBTITLE", out, status ); } static void append_abbrtitle( fields *in, char *isitag, int level, fields *out, int *status ) { append_titlecore( in, isitag, level, "SHORTTITLE", "SHORTSUBTITLE", out, status ); } static void append_keywords( fields *in, fields *out, int *status ) { vplist_index i; str keywords; int fstatus; vplist kw; str_init( &keywords ); vplist_init( &kw ); fields_findv_each( in, LEVEL_ANY, FIELDS_STRP, &kw, "KEYWORD" ); if ( kw.n ) { for ( i=0; i0 ) str_strcatc( &keywords, "; " ); str_strcat( &keywords, (str *) vplist_get( &kw, i ) ); } if ( str_memerr( &keywords ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, "DE", str_cstr( &keywords ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } } out: vplist_free( &kw ); str_free( &keywords ); } static void process_person( str *person, char *name ) { str family, given, suffix; char *p = name; str_empty( person ); strs_init( &family, &given, &suffix, NULL ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); while ( *p=='|' && *(p+1)!='|' ) { p++; if ( *p!='|' ) str_addchar( &given, *p++ ); while ( *p && *p!='|' ) p++; } if ( *p=='|' && *(p+1)=='|' ) { p += 2; while ( *p && *p!='|' ) str_addchar( &suffix, *p++ ); } if ( str_has_value( &family ) ) str_strcat( person, &family ); if ( str_has_value( &suffix ) ) { if ( str_has_value( &family ) ) str_strcatc( person, " " ); str_strcat( person, &suffix ); } if ( str_has_value( &given ) ) { if ( str_has_value( person ) ) str_strcatc( person, ", " ); str_strcat( person, &given ); } strs_free( &family, &given, &suffix, NULL ); } static void append_people( fields *f, char *tag, char *isitag, int level, fields *out, int *status ) { vplist_index i; vplist people; str person; int fstatus; str_init( &person ); vplist_init( &people ); fields_findv_each( f, level, FIELDS_CHRP, &people, tag ); for ( i=0; in; ++i ) { fprintf( fp, "%s %s\n", ( char * ) fields_tag ( out, i, FIELDS_CHRP ), ( char * ) fields_value( out, i, FIELDS_CHRP ) ); } fprintf( fp, "ER\n\n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/isitypes.c0000644000000000000000000002607607346545000016217 0ustar0000000000000000/* * isitypes.c * * Copyright (c) Chris Putnam 2004-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" static lookups article[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS:PUBLISHER", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "AR", "ARTICLENUMBER", SIMPLE, LEVEL_MAIN }, /* AR=article number that Phys. Rev. B uses instead of page numbers */ { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "PI", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS:PUBLISHER", SIMPLE, LEVEL_MAIN }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_MAIN }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "PT", " ", TYPE, LEVEL_HOST }, { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; static lookups inbook[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS:PUBLISHER", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_HOST }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; static lookups bookinseries[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_MAIN }, { "SE", "TITLE", TITLE, LEVEL_HOST }, { "BS", "SUBTITLE", TITLE, LEVEL_HOST }, { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS:PUBLISHER", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_MAIN } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants isi_all[] = { REFTYPE( "Journal", article ), REFTYPE( "J", article ), REFTYPE( "Book", book ), REFTYPE( "B", book ), REFTYPE( "Chapter", inbook ), REFTYPE( "S", bookinseries ), }; int isi_nall = sizeof( isi_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/isitypes.c0000755000000000000000000002607607346545000016222 0ustar0000000000000000/* * isitypes.c * * Copyright (c) Chris Putnam 2004-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" static lookups article[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS:PUBLISHER", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "AR", "ARTICLENUMBER", SIMPLE, LEVEL_MAIN }, /* AR=article number that Phys. Rev. B uses instead of page numbers */ { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "PI", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS:PUBLISHER", SIMPLE, LEVEL_MAIN }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_MAIN }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "PT", " ", TYPE, LEVEL_HOST }, { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; static lookups inbook[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS:PUBLISHER", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_HOST }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; static lookups bookinseries[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_MAIN }, { "SE", "TITLE", TITLE, LEVEL_HOST }, { "BS", "SUBTITLE", TITLE, LEVEL_HOST }, { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS:PUBLISHER", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_MAIN } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants isi_all[] = { REFTYPE( "Journal", article ), REFTYPE( "J", article ), REFTYPE( "Book", book ), REFTYPE( "B", book ), REFTYPE( "Chapter", inbook ), REFTYPE( "S", bookinseries ), }; int isi_nall = sizeof( isi_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/iso639_1.c0000644000000000000000000001073607346545000015616 0ustar0000000000000000/* * iso639_1.c */ #include #include "iso639_1.h" typedef struct { char *code; char *language; } iso639_1_t; static iso639_1_t iso639_1[] = { { "aa", "Afar" }, { "ab", "Abkhazian" }, { "ae", "Avestan" }, { "af", "Afrikaans" }, { "ak", "Akan" }, { "am", "Amharic" }, { "an", "Aragonese" }, { "ar", "Arabic" }, { "as", "Assamese" }, { "av", "Avaric" }, { "ay", "Aymara" }, { "az", "Azerbaijani" }, { "ba", "Bashkir" }, { "be", "Belarusian" }, { "bg", "Bulgarian" }, { "bh", "Bihari languages" }, { "bi", "Bislama" }, { "bm", "Bambara" }, { "bn", "Bengali" }, { "bo", "Tibetan" }, { "br", "Breton" }, { "bs", "Bosnian" }, { "ca", "Catalan" }, { "ce", "Chechen" }, { "ch", "Chamorro" }, { "co", "Corsican" }, { "cr", "Cree" }, { "cs", "Czech" }, { "cu", "Church Slavic" }, { "cv", "Chuvash" }, { "cy", "Welsh" }, { "da", "Danish" }, { "de", "German" }, { "dv", "Dhivehi" }, { "dz", "Dzongkha" }, { "ee", "Ewe" }, { "el", "Modern Greek" }, { "en", "English" }, { "eo", "Esperanto" }, { "es", "Spanish" }, { "et", "Estonian" }, { "eu", "Basque" }, { "fa", "Persian" }, { "ff", "Fulah" }, { "fi", "Finnish" }, { "fj", "Fijian" }, { "fo", "Faroese" }, { "fr", "French" }, { "fy", "Western Frisian" }, { "ga", "Irish" }, { "gd", "Scottish Gaelic" }, { "gl", "Galician" }, { "gn", "Guarani" }, { "gu", "Gujarati" }, { "gv", "Manx" }, { "ha", "Hausa" }, { "he", "Hebrew" }, { "hi", "Hindi" }, { "ho", "Hiri Motu" }, { "hr", "Croatian" }, { "ht", "Haitian" }, { "hu", "Hungarian" }, { "hy", "Armenian" }, { "hz", "Herero" }, { "ia", "Interlingua" }, { "id", "Indonesian" }, { "ie", "Interlingue" }, { "ig", "Igbo" }, { "ii", "Sichuan Yi" }, { "ik", "Inupiaq" }, { "io", "Ido" }, { "is", "Icelandic" }, { "it", "Italian" }, { "iu", "Inuktitut" }, { "ja", "Japanese" }, { "jv", "Javanese" }, { "ka", "Georgian" }, { "kg", "Kongo" }, { "ki", "Kikuyu" }, { "kj", "Kuanyama" }, { "kk", "Kazakh" }, { "kl", "Kalaallisut" }, { "km", "Central Khmer" }, { "kn", "Kannada" }, { "ko", "Korean" }, { "kr", "Kanuri" }, { "ks", "Kashmiri" }, { "ku", "Kurdish" }, { "kv", "Komi" }, { "kw", "Cornish" }, { "ky", "Kirghiz" }, { "la", "Latin" }, { "lb", "Luxembourgish" }, { "lg", "Ganda" }, { "li", "Limburgan" }, { "ln", "Lingala" }, { "lo", "Lao" }, { "lt", "Lithuanian" }, { "lu", "Luba-Katanga" }, { "lv", "Latvian" }, { "mg", "Malagasy" }, { "mh", "Marshallese" }, { "mi", "Maori" }, { "mk", "Macedonian" }, { "ml", "Malayalam" }, { "mn", "Mongolian" }, { "mr", "Marathi" }, { "ms", "Malay" }, { "mt", "Maltese" }, { "my", "Burmese" }, { "na", "Nauru" }, { "nb", "Norwegian Bokmål" }, { "nd", "North Ndebele" }, { "ne", "Nepali" }, { "ng", "Ndonga" }, { "nl", "Dutch" }, { "nn", "Norwegian Nynorsk" }, { "no", "Norwegian" }, { "nr", "South Ndebele" }, { "nv", "Navajo" }, { "ny", "Nyanja" }, { "oc", "Occitan" }, { "oj", "Ojibwa" }, { "om", "Oromo" }, { "or", "Oriya" }, { "os", "Ossetian" }, { "pa", "Panjabi" }, { "pi", "Pali" }, { "pl", "Polish" }, { "ps", "Pushto" }, { "pt", "Portuguese" }, { "qu", "Quechua" }, { "rm", "Romansh" }, { "rn", "Rundi" }, { "ro", "Romanian" }, { "ru", "Russian" }, { "rw", "Kinyarwanda" }, { "sa", "Sanskrit" }, { "sc", "Sardinian" }, { "sd", "Sindhi" }, { "se", "Northern Sami" }, { "sg", "Sango" }, { "sh", "Serbo-Croatian" }, { "si", "Sinhala" }, { "sk", "Slovak" }, { "sl", "Slovenian" }, { "sm", "Samoan" }, { "sn", "Shona" }, { "so", "Somali" }, { "sq", "Albanian" }, { "sr", "Serbian" }, { "ss", "Swati" }, { "st", "Southern Sotho" }, { "su", "Sundanese" }, { "sv", "Swedish" }, { "sw", "Swahili" }, { "ta", "Tamil" }, { "te", "Telugu" }, { "tg", "Tajik" }, { "th", "Thai" }, { "ti", "Tigrinya" }, { "tk", "Turkmen" }, { "tl", "Tagalog" }, { "tn", "Tswana" }, { "to", "Tonga" }, { "tr", "Turkish" }, { "ts", "Tsonga" }, { "tt", "Tatar" }, { "tw", "Twi" }, { "ty", "Tahitian" }, { "ug", "Uighur" }, { "uk", "Ukrainian" }, { "ur", "Urdu" }, { "uz", "Uzbek" }, { "ve", "Venda" }, { "vi", "Vietnamese" }, { "vo", "Volapük" }, { "wa", "Walloon" }, { "wo", "Wolof" }, { "xh", "Xhosa" }, { "yi", "Yiddish" }, { "yo", "Yoruba" }, { "za", "Zhuang" }, { "zh", "Chinese" }, { "zu", "Zulu" }, }; static int niso639_1= sizeof( iso639_1 ) / sizeof( iso639_1[0] ); char * iso639_1_from_code( const char *code ) { int i; for ( i=0; i #include "iso639_1.h" typedef struct { char *code; char *language; } iso639_1_t; static iso639_1_t iso639_1[] = { { "aa", "Afar" }, { "ab", "Abkhazian" }, { "ae", "Avestan" }, { "af", "Afrikaans" }, { "ak", "Akan" }, { "am", "Amharic" }, { "an", "Aragonese" }, { "ar", "Arabic" }, { "as", "Assamese" }, { "av", "Avaric" }, { "ay", "Aymara" }, { "az", "Azerbaijani" }, { "ba", "Bashkir" }, { "be", "Belarusian" }, { "bg", "Bulgarian" }, { "bh", "Bihari languages" }, { "bi", "Bislama" }, { "bm", "Bambara" }, { "bn", "Bengali" }, { "bo", "Tibetan" }, { "br", "Breton" }, { "bs", "Bosnian" }, { "ca", "Catalan" }, { "ce", "Chechen" }, { "ch", "Chamorro" }, { "co", "Corsican" }, { "cr", "Cree" }, { "cs", "Czech" }, { "cu", "Church Slavic" }, { "cv", "Chuvash" }, { "cy", "Welsh" }, { "da", "Danish" }, { "de", "German" }, { "dv", "Dhivehi" }, { "dz", "Dzongkha" }, { "ee", "Ewe" }, { "el", "Modern Greek" }, { "en", "English" }, { "eo", "Esperanto" }, { "es", "Spanish" }, { "et", "Estonian" }, { "eu", "Basque" }, { "fa", "Persian" }, { "ff", "Fulah" }, { "fi", "Finnish" }, { "fj", "Fijian" }, { "fo", "Faroese" }, { "fr", "French" }, { "fy", "Western Frisian" }, { "ga", "Irish" }, { "gd", "Scottish Gaelic" }, { "gl", "Galician" }, { "gn", "Guarani" }, { "gu", "Gujarati" }, { "gv", "Manx" }, { "ha", "Hausa" }, { "he", "Hebrew" }, { "hi", "Hindi" }, { "ho", "Hiri Motu" }, { "hr", "Croatian" }, { "ht", "Haitian" }, { "hu", "Hungarian" }, { "hy", "Armenian" }, { "hz", "Herero" }, { "ia", "Interlingua" }, { "id", "Indonesian" }, { "ie", "Interlingue" }, { "ig", "Igbo" }, { "ii", "Sichuan Yi" }, { "ik", "Inupiaq" }, { "io", "Ido" }, { "is", "Icelandic" }, { "it", "Italian" }, { "iu", "Inuktitut" }, { "ja", "Japanese" }, { "jv", "Javanese" }, { "ka", "Georgian" }, { "kg", "Kongo" }, { "ki", "Kikuyu" }, { "kj", "Kuanyama" }, { "kk", "Kazakh" }, { "kl", "Kalaallisut" }, { "km", "Central Khmer" }, { "kn", "Kannada" }, { "ko", "Korean" }, { "kr", "Kanuri" }, { "ks", "Kashmiri" }, { "ku", "Kurdish" }, { "kv", "Komi" }, { "kw", "Cornish" }, { "ky", "Kirghiz" }, { "la", "Latin" }, { "lb", "Luxembourgish" }, { "lg", "Ganda" }, { "li", "Limburgan" }, { "ln", "Lingala" }, { "lo", "Lao" }, { "lt", "Lithuanian" }, { "lu", "Luba-Katanga" }, { "lv", "Latvian" }, { "mg", "Malagasy" }, { "mh", "Marshallese" }, { "mi", "Maori" }, { "mk", "Macedonian" }, { "ml", "Malayalam" }, { "mn", "Mongolian" }, { "mr", "Marathi" }, { "ms", "Malay" }, { "mt", "Maltese" }, { "my", "Burmese" }, { "na", "Nauru" }, { "nb", "Norwegian Bokmål" }, { "nd", "North Ndebele" }, { "ne", "Nepali" }, { "ng", "Ndonga" }, { "nl", "Dutch" }, { "nn", "Norwegian Nynorsk" }, { "no", "Norwegian" }, { "nr", "South Ndebele" }, { "nv", "Navajo" }, { "ny", "Nyanja" }, { "oc", "Occitan" }, { "oj", "Ojibwa" }, { "om", "Oromo" }, { "or", "Oriya" }, { "os", "Ossetian" }, { "pa", "Panjabi" }, { "pi", "Pali" }, { "pl", "Polish" }, { "ps", "Pushto" }, { "pt", "Portuguese" }, { "qu", "Quechua" }, { "rm", "Romansh" }, { "rn", "Rundi" }, { "ro", "Romanian" }, { "ru", "Russian" }, { "rw", "Kinyarwanda" }, { "sa", "Sanskrit" }, { "sc", "Sardinian" }, { "sd", "Sindhi" }, { "se", "Northern Sami" }, { "sg", "Sango" }, { "sh", "Serbo-Croatian" }, { "si", "Sinhala" }, { "sk", "Slovak" }, { "sl", "Slovenian" }, { "sm", "Samoan" }, { "sn", "Shona" }, { "so", "Somali" }, { "sq", "Albanian" }, { "sr", "Serbian" }, { "ss", "Swati" }, { "st", "Southern Sotho" }, { "su", "Sundanese" }, { "sv", "Swedish" }, { "sw", "Swahili" }, { "ta", "Tamil" }, { "te", "Telugu" }, { "tg", "Tajik" }, { "th", "Thai" }, { "ti", "Tigrinya" }, { "tk", "Turkmen" }, { "tl", "Tagalog" }, { "tn", "Tswana" }, { "to", "Tonga" }, { "tr", "Turkish" }, { "ts", "Tsonga" }, { "tt", "Tatar" }, { "tw", "Twi" }, { "ty", "Tahitian" }, { "ug", "Uighur" }, { "uk", "Ukrainian" }, { "ur", "Urdu" }, { "uz", "Uzbek" }, { "ve", "Venda" }, { "vi", "Vietnamese" }, { "vo", "Volapük" }, { "wa", "Walloon" }, { "wo", "Wolof" }, { "xh", "Xhosa" }, { "yi", "Yiddish" }, { "yo", "Yoruba" }, { "za", "Zhuang" }, { "zh", "Chinese" }, { "zu", "Zulu" }, }; static int niso639_1= sizeof( iso639_1 ) / sizeof( iso639_1[0] ); char * iso639_1_from_code( const char *code ) { int i; for ( i=0; i #include "iso639_2.h" typedef struct { char *code1; char *code2; unsigned char main; char *language; } iso639_2_t; static iso639_2_t iso639_2[] = { { "abk", "", 1, "Abkhazian" }, { "ace", "", 1, "Achenese" }, { "ace", "", 1, "Achinese" }, { "ach", "", 1, "Acoli" }, { "ada", "", 1, "Adangme" }, { "ady", "", 1, "Adygei" }, { "ady", "", 1, "Adyghe" }, { "aar", "", 1, "Afar" }, { "afh", "", 1, "Afrihili" }, { "afr", "", 1, "Afrikaans" }, { "afa", "", 1, "Afroasiatic languages" }, { "ain", "", 1, "Ainu" }, { "aka", "", 1, "Akan" }, { "akk", "", 1, "Akkadian" }, { "alb", "sqi", 1, "Albanian" }, { "gsw", "", 1, "Alemannic" }, { "ale", "", 1, "Aleut" }, { "alg", "", 1, "Algonquian languages" }, { "gsw", "", 1, "Alsatian" }, { "alt", "", 1, "Altai, Southern" }, { "tut", "", 1, "Altaic languages" }, { "amh", "", 1, "Amharic" }, { "egy", "", 1, "Ancient Egyptian" }, { "grc", "", 1, "Ancient Greek" }, { "anp", "", 1, "Angika" }, { "apa", "", 1, "Apache languages" }, { "arc", "", 1, "Aramaic, Imperial" }, { "arc", "", 1, "Aramaic, Official" }, { "arp", "", 1, "Arapaho" }, { "arw", "", 1, "Arawak" }, { "arg", "", 1, "Argonese" }, { "arm", "hye", 1, "Armenian" }, { "rup", "", 1, "Aromanian" }, { "art", "", 1, "Artificial languages" }, { "rup", "", 1, "Arumanian" }, { "asm", "", 1, "Assamese" }, { "ast", "", 1, "Asturian" }, { "ast", "", 1, "Asturleonese" }, { "ath", "", 1, "Athabaskan languages" }, { "aus", "", 1, "Australian languages" }, { "map", "", 1, "Austronesian languages" }, { "ava", "", 1, "Avaric" }, { "ave", "", 1, "Avestan" }, { "awa", "", 1, "Awadhi" }, { "aze", "", 1, "Azerbaijani" }, { "ast", "", 1, "Bable" }, { "ban", "", 1, "Balinese" }, { "bat", "", 1, "Baltic languages" }, { "bal", "", 1, "Baluchi" }, { "bam", "", 1, "Bambara" }, { "bai", "", 1, "Bamileke languages" }, { "bad", "", 1, "Banda languages" }, { "bnt", "", 1, "Bantu languages" }, { "bas", "", 1, "Basa" }, { "bak", "", 1, "Bashkir" }, { "baq", "eus", 1, "Basque" }, { "bej", "", 1, "Bedawiyet" }, { "bej", "", 1, "Beja" }, { "bel", "", 1, "Belarusian" }, { "bem", "", 1, "Bemba" }, { "ben", "", 1, "Bengali" }, { "ber", "", 1, "Berber languages" }, { "bho", "", 1, "Bhojpuri" }, { "bih", "", 1, "Bihari languages" }, { "bik", "", 1, "Bikol" }, { "byn", "", 1, "Bilin" }, { "bin", "", 1, "Bini" }, { "bis", "", 1, "Bislama" }, { "bla", "", 1, "Blackfoot" }, { "byn", "", 1, "Blin" }, { "zbl", "", 1, "Blissymbols" }, { "bos", "", 1, "Bosnian" }, { "bra", "", 1, "Braj" }, { "btk", "", 1, "Bratak languages" }, { "bre", "", 1, "Breton" }, { "bug", "", 1, "Buginese" }, { "bul", "", 1, "Bulgarian" }, { "bua", "", 1, "Buriat" }, { "bur", "mya", 1, "Burmese" }, { "cad", "", 1, "Caddo" }, { "spa", "", 0, "Castilian" }, { "cat", "", 1, "Catalan" }, { "cau", "", 1, "Caucasian languages" }, { "ceb", "", 1, "Cebuano" }, { "cel", "", 1, "Celtic languages" }, { "cai", "", 1, "Central American Indian languages" }, { "khm", "", 1, "Central Khmer" }, { "chg", "", 1, "Chagatai" }, { "cmc", "", 1, "Chamic languages" }, { "cha", "", 1, "Chamorro" }, { "che", "", 1, "Chechen" }, { "chr", "", 1, "Cherokee" }, { "nya", "", 1, "Chewa" }, { "chy", "", 1, "Cheyenne" }, { "chb", "", 1, "Chibcha" }, { "nya", "", 1, "Chichewa" }, { "chi", "zho", 1, "Chinese" }, { "chn", "", 1, "Chinook Jargon" }, { "chp", "", 1, "Chipewyan" }, { "cho", "", 1, "Choctaw" }, { "zha", "", 1, "Chuang" }, { "chu", "", 1, "Church Slavic" }, { "chu", "", 1, "Church Slavonic" }, { "chk", "", 1, "Chuukese" }, { "chv", "", 1, "Chuvash" }, { "kbd", "", 1, "Circassian" }, { "nwc", "", 1, "Classical Nepal Bhasa" }, { "nwc", "", 1, "Classical Newari" }, { "syc", "", 1, "Classical Syriac" }, { "rar", "", 1, "Cook Islands Maori" }, { "cop", "", 1, "Coptic" }, { "cor", "", 1, "Cornish" }, { "cos", "", 1, "Corsican" }, { "cre", "", 1, "Cree" }, { "mus", "", 1, "Creek" }, { "crp", "", 1, "creoles and pidgins" }, { "cpe", "", 1, "creoles and pidgins, English-based" }, { "cpf", "", 1, "creoles and pidgins, French-based" }, { "cpp", "", 1, "creoles and pidgins, Portuguese-based" }, { "crh", "", 1, "Crimean Tartar" }, { "crh", "", 1, "Crimean Turkish" }, { "hrv", "", 1, "Croatian" }, { "cus", "", 1, "Cushitic languages" }, { "cze", "ces", 1, "Czech" }, { "dak", "", 1, "Dakota" }, { "dan", "", 1, "Danish" }, { "dar", "", 1, "Dargwa" }, { "del", "", 1, "Delaware" }, { "chp", "", 1, "Dene Suline" }, { "div", "", 1, "Dhivehi" }, { "din", "", 1, "Dinka" }, { "div", "", 1, "Divehi" }, { "doi", "", 1, "Dogri" }, { "dgr", "", 1, "Dogrib" }, { "dra", "", 1, "Dravidian languages" }, { "dua", "", 1, "Duala" }, { "dut", "", 1, "Dutch" }, { "dum", "", 1, "Dutch, Middle" }, { "dyu", "", 1, "Dyula" }, { "dzo", "", 1, "Dzongkha" }, { "frs", "", 1, "Eastern Frisian" }, { "bin", "", 1, "Edo" }, { "efi", "", 1, "Efik" }, { "egy", "", 1, "Egyptian (Ancient)" }, { "eka", "", 1, "Ekajuk" }, { "elx", "", 1, "Elamite" }, { "eng", "", 1, "English" }, { "enm", "", 0, "English, Middle" }, { "ang", "", 0, "English, Old" }, { "myv", "", 1, "Erzya" }, { "epo", "", 1, "Esperanto" }, { "est", "", 1, "Estonian" }, { "ewe", "", 1, "Ewe" }, { "ewo", "", 1, "Ewondo" }, { "fan", "", 1, "Fang" }, { "fat", "", 1, "Fanti" }, { "fao", "", 1, "Faroese" }, { "fij", "", 1, "Fijian" }, { "fil", "", 1, "Filipino" }, { "fin", "", 1, "Finnish" }, { "fiu", "", 1, "Finno-Ugric languages" }, { "dut", "", 1, "Flemish" }, { "fon", "", 1, "Fon" }, { "fre", "fra", 1, "French" }, { "frm", "", 0, "French, Middle" }, { "fro", "", 0, "French, Old" }, { "frs", "", 1, "Frisian, Eastern" }, { "frr", "", 1, "Frisian, Northern" }, { "fry", "", 1, "Frisian, Western" }, { "fur", "", 1, "Friulian" }, { "ful", "", 1, "Fulah" }, { "gaa", "", 1, "Ga" }, { "gla", "", 1, "Gaelic" }, { "car", "", 1, "Galibi Carib" }, { "lug", "", 1, "Ganda" }, { "gay", "", 1, "Gayo" }, { "gba", "", 1, "Gbaya" }, { "gez", "", 1, "Ge'ez" }, { "geo", "kat", 1, "Georgian" }, { "ger", "deu", 1, "German" }, { "nds", "", 1, "German, Low" }, { "gmh", "", 1, "German, Middle High" }, { "goh", "", 1, "German, Old High" }, { "gem", "", 1, "Germanic languages" }, { "kik", "", 1, "Gikuyu" }, { "gil", "", 1, "Gilbertese" }, { "gon", "", 1, "Gondi" }, { "gor", "", 1, "Gorontalo" }, { "got", "", 1, "Gothic" }, { "grb", "", 1, "Grebo" }, { "grc", "", 1, "Greek, Ancient" }, { "gre", "ell", 1, "Greek, Modern" }, { "kal", "", 1, "Greenlandic" }, { "grn", "", 1, "Guarani" }, { "guj", "", 1, "Gujarati" }, { "gwi", "", 1, "Gwich'in" }, { "hai", "", 1, "Haida" }, { "hat", "", 1, "Haitian" }, { "hat", "", 1, "Haitian Creole" }, { "hau", "", 1, "Hausa" }, { "haw", "", 1, "Hawaiian" }, { "heb", "", 1, "Hebrew" }, { "hil", "", 1, "Hiligaynon" }, { "him", "", 1, "Himachali languages" }, { "hin", "", 1, "Hindi" }, { "hmo", "", 1, "Hiri Motu" }, { "hit", "", 1, "Hittite" }, { "hmn", "", 1, "Hmong" }, { "hun", "", 1, "Hungarian" }, { "hup", "", 1, "Hupa" }, { "iba", "", 1, "Iban" }, { "ice", "isl", 1, "Icelandic" }, { "ido", "", 1, "Ido" }, { "ibo", "", 1, "Igbo" }, { "ijo", "", 1, "Ijo languages" }, { "ilo", "", 1, "Iloko" }, { "arc", "", 1, "Imperial Aramaic" }, { "smn", "", 1, "Inari Sami" }, { "inc", "", 1, "Indic languages" }, { "ine", "", 1, "Indo-European languages" }, { "ind", "", 1, "Indonesian" }, { "inh", "", 1, "Ingush" }, { "ina", "", 1, "Interlingua" }, { "ile", "", 1, "Interlingue, Occidental" }, { "iku", "", 1, "Inuktitut" }, { "ipk", "", 1, "Inupiaq" }, { "ira", "", 1, "Iranian languages" }, { "mga", "", 1, "Irish, Middle" }, { "sga", "", 1, "Irish, Old" }, { "iro", "", 1, "Iroquoian languages" }, { "ita", "", 1, "Italian" }, { "jpn", "", 1, "Japanese" }, { "jav", "", 1, "Javanese" }, { "kac", "", 1, "Jingpho" }, { "jrb", "", 1, "Judaeo-Arabic" }, { "jpr", "", 1, "Judaeo-Persian" }, { "kab", "", 1, "Kabyle" }, { "kac", "", 1, "Kachin" }, { "kal", "", 1, "Kalaallisut" }, { "xal", "", 1, "Kalmyk" }, { "kam", "", 1, "Kamba" }, { "kan", "", 1, "Kannada" }, { "kau", "", 1, "Kanuri" }, { "pam", "", 1, "Kapampangan" }, { "kaa", "", 1, "Kara-Kalpak" }, { "krc", "", 1, "Karachay-Balkar" }, { "krl", "", 1, "Karelian" }, { "kar", "", 1, "Karen languages" }, { "kas", "", 1, "Kashmiri" }, { "csb", "", 1, "Kashubian" }, { "kaw", "", 1, "Kawi" }, { "kaz", "", 1, "Kazakh" }, { "kha", "", 1, "Khasi" }, { "khi", "", 1, "Khoisan languages" }, { "kho", "", 1, "Khotanese" }, { "kik", "", 1, "Kikuyu" }, { "kmb", "", 1, "Kimbundu" }, { "kin", "", 1, "Kinyarwanda" }, { "kir", "", 1, "Kirghiz" }, { "gil", "", 1, "Kiribati" }, { "tlh", "", 1, "Klingon" }, { "kom", "", 1, "Komi" }, { "kon", "", 1, "Kongo" }, { "kok", "", 1, "Konkani" }, { "kor", "", 1, "Korean" }, { "kos", "", 1, "Kosraean" }, { "kpe", "", 1, "Kpelle" }, { "kro", "", 1, "Kru languages" }, { "kua", "", 1, "Kuanyama" }, { "kum", "", 1, "Kumyk" }, { "kur", "", 1, "Kurdish" }, { "kru", "", 1, "Kurukh" }, { "kut", "", 1, "Kutenai" }, { "kua", "", 1, "Kwanyama" }, { "kir", "", 1, "Kyrgyz" }, { "lad", "", 1, "Ladino" }, { "lah", "", 1, "Lahnda" }, { "lam", "", 1, "Lamba" }, { "day", "", 1, "Land Dayak languages" }, { "lao", "", 1, "Lao" }, { "lat", "", 1, "Latin" }, { "lav", "", 1, "Latvian" }, { "ast", "", 1, "Leonese" }, { "ltz", "", 1, "Letzeburgesch" }, { "lez", "", 1, "Lezghian" }, { "lim", "", 1, "Limburgan" }, { "lim", "", 1, "Limburger" }, { "lim", "", 1, "Limburgish" }, { "lin", "", 1, "Lingala" }, { "lit", "", 1, "Lithuanian" }, { "jbo", "", 1, "Lojban" }, { "nds", "", 1, "Low German" }, { "nds", "", 1, "Low Saxon" }, { "dsb", "", 1, "Lower Sorbian" }, { "loz", "", 1, "Lozi" }, { "lub", "", 1, "Luba-Katanga" }, { "lua", "", 1, "Luba-Lulua" }, { "lui", "", 1, "Luiseno" }, { "smj", "", 1, "Lule Sami" }, { "lun", "", 1, "Lunda" }, { "luo", "", 1, "Luo" }, { "luo", "", 1, "Luo (Kenya and Tanzania)" }, { "lus", "", 1, "Lushai" }, { "ltz", "", 1, "Luxembourgish" }, { "mas", "", 1, "Maasai" }, { "rup", "", 1, "Macedo-Romanian" }, { "mac", "mkd", 1, "Macedonian" }, { "mad", "", 1, "Madurese" }, { "mag", "", 1, "Magahi" }, { "mai", "", 1, "Maithili" }, { "mak", "", 1, "Makasar" }, { "mlg", "", 1, "Malagasy" }, { "may", "msa", 1, "Malay" }, { "mal", "", 1, "Malayalam" }, { "div", "", 1, "Maldivian" }, { "mlt", "", 1, "Maltese" }, { "mnc", "", 1, "Manchu" }, { "mdr", "", 1, "Mandar" }, { "man", "", 1, "Mandingo" }, { "mni", "", 1, "Manipuri" }, { "mno", "", 1, "Manobo languages" }, { "glv", "", 1, "Manx" }, { "mao", "mri", 1, "Maori" }, { "arn", "", 1, "Mapuche" }, { "arn", "", 1, "Mapudungun" }, { "mar", "", 1, "Marathi" }, { "chm", "", 1, "Mari" }, { "mah", "", 1, "Marshallese" }, { "mwr", "", 1, "Marwari" }, { "myn", "", 1, "Mayan languages" }, { "men", "", 1, "Mende" }, { "mic", "", 1, "Mi'kmaq" }, { "mic", "", 1, "Micmac" }, { "dum", "", 1, "Middle Dutch" }, { "enm", "", 1, "Middle English" }, { "frm", "", 1, "Middle French" }, { "gmh", "", 1, "Middle High German" }, { "mga", "", 1, "Middle Irish" }, { "pal", "", 1, "Middle Persian" }, { "min", "", 1, "Minangkabau" }, { "mwl", "", 1, "Mirandese" }, { "gre", "ell", 1, "Modern Greek" }, { "moh", "", 1, "Mohawk" }, { "mdf", "", 1, "Moksha" }, { "mkh", "", 1, "Mon-Khmer languages" }, { "lol", "", 1, "Mongo" }, { "mon", "", 1, "Mongolian" }, { "mos", "", 1, "Mossi" }, { "mul", "", 1, "Multiple languages" }, { "mun", "", 1, "Munda languages" }, { "nqo", "", 1, "N'Ko" }, { "nah", "", 1, "Nahuatl" }, { "nau", "", 1, "Nauruan" }, { "nav", "", 1, "Navaho" }, { "nav", "", 1, "Navajo" }, { "ndo", "", 1, "Ndonga" }, { "nap", "", 1, "Neapolitan" }, { "new", "", 1, "Nepal Bhasa" }, { "nep", "", 1, "Nepali" }, { "new", "", 1, "Newari" }, { "nia", "", 1, "Nias" }, { "nic", "", 1, "Niger-Congo languages" }, { "ssa", "", 1, "Nilo-Saharan languages" }, { "niu", "", 1, "Niuean" }, { "nog", "", 1, "Nogai" }, { "non", "", 0, "Norse, Old" }, { "nai", "", 1, "North American Indian languages" }, { "frr", "", 1, "Northern Frisian" }, { "nde", "", 1, "Northern Ndebele" }, { "sme", "", 1, "Northern Sami" }, { "nso", "", 1, "Northern Sotho" }, { "nob", "", 1, "Norwegian Bokmaal" }, { "nno", "", 1, "Norwegian Nynorsk" }, { "zxx", "", 1, "Not linguistic content; not applicable" }, { "nub", "", 1, "Nubian languages" }, { "iii", "", 1, "Nuosu" }, { "nym", "", 1, "Nyamwezi" }, { "nya", "", 1, "Nyanja" }, { "nyn", "", 1, "Nyankole" }, { "nyr", "", 1, "Nyoro" }, { "nzi", "", 1, "Nzima" }, { "oci", "", 1, "Occitan" }, { "pro", "", 0, "Occitan, Old" }, { "arc", "", 1, "Official Aramaic" }, { "xal", "", 1, "Oirat" }, { "oji", "", 1, "Ojibwa" }, { "chu", "", 1, "Old Bulgarian" }, { "chu", "", 1, "Old Church Slavonic" }, { "ang", "", 1, "Old English" }, { "fro", "", 1, "Old French" }, { "goh", "", 1, "Old High German" }, { "sga", "", 1, "Old Irish" }, { "nwc", "", 1, "Old Newari" }, { "non", "", 1, "Old Norse" }, { "pro", "", 1, "Old Occitan" }, { "peo", "", 1, "Old Persian" }, { "pro", "", 1, "Old Provencal" }, { "chu", "", 1, "Old Slavonic" }, { "ori", "", 1, "Oriya" }, { "orm", "", 1, "Oromo" }, { "osa", "", 1, "Osage" }, { "oss", "", 1, "Ossetian" }, { "oss", "", 1, "Ossetic" }, { "oto", "", 1, "Otomian languages" }, { "ota", "", 1, "Ottoman Turkish" }, { "pal", "", 1, "Pahlavi" }, { "pau", "", 1, "Palauan" }, { "pli", "", 1, "Pali" }, { "pam", "", 1, "Pampanga" }, { "pag", "", 1, "Pangasinan" }, { "pan", "", 1, "Panjabi" }, { "pap", "", 1, "Papiamento" }, { "paa", "", 1, "Papuan languages" }, { "pus", "", 1, "Pashto" }, { "pus", "", 1, "Pashto language" }, { "nso", "", 1, "Pedi" }, { "per", "fas", 1, "Persian" }, { "pal", "", 0, "Persian, Middle" }, { "peo", "", 0, "Persian, Old" }, { "phi", "", 1, "Philippine languages" }, { "phn", "", 1, "Phoenician" }, { "fil", "", 0, "Pilipino" }, { "pon", "", 1, "Pohnpeian" }, { "pol", "", 1, "Polish" }, { "por", "", 1, "Portuguese" }, { "pra", "", 1, "Prakit" }, { "pro", "", 0, "Provencal, Old" }, { "pan", "", 1, "Punjabi" }, { "que", "", 1, "Quechua" }, { "raj", "", 1, "Rajasthani" }, { "rap", "", 1, "Rapanui" }, { "rar", "", 1, "Rarotongan" }, { "roa", "", 1, "Romance languages" }, { "rum", "ron", 1, "Romanian" }, { "roh", "", 1, "Romansh" }, { "rom", "", 1, "Romany" }, { "run", "", 1, "Rundi" }, { "rus", "", 1, "Russian" }, { "kho", "", 1, "Sakan" }, { "sal", "", 1, "Salishan languages" }, { "sam", "", 1, "Samaritan Aramaic" }, { "smi", "", 1, "Sami languages" }, { "smo", "", 1, "Samoan" }, { "sad", "", 1, "Sandawe" }, { "sag", "", 1, "Sango" }, { "san", "", 1, "Sanskrit" }, { "sat", "", 1, "Santali" }, { "srd", "", 1, "Sardinian" }, { "sas", "", 1, "Sasak" }, { "nds", "", 1, "Saxon, Low" }, { "sco", "", 1, "Scots" }, { "gla", "", 1, "Scottish Gaelic" }, { "sel", "", 1, "Selkup" }, { "sem", "", 1, "Semitic languages" }, { "nso", "", 1, "Sepedi" }, { "srp", "", 1, "Serbian" }, { "srr", "", 1, "Serer" }, { "shn", "", 1, "Shan" }, { "sna", "", 1, "Shona" }, { "iii", "", 1, "Sichuan Yi" }, { "scn", "", 1, "Sicilian" }, { "sid", "", 1, "Sidamo" }, { "sgn", "", 1, "Sign languages" }, { "bla", "", 1, "Siksika" }, { "snd", "", 1, "Sindhi" }, { "sin", "", 1, "Sinhala" }, { "sin", "", 1, "Sinhalese" }, { "sit", "", 1, "Sino-Tibetan languages" }, { "sio", "", 1, "Siouan languages" }, { "sms", "", 1, "Skolt Sami" }, { "den", "", 1, "Slave (Athapascan)" }, { "sla", "", 1, "Slavic languages" }, { "slo", "slk", 1, "Slovak" }, { "slv", "", 1, "Slovenian" }, { "sog", "", 1, "Sogdian" }, { "som", "", 1, "Somali" }, { "son", "", 1, "Songhay languages" }, { "snk", "", 1, "Soninke" }, { "wen", "", 1, "Sorbian languages" }, { "dsb", "", 1, "Sorbian, Lower" }, { "hsb", "", 1, "Sorbian, Upper" }, { "sai", "", 1, "South American Indian languages" }, { "alt", "", 1, "Southern Altai" }, { "nbl", "", 1, "Southern Ndebele" }, { "sma", "", 1, "Southern Sami" }, { "sot", "", 1, "Southern Sotho" }, { "spa", "", 1, "Spanish" }, { "srn", "", 1, "Sranan Tongo" }, { "zgh", "", 1, "Standard Moroccan Tamazight" }, { "suk", "", 1, "Sukuma" }, { "sux", "", 1, "Sumerian" }, { "sun", "", 1, "Sundanese" }, { "sus", "", 1, "Susu" }, { "swa", "", 1, "Swahili" }, { "ssw", "", 1, "Swati" }, { "swe", "", 1, "Swedish" }, { "gsw", "", 1, "Swiss German" }, { "syr", "", 1, "Syriac" }, { "tgl", "", 1, "Tagalog" }, { "tah", "", 1, "Tahitian" }, { "tai", "", 1, "Tai languages" }, { "tgk", "", 1, "Tajik" }, { "tmh", "", 1, "Tamashek" }, { "tam", "", 1, "Tamil" }, { "tat", "", 1, "Tatar" }, { "tel", "", 1, "Telugu" }, { "ter", "", 1, "Tereno" }, { "tet", "", 1, "Tetum" }, { "tha", "", 1, "Thai" }, { "tib", "bod", 1, "Tibetan" }, { "tig", "", 1, "Tigre" }, { "tir", "", 1, "Tigrinya" }, { "tem", "", 1, "Time" }, { "tiv", "", 1, "Tiv" }, { "tli", "", 1, "Tlingit" }, { "tpi", "", 1, "Tok Pisin" }, { "tkl", "", 1, "Tokelau" }, { "tog", "", 1, "Tonga (Nyasa)" }, { "ton", "", 1, "Tonga (Tonga Islands)" }, { "tsi", "", 1, "Tsimshian" }, { "tso", "", 1, "Tsonga" }, { "tsn", "", 1, "Tswana" }, { "tum", "", 1, "Tumbuka" }, { "tup", "", 1, "Tupian languages" }, { "tur", "", 1, "Turkish" }, { "ota", "", 1, "Turkish, Ottoman" }, { "tuk", "", 1, "Turkmen" }, { "tvl", "", 1, "Tuvalu" }, { "tyv", "", 1, "Tuvinian" }, { "twi", "", 1, "Twi" }, { "udm", "", 1, "Udmurt" }, { "uga", "", 1, "Ugaritic" }, { "uig", "", 1, "Uighur" }, { "ukr", "", 1, "Ukranian" }, { "umb", "", 1, "Umbundu" }, { "mis", "", 1, "Uncoded languages" }, { "und", "", 1, "Undetermined language" }, { "hsb", "", 1, "Upper Sorbian" }, { "urd", "", 1, "Urdu" }, { "uig", "", 1, "Uyghur" }, { "uzb", "", 1, "Uzbek" }, { "vai", "", 1, "Vai" }, { "cat", "", 1, "Valencian" }, { "ven", "", 1, "Venda" }, { "vie", "", 1, "Vietnamese" }, { "vol", "", 1, "Volapuk" }, { "vot", "", 1, "Voltic" }, { "wak", "", 1, "Wakashan languages" }, { "wln", "", 1, "Walloon" }, { "war", "", 1, "Waray-Waray" }, { "was", "", 1, "Washo" }, { "wel", "cym", 1, "Welsh" }, { "fry", "", 1, "Western Frisian" }, { "wal", "", 1, "Wolaitta" }, { "wal", "", 1, "Wolaytta" }, { "wol", "", 1, "Wolof" }, { "xho", "", 1, "Xhosa" }, { "sah", "", 1, "Yakut" }, { "yao", "", 1, "Yao" }, { "yap", "", 1, "Yapese" }, { "yid", "", 1, "Yidish" }, { "yor", "", 1, "Yoruba" }, { "ypk", "", 1, "Yupik languages" }, { "znd", "", 1, "Zande languages" }, { "zap", "", 1, "Zapotec" }, { "zza", "", 1, "Zaza" }, { "zza", "", 1, "Zazaki" }, { "zen", "", 1, "Zenaga" }, { "zha", "", 1, "Zhuang" }, { "zul", "", 1, "Zulu" }, { "zun", "", 1, "Zuni" }, }; static int niso639_2= sizeof( iso639_2 ) / sizeof( iso639_2[0] ); char * iso639_2_from_code( char *code ) { int i; for ( i=0; i 0 ) return NULL; } return NULL; } #ifdef TEST #include #include static int check_alphabetical( void ) { char *l1, *l2; int i, ret = 1; l1 = iso639_2[0].language; for ( i=0; i= 0 ) { fprintf( stderr, "Swap '%s' and '%s'\n", l1, l2 ); ret = 0; } l1 = l2; } return ret; } int main( int argc, char *argv[] ) { int ok; ok = check_alphabetical(); if ( ok ) return EXIT_SUCCESS; return EXIT_FAILURE; } #endif hs-bibutils-6.10.0.0/bibutils/iso639_2.c0000755000000000000000000005214407346545000015621 0ustar0000000000000000/* * iso639-2 language codes */ #include #include "iso639_2.h" typedef struct { char *code1; char *code2; unsigned char main; char *language; } iso639_2_t; static iso639_2_t iso639_2[] = { { "abk", "", 1, "Abkhazian" }, { "ace", "", 1, "Achenese" }, { "ace", "", 1, "Achinese" }, { "ach", "", 1, "Acoli" }, { "ada", "", 1, "Adangme" }, { "ady", "", 1, "Adygei" }, { "ady", "", 1, "Adyghe" }, { "aar", "", 1, "Afar" }, { "afh", "", 1, "Afrihili" }, { "afr", "", 1, "Afrikaans" }, { "afa", "", 1, "Afroasiatic languages" }, { "ain", "", 1, "Ainu" }, { "aka", "", 1, "Akan" }, { "akk", "", 1, "Akkadian" }, { "alb", "sqi", 1, "Albanian" }, { "gsw", "", 1, "Alemannic" }, { "ale", "", 1, "Aleut" }, { "alg", "", 1, "Algonquian languages" }, { "gsw", "", 1, "Alsatian" }, { "alt", "", 1, "Altai, Southern" }, { "tut", "", 1, "Altaic languages" }, { "amh", "", 1, "Amharic" }, { "egy", "", 1, "Ancient Egyptian" }, { "grc", "", 1, "Ancient Greek" }, { "anp", "", 1, "Angika" }, { "apa", "", 1, "Apache languages" }, { "arc", "", 1, "Aramaic, Imperial" }, { "arc", "", 1, "Aramaic, Official" }, { "arp", "", 1, "Arapaho" }, { "arw", "", 1, "Arawak" }, { "arg", "", 1, "Argonese" }, { "arm", "hye", 1, "Armenian" }, { "rup", "", 1, "Aromanian" }, { "art", "", 1, "Artificial languages" }, { "rup", "", 1, "Arumanian" }, { "asm", "", 1, "Assamese" }, { "ast", "", 1, "Asturian" }, { "ast", "", 1, "Asturleonese" }, { "ath", "", 1, "Athabaskan languages" }, { "aus", "", 1, "Australian languages" }, { "map", "", 1, "Austronesian languages" }, { "ava", "", 1, "Avaric" }, { "ave", "", 1, "Avestan" }, { "awa", "", 1, "Awadhi" }, { "aze", "", 1, "Azerbaijani" }, { "ast", "", 1, "Bable" }, { "ban", "", 1, "Balinese" }, { "bat", "", 1, "Baltic languages" }, { "bal", "", 1, "Baluchi" }, { "bam", "", 1, "Bambara" }, { "bai", "", 1, "Bamileke languages" }, { "bad", "", 1, "Banda languages" }, { "bnt", "", 1, "Bantu languages" }, { "bas", "", 1, "Basa" }, { "bak", "", 1, "Bashkir" }, { "baq", "eus", 1, "Basque" }, { "bej", "", 1, "Bedawiyet" }, { "bej", "", 1, "Beja" }, { "bel", "", 1, "Belarusian" }, { "bem", "", 1, "Bemba" }, { "ben", "", 1, "Bengali" }, { "ber", "", 1, "Berber languages" }, { "bho", "", 1, "Bhojpuri" }, { "bih", "", 1, "Bihari languages" }, { "bik", "", 1, "Bikol" }, { "byn", "", 1, "Bilin" }, { "bin", "", 1, "Bini" }, { "bis", "", 1, "Bislama" }, { "bla", "", 1, "Blackfoot" }, { "byn", "", 1, "Blin" }, { "zbl", "", 1, "Blissymbols" }, { "bos", "", 1, "Bosnian" }, { "bra", "", 1, "Braj" }, { "btk", "", 1, "Bratak languages" }, { "bre", "", 1, "Breton" }, { "bug", "", 1, "Buginese" }, { "bul", "", 1, "Bulgarian" }, { "bua", "", 1, "Buriat" }, { "bur", "mya", 1, "Burmese" }, { "cad", "", 1, "Caddo" }, { "spa", "", 0, "Castilian" }, { "cat", "", 1, "Catalan" }, { "cau", "", 1, "Caucasian languages" }, { "ceb", "", 1, "Cebuano" }, { "cel", "", 1, "Celtic languages" }, { "cai", "", 1, "Central American Indian languages" }, { "khm", "", 1, "Central Khmer" }, { "chg", "", 1, "Chagatai" }, { "cmc", "", 1, "Chamic languages" }, { "cha", "", 1, "Chamorro" }, { "che", "", 1, "Chechen" }, { "chr", "", 1, "Cherokee" }, { "nya", "", 1, "Chewa" }, { "chy", "", 1, "Cheyenne" }, { "chb", "", 1, "Chibcha" }, { "nya", "", 1, "Chichewa" }, { "chi", "zho", 1, "Chinese" }, { "chn", "", 1, "Chinook Jargon" }, { "chp", "", 1, "Chipewyan" }, { "cho", "", 1, "Choctaw" }, { "zha", "", 1, "Chuang" }, { "chu", "", 1, "Church Slavic" }, { "chu", "", 1, "Church Slavonic" }, { "chk", "", 1, "Chuukese" }, { "chv", "", 1, "Chuvash" }, { "kbd", "", 1, "Circassian" }, { "nwc", "", 1, "Classical Nepal Bhasa" }, { "nwc", "", 1, "Classical Newari" }, { "syc", "", 1, "Classical Syriac" }, { "rar", "", 1, "Cook Islands Maori" }, { "cop", "", 1, "Coptic" }, { "cor", "", 1, "Cornish" }, { "cos", "", 1, "Corsican" }, { "cre", "", 1, "Cree" }, { "mus", "", 1, "Creek" }, { "crp", "", 1, "creoles and pidgins" }, { "cpe", "", 1, "creoles and pidgins, English-based" }, { "cpf", "", 1, "creoles and pidgins, French-based" }, { "cpp", "", 1, "creoles and pidgins, Portuguese-based" }, { "crh", "", 1, "Crimean Tartar" }, { "crh", "", 1, "Crimean Turkish" }, { "hrv", "", 1, "Croatian" }, { "cus", "", 1, "Cushitic languages" }, { "cze", "ces", 1, "Czech" }, { "dak", "", 1, "Dakota" }, { "dan", "", 1, "Danish" }, { "dar", "", 1, "Dargwa" }, { "del", "", 1, "Delaware" }, { "chp", "", 1, "Dene Suline" }, { "div", "", 1, "Dhivehi" }, { "din", "", 1, "Dinka" }, { "div", "", 1, "Divehi" }, { "doi", "", 1, "Dogri" }, { "dgr", "", 1, "Dogrib" }, { "dra", "", 1, "Dravidian languages" }, { "dua", "", 1, "Duala" }, { "dut", "", 1, "Dutch" }, { "dum", "", 1, "Dutch, Middle" }, { "dyu", "", 1, "Dyula" }, { "dzo", "", 1, "Dzongkha" }, { "frs", "", 1, "Eastern Frisian" }, { "bin", "", 1, "Edo" }, { "efi", "", 1, "Efik" }, { "egy", "", 1, "Egyptian (Ancient)" }, { "eka", "", 1, "Ekajuk" }, { "elx", "", 1, "Elamite" }, { "eng", "", 1, "English" }, { "enm", "", 0, "English, Middle" }, { "ang", "", 0, "English, Old" }, { "myv", "", 1, "Erzya" }, { "epo", "", 1, "Esperanto" }, { "est", "", 1, "Estonian" }, { "ewe", "", 1, "Ewe" }, { "ewo", "", 1, "Ewondo" }, { "fan", "", 1, "Fang" }, { "fat", "", 1, "Fanti" }, { "fao", "", 1, "Faroese" }, { "fij", "", 1, "Fijian" }, { "fil", "", 1, "Filipino" }, { "fin", "", 1, "Finnish" }, { "fiu", "", 1, "Finno-Ugric languages" }, { "dut", "", 1, "Flemish" }, { "fon", "", 1, "Fon" }, { "fre", "fra", 1, "French" }, { "frm", "", 0, "French, Middle" }, { "fro", "", 0, "French, Old" }, { "frs", "", 1, "Frisian, Eastern" }, { "frr", "", 1, "Frisian, Northern" }, { "fry", "", 1, "Frisian, Western" }, { "fur", "", 1, "Friulian" }, { "ful", "", 1, "Fulah" }, { "gaa", "", 1, "Ga" }, { "gla", "", 1, "Gaelic" }, { "car", "", 1, "Galibi Carib" }, { "lug", "", 1, "Ganda" }, { "gay", "", 1, "Gayo" }, { "gba", "", 1, "Gbaya" }, { "gez", "", 1, "Ge'ez" }, { "geo", "kat", 1, "Georgian" }, { "ger", "deu", 1, "German" }, { "nds", "", 1, "German, Low" }, { "gmh", "", 1, "German, Middle High" }, { "goh", "", 1, "German, Old High" }, { "gem", "", 1, "Germanic languages" }, { "kik", "", 1, "Gikuyu" }, { "gil", "", 1, "Gilbertese" }, { "gon", "", 1, "Gondi" }, { "gor", "", 1, "Gorontalo" }, { "got", "", 1, "Gothic" }, { "grb", "", 1, "Grebo" }, { "grc", "", 1, "Greek, Ancient" }, { "gre", "ell", 1, "Greek, Modern" }, { "kal", "", 1, "Greenlandic" }, { "grn", "", 1, "Guarani" }, { "guj", "", 1, "Gujarati" }, { "gwi", "", 1, "Gwich'in" }, { "hai", "", 1, "Haida" }, { "hat", "", 1, "Haitian" }, { "hat", "", 1, "Haitian Creole" }, { "hau", "", 1, "Hausa" }, { "haw", "", 1, "Hawaiian" }, { "heb", "", 1, "Hebrew" }, { "hil", "", 1, "Hiligaynon" }, { "him", "", 1, "Himachali languages" }, { "hin", "", 1, "Hindi" }, { "hmo", "", 1, "Hiri Motu" }, { "hit", "", 1, "Hittite" }, { "hmn", "", 1, "Hmong" }, { "hun", "", 1, "Hungarian" }, { "hup", "", 1, "Hupa" }, { "iba", "", 1, "Iban" }, { "ice", "isl", 1, "Icelandic" }, { "ido", "", 1, "Ido" }, { "ibo", "", 1, "Igbo" }, { "ijo", "", 1, "Ijo languages" }, { "ilo", "", 1, "Iloko" }, { "arc", "", 1, "Imperial Aramaic" }, { "smn", "", 1, "Inari Sami" }, { "inc", "", 1, "Indic languages" }, { "ine", "", 1, "Indo-European languages" }, { "ind", "", 1, "Indonesian" }, { "inh", "", 1, "Ingush" }, { "ina", "", 1, "Interlingua" }, { "ile", "", 1, "Interlingue, Occidental" }, { "iku", "", 1, "Inuktitut" }, { "ipk", "", 1, "Inupiaq" }, { "ira", "", 1, "Iranian languages" }, { "mga", "", 1, "Irish, Middle" }, { "sga", "", 1, "Irish, Old" }, { "iro", "", 1, "Iroquoian languages" }, { "ita", "", 1, "Italian" }, { "jpn", "", 1, "Japanese" }, { "jav", "", 1, "Javanese" }, { "kac", "", 1, "Jingpho" }, { "jrb", "", 1, "Judaeo-Arabic" }, { "jpr", "", 1, "Judaeo-Persian" }, { "kab", "", 1, "Kabyle" }, { "kac", "", 1, "Kachin" }, { "kal", "", 1, "Kalaallisut" }, { "xal", "", 1, "Kalmyk" }, { "kam", "", 1, "Kamba" }, { "kan", "", 1, "Kannada" }, { "kau", "", 1, "Kanuri" }, { "pam", "", 1, "Kapampangan" }, { "kaa", "", 1, "Kara-Kalpak" }, { "krc", "", 1, "Karachay-Balkar" }, { "krl", "", 1, "Karelian" }, { "kar", "", 1, "Karen languages" }, { "kas", "", 1, "Kashmiri" }, { "csb", "", 1, "Kashubian" }, { "kaw", "", 1, "Kawi" }, { "kaz", "", 1, "Kazakh" }, { "kha", "", 1, "Khasi" }, { "khi", "", 1, "Khoisan languages" }, { "kho", "", 1, "Khotanese" }, { "kik", "", 1, "Kikuyu" }, { "kmb", "", 1, "Kimbundu" }, { "kin", "", 1, "Kinyarwanda" }, { "kir", "", 1, "Kirghiz" }, { "gil", "", 1, "Kiribati" }, { "tlh", "", 1, "Klingon" }, { "kom", "", 1, "Komi" }, { "kon", "", 1, "Kongo" }, { "kok", "", 1, "Konkani" }, { "kor", "", 1, "Korean" }, { "kos", "", 1, "Kosraean" }, { "kpe", "", 1, "Kpelle" }, { "kro", "", 1, "Kru languages" }, { "kua", "", 1, "Kuanyama" }, { "kum", "", 1, "Kumyk" }, { "kur", "", 1, "Kurdish" }, { "kru", "", 1, "Kurukh" }, { "kut", "", 1, "Kutenai" }, { "kua", "", 1, "Kwanyama" }, { "kir", "", 1, "Kyrgyz" }, { "lad", "", 1, "Ladino" }, { "lah", "", 1, "Lahnda" }, { "lam", "", 1, "Lamba" }, { "day", "", 1, "Land Dayak languages" }, { "lao", "", 1, "Lao" }, { "lat", "", 1, "Latin" }, { "lav", "", 1, "Latvian" }, { "ast", "", 1, "Leonese" }, { "ltz", "", 1, "Letzeburgesch" }, { "lez", "", 1, "Lezghian" }, { "lim", "", 1, "Limburgan" }, { "lim", "", 1, "Limburger" }, { "lim", "", 1, "Limburgish" }, { "lin", "", 1, "Lingala" }, { "lit", "", 1, "Lithuanian" }, { "jbo", "", 1, "Lojban" }, { "nds", "", 1, "Low German" }, { "nds", "", 1, "Low Saxon" }, { "dsb", "", 1, "Lower Sorbian" }, { "loz", "", 1, "Lozi" }, { "lub", "", 1, "Luba-Katanga" }, { "lua", "", 1, "Luba-Lulua" }, { "lui", "", 1, "Luiseno" }, { "smj", "", 1, "Lule Sami" }, { "lun", "", 1, "Lunda" }, { "luo", "", 1, "Luo" }, { "luo", "", 1, "Luo (Kenya and Tanzania)" }, { "lus", "", 1, "Lushai" }, { "ltz", "", 1, "Luxembourgish" }, { "mas", "", 1, "Maasai" }, { "rup", "", 1, "Macedo-Romanian" }, { "mac", "mkd", 1, "Macedonian" }, { "mad", "", 1, "Madurese" }, { "mag", "", 1, "Magahi" }, { "mai", "", 1, "Maithili" }, { "mak", "", 1, "Makasar" }, { "mlg", "", 1, "Malagasy" }, { "may", "msa", 1, "Malay" }, { "mal", "", 1, "Malayalam" }, { "div", "", 1, "Maldivian" }, { "mlt", "", 1, "Maltese" }, { "mnc", "", 1, "Manchu" }, { "mdr", "", 1, "Mandar" }, { "man", "", 1, "Mandingo" }, { "mni", "", 1, "Manipuri" }, { "mno", "", 1, "Manobo languages" }, { "glv", "", 1, "Manx" }, { "mao", "mri", 1, "Maori" }, { "arn", "", 1, "Mapuche" }, { "arn", "", 1, "Mapudungun" }, { "mar", "", 1, "Marathi" }, { "chm", "", 1, "Mari" }, { "mah", "", 1, "Marshallese" }, { "mwr", "", 1, "Marwari" }, { "myn", "", 1, "Mayan languages" }, { "men", "", 1, "Mende" }, { "mic", "", 1, "Mi'kmaq" }, { "mic", "", 1, "Micmac" }, { "dum", "", 1, "Middle Dutch" }, { "enm", "", 1, "Middle English" }, { "frm", "", 1, "Middle French" }, { "gmh", "", 1, "Middle High German" }, { "mga", "", 1, "Middle Irish" }, { "pal", "", 1, "Middle Persian" }, { "min", "", 1, "Minangkabau" }, { "mwl", "", 1, "Mirandese" }, { "gre", "ell", 1, "Modern Greek" }, { "moh", "", 1, "Mohawk" }, { "mdf", "", 1, "Moksha" }, { "mkh", "", 1, "Mon-Khmer languages" }, { "lol", "", 1, "Mongo" }, { "mon", "", 1, "Mongolian" }, { "mos", "", 1, "Mossi" }, { "mul", "", 1, "Multiple languages" }, { "mun", "", 1, "Munda languages" }, { "nqo", "", 1, "N'Ko" }, { "nah", "", 1, "Nahuatl" }, { "nau", "", 1, "Nauruan" }, { "nav", "", 1, "Navaho" }, { "nav", "", 1, "Navajo" }, { "ndo", "", 1, "Ndonga" }, { "nap", "", 1, "Neapolitan" }, { "new", "", 1, "Nepal Bhasa" }, { "nep", "", 1, "Nepali" }, { "new", "", 1, "Newari" }, { "nia", "", 1, "Nias" }, { "nic", "", 1, "Niger-Congo languages" }, { "ssa", "", 1, "Nilo-Saharan languages" }, { "niu", "", 1, "Niuean" }, { "nog", "", 1, "Nogai" }, { "non", "", 0, "Norse, Old" }, { "nai", "", 1, "North American Indian languages" }, { "frr", "", 1, "Northern Frisian" }, { "nde", "", 1, "Northern Ndebele" }, { "sme", "", 1, "Northern Sami" }, { "nso", "", 1, "Northern Sotho" }, { "nob", "", 1, "Norwegian Bokmaal" }, { "nno", "", 1, "Norwegian Nynorsk" }, { "zxx", "", 1, "Not linguistic content; not applicable" }, { "nub", "", 1, "Nubian languages" }, { "iii", "", 1, "Nuosu" }, { "nym", "", 1, "Nyamwezi" }, { "nya", "", 1, "Nyanja" }, { "nyn", "", 1, "Nyankole" }, { "nyr", "", 1, "Nyoro" }, { "nzi", "", 1, "Nzima" }, { "oci", "", 1, "Occitan" }, { "pro", "", 0, "Occitan, Old" }, { "arc", "", 1, "Official Aramaic" }, { "xal", "", 1, "Oirat" }, { "oji", "", 1, "Ojibwa" }, { "chu", "", 1, "Old Bulgarian" }, { "chu", "", 1, "Old Church Slavonic" }, { "ang", "", 1, "Old English" }, { "fro", "", 1, "Old French" }, { "goh", "", 1, "Old High German" }, { "sga", "", 1, "Old Irish" }, { "nwc", "", 1, "Old Newari" }, { "non", "", 1, "Old Norse" }, { "pro", "", 1, "Old Occitan" }, { "peo", "", 1, "Old Persian" }, { "pro", "", 1, "Old Provencal" }, { "chu", "", 1, "Old Slavonic" }, { "ori", "", 1, "Oriya" }, { "orm", "", 1, "Oromo" }, { "osa", "", 1, "Osage" }, { "oss", "", 1, "Ossetian" }, { "oss", "", 1, "Ossetic" }, { "oto", "", 1, "Otomian languages" }, { "ota", "", 1, "Ottoman Turkish" }, { "pal", "", 1, "Pahlavi" }, { "pau", "", 1, "Palauan" }, { "pli", "", 1, "Pali" }, { "pam", "", 1, "Pampanga" }, { "pag", "", 1, "Pangasinan" }, { "pan", "", 1, "Panjabi" }, { "pap", "", 1, "Papiamento" }, { "paa", "", 1, "Papuan languages" }, { "pus", "", 1, "Pashto" }, { "pus", "", 1, "Pashto language" }, { "nso", "", 1, "Pedi" }, { "per", "fas", 1, "Persian" }, { "pal", "", 0, "Persian, Middle" }, { "peo", "", 0, "Persian, Old" }, { "phi", "", 1, "Philippine languages" }, { "phn", "", 1, "Phoenician" }, { "fil", "", 0, "Pilipino" }, { "pon", "", 1, "Pohnpeian" }, { "pol", "", 1, "Polish" }, { "por", "", 1, "Portuguese" }, { "pra", "", 1, "Prakit" }, { "pro", "", 0, "Provencal, Old" }, { "pan", "", 1, "Punjabi" }, { "que", "", 1, "Quechua" }, { "raj", "", 1, "Rajasthani" }, { "rap", "", 1, "Rapanui" }, { "rar", "", 1, "Rarotongan" }, { "roa", "", 1, "Romance languages" }, { "rum", "ron", 1, "Romanian" }, { "roh", "", 1, "Romansh" }, { "rom", "", 1, "Romany" }, { "run", "", 1, "Rundi" }, { "rus", "", 1, "Russian" }, { "kho", "", 1, "Sakan" }, { "sal", "", 1, "Salishan languages" }, { "sam", "", 1, "Samaritan Aramaic" }, { "smi", "", 1, "Sami languages" }, { "smo", "", 1, "Samoan" }, { "sad", "", 1, "Sandawe" }, { "sag", "", 1, "Sango" }, { "san", "", 1, "Sanskrit" }, { "sat", "", 1, "Santali" }, { "srd", "", 1, "Sardinian" }, { "sas", "", 1, "Sasak" }, { "nds", "", 1, "Saxon, Low" }, { "sco", "", 1, "Scots" }, { "gla", "", 1, "Scottish Gaelic" }, { "sel", "", 1, "Selkup" }, { "sem", "", 1, "Semitic languages" }, { "nso", "", 1, "Sepedi" }, { "srp", "", 1, "Serbian" }, { "srr", "", 1, "Serer" }, { "shn", "", 1, "Shan" }, { "sna", "", 1, "Shona" }, { "iii", "", 1, "Sichuan Yi" }, { "scn", "", 1, "Sicilian" }, { "sid", "", 1, "Sidamo" }, { "sgn", "", 1, "Sign languages" }, { "bla", "", 1, "Siksika" }, { "snd", "", 1, "Sindhi" }, { "sin", "", 1, "Sinhala" }, { "sin", "", 1, "Sinhalese" }, { "sit", "", 1, "Sino-Tibetan languages" }, { "sio", "", 1, "Siouan languages" }, { "sms", "", 1, "Skolt Sami" }, { "den", "", 1, "Slave (Athapascan)" }, { "sla", "", 1, "Slavic languages" }, { "slo", "slk", 1, "Slovak" }, { "slv", "", 1, "Slovenian" }, { "sog", "", 1, "Sogdian" }, { "som", "", 1, "Somali" }, { "son", "", 1, "Songhay languages" }, { "snk", "", 1, "Soninke" }, { "wen", "", 1, "Sorbian languages" }, { "dsb", "", 1, "Sorbian, Lower" }, { "hsb", "", 1, "Sorbian, Upper" }, { "sai", "", 1, "South American Indian languages" }, { "alt", "", 1, "Southern Altai" }, { "nbl", "", 1, "Southern Ndebele" }, { "sma", "", 1, "Southern Sami" }, { "sot", "", 1, "Southern Sotho" }, { "spa", "", 1, "Spanish" }, { "srn", "", 1, "Sranan Tongo" }, { "zgh", "", 1, "Standard Moroccan Tamazight" }, { "suk", "", 1, "Sukuma" }, { "sux", "", 1, "Sumerian" }, { "sun", "", 1, "Sundanese" }, { "sus", "", 1, "Susu" }, { "swa", "", 1, "Swahili" }, { "ssw", "", 1, "Swati" }, { "swe", "", 1, "Swedish" }, { "gsw", "", 1, "Swiss German" }, { "syr", "", 1, "Syriac" }, { "tgl", "", 1, "Tagalog" }, { "tah", "", 1, "Tahitian" }, { "tai", "", 1, "Tai languages" }, { "tgk", "", 1, "Tajik" }, { "tmh", "", 1, "Tamashek" }, { "tam", "", 1, "Tamil" }, { "tat", "", 1, "Tatar" }, { "tel", "", 1, "Telugu" }, { "ter", "", 1, "Tereno" }, { "tet", "", 1, "Tetum" }, { "tha", "", 1, "Thai" }, { "tib", "bod", 1, "Tibetan" }, { "tig", "", 1, "Tigre" }, { "tir", "", 1, "Tigrinya" }, { "tem", "", 1, "Time" }, { "tiv", "", 1, "Tiv" }, { "tli", "", 1, "Tlingit" }, { "tpi", "", 1, "Tok Pisin" }, { "tkl", "", 1, "Tokelau" }, { "tog", "", 1, "Tonga (Nyasa)" }, { "ton", "", 1, "Tonga (Tonga Islands)" }, { "tsi", "", 1, "Tsimshian" }, { "tso", "", 1, "Tsonga" }, { "tsn", "", 1, "Tswana" }, { "tum", "", 1, "Tumbuka" }, { "tup", "", 1, "Tupian languages" }, { "tur", "", 1, "Turkish" }, { "ota", "", 1, "Turkish, Ottoman" }, { "tuk", "", 1, "Turkmen" }, { "tvl", "", 1, "Tuvalu" }, { "tyv", "", 1, "Tuvinian" }, { "twi", "", 1, "Twi" }, { "udm", "", 1, "Udmurt" }, { "uga", "", 1, "Ugaritic" }, { "uig", "", 1, "Uighur" }, { "ukr", "", 1, "Ukranian" }, { "umb", "", 1, "Umbundu" }, { "mis", "", 1, "Uncoded languages" }, { "und", "", 1, "Undetermined language" }, { "hsb", "", 1, "Upper Sorbian" }, { "urd", "", 1, "Urdu" }, { "uig", "", 1, "Uyghur" }, { "uzb", "", 1, "Uzbek" }, { "vai", "", 1, "Vai" }, { "cat", "", 1, "Valencian" }, { "ven", "", 1, "Venda" }, { "vie", "", 1, "Vietnamese" }, { "vol", "", 1, "Volapuk" }, { "vot", "", 1, "Voltic" }, { "wak", "", 1, "Wakashan languages" }, { "wln", "", 1, "Walloon" }, { "war", "", 1, "Waray-Waray" }, { "was", "", 1, "Washo" }, { "wel", "cym", 1, "Welsh" }, { "fry", "", 1, "Western Frisian" }, { "wal", "", 1, "Wolaitta" }, { "wal", "", 1, "Wolaytta" }, { "wol", "", 1, "Wolof" }, { "xho", "", 1, "Xhosa" }, { "sah", "", 1, "Yakut" }, { "yao", "", 1, "Yao" }, { "yap", "", 1, "Yapese" }, { "yid", "", 1, "Yidish" }, { "yor", "", 1, "Yoruba" }, { "ypk", "", 1, "Yupik languages" }, { "znd", "", 1, "Zande languages" }, { "zap", "", 1, "Zapotec" }, { "zza", "", 1, "Zaza" }, { "zza", "", 1, "Zazaki" }, { "zen", "", 1, "Zenaga" }, { "zha", "", 1, "Zhuang" }, { "zul", "", 1, "Zulu" }, { "zun", "", 1, "Zuni" }, }; static int niso639_2= sizeof( iso639_2 ) / sizeof( iso639_2[0] ); char * iso639_2_from_code( char *code ) { int i; for ( i=0; i 0 ) return NULL; } return NULL; } #ifdef TEST #include #include static int check_alphabetical( void ) { char *l1, *l2; int i, ret = 1; l1 = iso639_2[0].language; for ( i=0; i= 0 ) { fprintf( stderr, "Swap '%s' and '%s'\n", l1, l2 ); ret = 0; } l1 = l2; } return ret; } int main( int argc, char *argv[] ) { int ok; ok = check_alphabetical(); if ( ok ) return EXIT_SUCCESS; return EXIT_FAILURE; } #endif hs-bibutils-6.10.0.0/bibutils/iso639_2.h0000755000000000000000000000024707346545000015623 0ustar0000000000000000/* * iso639-2 language codes */ #ifndef ISO639_2_H #define ISO639_2_H char * iso639_2_from_code( char *code ); char * iso639_2_from_language( char *lang ); #endif hs-bibutils-6.10.0.0/bibutils/iso639_3.c0000644000000000000000000065107407346545000015626 0ustar0000000000000000/* * iso639_3.c */ #include #include "iso639_3.h" typedef struct { char *code; char *language; } iso639_3_t; static iso639_3_t iso639_3[] = { { "aaa", "Ghotuo" }, { "aab", "Alumu-Tesu" }, { "aac", "Ari" }, { "aad", "Amal" }, { "aae", "Arbëreshë Albanian" }, { "aaf", "Aranadan" }, { "aag", "Ambrak" }, { "aah", "Abu' Arapesh" }, { "aai", "Arifama-Miniafia" }, { "aak", "Ankave" }, { "aal", "Afade" }, { "aam", "Aramanik" }, { "aan", "Anambé" }, { "aao", "Algerian Saharan Arabic" }, { "aap", "Pará Arára" }, { "aaq", "Eastern Abnaki" }, { "aar", "Afar" }, { "aas", "Aasáx" }, { "aat", "Arvanitika Albanian" }, { "aau", "Abau" }, { "aaw", "Solong" }, { "aax", "Mandobo Atas" }, { "aaz", "Amarasi" }, { "aba", "Abé" }, { "abb", "Bankon" }, { "abc", "Ambala Ayta" }, { "abd", "Manide" }, { "abe", "Western Abnaki" }, { "abf", "Abai Sungai" }, { "abg", "Abaga" }, { "abh", "Tajiki Arabic" }, { "abi", "Abidji" }, { "abj", "Aka-Bea" }, { "abk", "Abkhazian" }, { "abl", "Lampung Nyo" }, { "abm", "Abanyom" }, { "abn", "Abua" }, { "abo", "Abon" }, { "abp", "Abellen Ayta" }, { "abq", "Abaza" }, { "abr", "Abron" }, { "abs", "Ambonese Malay" }, { "abt", "Ambulas" }, { "abu", "Abure" }, { "abv", "Baharna Arabic" }, { "abw", "Pal" }, { "abx", "Inabaknon" }, { "aby", "Aneme Wake" }, { "abz", "Abui" }, { "aca", "Achagua" }, { "acb", "Áncá" }, { "acd", "Gikyode" }, { "ace", "Achinese" }, { "acf", "Saint Lucian Creole French" }, { "ach", "Acoli" }, { "aci", "Aka-Cari" }, { "ack", "Aka-Kora" }, { "acl", "Akar-Bale" }, { "acm", "Mesopotamian Arabic" }, { "acn", "Achang" }, { "acp", "Eastern Acipa" }, { "acq", "Ta'izzi-Adeni Arabic" }, { "acr", "Achi" }, { "acs", "Acroá" }, { "act", "Achterhoeks" }, { "acu", "Achuar-Shiwiar" }, { "acv", "Achumawi" }, { "acw", "Hijazi Arabic" }, { "acx", "Omani Arabic" }, { "acy", "Cypriot Arabic" }, { "acz", "Acheron" }, { "ada", "Adangme" }, { "adb", "Adabe" }, { "add", "Dzodinka" }, { "ade", "Adele" }, { "adf", "Dhofari Arabic" }, { "adg", "Andegerebinha" }, { "adh", "Adhola" }, { "adi", "Adi" }, { "adj", "Adioukrou" }, { "adl", "Galo" }, { "adn", "Adang" }, { "ado", "Abu" }, { "adp", "Adap" }, { "adq", "Adangbe" }, { "adr", "Adonara" }, { "ads", "Adamorobe Sign Language" }, { "adt", "Adnyamathanha" }, { "adu", "Aduge" }, { "adw", "Amundava" }, { "adx", "Amdo Tibetan" }, { "ady", "Adyghe" }, { "adz", "Adzera" }, { "aea", "Areba" }, { "aeb", "Tunisian Arabic" }, { "aec", "Saidi Arabic" }, { "aed", "Argentine Sign Language" }, { "aee", "Northeast Pashayi" }, { "aek", "Haeke" }, { "ael", "Ambele" }, { "aem", "Arem" }, { "aen", "Armenian Sign Language" }, { "aeq", "Aer" }, { "aer", "Eastern Arrernte" }, { "aes", "Alsea" }, { "aeu", "Akeu" }, { "aew", "Ambakich" }, { "aey", "Amele" }, { "aez", "Aeka" }, { "afb", "Gulf Arabic" }, { "afd", "Andai" }, { "afe", "Putukwam" }, { "afg", "Afghan Sign Language" }, { "afh", "Afrihili" }, { "afi", "Akrukay" }, { "afk", "Nanubae" }, { "afn", "Defaka" }, { "afo", "Eloyi" }, { "afp", "Tapei" }, { "afr", "Afrikaans" }, { "afs", "Afro-Seminole Creole" }, { "aft", "Afitti" }, { "afu", "Awutu" }, { "afz", "Obokuitai" }, { "aga", "Aguano" }, { "agb", "Legbo" }, { "agc", "Agatu" }, { "agd", "Agarabi" }, { "age", "Angal" }, { "agf", "Arguni" }, { "agg", "Angor" }, { "agh", "Ngelima" }, { "agi", "Agariya" }, { "agj", "Argobba" }, { "agk", "Isarog Agta" }, { "agl", "Fembe" }, { "agm", "Angaataha" }, { "agn", "Agutaynen" }, { "ago", "Tainae" }, { "agq", "Aghem" }, { "agr", "Aguaruna" }, { "ags", "Esimbi" }, { "agt", "Central Cagayan Agta" }, { "agu", "Aguacateco" }, { "agv", "Remontado Dumagat" }, { "agw", "Kahua" }, { "agx", "Aghul" }, { "agy", "Southern Alta" }, { "agz", "Mt. Iriga Agta" }, { "aha", "Ahanta" }, { "ahb", "Axamb" }, { "ahg", "Qimant" }, { "ahh", "Aghu" }, { "ahi", "Tiagbamrin Aizi" }, { "ahk", "Akha" }, { "ahl", "Igo" }, { "ahm", "Mobumrin Aizi" }, { "ahn", "Àhàn" }, { "aho", "Ahom" }, { "ahp", "Aproumu Aizi" }, { "ahr", "Ahirani" }, { "ahs", "Ashe" }, { "aht", "Ahtena" }, { "aia", "Arosi" }, { "aib", "Ainu (China)" }, { "aic", "Ainbai" }, { "aid", "Alngith" }, { "aie", "Amara" }, { "aif", "Agi" }, { "aig", "Antigua and Barbuda Creole English" }, { "aih", "Ai-Cham" }, { "aii", "Assyrian Neo-Aramaic" }, { "aij", "Lishanid Noshan" }, { "aik", "Ake" }, { "ail", "Aimele" }, { "aim", "Aimol" }, { "ain", "Ainu (Japan)" }, { "aio", "Aiton" }, { "aip", "Burumakok" }, { "aiq", "Aimaq" }, { "air", "Airoran" }, { "ais", "Nataoran Amis" }, { "ait", "Arikem" }, { "aiw", "Aari" }, { "aix", "Aighon" }, { "aiy", "Ali" }, { "aja", "Aja (Sudan)" }, { "ajg", "Aja (Benin)" }, { "aji", "Ajië" }, { "ajn", "Andajin" }, { "ajp", "South Levantine Arabic" }, { "ajt", "Judeo-Tunisian Arabic" }, { "aju", "Judeo-Moroccan Arabic" }, { "ajw", "Ajawa" }, { "ajz", "Amri Karbi" }, { "aka", "Akan" }, { "akb", "Batak Angkola" }, { "akc", "Mpur" }, { "akd", "Ukpet-Ehom" }, { "ake", "Akawaio" }, { "akf", "Akpa" }, { "akg", "Anakalangu" }, { "akh", "Angal Heneng" }, { "aki", "Aiome" }, { "akj", "Aka-Jeru" }, { "akk", "Akkadian" }, { "akl", "Aklanon" }, { "akm", "Aka-Bo" }, { "ako", "Akurio" }, { "akp", "Siwu" }, { "akq", "Ak" }, { "akr", "Araki" }, { "aks", "Akaselem" }, { "akt", "Akolet" }, { "aku", "Akum" }, { "akv", "Akhvakh" }, { "akw", "Akwa" }, { "akx", "Aka-Kede" }, { "aky", "Aka-Kol" }, { "akz", "Alabama" }, { "ala", "Alago" }, { "alc", "Qawasqar" }, { "ald", "Alladian" }, { "ale", "Aleut" }, { "alf", "Alege" }, { "alh", "Alawa" }, { "ali", "Amaimon" }, { "alj", "Alangan" }, { "alk", "Alak" }, { "all", "Allar" }, { "alm", "Amblong" }, { "aln", "Gheg Albanian" }, { "alo", "Larike-Wakasihu" }, { "alp", "Alune" }, { "alq", "Algonquin" }, { "alr", "Alutor" }, { "als", "Tosk Albanian" }, { "alt", "Southern Altai" }, { "alu", "'Are'are" }, { "alw", "Alaba-K’abeena" }, { "alx", "Amol" }, { "aly", "Alyawarr" }, { "alz", "Alur" }, { "ama", "Amanayé" }, { "amb", "Ambo" }, { "amc", "Amahuaca" }, { "ame", "Yanesha'" }, { "amf", "Hamer-Banna" }, { "amg", "Amurdak" }, { "amh", "Amharic" }, { "ami", "Amis" }, { "amj", "Amdang" }, { "amk", "Ambai" }, { "aml", "War-Jaintia" }, { "amm", "Ama (Papua New Guinea)" }, { "amn", "Amanab" }, { "amo", "Amo" }, { "amp", "Alamblak" }, { "amq", "Amahai" }, { "amr", "Amarakaeri" }, { "ams", "Southern Amami-Oshima" }, { "amt", "Amto" }, { "amu", "Guerrero Amuzgo" }, { "amv", "Ambelau" }, { "amw", "Western Neo-Aramaic" }, { "amx", "Anmatyerre" }, { "amy", "Ami" }, { "amz", "Atampaya" }, { "ana", "Andaqui" }, { "anb", "Andoa" }, { "anc", "Ngas" }, { "and", "Ansus" }, { "ane", "Xârâcùù" }, { "anf", "Animere" }, { "ang", "Old English (ca. 450-1100)" }, { "anh", "Nend" }, { "ani", "Andi" }, { "anj", "Anor" }, { "ank", "Goemai" }, { "anl", "Anu-Hkongso Chin" }, { "anm", "Anal" }, { "ann", "Obolo" }, { "ano", "Andoque" }, { "anp", "Angika" }, { "anq", "Jarawa (India)" }, { "anr", "Andh" }, { "ans", "Anserma" }, { "ant", "Antakarinya" }, { "anu", "Anuak" }, { "anv", "Denya" }, { "anw", "Anaang" }, { "anx", "Andra-Hus" }, { "any", "Anyin" }, { "anz", "Anem" }, { "aoa", "Angolar" }, { "aob", "Abom" }, { "aoc", "Pemon" }, { "aod", "Andarum" }, { "aoe", "Angal Enen" }, { "aof", "Bragat" }, { "aog", "Angoram" }, { "aoh", "Arma" }, { "aoi", "Anindilyakwa" }, { "aoj", "Mufian" }, { "aok", "Arhö" }, { "aol", "Alor" }, { "aom", "Ömie" }, { "aon", "Bumbita Arapesh" }, { "aor", "Aore" }, { "aos", "Taikat" }, { "aot", "A'tong" }, { "aou", "A'ou" }, { "aox", "Atorada" }, { "aoz", "Uab Meto" }, { "apb", "Sa'a" }, { "apc", "North Levantine Arabic" }, { "apd", "Sudanese Arabic" }, { "ape", "Bukiyip" }, { "apf", "Pahanan Agta" }, { "apg", "Ampanang" }, { "aph", "Athpariya" }, { "api", "Apiaká" }, { "apj", "Jicarilla Apache" }, { "apk", "Kiowa Apache" }, { "apl", "Lipan Apache" }, { "apm", "Mescalero-Chiricahua Apache" }, { "apn", "Apinayé" }, { "apo", "Ambul" }, { "app", "Apma" }, { "apq", "A-Pucikwar" }, { "apr", "Arop-Lokep" }, { "aps", "Arop-Sissano" }, { "apt", "Apatani" }, { "apu", "Apurinã" }, { "apv", "Alapmunte" }, { "apw", "Western Apache" }, { "apx", "Aputai" }, { "apy", "Apalaí" }, { "apz", "Safeyoka" }, { "aqc", "Archi" }, { "aqd", "Ampari Dogon" }, { "aqg", "Arigidi" }, { "aqm", "Atohwaim" }, { "aqn", "Northern Alta" }, { "aqp", "Atakapa" }, { "aqr", "Arhâ" }, { "aqz", "Akuntsu" }, { "ara", "Arabic" }, { "arb", "Standard Arabic" }, { "arc", "Official Aramaic (700-300 BCE)" }, { "ard", "Arabana" }, { "are", "Western Arrarnta" }, { "arg", "Aragonese" }, { "arh", "Arhuaco" }, { "ari", "Arikara" }, { "arj", "Arapaso" }, { "ark", "Arikapú" }, { "arl", "Arabela" }, { "arn", "Mapudungun" }, { "aro", "Araona" }, { "arp", "Arapaho" }, { "arq", "Algerian Arabic" }, { "arr", "Karo (Brazil)" }, { "ars", "Najdi Arabic" }, { "aru", "Aruá (Amazonas State)" }, { "arv", "Arbore" }, { "arw", "Arawak" }, { "arx", "Aruá (Rodonia State)" }, { "ary", "Moroccan Arabic" }, { "arz", "Egyptian Arabic" }, { "asa", "Asu (Tanzania)" }, { "asb", "Assiniboine" }, { "asc", "Casuarina Coast Asmat" }, { "asd", "Asas" }, { "ase", "American Sign Language" }, { "asf", "Australian Sign Language" }, { "asg", "Cishingini" }, { "ash", "Abishira" }, { "asi", "Buruwai" }, { "asj", "Sari" }, { "ask", "Ashkun" }, { "asl", "Asilulu" }, { "asm", "Assamese" }, { "asn", "Xingú Asuriní" }, { "aso", "Dano" }, { "asp", "Algerian Sign Language" }, { "asq", "Austrian Sign Language" }, { "asr", "Asuri" }, { "ass", "Ipulo" }, { "ast", "Asturian" }, { "asu", "Tocantins Asurini" }, { "asv", "Asoa" }, { "asw", "Australian Aborigines Sign Language" }, { "asx", "Muratayak" }, { "asy", "Yaosakor Asmat" }, { "asz", "As" }, { "ata", "Pele-Ata" }, { "atb", "Zaiwa" }, { "atc", "Atsahuaca" }, { "atd", "Ata Manobo" }, { "ate", "Atemble" }, { "atg", "Ivbie North-Okpela-Arhe" }, { "ati", "Attié" }, { "atj", "Atikamekw" }, { "atk", "Ati" }, { "atl", "Mt. Iraya Agta" }, { "atm", "Ata" }, { "atn", "Ashtiani" }, { "ato", "Atong" }, { "atp", "Pudtol Atta" }, { "atq", "Aralle-Tabulahan" }, { "atr", "Waimiri-Atroari" }, { "ats", "Gros Ventre" }, { "att", "Pamplona Atta" }, { "atu", "Reel" }, { "atv", "Northern Altai" }, { "atw", "Atsugewi" }, { "atx", "Arutani" }, { "aty", "Aneityum" }, { "atz", "Arta" }, { "aua", "Asumboa" }, { "aub", "Alugu" }, { "auc", "Waorani" }, { "aud", "Anuta" }, { "aue", "=Kx'au'ein" }, { "aug", "Aguna" }, { "auh", "Aushi" }, { "aui", "Anuki" }, { "auj", "Awjilah" }, { "auk", "Heyo" }, { "aul", "Aulua" }, { "aum", "Asu (Nigeria)" }, { "aun", "Molmo One" }, { "auo", "Auyokawa" }, { "aup", "Makayam" }, { "auq", "Anus" }, { "aur", "Aruek" }, { "aut", "Austral" }, { "auu", "Auye" }, { "auw", "Awyi" }, { "aux", "Aurá" }, { "auy", "Awiyaana" }, { "auz", "Uzbeki Arabic" }, { "ava", "Avaric" }, { "avb", "Avau" }, { "avd", "Alviri-Vidari" }, { "ave", "Avestan" }, { "avi", "Avikam" }, { "avk", "Kotava" }, { "avl", "Eastern Egyptian Bedawi Arabic" }, { "avm", "Angkamuthi" }, { "avn", "Avatime" }, { "avo", "Agavotaguerra" }, { "avs", "Aushiri" }, { "avt", "Au" }, { "avu", "Avokaya" }, { "avv", "Avá-Canoeiro" }, { "awa", "Awadhi" }, { "awb", "Awa (Papua New Guinea)" }, { "awc", "Cicipu" }, { "awe", "Awetí" }, { "awg", "Anguthimri" }, { "awh", "Awbono" }, { "awi", "Aekyom" }, { "awk", "Awabakal" }, { "awm", "Arawum" }, { "awn", "Awngi" }, { "awo", "Awak" }, { "awr", "Awera" }, { "aws", "South Awyu" }, { "awt", "Araweté" }, { "awu", "Central Awyu" }, { "awv", "Jair Awyu" }, { "aww", "Awun" }, { "awx", "Awara" }, { "awy", "Edera Awyu" }, { "axb", "Abipon" }, { "axe", "Ayerrerenge" }, { "axg", "Mato Grosso Arára" }, { "axk", "Yaka (Central African Republic)" }, { "axl", "Lower Southern Aranda" }, { "axm", "Middle Armenian" }, { "axx", "Xârâgurè" }, { "aya", "Awar" }, { "ayb", "Ayizo Gbe" }, { "ayc", "Southern Aymara" }, { "ayd", "Ayabadhu" }, { "aye", "Ayere" }, { "ayg", "Ginyanga" }, { "ayh", "Hadrami Arabic" }, { "ayi", "Leyigha" }, { "ayk", "Akuku" }, { "ayl", "Libyan Arabic" }, { "aym", "Aymara" }, { "ayn", "Sanaani Arabic" }, { "ayo", "Ayoreo" }, { "ayp", "North Mesopotamian Arabic" }, { "ayq", "Ayi (Papua New Guinea)" }, { "ayr", "Central Aymara" }, { "ays", "Sorsogon Ayta" }, { "ayt", "Magbukun Ayta" }, { "ayu", "Ayu" }, { "ayy", "Tayabas Ayta" }, { "ayz", "Mai Brat" }, { "aza", "Azha" }, { "azb", "South Azerbaijani" }, { "azd", "Eastern Durango Nahuatl" }, { "aze", "Azerbaijani" }, { "azg", "San Pedro Amuzgos Amuzgo" }, { "azj", "North Azerbaijani" }, { "azm", "Ipalapa Amuzgo" }, { "azn", "Western Durango Nahuatl" }, { "azo", "Awing" }, { "azt", "Faire Atta" }, { "azz", "Highland Puebla Nahuatl" }, { "baa", "Babatana" }, { "bab", "Bainouk-Gunyuño" }, { "bac", "Badui" }, { "bae", "Baré" }, { "baf", "Nubaca" }, { "bag", "Tuki" }, { "bah", "Bahamas Creole English" }, { "baj", "Barakai" }, { "bak", "Bashkir" }, { "bal", "Baluchi" }, { "bam", "Bambara" }, { "ban", "Balinese" }, { "bao", "Waimaha" }, { "bap", "Bantawa" }, { "bar", "Bavarian" }, { "bas", "Basa (Cameroon)" }, { "bau", "Bada (Nigeria)" }, { "bav", "Vengo" }, { "baw", "Bambili-Bambui" }, { "bax", "Bamun" }, { "bay", "Batuley" }, { "bba", "Baatonum" }, { "bbb", "Barai" }, { "bbc", "Batak Toba" }, { "bbd", "Bau" }, { "bbe", "Bangba" }, { "bbf", "Baibai" }, { "bbg", "Barama" }, { "bbh", "Bugan" }, { "bbi", "Barombi" }, { "bbj", "Ghomálá'" }, { "bbk", "Babanki" }, { "bbl", "Bats" }, { "bbm", "Babango" }, { "bbn", "Uneapa" }, { "bbo", "Northern Bobo Madaré" }, { "bbp", "West Central Banda" }, { "bbq", "Bamali" }, { "bbr", "Girawa" }, { "bbs", "Bakpinka" }, { "bbt", "Mburku" }, { "bbu", "Kulung (Nigeria)" }, { "bbv", "Karnai" }, { "bbw", "Baba" }, { "bbx", "Bubia" }, { "bby", "Befang" }, { "bbz", "Babalia Creole Arabic" }, { "bca", "Central Bai" }, { "bcb", "Bainouk-Samik" }, { "bcc", "Southern Balochi" }, { "bcd", "North Babar" }, { "bce", "Bamenyam" }, { "bcf", "Bamu" }, { "bcg", "Baga Binari" }, { "bch", "Bariai" }, { "bci", "Baoulé" }, { "bcj", "Bardi" }, { "bck", "Bunaba" }, { "bcl", "Central Bikol" }, { "bcm", "Bannoni" }, { "bcn", "Bali (Nigeria)" }, { "bco", "Kaluli" }, { "bcp", "Bali (Democratic Republic of Congo)" }, { "bcq", "Bench" }, { "bcr", "Babine" }, { "bcs", "Kohumono" }, { "bct", "Bendi" }, { "bcu", "Awad Bing" }, { "bcv", "Shoo-Minda-Nye" }, { "bcw", "Bana" }, { "bcy", "Bacama" }, { "bcz", "Bainouk-Gunyaamolo" }, { "bda", "Bayot" }, { "bdb", "Basap" }, { "bdc", "Emberá-Baudó" }, { "bdd", "Bunama" }, { "bde", "Bade" }, { "bdf", "Biage" }, { "bdg", "Bonggi" }, { "bdh", "Baka (Sudan)" }, { "bdi", "Burun" }, { "bdj", "Bai" }, { "bdk", "Budukh" }, { "bdl", "Indonesian Bajau" }, { "bdm", "Buduma" }, { "bdn", "Baldemu" }, { "bdo", "Morom" }, { "bdp", "Bende" }, { "bdq", "Bahnar" }, { "bdr", "West Coast Bajau" }, { "bds", "Burunge" }, { "bdt", "Bokoto" }, { "bdu", "Oroko" }, { "bdv", "Bodo Parja" }, { "bdw", "Baham" }, { "bdx", "Budong-Budong" }, { "bdy", "Bandjalang" }, { "bdz", "Badeshi" }, { "bea", "Beaver" }, { "beb", "Bebele" }, { "bec", "Iceve-Maci" }, { "bed", "Bedoanas" }, { "bee", "Byangsi" }, { "bef", "Benabena" }, { "beg", "Belait" }, { "beh", "Biali" }, { "bei", "Bekati'" }, { "bej", "Beja" }, { "bek", "Bebeli" }, { "bel", "Belarusian" }, { "bem", "Bemba (Zambia)" }, { "ben", "Bengali" }, { "beo", "Beami" }, { "bep", "Besoa" }, { "beq", "Beembe" }, { "bes", "Besme" }, { "bet", "Guiberoua Béte" }, { "beu", "Blagar" }, { "bev", "Daloa Bété" }, { "bew", "Betawi" }, { "bex", "Jur Modo" }, { "bey", "Beli (Papua New Guinea)" }, { "bez", "Bena (Tanzania)" }, { "bfa", "Bari" }, { "bfb", "Pauri Bareli" }, { "bfc", "Northern Bai" }, { "bfd", "Bafut" }, { "bfe", "Betaf" }, { "bff", "Bofi" }, { "bfg", "Busang Kayan" }, { "bfh", "Blafe" }, { "bfi", "British Sign Language" }, { "bfj", "Bafanji" }, { "bfk", "Ban Khor Sign Language" }, { "bfl", "Banda-Ndélé" }, { "bfm", "Mmen" }, { "bfn", "Bunak" }, { "bfo", "Malba Birifor" }, { "bfp", "Beba" }, { "bfq", "Badaga" }, { "bfr", "Bazigar" }, { "bfs", "Southern Bai" }, { "bft", "Balti" }, { "bfu", "Gahri" }, { "bfw", "Bondo" }, { "bfx", "Bantayanon" }, { "bfy", "Bagheli" }, { "bfz", "Mahasu Pahari" }, { "bga", "Gwamhi-Wuri" }, { "bgb", "Bobongko" }, { "bgc", "Haryanvi" }, { "bgd", "Rathwi Bareli" }, { "bge", "Bauria" }, { "bgf", "Bangandu" }, { "bgg", "Bugun" }, { "bgi", "Giangan" }, { "bgj", "Bangolan" }, { "bgk", "Bit" }, { "bgl", "Bo (Laos)" }, { "bgm", "Baga Mboteni" }, { "bgn", "Western Balochi" }, { "bgo", "Baga Koga" }, { "bgp", "Eastern Balochi" }, { "bgq", "Bagri" }, { "bgr", "Bawm Chin" }, { "bgs", "Tagabawa" }, { "bgt", "Bughotu" }, { "bgu", "Mbongno" }, { "bgv", "Warkay-Bipim" }, { "bgw", "Bhatri" }, { "bgx", "Balkan Gagauz Turkish" }, { "bgy", "Benggoi" }, { "bgz", "Banggai" }, { "bha", "Bharia" }, { "bhb", "Bhili" }, { "bhc", "Biga" }, { "bhd", "Bhadrawahi" }, { "bhe", "Bhaya" }, { "bhf", "Odiai" }, { "bhg", "Binandere" }, { "bhh", "Bukharic" }, { "bhi", "Bhilali" }, { "bhj", "Bahing" }, { "bhl", "Bimin" }, { "bhm", "Bathari" }, { "bhn", "Bohtan Neo-Aramaic" }, { "bho", "Bhojpuri" }, { "bhp", "Bima" }, { "bhq", "Tukang Besi South" }, { "bhr", "Bara Malagasy" }, { "bhs", "Buwal" }, { "bht", "Bhattiyali" }, { "bhu", "Bhunjia" }, { "bhv", "Bahau" }, { "bhw", "Biak" }, { "bhx", "Bhalay" }, { "bhy", "Bhele" }, { "bhz", "Bada (Indonesia)" }, { "bia", "Badimaya" }, { "bib", "Bissa" }, { "bic", "Bikaru" }, { "bid", "Bidiyo" }, { "bie", "Bepour" }, { "bif", "Biafada" }, { "big", "Biangai" }, { "bij", "Vaghat-Ya-Bijim-Legeri" }, { "bik", "Bikol" }, { "bil", "Bile" }, { "bim", "Bimoba" }, { "bin", "Bini" }, { "bio", "Nai" }, { "bip", "Bila" }, { "biq", "Bipi" }, { "bir", "Bisorio" }, { "bis", "Bislama" }, { "bit", "Berinomo" }, { "biu", "Biete" }, { "biv", "Southern Birifor" }, { "biw", "Kol (Cameroon)" }, { "bix", "Bijori" }, { "biy", "Birhor" }, { "biz", "Baloi" }, { "bja", "Budza" }, { "bjb", "Banggarla" }, { "bjc", "Bariji" }, { "bje", "Biao-Jiao Mien" }, { "bjf", "Barzani Jewish Neo-Aramaic" }, { "bjg", "Bidyogo" }, { "bjh", "Bahinemo" }, { "bji", "Burji" }, { "bjj", "Kanauji" }, { "bjk", "Barok" }, { "bjl", "Bulu (Papua New Guinea)" }, { "bjm", "Bajelani" }, { "bjn", "Banjar" }, { "bjo", "Mid-Southern Banda" }, { "bjp", "Fanamaket" }, { "bjr", "Binumarien" }, { "bjs", "Bajan" }, { "bjt", "Balanta-Ganja" }, { "bju", "Busuu" }, { "bjv", "Bedjond" }, { "bjw", "Bakwé" }, { "bjx", "Banao Itneg" }, { "bjy", "Bayali" }, { "bjz", "Baruga" }, { "bka", "Kyak" }, { "bkc", "Baka (Cameroon)" }, { "bkd", "Binukid" }, { "bkf", "Beeke" }, { "bkg", "Buraka" }, { "bkh", "Bakoko" }, { "bki", "Baki" }, { "bkj", "Pande" }, { "bkk", "Brokskat" }, { "bkl", "Berik" }, { "bkm", "Kom (Cameroon)" }, { "bkn", "Bukitan" }, { "bko", "Kwa'" }, { "bkp", "Boko (Democratic Republic of Congo)" }, { "bkq", "Bakairí" }, { "bkr", "Bakumpai" }, { "bks", "Northern Sorsoganon" }, { "bkt", "Boloki" }, { "bku", "Buhid" }, { "bkv", "Bekwarra" }, { "bkw", "Bekwel" }, { "bkx", "Baikeno" }, { "bky", "Bokyi" }, { "bkz", "Bungku" }, { "bla", "Siksika" }, { "blb", "Bilua" }, { "blc", "Bella Coola" }, { "bld", "Bolango" }, { "ble", "Balanta-Kentohe" }, { "blf", "Buol" }, { "blg", "Balau" }, { "blh", "Kuwaa" }, { "bli", "Bolia" }, { "blj", "Bolongan" }, { "blk", "Pa'o Karen" }, { "bll", "Biloxi" }, { "blm", "Beli (Sudan)" }, { "bln", "Southern Catanduanes Bikol" }, { "blo", "Anii" }, { "blp", "Blablanga" }, { "blq", "Baluan-Pam" }, { "blr", "Blang" }, { "bls", "Balaesang" }, { "blt", "Tai Dam" }, { "blv", "Bolo" }, { "blw", "Balangao" }, { "blx", "Mag-Indi Ayta" }, { "bly", "Notre" }, { "blz", "Balantak" }, { "bma", "Lame" }, { "bmb", "Bembe" }, { "bmc", "Biem" }, { "bmd", "Baga Manduri" }, { "bme", "Limassa" }, { "bmf", "Bom" }, { "bmg", "Bamwe" }, { "bmh", "Kein" }, { "bmi", "Bagirmi" }, { "bmj", "Bote-Majhi" }, { "bmk", "Ghayavi" }, { "bml", "Bomboli" }, { "bmm", "Northern Betsimisaraka Malagasy" }, { "bmn", "Bina (Papua New Guinea)" }, { "bmo", "Bambalang" }, { "bmp", "Bulgebi" }, { "bmq", "Bomu" }, { "bmr", "Muinane" }, { "bms", "Bilma Kanuri" }, { "bmt", "Biao Mon" }, { "bmu", "Somba-Siawari" }, { "bmv", "Bum" }, { "bmw", "Bomwali" }, { "bmx", "Baimak" }, { "bmy", "Bemba (Democratic Republic of Congo)" }, { "bmz", "Baramu" }, { "bna", "Bonerate" }, { "bnb", "Bookan" }, { "bnc", "Bontok" }, { "bnd", "Banda (Indonesia)" }, { "bne", "Bintauna" }, { "bnf", "Masiwang" }, { "bng", "Benga" }, { "bni", "Bangi" }, { "bnj", "Eastern Tawbuid" }, { "bnk", "Bierebo" }, { "bnl", "Boon" }, { "bnm", "Batanga" }, { "bnn", "Bunun" }, { "bno", "Bantoanon" }, { "bnp", "Bola" }, { "bnq", "Bantik" }, { "bnr", "Butmas-Tur" }, { "bns", "Bundeli" }, { "bnu", "Bentong" }, { "bnv", "Bonerif" }, { "bnw", "Bisis" }, { "bnx", "Bangubangu" }, { "bny", "Bintulu" }, { "bnz", "Beezen" }, { "boa", "Bora" }, { "bob", "Aweer" }, { "bod", "Tibetan" }, { "boe", "Mundabli" }, { "bof", "Bolon" }, { "bog", "Bamako Sign Language" }, { "boh", "Boma" }, { "boi", "Barbareño" }, { "boj", "Anjam" }, { "bok", "Bonjo" }, { "bol", "Bole" }, { "bom", "Berom" }, { "bon", "Bine" }, { "boo", "Tiemacèwè Bozo" }, { "bop", "Bonkiman" }, { "boq", "Bogaya" }, { "bor", "Borôro" }, { "bos", "Bosnian" }, { "bot", "Bongo" }, { "bou", "Bondei" }, { "bov", "Tuwuli" }, { "bow", "Rema" }, { "box", "Buamu" }, { "boy", "Bodo (Central African Republic)" }, { "boz", "Tiéyaxo Bozo" }, { "bpa", "Daakaka" }, { "bpb", "Barbacoas" }, { "bpd", "Banda-Banda" }, { "bpg", "Bonggo" }, { "bph", "Botlikh" }, { "bpi", "Bagupi" }, { "bpj", "Binji" }, { "bpk", "Orowe" }, { "bpl", "Broome Pearling Lugger Pidgin" }, { "bpm", "Biyom" }, { "bpn", "Dzao Min" }, { "bpo", "Anasi" }, { "bpp", "Kaure" }, { "bpq", "Banda Malay" }, { "bpr", "Koronadal Blaan" }, { "bps", "Sarangani Blaan" }, { "bpt", "Barrow Point" }, { "bpu", "Bongu" }, { "bpv", "Bian Marind" }, { "bpw", "Bo (Papua New Guinea)" }, { "bpx", "Palya Bareli" }, { "bpy", "Bishnupriya" }, { "bpz", "Bilba" }, { "bqa", "Tchumbuli" }, { "bqb", "Bagusa" }, { "bqc", "Boko (Benin)" }, { "bqd", "Bung" }, { "bqf", "Baga Kaloum" }, { "bqg", "Bago-Kusuntu" }, { "bqh", "Baima" }, { "bqi", "Bakhtiari" }, { "bqj", "Bandial" }, { "bqk", "Banda-Mbrès" }, { "bql", "Bilakura" }, { "bqm", "Wumboko" }, { "bqn", "Bulgarian Sign Language" }, { "bqo", "Balo" }, { "bqp", "Busa" }, { "bqq", "Biritai" }, { "bqr", "Burusu" }, { "bqs", "Bosngun" }, { "bqt", "Bamukumbit" }, { "bqu", "Boguru" }, { "bqv", "Koro Wachi" }, { "bqw", "Buru (Nigeria)" }, { "bqx", "Baangi" }, { "bqy", "Bengkala Sign Language" }, { "bqz", "Bakaka" }, { "bra", "Braj" }, { "brb", "Lave" }, { "brc", "Berbice Creole Dutch" }, { "brd", "Baraamu" }, { "bre", "Breton" }, { "brf", "Bera" }, { "brg", "Baure" }, { "brh", "Brahui" }, { "bri", "Mokpwe" }, { "brj", "Bieria" }, { "brk", "Birked" }, { "brl", "Birwa" }, { "brm", "Barambu" }, { "brn", "Boruca" }, { "bro", "Brokkat" }, { "brp", "Barapasi" }, { "brq", "Breri" }, { "brr", "Birao" }, { "brs", "Baras" }, { "brt", "Bitare" }, { "bru", "Eastern Bru" }, { "brv", "Western Bru" }, { "brw", "Bellari" }, { "brx", "Bodo (India)" }, { "bry", "Burui" }, { "brz", "Bilbil" }, { "bsa", "Abinomn" }, { "bsb", "Brunei Bisaya" }, { "bsc", "Bassari" }, { "bse", "Wushi" }, { "bsf", "Bauchi" }, { "bsg", "Bashkardi" }, { "bsh", "Kati" }, { "bsi", "Bassossi" }, { "bsj", "Bangwinji" }, { "bsk", "Burushaski" }, { "bsl", "Basa-Gumna" }, { "bsm", "Busami" }, { "bsn", "Barasana-Eduria" }, { "bso", "Buso" }, { "bsp", "Baga Sitemu" }, { "bsq", "Bassa" }, { "bsr", "Bassa-Kontagora" }, { "bss", "Akoose" }, { "bst", "Basketo" }, { "bsu", "Bahonsuai" }, { "bsv", "Baga Sobané" }, { "bsw", "Baiso" }, { "bsx", "Yangkam" }, { "bsy", "Sabah Bisaya" }, { "bta", "Bata" }, { "btc", "Bati (Cameroon)" }, { "btd", "Batak Dairi" }, { "bte", "Gamo-Ningi" }, { "btf", "Birgit" }, { "btg", "Gagnoa Bété" }, { "bth", "Biatah Bidayuh" }, { "bti", "Burate" }, { "btj", "Bacanese Malay" }, { "btl", "Bhatola" }, { "btm", "Batak Mandailing" }, { "btn", "Ratagnon" }, { "bto", "Rinconada Bikol" }, { "btp", "Budibud" }, { "btq", "Batek" }, { "btr", "Baetora" }, { "bts", "Batak Simalungun" }, { "btt", "Bete-Bendi" }, { "btu", "Batu" }, { "btv", "Bateri" }, { "btw", "Butuanon" }, { "btx", "Batak Karo" }, { "bty", "Bobot" }, { "btz", "Batak Alas-Kluet" }, { "bua", "Buriat" }, { "bub", "Bua" }, { "buc", "Bushi" }, { "bud", "Ntcham" }, { "bue", "Beothuk" }, { "buf", "Bushoong" }, { "bug", "Buginese" }, { "buh", "Younuo Bunu" }, { "bui", "Bongili" }, { "buj", "Basa-Gurmana" }, { "buk", "Bugawac" }, { "bul", "Bulgarian" }, { "bum", "Bulu (Cameroon)" }, { "bun", "Sherbro" }, { "buo", "Terei" }, { "bup", "Busoa" }, { "buq", "Brem" }, { "bus", "Bokobaru" }, { "but", "Bungain" }, { "buu", "Budu" }, { "buv", "Bun" }, { "buw", "Bubi" }, { "bux", "Boghom" }, { "buy", "Bullom So" }, { "buz", "Bukwen" }, { "bva", "Barein" }, { "bvb", "Bube" }, { "bvc", "Baelelea" }, { "bvd", "Baeggu" }, { "bve", "Berau Malay" }, { "bvf", "Boor" }, { "bvg", "Bonkeng" }, { "bvh", "Bure" }, { "bvi", "Belanda Viri" }, { "bvj", "Baan" }, { "bvk", "Bukat" }, { "bvl", "Bolivian Sign Language" }, { "bvm", "Bamunka" }, { "bvn", "Buna" }, { "bvo", "Bolgo" }, { "bvp", "Bumang" }, { "bvq", "Birri" }, { "bvr", "Burarra" }, { "bvt", "Bati (Indonesia)" }, { "bvu", "Bukit Malay" }, { "bvv", "Baniva" }, { "bvw", "Boga" }, { "bvx", "Dibole" }, { "bvy", "Baybayanon" }, { "bvz", "Bauzi" }, { "bwa", "Bwatoo" }, { "bwb", "Namosi-Naitasiri-Serua" }, { "bwc", "Bwile" }, { "bwd", "Bwaidoka" }, { "bwe", "Bwe Karen" }, { "bwf", "Boselewa" }, { "bwg", "Barwe" }, { "bwh", "Bishuo" }, { "bwi", "Baniwa" }, { "bwj", "Láá Láá Bwamu" }, { "bwk", "Bauwaki" }, { "bwl", "Bwela" }, { "bwm", "Biwat" }, { "bwn", "Wunai Bunu" }, { "bwo", "Boro (Ethiopia)" }, { "bwp", "Mandobo Bawah" }, { "bwq", "Southern Bobo Madaré" }, { "bwr", "Bura-Pabir" }, { "bws", "Bomboma" }, { "bwt", "Bafaw-Balong" }, { "bwu", "Buli (Ghana)" }, { "bww", "Bwa" }, { "bwx", "Bu-Nao Bunu" }, { "bwy", "Cwi Bwamu" }, { "bwz", "Bwisi" }, { "bxa", "Tairaha" }, { "bxb", "Belanda Bor" }, { "bxc", "Molengue" }, { "bxd", "Pela" }, { "bxe", "Birale" }, { "bxf", "Bilur" }, { "bxg", "Bangala" }, { "bxh", "Buhutu" }, { "bxi", "Pirlatapa" }, { "bxj", "Bayungu" }, { "bxk", "Bukusu" }, { "bxl", "Jalkunan" }, { "bxm", "Mongolia Buriat" }, { "bxn", "Burduna" }, { "bxo", "Barikanchi" }, { "bxp", "Bebil" }, { "bxq", "Beele" }, { "bxr", "Russia Buriat" }, { "bxs", "Busam" }, { "bxu", "China Buriat" }, { "bxv", "Berakou" }, { "bxw", "Bankagooma" }, { "bxx", "Borna (Democratic Republic of Congo)" }, { "bxz", "Binahari" }, { "bya", "Batak" }, { "byb", "Bikya" }, { "byc", "Ubaghara" }, { "byd", "Benyadu'" }, { "bye", "Pouye" }, { "byf", "Bete" }, { "byg", "Baygo" }, { "byh", "Bhujel" }, { "byi", "Buyu" }, { "byj", "Bina (Nigeria)" }, { "byk", "Biao" }, { "byl", "Bayono" }, { "bym", "Bidyara" }, { "byn", "Bilin" }, { "byo", "Biyo" }, { "byp", "Bumaji" }, { "byq", "Basay" }, { "byr", "Baruya" }, { "bys", "Burak" }, { "byt", "Berti" }, { "byv", "Medumba" }, { "byw", "Belhariya" }, { "byx", "Qaqet" }, { "byy", "Buya" }, { "byz", "Banaro" }, { "bza", "Bandi" }, { "bzb", "Andio" }, { "bzc", "Southern Betsimisaraka Malagasy" }, { "bzd", "Bribri" }, { "bze", "Jenaama Bozo" }, { "bzf", "Boikin" }, { "bzg", "Babuza" }, { "bzh", "Mapos Buang" }, { "bzi", "Bisu" }, { "bzj", "Belize Kriol English" }, { "bzk", "Nicaragua Creole English" }, { "bzl", "Boano (Sulawesi)" }, { "bzm", "Bolondo" }, { "bzn", "Boano (Maluku)" }, { "bzo", "Bozaba" }, { "bzp", "Kemberano" }, { "bzq", "Buli (Indonesia)" }, { "bzr", "Biri" }, { "bzs", "Brazilian Sign Language" }, { "bzt", "Brithenig" }, { "bzu", "Burmeso" }, { "bzv", "Naami" }, { "bzw", "Basa (Nigeria)" }, { "bzx", "Kɛlɛngaxo Bozo" }, { "bzy", "Obanliku" }, { "bzz", "Evant" }, { "caa", "Chortí" }, { "cab", "Garifuna" }, { "cac", "Chuj" }, { "cad", "Caddo" }, { "cae", "Lehar" }, { "caf", "Southern Carrier" }, { "cag", "Nivaclé" }, { "cah", "Cahuarano" }, { "caj", "Chané" }, { "cak", "Kaqchikel" }, { "cal", "Carolinian" }, { "cam", "Cemuhî" }, { "can", "Chambri" }, { "cao", "Chácobo" }, { "cap", "Chipaya" }, { "caq", "Car Nicobarese" }, { "car", "Galibi Carib" }, { "cas", "Tsimané" }, { "cat", "Catalan" }, { "cav", "Cavineña" }, { "caw", "Callawalla" }, { "cax", "Chiquitano" }, { "cay", "Cayuga" }, { "caz", "Canichana" }, { "cbb", "Cabiyarí" }, { "cbc", "Carapana" }, { "cbd", "Carijona" }, { "cbe", "Chipiajes" }, { "cbg", "Chimila" }, { "cbh", "Cagua" }, { "cbi", "Chachi" }, { "cbj", "Ede Cabe" }, { "cbk", "Chavacano" }, { "cbl", "Bualkhaw Chin" }, { "cbn", "Nyahkur" }, { "cbo", "Izora" }, { "cbr", "Cashibo-Cacataibo" }, { "cbs", "Cashinahua" }, { "cbt", "Chayahuita" }, { "cbu", "Candoshi-Shapra" }, { "cbv", "Cacua" }, { "cbw", "Kinabalian" }, { "cby", "Carabayo" }, { "cca", "Cauca" }, { "ccc", "Chamicuro" }, { "ccd", "Cafundo Creole" }, { "cce", "Chopi" }, { "ccg", "Samba Daka" }, { "cch", "Atsam" }, { "ccj", "Kasanga" }, { "ccl", "Cutchi-Swahili" }, { "ccm", "Malaccan Creole Malay" }, { "cco", "Comaltepec Chinantec" }, { "ccp", "Chakma" }, { "ccr", "Cacaopera" }, { "cda", "Choni" }, { "cde", "Chenchu" }, { "cdf", "Chiru" }, { "cdg", "Chamari" }, { "cdh", "Chambeali" }, { "cdi", "Chodri" }, { "cdj", "Churahi" }, { "cdm", "Chepang" }, { "cdn", "Chaudangsi" }, { "cdo", "Min Dong Chinese" }, { "cdr", "Cinda-Regi-Tiyal" }, { "cds", "Chadian Sign Language" }, { "cdy", "Chadong" }, { "cdz", "Koda" }, { "cea", "Lower Chehalis" }, { "ceb", "Cebuano" }, { "ceg", "Chamacoco" }, { "cek", "Eastern Khumi Chin" }, { "cen", "Cen" }, { "ces", "Czech" }, { "cet", "Centúúm" }, { "cfa", "Dijim-Bwilim" }, { "cfd", "Cara" }, { "cfg", "Como Karim" }, { "cfm", "Falam Chin" }, { "cga", "Changriwa" }, { "cgc", "Kagayanen" }, { "cgg", "Chiga" }, { "cgk", "Chocangacakha" }, { "cha", "Chamorro" }, { "chb", "Chibcha" }, { "chc", "Catawba" }, { "chd", "Highland Oaxaca Chontal" }, { "che", "Chechen" }, { "chf", "Tabasco Chontal" }, { "chg", "Chagatai" }, { "chh", "Chinook" }, { "chj", "Ojitlán Chinantec" }, { "chk", "Chuukese" }, { "chl", "Cahuilla" }, { "chm", "Mari (Russia)" }, { "chn", "Chinook jargon" }, { "cho", "Choctaw" }, { "chp", "Chipewyan" }, { "chq", "Quiotepec Chinantec" }, { "chr", "Cherokee" }, { "cht", "Cholón" }, { "chu", "Church Slavic" }, { "chv", "Chuvash" }, { "chw", "Chuwabu" }, { "chx", "Chantyal" }, { "chy", "Cheyenne" }, { "chz", "Ozumacín Chinantec" }, { "cia", "Cia-Cia" }, { "cib", "Ci Gbe" }, { "cic", "Chickasaw" }, { "cid", "Chimariko" }, { "cie", "Cineni" }, { "cih", "Chinali" }, { "cik", "Chitkuli Kinnauri" }, { "cim", "Cimbrian" }, { "cin", "Cinta Larga" }, { "cip", "Chiapanec" }, { "cir", "Tiri" }, { "ciw", "Chippewa" }, { "ciy", "Chaima" }, { "cja", "Western Cham" }, { "cje", "Chru" }, { "cjh", "Upper Chehalis" }, { "cji", "Chamalal" }, { "cjk", "Chokwe" }, { "cjm", "Eastern Cham" }, { "cjn", "Chenapian" }, { "cjo", "Ashéninka Pajonal" }, { "cjp", "Cabécar" }, { "cjs", "Shor" }, { "cjv", "Chuave" }, { "cjy", "Jinyu Chinese" }, { "ckb", "Central Kurdish" }, { "ckh", "Chak" }, { "ckl", "Cibak" }, { "ckn", "Kaang Chin" }, { "cko", "Anufo" }, { "ckq", "Kajakse" }, { "ckr", "Kairak" }, { "cks", "Tayo" }, { "ckt", "Chukot" }, { "cku", "Koasati" }, { "ckv", "Kavalan" }, { "ckx", "Caka" }, { "cky", "Cakfem-Mushere" }, { "ckz", "Cakchiquel-Quiché Mixed Language" }, { "cla", "Ron" }, { "clc", "Chilcotin" }, { "cld", "Chaldean Neo-Aramaic" }, { "cle", "Lealao Chinantec" }, { "clh", "Chilisso" }, { "cli", "Chakali" }, { "clj", "Laitu Chin" }, { "clk", "Idu-Mishmi" }, { "cll", "Chala" }, { "clm", "Clallam" }, { "clo", "Lowland Oaxaca Chontal" }, { "clt", "Lautu Chin" }, { "clu", "Caluyanun" }, { "clw", "Chulym" }, { "cly", "Eastern Highland Chatino" }, { "cma", "Maa" }, { "cme", "Cerma" }, { "cmg", "Classical Mongolian" }, { "cmi", "Emberá-Chamí" }, { "cml", "Campalagian" }, { "cmm", "Michigamea" }, { "cmn", "Mandarin Chinese" }, { "cmo", "Central Mnong" }, { "cmr", "Mro-Khimi Chin" }, { "cms", "Messapic" }, { "cmt", "Camtho" }, { "cna", "Changthang" }, { "cnb", "Chinbon Chin" }, { "cnc", "Côông" }, { "cng", "Northern Qiang" }, { "cnh", "Haka Chin" }, { "cni", "Asháninka" }, { "cnk", "Khumi Chin" }, { "cnl", "Lalana Chinantec" }, { "cno", "Con" }, { "cns", "Central Asmat" }, { "cnt", "Tepetotutla Chinantec" }, { "cnu", "Chenoua" }, { "cnw", "Ngawn Chin" }, { "cnx", "Middle Cornish" }, { "coa", "Cocos Islands Malay" }, { "cob", "Chicomuceltec" }, { "coc", "Cocopa" }, { "cod", "Cocama-Cocamilla" }, { "coe", "Koreguaje" }, { "cof", "Colorado" }, { "cog", "Chong" }, { "coh", "Chonyi-Dzihana-Kauma" }, { "coj", "Cochimi" }, { "cok", "Santa Teresa Cora" }, { "col", "Columbia-Wenatchi" }, { "com", "Comanche" }, { "con", "Cofán" }, { "coo", "Comox" }, { "cop", "Coptic" }, { "coq", "Coquille" }, { "cor", "Cornish" }, { "cos", "Corsican" }, { "cot", "Caquinte" }, { "cou", "Wamey" }, { "cov", "Cao Miao" }, { "cow", "Cowlitz" }, { "cox", "Nanti" }, { "coy", "Coyaima" }, { "coz", "Chochotec" }, { "cpa", "Palantla Chinantec" }, { "cpb", "Ucayali-Yurúa Ashéninka" }, { "cpc", "Ajyíninka Apurucayali" }, { "cpg", "Cappadocian Greek" }, { "cpi", "Chinese Pidgin English" }, { "cpn", "Cherepon" }, { "cpo", "Kpeego" }, { "cps", "Capiznon" }, { "cpu", "Pichis Ashéninka" }, { "cpx", "Pu-Xian Chinese" }, { "cpy", "South Ucayali Ashéninka" }, { "cqd", "Chuanqiandian Cluster Miao" }, { "cqu", "Chilean Quechua" }, { "cra", "Chara" }, { "crb", "Island Carib" }, { "crc", "Lonwolwol" }, { "crd", "Coeur d'Alene" }, { "cre", "Cree" }, { "crf", "Caramanta" }, { "crg", "Michif" }, { "crh", "Crimean Tatar" }, { "cri", "Sãotomense" }, { "crj", "Southern East Cree" }, { "crk", "Plains Cree" }, { "crl", "Northern East Cree" }, { "crm", "Moose Cree" }, { "crn", "El Nayar Cora" }, { "cro", "Crow" }, { "crq", "Iyo'wujwa Chorote" }, { "crr", "Carolina Algonquian" }, { "crs", "Seselwa Creole French" }, { "crt", "Iyojwa'ja Chorote" }, { "crv", "Chaura" }, { "crw", "Chrau" }, { "crx", "Carrier" }, { "cry", "Cori" }, { "crz", "Cruzeño" }, { "csa", "Chiltepec Chinantec" }, { "csb", "Kashubian" }, { "csc", "Catalan Sign Language" }, { "csd", "Chiangmai Sign Language" }, { "cse", "Czech Sign Language" }, { "csf", "Cuba Sign Language" }, { "csg", "Chilean Sign Language" }, { "csh", "Asho Chin" }, { "csi", "Coast Miwok" }, { "csj", "Songlai Chin" }, { "csk", "Jola-Kasa" }, { "csl", "Chinese Sign Language" }, { "csm", "Central Sierra Miwok" }, { "csn", "Colombian Sign Language" }, { "cso", "Sochiapam Chinantec" }, { "csq", "Croatia Sign Language" }, { "csr", "Costa Rican Sign Language" }, { "css", "Southern Ohlone" }, { "cst", "Northern Ohlone" }, { "csv", "Sumtu Chin" }, { "csw", "Swampy Cree" }, { "csy", "Siyin Chin" }, { "csz", "Coos" }, { "cta", "Tataltepec Chatino" }, { "ctc", "Chetco" }, { "ctd", "Tedim Chin" }, { "cte", "Tepinapa Chinantec" }, { "ctg", "Chittagonian" }, { "cth", "Thaiphum Chin" }, { "ctl", "Tlacoatzintepec Chinantec" }, { "ctm", "Chitimacha" }, { "ctn", "Chhintange" }, { "cto", "Emberá-Catío" }, { "ctp", "Western Highland Chatino" }, { "cts", "Northern Catanduanes Bikol" }, { "ctt", "Wayanad Chetti" }, { "ctu", "Chol" }, { "ctz", "Zacatepec Chatino" }, { "cua", "Cua" }, { "cub", "Cubeo" }, { "cuc", "Usila Chinantec" }, { "cug", "Cung" }, { "cuh", "Chuka" }, { "cui", "Cuiba" }, { "cuj", "Mashco Piro" }, { "cuk", "San Blas Kuna" }, { "cul", "Culina" }, { "cum", "Cumeral" }, { "cuo", "Cumanagoto" }, { "cup", "Cupeño" }, { "cuq", "Cun" }, { "cur", "Chhulung" }, { "cut", "Teutila Cuicatec" }, { "cuu", "Tai Ya" }, { "cuv", "Cuvok" }, { "cuw", "Chukwa" }, { "cux", "Tepeuxila Cuicatec" }, { "cvg", "Chug" }, { "cvn", "Valle Nacional Chinantec" }, { "cwa", "Kabwa" }, { "cwb", "Maindo" }, { "cwd", "Woods Cree" }, { "cwe", "Kwere" }, { "cwg", "Chewong" }, { "cwt", "Kuwaataay" }, { "cya", "Nopala Chatino" }, { "cyb", "Cayubaba" }, { "cym", "Welsh" }, { "cyo", "Cuyonon" }, { "czh", "Huizhou Chinese" }, { "czk", "Knaanic" }, { "czn", "Zenzontepec Chatino" }, { "czo", "Min Zhong Chinese" }, { "czt", "Zotung Chin" }, { "daa", "Dangaléat" }, { "dac", "Dambi" }, { "dad", "Marik" }, { "dae", "Duupa" }, { "dag", "Dagbani" }, { "dah", "Gwahatike" }, { "dai", "Day" }, { "daj", "Dar Fur Daju" }, { "dak", "Dakota" }, { "dal", "Dahalo" }, { "dam", "Damakawa" }, { "dan", "Danish" }, { "dao", "Daai Chin" }, { "daq", "Dandami Maria" }, { "dar", "Dargwa" }, { "das", "Daho-Doo" }, { "dau", "Dar Sila Daju" }, { "dav", "Taita" }, { "daw", "Davawenyo" }, { "dax", "Dayi" }, { "daz", "Dao" }, { "dba", "Bangime" }, { "dbb", "Deno" }, { "dbd", "Dadiya" }, { "dbe", "Dabe" }, { "dbf", "Edopi" }, { "dbg", "Dogul Dom Dogon" }, { "dbi", "Doka" }, { "dbj", "Ida'an" }, { "dbl", "Dyirbal" }, { "dbm", "Duguri" }, { "dbn", "Duriankere" }, { "dbo", "Dulbu" }, { "dbp", "Duwai" }, { "dbq", "Daba" }, { "dbr", "Dabarre" }, { "dbt", "Ben Tey Dogon" }, { "dbu", "Bondum Dom Dogon" }, { "dbv", "Dungu" }, { "dbw", "Bankan Tey Dogon" }, { "dby", "Dibiyaso" }, { "dcc", "Deccan" }, { "dcr", "Negerhollands" }, { "dda", "Dadi Dadi" }, { "ddd", "Dongotono" }, { "dde", "Doondo" }, { "ddg", "Fataluku" }, { "ddi", "West Goodenough" }, { "ddj", "Jaru" }, { "ddn", "Dendi (Benin)" }, { "ddo", "Dido" }, { "ddr", "Dhudhuroa" }, { "dds", "Donno So Dogon" }, { "ddw", "Dawera-Daweloor" }, { "dec", "Dagik" }, { "ded", "Dedua" }, { "dee", "Dewoin" }, { "def", "Dezfuli" }, { "deg", "Degema" }, { "deh", "Dehwari" }, { "dei", "Demisa" }, { "dek", "Dek" }, { "del", "Delaware" }, { "dem", "Dem" }, { "den", "Slave (Athapascan)" }, { "dep", "Pidgin Delaware" }, { "deq", "Dendi (Central African Republic)" }, { "der", "Deori" }, { "des", "Desano" }, { "deu", "German" }, { "dev", "Domung" }, { "dez", "Dengese" }, { "dga", "Southern Dagaare" }, { "dgb", "Bunoge Dogon" }, { "dgc", "Casiguran Dumagat Agta" }, { "dgd", "Dagaari Dioula" }, { "dge", "Degenan" }, { "dgg", "Doga" }, { "dgh", "Dghwede" }, { "dgi", "Northern Dagara" }, { "dgk", "Dagba" }, { "dgl", "Andaandi" }, { "dgn", "Dagoman" }, { "dgo", "Dogri (individual language)" }, { "dgr", "Dogrib" }, { "dgs", "Dogoso" }, { "dgt", "Ndra'ngith" }, { "dgu", "Degaru" }, { "dgw", "Daungwurrung" }, { "dgx", "Doghoro" }, { "dgz", "Daga" }, { "dhd", "Dhundari" }, { "dhg", "Djangu" }, { "dhi", "Dhimal" }, { "dhl", "Dhalandji" }, { "dhm", "Zemba" }, { "dhn", "Dhanki" }, { "dho", "Dhodia" }, { "dhr", "Dhargari" }, { "dhs", "Dhaiso" }, { "dhu", "Dhurga" }, { "dhv", "Dehu" }, { "dhw", "Dhanwar (Nepal)" }, { "dhx", "Dhungaloo" }, { "dia", "Dia" }, { "dib", "South Central Dinka" }, { "dic", "Lakota Dida" }, { "did", "Didinga" }, { "dif", "Dieri" }, { "dig", "Digo" }, { "dih", "Kumiai" }, { "dii", "Dimbong" }, { "dij", "Dai" }, { "dik", "Southwestern Dinka" }, { "dil", "Dilling" }, { "dim", "Dime" }, { "din", "Dinka" }, { "dio", "Dibo" }, { "dip", "Northeastern Dinka" }, { "diq", "Dimli (individual language)" }, { "dir", "Dirim" }, { "dis", "Dimasa" }, { "dit", "Dirari" }, { "diu", "Diriku" }, { "div", "Dhivehi" }, { "diw", "Northwestern Dinka" }, { "dix", "Dixon Reef" }, { "diy", "Diuwe" }, { "diz", "Ding" }, { "dja", "Djadjawurrung" }, { "djb", "Djinba" }, { "djc", "Dar Daju Daju" }, { "djd", "Djamindjung" }, { "dje", "Zarma" }, { "djf", "Djangun" }, { "dji", "Djinang" }, { "djj", "Djeebbana" }, { "djk", "Eastern Maroon Creole" }, { "djm", "Jamsay Dogon" }, { "djn", "Djauan" }, { "djo", "Jangkang" }, { "djr", "Djambarrpuyngu" }, { "dju", "Kapriman" }, { "djw", "Djawi" }, { "dka", "Dakpakha" }, { "dkk", "Dakka" }, { "dkr", "Kuijau" }, { "dks", "Southeastern Dinka" }, { "dkx", "Mazagway" }, { "dlg", "Dolgan" }, { "dlk", "Dahalik" }, { "dlm", "Dalmatian" }, { "dln", "Darlong" }, { "dma", "Duma" }, { "dmb", "Mombo Dogon" }, { "dmc", "Gavak" }, { "dmd", "Madhi Madhi" }, { "dme", "Dugwor" }, { "dmg", "Upper Kinabatangan" }, { "dmk", "Domaaki" }, { "dml", "Dameli" }, { "dmm", "Dama" }, { "dmo", "Kemedzung" }, { "dmr", "East Damar" }, { "dms", "Dampelas" }, { "dmu", "Dubu" }, { "dmv", "Dumpas" }, { "dmw", "Mudburra" }, { "dmx", "Dema" }, { "dmy", "Demta" }, { "dna", "Upper Grand Valley Dani" }, { "dnd", "Daonda" }, { "dne", "Ndendeule" }, { "dng", "Dungan" }, { "dni", "Lower Grand Valley Dani" }, { "dnj", "Dan" }, { "dnk", "Dengka" }, { "dnn", "Dzùùngoo" }, { "dnr", "Danaru" }, { "dnt", "Mid Grand Valley Dani" }, { "dnu", "Danau" }, { "dnv", "Danu" }, { "dnw", "Western Dani" }, { "dny", "Dení" }, { "doa", "Dom" }, { "dob", "Dobu" }, { "doc", "Northern Dong" }, { "doe", "Doe" }, { "dof", "Domu" }, { "doh", "Dong" }, { "doi", "Dogri (macrolanguage)" }, { "dok", "Dondo" }, { "dol", "Doso" }, { "don", "Toura (Papua New Guinea)" }, { "doo", "Dongo" }, { "dop", "Lukpa" }, { "doq", "Dominican Sign Language" }, { "dor", "Dori'o" }, { "dos", "Dogosé" }, { "dot", "Dass" }, { "dov", "Dombe" }, { "dow", "Doyayo" }, { "dox", "Bussa" }, { "doy", "Dompo" }, { "doz", "Dorze" }, { "dpp", "Papar" }, { "drb", "Dair" }, { "drc", "Minderico" }, { "drd", "Darmiya" }, { "dre", "Dolpo" }, { "drg", "Rungus" }, { "dri", "C'lela" }, { "drl", "Paakantyi" }, { "drn", "West Damar" }, { "dro", "Daro-Matu Melanau" }, { "drq", "Dura" }, { "drr", "Dororo" }, { "drs", "Gedeo" }, { "drt", "Drents" }, { "dru", "Rukai" }, { "dry", "Darai" }, { "dsb", "Lower Sorbian" }, { "dse", "Dutch Sign Language" }, { "dsh", "Daasanach" }, { "dsi", "Disa" }, { "dsl", "Danish Sign Language" }, { "dsn", "Dusner" }, { "dso", "Desiya" }, { "dsq", "Tadaksahak" }, { "dta", "Daur" }, { "dtb", "Labuk-Kinabatangan Kadazan" }, { "dtd", "Ditidaht" }, { "dth", "Adithinngithigh" }, { "dti", "Ana Tinga Dogon" }, { "dtk", "Tene Kan Dogon" }, { "dtm", "Tomo Kan Dogon" }, { "dto", "Tommo So Dogon" }, { "dtp", "Central Dusun" }, { "dtr", "Lotud" }, { "dts", "Toro So Dogon" }, { "dtt", "Toro Tegu Dogon" }, { "dtu", "Tebul Ure Dogon" }, { "dty", "Dotyali" }, { "dua", "Duala" }, { "dub", "Dubli" }, { "duc", "Duna" }, { "dud", "Hun-Saare" }, { "due", "Umiray Dumaget Agta" }, { "duf", "Dumbea" }, { "dug", "Duruma" }, { "duh", "Dungra Bhil" }, { "dui", "Dumun" }, { "duj", "Dhuwal" }, { "duk", "Uyajitaya" }, { "dul", "Alabat Island Agta" }, { "dum", "Middle Dutch (ca. 1050-1350)" }, { "dun", "Dusun Deyah" }, { "duo", "Dupaninan Agta" }, { "dup", "Duano" }, { "duq", "Dusun Malang" }, { "dur", "Dii" }, { "dus", "Dumi" }, { "duu", "Drung" }, { "duv", "Duvle" }, { "duw", "Dusun Witu" }, { "dux", "Duungooma" }, { "duy", "Dicamay Agta" }, { "duz", "Duli" }, { "dva", "Duau" }, { "dwa", "Diri" }, { "dwr", "Dawro" }, { "dws", "Dutton World Speedwords" }, { "dww", "Dawawa" }, { "dya", "Dyan" }, { "dyb", "Dyaberdyaber" }, { "dyd", "Dyugun" }, { "dyg", "Villa Viciosa Agta" }, { "dyi", "Djimini Senoufo" }, { "dym", "Yanda Dom Dogon" }, { "dyn", "Dyangadi" }, { "dyo", "Jola-Fonyi" }, { "dyu", "Dyula" }, { "dyy", "Dyaabugay" }, { "dza", "Tunzu" }, { "dzd", "Daza" }, { "dze", "Djiwarli" }, { "dzg", "Dazaga" }, { "dzl", "Dzalakha" }, { "dzn", "Dzando" }, { "dzo", "Dzongkha" }, { "eaa", "Karenggapa" }, { "ebg", "Ebughu" }, { "ebk", "Eastern Bontok" }, { "ebo", "Teke-Ebo" }, { "ebr", "Ebrié" }, { "ebu", "Embu" }, { "ecr", "Eteocretan" }, { "ecs", "Ecuadorian Sign Language" }, { "ecy", "Eteocypriot" }, { "eee", "E" }, { "efa", "Efai" }, { "efe", "Efe" }, { "efi", "Efik" }, { "ega", "Ega" }, { "egl", "Emilian" }, { "ego", "Eggon" }, { "egy", "Egyptian (Ancient)" }, { "ehu", "Ehueun" }, { "eip", "Eipomek" }, { "eit", "Eitiep" }, { "eiv", "Askopan" }, { "eja", "Ejamat" }, { "eka", "Ekajuk" }, { "ekc", "Eastern Karnic" }, { "eke", "Ekit" }, { "ekg", "Ekari" }, { "eki", "Eki" }, { "ekk", "Standard Estonian" }, { "ekl", "Kol (Bangladesh)" }, { "ekm", "Elip" }, { "eko", "Koti" }, { "ekp", "Ekpeye" }, { "ekr", "Yace" }, { "eky", "Eastern Kayah" }, { "ele", "Elepi" }, { "elh", "El Hugeirat" }, { "eli", "Nding" }, { "elk", "Elkei" }, { "ell", "Modern Greek (1453-)" }, { "elm", "Eleme" }, { "elo", "El Molo" }, { "elu", "Elu" }, { "elx", "Elamite" }, { "ema", "Emai-Iuleha-Ora" }, { "emb", "Embaloh" }, { "eme", "Emerillon" }, { "emg", "Eastern Meohang" }, { "emi", "Mussau-Emira" }, { "emk", "Eastern Maninkakan" }, { "emm", "Mamulique" }, { "emn", "Eman" }, { "emo", "Emok" }, { "emp", "Northern Emberá" }, { "ems", "Pacific Gulf Yupik" }, { "emu", "Eastern Muria" }, { "emw", "Emplawas" }, { "emx", "Erromintxela" }, { "emy", "Epigraphic Mayan" }, { "ena", "Apali" }, { "enb", "Markweeta" }, { "enc", "En" }, { "end", "Ende" }, { "enf", "Forest Enets" }, { "eng", "English" }, { "enh", "Tundra Enets" }, { "enm", "Middle English (1100-1500)" }, { "enn", "Engenni" }, { "eno", "Enggano" }, { "enq", "Enga" }, { "enr", "Emumu" }, { "enu", "Enu" }, { "env", "Enwan (Edu State)" }, { "enw", "Enwan (Akwa Ibom State)" }, { "eot", "Beti (Côte d'Ivoire)" }, { "epi", "Epie" }, { "epo", "Esperanto" }, { "era", "Eravallan" }, { "erg", "Sie" }, { "erh", "Eruwa" }, { "eri", "Ogea" }, { "erk", "South Efate" }, { "ero", "Horpa" }, { "err", "Erre" }, { "ers", "Ersu" }, { "ert", "Eritai" }, { "erw", "Erokwanas" }, { "ese", "Ese Ejja" }, { "esh", "Eshtehardi" }, { "esi", "North Alaskan Inupiatun" }, { "esk", "Northwest Alaska Inupiatun" }, { "esl", "Egypt Sign Language" }, { "esm", "Esuma" }, { "esn", "Salvadoran Sign Language" }, { "eso", "Estonian Sign Language" }, { "esq", "Esselen" }, { "ess", "Central Siberian Yupik" }, { "est", "Estonian" }, { "esu", "Central Yupik" }, { "etb", "Etebi" }, { "etc", "Etchemin" }, { "eth", "Ethiopian Sign Language" }, { "etn", "Eton (Vanuatu)" }, { "eto", "Eton (Cameroon)" }, { "etr", "Edolo" }, { "ets", "Yekhee" }, { "ett", "Etruscan" }, { "etu", "Ejagham" }, { "etx", "Eten" }, { "etz", "Semimi" }, { "eus", "Basque" }, { "eve", "Even" }, { "evh", "Uvbie" }, { "evn", "Evenki" }, { "ewe", "Ewe" }, { "ewo", "Ewondo" }, { "ext", "Extremaduran" }, { "eya", "Eyak" }, { "eyo", "Keiyo" }, { "eza", "Ezaa" }, { "eze", "Uzekwe" }, { "faa", "Fasu" }, { "fab", "Fa d'Ambu" }, { "fad", "Wagi" }, { "faf", "Fagani" }, { "fag", "Finongan" }, { "fah", "Baissa Fali" }, { "fai", "Faiwol" }, { "faj", "Faita" }, { "fak", "Fang (Cameroon)" }, { "fal", "South Fali" }, { "fam", "Fam" }, { "fan", "Fang (Equatorial Guinea)" }, { "fao", "Faroese" }, { "fap", "Palor" }, { "far", "Fataleka" }, { "fas", "Persian" }, { "fat", "Fanti" }, { "fau", "Fayu" }, { "fax", "Fala" }, { "fay", "Southwestern Fars" }, { "faz", "Northwestern Fars" }, { "fbl", "West Albay Bikol" }, { "fcs", "Quebec Sign Language" }, { "fer", "Feroge" }, { "ffi", "Foia Foia" }, { "ffm", "Maasina Fulfulde" }, { "fgr", "Fongoro" }, { "fia", "Nobiin" }, { "fie", "Fyer" }, { "fij", "Fijian" }, { "fil", "Filipino" }, { "fin", "Finnish" }, { "fip", "Fipa" }, { "fir", "Firan" }, { "fit", "Tornedalen Finnish" }, { "fiw", "Fiwaga" }, { "fkk", "Kirya-Konzəl" }, { "fkv", "Kven Finnish" }, { "fla", "Kalispel-Pend d'Oreille" }, { "flh", "Foau" }, { "fli", "Fali" }, { "fll", "North Fali" }, { "fln", "Flinders Island" }, { "flr", "Fuliiru" }, { "fly", "Tsotsitaal" }, { "fmp", "Fe'fe'" }, { "fmu", "Far Western Muria" }, { "fng", "Fanagalo" }, { "fni", "Fania" }, { "fod", "Foodo" }, { "foi", "Foi" }, { "fom", "Foma" }, { "fon", "Fon" }, { "for", "Fore" }, { "fos", "Siraya" }, { "fpe", "Fernando Po Creole English" }, { "fqs", "Fas" }, { "fra", "French" }, { "frc", "Cajun French" }, { "frd", "Fordata" }, { "frk", "Frankish" }, { "frm", "Middle French (ca. 1400-1600)" }, { "fro", "Old French (842-ca. 1400)" }, { "frp", "Arpitan" }, { "frq", "Forak" }, { "frr", "Northern Frisian" }, { "frs", "Eastern Frisian" }, { "frt", "Fortsenal" }, { "fry", "Western Frisian" }, { "fse", "Finnish Sign Language" }, { "fsl", "French Sign Language" }, { "fss", "Finland-Swedish Sign Language" }, { "fub", "Adamawa Fulfulde" }, { "fuc", "Pulaar" }, { "fud", "East Futuna" }, { "fue", "Borgu Fulfulde" }, { "fuf", "Pular" }, { "fuh", "Western Niger Fulfulde" }, { "fui", "Bagirmi Fulfulde" }, { "fuj", "Ko" }, { "ful", "Fulah" }, { "fum", "Fum" }, { "fun", "Fulniô" }, { "fuq", "Central-Eastern Niger Fulfulde" }, { "fur", "Friulian" }, { "fut", "Futuna-Aniwa" }, { "fuu", "Furu" }, { "fuv", "Nigerian Fulfulde" }, { "fuy", "Fuyug" }, { "fvr", "Fur" }, { "fwa", "Fwâi" }, { "fwe", "Fwe" }, { "gaa", "Ga" }, { "gab", "Gabri" }, { "gac", "Mixed Great Andamanese" }, { "gad", "Gaddang" }, { "gae", "Guarequena" }, { "gaf", "Gende" }, { "gag", "Gagauz" }, { "gah", "Alekano" }, { "gai", "Borei" }, { "gaj", "Gadsup" }, { "gak", "Gamkonora" }, { "gal", "Galolen" }, { "gam", "Kandawo" }, { "gan", "Gan Chinese" }, { "gao", "Gants" }, { "gap", "Gal" }, { "gaq", "Gata'" }, { "gar", "Galeya" }, { "gas", "Adiwasi Garasia" }, { "gat", "Kenati" }, { "gau", "Mudhili Gadaba" }, { "gaw", "Nobonob" }, { "gax", "Borana-Arsi-Guji Oromo" }, { "gay", "Gayo" }, { "gaz", "West Central Oromo" }, { "gba", "Gbaya (Central African Republic)" }, { "gbb", "Kaytetye" }, { "gbd", "Karadjeri" }, { "gbe", "Niksek" }, { "gbf", "Gaikundi" }, { "gbg", "Gbanziri" }, { "gbh", "Defi Gbe" }, { "gbi", "Galela" }, { "gbj", "Bodo Gadaba" }, { "gbk", "Gaddi" }, { "gbl", "Gamit" }, { "gbm", "Garhwali" }, { "gbn", "Mo'da" }, { "gbo", "Northern Grebo" }, { "gbp", "Gbaya-Bossangoa" }, { "gbq", "Gbaya-Bozoum" }, { "gbr", "Gbagyi" }, { "gbs", "Gbesi Gbe" }, { "gbu", "Gagadu" }, { "gbv", "Gbanu" }, { "gbw", "Gabi-Gabi" }, { "gbx", "Eastern Xwla Gbe" }, { "gby", "Gbari" }, { "gbz", "Zoroastrian Dari" }, { "gcc", "Mali" }, { "gcd", "Ganggalida" }, { "gce", "Galice" }, { "gcf", "Guadeloupean Creole French" }, { "gcl", "Grenadian Creole English" }, { "gcn", "Gaina" }, { "gcr", "Guianese Creole French" }, { "gct", "Colonia Tovar German" }, { "gda", "Gade Lohar" }, { "gdb", "Pottangi Ollar Gadaba" }, { "gdc", "Gugu Badhun" }, { "gdd", "Gedaged" }, { "gde", "Gude" }, { "gdf", "Guduf-Gava" }, { "gdg", "Ga'dang" }, { "gdh", "Gadjerawang" }, { "gdi", "Gundi" }, { "gdj", "Gurdjar" }, { "gdk", "Gadang" }, { "gdl", "Dirasha" }, { "gdm", "Laal" }, { "gdn", "Umanakaina" }, { "gdo", "Ghodoberi" }, { "gdq", "Mehri" }, { "gdr", "Wipi" }, { "gds", "Ghandruk Sign Language" }, { "gdt", "Kungardutyi" }, { "gdu", "Gudu" }, { "gdx", "Godwari" }, { "gea", "Geruma" }, { "geb", "Kire" }, { "gec", "Gboloo Grebo" }, { "ged", "Gade" }, { "geg", "Gengle" }, { "geh", "Hutterite German" }, { "gei", "Gebe" }, { "gej", "Gen" }, { "gek", "Yiwom" }, { "gel", "ut-Ma'in" }, { "geq", "Geme" }, { "ges", "Geser-Gorom" }, { "gew", "Gera" }, { "gex", "Garre" }, { "gey", "Enya" }, { "gez", "Geez" }, { "gfk", "Patpatar" }, { "gft", "Gafat" }, { "gfx", "Mangetti Dune !Xung" }, { "gga", "Gao" }, { "ggb", "Gbii" }, { "ggd", "Gugadj" }, { "gge", "Guragone" }, { "ggg", "Gurgula" }, { "ggk", "Kungarakany" }, { "ggl", "Ganglau" }, { "ggm", "Gugu Mini" }, { "ggn", "Eastern Gurung" }, { "ggo", "Southern Gondi" }, { "ggt", "Gitua" }, { "ggu", "Gagu" }, { "ggw", "Gogodala" }, { "gha", "Ghadamès" }, { "ghc", "Hiberno-Scottish Gaelic" }, { "ghe", "Southern Ghale" }, { "ghh", "Northern Ghale" }, { "ghk", "Geko Karen" }, { "ghl", "Ghulfan" }, { "ghn", "Ghanongga" }, { "gho", "Ghomara" }, { "ghr", "Ghera" }, { "ghs", "Guhu-Samane" }, { "ght", "Kuke" }, { "gia", "Kitja" }, { "gib", "Gibanawa" }, { "gic", "Gail" }, { "gid", "Gidar" }, { "gig", "Goaria" }, { "gih", "Githabul" }, { "gil", "Gilbertese" }, { "gim", "Gimi (Eastern Highlands)" }, { "gin", "Hinukh" }, { "gip", "Gimi (West New Britain)" }, { "giq", "Green Gelao" }, { "gir", "Red Gelao" }, { "gis", "North Giziga" }, { "git", "Gitxsan" }, { "giu", "Mulao" }, { "giw", "White Gelao" }, { "gix", "Gilima" }, { "giy", "Giyug" }, { "giz", "South Giziga" }, { "gji", "Geji" }, { "gjk", "Kachi Koli" }, { "gjm", "Gunditjmara" }, { "gjn", "Gonja" }, { "gju", "Gujari" }, { "gka", "Guya" }, { "gke", "Ndai" }, { "gkn", "Gokana" }, { "gko", "Kok-Nar" }, { "gkp", "Guinea Kpelle" }, { "gla", "Scottish Gaelic" }, { "glc", "Bon Gula" }, { "gld", "Nanai" }, { "gle", "Irish" }, { "glg", "Galician" }, { "glh", "Northwest Pashayi" }, { "gli", "Guliguli" }, { "glj", "Gula Iro" }, { "glk", "Gilaki" }, { "gll", "Garlali" }, { "glo", "Galambu" }, { "glr", "Glaro-Twabo" }, { "glu", "Gula (Chad)" }, { "glv", "Manx" }, { "glw", "Glavda" }, { "gly", "Gule" }, { "gma", "Gambera" }, { "gmb", "Gula'alaa" }, { "gmd", "Mághdì" }, { "gmh", "Middle High German (ca. 1050-1500)" }, { "gml", "Middle Low German" }, { "gmm", "Gbaya-Mbodomo" }, { "gmn", "Gimnime" }, { "gmu", "Gumalu" }, { "gmv", "Gamo" }, { "gmx", "Magoma" }, { "gmy", "Mycenaean Greek" }, { "gmz", "Mgbolizhia" }, { "gna", "Kaansa" }, { "gnb", "Gangte" }, { "gnc", "Guanche" }, { "gnd", "Zulgo-Gemzek" }, { "gne", "Ganang" }, { "gng", "Ngangam" }, { "gnh", "Lere" }, { "gni", "Gooniyandi" }, { "gnk", "Gana" }, { "gnl", "Gangulu" }, { "gnm", "Ginuman" }, { "gnn", "Gumatj" }, { "gno", "Northern Gondi" }, { "gnq", "Gana" }, { "gnr", "Gureng Gureng" }, { "gnt", "Guntai" }, { "gnu", "Gnau" }, { "gnw", "Western Bolivian Guaraní" }, { "gnz", "Ganzi" }, { "goa", "Guro" }, { "gob", "Playero" }, { "goc", "Gorakor" }, { "god", "Godié" }, { "goe", "Gongduk" }, { "gof", "Gofa" }, { "gog", "Gogo" }, { "goh", "Old High German (ca. 750-1050)" }, { "goi", "Gobasi" }, { "goj", "Gowlan" }, { "gok", "Gowli" }, { "gol", "Gola" }, { "gom", "Goan Konkani" }, { "gon", "Gondi" }, { "goo", "Gone Dau" }, { "gop", "Yeretuar" }, { "goq", "Gorap" }, { "gor", "Gorontalo" }, { "gos", "Gronings" }, { "got", "Gothic" }, { "gou", "Gavar" }, { "gow", "Gorowa" }, { "gox", "Gobu" }, { "goy", "Goundo" }, { "goz", "Gozarkhani" }, { "gpa", "Gupa-Abawa" }, { "gpe", "Ghanaian Pidgin English" }, { "gpn", "Taiap" }, { "gqa", "Ga'anda" }, { "gqi", "Guiqiong" }, { "gqn", "Guana (Brazil)" }, { "gqr", "Gor" }, { "gqu", "Qau" }, { "gra", "Rajput Garasia" }, { "grb", "Grebo" }, { "grc", "Ancient Greek (to 1453)" }, { "grd", "Guruntum-Mbaaru" }, { "grg", "Madi" }, { "grh", "Gbiri-Niragu" }, { "gri", "Ghari" }, { "grj", "Southern Grebo" }, { "grm", "Kota Marudu Talantang" }, { "grn", "Guarani" }, { "gro", "Groma" }, { "grq", "Gorovu" }, { "grr", "Taznatit" }, { "grs", "Gresi" }, { "grt", "Garo" }, { "gru", "Kistane" }, { "grv", "Central Grebo" }, { "grw", "Gweda" }, { "grx", "Guriaso" }, { "gry", "Barclayville Grebo" }, { "grz", "Guramalum" }, { "gse", "Ghanaian Sign Language" }, { "gsg", "German Sign Language" }, { "gsl", "Gusilay" }, { "gsm", "Guatemalan Sign Language" }, { "gsn", "Gusan" }, { "gso", "Southwest Gbaya" }, { "gsp", "Wasembo" }, { "gss", "Greek Sign Language" }, { "gsw", "Swiss German" }, { "gta", "Guató" }, { "gti", "Gbati-ri" }, { "gtu", "Aghu-Tharnggala" }, { "gua", "Shiki" }, { "gub", "Guajajára" }, { "guc", "Wayuu" }, { "gud", "Yocoboué Dida" }, { "gue", "Gurinji" }, { "guf", "Gupapuyngu" }, { "gug", "Paraguayan Guaraní" }, { "guh", "Guahibo" }, { "gui", "Eastern Bolivian Guaraní" }, { "guj", "Gujarati" }, { "guk", "Gumuz" }, { "gul", "Sea Island Creole English" }, { "gum", "Guambiano" }, { "gun", "Mbyá Guaraní" }, { "guo", "Guayabero" }, { "gup", "Gunwinggu" }, { "guq", "Aché" }, { "gur", "Farefare" }, { "gus", "Guinean Sign Language" }, { "gut", "Maléku Jaíka" }, { "guu", "Yanomamö" }, { "guv", "Gey" }, { "guw", "Gun" }, { "gux", "Gourmanchéma" }, { "guz", "Gusii" }, { "gva", "Guana (Paraguay)" }, { "gvc", "Guanano" }, { "gve", "Duwet" }, { "gvf", "Golin" }, { "gvj", "Guajá" }, { "gvl", "Gulay" }, { "gvm", "Gurmana" }, { "gvn", "Kuku-Yalanji" }, { "gvo", "Gavião Do Jiparaná" }, { "gvp", "Pará Gavião" }, { "gvr", "Western Gurung" }, { "gvs", "Gumawana" }, { "gvy", "Guyani" }, { "gwa", "Mbato" }, { "gwb", "Gwa" }, { "gwc", "Kalami" }, { "gwd", "Gawwada" }, { "gwe", "Gweno" }, { "gwf", "Gowro" }, { "gwg", "Moo" }, { "gwi", "Gwichʼin" }, { "gwj", "Gwi" }, { "gwm", "Awngthim" }, { "gwn", "Gwandara" }, { "gwr", "Gwere" }, { "gwt", "Gawar-Bati" }, { "gwu", "Guwamu" }, { "gww", "Kwini" }, { "gwx", "Gua" }, { "gxx", "Wè Southern" }, { "gya", "Northwest Gbaya" }, { "gyb", "Garus" }, { "gyd", "Kayardild" }, { "gye", "Gyem" }, { "gyf", "Gungabula" }, { "gyg", "Gbayi" }, { "gyi", "Gyele" }, { "gyl", "Gayil" }, { "gym", "Ngäbere" }, { "gyn", "Guyanese Creole English" }, { "gyr", "Guarayu" }, { "gyy", "Gunya" }, { "gza", "Ganza" }, { "gzi", "Gazi" }, { "gzn", "Gane" }, { "haa", "Han" }, { "hab", "Hanoi Sign Language" }, { "hac", "Gurani" }, { "had", "Hatam" }, { "hae", "Eastern Oromo" }, { "haf", "Haiphong Sign Language" }, { "hag", "Hanga" }, { "hah", "Hahon" }, { "hai", "Haida" }, { "haj", "Hajong" }, { "hak", "Hakka Chinese" }, { "hal", "Halang" }, { "ham", "Hewa" }, { "han", "Hangaza" }, { "hao", "Hakö" }, { "hap", "Hupla" }, { "haq", "Ha" }, { "har", "Harari" }, { "has", "Haisla" }, { "hat", "Haitian" }, { "hau", "Hausa" }, { "hav", "Havu" }, { "haw", "Hawaiian" }, { "hax", "Southern Haida" }, { "hay", "Haya" }, { "haz", "Hazaragi" }, { "hba", "Hamba" }, { "hbb", "Huba" }, { "hbn", "Heiban" }, { "hbo", "Ancient Hebrew" }, { "hbs", "Serbo-Croatian" }, { "hbu", "Habu" }, { "hca", "Andaman Creole Hindi" }, { "hch", "Huichol" }, { "hdn", "Northern Haida" }, { "hds", "Honduras Sign Language" }, { "hdy", "Hadiyya" }, { "hea", "Northern Qiandong Miao" }, { "heb", "Hebrew" }, { "hed", "Herdé" }, { "heg", "Helong" }, { "heh", "Hehe" }, { "hei", "Heiltsuk" }, { "hem", "Hemba" }, { "her", "Herero" }, { "hgm", "Haiom" }, { "hgw", "Haigwai" }, { "hhi", "Hoia Hoia" }, { "hhr", "Kerak" }, { "hhy", "Hoyahoya" }, { "hia", "Lamang" }, { "hib", "Hibito" }, { "hid", "Hidatsa" }, { "hif", "Fiji Hindi" }, { "hig", "Kamwe" }, { "hih", "Pamosu" }, { "hii", "Hinduri" }, { "hij", "Hijuk" }, { "hik", "Seit-Kaitetu" }, { "hil", "Hiligaynon" }, { "hin", "Hindi" }, { "hio", "Tsoa" }, { "hir", "Himarimã" }, { "hit", "Hittite" }, { "hiw", "Hiw" }, { "hix", "Hixkaryána" }, { "hji", "Haji" }, { "hka", "Kahe" }, { "hke", "Hunde" }, { "hkk", "Hunjara-Kaina Ke" }, { "hks", "Hong Kong Sign Language" }, { "hla", "Halia" }, { "hlb", "Halbi" }, { "hld", "Halang Doan" }, { "hle", "Hlersu" }, { "hlt", "Matu Chin" }, { "hlu", "Hieroglyphic Luwian" }, { "hma", "Southern Mashan Hmong" }, { "hmb", "Humburi Senni Songhay" }, { "hmc", "Central Huishui Hmong" }, { "hmd", "Large Flowery Miao" }, { "hme", "Eastern Huishui Hmong" }, { "hmf", "Hmong Don" }, { "hmg", "Southwestern Guiyang Hmong" }, { "hmh", "Southwestern Huishui Hmong" }, { "hmi", "Northern Huishui Hmong" }, { "hmj", "Ge" }, { "hmk", "Maek" }, { "hml", "Luopohe Hmong" }, { "hmm", "Central Mashan Hmong" }, { "hmn", "Hmong" }, { "hmo", "Hiri Motu" }, { "hmp", "Northern Mashan Hmong" }, { "hmq", "Eastern Qiandong Miao" }, { "hmr", "Hmar" }, { "hms", "Southern Qiandong Miao" }, { "hmt", "Hamtai" }, { "hmu", "Hamap" }, { "hmv", "Hmong Dô" }, { "hmw", "Western Mashan Hmong" }, { "hmy", "Southern Guiyang Hmong" }, { "hmz", "Hmong Shua" }, { "hna", "Mina (Cameroon)" }, { "hnd", "Southern Hindko" }, { "hne", "Chhattisgarhi" }, { "hnh", "Ani" }, { "hni", "Hani" }, { "hnj", "Hmong Njua" }, { "hnn", "Hanunoo" }, { "hno", "Northern Hindko" }, { "hns", "Caribbean Hindustani" }, { "hnu", "Hung" }, { "hoa", "Hoava" }, { "hob", "Mari (Madang Province)" }, { "hoc", "Ho" }, { "hod", "Holma" }, { "hoe", "Horom" }, { "hoh", "Hobyót" }, { "hoi", "Holikachuk" }, { "hoj", "Hadothi" }, { "hol", "Holu" }, { "hom", "Homa" }, { "hoo", "Holoholo" }, { "hop", "Hopi" }, { "hor", "Horo" }, { "hos", "Ho Chi Minh City Sign Language" }, { "hot", "Hote" }, { "hov", "Hovongan" }, { "how", "Honi" }, { "hoy", "Holiya" }, { "hoz", "Hozo" }, { "hpo", "Hpon" }, { "hps", "Hawai'i Pidgin Sign Language" }, { "hra", "Hrangkhol" }, { "hrc", "Niwer Mil" }, { "hre", "Hre" }, { "hrk", "Haruku" }, { "hrm", "Horned Miao" }, { "hro", "Haroi" }, { "hrp", "Nhirrpi" }, { "hrt", "Hértevin" }, { "hru", "Hruso" }, { "hrv", "Croatian" }, { "hrw", "Warwar Feni" }, { "hrx", "Hunsrik" }, { "hrz", "Harzani" }, { "hsb", "Upper Sorbian" }, { "hsh", "Hungarian Sign Language" }, { "hsl", "Hausa Sign Language" }, { "hsn", "Xiang Chinese" }, { "hss", "Harsusi" }, { "hti", "Hoti" }, { "hto", "Minica Huitoto" }, { "hts", "Hadza" }, { "htu", "Hitu" }, { "htx", "Middle Hittite" }, { "hub", "Huambisa" }, { "huc", "=Hua" }, { "hud", "Huaulu" }, { "hue", "San Francisco Del Mar Huave" }, { "huf", "Humene" }, { "hug", "Huachipaeri" }, { "huh", "Huilliche" }, { "hui", "Huli" }, { "huj", "Northern Guiyang Hmong" }, { "huk", "Hulung" }, { "hul", "Hula" }, { "hum", "Hungana" }, { "hun", "Hungarian" }, { "huo", "Hu" }, { "hup", "Hupa" }, { "huq", "Tsat" }, { "hur", "Halkomelem" }, { "hus", "Huastec" }, { "hut", "Humla" }, { "huu", "Murui Huitoto" }, { "huv", "San Mateo Del Mar Huave" }, { "huw", "Hukumina" }, { "hux", "Nüpode Huitoto" }, { "huy", "Hulaulá" }, { "huz", "Hunzib" }, { "hvc", "Haitian Vodoun Culture Language" }, { "hve", "San Dionisio Del Mar Huave" }, { "hvk", "Haveke" }, { "hvn", "Sabu" }, { "hvv", "Santa María Del Mar Huave" }, { "hwa", "Wané" }, { "hwc", "Hawai'i Creole English" }, { "hwo", "Hwana" }, { "hya", "Hya" }, { "hye", "Armenian" }, { "iai", "Iaai" }, { "ian", "Iatmul" }, { "iap", "Iapama" }, { "iar", "Purari" }, { "iba", "Iban" }, { "ibb", "Ibibio" }, { "ibd", "Iwaidja" }, { "ibe", "Akpes" }, { "ibg", "Ibanag" }, { "ibl", "Ibaloi" }, { "ibm", "Agoi" }, { "ibn", "Ibino" }, { "ibo", "Igbo" }, { "ibr", "Ibuoro" }, { "ibu", "Ibu" }, { "iby", "Ibani" }, { "ica", "Ede Ica" }, { "ich", "Etkywan" }, { "icl", "Icelandic Sign Language" }, { "icr", "Islander Creole English" }, { "ida", "Idakho-Isukha-Tiriki" }, { "idb", "Indo-Portuguese" }, { "idc", "Idon" }, { "idd", "Ede Idaca" }, { "ide", "Idere" }, { "idi", "Idi" }, { "ido", "Ido" }, { "idr", "Indri" }, { "ids", "Idesa" }, { "idt", "Idaté" }, { "idu", "Idoma" }, { "ifa", "Amganad Ifugao" }, { "ifb", "Batad Ifugao" }, { "ife", "Ifè" }, { "iff", "Ifo" }, { "ifk", "Tuwali Ifugao" }, { "ifm", "Teke-Fuumu" }, { "ifu", "Mayoyao Ifugao" }, { "ify", "Keley-I Kallahan" }, { "igb", "Ebira" }, { "ige", "Igede" }, { "igg", "Igana" }, { "igl", "Igala" }, { "igm", "Kanggape" }, { "ign", "Ignaciano" }, { "igo", "Isebe" }, { "igs", "Interglossa" }, { "igw", "Igwe" }, { "ihb", "Iha Based Pidgin" }, { "ihi", "Ihievbe" }, { "ihp", "Iha" }, { "ihw", "Bidhawal" }, { "iii", "Sichuan Yi" }, { "iin", "Thiin" }, { "ijc", "Izon" }, { "ije", "Biseni" }, { "ijj", "Ede Ije" }, { "ijn", "Kalabari" }, { "ijs", "Southeast Ijo" }, { "ike", "Eastern Canadian Inuktitut" }, { "iki", "Iko" }, { "ikk", "Ika" }, { "ikl", "Ikulu" }, { "iko", "Olulumo-Ikom" }, { "ikp", "Ikpeshi" }, { "ikr", "Ikaranggal" }, { "ikt", "Inuinnaqtun" }, { "iku", "Inuktitut" }, { "ikv", "Iku-Gora-Ankwa" }, { "ikw", "Ikwere" }, { "ikx", "Ik" }, { "ikz", "Ikizu" }, { "ila", "Ile Ape" }, { "ilb", "Ila" }, { "ile", "Interlingue" }, { "ilg", "Garig-Ilgar" }, { "ili", "Ili Turki" }, { "ilk", "Ilongot" }, { "ill", "Iranun" }, { "ilo", "Iloko" }, { "ils", "International Sign" }, { "ilu", "Ili'uun" }, { "ilv", "Ilue" }, { "ima", "Mala Malasar" }, { "ime", "Imeraguen" }, { "imi", "Anamgura" }, { "iml", "Miluk" }, { "imn", "Imonda" }, { "imo", "Imbongu" }, { "imr", "Imroing" }, { "ims", "Marsian" }, { "imy", "Milyan" }, { "ina", "Interlingua (International Auxiliary Language Association)" }, { "inb", "Inga" }, { "ind", "Indonesian" }, { "ing", "Degexit'an" }, { "inh", "Ingush" }, { "inj", "Jungle Inga" }, { "inl", "Indonesian Sign Language" }, { "inm", "Minaean" }, { "inn", "Isinai" }, { "ino", "Inoke-Yate" }, { "inp", "Iñapari" }, { "ins", "Indian Sign Language" }, { "int", "Intha" }, { "inz", "Ineseño" }, { "ior", "Inor" }, { "iou", "Tuma-Irumu" }, { "iow", "Iowa-Oto" }, { "ipi", "Ipili" }, { "ipk", "Inupiaq" }, { "ipo", "Ipiko" }, { "iqu", "Iquito" }, { "iqw", "Ikwo" }, { "ire", "Iresim" }, { "irh", "Irarutu" }, { "iri", "Irigwe" }, { "irk", "Iraqw" }, { "irn", "Irántxe" }, { "irr", "Ir" }, { "iru", "Irula" }, { "irx", "Kamberau" }, { "iry", "Iraya" }, { "isa", "Isabi" }, { "isc", "Isconahua" }, { "isd", "Isnag" }, { "ise", "Italian Sign Language" }, { "isg", "Irish Sign Language" }, { "ish", "Esan" }, { "isi", "Nkem-Nkum" }, { "isk", "Ishkashimi" }, { "isl", "Icelandic" }, { "ism", "Masimasi" }, { "isn", "Isanzu" }, { "iso", "Isoko" }, { "isr", "Israeli Sign Language" }, { "ist", "Istriot" }, { "isu", "Isu (Menchum Division)" }, { "ita", "Italian" }, { "itb", "Binongan Itneg" }, { "ite", "Itene" }, { "iti", "Inlaod Itneg" }, { "itk", "Judeo-Italian" }, { "itl", "Itelmen" }, { "itm", "Itu Mbon Uzo" }, { "ito", "Itonama" }, { "itr", "Iteri" }, { "its", "Isekiri" }, { "itt", "Maeng Itneg" }, { "itv", "Itawit" }, { "itw", "Ito" }, { "itx", "Itik" }, { "ity", "Moyadan Itneg" }, { "itz", "Itzá" }, { "ium", "Iu Mien" }, { "ivb", "Ibatan" }, { "ivv", "Ivatan" }, { "iwk", "I-Wak" }, { "iwm", "Iwam" }, { "iwo", "Iwur" }, { "iws", "Sepik Iwam" }, { "ixc", "Ixcatec" }, { "ixl", "Ixil" }, { "iya", "Iyayu" }, { "iyo", "Mesaka" }, { "iyx", "Yaka (Congo)" }, { "izh", "Ingrian" }, { "izr", "Izere" }, { "izz", "Izii" }, { "jaa", "Jamamadí" }, { "jab", "Hyam" }, { "jac", "Popti'" }, { "jad", "Jahanka" }, { "jae", "Yabem" }, { "jaf", "Jara" }, { "jah", "Jah Hut" }, { "jaj", "Zazao" }, { "jak", "Jakun" }, { "jal", "Yalahatan" }, { "jam", "Jamaican Creole English" }, { "jan", "Jandai" }, { "jao", "Yanyuwa" }, { "jaq", "Yaqay" }, { "jas", "New Caledonian Javanese" }, { "jat", "Jakati" }, { "jau", "Yaur" }, { "jav", "Javanese" }, { "jax", "Jambi Malay" }, { "jay", "Yan-nhangu" }, { "jaz", "Jawe" }, { "jbe", "Judeo-Berber" }, { "jbi", "Badjiri" }, { "jbj", "Arandai" }, { "jbk", "Barikewa" }, { "jbn", "Nafusi" }, { "jbo", "Lojban" }, { "jbr", "Jofotek-Bromnya" }, { "jbt", "Jabutí" }, { "jbu", "Jukun Takum" }, { "jbw", "Yawijibaya" }, { "jcs", "Jamaican Country Sign Language" }, { "jct", "Krymchak" }, { "jda", "Jad" }, { "jdg", "Jadgali" }, { "jdt", "Judeo-Tat" }, { "jeb", "Jebero" }, { "jee", "Jerung" }, { "jeg", "Jeng" }, { "jeh", "Jeh" }, { "jei", "Yei" }, { "jek", "Jeri Kuo" }, { "jel", "Yelmek" }, { "jen", "Dza" }, { "jer", "Jere" }, { "jet", "Manem" }, { "jeu", "Jonkor Bourmataguil" }, { "jgb", "Ngbee" }, { "jge", "Judeo-Georgian" }, { "jgk", "Gwak" }, { "jgo", "Ngomba" }, { "jhi", "Jehai" }, { "jhs", "Jhankot Sign Language" }, { "jia", "Jina" }, { "jib", "Jibu" }, { "jic", "Tol" }, { "jid", "Bu" }, { "jie", "Jilbe" }, { "jig", "Djingili" }, { "jih", "sTodsde" }, { "jii", "Jiiddu" }, { "jil", "Jilim" }, { "jim", "Jimi (Cameroon)" }, { "jio", "Jiamao" }, { "jiq", "Guanyinqiao" }, { "jit", "Jita" }, { "jiu", "Youle Jinuo" }, { "jiv", "Shuar" }, { "jiy", "Buyuan Jinuo" }, { "jjr", "Bankal" }, { "jkm", "Mobwa Karen" }, { "jko", "Kubo" }, { "jkp", "Paku Karen" }, { "jkr", "Koro (India)" }, { "jku", "Labir" }, { "jle", "Ngile" }, { "jls", "Jamaican Sign Language" }, { "jma", "Dima" }, { "jmb", "Zumbun" }, { "jmc", "Machame" }, { "jmd", "Yamdena" }, { "jmi", "Jimi (Nigeria)" }, { "jml", "Jumli" }, { "jmn", "Makuri Naga" }, { "jmr", "Kamara" }, { "jms", "Mashi (Nigeria)" }, { "jmw", "Mouwase" }, { "jmx", "Western Juxtlahuaca Mixtec" }, { "jna", "Jangshung" }, { "jnd", "Jandavra" }, { "jng", "Yangman" }, { "jni", "Janji" }, { "jnj", "Yemsa" }, { "jnl", "Rawat" }, { "jns", "Jaunsari" }, { "job", "Joba" }, { "jod", "Wojenaka" }, { "jor", "Jorá" }, { "jos", "Jordanian Sign Language" }, { "jow", "Jowulu" }, { "jpa", "Jewish Palestinian Aramaic" }, { "jpn", "Japanese" }, { "jpr", "Judeo-Persian" }, { "jqr", "Jaqaru" }, { "jra", "Jarai" }, { "jrb", "Judeo-Arabic" }, { "jrr", "Jiru" }, { "jrt", "Jorto" }, { "jru", "Japrería" }, { "jsl", "Japanese Sign Language" }, { "jua", "Júma" }, { "jub", "Wannu" }, { "juc", "Jurchen" }, { "jud", "Worodougou" }, { "juh", "Hõne" }, { "jui", "Ngadjuri" }, { "juk", "Wapan" }, { "jul", "Jirel" }, { "jum", "Jumjum" }, { "jun", "Juang" }, { "juo", "Jiba" }, { "jup", "Hupdë" }, { "jur", "Jurúna" }, { "jus", "Jumla Sign Language" }, { "jut", "Jutish" }, { "juu", "Ju" }, { "juw", "Wãpha" }, { "juy", "Juray" }, { "jvd", "Javindo" }, { "jvn", "Caribbean Javanese" }, { "jwi", "Jwira-Pepesa" }, { "jya", "Jiarong" }, { "jye", "Judeo-Yemeni Arabic" }, { "jyy", "Jaya" }, { "kaa", "Kara-Kalpak" }, { "kab", "Kabyle" }, { "kac", "Kachin" }, { "kad", "Adara" }, { "kae", "Ketangalan" }, { "kaf", "Katso" }, { "kag", "Kajaman" }, { "kah", "Kara (Central African Republic)" }, { "kai", "Karekare" }, { "kaj", "Jju" }, { "kak", "Kayapa Kallahan" }, { "kal", "Kalaallisut" }, { "kam", "Kamba (Kenya)" }, { "kan", "Kannada" }, { "kao", "Xaasongaxango" }, { "kap", "Bezhta" }, { "kaq", "Capanahua" }, { "kas", "Kashmiri" }, { "kat", "Georgian" }, { "kau", "Kanuri" }, { "kav", "Katukína" }, { "kaw", "Kawi" }, { "kax", "Kao" }, { "kay", "Kamayurá" }, { "kaz", "Kazakh" }, { "kba", "Kalarko" }, { "kbb", "Kaxuiâna" }, { "kbc", "Kadiwéu" }, { "kbd", "Kabardian" }, { "kbe", "Kanju" }, { "kbf", "Kakauhua" }, { "kbg", "Khamba" }, { "kbh", "Camsá" }, { "kbi", "Kaptiau" }, { "kbj", "Kari" }, { "kbk", "Grass Koiari" }, { "kbl", "Kanembu" }, { "kbm", "Iwal" }, { "kbn", "Kare (Central African Republic)" }, { "kbo", "Keliko" }, { "kbp", "Kabiyè" }, { "kbq", "Kamano" }, { "kbr", "Kafa" }, { "kbs", "Kande" }, { "kbt", "Abadi" }, { "kbu", "Kabutra" }, { "kbv", "Dera (Indonesia)" }, { "kbw", "Kaiep" }, { "kbx", "Ap Ma" }, { "kby", "Manga Kanuri" }, { "kbz", "Duhwa" }, { "kca", "Khanty" }, { "kcb", "Kawacha" }, { "kcc", "Lubila" }, { "kcd", "Ngkâlmpw Kanum" }, { "kce", "Kaivi" }, { "kcf", "Ukaan" }, { "kcg", "Tyap" }, { "kch", "Vono" }, { "kci", "Kamantan" }, { "kcj", "Kobiana" }, { "kck", "Kalanga" }, { "kcl", "Kela (Papua New Guinea)" }, { "kcm", "Gula (Central African Republic)" }, { "kcn", "Nubi" }, { "kco", "Kinalakna" }, { "kcp", "Kanga" }, { "kcq", "Kamo" }, { "kcr", "Katla" }, { "kcs", "Koenoem" }, { "kct", "Kaian" }, { "kcu", "Kami (Tanzania)" }, { "kcv", "Kete" }, { "kcw", "Kabwari" }, { "kcx", "Kachama-Ganjule" }, { "kcy", "Korandje" }, { "kcz", "Konongo" }, { "kda", "Worimi" }, { "kdc", "Kutu" }, { "kdd", "Yankunytjatjara" }, { "kde", "Makonde" }, { "kdf", "Mamusi" }, { "kdg", "Seba" }, { "kdh", "Tem" }, { "kdi", "Kumam" }, { "kdj", "Karamojong" }, { "kdk", "Numèè" }, { "kdl", "Tsikimba" }, { "kdm", "Kagoma" }, { "kdn", "Kunda" }, { "kdp", "Kaningdon-Nindem" }, { "kdq", "Koch" }, { "kdr", "Karaim" }, { "kdt", "Kuy" }, { "kdu", "Kadaru" }, { "kdw", "Koneraw" }, { "kdx", "Kam" }, { "kdy", "Keder" }, { "kdz", "Kwaja" }, { "kea", "Kabuverdianu" }, { "keb", "Kélé" }, { "kec", "Keiga" }, { "ked", "Kerewe" }, { "kee", "Eastern Keres" }, { "kef", "Kpessi" }, { "keg", "Tese" }, { "keh", "Keak" }, { "kei", "Kei" }, { "kej", "Kadar" }, { "kek", "Kekchí" }, { "kel", "Kela (Democratic Republic of Congo)" }, { "kem", "Kemak" }, { "ken", "Kenyang" }, { "keo", "Kakwa" }, { "kep", "Kaikadi" }, { "keq", "Kamar" }, { "ker", "Kera" }, { "kes", "Kugbo" }, { "ket", "Ket" }, { "keu", "Akebu" }, { "kev", "Kanikkaran" }, { "kew", "West Kewa" }, { "kex", "Kukna" }, { "key", "Kupia" }, { "kez", "Kukele" }, { "kfa", "Kodava" }, { "kfb", "Northwestern Kolami" }, { "kfc", "Konda-Dora" }, { "kfd", "Korra Koraga" }, { "kfe", "Kota (India)" }, { "kff", "Koya" }, { "kfg", "Kudiya" }, { "kfh", "Kurichiya" }, { "kfi", "Kannada Kurumba" }, { "kfj", "Kemiehua" }, { "kfk", "Kinnauri" }, { "kfl", "Kung" }, { "kfm", "Khunsari" }, { "kfn", "Kuk" }, { "kfo", "Koro (Côte d'Ivoire)" }, { "kfp", "Korwa" }, { "kfq", "Korku" }, { "kfr", "Kachchi" }, { "kfs", "Bilaspuri" }, { "kft", "Kanjari" }, { "kfu", "Katkari" }, { "kfv", "Kurmukar" }, { "kfw", "Kharam Naga" }, { "kfx", "Kullu Pahari" }, { "kfy", "Kumaoni" }, { "kfz", "Koromfé" }, { "kga", "Koyaga" }, { "kgb", "Kawe" }, { "kgc", "Kasseng" }, { "kgd", "Kataang" }, { "kge", "Komering" }, { "kgf", "Kube" }, { "kgg", "Kusunda" }, { "kgi", "Selangor Sign Language" }, { "kgj", "Gamale Kham" }, { "kgk", "Kaiwá" }, { "kgl", "Kunggari" }, { "kgm", "Karipúna" }, { "kgn", "Karingani" }, { "kgo", "Krongo" }, { "kgp", "Kaingang" }, { "kgq", "Kamoro" }, { "kgr", "Abun" }, { "kgs", "Kumbainggar" }, { "kgt", "Somyev" }, { "kgu", "Kobol" }, { "kgv", "Karas" }, { "kgw", "Karon Dori" }, { "kgx", "Kamaru" }, { "kgy", "Kyerung" }, { "kha", "Khasi" }, { "khb", "Lü" }, { "khc", "Tukang Besi North" }, { "khd", "Bädi Kanum" }, { "khe", "Korowai" }, { "khf", "Khuen" }, { "khg", "Khams Tibetan" }, { "khh", "Kehu" }, { "khj", "Kuturmi" }, { "khk", "Halh Mongolian" }, { "khl", "Lusi" }, { "khm", "Central Khmer" }, { "khn", "Khandesi" }, { "kho", "Khotanese" }, { "khp", "Kapori" }, { "khq", "Koyra Chiini Songhay" }, { "khr", "Kharia" }, { "khs", "Kasua" }, { "kht", "Khamti" }, { "khu", "Nkhumbi" }, { "khv", "Khvarshi" }, { "khw", "Khowar" }, { "khx", "Kanu" }, { "khy", "Kele (Democratic Republic of Congo)" }, { "khz", "Keapara" }, { "kia", "Kim" }, { "kib", "Koalib" }, { "kic", "Kickapoo" }, { "kid", "Koshin" }, { "kie", "Kibet" }, { "kif", "Eastern Parbate Kham" }, { "kig", "Kimaama" }, { "kih", "Kilmeri" }, { "kii", "Kitsai" }, { "kij", "Kilivila" }, { "kik", "Kikuyu" }, { "kil", "Kariya" }, { "kim", "Karagas" }, { "kin", "Kinyarwanda" }, { "kio", "Kiowa" }, { "kip", "Sheshi Kham" }, { "kiq", "Kosadle" }, { "kir", "Kirghiz" }, { "kis", "Kis" }, { "kit", "Agob" }, { "kiu", "Kirmanjki (individual language)" }, { "kiv", "Kimbu" }, { "kiw", "Northeast Kiwai" }, { "kix", "Khiamniungan Naga" }, { "kiy", "Kirikiri" }, { "kiz", "Kisi" }, { "kja", "Mlap" }, { "kjb", "Q'anjob'al" }, { "kjc", "Coastal Konjo" }, { "kjd", "Southern Kiwai" }, { "kje", "Kisar" }, { "kjf", "Khalaj" }, { "kjg", "Khmu" }, { "kjh", "Khakas" }, { "kji", "Zabana" }, { "kjj", "Khinalugh" }, { "kjk", "Highland Konjo" }, { "kjl", "Western Parbate Kham" }, { "kjm", "Kháng" }, { "kjn", "Kunjen" }, { "kjo", "Harijan Kinnauri" }, { "kjp", "Pwo Eastern Karen" }, { "kjq", "Western Keres" }, { "kjr", "Kurudu" }, { "kjs", "East Kewa" }, { "kjt", "Phrae Pwo Karen" }, { "kju", "Kashaya" }, { "kjx", "Ramopa" }, { "kjy", "Erave" }, { "kjz", "Bumthangkha" }, { "kka", "Kakanda" }, { "kkb", "Kwerisa" }, { "kkc", "Odoodee" }, { "kkd", "Kinuku" }, { "kke", "Kakabe" }, { "kkf", "Kalaktang Monpa" }, { "kkg", "Mabaka Valley Kalinga" }, { "kkh", "Khün" }, { "kki", "Kagulu" }, { "kkj", "Kako" }, { "kkk", "Kokota" }, { "kkl", "Kosarek Yale" }, { "kkm", "Kiong" }, { "kkn", "Kon Keu" }, { "kko", "Karko" }, { "kkp", "Gugubera" }, { "kkq", "Kaiku" }, { "kkr", "Kir-Balar" }, { "kks", "Giiwo" }, { "kkt", "Koi" }, { "kku", "Tumi" }, { "kkv", "Kangean" }, { "kkw", "Teke-Kukuya" }, { "kkx", "Kohin" }, { "kky", "Guguyimidjir" }, { "kkz", "Kaska" }, { "kla", "Klamath-Modoc" }, { "klb", "Kiliwa" }, { "klc", "Kolbila" }, { "kld", "Gamilaraay" }, { "kle", "Kulung (Nepal)" }, { "klf", "Kendeje" }, { "klg", "Tagakaulo" }, { "klh", "Weliki" }, { "kli", "Kalumpang" }, { "klj", "Turkic Khalaj" }, { "klk", "Kono (Nigeria)" }, { "kll", "Kagan Kalagan" }, { "klm", "Migum" }, { "kln", "Kalenjin" }, { "klo", "Kapya" }, { "klp", "Kamasa" }, { "klq", "Rumu" }, { "klr", "Khaling" }, { "kls", "Kalasha" }, { "klt", "Nukna" }, { "klu", "Klao" }, { "klv", "Maskelynes" }, { "klw", "Lindu" }, { "klx", "Koluwawa" }, { "kly", "Kalao" }, { "klz", "Kabola" }, { "kma", "Konni" }, { "kmb", "Kimbundu" }, { "kmc", "Southern Dong" }, { "kmd", "Majukayang Kalinga" }, { "kme", "Bakole" }, { "kmf", "Kare (Papua New Guinea)" }, { "kmg", "Kâte" }, { "kmh", "Kalam" }, { "kmi", "Kami (Nigeria)" }, { "kmj", "Kumarbhag Paharia" }, { "kmk", "Limos Kalinga" }, { "kml", "Tanudan Kalinga" }, { "kmm", "Kom (India)" }, { "kmn", "Awtuw" }, { "kmo", "Kwoma" }, { "kmp", "Gimme" }, { "kmq", "Kwama" }, { "kmr", "Northern Kurdish" }, { "kms", "Kamasau" }, { "kmt", "Kemtuik" }, { "kmu", "Kanite" }, { "kmv", "Karipúna Creole French" }, { "kmw", "Komo (Democratic Republic of Congo)" }, { "kmx", "Waboda" }, { "kmy", "Koma" }, { "kmz", "Khorasani Turkish" }, { "kna", "Dera (Nigeria)" }, { "knb", "Lubuagan Kalinga" }, { "knc", "Central Kanuri" }, { "knd", "Konda" }, { "kne", "Kankanaey" }, { "knf", "Mankanya" }, { "kng", "Koongo" }, { "kni", "Kanufi" }, { "knj", "Western Kanjobal" }, { "knk", "Kuranko" }, { "knl", "Keninjal" }, { "knm", "Kanamarí" }, { "knn", "Konkani (individual language)" }, { "kno", "Kono (Sierra Leone)" }, { "knp", "Kwanja" }, { "knq", "Kintaq" }, { "knr", "Kaningra" }, { "kns", "Kensiu" }, { "knt", "Panoan Katukína" }, { "knu", "Kono (Guinea)" }, { "knv", "Tabo" }, { "knw", "Kung-Ekoka" }, { "knx", "Kendayan" }, { "kny", "Kanyok" }, { "knz", "Kalamsé" }, { "koa", "Konomala" }, { "koc", "Kpati" }, { "kod", "Kodi" }, { "koe", "Kacipo-Balesi" }, { "kof", "Kubi" }, { "kog", "Cogui" }, { "koh", "Koyo" }, { "koi", "Komi-Permyak" }, { "koj", "Sara Dunjo" }, { "kok", "Konkani (macrolanguage)" }, { "kol", "Kol (Papua New Guinea)" }, { "kom", "Komi" }, { "kon", "Kongo" }, { "koo", "Konzo" }, { "kop", "Waube" }, { "koq", "Kota (Gabon)" }, { "kor", "Korean" }, { "kos", "Kosraean" }, { "kot", "Lagwan" }, { "kou", "Koke" }, { "kov", "Kudu-Camo" }, { "kow", "Kugama" }, { "kox", "Coxima" }, { "koy", "Koyukon" }, { "koz", "Korak" }, { "kpa", "Kutto" }, { "kpb", "Mullu Kurumba" }, { "kpc", "Curripaco" }, { "kpd", "Koba" }, { "kpe", "Kpelle" }, { "kpf", "Komba" }, { "kpg", "Kapingamarangi" }, { "kph", "Kplang" }, { "kpi", "Kofei" }, { "kpj", "Karajá" }, { "kpk", "Kpan" }, { "kpl", "Kpala" }, { "kpm", "Koho" }, { "kpn", "Kepkiriwát" }, { "kpo", "Ikposo" }, { "kpq", "Korupun-Sela" }, { "kpr", "Korafe-Yegha" }, { "kps", "Tehit" }, { "kpt", "Karata" }, { "kpu", "Kafoa" }, { "kpv", "Komi-Zyrian" }, { "kpw", "Kobon" }, { "kpx", "Mountain Koiali" }, { "kpy", "Koryak" }, { "kpz", "Kupsabiny" }, { "kqa", "Mum" }, { "kqb", "Kovai" }, { "kqc", "Doromu-Koki" }, { "kqd", "Koy Sanjaq Surat" }, { "kqe", "Kalagan" }, { "kqf", "Kakabai" }, { "kqg", "Khe" }, { "kqh", "Kisankasa" }, { "kqi", "Koitabu" }, { "kqj", "Koromira" }, { "kqk", "Kotafon Gbe" }, { "kql", "Kyenele" }, { "kqm", "Khisa" }, { "kqn", "Kaonde" }, { "kqo", "Eastern Krahn" }, { "kqp", "Kimré" }, { "kqq", "Krenak" }, { "kqr", "Kimaragang" }, { "kqs", "Northern Kissi" }, { "kqt", "Klias River Kadazan" }, { "kqu", "Seroa" }, { "kqv", "Okolod" }, { "kqw", "Kandas" }, { "kqx", "Mser" }, { "kqy", "Koorete" }, { "kqz", "Korana" }, { "kra", "Kumhali" }, { "krb", "Karkin" }, { "krc", "Karachay-Balkar" }, { "krd", "Kairui-Midiki" }, { "kre", "Panará" }, { "krf", "Koro (Vanuatu)" }, { "krh", "Kurama" }, { "kri", "Krio" }, { "krj", "Kinaray-A" }, { "krk", "Kerek" }, { "krl", "Karelian" }, { "krm", "Krim" }, { "krn", "Sapo" }, { "krp", "Korop" }, { "krr", "Kru'ng 2" }, { "krs", "Gbaya (Sudan)" }, { "krt", "Tumari Kanuri" }, { "kru", "Kurukh" }, { "krv", "Kavet" }, { "krw", "Western Krahn" }, { "krx", "Karon" }, { "kry", "Kryts" }, { "krz", "Sota Kanum" }, { "ksa", "Shuwa-Zamani" }, { "ksb", "Shambala" }, { "ksc", "Southern Kalinga" }, { "ksd", "Kuanua" }, { "kse", "Kuni" }, { "ksf", "Bafia" }, { "ksg", "Kusaghe" }, { "ksh", "Kölsch" }, { "ksi", "Krisa" }, { "ksj", "Uare" }, { "ksk", "Kansa" }, { "ksl", "Kumalu" }, { "ksm", "Kumba" }, { "ksn", "Kasiguranin" }, { "kso", "Kofa" }, { "ksp", "Kaba" }, { "ksq", "Kwaami" }, { "ksr", "Borong" }, { "kss", "Southern Kisi" }, { "kst", "Winyé" }, { "ksu", "Khamyang" }, { "ksv", "Kusu" }, { "ksw", "S'gaw Karen" }, { "ksx", "Kedang" }, { "ksy", "Kharia Thar" }, { "ksz", "Kodaku" }, { "kta", "Katua" }, { "ktb", "Kambaata" }, { "ktc", "Kholok" }, { "ktd", "Kokata" }, { "kte", "Nubri" }, { "ktf", "Kwami" }, { "ktg", "Kalkutung" }, { "kth", "Karanga" }, { "kti", "North Muyu" }, { "ktj", "Plapo Krumen" }, { "ktk", "Kaniet" }, { "ktl", "Koroshi" }, { "ktm", "Kurti" }, { "ktn", "Karitiâna" }, { "kto", "Kuot" }, { "ktp", "Kaduo" }, { "ktq", "Katabaga" }, { "ktr", "Kota Marudu Tinagas" }, { "kts", "South Muyu" }, { "ktt", "Ketum" }, { "ktu", "Kituba (Democratic Republic of Congo)" }, { "ktv", "Eastern Katu" }, { "ktw", "Kato" }, { "ktx", "Kaxararí" }, { "kty", "Kango (Bas-Uélé District)" }, { "ktz", "Ju'hoan" }, { "kua", "Kuanyama" }, { "kub", "Kutep" }, { "kuc", "Kwinsu" }, { "kud", "'Auhelawa" }, { "kue", "Kuman" }, { "kuf", "Western Katu" }, { "kug", "Kupa" }, { "kuh", "Kushi" }, { "kui", "Kuikúro-Kalapálo" }, { "kuj", "Kuria" }, { "kuk", "Kepo'" }, { "kul", "Kulere" }, { "kum", "Kumyk" }, { "kun", "Kunama" }, { "kuo", "Kumukio" }, { "kup", "Kunimaipa" }, { "kuq", "Karipuna" }, { "kur", "Kurdish" }, { "kus", "Kusaal" }, { "kut", "Kutenai" }, { "kuu", "Upper Kuskokwim" }, { "kuv", "Kur" }, { "kuw", "Kpagua" }, { "kux", "Kukatja" }, { "kuy", "Kuuku-Ya'u" }, { "kuz", "Kunza" }, { "kva", "Bagvalal" }, { "kvb", "Kubu" }, { "kvc", "Kove" }, { "kvd", "Kui (Indonesia)" }, { "kve", "Kalabakan" }, { "kvf", "Kabalai" }, { "kvg", "Kuni-Boazi" }, { "kvh", "Komodo" }, { "kvi", "Kwang" }, { "kvj", "Psikye" }, { "kvk", "Korean Sign Language" }, { "kvl", "Kayaw" }, { "kvm", "Kendem" }, { "kvn", "Border Kuna" }, { "kvo", "Dobel" }, { "kvp", "Kompane" }, { "kvq", "Geba Karen" }, { "kvr", "Kerinci" }, { "kvs", "Kunggara" }, { "kvt", "Lahta Karen" }, { "kvu", "Yinbaw Karen" }, { "kvv", "Kola" }, { "kvw", "Wersing" }, { "kvx", "Parkari Koli" }, { "kvy", "Yintale Karen" }, { "kvz", "Tsakwambo" }, { "kwa", "Dâw" }, { "kwb", "Kwa" }, { "kwc", "Likwala" }, { "kwd", "Kwaio" }, { "kwe", "Kwerba" }, { "kwf", "Kwara'ae" }, { "kwg", "Sara Kaba Deme" }, { "kwh", "Kowiai" }, { "kwi", "Awa-Cuaiquer" }, { "kwj", "Kwanga" }, { "kwk", "Kwakiutl" }, { "kwl", "Kofyar" }, { "kwm", "Kwambi" }, { "kwn", "Kwangali" }, { "kwo", "Kwomtari" }, { "kwp", "Kodia" }, { "kwq", "Kwak" }, { "kwr", "Kwer" }, { "kws", "Kwese" }, { "kwt", "Kwesten" }, { "kwu", "Kwakum" }, { "kwv", "Sara Kaba Náà" }, { "kww", "Kwinti" }, { "kwx", "Khirwar" }, { "kwy", "San Salvador Kongo" }, { "kwz", "Kwadi" }, { "kxa", "Kairiru" }, { "kxb", "Krobu" }, { "kxc", "Konso" }, { "kxd", "Brunei" }, { "kxe", "Kakihum" }, { "kxf", "Manumanaw Karen" }, { "kxh", "Karo (Ethiopia)" }, { "kxi", "Keningau Murut" }, { "kxj", "Kulfa" }, { "kxk", "Zayein Karen" }, { "kxl", "Nepali Kurux" }, { "kxm", "Northern Khmer" }, { "kxn", "Kanowit-Tanjong Melanau" }, { "kxo", "Kanoé" }, { "kxp", "Wadiyara Koli" }, { "kxq", "Smärky Kanum" }, { "kxr", "Koro (Papua New Guinea)" }, { "kxs", "Kangjia" }, { "kxt", "Koiwat" }, { "kxu", "Kui (India)" }, { "kxv", "Kuvi" }, { "kxw", "Konai" }, { "kxx", "Likuba" }, { "kxy", "Kayong" }, { "kxz", "Kerewo" }, { "kya", "Kwaya" }, { "kyb", "Butbut Kalinga" }, { "kyc", "Kyaka" }, { "kyd", "Karey" }, { "kye", "Krache" }, { "kyf", "Kouya" }, { "kyg", "Keyagana" }, { "kyh", "Karok" }, { "kyi", "Kiput" }, { "kyj", "Karao" }, { "kyk", "Kamayo" }, { "kyl", "Kalapuya" }, { "kym", "Kpatili" }, { "kyn", "Northern Binukidnon" }, { "kyo", "Kelon" }, { "kyp", "Kang" }, { "kyq", "Kenga" }, { "kyr", "Kuruáya" }, { "kys", "Baram Kayan" }, { "kyt", "Kayagar" }, { "kyu", "Western Kayah" }, { "kyv", "Kayort" }, { "kyw", "Kudmali" }, { "kyx", "Rapoisi" }, { "kyy", "Kambaira" }, { "kyz", "Kayabí" }, { "kza", "Western Karaboro" }, { "kzb", "Kaibobo" }, { "kzc", "Bondoukou Kulango" }, { "kzd", "Kadai" }, { "kze", "Kosena" }, { "kzf", "Da'a Kaili" }, { "kzg", "Kikai" }, { "kzi", "Kelabit" }, { "kzj", "Coastal Kadazan" }, { "kzk", "Kazukuru" }, { "kzl", "Kayeli" }, { "kzm", "Kais" }, { "kzn", "Kokola" }, { "kzo", "Kaningi" }, { "kzp", "Kaidipang" }, { "kzq", "Kaike" }, { "kzr", "Karang" }, { "kzs", "Sugut Dusun" }, { "kzt", "Tambunan Dusun" }, { "kzu", "Kayupulau" }, { "kzv", "Komyandaret" }, { "kzw", "Karirí-Xocó" }, { "kzx", "Kamarian" }, { "kzy", "Kango (Tshopo District)" }, { "kzz", "Kalabra" }, { "laa", "Southern Subanen" }, { "lab", "Linear A" }, { "lac", "Lacandon" }, { "lad", "Ladino" }, { "lae", "Pattani" }, { "laf", "Lafofa" }, { "lag", "Langi" }, { "lah", "Lahnda" }, { "lai", "Lambya" }, { "laj", "Lango (Uganda)" }, { "lak", "Laka (Nigeria)" }, { "lal", "Lalia" }, { "lam", "Lamba" }, { "lan", "Laru" }, { "lao", "Lao" }, { "lap", "Laka (Chad)" }, { "laq", "Qabiao" }, { "lar", "Larteh" }, { "las", "Lama (Togo)" }, { "lat", "Latin" }, { "lau", "Laba" }, { "lav", "Latvian" }, { "law", "Lauje" }, { "lax", "Tiwa" }, { "lay", "Lama (Myanmar)" }, { "laz", "Aribwatsa" }, { "lba", "Lui" }, { "lbb", "Label" }, { "lbc", "Lakkia" }, { "lbe", "Lak" }, { "lbf", "Tinani" }, { "lbg", "Laopang" }, { "lbi", "La'bi" }, { "lbj", "Ladakhi" }, { "lbk", "Central Bontok" }, { "lbl", "Libon Bikol" }, { "lbm", "Lodhi" }, { "lbn", "Lamet" }, { "lbo", "Laven" }, { "lbq", "Wampar" }, { "lbr", "Lohorung" }, { "lbs", "Libyan Sign Language" }, { "lbt", "Lachi" }, { "lbu", "Labu" }, { "lbv", "Lavatbura-Lamusong" }, { "lbw", "Tolaki" }, { "lbx", "Lawangan" }, { "lby", "Lamu-Lamu" }, { "lbz", "Lardil" }, { "lcc", "Legenyem" }, { "lcd", "Lola" }, { "lce", "Loncong" }, { "lcf", "Lubu" }, { "lch", "Luchazi" }, { "lcl", "Lisela" }, { "lcm", "Tungag" }, { "lcp", "Western Lawa" }, { "lcq", "Luhu" }, { "lcs", "Lisabata-Nuniali" }, { "lda", "Kla-Dan" }, { "ldb", "Dũya" }, { "ldd", "Luri" }, { "ldg", "Lenyima" }, { "ldh", "Lamja-Dengsa-Tola" }, { "ldi", "Laari" }, { "ldj", "Lemoro" }, { "ldk", "Leelau" }, { "ldl", "Kaan" }, { "ldm", "Landoma" }, { "ldn", "Láadan" }, { "ldo", "Loo" }, { "ldp", "Tso" }, { "ldq", "Lufu" }, { "lea", "Lega-Shabunda" }, { "leb", "Lala-Bisa" }, { "lec", "Leco" }, { "led", "Lendu" }, { "lee", "Lyélé" }, { "lef", "Lelemi" }, { "leg", "Lengua" }, { "leh", "Lenje" }, { "lei", "Lemio" }, { "lej", "Lengola" }, { "lek", "Leipon" }, { "lel", "Lele (Democratic Republic of Congo)" }, { "lem", "Nomaande" }, { "len", "Lenca" }, { "leo", "Leti (Cameroon)" }, { "lep", "Lepcha" }, { "leq", "Lembena" }, { "ler", "Lenkau" }, { "les", "Lese" }, { "let", "Lesing-Gelimi" }, { "leu", "Kara (Papua New Guinea)" }, { "lev", "Lamma" }, { "lew", "Ledo Kaili" }, { "lex", "Luang" }, { "ley", "Lemolang" }, { "lez", "Lezghian" }, { "lfa", "Lefa" }, { "lfn", "Lingua Franca Nova" }, { "lga", "Lungga" }, { "lgb", "Laghu" }, { "lgg", "Lugbara" }, { "lgh", "Laghuu" }, { "lgi", "Lengilu" }, { "lgk", "Lingarak" }, { "lgl", "Wala" }, { "lgm", "Lega-Mwenga" }, { "lgn", "Opuuo" }, { "lgq", "Logba" }, { "lgr", "Lengo" }, { "lgt", "Pahi" }, { "lgu", "Longgu" }, { "lgz", "Ligenza" }, { "lha", "Laha (Viet Nam)" }, { "lhh", "Laha (Indonesia)" }, { "lhi", "Lahu Shi" }, { "lhl", "Lahul Lohar" }, { "lhm", "Lhomi" }, { "lhn", "Lahanan" }, { "lhp", "Lhokpu" }, { "lhs", "Mlahsö" }, { "lht", "Lo-Toga" }, { "lhu", "Lahu" }, { "lia", "West-Central Limba" }, { "lib", "Likum" }, { "lic", "Hlai" }, { "lid", "Nyindrou" }, { "lie", "Likila" }, { "lif", "Limbu" }, { "lig", "Ligbi" }, { "lih", "Lihir" }, { "lii", "Lingkhim" }, { "lij", "Ligurian" }, { "lik", "Lika" }, { "lil", "Lillooet" }, { "lim", "Limburgan" }, { "lin", "Lingala" }, { "lio", "Liki" }, { "lip", "Sekpele" }, { "liq", "Libido" }, { "lir", "Liberian English" }, { "lis", "Lisu" }, { "lit", "Lithuanian" }, { "liu", "Logorik" }, { "liv", "Liv" }, { "liw", "Col" }, { "lix", "Liabuku" }, { "liy", "Banda-Bambari" }, { "liz", "Libinza" }, { "lja", "Golpa" }, { "lje", "Rampi" }, { "lji", "Laiyolo" }, { "ljl", "Li'o" }, { "ljp", "Lampung Api" }, { "ljw", "Yirandali" }, { "ljx", "Yuru" }, { "lka", "Lakalei" }, { "lkb", "Kabras" }, { "lkc", "Kucong" }, { "lkd", "Lakondê" }, { "lke", "Kenyi" }, { "lkh", "Lakha" }, { "lki", "Laki" }, { "lkj", "Remun" }, { "lkl", "Laeko-Libuat" }, { "lkm", "Kalaamaya" }, { "lkn", "Lakon" }, { "lko", "Khayo" }, { "lkr", "Päri" }, { "lks", "Kisa" }, { "lkt", "Lakota" }, { "lku", "Kungkari" }, { "lky", "Lokoya" }, { "lla", "Lala-Roba" }, { "llb", "Lolo" }, { "llc", "Lele (Guinea)" }, { "lld", "Ladin" }, { "lle", "Lele (Papua New Guinea)" }, { "llf", "Hermit" }, { "llg", "Lole" }, { "llh", "Lamu" }, { "lli", "Teke-Laali" }, { "llj", "Ladji Ladji" }, { "llk", "Lelak" }, { "lll", "Lilau" }, { "llm", "Lasalimu" }, { "lln", "Lele (Chad)" }, { "llo", "Khlor" }, { "llp", "North Efate" }, { "llq", "Lolak" }, { "lls", "Lithuanian Sign Language" }, { "llu", "Lau" }, { "llx", "Lauan" }, { "lma", "East Limba" }, { "lmb", "Merei" }, { "lmc", "Limilngan" }, { "lmd", "Lumun" }, { "lme", "Pévé" }, { "lmf", "South Lembata" }, { "lmg", "Lamogai" }, { "lmh", "Lambichhong" }, { "lmi", "Lombi" }, { "lmj", "West Lembata" }, { "lmk", "Lamkang" }, { "lml", "Hano" }, { "lmm", "Lamam" }, { "lmn", "Lambadi" }, { "lmo", "Lombard" }, { "lmp", "Limbum" }, { "lmq", "Lamatuka" }, { "lmr", "Lamalera" }, { "lmu", "Lamenu" }, { "lmv", "Lomaiviti" }, { "lmw", "Lake Miwok" }, { "lmx", "Laimbue" }, { "lmy", "Lamboya" }, { "lmz", "Lumbee" }, { "lna", "Langbashe" }, { "lnb", "Mbalanhu" }, { "lnd", "Lundayeh" }, { "lng", "Langobardic" }, { "lnh", "Lanoh" }, { "lni", "Daantanai'" }, { "lnj", "Leningitij" }, { "lnl", "South Central Banda" }, { "lnm", "Langam" }, { "lnn", "Lorediakarkar" }, { "lno", "Lango (Sudan)" }, { "lns", "Lamnso'" }, { "lnu", "Longuda" }, { "lnw", "Lanima" }, { "lnz", "Lonzo" }, { "loa", "Loloda" }, { "lob", "Lobi" }, { "loc", "Inonhan" }, { "loe", "Saluan" }, { "lof", "Logol" }, { "log", "Logo" }, { "loh", "Narim" }, { "loi", "Loma (Côte d'Ivoire)" }, { "loj", "Lou" }, { "lok", "Loko" }, { "lol", "Mongo" }, { "lom", "Loma (Liberia)" }, { "lon", "Malawi Lomwe" }, { "loo", "Lombo" }, { "lop", "Lopa" }, { "loq", "Lobala" }, { "lor", "Téén" }, { "los", "Loniu" }, { "lot", "Otuho" }, { "lou", "Louisiana Creole French" }, { "lov", "Lopi" }, { "low", "Tampias Lobu" }, { "lox", "Loun" }, { "loy", "Loke" }, { "loz", "Lozi" }, { "lpa", "Lelepa" }, { "lpe", "Lepki" }, { "lpn", "Long Phuri Naga" }, { "lpo", "Lipo" }, { "lpx", "Lopit" }, { "lra", "Rara Bakati'" }, { "lrc", "Northern Luri" }, { "lre", "Laurentian" }, { "lrg", "Laragia" }, { "lri", "Marachi" }, { "lrk", "Loarki" }, { "lrl", "Lari" }, { "lrm", "Marama" }, { "lrn", "Lorang" }, { "lro", "Laro" }, { "lrr", "Southern Yamphu" }, { "lrt", "Larantuka Malay" }, { "lrv", "Larevat" }, { "lrz", "Lemerig" }, { "lsa", "Lasgerdi" }, { "lsd", "Lishana Deni" }, { "lse", "Lusengo" }, { "lsg", "Lyons Sign Language" }, { "lsh", "Lish" }, { "lsi", "Lashi" }, { "lsl", "Latvian Sign Language" }, { "lsm", "Saamia" }, { "lso", "Laos Sign Language" }, { "lsp", "Panamanian Sign Language" }, { "lsr", "Aruop" }, { "lss", "Lasi" }, { "lst", "Trinidad and Tobago Sign Language" }, { "lsy", "Mauritian Sign Language" }, { "ltc", "Late Middle Chinese" }, { "ltg", "Latgalian" }, { "lti", "Leti (Indonesia)" }, { "ltn", "Latundê" }, { "lto", "Tsotso" }, { "lts", "Tachoni" }, { "ltu", "Latu" }, { "ltz", "Luxembourgish" }, { "lua", "Luba-Lulua" }, { "lub", "Luba-Katanga" }, { "luc", "Aringa" }, { "lud", "Ludian" }, { "lue", "Luvale" }, { "luf", "Laua" }, { "lug", "Ganda" }, { "lui", "Luiseno" }, { "luj", "Luna" }, { "luk", "Lunanakha" }, { "lul", "Olu'bo" }, { "lum", "Luimbi" }, { "lun", "Lunda" }, { "luo", "Luo (Kenya and Tanzania)" }, { "lup", "Lumbu" }, { "luq", "Lucumi" }, { "lur", "Laura" }, { "lus", "Lushai" }, { "lut", "Lushootseed" }, { "luu", "Lumba-Yakkha" }, { "luv", "Luwati" }, { "luw", "Luo (Cameroon)" }, { "luy", "Luyia" }, { "luz", "Southern Luri" }, { "lva", "Maku'a" }, { "lvk", "Lavukaleve" }, { "lvs", "Standard Latvian" }, { "lvu", "Levuka" }, { "lwa", "Lwalu" }, { "lwe", "Lewo Eleng" }, { "lwg", "Wanga" }, { "lwh", "White Lachi" }, { "lwl", "Eastern Lawa" }, { "lwm", "Laomian" }, { "lwo", "Luwo" }, { "lwt", "Lewotobi" }, { "lwu", "Lawu" }, { "lww", "Lewo" }, { "lya", "Layakha" }, { "lyg", "Lyngngam" }, { "lyn", "Luyana" }, { "lzh", "Literary Chinese" }, { "lzl", "Litzlitz" }, { "lzn", "Leinong Naga" }, { "lzz", "Laz" }, { "maa", "San Jerónimo Tecóatl Mazatec" }, { "mab", "Yutanduchi Mixtec" }, { "mad", "Madurese" }, { "mae", "Bo-Rukul" }, { "maf", "Mafa" }, { "mag", "Magahi" }, { "mah", "Marshallese" }, { "mai", "Maithili" }, { "maj", "Jalapa De Díaz Mazatec" }, { "mak", "Makasar" }, { "mal", "Malayalam" }, { "mam", "Mam" }, { "man", "Mandingo" }, { "maq", "Chiquihuitlán Mazatec" }, { "mar", "Marathi" }, { "mas", "Masai" }, { "mat", "San Francisco Matlatzinca" }, { "mau", "Huautla Mazatec" }, { "mav", "Sateré-Mawé" }, { "maw", "Mampruli" }, { "max", "North Moluccan Malay" }, { "maz", "Central Mazahua" }, { "mba", "Higaonon" }, { "mbb", "Western Bukidnon Manobo" }, { "mbc", "Macushi" }, { "mbd", "Dibabawon Manobo" }, { "mbe", "Molale" }, { "mbf", "Baba Malay" }, { "mbh", "Mangseng" }, { "mbi", "Ilianen Manobo" }, { "mbj", "Nadëb" }, { "mbk", "Malol" }, { "mbl", "Maxakalí" }, { "mbm", "Ombamba" }, { "mbn", "Macaguán" }, { "mbo", "Mbo (Cameroon)" }, { "mbp", "Malayo" }, { "mbq", "Maisin" }, { "mbr", "Nukak Makú" }, { "mbs", "Sarangani Manobo" }, { "mbt", "Matigsalug Manobo" }, { "mbu", "Mbula-Bwazza" }, { "mbv", "Mbulungish" }, { "mbw", "Maring" }, { "mbx", "Mari (East Sepik Province)" }, { "mby", "Memoni" }, { "mbz", "Amoltepec Mixtec" }, { "mca", "Maca" }, { "mcb", "Machiguenga" }, { "mcc", "Bitur" }, { "mcd", "Sharanahua" }, { "mce", "Itundujia Mixtec" }, { "mcf", "Matsés" }, { "mcg", "Mapoyo" }, { "mch", "Maquiritari" }, { "mci", "Mese" }, { "mcj", "Mvanip" }, { "mck", "Mbunda" }, { "mcl", "Macaguaje" }, { "mcm", "Malaccan Creole Portuguese" }, { "mcn", "Masana" }, { "mco", "Coatlán Mixe" }, { "mcp", "Makaa" }, { "mcq", "Ese" }, { "mcr", "Menya" }, { "mcs", "Mambai" }, { "mct", "Mengisa" }, { "mcu", "Cameroon Mambila" }, { "mcv", "Minanibai" }, { "mcw", "Mawa (Chad)" }, { "mcx", "Mpiemo" }, { "mcy", "South Watut" }, { "mcz", "Mawan" }, { "mda", "Mada (Nigeria)" }, { "mdb", "Morigi" }, { "mdc", "Male (Papua New Guinea)" }, { "mdd", "Mbum" }, { "mde", "Maba (Chad)" }, { "mdf", "Moksha" }, { "mdg", "Massalat" }, { "mdh", "Maguindanaon" }, { "mdi", "Mamvu" }, { "mdj", "Mangbetu" }, { "mdk", "Mangbutu" }, { "mdl", "Maltese Sign Language" }, { "mdm", "Mayogo" }, { "mdn", "Mbati" }, { "mdp", "Mbala" }, { "mdq", "Mbole" }, { "mdr", "Mandar" }, { "mds", "Maria (Papua New Guinea)" }, { "mdt", "Mbere" }, { "mdu", "Mboko" }, { "mdv", "Santa Lucía Monteverde Mixtec" }, { "mdw", "Mbosi" }, { "mdx", "Dizin" }, { "mdy", "Male (Ethiopia)" }, { "mdz", "Suruí Do Pará" }, { "mea", "Menka" }, { "meb", "Ikobi" }, { "mec", "Mara" }, { "med", "Melpa" }, { "mee", "Mengen" }, { "mef", "Megam" }, { "meh", "Southwestern Tlaxiaco Mixtec" }, { "mei", "Midob" }, { "mej", "Meyah" }, { "mek", "Mekeo" }, { "mel", "Central Melanau" }, { "mem", "Mangala" }, { "men", "Mende (Sierra Leone)" }, { "meo", "Kedah Malay" }, { "mep", "Miriwung" }, { "meq", "Merey" }, { "mer", "Meru" }, { "mes", "Masmaje" }, { "met", "Mato" }, { "meu", "Motu" }, { "mev", "Mano" }, { "mew", "Maaka" }, { "mey", "Hassaniyya" }, { "mez", "Menominee" }, { "mfa", "Pattani Malay" }, { "mfb", "Bangka" }, { "mfc", "Mba" }, { "mfd", "Mendankwe-Nkwen" }, { "mfe", "Morisyen" }, { "mff", "Naki" }, { "mfg", "Mogofin" }, { "mfh", "Matal" }, { "mfi", "Wandala" }, { "mfj", "Mefele" }, { "mfk", "North Mofu" }, { "mfl", "Putai" }, { "mfm", "Marghi South" }, { "mfn", "Cross River Mbembe" }, { "mfo", "Mbe" }, { "mfp", "Makassar Malay" }, { "mfq", "Moba" }, { "mfr", "Marithiel" }, { "mfs", "Mexican Sign Language" }, { "mft", "Mokerang" }, { "mfu", "Mbwela" }, { "mfv", "Mandjak" }, { "mfw", "Mulaha" }, { "mfx", "Melo" }, { "mfy", "Mayo" }, { "mfz", "Mabaan" }, { "mga", "Middle Irish (900-1200)" }, { "mgb", "Mararit" }, { "mgc", "Morokodo" }, { "mgd", "Moru" }, { "mge", "Mango" }, { "mgf", "Maklew" }, { "mgg", "Mpumpong" }, { "mgh", "Makhuwa-Meetto" }, { "mgi", "Lijili" }, { "mgj", "Abureni" }, { "mgk", "Mawes" }, { "mgl", "Maleu-Kilenge" }, { "mgm", "Mambae" }, { "mgn", "Mbangi" }, { "mgo", "Meta'" }, { "mgp", "Eastern Magar" }, { "mgq", "Malila" }, { "mgr", "Mambwe-Lungu" }, { "mgs", "Manda (Tanzania)" }, { "mgt", "Mongol" }, { "mgu", "Mailu" }, { "mgv", "Matengo" }, { "mgw", "Matumbi" }, { "mgy", "Mbunga" }, { "mgz", "Mbugwe" }, { "mha", "Manda (India)" }, { "mhb", "Mahongwe" }, { "mhc", "Mocho" }, { "mhd", "Mbugu" }, { "mhe", "Besisi" }, { "mhf", "Mamaa" }, { "mhg", "Margu" }, { "mhh", "Maskoy Pidgin" }, { "mhi", "Ma'di" }, { "mhj", "Mogholi" }, { "mhk", "Mungaka" }, { "mhl", "Mauwake" }, { "mhm", "Makhuwa-Moniga" }, { "mhn", "Mócheno" }, { "mho", "Mashi (Zambia)" }, { "mhp", "Balinese Malay" }, { "mhq", "Mandan" }, { "mhr", "Eastern Mari" }, { "mhs", "Buru (Indonesia)" }, { "mht", "Mandahuaca" }, { "mhu", "Digaro-Mishmi" }, { "mhw", "Mbukushu" }, { "mhx", "Maru" }, { "mhy", "Ma'anyan" }, { "mhz", "Mor (Mor Islands)" }, { "mia", "Miami" }, { "mib", "Atatláhuca Mixtec" }, { "mic", "Mi'kmaq" }, { "mid", "Mandaic" }, { "mie", "Ocotepec Mixtec" }, { "mif", "Mofu-Gudur" }, { "mig", "San Miguel El Grande Mixtec" }, { "mih", "Chayuco Mixtec" }, { "mii", "Chigmecatitlán Mixtec" }, { "mij", "Abar" }, { "mik", "Mikasuki" }, { "mil", "Peñoles Mixtec" }, { "mim", "Alacatlatzala Mixtec" }, { "min", "Minangkabau" }, { "mio", "Pinotepa Nacional Mixtec" }, { "mip", "Apasco-Apoala Mixtec" }, { "miq", "Mískito" }, { "mir", "Isthmus Mixe" }, { "mis", "Uncoded languages" }, { "mit", "Southern Puebla Mixtec" }, { "miu", "Cacaloxtepec Mixtec" }, { "miw", "Akoye" }, { "mix", "Mixtepec Mixtec" }, { "miy", "Ayutla Mixtec" }, { "miz", "Coatzospan Mixtec" }, { "mjc", "San Juan Colorado Mixtec" }, { "mjd", "Northwest Maidu" }, { "mje", "Muskum" }, { "mjg", "Tu" }, { "mjh", "Mwera (Nyasa)" }, { "mji", "Kim Mun" }, { "mjj", "Mawak" }, { "mjk", "Matukar" }, { "mjl", "Mandeali" }, { "mjm", "Medebur" }, { "mjn", "Ma (Papua New Guinea)" }, { "mjo", "Malankuravan" }, { "mjp", "Malapandaram" }, { "mjq", "Malaryan" }, { "mjr", "Malavedan" }, { "mjs", "Miship" }, { "mjt", "Sauria Paharia" }, { "mju", "Manna-Dora" }, { "mjv", "Mannan" }, { "mjw", "Karbi" }, { "mjx", "Mahali" }, { "mjy", "Mahican" }, { "mjz", "Majhi" }, { "mka", "Mbre" }, { "mkb", "Mal Paharia" }, { "mkc", "Siliput" }, { "mkd", "Macedonian" }, { "mke", "Mawchi" }, { "mkf", "Miya" }, { "mkg", "Mak (China)" }, { "mki", "Dhatki" }, { "mkj", "Mokilese" }, { "mkk", "Byep" }, { "mkl", "Mokole" }, { "mkm", "Moklen" }, { "mkn", "Kupang Malay" }, { "mko", "Mingang Doso" }, { "mkp", "Moikodi" }, { "mkq", "Bay Miwok" }, { "mkr", "Malas" }, { "mks", "Silacayoapan Mixtec" }, { "mkt", "Vamale" }, { "mku", "Konyanka Maninka" }, { "mkv", "Mafea" }, { "mkw", "Kituba (Congo)" }, { "mkx", "Kinamiging Manobo" }, { "mky", "East Makian" }, { "mkz", "Makasae" }, { "mla", "Malo" }, { "mlb", "Mbule" }, { "mlc", "Cao Lan" }, { "mle", "Manambu" }, { "mlf", "Mal" }, { "mlg", "Malagasy" }, { "mlh", "Mape" }, { "mli", "Malimpung" }, { "mlj", "Miltu" }, { "mlk", "Ilwana" }, { "mll", "Malua Bay" }, { "mlm", "Mulam" }, { "mln", "Malango" }, { "mlo", "Mlomp" }, { "mlp", "Bargam" }, { "mlq", "Western Maninkakan" }, { "mlr", "Vame" }, { "mls", "Masalit" }, { "mlt", "Maltese" }, { "mlu", "To'abaita" }, { "mlv", "Motlav" }, { "mlw", "Moloko" }, { "mlx", "Malfaxal" }, { "mlz", "Malaynon" }, { "mma", "Mama" }, { "mmb", "Momina" }, { "mmc", "Michoacán Mazahua" }, { "mmd", "Maonan" }, { "mme", "Mae" }, { "mmf", "Mundat" }, { "mmg", "North Ambrym" }, { "mmh", "Mehináku" }, { "mmi", "Musar" }, { "mmj", "Majhwar" }, { "mmk", "Mukha-Dora" }, { "mml", "Man Met" }, { "mmm", "Maii" }, { "mmn", "Mamanwa" }, { "mmo", "Mangga Buang" }, { "mmp", "Siawi" }, { "mmq", "Musak" }, { "mmr", "Western Xiangxi Miao" }, { "mmt", "Malalamai" }, { "mmu", "Mmaala" }, { "mmv", "Miriti" }, { "mmw", "Emae" }, { "mmx", "Madak" }, { "mmy", "Migaama" }, { "mmz", "Mabaale" }, { "mna", "Mbula" }, { "mnb", "Muna" }, { "mnc", "Manchu" }, { "mnd", "Mondé" }, { "mne", "Naba" }, { "mnf", "Mundani" }, { "mng", "Eastern Mnong" }, { "mnh", "Mono (Democratic Republic of Congo)" }, { "mni", "Manipuri" }, { "mnj", "Munji" }, { "mnk", "Mandinka" }, { "mnl", "Tiale" }, { "mnm", "Mapena" }, { "mnn", "Southern Mnong" }, { "mnp", "Min Bei Chinese" }, { "mnq", "Minriq" }, { "mnr", "Mono (USA)" }, { "mns", "Mansi" }, { "mnu", "Mer" }, { "mnv", "Rennell-Bellona" }, { "mnw", "Mon" }, { "mnx", "Manikion" }, { "mny", "Manyawa" }, { "mnz", "Moni" }, { "moa", "Mwan" }, { "moc", "Mocoví" }, { "mod", "Mobilian" }, { "moe", "Montagnais" }, { "mog", "Mongondow" }, { "moh", "Mohawk" }, { "moi", "Mboi" }, { "moj", "Monzombo" }, { "mok", "Morori" }, { "mom", "Mangue" }, { "mon", "Mongolian" }, { "moo", "Monom" }, { "mop", "Mopán Maya" }, { "moq", "Mor (Bomberai Peninsula)" }, { "mor", "Moro" }, { "mos", "Mossi" }, { "mot", "Barí" }, { "mou", "Mogum" }, { "mov", "Mohave" }, { "mow", "Moi (Congo)" }, { "mox", "Molima" }, { "moy", "Shekkacho" }, { "moz", "Mukulu" }, { "mpa", "Mpoto" }, { "mpb", "Mullukmulluk" }, { "mpc", "Mangarayi" }, { "mpd", "Machinere" }, { "mpe", "Majang" }, { "mpg", "Marba" }, { "mph", "Maung" }, { "mpi", "Mpade" }, { "mpj", "Martu Wangka" }, { "mpk", "Mbara (Chad)" }, { "mpl", "Middle Watut" }, { "mpm", "Yosondúa Mixtec" }, { "mpn", "Mindiri" }, { "mpo", "Miu" }, { "mpp", "Migabac" }, { "mpq", "Matís" }, { "mpr", "Vangunu" }, { "mps", "Dadibi" }, { "mpt", "Mian" }, { "mpu", "Makuráp" }, { "mpv", "Mungkip" }, { "mpw", "Mapidian" }, { "mpx", "Misima-Panaeati" }, { "mpy", "Mapia" }, { "mpz", "Mpi" }, { "mqa", "Maba (Indonesia)" }, { "mqb", "Mbuko" }, { "mqc", "Mangole" }, { "mqe", "Matepi" }, { "mqf", "Momuna" }, { "mqg", "Kota Bangun Kutai Malay" }, { "mqh", "Tlazoyaltepec Mixtec" }, { "mqi", "Mariri" }, { "mqj", "Mamasa" }, { "mqk", "Rajah Kabunsuwan Manobo" }, { "mql", "Mbelime" }, { "mqm", "South Marquesan" }, { "mqn", "Moronene" }, { "mqo", "Modole" }, { "mqp", "Manipa" }, { "mqq", "Minokok" }, { "mqr", "Mander" }, { "mqs", "West Makian" }, { "mqt", "Mok" }, { "mqu", "Mandari" }, { "mqv", "Mosimo" }, { "mqw", "Murupi" }, { "mqx", "Mamuju" }, { "mqy", "Manggarai" }, { "mqz", "Pano" }, { "mra", "Mlabri" }, { "mrb", "Marino" }, { "mrc", "Maricopa" }, { "mrd", "Western Magar" }, { "mre", "Martha's Vineyard Sign Language" }, { "mrf", "Elseng" }, { "mrg", "Mising" }, { "mrh", "Mara Chin" }, { "mri", "Maori" }, { "mrj", "Western Mari" }, { "mrk", "Hmwaveke" }, { "mrl", "Mortlockese" }, { "mrm", "Merlav" }, { "mrn", "Cheke Holo" }, { "mro", "Mru" }, { "mrp", "Morouas" }, { "mrq", "North Marquesan" }, { "mrr", "Maria (India)" }, { "mrs", "Maragus" }, { "mrt", "Marghi Central" }, { "mru", "Mono (Cameroon)" }, { "mrv", "Mangareva" }, { "mrw", "Maranao" }, { "mrx", "Maremgi" }, { "mry", "Mandaya" }, { "mrz", "Marind" }, { "msa", "Malay (macrolanguage)" }, { "msb", "Masbatenyo" }, { "msc", "Sankaran Maninka" }, { "msd", "Yucatec Maya Sign Language" }, { "mse", "Musey" }, { "msf", "Mekwei" }, { "msg", "Moraid" }, { "msh", "Masikoro Malagasy" }, { "msi", "Sabah Malay" }, { "msj", "Ma (Democratic Republic of Congo)" }, { "msk", "Mansaka" }, { "msl", "Molof" }, { "msm", "Agusan Manobo" }, { "msn", "Vurës" }, { "mso", "Mombum" }, { "msp", "Maritsauá" }, { "msq", "Caac" }, { "msr", "Mongolian Sign Language" }, { "mss", "West Masela" }, { "msu", "Musom" }, { "msv", "Maslam" }, { "msw", "Mansoanka" }, { "msx", "Moresada" }, { "msy", "Aruamu" }, { "msz", "Momare" }, { "mta", "Cotabato Manobo" }, { "mtb", "Anyin Morofo" }, { "mtc", "Munit" }, { "mtd", "Mualang" }, { "mte", "Mono (Solomon Islands)" }, { "mtf", "Murik (Papua New Guinea)" }, { "mtg", "Una" }, { "mth", "Munggui" }, { "mti", "Maiwa (Papua New Guinea)" }, { "mtj", "Moskona" }, { "mtk", "Mbe'" }, { "mtl", "Montol" }, { "mtm", "Mator" }, { "mtn", "Matagalpa" }, { "mto", "Totontepec Mixe" }, { "mtp", "Wichí Lhamtés Nocten" }, { "mtq", "Muong" }, { "mtr", "Mewari" }, { "mts", "Yora" }, { "mtt", "Mota" }, { "mtu", "Tututepec Mixtec" }, { "mtv", "Asaro'o" }, { "mtw", "Southern Binukidnon" }, { "mtx", "Tidaá Mixtec" }, { "mty", "Nabi" }, { "mua", "Mundang" }, { "mub", "Mubi" }, { "muc", "Ajumbu" }, { "mud", "Mednyj Aleut" }, { "mue", "Media Lengua" }, { "mug", "Musgu" }, { "muh", "Mündü" }, { "mui", "Musi" }, { "muj", "Mabire" }, { "muk", "Mugom" }, { "mul", "Multiple languages" }, { "mum", "Maiwala" }, { "muo", "Nyong" }, { "mup", "Malvi" }, { "muq", "Eastern Xiangxi Miao" }, { "mur", "Murle" }, { "mus", "Creek" }, { "mut", "Western Muria" }, { "muu", "Yaaku" }, { "muv", "Muthuvan" }, { "mux", "Bo-Ung" }, { "muy", "Muyang" }, { "muz", "Mursi" }, { "mva", "Manam" }, { "mvb", "Mattole" }, { "mvd", "Mamboru" }, { "mve", "Marwari (Pakistan)" }, { "mvf", "Peripheral Mongolian" }, { "mvg", "Yucuañe Mixtec" }, { "mvh", "Mulgi" }, { "mvi", "Miyako" }, { "mvk", "Mekmek" }, { "mvl", "Mbara (Australia)" }, { "mvm", "Muya" }, { "mvn", "Minaveha" }, { "mvo", "Marovo" }, { "mvp", "Duri" }, { "mvq", "Moere" }, { "mvr", "Marau" }, { "mvs", "Massep" }, { "mvt", "Mpotovoro" }, { "mvu", "Marfa" }, { "mvv", "Tagal Murut" }, { "mvw", "Machinga" }, { "mvx", "Meoswar" }, { "mvy", "Indus Kohistani" }, { "mvz", "Mesqan" }, { "mwa", "Mwatebu" }, { "mwb", "Juwal" }, { "mwc", "Are" }, { "mwe", "Mwera (Chimwera)" }, { "mwf", "Murrinh-Patha" }, { "mwg", "Aiklep" }, { "mwh", "Mouk-Aria" }, { "mwi", "Labo" }, { "mwj", "Maligo" }, { "mwk", "Kita Maninkakan" }, { "mwl", "Mirandese" }, { "mwm", "Sar" }, { "mwn", "Nyamwanga" }, { "mwo", "Central Maewo" }, { "mwp", "Kala Lagaw Ya" }, { "mwq", "Mün Chin" }, { "mwr", "Marwari" }, { "mws", "Mwimbi-Muthambi" }, { "mwt", "Moken" }, { "mwu", "Mittu" }, { "mwv", "Mentawai" }, { "mww", "Hmong Daw" }, { "mwx", "Mediak" }, { "mwy", "Mosiro" }, { "mwz", "Moingi" }, { "mxa", "Northwest Oaxaca Mixtec" }, { "mxb", "Tezoatlán Mixtec" }, { "mxc", "Manyika" }, { "mxd", "Modang" }, { "mxe", "Mele-Fila" }, { "mxf", "Malgbe" }, { "mxg", "Mbangala" }, { "mxh", "Mvuba" }, { "mxi", "Mozarabic" }, { "mxj", "Miju-Mishmi" }, { "mxk", "Monumbo" }, { "mxl", "Maxi Gbe" }, { "mxm", "Meramera" }, { "mxn", "Moi (Indonesia)" }, { "mxo", "Mbowe" }, { "mxp", "Tlahuitoltepec Mixe" }, { "mxq", "Juquila Mixe" }, { "mxr", "Murik (Malaysia)" }, { "mxs", "Huitepec Mixtec" }, { "mxt", "Jamiltepec Mixtec" }, { "mxu", "Mada (Cameroon)" }, { "mxv", "Metlatónoc Mixtec" }, { "mxw", "Namo" }, { "mxx", "Mahou" }, { "mxy", "Southeastern Nochixtlán Mixtec" }, { "mxz", "Central Masela" }, { "mya", "Burmese" }, { "myb", "Mbay" }, { "myc", "Mayeka" }, { "myd", "Maramba" }, { "mye", "Myene" }, { "myf", "Bambassi" }, { "myg", "Manta" }, { "myh", "Makah" }, { "myi", "Mina (India)" }, { "myj", "Mangayat" }, { "myk", "Mamara Senoufo" }, { "myl", "Moma" }, { "mym", "Me'en" }, { "myo", "Anfillo" }, { "myp", "Pirahã" }, { "myr", "Muniche" }, { "mys", "Mesmes" }, { "myu", "Mundurukú" }, { "myv", "Erzya" }, { "myw", "Muyuw" }, { "myx", "Masaaba" }, { "myy", "Macuna" }, { "myz", "Classical Mandaic" }, { "mza", "Santa María Zacatepec Mixtec" }, { "mzb", "Tumzabt" }, { "mzc", "Madagascar Sign Language" }, { "mzd", "Malimba" }, { "mze", "Morawa" }, { "mzg", "Monastic Sign Language" }, { "mzh", "Wichí Lhamtés Güisnay" }, { "mzi", "Ixcatlán Mazatec" }, { "mzj", "Manya" }, { "mzk", "Nigeria Mambila" }, { "mzl", "Mazatlán Mixe" }, { "mzm", "Mumuye" }, { "mzn", "Mazanderani" }, { "mzo", "Matipuhy" }, { "mzp", "Movima" }, { "mzq", "Mori Atas" }, { "mzr", "Marúbo" }, { "mzs", "Macanese" }, { "mzt", "Mintil" }, { "mzu", "Inapang" }, { "mzv", "Manza" }, { "mzw", "Deg" }, { "mzx", "Mawayana" }, { "mzy", "Mozambican Sign Language" }, { "mzz", "Maiadomu" }, { "naa", "Namla" }, { "nab", "Southern Nambikuára" }, { "nac", "Narak" }, { "nad", "Nijadali" }, { "nae", "Naka'ela" }, { "naf", "Nabak" }, { "nag", "Naga Pidgin" }, { "naj", "Nalu" }, { "nak", "Nakanai" }, { "nal", "Nalik" }, { "nam", "Ngan'gityemerri" }, { "nan", "Min Nan Chinese" }, { "nao", "Naaba" }, { "nap", "Neapolitan" }, { "naq", "Nama (Namibia)" }, { "nar", "Iguta" }, { "nas", "Naasioi" }, { "nat", "Hungworo" }, { "nau", "Nauru" }, { "nav", "Navajo" }, { "naw", "Nawuri" }, { "nax", "Nakwi" }, { "nay", "Narrinyeri" }, { "naz", "Coatepec Nahuatl" }, { "nba", "Nyemba" }, { "nbb", "Ndoe" }, { "nbc", "Chang Naga" }, { "nbd", "Ngbinda" }, { "nbe", "Konyak Naga" }, { "nbg", "Nagarchal" }, { "nbh", "Ngamo" }, { "nbi", "Mao Naga" }, { "nbj", "Ngarinman" }, { "nbk", "Nake" }, { "nbl", "South Ndebele" }, { "nbm", "Ngbaka Ma'bo" }, { "nbn", "Kuri" }, { "nbo", "Nkukoli" }, { "nbp", "Nnam" }, { "nbq", "Nggem" }, { "nbr", "Numana-Nunku-Gbantu-Numbu" }, { "nbs", "Namibian Sign Language" }, { "nbt", "Na" }, { "nbu", "Rongmei Naga" }, { "nbv", "Ngamambo" }, { "nbw", "Southern Ngbandi" }, { "nby", "Ningera" }, { "nca", "Iyo" }, { "ncb", "Central Nicobarese" }, { "ncc", "Ponam" }, { "ncd", "Nachering" }, { "nce", "Yale" }, { "ncf", "Notsi" }, { "ncg", "Nisga'a" }, { "nch", "Central Huasteca Nahuatl" }, { "nci", "Classical Nahuatl" }, { "ncj", "Northern Puebla Nahuatl" }, { "nck", "Nakara" }, { "ncl", "Michoacán Nahuatl" }, { "ncm", "Nambo" }, { "ncn", "Nauna" }, { "nco", "Sibe" }, { "ncp", "Ndaktup" }, { "ncr", "Ncane" }, { "ncs", "Nicaraguan Sign Language" }, { "nct", "Chothe Naga" }, { "ncu", "Chumburung" }, { "ncx", "Central Puebla Nahuatl" }, { "ncz", "Natchez" }, { "nda", "Ndasa" }, { "ndb", "Kenswei Nsei" }, { "ndc", "Ndau" }, { "ndd", "Nde-Nsele-Nta" }, { "nde", "North Ndebele" }, { "ndf", "Nadruvian" }, { "ndg", "Ndengereko" }, { "ndh", "Ndali" }, { "ndi", "Samba Leko" }, { "ndj", "Ndamba" }, { "ndk", "Ndaka" }, { "ndl", "Ndolo" }, { "ndm", "Ndam" }, { "ndn", "Ngundi" }, { "ndo", "Ndonga" }, { "ndp", "Ndo" }, { "ndq", "Ndombe" }, { "ndr", "Ndoola" }, { "nds", "Low German" }, { "ndt", "Ndunga" }, { "ndu", "Dugun" }, { "ndv", "Ndut" }, { "ndw", "Ndobo" }, { "ndx", "Nduga" }, { "ndy", "Lutos" }, { "ndz", "Ndogo" }, { "nea", "Eastern Ngad'a" }, { "neb", "Toura (Côte d'Ivoire)" }, { "nec", "Nedebang" }, { "ned", "Nde-Gbite" }, { "nee", "Nêlêmwa-Nixumwak" }, { "nef", "Nefamese" }, { "neg", "Negidal" }, { "neh", "Nyenkha" }, { "nei", "Neo-Hittite" }, { "nej", "Neko" }, { "nek", "Neku" }, { "nem", "Nemi" }, { "nen", "Nengone" }, { "neo", "Ná-Meo" }, { "nep", "Nepali (macrolanguage)" }, { "neq", "North Central Mixe" }, { "ner", "Yahadian" }, { "nes", "Bhoti Kinnauri" }, { "net", "Nete" }, { "neu", "Neo" }, { "nev", "Nyaheun" }, { "new", "Newari" }, { "nex", "Neme" }, { "ney", "Neyo" }, { "nez", "Nez Perce" }, { "nfa", "Dhao" }, { "nfd", "Ahwai" }, { "nfl", "Ayiwo" }, { "nfr", "Nafaanra" }, { "nfu", "Mfumte" }, { "nga", "Ngbaka" }, { "ngb", "Northern Ngbandi" }, { "ngc", "Ngombe (Democratic Republic of Congo)" }, { "ngd", "Ngando (Central African Republic)" }, { "nge", "Ngemba" }, { "ngg", "Ngbaka Manza" }, { "ngh", "Nu" }, { "ngi", "Ngizim" }, { "ngj", "Ngie" }, { "ngk", "Dalabon" }, { "ngl", "Lomwe" }, { "ngm", "Ngatik Men's Creole" }, { "ngn", "Ngwo" }, { "ngo", "Ngoni" }, { "ngp", "Ngulu" }, { "ngq", "Ngurimi" }, { "ngr", "Engdewu" }, { "ngs", "Gvoko" }, { "ngt", "Ngeq" }, { "ngu", "Guerrero Nahuatl" }, { "ngv", "Nagumi" }, { "ngw", "Ngwaba" }, { "ngx", "Nggwahyi" }, { "ngy", "Tibea" }, { "ngz", "Ngungwel" }, { "nha", "Nhanda" }, { "nhb", "Beng" }, { "nhc", "Tabasco Nahuatl" }, { "nhd", "Chiripá" }, { "nhe", "Eastern Huasteca Nahuatl" }, { "nhf", "Nhuwala" }, { "nhg", "Tetelcingo Nahuatl" }, { "nhh", "Nahari" }, { "nhi", "Zacatlán-Ahuacatlán-Tepetzintla Nahuatl" }, { "nhk", "Isthmus-Cosoleacaque Nahuatl" }, { "nhm", "Morelos Nahuatl" }, { "nhn", "Central Nahuatl" }, { "nho", "Takuu" }, { "nhp", "Isthmus-Pajapan Nahuatl" }, { "nhq", "Huaxcaleca Nahuatl" }, { "nhr", "Naro" }, { "nht", "Ometepec Nahuatl" }, { "nhu", "Noone" }, { "nhv", "Temascaltepec Nahuatl" }, { "nhw", "Western Huasteca Nahuatl" }, { "nhx", "Isthmus-Mecayapan Nahuatl" }, { "nhy", "Northern Oaxaca Nahuatl" }, { "nhz", "Santa María La Alta Nahuatl" }, { "nia", "Nias" }, { "nib", "Nakame" }, { "nid", "Ngandi" }, { "nie", "Niellim" }, { "nif", "Nek" }, { "nig", "Ngalakan" }, { "nih", "Nyiha (Tanzania)" }, { "nii", "Nii" }, { "nij", "Ngaju" }, { "nik", "Southern Nicobarese" }, { "nil", "Nila" }, { "nim", "Nilamba" }, { "nin", "Ninzo" }, { "nio", "Nganasan" }, { "niq", "Nandi" }, { "nir", "Nimboran" }, { "nis", "Nimi" }, { "nit", "Southeastern Kolami" }, { "niu", "Niuean" }, { "niv", "Gilyak" }, { "niw", "Nimo" }, { "nix", "Hema" }, { "niy", "Ngiti" }, { "niz", "Ningil" }, { "nja", "Nzanyi" }, { "njb", "Nocte Naga" }, { "njd", "Ndonde Hamba" }, { "njh", "Lotha Naga" }, { "nji", "Gudanji" }, { "njj", "Njen" }, { "njl", "Njalgulgule" }, { "njm", "Angami Naga" }, { "njn", "Liangmai Naga" }, { "njo", "Ao Naga" }, { "njr", "Njerep" }, { "njs", "Nisa" }, { "njt", "Ndyuka-Trio Pidgin" }, { "nju", "Ngadjunmaya" }, { "njx", "Kunyi" }, { "njy", "Njyem" }, { "njz", "Nyishi" }, { "nka", "Nkoya" }, { "nkb", "Khoibu Naga" }, { "nkc", "Nkongho" }, { "nkd", "Koireng" }, { "nke", "Duke" }, { "nkf", "Inpui Naga" }, { "nkg", "Nekgini" }, { "nkh", "Khezha Naga" }, { "nki", "Thangal Naga" }, { "nkj", "Nakai" }, { "nkk", "Nokuku" }, { "nkm", "Namat" }, { "nkn", "Nkangala" }, { "nko", "Nkonya" }, { "nkp", "Niuatoputapu" }, { "nkq", "Nkami" }, { "nkr", "Nukuoro" }, { "nks", "North Asmat" }, { "nkt", "Nyika (Tanzania)" }, { "nku", "Bouna Kulango" }, { "nkv", "Nyika (Malawi and Zambia)" }, { "nkw", "Nkutu" }, { "nkx", "Nkoroo" }, { "nkz", "Nkari" }, { "nla", "Ngombale" }, { "nlc", "Nalca" }, { "nld", "Dutch" }, { "nle", "East Nyala" }, { "nlg", "Gela" }, { "nli", "Grangali" }, { "nlj", "Nyali" }, { "nlk", "Ninia Yali" }, { "nll", "Nihali" }, { "nlo", "Ngul" }, { "nlq", "Lao Naga" }, { "nlu", "Nchumbulu" }, { "nlv", "Orizaba Nahuatl" }, { "nlw", "Walangama" }, { "nlx", "Nahali" }, { "nly", "Nyamal" }, { "nlz", "Nalögo" }, { "nma", "Maram Naga" }, { "nmb", "Big Nambas" }, { "nmc", "Ngam" }, { "nmd", "Ndumu" }, { "nme", "Mzieme Naga" }, { "nmf", "Tangkhul Naga (India)" }, { "nmg", "Kwasio" }, { "nmh", "Monsang Naga" }, { "nmi", "Nyam" }, { "nmj", "Ngombe (Central African Republic)" }, { "nmk", "Namakura" }, { "nml", "Ndemli" }, { "nmm", "Manangba" }, { "nmn", "!Xóõ" }, { "nmo", "Moyon Naga" }, { "nmp", "Nimanbur" }, { "nmq", "Nambya" }, { "nmr", "Nimbari" }, { "nms", "Letemboi" }, { "nmt", "Namonuito" }, { "nmu", "Northeast Maidu" }, { "nmv", "Ngamini" }, { "nmw", "Nimoa" }, { "nmx", "Nama (Papua New Guinea)" }, { "nmy", "Namuyi" }, { "nmz", "Nawdm" }, { "nna", "Nyangumarta" }, { "nnb", "Nande" }, { "nnc", "Nancere" }, { "nnd", "West Ambae" }, { "nne", "Ngandyera" }, { "nnf", "Ngaing" }, { "nng", "Maring Naga" }, { "nnh", "Ngiemboon" }, { "nni", "North Nuaulu" }, { "nnj", "Nyangatom" }, { "nnk", "Nankina" }, { "nnl", "Northern Rengma Naga" }, { "nnm", "Namia" }, { "nnn", "Ngete" }, { "nno", "Norwegian Nynorsk" }, { "nnp", "Wancho Naga" }, { "nnq", "Ngindo" }, { "nnr", "Narungga" }, { "nns", "Ningye" }, { "nnt", "Nanticoke" }, { "nnu", "Dwang" }, { "nnv", "Nugunu (Australia)" }, { "nnw", "Southern Nuni" }, { "nnx", "Ngong" }, { "nny", "Nyangga" }, { "nnz", "Nda'nda'" }, { "noa", "Woun Meu" }, { "nob", "Norwegian Bokmål" }, { "noc", "Nuk" }, { "nod", "Northern Thai" }, { "noe", "Nimadi" }, { "nof", "Nomane" }, { "nog", "Nogai" }, { "noh", "Nomu" }, { "noi", "Noiri" }, { "noj", "Nonuya" }, { "nok", "Nooksack" }, { "nol", "Nomlaki" }, { "nom", "Nocamán" }, { "non", "Old Norse" }, { "nop", "Numanggang" }, { "noq", "Ngongo" }, { "nor", "Norwegian" }, { "nos", "Eastern Nisu" }, { "not", "Nomatsiguenga" }, { "nou", "Ewage-Notu" }, { "nov", "Novial" }, { "now", "Nyambo" }, { "noy", "Noy" }, { "noz", "Nayi" }, { "npa", "Nar Phu" }, { "npb", "Nupbikha" }, { "npg", "Ponyo-Gongwang Naga" }, { "nph", "Phom Naga" }, { "npi", "Nepali (individual language)" }, { "npl", "Southeastern Puebla Nahuatl" }, { "npn", "Mondropolon" }, { "npo", "Pochuri Naga" }, { "nps", "Nipsan" }, { "npu", "Puimei Naga" }, { "npy", "Napu" }, { "nqg", "Southern Nago" }, { "nqk", "Kura Ede Nago" }, { "nqm", "Ndom" }, { "nqn", "Nen" }, { "nqo", "N'Ko" }, { "nqq", "Kyan-Karyaw Naga" }, { "nqy", "Akyaung Ari Naga" }, { "nra", "Ngom" }, { "nrb", "Nara" }, { "nrc", "Noric" }, { "nre", "Southern Rengma Naga" }, { "nrg", "Narango" }, { "nri", "Chokri Naga" }, { "nrk", "Ngarla" }, { "nrl", "Ngarluma" }, { "nrm", "Narom" }, { "nrn", "Norn" }, { "nrp", "North Picene" }, { "nrr", "Norra" }, { "nrt", "Northern Kalapuya" }, { "nru", "Narua" }, { "nrx", "Ngurmbur" }, { "nrz", "Lala" }, { "nsa", "Sangtam Naga" }, { "nsc", "Nshi" }, { "nsd", "Southern Nisu" }, { "nse", "Nsenga" }, { "nsf", "Northwestern Nisu" }, { "nsg", "Ngasa" }, { "nsh", "Ngoshie" }, { "nsi", "Nigerian Sign Language" }, { "nsk", "Naskapi" }, { "nsl", "Norwegian Sign Language" }, { "nsm", "Sumi Naga" }, { "nsn", "Nehan" }, { "nso", "Pedi" }, { "nsp", "Nepalese Sign Language" }, { "nsq", "Northern Sierra Miwok" }, { "nsr", "Maritime Sign Language" }, { "nss", "Nali" }, { "nst", "Tase Naga" }, { "nsu", "Sierra Negra Nahuatl" }, { "nsv", "Southwestern Nisu" }, { "nsw", "Navut" }, { "nsx", "Nsongo" }, { "nsy", "Nasal" }, { "nsz", "Nisenan" }, { "nte", "Nathembo" }, { "ntg", "Ngantangarra" }, { "nti", "Natioro" }, { "ntj", "Ngaanyatjarra" }, { "ntk", "Ikoma-Nata-Isenye" }, { "ntm", "Nateni" }, { "nto", "Ntomba" }, { "ntp", "Northern Tepehuan" }, { "ntr", "Delo" }, { "nts", "Natagaimas" }, { "ntu", "Natügu" }, { "ntw", "Nottoway" }, { "ntx", "Tangkhul Naga (Myanmar)" }, { "nty", "Mantsi" }, { "ntz", "Natanzi" }, { "nua", "Yuanga" }, { "nuc", "Nukuini" }, { "nud", "Ngala" }, { "nue", "Ngundu" }, { "nuf", "Nusu" }, { "nug", "Nungali" }, { "nuh", "Ndunda" }, { "nui", "Ngumbi" }, { "nuj", "Nyole" }, { "nuk", "Nuu-chah-nulth" }, { "nul", "Nusa Laut" }, { "num", "Niuafo'ou" }, { "nun", "Anong" }, { "nuo", "Nguôn" }, { "nup", "Nupe-Nupe-Tako" }, { "nuq", "Nukumanu" }, { "nur", "Nukuria" }, { "nus", "Nuer" }, { "nut", "Nung (Viet Nam)" }, { "nuu", "Ngbundu" }, { "nuv", "Northern Nuni" }, { "nuw", "Nguluwan" }, { "nux", "Mehek" }, { "nuy", "Nunggubuyu" }, { "nuz", "Tlamacazapa Nahuatl" }, { "nvh", "Nasarian" }, { "nvm", "Namiae" }, { "nvo", "Nyokon" }, { "nwa", "Nawathinehena" }, { "nwb", "Nyabwa" }, { "nwc", "Classical Newari" }, { "nwe", "Ngwe" }, { "nwg", "Ngayawung" }, { "nwi", "Southwest Tanna" }, { "nwm", "Nyamusa-Molo" }, { "nwo", "Nauo" }, { "nwr", "Nawaru" }, { "nwx", "Middle Newar" }, { "nwy", "Nottoway-Meherrin" }, { "nxa", "Nauete" }, { "nxd", "Ngando (Democratic Republic of Congo)" }, { "nxe", "Nage" }, { "nxg", "Ngad'a" }, { "nxi", "Nindi" }, { "nxk", "Koki Naga" }, { "nxl", "South Nuaulu" }, { "nxm", "Numidian" }, { "nxn", "Ngawun" }, { "nxq", "Naxi" }, { "nxr", "Ninggerum" }, { "nxu", "Narau" }, { "nxx", "Nafri" }, { "nya", "Nyanja" }, { "nyb", "Nyangbo" }, { "nyc", "Nyanga-li" }, { "nyd", "Nyore" }, { "nye", "Nyengo" }, { "nyf", "Giryama" }, { "nyg", "Nyindu" }, { "nyh", "Nyigina" }, { "nyi", "Ama (Sudan)" }, { "nyj", "Nyanga" }, { "nyk", "Nyaneka" }, { "nyl", "Nyeu" }, { "nym", "Nyamwezi" }, { "nyn", "Nyankole" }, { "nyo", "Nyoro" }, { "nyp", "Nyang'i" }, { "nyq", "Nayini" }, { "nyr", "Nyiha (Malawi)" }, { "nys", "Nyunga" }, { "nyt", "Nyawaygi" }, { "nyu", "Nyungwe" }, { "nyv", "Nyulnyul" }, { "nyw", "Nyaw" }, { "nyx", "Nganyaywana" }, { "nyy", "Nyakyusa-Ngonde" }, { "nza", "Tigon Mbembe" }, { "nzb", "Njebi" }, { "nzi", "Nzima" }, { "nzk", "Nzakara" }, { "nzm", "Zeme Naga" }, { "nzs", "New Zealand Sign Language" }, { "nzu", "Teke-Nzikou" }, { "nzy", "Nzakambay" }, { "nzz", "Nanga Dama Dogon" }, { "oaa", "Orok" }, { "oac", "Oroch" }, { "oar", "Old Aramaic (up to 700 BCE)" }, { "oav", "Old Avar" }, { "obi", "Obispeño" }, { "obk", "Southern Bontok" }, { "obl", "Oblo" }, { "obm", "Moabite" }, { "obo", "Obo Manobo" }, { "obr", "Old Burmese" }, { "obt", "Old Breton" }, { "obu", "Obulom" }, { "oca", "Ocaina" }, { "och", "Old Chinese" }, { "oci", "Occitan (post 1500)" }, { "oco", "Old Cornish" }, { "ocu", "Atzingo Matlatzinca" }, { "oda", "Odut" }, { "odk", "Od" }, { "odt", "Old Dutch" }, { "odu", "Odual" }, { "ofo", "Ofo" }, { "ofs", "Old Frisian" }, { "ofu", "Efutop" }, { "ogb", "Ogbia" }, { "ogc", "Ogbah" }, { "oge", "Old Georgian" }, { "ogg", "Ogbogolo" }, { "ogo", "Khana" }, { "ogu", "Ogbronuagum" }, { "oht", "Old Hittite" }, { "ohu", "Old Hungarian" }, { "oia", "Oirata" }, { "oin", "Inebu One" }, { "ojb", "Northwestern Ojibwa" }, { "ojc", "Central Ojibwa" }, { "ojg", "Eastern Ojibwa" }, { "oji", "Ojibwa" }, { "ojp", "Old Japanese" }, { "ojs", "Severn Ojibwa" }, { "ojv", "Ontong Java" }, { "ojw", "Western Ojibwa" }, { "oka", "Okanagan" }, { "okb", "Okobo" }, { "okd", "Okodia" }, { "oke", "Okpe (Southwestern Edo)" }, { "okg", "Koko Babangk" }, { "okh", "Koresh-e Rostam" }, { "oki", "Okiek" }, { "okj", "Oko-Juwoi" }, { "okk", "Kwamtim One" }, { "okl", "Old Kentish Sign Language" }, { "okm", "Middle Korean (10th-16th cent.)" }, { "okn", "Oki-No-Erabu" }, { "oko", "Old Korean (3rd-9th cent.)" }, { "okr", "Kirike" }, { "oks", "Oko-Eni-Osayen" }, { "oku", "Oku" }, { "okv", "Orokaiva" }, { "okx", "Okpe (Northwestern Edo)" }, { "ola", "Walungge" }, { "old", "Mochi" }, { "ole", "Olekha" }, { "olk", "Olkol" }, { "olm", "Oloma" }, { "olo", "Livvi" }, { "olr", "Olrat" }, { "oma", "Omaha-Ponca" }, { "omb", "East Ambae" }, { "omc", "Mochica" }, { "ome", "Omejes" }, { "omg", "Omagua" }, { "omi", "Omi" }, { "omk", "Omok" }, { "oml", "Ombo" }, { "omn", "Minoan" }, { "omo", "Utarmbung" }, { "omp", "Old Manipuri" }, { "omr", "Old Marathi" }, { "omt", "Omotik" }, { "omu", "Omurano" }, { "omw", "South Tairora" }, { "omx", "Old Mon" }, { "ona", "Ona" }, { "onb", "Lingao" }, { "one", "Oneida" }, { "ong", "Olo" }, { "oni", "Onin" }, { "onj", "Onjob" }, { "onk", "Kabore One" }, { "onn", "Onobasulu" }, { "ono", "Onondaga" }, { "onp", "Sartang" }, { "onr", "Northern One" }, { "ons", "Ono" }, { "ont", "Ontenu" }, { "onu", "Unua" }, { "onw", "Old Nubian" }, { "onx", "Onin Based Pidgin" }, { "ood", "Tohono O'odham" }, { "oog", "Ong" }, { "oon", "Önge" }, { "oor", "Oorlams" }, { "oos", "Old Ossetic" }, { "opa", "Okpamheri" }, { "opk", "Kopkaka" }, { "opm", "Oksapmin" }, { "opo", "Opao" }, { "opt", "Opata" }, { "opy", "Ofayé" }, { "ora", "Oroha" }, { "orc", "Orma" }, { "ore", "Orejón" }, { "org", "Oring" }, { "orh", "Oroqen" }, { "ori", "Oriya (macrolanguage)" }, { "orm", "Oromo" }, { "orn", "Orang Kanaq" }, { "oro", "Orokolo" }, { "orr", "Oruma" }, { "ors", "Orang Seletar" }, { "ort", "Adivasi Oriya" }, { "oru", "Ormuri" }, { "orv", "Old Russian" }, { "orw", "Oro Win" }, { "orx", "Oro" }, { "ory", "Oriya (individual language)" }, { "orz", "Ormu" }, { "osa", "Osage" }, { "osc", "Oscan" }, { "osi", "Osing" }, { "oso", "Ososo" }, { "osp", "Old Spanish" }, { "oss", "Ossetian" }, { "ost", "Osatu" }, { "osu", "Southern One" }, { "osx", "Old Saxon" }, { "ota", "Ottoman Turkish (1500-1928)" }, { "otb", "Old Tibetan" }, { "otd", "Ot Danum" }, { "ote", "Mezquital Otomi" }, { "oti", "Oti" }, { "otk", "Old Turkish" }, { "otl", "Tilapa Otomi" }, { "otm", "Eastern Highland Otomi" }, { "otn", "Tenango Otomi" }, { "otq", "Querétaro Otomi" }, { "otr", "Otoro" }, { "ots", "Estado de México Otomi" }, { "ott", "Temoaya Otomi" }, { "otu", "Otuke" }, { "otw", "Ottawa" }, { "otx", "Texcatepec Otomi" }, { "oty", "Old Tamil" }, { "otz", "Ixtenco Otomi" }, { "oua", "Tagargrent" }, { "oub", "Glio-Oubi" }, { "oue", "Oune" }, { "oui", "Old Uighur" }, { "oum", "Ouma" }, { "oun", "!O!ung" }, { "owi", "Owiniga" }, { "owl", "Old Welsh" }, { "oyb", "Oy" }, { "oyd", "Oyda" }, { "oym", "Wayampi" }, { "oyy", "Oya'oya" }, { "ozm", "Koonzime" }, { "pab", "Parecís" }, { "pac", "Pacoh" }, { "pad", "Paumarí" }, { "pae", "Pagibete" }, { "paf", "Paranawát" }, { "pag", "Pangasinan" }, { "pah", "Tenharim" }, { "pai", "Pe" }, { "pak", "Parakanã" }, { "pal", "Pahlavi" }, { "pam", "Pampanga" }, { "pan", "Panjabi" }, { "pao", "Northern Paiute" }, { "pap", "Papiamento" }, { "paq", "Parya" }, { "par", "Panamint" }, { "pas", "Papasena" }, { "pat", "Papitalai" }, { "pau", "Palauan" }, { "pav", "Pakaásnovos" }, { "paw", "Pawnee" }, { "pax", "Pankararé" }, { "pay", "Pech" }, { "paz", "Pankararú" }, { "pbb", "Páez" }, { "pbc", "Patamona" }, { "pbe", "Mezontla Popoloca" }, { "pbf", "Coyotepec Popoloca" }, { "pbg", "Paraujano" }, { "pbh", "E'ñapa Woromaipu" }, { "pbi", "Parkwa" }, { "pbl", "Mak (Nigeria)" }, { "pbn", "Kpasam" }, { "pbo", "Papel" }, { "pbp", "Badyara" }, { "pbr", "Pangwa" }, { "pbs", "Central Pame" }, { "pbt", "Southern Pashto" }, { "pbu", "Northern Pashto" }, { "pbv", "Pnar" }, { "pby", "Pyu" }, { "pca", "Santa Inés Ahuatempan Popoloca" }, { "pcb", "Pear" }, { "pcc", "Bouyei" }, { "pcd", "Picard" }, { "pce", "Ruching Palaung" }, { "pcf", "Paliyan" }, { "pcg", "Paniya" }, { "pch", "Pardhan" }, { "pci", "Duruwa" }, { "pcj", "Parenga" }, { "pck", "Paite Chin" }, { "pcl", "Pardhi" }, { "pcm", "Nigerian Pidgin" }, { "pcn", "Piti" }, { "pcp", "Pacahuara" }, { "pcw", "Pyapun" }, { "pda", "Anam" }, { "pdc", "Pennsylvania German" }, { "pdi", "Pa Di" }, { "pdn", "Podena" }, { "pdo", "Padoe" }, { "pdt", "Plautdietsch" }, { "pdu", "Kayan" }, { "pea", "Peranakan Indonesian" }, { "peb", "Eastern Pomo" }, { "ped", "Mala (Papua New Guinea)" }, { "pee", "Taje" }, { "pef", "Northeastern Pomo" }, { "peg", "Pengo" }, { "peh", "Bonan" }, { "pei", "Chichimeca-Jonaz" }, { "pej", "Northern Pomo" }, { "pek", "Penchal" }, { "pel", "Pekal" }, { "pem", "Phende" }, { "peo", "Old Persian (ca. 600-400 B.C.)" }, { "pep", "Kunja" }, { "peq", "Southern Pomo" }, { "pes", "Iranian Persian" }, { "pev", "Pémono" }, { "pex", "Petats" }, { "pey", "Petjo" }, { "pez", "Eastern Penan" }, { "pfa", "Pááfang" }, { "pfe", "Peere" }, { "pfl", "Pfaelzisch" }, { "pga", "Sudanese Creole Arabic" }, { "pgg", "Pangwali" }, { "pgi", "Pagi" }, { "pgk", "Rerep" }, { "pgl", "Primitive Irish" }, { "pgn", "Paelignian" }, { "pgs", "Pangseng" }, { "pgu", "Pagu" }, { "pha", "Pa-Hng" }, { "phd", "Phudagi" }, { "phg", "Phuong" }, { "phh", "Phukha" }, { "phk", "Phake" }, { "phl", "Phalura" }, { "phm", "Phimbi" }, { "phn", "Phoenician" }, { "pho", "Phunoi" }, { "phq", "Phana'" }, { "phr", "Pahari-Potwari" }, { "pht", "Phu Thai" }, { "phu", "Phuan" }, { "phv", "Pahlavani" }, { "phw", "Phangduwali" }, { "pia", "Pima Bajo" }, { "pib", "Yine" }, { "pic", "Pinji" }, { "pid", "Piaroa" }, { "pie", "Piro" }, { "pif", "Pingelapese" }, { "pig", "Pisabo" }, { "pih", "Pitcairn-Norfolk" }, { "pii", "Pini" }, { "pij", "Pijao" }, { "pil", "Yom" }, { "pim", "Powhatan" }, { "pin", "Piame" }, { "pio", "Piapoco" }, { "pip", "Pero" }, { "pir", "Piratapuyo" }, { "pis", "Pijin" }, { "pit", "Pitta Pitta" }, { "piu", "Pintupi-Luritja" }, { "piv", "Pileni" }, { "piw", "Pimbwe" }, { "pix", "Piu" }, { "piy", "Piya-Kwonci" }, { "piz", "Pije" }, { "pjt", "Pitjantjatjara" }, { "pka", "Ardhamāgadhī Prākrit" }, { "pkb", "Pokomo" }, { "pkc", "Paekche" }, { "pkg", "Pak-Tong" }, { "pkh", "Pankhu" }, { "pkn", "Pakanha" }, { "pko", "Pökoot" }, { "pkp", "Pukapuka" }, { "pkr", "Attapady Kurumba" }, { "pks", "Pakistan Sign Language" }, { "pkt", "Maleng" }, { "pku", "Paku" }, { "pla", "Miani" }, { "plb", "Polonombauk" }, { "plc", "Central Palawano" }, { "pld", "Polari" }, { "ple", "Palu'e" }, { "plg", "Pilagá" }, { "plh", "Paulohi" }, { "pli", "Pali" }, { "plj", "Polci" }, { "plk", "Kohistani Shina" }, { "pll", "Shwe Palaung" }, { "pln", "Palenquero" }, { "plo", "Oluta Popoluca" }, { "plp", "Palpa" }, { "plq", "Palaic" }, { "plr", "Palaka Senoufo" }, { "pls", "San Marcos Tlalcoyalco Popoloca" }, { "plt", "Plateau Malagasy" }, { "plu", "Palikúr" }, { "plv", "Southwest Palawano" }, { "plw", "Brooke's Point Palawano" }, { "ply", "Bolyu" }, { "plz", "Paluan" }, { "pma", "Paama" }, { "pmb", "Pambia" }, { "pmc", "Palumata" }, { "pmd", "Pallanganmiddang" }, { "pme", "Pwaamei" }, { "pmf", "Pamona" }, { "pmh", "Māhārāṣṭri Prākrit" }, { "pmi", "Northern Pumi" }, { "pmj", "Southern Pumi" }, { "pmk", "Pamlico" }, { "pml", "Lingua Franca" }, { "pmm", "Pomo" }, { "pmn", "Pam" }, { "pmo", "Pom" }, { "pmq", "Northern Pame" }, { "pmr", "Paynamar" }, { "pms", "Piemontese" }, { "pmt", "Tuamotuan" }, { "pmu", "Mirpur Panjabi" }, { "pmw", "Plains Miwok" }, { "pmx", "Poumei Naga" }, { "pmy", "Papuan Malay" }, { "pmz", "Southern Pame" }, { "pna", "Punan Bah-Biau" }, { "pnb", "Western Panjabi" }, { "pnc", "Pannei" }, { "pne", "Western Penan" }, { "png", "Pongu" }, { "pnh", "Penrhyn" }, { "pni", "Aoheng" }, { "pnj", "Pinjarup" }, { "pnk", "Paunaka" }, { "pnl", "Paleni" }, { "pnm", "Punan Batu 1" }, { "pnn", "Pinai-Hagahai" }, { "pno", "Panobo" }, { "pnp", "Pancana" }, { "pnq", "Pana (Burkina Faso)" }, { "pnr", "Panim" }, { "pns", "Ponosakan" }, { "pnt", "Pontic" }, { "pnu", "Jiongnai Bunu" }, { "pnv", "Pinigura" }, { "pnw", "Panytyima" }, { "pnx", "Phong-Kniang" }, { "pny", "Pinyin" }, { "pnz", "Pana (Central African Republic)" }, { "poc", "Poqomam" }, { "pod", "Ponares" }, { "poe", "San Juan Atzingo Popoloca" }, { "pof", "Poke" }, { "pog", "Potiguára" }, { "poh", "Poqomchi'" }, { "poi", "Highland Popoluca" }, { "pok", "Pokangá" }, { "pol", "Polish" }, { "pom", "Southeastern Pomo" }, { "pon", "Pohnpeian" }, { "poo", "Central Pomo" }, { "pop", "Pwapwâ" }, { "poq", "Texistepec Popoluca" }, { "por", "Portuguese" }, { "pos", "Sayula Popoluca" }, { "pot", "Potawatomi" }, { "pov", "Upper Guinea Crioulo" }, { "pow", "San Felipe Otlaltepec Popoloca" }, { "pox", "Polabian" }, { "poy", "Pogolo" }, { "ppa", "Pao" }, { "ppe", "Papi" }, { "ppi", "Paipai" }, { "ppk", "Uma" }, { "ppl", "Pipil" }, { "ppm", "Papuma" }, { "ppn", "Papapana" }, { "ppo", "Folopa" }, { "ppp", "Pelende" }, { "ppq", "Pei" }, { "pps", "San Luís Temalacayuca Popoloca" }, { "ppt", "Pare" }, { "ppu", "Papora" }, { "pqa", "Pa'a" }, { "pqm", "Malecite-Passamaquoddy" }, { "prb", "Lua'" }, { "prc", "Parachi" }, { "prd", "Parsi-Dari" }, { "pre", "Principense" }, { "prf", "Paranan" }, { "prg", "Prussian" }, { "prh", "Porohanon" }, { "pri", "Paicî" }, { "prk", "Parauk" }, { "prl", "Peruvian Sign Language" }, { "prm", "Kibiri" }, { "prn", "Prasuni" }, { "pro", "Old Provençal (to 1500)" }, { "prp", "Parsi" }, { "prq", "Ashéninka Perené" }, { "prr", "Puri" }, { "prs", "Dari" }, { "prt", "Phai" }, { "pru", "Puragi" }, { "prw", "Parawen" }, { "prx", "Purik" }, { "pry", "Pray 3" }, { "prz", "Providencia Sign Language" }, { "psa", "Asue Awyu" }, { "psc", "Persian Sign Language" }, { "psd", "Plains Indian Sign Language" }, { "pse", "Central Malay" }, { "psg", "Penang Sign Language" }, { "psh", "Southwest Pashayi" }, { "psi", "Southeast Pashayi" }, { "psl", "Puerto Rican Sign Language" }, { "psm", "Pauserna" }, { "psn", "Panasuan" }, { "pso", "Polish Sign Language" }, { "psp", "Philippine Sign Language" }, { "psq", "Pasi" }, { "psr", "Portuguese Sign Language" }, { "pss", "Kaulong" }, { "pst", "Central Pashto" }, { "psu", "Sauraseni Prākrit" }, { "psw", "Port Sandwich" }, { "psy", "Piscataway" }, { "pta", "Pai Tavytera" }, { "pth", "Pataxó Hã-Ha-Hãe" }, { "pti", "Pintiini" }, { "ptn", "Patani" }, { "pto", "Zo'é" }, { "ptp", "Patep" }, { "ptr", "Piamatsina" }, { "ptt", "Enrekang" }, { "ptu", "Bambam" }, { "ptv", "Port Vato" }, { "ptw", "Pentlatch" }, { "pty", "Pathiya" }, { "pua", "Western Highland Purepecha" }, { "pub", "Purum" }, { "puc", "Punan Merap" }, { "pud", "Punan Aput" }, { "pue", "Puelche" }, { "puf", "Punan Merah" }, { "pug", "Phuie" }, { "pui", "Puinave" }, { "puj", "Punan Tubu" }, { "puk", "Pu Ko" }, { "pum", "Puma" }, { "puo", "Puoc" }, { "pup", "Pulabu" }, { "puq", "Puquina" }, { "pur", "Puruborá" }, { "pus", "Pushto" }, { "put", "Putoh" }, { "puu", "Punu" }, { "puw", "Puluwatese" }, { "pux", "Puare" }, { "puy", "Purisimeño" }, { "puz", "Purum Naga" }, { "pwa", "Pawaia" }, { "pwb", "Panawa" }, { "pwg", "Gapapaiwa" }, { "pwi", "Patwin" }, { "pwm", "Molbog" }, { "pwn", "Paiwan" }, { "pwo", "Pwo Western Karen" }, { "pwr", "Powari" }, { "pww", "Pwo Northern Karen" }, { "pxm", "Quetzaltepec Mixe" }, { "pye", "Pye Krumen" }, { "pym", "Fyam" }, { "pyn", "Poyanáwa" }, { "pys", "Paraguayan Sign Language" }, { "pyu", "Puyuma" }, { "pyx", "Pyu (Myanmar)" }, { "pyy", "Pyen" }, { "pzn", "Para Naga" }, { "qaa", "Reserved for local use" }, { "qab", "Reserved for local use" }, { "qac", "Reserved for local use" }, { "qad", "Reserved for local use" }, { "qae", "Reserved for local use" }, { "qaf", "Reserved for local use" }, { "qag", "Reserved for local use" }, { "qah", "Reserved for local use" }, { "qai", "Reserved for local use" }, { "qaj", "Reserved for local use" }, { "qak", "Reserved for local use" }, { "qal", "Reserved for local use" }, { "qam", "Reserved for local use" }, { "qan", "Reserved for local use" }, { "qao", "Reserved for local use" }, { "qap", "Reserved for local use" }, { "qaq", "Reserved for local use" }, { "qar", "Reserved for local use" }, { "qas", "Reserved for local use" }, { "qat", "Reserved for local use" }, { "qau", "Reserved for local use" }, { "qav", "Reserved for local use" }, { "qaw", "Reserved for local use" }, { "qax", "Reserved for local use" }, { "qay", "Reserved for local use" }, { "qaz", "Reserved for local use" }, { "qba", "Reserved for local use" }, { "qbb", "Reserved for local use" }, { "qbc", "Reserved for local use" }, { "qbd", "Reserved for local use" }, { "qbe", "Reserved for local use" }, { "qbf", "Reserved for local use" }, { "qbg", "Reserved for local use" }, { "qbh", "Reserved for local use" }, { "qbi", "Reserved for local use" }, { "qbj", "Reserved for local use" }, { "qbk", "Reserved for local use" }, { "qbl", "Reserved for local use" }, { "qbm", "Reserved for local use" }, { "qbn", "Reserved for local use" }, { "qbo", "Reserved for local use" }, { "qbp", "Reserved for local use" }, { "qbq", "Reserved for local use" }, { "qbr", "Reserved for local use" }, { "qbs", "Reserved for local use" }, { "qbt", "Reserved for local use" }, { "qbu", "Reserved for local use" }, { "qbv", "Reserved for local use" }, { "qbw", "Reserved for local use" }, { "qbx", "Reserved for local use" }, { "qby", "Reserved for local use" }, { "qbz", "Reserved for local use" }, { "qca", "Reserved for local use" }, { "qcb", "Reserved for local use" }, { "qcc", "Reserved for local use" }, { "qcd", "Reserved for local use" }, { "qce", "Reserved for local use" }, { "qcf", "Reserved for local use" }, { "qcg", "Reserved for local use" }, { "qch", "Reserved for local use" }, { "qci", "Reserved for local use" }, { "qcj", "Reserved for local use" }, { "qck", "Reserved for local use" }, { "qcl", "Reserved for local use" }, { "qcm", "Reserved for local use" }, { "qcn", "Reserved for local use" }, { "qco", "Reserved for local use" }, { "qcp", "Reserved for local use" }, { "qcq", "Reserved for local use" }, { "qcr", "Reserved for local use" }, { "qcs", "Reserved for local use" }, { "qct", "Reserved for local use" }, { "qcu", "Reserved for local use" }, { "qcv", "Reserved for local use" }, { "qcw", "Reserved for local use" }, { "qcx", "Reserved for local use" }, { "qcy", "Reserved for local use" }, { "qcz", "Reserved for local use" }, { "qda", "Reserved for local use" }, { "qdb", "Reserved for local use" }, { "qdc", "Reserved for local use" }, { "qdd", "Reserved for local use" }, { "qde", "Reserved for local use" }, { "qdf", "Reserved for local use" }, { "qdg", "Reserved for local use" }, { "qdh", "Reserved for local use" }, { "qdi", "Reserved for local use" }, { "qdj", "Reserved for local use" }, { "qdk", "Reserved for local use" }, { "qdl", "Reserved for local use" }, { "qdm", "Reserved for local use" }, { "qdn", "Reserved for local use" }, { "qdo", "Reserved for local use" }, { "qdp", "Reserved for local use" }, { "qdq", "Reserved for local use" }, { "qdr", "Reserved for local use" }, { "qds", "Reserved for local use" }, { "qdt", "Reserved for local use" }, { "qdu", "Reserved for local use" }, { "qdv", "Reserved for local use" }, { "qdw", "Reserved for local use" }, { "qdx", "Reserved for local use" }, { "qdy", "Reserved for local use" }, { "qdz", "Reserved for local use" }, { "qea", "Reserved for local use" }, { "qeb", "Reserved for local use" }, { "qec", "Reserved for local use" }, { "qed", "Reserved for local use" }, { "qee", "Reserved for local use" }, { "qef", "Reserved for local use" }, { "qeg", "Reserved for local use" }, { "qeh", "Reserved for local use" }, { "qei", "Reserved for local use" }, { "qej", "Reserved for local use" }, { "qek", "Reserved for local use" }, { "qel", "Reserved for local use" }, { "qem", "Reserved for local use" }, { "qen", "Reserved for local use" }, { "qeo", "Reserved for local use" }, { "qep", "Reserved for local use" }, { "qeq", "Reserved for local use" }, { "qer", "Reserved for local use" }, { "qes", "Reserved for local use" }, { "qet", "Reserved for local use" }, { "qeu", "Reserved for local use" }, { "qev", "Reserved for local use" }, { "qew", "Reserved for local use" }, { "qex", "Reserved for local use" }, { "qey", "Reserved for local use" }, { "qez", "Reserved for local use" }, { "qfa", "Reserved for local use" }, { "qfb", "Reserved for local use" }, { "qfc", "Reserved for local use" }, { "qfd", "Reserved for local use" }, { "qfe", "Reserved for local use" }, { "qff", "Reserved for local use" }, { "qfg", "Reserved for local use" }, { "qfh", "Reserved for local use" }, { "qfi", "Reserved for local use" }, { "qfj", "Reserved for local use" }, { "qfk", "Reserved for local use" }, { "qfl", "Reserved for local use" }, { "qfm", "Reserved for local use" }, { "qfn", "Reserved for local use" }, { "qfo", "Reserved for local use" }, { "qfp", "Reserved for local use" }, { "qfq", "Reserved for local use" }, { "qfr", "Reserved for local use" }, { "qfs", "Reserved for local use" }, { "qft", "Reserved for local use" }, { "qfu", "Reserved for local use" }, { "qfv", "Reserved for local use" }, { "qfw", "Reserved for local use" }, { "qfx", "Reserved for local use" }, { "qfy", "Reserved for local use" }, { "qfz", "Reserved for local use" }, { "qga", "Reserved for local use" }, { "qgb", "Reserved for local use" }, { "qgc", "Reserved for local use" }, { "qgd", "Reserved for local use" }, { "qge", "Reserved for local use" }, { "qgf", "Reserved for local use" }, { "qgg", "Reserved for local use" }, { "qgh", "Reserved for local use" }, { "qgi", "Reserved for local use" }, { "qgj", "Reserved for local use" }, { "qgk", "Reserved for local use" }, { "qgl", "Reserved for local use" }, { "qgm", "Reserved for local use" }, { "qgn", "Reserved for local use" }, { "qgo", "Reserved for local use" }, { "qgp", "Reserved for local use" }, { "qgq", "Reserved for local use" }, { "qgr", "Reserved for local use" }, { "qgs", "Reserved for local use" }, { "qgt", "Reserved for local use" }, { "qgu", "Reserved for local use" }, { "qgv", "Reserved for local use" }, { "qgw", "Reserved for local use" }, { "qgx", "Reserved for local use" }, { "qgy", "Reserved for local use" }, { "qgz", "Reserved for local use" }, { "qha", "Reserved for local use" }, { "qhb", "Reserved for local use" }, { "qhc", "Reserved for local use" }, { "qhd", "Reserved for local use" }, { "qhe", "Reserved for local use" }, { "qhf", "Reserved for local use" }, { "qhg", "Reserved for local use" }, { "qhh", "Reserved for local use" }, { "qhi", "Reserved for local use" }, { "qhj", "Reserved for local use" }, { "qhk", "Reserved for local use" }, { "qhl", "Reserved for local use" }, { "qhm", "Reserved for local use" }, { "qhn", "Reserved for local use" }, { "qho", "Reserved for local use" }, { "qhp", "Reserved for local use" }, { "qhq", "Reserved for local use" }, { "qhr", "Reserved for local use" }, { "qhs", "Reserved for local use" }, { "qht", "Reserved for local use" }, { "qhu", "Reserved for local use" }, { "qhv", "Reserved for local use" }, { "qhw", "Reserved for local use" }, { "qhx", "Reserved for local use" }, { "qhy", "Reserved for local use" }, { "qhz", "Reserved for local use" }, { "qia", "Reserved for local use" }, { "qib", "Reserved for local use" }, { "qic", "Reserved for local use" }, { "qid", "Reserved for local use" }, { "qie", "Reserved for local use" }, { "qif", "Reserved for local use" }, { "qig", "Reserved for local use" }, { "qih", "Reserved for local use" }, { "qii", "Reserved for local use" }, { "qij", "Reserved for local use" }, { "qik", "Reserved for local use" }, { "qil", "Reserved for local use" }, { "qim", "Reserved for local use" }, { "qin", "Reserved for local use" }, { "qio", "Reserved for local use" }, { "qip", "Reserved for local use" }, { "qiq", "Reserved for local use" }, { "qir", "Reserved for local use" }, { "qis", "Reserved for local use" }, { "qit", "Reserved for local use" }, { "qiu", "Reserved for local use" }, { "qiv", "Reserved for local use" }, { "qiw", "Reserved for local use" }, { "qix", "Reserved for local use" }, { "qiy", "Reserved for local use" }, { "qiz", "Reserved for local use" }, { "qja", "Reserved for local use" }, { "qjb", "Reserved for local use" }, { "qjc", "Reserved for local use" }, { "qjd", "Reserved for local use" }, { "qje", "Reserved for local use" }, { "qjf", "Reserved for local use" }, { "qjg", "Reserved for local use" }, { "qjh", "Reserved for local use" }, { "qji", "Reserved for local use" }, { "qjj", "Reserved for local use" }, { "qjk", "Reserved for local use" }, { "qjl", "Reserved for local use" }, { "qjm", "Reserved for local use" }, { "qjn", "Reserved for local use" }, { "qjo", "Reserved for local use" }, { "qjp", "Reserved for local use" }, { "qjq", "Reserved for local use" }, { "qjr", "Reserved for local use" }, { "qjs", "Reserved for local use" }, { "qjt", "Reserved for local use" }, { "qju", "Reserved for local use" }, { "qjv", "Reserved for local use" }, { "qjw", "Reserved for local use" }, { "qjx", "Reserved for local use" }, { "qjy", "Reserved for local use" }, { "qjz", "Reserved for local use" }, { "qka", "Reserved for local use" }, { "qkb", "Reserved for local use" }, { "qkc", "Reserved for local use" }, { "qkd", "Reserved for local use" }, { "qke", "Reserved for local use" }, { "qkf", "Reserved for local use" }, { "qkg", "Reserved for local use" }, { "qkh", "Reserved for local use" }, { "qki", "Reserved for local use" }, { "qkj", "Reserved for local use" }, { "qkk", "Reserved for local use" }, { "qkl", "Reserved for local use" }, { "qkm", "Reserved for local use" }, { "qkn", "Reserved for local use" }, { "qko", "Reserved for local use" }, { "qkp", "Reserved for local use" }, { "qkq", "Reserved for local use" }, { "qkr", "Reserved for local use" }, { "qks", "Reserved for local use" }, { "qkt", "Reserved for local use" }, { "qku", "Reserved for local use" }, { "qkv", "Reserved for local use" }, { "qkw", "Reserved for local use" }, { "qkx", "Reserved for local use" }, { "qky", "Reserved for local use" }, { "qkz", "Reserved for local use" }, { "qla", "Reserved for local use" }, { "qlb", "Reserved for local use" }, { "qlc", "Reserved for local use" }, { "qld", "Reserved for local use" }, { "qle", "Reserved for local use" }, { "qlf", "Reserved for local use" }, { "qlg", "Reserved for local use" }, { "qlh", "Reserved for local use" }, { "qli", "Reserved for local use" }, { "qlj", "Reserved for local use" }, { "qlk", "Reserved for local use" }, { "qll", "Reserved for local use" }, { "qlm", "Reserved for local use" }, { "qln", "Reserved for local use" }, { "qlo", "Reserved for local use" }, { "qlp", "Reserved for local use" }, { "qlq", "Reserved for local use" }, { "qlr", "Reserved for local use" }, { "qls", "Reserved for local use" }, { "qlt", "Reserved for local use" }, { "qlu", "Reserved for local use" }, { "qlv", "Reserved for local use" }, { "qlw", "Reserved for local use" }, { "qlx", "Reserved for local use" }, { "qly", "Reserved for local use" }, { "qlz", "Reserved for local use" }, { "qma", "Reserved for local use" }, { "qmb", "Reserved for local use" }, { "qmc", "Reserved for local use" }, { "qmd", "Reserved for local use" }, { "qme", "Reserved for local use" }, { "qmf", "Reserved for local use" }, { "qmg", "Reserved for local use" }, { "qmh", "Reserved for local use" }, { "qmi", "Reserved for local use" }, { "qmj", "Reserved for local use" }, { "qmk", "Reserved for local use" }, { "qml", "Reserved for local use" }, { "qmm", "Reserved for local use" }, { "qmn", "Reserved for local use" }, { "qmo", "Reserved for local use" }, { "qmp", "Reserved for local use" }, { "qmq", "Reserved for local use" }, { "qmr", "Reserved for local use" }, { "qms", "Reserved for local use" }, { "qmt", "Reserved for local use" }, { "qmu", "Reserved for local use" }, { "qmv", "Reserved for local use" }, { "qmw", "Reserved for local use" }, { "qmx", "Reserved for local use" }, { "qmy", "Reserved for local use" }, { "qmz", "Reserved for local use" }, { "qna", "Reserved for local use" }, { "qnb", "Reserved for local use" }, { "qnc", "Reserved for local use" }, { "qnd", "Reserved for local use" }, { "qne", "Reserved for local use" }, { "qnf", "Reserved for local use" }, { "qng", "Reserved for local use" }, { "qnh", "Reserved for local use" }, { "qni", "Reserved for local use" }, { "qnj", "Reserved for local use" }, { "qnk", "Reserved for local use" }, { "qnl", "Reserved for local use" }, { "qnm", "Reserved for local use" }, { "qnn", "Reserved for local use" }, { "qno", "Reserved for local use" }, { "qnp", "Reserved for local use" }, { "qnq", "Reserved for local use" }, { "qnr", "Reserved for local use" }, { "qns", "Reserved for local use" }, { "qnt", "Reserved for local use" }, { "qnu", "Reserved for local use" }, { "qnv", "Reserved for local use" }, { "qnw", "Reserved for local use" }, { "qnx", "Reserved for local use" }, { "qny", "Reserved for local use" }, { "qnz", "Reserved for local use" }, { "qoa", "Reserved for local use" }, { "qob", "Reserved for local use" }, { "qoc", "Reserved for local use" }, { "qod", "Reserved for local use" }, { "qoe", "Reserved for local use" }, { "qof", "Reserved for local use" }, { "qog", "Reserved for local use" }, { "qoh", "Reserved for local use" }, { "qoi", "Reserved for local use" }, { "qoj", "Reserved for local use" }, { "qok", "Reserved for local use" }, { "qol", "Reserved for local use" }, { "qom", "Reserved for local use" }, { "qon", "Reserved for local use" }, { "qoo", "Reserved for local use" }, { "qop", "Reserved for local use" }, { "qoq", "Reserved for local use" }, { "qor", "Reserved for local use" }, { "qos", "Reserved for local use" }, { "qot", "Reserved for local use" }, { "qou", "Reserved for local use" }, { "qov", "Reserved for local use" }, { "qow", "Reserved for local use" }, { "qox", "Reserved for local use" }, { "qoy", "Reserved for local use" }, { "qoz", "Reserved for local use" }, { "qpa", "Reserved for local use" }, { "qpb", "Reserved for local use" }, { "qpc", "Reserved for local use" }, { "qpd", "Reserved for local use" }, { "qpe", "Reserved for local use" }, { "qpf", "Reserved for local use" }, { "qpg", "Reserved for local use" }, { "qph", "Reserved for local use" }, { "qpi", "Reserved for local use" }, { "qpj", "Reserved for local use" }, { "qpk", "Reserved for local use" }, { "qpl", "Reserved for local use" }, { "qpm", "Reserved for local use" }, { "qpn", "Reserved for local use" }, { "qpo", "Reserved for local use" }, { "qpp", "Reserved for local use" }, { "qpq", "Reserved for local use" }, { "qpr", "Reserved for local use" }, { "qps", "Reserved for local use" }, { "qpt", "Reserved for local use" }, { "qpu", "Reserved for local use" }, { "qpv", "Reserved for local use" }, { "qpw", "Reserved for local use" }, { "qpx", "Reserved for local use" }, { "qpy", "Reserved for local use" }, { "qpz", "Reserved for local use" }, { "qqa", "Reserved for local use" }, { "qqb", "Reserved for local use" }, { "qqc", "Reserved for local use" }, { "qqd", "Reserved for local use" }, { "qqe", "Reserved for local use" }, { "qqf", "Reserved for local use" }, { "qqg", "Reserved for local use" }, { "qqh", "Reserved for local use" }, { "qqi", "Reserved for local use" }, { "qqj", "Reserved for local use" }, { "qqk", "Reserved for local use" }, { "qql", "Reserved for local use" }, { "qqm", "Reserved for local use" }, { "qqn", "Reserved for local use" }, { "qqo", "Reserved for local use" }, { "qqp", "Reserved for local use" }, { "qqq", "Reserved for local use" }, { "qqr", "Reserved for local use" }, { "qqs", "Reserved for local use" }, { "qqt", "Reserved for local use" }, { "qqu", "Reserved for local use" }, { "qqv", "Reserved for local use" }, { "qqw", "Reserved for local use" }, { "qqx", "Reserved for local use" }, { "qqy", "Reserved for local use" }, { "qqz", "Reserved for local use" }, { "qra", "Reserved for local use" }, { "qrb", "Reserved for local use" }, { "qrc", "Reserved for local use" }, { "qrd", "Reserved for local use" }, { "qre", "Reserved for local use" }, { "qrf", "Reserved for local use" }, { "qrg", "Reserved for local use" }, { "qrh", "Reserved for local use" }, { "qri", "Reserved for local use" }, { "qrj", "Reserved for local use" }, { "qrk", "Reserved for local use" }, { "qrl", "Reserved for local use" }, { "qrm", "Reserved for local use" }, { "qrn", "Reserved for local use" }, { "qro", "Reserved for local use" }, { "qrp", "Reserved for local use" }, { "qrq", "Reserved for local use" }, { "qrr", "Reserved for local use" }, { "qrs", "Reserved for local use" }, { "qrt", "Reserved for local use" }, { "qru", "Reserved for local use" }, { "qrv", "Reserved for local use" }, { "qrw", "Reserved for local use" }, { "qrx", "Reserved for local use" }, { "qry", "Reserved for local use" }, { "qrz", "Reserved for local use" }, { "qsa", "Reserved for local use" }, { "qsb", "Reserved for local use" }, { "qsc", "Reserved for local use" }, { "qsd", "Reserved for local use" }, { "qse", "Reserved for local use" }, { "qsf", "Reserved for local use" }, { "qsg", "Reserved for local use" }, { "qsh", "Reserved for local use" }, { "qsi", "Reserved for local use" }, { "qsj", "Reserved for local use" }, { "qsk", "Reserved for local use" }, { "qsl", "Reserved for local use" }, { "qsm", "Reserved for local use" }, { "qsn", "Reserved for local use" }, { "qso", "Reserved for local use" }, { "qsp", "Reserved for local use" }, { "qsq", "Reserved for local use" }, { "qsr", "Reserved for local use" }, { "qss", "Reserved for local use" }, { "qst", "Reserved for local use" }, { "qsu", "Reserved for local use" }, { "qsv", "Reserved for local use" }, { "qsw", "Reserved for local use" }, { "qsx", "Reserved for local use" }, { "qsy", "Reserved for local use" }, { "qsz", "Reserved for local use" }, { "qta", "Reserved for local use" }, { "qtb", "Reserved for local use" }, { "qtc", "Reserved for local use" }, { "qtd", "Reserved for local use" }, { "qte", "Reserved for local use" }, { "qtf", "Reserved for local use" }, { "qtg", "Reserved for local use" }, { "qth", "Reserved for local use" }, { "qti", "Reserved for local use" }, { "qtj", "Reserved for local use" }, { "qtk", "Reserved for local use" }, { "qtl", "Reserved for local use" }, { "qtm", "Reserved for local use" }, { "qtn", "Reserved for local use" }, { "qto", "Reserved for local use" }, { "qtp", "Reserved for local use" }, { "qtq", "Reserved for local use" }, { "qtr", "Reserved for local use" }, { "qts", "Reserved for local use" }, { "qtt", "Reserved for local use" }, { "qtu", "Reserved for local use" }, { "qtv", "Reserved for local use" }, { "qtw", "Reserved for local use" }, { "qtx", "Reserved for local use" }, { "qty", "Reserved for local use" }, { "qtz", "Reserved for local use" }, { "qua", "Quapaw" }, { "qub", "Huallaga Huánuco Quechua" }, { "quc", "K'iche'" }, { "qud", "Calderón Highland Quichua" }, { "que", "Quechua" }, { "quf", "Lambayeque Quechua" }, { "qug", "Chimborazo Highland Quichua" }, { "quh", "South Bolivian Quechua" }, { "qui", "Quileute" }, { "quk", "Chachapoyas Quechua" }, { "qul", "North Bolivian Quechua" }, { "qum", "Sipacapense" }, { "qun", "Quinault" }, { "qup", "Southern Pastaza Quechua" }, { "quq", "Quinqui" }, { "qur", "Yanahuanca Pasco Quechua" }, { "qus", "Santiago del Estero Quichua" }, { "quv", "Sacapulteco" }, { "quw", "Tena Lowland Quichua" }, { "qux", "Yauyos Quechua" }, { "quy", "Ayacucho Quechua" }, { "quz", "Cusco Quechua" }, { "qva", "Ambo-Pasco Quechua" }, { "qvc", "Cajamarca Quechua" }, { "qve", "Eastern Apurímac Quechua" }, { "qvh", "Huamalíes-Dos de Mayo Huánuco Quechua" }, { "qvi", "Imbabura Highland Quichua" }, { "qvj", "Loja Highland Quichua" }, { "qvl", "Cajatambo North Lima Quechua" }, { "qvm", "Margos-Yarowilca-Lauricocha Quechua" }, { "qvn", "North Junín Quechua" }, { "qvo", "Napo Lowland Quechua" }, { "qvp", "Pacaraos Quechua" }, { "qvs", "San Martín Quechua" }, { "qvw", "Huaylla Wanca Quechua" }, { "qvy", "Queyu" }, { "qvz", "Northern Pastaza Quichua" }, { "qwa", "Corongo Ancash Quechua" }, { "qwc", "Classical Quechua" }, { "qwh", "Huaylas Ancash Quechua" }, { "qwm", "Kuman (Russia)" }, { "qws", "Sihuas Ancash Quechua" }, { "qwt", "Kwalhioqua-Tlatskanai" }, { "qxa", "Chiquián Ancash Quechua" }, { "qxc", "Chincha Quechua" }, { "qxh", "Panao Huánuco Quechua" }, { "qxl", "Salasaca Highland Quichua" }, { "qxn", "Northern Conchucos Ancash Quechua" }, { "qxo", "Southern Conchucos Ancash Quechua" }, { "qxp", "Puno Quechua" }, { "qxq", "Qashqa'i" }, { "qxr", "Cañar Highland Quichua" }, { "qxs", "Southern Qiang" }, { "qxt", "Santa Ana de Tusi Pasco Quechua" }, { "qxu", "Arequipa-La Unión Quechua" }, { "qxw", "Jauja Wanca Quechua" }, { "qya", "Quenya" }, { "qyp", "Quiripi" }, { "raa", "Dungmali" }, { "rab", "Camling" }, { "rac", "Rasawa" }, { "rad", "Rade" }, { "raf", "Western Meohang" }, { "rag", "Logooli" }, { "rah", "Rabha" }, { "rai", "Ramoaaina" }, { "raj", "Rajasthani" }, { "rak", "Tulu-Bohuai" }, { "ral", "Ralte" }, { "ram", "Canela" }, { "ran", "Riantana" }, { "rao", "Rao" }, { "rap", "Rapanui" }, { "raq", "Saam" }, { "rar", "Rarotongan" }, { "ras", "Tegali" }, { "rat", "Razajerdi" }, { "rau", "Raute" }, { "rav", "Sampang" }, { "raw", "Rawang" }, { "rax", "Rang" }, { "ray", "Rapa" }, { "raz", "Rahambuu" }, { "rbb", "Rumai Palaung" }, { "rbk", "Northern Bontok" }, { "rbl", "Miraya Bikol" }, { "rbp", "Barababaraba" }, { "rcf", "Réunion Creole French" }, { "rdb", "Rudbari" }, { "rea", "Rerau" }, { "reb", "Rembong" }, { "ree", "Rejang Kayan" }, { "reg", "Kara (Tanzania)" }, { "rei", "Reli" }, { "rej", "Rejang" }, { "rel", "Rendille" }, { "rem", "Remo" }, { "ren", "Rengao" }, { "rer", "Rer Bare" }, { "res", "Reshe" }, { "ret", "Retta" }, { "rey", "Reyesano" }, { "rga", "Roria" }, { "rge", "Romano-Greek" }, { "rgk", "Rangkas" }, { "rgn", "Romagnol" }, { "rgr", "Resígaro" }, { "rgs", "Southern Roglai" }, { "rgu", "Ringgou" }, { "rhg", "Rohingya" }, { "rhp", "Yahang" }, { "ria", "Riang (India)" }, { "rie", "Rien" }, { "rif", "Tarifit" }, { "ril", "Riang (Myanmar)" }, { "rim", "Nyaturu" }, { "rin", "Nungu" }, { "rir", "Ribun" }, { "rit", "Ritarungo" }, { "riu", "Riung" }, { "rjg", "Rajong" }, { "rji", "Raji" }, { "rjs", "Rajbanshi" }, { "rka", "Kraol" }, { "rkb", "Rikbaktsa" }, { "rkh", "Rakahanga-Manihiki" }, { "rki", "Rakhine" }, { "rkm", "Marka" }, { "rkt", "Rangpuri" }, { "rkw", "Arakwal" }, { "rma", "Rama" }, { "rmb", "Rembarunga" }, { "rmc", "Carpathian Romani" }, { "rmd", "Traveller Danish" }, { "rme", "Angloromani" }, { "rmf", "Kalo Finnish Romani" }, { "rmg", "Traveller Norwegian" }, { "rmh", "Murkim" }, { "rmi", "Lomavren" }, { "rmk", "Romkun" }, { "rml", "Baltic Romani" }, { "rmm", "Roma" }, { "rmn", "Balkan Romani" }, { "rmo", "Sinte Romani" }, { "rmp", "Rempi" }, { "rmq", "Caló" }, { "rms", "Romanian Sign Language" }, { "rmt", "Domari" }, { "rmu", "Tavringer Romani" }, { "rmv", "Romanova" }, { "rmw", "Welsh Romani" }, { "rmx", "Romam" }, { "rmy", "Vlax Romani" }, { "rmz", "Marma" }, { "rna", "Runa" }, { "rnd", "Ruund" }, { "rng", "Ronga" }, { "rnl", "Ranglong" }, { "rnn", "Roon" }, { "rnp", "Rongpo" }, { "rnr", "Nari Nari" }, { "rnw", "Rungwa" }, { "rob", "Tae'" }, { "roc", "Cacgia Roglai" }, { "rod", "Rogo" }, { "roe", "Ronji" }, { "rof", "Rombo" }, { "rog", "Northern Roglai" }, { "roh", "Romansh" }, { "rol", "Romblomanon" }, { "rom", "Romany" }, { "ron", "Romanian" }, { "roo", "Rotokas" }, { "rop", "Kriol" }, { "ror", "Rongga" }, { "rou", "Runga" }, { "row", "Dela-Oenale" }, { "rpn", "Repanbitip" }, { "rpt", "Rapting" }, { "rri", "Ririo" }, { "rro", "Waima" }, { "rrt", "Arritinngithigh" }, { "rsb", "Romano-Serbian" }, { "rsi", "Rennellese Sign Language" }, { "rsl", "Russian Sign Language" }, { "rtc", "Rungtu Chin" }, { "rth", "Ratahan" }, { "rtm", "Rotuman" }, { "rtw", "Rathawi" }, { "rub", "Gungu" }, { "ruc", "Ruuli" }, { "rue", "Rusyn" }, { "ruf", "Luguru" }, { "rug", "Roviana" }, { "ruh", "Ruga" }, { "rui", "Rufiji" }, { "ruk", "Che" }, { "run", "Rundi" }, { "ruo", "Istro Romanian" }, { "rup", "Macedo-Romanian" }, { "ruq", "Megleno Romanian" }, { "rus", "Russian" }, { "rut", "Rutul" }, { "ruu", "Lanas Lobu" }, { "ruy", "Mala (Nigeria)" }, { "ruz", "Ruma" }, { "rwa", "Rawo" }, { "rwk", "Rwa" }, { "rwm", "Amba (Uganda)" }, { "rwo", "Rawa" }, { "rwr", "Marwari (India)" }, { "rxd", "Ngardi" }, { "rxw", "Karuwali" }, { "ryn", "Northern Amami-Oshima" }, { "rys", "Yaeyama" }, { "ryu", "Central Okinawan" }, { "saa", "Saba" }, { "sab", "Buglere" }, { "sac", "Meskwaki" }, { "sad", "Sandawe" }, { "sae", "Sabanê" }, { "saf", "Safaliba" }, { "sag", "Sango" }, { "sah", "Yakut" }, { "saj", "Sahu" }, { "sak", "Sake" }, { "sam", "Samaritan Aramaic" }, { "san", "Sanskrit" }, { "sao", "Sause" }, { "sap", "Sanapaná" }, { "saq", "Samburu" }, { "sar", "Saraveca" }, { "sas", "Sasak" }, { "sat", "Santali" }, { "sau", "Saleman" }, { "sav", "Saafi-Saafi" }, { "saw", "Sawi" }, { "sax", "Sa" }, { "say", "Saya" }, { "saz", "Saurashtra" }, { "sba", "Ngambay" }, { "sbb", "Simbo" }, { "sbc", "Kele (Papua New Guinea)" }, { "sbd", "Southern Samo" }, { "sbe", "Saliba" }, { "sbf", "Shabo" }, { "sbg", "Seget" }, { "sbh", "Sori-Harengan" }, { "sbi", "Seti" }, { "sbj", "Surbakhal" }, { "sbk", "Safwa" }, { "sbl", "Botolan Sambal" }, { "sbm", "Sagala" }, { "sbn", "Sindhi Bhil" }, { "sbo", "Sabüm" }, { "sbp", "Sangu (Tanzania)" }, { "sbq", "Sileibi" }, { "sbr", "Sembakung Murut" }, { "sbs", "Subiya" }, { "sbt", "Kimki" }, { "sbu", "Stod Bhoti" }, { "sbv", "Sabine" }, { "sbw", "Simba" }, { "sbx", "Seberuang" }, { "sby", "Soli" }, { "sbz", "Sara Kaba" }, { "scb", "Chut" }, { "sce", "Dongxiang" }, { "scf", "San Miguel Creole French" }, { "scg", "Sanggau" }, { "sch", "Sakachep" }, { "sci", "Sri Lankan Creole Malay" }, { "sck", "Sadri" }, { "scl", "Shina" }, { "scn", "Sicilian" }, { "sco", "Scots" }, { "scp", "Helambu Sherpa" }, { "scq", "Sa'och" }, { "scs", "North Slavey" }, { "scu", "Shumcho" }, { "scv", "Sheni" }, { "scw", "Sha" }, { "scx", "Sicel" }, { "sda", "Toraja-Sa'dan" }, { "sdb", "Shabak" }, { "sdc", "Sassarese Sardinian" }, { "sde", "Surubu" }, { "sdf", "Sarli" }, { "sdg", "Savi" }, { "sdh", "Southern Kurdish" }, { "sdj", "Suundi" }, { "sdk", "Sos Kundi" }, { "sdl", "Saudi Arabian Sign Language" }, { "sdm", "Semandang" }, { "sdn", "Gallurese Sardinian" }, { "sdo", "Bukar-Sadung Bidayuh" }, { "sdp", "Sherdukpen" }, { "sdr", "Oraon Sadri" }, { "sds", "Sened" }, { "sdt", "Shuadit" }, { "sdu", "Sarudu" }, { "sdx", "Sibu Melanau" }, { "sdz", "Sallands" }, { "sea", "Semai" }, { "seb", "Shempire Senoufo" }, { "sec", "Sechelt" }, { "sed", "Sedang" }, { "see", "Seneca" }, { "sef", "Cebaara Senoufo" }, { "seg", "Segeju" }, { "seh", "Sena" }, { "sei", "Seri" }, { "sej", "Sene" }, { "sek", "Sekani" }, { "sel", "Selkup" }, { "sen", "Nanerigé Sénoufo" }, { "seo", "Suarmin" }, { "sep", "Sìcìté Sénoufo" }, { "seq", "Senara Sénoufo" }, { "ser", "Serrano" }, { "ses", "Koyraboro Senni Songhai" }, { "set", "Sentani" }, { "seu", "Serui-Laut" }, { "sev", "Nyarafolo Senoufo" }, { "sew", "Sewa Bay" }, { "sey", "Secoya" }, { "sez", "Senthang Chin" }, { "sfb", "Langue des signes de Belgique Francophone" }, { "sfe", "Eastern Subanen" }, { "sfm", "Small Flowery Miao" }, { "sfs", "South African Sign Language" }, { "sfw", "Sehwi" }, { "sga", "Old Irish (to 900)" }, { "sgb", "Mag-antsi Ayta" }, { "sgc", "Kipsigis" }, { "sgd", "Surigaonon" }, { "sge", "Segai" }, { "sgg", "Swiss-German Sign Language" }, { "sgh", "Shughni" }, { "sgi", "Suga" }, { "sgj", "Surgujia" }, { "sgk", "Sangkong" }, { "sgm", "Singa" }, { "sgo", "Songa" }, { "sgp", "Singpho" }, { "sgr", "Sangisari" }, { "sgs", "Samogitian" }, { "sgt", "Brokpake" }, { "sgu", "Salas" }, { "sgw", "Sebat Bet Gurage" }, { "sgx", "Sierra Leone Sign Language" }, { "sgy", "Sanglechi" }, { "sgz", "Sursurunga" }, { "sha", "Shall-Zwall" }, { "shb", "Ninam" }, { "shc", "Sonde" }, { "shd", "Kundal Shahi" }, { "she", "Sheko" }, { "shg", "Shua" }, { "shh", "Shoshoni" }, { "shi", "Tachelhit" }, { "shj", "Shatt" }, { "shk", "Shilluk" }, { "shl", "Shendu" }, { "shm", "Shahrudi" }, { "shn", "Shan" }, { "sho", "Shanga" }, { "shp", "Shipibo-Conibo" }, { "shq", "Sala" }, { "shr", "Shi" }, { "shs", "Shuswap" }, { "sht", "Shasta" }, { "shu", "Chadian Arabic" }, { "shv", "Shehri" }, { "shw", "Shwai" }, { "shx", "She" }, { "shy", "Tachawit" }, { "shz", "Syenara Senoufo" }, { "sia", "Akkala Sami" }, { "sib", "Sebop" }, { "sid", "Sidamo" }, { "sie", "Simaa" }, { "sif", "Siamou" }, { "sig", "Paasaal" }, { "sih", "Zire" }, { "sii", "Shom Peng" }, { "sij", "Numbami" }, { "sik", "Sikiana" }, { "sil", "Tumulung Sisaala" }, { "sim", "Mende (Papua New Guinea)" }, { "sin", "Sinhala" }, { "sip", "Sikkimese" }, { "siq", "Sonia" }, { "sir", "Siri" }, { "sis", "Siuslaw" }, { "siu", "Sinagen" }, { "siv", "Sumariup" }, { "siw", "Siwai" }, { "six", "Sumau" }, { "siy", "Sivandi" }, { "siz", "Siwi" }, { "sja", "Epena" }, { "sjb", "Sajau Basap" }, { "sjd", "Kildin Sami" }, { "sje", "Pite Sami" }, { "sjg", "Assangori" }, { "sjk", "Kemi Sami" }, { "sjl", "Sajalong" }, { "sjm", "Mapun" }, { "sjn", "Sindarin" }, { "sjo", "Xibe" }, { "sjp", "Surjapuri" }, { "sjr", "Siar-Lak" }, { "sjs", "Senhaja De Srair" }, { "sjt", "Ter Sami" }, { "sju", "Ume Sami" }, { "sjw", "Shawnee" }, { "ska", "Skagit" }, { "skb", "Saek" }, { "skc", "Ma Manda" }, { "skd", "Southern Sierra Miwok" }, { "ske", "Seke (Vanuatu)" }, { "skf", "Sakirabiá" }, { "skg", "Sakalava Malagasy" }, { "skh", "Sikule" }, { "ski", "Sika" }, { "skj", "Seke (Nepal)" }, { "skk", "Sok" }, { "skm", "Kutong" }, { "skn", "Kolibugan Subanon" }, { "sko", "Seko Tengah" }, { "skp", "Sekapan" }, { "skq", "Sininkere" }, { "skr", "Seraiki" }, { "sks", "Maia" }, { "skt", "Sakata" }, { "sku", "Sakao" }, { "skv", "Skou" }, { "skw", "Skepi Creole Dutch" }, { "skx", "Seko Padang" }, { "sky", "Sikaiana" }, { "skz", "Sekar" }, { "slc", "Sáliba" }, { "sld", "Sissala" }, { "sle", "Sholaga" }, { "slf", "Swiss-Italian Sign Language" }, { "slg", "Selungai Murut" }, { "slh", "Southern Puget Sound Salish" }, { "sli", "Lower Silesian" }, { "slj", "Salumá" }, { "slk", "Slovak" }, { "sll", "Salt-Yui" }, { "slm", "Pangutaran Sama" }, { "sln", "Salinan" }, { "slp", "Lamaholot" }, { "slq", "Salchuq" }, { "slr", "Salar" }, { "sls", "Singapore Sign Language" }, { "slt", "Sila" }, { "slu", "Selaru" }, { "slv", "Slovenian" }, { "slw", "Sialum" }, { "slx", "Salampasu" }, { "sly", "Selayar" }, { "slz", "Ma'ya" }, { "sma", "Southern Sami" }, { "smb", "Simbari" }, { "smc", "Som" }, { "smd", "Sama" }, { "sme", "Northern Sami" }, { "smf", "Auwe" }, { "smg", "Simbali" }, { "smh", "Samei" }, { "smj", "Lule Sami" }, { "smk", "Bolinao" }, { "sml", "Central Sama" }, { "smm", "Musasa" }, { "smn", "Inari Sami" }, { "smo", "Samoan" }, { "smp", "Samaritan" }, { "smq", "Samo" }, { "smr", "Simeulue" }, { "sms", "Skolt Sami" }, { "smt", "Simte" }, { "smu", "Somray" }, { "smv", "Samvedi" }, { "smw", "Sumbawa" }, { "smx", "Samba" }, { "smy", "Semnani" }, { "smz", "Simeku" }, { "sna", "Shona" }, { "snb", "Sebuyau" }, { "snc", "Sinaugoro" }, { "snd", "Sindhi" }, { "sne", "Bau Bidayuh" }, { "snf", "Noon" }, { "sng", "Sanga (Democratic Republic of Congo)" }, { "snh", "Shinabo" }, { "sni", "Sensi" }, { "snj", "Riverain Sango" }, { "snk", "Soninke" }, { "snl", "Sangil" }, { "snm", "Southern Ma'di" }, { "snn", "Siona" }, { "sno", "Snohomish" }, { "snp", "Siane" }, { "snq", "Sangu (Gabon)" }, { "snr", "Sihan" }, { "sns", "South West Bay" }, { "snu", "Senggi" }, { "snv", "Sa'ban" }, { "snw", "Selee" }, { "snx", "Sam" }, { "sny", "Saniyo-Hiyewe" }, { "snz", "Sinsauru" }, { "soa", "Thai Song" }, { "sob", "Sobei" }, { "soc", "So (Democratic Republic of Congo)" }, { "sod", "Songoora" }, { "soe", "Songomeno" }, { "sog", "Sogdian" }, { "soh", "Aka" }, { "soi", "Sonha" }, { "soj", "Soi" }, { "sok", "Sokoro" }, { "sol", "Solos" }, { "som", "Somali" }, { "soo", "Songo" }, { "sop", "Songe" }, { "soq", "Kanasi" }, { "sor", "Somrai" }, { "sos", "Seeku" }, { "sot", "Southern Sotho" }, { "sou", "Southern Thai" }, { "sov", "Sonsorol" }, { "sow", "Sowanda" }, { "sox", "Swo" }, { "soy", "Miyobe" }, { "soz", "Temi" }, { "spa", "Spanish" }, { "spb", "Sepa (Indonesia)" }, { "spc", "Sapé" }, { "spd", "Saep" }, { "spe", "Sepa (Papua New Guinea)" }, { "spg", "Sian" }, { "spi", "Saponi" }, { "spk", "Sengo" }, { "spl", "Selepet" }, { "spm", "Akukem" }, { "spo", "Spokane" }, { "spp", "Supyire Senoufo" }, { "spq", "Loreto-Ucayali Spanish" }, { "spr", "Saparua" }, { "sps", "Saposa" }, { "spt", "Spiti Bhoti" }, { "spu", "Sapuan" }, { "spv", "Sambalpuri" }, { "spx", "South Picene" }, { "spy", "Sabaot" }, { "sqa", "Shama-Sambuga" }, { "sqh", "Shau" }, { "sqi", "Albanian" }, { "sqk", "Albanian Sign Language" }, { "sqm", "Suma" }, { "sqn", "Susquehannock" }, { "sqo", "Sorkhei" }, { "sqq", "Sou" }, { "sqr", "Siculo Arabic" }, { "sqs", "Sri Lankan Sign Language" }, { "sqt", "Soqotri" }, { "squ", "Squamish" }, { "sra", "Saruga" }, { "srb", "Sora" }, { "src", "Logudorese Sardinian" }, { "srd", "Sardinian" }, { "sre", "Sara" }, { "srf", "Nafi" }, { "srg", "Sulod" }, { "srh", "Sarikoli" }, { "sri", "Siriano" }, { "srk", "Serudung Murut" }, { "srl", "Isirawa" }, { "srm", "Saramaccan" }, { "srn", "Sranan Tongo" }, { "sro", "Campidanese Sardinian" }, { "srp", "Serbian" }, { "srq", "Sirionó" }, { "srr", "Serer" }, { "srs", "Sarsi" }, { "srt", "Sauri" }, { "sru", "Suruí" }, { "srv", "Southern Sorsoganon" }, { "srw", "Serua" }, { "srx", "Sirmauri" }, { "sry", "Sera" }, { "srz", "Shahmirzadi" }, { "ssb", "Southern Sama" }, { "ssc", "Suba-Simbiti" }, { "ssd", "Siroi" }, { "sse", "Balangingi" }, { "ssf", "Thao" }, { "ssg", "Seimat" }, { "ssh", "Shihhi Arabic" }, { "ssi", "Sansi" }, { "ssj", "Sausi" }, { "ssk", "Sunam" }, { "ssl", "Western Sisaala" }, { "ssm", "Semnam" }, { "ssn", "Waata" }, { "sso", "Sissano" }, { "ssp", "Spanish Sign Language" }, { "ssq", "So'a" }, { "ssr", "Swiss-French Sign Language" }, { "sss", "Sô" }, { "sst", "Sinasina" }, { "ssu", "Susuami" }, { "ssv", "Shark Bay" }, { "ssw", "Swati" }, { "ssx", "Samberigi" }, { "ssy", "Saho" }, { "ssz", "Sengseng" }, { "sta", "Settla" }, { "stb", "Northern Subanen" }, { "std", "Sentinel" }, { "ste", "Liana-Seti" }, { "stf", "Seta" }, { "stg", "Trieng" }, { "sth", "Shelta" }, { "sti", "Bulo Stieng" }, { "stj", "Matya Samo" }, { "stk", "Arammba" }, { "stl", "Stellingwerfs" }, { "stm", "Setaman" }, { "stn", "Owa" }, { "sto", "Stoney" }, { "stp", "Southeastern Tepehuan" }, { "stq", "Saterfriesisch" }, { "str", "Straits Salish" }, { "sts", "Shumashti" }, { "stt", "Budeh Stieng" }, { "stu", "Samtao" }, { "stv", "Silt'e" }, { "stw", "Satawalese" }, { "sty", "Siberian Tatar" }, { "sua", "Sulka" }, { "sub", "Suku" }, { "suc", "Western Subanon" }, { "sue", "Suena" }, { "sug", "Suganga" }, { "sui", "Suki" }, { "suj", "Shubi" }, { "suk", "Sukuma" }, { "sun", "Sundanese" }, { "suq", "Suri" }, { "sur", "Mwaghavul" }, { "sus", "Susu" }, { "sut", "Subtiaba" }, { "suv", "Puroik" }, { "suw", "Sumbwa" }, { "sux", "Sumerian" }, { "suy", "Suyá" }, { "suz", "Sunwar" }, { "sva", "Svan" }, { "svb", "Ulau-Suain" }, { "svc", "Vincentian Creole English" }, { "sve", "Serili" }, { "svk", "Slovakian Sign Language" }, { "svm", "Slavomolisano" }, { "svr", "Savara" }, { "svs", "Savosavo" }, { "svx", "Skalvian" }, { "swa", "Swahili (macrolanguage)" }, { "swb", "Maore Comorian" }, { "swc", "Congo Swahili" }, { "swe", "Swedish" }, { "swf", "Sere" }, { "swg", "Swabian" }, { "swh", "Swahili (individual language)" }, { "swi", "Sui" }, { "swj", "Sira" }, { "swk", "Malawi Sena" }, { "swl", "Swedish Sign Language" }, { "swm", "Samosa" }, { "swn", "Sawknah" }, { "swo", "Shanenawa" }, { "swp", "Suau" }, { "swq", "Sharwa" }, { "swr", "Saweru" }, { "sws", "Seluwasan" }, { "swt", "Sawila" }, { "swu", "Suwawa" }, { "swv", "Shekhawati" }, { "sww", "Sowa" }, { "swx", "Suruahá" }, { "swy", "Sarua" }, { "sxb", "Suba" }, { "sxc", "Sicanian" }, { "sxe", "Sighu" }, { "sxg", "Shixing" }, { "sxk", "Southern Kalapuya" }, { "sxl", "Selian" }, { "sxm", "Samre" }, { "sxn", "Sangir" }, { "sxo", "Sorothaptic" }, { "sxr", "Saaroa" }, { "sxs", "Sasaru" }, { "sxu", "Upper Saxon" }, { "sxw", "Saxwe Gbe" }, { "sya", "Siang" }, { "syb", "Central Subanen" }, { "syc", "Classical Syriac" }, { "syi", "Seki" }, { "syk", "Sukur" }, { "syl", "Sylheti" }, { "sym", "Maya Samo" }, { "syn", "Senaya" }, { "syo", "Suoy" }, { "syr", "Syriac" }, { "sys", "Sinyar" }, { "syw", "Kagate" }, { "syy", "Al-Sayyid Bedouin Sign Language" }, { "sza", "Semelai" }, { "szb", "Ngalum" }, { "szc", "Semaq Beri" }, { "szd", "Seru" }, { "sze", "Seze" }, { "szg", "Sengele" }, { "szl", "Silesian" }, { "szn", "Sula" }, { "szp", "Suabo" }, { "szv", "Isu (Fako Division)" }, { "szw", "Sawai" }, { "taa", "Lower Tanana" }, { "tab", "Tabassaran" }, { "tac", "Lowland Tarahumara" }, { "tad", "Tause" }, { "tae", "Tariana" }, { "taf", "Tapirapé" }, { "tag", "Tagoi" }, { "tah", "Tahitian" }, { "taj", "Eastern Tamang" }, { "tak", "Tala" }, { "tal", "Tal" }, { "tam", "Tamil" }, { "tan", "Tangale" }, { "tao", "Yami" }, { "tap", "Taabwa" }, { "taq", "Tamasheq" }, { "tar", "Central Tarahumara" }, { "tas", "Tay Boi" }, { "tat", "Tatar" }, { "tau", "Upper Tanana" }, { "tav", "Tatuyo" }, { "taw", "Tai" }, { "tax", "Tamki" }, { "tay", "Atayal" }, { "taz", "Tocho" }, { "tba", "Aikanã" }, { "tbb", "Tapeba" }, { "tbc", "Takia" }, { "tbd", "Kaki Ae" }, { "tbe", "Tanimbili" }, { "tbf", "Mandara" }, { "tbg", "North Tairora" }, { "tbh", "Thurawal" }, { "tbi", "Gaam" }, { "tbj", "Tiang" }, { "tbk", "Calamian Tagbanwa" }, { "tbl", "Tboli" }, { "tbm", "Tagbu" }, { "tbn", "Barro Negro Tunebo" }, { "tbo", "Tawala" }, { "tbp", "Taworta" }, { "tbr", "Tumtum" }, { "tbs", "Tanguat" }, { "tbt", "Tembo (Kitembo)" }, { "tbu", "Tubar" }, { "tbv", "Tobo" }, { "tbw", "Tagbanwa" }, { "tbx", "Kapin" }, { "tby", "Tabaru" }, { "tbz", "Ditammari" }, { "tca", "Ticuna" }, { "tcb", "Tanacross" }, { "tcc", "Datooga" }, { "tcd", "Tafi" }, { "tce", "Southern Tutchone" }, { "tcf", "Malinaltepec Me'phaa" }, { "tcg", "Tamagario" }, { "tch", "Turks And Caicos Creole English" }, { "tci", "Wára" }, { "tck", "Tchitchege" }, { "tcl", "Taman (Myanmar)" }, { "tcm", "Tanahmerah" }, { "tcn", "Tichurong" }, { "tco", "Taungyo" }, { "tcp", "Tawr Chin" }, { "tcq", "Kaiy" }, { "tcs", "Torres Strait Creole" }, { "tct", "T'en" }, { "tcu", "Southeastern Tarahumara" }, { "tcw", "Tecpatlán Totonac" }, { "tcx", "Toda" }, { "tcy", "Tulu" }, { "tcz", "Thado Chin" }, { "tda", "Tagdal" }, { "tdb", "Panchpargania" }, { "tdc", "Emberá-Tadó" }, { "tdd", "Tai Nüa" }, { "tde", "Tiranige Diga Dogon" }, { "tdf", "Talieng" }, { "tdg", "Western Tamang" }, { "tdh", "Thulung" }, { "tdi", "Tomadino" }, { "tdj", "Tajio" }, { "tdk", "Tambas" }, { "tdl", "Sur" }, { "tdn", "Tondano" }, { "tdo", "Teme" }, { "tdq", "Tita" }, { "tdr", "Todrah" }, { "tds", "Doutai" }, { "tdt", "Tetun Dili" }, { "tdu", "Tempasuk Dusun" }, { "tdv", "Toro" }, { "tdx", "Tandroy-Mahafaly Malagasy" }, { "tdy", "Tadyawan" }, { "tea", "Temiar" }, { "teb", "Tetete" }, { "tec", "Terik" }, { "ted", "Tepo Krumen" }, { "tee", "Huehuetla Tepehua" }, { "tef", "Teressa" }, { "teg", "Teke-Tege" }, { "teh", "Tehuelche" }, { "tei", "Torricelli" }, { "tek", "Ibali Teke" }, { "tel", "Telugu" }, { "tem", "Timne" }, { "ten", "Tama (Colombia)" }, { "teo", "Teso" }, { "tep", "Tepecano" }, { "teq", "Temein" }, { "ter", "Tereno" }, { "tes", "Tengger" }, { "tet", "Tetum" }, { "teu", "Soo" }, { "tev", "Teor" }, { "tew", "Tewa (USA)" }, { "tex", "Tennet" }, { "tey", "Tulishi" }, { "tfi", "Tofin Gbe" }, { "tfn", "Tanaina" }, { "tfo", "Tefaro" }, { "tfr", "Teribe" }, { "tft", "Ternate" }, { "tga", "Sagalla" }, { "tgb", "Tobilung" }, { "tgc", "Tigak" }, { "tgd", "Ciwogai" }, { "tge", "Eastern Gorkha Tamang" }, { "tgf", "Chalikha" }, { "tgh", "Tobagonian Creole English" }, { "tgi", "Lawunuia" }, { "tgj", "Tagin" }, { "tgk", "Tajik" }, { "tgl", "Tagalog" }, { "tgn", "Tandaganon" }, { "tgo", "Sudest" }, { "tgp", "Tangoa" }, { "tgq", "Tring" }, { "tgr", "Tareng" }, { "tgs", "Nume" }, { "tgt", "Central Tagbanwa" }, { "tgu", "Tanggu" }, { "tgv", "Tingui-Boto" }, { "tgw", "Tagwana Senoufo" }, { "tgx", "Tagish" }, { "tgy", "Togoyo" }, { "tgz", "Tagalaka" }, { "tha", "Thai" }, { "thc", "Tai Hang Tong" }, { "thd", "Thayore" }, { "the", "Chitwania Tharu" }, { "thf", "Thangmi" }, { "thh", "Northern Tarahumara" }, { "thi", "Tai Long" }, { "thk", "Tharaka" }, { "thl", "Dangaura Tharu" }, { "thm", "Aheu" }, { "thn", "Thachanadan" }, { "thp", "Thompson" }, { "thq", "Kochila Tharu" }, { "thr", "Rana Tharu" }, { "ths", "Thakali" }, { "tht", "Tahltan" }, { "thu", "Thuri" }, { "thv", "Tahaggart Tamahaq" }, { "thw", "Thudam" }, { "thx", "The" }, { "thy", "Tha" }, { "thz", "Tayart Tamajeq" }, { "tia", "Tidikelt Tamazight" }, { "tic", "Tira" }, { "tid", "Tidong" }, { "tif", "Tifal" }, { "tig", "Tigre" }, { "tih", "Timugon Murut" }, { "tii", "Tiene" }, { "tij", "Tilung" }, { "tik", "Tikar" }, { "til", "Tillamook" }, { "tim", "Timbe" }, { "tin", "Tindi" }, { "tio", "Teop" }, { "tip", "Trimuris" }, { "tiq", "Tiéfo" }, { "tir", "Tigrinya" }, { "tis", "Masadiit Itneg" }, { "tit", "Tinigua" }, { "tiu", "Adasen" }, { "tiv", "Tiv" }, { "tiw", "Tiwi" }, { "tix", "Southern Tiwa" }, { "tiy", "Tiruray" }, { "tiz", "Tai Hongjin" }, { "tja", "Tajuasohn" }, { "tjg", "Tunjung" }, { "tji", "Northern Tujia" }, { "tjl", "Tai Laing" }, { "tjm", "Timucua" }, { "tjn", "Tonjon" }, { "tjo", "Temacine Tamazight" }, { "tjs", "Southern Tujia" }, { "tju", "Tjurruru" }, { "tjw", "Djabwurrung" }, { "tka", "Truká" }, { "tkb", "Buksa" }, { "tkd", "Tukudede" }, { "tke", "Takwane" }, { "tkf", "Tukumanféd" }, { "tkg", "Tesaka Malagasy" }, { "tkl", "Tokelau" }, { "tkm", "Takelma" }, { "tkn", "Toku-No-Shima" }, { "tkp", "Tikopia" }, { "tkq", "Tee" }, { "tkr", "Tsakhur" }, { "tks", "Takestani" }, { "tkt", "Kathoriya Tharu" }, { "tku", "Upper Necaxa Totonac" }, { "tkw", "Teanu" }, { "tkx", "Tangko" }, { "tkz", "Takua" }, { "tla", "Southwestern Tepehuan" }, { "tlb", "Tobelo" }, { "tlc", "Yecuatla Totonac" }, { "tld", "Talaud" }, { "tlf", "Telefol" }, { "tlg", "Tofanma" }, { "tlh", "Klingon" }, { "tli", "Tlingit" }, { "tlj", "Talinga-Bwisi" }, { "tlk", "Taloki" }, { "tll", "Tetela" }, { "tlm", "Tolomako" }, { "tln", "Talondo'" }, { "tlo", "Talodi" }, { "tlp", "Filomena Mata-Coahuitlán Totonac" }, { "tlq", "Tai Loi" }, { "tlr", "Talise" }, { "tls", "Tambotalo" }, { "tlt", "Teluti" }, { "tlu", "Tulehu" }, { "tlv", "Taliabu" }, { "tlx", "Khehek" }, { "tly", "Talysh" }, { "tma", "Tama (Chad)" }, { "tmb", "Katbol" }, { "tmc", "Tumak" }, { "tmd", "Haruai" }, { "tme", "Tremembé" }, { "tmf", "Toba-Maskoy" }, { "tmg", "Ternateño" }, { "tmh", "Tamashek" }, { "tmi", "Tutuba" }, { "tmj", "Samarokena" }, { "tmk", "Northwestern Tamang" }, { "tml", "Tamnim Citak" }, { "tmm", "Tai Thanh" }, { "tmn", "Taman (Indonesia)" }, { "tmo", "Temoq" }, { "tmp", "Tai Mène" }, { "tmq", "Tumleo" }, { "tmr", "Jewish Babylonian Aramaic (ca. 200-1200 CE)" }, { "tms", "Tima" }, { "tmt", "Tasmate" }, { "tmu", "Iau" }, { "tmv", "Tembo (Motembo)" }, { "tmw", "Temuan" }, { "tmy", "Tami" }, { "tmz", "Tamanaku" }, { "tna", "Tacana" }, { "tnb", "Western Tunebo" }, { "tnc", "Tanimuca-Retuarã" }, { "tnd", "Angosturas Tunebo" }, { "tne", "Tinoc Kallahan" }, { "tng", "Tobanga" }, { "tnh", "Maiani" }, { "tni", "Tandia" }, { "tnk", "Kwamera" }, { "tnl", "Lenakel" }, { "tnm", "Tabla" }, { "tnn", "North Tanna" }, { "tno", "Toromono" }, { "tnp", "Whitesands" }, { "tnq", "Taino" }, { "tnr", "Ménik" }, { "tns", "Tenis" }, { "tnt", "Tontemboan" }, { "tnu", "Tay Khang" }, { "tnv", "Tangchangya" }, { "tnw", "Tonsawang" }, { "tnx", "Tanema" }, { "tny", "Tongwe" }, { "tnz", "Tonga (Thailand)" }, { "tob", "Toba" }, { "toc", "Coyutla Totonac" }, { "tod", "Toma" }, { "toe", "Tomedes" }, { "tof", "Gizrra" }, { "tog", "Tonga (Nyasa)" }, { "toh", "Gitonga" }, { "toi", "Tonga (Zambia)" }, { "toj", "Tojolabal" }, { "tol", "Tolowa" }, { "tom", "Tombulu" }, { "ton", "Tonga (Tonga Islands)" }, { "too", "Xicotepec De Juárez Totonac" }, { "top", "Papantla Totonac" }, { "toq", "Toposa" }, { "tor", "Togbo-Vara Banda" }, { "tos", "Highland Totonac" }, { "tou", "Tho" }, { "tov", "Upper Taromi" }, { "tow", "Jemez" }, { "tox", "Tobian" }, { "toy", "Topoiyo" }, { "toz", "To" }, { "tpa", "Taupota" }, { "tpc", "Azoyú Me'phaa" }, { "tpe", "Tippera" }, { "tpf", "Tarpia" }, { "tpg", "Kula" }, { "tpi", "Tok Pisin" }, { "tpj", "Tapieté" }, { "tpk", "Tupinikin" }, { "tpl", "Tlacoapa Me'phaa" }, { "tpm", "Tampulma" }, { "tpn", "Tupinambá" }, { "tpo", "Tai Pao" }, { "tpp", "Pisaflores Tepehua" }, { "tpq", "Tukpa" }, { "tpr", "Tuparí" }, { "tpt", "Tlachichilco Tepehua" }, { "tpu", "Tampuan" }, { "tpv", "Tanapag" }, { "tpw", "Tupí" }, { "tpx", "Acatepec Me'phaa" }, { "tpy", "Trumai" }, { "tpz", "Tinputz" }, { "tqb", "Tembé" }, { "tql", "Lehali" }, { "tqm", "Turumsa" }, { "tqn", "Tenino" }, { "tqo", "Toaripi" }, { "tqp", "Tomoip" }, { "tqq", "Tunni" }, { "tqr", "Torona" }, { "tqt", "Western Totonac" }, { "tqu", "Touo" }, { "tqw", "Tonkawa" }, { "tra", "Tirahi" }, { "trb", "Terebu" }, { "trc", "Copala Triqui" }, { "trd", "Turi" }, { "tre", "East Tarangan" }, { "trf", "Trinidadian Creole English" }, { "trg", "Lishán Didán" }, { "trh", "Turaka" }, { "tri", "Trió" }, { "trj", "Toram" }, { "trl", "Traveller Scottish" }, { "trm", "Tregami" }, { "trn", "Trinitario" }, { "tro", "Tarao Naga" }, { "trp", "Kok Borok" }, { "trq", "San Martín Itunyoso Triqui" }, { "trr", "Taushiro" }, { "trs", "Chicahuaxtla Triqui" }, { "trt", "Tunggare" }, { "tru", "Turoyo" }, { "trv", "Taroko" }, { "trw", "Torwali" }, { "trx", "Tringgus-Sembaan Bidayuh" }, { "try", "Turung" }, { "trz", "Torá" }, { "tsa", "Tsaangi" }, { "tsb", "Tsamai" }, { "tsc", "Tswa" }, { "tsd", "Tsakonian" }, { "tse", "Tunisian Sign Language" }, { "tsf", "Southwestern Tamang" }, { "tsg", "Tausug" }, { "tsh", "Tsuvan" }, { "tsi", "Tsimshian" }, { "tsj", "Tshangla" }, { "tsk", "Tseku" }, { "tsl", "Ts'ün-Lao" }, { "tsm", "Turkish Sign Language" }, { "tsn", "Tswana" }, { "tso", "Tsonga" }, { "tsp", "Northern Toussian" }, { "tsq", "Thai Sign Language" }, { "tsr", "Akei" }, { "tss", "Taiwan Sign Language" }, { "tst", "Tondi Songway Kiini" }, { "tsu", "Tsou" }, { "tsv", "Tsogo" }, { "tsw", "Tsishingini" }, { "tsx", "Mubami" }, { "tsy", "Tebul Sign Language" }, { "tsz", "Purepecha" }, { "tta", "Tutelo" }, { "ttb", "Gaa" }, { "ttc", "Tektiteko" }, { "ttd", "Tauade" }, { "tte", "Bwanabwana" }, { "ttf", "Tuotomb" }, { "ttg", "Tutong" }, { "tth", "Upper Ta'oih" }, { "tti", "Tobati" }, { "ttj", "Tooro" }, { "ttk", "Totoro" }, { "ttl", "Totela" }, { "ttm", "Northern Tutchone" }, { "ttn", "Towei" }, { "tto", "Lower Ta'oih" }, { "ttp", "Tombelala" }, { "ttq", "Tawallammat Tamajaq" }, { "ttr", "Tera" }, { "tts", "Northeastern Thai" }, { "ttt", "Muslim Tat" }, { "ttu", "Torau" }, { "ttv", "Titan" }, { "ttw", "Long Wat" }, { "tty", "Sikaritai" }, { "ttz", "Tsum" }, { "tua", "Wiarumus" }, { "tub", "Tübatulabal" }, { "tuc", "Mutu" }, { "tud", "Tuxá" }, { "tue", "Tuyuca" }, { "tuf", "Central Tunebo" }, { "tug", "Tunia" }, { "tuh", "Taulil" }, { "tui", "Tupuri" }, { "tuj", "Tugutil" }, { "tuk", "Turkmen" }, { "tul", "Tula" }, { "tum", "Tumbuka" }, { "tun", "Tunica" }, { "tuo", "Tucano" }, { "tuq", "Tedaga" }, { "tur", "Turkish" }, { "tus", "Tuscarora" }, { "tuu", "Tututni" }, { "tuv", "Turkana" }, { "tux", "Tuxináwa" }, { "tuy", "Tugen" }, { "tuz", "Turka" }, { "tva", "Vaghua" }, { "tvd", "Tsuvadi" }, { "tve", "Te'un" }, { "tvk", "Southeast Ambrym" }, { "tvl", "Tuvalu" }, { "tvm", "Tela-Masbuar" }, { "tvn", "Tavoyan" }, { "tvo", "Tidore" }, { "tvs", "Taveta" }, { "tvt", "Tutsa Naga" }, { "tvu", "Tunen" }, { "tvw", "Sedoa" }, { "tvy", "Timor Pidgin" }, { "twa", "Twana" }, { "twb", "Western Tawbuid" }, { "twc", "Teshenawa" }, { "twd", "Twents" }, { "twe", "Tewa (Indonesia)" }, { "twf", "Northern Tiwa" }, { "twg", "Tereweng" }, { "twh", "Tai Dón" }, { "twi", "Twi" }, { "twl", "Tawara" }, { "twm", "Tawang Monpa" }, { "twn", "Twendi" }, { "two", "Tswapong" }, { "twp", "Ere" }, { "twq", "Tasawaq" }, { "twr", "Southwestern Tarahumara" }, { "twt", "Turiwára" }, { "twu", "Termanu" }, { "tww", "Tuwari" }, { "twx", "Tewe" }, { "twy", "Tawoyan" }, { "txa", "Tombonuo" }, { "txb", "Tokharian B" }, { "txc", "Tsetsaut" }, { "txe", "Totoli" }, { "txg", "Tangut" }, { "txh", "Thracian" }, { "txi", "Ikpeng" }, { "txm", "Tomini" }, { "txn", "West Tarangan" }, { "txo", "Toto" }, { "txq", "Tii" }, { "txr", "Tartessian" }, { "txs", "Tonsea" }, { "txt", "Citak" }, { "txu", "Kayapó" }, { "txx", "Tatana" }, { "txy", "Tanosy Malagasy" }, { "tya", "Tauya" }, { "tye", "Kyanga" }, { "tyh", "O'du" }, { "tyi", "Teke-Tsaayi" }, { "tyj", "Tai Do" }, { "tyl", "Thu Lao" }, { "tyn", "Kombai" }, { "typ", "Thaypan" }, { "tyr", "Tai Daeng" }, { "tys", "Tày Sa Pa" }, { "tyt", "Tày Tac" }, { "tyu", "Kua" }, { "tyv", "Tuvinian" }, { "tyx", "Teke-Tyee" }, { "tyz", "Tày" }, { "tza", "Tanzanian Sign Language" }, { "tzh", "Tzeltal" }, { "tzj", "Tz'utujil" }, { "tzl", "Talossan" }, { "tzm", "Central Atlas Tamazight" }, { "tzn", "Tugun" }, { "tzo", "Tzotzil" }, { "tzx", "Tabriak" }, { "uam", "Uamué" }, { "uan", "Kuan" }, { "uar", "Tairuma" }, { "uba", "Ubang" }, { "ubi", "Ubi" }, { "ubl", "Buhi'non Bikol" }, { "ubr", "Ubir" }, { "ubu", "Umbu-Ungu" }, { "uby", "Ubykh" }, { "uda", "Uda" }, { "ude", "Udihe" }, { "udg", "Muduga" }, { "udi", "Udi" }, { "udj", "Ujir" }, { "udl", "Wuzlam" }, { "udm", "Udmurt" }, { "udu", "Uduk" }, { "ues", "Kioko" }, { "ufi", "Ufim" }, { "uga", "Ugaritic" }, { "ugb", "Kuku-Ugbanh" }, { "uge", "Ughele" }, { "ugn", "Ugandan Sign Language" }, { "ugo", "Ugong" }, { "ugy", "Uruguayan Sign Language" }, { "uha", "Uhami" }, { "uhn", "Damal" }, { "uig", "Uighur" }, { "uis", "Uisai" }, { "uiv", "Iyive" }, { "uji", "Tanjijili" }, { "uka", "Kaburi" }, { "ukg", "Ukuriguma" }, { "ukh", "Ukhwejo" }, { "ukl", "Ukrainian Sign Language" }, { "ukp", "Ukpe-Bayobiri" }, { "ukq", "Ukwa" }, { "ukr", "Ukrainian" }, { "uks", "Urubú-Kaapor Sign Language" }, { "uku", "Ukue" }, { "ukw", "Ukwuani-Aboh-Ndoni" }, { "uky", "Kuuk-Yak" }, { "ula", "Fungwa" }, { "ulb", "Ulukwumi" }, { "ulc", "Ulch" }, { "ule", "Lule" }, { "ulf", "Usku" }, { "uli", "Ulithian" }, { "ulk", "Meriam" }, { "ull", "Ullatan" }, { "ulm", "Ulumanda'" }, { "uln", "Unserdeutsch" }, { "ulu", "Uma' Lung" }, { "ulw", "Ulwa" }, { "uma", "Umatilla" }, { "umb", "Umbundu" }, { "umc", "Marrucinian" }, { "umd", "Umbindhamu" }, { "umg", "Umbuygamu" }, { "umi", "Ukit" }, { "umm", "Umon" }, { "umn", "Makyan Naga" }, { "umo", "Umotína" }, { "ump", "Umpila" }, { "umr", "Umbugarla" }, { "ums", "Pendau" }, { "umu", "Munsee" }, { "una", "North Watut" }, { "und", "Undetermined" }, { "une", "Uneme" }, { "ung", "Ngarinyin" }, { "unk", "Enawené-Nawé" }, { "unm", "Unami" }, { "unn", "Kurnai" }, { "unr", "Mundari" }, { "unu", "Unubahe" }, { "unx", "Munda" }, { "unz", "Unde Kaili" }, { "uok", "Uokha" }, { "upi", "Umeda" }, { "upv", "Uripiv-Wala-Rano-Atchin" }, { "ura", "Urarina" }, { "urb", "Urubú-Kaapor" }, { "urc", "Urningangg" }, { "urd", "Urdu" }, { "ure", "Uru" }, { "urf", "Uradhi" }, { "urg", "Urigina" }, { "urh", "Urhobo" }, { "uri", "Urim" }, { "urk", "Urak Lawoi'" }, { "url", "Urali" }, { "urm", "Urapmin" }, { "urn", "Uruangnirin" }, { "uro", "Ura (Papua New Guinea)" }, { "urp", "Uru-Pa-In" }, { "urr", "Lehalurup" }, { "urt", "Urat" }, { "uru", "Urumi" }, { "urv", "Uruava" }, { "urw", "Sop" }, { "urx", "Urimo" }, { "ury", "Orya" }, { "urz", "Uru-Eu-Wau-Wau" }, { "usa", "Usarufa" }, { "ush", "Ushojo" }, { "usi", "Usui" }, { "usk", "Usaghade" }, { "usp", "Uspanteco" }, { "usu", "Uya" }, { "uta", "Otank" }, { "ute", "Ute-Southern Paiute" }, { "utp", "Amba (Solomon Islands)" }, { "utr", "Etulo" }, { "utu", "Utu" }, { "uum", "Urum" }, { "uun", "Kulon-Pazeh" }, { "uur", "Ura (Vanuatu)" }, { "uuu", "U" }, { "uve", "West Uvean" }, { "uvh", "Uri" }, { "uvl", "Lote" }, { "uwa", "Kuku-Uwanh" }, { "uya", "Doko-Uyanga" }, { "uzb", "Uzbek" }, { "uzn", "Northern Uzbek" }, { "uzs", "Southern Uzbek" }, { "vaa", "Vaagri Booli" }, { "vae", "Vale" }, { "vaf", "Vafsi" }, { "vag", "Vagla" }, { "vah", "Varhadi-Nagpuri" }, { "vai", "Vai" }, { "vaj", "Vasekela Bushman" }, { "val", "Vehes" }, { "vam", "Vanimo" }, { "van", "Valman" }, { "vao", "Vao" }, { "vap", "Vaiphei" }, { "var", "Huarijio" }, { "vas", "Vasavi" }, { "vau", "Vanuma" }, { "vav", "Varli" }, { "vay", "Wayu" }, { "vbb", "Southeast Babar" }, { "vbk", "Southwestern Bontok" }, { "vec", "Venetian" }, { "ved", "Veddah" }, { "vel", "Veluws" }, { "vem", "Vemgo-Mabas" }, { "ven", "Venda" }, { "veo", "Ventureño" }, { "vep", "Veps" }, { "ver", "Mom Jango" }, { "vgr", "Vaghri" }, { "vgt", "Vlaamse Gebarentaal" }, { "vic", "Virgin Islands Creole English" }, { "vid", "Vidunda" }, { "vie", "Vietnamese" }, { "vif", "Vili" }, { "vig", "Viemo" }, { "vil", "Vilela" }, { "vin", "Vinza" }, { "vis", "Vishavan" }, { "vit", "Viti" }, { "viv", "Iduna" }, { "vka", "Kariyarra" }, { "vki", "Ija-Zuba" }, { "vkj", "Kujarge" }, { "vkk", "Kaur" }, { "vkl", "Kulisusu" }, { "vkm", "Kamakan" }, { "vko", "Kodeoha" }, { "vkp", "Korlai Creole Portuguese" }, { "vkt", "Tenggarong Kutai Malay" }, { "vku", "Kurrama" }, { "vlp", "Valpei" }, { "vls", "Vlaams" }, { "vma", "Martuyhunira" }, { "vmb", "Barbaram" }, { "vmc", "Juxtlahuaca Mixtec" }, { "vmd", "Mudu Koraga" }, { "vme", "East Masela" }, { "vmf", "Mainfränkisch" }, { "vmg", "Lungalunga" }, { "vmh", "Maraghei" }, { "vmi", "Miwa" }, { "vmj", "Ixtayutla Mixtec" }, { "vmk", "Makhuwa-Shirima" }, { "vml", "Malgana" }, { "vmm", "Mitlatongo Mixtec" }, { "vmp", "Soyaltepec Mazatec" }, { "vmq", "Soyaltepec Mixtec" }, { "vmr", "Marenje" }, { "vms", "Moksela" }, { "vmu", "Muluridyi" }, { "vmv", "Valley Maidu" }, { "vmw", "Makhuwa" }, { "vmx", "Tamazola Mixtec" }, { "vmy", "Ayautla Mazatec" }, { "vmz", "Mazatlán Mazatec" }, { "vnk", "Vano" }, { "vnm", "Vinmavis" }, { "vnp", "Vunapu" }, { "vol", "Volapük" }, { "vor", "Voro" }, { "vot", "Votic" }, { "vra", "Vera'a" }, { "vro", "Võro" }, { "vrs", "Varisi" }, { "vrt", "Burmbar" }, { "vsi", "Moldova Sign Language" }, { "vsl", "Venezuelan Sign Language" }, { "vsv", "Valencian Sign Language" }, { "vto", "Vitou" }, { "vum", "Vumbu" }, { "vun", "Vunjo" }, { "vut", "Vute" }, { "vwa", "Awa (China)" }, { "waa", "Walla Walla" }, { "wab", "Wab" }, { "wac", "Wasco-Wishram" }, { "wad", "Wandamen" }, { "wae", "Walser" }, { "waf", "Wakoná" }, { "wag", "Wa'ema" }, { "wah", "Watubela" }, { "wai", "Wares" }, { "waj", "Waffa" }, { "wal", "Wolaytta" }, { "wam", "Wampanoag" }, { "wan", "Wan" }, { "wao", "Wappo" }, { "wap", "Wapishana" }, { "waq", "Wageman" }, { "war", "Waray (Philippines)" }, { "was", "Washo" }, { "wat", "Kaninuwa" }, { "wau", "Waurá" }, { "wav", "Waka" }, { "waw", "Waiwai" }, { "wax", "Watam" }, { "way", "Wayana" }, { "waz", "Wampur" }, { "wba", "Warao" }, { "wbb", "Wabo" }, { "wbe", "Waritai" }, { "wbf", "Wara" }, { "wbh", "Wanda" }, { "wbi", "Vwanji" }, { "wbj", "Alagwa" }, { "wbk", "Waigali" }, { "wbl", "Wakhi" }, { "wbm", "Wa" }, { "wbp", "Warlpiri" }, { "wbq", "Waddar" }, { "wbr", "Wagdi" }, { "wbt", "Wanman" }, { "wbv", "Wajarri" }, { "wbw", "Woi" }, { "wca", "Yanomámi" }, { "wci", "Waci Gbe" }, { "wdd", "Wandji" }, { "wdg", "Wadaginam" }, { "wdj", "Wadjiginy" }, { "wdk", "Wadikali" }, { "wdu", "Wadjigu" }, { "wdy", "Wadjabangayi" }, { "wea", "Wewaw" }, { "wec", "Wè Western" }, { "wed", "Wedau" }, { "weg", "Wergaia" }, { "weh", "Weh" }, { "wei", "Kiunum" }, { "wem", "Weme Gbe" }, { "weo", "Wemale" }, { "wep", "Westphalien" }, { "wer", "Weri" }, { "wes", "Cameroon Pidgin" }, { "wet", "Perai" }, { "weu", "Rawngtu Chin" }, { "wew", "Wejewa" }, { "wfg", "Yafi" }, { "wga", "Wagaya" }, { "wgb", "Wagawaga" }, { "wgg", "Wangganguru" }, { "wgi", "Wahgi" }, { "wgo", "Waigeo" }, { "wgu", "Wirangu" }, { "wgy", "Warrgamay" }, { "wha", "Manusela" }, { "whg", "North Wahgi" }, { "whk", "Wahau Kenyah" }, { "whu", "Wahau Kayan" }, { "wib", "Southern Toussian" }, { "wic", "Wichita" }, { "wie", "Wik-Epa" }, { "wif", "Wik-Keyangan" }, { "wig", "Wik-Ngathana" }, { "wih", "Wik-Me'anha" }, { "wii", "Minidien" }, { "wij", "Wik-Iiyanh" }, { "wik", "Wikalkan" }, { "wil", "Wilawila" }, { "wim", "Wik-Mungkan" }, { "win", "Ho-Chunk" }, { "wir", "Wiraféd" }, { "wiu", "Wiru" }, { "wiv", "Vitu" }, { "wiy", "Wiyot" }, { "wja", "Waja" }, { "wji", "Warji" }, { "wka", "Kw'adza" }, { "wkb", "Kumbaran" }, { "wkd", "Wakde" }, { "wkl", "Kalanadi" }, { "wku", "Kunduvadi" }, { "wkw", "Wakawaka" }, { "wky", "Wangkayutyuru" }, { "wla", "Walio" }, { "wlc", "Mwali Comorian" }, { "wle", "Wolane" }, { "wlg", "Kunbarlang" }, { "wli", "Waioli" }, { "wlk", "Wailaki" }, { "wll", "Wali (Sudan)" }, { "wlm", "Middle Welsh" }, { "wln", "Walloon" }, { "wlo", "Wolio" }, { "wlr", "Wailapa" }, { "wls", "Wallisian" }, { "wlu", "Wuliwuli" }, { "wlv", "Wichí Lhamtés Vejoz" }, { "wlw", "Walak" }, { "wlx", "Wali (Ghana)" }, { "wly", "Waling" }, { "wma", "Mawa (Nigeria)" }, { "wmb", "Wambaya" }, { "wmc", "Wamas" }, { "wmd", "Mamaindé" }, { "wme", "Wambule" }, { "wmh", "Waima'a" }, { "wmi", "Wamin" }, { "wmm", "Maiwa (Indonesia)" }, { "wmn", "Waamwang" }, { "wmo", "Wom (Papua New Guinea)" }, { "wms", "Wambon" }, { "wmt", "Walmajarri" }, { "wmw", "Mwani" }, { "wmx", "Womo" }, { "wnb", "Wanambre" }, { "wnc", "Wantoat" }, { "wnd", "Wandarang" }, { "wne", "Waneci" }, { "wng", "Wanggom" }, { "wni", "Ndzwani Comorian" }, { "wnk", "Wanukaka" }, { "wnm", "Wanggamala" }, { "wnn", "Wunumara" }, { "wno", "Wano" }, { "wnp", "Wanap" }, { "wnu", "Usan" }, { "wnw", "Wintu" }, { "wny", "Wanyi" }, { "woa", "Tyaraity" }, { "wob", "Wè Northern" }, { "woc", "Wogeo" }, { "wod", "Wolani" }, { "woe", "Woleaian" }, { "wof", "Gambian Wolof" }, { "wog", "Wogamusin" }, { "woi", "Kamang" }, { "wok", "Longto" }, { "wol", "Wolof" }, { "wom", "Wom (Nigeria)" }, { "won", "Wongo" }, { "woo", "Manombai" }, { "wor", "Woria" }, { "wos", "Hanga Hundi" }, { "wow", "Wawonii" }, { "woy", "Weyto" }, { "wpc", "Maco" }, { "wra", "Warapu" }, { "wrb", "Warluwara" }, { "wrd", "Warduji" }, { "wrg", "Warungu" }, { "wrh", "Wiradhuri" }, { "wri", "Wariyangga" }, { "wrk", "Garrwa" }, { "wrl", "Warlmanpa" }, { "wrm", "Warumungu" }, { "wrn", "Warnang" }, { "wro", "Worrorra" }, { "wrp", "Waropen" }, { "wrr", "Wardaman" }, { "wrs", "Waris" }, { "wru", "Waru" }, { "wrv", "Waruna" }, { "wrw", "Gugu Warra" }, { "wrx", "Wae Rana" }, { "wry", "Merwari" }, { "wrz", "Waray (Australia)" }, { "wsa", "Warembori" }, { "wsi", "Wusi" }, { "wsk", "Waskia" }, { "wsr", "Owenia" }, { "wss", "Wasa" }, { "wsu", "Wasu" }, { "wsv", "Wotapuri-Katarqalai" }, { "wtf", "Watiwa" }, { "wth", "Wathawurrung" }, { "wti", "Berta" }, { "wtk", "Watakataui" }, { "wtm", "Mewati" }, { "wtw", "Wotu" }, { "wua", "Wikngenchera" }, { "wub", "Wunambal" }, { "wud", "Wudu" }, { "wuh", "Wutunhua" }, { "wul", "Silimo" }, { "wum", "Wumbvu" }, { "wun", "Bungu" }, { "wur", "Wurrugu" }, { "wut", "Wutung" }, { "wuu", "Wu Chinese" }, { "wuv", "Wuvulu-Aua" }, { "wux", "Wulna" }, { "wuy", "Wauyai" }, { "wwa", "Waama" }, { "wwb", "Wakabunga" }, { "wwo", "Wetamut" }, { "wwr", "Warrwa" }, { "www", "Wawa" }, { "wxa", "Waxianghua" }, { "wxw", "Wardandi" }, { "wya", "Wyandot" }, { "wyb", "Wangaaybuwan-Ngiyambaa" }, { "wyi", "Woiwurrung" }, { "wym", "Wymysorys" }, { "wyr", "Wayoró" }, { "wyy", "Western Fijian" }, { "xaa", "Andalusian Arabic" }, { "xab", "Sambe" }, { "xac", "Kachari" }, { "xad", "Adai" }, { "xae", "Aequian" }, { "xag", "Aghwan" }, { "xai", "Kaimbé" }, { "xal", "Kalmyk" }, { "xam", "Xam" }, { "xan", "Xamtanga" }, { "xao", "Khao" }, { "xap", "Apalachee" }, { "xaq", "Aquitanian" }, { "xar", "Karami" }, { "xas", "Kamas" }, { "xat", "Katawixi" }, { "xau", "Kauwera" }, { "xav", "Xavánte" }, { "xaw", "Kawaiisu" }, { "xay", "Kayan Mahakam" }, { "xba", "Kamba (Brazil)" }, { "xbb", "Lower Burdekin" }, { "xbc", "Bactrian" }, { "xbd", "Bindal" }, { "xbe", "Bigambal" }, { "xbg", "Bunganditj" }, { "xbi", "Kombio" }, { "xbj", "Birrpayi" }, { "xbm", "Middle Breton" }, { "xbn", "Kenaboi" }, { "xbo", "Bolgarian" }, { "xbp", "Bibbulman" }, { "xbr", "Kambera" }, { "xbw", "Kambiwá" }, { "xbx", "Kabixí" }, { "xby", "Batyala" }, { "xcb", "Cumbric" }, { "xcc", "Camunic" }, { "xce", "Celtiberian" }, { "xcg", "Cisalpine Gaulish" }, { "xch", "Chemakum" }, { "xcl", "Classical Armenian" }, { "xcm", "Comecrudo" }, { "xcn", "Cotoname" }, { "xco", "Chorasmian" }, { "xcr", "Carian" }, { "xct", "Classical Tibetan" }, { "xcu", "Curonian" }, { "xcv", "Chuvantsy" }, { "xcw", "Coahuilteco" }, { "xcy", "Cayuse" }, { "xda", "Darkinyung" }, { "xdc", "Dacian" }, { "xdk", "Dharuk" }, { "xdm", "Edomite" }, { "xdy", "Malayic Dayak" }, { "xeb", "Eblan" }, { "xed", "Hdi" }, { "xeg", "Xegwi" }, { "xel", "Kelo" }, { "xem", "Kembayan" }, { "xep", "Epi-Olmec" }, { "xer", "Xerénte" }, { "xes", "Kesawai" }, { "xet", "Xetá" }, { "xeu", "Keoru-Ahia" }, { "xfa", "Faliscan" }, { "xga", "Galatian" }, { "xgb", "Gbin" }, { "xgd", "Gudang" }, { "xgf", "Gabrielino-Fernandeño" }, { "xgg", "Goreng" }, { "xgi", "Garingbal" }, { "xgl", "Galindan" }, { "xgm", "Guwinmal" }, { "xgr", "Garza" }, { "xgu", "Unggumi" }, { "xgw", "Guwa" }, { "xha", "Harami" }, { "xhc", "Hunnic" }, { "xhd", "Hadrami" }, { "xhe", "Khetrani" }, { "xho", "Xhosa" }, { "xhr", "Hernican" }, { "xht", "Hattic" }, { "xhu", "Hurrian" }, { "xhv", "Khua" }, { "xib", "Iberian" }, { "xii", "Xiri" }, { "xil", "Illyrian" }, { "xin", "Xinca" }, { "xip", "Xipináwa" }, { "xir", "Xiriâna" }, { "xiv", "Indus Valley Language" }, { "xiy", "Xipaya" }, { "xjb", "Minjungbal" }, { "xjt", "Jaitmatang" }, { "xka", "Kalkoti" }, { "xkb", "Northern Nago" }, { "xkc", "Kho'ini" }, { "xkd", "Mendalam Kayan" }, { "xke", "Kereho" }, { "xkf", "Khengkha" }, { "xkg", "Kagoro" }, { "xkh", "Karahawyana" }, { "xki", "Kenyan Sign Language" }, { "xkj", "Kajali" }, { "xkk", "Kaco'" }, { "xkl", "Mainstream Kenyah" }, { "xkn", "Kayan River Kayan" }, { "xko", "Kiorr" }, { "xkp", "Kabatei" }, { "xkq", "Koroni" }, { "xkr", "Xakriabá" }, { "xks", "Kumbewaha" }, { "xkt", "Kantosi" }, { "xku", "Kaamba" }, { "xkv", "Kgalagadi" }, { "xkw", "Kembra" }, { "xkx", "Karore" }, { "xky", "Uma' Lasan" }, { "xkz", "Kurtokha" }, { "xla", "Kamula" }, { "xlb", "Loup B" }, { "xlc", "Lycian" }, { "xld", "Lydian" }, { "xle", "Lemnian" }, { "xlg", "Ligurian (Ancient)" }, { "xli", "Liburnian" }, { "xln", "Alanic" }, { "xlo", "Loup A" }, { "xlp", "Lepontic" }, { "xls", "Lusitanian" }, { "xlu", "Cuneiform Luwian" }, { "xly", "Elymian" }, { "xma", "Mushungulu" }, { "xmb", "Mbonga" }, { "xmc", "Makhuwa-Marrevone" }, { "xmd", "Mbudum" }, { "xme", "Median" }, { "xmf", "Mingrelian" }, { "xmg", "Mengaka" }, { "xmh", "Kuku-Muminh" }, { "xmj", "Majera" }, { "xmk", "Ancient Macedonian" }, { "xml", "Malaysian Sign Language" }, { "xmm", "Manado Malay" }, { "xmn", "Manichaean Middle Persian" }, { "xmo", "Morerebi" }, { "xmp", "Kuku-Mu'inh" }, { "xmq", "Kuku-Mangk" }, { "xmr", "Meroitic" }, { "xms", "Moroccan Sign Language" }, { "xmt", "Matbat" }, { "xmu", "Kamu" }, { "xmv", "Antankarana Malagasy" }, { "xmw", "Tsimihety Malagasy" }, { "xmx", "Maden" }, { "xmy", "Mayaguduna" }, { "xmz", "Mori Bawah" }, { "xna", "Ancient North Arabian" }, { "xnb", "Kanakanabu" }, { "xng", "Middle Mongolian" }, { "xnh", "Kuanhua" }, { "xni", "Ngarigu" }, { "xnk", "Nganakarti" }, { "xnn", "Northern Kankanay" }, { "xno", "Anglo-Norman" }, { "xnr", "Kangri" }, { "xns", "Kanashi" }, { "xnt", "Narragansett" }, { "xnu", "Nukunul" }, { "xny", "Nyiyaparli" }, { "xnz", "Kenzi" }, { "xoc", "O'chi'chi'" }, { "xod", "Kokoda" }, { "xog", "Soga" }, { "xoi", "Kominimung" }, { "xok", "Xokleng" }, { "xom", "Komo (Sudan)" }, { "xon", "Konkomba" }, { "xoo", "Xukurú" }, { "xop", "Kopar" }, { "xor", "Korubo" }, { "xow", "Kowaki" }, { "xpa", "Pirriya" }, { "xpc", "Pecheneg" }, { "xpe", "Liberia Kpelle" }, { "xpg", "Phrygian" }, { "xpi", "Pictish" }, { "xpj", "Mpalitjanh" }, { "xpk", "Kulina Pano" }, { "xpm", "Pumpokol" }, { "xpn", "Kapinawá" }, { "xpo", "Pochutec" }, { "xpp", "Puyo-Paekche" }, { "xpq", "Mohegan-Pequot" }, { "xpr", "Parthian" }, { "xps", "Pisidian" }, { "xpt", "Punthamara" }, { "xpu", "Punic" }, { "xpy", "Puyo" }, { "xqa", "Karakhanid" }, { "xqt", "Qatabanian" }, { "xra", "Krahô" }, { "xrb", "Eastern Karaboro" }, { "xrd", "Gundungurra" }, { "xre", "Kreye" }, { "xrg", "Minang" }, { "xri", "Krikati-Timbira" }, { "xrm", "Armazic" }, { "xrn", "Arin" }, { "xrq", "Karranga" }, { "xrr", "Raetic" }, { "xrt", "Aranama-Tamique" }, { "xru", "Marriammu" }, { "xrw", "Karawa" }, { "xsa", "Sabaean" }, { "xsb", "Sambal" }, { "xsc", "Scythian" }, { "xsd", "Sidetic" }, { "xse", "Sempan" }, { "xsh", "Shamang" }, { "xsi", "Sio" }, { "xsj", "Subi" }, { "xsl", "South Slavey" }, { "xsm", "Kasem" }, { "xsn", "Sanga (Nigeria)" }, { "xso", "Solano" }, { "xsp", "Silopi" }, { "xsq", "Makhuwa-Saka" }, { "xsr", "Sherpa" }, { "xss", "Assan" }, { "xsu", "Sanumá" }, { "xsv", "Sudovian" }, { "xsy", "Saisiyat" }, { "xta", "Alcozauca Mixtec" }, { "xtb", "Chazumba Mixtec" }, { "xtc", "Katcha-Kadugli-Miri" }, { "xtd", "Diuxi-Tilantongo Mixtec" }, { "xte", "Ketengban" }, { "xtg", "Transalpine Gaulish" }, { "xth", "Yitha Yitha" }, { "xti", "Sinicahua Mixtec" }, { "xtj", "San Juan Teita Mixtec" }, { "xtl", "Tijaltepec Mixtec" }, { "xtm", "Magdalena Peñasco Mixtec" }, { "xtn", "Northern Tlaxiaco Mixtec" }, { "xto", "Tokharian A" }, { "xtp", "San Miguel Piedras Mixtec" }, { "xtq", "Tumshuqese" }, { "xtr", "Early Tripuri" }, { "xts", "Sindihui Mixtec" }, { "xtt", "Tacahua Mixtec" }, { "xtu", "Cuyamecalco Mixtec" }, { "xtv", "Thawa" }, { "xtw", "Tawandê" }, { "xty", "Yoloxochitl Mixtec" }, { "xtz", "Tasmanian" }, { "xua", "Alu Kurumba" }, { "xub", "Betta Kurumba" }, { "xud", "Umiida" }, { "xug", "Kunigami" }, { "xuj", "Jennu Kurumba" }, { "xul", "Ngunawal" }, { "xum", "Umbrian" }, { "xun", "Unggaranggu" }, { "xuo", "Kuo" }, { "xup", "Upper Umpqua" }, { "xur", "Urartian" }, { "xut", "Kuthant" }, { "xuu", "Kxoe" }, { "xve", "Venetic" }, { "xvi", "Kamviri" }, { "xvn", "Vandalic" }, { "xvo", "Volscian" }, { "xvs", "Vestinian" }, { "xwa", "Kwaza" }, { "xwc", "Woccon" }, { "xwd", "Wadi Wadi" }, { "xwe", "Xwela Gbe" }, { "xwg", "Kwegu" }, { "xwj", "Wajuk" }, { "xwk", "Wangkumara" }, { "xwl", "Western Xwla Gbe" }, { "xwo", "Written Oirat" }, { "xwr", "Kwerba Mamberamo" }, { "xwt", "Wotjobaluk" }, { "xww", "Wemba Wemba" }, { "xxb", "Boro (Ghana)" }, { "xxk", "Ke'o" }, { "xxm", "Minkin" }, { "xxr", "Koropó" }, { "xxt", "Tambora" }, { "xya", "Yaygir" }, { "xyb", "Yandjibara" }, { "xyj", "Mayi-Yapi" }, { "xyk", "Mayi-Kulan" }, { "xyl", "Yalakalore" }, { "xyt", "Mayi-Thakurti" }, { "xyy", "Yorta Yorta" }, { "xzh", "Zhang-Zhung" }, { "xzm", "Zemgalian" }, { "xzp", "Ancient Zapotec" }, { "yaa", "Yaminahua" }, { "yab", "Yuhup" }, { "yac", "Pass Valley Yali" }, { "yad", "Yagua" }, { "yae", "Pumé" }, { "yaf", "Yaka (Democratic Republic of Congo)" }, { "yag", "Yámana" }, { "yah", "Yazgulyam" }, { "yai", "Yagnobi" }, { "yaj", "Banda-Yangere" }, { "yak", "Yakama" }, { "yal", "Yalunka" }, { "yam", "Yamba" }, { "yan", "Mayangna" }, { "yao", "Yao" }, { "yap", "Yapese" }, { "yaq", "Yaqui" }, { "yar", "Yabarana" }, { "yas", "Nugunu (Cameroon)" }, { "yat", "Yambeta" }, { "yau", "Yuwana" }, { "yav", "Yangben" }, { "yaw", "Yawalapití" }, { "yax", "Yauma" }, { "yay", "Agwagwune" }, { "yaz", "Lokaa" }, { "yba", "Yala" }, { "ybb", "Yemba" }, { "ybe", "West Yugur" }, { "ybh", "Yakha" }, { "ybi", "Yamphu" }, { "ybj", "Hasha" }, { "ybk", "Bokha" }, { "ybl", "Yukuben" }, { "ybm", "Yaben" }, { "ybn", "Yabaâna" }, { "ybo", "Yabong" }, { "ybx", "Yawiyo" }, { "yby", "Yaweyuha" }, { "ych", "Chesu" }, { "ycl", "Lolopo" }, { "ycn", "Yucuna" }, { "ycp", "Chepya" }, { "yda", "Yanda" }, { "ydd", "Eastern Yiddish" }, { "yde", "Yangum Dey" }, { "ydg", "Yidgha" }, { "ydk", "Yoidik" }, { "yds", "Yiddish Sign Language" }, { "yea", "Ravula" }, { "yec", "Yeniche" }, { "yee", "Yimas" }, { "yei", "Yeni" }, { "yej", "Yevanic" }, { "yel", "Yela" }, { "yer", "Tarok" }, { "yes", "Nyankpa" }, { "yet", "Yetfa" }, { "yeu", "Yerukula" }, { "yev", "Yapunda" }, { "yey", "Yeyi" }, { "yga", "Malyangapa" }, { "ygi", "Yiningayi" }, { "ygl", "Yangum Gel" }, { "ygm", "Yagomi" }, { "ygp", "Gepo" }, { "ygr", "Yagaria" }, { "ygu", "Yugul" }, { "ygw", "Yagwoia" }, { "yha", "Baha Buyang" }, { "yhd", "Judeo-Iraqi Arabic" }, { "yhl", "Hlepho Phowa" }, { "yia", "Yinggarda" }, { "yid", "Yiddish" }, { "yif", "Ache" }, { "yig", "Wusa Nasu" }, { "yih", "Western Yiddish" }, { "yii", "Yidiny" }, { "yij", "Yindjibarndi" }, { "yik", "Dongshanba Lalo" }, { "yil", "Yindjilandji" }, { "yim", "Yimchungru Naga" }, { "yin", "Yinchia" }, { "yip", "Pholo" }, { "yiq", "Miqie" }, { "yir", "North Awyu" }, { "yis", "Yis" }, { "yit", "Eastern Lalu" }, { "yiu", "Awu" }, { "yiv", "Northern Nisu" }, { "yix", "Axi Yi" }, { "yiz", "Azhe" }, { "yka", "Yakan" }, { "ykg", "Northern Yukaghir" }, { "yki", "Yoke" }, { "ykk", "Yakaikeke" }, { "ykl", "Khlula" }, { "ykm", "Kap" }, { "ykn", "Kua-nsi" }, { "yko", "Yasa" }, { "ykr", "Yekora" }, { "ykt", "Kathu" }, { "yku", "Kuamasi" }, { "yky", "Yakoma" }, { "yla", "Yaul" }, { "ylb", "Yaleba" }, { "yle", "Yele" }, { "ylg", "Yelogu" }, { "yli", "Angguruk Yali" }, { "yll", "Yil" }, { "ylm", "Limi" }, { "yln", "Langnian Buyang" }, { "ylo", "Naluo Yi" }, { "ylr", "Yalarnnga" }, { "ylu", "Aribwaung" }, { "yly", "Nyâlayu" }, { "ymb", "Yambes" }, { "ymc", "Southern Muji" }, { "ymd", "Muda" }, { "yme", "Yameo" }, { "ymg", "Yamongeri" }, { "ymh", "Mili" }, { "ymi", "Moji" }, { "ymk", "Makwe" }, { "yml", "Iamalele" }, { "ymm", "Maay" }, { "ymn", "Yamna" }, { "ymo", "Yangum Mon" }, { "ymp", "Yamap" }, { "ymq", "Qila Muji" }, { "ymr", "Malasar" }, { "yms", "Mysian" }, { "ymt", "Mator-Taygi-Karagas" }, { "ymx", "Northern Muji" }, { "ymz", "Muzi" }, { "yna", "Aluo" }, { "ynd", "Yandruwandha" }, { "yne", "Lang'e" }, { "yng", "Yango" }, { "ynh", "Yangho" }, { "ynk", "Naukan Yupik" }, { "ynl", "Yangulam" }, { "ynn", "Yana" }, { "yno", "Yong" }, { "ynq", "Yendang" }, { "yns", "Yansi" }, { "ynu", "Yahuna" }, { "yob", "Yoba" }, { "yog", "Yogad" }, { "yoi", "Yonaguni" }, { "yok", "Yokuts" }, { "yol", "Yola" }, { "yom", "Yombe" }, { "yon", "Yongkom" }, { "yor", "Yoruba" }, { "yot", "Yotti" }, { "yox", "Yoron" }, { "yoy", "Yoy" }, { "ypa", "Phala" }, { "ypb", "Labo Phowa" }, { "ypg", "Phola" }, { "yph", "Phupha" }, { "ypm", "Phuma" }, { "ypn", "Ani Phowa" }, { "ypo", "Alo Phola" }, { "ypp", "Phupa" }, { "ypz", "Phuza" }, { "yra", "Yerakai" }, { "yrb", "Yareba" }, { "yre", "Yaouré" }, { "yri", "Yarí" }, { "yrk", "Nenets" }, { "yrl", "Nhengatu" }, { "yrm", "Yirrk-Mel" }, { "yrn", "Yerong" }, { "yrs", "Yarsun" }, { "yrw", "Yarawata" }, { "yry", "Yarluyandi" }, { "ysc", "Yassic" }, { "ysd", "Samatao" }, { "ysg", "Sonaga" }, { "ysl", "Yugoslavian Sign Language" }, { "ysn", "Sani" }, { "yso", "Nisi (China)" }, { "ysp", "Southern Lolopo" }, { "ysr", "Sirenik Yupik" }, { "yss", "Yessan-Mayo" }, { "ysy", "Sanie" }, { "yta", "Talu" }, { "ytl", "Tanglang" }, { "ytp", "Thopho" }, { "ytw", "Yout Wam" }, { "yty", "Yatay" }, { "yua", "Yucateco" }, { "yub", "Yugambal" }, { "yuc", "Yuchi" }, { "yud", "Judeo-Tripolitanian Arabic" }, { "yue", "Yue Chinese" }, { "yuf", "Havasupai-Walapai-Yavapai" }, { "yug", "Yug" }, { "yui", "Yurutí" }, { "yuj", "Karkar-Yuri" }, { "yuk", "Yuki" }, { "yul", "Yulu" }, { "yum", "Quechan" }, { "yun", "Bena (Nigeria)" }, { "yup", "Yukpa" }, { "yuq", "Yuqui" }, { "yur", "Yurok" }, { "yut", "Yopno" }, { "yuu", "Yugh" }, { "yuw", "Yau (Morobe Province)" }, { "yux", "Southern Yukaghir" }, { "yuy", "East Yugur" }, { "yuz", "Yuracare" }, { "yva", "Yawa" }, { "yvt", "Yavitero" }, { "ywa", "Kalou" }, { "ywg", "Yinhawangka" }, { "ywl", "Western Lalu" }, { "ywn", "Yawanawa" }, { "ywq", "Wuding-Luquan Yi" }, { "ywr", "Yawuru" }, { "ywt", "Xishanba Lalo" }, { "ywu", "Wumeng Nasu" }, { "yww", "Yawarawarga" }, { "yxa", "Mayawali" }, { "yxg", "Yagara" }, { "yxl", "Yardliyawarra" }, { "yxm", "Yinwum" }, { "yxu", "Yuyu" }, { "yxy", "Yabula Yabula" }, { "yyr", "Yir Yoront" }, { "yyu", "Yau (Sandaun Province)" }, { "yyz", "Ayizi" }, { "yzg", "E'ma Buyang" }, { "yzk", "Zokhuo" }, { "zaa", "Sierra de Juárez Zapotec" }, { "zab", "San Juan Guelavía Zapotec" }, { "zac", "Ocotlán Zapotec" }, { "zad", "Cajonos Zapotec" }, { "zae", "Yareni Zapotec" }, { "zaf", "Ayoquesco Zapotec" }, { "zag", "Zaghawa" }, { "zah", "Zangwal" }, { "zai", "Isthmus Zapotec" }, { "zaj", "Zaramo" }, { "zak", "Zanaki" }, { "zal", "Zauzou" }, { "zam", "Miahuatlán Zapotec" }, { "zao", "Ozolotepec Zapotec" }, { "zap", "Zapotec" }, { "zaq", "Aloápam Zapotec" }, { "zar", "Rincón Zapotec" }, { "zas", "Santo Domingo Albarradas Zapotec" }, { "zat", "Tabaa Zapotec" }, { "zau", "Zangskari" }, { "zav", "Yatzachi Zapotec" }, { "zaw", "Mitla Zapotec" }, { "zax", "Xadani Zapotec" }, { "zay", "Zayse-Zergulla" }, { "zaz", "Zari" }, { "zbc", "Central Berawan" }, { "zbe", "East Berawan" }, { "zbl", "Blissymbols" }, { "zbt", "Batui" }, { "zbw", "West Berawan" }, { "zca", "Coatecas Altas Zapotec" }, { "zch", "Central Hongshuihe Zhuang" }, { "zdj", "Ngazidja Comorian" }, { "zea", "Zeeuws" }, { "zeg", "Zenag" }, { "zeh", "Eastern Hongshuihe Zhuang" }, { "zen", "Zenaga" }, { "zga", "Kinga" }, { "zgb", "Guibei Zhuang" }, { "zgh", "Standard Moroccan Tamazight" }, { "zgm", "Minz Zhuang" }, { "zgn", "Guibian Zhuang" }, { "zgr", "Magori" }, { "zha", "Zhuang" }, { "zhb", "Zhaba" }, { "zhd", "Dai Zhuang" }, { "zhi", "Zhire" }, { "zhn", "Nong Zhuang" }, { "zho", "Chinese" }, { "zhw", "Zhoa" }, { "zia", "Zia" }, { "zib", "Zimbabwe Sign Language" }, { "zik", "Zimakani" }, { "zil", "Zialo" }, { "zim", "Mesme" }, { "zin", "Zinza" }, { "zir", "Ziriya" }, { "ziw", "Zigula" }, { "ziz", "Zizilivakan" }, { "zka", "Kaimbulawa" }, { "zkb", "Koibal" }, { "zkd", "Kadu" }, { "zkg", "Koguryo" }, { "zkh", "Khorezmian" }, { "zkk", "Karankawa" }, { "zkn", "Kanan" }, { "zko", "Kott" }, { "zkp", "São Paulo Kaingáng" }, { "zkr", "Zakhring" }, { "zkt", "Kitan" }, { "zku", "Kaurna" }, { "zkv", "Krevinian" }, { "zkz", "Khazar" }, { "zlj", "Liujiang Zhuang" }, { "zlm", "Malay (individual language)" }, { "zln", "Lianshan Zhuang" }, { "zlq", "Liuqian Zhuang" }, { "zma", "Manda (Australia)" }, { "zmb", "Zimba" }, { "zmc", "Margany" }, { "zmd", "Maridan" }, { "zme", "Mangerr" }, { "zmf", "Mfinu" }, { "zmg", "Marti Ke" }, { "zmh", "Makolkol" }, { "zmi", "Negeri Sembilan Malay" }, { "zmj", "Maridjabin" }, { "zmk", "Mandandanyi" }, { "zml", "Madngele" }, { "zmm", "Marimanindji" }, { "zmn", "Mbangwe" }, { "zmo", "Molo" }, { "zmp", "Mpuono" }, { "zmq", "Mituku" }, { "zmr", "Maranunggu" }, { "zms", "Mbesa" }, { "zmt", "Maringarr" }, { "zmu", "Muruwari" }, { "zmv", "Mbariman-Gudhinma" }, { "zmw", "Mbo (Democratic Republic of Congo)" }, { "zmx", "Bomitaba" }, { "zmy", "Mariyedi" }, { "zmz", "Mbandja" }, { "zna", "Zan Gula" }, { "zne", "Zande (individual language)" }, { "zng", "Mang" }, { "znk", "Manangkari" }, { "zns", "Mangas" }, { "zoc", "Copainalá Zoque" }, { "zoh", "Chimalapa Zoque" }, { "zom", "Zou" }, { "zoo", "Asunción Mixtepec Zapotec" }, { "zoq", "Tabasco Zoque" }, { "zor", "Rayón Zoque" }, { "zos", "Francisco León Zoque" }, { "zpa", "Lachiguiri Zapotec" }, { "zpb", "Yautepec Zapotec" }, { "zpc", "Choapan Zapotec" }, { "zpd", "Southeastern Ixtlán Zapotec" }, { "zpe", "Petapa Zapotec" }, { "zpf", "San Pedro Quiatoni Zapotec" }, { "zpg", "Guevea De Humboldt Zapotec" }, { "zph", "Totomachapan Zapotec" }, { "zpi", "Santa María Quiegolani Zapotec" }, { "zpj", "Quiavicuzas Zapotec" }, { "zpk", "Tlacolulita Zapotec" }, { "zpl", "Lachixío Zapotec" }, { "zpm", "Mixtepec Zapotec" }, { "zpn", "Santa Inés Yatzechi Zapotec" }, { "zpo", "Amatlán Zapotec" }, { "zpp", "El Alto Zapotec" }, { "zpq", "Zoogocho Zapotec" }, { "zpr", "Santiago Xanica Zapotec" }, { "zps", "Coatlán Zapotec" }, { "zpt", "San Vicente Coatlán Zapotec" }, { "zpu", "Yalálag Zapotec" }, { "zpv", "Chichicapan Zapotec" }, { "zpw", "Zaniza Zapotec" }, { "zpx", "San Baltazar Loxicha Zapotec" }, { "zpy", "Mazaltepec Zapotec" }, { "zpz", "Texmelucan Zapotec" }, { "zqe", "Qiubei Zhuang" }, { "zra", "Kara (Korea)" }, { "zrg", "Mirgan" }, { "zrn", "Zerenkel" }, { "zro", "Záparo" }, { "zrp", "Zarphatic" }, { "zrs", "Mairasi" }, { "zsa", "Sarasira" }, { "zsk", "Kaskean" }, { "zsl", "Zambian Sign Language" }, { "zsm", "Standard Malay" }, { "zsr", "Southern Rincon Zapotec" }, { "zsu", "Sukurum" }, { "zte", "Elotepec Zapotec" }, { "ztg", "Xanaguía Zapotec" }, { "ztl", "Lapaguía-Guivini Zapotec" }, { "ztm", "San Agustín Mixtepec Zapotec" }, { "ztn", "Santa Catarina Albarradas Zapotec" }, { "ztp", "Loxicha Zapotec" }, { "ztq", "Quioquitani-Quierí Zapotec" }, { "zts", "Tilquiapan Zapotec" }, { "ztt", "Tejalapan Zapotec" }, { "ztu", "Güilá Zapotec" }, { "ztx", "Zaachila Zapotec" }, { "zty", "Yatee Zapotec" }, { "zua", "Zeem" }, { "zuh", "Tokano" }, { "zul", "Zulu" }, { "zum", "Kumzari" }, { "zun", "Zuni" }, { "zuy", "Zumaya" }, { "zwa", "Zay" }, { "zxx", "No linguistic content" }, { "zyb", "Yongbei Zhuang" }, { "zyg", "Yang Zhuang" }, { "zyj", "Youjiang Zhuang" }, { "zyn", "Yongnan Zhuang" }, { "zyp", "Zyphe Chin" }, { "zza", "Zaza" }, { "zzj", "Zuojiang Zhuang" }, }; static int niso639_3= sizeof( iso639_3 ) / sizeof( iso639_3[0] ); char * iso639_3_from_code( const char *code ) { int i; for ( i=0; i #include "iso639_3.h" typedef struct { char *code; char *language; } iso639_3_t; static iso639_3_t iso639_3[] = { { "aaa", "Ghotuo" }, { "aab", "Alumu-Tesu" }, { "aac", "Ari" }, { "aad", "Amal" }, { "aae", "Arbëreshë Albanian" }, { "aaf", "Aranadan" }, { "aag", "Ambrak" }, { "aah", "Abu' Arapesh" }, { "aai", "Arifama-Miniafia" }, { "aak", "Ankave" }, { "aal", "Afade" }, { "aam", "Aramanik" }, { "aan", "Anambé" }, { "aao", "Algerian Saharan Arabic" }, { "aap", "Pará Arára" }, { "aaq", "Eastern Abnaki" }, { "aar", "Afar" }, { "aas", "Aasáx" }, { "aat", "Arvanitika Albanian" }, { "aau", "Abau" }, { "aaw", "Solong" }, { "aax", "Mandobo Atas" }, { "aaz", "Amarasi" }, { "aba", "Abé" }, { "abb", "Bankon" }, { "abc", "Ambala Ayta" }, { "abd", "Manide" }, { "abe", "Western Abnaki" }, { "abf", "Abai Sungai" }, { "abg", "Abaga" }, { "abh", "Tajiki Arabic" }, { "abi", "Abidji" }, { "abj", "Aka-Bea" }, { "abk", "Abkhazian" }, { "abl", "Lampung Nyo" }, { "abm", "Abanyom" }, { "abn", "Abua" }, { "abo", "Abon" }, { "abp", "Abellen Ayta" }, { "abq", "Abaza" }, { "abr", "Abron" }, { "abs", "Ambonese Malay" }, { "abt", "Ambulas" }, { "abu", "Abure" }, { "abv", "Baharna Arabic" }, { "abw", "Pal" }, { "abx", "Inabaknon" }, { "aby", "Aneme Wake" }, { "abz", "Abui" }, { "aca", "Achagua" }, { "acb", "Áncá" }, { "acd", "Gikyode" }, { "ace", "Achinese" }, { "acf", "Saint Lucian Creole French" }, { "ach", "Acoli" }, { "aci", "Aka-Cari" }, { "ack", "Aka-Kora" }, { "acl", "Akar-Bale" }, { "acm", "Mesopotamian Arabic" }, { "acn", "Achang" }, { "acp", "Eastern Acipa" }, { "acq", "Ta'izzi-Adeni Arabic" }, { "acr", "Achi" }, { "acs", "Acroá" }, { "act", "Achterhoeks" }, { "acu", "Achuar-Shiwiar" }, { "acv", "Achumawi" }, { "acw", "Hijazi Arabic" }, { "acx", "Omani Arabic" }, { "acy", "Cypriot Arabic" }, { "acz", "Acheron" }, { "ada", "Adangme" }, { "adb", "Adabe" }, { "add", "Dzodinka" }, { "ade", "Adele" }, { "adf", "Dhofari Arabic" }, { "adg", "Andegerebinha" }, { "adh", "Adhola" }, { "adi", "Adi" }, { "adj", "Adioukrou" }, { "adl", "Galo" }, { "adn", "Adang" }, { "ado", "Abu" }, { "adp", "Adap" }, { "adq", "Adangbe" }, { "adr", "Adonara" }, { "ads", "Adamorobe Sign Language" }, { "adt", "Adnyamathanha" }, { "adu", "Aduge" }, { "adw", "Amundava" }, { "adx", "Amdo Tibetan" }, { "ady", "Adyghe" }, { "adz", "Adzera" }, { "aea", "Areba" }, { "aeb", "Tunisian Arabic" }, { "aec", "Saidi Arabic" }, { "aed", "Argentine Sign Language" }, { "aee", "Northeast Pashayi" }, { "aek", "Haeke" }, { "ael", "Ambele" }, { "aem", "Arem" }, { "aen", "Armenian Sign Language" }, { "aeq", "Aer" }, { "aer", "Eastern Arrernte" }, { "aes", "Alsea" }, { "aeu", "Akeu" }, { "aew", "Ambakich" }, { "aey", "Amele" }, { "aez", "Aeka" }, { "afb", "Gulf Arabic" }, { "afd", "Andai" }, { "afe", "Putukwam" }, { "afg", "Afghan Sign Language" }, { "afh", "Afrihili" }, { "afi", "Akrukay" }, { "afk", "Nanubae" }, { "afn", "Defaka" }, { "afo", "Eloyi" }, { "afp", "Tapei" }, { "afr", "Afrikaans" }, { "afs", "Afro-Seminole Creole" }, { "aft", "Afitti" }, { "afu", "Awutu" }, { "afz", "Obokuitai" }, { "aga", "Aguano" }, { "agb", "Legbo" }, { "agc", "Agatu" }, { "agd", "Agarabi" }, { "age", "Angal" }, { "agf", "Arguni" }, { "agg", "Angor" }, { "agh", "Ngelima" }, { "agi", "Agariya" }, { "agj", "Argobba" }, { "agk", "Isarog Agta" }, { "agl", "Fembe" }, { "agm", "Angaataha" }, { "agn", "Agutaynen" }, { "ago", "Tainae" }, { "agq", "Aghem" }, { "agr", "Aguaruna" }, { "ags", "Esimbi" }, { "agt", "Central Cagayan Agta" }, { "agu", "Aguacateco" }, { "agv", "Remontado Dumagat" }, { "agw", "Kahua" }, { "agx", "Aghul" }, { "agy", "Southern Alta" }, { "agz", "Mt. Iriga Agta" }, { "aha", "Ahanta" }, { "ahb", "Axamb" }, { "ahg", "Qimant" }, { "ahh", "Aghu" }, { "ahi", "Tiagbamrin Aizi" }, { "ahk", "Akha" }, { "ahl", "Igo" }, { "ahm", "Mobumrin Aizi" }, { "ahn", "Àhàn" }, { "aho", "Ahom" }, { "ahp", "Aproumu Aizi" }, { "ahr", "Ahirani" }, { "ahs", "Ashe" }, { "aht", "Ahtena" }, { "aia", "Arosi" }, { "aib", "Ainu (China)" }, { "aic", "Ainbai" }, { "aid", "Alngith" }, { "aie", "Amara" }, { "aif", "Agi" }, { "aig", "Antigua and Barbuda Creole English" }, { "aih", "Ai-Cham" }, { "aii", "Assyrian Neo-Aramaic" }, { "aij", "Lishanid Noshan" }, { "aik", "Ake" }, { "ail", "Aimele" }, { "aim", "Aimol" }, { "ain", "Ainu (Japan)" }, { "aio", "Aiton" }, { "aip", "Burumakok" }, { "aiq", "Aimaq" }, { "air", "Airoran" }, { "ais", "Nataoran Amis" }, { "ait", "Arikem" }, { "aiw", "Aari" }, { "aix", "Aighon" }, { "aiy", "Ali" }, { "aja", "Aja (Sudan)" }, { "ajg", "Aja (Benin)" }, { "aji", "Ajië" }, { "ajn", "Andajin" }, { "ajp", "South Levantine Arabic" }, { "ajt", "Judeo-Tunisian Arabic" }, { "aju", "Judeo-Moroccan Arabic" }, { "ajw", "Ajawa" }, { "ajz", "Amri Karbi" }, { "aka", "Akan" }, { "akb", "Batak Angkola" }, { "akc", "Mpur" }, { "akd", "Ukpet-Ehom" }, { "ake", "Akawaio" }, { "akf", "Akpa" }, { "akg", "Anakalangu" }, { "akh", "Angal Heneng" }, { "aki", "Aiome" }, { "akj", "Aka-Jeru" }, { "akk", "Akkadian" }, { "akl", "Aklanon" }, { "akm", "Aka-Bo" }, { "ako", "Akurio" }, { "akp", "Siwu" }, { "akq", "Ak" }, { "akr", "Araki" }, { "aks", "Akaselem" }, { "akt", "Akolet" }, { "aku", "Akum" }, { "akv", "Akhvakh" }, { "akw", "Akwa" }, { "akx", "Aka-Kede" }, { "aky", "Aka-Kol" }, { "akz", "Alabama" }, { "ala", "Alago" }, { "alc", "Qawasqar" }, { "ald", "Alladian" }, { "ale", "Aleut" }, { "alf", "Alege" }, { "alh", "Alawa" }, { "ali", "Amaimon" }, { "alj", "Alangan" }, { "alk", "Alak" }, { "all", "Allar" }, { "alm", "Amblong" }, { "aln", "Gheg Albanian" }, { "alo", "Larike-Wakasihu" }, { "alp", "Alune" }, { "alq", "Algonquin" }, { "alr", "Alutor" }, { "als", "Tosk Albanian" }, { "alt", "Southern Altai" }, { "alu", "'Are'are" }, { "alw", "Alaba-K’abeena" }, { "alx", "Amol" }, { "aly", "Alyawarr" }, { "alz", "Alur" }, { "ama", "Amanayé" }, { "amb", "Ambo" }, { "amc", "Amahuaca" }, { "ame", "Yanesha'" }, { "amf", "Hamer-Banna" }, { "amg", "Amurdak" }, { "amh", "Amharic" }, { "ami", "Amis" }, { "amj", "Amdang" }, { "amk", "Ambai" }, { "aml", "War-Jaintia" }, { "amm", "Ama (Papua New Guinea)" }, { "amn", "Amanab" }, { "amo", "Amo" }, { "amp", "Alamblak" }, { "amq", "Amahai" }, { "amr", "Amarakaeri" }, { "ams", "Southern Amami-Oshima" }, { "amt", "Amto" }, { "amu", "Guerrero Amuzgo" }, { "amv", "Ambelau" }, { "amw", "Western Neo-Aramaic" }, { "amx", "Anmatyerre" }, { "amy", "Ami" }, { "amz", "Atampaya" }, { "ana", "Andaqui" }, { "anb", "Andoa" }, { "anc", "Ngas" }, { "and", "Ansus" }, { "ane", "Xârâcùù" }, { "anf", "Animere" }, { "ang", "Old English (ca. 450-1100)" }, { "anh", "Nend" }, { "ani", "Andi" }, { "anj", "Anor" }, { "ank", "Goemai" }, { "anl", "Anu-Hkongso Chin" }, { "anm", "Anal" }, { "ann", "Obolo" }, { "ano", "Andoque" }, { "anp", "Angika" }, { "anq", "Jarawa (India)" }, { "anr", "Andh" }, { "ans", "Anserma" }, { "ant", "Antakarinya" }, { "anu", "Anuak" }, { "anv", "Denya" }, { "anw", "Anaang" }, { "anx", "Andra-Hus" }, { "any", "Anyin" }, { "anz", "Anem" }, { "aoa", "Angolar" }, { "aob", "Abom" }, { "aoc", "Pemon" }, { "aod", "Andarum" }, { "aoe", "Angal Enen" }, { "aof", "Bragat" }, { "aog", "Angoram" }, { "aoh", "Arma" }, { "aoi", "Anindilyakwa" }, { "aoj", "Mufian" }, { "aok", "Arhö" }, { "aol", "Alor" }, { "aom", "Ömie" }, { "aon", "Bumbita Arapesh" }, { "aor", "Aore" }, { "aos", "Taikat" }, { "aot", "A'tong" }, { "aou", "A'ou" }, { "aox", "Atorada" }, { "aoz", "Uab Meto" }, { "apb", "Sa'a" }, { "apc", "North Levantine Arabic" }, { "apd", "Sudanese Arabic" }, { "ape", "Bukiyip" }, { "apf", "Pahanan Agta" }, { "apg", "Ampanang" }, { "aph", "Athpariya" }, { "api", "Apiaká" }, { "apj", "Jicarilla Apache" }, { "apk", "Kiowa Apache" }, { "apl", "Lipan Apache" }, { "apm", "Mescalero-Chiricahua Apache" }, { "apn", "Apinayé" }, { "apo", "Ambul" }, { "app", "Apma" }, { "apq", "A-Pucikwar" }, { "apr", "Arop-Lokep" }, { "aps", "Arop-Sissano" }, { "apt", "Apatani" }, { "apu", "Apurinã" }, { "apv", "Alapmunte" }, { "apw", "Western Apache" }, { "apx", "Aputai" }, { "apy", "Apalaí" }, { "apz", "Safeyoka" }, { "aqc", "Archi" }, { "aqd", "Ampari Dogon" }, { "aqg", "Arigidi" }, { "aqm", "Atohwaim" }, { "aqn", "Northern Alta" }, { "aqp", "Atakapa" }, { "aqr", "Arhâ" }, { "aqz", "Akuntsu" }, { "ara", "Arabic" }, { "arb", "Standard Arabic" }, { "arc", "Official Aramaic (700-300 BCE)" }, { "ard", "Arabana" }, { "are", "Western Arrarnta" }, { "arg", "Aragonese" }, { "arh", "Arhuaco" }, { "ari", "Arikara" }, { "arj", "Arapaso" }, { "ark", "Arikapú" }, { "arl", "Arabela" }, { "arn", "Mapudungun" }, { "aro", "Araona" }, { "arp", "Arapaho" }, { "arq", "Algerian Arabic" }, { "arr", "Karo (Brazil)" }, { "ars", "Najdi Arabic" }, { "aru", "Aruá (Amazonas State)" }, { "arv", "Arbore" }, { "arw", "Arawak" }, { "arx", "Aruá (Rodonia State)" }, { "ary", "Moroccan Arabic" }, { "arz", "Egyptian Arabic" }, { "asa", "Asu (Tanzania)" }, { "asb", "Assiniboine" }, { "asc", "Casuarina Coast Asmat" }, { "asd", "Asas" }, { "ase", "American Sign Language" }, { "asf", "Australian Sign Language" }, { "asg", "Cishingini" }, { "ash", "Abishira" }, { "asi", "Buruwai" }, { "asj", "Sari" }, { "ask", "Ashkun" }, { "asl", "Asilulu" }, { "asm", "Assamese" }, { "asn", "Xingú Asuriní" }, { "aso", "Dano" }, { "asp", "Algerian Sign Language" }, { "asq", "Austrian Sign Language" }, { "asr", "Asuri" }, { "ass", "Ipulo" }, { "ast", "Asturian" }, { "asu", "Tocantins Asurini" }, { "asv", "Asoa" }, { "asw", "Australian Aborigines Sign Language" }, { "asx", "Muratayak" }, { "asy", "Yaosakor Asmat" }, { "asz", "As" }, { "ata", "Pele-Ata" }, { "atb", "Zaiwa" }, { "atc", "Atsahuaca" }, { "atd", "Ata Manobo" }, { "ate", "Atemble" }, { "atg", "Ivbie North-Okpela-Arhe" }, { "ati", "Attié" }, { "atj", "Atikamekw" }, { "atk", "Ati" }, { "atl", "Mt. Iraya Agta" }, { "atm", "Ata" }, { "atn", "Ashtiani" }, { "ato", "Atong" }, { "atp", "Pudtol Atta" }, { "atq", "Aralle-Tabulahan" }, { "atr", "Waimiri-Atroari" }, { "ats", "Gros Ventre" }, { "att", "Pamplona Atta" }, { "atu", "Reel" }, { "atv", "Northern Altai" }, { "atw", "Atsugewi" }, { "atx", "Arutani" }, { "aty", "Aneityum" }, { "atz", "Arta" }, { "aua", "Asumboa" }, { "aub", "Alugu" }, { "auc", "Waorani" }, { "aud", "Anuta" }, { "aue", "=Kx'au'ein" }, { "aug", "Aguna" }, { "auh", "Aushi" }, { "aui", "Anuki" }, { "auj", "Awjilah" }, { "auk", "Heyo" }, { "aul", "Aulua" }, { "aum", "Asu (Nigeria)" }, { "aun", "Molmo One" }, { "auo", "Auyokawa" }, { "aup", "Makayam" }, { "auq", "Anus" }, { "aur", "Aruek" }, { "aut", "Austral" }, { "auu", "Auye" }, { "auw", "Awyi" }, { "aux", "Aurá" }, { "auy", "Awiyaana" }, { "auz", "Uzbeki Arabic" }, { "ava", "Avaric" }, { "avb", "Avau" }, { "avd", "Alviri-Vidari" }, { "ave", "Avestan" }, { "avi", "Avikam" }, { "avk", "Kotava" }, { "avl", "Eastern Egyptian Bedawi Arabic" }, { "avm", "Angkamuthi" }, { "avn", "Avatime" }, { "avo", "Agavotaguerra" }, { "avs", "Aushiri" }, { "avt", "Au" }, { "avu", "Avokaya" }, { "avv", "Avá-Canoeiro" }, { "awa", "Awadhi" }, { "awb", "Awa (Papua New Guinea)" }, { "awc", "Cicipu" }, { "awe", "Awetí" }, { "awg", "Anguthimri" }, { "awh", "Awbono" }, { "awi", "Aekyom" }, { "awk", "Awabakal" }, { "awm", "Arawum" }, { "awn", "Awngi" }, { "awo", "Awak" }, { "awr", "Awera" }, { "aws", "South Awyu" }, { "awt", "Araweté" }, { "awu", "Central Awyu" }, { "awv", "Jair Awyu" }, { "aww", "Awun" }, { "awx", "Awara" }, { "awy", "Edera Awyu" }, { "axb", "Abipon" }, { "axe", "Ayerrerenge" }, { "axg", "Mato Grosso Arára" }, { "axk", "Yaka (Central African Republic)" }, { "axl", "Lower Southern Aranda" }, { "axm", "Middle Armenian" }, { "axx", "Xârâgurè" }, { "aya", "Awar" }, { "ayb", "Ayizo Gbe" }, { "ayc", "Southern Aymara" }, { "ayd", "Ayabadhu" }, { "aye", "Ayere" }, { "ayg", "Ginyanga" }, { "ayh", "Hadrami Arabic" }, { "ayi", "Leyigha" }, { "ayk", "Akuku" }, { "ayl", "Libyan Arabic" }, { "aym", "Aymara" }, { "ayn", "Sanaani Arabic" }, { "ayo", "Ayoreo" }, { "ayp", "North Mesopotamian Arabic" }, { "ayq", "Ayi (Papua New Guinea)" }, { "ayr", "Central Aymara" }, { "ays", "Sorsogon Ayta" }, { "ayt", "Magbukun Ayta" }, { "ayu", "Ayu" }, { "ayy", "Tayabas Ayta" }, { "ayz", "Mai Brat" }, { "aza", "Azha" }, { "azb", "South Azerbaijani" }, { "azd", "Eastern Durango Nahuatl" }, { "aze", "Azerbaijani" }, { "azg", "San Pedro Amuzgos Amuzgo" }, { "azj", "North Azerbaijani" }, { "azm", "Ipalapa Amuzgo" }, { "azn", "Western Durango Nahuatl" }, { "azo", "Awing" }, { "azt", "Faire Atta" }, { "azz", "Highland Puebla Nahuatl" }, { "baa", "Babatana" }, { "bab", "Bainouk-Gunyuño" }, { "bac", "Badui" }, { "bae", "Baré" }, { "baf", "Nubaca" }, { "bag", "Tuki" }, { "bah", "Bahamas Creole English" }, { "baj", "Barakai" }, { "bak", "Bashkir" }, { "bal", "Baluchi" }, { "bam", "Bambara" }, { "ban", "Balinese" }, { "bao", "Waimaha" }, { "bap", "Bantawa" }, { "bar", "Bavarian" }, { "bas", "Basa (Cameroon)" }, { "bau", "Bada (Nigeria)" }, { "bav", "Vengo" }, { "baw", "Bambili-Bambui" }, { "bax", "Bamun" }, { "bay", "Batuley" }, { "bba", "Baatonum" }, { "bbb", "Barai" }, { "bbc", "Batak Toba" }, { "bbd", "Bau" }, { "bbe", "Bangba" }, { "bbf", "Baibai" }, { "bbg", "Barama" }, { "bbh", "Bugan" }, { "bbi", "Barombi" }, { "bbj", "Ghomálá'" }, { "bbk", "Babanki" }, { "bbl", "Bats" }, { "bbm", "Babango" }, { "bbn", "Uneapa" }, { "bbo", "Northern Bobo Madaré" }, { "bbp", "West Central Banda" }, { "bbq", "Bamali" }, { "bbr", "Girawa" }, { "bbs", "Bakpinka" }, { "bbt", "Mburku" }, { "bbu", "Kulung (Nigeria)" }, { "bbv", "Karnai" }, { "bbw", "Baba" }, { "bbx", "Bubia" }, { "bby", "Befang" }, { "bbz", "Babalia Creole Arabic" }, { "bca", "Central Bai" }, { "bcb", "Bainouk-Samik" }, { "bcc", "Southern Balochi" }, { "bcd", "North Babar" }, { "bce", "Bamenyam" }, { "bcf", "Bamu" }, { "bcg", "Baga Binari" }, { "bch", "Bariai" }, { "bci", "Baoulé" }, { "bcj", "Bardi" }, { "bck", "Bunaba" }, { "bcl", "Central Bikol" }, { "bcm", "Bannoni" }, { "bcn", "Bali (Nigeria)" }, { "bco", "Kaluli" }, { "bcp", "Bali (Democratic Republic of Congo)" }, { "bcq", "Bench" }, { "bcr", "Babine" }, { "bcs", "Kohumono" }, { "bct", "Bendi" }, { "bcu", "Awad Bing" }, { "bcv", "Shoo-Minda-Nye" }, { "bcw", "Bana" }, { "bcy", "Bacama" }, { "bcz", "Bainouk-Gunyaamolo" }, { "bda", "Bayot" }, { "bdb", "Basap" }, { "bdc", "Emberá-Baudó" }, { "bdd", "Bunama" }, { "bde", "Bade" }, { "bdf", "Biage" }, { "bdg", "Bonggi" }, { "bdh", "Baka (Sudan)" }, { "bdi", "Burun" }, { "bdj", "Bai" }, { "bdk", "Budukh" }, { "bdl", "Indonesian Bajau" }, { "bdm", "Buduma" }, { "bdn", "Baldemu" }, { "bdo", "Morom" }, { "bdp", "Bende" }, { "bdq", "Bahnar" }, { "bdr", "West Coast Bajau" }, { "bds", "Burunge" }, { "bdt", "Bokoto" }, { "bdu", "Oroko" }, { "bdv", "Bodo Parja" }, { "bdw", "Baham" }, { "bdx", "Budong-Budong" }, { "bdy", "Bandjalang" }, { "bdz", "Badeshi" }, { "bea", "Beaver" }, { "beb", "Bebele" }, { "bec", "Iceve-Maci" }, { "bed", "Bedoanas" }, { "bee", "Byangsi" }, { "bef", "Benabena" }, { "beg", "Belait" }, { "beh", "Biali" }, { "bei", "Bekati'" }, { "bej", "Beja" }, { "bek", "Bebeli" }, { "bel", "Belarusian" }, { "bem", "Bemba (Zambia)" }, { "ben", "Bengali" }, { "beo", "Beami" }, { "bep", "Besoa" }, { "beq", "Beembe" }, { "bes", "Besme" }, { "bet", "Guiberoua Béte" }, { "beu", "Blagar" }, { "bev", "Daloa Bété" }, { "bew", "Betawi" }, { "bex", "Jur Modo" }, { "bey", "Beli (Papua New Guinea)" }, { "bez", "Bena (Tanzania)" }, { "bfa", "Bari" }, { "bfb", "Pauri Bareli" }, { "bfc", "Northern Bai" }, { "bfd", "Bafut" }, { "bfe", "Betaf" }, { "bff", "Bofi" }, { "bfg", "Busang Kayan" }, { "bfh", "Blafe" }, { "bfi", "British Sign Language" }, { "bfj", "Bafanji" }, { "bfk", "Ban Khor Sign Language" }, { "bfl", "Banda-Ndélé" }, { "bfm", "Mmen" }, { "bfn", "Bunak" }, { "bfo", "Malba Birifor" }, { "bfp", "Beba" }, { "bfq", "Badaga" }, { "bfr", "Bazigar" }, { "bfs", "Southern Bai" }, { "bft", "Balti" }, { "bfu", "Gahri" }, { "bfw", "Bondo" }, { "bfx", "Bantayanon" }, { "bfy", "Bagheli" }, { "bfz", "Mahasu Pahari" }, { "bga", "Gwamhi-Wuri" }, { "bgb", "Bobongko" }, { "bgc", "Haryanvi" }, { "bgd", "Rathwi Bareli" }, { "bge", "Bauria" }, { "bgf", "Bangandu" }, { "bgg", "Bugun" }, { "bgi", "Giangan" }, { "bgj", "Bangolan" }, { "bgk", "Bit" }, { "bgl", "Bo (Laos)" }, { "bgm", "Baga Mboteni" }, { "bgn", "Western Balochi" }, { "bgo", "Baga Koga" }, { "bgp", "Eastern Balochi" }, { "bgq", "Bagri" }, { "bgr", "Bawm Chin" }, { "bgs", "Tagabawa" }, { "bgt", "Bughotu" }, { "bgu", "Mbongno" }, { "bgv", "Warkay-Bipim" }, { "bgw", "Bhatri" }, { "bgx", "Balkan Gagauz Turkish" }, { "bgy", "Benggoi" }, { "bgz", "Banggai" }, { "bha", "Bharia" }, { "bhb", "Bhili" }, { "bhc", "Biga" }, { "bhd", "Bhadrawahi" }, { "bhe", "Bhaya" }, { "bhf", "Odiai" }, { "bhg", "Binandere" }, { "bhh", "Bukharic" }, { "bhi", "Bhilali" }, { "bhj", "Bahing" }, { "bhl", "Bimin" }, { "bhm", "Bathari" }, { "bhn", "Bohtan Neo-Aramaic" }, { "bho", "Bhojpuri" }, { "bhp", "Bima" }, { "bhq", "Tukang Besi South" }, { "bhr", "Bara Malagasy" }, { "bhs", "Buwal" }, { "bht", "Bhattiyali" }, { "bhu", "Bhunjia" }, { "bhv", "Bahau" }, { "bhw", "Biak" }, { "bhx", "Bhalay" }, { "bhy", "Bhele" }, { "bhz", "Bada (Indonesia)" }, { "bia", "Badimaya" }, { "bib", "Bissa" }, { "bic", "Bikaru" }, { "bid", "Bidiyo" }, { "bie", "Bepour" }, { "bif", "Biafada" }, { "big", "Biangai" }, { "bij", "Vaghat-Ya-Bijim-Legeri" }, { "bik", "Bikol" }, { "bil", "Bile" }, { "bim", "Bimoba" }, { "bin", "Bini" }, { "bio", "Nai" }, { "bip", "Bila" }, { "biq", "Bipi" }, { "bir", "Bisorio" }, { "bis", "Bislama" }, { "bit", "Berinomo" }, { "biu", "Biete" }, { "biv", "Southern Birifor" }, { "biw", "Kol (Cameroon)" }, { "bix", "Bijori" }, { "biy", "Birhor" }, { "biz", "Baloi" }, { "bja", "Budza" }, { "bjb", "Banggarla" }, { "bjc", "Bariji" }, { "bje", "Biao-Jiao Mien" }, { "bjf", "Barzani Jewish Neo-Aramaic" }, { "bjg", "Bidyogo" }, { "bjh", "Bahinemo" }, { "bji", "Burji" }, { "bjj", "Kanauji" }, { "bjk", "Barok" }, { "bjl", "Bulu (Papua New Guinea)" }, { "bjm", "Bajelani" }, { "bjn", "Banjar" }, { "bjo", "Mid-Southern Banda" }, { "bjp", "Fanamaket" }, { "bjr", "Binumarien" }, { "bjs", "Bajan" }, { "bjt", "Balanta-Ganja" }, { "bju", "Busuu" }, { "bjv", "Bedjond" }, { "bjw", "Bakwé" }, { "bjx", "Banao Itneg" }, { "bjy", "Bayali" }, { "bjz", "Baruga" }, { "bka", "Kyak" }, { "bkc", "Baka (Cameroon)" }, { "bkd", "Binukid" }, { "bkf", "Beeke" }, { "bkg", "Buraka" }, { "bkh", "Bakoko" }, { "bki", "Baki" }, { "bkj", "Pande" }, { "bkk", "Brokskat" }, { "bkl", "Berik" }, { "bkm", "Kom (Cameroon)" }, { "bkn", "Bukitan" }, { "bko", "Kwa'" }, { "bkp", "Boko (Democratic Republic of Congo)" }, { "bkq", "Bakairí" }, { "bkr", "Bakumpai" }, { "bks", "Northern Sorsoganon" }, { "bkt", "Boloki" }, { "bku", "Buhid" }, { "bkv", "Bekwarra" }, { "bkw", "Bekwel" }, { "bkx", "Baikeno" }, { "bky", "Bokyi" }, { "bkz", "Bungku" }, { "bla", "Siksika" }, { "blb", "Bilua" }, { "blc", "Bella Coola" }, { "bld", "Bolango" }, { "ble", "Balanta-Kentohe" }, { "blf", "Buol" }, { "blg", "Balau" }, { "blh", "Kuwaa" }, { "bli", "Bolia" }, { "blj", "Bolongan" }, { "blk", "Pa'o Karen" }, { "bll", "Biloxi" }, { "blm", "Beli (Sudan)" }, { "bln", "Southern Catanduanes Bikol" }, { "blo", "Anii" }, { "blp", "Blablanga" }, { "blq", "Baluan-Pam" }, { "blr", "Blang" }, { "bls", "Balaesang" }, { "blt", "Tai Dam" }, { "blv", "Bolo" }, { "blw", "Balangao" }, { "blx", "Mag-Indi Ayta" }, { "bly", "Notre" }, { "blz", "Balantak" }, { "bma", "Lame" }, { "bmb", "Bembe" }, { "bmc", "Biem" }, { "bmd", "Baga Manduri" }, { "bme", "Limassa" }, { "bmf", "Bom" }, { "bmg", "Bamwe" }, { "bmh", "Kein" }, { "bmi", "Bagirmi" }, { "bmj", "Bote-Majhi" }, { "bmk", "Ghayavi" }, { "bml", "Bomboli" }, { "bmm", "Northern Betsimisaraka Malagasy" }, { "bmn", "Bina (Papua New Guinea)" }, { "bmo", "Bambalang" }, { "bmp", "Bulgebi" }, { "bmq", "Bomu" }, { "bmr", "Muinane" }, { "bms", "Bilma Kanuri" }, { "bmt", "Biao Mon" }, { "bmu", "Somba-Siawari" }, { "bmv", "Bum" }, { "bmw", "Bomwali" }, { "bmx", "Baimak" }, { "bmy", "Bemba (Democratic Republic of Congo)" }, { "bmz", "Baramu" }, { "bna", "Bonerate" }, { "bnb", "Bookan" }, { "bnc", "Bontok" }, { "bnd", "Banda (Indonesia)" }, { "bne", "Bintauna" }, { "bnf", "Masiwang" }, { "bng", "Benga" }, { "bni", "Bangi" }, { "bnj", "Eastern Tawbuid" }, { "bnk", "Bierebo" }, { "bnl", "Boon" }, { "bnm", "Batanga" }, { "bnn", "Bunun" }, { "bno", "Bantoanon" }, { "bnp", "Bola" }, { "bnq", "Bantik" }, { "bnr", "Butmas-Tur" }, { "bns", "Bundeli" }, { "bnu", "Bentong" }, { "bnv", "Bonerif" }, { "bnw", "Bisis" }, { "bnx", "Bangubangu" }, { "bny", "Bintulu" }, { "bnz", "Beezen" }, { "boa", "Bora" }, { "bob", "Aweer" }, { "bod", "Tibetan" }, { "boe", "Mundabli" }, { "bof", "Bolon" }, { "bog", "Bamako Sign Language" }, { "boh", "Boma" }, { "boi", "Barbareño" }, { "boj", "Anjam" }, { "bok", "Bonjo" }, { "bol", "Bole" }, { "bom", "Berom" }, { "bon", "Bine" }, { "boo", "Tiemacèwè Bozo" }, { "bop", "Bonkiman" }, { "boq", "Bogaya" }, { "bor", "Borôro" }, { "bos", "Bosnian" }, { "bot", "Bongo" }, { "bou", "Bondei" }, { "bov", "Tuwuli" }, { "bow", "Rema" }, { "box", "Buamu" }, { "boy", "Bodo (Central African Republic)" }, { "boz", "Tiéyaxo Bozo" }, { "bpa", "Daakaka" }, { "bpb", "Barbacoas" }, { "bpd", "Banda-Banda" }, { "bpg", "Bonggo" }, { "bph", "Botlikh" }, { "bpi", "Bagupi" }, { "bpj", "Binji" }, { "bpk", "Orowe" }, { "bpl", "Broome Pearling Lugger Pidgin" }, { "bpm", "Biyom" }, { "bpn", "Dzao Min" }, { "bpo", "Anasi" }, { "bpp", "Kaure" }, { "bpq", "Banda Malay" }, { "bpr", "Koronadal Blaan" }, { "bps", "Sarangani Blaan" }, { "bpt", "Barrow Point" }, { "bpu", "Bongu" }, { "bpv", "Bian Marind" }, { "bpw", "Bo (Papua New Guinea)" }, { "bpx", "Palya Bareli" }, { "bpy", "Bishnupriya" }, { "bpz", "Bilba" }, { "bqa", "Tchumbuli" }, { "bqb", "Bagusa" }, { "bqc", "Boko (Benin)" }, { "bqd", "Bung" }, { "bqf", "Baga Kaloum" }, { "bqg", "Bago-Kusuntu" }, { "bqh", "Baima" }, { "bqi", "Bakhtiari" }, { "bqj", "Bandial" }, { "bqk", "Banda-Mbrès" }, { "bql", "Bilakura" }, { "bqm", "Wumboko" }, { "bqn", "Bulgarian Sign Language" }, { "bqo", "Balo" }, { "bqp", "Busa" }, { "bqq", "Biritai" }, { "bqr", "Burusu" }, { "bqs", "Bosngun" }, { "bqt", "Bamukumbit" }, { "bqu", "Boguru" }, { "bqv", "Koro Wachi" }, { "bqw", "Buru (Nigeria)" }, { "bqx", "Baangi" }, { "bqy", "Bengkala Sign Language" }, { "bqz", "Bakaka" }, { "bra", "Braj" }, { "brb", "Lave" }, { "brc", "Berbice Creole Dutch" }, { "brd", "Baraamu" }, { "bre", "Breton" }, { "brf", "Bera" }, { "brg", "Baure" }, { "brh", "Brahui" }, { "bri", "Mokpwe" }, { "brj", "Bieria" }, { "brk", "Birked" }, { "brl", "Birwa" }, { "brm", "Barambu" }, { "brn", "Boruca" }, { "bro", "Brokkat" }, { "brp", "Barapasi" }, { "brq", "Breri" }, { "brr", "Birao" }, { "brs", "Baras" }, { "brt", "Bitare" }, { "bru", "Eastern Bru" }, { "brv", "Western Bru" }, { "brw", "Bellari" }, { "brx", "Bodo (India)" }, { "bry", "Burui" }, { "brz", "Bilbil" }, { "bsa", "Abinomn" }, { "bsb", "Brunei Bisaya" }, { "bsc", "Bassari" }, { "bse", "Wushi" }, { "bsf", "Bauchi" }, { "bsg", "Bashkardi" }, { "bsh", "Kati" }, { "bsi", "Bassossi" }, { "bsj", "Bangwinji" }, { "bsk", "Burushaski" }, { "bsl", "Basa-Gumna" }, { "bsm", "Busami" }, { "bsn", "Barasana-Eduria" }, { "bso", "Buso" }, { "bsp", "Baga Sitemu" }, { "bsq", "Bassa" }, { "bsr", "Bassa-Kontagora" }, { "bss", "Akoose" }, { "bst", "Basketo" }, { "bsu", "Bahonsuai" }, { "bsv", "Baga Sobané" }, { "bsw", "Baiso" }, { "bsx", "Yangkam" }, { "bsy", "Sabah Bisaya" }, { "bta", "Bata" }, { "btc", "Bati (Cameroon)" }, { "btd", "Batak Dairi" }, { "bte", "Gamo-Ningi" }, { "btf", "Birgit" }, { "btg", "Gagnoa Bété" }, { "bth", "Biatah Bidayuh" }, { "bti", "Burate" }, { "btj", "Bacanese Malay" }, { "btl", "Bhatola" }, { "btm", "Batak Mandailing" }, { "btn", "Ratagnon" }, { "bto", "Rinconada Bikol" }, { "btp", "Budibud" }, { "btq", "Batek" }, { "btr", "Baetora" }, { "bts", "Batak Simalungun" }, { "btt", "Bete-Bendi" }, { "btu", "Batu" }, { "btv", "Bateri" }, { "btw", "Butuanon" }, { "btx", "Batak Karo" }, { "bty", "Bobot" }, { "btz", "Batak Alas-Kluet" }, { "bua", "Buriat" }, { "bub", "Bua" }, { "buc", "Bushi" }, { "bud", "Ntcham" }, { "bue", "Beothuk" }, { "buf", "Bushoong" }, { "bug", "Buginese" }, { "buh", "Younuo Bunu" }, { "bui", "Bongili" }, { "buj", "Basa-Gurmana" }, { "buk", "Bugawac" }, { "bul", "Bulgarian" }, { "bum", "Bulu (Cameroon)" }, { "bun", "Sherbro" }, { "buo", "Terei" }, { "bup", "Busoa" }, { "buq", "Brem" }, { "bus", "Bokobaru" }, { "but", "Bungain" }, { "buu", "Budu" }, { "buv", "Bun" }, { "buw", "Bubi" }, { "bux", "Boghom" }, { "buy", "Bullom So" }, { "buz", "Bukwen" }, { "bva", "Barein" }, { "bvb", "Bube" }, { "bvc", "Baelelea" }, { "bvd", "Baeggu" }, { "bve", "Berau Malay" }, { "bvf", "Boor" }, { "bvg", "Bonkeng" }, { "bvh", "Bure" }, { "bvi", "Belanda Viri" }, { "bvj", "Baan" }, { "bvk", "Bukat" }, { "bvl", "Bolivian Sign Language" }, { "bvm", "Bamunka" }, { "bvn", "Buna" }, { "bvo", "Bolgo" }, { "bvp", "Bumang" }, { "bvq", "Birri" }, { "bvr", "Burarra" }, { "bvt", "Bati (Indonesia)" }, { "bvu", "Bukit Malay" }, { "bvv", "Baniva" }, { "bvw", "Boga" }, { "bvx", "Dibole" }, { "bvy", "Baybayanon" }, { "bvz", "Bauzi" }, { "bwa", "Bwatoo" }, { "bwb", "Namosi-Naitasiri-Serua" }, { "bwc", "Bwile" }, { "bwd", "Bwaidoka" }, { "bwe", "Bwe Karen" }, { "bwf", "Boselewa" }, { "bwg", "Barwe" }, { "bwh", "Bishuo" }, { "bwi", "Baniwa" }, { "bwj", "Láá Láá Bwamu" }, { "bwk", "Bauwaki" }, { "bwl", "Bwela" }, { "bwm", "Biwat" }, { "bwn", "Wunai Bunu" }, { "bwo", "Boro (Ethiopia)" }, { "bwp", "Mandobo Bawah" }, { "bwq", "Southern Bobo Madaré" }, { "bwr", "Bura-Pabir" }, { "bws", "Bomboma" }, { "bwt", "Bafaw-Balong" }, { "bwu", "Buli (Ghana)" }, { "bww", "Bwa" }, { "bwx", "Bu-Nao Bunu" }, { "bwy", "Cwi Bwamu" }, { "bwz", "Bwisi" }, { "bxa", "Tairaha" }, { "bxb", "Belanda Bor" }, { "bxc", "Molengue" }, { "bxd", "Pela" }, { "bxe", "Birale" }, { "bxf", "Bilur" }, { "bxg", "Bangala" }, { "bxh", "Buhutu" }, { "bxi", "Pirlatapa" }, { "bxj", "Bayungu" }, { "bxk", "Bukusu" }, { "bxl", "Jalkunan" }, { "bxm", "Mongolia Buriat" }, { "bxn", "Burduna" }, { "bxo", "Barikanchi" }, { "bxp", "Bebil" }, { "bxq", "Beele" }, { "bxr", "Russia Buriat" }, { "bxs", "Busam" }, { "bxu", "China Buriat" }, { "bxv", "Berakou" }, { "bxw", "Bankagooma" }, { "bxx", "Borna (Democratic Republic of Congo)" }, { "bxz", "Binahari" }, { "bya", "Batak" }, { "byb", "Bikya" }, { "byc", "Ubaghara" }, { "byd", "Benyadu'" }, { "bye", "Pouye" }, { "byf", "Bete" }, { "byg", "Baygo" }, { "byh", "Bhujel" }, { "byi", "Buyu" }, { "byj", "Bina (Nigeria)" }, { "byk", "Biao" }, { "byl", "Bayono" }, { "bym", "Bidyara" }, { "byn", "Bilin" }, { "byo", "Biyo" }, { "byp", "Bumaji" }, { "byq", "Basay" }, { "byr", "Baruya" }, { "bys", "Burak" }, { "byt", "Berti" }, { "byv", "Medumba" }, { "byw", "Belhariya" }, { "byx", "Qaqet" }, { "byy", "Buya" }, { "byz", "Banaro" }, { "bza", "Bandi" }, { "bzb", "Andio" }, { "bzc", "Southern Betsimisaraka Malagasy" }, { "bzd", "Bribri" }, { "bze", "Jenaama Bozo" }, { "bzf", "Boikin" }, { "bzg", "Babuza" }, { "bzh", "Mapos Buang" }, { "bzi", "Bisu" }, { "bzj", "Belize Kriol English" }, { "bzk", "Nicaragua Creole English" }, { "bzl", "Boano (Sulawesi)" }, { "bzm", "Bolondo" }, { "bzn", "Boano (Maluku)" }, { "bzo", "Bozaba" }, { "bzp", "Kemberano" }, { "bzq", "Buli (Indonesia)" }, { "bzr", "Biri" }, { "bzs", "Brazilian Sign Language" }, { "bzt", "Brithenig" }, { "bzu", "Burmeso" }, { "bzv", "Naami" }, { "bzw", "Basa (Nigeria)" }, { "bzx", "Kɛlɛngaxo Bozo" }, { "bzy", "Obanliku" }, { "bzz", "Evant" }, { "caa", "Chortí" }, { "cab", "Garifuna" }, { "cac", "Chuj" }, { "cad", "Caddo" }, { "cae", "Lehar" }, { "caf", "Southern Carrier" }, { "cag", "Nivaclé" }, { "cah", "Cahuarano" }, { "caj", "Chané" }, { "cak", "Kaqchikel" }, { "cal", "Carolinian" }, { "cam", "Cemuhî" }, { "can", "Chambri" }, { "cao", "Chácobo" }, { "cap", "Chipaya" }, { "caq", "Car Nicobarese" }, { "car", "Galibi Carib" }, { "cas", "Tsimané" }, { "cat", "Catalan" }, { "cav", "Cavineña" }, { "caw", "Callawalla" }, { "cax", "Chiquitano" }, { "cay", "Cayuga" }, { "caz", "Canichana" }, { "cbb", "Cabiyarí" }, { "cbc", "Carapana" }, { "cbd", "Carijona" }, { "cbe", "Chipiajes" }, { "cbg", "Chimila" }, { "cbh", "Cagua" }, { "cbi", "Chachi" }, { "cbj", "Ede Cabe" }, { "cbk", "Chavacano" }, { "cbl", "Bualkhaw Chin" }, { "cbn", "Nyahkur" }, { "cbo", "Izora" }, { "cbr", "Cashibo-Cacataibo" }, { "cbs", "Cashinahua" }, { "cbt", "Chayahuita" }, { "cbu", "Candoshi-Shapra" }, { "cbv", "Cacua" }, { "cbw", "Kinabalian" }, { "cby", "Carabayo" }, { "cca", "Cauca" }, { "ccc", "Chamicuro" }, { "ccd", "Cafundo Creole" }, { "cce", "Chopi" }, { "ccg", "Samba Daka" }, { "cch", "Atsam" }, { "ccj", "Kasanga" }, { "ccl", "Cutchi-Swahili" }, { "ccm", "Malaccan Creole Malay" }, { "cco", "Comaltepec Chinantec" }, { "ccp", "Chakma" }, { "ccr", "Cacaopera" }, { "cda", "Choni" }, { "cde", "Chenchu" }, { "cdf", "Chiru" }, { "cdg", "Chamari" }, { "cdh", "Chambeali" }, { "cdi", "Chodri" }, { "cdj", "Churahi" }, { "cdm", "Chepang" }, { "cdn", "Chaudangsi" }, { "cdo", "Min Dong Chinese" }, { "cdr", "Cinda-Regi-Tiyal" }, { "cds", "Chadian Sign Language" }, { "cdy", "Chadong" }, { "cdz", "Koda" }, { "cea", "Lower Chehalis" }, { "ceb", "Cebuano" }, { "ceg", "Chamacoco" }, { "cek", "Eastern Khumi Chin" }, { "cen", "Cen" }, { "ces", "Czech" }, { "cet", "Centúúm" }, { "cfa", "Dijim-Bwilim" }, { "cfd", "Cara" }, { "cfg", "Como Karim" }, { "cfm", "Falam Chin" }, { "cga", "Changriwa" }, { "cgc", "Kagayanen" }, { "cgg", "Chiga" }, { "cgk", "Chocangacakha" }, { "cha", "Chamorro" }, { "chb", "Chibcha" }, { "chc", "Catawba" }, { "chd", "Highland Oaxaca Chontal" }, { "che", "Chechen" }, { "chf", "Tabasco Chontal" }, { "chg", "Chagatai" }, { "chh", "Chinook" }, { "chj", "Ojitlán Chinantec" }, { "chk", "Chuukese" }, { "chl", "Cahuilla" }, { "chm", "Mari (Russia)" }, { "chn", "Chinook jargon" }, { "cho", "Choctaw" }, { "chp", "Chipewyan" }, { "chq", "Quiotepec Chinantec" }, { "chr", "Cherokee" }, { "cht", "Cholón" }, { "chu", "Church Slavic" }, { "chv", "Chuvash" }, { "chw", "Chuwabu" }, { "chx", "Chantyal" }, { "chy", "Cheyenne" }, { "chz", "Ozumacín Chinantec" }, { "cia", "Cia-Cia" }, { "cib", "Ci Gbe" }, { "cic", "Chickasaw" }, { "cid", "Chimariko" }, { "cie", "Cineni" }, { "cih", "Chinali" }, { "cik", "Chitkuli Kinnauri" }, { "cim", "Cimbrian" }, { "cin", "Cinta Larga" }, { "cip", "Chiapanec" }, { "cir", "Tiri" }, { "ciw", "Chippewa" }, { "ciy", "Chaima" }, { "cja", "Western Cham" }, { "cje", "Chru" }, { "cjh", "Upper Chehalis" }, { "cji", "Chamalal" }, { "cjk", "Chokwe" }, { "cjm", "Eastern Cham" }, { "cjn", "Chenapian" }, { "cjo", "Ashéninka Pajonal" }, { "cjp", "Cabécar" }, { "cjs", "Shor" }, { "cjv", "Chuave" }, { "cjy", "Jinyu Chinese" }, { "ckb", "Central Kurdish" }, { "ckh", "Chak" }, { "ckl", "Cibak" }, { "ckn", "Kaang Chin" }, { "cko", "Anufo" }, { "ckq", "Kajakse" }, { "ckr", "Kairak" }, { "cks", "Tayo" }, { "ckt", "Chukot" }, { "cku", "Koasati" }, { "ckv", "Kavalan" }, { "ckx", "Caka" }, { "cky", "Cakfem-Mushere" }, { "ckz", "Cakchiquel-Quiché Mixed Language" }, { "cla", "Ron" }, { "clc", "Chilcotin" }, { "cld", "Chaldean Neo-Aramaic" }, { "cle", "Lealao Chinantec" }, { "clh", "Chilisso" }, { "cli", "Chakali" }, { "clj", "Laitu Chin" }, { "clk", "Idu-Mishmi" }, { "cll", "Chala" }, { "clm", "Clallam" }, { "clo", "Lowland Oaxaca Chontal" }, { "clt", "Lautu Chin" }, { "clu", "Caluyanun" }, { "clw", "Chulym" }, { "cly", "Eastern Highland Chatino" }, { "cma", "Maa" }, { "cme", "Cerma" }, { "cmg", "Classical Mongolian" }, { "cmi", "Emberá-Chamí" }, { "cml", "Campalagian" }, { "cmm", "Michigamea" }, { "cmn", "Mandarin Chinese" }, { "cmo", "Central Mnong" }, { "cmr", "Mro-Khimi Chin" }, { "cms", "Messapic" }, { "cmt", "Camtho" }, { "cna", "Changthang" }, { "cnb", "Chinbon Chin" }, { "cnc", "Côông" }, { "cng", "Northern Qiang" }, { "cnh", "Haka Chin" }, { "cni", "Asháninka" }, { "cnk", "Khumi Chin" }, { "cnl", "Lalana Chinantec" }, { "cno", "Con" }, { "cns", "Central Asmat" }, { "cnt", "Tepetotutla Chinantec" }, { "cnu", "Chenoua" }, { "cnw", "Ngawn Chin" }, { "cnx", "Middle Cornish" }, { "coa", "Cocos Islands Malay" }, { "cob", "Chicomuceltec" }, { "coc", "Cocopa" }, { "cod", "Cocama-Cocamilla" }, { "coe", "Koreguaje" }, { "cof", "Colorado" }, { "cog", "Chong" }, { "coh", "Chonyi-Dzihana-Kauma" }, { "coj", "Cochimi" }, { "cok", "Santa Teresa Cora" }, { "col", "Columbia-Wenatchi" }, { "com", "Comanche" }, { "con", "Cofán" }, { "coo", "Comox" }, { "cop", "Coptic" }, { "coq", "Coquille" }, { "cor", "Cornish" }, { "cos", "Corsican" }, { "cot", "Caquinte" }, { "cou", "Wamey" }, { "cov", "Cao Miao" }, { "cow", "Cowlitz" }, { "cox", "Nanti" }, { "coy", "Coyaima" }, { "coz", "Chochotec" }, { "cpa", "Palantla Chinantec" }, { "cpb", "Ucayali-Yurúa Ashéninka" }, { "cpc", "Ajyíninka Apurucayali" }, { "cpg", "Cappadocian Greek" }, { "cpi", "Chinese Pidgin English" }, { "cpn", "Cherepon" }, { "cpo", "Kpeego" }, { "cps", "Capiznon" }, { "cpu", "Pichis Ashéninka" }, { "cpx", "Pu-Xian Chinese" }, { "cpy", "South Ucayali Ashéninka" }, { "cqd", "Chuanqiandian Cluster Miao" }, { "cqu", "Chilean Quechua" }, { "cra", "Chara" }, { "crb", "Island Carib" }, { "crc", "Lonwolwol" }, { "crd", "Coeur d'Alene" }, { "cre", "Cree" }, { "crf", "Caramanta" }, { "crg", "Michif" }, { "crh", "Crimean Tatar" }, { "cri", "Sãotomense" }, { "crj", "Southern East Cree" }, { "crk", "Plains Cree" }, { "crl", "Northern East Cree" }, { "crm", "Moose Cree" }, { "crn", "El Nayar Cora" }, { "cro", "Crow" }, { "crq", "Iyo'wujwa Chorote" }, { "crr", "Carolina Algonquian" }, { "crs", "Seselwa Creole French" }, { "crt", "Iyojwa'ja Chorote" }, { "crv", "Chaura" }, { "crw", "Chrau" }, { "crx", "Carrier" }, { "cry", "Cori" }, { "crz", "Cruzeño" }, { "csa", "Chiltepec Chinantec" }, { "csb", "Kashubian" }, { "csc", "Catalan Sign Language" }, { "csd", "Chiangmai Sign Language" }, { "cse", "Czech Sign Language" }, { "csf", "Cuba Sign Language" }, { "csg", "Chilean Sign Language" }, { "csh", "Asho Chin" }, { "csi", "Coast Miwok" }, { "csj", "Songlai Chin" }, { "csk", "Jola-Kasa" }, { "csl", "Chinese Sign Language" }, { "csm", "Central Sierra Miwok" }, { "csn", "Colombian Sign Language" }, { "cso", "Sochiapam Chinantec" }, { "csq", "Croatia Sign Language" }, { "csr", "Costa Rican Sign Language" }, { "css", "Southern Ohlone" }, { "cst", "Northern Ohlone" }, { "csv", "Sumtu Chin" }, { "csw", "Swampy Cree" }, { "csy", "Siyin Chin" }, { "csz", "Coos" }, { "cta", "Tataltepec Chatino" }, { "ctc", "Chetco" }, { "ctd", "Tedim Chin" }, { "cte", "Tepinapa Chinantec" }, { "ctg", "Chittagonian" }, { "cth", "Thaiphum Chin" }, { "ctl", "Tlacoatzintepec Chinantec" }, { "ctm", "Chitimacha" }, { "ctn", "Chhintange" }, { "cto", "Emberá-Catío" }, { "ctp", "Western Highland Chatino" }, { "cts", "Northern Catanduanes Bikol" }, { "ctt", "Wayanad Chetti" }, { "ctu", "Chol" }, { "ctz", "Zacatepec Chatino" }, { "cua", "Cua" }, { "cub", "Cubeo" }, { "cuc", "Usila Chinantec" }, { "cug", "Cung" }, { "cuh", "Chuka" }, { "cui", "Cuiba" }, { "cuj", "Mashco Piro" }, { "cuk", "San Blas Kuna" }, { "cul", "Culina" }, { "cum", "Cumeral" }, { "cuo", "Cumanagoto" }, { "cup", "Cupeño" }, { "cuq", "Cun" }, { "cur", "Chhulung" }, { "cut", "Teutila Cuicatec" }, { "cuu", "Tai Ya" }, { "cuv", "Cuvok" }, { "cuw", "Chukwa" }, { "cux", "Tepeuxila Cuicatec" }, { "cvg", "Chug" }, { "cvn", "Valle Nacional Chinantec" }, { "cwa", "Kabwa" }, { "cwb", "Maindo" }, { "cwd", "Woods Cree" }, { "cwe", "Kwere" }, { "cwg", "Chewong" }, { "cwt", "Kuwaataay" }, { "cya", "Nopala Chatino" }, { "cyb", "Cayubaba" }, { "cym", "Welsh" }, { "cyo", "Cuyonon" }, { "czh", "Huizhou Chinese" }, { "czk", "Knaanic" }, { "czn", "Zenzontepec Chatino" }, { "czo", "Min Zhong Chinese" }, { "czt", "Zotung Chin" }, { "daa", "Dangaléat" }, { "dac", "Dambi" }, { "dad", "Marik" }, { "dae", "Duupa" }, { "dag", "Dagbani" }, { "dah", "Gwahatike" }, { "dai", "Day" }, { "daj", "Dar Fur Daju" }, { "dak", "Dakota" }, { "dal", "Dahalo" }, { "dam", "Damakawa" }, { "dan", "Danish" }, { "dao", "Daai Chin" }, { "daq", "Dandami Maria" }, { "dar", "Dargwa" }, { "das", "Daho-Doo" }, { "dau", "Dar Sila Daju" }, { "dav", "Taita" }, { "daw", "Davawenyo" }, { "dax", "Dayi" }, { "daz", "Dao" }, { "dba", "Bangime" }, { "dbb", "Deno" }, { "dbd", "Dadiya" }, { "dbe", "Dabe" }, { "dbf", "Edopi" }, { "dbg", "Dogul Dom Dogon" }, { "dbi", "Doka" }, { "dbj", "Ida'an" }, { "dbl", "Dyirbal" }, { "dbm", "Duguri" }, { "dbn", "Duriankere" }, { "dbo", "Dulbu" }, { "dbp", "Duwai" }, { "dbq", "Daba" }, { "dbr", "Dabarre" }, { "dbt", "Ben Tey Dogon" }, { "dbu", "Bondum Dom Dogon" }, { "dbv", "Dungu" }, { "dbw", "Bankan Tey Dogon" }, { "dby", "Dibiyaso" }, { "dcc", "Deccan" }, { "dcr", "Negerhollands" }, { "dda", "Dadi Dadi" }, { "ddd", "Dongotono" }, { "dde", "Doondo" }, { "ddg", "Fataluku" }, { "ddi", "West Goodenough" }, { "ddj", "Jaru" }, { "ddn", "Dendi (Benin)" }, { "ddo", "Dido" }, { "ddr", "Dhudhuroa" }, { "dds", "Donno So Dogon" }, { "ddw", "Dawera-Daweloor" }, { "dec", "Dagik" }, { "ded", "Dedua" }, { "dee", "Dewoin" }, { "def", "Dezfuli" }, { "deg", "Degema" }, { "deh", "Dehwari" }, { "dei", "Demisa" }, { "dek", "Dek" }, { "del", "Delaware" }, { "dem", "Dem" }, { "den", "Slave (Athapascan)" }, { "dep", "Pidgin Delaware" }, { "deq", "Dendi (Central African Republic)" }, { "der", "Deori" }, { "des", "Desano" }, { "deu", "German" }, { "dev", "Domung" }, { "dez", "Dengese" }, { "dga", "Southern Dagaare" }, { "dgb", "Bunoge Dogon" }, { "dgc", "Casiguran Dumagat Agta" }, { "dgd", "Dagaari Dioula" }, { "dge", "Degenan" }, { "dgg", "Doga" }, { "dgh", "Dghwede" }, { "dgi", "Northern Dagara" }, { "dgk", "Dagba" }, { "dgl", "Andaandi" }, { "dgn", "Dagoman" }, { "dgo", "Dogri (individual language)" }, { "dgr", "Dogrib" }, { "dgs", "Dogoso" }, { "dgt", "Ndra'ngith" }, { "dgu", "Degaru" }, { "dgw", "Daungwurrung" }, { "dgx", "Doghoro" }, { "dgz", "Daga" }, { "dhd", "Dhundari" }, { "dhg", "Djangu" }, { "dhi", "Dhimal" }, { "dhl", "Dhalandji" }, { "dhm", "Zemba" }, { "dhn", "Dhanki" }, { "dho", "Dhodia" }, { "dhr", "Dhargari" }, { "dhs", "Dhaiso" }, { "dhu", "Dhurga" }, { "dhv", "Dehu" }, { "dhw", "Dhanwar (Nepal)" }, { "dhx", "Dhungaloo" }, { "dia", "Dia" }, { "dib", "South Central Dinka" }, { "dic", "Lakota Dida" }, { "did", "Didinga" }, { "dif", "Dieri" }, { "dig", "Digo" }, { "dih", "Kumiai" }, { "dii", "Dimbong" }, { "dij", "Dai" }, { "dik", "Southwestern Dinka" }, { "dil", "Dilling" }, { "dim", "Dime" }, { "din", "Dinka" }, { "dio", "Dibo" }, { "dip", "Northeastern Dinka" }, { "diq", "Dimli (individual language)" }, { "dir", "Dirim" }, { "dis", "Dimasa" }, { "dit", "Dirari" }, { "diu", "Diriku" }, { "div", "Dhivehi" }, { "diw", "Northwestern Dinka" }, { "dix", "Dixon Reef" }, { "diy", "Diuwe" }, { "diz", "Ding" }, { "dja", "Djadjawurrung" }, { "djb", "Djinba" }, { "djc", "Dar Daju Daju" }, { "djd", "Djamindjung" }, { "dje", "Zarma" }, { "djf", "Djangun" }, { "dji", "Djinang" }, { "djj", "Djeebbana" }, { "djk", "Eastern Maroon Creole" }, { "djm", "Jamsay Dogon" }, { "djn", "Djauan" }, { "djo", "Jangkang" }, { "djr", "Djambarrpuyngu" }, { "dju", "Kapriman" }, { "djw", "Djawi" }, { "dka", "Dakpakha" }, { "dkk", "Dakka" }, { "dkr", "Kuijau" }, { "dks", "Southeastern Dinka" }, { "dkx", "Mazagway" }, { "dlg", "Dolgan" }, { "dlk", "Dahalik" }, { "dlm", "Dalmatian" }, { "dln", "Darlong" }, { "dma", "Duma" }, { "dmb", "Mombo Dogon" }, { "dmc", "Gavak" }, { "dmd", "Madhi Madhi" }, { "dme", "Dugwor" }, { "dmg", "Upper Kinabatangan" }, { "dmk", "Domaaki" }, { "dml", "Dameli" }, { "dmm", "Dama" }, { "dmo", "Kemedzung" }, { "dmr", "East Damar" }, { "dms", "Dampelas" }, { "dmu", "Dubu" }, { "dmv", "Dumpas" }, { "dmw", "Mudburra" }, { "dmx", "Dema" }, { "dmy", "Demta" }, { "dna", "Upper Grand Valley Dani" }, { "dnd", "Daonda" }, { "dne", "Ndendeule" }, { "dng", "Dungan" }, { "dni", "Lower Grand Valley Dani" }, { "dnj", "Dan" }, { "dnk", "Dengka" }, { "dnn", "Dzùùngoo" }, { "dnr", "Danaru" }, { "dnt", "Mid Grand Valley Dani" }, { "dnu", "Danau" }, { "dnv", "Danu" }, { "dnw", "Western Dani" }, { "dny", "Dení" }, { "doa", "Dom" }, { "dob", "Dobu" }, { "doc", "Northern Dong" }, { "doe", "Doe" }, { "dof", "Domu" }, { "doh", "Dong" }, { "doi", "Dogri (macrolanguage)" }, { "dok", "Dondo" }, { "dol", "Doso" }, { "don", "Toura (Papua New Guinea)" }, { "doo", "Dongo" }, { "dop", "Lukpa" }, { "doq", "Dominican Sign Language" }, { "dor", "Dori'o" }, { "dos", "Dogosé" }, { "dot", "Dass" }, { "dov", "Dombe" }, { "dow", "Doyayo" }, { "dox", "Bussa" }, { "doy", "Dompo" }, { "doz", "Dorze" }, { "dpp", "Papar" }, { "drb", "Dair" }, { "drc", "Minderico" }, { "drd", "Darmiya" }, { "dre", "Dolpo" }, { "drg", "Rungus" }, { "dri", "C'lela" }, { "drl", "Paakantyi" }, { "drn", "West Damar" }, { "dro", "Daro-Matu Melanau" }, { "drq", "Dura" }, { "drr", "Dororo" }, { "drs", "Gedeo" }, { "drt", "Drents" }, { "dru", "Rukai" }, { "dry", "Darai" }, { "dsb", "Lower Sorbian" }, { "dse", "Dutch Sign Language" }, { "dsh", "Daasanach" }, { "dsi", "Disa" }, { "dsl", "Danish Sign Language" }, { "dsn", "Dusner" }, { "dso", "Desiya" }, { "dsq", "Tadaksahak" }, { "dta", "Daur" }, { "dtb", "Labuk-Kinabatangan Kadazan" }, { "dtd", "Ditidaht" }, { "dth", "Adithinngithigh" }, { "dti", "Ana Tinga Dogon" }, { "dtk", "Tene Kan Dogon" }, { "dtm", "Tomo Kan Dogon" }, { "dto", "Tommo So Dogon" }, { "dtp", "Central Dusun" }, { "dtr", "Lotud" }, { "dts", "Toro So Dogon" }, { "dtt", "Toro Tegu Dogon" }, { "dtu", "Tebul Ure Dogon" }, { "dty", "Dotyali" }, { "dua", "Duala" }, { "dub", "Dubli" }, { "duc", "Duna" }, { "dud", "Hun-Saare" }, { "due", "Umiray Dumaget Agta" }, { "duf", "Dumbea" }, { "dug", "Duruma" }, { "duh", "Dungra Bhil" }, { "dui", "Dumun" }, { "duj", "Dhuwal" }, { "duk", "Uyajitaya" }, { "dul", "Alabat Island Agta" }, { "dum", "Middle Dutch (ca. 1050-1350)" }, { "dun", "Dusun Deyah" }, { "duo", "Dupaninan Agta" }, { "dup", "Duano" }, { "duq", "Dusun Malang" }, { "dur", "Dii" }, { "dus", "Dumi" }, { "duu", "Drung" }, { "duv", "Duvle" }, { "duw", "Dusun Witu" }, { "dux", "Duungooma" }, { "duy", "Dicamay Agta" }, { "duz", "Duli" }, { "dva", "Duau" }, { "dwa", "Diri" }, { "dwr", "Dawro" }, { "dws", "Dutton World Speedwords" }, { "dww", "Dawawa" }, { "dya", "Dyan" }, { "dyb", "Dyaberdyaber" }, { "dyd", "Dyugun" }, { "dyg", "Villa Viciosa Agta" }, { "dyi", "Djimini Senoufo" }, { "dym", "Yanda Dom Dogon" }, { "dyn", "Dyangadi" }, { "dyo", "Jola-Fonyi" }, { "dyu", "Dyula" }, { "dyy", "Dyaabugay" }, { "dza", "Tunzu" }, { "dzd", "Daza" }, { "dze", "Djiwarli" }, { "dzg", "Dazaga" }, { "dzl", "Dzalakha" }, { "dzn", "Dzando" }, { "dzo", "Dzongkha" }, { "eaa", "Karenggapa" }, { "ebg", "Ebughu" }, { "ebk", "Eastern Bontok" }, { "ebo", "Teke-Ebo" }, { "ebr", "Ebrié" }, { "ebu", "Embu" }, { "ecr", "Eteocretan" }, { "ecs", "Ecuadorian Sign Language" }, { "ecy", "Eteocypriot" }, { "eee", "E" }, { "efa", "Efai" }, { "efe", "Efe" }, { "efi", "Efik" }, { "ega", "Ega" }, { "egl", "Emilian" }, { "ego", "Eggon" }, { "egy", "Egyptian (Ancient)" }, { "ehu", "Ehueun" }, { "eip", "Eipomek" }, { "eit", "Eitiep" }, { "eiv", "Askopan" }, { "eja", "Ejamat" }, { "eka", "Ekajuk" }, { "ekc", "Eastern Karnic" }, { "eke", "Ekit" }, { "ekg", "Ekari" }, { "eki", "Eki" }, { "ekk", "Standard Estonian" }, { "ekl", "Kol (Bangladesh)" }, { "ekm", "Elip" }, { "eko", "Koti" }, { "ekp", "Ekpeye" }, { "ekr", "Yace" }, { "eky", "Eastern Kayah" }, { "ele", "Elepi" }, { "elh", "El Hugeirat" }, { "eli", "Nding" }, { "elk", "Elkei" }, { "ell", "Modern Greek (1453-)" }, { "elm", "Eleme" }, { "elo", "El Molo" }, { "elu", "Elu" }, { "elx", "Elamite" }, { "ema", "Emai-Iuleha-Ora" }, { "emb", "Embaloh" }, { "eme", "Emerillon" }, { "emg", "Eastern Meohang" }, { "emi", "Mussau-Emira" }, { "emk", "Eastern Maninkakan" }, { "emm", "Mamulique" }, { "emn", "Eman" }, { "emo", "Emok" }, { "emp", "Northern Emberá" }, { "ems", "Pacific Gulf Yupik" }, { "emu", "Eastern Muria" }, { "emw", "Emplawas" }, { "emx", "Erromintxela" }, { "emy", "Epigraphic Mayan" }, { "ena", "Apali" }, { "enb", "Markweeta" }, { "enc", "En" }, { "end", "Ende" }, { "enf", "Forest Enets" }, { "eng", "English" }, { "enh", "Tundra Enets" }, { "enm", "Middle English (1100-1500)" }, { "enn", "Engenni" }, { "eno", "Enggano" }, { "enq", "Enga" }, { "enr", "Emumu" }, { "enu", "Enu" }, { "env", "Enwan (Edu State)" }, { "enw", "Enwan (Akwa Ibom State)" }, { "eot", "Beti (Côte d'Ivoire)" }, { "epi", "Epie" }, { "epo", "Esperanto" }, { "era", "Eravallan" }, { "erg", "Sie" }, { "erh", "Eruwa" }, { "eri", "Ogea" }, { "erk", "South Efate" }, { "ero", "Horpa" }, { "err", "Erre" }, { "ers", "Ersu" }, { "ert", "Eritai" }, { "erw", "Erokwanas" }, { "ese", "Ese Ejja" }, { "esh", "Eshtehardi" }, { "esi", "North Alaskan Inupiatun" }, { "esk", "Northwest Alaska Inupiatun" }, { "esl", "Egypt Sign Language" }, { "esm", "Esuma" }, { "esn", "Salvadoran Sign Language" }, { "eso", "Estonian Sign Language" }, { "esq", "Esselen" }, { "ess", "Central Siberian Yupik" }, { "est", "Estonian" }, { "esu", "Central Yupik" }, { "etb", "Etebi" }, { "etc", "Etchemin" }, { "eth", "Ethiopian Sign Language" }, { "etn", "Eton (Vanuatu)" }, { "eto", "Eton (Cameroon)" }, { "etr", "Edolo" }, { "ets", "Yekhee" }, { "ett", "Etruscan" }, { "etu", "Ejagham" }, { "etx", "Eten" }, { "etz", "Semimi" }, { "eus", "Basque" }, { "eve", "Even" }, { "evh", "Uvbie" }, { "evn", "Evenki" }, { "ewe", "Ewe" }, { "ewo", "Ewondo" }, { "ext", "Extremaduran" }, { "eya", "Eyak" }, { "eyo", "Keiyo" }, { "eza", "Ezaa" }, { "eze", "Uzekwe" }, { "faa", "Fasu" }, { "fab", "Fa d'Ambu" }, { "fad", "Wagi" }, { "faf", "Fagani" }, { "fag", "Finongan" }, { "fah", "Baissa Fali" }, { "fai", "Faiwol" }, { "faj", "Faita" }, { "fak", "Fang (Cameroon)" }, { "fal", "South Fali" }, { "fam", "Fam" }, { "fan", "Fang (Equatorial Guinea)" }, { "fao", "Faroese" }, { "fap", "Palor" }, { "far", "Fataleka" }, { "fas", "Persian" }, { "fat", "Fanti" }, { "fau", "Fayu" }, { "fax", "Fala" }, { "fay", "Southwestern Fars" }, { "faz", "Northwestern Fars" }, { "fbl", "West Albay Bikol" }, { "fcs", "Quebec Sign Language" }, { "fer", "Feroge" }, { "ffi", "Foia Foia" }, { "ffm", "Maasina Fulfulde" }, { "fgr", "Fongoro" }, { "fia", "Nobiin" }, { "fie", "Fyer" }, { "fij", "Fijian" }, { "fil", "Filipino" }, { "fin", "Finnish" }, { "fip", "Fipa" }, { "fir", "Firan" }, { "fit", "Tornedalen Finnish" }, { "fiw", "Fiwaga" }, { "fkk", "Kirya-Konzəl" }, { "fkv", "Kven Finnish" }, { "fla", "Kalispel-Pend d'Oreille" }, { "flh", "Foau" }, { "fli", "Fali" }, { "fll", "North Fali" }, { "fln", "Flinders Island" }, { "flr", "Fuliiru" }, { "fly", "Tsotsitaal" }, { "fmp", "Fe'fe'" }, { "fmu", "Far Western Muria" }, { "fng", "Fanagalo" }, { "fni", "Fania" }, { "fod", "Foodo" }, { "foi", "Foi" }, { "fom", "Foma" }, { "fon", "Fon" }, { "for", "Fore" }, { "fos", "Siraya" }, { "fpe", "Fernando Po Creole English" }, { "fqs", "Fas" }, { "fra", "French" }, { "frc", "Cajun French" }, { "frd", "Fordata" }, { "frk", "Frankish" }, { "frm", "Middle French (ca. 1400-1600)" }, { "fro", "Old French (842-ca. 1400)" }, { "frp", "Arpitan" }, { "frq", "Forak" }, { "frr", "Northern Frisian" }, { "frs", "Eastern Frisian" }, { "frt", "Fortsenal" }, { "fry", "Western Frisian" }, { "fse", "Finnish Sign Language" }, { "fsl", "French Sign Language" }, { "fss", "Finland-Swedish Sign Language" }, { "fub", "Adamawa Fulfulde" }, { "fuc", "Pulaar" }, { "fud", "East Futuna" }, { "fue", "Borgu Fulfulde" }, { "fuf", "Pular" }, { "fuh", "Western Niger Fulfulde" }, { "fui", "Bagirmi Fulfulde" }, { "fuj", "Ko" }, { "ful", "Fulah" }, { "fum", "Fum" }, { "fun", "Fulniô" }, { "fuq", "Central-Eastern Niger Fulfulde" }, { "fur", "Friulian" }, { "fut", "Futuna-Aniwa" }, { "fuu", "Furu" }, { "fuv", "Nigerian Fulfulde" }, { "fuy", "Fuyug" }, { "fvr", "Fur" }, { "fwa", "Fwâi" }, { "fwe", "Fwe" }, { "gaa", "Ga" }, { "gab", "Gabri" }, { "gac", "Mixed Great Andamanese" }, { "gad", "Gaddang" }, { "gae", "Guarequena" }, { "gaf", "Gende" }, { "gag", "Gagauz" }, { "gah", "Alekano" }, { "gai", "Borei" }, { "gaj", "Gadsup" }, { "gak", "Gamkonora" }, { "gal", "Galolen" }, { "gam", "Kandawo" }, { "gan", "Gan Chinese" }, { "gao", "Gants" }, { "gap", "Gal" }, { "gaq", "Gata'" }, { "gar", "Galeya" }, { "gas", "Adiwasi Garasia" }, { "gat", "Kenati" }, { "gau", "Mudhili Gadaba" }, { "gaw", "Nobonob" }, { "gax", "Borana-Arsi-Guji Oromo" }, { "gay", "Gayo" }, { "gaz", "West Central Oromo" }, { "gba", "Gbaya (Central African Republic)" }, { "gbb", "Kaytetye" }, { "gbd", "Karadjeri" }, { "gbe", "Niksek" }, { "gbf", "Gaikundi" }, { "gbg", "Gbanziri" }, { "gbh", "Defi Gbe" }, { "gbi", "Galela" }, { "gbj", "Bodo Gadaba" }, { "gbk", "Gaddi" }, { "gbl", "Gamit" }, { "gbm", "Garhwali" }, { "gbn", "Mo'da" }, { "gbo", "Northern Grebo" }, { "gbp", "Gbaya-Bossangoa" }, { "gbq", "Gbaya-Bozoum" }, { "gbr", "Gbagyi" }, { "gbs", "Gbesi Gbe" }, { "gbu", "Gagadu" }, { "gbv", "Gbanu" }, { "gbw", "Gabi-Gabi" }, { "gbx", "Eastern Xwla Gbe" }, { "gby", "Gbari" }, { "gbz", "Zoroastrian Dari" }, { "gcc", "Mali" }, { "gcd", "Ganggalida" }, { "gce", "Galice" }, { "gcf", "Guadeloupean Creole French" }, { "gcl", "Grenadian Creole English" }, { "gcn", "Gaina" }, { "gcr", "Guianese Creole French" }, { "gct", "Colonia Tovar German" }, { "gda", "Gade Lohar" }, { "gdb", "Pottangi Ollar Gadaba" }, { "gdc", "Gugu Badhun" }, { "gdd", "Gedaged" }, { "gde", "Gude" }, { "gdf", "Guduf-Gava" }, { "gdg", "Ga'dang" }, { "gdh", "Gadjerawang" }, { "gdi", "Gundi" }, { "gdj", "Gurdjar" }, { "gdk", "Gadang" }, { "gdl", "Dirasha" }, { "gdm", "Laal" }, { "gdn", "Umanakaina" }, { "gdo", "Ghodoberi" }, { "gdq", "Mehri" }, { "gdr", "Wipi" }, { "gds", "Ghandruk Sign Language" }, { "gdt", "Kungardutyi" }, { "gdu", "Gudu" }, { "gdx", "Godwari" }, { "gea", "Geruma" }, { "geb", "Kire" }, { "gec", "Gboloo Grebo" }, { "ged", "Gade" }, { "geg", "Gengle" }, { "geh", "Hutterite German" }, { "gei", "Gebe" }, { "gej", "Gen" }, { "gek", "Yiwom" }, { "gel", "ut-Ma'in" }, { "geq", "Geme" }, { "ges", "Geser-Gorom" }, { "gew", "Gera" }, { "gex", "Garre" }, { "gey", "Enya" }, { "gez", "Geez" }, { "gfk", "Patpatar" }, { "gft", "Gafat" }, { "gfx", "Mangetti Dune !Xung" }, { "gga", "Gao" }, { "ggb", "Gbii" }, { "ggd", "Gugadj" }, { "gge", "Guragone" }, { "ggg", "Gurgula" }, { "ggk", "Kungarakany" }, { "ggl", "Ganglau" }, { "ggm", "Gugu Mini" }, { "ggn", "Eastern Gurung" }, { "ggo", "Southern Gondi" }, { "ggt", "Gitua" }, { "ggu", "Gagu" }, { "ggw", "Gogodala" }, { "gha", "Ghadamès" }, { "ghc", "Hiberno-Scottish Gaelic" }, { "ghe", "Southern Ghale" }, { "ghh", "Northern Ghale" }, { "ghk", "Geko Karen" }, { "ghl", "Ghulfan" }, { "ghn", "Ghanongga" }, { "gho", "Ghomara" }, { "ghr", "Ghera" }, { "ghs", "Guhu-Samane" }, { "ght", "Kuke" }, { "gia", "Kitja" }, { "gib", "Gibanawa" }, { "gic", "Gail" }, { "gid", "Gidar" }, { "gig", "Goaria" }, { "gih", "Githabul" }, { "gil", "Gilbertese" }, { "gim", "Gimi (Eastern Highlands)" }, { "gin", "Hinukh" }, { "gip", "Gimi (West New Britain)" }, { "giq", "Green Gelao" }, { "gir", "Red Gelao" }, { "gis", "North Giziga" }, { "git", "Gitxsan" }, { "giu", "Mulao" }, { "giw", "White Gelao" }, { "gix", "Gilima" }, { "giy", "Giyug" }, { "giz", "South Giziga" }, { "gji", "Geji" }, { "gjk", "Kachi Koli" }, { "gjm", "Gunditjmara" }, { "gjn", "Gonja" }, { "gju", "Gujari" }, { "gka", "Guya" }, { "gke", "Ndai" }, { "gkn", "Gokana" }, { "gko", "Kok-Nar" }, { "gkp", "Guinea Kpelle" }, { "gla", "Scottish Gaelic" }, { "glc", "Bon Gula" }, { "gld", "Nanai" }, { "gle", "Irish" }, { "glg", "Galician" }, { "glh", "Northwest Pashayi" }, { "gli", "Guliguli" }, { "glj", "Gula Iro" }, { "glk", "Gilaki" }, { "gll", "Garlali" }, { "glo", "Galambu" }, { "glr", "Glaro-Twabo" }, { "glu", "Gula (Chad)" }, { "glv", "Manx" }, { "glw", "Glavda" }, { "gly", "Gule" }, { "gma", "Gambera" }, { "gmb", "Gula'alaa" }, { "gmd", "Mághdì" }, { "gmh", "Middle High German (ca. 1050-1500)" }, { "gml", "Middle Low German" }, { "gmm", "Gbaya-Mbodomo" }, { "gmn", "Gimnime" }, { "gmu", "Gumalu" }, { "gmv", "Gamo" }, { "gmx", "Magoma" }, { "gmy", "Mycenaean Greek" }, { "gmz", "Mgbolizhia" }, { "gna", "Kaansa" }, { "gnb", "Gangte" }, { "gnc", "Guanche" }, { "gnd", "Zulgo-Gemzek" }, { "gne", "Ganang" }, { "gng", "Ngangam" }, { "gnh", "Lere" }, { "gni", "Gooniyandi" }, { "gnk", "Gana" }, { "gnl", "Gangulu" }, { "gnm", "Ginuman" }, { "gnn", "Gumatj" }, { "gno", "Northern Gondi" }, { "gnq", "Gana" }, { "gnr", "Gureng Gureng" }, { "gnt", "Guntai" }, { "gnu", "Gnau" }, { "gnw", "Western Bolivian Guaraní" }, { "gnz", "Ganzi" }, { "goa", "Guro" }, { "gob", "Playero" }, { "goc", "Gorakor" }, { "god", "Godié" }, { "goe", "Gongduk" }, { "gof", "Gofa" }, { "gog", "Gogo" }, { "goh", "Old High German (ca. 750-1050)" }, { "goi", "Gobasi" }, { "goj", "Gowlan" }, { "gok", "Gowli" }, { "gol", "Gola" }, { "gom", "Goan Konkani" }, { "gon", "Gondi" }, { "goo", "Gone Dau" }, { "gop", "Yeretuar" }, { "goq", "Gorap" }, { "gor", "Gorontalo" }, { "gos", "Gronings" }, { "got", "Gothic" }, { "gou", "Gavar" }, { "gow", "Gorowa" }, { "gox", "Gobu" }, { "goy", "Goundo" }, { "goz", "Gozarkhani" }, { "gpa", "Gupa-Abawa" }, { "gpe", "Ghanaian Pidgin English" }, { "gpn", "Taiap" }, { "gqa", "Ga'anda" }, { "gqi", "Guiqiong" }, { "gqn", "Guana (Brazil)" }, { "gqr", "Gor" }, { "gqu", "Qau" }, { "gra", "Rajput Garasia" }, { "grb", "Grebo" }, { "grc", "Ancient Greek (to 1453)" }, { "grd", "Guruntum-Mbaaru" }, { "grg", "Madi" }, { "grh", "Gbiri-Niragu" }, { "gri", "Ghari" }, { "grj", "Southern Grebo" }, { "grm", "Kota Marudu Talantang" }, { "grn", "Guarani" }, { "gro", "Groma" }, { "grq", "Gorovu" }, { "grr", "Taznatit" }, { "grs", "Gresi" }, { "grt", "Garo" }, { "gru", "Kistane" }, { "grv", "Central Grebo" }, { "grw", "Gweda" }, { "grx", "Guriaso" }, { "gry", "Barclayville Grebo" }, { "grz", "Guramalum" }, { "gse", "Ghanaian Sign Language" }, { "gsg", "German Sign Language" }, { "gsl", "Gusilay" }, { "gsm", "Guatemalan Sign Language" }, { "gsn", "Gusan" }, { "gso", "Southwest Gbaya" }, { "gsp", "Wasembo" }, { "gss", "Greek Sign Language" }, { "gsw", "Swiss German" }, { "gta", "Guató" }, { "gti", "Gbati-ri" }, { "gtu", "Aghu-Tharnggala" }, { "gua", "Shiki" }, { "gub", "Guajajára" }, { "guc", "Wayuu" }, { "gud", "Yocoboué Dida" }, { "gue", "Gurinji" }, { "guf", "Gupapuyngu" }, { "gug", "Paraguayan Guaraní" }, { "guh", "Guahibo" }, { "gui", "Eastern Bolivian Guaraní" }, { "guj", "Gujarati" }, { "guk", "Gumuz" }, { "gul", "Sea Island Creole English" }, { "gum", "Guambiano" }, { "gun", "Mbyá Guaraní" }, { "guo", "Guayabero" }, { "gup", "Gunwinggu" }, { "guq", "Aché" }, { "gur", "Farefare" }, { "gus", "Guinean Sign Language" }, { "gut", "Maléku Jaíka" }, { "guu", "Yanomamö" }, { "guv", "Gey" }, { "guw", "Gun" }, { "gux", "Gourmanchéma" }, { "guz", "Gusii" }, { "gva", "Guana (Paraguay)" }, { "gvc", "Guanano" }, { "gve", "Duwet" }, { "gvf", "Golin" }, { "gvj", "Guajá" }, { "gvl", "Gulay" }, { "gvm", "Gurmana" }, { "gvn", "Kuku-Yalanji" }, { "gvo", "Gavião Do Jiparaná" }, { "gvp", "Pará Gavião" }, { "gvr", "Western Gurung" }, { "gvs", "Gumawana" }, { "gvy", "Guyani" }, { "gwa", "Mbato" }, { "gwb", "Gwa" }, { "gwc", "Kalami" }, { "gwd", "Gawwada" }, { "gwe", "Gweno" }, { "gwf", "Gowro" }, { "gwg", "Moo" }, { "gwi", "Gwichʼin" }, { "gwj", "Gwi" }, { "gwm", "Awngthim" }, { "gwn", "Gwandara" }, { "gwr", "Gwere" }, { "gwt", "Gawar-Bati" }, { "gwu", "Guwamu" }, { "gww", "Kwini" }, { "gwx", "Gua" }, { "gxx", "Wè Southern" }, { "gya", "Northwest Gbaya" }, { "gyb", "Garus" }, { "gyd", "Kayardild" }, { "gye", "Gyem" }, { "gyf", "Gungabula" }, { "gyg", "Gbayi" }, { "gyi", "Gyele" }, { "gyl", "Gayil" }, { "gym", "Ngäbere" }, { "gyn", "Guyanese Creole English" }, { "gyr", "Guarayu" }, { "gyy", "Gunya" }, { "gza", "Ganza" }, { "gzi", "Gazi" }, { "gzn", "Gane" }, { "haa", "Han" }, { "hab", "Hanoi Sign Language" }, { "hac", "Gurani" }, { "had", "Hatam" }, { "hae", "Eastern Oromo" }, { "haf", "Haiphong Sign Language" }, { "hag", "Hanga" }, { "hah", "Hahon" }, { "hai", "Haida" }, { "haj", "Hajong" }, { "hak", "Hakka Chinese" }, { "hal", "Halang" }, { "ham", "Hewa" }, { "han", "Hangaza" }, { "hao", "Hakö" }, { "hap", "Hupla" }, { "haq", "Ha" }, { "har", "Harari" }, { "has", "Haisla" }, { "hat", "Haitian" }, { "hau", "Hausa" }, { "hav", "Havu" }, { "haw", "Hawaiian" }, { "hax", "Southern Haida" }, { "hay", "Haya" }, { "haz", "Hazaragi" }, { "hba", "Hamba" }, { "hbb", "Huba" }, { "hbn", "Heiban" }, { "hbo", "Ancient Hebrew" }, { "hbs", "Serbo-Croatian" }, { "hbu", "Habu" }, { "hca", "Andaman Creole Hindi" }, { "hch", "Huichol" }, { "hdn", "Northern Haida" }, { "hds", "Honduras Sign Language" }, { "hdy", "Hadiyya" }, { "hea", "Northern Qiandong Miao" }, { "heb", "Hebrew" }, { "hed", "Herdé" }, { "heg", "Helong" }, { "heh", "Hehe" }, { "hei", "Heiltsuk" }, { "hem", "Hemba" }, { "her", "Herero" }, { "hgm", "Haiom" }, { "hgw", "Haigwai" }, { "hhi", "Hoia Hoia" }, { "hhr", "Kerak" }, { "hhy", "Hoyahoya" }, { "hia", "Lamang" }, { "hib", "Hibito" }, { "hid", "Hidatsa" }, { "hif", "Fiji Hindi" }, { "hig", "Kamwe" }, { "hih", "Pamosu" }, { "hii", "Hinduri" }, { "hij", "Hijuk" }, { "hik", "Seit-Kaitetu" }, { "hil", "Hiligaynon" }, { "hin", "Hindi" }, { "hio", "Tsoa" }, { "hir", "Himarimã" }, { "hit", "Hittite" }, { "hiw", "Hiw" }, { "hix", "Hixkaryána" }, { "hji", "Haji" }, { "hka", "Kahe" }, { "hke", "Hunde" }, { "hkk", "Hunjara-Kaina Ke" }, { "hks", "Hong Kong Sign Language" }, { "hla", "Halia" }, { "hlb", "Halbi" }, { "hld", "Halang Doan" }, { "hle", "Hlersu" }, { "hlt", "Matu Chin" }, { "hlu", "Hieroglyphic Luwian" }, { "hma", "Southern Mashan Hmong" }, { "hmb", "Humburi Senni Songhay" }, { "hmc", "Central Huishui Hmong" }, { "hmd", "Large Flowery Miao" }, { "hme", "Eastern Huishui Hmong" }, { "hmf", "Hmong Don" }, { "hmg", "Southwestern Guiyang Hmong" }, { "hmh", "Southwestern Huishui Hmong" }, { "hmi", "Northern Huishui Hmong" }, { "hmj", "Ge" }, { "hmk", "Maek" }, { "hml", "Luopohe Hmong" }, { "hmm", "Central Mashan Hmong" }, { "hmn", "Hmong" }, { "hmo", "Hiri Motu" }, { "hmp", "Northern Mashan Hmong" }, { "hmq", "Eastern Qiandong Miao" }, { "hmr", "Hmar" }, { "hms", "Southern Qiandong Miao" }, { "hmt", "Hamtai" }, { "hmu", "Hamap" }, { "hmv", "Hmong Dô" }, { "hmw", "Western Mashan Hmong" }, { "hmy", "Southern Guiyang Hmong" }, { "hmz", "Hmong Shua" }, { "hna", "Mina (Cameroon)" }, { "hnd", "Southern Hindko" }, { "hne", "Chhattisgarhi" }, { "hnh", "Ani" }, { "hni", "Hani" }, { "hnj", "Hmong Njua" }, { "hnn", "Hanunoo" }, { "hno", "Northern Hindko" }, { "hns", "Caribbean Hindustani" }, { "hnu", "Hung" }, { "hoa", "Hoava" }, { "hob", "Mari (Madang Province)" }, { "hoc", "Ho" }, { "hod", "Holma" }, { "hoe", "Horom" }, { "hoh", "Hobyót" }, { "hoi", "Holikachuk" }, { "hoj", "Hadothi" }, { "hol", "Holu" }, { "hom", "Homa" }, { "hoo", "Holoholo" }, { "hop", "Hopi" }, { "hor", "Horo" }, { "hos", "Ho Chi Minh City Sign Language" }, { "hot", "Hote" }, { "hov", "Hovongan" }, { "how", "Honi" }, { "hoy", "Holiya" }, { "hoz", "Hozo" }, { "hpo", "Hpon" }, { "hps", "Hawai'i Pidgin Sign Language" }, { "hra", "Hrangkhol" }, { "hrc", "Niwer Mil" }, { "hre", "Hre" }, { "hrk", "Haruku" }, { "hrm", "Horned Miao" }, { "hro", "Haroi" }, { "hrp", "Nhirrpi" }, { "hrt", "Hértevin" }, { "hru", "Hruso" }, { "hrv", "Croatian" }, { "hrw", "Warwar Feni" }, { "hrx", "Hunsrik" }, { "hrz", "Harzani" }, { "hsb", "Upper Sorbian" }, { "hsh", "Hungarian Sign Language" }, { "hsl", "Hausa Sign Language" }, { "hsn", "Xiang Chinese" }, { "hss", "Harsusi" }, { "hti", "Hoti" }, { "hto", "Minica Huitoto" }, { "hts", "Hadza" }, { "htu", "Hitu" }, { "htx", "Middle Hittite" }, { "hub", "Huambisa" }, { "huc", "=Hua" }, { "hud", "Huaulu" }, { "hue", "San Francisco Del Mar Huave" }, { "huf", "Humene" }, { "hug", "Huachipaeri" }, { "huh", "Huilliche" }, { "hui", "Huli" }, { "huj", "Northern Guiyang Hmong" }, { "huk", "Hulung" }, { "hul", "Hula" }, { "hum", "Hungana" }, { "hun", "Hungarian" }, { "huo", "Hu" }, { "hup", "Hupa" }, { "huq", "Tsat" }, { "hur", "Halkomelem" }, { "hus", "Huastec" }, { "hut", "Humla" }, { "huu", "Murui Huitoto" }, { "huv", "San Mateo Del Mar Huave" }, { "huw", "Hukumina" }, { "hux", "Nüpode Huitoto" }, { "huy", "Hulaulá" }, { "huz", "Hunzib" }, { "hvc", "Haitian Vodoun Culture Language" }, { "hve", "San Dionisio Del Mar Huave" }, { "hvk", "Haveke" }, { "hvn", "Sabu" }, { "hvv", "Santa María Del Mar Huave" }, { "hwa", "Wané" }, { "hwc", "Hawai'i Creole English" }, { "hwo", "Hwana" }, { "hya", "Hya" }, { "hye", "Armenian" }, { "iai", "Iaai" }, { "ian", "Iatmul" }, { "iap", "Iapama" }, { "iar", "Purari" }, { "iba", "Iban" }, { "ibb", "Ibibio" }, { "ibd", "Iwaidja" }, { "ibe", "Akpes" }, { "ibg", "Ibanag" }, { "ibl", "Ibaloi" }, { "ibm", "Agoi" }, { "ibn", "Ibino" }, { "ibo", "Igbo" }, { "ibr", "Ibuoro" }, { "ibu", "Ibu" }, { "iby", "Ibani" }, { "ica", "Ede Ica" }, { "ich", "Etkywan" }, { "icl", "Icelandic Sign Language" }, { "icr", "Islander Creole English" }, { "ida", "Idakho-Isukha-Tiriki" }, { "idb", "Indo-Portuguese" }, { "idc", "Idon" }, { "idd", "Ede Idaca" }, { "ide", "Idere" }, { "idi", "Idi" }, { "ido", "Ido" }, { "idr", "Indri" }, { "ids", "Idesa" }, { "idt", "Idaté" }, { "idu", "Idoma" }, { "ifa", "Amganad Ifugao" }, { "ifb", "Batad Ifugao" }, { "ife", "Ifè" }, { "iff", "Ifo" }, { "ifk", "Tuwali Ifugao" }, { "ifm", "Teke-Fuumu" }, { "ifu", "Mayoyao Ifugao" }, { "ify", "Keley-I Kallahan" }, { "igb", "Ebira" }, { "ige", "Igede" }, { "igg", "Igana" }, { "igl", "Igala" }, { "igm", "Kanggape" }, { "ign", "Ignaciano" }, { "igo", "Isebe" }, { "igs", "Interglossa" }, { "igw", "Igwe" }, { "ihb", "Iha Based Pidgin" }, { "ihi", "Ihievbe" }, { "ihp", "Iha" }, { "ihw", "Bidhawal" }, { "iii", "Sichuan Yi" }, { "iin", "Thiin" }, { "ijc", "Izon" }, { "ije", "Biseni" }, { "ijj", "Ede Ije" }, { "ijn", "Kalabari" }, { "ijs", "Southeast Ijo" }, { "ike", "Eastern Canadian Inuktitut" }, { "iki", "Iko" }, { "ikk", "Ika" }, { "ikl", "Ikulu" }, { "iko", "Olulumo-Ikom" }, { "ikp", "Ikpeshi" }, { "ikr", "Ikaranggal" }, { "ikt", "Inuinnaqtun" }, { "iku", "Inuktitut" }, { "ikv", "Iku-Gora-Ankwa" }, { "ikw", "Ikwere" }, { "ikx", "Ik" }, { "ikz", "Ikizu" }, { "ila", "Ile Ape" }, { "ilb", "Ila" }, { "ile", "Interlingue" }, { "ilg", "Garig-Ilgar" }, { "ili", "Ili Turki" }, { "ilk", "Ilongot" }, { "ill", "Iranun" }, { "ilo", "Iloko" }, { "ils", "International Sign" }, { "ilu", "Ili'uun" }, { "ilv", "Ilue" }, { "ima", "Mala Malasar" }, { "ime", "Imeraguen" }, { "imi", "Anamgura" }, { "iml", "Miluk" }, { "imn", "Imonda" }, { "imo", "Imbongu" }, { "imr", "Imroing" }, { "ims", "Marsian" }, { "imy", "Milyan" }, { "ina", "Interlingua (International Auxiliary Language Association)" }, { "inb", "Inga" }, { "ind", "Indonesian" }, { "ing", "Degexit'an" }, { "inh", "Ingush" }, { "inj", "Jungle Inga" }, { "inl", "Indonesian Sign Language" }, { "inm", "Minaean" }, { "inn", "Isinai" }, { "ino", "Inoke-Yate" }, { "inp", "Iñapari" }, { "ins", "Indian Sign Language" }, { "int", "Intha" }, { "inz", "Ineseño" }, { "ior", "Inor" }, { "iou", "Tuma-Irumu" }, { "iow", "Iowa-Oto" }, { "ipi", "Ipili" }, { "ipk", "Inupiaq" }, { "ipo", "Ipiko" }, { "iqu", "Iquito" }, { "iqw", "Ikwo" }, { "ire", "Iresim" }, { "irh", "Irarutu" }, { "iri", "Irigwe" }, { "irk", "Iraqw" }, { "irn", "Irántxe" }, { "irr", "Ir" }, { "iru", "Irula" }, { "irx", "Kamberau" }, { "iry", "Iraya" }, { "isa", "Isabi" }, { "isc", "Isconahua" }, { "isd", "Isnag" }, { "ise", "Italian Sign Language" }, { "isg", "Irish Sign Language" }, { "ish", "Esan" }, { "isi", "Nkem-Nkum" }, { "isk", "Ishkashimi" }, { "isl", "Icelandic" }, { "ism", "Masimasi" }, { "isn", "Isanzu" }, { "iso", "Isoko" }, { "isr", "Israeli Sign Language" }, { "ist", "Istriot" }, { "isu", "Isu (Menchum Division)" }, { "ita", "Italian" }, { "itb", "Binongan Itneg" }, { "ite", "Itene" }, { "iti", "Inlaod Itneg" }, { "itk", "Judeo-Italian" }, { "itl", "Itelmen" }, { "itm", "Itu Mbon Uzo" }, { "ito", "Itonama" }, { "itr", "Iteri" }, { "its", "Isekiri" }, { "itt", "Maeng Itneg" }, { "itv", "Itawit" }, { "itw", "Ito" }, { "itx", "Itik" }, { "ity", "Moyadan Itneg" }, { "itz", "Itzá" }, { "ium", "Iu Mien" }, { "ivb", "Ibatan" }, { "ivv", "Ivatan" }, { "iwk", "I-Wak" }, { "iwm", "Iwam" }, { "iwo", "Iwur" }, { "iws", "Sepik Iwam" }, { "ixc", "Ixcatec" }, { "ixl", "Ixil" }, { "iya", "Iyayu" }, { "iyo", "Mesaka" }, { "iyx", "Yaka (Congo)" }, { "izh", "Ingrian" }, { "izr", "Izere" }, { "izz", "Izii" }, { "jaa", "Jamamadí" }, { "jab", "Hyam" }, { "jac", "Popti'" }, { "jad", "Jahanka" }, { "jae", "Yabem" }, { "jaf", "Jara" }, { "jah", "Jah Hut" }, { "jaj", "Zazao" }, { "jak", "Jakun" }, { "jal", "Yalahatan" }, { "jam", "Jamaican Creole English" }, { "jan", "Jandai" }, { "jao", "Yanyuwa" }, { "jaq", "Yaqay" }, { "jas", "New Caledonian Javanese" }, { "jat", "Jakati" }, { "jau", "Yaur" }, { "jav", "Javanese" }, { "jax", "Jambi Malay" }, { "jay", "Yan-nhangu" }, { "jaz", "Jawe" }, { "jbe", "Judeo-Berber" }, { "jbi", "Badjiri" }, { "jbj", "Arandai" }, { "jbk", "Barikewa" }, { "jbn", "Nafusi" }, { "jbo", "Lojban" }, { "jbr", "Jofotek-Bromnya" }, { "jbt", "Jabutí" }, { "jbu", "Jukun Takum" }, { "jbw", "Yawijibaya" }, { "jcs", "Jamaican Country Sign Language" }, { "jct", "Krymchak" }, { "jda", "Jad" }, { "jdg", "Jadgali" }, { "jdt", "Judeo-Tat" }, { "jeb", "Jebero" }, { "jee", "Jerung" }, { "jeg", "Jeng" }, { "jeh", "Jeh" }, { "jei", "Yei" }, { "jek", "Jeri Kuo" }, { "jel", "Yelmek" }, { "jen", "Dza" }, { "jer", "Jere" }, { "jet", "Manem" }, { "jeu", "Jonkor Bourmataguil" }, { "jgb", "Ngbee" }, { "jge", "Judeo-Georgian" }, { "jgk", "Gwak" }, { "jgo", "Ngomba" }, { "jhi", "Jehai" }, { "jhs", "Jhankot Sign Language" }, { "jia", "Jina" }, { "jib", "Jibu" }, { "jic", "Tol" }, { "jid", "Bu" }, { "jie", "Jilbe" }, { "jig", "Djingili" }, { "jih", "sTodsde" }, { "jii", "Jiiddu" }, { "jil", "Jilim" }, { "jim", "Jimi (Cameroon)" }, { "jio", "Jiamao" }, { "jiq", "Guanyinqiao" }, { "jit", "Jita" }, { "jiu", "Youle Jinuo" }, { "jiv", "Shuar" }, { "jiy", "Buyuan Jinuo" }, { "jjr", "Bankal" }, { "jkm", "Mobwa Karen" }, { "jko", "Kubo" }, { "jkp", "Paku Karen" }, { "jkr", "Koro (India)" }, { "jku", "Labir" }, { "jle", "Ngile" }, { "jls", "Jamaican Sign Language" }, { "jma", "Dima" }, { "jmb", "Zumbun" }, { "jmc", "Machame" }, { "jmd", "Yamdena" }, { "jmi", "Jimi (Nigeria)" }, { "jml", "Jumli" }, { "jmn", "Makuri Naga" }, { "jmr", "Kamara" }, { "jms", "Mashi (Nigeria)" }, { "jmw", "Mouwase" }, { "jmx", "Western Juxtlahuaca Mixtec" }, { "jna", "Jangshung" }, { "jnd", "Jandavra" }, { "jng", "Yangman" }, { "jni", "Janji" }, { "jnj", "Yemsa" }, { "jnl", "Rawat" }, { "jns", "Jaunsari" }, { "job", "Joba" }, { "jod", "Wojenaka" }, { "jor", "Jorá" }, { "jos", "Jordanian Sign Language" }, { "jow", "Jowulu" }, { "jpa", "Jewish Palestinian Aramaic" }, { "jpn", "Japanese" }, { "jpr", "Judeo-Persian" }, { "jqr", "Jaqaru" }, { "jra", "Jarai" }, { "jrb", "Judeo-Arabic" }, { "jrr", "Jiru" }, { "jrt", "Jorto" }, { "jru", "Japrería" }, { "jsl", "Japanese Sign Language" }, { "jua", "Júma" }, { "jub", "Wannu" }, { "juc", "Jurchen" }, { "jud", "Worodougou" }, { "juh", "Hõne" }, { "jui", "Ngadjuri" }, { "juk", "Wapan" }, { "jul", "Jirel" }, { "jum", "Jumjum" }, { "jun", "Juang" }, { "juo", "Jiba" }, { "jup", "Hupdë" }, { "jur", "Jurúna" }, { "jus", "Jumla Sign Language" }, { "jut", "Jutish" }, { "juu", "Ju" }, { "juw", "Wãpha" }, { "juy", "Juray" }, { "jvd", "Javindo" }, { "jvn", "Caribbean Javanese" }, { "jwi", "Jwira-Pepesa" }, { "jya", "Jiarong" }, { "jye", "Judeo-Yemeni Arabic" }, { "jyy", "Jaya" }, { "kaa", "Kara-Kalpak" }, { "kab", "Kabyle" }, { "kac", "Kachin" }, { "kad", "Adara" }, { "kae", "Ketangalan" }, { "kaf", "Katso" }, { "kag", "Kajaman" }, { "kah", "Kara (Central African Republic)" }, { "kai", "Karekare" }, { "kaj", "Jju" }, { "kak", "Kayapa Kallahan" }, { "kal", "Kalaallisut" }, { "kam", "Kamba (Kenya)" }, { "kan", "Kannada" }, { "kao", "Xaasongaxango" }, { "kap", "Bezhta" }, { "kaq", "Capanahua" }, { "kas", "Kashmiri" }, { "kat", "Georgian" }, { "kau", "Kanuri" }, { "kav", "Katukína" }, { "kaw", "Kawi" }, { "kax", "Kao" }, { "kay", "Kamayurá" }, { "kaz", "Kazakh" }, { "kba", "Kalarko" }, { "kbb", "Kaxuiâna" }, { "kbc", "Kadiwéu" }, { "kbd", "Kabardian" }, { "kbe", "Kanju" }, { "kbf", "Kakauhua" }, { "kbg", "Khamba" }, { "kbh", "Camsá" }, { "kbi", "Kaptiau" }, { "kbj", "Kari" }, { "kbk", "Grass Koiari" }, { "kbl", "Kanembu" }, { "kbm", "Iwal" }, { "kbn", "Kare (Central African Republic)" }, { "kbo", "Keliko" }, { "kbp", "Kabiyè" }, { "kbq", "Kamano" }, { "kbr", "Kafa" }, { "kbs", "Kande" }, { "kbt", "Abadi" }, { "kbu", "Kabutra" }, { "kbv", "Dera (Indonesia)" }, { "kbw", "Kaiep" }, { "kbx", "Ap Ma" }, { "kby", "Manga Kanuri" }, { "kbz", "Duhwa" }, { "kca", "Khanty" }, { "kcb", "Kawacha" }, { "kcc", "Lubila" }, { "kcd", "Ngkâlmpw Kanum" }, { "kce", "Kaivi" }, { "kcf", "Ukaan" }, { "kcg", "Tyap" }, { "kch", "Vono" }, { "kci", "Kamantan" }, { "kcj", "Kobiana" }, { "kck", "Kalanga" }, { "kcl", "Kela (Papua New Guinea)" }, { "kcm", "Gula (Central African Republic)" }, { "kcn", "Nubi" }, { "kco", "Kinalakna" }, { "kcp", "Kanga" }, { "kcq", "Kamo" }, { "kcr", "Katla" }, { "kcs", "Koenoem" }, { "kct", "Kaian" }, { "kcu", "Kami (Tanzania)" }, { "kcv", "Kete" }, { "kcw", "Kabwari" }, { "kcx", "Kachama-Ganjule" }, { "kcy", "Korandje" }, { "kcz", "Konongo" }, { "kda", "Worimi" }, { "kdc", "Kutu" }, { "kdd", "Yankunytjatjara" }, { "kde", "Makonde" }, { "kdf", "Mamusi" }, { "kdg", "Seba" }, { "kdh", "Tem" }, { "kdi", "Kumam" }, { "kdj", "Karamojong" }, { "kdk", "Numèè" }, { "kdl", "Tsikimba" }, { "kdm", "Kagoma" }, { "kdn", "Kunda" }, { "kdp", "Kaningdon-Nindem" }, { "kdq", "Koch" }, { "kdr", "Karaim" }, { "kdt", "Kuy" }, { "kdu", "Kadaru" }, { "kdw", "Koneraw" }, { "kdx", "Kam" }, { "kdy", "Keder" }, { "kdz", "Kwaja" }, { "kea", "Kabuverdianu" }, { "keb", "Kélé" }, { "kec", "Keiga" }, { "ked", "Kerewe" }, { "kee", "Eastern Keres" }, { "kef", "Kpessi" }, { "keg", "Tese" }, { "keh", "Keak" }, { "kei", "Kei" }, { "kej", "Kadar" }, { "kek", "Kekchí" }, { "kel", "Kela (Democratic Republic of Congo)" }, { "kem", "Kemak" }, { "ken", "Kenyang" }, { "keo", "Kakwa" }, { "kep", "Kaikadi" }, { "keq", "Kamar" }, { "ker", "Kera" }, { "kes", "Kugbo" }, { "ket", "Ket" }, { "keu", "Akebu" }, { "kev", "Kanikkaran" }, { "kew", "West Kewa" }, { "kex", "Kukna" }, { "key", "Kupia" }, { "kez", "Kukele" }, { "kfa", "Kodava" }, { "kfb", "Northwestern Kolami" }, { "kfc", "Konda-Dora" }, { "kfd", "Korra Koraga" }, { "kfe", "Kota (India)" }, { "kff", "Koya" }, { "kfg", "Kudiya" }, { "kfh", "Kurichiya" }, { "kfi", "Kannada Kurumba" }, { "kfj", "Kemiehua" }, { "kfk", "Kinnauri" }, { "kfl", "Kung" }, { "kfm", "Khunsari" }, { "kfn", "Kuk" }, { "kfo", "Koro (Côte d'Ivoire)" }, { "kfp", "Korwa" }, { "kfq", "Korku" }, { "kfr", "Kachchi" }, { "kfs", "Bilaspuri" }, { "kft", "Kanjari" }, { "kfu", "Katkari" }, { "kfv", "Kurmukar" }, { "kfw", "Kharam Naga" }, { "kfx", "Kullu Pahari" }, { "kfy", "Kumaoni" }, { "kfz", "Koromfé" }, { "kga", "Koyaga" }, { "kgb", "Kawe" }, { "kgc", "Kasseng" }, { "kgd", "Kataang" }, { "kge", "Komering" }, { "kgf", "Kube" }, { "kgg", "Kusunda" }, { "kgi", "Selangor Sign Language" }, { "kgj", "Gamale Kham" }, { "kgk", "Kaiwá" }, { "kgl", "Kunggari" }, { "kgm", "Karipúna" }, { "kgn", "Karingani" }, { "kgo", "Krongo" }, { "kgp", "Kaingang" }, { "kgq", "Kamoro" }, { "kgr", "Abun" }, { "kgs", "Kumbainggar" }, { "kgt", "Somyev" }, { "kgu", "Kobol" }, { "kgv", "Karas" }, { "kgw", "Karon Dori" }, { "kgx", "Kamaru" }, { "kgy", "Kyerung" }, { "kha", "Khasi" }, { "khb", "Lü" }, { "khc", "Tukang Besi North" }, { "khd", "Bädi Kanum" }, { "khe", "Korowai" }, { "khf", "Khuen" }, { "khg", "Khams Tibetan" }, { "khh", "Kehu" }, { "khj", "Kuturmi" }, { "khk", "Halh Mongolian" }, { "khl", "Lusi" }, { "khm", "Central Khmer" }, { "khn", "Khandesi" }, { "kho", "Khotanese" }, { "khp", "Kapori" }, { "khq", "Koyra Chiini Songhay" }, { "khr", "Kharia" }, { "khs", "Kasua" }, { "kht", "Khamti" }, { "khu", "Nkhumbi" }, { "khv", "Khvarshi" }, { "khw", "Khowar" }, { "khx", "Kanu" }, { "khy", "Kele (Democratic Republic of Congo)" }, { "khz", "Keapara" }, { "kia", "Kim" }, { "kib", "Koalib" }, { "kic", "Kickapoo" }, { "kid", "Koshin" }, { "kie", "Kibet" }, { "kif", "Eastern Parbate Kham" }, { "kig", "Kimaama" }, { "kih", "Kilmeri" }, { "kii", "Kitsai" }, { "kij", "Kilivila" }, { "kik", "Kikuyu" }, { "kil", "Kariya" }, { "kim", "Karagas" }, { "kin", "Kinyarwanda" }, { "kio", "Kiowa" }, { "kip", "Sheshi Kham" }, { "kiq", "Kosadle" }, { "kir", "Kirghiz" }, { "kis", "Kis" }, { "kit", "Agob" }, { "kiu", "Kirmanjki (individual language)" }, { "kiv", "Kimbu" }, { "kiw", "Northeast Kiwai" }, { "kix", "Khiamniungan Naga" }, { "kiy", "Kirikiri" }, { "kiz", "Kisi" }, { "kja", "Mlap" }, { "kjb", "Q'anjob'al" }, { "kjc", "Coastal Konjo" }, { "kjd", "Southern Kiwai" }, { "kje", "Kisar" }, { "kjf", "Khalaj" }, { "kjg", "Khmu" }, { "kjh", "Khakas" }, { "kji", "Zabana" }, { "kjj", "Khinalugh" }, { "kjk", "Highland Konjo" }, { "kjl", "Western Parbate Kham" }, { "kjm", "Kháng" }, { "kjn", "Kunjen" }, { "kjo", "Harijan Kinnauri" }, { "kjp", "Pwo Eastern Karen" }, { "kjq", "Western Keres" }, { "kjr", "Kurudu" }, { "kjs", "East Kewa" }, { "kjt", "Phrae Pwo Karen" }, { "kju", "Kashaya" }, { "kjx", "Ramopa" }, { "kjy", "Erave" }, { "kjz", "Bumthangkha" }, { "kka", "Kakanda" }, { "kkb", "Kwerisa" }, { "kkc", "Odoodee" }, { "kkd", "Kinuku" }, { "kke", "Kakabe" }, { "kkf", "Kalaktang Monpa" }, { "kkg", "Mabaka Valley Kalinga" }, { "kkh", "Khün" }, { "kki", "Kagulu" }, { "kkj", "Kako" }, { "kkk", "Kokota" }, { "kkl", "Kosarek Yale" }, { "kkm", "Kiong" }, { "kkn", "Kon Keu" }, { "kko", "Karko" }, { "kkp", "Gugubera" }, { "kkq", "Kaiku" }, { "kkr", "Kir-Balar" }, { "kks", "Giiwo" }, { "kkt", "Koi" }, { "kku", "Tumi" }, { "kkv", "Kangean" }, { "kkw", "Teke-Kukuya" }, { "kkx", "Kohin" }, { "kky", "Guguyimidjir" }, { "kkz", "Kaska" }, { "kla", "Klamath-Modoc" }, { "klb", "Kiliwa" }, { "klc", "Kolbila" }, { "kld", "Gamilaraay" }, { "kle", "Kulung (Nepal)" }, { "klf", "Kendeje" }, { "klg", "Tagakaulo" }, { "klh", "Weliki" }, { "kli", "Kalumpang" }, { "klj", "Turkic Khalaj" }, { "klk", "Kono (Nigeria)" }, { "kll", "Kagan Kalagan" }, { "klm", "Migum" }, { "kln", "Kalenjin" }, { "klo", "Kapya" }, { "klp", "Kamasa" }, { "klq", "Rumu" }, { "klr", "Khaling" }, { "kls", "Kalasha" }, { "klt", "Nukna" }, { "klu", "Klao" }, { "klv", "Maskelynes" }, { "klw", "Lindu" }, { "klx", "Koluwawa" }, { "kly", "Kalao" }, { "klz", "Kabola" }, { "kma", "Konni" }, { "kmb", "Kimbundu" }, { "kmc", "Southern Dong" }, { "kmd", "Majukayang Kalinga" }, { "kme", "Bakole" }, { "kmf", "Kare (Papua New Guinea)" }, { "kmg", "Kâte" }, { "kmh", "Kalam" }, { "kmi", "Kami (Nigeria)" }, { "kmj", "Kumarbhag Paharia" }, { "kmk", "Limos Kalinga" }, { "kml", "Tanudan Kalinga" }, { "kmm", "Kom (India)" }, { "kmn", "Awtuw" }, { "kmo", "Kwoma" }, { "kmp", "Gimme" }, { "kmq", "Kwama" }, { "kmr", "Northern Kurdish" }, { "kms", "Kamasau" }, { "kmt", "Kemtuik" }, { "kmu", "Kanite" }, { "kmv", "Karipúna Creole French" }, { "kmw", "Komo (Democratic Republic of Congo)" }, { "kmx", "Waboda" }, { "kmy", "Koma" }, { "kmz", "Khorasani Turkish" }, { "kna", "Dera (Nigeria)" }, { "knb", "Lubuagan Kalinga" }, { "knc", "Central Kanuri" }, { "knd", "Konda" }, { "kne", "Kankanaey" }, { "knf", "Mankanya" }, { "kng", "Koongo" }, { "kni", "Kanufi" }, { "knj", "Western Kanjobal" }, { "knk", "Kuranko" }, { "knl", "Keninjal" }, { "knm", "Kanamarí" }, { "knn", "Konkani (individual language)" }, { "kno", "Kono (Sierra Leone)" }, { "knp", "Kwanja" }, { "knq", "Kintaq" }, { "knr", "Kaningra" }, { "kns", "Kensiu" }, { "knt", "Panoan Katukína" }, { "knu", "Kono (Guinea)" }, { "knv", "Tabo" }, { "knw", "Kung-Ekoka" }, { "knx", "Kendayan" }, { "kny", "Kanyok" }, { "knz", "Kalamsé" }, { "koa", "Konomala" }, { "koc", "Kpati" }, { "kod", "Kodi" }, { "koe", "Kacipo-Balesi" }, { "kof", "Kubi" }, { "kog", "Cogui" }, { "koh", "Koyo" }, { "koi", "Komi-Permyak" }, { "koj", "Sara Dunjo" }, { "kok", "Konkani (macrolanguage)" }, { "kol", "Kol (Papua New Guinea)" }, { "kom", "Komi" }, { "kon", "Kongo" }, { "koo", "Konzo" }, { "kop", "Waube" }, { "koq", "Kota (Gabon)" }, { "kor", "Korean" }, { "kos", "Kosraean" }, { "kot", "Lagwan" }, { "kou", "Koke" }, { "kov", "Kudu-Camo" }, { "kow", "Kugama" }, { "kox", "Coxima" }, { "koy", "Koyukon" }, { "koz", "Korak" }, { "kpa", "Kutto" }, { "kpb", "Mullu Kurumba" }, { "kpc", "Curripaco" }, { "kpd", "Koba" }, { "kpe", "Kpelle" }, { "kpf", "Komba" }, { "kpg", "Kapingamarangi" }, { "kph", "Kplang" }, { "kpi", "Kofei" }, { "kpj", "Karajá" }, { "kpk", "Kpan" }, { "kpl", "Kpala" }, { "kpm", "Koho" }, { "kpn", "Kepkiriwát" }, { "kpo", "Ikposo" }, { "kpq", "Korupun-Sela" }, { "kpr", "Korafe-Yegha" }, { "kps", "Tehit" }, { "kpt", "Karata" }, { "kpu", "Kafoa" }, { "kpv", "Komi-Zyrian" }, { "kpw", "Kobon" }, { "kpx", "Mountain Koiali" }, { "kpy", "Koryak" }, { "kpz", "Kupsabiny" }, { "kqa", "Mum" }, { "kqb", "Kovai" }, { "kqc", "Doromu-Koki" }, { "kqd", "Koy Sanjaq Surat" }, { "kqe", "Kalagan" }, { "kqf", "Kakabai" }, { "kqg", "Khe" }, { "kqh", "Kisankasa" }, { "kqi", "Koitabu" }, { "kqj", "Koromira" }, { "kqk", "Kotafon Gbe" }, { "kql", "Kyenele" }, { "kqm", "Khisa" }, { "kqn", "Kaonde" }, { "kqo", "Eastern Krahn" }, { "kqp", "Kimré" }, { "kqq", "Krenak" }, { "kqr", "Kimaragang" }, { "kqs", "Northern Kissi" }, { "kqt", "Klias River Kadazan" }, { "kqu", "Seroa" }, { "kqv", "Okolod" }, { "kqw", "Kandas" }, { "kqx", "Mser" }, { "kqy", "Koorete" }, { "kqz", "Korana" }, { "kra", "Kumhali" }, { "krb", "Karkin" }, { "krc", "Karachay-Balkar" }, { "krd", "Kairui-Midiki" }, { "kre", "Panará" }, { "krf", "Koro (Vanuatu)" }, { "krh", "Kurama" }, { "kri", "Krio" }, { "krj", "Kinaray-A" }, { "krk", "Kerek" }, { "krl", "Karelian" }, { "krm", "Krim" }, { "krn", "Sapo" }, { "krp", "Korop" }, { "krr", "Kru'ng 2" }, { "krs", "Gbaya (Sudan)" }, { "krt", "Tumari Kanuri" }, { "kru", "Kurukh" }, { "krv", "Kavet" }, { "krw", "Western Krahn" }, { "krx", "Karon" }, { "kry", "Kryts" }, { "krz", "Sota Kanum" }, { "ksa", "Shuwa-Zamani" }, { "ksb", "Shambala" }, { "ksc", "Southern Kalinga" }, { "ksd", "Kuanua" }, { "kse", "Kuni" }, { "ksf", "Bafia" }, { "ksg", "Kusaghe" }, { "ksh", "Kölsch" }, { "ksi", "Krisa" }, { "ksj", "Uare" }, { "ksk", "Kansa" }, { "ksl", "Kumalu" }, { "ksm", "Kumba" }, { "ksn", "Kasiguranin" }, { "kso", "Kofa" }, { "ksp", "Kaba" }, { "ksq", "Kwaami" }, { "ksr", "Borong" }, { "kss", "Southern Kisi" }, { "kst", "Winyé" }, { "ksu", "Khamyang" }, { "ksv", "Kusu" }, { "ksw", "S'gaw Karen" }, { "ksx", "Kedang" }, { "ksy", "Kharia Thar" }, { "ksz", "Kodaku" }, { "kta", "Katua" }, { "ktb", "Kambaata" }, { "ktc", "Kholok" }, { "ktd", "Kokata" }, { "kte", "Nubri" }, { "ktf", "Kwami" }, { "ktg", "Kalkutung" }, { "kth", "Karanga" }, { "kti", "North Muyu" }, { "ktj", "Plapo Krumen" }, { "ktk", "Kaniet" }, { "ktl", "Koroshi" }, { "ktm", "Kurti" }, { "ktn", "Karitiâna" }, { "kto", "Kuot" }, { "ktp", "Kaduo" }, { "ktq", "Katabaga" }, { "ktr", "Kota Marudu Tinagas" }, { "kts", "South Muyu" }, { "ktt", "Ketum" }, { "ktu", "Kituba (Democratic Republic of Congo)" }, { "ktv", "Eastern Katu" }, { "ktw", "Kato" }, { "ktx", "Kaxararí" }, { "kty", "Kango (Bas-Uélé District)" }, { "ktz", "Ju'hoan" }, { "kua", "Kuanyama" }, { "kub", "Kutep" }, { "kuc", "Kwinsu" }, { "kud", "'Auhelawa" }, { "kue", "Kuman" }, { "kuf", "Western Katu" }, { "kug", "Kupa" }, { "kuh", "Kushi" }, { "kui", "Kuikúro-Kalapálo" }, { "kuj", "Kuria" }, { "kuk", "Kepo'" }, { "kul", "Kulere" }, { "kum", "Kumyk" }, { "kun", "Kunama" }, { "kuo", "Kumukio" }, { "kup", "Kunimaipa" }, { "kuq", "Karipuna" }, { "kur", "Kurdish" }, { "kus", "Kusaal" }, { "kut", "Kutenai" }, { "kuu", "Upper Kuskokwim" }, { "kuv", "Kur" }, { "kuw", "Kpagua" }, { "kux", "Kukatja" }, { "kuy", "Kuuku-Ya'u" }, { "kuz", "Kunza" }, { "kva", "Bagvalal" }, { "kvb", "Kubu" }, { "kvc", "Kove" }, { "kvd", "Kui (Indonesia)" }, { "kve", "Kalabakan" }, { "kvf", "Kabalai" }, { "kvg", "Kuni-Boazi" }, { "kvh", "Komodo" }, { "kvi", "Kwang" }, { "kvj", "Psikye" }, { "kvk", "Korean Sign Language" }, { "kvl", "Kayaw" }, { "kvm", "Kendem" }, { "kvn", "Border Kuna" }, { "kvo", "Dobel" }, { "kvp", "Kompane" }, { "kvq", "Geba Karen" }, { "kvr", "Kerinci" }, { "kvs", "Kunggara" }, { "kvt", "Lahta Karen" }, { "kvu", "Yinbaw Karen" }, { "kvv", "Kola" }, { "kvw", "Wersing" }, { "kvx", "Parkari Koli" }, { "kvy", "Yintale Karen" }, { "kvz", "Tsakwambo" }, { "kwa", "Dâw" }, { "kwb", "Kwa" }, { "kwc", "Likwala" }, { "kwd", "Kwaio" }, { "kwe", "Kwerba" }, { "kwf", "Kwara'ae" }, { "kwg", "Sara Kaba Deme" }, { "kwh", "Kowiai" }, { "kwi", "Awa-Cuaiquer" }, { "kwj", "Kwanga" }, { "kwk", "Kwakiutl" }, { "kwl", "Kofyar" }, { "kwm", "Kwambi" }, { "kwn", "Kwangali" }, { "kwo", "Kwomtari" }, { "kwp", "Kodia" }, { "kwq", "Kwak" }, { "kwr", "Kwer" }, { "kws", "Kwese" }, { "kwt", "Kwesten" }, { "kwu", "Kwakum" }, { "kwv", "Sara Kaba Náà" }, { "kww", "Kwinti" }, { "kwx", "Khirwar" }, { "kwy", "San Salvador Kongo" }, { "kwz", "Kwadi" }, { "kxa", "Kairiru" }, { "kxb", "Krobu" }, { "kxc", "Konso" }, { "kxd", "Brunei" }, { "kxe", "Kakihum" }, { "kxf", "Manumanaw Karen" }, { "kxh", "Karo (Ethiopia)" }, { "kxi", "Keningau Murut" }, { "kxj", "Kulfa" }, { "kxk", "Zayein Karen" }, { "kxl", "Nepali Kurux" }, { "kxm", "Northern Khmer" }, { "kxn", "Kanowit-Tanjong Melanau" }, { "kxo", "Kanoé" }, { "kxp", "Wadiyara Koli" }, { "kxq", "Smärky Kanum" }, { "kxr", "Koro (Papua New Guinea)" }, { "kxs", "Kangjia" }, { "kxt", "Koiwat" }, { "kxu", "Kui (India)" }, { "kxv", "Kuvi" }, { "kxw", "Konai" }, { "kxx", "Likuba" }, { "kxy", "Kayong" }, { "kxz", "Kerewo" }, { "kya", "Kwaya" }, { "kyb", "Butbut Kalinga" }, { "kyc", "Kyaka" }, { "kyd", "Karey" }, { "kye", "Krache" }, { "kyf", "Kouya" }, { "kyg", "Keyagana" }, { "kyh", "Karok" }, { "kyi", "Kiput" }, { "kyj", "Karao" }, { "kyk", "Kamayo" }, { "kyl", "Kalapuya" }, { "kym", "Kpatili" }, { "kyn", "Northern Binukidnon" }, { "kyo", "Kelon" }, { "kyp", "Kang" }, { "kyq", "Kenga" }, { "kyr", "Kuruáya" }, { "kys", "Baram Kayan" }, { "kyt", "Kayagar" }, { "kyu", "Western Kayah" }, { "kyv", "Kayort" }, { "kyw", "Kudmali" }, { "kyx", "Rapoisi" }, { "kyy", "Kambaira" }, { "kyz", "Kayabí" }, { "kza", "Western Karaboro" }, { "kzb", "Kaibobo" }, { "kzc", "Bondoukou Kulango" }, { "kzd", "Kadai" }, { "kze", "Kosena" }, { "kzf", "Da'a Kaili" }, { "kzg", "Kikai" }, { "kzi", "Kelabit" }, { "kzj", "Coastal Kadazan" }, { "kzk", "Kazukuru" }, { "kzl", "Kayeli" }, { "kzm", "Kais" }, { "kzn", "Kokola" }, { "kzo", "Kaningi" }, { "kzp", "Kaidipang" }, { "kzq", "Kaike" }, { "kzr", "Karang" }, { "kzs", "Sugut Dusun" }, { "kzt", "Tambunan Dusun" }, { "kzu", "Kayupulau" }, { "kzv", "Komyandaret" }, { "kzw", "Karirí-Xocó" }, { "kzx", "Kamarian" }, { "kzy", "Kango (Tshopo District)" }, { "kzz", "Kalabra" }, { "laa", "Southern Subanen" }, { "lab", "Linear A" }, { "lac", "Lacandon" }, { "lad", "Ladino" }, { "lae", "Pattani" }, { "laf", "Lafofa" }, { "lag", "Langi" }, { "lah", "Lahnda" }, { "lai", "Lambya" }, { "laj", "Lango (Uganda)" }, { "lak", "Laka (Nigeria)" }, { "lal", "Lalia" }, { "lam", "Lamba" }, { "lan", "Laru" }, { "lao", "Lao" }, { "lap", "Laka (Chad)" }, { "laq", "Qabiao" }, { "lar", "Larteh" }, { "las", "Lama (Togo)" }, { "lat", "Latin" }, { "lau", "Laba" }, { "lav", "Latvian" }, { "law", "Lauje" }, { "lax", "Tiwa" }, { "lay", "Lama (Myanmar)" }, { "laz", "Aribwatsa" }, { "lba", "Lui" }, { "lbb", "Label" }, { "lbc", "Lakkia" }, { "lbe", "Lak" }, { "lbf", "Tinani" }, { "lbg", "Laopang" }, { "lbi", "La'bi" }, { "lbj", "Ladakhi" }, { "lbk", "Central Bontok" }, { "lbl", "Libon Bikol" }, { "lbm", "Lodhi" }, { "lbn", "Lamet" }, { "lbo", "Laven" }, { "lbq", "Wampar" }, { "lbr", "Lohorung" }, { "lbs", "Libyan Sign Language" }, { "lbt", "Lachi" }, { "lbu", "Labu" }, { "lbv", "Lavatbura-Lamusong" }, { "lbw", "Tolaki" }, { "lbx", "Lawangan" }, { "lby", "Lamu-Lamu" }, { "lbz", "Lardil" }, { "lcc", "Legenyem" }, { "lcd", "Lola" }, { "lce", "Loncong" }, { "lcf", "Lubu" }, { "lch", "Luchazi" }, { "lcl", "Lisela" }, { "lcm", "Tungag" }, { "lcp", "Western Lawa" }, { "lcq", "Luhu" }, { "lcs", "Lisabata-Nuniali" }, { "lda", "Kla-Dan" }, { "ldb", "Dũya" }, { "ldd", "Luri" }, { "ldg", "Lenyima" }, { "ldh", "Lamja-Dengsa-Tola" }, { "ldi", "Laari" }, { "ldj", "Lemoro" }, { "ldk", "Leelau" }, { "ldl", "Kaan" }, { "ldm", "Landoma" }, { "ldn", "Láadan" }, { "ldo", "Loo" }, { "ldp", "Tso" }, { "ldq", "Lufu" }, { "lea", "Lega-Shabunda" }, { "leb", "Lala-Bisa" }, { "lec", "Leco" }, { "led", "Lendu" }, { "lee", "Lyélé" }, { "lef", "Lelemi" }, { "leg", "Lengua" }, { "leh", "Lenje" }, { "lei", "Lemio" }, { "lej", "Lengola" }, { "lek", "Leipon" }, { "lel", "Lele (Democratic Republic of Congo)" }, { "lem", "Nomaande" }, { "len", "Lenca" }, { "leo", "Leti (Cameroon)" }, { "lep", "Lepcha" }, { "leq", "Lembena" }, { "ler", "Lenkau" }, { "les", "Lese" }, { "let", "Lesing-Gelimi" }, { "leu", "Kara (Papua New Guinea)" }, { "lev", "Lamma" }, { "lew", "Ledo Kaili" }, { "lex", "Luang" }, { "ley", "Lemolang" }, { "lez", "Lezghian" }, { "lfa", "Lefa" }, { "lfn", "Lingua Franca Nova" }, { "lga", "Lungga" }, { "lgb", "Laghu" }, { "lgg", "Lugbara" }, { "lgh", "Laghuu" }, { "lgi", "Lengilu" }, { "lgk", "Lingarak" }, { "lgl", "Wala" }, { "lgm", "Lega-Mwenga" }, { "lgn", "Opuuo" }, { "lgq", "Logba" }, { "lgr", "Lengo" }, { "lgt", "Pahi" }, { "lgu", "Longgu" }, { "lgz", "Ligenza" }, { "lha", "Laha (Viet Nam)" }, { "lhh", "Laha (Indonesia)" }, { "lhi", "Lahu Shi" }, { "lhl", "Lahul Lohar" }, { "lhm", "Lhomi" }, { "lhn", "Lahanan" }, { "lhp", "Lhokpu" }, { "lhs", "Mlahsö" }, { "lht", "Lo-Toga" }, { "lhu", "Lahu" }, { "lia", "West-Central Limba" }, { "lib", "Likum" }, { "lic", "Hlai" }, { "lid", "Nyindrou" }, { "lie", "Likila" }, { "lif", "Limbu" }, { "lig", "Ligbi" }, { "lih", "Lihir" }, { "lii", "Lingkhim" }, { "lij", "Ligurian" }, { "lik", "Lika" }, { "lil", "Lillooet" }, { "lim", "Limburgan" }, { "lin", "Lingala" }, { "lio", "Liki" }, { "lip", "Sekpele" }, { "liq", "Libido" }, { "lir", "Liberian English" }, { "lis", "Lisu" }, { "lit", "Lithuanian" }, { "liu", "Logorik" }, { "liv", "Liv" }, { "liw", "Col" }, { "lix", "Liabuku" }, { "liy", "Banda-Bambari" }, { "liz", "Libinza" }, { "lja", "Golpa" }, { "lje", "Rampi" }, { "lji", "Laiyolo" }, { "ljl", "Li'o" }, { "ljp", "Lampung Api" }, { "ljw", "Yirandali" }, { "ljx", "Yuru" }, { "lka", "Lakalei" }, { "lkb", "Kabras" }, { "lkc", "Kucong" }, { "lkd", "Lakondê" }, { "lke", "Kenyi" }, { "lkh", "Lakha" }, { "lki", "Laki" }, { "lkj", "Remun" }, { "lkl", "Laeko-Libuat" }, { "lkm", "Kalaamaya" }, { "lkn", "Lakon" }, { "lko", "Khayo" }, { "lkr", "Päri" }, { "lks", "Kisa" }, { "lkt", "Lakota" }, { "lku", "Kungkari" }, { "lky", "Lokoya" }, { "lla", "Lala-Roba" }, { "llb", "Lolo" }, { "llc", "Lele (Guinea)" }, { "lld", "Ladin" }, { "lle", "Lele (Papua New Guinea)" }, { "llf", "Hermit" }, { "llg", "Lole" }, { "llh", "Lamu" }, { "lli", "Teke-Laali" }, { "llj", "Ladji Ladji" }, { "llk", "Lelak" }, { "lll", "Lilau" }, { "llm", "Lasalimu" }, { "lln", "Lele (Chad)" }, { "llo", "Khlor" }, { "llp", "North Efate" }, { "llq", "Lolak" }, { "lls", "Lithuanian Sign Language" }, { "llu", "Lau" }, { "llx", "Lauan" }, { "lma", "East Limba" }, { "lmb", "Merei" }, { "lmc", "Limilngan" }, { "lmd", "Lumun" }, { "lme", "Pévé" }, { "lmf", "South Lembata" }, { "lmg", "Lamogai" }, { "lmh", "Lambichhong" }, { "lmi", "Lombi" }, { "lmj", "West Lembata" }, { "lmk", "Lamkang" }, { "lml", "Hano" }, { "lmm", "Lamam" }, { "lmn", "Lambadi" }, { "lmo", "Lombard" }, { "lmp", "Limbum" }, { "lmq", "Lamatuka" }, { "lmr", "Lamalera" }, { "lmu", "Lamenu" }, { "lmv", "Lomaiviti" }, { "lmw", "Lake Miwok" }, { "lmx", "Laimbue" }, { "lmy", "Lamboya" }, { "lmz", "Lumbee" }, { "lna", "Langbashe" }, { "lnb", "Mbalanhu" }, { "lnd", "Lundayeh" }, { "lng", "Langobardic" }, { "lnh", "Lanoh" }, { "lni", "Daantanai'" }, { "lnj", "Leningitij" }, { "lnl", "South Central Banda" }, { "lnm", "Langam" }, { "lnn", "Lorediakarkar" }, { "lno", "Lango (Sudan)" }, { "lns", "Lamnso'" }, { "lnu", "Longuda" }, { "lnw", "Lanima" }, { "lnz", "Lonzo" }, { "loa", "Loloda" }, { "lob", "Lobi" }, { "loc", "Inonhan" }, { "loe", "Saluan" }, { "lof", "Logol" }, { "log", "Logo" }, { "loh", "Narim" }, { "loi", "Loma (Côte d'Ivoire)" }, { "loj", "Lou" }, { "lok", "Loko" }, { "lol", "Mongo" }, { "lom", "Loma (Liberia)" }, { "lon", "Malawi Lomwe" }, { "loo", "Lombo" }, { "lop", "Lopa" }, { "loq", "Lobala" }, { "lor", "Téén" }, { "los", "Loniu" }, { "lot", "Otuho" }, { "lou", "Louisiana Creole French" }, { "lov", "Lopi" }, { "low", "Tampias Lobu" }, { "lox", "Loun" }, { "loy", "Loke" }, { "loz", "Lozi" }, { "lpa", "Lelepa" }, { "lpe", "Lepki" }, { "lpn", "Long Phuri Naga" }, { "lpo", "Lipo" }, { "lpx", "Lopit" }, { "lra", "Rara Bakati'" }, { "lrc", "Northern Luri" }, { "lre", "Laurentian" }, { "lrg", "Laragia" }, { "lri", "Marachi" }, { "lrk", "Loarki" }, { "lrl", "Lari" }, { "lrm", "Marama" }, { "lrn", "Lorang" }, { "lro", "Laro" }, { "lrr", "Southern Yamphu" }, { "lrt", "Larantuka Malay" }, { "lrv", "Larevat" }, { "lrz", "Lemerig" }, { "lsa", "Lasgerdi" }, { "lsd", "Lishana Deni" }, { "lse", "Lusengo" }, { "lsg", "Lyons Sign Language" }, { "lsh", "Lish" }, { "lsi", "Lashi" }, { "lsl", "Latvian Sign Language" }, { "lsm", "Saamia" }, { "lso", "Laos Sign Language" }, { "lsp", "Panamanian Sign Language" }, { "lsr", "Aruop" }, { "lss", "Lasi" }, { "lst", "Trinidad and Tobago Sign Language" }, { "lsy", "Mauritian Sign Language" }, { "ltc", "Late Middle Chinese" }, { "ltg", "Latgalian" }, { "lti", "Leti (Indonesia)" }, { "ltn", "Latundê" }, { "lto", "Tsotso" }, { "lts", "Tachoni" }, { "ltu", "Latu" }, { "ltz", "Luxembourgish" }, { "lua", "Luba-Lulua" }, { "lub", "Luba-Katanga" }, { "luc", "Aringa" }, { "lud", "Ludian" }, { "lue", "Luvale" }, { "luf", "Laua" }, { "lug", "Ganda" }, { "lui", "Luiseno" }, { "luj", "Luna" }, { "luk", "Lunanakha" }, { "lul", "Olu'bo" }, { "lum", "Luimbi" }, { "lun", "Lunda" }, { "luo", "Luo (Kenya and Tanzania)" }, { "lup", "Lumbu" }, { "luq", "Lucumi" }, { "lur", "Laura" }, { "lus", "Lushai" }, { "lut", "Lushootseed" }, { "luu", "Lumba-Yakkha" }, { "luv", "Luwati" }, { "luw", "Luo (Cameroon)" }, { "luy", "Luyia" }, { "luz", "Southern Luri" }, { "lva", "Maku'a" }, { "lvk", "Lavukaleve" }, { "lvs", "Standard Latvian" }, { "lvu", "Levuka" }, { "lwa", "Lwalu" }, { "lwe", "Lewo Eleng" }, { "lwg", "Wanga" }, { "lwh", "White Lachi" }, { "lwl", "Eastern Lawa" }, { "lwm", "Laomian" }, { "lwo", "Luwo" }, { "lwt", "Lewotobi" }, { "lwu", "Lawu" }, { "lww", "Lewo" }, { "lya", "Layakha" }, { "lyg", "Lyngngam" }, { "lyn", "Luyana" }, { "lzh", "Literary Chinese" }, { "lzl", "Litzlitz" }, { "lzn", "Leinong Naga" }, { "lzz", "Laz" }, { "maa", "San Jerónimo Tecóatl Mazatec" }, { "mab", "Yutanduchi Mixtec" }, { "mad", "Madurese" }, { "mae", "Bo-Rukul" }, { "maf", "Mafa" }, { "mag", "Magahi" }, { "mah", "Marshallese" }, { "mai", "Maithili" }, { "maj", "Jalapa De Díaz Mazatec" }, { "mak", "Makasar" }, { "mal", "Malayalam" }, { "mam", "Mam" }, { "man", "Mandingo" }, { "maq", "Chiquihuitlán Mazatec" }, { "mar", "Marathi" }, { "mas", "Masai" }, { "mat", "San Francisco Matlatzinca" }, { "mau", "Huautla Mazatec" }, { "mav", "Sateré-Mawé" }, { "maw", "Mampruli" }, { "max", "North Moluccan Malay" }, { "maz", "Central Mazahua" }, { "mba", "Higaonon" }, { "mbb", "Western Bukidnon Manobo" }, { "mbc", "Macushi" }, { "mbd", "Dibabawon Manobo" }, { "mbe", "Molale" }, { "mbf", "Baba Malay" }, { "mbh", "Mangseng" }, { "mbi", "Ilianen Manobo" }, { "mbj", "Nadëb" }, { "mbk", "Malol" }, { "mbl", "Maxakalí" }, { "mbm", "Ombamba" }, { "mbn", "Macaguán" }, { "mbo", "Mbo (Cameroon)" }, { "mbp", "Malayo" }, { "mbq", "Maisin" }, { "mbr", "Nukak Makú" }, { "mbs", "Sarangani Manobo" }, { "mbt", "Matigsalug Manobo" }, { "mbu", "Mbula-Bwazza" }, { "mbv", "Mbulungish" }, { "mbw", "Maring" }, { "mbx", "Mari (East Sepik Province)" }, { "mby", "Memoni" }, { "mbz", "Amoltepec Mixtec" }, { "mca", "Maca" }, { "mcb", "Machiguenga" }, { "mcc", "Bitur" }, { "mcd", "Sharanahua" }, { "mce", "Itundujia Mixtec" }, { "mcf", "Matsés" }, { "mcg", "Mapoyo" }, { "mch", "Maquiritari" }, { "mci", "Mese" }, { "mcj", "Mvanip" }, { "mck", "Mbunda" }, { "mcl", "Macaguaje" }, { "mcm", "Malaccan Creole Portuguese" }, { "mcn", "Masana" }, { "mco", "Coatlán Mixe" }, { "mcp", "Makaa" }, { "mcq", "Ese" }, { "mcr", "Menya" }, { "mcs", "Mambai" }, { "mct", "Mengisa" }, { "mcu", "Cameroon Mambila" }, { "mcv", "Minanibai" }, { "mcw", "Mawa (Chad)" }, { "mcx", "Mpiemo" }, { "mcy", "South Watut" }, { "mcz", "Mawan" }, { "mda", "Mada (Nigeria)" }, { "mdb", "Morigi" }, { "mdc", "Male (Papua New Guinea)" }, { "mdd", "Mbum" }, { "mde", "Maba (Chad)" }, { "mdf", "Moksha" }, { "mdg", "Massalat" }, { "mdh", "Maguindanaon" }, { "mdi", "Mamvu" }, { "mdj", "Mangbetu" }, { "mdk", "Mangbutu" }, { "mdl", "Maltese Sign Language" }, { "mdm", "Mayogo" }, { "mdn", "Mbati" }, { "mdp", "Mbala" }, { "mdq", "Mbole" }, { "mdr", "Mandar" }, { "mds", "Maria (Papua New Guinea)" }, { "mdt", "Mbere" }, { "mdu", "Mboko" }, { "mdv", "Santa Lucía Monteverde Mixtec" }, { "mdw", "Mbosi" }, { "mdx", "Dizin" }, { "mdy", "Male (Ethiopia)" }, { "mdz", "Suruí Do Pará" }, { "mea", "Menka" }, { "meb", "Ikobi" }, { "mec", "Mara" }, { "med", "Melpa" }, { "mee", "Mengen" }, { "mef", "Megam" }, { "meh", "Southwestern Tlaxiaco Mixtec" }, { "mei", "Midob" }, { "mej", "Meyah" }, { "mek", "Mekeo" }, { "mel", "Central Melanau" }, { "mem", "Mangala" }, { "men", "Mende (Sierra Leone)" }, { "meo", "Kedah Malay" }, { "mep", "Miriwung" }, { "meq", "Merey" }, { "mer", "Meru" }, { "mes", "Masmaje" }, { "met", "Mato" }, { "meu", "Motu" }, { "mev", "Mano" }, { "mew", "Maaka" }, { "mey", "Hassaniyya" }, { "mez", "Menominee" }, { "mfa", "Pattani Malay" }, { "mfb", "Bangka" }, { "mfc", "Mba" }, { "mfd", "Mendankwe-Nkwen" }, { "mfe", "Morisyen" }, { "mff", "Naki" }, { "mfg", "Mogofin" }, { "mfh", "Matal" }, { "mfi", "Wandala" }, { "mfj", "Mefele" }, { "mfk", "North Mofu" }, { "mfl", "Putai" }, { "mfm", "Marghi South" }, { "mfn", "Cross River Mbembe" }, { "mfo", "Mbe" }, { "mfp", "Makassar Malay" }, { "mfq", "Moba" }, { "mfr", "Marithiel" }, { "mfs", "Mexican Sign Language" }, { "mft", "Mokerang" }, { "mfu", "Mbwela" }, { "mfv", "Mandjak" }, { "mfw", "Mulaha" }, { "mfx", "Melo" }, { "mfy", "Mayo" }, { "mfz", "Mabaan" }, { "mga", "Middle Irish (900-1200)" }, { "mgb", "Mararit" }, { "mgc", "Morokodo" }, { "mgd", "Moru" }, { "mge", "Mango" }, { "mgf", "Maklew" }, { "mgg", "Mpumpong" }, { "mgh", "Makhuwa-Meetto" }, { "mgi", "Lijili" }, { "mgj", "Abureni" }, { "mgk", "Mawes" }, { "mgl", "Maleu-Kilenge" }, { "mgm", "Mambae" }, { "mgn", "Mbangi" }, { "mgo", "Meta'" }, { "mgp", "Eastern Magar" }, { "mgq", "Malila" }, { "mgr", "Mambwe-Lungu" }, { "mgs", "Manda (Tanzania)" }, { "mgt", "Mongol" }, { "mgu", "Mailu" }, { "mgv", "Matengo" }, { "mgw", "Matumbi" }, { "mgy", "Mbunga" }, { "mgz", "Mbugwe" }, { "mha", "Manda (India)" }, { "mhb", "Mahongwe" }, { "mhc", "Mocho" }, { "mhd", "Mbugu" }, { "mhe", "Besisi" }, { "mhf", "Mamaa" }, { "mhg", "Margu" }, { "mhh", "Maskoy Pidgin" }, { "mhi", "Ma'di" }, { "mhj", "Mogholi" }, { "mhk", "Mungaka" }, { "mhl", "Mauwake" }, { "mhm", "Makhuwa-Moniga" }, { "mhn", "Mócheno" }, { "mho", "Mashi (Zambia)" }, { "mhp", "Balinese Malay" }, { "mhq", "Mandan" }, { "mhr", "Eastern Mari" }, { "mhs", "Buru (Indonesia)" }, { "mht", "Mandahuaca" }, { "mhu", "Digaro-Mishmi" }, { "mhw", "Mbukushu" }, { "mhx", "Maru" }, { "mhy", "Ma'anyan" }, { "mhz", "Mor (Mor Islands)" }, { "mia", "Miami" }, { "mib", "Atatláhuca Mixtec" }, { "mic", "Mi'kmaq" }, { "mid", "Mandaic" }, { "mie", "Ocotepec Mixtec" }, { "mif", "Mofu-Gudur" }, { "mig", "San Miguel El Grande Mixtec" }, { "mih", "Chayuco Mixtec" }, { "mii", "Chigmecatitlán Mixtec" }, { "mij", "Abar" }, { "mik", "Mikasuki" }, { "mil", "Peñoles Mixtec" }, { "mim", "Alacatlatzala Mixtec" }, { "min", "Minangkabau" }, { "mio", "Pinotepa Nacional Mixtec" }, { "mip", "Apasco-Apoala Mixtec" }, { "miq", "Mískito" }, { "mir", "Isthmus Mixe" }, { "mis", "Uncoded languages" }, { "mit", "Southern Puebla Mixtec" }, { "miu", "Cacaloxtepec Mixtec" }, { "miw", "Akoye" }, { "mix", "Mixtepec Mixtec" }, { "miy", "Ayutla Mixtec" }, { "miz", "Coatzospan Mixtec" }, { "mjc", "San Juan Colorado Mixtec" }, { "mjd", "Northwest Maidu" }, { "mje", "Muskum" }, { "mjg", "Tu" }, { "mjh", "Mwera (Nyasa)" }, { "mji", "Kim Mun" }, { "mjj", "Mawak" }, { "mjk", "Matukar" }, { "mjl", "Mandeali" }, { "mjm", "Medebur" }, { "mjn", "Ma (Papua New Guinea)" }, { "mjo", "Malankuravan" }, { "mjp", "Malapandaram" }, { "mjq", "Malaryan" }, { "mjr", "Malavedan" }, { "mjs", "Miship" }, { "mjt", "Sauria Paharia" }, { "mju", "Manna-Dora" }, { "mjv", "Mannan" }, { "mjw", "Karbi" }, { "mjx", "Mahali" }, { "mjy", "Mahican" }, { "mjz", "Majhi" }, { "mka", "Mbre" }, { "mkb", "Mal Paharia" }, { "mkc", "Siliput" }, { "mkd", "Macedonian" }, { "mke", "Mawchi" }, { "mkf", "Miya" }, { "mkg", "Mak (China)" }, { "mki", "Dhatki" }, { "mkj", "Mokilese" }, { "mkk", "Byep" }, { "mkl", "Mokole" }, { "mkm", "Moklen" }, { "mkn", "Kupang Malay" }, { "mko", "Mingang Doso" }, { "mkp", "Moikodi" }, { "mkq", "Bay Miwok" }, { "mkr", "Malas" }, { "mks", "Silacayoapan Mixtec" }, { "mkt", "Vamale" }, { "mku", "Konyanka Maninka" }, { "mkv", "Mafea" }, { "mkw", "Kituba (Congo)" }, { "mkx", "Kinamiging Manobo" }, { "mky", "East Makian" }, { "mkz", "Makasae" }, { "mla", "Malo" }, { "mlb", "Mbule" }, { "mlc", "Cao Lan" }, { "mle", "Manambu" }, { "mlf", "Mal" }, { "mlg", "Malagasy" }, { "mlh", "Mape" }, { "mli", "Malimpung" }, { "mlj", "Miltu" }, { "mlk", "Ilwana" }, { "mll", "Malua Bay" }, { "mlm", "Mulam" }, { "mln", "Malango" }, { "mlo", "Mlomp" }, { "mlp", "Bargam" }, { "mlq", "Western Maninkakan" }, { "mlr", "Vame" }, { "mls", "Masalit" }, { "mlt", "Maltese" }, { "mlu", "To'abaita" }, { "mlv", "Motlav" }, { "mlw", "Moloko" }, { "mlx", "Malfaxal" }, { "mlz", "Malaynon" }, { "mma", "Mama" }, { "mmb", "Momina" }, { "mmc", "Michoacán Mazahua" }, { "mmd", "Maonan" }, { "mme", "Mae" }, { "mmf", "Mundat" }, { "mmg", "North Ambrym" }, { "mmh", "Mehináku" }, { "mmi", "Musar" }, { "mmj", "Majhwar" }, { "mmk", "Mukha-Dora" }, { "mml", "Man Met" }, { "mmm", "Maii" }, { "mmn", "Mamanwa" }, { "mmo", "Mangga Buang" }, { "mmp", "Siawi" }, { "mmq", "Musak" }, { "mmr", "Western Xiangxi Miao" }, { "mmt", "Malalamai" }, { "mmu", "Mmaala" }, { "mmv", "Miriti" }, { "mmw", "Emae" }, { "mmx", "Madak" }, { "mmy", "Migaama" }, { "mmz", "Mabaale" }, { "mna", "Mbula" }, { "mnb", "Muna" }, { "mnc", "Manchu" }, { "mnd", "Mondé" }, { "mne", "Naba" }, { "mnf", "Mundani" }, { "mng", "Eastern Mnong" }, { "mnh", "Mono (Democratic Republic of Congo)" }, { "mni", "Manipuri" }, { "mnj", "Munji" }, { "mnk", "Mandinka" }, { "mnl", "Tiale" }, { "mnm", "Mapena" }, { "mnn", "Southern Mnong" }, { "mnp", "Min Bei Chinese" }, { "mnq", "Minriq" }, { "mnr", "Mono (USA)" }, { "mns", "Mansi" }, { "mnu", "Mer" }, { "mnv", "Rennell-Bellona" }, { "mnw", "Mon" }, { "mnx", "Manikion" }, { "mny", "Manyawa" }, { "mnz", "Moni" }, { "moa", "Mwan" }, { "moc", "Mocoví" }, { "mod", "Mobilian" }, { "moe", "Montagnais" }, { "mog", "Mongondow" }, { "moh", "Mohawk" }, { "moi", "Mboi" }, { "moj", "Monzombo" }, { "mok", "Morori" }, { "mom", "Mangue" }, { "mon", "Mongolian" }, { "moo", "Monom" }, { "mop", "Mopán Maya" }, { "moq", "Mor (Bomberai Peninsula)" }, { "mor", "Moro" }, { "mos", "Mossi" }, { "mot", "Barí" }, { "mou", "Mogum" }, { "mov", "Mohave" }, { "mow", "Moi (Congo)" }, { "mox", "Molima" }, { "moy", "Shekkacho" }, { "moz", "Mukulu" }, { "mpa", "Mpoto" }, { "mpb", "Mullukmulluk" }, { "mpc", "Mangarayi" }, { "mpd", "Machinere" }, { "mpe", "Majang" }, { "mpg", "Marba" }, { "mph", "Maung" }, { "mpi", "Mpade" }, { "mpj", "Martu Wangka" }, { "mpk", "Mbara (Chad)" }, { "mpl", "Middle Watut" }, { "mpm", "Yosondúa Mixtec" }, { "mpn", "Mindiri" }, { "mpo", "Miu" }, { "mpp", "Migabac" }, { "mpq", "Matís" }, { "mpr", "Vangunu" }, { "mps", "Dadibi" }, { "mpt", "Mian" }, { "mpu", "Makuráp" }, { "mpv", "Mungkip" }, { "mpw", "Mapidian" }, { "mpx", "Misima-Panaeati" }, { "mpy", "Mapia" }, { "mpz", "Mpi" }, { "mqa", "Maba (Indonesia)" }, { "mqb", "Mbuko" }, { "mqc", "Mangole" }, { "mqe", "Matepi" }, { "mqf", "Momuna" }, { "mqg", "Kota Bangun Kutai Malay" }, { "mqh", "Tlazoyaltepec Mixtec" }, { "mqi", "Mariri" }, { "mqj", "Mamasa" }, { "mqk", "Rajah Kabunsuwan Manobo" }, { "mql", "Mbelime" }, { "mqm", "South Marquesan" }, { "mqn", "Moronene" }, { "mqo", "Modole" }, { "mqp", "Manipa" }, { "mqq", "Minokok" }, { "mqr", "Mander" }, { "mqs", "West Makian" }, { "mqt", "Mok" }, { "mqu", "Mandari" }, { "mqv", "Mosimo" }, { "mqw", "Murupi" }, { "mqx", "Mamuju" }, { "mqy", "Manggarai" }, { "mqz", "Pano" }, { "mra", "Mlabri" }, { "mrb", "Marino" }, { "mrc", "Maricopa" }, { "mrd", "Western Magar" }, { "mre", "Martha's Vineyard Sign Language" }, { "mrf", "Elseng" }, { "mrg", "Mising" }, { "mrh", "Mara Chin" }, { "mri", "Maori" }, { "mrj", "Western Mari" }, { "mrk", "Hmwaveke" }, { "mrl", "Mortlockese" }, { "mrm", "Merlav" }, { "mrn", "Cheke Holo" }, { "mro", "Mru" }, { "mrp", "Morouas" }, { "mrq", "North Marquesan" }, { "mrr", "Maria (India)" }, { "mrs", "Maragus" }, { "mrt", "Marghi Central" }, { "mru", "Mono (Cameroon)" }, { "mrv", "Mangareva" }, { "mrw", "Maranao" }, { "mrx", "Maremgi" }, { "mry", "Mandaya" }, { "mrz", "Marind" }, { "msa", "Malay (macrolanguage)" }, { "msb", "Masbatenyo" }, { "msc", "Sankaran Maninka" }, { "msd", "Yucatec Maya Sign Language" }, { "mse", "Musey" }, { "msf", "Mekwei" }, { "msg", "Moraid" }, { "msh", "Masikoro Malagasy" }, { "msi", "Sabah Malay" }, { "msj", "Ma (Democratic Republic of Congo)" }, { "msk", "Mansaka" }, { "msl", "Molof" }, { "msm", "Agusan Manobo" }, { "msn", "Vurës" }, { "mso", "Mombum" }, { "msp", "Maritsauá" }, { "msq", "Caac" }, { "msr", "Mongolian Sign Language" }, { "mss", "West Masela" }, { "msu", "Musom" }, { "msv", "Maslam" }, { "msw", "Mansoanka" }, { "msx", "Moresada" }, { "msy", "Aruamu" }, { "msz", "Momare" }, { "mta", "Cotabato Manobo" }, { "mtb", "Anyin Morofo" }, { "mtc", "Munit" }, { "mtd", "Mualang" }, { "mte", "Mono (Solomon Islands)" }, { "mtf", "Murik (Papua New Guinea)" }, { "mtg", "Una" }, { "mth", "Munggui" }, { "mti", "Maiwa (Papua New Guinea)" }, { "mtj", "Moskona" }, { "mtk", "Mbe'" }, { "mtl", "Montol" }, { "mtm", "Mator" }, { "mtn", "Matagalpa" }, { "mto", "Totontepec Mixe" }, { "mtp", "Wichí Lhamtés Nocten" }, { "mtq", "Muong" }, { "mtr", "Mewari" }, { "mts", "Yora" }, { "mtt", "Mota" }, { "mtu", "Tututepec Mixtec" }, { "mtv", "Asaro'o" }, { "mtw", "Southern Binukidnon" }, { "mtx", "Tidaá Mixtec" }, { "mty", "Nabi" }, { "mua", "Mundang" }, { "mub", "Mubi" }, { "muc", "Ajumbu" }, { "mud", "Mednyj Aleut" }, { "mue", "Media Lengua" }, { "mug", "Musgu" }, { "muh", "Mündü" }, { "mui", "Musi" }, { "muj", "Mabire" }, { "muk", "Mugom" }, { "mul", "Multiple languages" }, { "mum", "Maiwala" }, { "muo", "Nyong" }, { "mup", "Malvi" }, { "muq", "Eastern Xiangxi Miao" }, { "mur", "Murle" }, { "mus", "Creek" }, { "mut", "Western Muria" }, { "muu", "Yaaku" }, { "muv", "Muthuvan" }, { "mux", "Bo-Ung" }, { "muy", "Muyang" }, { "muz", "Mursi" }, { "mva", "Manam" }, { "mvb", "Mattole" }, { "mvd", "Mamboru" }, { "mve", "Marwari (Pakistan)" }, { "mvf", "Peripheral Mongolian" }, { "mvg", "Yucuañe Mixtec" }, { "mvh", "Mulgi" }, { "mvi", "Miyako" }, { "mvk", "Mekmek" }, { "mvl", "Mbara (Australia)" }, { "mvm", "Muya" }, { "mvn", "Minaveha" }, { "mvo", "Marovo" }, { "mvp", "Duri" }, { "mvq", "Moere" }, { "mvr", "Marau" }, { "mvs", "Massep" }, { "mvt", "Mpotovoro" }, { "mvu", "Marfa" }, { "mvv", "Tagal Murut" }, { "mvw", "Machinga" }, { "mvx", "Meoswar" }, { "mvy", "Indus Kohistani" }, { "mvz", "Mesqan" }, { "mwa", "Mwatebu" }, { "mwb", "Juwal" }, { "mwc", "Are" }, { "mwe", "Mwera (Chimwera)" }, { "mwf", "Murrinh-Patha" }, { "mwg", "Aiklep" }, { "mwh", "Mouk-Aria" }, { "mwi", "Labo" }, { "mwj", "Maligo" }, { "mwk", "Kita Maninkakan" }, { "mwl", "Mirandese" }, { "mwm", "Sar" }, { "mwn", "Nyamwanga" }, { "mwo", "Central Maewo" }, { "mwp", "Kala Lagaw Ya" }, { "mwq", "Mün Chin" }, { "mwr", "Marwari" }, { "mws", "Mwimbi-Muthambi" }, { "mwt", "Moken" }, { "mwu", "Mittu" }, { "mwv", "Mentawai" }, { "mww", "Hmong Daw" }, { "mwx", "Mediak" }, { "mwy", "Mosiro" }, { "mwz", "Moingi" }, { "mxa", "Northwest Oaxaca Mixtec" }, { "mxb", "Tezoatlán Mixtec" }, { "mxc", "Manyika" }, { "mxd", "Modang" }, { "mxe", "Mele-Fila" }, { "mxf", "Malgbe" }, { "mxg", "Mbangala" }, { "mxh", "Mvuba" }, { "mxi", "Mozarabic" }, { "mxj", "Miju-Mishmi" }, { "mxk", "Monumbo" }, { "mxl", "Maxi Gbe" }, { "mxm", "Meramera" }, { "mxn", "Moi (Indonesia)" }, { "mxo", "Mbowe" }, { "mxp", "Tlahuitoltepec Mixe" }, { "mxq", "Juquila Mixe" }, { "mxr", "Murik (Malaysia)" }, { "mxs", "Huitepec Mixtec" }, { "mxt", "Jamiltepec Mixtec" }, { "mxu", "Mada (Cameroon)" }, { "mxv", "Metlatónoc Mixtec" }, { "mxw", "Namo" }, { "mxx", "Mahou" }, { "mxy", "Southeastern Nochixtlán Mixtec" }, { "mxz", "Central Masela" }, { "mya", "Burmese" }, { "myb", "Mbay" }, { "myc", "Mayeka" }, { "myd", "Maramba" }, { "mye", "Myene" }, { "myf", "Bambassi" }, { "myg", "Manta" }, { "myh", "Makah" }, { "myi", "Mina (India)" }, { "myj", "Mangayat" }, { "myk", "Mamara Senoufo" }, { "myl", "Moma" }, { "mym", "Me'en" }, { "myo", "Anfillo" }, { "myp", "Pirahã" }, { "myr", "Muniche" }, { "mys", "Mesmes" }, { "myu", "Mundurukú" }, { "myv", "Erzya" }, { "myw", "Muyuw" }, { "myx", "Masaaba" }, { "myy", "Macuna" }, { "myz", "Classical Mandaic" }, { "mza", "Santa María Zacatepec Mixtec" }, { "mzb", "Tumzabt" }, { "mzc", "Madagascar Sign Language" }, { "mzd", "Malimba" }, { "mze", "Morawa" }, { "mzg", "Monastic Sign Language" }, { "mzh", "Wichí Lhamtés Güisnay" }, { "mzi", "Ixcatlán Mazatec" }, { "mzj", "Manya" }, { "mzk", "Nigeria Mambila" }, { "mzl", "Mazatlán Mixe" }, { "mzm", "Mumuye" }, { "mzn", "Mazanderani" }, { "mzo", "Matipuhy" }, { "mzp", "Movima" }, { "mzq", "Mori Atas" }, { "mzr", "Marúbo" }, { "mzs", "Macanese" }, { "mzt", "Mintil" }, { "mzu", "Inapang" }, { "mzv", "Manza" }, { "mzw", "Deg" }, { "mzx", "Mawayana" }, { "mzy", "Mozambican Sign Language" }, { "mzz", "Maiadomu" }, { "naa", "Namla" }, { "nab", "Southern Nambikuára" }, { "nac", "Narak" }, { "nad", "Nijadali" }, { "nae", "Naka'ela" }, { "naf", "Nabak" }, { "nag", "Naga Pidgin" }, { "naj", "Nalu" }, { "nak", "Nakanai" }, { "nal", "Nalik" }, { "nam", "Ngan'gityemerri" }, { "nan", "Min Nan Chinese" }, { "nao", "Naaba" }, { "nap", "Neapolitan" }, { "naq", "Nama (Namibia)" }, { "nar", "Iguta" }, { "nas", "Naasioi" }, { "nat", "Hungworo" }, { "nau", "Nauru" }, { "nav", "Navajo" }, { "naw", "Nawuri" }, { "nax", "Nakwi" }, { "nay", "Narrinyeri" }, { "naz", "Coatepec Nahuatl" }, { "nba", "Nyemba" }, { "nbb", "Ndoe" }, { "nbc", "Chang Naga" }, { "nbd", "Ngbinda" }, { "nbe", "Konyak Naga" }, { "nbg", "Nagarchal" }, { "nbh", "Ngamo" }, { "nbi", "Mao Naga" }, { "nbj", "Ngarinman" }, { "nbk", "Nake" }, { "nbl", "South Ndebele" }, { "nbm", "Ngbaka Ma'bo" }, { "nbn", "Kuri" }, { "nbo", "Nkukoli" }, { "nbp", "Nnam" }, { "nbq", "Nggem" }, { "nbr", "Numana-Nunku-Gbantu-Numbu" }, { "nbs", "Namibian Sign Language" }, { "nbt", "Na" }, { "nbu", "Rongmei Naga" }, { "nbv", "Ngamambo" }, { "nbw", "Southern Ngbandi" }, { "nby", "Ningera" }, { "nca", "Iyo" }, { "ncb", "Central Nicobarese" }, { "ncc", "Ponam" }, { "ncd", "Nachering" }, { "nce", "Yale" }, { "ncf", "Notsi" }, { "ncg", "Nisga'a" }, { "nch", "Central Huasteca Nahuatl" }, { "nci", "Classical Nahuatl" }, { "ncj", "Northern Puebla Nahuatl" }, { "nck", "Nakara" }, { "ncl", "Michoacán Nahuatl" }, { "ncm", "Nambo" }, { "ncn", "Nauna" }, { "nco", "Sibe" }, { "ncp", "Ndaktup" }, { "ncr", "Ncane" }, { "ncs", "Nicaraguan Sign Language" }, { "nct", "Chothe Naga" }, { "ncu", "Chumburung" }, { "ncx", "Central Puebla Nahuatl" }, { "ncz", "Natchez" }, { "nda", "Ndasa" }, { "ndb", "Kenswei Nsei" }, { "ndc", "Ndau" }, { "ndd", "Nde-Nsele-Nta" }, { "nde", "North Ndebele" }, { "ndf", "Nadruvian" }, { "ndg", "Ndengereko" }, { "ndh", "Ndali" }, { "ndi", "Samba Leko" }, { "ndj", "Ndamba" }, { "ndk", "Ndaka" }, { "ndl", "Ndolo" }, { "ndm", "Ndam" }, { "ndn", "Ngundi" }, { "ndo", "Ndonga" }, { "ndp", "Ndo" }, { "ndq", "Ndombe" }, { "ndr", "Ndoola" }, { "nds", "Low German" }, { "ndt", "Ndunga" }, { "ndu", "Dugun" }, { "ndv", "Ndut" }, { "ndw", "Ndobo" }, { "ndx", "Nduga" }, { "ndy", "Lutos" }, { "ndz", "Ndogo" }, { "nea", "Eastern Ngad'a" }, { "neb", "Toura (Côte d'Ivoire)" }, { "nec", "Nedebang" }, { "ned", "Nde-Gbite" }, { "nee", "Nêlêmwa-Nixumwak" }, { "nef", "Nefamese" }, { "neg", "Negidal" }, { "neh", "Nyenkha" }, { "nei", "Neo-Hittite" }, { "nej", "Neko" }, { "nek", "Neku" }, { "nem", "Nemi" }, { "nen", "Nengone" }, { "neo", "Ná-Meo" }, { "nep", "Nepali (macrolanguage)" }, { "neq", "North Central Mixe" }, { "ner", "Yahadian" }, { "nes", "Bhoti Kinnauri" }, { "net", "Nete" }, { "neu", "Neo" }, { "nev", "Nyaheun" }, { "new", "Newari" }, { "nex", "Neme" }, { "ney", "Neyo" }, { "nez", "Nez Perce" }, { "nfa", "Dhao" }, { "nfd", "Ahwai" }, { "nfl", "Ayiwo" }, { "nfr", "Nafaanra" }, { "nfu", "Mfumte" }, { "nga", "Ngbaka" }, { "ngb", "Northern Ngbandi" }, { "ngc", "Ngombe (Democratic Republic of Congo)" }, { "ngd", "Ngando (Central African Republic)" }, { "nge", "Ngemba" }, { "ngg", "Ngbaka Manza" }, { "ngh", "Nu" }, { "ngi", "Ngizim" }, { "ngj", "Ngie" }, { "ngk", "Dalabon" }, { "ngl", "Lomwe" }, { "ngm", "Ngatik Men's Creole" }, { "ngn", "Ngwo" }, { "ngo", "Ngoni" }, { "ngp", "Ngulu" }, { "ngq", "Ngurimi" }, { "ngr", "Engdewu" }, { "ngs", "Gvoko" }, { "ngt", "Ngeq" }, { "ngu", "Guerrero Nahuatl" }, { "ngv", "Nagumi" }, { "ngw", "Ngwaba" }, { "ngx", "Nggwahyi" }, { "ngy", "Tibea" }, { "ngz", "Ngungwel" }, { "nha", "Nhanda" }, { "nhb", "Beng" }, { "nhc", "Tabasco Nahuatl" }, { "nhd", "Chiripá" }, { "nhe", "Eastern Huasteca Nahuatl" }, { "nhf", "Nhuwala" }, { "nhg", "Tetelcingo Nahuatl" }, { "nhh", "Nahari" }, { "nhi", "Zacatlán-Ahuacatlán-Tepetzintla Nahuatl" }, { "nhk", "Isthmus-Cosoleacaque Nahuatl" }, { "nhm", "Morelos Nahuatl" }, { "nhn", "Central Nahuatl" }, { "nho", "Takuu" }, { "nhp", "Isthmus-Pajapan Nahuatl" }, { "nhq", "Huaxcaleca Nahuatl" }, { "nhr", "Naro" }, { "nht", "Ometepec Nahuatl" }, { "nhu", "Noone" }, { "nhv", "Temascaltepec Nahuatl" }, { "nhw", "Western Huasteca Nahuatl" }, { "nhx", "Isthmus-Mecayapan Nahuatl" }, { "nhy", "Northern Oaxaca Nahuatl" }, { "nhz", "Santa María La Alta Nahuatl" }, { "nia", "Nias" }, { "nib", "Nakame" }, { "nid", "Ngandi" }, { "nie", "Niellim" }, { "nif", "Nek" }, { "nig", "Ngalakan" }, { "nih", "Nyiha (Tanzania)" }, { "nii", "Nii" }, { "nij", "Ngaju" }, { "nik", "Southern Nicobarese" }, { "nil", "Nila" }, { "nim", "Nilamba" }, { "nin", "Ninzo" }, { "nio", "Nganasan" }, { "niq", "Nandi" }, { "nir", "Nimboran" }, { "nis", "Nimi" }, { "nit", "Southeastern Kolami" }, { "niu", "Niuean" }, { "niv", "Gilyak" }, { "niw", "Nimo" }, { "nix", "Hema" }, { "niy", "Ngiti" }, { "niz", "Ningil" }, { "nja", "Nzanyi" }, { "njb", "Nocte Naga" }, { "njd", "Ndonde Hamba" }, { "njh", "Lotha Naga" }, { "nji", "Gudanji" }, { "njj", "Njen" }, { "njl", "Njalgulgule" }, { "njm", "Angami Naga" }, { "njn", "Liangmai Naga" }, { "njo", "Ao Naga" }, { "njr", "Njerep" }, { "njs", "Nisa" }, { "njt", "Ndyuka-Trio Pidgin" }, { "nju", "Ngadjunmaya" }, { "njx", "Kunyi" }, { "njy", "Njyem" }, { "njz", "Nyishi" }, { "nka", "Nkoya" }, { "nkb", "Khoibu Naga" }, { "nkc", "Nkongho" }, { "nkd", "Koireng" }, { "nke", "Duke" }, { "nkf", "Inpui Naga" }, { "nkg", "Nekgini" }, { "nkh", "Khezha Naga" }, { "nki", "Thangal Naga" }, { "nkj", "Nakai" }, { "nkk", "Nokuku" }, { "nkm", "Namat" }, { "nkn", "Nkangala" }, { "nko", "Nkonya" }, { "nkp", "Niuatoputapu" }, { "nkq", "Nkami" }, { "nkr", "Nukuoro" }, { "nks", "North Asmat" }, { "nkt", "Nyika (Tanzania)" }, { "nku", "Bouna Kulango" }, { "nkv", "Nyika (Malawi and Zambia)" }, { "nkw", "Nkutu" }, { "nkx", "Nkoroo" }, { "nkz", "Nkari" }, { "nla", "Ngombale" }, { "nlc", "Nalca" }, { "nld", "Dutch" }, { "nle", "East Nyala" }, { "nlg", "Gela" }, { "nli", "Grangali" }, { "nlj", "Nyali" }, { "nlk", "Ninia Yali" }, { "nll", "Nihali" }, { "nlo", "Ngul" }, { "nlq", "Lao Naga" }, { "nlu", "Nchumbulu" }, { "nlv", "Orizaba Nahuatl" }, { "nlw", "Walangama" }, { "nlx", "Nahali" }, { "nly", "Nyamal" }, { "nlz", "Nalögo" }, { "nma", "Maram Naga" }, { "nmb", "Big Nambas" }, { "nmc", "Ngam" }, { "nmd", "Ndumu" }, { "nme", "Mzieme Naga" }, { "nmf", "Tangkhul Naga (India)" }, { "nmg", "Kwasio" }, { "nmh", "Monsang Naga" }, { "nmi", "Nyam" }, { "nmj", "Ngombe (Central African Republic)" }, { "nmk", "Namakura" }, { "nml", "Ndemli" }, { "nmm", "Manangba" }, { "nmn", "!Xóõ" }, { "nmo", "Moyon Naga" }, { "nmp", "Nimanbur" }, { "nmq", "Nambya" }, { "nmr", "Nimbari" }, { "nms", "Letemboi" }, { "nmt", "Namonuito" }, { "nmu", "Northeast Maidu" }, { "nmv", "Ngamini" }, { "nmw", "Nimoa" }, { "nmx", "Nama (Papua New Guinea)" }, { "nmy", "Namuyi" }, { "nmz", "Nawdm" }, { "nna", "Nyangumarta" }, { "nnb", "Nande" }, { "nnc", "Nancere" }, { "nnd", "West Ambae" }, { "nne", "Ngandyera" }, { "nnf", "Ngaing" }, { "nng", "Maring Naga" }, { "nnh", "Ngiemboon" }, { "nni", "North Nuaulu" }, { "nnj", "Nyangatom" }, { "nnk", "Nankina" }, { "nnl", "Northern Rengma Naga" }, { "nnm", "Namia" }, { "nnn", "Ngete" }, { "nno", "Norwegian Nynorsk" }, { "nnp", "Wancho Naga" }, { "nnq", "Ngindo" }, { "nnr", "Narungga" }, { "nns", "Ningye" }, { "nnt", "Nanticoke" }, { "nnu", "Dwang" }, { "nnv", "Nugunu (Australia)" }, { "nnw", "Southern Nuni" }, { "nnx", "Ngong" }, { "nny", "Nyangga" }, { "nnz", "Nda'nda'" }, { "noa", "Woun Meu" }, { "nob", "Norwegian Bokmål" }, { "noc", "Nuk" }, { "nod", "Northern Thai" }, { "noe", "Nimadi" }, { "nof", "Nomane" }, { "nog", "Nogai" }, { "noh", "Nomu" }, { "noi", "Noiri" }, { "noj", "Nonuya" }, { "nok", "Nooksack" }, { "nol", "Nomlaki" }, { "nom", "Nocamán" }, { "non", "Old Norse" }, { "nop", "Numanggang" }, { "noq", "Ngongo" }, { "nor", "Norwegian" }, { "nos", "Eastern Nisu" }, { "not", "Nomatsiguenga" }, { "nou", "Ewage-Notu" }, { "nov", "Novial" }, { "now", "Nyambo" }, { "noy", "Noy" }, { "noz", "Nayi" }, { "npa", "Nar Phu" }, { "npb", "Nupbikha" }, { "npg", "Ponyo-Gongwang Naga" }, { "nph", "Phom Naga" }, { "npi", "Nepali (individual language)" }, { "npl", "Southeastern Puebla Nahuatl" }, { "npn", "Mondropolon" }, { "npo", "Pochuri Naga" }, { "nps", "Nipsan" }, { "npu", "Puimei Naga" }, { "npy", "Napu" }, { "nqg", "Southern Nago" }, { "nqk", "Kura Ede Nago" }, { "nqm", "Ndom" }, { "nqn", "Nen" }, { "nqo", "N'Ko" }, { "nqq", "Kyan-Karyaw Naga" }, { "nqy", "Akyaung Ari Naga" }, { "nra", "Ngom" }, { "nrb", "Nara" }, { "nrc", "Noric" }, { "nre", "Southern Rengma Naga" }, { "nrg", "Narango" }, { "nri", "Chokri Naga" }, { "nrk", "Ngarla" }, { "nrl", "Ngarluma" }, { "nrm", "Narom" }, { "nrn", "Norn" }, { "nrp", "North Picene" }, { "nrr", "Norra" }, { "nrt", "Northern Kalapuya" }, { "nru", "Narua" }, { "nrx", "Ngurmbur" }, { "nrz", "Lala" }, { "nsa", "Sangtam Naga" }, { "nsc", "Nshi" }, { "nsd", "Southern Nisu" }, { "nse", "Nsenga" }, { "nsf", "Northwestern Nisu" }, { "nsg", "Ngasa" }, { "nsh", "Ngoshie" }, { "nsi", "Nigerian Sign Language" }, { "nsk", "Naskapi" }, { "nsl", "Norwegian Sign Language" }, { "nsm", "Sumi Naga" }, { "nsn", "Nehan" }, { "nso", "Pedi" }, { "nsp", "Nepalese Sign Language" }, { "nsq", "Northern Sierra Miwok" }, { "nsr", "Maritime Sign Language" }, { "nss", "Nali" }, { "nst", "Tase Naga" }, { "nsu", "Sierra Negra Nahuatl" }, { "nsv", "Southwestern Nisu" }, { "nsw", "Navut" }, { "nsx", "Nsongo" }, { "nsy", "Nasal" }, { "nsz", "Nisenan" }, { "nte", "Nathembo" }, { "ntg", "Ngantangarra" }, { "nti", "Natioro" }, { "ntj", "Ngaanyatjarra" }, { "ntk", "Ikoma-Nata-Isenye" }, { "ntm", "Nateni" }, { "nto", "Ntomba" }, { "ntp", "Northern Tepehuan" }, { "ntr", "Delo" }, { "nts", "Natagaimas" }, { "ntu", "Natügu" }, { "ntw", "Nottoway" }, { "ntx", "Tangkhul Naga (Myanmar)" }, { "nty", "Mantsi" }, { "ntz", "Natanzi" }, { "nua", "Yuanga" }, { "nuc", "Nukuini" }, { "nud", "Ngala" }, { "nue", "Ngundu" }, { "nuf", "Nusu" }, { "nug", "Nungali" }, { "nuh", "Ndunda" }, { "nui", "Ngumbi" }, { "nuj", "Nyole" }, { "nuk", "Nuu-chah-nulth" }, { "nul", "Nusa Laut" }, { "num", "Niuafo'ou" }, { "nun", "Anong" }, { "nuo", "Nguôn" }, { "nup", "Nupe-Nupe-Tako" }, { "nuq", "Nukumanu" }, { "nur", "Nukuria" }, { "nus", "Nuer" }, { "nut", "Nung (Viet Nam)" }, { "nuu", "Ngbundu" }, { "nuv", "Northern Nuni" }, { "nuw", "Nguluwan" }, { "nux", "Mehek" }, { "nuy", "Nunggubuyu" }, { "nuz", "Tlamacazapa Nahuatl" }, { "nvh", "Nasarian" }, { "nvm", "Namiae" }, { "nvo", "Nyokon" }, { "nwa", "Nawathinehena" }, { "nwb", "Nyabwa" }, { "nwc", "Classical Newari" }, { "nwe", "Ngwe" }, { "nwg", "Ngayawung" }, { "nwi", "Southwest Tanna" }, { "nwm", "Nyamusa-Molo" }, { "nwo", "Nauo" }, { "nwr", "Nawaru" }, { "nwx", "Middle Newar" }, { "nwy", "Nottoway-Meherrin" }, { "nxa", "Nauete" }, { "nxd", "Ngando (Democratic Republic of Congo)" }, { "nxe", "Nage" }, { "nxg", "Ngad'a" }, { "nxi", "Nindi" }, { "nxk", "Koki Naga" }, { "nxl", "South Nuaulu" }, { "nxm", "Numidian" }, { "nxn", "Ngawun" }, { "nxq", "Naxi" }, { "nxr", "Ninggerum" }, { "nxu", "Narau" }, { "nxx", "Nafri" }, { "nya", "Nyanja" }, { "nyb", "Nyangbo" }, { "nyc", "Nyanga-li" }, { "nyd", "Nyore" }, { "nye", "Nyengo" }, { "nyf", "Giryama" }, { "nyg", "Nyindu" }, { "nyh", "Nyigina" }, { "nyi", "Ama (Sudan)" }, { "nyj", "Nyanga" }, { "nyk", "Nyaneka" }, { "nyl", "Nyeu" }, { "nym", "Nyamwezi" }, { "nyn", "Nyankole" }, { "nyo", "Nyoro" }, { "nyp", "Nyang'i" }, { "nyq", "Nayini" }, { "nyr", "Nyiha (Malawi)" }, { "nys", "Nyunga" }, { "nyt", "Nyawaygi" }, { "nyu", "Nyungwe" }, { "nyv", "Nyulnyul" }, { "nyw", "Nyaw" }, { "nyx", "Nganyaywana" }, { "nyy", "Nyakyusa-Ngonde" }, { "nza", "Tigon Mbembe" }, { "nzb", "Njebi" }, { "nzi", "Nzima" }, { "nzk", "Nzakara" }, { "nzm", "Zeme Naga" }, { "nzs", "New Zealand Sign Language" }, { "nzu", "Teke-Nzikou" }, { "nzy", "Nzakambay" }, { "nzz", "Nanga Dama Dogon" }, { "oaa", "Orok" }, { "oac", "Oroch" }, { "oar", "Old Aramaic (up to 700 BCE)" }, { "oav", "Old Avar" }, { "obi", "Obispeño" }, { "obk", "Southern Bontok" }, { "obl", "Oblo" }, { "obm", "Moabite" }, { "obo", "Obo Manobo" }, { "obr", "Old Burmese" }, { "obt", "Old Breton" }, { "obu", "Obulom" }, { "oca", "Ocaina" }, { "och", "Old Chinese" }, { "oci", "Occitan (post 1500)" }, { "oco", "Old Cornish" }, { "ocu", "Atzingo Matlatzinca" }, { "oda", "Odut" }, { "odk", "Od" }, { "odt", "Old Dutch" }, { "odu", "Odual" }, { "ofo", "Ofo" }, { "ofs", "Old Frisian" }, { "ofu", "Efutop" }, { "ogb", "Ogbia" }, { "ogc", "Ogbah" }, { "oge", "Old Georgian" }, { "ogg", "Ogbogolo" }, { "ogo", "Khana" }, { "ogu", "Ogbronuagum" }, { "oht", "Old Hittite" }, { "ohu", "Old Hungarian" }, { "oia", "Oirata" }, { "oin", "Inebu One" }, { "ojb", "Northwestern Ojibwa" }, { "ojc", "Central Ojibwa" }, { "ojg", "Eastern Ojibwa" }, { "oji", "Ojibwa" }, { "ojp", "Old Japanese" }, { "ojs", "Severn Ojibwa" }, { "ojv", "Ontong Java" }, { "ojw", "Western Ojibwa" }, { "oka", "Okanagan" }, { "okb", "Okobo" }, { "okd", "Okodia" }, { "oke", "Okpe (Southwestern Edo)" }, { "okg", "Koko Babangk" }, { "okh", "Koresh-e Rostam" }, { "oki", "Okiek" }, { "okj", "Oko-Juwoi" }, { "okk", "Kwamtim One" }, { "okl", "Old Kentish Sign Language" }, { "okm", "Middle Korean (10th-16th cent.)" }, { "okn", "Oki-No-Erabu" }, { "oko", "Old Korean (3rd-9th cent.)" }, { "okr", "Kirike" }, { "oks", "Oko-Eni-Osayen" }, { "oku", "Oku" }, { "okv", "Orokaiva" }, { "okx", "Okpe (Northwestern Edo)" }, { "ola", "Walungge" }, { "old", "Mochi" }, { "ole", "Olekha" }, { "olk", "Olkol" }, { "olm", "Oloma" }, { "olo", "Livvi" }, { "olr", "Olrat" }, { "oma", "Omaha-Ponca" }, { "omb", "East Ambae" }, { "omc", "Mochica" }, { "ome", "Omejes" }, { "omg", "Omagua" }, { "omi", "Omi" }, { "omk", "Omok" }, { "oml", "Ombo" }, { "omn", "Minoan" }, { "omo", "Utarmbung" }, { "omp", "Old Manipuri" }, { "omr", "Old Marathi" }, { "omt", "Omotik" }, { "omu", "Omurano" }, { "omw", "South Tairora" }, { "omx", "Old Mon" }, { "ona", "Ona" }, { "onb", "Lingao" }, { "one", "Oneida" }, { "ong", "Olo" }, { "oni", "Onin" }, { "onj", "Onjob" }, { "onk", "Kabore One" }, { "onn", "Onobasulu" }, { "ono", "Onondaga" }, { "onp", "Sartang" }, { "onr", "Northern One" }, { "ons", "Ono" }, { "ont", "Ontenu" }, { "onu", "Unua" }, { "onw", "Old Nubian" }, { "onx", "Onin Based Pidgin" }, { "ood", "Tohono O'odham" }, { "oog", "Ong" }, { "oon", "Önge" }, { "oor", "Oorlams" }, { "oos", "Old Ossetic" }, { "opa", "Okpamheri" }, { "opk", "Kopkaka" }, { "opm", "Oksapmin" }, { "opo", "Opao" }, { "opt", "Opata" }, { "opy", "Ofayé" }, { "ora", "Oroha" }, { "orc", "Orma" }, { "ore", "Orejón" }, { "org", "Oring" }, { "orh", "Oroqen" }, { "ori", "Oriya (macrolanguage)" }, { "orm", "Oromo" }, { "orn", "Orang Kanaq" }, { "oro", "Orokolo" }, { "orr", "Oruma" }, { "ors", "Orang Seletar" }, { "ort", "Adivasi Oriya" }, { "oru", "Ormuri" }, { "orv", "Old Russian" }, { "orw", "Oro Win" }, { "orx", "Oro" }, { "ory", "Oriya (individual language)" }, { "orz", "Ormu" }, { "osa", "Osage" }, { "osc", "Oscan" }, { "osi", "Osing" }, { "oso", "Ososo" }, { "osp", "Old Spanish" }, { "oss", "Ossetian" }, { "ost", "Osatu" }, { "osu", "Southern One" }, { "osx", "Old Saxon" }, { "ota", "Ottoman Turkish (1500-1928)" }, { "otb", "Old Tibetan" }, { "otd", "Ot Danum" }, { "ote", "Mezquital Otomi" }, { "oti", "Oti" }, { "otk", "Old Turkish" }, { "otl", "Tilapa Otomi" }, { "otm", "Eastern Highland Otomi" }, { "otn", "Tenango Otomi" }, { "otq", "Querétaro Otomi" }, { "otr", "Otoro" }, { "ots", "Estado de México Otomi" }, { "ott", "Temoaya Otomi" }, { "otu", "Otuke" }, { "otw", "Ottawa" }, { "otx", "Texcatepec Otomi" }, { "oty", "Old Tamil" }, { "otz", "Ixtenco Otomi" }, { "oua", "Tagargrent" }, { "oub", "Glio-Oubi" }, { "oue", "Oune" }, { "oui", "Old Uighur" }, { "oum", "Ouma" }, { "oun", "!O!ung" }, { "owi", "Owiniga" }, { "owl", "Old Welsh" }, { "oyb", "Oy" }, { "oyd", "Oyda" }, { "oym", "Wayampi" }, { "oyy", "Oya'oya" }, { "ozm", "Koonzime" }, { "pab", "Parecís" }, { "pac", "Pacoh" }, { "pad", "Paumarí" }, { "pae", "Pagibete" }, { "paf", "Paranawát" }, { "pag", "Pangasinan" }, { "pah", "Tenharim" }, { "pai", "Pe" }, { "pak", "Parakanã" }, { "pal", "Pahlavi" }, { "pam", "Pampanga" }, { "pan", "Panjabi" }, { "pao", "Northern Paiute" }, { "pap", "Papiamento" }, { "paq", "Parya" }, { "par", "Panamint" }, { "pas", "Papasena" }, { "pat", "Papitalai" }, { "pau", "Palauan" }, { "pav", "Pakaásnovos" }, { "paw", "Pawnee" }, { "pax", "Pankararé" }, { "pay", "Pech" }, { "paz", "Pankararú" }, { "pbb", "Páez" }, { "pbc", "Patamona" }, { "pbe", "Mezontla Popoloca" }, { "pbf", "Coyotepec Popoloca" }, { "pbg", "Paraujano" }, { "pbh", "E'ñapa Woromaipu" }, { "pbi", "Parkwa" }, { "pbl", "Mak (Nigeria)" }, { "pbn", "Kpasam" }, { "pbo", "Papel" }, { "pbp", "Badyara" }, { "pbr", "Pangwa" }, { "pbs", "Central Pame" }, { "pbt", "Southern Pashto" }, { "pbu", "Northern Pashto" }, { "pbv", "Pnar" }, { "pby", "Pyu" }, { "pca", "Santa Inés Ahuatempan Popoloca" }, { "pcb", "Pear" }, { "pcc", "Bouyei" }, { "pcd", "Picard" }, { "pce", "Ruching Palaung" }, { "pcf", "Paliyan" }, { "pcg", "Paniya" }, { "pch", "Pardhan" }, { "pci", "Duruwa" }, { "pcj", "Parenga" }, { "pck", "Paite Chin" }, { "pcl", "Pardhi" }, { "pcm", "Nigerian Pidgin" }, { "pcn", "Piti" }, { "pcp", "Pacahuara" }, { "pcw", "Pyapun" }, { "pda", "Anam" }, { "pdc", "Pennsylvania German" }, { "pdi", "Pa Di" }, { "pdn", "Podena" }, { "pdo", "Padoe" }, { "pdt", "Plautdietsch" }, { "pdu", "Kayan" }, { "pea", "Peranakan Indonesian" }, { "peb", "Eastern Pomo" }, { "ped", "Mala (Papua New Guinea)" }, { "pee", "Taje" }, { "pef", "Northeastern Pomo" }, { "peg", "Pengo" }, { "peh", "Bonan" }, { "pei", "Chichimeca-Jonaz" }, { "pej", "Northern Pomo" }, { "pek", "Penchal" }, { "pel", "Pekal" }, { "pem", "Phende" }, { "peo", "Old Persian (ca. 600-400 B.C.)" }, { "pep", "Kunja" }, { "peq", "Southern Pomo" }, { "pes", "Iranian Persian" }, { "pev", "Pémono" }, { "pex", "Petats" }, { "pey", "Petjo" }, { "pez", "Eastern Penan" }, { "pfa", "Pááfang" }, { "pfe", "Peere" }, { "pfl", "Pfaelzisch" }, { "pga", "Sudanese Creole Arabic" }, { "pgg", "Pangwali" }, { "pgi", "Pagi" }, { "pgk", "Rerep" }, { "pgl", "Primitive Irish" }, { "pgn", "Paelignian" }, { "pgs", "Pangseng" }, { "pgu", "Pagu" }, { "pha", "Pa-Hng" }, { "phd", "Phudagi" }, { "phg", "Phuong" }, { "phh", "Phukha" }, { "phk", "Phake" }, { "phl", "Phalura" }, { "phm", "Phimbi" }, { "phn", "Phoenician" }, { "pho", "Phunoi" }, { "phq", "Phana'" }, { "phr", "Pahari-Potwari" }, { "pht", "Phu Thai" }, { "phu", "Phuan" }, { "phv", "Pahlavani" }, { "phw", "Phangduwali" }, { "pia", "Pima Bajo" }, { "pib", "Yine" }, { "pic", "Pinji" }, { "pid", "Piaroa" }, { "pie", "Piro" }, { "pif", "Pingelapese" }, { "pig", "Pisabo" }, { "pih", "Pitcairn-Norfolk" }, { "pii", "Pini" }, { "pij", "Pijao" }, { "pil", "Yom" }, { "pim", "Powhatan" }, { "pin", "Piame" }, { "pio", "Piapoco" }, { "pip", "Pero" }, { "pir", "Piratapuyo" }, { "pis", "Pijin" }, { "pit", "Pitta Pitta" }, { "piu", "Pintupi-Luritja" }, { "piv", "Pileni" }, { "piw", "Pimbwe" }, { "pix", "Piu" }, { "piy", "Piya-Kwonci" }, { "piz", "Pije" }, { "pjt", "Pitjantjatjara" }, { "pka", "Ardhamāgadhī Prākrit" }, { "pkb", "Pokomo" }, { "pkc", "Paekche" }, { "pkg", "Pak-Tong" }, { "pkh", "Pankhu" }, { "pkn", "Pakanha" }, { "pko", "Pökoot" }, { "pkp", "Pukapuka" }, { "pkr", "Attapady Kurumba" }, { "pks", "Pakistan Sign Language" }, { "pkt", "Maleng" }, { "pku", "Paku" }, { "pla", "Miani" }, { "plb", "Polonombauk" }, { "plc", "Central Palawano" }, { "pld", "Polari" }, { "ple", "Palu'e" }, { "plg", "Pilagá" }, { "plh", "Paulohi" }, { "pli", "Pali" }, { "plj", "Polci" }, { "plk", "Kohistani Shina" }, { "pll", "Shwe Palaung" }, { "pln", "Palenquero" }, { "plo", "Oluta Popoluca" }, { "plp", "Palpa" }, { "plq", "Palaic" }, { "plr", "Palaka Senoufo" }, { "pls", "San Marcos Tlalcoyalco Popoloca" }, { "plt", "Plateau Malagasy" }, { "plu", "Palikúr" }, { "plv", "Southwest Palawano" }, { "plw", "Brooke's Point Palawano" }, { "ply", "Bolyu" }, { "plz", "Paluan" }, { "pma", "Paama" }, { "pmb", "Pambia" }, { "pmc", "Palumata" }, { "pmd", "Pallanganmiddang" }, { "pme", "Pwaamei" }, { "pmf", "Pamona" }, { "pmh", "Māhārāṣṭri Prākrit" }, { "pmi", "Northern Pumi" }, { "pmj", "Southern Pumi" }, { "pmk", "Pamlico" }, { "pml", "Lingua Franca" }, { "pmm", "Pomo" }, { "pmn", "Pam" }, { "pmo", "Pom" }, { "pmq", "Northern Pame" }, { "pmr", "Paynamar" }, { "pms", "Piemontese" }, { "pmt", "Tuamotuan" }, { "pmu", "Mirpur Panjabi" }, { "pmw", "Plains Miwok" }, { "pmx", "Poumei Naga" }, { "pmy", "Papuan Malay" }, { "pmz", "Southern Pame" }, { "pna", "Punan Bah-Biau" }, { "pnb", "Western Panjabi" }, { "pnc", "Pannei" }, { "pne", "Western Penan" }, { "png", "Pongu" }, { "pnh", "Penrhyn" }, { "pni", "Aoheng" }, { "pnj", "Pinjarup" }, { "pnk", "Paunaka" }, { "pnl", "Paleni" }, { "pnm", "Punan Batu 1" }, { "pnn", "Pinai-Hagahai" }, { "pno", "Panobo" }, { "pnp", "Pancana" }, { "pnq", "Pana (Burkina Faso)" }, { "pnr", "Panim" }, { "pns", "Ponosakan" }, { "pnt", "Pontic" }, { "pnu", "Jiongnai Bunu" }, { "pnv", "Pinigura" }, { "pnw", "Panytyima" }, { "pnx", "Phong-Kniang" }, { "pny", "Pinyin" }, { "pnz", "Pana (Central African Republic)" }, { "poc", "Poqomam" }, { "pod", "Ponares" }, { "poe", "San Juan Atzingo Popoloca" }, { "pof", "Poke" }, { "pog", "Potiguára" }, { "poh", "Poqomchi'" }, { "poi", "Highland Popoluca" }, { "pok", "Pokangá" }, { "pol", "Polish" }, { "pom", "Southeastern Pomo" }, { "pon", "Pohnpeian" }, { "poo", "Central Pomo" }, { "pop", "Pwapwâ" }, { "poq", "Texistepec Popoluca" }, { "por", "Portuguese" }, { "pos", "Sayula Popoluca" }, { "pot", "Potawatomi" }, { "pov", "Upper Guinea Crioulo" }, { "pow", "San Felipe Otlaltepec Popoloca" }, { "pox", "Polabian" }, { "poy", "Pogolo" }, { "ppa", "Pao" }, { "ppe", "Papi" }, { "ppi", "Paipai" }, { "ppk", "Uma" }, { "ppl", "Pipil" }, { "ppm", "Papuma" }, { "ppn", "Papapana" }, { "ppo", "Folopa" }, { "ppp", "Pelende" }, { "ppq", "Pei" }, { "pps", "San Luís Temalacayuca Popoloca" }, { "ppt", "Pare" }, { "ppu", "Papora" }, { "pqa", "Pa'a" }, { "pqm", "Malecite-Passamaquoddy" }, { "prb", "Lua'" }, { "prc", "Parachi" }, { "prd", "Parsi-Dari" }, { "pre", "Principense" }, { "prf", "Paranan" }, { "prg", "Prussian" }, { "prh", "Porohanon" }, { "pri", "Paicî" }, { "prk", "Parauk" }, { "prl", "Peruvian Sign Language" }, { "prm", "Kibiri" }, { "prn", "Prasuni" }, { "pro", "Old Provençal (to 1500)" }, { "prp", "Parsi" }, { "prq", "Ashéninka Perené" }, { "prr", "Puri" }, { "prs", "Dari" }, { "prt", "Phai" }, { "pru", "Puragi" }, { "prw", "Parawen" }, { "prx", "Purik" }, { "pry", "Pray 3" }, { "prz", "Providencia Sign Language" }, { "psa", "Asue Awyu" }, { "psc", "Persian Sign Language" }, { "psd", "Plains Indian Sign Language" }, { "pse", "Central Malay" }, { "psg", "Penang Sign Language" }, { "psh", "Southwest Pashayi" }, { "psi", "Southeast Pashayi" }, { "psl", "Puerto Rican Sign Language" }, { "psm", "Pauserna" }, { "psn", "Panasuan" }, { "pso", "Polish Sign Language" }, { "psp", "Philippine Sign Language" }, { "psq", "Pasi" }, { "psr", "Portuguese Sign Language" }, { "pss", "Kaulong" }, { "pst", "Central Pashto" }, { "psu", "Sauraseni Prākrit" }, { "psw", "Port Sandwich" }, { "psy", "Piscataway" }, { "pta", "Pai Tavytera" }, { "pth", "Pataxó Hã-Ha-Hãe" }, { "pti", "Pintiini" }, { "ptn", "Patani" }, { "pto", "Zo'é" }, { "ptp", "Patep" }, { "ptr", "Piamatsina" }, { "ptt", "Enrekang" }, { "ptu", "Bambam" }, { "ptv", "Port Vato" }, { "ptw", "Pentlatch" }, { "pty", "Pathiya" }, { "pua", "Western Highland Purepecha" }, { "pub", "Purum" }, { "puc", "Punan Merap" }, { "pud", "Punan Aput" }, { "pue", "Puelche" }, { "puf", "Punan Merah" }, { "pug", "Phuie" }, { "pui", "Puinave" }, { "puj", "Punan Tubu" }, { "puk", "Pu Ko" }, { "pum", "Puma" }, { "puo", "Puoc" }, { "pup", "Pulabu" }, { "puq", "Puquina" }, { "pur", "Puruborá" }, { "pus", "Pushto" }, { "put", "Putoh" }, { "puu", "Punu" }, { "puw", "Puluwatese" }, { "pux", "Puare" }, { "puy", "Purisimeño" }, { "puz", "Purum Naga" }, { "pwa", "Pawaia" }, { "pwb", "Panawa" }, { "pwg", "Gapapaiwa" }, { "pwi", "Patwin" }, { "pwm", "Molbog" }, { "pwn", "Paiwan" }, { "pwo", "Pwo Western Karen" }, { "pwr", "Powari" }, { "pww", "Pwo Northern Karen" }, { "pxm", "Quetzaltepec Mixe" }, { "pye", "Pye Krumen" }, { "pym", "Fyam" }, { "pyn", "Poyanáwa" }, { "pys", "Paraguayan Sign Language" }, { "pyu", "Puyuma" }, { "pyx", "Pyu (Myanmar)" }, { "pyy", "Pyen" }, { "pzn", "Para Naga" }, { "qaa", "Reserved for local use" }, { "qab", "Reserved for local use" }, { "qac", "Reserved for local use" }, { "qad", "Reserved for local use" }, { "qae", "Reserved for local use" }, { "qaf", "Reserved for local use" }, { "qag", "Reserved for local use" }, { "qah", "Reserved for local use" }, { "qai", "Reserved for local use" }, { "qaj", "Reserved for local use" }, { "qak", "Reserved for local use" }, { "qal", "Reserved for local use" }, { "qam", "Reserved for local use" }, { "qan", "Reserved for local use" }, { "qao", "Reserved for local use" }, { "qap", "Reserved for local use" }, { "qaq", "Reserved for local use" }, { "qar", "Reserved for local use" }, { "qas", "Reserved for local use" }, { "qat", "Reserved for local use" }, { "qau", "Reserved for local use" }, { "qav", "Reserved for local use" }, { "qaw", "Reserved for local use" }, { "qax", "Reserved for local use" }, { "qay", "Reserved for local use" }, { "qaz", "Reserved for local use" }, { "qba", "Reserved for local use" }, { "qbb", "Reserved for local use" }, { "qbc", "Reserved for local use" }, { "qbd", "Reserved for local use" }, { "qbe", "Reserved for local use" }, { "qbf", "Reserved for local use" }, { "qbg", "Reserved for local use" }, { "qbh", "Reserved for local use" }, { "qbi", "Reserved for local use" }, { "qbj", "Reserved for local use" }, { "qbk", "Reserved for local use" }, { "qbl", "Reserved for local use" }, { "qbm", "Reserved for local use" }, { "qbn", "Reserved for local use" }, { "qbo", "Reserved for local use" }, { "qbp", "Reserved for local use" }, { "qbq", "Reserved for local use" }, { "qbr", "Reserved for local use" }, { "qbs", "Reserved for local use" }, { "qbt", "Reserved for local use" }, { "qbu", "Reserved for local use" }, { "qbv", "Reserved for local use" }, { "qbw", "Reserved for local use" }, { "qbx", "Reserved for local use" }, { "qby", "Reserved for local use" }, { "qbz", "Reserved for local use" }, { "qca", "Reserved for local use" }, { "qcb", "Reserved for local use" }, { "qcc", "Reserved for local use" }, { "qcd", "Reserved for local use" }, { "qce", "Reserved for local use" }, { "qcf", "Reserved for local use" }, { "qcg", "Reserved for local use" }, { "qch", "Reserved for local use" }, { "qci", "Reserved for local use" }, { "qcj", "Reserved for local use" }, { "qck", "Reserved for local use" }, { "qcl", "Reserved for local use" }, { "qcm", "Reserved for local use" }, { "qcn", "Reserved for local use" }, { "qco", "Reserved for local use" }, { "qcp", "Reserved for local use" }, { "qcq", "Reserved for local use" }, { "qcr", "Reserved for local use" }, { "qcs", "Reserved for local use" }, { "qct", "Reserved for local use" }, { "qcu", "Reserved for local use" }, { "qcv", "Reserved for local use" }, { "qcw", "Reserved for local use" }, { "qcx", "Reserved for local use" }, { "qcy", "Reserved for local use" }, { "qcz", "Reserved for local use" }, { "qda", "Reserved for local use" }, { "qdb", "Reserved for local use" }, { "qdc", "Reserved for local use" }, { "qdd", "Reserved for local use" }, { "qde", "Reserved for local use" }, { "qdf", "Reserved for local use" }, { "qdg", "Reserved for local use" }, { "qdh", "Reserved for local use" }, { "qdi", "Reserved for local use" }, { "qdj", "Reserved for local use" }, { "qdk", "Reserved for local use" }, { "qdl", "Reserved for local use" }, { "qdm", "Reserved for local use" }, { "qdn", "Reserved for local use" }, { "qdo", "Reserved for local use" }, { "qdp", "Reserved for local use" }, { "qdq", "Reserved for local use" }, { "qdr", "Reserved for local use" }, { "qds", "Reserved for local use" }, { "qdt", "Reserved for local use" }, { "qdu", "Reserved for local use" }, { "qdv", "Reserved for local use" }, { "qdw", "Reserved for local use" }, { "qdx", "Reserved for local use" }, { "qdy", "Reserved for local use" }, { "qdz", "Reserved for local use" }, { "qea", "Reserved for local use" }, { "qeb", "Reserved for local use" }, { "qec", "Reserved for local use" }, { "qed", "Reserved for local use" }, { "qee", "Reserved for local use" }, { "qef", "Reserved for local use" }, { "qeg", "Reserved for local use" }, { "qeh", "Reserved for local use" }, { "qei", "Reserved for local use" }, { "qej", "Reserved for local use" }, { "qek", "Reserved for local use" }, { "qel", "Reserved for local use" }, { "qem", "Reserved for local use" }, { "qen", "Reserved for local use" }, { "qeo", "Reserved for local use" }, { "qep", "Reserved for local use" }, { "qeq", "Reserved for local use" }, { "qer", "Reserved for local use" }, { "qes", "Reserved for local use" }, { "qet", "Reserved for local use" }, { "qeu", "Reserved for local use" }, { "qev", "Reserved for local use" }, { "qew", "Reserved for local use" }, { "qex", "Reserved for local use" }, { "qey", "Reserved for local use" }, { "qez", "Reserved for local use" }, { "qfa", "Reserved for local use" }, { "qfb", "Reserved for local use" }, { "qfc", "Reserved for local use" }, { "qfd", "Reserved for local use" }, { "qfe", "Reserved for local use" }, { "qff", "Reserved for local use" }, { "qfg", "Reserved for local use" }, { "qfh", "Reserved for local use" }, { "qfi", "Reserved for local use" }, { "qfj", "Reserved for local use" }, { "qfk", "Reserved for local use" }, { "qfl", "Reserved for local use" }, { "qfm", "Reserved for local use" }, { "qfn", "Reserved for local use" }, { "qfo", "Reserved for local use" }, { "qfp", "Reserved for local use" }, { "qfq", "Reserved for local use" }, { "qfr", "Reserved for local use" }, { "qfs", "Reserved for local use" }, { "qft", "Reserved for local use" }, { "qfu", "Reserved for local use" }, { "qfv", "Reserved for local use" }, { "qfw", "Reserved for local use" }, { "qfx", "Reserved for local use" }, { "qfy", "Reserved for local use" }, { "qfz", "Reserved for local use" }, { "qga", "Reserved for local use" }, { "qgb", "Reserved for local use" }, { "qgc", "Reserved for local use" }, { "qgd", "Reserved for local use" }, { "qge", "Reserved for local use" }, { "qgf", "Reserved for local use" }, { "qgg", "Reserved for local use" }, { "qgh", "Reserved for local use" }, { "qgi", "Reserved for local use" }, { "qgj", "Reserved for local use" }, { "qgk", "Reserved for local use" }, { "qgl", "Reserved for local use" }, { "qgm", "Reserved for local use" }, { "qgn", "Reserved for local use" }, { "qgo", "Reserved for local use" }, { "qgp", "Reserved for local use" }, { "qgq", "Reserved for local use" }, { "qgr", "Reserved for local use" }, { "qgs", "Reserved for local use" }, { "qgt", "Reserved for local use" }, { "qgu", "Reserved for local use" }, { "qgv", "Reserved for local use" }, { "qgw", "Reserved for local use" }, { "qgx", "Reserved for local use" }, { "qgy", "Reserved for local use" }, { "qgz", "Reserved for local use" }, { "qha", "Reserved for local use" }, { "qhb", "Reserved for local use" }, { "qhc", "Reserved for local use" }, { "qhd", "Reserved for local use" }, { "qhe", "Reserved for local use" }, { "qhf", "Reserved for local use" }, { "qhg", "Reserved for local use" }, { "qhh", "Reserved for local use" }, { "qhi", "Reserved for local use" }, { "qhj", "Reserved for local use" }, { "qhk", "Reserved for local use" }, { "qhl", "Reserved for local use" }, { "qhm", "Reserved for local use" }, { "qhn", "Reserved for local use" }, { "qho", "Reserved for local use" }, { "qhp", "Reserved for local use" }, { "qhq", "Reserved for local use" }, { "qhr", "Reserved for local use" }, { "qhs", "Reserved for local use" }, { "qht", "Reserved for local use" }, { "qhu", "Reserved for local use" }, { "qhv", "Reserved for local use" }, { "qhw", "Reserved for local use" }, { "qhx", "Reserved for local use" }, { "qhy", "Reserved for local use" }, { "qhz", "Reserved for local use" }, { "qia", "Reserved for local use" }, { "qib", "Reserved for local use" }, { "qic", "Reserved for local use" }, { "qid", "Reserved for local use" }, { "qie", "Reserved for local use" }, { "qif", "Reserved for local use" }, { "qig", "Reserved for local use" }, { "qih", "Reserved for local use" }, { "qii", "Reserved for local use" }, { "qij", "Reserved for local use" }, { "qik", "Reserved for local use" }, { "qil", "Reserved for local use" }, { "qim", "Reserved for local use" }, { "qin", "Reserved for local use" }, { "qio", "Reserved for local use" }, { "qip", "Reserved for local use" }, { "qiq", "Reserved for local use" }, { "qir", "Reserved for local use" }, { "qis", "Reserved for local use" }, { "qit", "Reserved for local use" }, { "qiu", "Reserved for local use" }, { "qiv", "Reserved for local use" }, { "qiw", "Reserved for local use" }, { "qix", "Reserved for local use" }, { "qiy", "Reserved for local use" }, { "qiz", "Reserved for local use" }, { "qja", "Reserved for local use" }, { "qjb", "Reserved for local use" }, { "qjc", "Reserved for local use" }, { "qjd", "Reserved for local use" }, { "qje", "Reserved for local use" }, { "qjf", "Reserved for local use" }, { "qjg", "Reserved for local use" }, { "qjh", "Reserved for local use" }, { "qji", "Reserved for local use" }, { "qjj", "Reserved for local use" }, { "qjk", "Reserved for local use" }, { "qjl", "Reserved for local use" }, { "qjm", "Reserved for local use" }, { "qjn", "Reserved for local use" }, { "qjo", "Reserved for local use" }, { "qjp", "Reserved for local use" }, { "qjq", "Reserved for local use" }, { "qjr", "Reserved for local use" }, { "qjs", "Reserved for local use" }, { "qjt", "Reserved for local use" }, { "qju", "Reserved for local use" }, { "qjv", "Reserved for local use" }, { "qjw", "Reserved for local use" }, { "qjx", "Reserved for local use" }, { "qjy", "Reserved for local use" }, { "qjz", "Reserved for local use" }, { "qka", "Reserved for local use" }, { "qkb", "Reserved for local use" }, { "qkc", "Reserved for local use" }, { "qkd", "Reserved for local use" }, { "qke", "Reserved for local use" }, { "qkf", "Reserved for local use" }, { "qkg", "Reserved for local use" }, { "qkh", "Reserved for local use" }, { "qki", "Reserved for local use" }, { "qkj", "Reserved for local use" }, { "qkk", "Reserved for local use" }, { "qkl", "Reserved for local use" }, { "qkm", "Reserved for local use" }, { "qkn", "Reserved for local use" }, { "qko", "Reserved for local use" }, { "qkp", "Reserved for local use" }, { "qkq", "Reserved for local use" }, { "qkr", "Reserved for local use" }, { "qks", "Reserved for local use" }, { "qkt", "Reserved for local use" }, { "qku", "Reserved for local use" }, { "qkv", "Reserved for local use" }, { "qkw", "Reserved for local use" }, { "qkx", "Reserved for local use" }, { "qky", "Reserved for local use" }, { "qkz", "Reserved for local use" }, { "qla", "Reserved for local use" }, { "qlb", "Reserved for local use" }, { "qlc", "Reserved for local use" }, { "qld", "Reserved for local use" }, { "qle", "Reserved for local use" }, { "qlf", "Reserved for local use" }, { "qlg", "Reserved for local use" }, { "qlh", "Reserved for local use" }, { "qli", "Reserved for local use" }, { "qlj", "Reserved for local use" }, { "qlk", "Reserved for local use" }, { "qll", "Reserved for local use" }, { "qlm", "Reserved for local use" }, { "qln", "Reserved for local use" }, { "qlo", "Reserved for local use" }, { "qlp", "Reserved for local use" }, { "qlq", "Reserved for local use" }, { "qlr", "Reserved for local use" }, { "qls", "Reserved for local use" }, { "qlt", "Reserved for local use" }, { "qlu", "Reserved for local use" }, { "qlv", "Reserved for local use" }, { "qlw", "Reserved for local use" }, { "qlx", "Reserved for local use" }, { "qly", "Reserved for local use" }, { "qlz", "Reserved for local use" }, { "qma", "Reserved for local use" }, { "qmb", "Reserved for local use" }, { "qmc", "Reserved for local use" }, { "qmd", "Reserved for local use" }, { "qme", "Reserved for local use" }, { "qmf", "Reserved for local use" }, { "qmg", "Reserved for local use" }, { "qmh", "Reserved for local use" }, { "qmi", "Reserved for local use" }, { "qmj", "Reserved for local use" }, { "qmk", "Reserved for local use" }, { "qml", "Reserved for local use" }, { "qmm", "Reserved for local use" }, { "qmn", "Reserved for local use" }, { "qmo", "Reserved for local use" }, { "qmp", "Reserved for local use" }, { "qmq", "Reserved for local use" }, { "qmr", "Reserved for local use" }, { "qms", "Reserved for local use" }, { "qmt", "Reserved for local use" }, { "qmu", "Reserved for local use" }, { "qmv", "Reserved for local use" }, { "qmw", "Reserved for local use" }, { "qmx", "Reserved for local use" }, { "qmy", "Reserved for local use" }, { "qmz", "Reserved for local use" }, { "qna", "Reserved for local use" }, { "qnb", "Reserved for local use" }, { "qnc", "Reserved for local use" }, { "qnd", "Reserved for local use" }, { "qne", "Reserved for local use" }, { "qnf", "Reserved for local use" }, { "qng", "Reserved for local use" }, { "qnh", "Reserved for local use" }, { "qni", "Reserved for local use" }, { "qnj", "Reserved for local use" }, { "qnk", "Reserved for local use" }, { "qnl", "Reserved for local use" }, { "qnm", "Reserved for local use" }, { "qnn", "Reserved for local use" }, { "qno", "Reserved for local use" }, { "qnp", "Reserved for local use" }, { "qnq", "Reserved for local use" }, { "qnr", "Reserved for local use" }, { "qns", "Reserved for local use" }, { "qnt", "Reserved for local use" }, { "qnu", "Reserved for local use" }, { "qnv", "Reserved for local use" }, { "qnw", "Reserved for local use" }, { "qnx", "Reserved for local use" }, { "qny", "Reserved for local use" }, { "qnz", "Reserved for local use" }, { "qoa", "Reserved for local use" }, { "qob", "Reserved for local use" }, { "qoc", "Reserved for local use" }, { "qod", "Reserved for local use" }, { "qoe", "Reserved for local use" }, { "qof", "Reserved for local use" }, { "qog", "Reserved for local use" }, { "qoh", "Reserved for local use" }, { "qoi", "Reserved for local use" }, { "qoj", "Reserved for local use" }, { "qok", "Reserved for local use" }, { "qol", "Reserved for local use" }, { "qom", "Reserved for local use" }, { "qon", "Reserved for local use" }, { "qoo", "Reserved for local use" }, { "qop", "Reserved for local use" }, { "qoq", "Reserved for local use" }, { "qor", "Reserved for local use" }, { "qos", "Reserved for local use" }, { "qot", "Reserved for local use" }, { "qou", "Reserved for local use" }, { "qov", "Reserved for local use" }, { "qow", "Reserved for local use" }, { "qox", "Reserved for local use" }, { "qoy", "Reserved for local use" }, { "qoz", "Reserved for local use" }, { "qpa", "Reserved for local use" }, { "qpb", "Reserved for local use" }, { "qpc", "Reserved for local use" }, { "qpd", "Reserved for local use" }, { "qpe", "Reserved for local use" }, { "qpf", "Reserved for local use" }, { "qpg", "Reserved for local use" }, { "qph", "Reserved for local use" }, { "qpi", "Reserved for local use" }, { "qpj", "Reserved for local use" }, { "qpk", "Reserved for local use" }, { "qpl", "Reserved for local use" }, { "qpm", "Reserved for local use" }, { "qpn", "Reserved for local use" }, { "qpo", "Reserved for local use" }, { "qpp", "Reserved for local use" }, { "qpq", "Reserved for local use" }, { "qpr", "Reserved for local use" }, { "qps", "Reserved for local use" }, { "qpt", "Reserved for local use" }, { "qpu", "Reserved for local use" }, { "qpv", "Reserved for local use" }, { "qpw", "Reserved for local use" }, { "qpx", "Reserved for local use" }, { "qpy", "Reserved for local use" }, { "qpz", "Reserved for local use" }, { "qqa", "Reserved for local use" }, { "qqb", "Reserved for local use" }, { "qqc", "Reserved for local use" }, { "qqd", "Reserved for local use" }, { "qqe", "Reserved for local use" }, { "qqf", "Reserved for local use" }, { "qqg", "Reserved for local use" }, { "qqh", "Reserved for local use" }, { "qqi", "Reserved for local use" }, { "qqj", "Reserved for local use" }, { "qqk", "Reserved for local use" }, { "qql", "Reserved for local use" }, { "qqm", "Reserved for local use" }, { "qqn", "Reserved for local use" }, { "qqo", "Reserved for local use" }, { "qqp", "Reserved for local use" }, { "qqq", "Reserved for local use" }, { "qqr", "Reserved for local use" }, { "qqs", "Reserved for local use" }, { "qqt", "Reserved for local use" }, { "qqu", "Reserved for local use" }, { "qqv", "Reserved for local use" }, { "qqw", "Reserved for local use" }, { "qqx", "Reserved for local use" }, { "qqy", "Reserved for local use" }, { "qqz", "Reserved for local use" }, { "qra", "Reserved for local use" }, { "qrb", "Reserved for local use" }, { "qrc", "Reserved for local use" }, { "qrd", "Reserved for local use" }, { "qre", "Reserved for local use" }, { "qrf", "Reserved for local use" }, { "qrg", "Reserved for local use" }, { "qrh", "Reserved for local use" }, { "qri", "Reserved for local use" }, { "qrj", "Reserved for local use" }, { "qrk", "Reserved for local use" }, { "qrl", "Reserved for local use" }, { "qrm", "Reserved for local use" }, { "qrn", "Reserved for local use" }, { "qro", "Reserved for local use" }, { "qrp", "Reserved for local use" }, { "qrq", "Reserved for local use" }, { "qrr", "Reserved for local use" }, { "qrs", "Reserved for local use" }, { "qrt", "Reserved for local use" }, { "qru", "Reserved for local use" }, { "qrv", "Reserved for local use" }, { "qrw", "Reserved for local use" }, { "qrx", "Reserved for local use" }, { "qry", "Reserved for local use" }, { "qrz", "Reserved for local use" }, { "qsa", "Reserved for local use" }, { "qsb", "Reserved for local use" }, { "qsc", "Reserved for local use" }, { "qsd", "Reserved for local use" }, { "qse", "Reserved for local use" }, { "qsf", "Reserved for local use" }, { "qsg", "Reserved for local use" }, { "qsh", "Reserved for local use" }, { "qsi", "Reserved for local use" }, { "qsj", "Reserved for local use" }, { "qsk", "Reserved for local use" }, { "qsl", "Reserved for local use" }, { "qsm", "Reserved for local use" }, { "qsn", "Reserved for local use" }, { "qso", "Reserved for local use" }, { "qsp", "Reserved for local use" }, { "qsq", "Reserved for local use" }, { "qsr", "Reserved for local use" }, { "qss", "Reserved for local use" }, { "qst", "Reserved for local use" }, { "qsu", "Reserved for local use" }, { "qsv", "Reserved for local use" }, { "qsw", "Reserved for local use" }, { "qsx", "Reserved for local use" }, { "qsy", "Reserved for local use" }, { "qsz", "Reserved for local use" }, { "qta", "Reserved for local use" }, { "qtb", "Reserved for local use" }, { "qtc", "Reserved for local use" }, { "qtd", "Reserved for local use" }, { "qte", "Reserved for local use" }, { "qtf", "Reserved for local use" }, { "qtg", "Reserved for local use" }, { "qth", "Reserved for local use" }, { "qti", "Reserved for local use" }, { "qtj", "Reserved for local use" }, { "qtk", "Reserved for local use" }, { "qtl", "Reserved for local use" }, { "qtm", "Reserved for local use" }, { "qtn", "Reserved for local use" }, { "qto", "Reserved for local use" }, { "qtp", "Reserved for local use" }, { "qtq", "Reserved for local use" }, { "qtr", "Reserved for local use" }, { "qts", "Reserved for local use" }, { "qtt", "Reserved for local use" }, { "qtu", "Reserved for local use" }, { "qtv", "Reserved for local use" }, { "qtw", "Reserved for local use" }, { "qtx", "Reserved for local use" }, { "qty", "Reserved for local use" }, { "qtz", "Reserved for local use" }, { "qua", "Quapaw" }, { "qub", "Huallaga Huánuco Quechua" }, { "quc", "K'iche'" }, { "qud", "Calderón Highland Quichua" }, { "que", "Quechua" }, { "quf", "Lambayeque Quechua" }, { "qug", "Chimborazo Highland Quichua" }, { "quh", "South Bolivian Quechua" }, { "qui", "Quileute" }, { "quk", "Chachapoyas Quechua" }, { "qul", "North Bolivian Quechua" }, { "qum", "Sipacapense" }, { "qun", "Quinault" }, { "qup", "Southern Pastaza Quechua" }, { "quq", "Quinqui" }, { "qur", "Yanahuanca Pasco Quechua" }, { "qus", "Santiago del Estero Quichua" }, { "quv", "Sacapulteco" }, { "quw", "Tena Lowland Quichua" }, { "qux", "Yauyos Quechua" }, { "quy", "Ayacucho Quechua" }, { "quz", "Cusco Quechua" }, { "qva", "Ambo-Pasco Quechua" }, { "qvc", "Cajamarca Quechua" }, { "qve", "Eastern Apurímac Quechua" }, { "qvh", "Huamalíes-Dos de Mayo Huánuco Quechua" }, { "qvi", "Imbabura Highland Quichua" }, { "qvj", "Loja Highland Quichua" }, { "qvl", "Cajatambo North Lima Quechua" }, { "qvm", "Margos-Yarowilca-Lauricocha Quechua" }, { "qvn", "North Junín Quechua" }, { "qvo", "Napo Lowland Quechua" }, { "qvp", "Pacaraos Quechua" }, { "qvs", "San Martín Quechua" }, { "qvw", "Huaylla Wanca Quechua" }, { "qvy", "Queyu" }, { "qvz", "Northern Pastaza Quichua" }, { "qwa", "Corongo Ancash Quechua" }, { "qwc", "Classical Quechua" }, { "qwh", "Huaylas Ancash Quechua" }, { "qwm", "Kuman (Russia)" }, { "qws", "Sihuas Ancash Quechua" }, { "qwt", "Kwalhioqua-Tlatskanai" }, { "qxa", "Chiquián Ancash Quechua" }, { "qxc", "Chincha Quechua" }, { "qxh", "Panao Huánuco Quechua" }, { "qxl", "Salasaca Highland Quichua" }, { "qxn", "Northern Conchucos Ancash Quechua" }, { "qxo", "Southern Conchucos Ancash Quechua" }, { "qxp", "Puno Quechua" }, { "qxq", "Qashqa'i" }, { "qxr", "Cañar Highland Quichua" }, { "qxs", "Southern Qiang" }, { "qxt", "Santa Ana de Tusi Pasco Quechua" }, { "qxu", "Arequipa-La Unión Quechua" }, { "qxw", "Jauja Wanca Quechua" }, { "qya", "Quenya" }, { "qyp", "Quiripi" }, { "raa", "Dungmali" }, { "rab", "Camling" }, { "rac", "Rasawa" }, { "rad", "Rade" }, { "raf", "Western Meohang" }, { "rag", "Logooli" }, { "rah", "Rabha" }, { "rai", "Ramoaaina" }, { "raj", "Rajasthani" }, { "rak", "Tulu-Bohuai" }, { "ral", "Ralte" }, { "ram", "Canela" }, { "ran", "Riantana" }, { "rao", "Rao" }, { "rap", "Rapanui" }, { "raq", "Saam" }, { "rar", "Rarotongan" }, { "ras", "Tegali" }, { "rat", "Razajerdi" }, { "rau", "Raute" }, { "rav", "Sampang" }, { "raw", "Rawang" }, { "rax", "Rang" }, { "ray", "Rapa" }, { "raz", "Rahambuu" }, { "rbb", "Rumai Palaung" }, { "rbk", "Northern Bontok" }, { "rbl", "Miraya Bikol" }, { "rbp", "Barababaraba" }, { "rcf", "Réunion Creole French" }, { "rdb", "Rudbari" }, { "rea", "Rerau" }, { "reb", "Rembong" }, { "ree", "Rejang Kayan" }, { "reg", "Kara (Tanzania)" }, { "rei", "Reli" }, { "rej", "Rejang" }, { "rel", "Rendille" }, { "rem", "Remo" }, { "ren", "Rengao" }, { "rer", "Rer Bare" }, { "res", "Reshe" }, { "ret", "Retta" }, { "rey", "Reyesano" }, { "rga", "Roria" }, { "rge", "Romano-Greek" }, { "rgk", "Rangkas" }, { "rgn", "Romagnol" }, { "rgr", "Resígaro" }, { "rgs", "Southern Roglai" }, { "rgu", "Ringgou" }, { "rhg", "Rohingya" }, { "rhp", "Yahang" }, { "ria", "Riang (India)" }, { "rie", "Rien" }, { "rif", "Tarifit" }, { "ril", "Riang (Myanmar)" }, { "rim", "Nyaturu" }, { "rin", "Nungu" }, { "rir", "Ribun" }, { "rit", "Ritarungo" }, { "riu", "Riung" }, { "rjg", "Rajong" }, { "rji", "Raji" }, { "rjs", "Rajbanshi" }, { "rka", "Kraol" }, { "rkb", "Rikbaktsa" }, { "rkh", "Rakahanga-Manihiki" }, { "rki", "Rakhine" }, { "rkm", "Marka" }, { "rkt", "Rangpuri" }, { "rkw", "Arakwal" }, { "rma", "Rama" }, { "rmb", "Rembarunga" }, { "rmc", "Carpathian Romani" }, { "rmd", "Traveller Danish" }, { "rme", "Angloromani" }, { "rmf", "Kalo Finnish Romani" }, { "rmg", "Traveller Norwegian" }, { "rmh", "Murkim" }, { "rmi", "Lomavren" }, { "rmk", "Romkun" }, { "rml", "Baltic Romani" }, { "rmm", "Roma" }, { "rmn", "Balkan Romani" }, { "rmo", "Sinte Romani" }, { "rmp", "Rempi" }, { "rmq", "Caló" }, { "rms", "Romanian Sign Language" }, { "rmt", "Domari" }, { "rmu", "Tavringer Romani" }, { "rmv", "Romanova" }, { "rmw", "Welsh Romani" }, { "rmx", "Romam" }, { "rmy", "Vlax Romani" }, { "rmz", "Marma" }, { "rna", "Runa" }, { "rnd", "Ruund" }, { "rng", "Ronga" }, { "rnl", "Ranglong" }, { "rnn", "Roon" }, { "rnp", "Rongpo" }, { "rnr", "Nari Nari" }, { "rnw", "Rungwa" }, { "rob", "Tae'" }, { "roc", "Cacgia Roglai" }, { "rod", "Rogo" }, { "roe", "Ronji" }, { "rof", "Rombo" }, { "rog", "Northern Roglai" }, { "roh", "Romansh" }, { "rol", "Romblomanon" }, { "rom", "Romany" }, { "ron", "Romanian" }, { "roo", "Rotokas" }, { "rop", "Kriol" }, { "ror", "Rongga" }, { "rou", "Runga" }, { "row", "Dela-Oenale" }, { "rpn", "Repanbitip" }, { "rpt", "Rapting" }, { "rri", "Ririo" }, { "rro", "Waima" }, { "rrt", "Arritinngithigh" }, { "rsb", "Romano-Serbian" }, { "rsi", "Rennellese Sign Language" }, { "rsl", "Russian Sign Language" }, { "rtc", "Rungtu Chin" }, { "rth", "Ratahan" }, { "rtm", "Rotuman" }, { "rtw", "Rathawi" }, { "rub", "Gungu" }, { "ruc", "Ruuli" }, { "rue", "Rusyn" }, { "ruf", "Luguru" }, { "rug", "Roviana" }, { "ruh", "Ruga" }, { "rui", "Rufiji" }, { "ruk", "Che" }, { "run", "Rundi" }, { "ruo", "Istro Romanian" }, { "rup", "Macedo-Romanian" }, { "ruq", "Megleno Romanian" }, { "rus", "Russian" }, { "rut", "Rutul" }, { "ruu", "Lanas Lobu" }, { "ruy", "Mala (Nigeria)" }, { "ruz", "Ruma" }, { "rwa", "Rawo" }, { "rwk", "Rwa" }, { "rwm", "Amba (Uganda)" }, { "rwo", "Rawa" }, { "rwr", "Marwari (India)" }, { "rxd", "Ngardi" }, { "rxw", "Karuwali" }, { "ryn", "Northern Amami-Oshima" }, { "rys", "Yaeyama" }, { "ryu", "Central Okinawan" }, { "saa", "Saba" }, { "sab", "Buglere" }, { "sac", "Meskwaki" }, { "sad", "Sandawe" }, { "sae", "Sabanê" }, { "saf", "Safaliba" }, { "sag", "Sango" }, { "sah", "Yakut" }, { "saj", "Sahu" }, { "sak", "Sake" }, { "sam", "Samaritan Aramaic" }, { "san", "Sanskrit" }, { "sao", "Sause" }, { "sap", "Sanapaná" }, { "saq", "Samburu" }, { "sar", "Saraveca" }, { "sas", "Sasak" }, { "sat", "Santali" }, { "sau", "Saleman" }, { "sav", "Saafi-Saafi" }, { "saw", "Sawi" }, { "sax", "Sa" }, { "say", "Saya" }, { "saz", "Saurashtra" }, { "sba", "Ngambay" }, { "sbb", "Simbo" }, { "sbc", "Kele (Papua New Guinea)" }, { "sbd", "Southern Samo" }, { "sbe", "Saliba" }, { "sbf", "Shabo" }, { "sbg", "Seget" }, { "sbh", "Sori-Harengan" }, { "sbi", "Seti" }, { "sbj", "Surbakhal" }, { "sbk", "Safwa" }, { "sbl", "Botolan Sambal" }, { "sbm", "Sagala" }, { "sbn", "Sindhi Bhil" }, { "sbo", "Sabüm" }, { "sbp", "Sangu (Tanzania)" }, { "sbq", "Sileibi" }, { "sbr", "Sembakung Murut" }, { "sbs", "Subiya" }, { "sbt", "Kimki" }, { "sbu", "Stod Bhoti" }, { "sbv", "Sabine" }, { "sbw", "Simba" }, { "sbx", "Seberuang" }, { "sby", "Soli" }, { "sbz", "Sara Kaba" }, { "scb", "Chut" }, { "sce", "Dongxiang" }, { "scf", "San Miguel Creole French" }, { "scg", "Sanggau" }, { "sch", "Sakachep" }, { "sci", "Sri Lankan Creole Malay" }, { "sck", "Sadri" }, { "scl", "Shina" }, { "scn", "Sicilian" }, { "sco", "Scots" }, { "scp", "Helambu Sherpa" }, { "scq", "Sa'och" }, { "scs", "North Slavey" }, { "scu", "Shumcho" }, { "scv", "Sheni" }, { "scw", "Sha" }, { "scx", "Sicel" }, { "sda", "Toraja-Sa'dan" }, { "sdb", "Shabak" }, { "sdc", "Sassarese Sardinian" }, { "sde", "Surubu" }, { "sdf", "Sarli" }, { "sdg", "Savi" }, { "sdh", "Southern Kurdish" }, { "sdj", "Suundi" }, { "sdk", "Sos Kundi" }, { "sdl", "Saudi Arabian Sign Language" }, { "sdm", "Semandang" }, { "sdn", "Gallurese Sardinian" }, { "sdo", "Bukar-Sadung Bidayuh" }, { "sdp", "Sherdukpen" }, { "sdr", "Oraon Sadri" }, { "sds", "Sened" }, { "sdt", "Shuadit" }, { "sdu", "Sarudu" }, { "sdx", "Sibu Melanau" }, { "sdz", "Sallands" }, { "sea", "Semai" }, { "seb", "Shempire Senoufo" }, { "sec", "Sechelt" }, { "sed", "Sedang" }, { "see", "Seneca" }, { "sef", "Cebaara Senoufo" }, { "seg", "Segeju" }, { "seh", "Sena" }, { "sei", "Seri" }, { "sej", "Sene" }, { "sek", "Sekani" }, { "sel", "Selkup" }, { "sen", "Nanerigé Sénoufo" }, { "seo", "Suarmin" }, { "sep", "Sìcìté Sénoufo" }, { "seq", "Senara Sénoufo" }, { "ser", "Serrano" }, { "ses", "Koyraboro Senni Songhai" }, { "set", "Sentani" }, { "seu", "Serui-Laut" }, { "sev", "Nyarafolo Senoufo" }, { "sew", "Sewa Bay" }, { "sey", "Secoya" }, { "sez", "Senthang Chin" }, { "sfb", "Langue des signes de Belgique Francophone" }, { "sfe", "Eastern Subanen" }, { "sfm", "Small Flowery Miao" }, { "sfs", "South African Sign Language" }, { "sfw", "Sehwi" }, { "sga", "Old Irish (to 900)" }, { "sgb", "Mag-antsi Ayta" }, { "sgc", "Kipsigis" }, { "sgd", "Surigaonon" }, { "sge", "Segai" }, { "sgg", "Swiss-German Sign Language" }, { "sgh", "Shughni" }, { "sgi", "Suga" }, { "sgj", "Surgujia" }, { "sgk", "Sangkong" }, { "sgm", "Singa" }, { "sgo", "Songa" }, { "sgp", "Singpho" }, { "sgr", "Sangisari" }, { "sgs", "Samogitian" }, { "sgt", "Brokpake" }, { "sgu", "Salas" }, { "sgw", "Sebat Bet Gurage" }, { "sgx", "Sierra Leone Sign Language" }, { "sgy", "Sanglechi" }, { "sgz", "Sursurunga" }, { "sha", "Shall-Zwall" }, { "shb", "Ninam" }, { "shc", "Sonde" }, { "shd", "Kundal Shahi" }, { "she", "Sheko" }, { "shg", "Shua" }, { "shh", "Shoshoni" }, { "shi", "Tachelhit" }, { "shj", "Shatt" }, { "shk", "Shilluk" }, { "shl", "Shendu" }, { "shm", "Shahrudi" }, { "shn", "Shan" }, { "sho", "Shanga" }, { "shp", "Shipibo-Conibo" }, { "shq", "Sala" }, { "shr", "Shi" }, { "shs", "Shuswap" }, { "sht", "Shasta" }, { "shu", "Chadian Arabic" }, { "shv", "Shehri" }, { "shw", "Shwai" }, { "shx", "She" }, { "shy", "Tachawit" }, { "shz", "Syenara Senoufo" }, { "sia", "Akkala Sami" }, { "sib", "Sebop" }, { "sid", "Sidamo" }, { "sie", "Simaa" }, { "sif", "Siamou" }, { "sig", "Paasaal" }, { "sih", "Zire" }, { "sii", "Shom Peng" }, { "sij", "Numbami" }, { "sik", "Sikiana" }, { "sil", "Tumulung Sisaala" }, { "sim", "Mende (Papua New Guinea)" }, { "sin", "Sinhala" }, { "sip", "Sikkimese" }, { "siq", "Sonia" }, { "sir", "Siri" }, { "sis", "Siuslaw" }, { "siu", "Sinagen" }, { "siv", "Sumariup" }, { "siw", "Siwai" }, { "six", "Sumau" }, { "siy", "Sivandi" }, { "siz", "Siwi" }, { "sja", "Epena" }, { "sjb", "Sajau Basap" }, { "sjd", "Kildin Sami" }, { "sje", "Pite Sami" }, { "sjg", "Assangori" }, { "sjk", "Kemi Sami" }, { "sjl", "Sajalong" }, { "sjm", "Mapun" }, { "sjn", "Sindarin" }, { "sjo", "Xibe" }, { "sjp", "Surjapuri" }, { "sjr", "Siar-Lak" }, { "sjs", "Senhaja De Srair" }, { "sjt", "Ter Sami" }, { "sju", "Ume Sami" }, { "sjw", "Shawnee" }, { "ska", "Skagit" }, { "skb", "Saek" }, { "skc", "Ma Manda" }, { "skd", "Southern Sierra Miwok" }, { "ske", "Seke (Vanuatu)" }, { "skf", "Sakirabiá" }, { "skg", "Sakalava Malagasy" }, { "skh", "Sikule" }, { "ski", "Sika" }, { "skj", "Seke (Nepal)" }, { "skk", "Sok" }, { "skm", "Kutong" }, { "skn", "Kolibugan Subanon" }, { "sko", "Seko Tengah" }, { "skp", "Sekapan" }, { "skq", "Sininkere" }, { "skr", "Seraiki" }, { "sks", "Maia" }, { "skt", "Sakata" }, { "sku", "Sakao" }, { "skv", "Skou" }, { "skw", "Skepi Creole Dutch" }, { "skx", "Seko Padang" }, { "sky", "Sikaiana" }, { "skz", "Sekar" }, { "slc", "Sáliba" }, { "sld", "Sissala" }, { "sle", "Sholaga" }, { "slf", "Swiss-Italian Sign Language" }, { "slg", "Selungai Murut" }, { "slh", "Southern Puget Sound Salish" }, { "sli", "Lower Silesian" }, { "slj", "Salumá" }, { "slk", "Slovak" }, { "sll", "Salt-Yui" }, { "slm", "Pangutaran Sama" }, { "sln", "Salinan" }, { "slp", "Lamaholot" }, { "slq", "Salchuq" }, { "slr", "Salar" }, { "sls", "Singapore Sign Language" }, { "slt", "Sila" }, { "slu", "Selaru" }, { "slv", "Slovenian" }, { "slw", "Sialum" }, { "slx", "Salampasu" }, { "sly", "Selayar" }, { "slz", "Ma'ya" }, { "sma", "Southern Sami" }, { "smb", "Simbari" }, { "smc", "Som" }, { "smd", "Sama" }, { "sme", "Northern Sami" }, { "smf", "Auwe" }, { "smg", "Simbali" }, { "smh", "Samei" }, { "smj", "Lule Sami" }, { "smk", "Bolinao" }, { "sml", "Central Sama" }, { "smm", "Musasa" }, { "smn", "Inari Sami" }, { "smo", "Samoan" }, { "smp", "Samaritan" }, { "smq", "Samo" }, { "smr", "Simeulue" }, { "sms", "Skolt Sami" }, { "smt", "Simte" }, { "smu", "Somray" }, { "smv", "Samvedi" }, { "smw", "Sumbawa" }, { "smx", "Samba" }, { "smy", "Semnani" }, { "smz", "Simeku" }, { "sna", "Shona" }, { "snb", "Sebuyau" }, { "snc", "Sinaugoro" }, { "snd", "Sindhi" }, { "sne", "Bau Bidayuh" }, { "snf", "Noon" }, { "sng", "Sanga (Democratic Republic of Congo)" }, { "snh", "Shinabo" }, { "sni", "Sensi" }, { "snj", "Riverain Sango" }, { "snk", "Soninke" }, { "snl", "Sangil" }, { "snm", "Southern Ma'di" }, { "snn", "Siona" }, { "sno", "Snohomish" }, { "snp", "Siane" }, { "snq", "Sangu (Gabon)" }, { "snr", "Sihan" }, { "sns", "South West Bay" }, { "snu", "Senggi" }, { "snv", "Sa'ban" }, { "snw", "Selee" }, { "snx", "Sam" }, { "sny", "Saniyo-Hiyewe" }, { "snz", "Sinsauru" }, { "soa", "Thai Song" }, { "sob", "Sobei" }, { "soc", "So (Democratic Republic of Congo)" }, { "sod", "Songoora" }, { "soe", "Songomeno" }, { "sog", "Sogdian" }, { "soh", "Aka" }, { "soi", "Sonha" }, { "soj", "Soi" }, { "sok", "Sokoro" }, { "sol", "Solos" }, { "som", "Somali" }, { "soo", "Songo" }, { "sop", "Songe" }, { "soq", "Kanasi" }, { "sor", "Somrai" }, { "sos", "Seeku" }, { "sot", "Southern Sotho" }, { "sou", "Southern Thai" }, { "sov", "Sonsorol" }, { "sow", "Sowanda" }, { "sox", "Swo" }, { "soy", "Miyobe" }, { "soz", "Temi" }, { "spa", "Spanish" }, { "spb", "Sepa (Indonesia)" }, { "spc", "Sapé" }, { "spd", "Saep" }, { "spe", "Sepa (Papua New Guinea)" }, { "spg", "Sian" }, { "spi", "Saponi" }, { "spk", "Sengo" }, { "spl", "Selepet" }, { "spm", "Akukem" }, { "spo", "Spokane" }, { "spp", "Supyire Senoufo" }, { "spq", "Loreto-Ucayali Spanish" }, { "spr", "Saparua" }, { "sps", "Saposa" }, { "spt", "Spiti Bhoti" }, { "spu", "Sapuan" }, { "spv", "Sambalpuri" }, { "spx", "South Picene" }, { "spy", "Sabaot" }, { "sqa", "Shama-Sambuga" }, { "sqh", "Shau" }, { "sqi", "Albanian" }, { "sqk", "Albanian Sign Language" }, { "sqm", "Suma" }, { "sqn", "Susquehannock" }, { "sqo", "Sorkhei" }, { "sqq", "Sou" }, { "sqr", "Siculo Arabic" }, { "sqs", "Sri Lankan Sign Language" }, { "sqt", "Soqotri" }, { "squ", "Squamish" }, { "sra", "Saruga" }, { "srb", "Sora" }, { "src", "Logudorese Sardinian" }, { "srd", "Sardinian" }, { "sre", "Sara" }, { "srf", "Nafi" }, { "srg", "Sulod" }, { "srh", "Sarikoli" }, { "sri", "Siriano" }, { "srk", "Serudung Murut" }, { "srl", "Isirawa" }, { "srm", "Saramaccan" }, { "srn", "Sranan Tongo" }, { "sro", "Campidanese Sardinian" }, { "srp", "Serbian" }, { "srq", "Sirionó" }, { "srr", "Serer" }, { "srs", "Sarsi" }, { "srt", "Sauri" }, { "sru", "Suruí" }, { "srv", "Southern Sorsoganon" }, { "srw", "Serua" }, { "srx", "Sirmauri" }, { "sry", "Sera" }, { "srz", "Shahmirzadi" }, { "ssb", "Southern Sama" }, { "ssc", "Suba-Simbiti" }, { "ssd", "Siroi" }, { "sse", "Balangingi" }, { "ssf", "Thao" }, { "ssg", "Seimat" }, { "ssh", "Shihhi Arabic" }, { "ssi", "Sansi" }, { "ssj", "Sausi" }, { "ssk", "Sunam" }, { "ssl", "Western Sisaala" }, { "ssm", "Semnam" }, { "ssn", "Waata" }, { "sso", "Sissano" }, { "ssp", "Spanish Sign Language" }, { "ssq", "So'a" }, { "ssr", "Swiss-French Sign Language" }, { "sss", "Sô" }, { "sst", "Sinasina" }, { "ssu", "Susuami" }, { "ssv", "Shark Bay" }, { "ssw", "Swati" }, { "ssx", "Samberigi" }, { "ssy", "Saho" }, { "ssz", "Sengseng" }, { "sta", "Settla" }, { "stb", "Northern Subanen" }, { "std", "Sentinel" }, { "ste", "Liana-Seti" }, { "stf", "Seta" }, { "stg", "Trieng" }, { "sth", "Shelta" }, { "sti", "Bulo Stieng" }, { "stj", "Matya Samo" }, { "stk", "Arammba" }, { "stl", "Stellingwerfs" }, { "stm", "Setaman" }, { "stn", "Owa" }, { "sto", "Stoney" }, { "stp", "Southeastern Tepehuan" }, { "stq", "Saterfriesisch" }, { "str", "Straits Salish" }, { "sts", "Shumashti" }, { "stt", "Budeh Stieng" }, { "stu", "Samtao" }, { "stv", "Silt'e" }, { "stw", "Satawalese" }, { "sty", "Siberian Tatar" }, { "sua", "Sulka" }, { "sub", "Suku" }, { "suc", "Western Subanon" }, { "sue", "Suena" }, { "sug", "Suganga" }, { "sui", "Suki" }, { "suj", "Shubi" }, { "suk", "Sukuma" }, { "sun", "Sundanese" }, { "suq", "Suri" }, { "sur", "Mwaghavul" }, { "sus", "Susu" }, { "sut", "Subtiaba" }, { "suv", "Puroik" }, { "suw", "Sumbwa" }, { "sux", "Sumerian" }, { "suy", "Suyá" }, { "suz", "Sunwar" }, { "sva", "Svan" }, { "svb", "Ulau-Suain" }, { "svc", "Vincentian Creole English" }, { "sve", "Serili" }, { "svk", "Slovakian Sign Language" }, { "svm", "Slavomolisano" }, { "svr", "Savara" }, { "svs", "Savosavo" }, { "svx", "Skalvian" }, { "swa", "Swahili (macrolanguage)" }, { "swb", "Maore Comorian" }, { "swc", "Congo Swahili" }, { "swe", "Swedish" }, { "swf", "Sere" }, { "swg", "Swabian" }, { "swh", "Swahili (individual language)" }, { "swi", "Sui" }, { "swj", "Sira" }, { "swk", "Malawi Sena" }, { "swl", "Swedish Sign Language" }, { "swm", "Samosa" }, { "swn", "Sawknah" }, { "swo", "Shanenawa" }, { "swp", "Suau" }, { "swq", "Sharwa" }, { "swr", "Saweru" }, { "sws", "Seluwasan" }, { "swt", "Sawila" }, { "swu", "Suwawa" }, { "swv", "Shekhawati" }, { "sww", "Sowa" }, { "swx", "Suruahá" }, { "swy", "Sarua" }, { "sxb", "Suba" }, { "sxc", "Sicanian" }, { "sxe", "Sighu" }, { "sxg", "Shixing" }, { "sxk", "Southern Kalapuya" }, { "sxl", "Selian" }, { "sxm", "Samre" }, { "sxn", "Sangir" }, { "sxo", "Sorothaptic" }, { "sxr", "Saaroa" }, { "sxs", "Sasaru" }, { "sxu", "Upper Saxon" }, { "sxw", "Saxwe Gbe" }, { "sya", "Siang" }, { "syb", "Central Subanen" }, { "syc", "Classical Syriac" }, { "syi", "Seki" }, { "syk", "Sukur" }, { "syl", "Sylheti" }, { "sym", "Maya Samo" }, { "syn", "Senaya" }, { "syo", "Suoy" }, { "syr", "Syriac" }, { "sys", "Sinyar" }, { "syw", "Kagate" }, { "syy", "Al-Sayyid Bedouin Sign Language" }, { "sza", "Semelai" }, { "szb", "Ngalum" }, { "szc", "Semaq Beri" }, { "szd", "Seru" }, { "sze", "Seze" }, { "szg", "Sengele" }, { "szl", "Silesian" }, { "szn", "Sula" }, { "szp", "Suabo" }, { "szv", "Isu (Fako Division)" }, { "szw", "Sawai" }, { "taa", "Lower Tanana" }, { "tab", "Tabassaran" }, { "tac", "Lowland Tarahumara" }, { "tad", "Tause" }, { "tae", "Tariana" }, { "taf", "Tapirapé" }, { "tag", "Tagoi" }, { "tah", "Tahitian" }, { "taj", "Eastern Tamang" }, { "tak", "Tala" }, { "tal", "Tal" }, { "tam", "Tamil" }, { "tan", "Tangale" }, { "tao", "Yami" }, { "tap", "Taabwa" }, { "taq", "Tamasheq" }, { "tar", "Central Tarahumara" }, { "tas", "Tay Boi" }, { "tat", "Tatar" }, { "tau", "Upper Tanana" }, { "tav", "Tatuyo" }, { "taw", "Tai" }, { "tax", "Tamki" }, { "tay", "Atayal" }, { "taz", "Tocho" }, { "tba", "Aikanã" }, { "tbb", "Tapeba" }, { "tbc", "Takia" }, { "tbd", "Kaki Ae" }, { "tbe", "Tanimbili" }, { "tbf", "Mandara" }, { "tbg", "North Tairora" }, { "tbh", "Thurawal" }, { "tbi", "Gaam" }, { "tbj", "Tiang" }, { "tbk", "Calamian Tagbanwa" }, { "tbl", "Tboli" }, { "tbm", "Tagbu" }, { "tbn", "Barro Negro Tunebo" }, { "tbo", "Tawala" }, { "tbp", "Taworta" }, { "tbr", "Tumtum" }, { "tbs", "Tanguat" }, { "tbt", "Tembo (Kitembo)" }, { "tbu", "Tubar" }, { "tbv", "Tobo" }, { "tbw", "Tagbanwa" }, { "tbx", "Kapin" }, { "tby", "Tabaru" }, { "tbz", "Ditammari" }, { "tca", "Ticuna" }, { "tcb", "Tanacross" }, { "tcc", "Datooga" }, { "tcd", "Tafi" }, { "tce", "Southern Tutchone" }, { "tcf", "Malinaltepec Me'phaa" }, { "tcg", "Tamagario" }, { "tch", "Turks And Caicos Creole English" }, { "tci", "Wára" }, { "tck", "Tchitchege" }, { "tcl", "Taman (Myanmar)" }, { "tcm", "Tanahmerah" }, { "tcn", "Tichurong" }, { "tco", "Taungyo" }, { "tcp", "Tawr Chin" }, { "tcq", "Kaiy" }, { "tcs", "Torres Strait Creole" }, { "tct", "T'en" }, { "tcu", "Southeastern Tarahumara" }, { "tcw", "Tecpatlán Totonac" }, { "tcx", "Toda" }, { "tcy", "Tulu" }, { "tcz", "Thado Chin" }, { "tda", "Tagdal" }, { "tdb", "Panchpargania" }, { "tdc", "Emberá-Tadó" }, { "tdd", "Tai Nüa" }, { "tde", "Tiranige Diga Dogon" }, { "tdf", "Talieng" }, { "tdg", "Western Tamang" }, { "tdh", "Thulung" }, { "tdi", "Tomadino" }, { "tdj", "Tajio" }, { "tdk", "Tambas" }, { "tdl", "Sur" }, { "tdn", "Tondano" }, { "tdo", "Teme" }, { "tdq", "Tita" }, { "tdr", "Todrah" }, { "tds", "Doutai" }, { "tdt", "Tetun Dili" }, { "tdu", "Tempasuk Dusun" }, { "tdv", "Toro" }, { "tdx", "Tandroy-Mahafaly Malagasy" }, { "tdy", "Tadyawan" }, { "tea", "Temiar" }, { "teb", "Tetete" }, { "tec", "Terik" }, { "ted", "Tepo Krumen" }, { "tee", "Huehuetla Tepehua" }, { "tef", "Teressa" }, { "teg", "Teke-Tege" }, { "teh", "Tehuelche" }, { "tei", "Torricelli" }, { "tek", "Ibali Teke" }, { "tel", "Telugu" }, { "tem", "Timne" }, { "ten", "Tama (Colombia)" }, { "teo", "Teso" }, { "tep", "Tepecano" }, { "teq", "Temein" }, { "ter", "Tereno" }, { "tes", "Tengger" }, { "tet", "Tetum" }, { "teu", "Soo" }, { "tev", "Teor" }, { "tew", "Tewa (USA)" }, { "tex", "Tennet" }, { "tey", "Tulishi" }, { "tfi", "Tofin Gbe" }, { "tfn", "Tanaina" }, { "tfo", "Tefaro" }, { "tfr", "Teribe" }, { "tft", "Ternate" }, { "tga", "Sagalla" }, { "tgb", "Tobilung" }, { "tgc", "Tigak" }, { "tgd", "Ciwogai" }, { "tge", "Eastern Gorkha Tamang" }, { "tgf", "Chalikha" }, { "tgh", "Tobagonian Creole English" }, { "tgi", "Lawunuia" }, { "tgj", "Tagin" }, { "tgk", "Tajik" }, { "tgl", "Tagalog" }, { "tgn", "Tandaganon" }, { "tgo", "Sudest" }, { "tgp", "Tangoa" }, { "tgq", "Tring" }, { "tgr", "Tareng" }, { "tgs", "Nume" }, { "tgt", "Central Tagbanwa" }, { "tgu", "Tanggu" }, { "tgv", "Tingui-Boto" }, { "tgw", "Tagwana Senoufo" }, { "tgx", "Tagish" }, { "tgy", "Togoyo" }, { "tgz", "Tagalaka" }, { "tha", "Thai" }, { "thc", "Tai Hang Tong" }, { "thd", "Thayore" }, { "the", "Chitwania Tharu" }, { "thf", "Thangmi" }, { "thh", "Northern Tarahumara" }, { "thi", "Tai Long" }, { "thk", "Tharaka" }, { "thl", "Dangaura Tharu" }, { "thm", "Aheu" }, { "thn", "Thachanadan" }, { "thp", "Thompson" }, { "thq", "Kochila Tharu" }, { "thr", "Rana Tharu" }, { "ths", "Thakali" }, { "tht", "Tahltan" }, { "thu", "Thuri" }, { "thv", "Tahaggart Tamahaq" }, { "thw", "Thudam" }, { "thx", "The" }, { "thy", "Tha" }, { "thz", "Tayart Tamajeq" }, { "tia", "Tidikelt Tamazight" }, { "tic", "Tira" }, { "tid", "Tidong" }, { "tif", "Tifal" }, { "tig", "Tigre" }, { "tih", "Timugon Murut" }, { "tii", "Tiene" }, { "tij", "Tilung" }, { "tik", "Tikar" }, { "til", "Tillamook" }, { "tim", "Timbe" }, { "tin", "Tindi" }, { "tio", "Teop" }, { "tip", "Trimuris" }, { "tiq", "Tiéfo" }, { "tir", "Tigrinya" }, { "tis", "Masadiit Itneg" }, { "tit", "Tinigua" }, { "tiu", "Adasen" }, { "tiv", "Tiv" }, { "tiw", "Tiwi" }, { "tix", "Southern Tiwa" }, { "tiy", "Tiruray" }, { "tiz", "Tai Hongjin" }, { "tja", "Tajuasohn" }, { "tjg", "Tunjung" }, { "tji", "Northern Tujia" }, { "tjl", "Tai Laing" }, { "tjm", "Timucua" }, { "tjn", "Tonjon" }, { "tjo", "Temacine Tamazight" }, { "tjs", "Southern Tujia" }, { "tju", "Tjurruru" }, { "tjw", "Djabwurrung" }, { "tka", "Truká" }, { "tkb", "Buksa" }, { "tkd", "Tukudede" }, { "tke", "Takwane" }, { "tkf", "Tukumanféd" }, { "tkg", "Tesaka Malagasy" }, { "tkl", "Tokelau" }, { "tkm", "Takelma" }, { "tkn", "Toku-No-Shima" }, { "tkp", "Tikopia" }, { "tkq", "Tee" }, { "tkr", "Tsakhur" }, { "tks", "Takestani" }, { "tkt", "Kathoriya Tharu" }, { "tku", "Upper Necaxa Totonac" }, { "tkw", "Teanu" }, { "tkx", "Tangko" }, { "tkz", "Takua" }, { "tla", "Southwestern Tepehuan" }, { "tlb", "Tobelo" }, { "tlc", "Yecuatla Totonac" }, { "tld", "Talaud" }, { "tlf", "Telefol" }, { "tlg", "Tofanma" }, { "tlh", "Klingon" }, { "tli", "Tlingit" }, { "tlj", "Talinga-Bwisi" }, { "tlk", "Taloki" }, { "tll", "Tetela" }, { "tlm", "Tolomako" }, { "tln", "Talondo'" }, { "tlo", "Talodi" }, { "tlp", "Filomena Mata-Coahuitlán Totonac" }, { "tlq", "Tai Loi" }, { "tlr", "Talise" }, { "tls", "Tambotalo" }, { "tlt", "Teluti" }, { "tlu", "Tulehu" }, { "tlv", "Taliabu" }, { "tlx", "Khehek" }, { "tly", "Talysh" }, { "tma", "Tama (Chad)" }, { "tmb", "Katbol" }, { "tmc", "Tumak" }, { "tmd", "Haruai" }, { "tme", "Tremembé" }, { "tmf", "Toba-Maskoy" }, { "tmg", "Ternateño" }, { "tmh", "Tamashek" }, { "tmi", "Tutuba" }, { "tmj", "Samarokena" }, { "tmk", "Northwestern Tamang" }, { "tml", "Tamnim Citak" }, { "tmm", "Tai Thanh" }, { "tmn", "Taman (Indonesia)" }, { "tmo", "Temoq" }, { "tmp", "Tai Mène" }, { "tmq", "Tumleo" }, { "tmr", "Jewish Babylonian Aramaic (ca. 200-1200 CE)" }, { "tms", "Tima" }, { "tmt", "Tasmate" }, { "tmu", "Iau" }, { "tmv", "Tembo (Motembo)" }, { "tmw", "Temuan" }, { "tmy", "Tami" }, { "tmz", "Tamanaku" }, { "tna", "Tacana" }, { "tnb", "Western Tunebo" }, { "tnc", "Tanimuca-Retuarã" }, { "tnd", "Angosturas Tunebo" }, { "tne", "Tinoc Kallahan" }, { "tng", "Tobanga" }, { "tnh", "Maiani" }, { "tni", "Tandia" }, { "tnk", "Kwamera" }, { "tnl", "Lenakel" }, { "tnm", "Tabla" }, { "tnn", "North Tanna" }, { "tno", "Toromono" }, { "tnp", "Whitesands" }, { "tnq", "Taino" }, { "tnr", "Ménik" }, { "tns", "Tenis" }, { "tnt", "Tontemboan" }, { "tnu", "Tay Khang" }, { "tnv", "Tangchangya" }, { "tnw", "Tonsawang" }, { "tnx", "Tanema" }, { "tny", "Tongwe" }, { "tnz", "Tonga (Thailand)" }, { "tob", "Toba" }, { "toc", "Coyutla Totonac" }, { "tod", "Toma" }, { "toe", "Tomedes" }, { "tof", "Gizrra" }, { "tog", "Tonga (Nyasa)" }, { "toh", "Gitonga" }, { "toi", "Tonga (Zambia)" }, { "toj", "Tojolabal" }, { "tol", "Tolowa" }, { "tom", "Tombulu" }, { "ton", "Tonga (Tonga Islands)" }, { "too", "Xicotepec De Juárez Totonac" }, { "top", "Papantla Totonac" }, { "toq", "Toposa" }, { "tor", "Togbo-Vara Banda" }, { "tos", "Highland Totonac" }, { "tou", "Tho" }, { "tov", "Upper Taromi" }, { "tow", "Jemez" }, { "tox", "Tobian" }, { "toy", "Topoiyo" }, { "toz", "To" }, { "tpa", "Taupota" }, { "tpc", "Azoyú Me'phaa" }, { "tpe", "Tippera" }, { "tpf", "Tarpia" }, { "tpg", "Kula" }, { "tpi", "Tok Pisin" }, { "tpj", "Tapieté" }, { "tpk", "Tupinikin" }, { "tpl", "Tlacoapa Me'phaa" }, { "tpm", "Tampulma" }, { "tpn", "Tupinambá" }, { "tpo", "Tai Pao" }, { "tpp", "Pisaflores Tepehua" }, { "tpq", "Tukpa" }, { "tpr", "Tuparí" }, { "tpt", "Tlachichilco Tepehua" }, { "tpu", "Tampuan" }, { "tpv", "Tanapag" }, { "tpw", "Tupí" }, { "tpx", "Acatepec Me'phaa" }, { "tpy", "Trumai" }, { "tpz", "Tinputz" }, { "tqb", "Tembé" }, { "tql", "Lehali" }, { "tqm", "Turumsa" }, { "tqn", "Tenino" }, { "tqo", "Toaripi" }, { "tqp", "Tomoip" }, { "tqq", "Tunni" }, { "tqr", "Torona" }, { "tqt", "Western Totonac" }, { "tqu", "Touo" }, { "tqw", "Tonkawa" }, { "tra", "Tirahi" }, { "trb", "Terebu" }, { "trc", "Copala Triqui" }, { "trd", "Turi" }, { "tre", "East Tarangan" }, { "trf", "Trinidadian Creole English" }, { "trg", "Lishán Didán" }, { "trh", "Turaka" }, { "tri", "Trió" }, { "trj", "Toram" }, { "trl", "Traveller Scottish" }, { "trm", "Tregami" }, { "trn", "Trinitario" }, { "tro", "Tarao Naga" }, { "trp", "Kok Borok" }, { "trq", "San Martín Itunyoso Triqui" }, { "trr", "Taushiro" }, { "trs", "Chicahuaxtla Triqui" }, { "trt", "Tunggare" }, { "tru", "Turoyo" }, { "trv", "Taroko" }, { "trw", "Torwali" }, { "trx", "Tringgus-Sembaan Bidayuh" }, { "try", "Turung" }, { "trz", "Torá" }, { "tsa", "Tsaangi" }, { "tsb", "Tsamai" }, { "tsc", "Tswa" }, { "tsd", "Tsakonian" }, { "tse", "Tunisian Sign Language" }, { "tsf", "Southwestern Tamang" }, { "tsg", "Tausug" }, { "tsh", "Tsuvan" }, { "tsi", "Tsimshian" }, { "tsj", "Tshangla" }, { "tsk", "Tseku" }, { "tsl", "Ts'ün-Lao" }, { "tsm", "Turkish Sign Language" }, { "tsn", "Tswana" }, { "tso", "Tsonga" }, { "tsp", "Northern Toussian" }, { "tsq", "Thai Sign Language" }, { "tsr", "Akei" }, { "tss", "Taiwan Sign Language" }, { "tst", "Tondi Songway Kiini" }, { "tsu", "Tsou" }, { "tsv", "Tsogo" }, { "tsw", "Tsishingini" }, { "tsx", "Mubami" }, { "tsy", "Tebul Sign Language" }, { "tsz", "Purepecha" }, { "tta", "Tutelo" }, { "ttb", "Gaa" }, { "ttc", "Tektiteko" }, { "ttd", "Tauade" }, { "tte", "Bwanabwana" }, { "ttf", "Tuotomb" }, { "ttg", "Tutong" }, { "tth", "Upper Ta'oih" }, { "tti", "Tobati" }, { "ttj", "Tooro" }, { "ttk", "Totoro" }, { "ttl", "Totela" }, { "ttm", "Northern Tutchone" }, { "ttn", "Towei" }, { "tto", "Lower Ta'oih" }, { "ttp", "Tombelala" }, { "ttq", "Tawallammat Tamajaq" }, { "ttr", "Tera" }, { "tts", "Northeastern Thai" }, { "ttt", "Muslim Tat" }, { "ttu", "Torau" }, { "ttv", "Titan" }, { "ttw", "Long Wat" }, { "tty", "Sikaritai" }, { "ttz", "Tsum" }, { "tua", "Wiarumus" }, { "tub", "Tübatulabal" }, { "tuc", "Mutu" }, { "tud", "Tuxá" }, { "tue", "Tuyuca" }, { "tuf", "Central Tunebo" }, { "tug", "Tunia" }, { "tuh", "Taulil" }, { "tui", "Tupuri" }, { "tuj", "Tugutil" }, { "tuk", "Turkmen" }, { "tul", "Tula" }, { "tum", "Tumbuka" }, { "tun", "Tunica" }, { "tuo", "Tucano" }, { "tuq", "Tedaga" }, { "tur", "Turkish" }, { "tus", "Tuscarora" }, { "tuu", "Tututni" }, { "tuv", "Turkana" }, { "tux", "Tuxináwa" }, { "tuy", "Tugen" }, { "tuz", "Turka" }, { "tva", "Vaghua" }, { "tvd", "Tsuvadi" }, { "tve", "Te'un" }, { "tvk", "Southeast Ambrym" }, { "tvl", "Tuvalu" }, { "tvm", "Tela-Masbuar" }, { "tvn", "Tavoyan" }, { "tvo", "Tidore" }, { "tvs", "Taveta" }, { "tvt", "Tutsa Naga" }, { "tvu", "Tunen" }, { "tvw", "Sedoa" }, { "tvy", "Timor Pidgin" }, { "twa", "Twana" }, { "twb", "Western Tawbuid" }, { "twc", "Teshenawa" }, { "twd", "Twents" }, { "twe", "Tewa (Indonesia)" }, { "twf", "Northern Tiwa" }, { "twg", "Tereweng" }, { "twh", "Tai Dón" }, { "twi", "Twi" }, { "twl", "Tawara" }, { "twm", "Tawang Monpa" }, { "twn", "Twendi" }, { "two", "Tswapong" }, { "twp", "Ere" }, { "twq", "Tasawaq" }, { "twr", "Southwestern Tarahumara" }, { "twt", "Turiwára" }, { "twu", "Termanu" }, { "tww", "Tuwari" }, { "twx", "Tewe" }, { "twy", "Tawoyan" }, { "txa", "Tombonuo" }, { "txb", "Tokharian B" }, { "txc", "Tsetsaut" }, { "txe", "Totoli" }, { "txg", "Tangut" }, { "txh", "Thracian" }, { "txi", "Ikpeng" }, { "txm", "Tomini" }, { "txn", "West Tarangan" }, { "txo", "Toto" }, { "txq", "Tii" }, { "txr", "Tartessian" }, { "txs", "Tonsea" }, { "txt", "Citak" }, { "txu", "Kayapó" }, { "txx", "Tatana" }, { "txy", "Tanosy Malagasy" }, { "tya", "Tauya" }, { "tye", "Kyanga" }, { "tyh", "O'du" }, { "tyi", "Teke-Tsaayi" }, { "tyj", "Tai Do" }, { "tyl", "Thu Lao" }, { "tyn", "Kombai" }, { "typ", "Thaypan" }, { "tyr", "Tai Daeng" }, { "tys", "Tày Sa Pa" }, { "tyt", "Tày Tac" }, { "tyu", "Kua" }, { "tyv", "Tuvinian" }, { "tyx", "Teke-Tyee" }, { "tyz", "Tày" }, { "tza", "Tanzanian Sign Language" }, { "tzh", "Tzeltal" }, { "tzj", "Tz'utujil" }, { "tzl", "Talossan" }, { "tzm", "Central Atlas Tamazight" }, { "tzn", "Tugun" }, { "tzo", "Tzotzil" }, { "tzx", "Tabriak" }, { "uam", "Uamué" }, { "uan", "Kuan" }, { "uar", "Tairuma" }, { "uba", "Ubang" }, { "ubi", "Ubi" }, { "ubl", "Buhi'non Bikol" }, { "ubr", "Ubir" }, { "ubu", "Umbu-Ungu" }, { "uby", "Ubykh" }, { "uda", "Uda" }, { "ude", "Udihe" }, { "udg", "Muduga" }, { "udi", "Udi" }, { "udj", "Ujir" }, { "udl", "Wuzlam" }, { "udm", "Udmurt" }, { "udu", "Uduk" }, { "ues", "Kioko" }, { "ufi", "Ufim" }, { "uga", "Ugaritic" }, { "ugb", "Kuku-Ugbanh" }, { "uge", "Ughele" }, { "ugn", "Ugandan Sign Language" }, { "ugo", "Ugong" }, { "ugy", "Uruguayan Sign Language" }, { "uha", "Uhami" }, { "uhn", "Damal" }, { "uig", "Uighur" }, { "uis", "Uisai" }, { "uiv", "Iyive" }, { "uji", "Tanjijili" }, { "uka", "Kaburi" }, { "ukg", "Ukuriguma" }, { "ukh", "Ukhwejo" }, { "ukl", "Ukrainian Sign Language" }, { "ukp", "Ukpe-Bayobiri" }, { "ukq", "Ukwa" }, { "ukr", "Ukrainian" }, { "uks", "Urubú-Kaapor Sign Language" }, { "uku", "Ukue" }, { "ukw", "Ukwuani-Aboh-Ndoni" }, { "uky", "Kuuk-Yak" }, { "ula", "Fungwa" }, { "ulb", "Ulukwumi" }, { "ulc", "Ulch" }, { "ule", "Lule" }, { "ulf", "Usku" }, { "uli", "Ulithian" }, { "ulk", "Meriam" }, { "ull", "Ullatan" }, { "ulm", "Ulumanda'" }, { "uln", "Unserdeutsch" }, { "ulu", "Uma' Lung" }, { "ulw", "Ulwa" }, { "uma", "Umatilla" }, { "umb", "Umbundu" }, { "umc", "Marrucinian" }, { "umd", "Umbindhamu" }, { "umg", "Umbuygamu" }, { "umi", "Ukit" }, { "umm", "Umon" }, { "umn", "Makyan Naga" }, { "umo", "Umotína" }, { "ump", "Umpila" }, { "umr", "Umbugarla" }, { "ums", "Pendau" }, { "umu", "Munsee" }, { "una", "North Watut" }, { "und", "Undetermined" }, { "une", "Uneme" }, { "ung", "Ngarinyin" }, { "unk", "Enawené-Nawé" }, { "unm", "Unami" }, { "unn", "Kurnai" }, { "unr", "Mundari" }, { "unu", "Unubahe" }, { "unx", "Munda" }, { "unz", "Unde Kaili" }, { "uok", "Uokha" }, { "upi", "Umeda" }, { "upv", "Uripiv-Wala-Rano-Atchin" }, { "ura", "Urarina" }, { "urb", "Urubú-Kaapor" }, { "urc", "Urningangg" }, { "urd", "Urdu" }, { "ure", "Uru" }, { "urf", "Uradhi" }, { "urg", "Urigina" }, { "urh", "Urhobo" }, { "uri", "Urim" }, { "urk", "Urak Lawoi'" }, { "url", "Urali" }, { "urm", "Urapmin" }, { "urn", "Uruangnirin" }, { "uro", "Ura (Papua New Guinea)" }, { "urp", "Uru-Pa-In" }, { "urr", "Lehalurup" }, { "urt", "Urat" }, { "uru", "Urumi" }, { "urv", "Uruava" }, { "urw", "Sop" }, { "urx", "Urimo" }, { "ury", "Orya" }, { "urz", "Uru-Eu-Wau-Wau" }, { "usa", "Usarufa" }, { "ush", "Ushojo" }, { "usi", "Usui" }, { "usk", "Usaghade" }, { "usp", "Uspanteco" }, { "usu", "Uya" }, { "uta", "Otank" }, { "ute", "Ute-Southern Paiute" }, { "utp", "Amba (Solomon Islands)" }, { "utr", "Etulo" }, { "utu", "Utu" }, { "uum", "Urum" }, { "uun", "Kulon-Pazeh" }, { "uur", "Ura (Vanuatu)" }, { "uuu", "U" }, { "uve", "West Uvean" }, { "uvh", "Uri" }, { "uvl", "Lote" }, { "uwa", "Kuku-Uwanh" }, { "uya", "Doko-Uyanga" }, { "uzb", "Uzbek" }, { "uzn", "Northern Uzbek" }, { "uzs", "Southern Uzbek" }, { "vaa", "Vaagri Booli" }, { "vae", "Vale" }, { "vaf", "Vafsi" }, { "vag", "Vagla" }, { "vah", "Varhadi-Nagpuri" }, { "vai", "Vai" }, { "vaj", "Vasekela Bushman" }, { "val", "Vehes" }, { "vam", "Vanimo" }, { "van", "Valman" }, { "vao", "Vao" }, { "vap", "Vaiphei" }, { "var", "Huarijio" }, { "vas", "Vasavi" }, { "vau", "Vanuma" }, { "vav", "Varli" }, { "vay", "Wayu" }, { "vbb", "Southeast Babar" }, { "vbk", "Southwestern Bontok" }, { "vec", "Venetian" }, { "ved", "Veddah" }, { "vel", "Veluws" }, { "vem", "Vemgo-Mabas" }, { "ven", "Venda" }, { "veo", "Ventureño" }, { "vep", "Veps" }, { "ver", "Mom Jango" }, { "vgr", "Vaghri" }, { "vgt", "Vlaamse Gebarentaal" }, { "vic", "Virgin Islands Creole English" }, { "vid", "Vidunda" }, { "vie", "Vietnamese" }, { "vif", "Vili" }, { "vig", "Viemo" }, { "vil", "Vilela" }, { "vin", "Vinza" }, { "vis", "Vishavan" }, { "vit", "Viti" }, { "viv", "Iduna" }, { "vka", "Kariyarra" }, { "vki", "Ija-Zuba" }, { "vkj", "Kujarge" }, { "vkk", "Kaur" }, { "vkl", "Kulisusu" }, { "vkm", "Kamakan" }, { "vko", "Kodeoha" }, { "vkp", "Korlai Creole Portuguese" }, { "vkt", "Tenggarong Kutai Malay" }, { "vku", "Kurrama" }, { "vlp", "Valpei" }, { "vls", "Vlaams" }, { "vma", "Martuyhunira" }, { "vmb", "Barbaram" }, { "vmc", "Juxtlahuaca Mixtec" }, { "vmd", "Mudu Koraga" }, { "vme", "East Masela" }, { "vmf", "Mainfränkisch" }, { "vmg", "Lungalunga" }, { "vmh", "Maraghei" }, { "vmi", "Miwa" }, { "vmj", "Ixtayutla Mixtec" }, { "vmk", "Makhuwa-Shirima" }, { "vml", "Malgana" }, { "vmm", "Mitlatongo Mixtec" }, { "vmp", "Soyaltepec Mazatec" }, { "vmq", "Soyaltepec Mixtec" }, { "vmr", "Marenje" }, { "vms", "Moksela" }, { "vmu", "Muluridyi" }, { "vmv", "Valley Maidu" }, { "vmw", "Makhuwa" }, { "vmx", "Tamazola Mixtec" }, { "vmy", "Ayautla Mazatec" }, { "vmz", "Mazatlán Mazatec" }, { "vnk", "Vano" }, { "vnm", "Vinmavis" }, { "vnp", "Vunapu" }, { "vol", "Volapük" }, { "vor", "Voro" }, { "vot", "Votic" }, { "vra", "Vera'a" }, { "vro", "Võro" }, { "vrs", "Varisi" }, { "vrt", "Burmbar" }, { "vsi", "Moldova Sign Language" }, { "vsl", "Venezuelan Sign Language" }, { "vsv", "Valencian Sign Language" }, { "vto", "Vitou" }, { "vum", "Vumbu" }, { "vun", "Vunjo" }, { "vut", "Vute" }, { "vwa", "Awa (China)" }, { "waa", "Walla Walla" }, { "wab", "Wab" }, { "wac", "Wasco-Wishram" }, { "wad", "Wandamen" }, { "wae", "Walser" }, { "waf", "Wakoná" }, { "wag", "Wa'ema" }, { "wah", "Watubela" }, { "wai", "Wares" }, { "waj", "Waffa" }, { "wal", "Wolaytta" }, { "wam", "Wampanoag" }, { "wan", "Wan" }, { "wao", "Wappo" }, { "wap", "Wapishana" }, { "waq", "Wageman" }, { "war", "Waray (Philippines)" }, { "was", "Washo" }, { "wat", "Kaninuwa" }, { "wau", "Waurá" }, { "wav", "Waka" }, { "waw", "Waiwai" }, { "wax", "Watam" }, { "way", "Wayana" }, { "waz", "Wampur" }, { "wba", "Warao" }, { "wbb", "Wabo" }, { "wbe", "Waritai" }, { "wbf", "Wara" }, { "wbh", "Wanda" }, { "wbi", "Vwanji" }, { "wbj", "Alagwa" }, { "wbk", "Waigali" }, { "wbl", "Wakhi" }, { "wbm", "Wa" }, { "wbp", "Warlpiri" }, { "wbq", "Waddar" }, { "wbr", "Wagdi" }, { "wbt", "Wanman" }, { "wbv", "Wajarri" }, { "wbw", "Woi" }, { "wca", "Yanomámi" }, { "wci", "Waci Gbe" }, { "wdd", "Wandji" }, { "wdg", "Wadaginam" }, { "wdj", "Wadjiginy" }, { "wdk", "Wadikali" }, { "wdu", "Wadjigu" }, { "wdy", "Wadjabangayi" }, { "wea", "Wewaw" }, { "wec", "Wè Western" }, { "wed", "Wedau" }, { "weg", "Wergaia" }, { "weh", "Weh" }, { "wei", "Kiunum" }, { "wem", "Weme Gbe" }, { "weo", "Wemale" }, { "wep", "Westphalien" }, { "wer", "Weri" }, { "wes", "Cameroon Pidgin" }, { "wet", "Perai" }, { "weu", "Rawngtu Chin" }, { "wew", "Wejewa" }, { "wfg", "Yafi" }, { "wga", "Wagaya" }, { "wgb", "Wagawaga" }, { "wgg", "Wangganguru" }, { "wgi", "Wahgi" }, { "wgo", "Waigeo" }, { "wgu", "Wirangu" }, { "wgy", "Warrgamay" }, { "wha", "Manusela" }, { "whg", "North Wahgi" }, { "whk", "Wahau Kenyah" }, { "whu", "Wahau Kayan" }, { "wib", "Southern Toussian" }, { "wic", "Wichita" }, { "wie", "Wik-Epa" }, { "wif", "Wik-Keyangan" }, { "wig", "Wik-Ngathana" }, { "wih", "Wik-Me'anha" }, { "wii", "Minidien" }, { "wij", "Wik-Iiyanh" }, { "wik", "Wikalkan" }, { "wil", "Wilawila" }, { "wim", "Wik-Mungkan" }, { "win", "Ho-Chunk" }, { "wir", "Wiraféd" }, { "wiu", "Wiru" }, { "wiv", "Vitu" }, { "wiy", "Wiyot" }, { "wja", "Waja" }, { "wji", "Warji" }, { "wka", "Kw'adza" }, { "wkb", "Kumbaran" }, { "wkd", "Wakde" }, { "wkl", "Kalanadi" }, { "wku", "Kunduvadi" }, { "wkw", "Wakawaka" }, { "wky", "Wangkayutyuru" }, { "wla", "Walio" }, { "wlc", "Mwali Comorian" }, { "wle", "Wolane" }, { "wlg", "Kunbarlang" }, { "wli", "Waioli" }, { "wlk", "Wailaki" }, { "wll", "Wali (Sudan)" }, { "wlm", "Middle Welsh" }, { "wln", "Walloon" }, { "wlo", "Wolio" }, { "wlr", "Wailapa" }, { "wls", "Wallisian" }, { "wlu", "Wuliwuli" }, { "wlv", "Wichí Lhamtés Vejoz" }, { "wlw", "Walak" }, { "wlx", "Wali (Ghana)" }, { "wly", "Waling" }, { "wma", "Mawa (Nigeria)" }, { "wmb", "Wambaya" }, { "wmc", "Wamas" }, { "wmd", "Mamaindé" }, { "wme", "Wambule" }, { "wmh", "Waima'a" }, { "wmi", "Wamin" }, { "wmm", "Maiwa (Indonesia)" }, { "wmn", "Waamwang" }, { "wmo", "Wom (Papua New Guinea)" }, { "wms", "Wambon" }, { "wmt", "Walmajarri" }, { "wmw", "Mwani" }, { "wmx", "Womo" }, { "wnb", "Wanambre" }, { "wnc", "Wantoat" }, { "wnd", "Wandarang" }, { "wne", "Waneci" }, { "wng", "Wanggom" }, { "wni", "Ndzwani Comorian" }, { "wnk", "Wanukaka" }, { "wnm", "Wanggamala" }, { "wnn", "Wunumara" }, { "wno", "Wano" }, { "wnp", "Wanap" }, { "wnu", "Usan" }, { "wnw", "Wintu" }, { "wny", "Wanyi" }, { "woa", "Tyaraity" }, { "wob", "Wè Northern" }, { "woc", "Wogeo" }, { "wod", "Wolani" }, { "woe", "Woleaian" }, { "wof", "Gambian Wolof" }, { "wog", "Wogamusin" }, { "woi", "Kamang" }, { "wok", "Longto" }, { "wol", "Wolof" }, { "wom", "Wom (Nigeria)" }, { "won", "Wongo" }, { "woo", "Manombai" }, { "wor", "Woria" }, { "wos", "Hanga Hundi" }, { "wow", "Wawonii" }, { "woy", "Weyto" }, { "wpc", "Maco" }, { "wra", "Warapu" }, { "wrb", "Warluwara" }, { "wrd", "Warduji" }, { "wrg", "Warungu" }, { "wrh", "Wiradhuri" }, { "wri", "Wariyangga" }, { "wrk", "Garrwa" }, { "wrl", "Warlmanpa" }, { "wrm", "Warumungu" }, { "wrn", "Warnang" }, { "wro", "Worrorra" }, { "wrp", "Waropen" }, { "wrr", "Wardaman" }, { "wrs", "Waris" }, { "wru", "Waru" }, { "wrv", "Waruna" }, { "wrw", "Gugu Warra" }, { "wrx", "Wae Rana" }, { "wry", "Merwari" }, { "wrz", "Waray (Australia)" }, { "wsa", "Warembori" }, { "wsi", "Wusi" }, { "wsk", "Waskia" }, { "wsr", "Owenia" }, { "wss", "Wasa" }, { "wsu", "Wasu" }, { "wsv", "Wotapuri-Katarqalai" }, { "wtf", "Watiwa" }, { "wth", "Wathawurrung" }, { "wti", "Berta" }, { "wtk", "Watakataui" }, { "wtm", "Mewati" }, { "wtw", "Wotu" }, { "wua", "Wikngenchera" }, { "wub", "Wunambal" }, { "wud", "Wudu" }, { "wuh", "Wutunhua" }, { "wul", "Silimo" }, { "wum", "Wumbvu" }, { "wun", "Bungu" }, { "wur", "Wurrugu" }, { "wut", "Wutung" }, { "wuu", "Wu Chinese" }, { "wuv", "Wuvulu-Aua" }, { "wux", "Wulna" }, { "wuy", "Wauyai" }, { "wwa", "Waama" }, { "wwb", "Wakabunga" }, { "wwo", "Wetamut" }, { "wwr", "Warrwa" }, { "www", "Wawa" }, { "wxa", "Waxianghua" }, { "wxw", "Wardandi" }, { "wya", "Wyandot" }, { "wyb", "Wangaaybuwan-Ngiyambaa" }, { "wyi", "Woiwurrung" }, { "wym", "Wymysorys" }, { "wyr", "Wayoró" }, { "wyy", "Western Fijian" }, { "xaa", "Andalusian Arabic" }, { "xab", "Sambe" }, { "xac", "Kachari" }, { "xad", "Adai" }, { "xae", "Aequian" }, { "xag", "Aghwan" }, { "xai", "Kaimbé" }, { "xal", "Kalmyk" }, { "xam", "Xam" }, { "xan", "Xamtanga" }, { "xao", "Khao" }, { "xap", "Apalachee" }, { "xaq", "Aquitanian" }, { "xar", "Karami" }, { "xas", "Kamas" }, { "xat", "Katawixi" }, { "xau", "Kauwera" }, { "xav", "Xavánte" }, { "xaw", "Kawaiisu" }, { "xay", "Kayan Mahakam" }, { "xba", "Kamba (Brazil)" }, { "xbb", "Lower Burdekin" }, { "xbc", "Bactrian" }, { "xbd", "Bindal" }, { "xbe", "Bigambal" }, { "xbg", "Bunganditj" }, { "xbi", "Kombio" }, { "xbj", "Birrpayi" }, { "xbm", "Middle Breton" }, { "xbn", "Kenaboi" }, { "xbo", "Bolgarian" }, { "xbp", "Bibbulman" }, { "xbr", "Kambera" }, { "xbw", "Kambiwá" }, { "xbx", "Kabixí" }, { "xby", "Batyala" }, { "xcb", "Cumbric" }, { "xcc", "Camunic" }, { "xce", "Celtiberian" }, { "xcg", "Cisalpine Gaulish" }, { "xch", "Chemakum" }, { "xcl", "Classical Armenian" }, { "xcm", "Comecrudo" }, { "xcn", "Cotoname" }, { "xco", "Chorasmian" }, { "xcr", "Carian" }, { "xct", "Classical Tibetan" }, { "xcu", "Curonian" }, { "xcv", "Chuvantsy" }, { "xcw", "Coahuilteco" }, { "xcy", "Cayuse" }, { "xda", "Darkinyung" }, { "xdc", "Dacian" }, { "xdk", "Dharuk" }, { "xdm", "Edomite" }, { "xdy", "Malayic Dayak" }, { "xeb", "Eblan" }, { "xed", "Hdi" }, { "xeg", "Xegwi" }, { "xel", "Kelo" }, { "xem", "Kembayan" }, { "xep", "Epi-Olmec" }, { "xer", "Xerénte" }, { "xes", "Kesawai" }, { "xet", "Xetá" }, { "xeu", "Keoru-Ahia" }, { "xfa", "Faliscan" }, { "xga", "Galatian" }, { "xgb", "Gbin" }, { "xgd", "Gudang" }, { "xgf", "Gabrielino-Fernandeño" }, { "xgg", "Goreng" }, { "xgi", "Garingbal" }, { "xgl", "Galindan" }, { "xgm", "Guwinmal" }, { "xgr", "Garza" }, { "xgu", "Unggumi" }, { "xgw", "Guwa" }, { "xha", "Harami" }, { "xhc", "Hunnic" }, { "xhd", "Hadrami" }, { "xhe", "Khetrani" }, { "xho", "Xhosa" }, { "xhr", "Hernican" }, { "xht", "Hattic" }, { "xhu", "Hurrian" }, { "xhv", "Khua" }, { "xib", "Iberian" }, { "xii", "Xiri" }, { "xil", "Illyrian" }, { "xin", "Xinca" }, { "xip", "Xipináwa" }, { "xir", "Xiriâna" }, { "xiv", "Indus Valley Language" }, { "xiy", "Xipaya" }, { "xjb", "Minjungbal" }, { "xjt", "Jaitmatang" }, { "xka", "Kalkoti" }, { "xkb", "Northern Nago" }, { "xkc", "Kho'ini" }, { "xkd", "Mendalam Kayan" }, { "xke", "Kereho" }, { "xkf", "Khengkha" }, { "xkg", "Kagoro" }, { "xkh", "Karahawyana" }, { "xki", "Kenyan Sign Language" }, { "xkj", "Kajali" }, { "xkk", "Kaco'" }, { "xkl", "Mainstream Kenyah" }, { "xkn", "Kayan River Kayan" }, { "xko", "Kiorr" }, { "xkp", "Kabatei" }, { "xkq", "Koroni" }, { "xkr", "Xakriabá" }, { "xks", "Kumbewaha" }, { "xkt", "Kantosi" }, { "xku", "Kaamba" }, { "xkv", "Kgalagadi" }, { "xkw", "Kembra" }, { "xkx", "Karore" }, { "xky", "Uma' Lasan" }, { "xkz", "Kurtokha" }, { "xla", "Kamula" }, { "xlb", "Loup B" }, { "xlc", "Lycian" }, { "xld", "Lydian" }, { "xle", "Lemnian" }, { "xlg", "Ligurian (Ancient)" }, { "xli", "Liburnian" }, { "xln", "Alanic" }, { "xlo", "Loup A" }, { "xlp", "Lepontic" }, { "xls", "Lusitanian" }, { "xlu", "Cuneiform Luwian" }, { "xly", "Elymian" }, { "xma", "Mushungulu" }, { "xmb", "Mbonga" }, { "xmc", "Makhuwa-Marrevone" }, { "xmd", "Mbudum" }, { "xme", "Median" }, { "xmf", "Mingrelian" }, { "xmg", "Mengaka" }, { "xmh", "Kuku-Muminh" }, { "xmj", "Majera" }, { "xmk", "Ancient Macedonian" }, { "xml", "Malaysian Sign Language" }, { "xmm", "Manado Malay" }, { "xmn", "Manichaean Middle Persian" }, { "xmo", "Morerebi" }, { "xmp", "Kuku-Mu'inh" }, { "xmq", "Kuku-Mangk" }, { "xmr", "Meroitic" }, { "xms", "Moroccan Sign Language" }, { "xmt", "Matbat" }, { "xmu", "Kamu" }, { "xmv", "Antankarana Malagasy" }, { "xmw", "Tsimihety Malagasy" }, { "xmx", "Maden" }, { "xmy", "Mayaguduna" }, { "xmz", "Mori Bawah" }, { "xna", "Ancient North Arabian" }, { "xnb", "Kanakanabu" }, { "xng", "Middle Mongolian" }, { "xnh", "Kuanhua" }, { "xni", "Ngarigu" }, { "xnk", "Nganakarti" }, { "xnn", "Northern Kankanay" }, { "xno", "Anglo-Norman" }, { "xnr", "Kangri" }, { "xns", "Kanashi" }, { "xnt", "Narragansett" }, { "xnu", "Nukunul" }, { "xny", "Nyiyaparli" }, { "xnz", "Kenzi" }, { "xoc", "O'chi'chi'" }, { "xod", "Kokoda" }, { "xog", "Soga" }, { "xoi", "Kominimung" }, { "xok", "Xokleng" }, { "xom", "Komo (Sudan)" }, { "xon", "Konkomba" }, { "xoo", "Xukurú" }, { "xop", "Kopar" }, { "xor", "Korubo" }, { "xow", "Kowaki" }, { "xpa", "Pirriya" }, { "xpc", "Pecheneg" }, { "xpe", "Liberia Kpelle" }, { "xpg", "Phrygian" }, { "xpi", "Pictish" }, { "xpj", "Mpalitjanh" }, { "xpk", "Kulina Pano" }, { "xpm", "Pumpokol" }, { "xpn", "Kapinawá" }, { "xpo", "Pochutec" }, { "xpp", "Puyo-Paekche" }, { "xpq", "Mohegan-Pequot" }, { "xpr", "Parthian" }, { "xps", "Pisidian" }, { "xpt", "Punthamara" }, { "xpu", "Punic" }, { "xpy", "Puyo" }, { "xqa", "Karakhanid" }, { "xqt", "Qatabanian" }, { "xra", "Krahô" }, { "xrb", "Eastern Karaboro" }, { "xrd", "Gundungurra" }, { "xre", "Kreye" }, { "xrg", "Minang" }, { "xri", "Krikati-Timbira" }, { "xrm", "Armazic" }, { "xrn", "Arin" }, { "xrq", "Karranga" }, { "xrr", "Raetic" }, { "xrt", "Aranama-Tamique" }, { "xru", "Marriammu" }, { "xrw", "Karawa" }, { "xsa", "Sabaean" }, { "xsb", "Sambal" }, { "xsc", "Scythian" }, { "xsd", "Sidetic" }, { "xse", "Sempan" }, { "xsh", "Shamang" }, { "xsi", "Sio" }, { "xsj", "Subi" }, { "xsl", "South Slavey" }, { "xsm", "Kasem" }, { "xsn", "Sanga (Nigeria)" }, { "xso", "Solano" }, { "xsp", "Silopi" }, { "xsq", "Makhuwa-Saka" }, { "xsr", "Sherpa" }, { "xss", "Assan" }, { "xsu", "Sanumá" }, { "xsv", "Sudovian" }, { "xsy", "Saisiyat" }, { "xta", "Alcozauca Mixtec" }, { "xtb", "Chazumba Mixtec" }, { "xtc", "Katcha-Kadugli-Miri" }, { "xtd", "Diuxi-Tilantongo Mixtec" }, { "xte", "Ketengban" }, { "xtg", "Transalpine Gaulish" }, { "xth", "Yitha Yitha" }, { "xti", "Sinicahua Mixtec" }, { "xtj", "San Juan Teita Mixtec" }, { "xtl", "Tijaltepec Mixtec" }, { "xtm", "Magdalena Peñasco Mixtec" }, { "xtn", "Northern Tlaxiaco Mixtec" }, { "xto", "Tokharian A" }, { "xtp", "San Miguel Piedras Mixtec" }, { "xtq", "Tumshuqese" }, { "xtr", "Early Tripuri" }, { "xts", "Sindihui Mixtec" }, { "xtt", "Tacahua Mixtec" }, { "xtu", "Cuyamecalco Mixtec" }, { "xtv", "Thawa" }, { "xtw", "Tawandê" }, { "xty", "Yoloxochitl Mixtec" }, { "xtz", "Tasmanian" }, { "xua", "Alu Kurumba" }, { "xub", "Betta Kurumba" }, { "xud", "Umiida" }, { "xug", "Kunigami" }, { "xuj", "Jennu Kurumba" }, { "xul", "Ngunawal" }, { "xum", "Umbrian" }, { "xun", "Unggaranggu" }, { "xuo", "Kuo" }, { "xup", "Upper Umpqua" }, { "xur", "Urartian" }, { "xut", "Kuthant" }, { "xuu", "Kxoe" }, { "xve", "Venetic" }, { "xvi", "Kamviri" }, { "xvn", "Vandalic" }, { "xvo", "Volscian" }, { "xvs", "Vestinian" }, { "xwa", "Kwaza" }, { "xwc", "Woccon" }, { "xwd", "Wadi Wadi" }, { "xwe", "Xwela Gbe" }, { "xwg", "Kwegu" }, { "xwj", "Wajuk" }, { "xwk", "Wangkumara" }, { "xwl", "Western Xwla Gbe" }, { "xwo", "Written Oirat" }, { "xwr", "Kwerba Mamberamo" }, { "xwt", "Wotjobaluk" }, { "xww", "Wemba Wemba" }, { "xxb", "Boro (Ghana)" }, { "xxk", "Ke'o" }, { "xxm", "Minkin" }, { "xxr", "Koropó" }, { "xxt", "Tambora" }, { "xya", "Yaygir" }, { "xyb", "Yandjibara" }, { "xyj", "Mayi-Yapi" }, { "xyk", "Mayi-Kulan" }, { "xyl", "Yalakalore" }, { "xyt", "Mayi-Thakurti" }, { "xyy", "Yorta Yorta" }, { "xzh", "Zhang-Zhung" }, { "xzm", "Zemgalian" }, { "xzp", "Ancient Zapotec" }, { "yaa", "Yaminahua" }, { "yab", "Yuhup" }, { "yac", "Pass Valley Yali" }, { "yad", "Yagua" }, { "yae", "Pumé" }, { "yaf", "Yaka (Democratic Republic of Congo)" }, { "yag", "Yámana" }, { "yah", "Yazgulyam" }, { "yai", "Yagnobi" }, { "yaj", "Banda-Yangere" }, { "yak", "Yakama" }, { "yal", "Yalunka" }, { "yam", "Yamba" }, { "yan", "Mayangna" }, { "yao", "Yao" }, { "yap", "Yapese" }, { "yaq", "Yaqui" }, { "yar", "Yabarana" }, { "yas", "Nugunu (Cameroon)" }, { "yat", "Yambeta" }, { "yau", "Yuwana" }, { "yav", "Yangben" }, { "yaw", "Yawalapití" }, { "yax", "Yauma" }, { "yay", "Agwagwune" }, { "yaz", "Lokaa" }, { "yba", "Yala" }, { "ybb", "Yemba" }, { "ybe", "West Yugur" }, { "ybh", "Yakha" }, { "ybi", "Yamphu" }, { "ybj", "Hasha" }, { "ybk", "Bokha" }, { "ybl", "Yukuben" }, { "ybm", "Yaben" }, { "ybn", "Yabaâna" }, { "ybo", "Yabong" }, { "ybx", "Yawiyo" }, { "yby", "Yaweyuha" }, { "ych", "Chesu" }, { "ycl", "Lolopo" }, { "ycn", "Yucuna" }, { "ycp", "Chepya" }, { "yda", "Yanda" }, { "ydd", "Eastern Yiddish" }, { "yde", "Yangum Dey" }, { "ydg", "Yidgha" }, { "ydk", "Yoidik" }, { "yds", "Yiddish Sign Language" }, { "yea", "Ravula" }, { "yec", "Yeniche" }, { "yee", "Yimas" }, { "yei", "Yeni" }, { "yej", "Yevanic" }, { "yel", "Yela" }, { "yer", "Tarok" }, { "yes", "Nyankpa" }, { "yet", "Yetfa" }, { "yeu", "Yerukula" }, { "yev", "Yapunda" }, { "yey", "Yeyi" }, { "yga", "Malyangapa" }, { "ygi", "Yiningayi" }, { "ygl", "Yangum Gel" }, { "ygm", "Yagomi" }, { "ygp", "Gepo" }, { "ygr", "Yagaria" }, { "ygu", "Yugul" }, { "ygw", "Yagwoia" }, { "yha", "Baha Buyang" }, { "yhd", "Judeo-Iraqi Arabic" }, { "yhl", "Hlepho Phowa" }, { "yia", "Yinggarda" }, { "yid", "Yiddish" }, { "yif", "Ache" }, { "yig", "Wusa Nasu" }, { "yih", "Western Yiddish" }, { "yii", "Yidiny" }, { "yij", "Yindjibarndi" }, { "yik", "Dongshanba Lalo" }, { "yil", "Yindjilandji" }, { "yim", "Yimchungru Naga" }, { "yin", "Yinchia" }, { "yip", "Pholo" }, { "yiq", "Miqie" }, { "yir", "North Awyu" }, { "yis", "Yis" }, { "yit", "Eastern Lalu" }, { "yiu", "Awu" }, { "yiv", "Northern Nisu" }, { "yix", "Axi Yi" }, { "yiz", "Azhe" }, { "yka", "Yakan" }, { "ykg", "Northern Yukaghir" }, { "yki", "Yoke" }, { "ykk", "Yakaikeke" }, { "ykl", "Khlula" }, { "ykm", "Kap" }, { "ykn", "Kua-nsi" }, { "yko", "Yasa" }, { "ykr", "Yekora" }, { "ykt", "Kathu" }, { "yku", "Kuamasi" }, { "yky", "Yakoma" }, { "yla", "Yaul" }, { "ylb", "Yaleba" }, { "yle", "Yele" }, { "ylg", "Yelogu" }, { "yli", "Angguruk Yali" }, { "yll", "Yil" }, { "ylm", "Limi" }, { "yln", "Langnian Buyang" }, { "ylo", "Naluo Yi" }, { "ylr", "Yalarnnga" }, { "ylu", "Aribwaung" }, { "yly", "Nyâlayu" }, { "ymb", "Yambes" }, { "ymc", "Southern Muji" }, { "ymd", "Muda" }, { "yme", "Yameo" }, { "ymg", "Yamongeri" }, { "ymh", "Mili" }, { "ymi", "Moji" }, { "ymk", "Makwe" }, { "yml", "Iamalele" }, { "ymm", "Maay" }, { "ymn", "Yamna" }, { "ymo", "Yangum Mon" }, { "ymp", "Yamap" }, { "ymq", "Qila Muji" }, { "ymr", "Malasar" }, { "yms", "Mysian" }, { "ymt", "Mator-Taygi-Karagas" }, { "ymx", "Northern Muji" }, { "ymz", "Muzi" }, { "yna", "Aluo" }, { "ynd", "Yandruwandha" }, { "yne", "Lang'e" }, { "yng", "Yango" }, { "ynh", "Yangho" }, { "ynk", "Naukan Yupik" }, { "ynl", "Yangulam" }, { "ynn", "Yana" }, { "yno", "Yong" }, { "ynq", "Yendang" }, { "yns", "Yansi" }, { "ynu", "Yahuna" }, { "yob", "Yoba" }, { "yog", "Yogad" }, { "yoi", "Yonaguni" }, { "yok", "Yokuts" }, { "yol", "Yola" }, { "yom", "Yombe" }, { "yon", "Yongkom" }, { "yor", "Yoruba" }, { "yot", "Yotti" }, { "yox", "Yoron" }, { "yoy", "Yoy" }, { "ypa", "Phala" }, { "ypb", "Labo Phowa" }, { "ypg", "Phola" }, { "yph", "Phupha" }, { "ypm", "Phuma" }, { "ypn", "Ani Phowa" }, { "ypo", "Alo Phola" }, { "ypp", "Phupa" }, { "ypz", "Phuza" }, { "yra", "Yerakai" }, { "yrb", "Yareba" }, { "yre", "Yaouré" }, { "yri", "Yarí" }, { "yrk", "Nenets" }, { "yrl", "Nhengatu" }, { "yrm", "Yirrk-Mel" }, { "yrn", "Yerong" }, { "yrs", "Yarsun" }, { "yrw", "Yarawata" }, { "yry", "Yarluyandi" }, { "ysc", "Yassic" }, { "ysd", "Samatao" }, { "ysg", "Sonaga" }, { "ysl", "Yugoslavian Sign Language" }, { "ysn", "Sani" }, { "yso", "Nisi (China)" }, { "ysp", "Southern Lolopo" }, { "ysr", "Sirenik Yupik" }, { "yss", "Yessan-Mayo" }, { "ysy", "Sanie" }, { "yta", "Talu" }, { "ytl", "Tanglang" }, { "ytp", "Thopho" }, { "ytw", "Yout Wam" }, { "yty", "Yatay" }, { "yua", "Yucateco" }, { "yub", "Yugambal" }, { "yuc", "Yuchi" }, { "yud", "Judeo-Tripolitanian Arabic" }, { "yue", "Yue Chinese" }, { "yuf", "Havasupai-Walapai-Yavapai" }, { "yug", "Yug" }, { "yui", "Yurutí" }, { "yuj", "Karkar-Yuri" }, { "yuk", "Yuki" }, { "yul", "Yulu" }, { "yum", "Quechan" }, { "yun", "Bena (Nigeria)" }, { "yup", "Yukpa" }, { "yuq", "Yuqui" }, { "yur", "Yurok" }, { "yut", "Yopno" }, { "yuu", "Yugh" }, { "yuw", "Yau (Morobe Province)" }, { "yux", "Southern Yukaghir" }, { "yuy", "East Yugur" }, { "yuz", "Yuracare" }, { "yva", "Yawa" }, { "yvt", "Yavitero" }, { "ywa", "Kalou" }, { "ywg", "Yinhawangka" }, { "ywl", "Western Lalu" }, { "ywn", "Yawanawa" }, { "ywq", "Wuding-Luquan Yi" }, { "ywr", "Yawuru" }, { "ywt", "Xishanba Lalo" }, { "ywu", "Wumeng Nasu" }, { "yww", "Yawarawarga" }, { "yxa", "Mayawali" }, { "yxg", "Yagara" }, { "yxl", "Yardliyawarra" }, { "yxm", "Yinwum" }, { "yxu", "Yuyu" }, { "yxy", "Yabula Yabula" }, { "yyr", "Yir Yoront" }, { "yyu", "Yau (Sandaun Province)" }, { "yyz", "Ayizi" }, { "yzg", "E'ma Buyang" }, { "yzk", "Zokhuo" }, { "zaa", "Sierra de Juárez Zapotec" }, { "zab", "San Juan Guelavía Zapotec" }, { "zac", "Ocotlán Zapotec" }, { "zad", "Cajonos Zapotec" }, { "zae", "Yareni Zapotec" }, { "zaf", "Ayoquesco Zapotec" }, { "zag", "Zaghawa" }, { "zah", "Zangwal" }, { "zai", "Isthmus Zapotec" }, { "zaj", "Zaramo" }, { "zak", "Zanaki" }, { "zal", "Zauzou" }, { "zam", "Miahuatlán Zapotec" }, { "zao", "Ozolotepec Zapotec" }, { "zap", "Zapotec" }, { "zaq", "Aloápam Zapotec" }, { "zar", "Rincón Zapotec" }, { "zas", "Santo Domingo Albarradas Zapotec" }, { "zat", "Tabaa Zapotec" }, { "zau", "Zangskari" }, { "zav", "Yatzachi Zapotec" }, { "zaw", "Mitla Zapotec" }, { "zax", "Xadani Zapotec" }, { "zay", "Zayse-Zergulla" }, { "zaz", "Zari" }, { "zbc", "Central Berawan" }, { "zbe", "East Berawan" }, { "zbl", "Blissymbols" }, { "zbt", "Batui" }, { "zbw", "West Berawan" }, { "zca", "Coatecas Altas Zapotec" }, { "zch", "Central Hongshuihe Zhuang" }, { "zdj", "Ngazidja Comorian" }, { "zea", "Zeeuws" }, { "zeg", "Zenag" }, { "zeh", "Eastern Hongshuihe Zhuang" }, { "zen", "Zenaga" }, { "zga", "Kinga" }, { "zgb", "Guibei Zhuang" }, { "zgh", "Standard Moroccan Tamazight" }, { "zgm", "Minz Zhuang" }, { "zgn", "Guibian Zhuang" }, { "zgr", "Magori" }, { "zha", "Zhuang" }, { "zhb", "Zhaba" }, { "zhd", "Dai Zhuang" }, { "zhi", "Zhire" }, { "zhn", "Nong Zhuang" }, { "zho", "Chinese" }, { "zhw", "Zhoa" }, { "zia", "Zia" }, { "zib", "Zimbabwe Sign Language" }, { "zik", "Zimakani" }, { "zil", "Zialo" }, { "zim", "Mesme" }, { "zin", "Zinza" }, { "zir", "Ziriya" }, { "ziw", "Zigula" }, { "ziz", "Zizilivakan" }, { "zka", "Kaimbulawa" }, { "zkb", "Koibal" }, { "zkd", "Kadu" }, { "zkg", "Koguryo" }, { "zkh", "Khorezmian" }, { "zkk", "Karankawa" }, { "zkn", "Kanan" }, { "zko", "Kott" }, { "zkp", "São Paulo Kaingáng" }, { "zkr", "Zakhring" }, { "zkt", "Kitan" }, { "zku", "Kaurna" }, { "zkv", "Krevinian" }, { "zkz", "Khazar" }, { "zlj", "Liujiang Zhuang" }, { "zlm", "Malay (individual language)" }, { "zln", "Lianshan Zhuang" }, { "zlq", "Liuqian Zhuang" }, { "zma", "Manda (Australia)" }, { "zmb", "Zimba" }, { "zmc", "Margany" }, { "zmd", "Maridan" }, { "zme", "Mangerr" }, { "zmf", "Mfinu" }, { "zmg", "Marti Ke" }, { "zmh", "Makolkol" }, { "zmi", "Negeri Sembilan Malay" }, { "zmj", "Maridjabin" }, { "zmk", "Mandandanyi" }, { "zml", "Madngele" }, { "zmm", "Marimanindji" }, { "zmn", "Mbangwe" }, { "zmo", "Molo" }, { "zmp", "Mpuono" }, { "zmq", "Mituku" }, { "zmr", "Maranunggu" }, { "zms", "Mbesa" }, { "zmt", "Maringarr" }, { "zmu", "Muruwari" }, { "zmv", "Mbariman-Gudhinma" }, { "zmw", "Mbo (Democratic Republic of Congo)" }, { "zmx", "Bomitaba" }, { "zmy", "Mariyedi" }, { "zmz", "Mbandja" }, { "zna", "Zan Gula" }, { "zne", "Zande (individual language)" }, { "zng", "Mang" }, { "znk", "Manangkari" }, { "zns", "Mangas" }, { "zoc", "Copainalá Zoque" }, { "zoh", "Chimalapa Zoque" }, { "zom", "Zou" }, { "zoo", "Asunción Mixtepec Zapotec" }, { "zoq", "Tabasco Zoque" }, { "zor", "Rayón Zoque" }, { "zos", "Francisco León Zoque" }, { "zpa", "Lachiguiri Zapotec" }, { "zpb", "Yautepec Zapotec" }, { "zpc", "Choapan Zapotec" }, { "zpd", "Southeastern Ixtlán Zapotec" }, { "zpe", "Petapa Zapotec" }, { "zpf", "San Pedro Quiatoni Zapotec" }, { "zpg", "Guevea De Humboldt Zapotec" }, { "zph", "Totomachapan Zapotec" }, { "zpi", "Santa María Quiegolani Zapotec" }, { "zpj", "Quiavicuzas Zapotec" }, { "zpk", "Tlacolulita Zapotec" }, { "zpl", "Lachixío Zapotec" }, { "zpm", "Mixtepec Zapotec" }, { "zpn", "Santa Inés Yatzechi Zapotec" }, { "zpo", "Amatlán Zapotec" }, { "zpp", "El Alto Zapotec" }, { "zpq", "Zoogocho Zapotec" }, { "zpr", "Santiago Xanica Zapotec" }, { "zps", "Coatlán Zapotec" }, { "zpt", "San Vicente Coatlán Zapotec" }, { "zpu", "Yalálag Zapotec" }, { "zpv", "Chichicapan Zapotec" }, { "zpw", "Zaniza Zapotec" }, { "zpx", "San Baltazar Loxicha Zapotec" }, { "zpy", "Mazaltepec Zapotec" }, { "zpz", "Texmelucan Zapotec" }, { "zqe", "Qiubei Zhuang" }, { "zra", "Kara (Korea)" }, { "zrg", "Mirgan" }, { "zrn", "Zerenkel" }, { "zro", "Záparo" }, { "zrp", "Zarphatic" }, { "zrs", "Mairasi" }, { "zsa", "Sarasira" }, { "zsk", "Kaskean" }, { "zsl", "Zambian Sign Language" }, { "zsm", "Standard Malay" }, { "zsr", "Southern Rincon Zapotec" }, { "zsu", "Sukurum" }, { "zte", "Elotepec Zapotec" }, { "ztg", "Xanaguía Zapotec" }, { "ztl", "Lapaguía-Guivini Zapotec" }, { "ztm", "San Agustín Mixtepec Zapotec" }, { "ztn", "Santa Catarina Albarradas Zapotec" }, { "ztp", "Loxicha Zapotec" }, { "ztq", "Quioquitani-Quierí Zapotec" }, { "zts", "Tilquiapan Zapotec" }, { "ztt", "Tejalapan Zapotec" }, { "ztu", "Güilá Zapotec" }, { "ztx", "Zaachila Zapotec" }, { "zty", "Yatee Zapotec" }, { "zua", "Zeem" }, { "zuh", "Tokano" }, { "zul", "Zulu" }, { "zum", "Kumzari" }, { "zun", "Zuni" }, { "zuy", "Zumaya" }, { "zwa", "Zay" }, { "zxx", "No linguistic content" }, { "zyb", "Yongbei Zhuang" }, { "zyg", "Yang Zhuang" }, { "zyj", "Youjiang Zhuang" }, { "zyn", "Yongnan Zhuang" }, { "zyp", "Zyphe Chin" }, { "zza", "Zaza" }, { "zzj", "Zuojiang Zhuang" }, }; static int niso639_3= sizeof( iso639_3 ) / sizeof( iso639_3[0] ); char * iso639_3_from_code( const char *code ) { int i; for ( i=0; i #include #include #include "latex.h" #define LATEX_COMBO (0) /* 'combo' no need for protection on output */ #define LATEX_MACRO (1) /* 'macro_name' to be protected by {\macro_name} on output */ #define LATEX_MATH (2) /* 'math_expression' to be protected by $math_expression$ on output */ #define NUM_VARIANTS (2) #define ENTRY(a) { (a), (sizeof(a)/sizeof(char))-1 } #define EMPTY { NULL, 0 } #define COMBO2(a,b,c,d) { (a), LATEX_COMBO, (b), { ENTRY(c), ENTRY(d) } } #define COMBO1(a,b,c) { (a), LATEX_COMBO, (b), { ENTRY(c), EMPTY } } #define MACRO2(a,b,c,d) { (a), LATEX_MACRO, (b), { ENTRY(c), ENTRY(d) } } #define MACRO1(a,b,c) { (a), LATEX_MACRO, (b), { ENTRY(c), EMPTY } } #define MATH2(a,b,c,d) { (a), LATEX_MATH, (b), { ENTRY(c), ENTRY(d) } } #define MATH1(a,b,c) { (a), LATEX_MATH, (b), { ENTRY(c), EMPTY } } struct latex_entry { char *entry; int length; }; struct latex_chars { unsigned int unicode; /* unicode code point */ unsigned char type; /* LATEX_COMBO/LATEX_MACRO/LATEX_MATH */ char *out; /* unadorned latex combination for output */ struct latex_entry variant[NUM_VARIANTS]; /* possible variations on input */ }; static struct latex_chars latex_chars[] = { MACRO1( 192, "`A", "\\`A" ), /* Latin Capital A with grave */ MACRO1( 224, "`a", "\\`a" ), /* Latin Small a with grave */ MACRO1( 193, "'A", "\\'A" ), /* Latin Capital A with acute */ MACRO1( 225, "'a", "\\'a" ), /* Latin Small a with acute */ MACRO1( 194, "^A", "\\^A" ), /* Latin Capital A with circumflex */ MACRO1( 226, "^a", "\\^a" ), /* Latin Small a with circumflex */ MACRO1( 195, "~A", "\\~A" ), /* Latin Capital A with tilde */ MACRO1( 227, "~a", "\\~a" ), /* Latin Small a with tilde */ MACRO1( 196, "\"A", "\\\"A" ), /* Latin Capital A with diuresis */ MACRO1( 228, "\"a", "\\\"a" ), /* Latin Small a with diuresis */ MACRO1( 197, "AA", "\\AA" ), /* Latin Capital A with ring above */ MACRO2( 197, "AA", "\\r A", "\\rA" ), /* Latin Capital A with ring above */ MACRO1( 229, "aa", "\\aa" ), /* Latin Small a with ring above */ MACRO2( 229, "aa", "\\r a", "\\ra" ), /* Latin Small a with ring above */ MACRO1( 256, "={A}", "\\=A" ), /* Latin Capital A with macron */ MACRO1( 257, "={a}", "\\=a" ), /* Latin Small a with macron */ MACRO2( 258, "u{A}", "\\u A", "\\uA" ), /* Latin Capital A with breve */ MACRO2( 259, "u{a}", "\\u a", "\\ua" ), /* Latin Small a with breve */ MACRO2( 260, "k{A}", "\\k A", "\\kA" ), /* Latin Capital A with ogonek */ MACRO2( 261, "k{a}", "\\k a", "\\ka" ), /* Latin Small a with ogonek */ MACRO2( 461, "v{A}", "\\v A", "\\vA" ), /* Latin Capital A with caron */ MACRO2( 462, "v{a}", "\\v a", "\\va" ), /* Latin Small a with caron */ MACRO1( 198, "AE", "\\AE" ), /* Latin Capital AE Ligature */ MACRO1( 230, "ae", "\\ae" ), /* Latin Small ae Ligature */ MACRO2( 199, "c{C}", "\\c C", "\\cC" ), /* Latin Capital C with cedilla */ MACRO2( 231, "c{c}", "\\c c", "\\cc" ), /* Latin Small c with cedilla */ MACRO2( 199, "k{C}", "\\k C", "\\kC" ), /* Latin Capital C with cedilla (actually ogonek) */ MACRO2( 231, "k{c}", "\\k c", "\\kc" ), /* Latin Small c with cedilla (actually ogonek) */ MACRO1( 262, "'{C}", "\\'C" ), /* Latin Capital C with acute */ MACRO1( 263, "'{c}", "\\'c" ), /* Latin Small c with acute */ MACRO1( 264, "^{C}", "\\^C" ), /* Latin Capital C with circumflex */ MACRO1( 265, "^{c}", "\\^c" ), /* Latin Small c with circumflex */ MACRO1( 266, ".{C}", "\\.C" ), /* Latin Capital C with dot above */ MACRO1( 267, ".{c}", "\\.c" ), /* Latin Small c with dot above */ MACRO2( 268, "v{C}", "\\v C", "\\vC" ), /* Latin Capital C with caron (hacek) */ MACRO2( 269, "v{c}", "\\v c", "\\vc" ), /* Latin Small c with caron (hacek) */ MACRO2( 270, "v{D}", "\\v D", "\\vD" ), /* Latin Capital D with caron */ MACRO2( 271, "v{d}", "\\v d", "\\vd" ), /* Latin Small d with caron */ MACRO1( 272, "DJ", "\\DJ" ), /* Latin Capital D with stroke */ MACRO1( 273, "dj", "\\dj" ), /* Latin Small d with stroke */ MACRO1( 200, "`E", "\\`E" ), /* Latin Capital E with grave */ MACRO1( 232, "`e", "\\`e" ), /* Latin Small e with grave */ MACRO1( 201, "'E", "\\'E" ), /* Latin Capital E with acute */ MACRO1( 233, "'e", "\\'e" ), /* Latin Small e with acute */ MACRO1( 202, "^E", "\\^E" ), /* Latin Capital E with circumflex */ MACRO1( 234, "^e", "\\^e" ), /* Latin Small e with circumflex */ MACRO1( 203, "\"E", "\\\"E" ), /* Latin Capital E with diuresis */ MACRO1( 235, "\"e", "\\\"e" ), /* Latin Small e with diuresis */ MACRO1( 274, "={E}", "\\=E" ), /* Latin Capital E with macron */ MACRO1( 275, "={e}", "\\=e" ), /* Latin Small e with macron */ MACRO2( 276, "u{E}", "\\u E", "\\uE" ), /* Latin Capital E with breve */ MACRO2( 277, "u{e}", "\\u e", "\\ue" ), /* Latin Small e with breve */ MACRO1( 278, ".{E}", "\\.E" ), /* Latin Capital E with dot above */ MACRO1( 279, ".{e}", "\\.e" ), /* Latin Small e with dot above */ MACRO2( 280, "k{E}", "\\k E", "\\kE" ), /* Latin Capital E with ogonek */ MACRO2( 281, "k{e}", "\\k e", "\\ke" ), /* Latin Small e with ogonek */ MACRO2( 282, "v{E}", "\\v E", "\\vE" ), /* Latin Capital E with caron */ MACRO2( 283, "v{e}", "\\v e", "\\ve" ), /* Latin Small e with caron */ MACRO1( 284, "^{G}", "\\^G" ), /* Latin Capital G with circumflex */ MACRO1( 285, "^{g}", "\\^g" ), /* Latin Small g with circumflex */ MACRO2( 286, "u{G}", "\\u G", "\\uG" ), /* Latin Capital G with breve */ MACRO2( 287, "u{g}", "\\u g", "\\ug" ), /* Latin Small g with breve */ MACRO1( 288, ".{G}", "\\.G" ), /* Latin Capital G with dot above */ MACRO1( 289, ".{g}", "\\.g" ), /* Latin Small g with dot above */ MACRO2( 290, "c{G}", "\\c G", "\\cG" ), /* Latin Capital G with cedilla */ MACRO2( 291, "c{g}", "\\c g", "\\cg" ), /* Latin Small g with cedilla */ MACRO2( 486, "v{G}", "\\v G", "\\vG" ), /* Latin Capital G with caron */ MACRO2( 487, "v{g}", "\\v g", "\\vg" ), /* Latin Small g with caron */ MACRO1( 500, "'{G}", "\\'G" ), /* Latin Capital G with acute */ MACRO1( 501, "'{g}", "\\'g" ), /* Latin Small g with acute */ MACRO1( 292, "^{H}", "\\^H" ), /* Latin Capital H with circumflex */ MACRO1( 293, "^{h}", "\\^h" ), /* Latin Small h with circumflex */ MACRO1( 204, "`I", "\\`I" ), /* Latin Capital I with grave */ MACRO2( 236, "`{\\i}", "\\`\\i", "\\`i" ), /* Latin Small i with grave */ MACRO1( 205, "'I", "\\'I" ), /* Latin Capital I with acute */ MACRO2( 237, "'{\\i}", "\\'\\i", "\\'i" ), /* Latin Small i with acute */ MACRO1( 206, "^I", "\\^I" ), /* Latin Capital I with circumflex */ MACRO2( 238, "^{\\i}", "\\^\\i", "\\^i" ), /* Latin Small i with circumflex */ MACRO1( 207, "\"I", "\\\"I" ), /* Latin Capital I with diuresis */ MACRO2( 239, "\"{\\i}", "\\\"\\i", "\\\"i" ), /* Latin Small i with diuresis */ MACRO1( 296, "~{I}", "\\~I" ), /* Latin Capital I with tilde */ MACRO2( 297, "`{\\i}", "\\~\\i", "\\~i" ), /* Latin Small i with tilde */ MACRO1( 298, "={I}", "\\=I" ), /* Latin Capital I with macron */ MACRO2( 299, "={\\i}", "\\=\\i", "\\=i" ), /* Latin Small i with macron */ MACRO2( 300, "u{I}", "\\u I", "\\uI" ), /* Latin Capital I with breve */ MACRO2( 301, "u{\\i}", "\\u\\i", "\\ui" ), /* Latin Small i with breve */ MACRO2( 302, "k{I}", "\\k I", "\\kI" ), /* Latin Capital I with ogonek */ MACRO2( 303, "k{i}", "\\k i", "\\ki" ), /* Latin Small i with ogonek */ MACRO1( 304, ".{I}", "\\.I" ), /* Latin Capital I with dot above */ MACRO1( 305, "i", "\\i" ), /* Latin Small i without dot above */ MACRO2( 463, "v{I}", "\\v I", "\\vI" ), /* Latin Capital I with caron */ MACRO2( 464, "v{\\i}", "\\v\\i", "\\vi" ), /* Latin Small i with caron */ MACRO1( 308, "^{J}", "\\^J" ), /* Latin Capital J with circumflex */ MACRO1( 309, "^{j}", "\\^j" ), /* Latin Small j with circumflex */ MACRO2( 310, "c{K}", "\\c K", "\\cK" ), /* Latin Capital K with cedilla */ MACRO2( 311, "c{k}", "\\c k", "\\ck" ), /* Latin Small k with cedilla */ MACRO2( 488, "v{K}", "\\v K", "\\vK" ), /* Latin Capital K with caron */ MACRO2( 489, "v{k}", "\\v k", "\\vk" ), /* Latin Small k with caron */ MACRO1( 313, "'{L}", "\\'L" ), /* Latin Capital L with acute */ MACRO1( 314, "'{l}", "\\'l" ), /* Latin Small l with acute */ MACRO2( 315, "c{L}", "\\c L", "\\cL" ), /* Latin Capital L with cedilla */ MACRO2( 316, "c{l}", "\\c l", "\\cl" ), /* Latin Small l with cedilla */ MACRO2( 317, "v{L}", "\\v L", "\\vL" ), /* Latin Capital L with caron */ MACRO2( 318, "v{l}", "\\v l", "\\vl" ), /* Latin Small l with caron */ MACRO1( 319, "{L\\hspace{-0.35em}$\\cdot$}", "L\\hspace-0.35em\\cdot" ), /* Latin Capital L with middle dot */ MACRO1( 320, "{l$\\cdot$}", "l\\cdot" ), /* Latin Small l with middle dot */ MACRO1( 321, "L", "\\L" ), /* Latin Capital L with stroke */ MACRO1( 322, "l", "\\l" ), /* Latin Small l with stroke */ MACRO1( 209, "~{N}", "\\~N" ), /* Latin Capital N with tilde */ MACRO1( 241, "~{n}", "\\~n" ), /* Latin Small n with tilde */ MACRO1( 323, "'{N}", "\\'N" ), /* Latin Capital N with acute */ MACRO1( 324, "'{n}", "\\'n" ), /* Latin Small n with acute */ MACRO2( 325, "c{N}", "\\c N", "\\cN" ), /* Latin Capital N with cedilla */ MACRO2( 326, "c{n}", "\\c n", "\\cn" ), /* Latin Small n with cedilla */ MACRO2( 327, "v{N}", "\\v N", "\\vN" ), /* Latin Capital N with caron */ MACRO2( 328, "v{n}", "\\v n", "\\vn" ), /* Latin Small n with caron */ MACRO1( 329, "n", "\\n" ), /* Latin Small n preceeded by apostrophe */ MACRO1( 210, "`O", "\\`O" ), /* Latin Capital O with grave */ MACRO1( 242, "`o", "\\`o" ), /* Latin Small o with grave */ MACRO1( 211, "'O", "\\'O" ), /* Latin Capital O with acute */ MACRO1( 243, "'o", "\\'o" ), /* Latin Small o with acute */ MACRO1( 212, "^O", "\\^O" ), /* Latin Capital O with circumflex */ MACRO1( 244, "^o", "\\^o" ), /* Latin Small o with circumflex */ MACRO1( 213, "~O", "\\~O" ), /* Latin Capital O with tilde */ MACRO1( 245, "~o", "\\~o" ), /* Latin Small o with tilde */ MACRO1( 214, "\"O", "\\\"O" ), /* Latin Capital O with diaeresis */ MACRO1( 246, "\"o", "\\\"o" ), /* Latin Small o with diaeresis */ MACRO1( 216, "O", "\\O" ), /* Latin Capital O with stroke */ MACRO1( 248, "o", "\\o" ), /* Latin Small o with stroke */ MACRO1( 332, "={O}", "\\=O" ), /* Latin Capital O with macron */ MACRO1( 333, "={o}", "\\=o" ), /* Latin Small o with macron */ MACRO2( 334, "u{O}", "\\u O", "\\uO" ), /* Latin Capital O with breve */ MACRO2( 335, "u{o}", "\\u o", "\\uo" ), /* Latin Small o with breve */ MACRO2( 336, "H{O}", "\\H O", "\\HO" ), /* Latin Capital O with double acute */ MACRO2( 337, "H{o}", "\\H o", "\\Ho" ), /* Latin Small o with double acute */ MACRO2( 465, "v{O}", "\\v O", "\\vO" ), /* Latin Capital O with caron */ MACRO2( 466, "v{o}", "\\v o", "\\vo" ), /* Latin Small o with caron */ MACRO2( 490, "k{O}", "\\k O", "\\kO" ), /* Latin Capital O with ogonek */ MACRO2( 491, "k{o}", "\\k o", "\\ko" ), /* Latin Small o with ogonek */ MACRO1( 338, "OE", "\\OE" ), /* Latin Capital OE Ligature */ MACRO1( 339, "oe", "\\oe" ), /* Latin Small oe Ligature */ MACRO1( 340, "'R", "\\'R" ), /* Latin Capital R with acute */ MACRO1( 341, "'r", "\\'r" ), /* Latin Small r with acute */ MACRO2( 342, "c{R}", "\\c R", "\\cR" ), /* Latin Capital R with cedilla */ MACRO2( 343, "c{r}", "\\c r", "\\cr" ), /* Latin Small r with cedilla */ MACRO2( 344, "v{R}", "\\v R", "\\vR" ), /* Latin Capital R with caron */ MACRO2( 345, "v{r}", "\\v r", "\\vr" ), /* Latin Small r with caron */ MACRO1( 346, "'{S}", "\\'S" ), /* Latin Capital S with acute */ MACRO1( 347, "'{s}", "\\'s" ), /* Latin Small s with acute */ MACRO1( 348, "^{S}", "\\^S" ), /* Latin Capital S with circumflex */ MACRO1( 349, "^{s}", "\\^s" ), /* Latin Small s with circumflex */ MACRO2( 350, "c{S}", "\\c S", "\\cS" ), /* Latin Capital S with cedilla */ MACRO2( 351, "c{s}", "\\c s", "\\cs" ), /* Latin Small s with cedilla */ MACRO2( 352, "v{S}", "\\v S", "\\vS" ), /* Latin Capital S with caron */ MACRO2( 353, "v{s}", "\\v s", "\\vs" ), /* Latin Small s with caron */ MACRO1( 223, "ss", "\\ss" ), /* German sz Ligature, "sharp s" */ MACRO2( 354, "c{T}", "\\c T", "\\cT" ), /* Latin Capital T with cedilla */ MACRO2( 355, "c{t}", "\\c t", "\\ct" ), /* Latin Small t with cedilla */ MACRO2( 356, "v{T}", "\\v T", "\\vT" ), /* Latin Capital T with caron */ MACRO2( 357, "v{t}", "\\v t", "\\vt" ), /* Latin Small t with caron */ MACRO1( 217, "`U", "\\`U" ), /* Latin Capital U with grave */ MACRO1( 249, "`u", "\\`u" ), /* Latin Small u with grave */ MACRO1( 218, "'U", "\\'U" ), /* Latin Capital U with acute */ MACRO1( 250, "'u", "\\'u" ), /* Latin Small u with acute */ MACRO1( 219, "^U", "\\^U" ), /* Latin Capital U with circumflex */ MACRO1( 251, "^u", "\\^u" ), /* Latin Small u with circumflex */ MACRO1( 220, "\"U", "\\\"U" ), /* Latin Capital U with diaeresis */ MACRO1( 252, "\"u", "\\\"u" ), /* Latin Small u with diaeresis */ MACRO1( 360, "~{U}", "\\~U" ), /* Latin Capital U with tilde */ MACRO1( 361, "~{u}", "\\~u" ), /* Latin Small u with tilde */ MACRO1( 362, "={U}", "\\=U" ), /* Latin Capital U with macron */ MACRO1( 363, "={u}", "\\=u" ), /* Latin Small u with macron */ MACRO2( 364, "u{U}", "\\u U", "\\uU" ), /* Latin Capital U with breve */ MACRO2( 365, "u{u}", "\\u u", "\\uu" ), /* Latin Small u with breve */ MACRO2( 366, "r{U}", "\\r U", "\\rU" ), /* Latin Capital U with ring above */ MACRO2( 367, "r{u}", "\\r u", "\\ru" ), /* Latin Small u with ring above */ MACRO2( 368, "H{U}", "\\H U", "\\HU" ), /* Latin Capital U with double acute */ MACRO2( 369, "H{u}", "\\H u", "\\Hu" ), /* Latin Small u with double acute */ MACRO2( 370, "k{U}", "\\k U", "\\kU" ), /* Latin Capital U with ogonek */ MACRO2( 371, "k{u}", "\\k u", "\\ku" ), /* Latin Small u with ogonek */ MACRO2( 467, "v{U}", "\\v U", "\\vU" ), /* Latin Capital U with caron */ MACRO2( 468, "v{u}", "\\v u", "\\vu" ), /* Latin Small u with caron */ MACRO1( 372, "^{W}", "\\^W" ), /* Latin Capital W with circumflex */ MACRO1( 373, "^{w}", "\\^w" ), /* Latin Small w with circumflex */ MACRO1( 221, "'{Y}", "\\'Y" ), /* Latin Capital Y with acute */ MACRO1( 253, "'y", "\\'y" ), /* Latin Small y with acute */ MACRO1( 374, "^{Y}", "\\^Y" ), /* Latin Capital Y with circumflex */ MACRO1( 375, "^{y}", "\\^y" ), /* Latin Small y with circumflex */ MACRO1( 376, "\"{Y}", "\\\"Y" ), /* Latin Capital Y with diaeresis */ MACRO1( 255, "\"y", "\\\"y" ), /* Latin Small y with diaeresis */ MACRO1( 377, "'{Z}", "\\'Z" ), /* Latin Capital Z with acute */ MACRO1( 378, "'{z}", "\\'z" ), /* Latin Small z with acute */ MACRO1( 379, ".{Z}", "\\.Z" ), /* Latin Capital Z with dot above */ MACRO1( 380, ".{z}", "\\.z" ), /* Latin Small z with dot above */ MACRO2( 381, "v{Z}", "\\v Z", "\\vZ" ), /* Latin Capital Z with caron */ MACRO2( 382, "v{z}", "\\v z", "\\vz" ), /* Latin Small z with caron */ MATH1 ( 8203, "\\null", "\\null" ), /* No space ​ Needs to be before \nu*/ MATH1 ( 913, "\\Alpha", "\\Alpha" ), /*GREEK CAPITAL LETTER ALPHA*/ MATH1 ( 914, "\\Beta", "\\Beta" ), /*GREEK CAPITAL LETTER BETA*/ MATH1 ( 915, "\\Gamma", "\\Gamma" ), /*GREEK CAPITAL LETTER GAMMA*/ MATH1 ( 916, "\\Delta", "\\Delta" ), /*GREEK CAPITAL LETTER DELTA*/ MATH1 ( 917, "\\Epsilon", "\\Epsilon" ), /*GREEK CAPITAL LETTER EPSILON*/ MATH1 ( 918, "\\Zeta", "\\Zeta" ), /*GREEK CAPITAL LETTER ZETA*/ MATH1 ( 919, "\\Eta", "\\Eta" ), /*GREEK CAPITAL LETTER ETA*/ MATH1 ( 920, "\\Theta", "\\Theta" ), /*GREEK CAPITAL LETTER THETA*/ MATH1 ( 921, "\\Iota", "\\Iota" ), /*GREEK CAPITAL LETTER IOTA*/ MATH1 ( 922, "\\Kappa", "\\Kappa" ), /*GREEK CAPITAL LETTER KAPPA*/ MATH1 ( 923, "\\Lambda", "\\Lambda" ), /*GREEK CAPITAL LETTER LAMDA*/ MATH1 ( 924, "\\Mu", "\\Mu" ), /*GREEK CAPITAL LETTER MU*/ MATH1 ( 925, "\\Nu", "\\Nu" ), /*GREEK CAPITAL LETTER NU*/ MATH1 ( 926, "\\Xi", "\\Xi" ), /*GREEK CAPITAL LETTER XI*/ MATH1 ( 927, "\\Omicron", "\\Omicron" ), /*GREEK CAPITAL LETTER OMICRON*/ MATH1 ( 928, "\\Pi", "\\Pi" ), /*GREEK CAPITAL LETTER PI*/ MATH1 ( 929, "\\Rho", "\\Rho" ), /*GREEK CAPITAL LETTER RHO*/ MATH1 ( 931, "\\Sigma", "\\Sigma" ), /*GREEK CAPITAL LETTER SIGMA*/ MATH1 ( 932, "\\Tau", "\\Tau" ), /*GREEK CAPITAL LETTER TAU*/ MATH1 ( 933, "\\Upsilon", "\\Upsilon" ), /*GREEK CAPITAL LETTER UPSILON*/ MATH1 ( 934, "\\Phi", "\\Phi" ), /*GREEK CAPITAL LETTER PHI*/ MATH1 ( 935, "\\Chi", "\\Chi" ), /*GREEK CAPITAL LETTER CHI*/ MATH1 ( 936, "\\Psi", "\\Psi" ), /*GREEK CAPITAL LETTER PSI*/ MATH1 ( 937, "\\Omega", "\\Omega" ), /*GREEK CAPITAL LETTER OMEGA*/ MATH1 ( 945, "\\alpha", "\\alpha" ), /*GREEK SMALL LETTER ALPHA*/ MATH1 ( 946, "\\beta", "\\beta" ), /*GREEK SMALL LETTER BETA*/ MATH1 ( 947, "\\gamma", "\\gamma" ), /*GREEK SMALL LETTER GAMMA*/ MATH1 ( 948, "\\delta", "\\delta" ), /*GREEK SMALL LETTER DELTA*/ MATH1 ( 949, "\\epsilon", "\\epsilon" ), /*GREEK SMALL LETTER EPSILON*/ MATH1 ( 950, "\\zeta", "\\zeta" ), /*GREEK SMALL LETTER ZETA*/ MATH1 ( 951, "\\eta", "\\eta" ), /*GREEK SMALL LETTER ETA*/ MATH1 ( 952, "\\theta", "\\theta" ), /*GREEK SMALL LETTER THETA*/ MATH1 ( 953, "\\iota", "\\iota" ), /*GREEK SMALL LETTER IOTA*/ MATH1 ( 954, "\\kappa", "\\kappa" ), /*GREEK SMALL LETTER KAPPA*/ MATH1 ( 955, "\\lambda", "\\lambda" ), /*GREEK SMALL LETTER LAMDA*/ MATH1 ( 956, "\\mu", "\\mu" ), /*GREEK SMALL LETTER MU*/ MATH1 ( 957, "\\nu", "\\nu" ), /*GREEK SMALL LETTER NU*/ MATH1 ( 958, "\\xi", "\\xi" ), /*GREEK SMALL LETTER XI*/ MATH1 ( 959, "\\omicron", "\\omicron" ), /*GREEK SMALL LETTER OMICRON*/ MATH1 ( 960, "\\pi", "\\pi" ), /*GREEK SMALL LETTER PI*/ MATH1 ( 961, "\\rho", "\\rho" ), /*GREEK SMALL LETTER RHO*/ MATH1 ( 963, "\\sigma", "\\sigma" ), /*GREEK SMALL LETTER SIGMA*/ MATH1 ( 964, "\\tau", "\\tau" ), /*GREEK SMALL LETTER TAU*/ MATH1 ( 965, "\\upsilon", "\\upsilon" ), /*GREEK SMALL LETTER UPSILON*/ MATH1 ( 966, "\\phi", "\\phi" ), /*GREEK SMALL LETTER PHI*/ MATH1 ( 967, "\\chi", "\\chi" ), /*GREEK SMALL LETTER CHI*/ MATH1 ( 968, "\\psi", "\\psi" ), /*GREEK SMALL LETTER PSI*/ MATH1 ( 969, "\\omega", "\\omega" ), /*GREEK SMALL LETTER OMEGA*/ MACRO2( 181, "textmu", "\\textmu", "\\mu" ), /* 181=micro sign, techically µ */ /* Make sure that these don't stomp on other latex things above */ COMBO2( 8212, "---", "---", "\\textemdash" ), /* Em-dash — */ COMBO2( 8211, "--", "--", "\\textendash" ), /* En-dash – */ MACRO2( 8230, "ldots", "\\ldots", "\\textellipsis" ), /* Ellipsis … */ COMBO2( 8220, "``", "``", "\\textquotedblleft" ), /* Opening double quote “ */ COMBO1( 8221, "''", "\"" ), /* Closing double quote ” */ COMBO2( 8221, "''", "''", "\\textquotedblright" ), /* Closing double quote ” */ COMBO2( 8216, "`", "`", "\\textquoteleft" ), /* Opening single quote ‘ */ COMBO2( 8217, "'", "'", "\\textquoteright" ), /* Closing single quote ’ */ MACRO1( 8242, "textasciiacutex", "\\textasciiacutex" ), /* Prime symbol ′ */ MACRO2( 180, "textasciiacute", "\\textasciiacute", "\\'" ), /* acute accent ´ */ MACRO1( 8243, "textacutedbl", "\\textacutedbl" ), /* Double prime ″ */ MACRO2( 8245, "textasciigrave", "\\textasciigrave", "\\`" ), /* Grave accent ‵ */ MACRO1( 8963, "textasciicircum", "\\textasciicircum" ), /* ⌃ */ MACRO1( 184, "textasciicedilla", "\\textasciicedilla" ), /* cedilla ¸ */ MACRO1( 168, "textasciidieresis", "\\textasciidieresis" ), /* dieresis ¨ */ MACRO1( 175, "textasciimacron", "\\textasciimacron" ), /* macron ¯ */ MACRO1( 8593, "textuparrow", "\\textuparrow" ), /* Up arrow ↑ */ MACRO1( 8595, "textdownarrow", "\\textdownarrow" ), /* Down arrow ↓ */ MACRO1( 8594, "textrightarrow", "\\textrightarrow" ), /* Right arrow → */ MACRO1( 8592, "textleftarrow", "\\textleftarrow" ), /* Left arrow ← */ MACRO1(12296, "textlangle", "\\textlangle" ), /* L-angle 〈 */ MACRO1(12297, "textrangle", "\\textrangle" ), /* R-angle 〉 */ MACRO1( 166, "textbrokenbar", "\\textbrokenbar" ), /* Broken vertical bar ¦ */ MACRO2( 167, "textsection", "\\textsection", "\\S" ), /* Section sign, § */ MACRO2( 170, "textordfeminine", "\\textordfeminine", "^a" ), /* ª */ MACRO1( 172, "textlnot", "\\textlnot" ), /* Lnot ¬ */ MACRO1( 182, "textparagraph", "\\textparagraph" ), /* Paragraph sign ¶ */ MACRO1( 183, "textperiodcentered", "\\textperiodcentered" ), /* Period-centered · */ MACRO1( 186, "textordmasculine", "\\textordmasculine" ), /* º */ MACRO1( 8214, "textbardbl", "\\textbardbl" ), /* Double vertical bar ‖ */ MACRO1( 8224, "textdagger", "\\textdagger" ), /* Dagger † */ MACRO1( 8225, "textdaggerdbl", "\\textdaggerdbl" ), /* Double dagger &x2021; */ MACRO1( 8226, "textbullet", "\\textbullet" ), /* Bullet • */ MACRO1( 8494, "textestimated", "\\textestimated" ), /* Estimated ℮ */ MACRO1( 9526, "textopenbullet", "\\textopenbullet" ), /* ┶ */ MACRO1( 8261, "textlquill", "\\textlquill" ), /* Left quill ⁅ */ MACRO1( 8262, "textrquill", "\\textrquill" ), /* Right quill ⁆ */ MACRO2( 8194, "enspace", "\\enspace", "\\hspace.5em" ), /* En-space   */ MACRO2( 8195, "emspace", "\\emspace", "\\hspace1em" ), /* Em-space   */ MACRO1( 8201, "thinspace", "\\thinspace" ), /* Thin space   */ MACRO1( 8203, "textnospace", "\\textnospace" ), /* No space ​ */ MACRO1( 9251, "textvisiblespace", "\\textvisiblespace" ), /* Visible space ␣ */ MACRO1( 215, "texttimes", "\\texttimes" ), /* Multiplication symbol × */ MACRO1( 247, "textdiv", "\\textdiv" ), /* Division symbol ÷ */ MACRO1( 177, "textpm", "\\textpm" ), /* Plus-minus character &#B1; */ MACRO1( 188, "textonequarter", "\\textonequarter" ), /* Vulgar fraction one quarter ¼ */ MACRO1( 189, "textonehalf", "\\textonehalf" ), /* Vulgar fraction one half ½ */ MACRO1( 190, "textthreequarters", "\\textthreequarters" ), /* Vulgar fraction three quarters ¾ */ MACRO1( 8240, "texttenthousand", "\\texttenthousand" ), /* Per thousand sign ‰ */ MACRO1( 8241, "textpertenthousand", "\\textpertenthousand" ), /* Per ten thousand sign ‱*/ MACRO1( 8260, "textfractionssolidus", "\\textfractionsolidus" ), /* &x8260 */ MACRO1( 8451, "textcelcius", "\\textcelcius" ), /* Celcius ℃ */ MACRO1( 8470, "textnumero", "\\textnumero" ), /* Numero symbol № */ MACRO1( 8486, "textohm", "\\textohm" ), /* Ohm symbol Ω */ MACRO1( 8487, "textmho", "\\textmho" ), /* Mho symbol ℧ */ MACRO1( 8730, "textsurd", "\\textsurd" ), /* √ */ MACRO2( 185, "textonesuperior", "\\textonesuperior", "^1" ), /*Superscript 1 ¹ */ MACRO2( 178, "texttwosuperior", "\\texttwosuperior", "^2" ), /*Superscript 2 ² */ MACRO2( 179, "textthreesuperior", "\\textthreesuperior", "^3" ), /*Superscript 3 ³ */ MATH1 ( 8308, "^4", "^4" ), /*Superscript 4 U+2074*/ MATH1 ( 8309, "^5", "^5" ), /*Superscript 5 U+2075*/ MATH1 ( 8310, "^6", "^6" ), /*Superscript 6 U+2076*/ MATH1 ( 8311, "^7", "^7" ), /*Superscript 7 U+2077*/ MATH1 ( 8312, "^8", "^8" ), /*Superscript 8 U+2078*/ MATH1 ( 8313, "^9", "^9" ), /*Superscript 9 U+2079*/ MATH1 ( 8314, "^+", "^+" ), /*Superscript - U+207A*/ MATH1 ( 8315, "^-", "^-" ), /*Superscript - U+207B*/ MATH1 ( 8316, "^=", "^=" ), /*Superscript = U+207C*/ MATH1 ( 8317, "^(", "^(" ), /*Superscript ) U+207D*/ MATH1 ( 8318, "^)", "^)" ), /*Superscript ) U+207E*/ MATH1 ( 8319, "^n", "^n" ), /*Superscript n U+207F*/ MATH1 ( 8320, "_0", "_0" ), /*Subscript 0 U+2080*/ MATH1 ( 8321, "_1", "_1" ), /*Subscript 1 U+2081*/ MATH1 ( 8322, "_2", "_2" ), /*Subscript 2 U+2082*/ MATH1 ( 8323, "_3", "_3" ), /*Subscript 3 U+2083*/ MATH1 ( 8324, "_4", "_4" ), /*Subscript 4 U+2084*/ MATH1 ( 8325, "_5", "_5" ), /*Subscript 5 U+2085*/ MATH1 ( 8326, "_6", "_6" ), /*Subscript 6 U+2086*/ MATH1 ( 8327, "_7", "_7" ), /*Subscript 7 U+2087*/ MATH1 ( 8328, "_8", "_8" ), /*Subscript 8 U+2088*/ MATH1 ( 8329, "_9", "_9" ), /*Subscript 9 U+2089*/ MATH2( 183, "\\cdot", "\\cdot", "^." ), MATH1( 2192, "\\to", "\\to" ), MACRO1( 161, "textexclamdown", "\\textexclamdown" ), /* Inverted exclamation mark ¡*/ MACRO1( 191, "textquestiondown", "\\textquestiondown" ), /* Inverted question mark ¿ */ MACRO1( 162, "textcent", "\\textcent" ), /* Cent sign ¢ */ MACRO2( 163, "textsterling", "\\textsterling", "\\pounds" ), /* Pound sign £ */ MACRO1( 165, "textyen", "\\textyen" ), /* Yen sign ¥ */ MACRO1( 402, "textflorin", "\\textflorin" ), /* Florin sign ƒ */ MACRO1( 3647, "textbaht", "\\textbaht" ), /* Thai currency ฿ */ MACRO1( 8355, "textfrenchfranc", "\\textfrenchfranc" ), /* French franc ₣ */ MACRO1( 8356, "textlira", "\\textlira" ), /* Lira ₤ */ MACRO1( 8358, "textnaira", "\\textnaira" ), /* Naira ₦ */ MACRO1( 8361, "textwon", "\\textwon" ), /* ₩ */ MACRO1( 8363, "textdong", "\\textdong" ), /* Vietnamese currency ₫ */ MACRO1( 8364, "texteuro", "\\texteuro" ), /* Euro sign */ MACRO1( 169, "textcopyright", "\\textcopyright" ), /* Copyright (C) © */ MACRO1( 175, "textregistered", "\\textregistered" ), /* Registered sign (R) ¯*/ MACRO2( 8482, "texttrademark", "\\texttrademark", "^TM" ), /* Trademark (TM) ™ */ MACRO2( 8480, "textservicemark", "\\textservicemark", "^SM" ), /* Servicemark (SM) ℠*/ MACRO1( 8471, "textcircledP", "\\textcircledP" ), /* Circled P ࡅ */ /* keep it after all other things like \~n */ MACRO1( 35, "#", "\\#" ), /* Number/pound/hash sign */ MACRO1( 36, "$", "\\$" ), /* Dollar Sign */ MACRO2( 36, "$", "\\$", "\\textdollar" ), MACRO1( 37, "%", "\\%" ), /* Percent Sign */ MACRO1( 37, "%", "\\%" ), MACRO1( 38, "&", "\\&" ), /* Ampersand */ MACRO1( 95, "_", "\\_" ), /* Underscore alone indicates subscript */ MACRO1( 95, "_", "\\textunderscore" ), MACRO2( 123, "{", "\\{", "\\textbraceleft" ), /* Left Curly Bracket */ MACRO2( 125, "}", "\\}", "\\textbraceright" ), /* Right Curly Bracket */ MACRO2( 126, "~", "\\~", "\\textasciitilde" ), MACRO1( 92, "backslash", "\\backslash" ), /* Backslash */ MACRO2( 176, "textdegree", "\\textdegree", "^\\circ" ), /* Degree sign */ }; static int nlatex_chars = sizeof(latex_chars)/sizeof(latex_chars[0]); static struct latex_chars only_from_latex[] = { COMBO1( 32, " ", "~" ), MACRO1( 32, " ", "\\ " ), /* escaping the space is used to avoid extra space after periods */ }; static int num_only_from_latex = sizeof( only_from_latex ) / sizeof( only_from_latex[0] ); /* latex2char() * * Use the latex_chars[] lookup table to determine if any character * is a special LaTeX code. Note that if it is, then the equivalency * is a Unicode character and we need to flag (by setting *unicode to 1) * that we know the output is Unicode. Otherwise, we set *unicode to 0, * meaning that the output is whatever character set was given to us * (which could be Unicode, but is not necessarily Unicode). * */ static unsigned int lookup_latex( struct latex_chars *lc, int n, char *p, unsigned int *pos, int *unicode ) { struct latex_entry *variant; int i, j; for ( i=0; ientry == NULL ) break; if ( !strncmp( p, variant->entry, variant->length ) ) { *pos = *pos + variant->length; *unicode = 1; return lc[i].unicode; } } } return 0; } unsigned int latex2char( char *s, unsigned int *pos, int *unicode ) { unsigned int value, result; char *p; p = &( s[*pos] ); value = (unsigned char) *p; if ( strchr( "\\\'\"`-^_lL", value ) ) { result = lookup_latex( latex_chars, nlatex_chars, p, pos, unicode ); if ( result!=0 ) return result; } if ( value=='~' || value=='\\' ) { result = lookup_latex( only_from_latex, num_only_from_latex, p, pos, unicode ); if ( result!=0 ) return result; } *unicode = 0; *pos = *pos + 1; return value; } void uni2latex( unsigned int ch, char buf[], int buf_size ) { int i, j, n; if ( buf_size==0 ) return; buf[0] = '?'; buf[1] = '\0'; if ( ch==' ' ) { buf[0] = ' '; /*special case to avoid  */ return; } for ( i=0; i #include #include #include "latex.h" #define LATEX_COMBO (0) /* 'combo' no need for protection on output */ #define LATEX_MACRO (1) /* 'macro_name' to be protected by {\macro_name} on output */ #define LATEX_MATH (2) /* 'math_expression' to be protected by $math_expression$ on output */ #define NUM_VARIANTS (2) #define ENTRY(a) { (a), (sizeof(a)/sizeof(char))-1 } #define EMPTY { NULL, 0 } #define COMBO2(a,b,c,d) { (a), LATEX_COMBO, (b), { ENTRY(c), ENTRY(d) } } #define COMBO1(a,b,c) { (a), LATEX_COMBO, (b), { ENTRY(c), EMPTY } } #define MACRO2(a,b,c,d) { (a), LATEX_MACRO, (b), { ENTRY(c), ENTRY(d) } } #define MACRO1(a,b,c) { (a), LATEX_MACRO, (b), { ENTRY(c), EMPTY } } #define MATH2(a,b,c,d) { (a), LATEX_MATH, (b), { ENTRY(c), ENTRY(d) } } #define MATH1(a,b,c) { (a), LATEX_MATH, (b), { ENTRY(c), EMPTY } } struct latex_entry { char *entry; int length; }; struct latex_chars { unsigned int unicode; /* unicode code point */ unsigned char type; /* LATEX_COMBO/LATEX_MACRO/LATEX_MATH */ char *out; /* unadorned latex combination for output */ struct latex_entry variant[NUM_VARIANTS]; /* possible variations on input */ }; static struct latex_chars latex_chars[] = { MACRO1( 192, "`A", "\\`A" ), /* Latin Capital A with grave */ MACRO1( 224, "`a", "\\`a" ), /* Latin Small a with grave */ MACRO1( 193, "'A", "\\'A" ), /* Latin Capital A with acute */ MACRO1( 225, "'a", "\\'a" ), /* Latin Small a with acute */ MACRO1( 194, "^A", "\\^A" ), /* Latin Capital A with circumflex */ MACRO1( 226, "^a", "\\^a" ), /* Latin Small a with circumflex */ MACRO1( 195, "~A", "\\~A" ), /* Latin Capital A with tilde */ MACRO1( 227, "~a", "\\~a" ), /* Latin Small a with tilde */ MACRO1( 196, "\"A", "\\\"A" ), /* Latin Capital A with diuresis */ MACRO1( 228, "\"a", "\\\"a" ), /* Latin Small a with diuresis */ MACRO1( 197, "AA", "\\AA" ), /* Latin Capital A with ring above */ MACRO2( 197, "AA", "\\r A", "\\rA" ), /* Latin Capital A with ring above */ MACRO1( 229, "aa", "\\aa" ), /* Latin Small a with ring above */ MACRO2( 229, "aa", "\\r a", "\\ra" ), /* Latin Small a with ring above */ MACRO1( 256, "={A}", "\\=A" ), /* Latin Capital A with macron */ MACRO1( 257, "={a}", "\\=a" ), /* Latin Small a with macron */ MACRO2( 258, "u{A}", "\\u A", "\\uA" ), /* Latin Capital A with breve */ MACRO2( 259, "u{a}", "\\u a", "\\ua" ), /* Latin Small a with breve */ MACRO2( 260, "k{A}", "\\k A", "\\kA" ), /* Latin Capital A with ogonek */ MACRO2( 261, "k{a}", "\\k a", "\\ka" ), /* Latin Small a with ogonek */ MACRO2( 461, "v{A}", "\\v A", "\\vA" ), /* Latin Capital A with caron */ MACRO2( 462, "v{a}", "\\v a", "\\va" ), /* Latin Small a with caron */ MACRO1( 198, "AE", "\\AE" ), /* Latin Capital AE Ligature */ MACRO1( 230, "ae", "\\ae" ), /* Latin Small ae Ligature */ MACRO2( 199, "c{C}", "\\c C", "\\cC" ), /* Latin Capital C with cedilla */ MACRO2( 231, "c{c}", "\\c c", "\\cc" ), /* Latin Small c with cedilla */ MACRO2( 199, "k{C}", "\\k C", "\\kC" ), /* Latin Capital C with cedilla (actually ogonek) */ MACRO2( 231, "k{c}", "\\k c", "\\kc" ), /* Latin Small c with cedilla (actually ogonek) */ MACRO1( 262, "'{C}", "\\'C" ), /* Latin Capital C with acute */ MACRO1( 263, "'{c}", "\\'c" ), /* Latin Small c with acute */ MACRO1( 264, "^{C}", "\\^C" ), /* Latin Capital C with circumflex */ MACRO1( 265, "^{c}", "\\^c" ), /* Latin Small c with circumflex */ MACRO1( 266, ".{C}", "\\.C" ), /* Latin Capital C with dot above */ MACRO1( 267, ".{c}", "\\.c" ), /* Latin Small c with dot above */ MACRO2( 268, "v{C}", "\\v C", "\\vC" ), /* Latin Capital C with caron (hacek) */ MACRO2( 269, "v{c}", "\\v c", "\\vc" ), /* Latin Small c with caron (hacek) */ MACRO2( 270, "v{D}", "\\v D", "\\vD" ), /* Latin Capital D with caron */ MACRO2( 271, "v{d}", "\\v d", "\\vd" ), /* Latin Small d with caron */ MACRO1( 272, "DJ", "\\DJ" ), /* Latin Capital D with stroke */ MACRO1( 273, "dj", "\\dj" ), /* Latin Small d with stroke */ MACRO1( 200, "`E", "\\`E" ), /* Latin Capital E with grave */ MACRO1( 232, "`e", "\\`e" ), /* Latin Small e with grave */ MACRO1( 201, "'E", "\\'E" ), /* Latin Capital E with acute */ MACRO1( 233, "'e", "\\'e" ), /* Latin Small e with acute */ MACRO1( 202, "^E", "\\^E" ), /* Latin Capital E with circumflex */ MACRO1( 234, "^e", "\\^e" ), /* Latin Small e with circumflex */ MACRO1( 203, "\"E", "\\\"E" ), /* Latin Capital E with diuresis */ MACRO1( 235, "\"e", "\\\"e" ), /* Latin Small e with diuresis */ MACRO1( 274, "={E}", "\\=E" ), /* Latin Capital E with macron */ MACRO1( 275, "={e}", "\\=e" ), /* Latin Small e with macron */ MACRO2( 276, "u{E}", "\\u E", "\\uE" ), /* Latin Capital E with breve */ MACRO2( 277, "u{e}", "\\u e", "\\ue" ), /* Latin Small e with breve */ MACRO1( 278, ".{E}", "\\.E" ), /* Latin Capital E with dot above */ MACRO1( 279, ".{e}", "\\.e" ), /* Latin Small e with dot above */ MACRO2( 280, "k{E}", "\\k E", "\\kE" ), /* Latin Capital E with ogonek */ MACRO2( 281, "k{e}", "\\k e", "\\ke" ), /* Latin Small e with ogonek */ MACRO2( 282, "v{E}", "\\v E", "\\vE" ), /* Latin Capital E with caron */ MACRO2( 283, "v{e}", "\\v e", "\\ve" ), /* Latin Small e with caron */ MACRO1( 284, "^{G}", "\\^G" ), /* Latin Capital G with circumflex */ MACRO1( 285, "^{g}", "\\^g" ), /* Latin Small g with circumflex */ MACRO2( 286, "u{G}", "\\u G", "\\uG" ), /* Latin Capital G with breve */ MACRO2( 287, "u{g}", "\\u g", "\\ug" ), /* Latin Small g with breve */ MACRO1( 288, ".{G}", "\\.G" ), /* Latin Capital G with dot above */ MACRO1( 289, ".{g}", "\\.g" ), /* Latin Small g with dot above */ MACRO2( 290, "c{G}", "\\c G", "\\cG" ), /* Latin Capital G with cedilla */ MACRO2( 291, "c{g}", "\\c g", "\\cg" ), /* Latin Small g with cedilla */ MACRO2( 486, "v{G}", "\\v G", "\\vG" ), /* Latin Capital G with caron */ MACRO2( 487, "v{g}", "\\v g", "\\vg" ), /* Latin Small g with caron */ MACRO1( 500, "'{G}", "\\'G" ), /* Latin Capital G with acute */ MACRO1( 501, "'{g}", "\\'g" ), /* Latin Small g with acute */ MACRO1( 292, "^{H}", "\\^H" ), /* Latin Capital H with circumflex */ MACRO1( 293, "^{h}", "\\^h" ), /* Latin Small h with circumflex */ MACRO1( 204, "`I", "\\`I" ), /* Latin Capital I with grave */ MACRO2( 236, "`{\\i}", "\\`\\i", "\\`i" ), /* Latin Small i with grave */ MACRO1( 205, "'I", "\\'I" ), /* Latin Capital I with acute */ MACRO2( 237, "'{\\i}", "\\'\\i", "\\'i" ), /* Latin Small i with acute */ MACRO1( 206, "^I", "\\^I" ), /* Latin Capital I with circumflex */ MACRO2( 238, "^{\\i}", "\\^\\i", "\\^i" ), /* Latin Small i with circumflex */ MACRO1( 207, "\"I", "\\\"I" ), /* Latin Capital I with diuresis */ MACRO2( 239, "\"{\\i}", "\\\"\\i", "\\\"i" ), /* Latin Small i with diuresis */ MACRO1( 296, "~{I}", "\\~I" ), /* Latin Capital I with tilde */ MACRO2( 297, "`{\\i}", "\\~\\i", "\\~i" ), /* Latin Small i with tilde */ MACRO1( 298, "={I}", "\\=I" ), /* Latin Capital I with macron */ MACRO2( 299, "={\\i}", "\\=\\i", "\\=i" ), /* Latin Small i with macron */ MACRO2( 300, "u{I}", "\\u I", "\\uI" ), /* Latin Capital I with breve */ MACRO2( 301, "u{\\i}", "\\u\\i", "\\ui" ), /* Latin Small i with breve */ MACRO2( 302, "k{I}", "\\k I", "\\kI" ), /* Latin Capital I with ogonek */ MACRO2( 303, "k{i}", "\\k i", "\\ki" ), /* Latin Small i with ogonek */ MACRO1( 304, ".{I}", "\\.I" ), /* Latin Capital I with dot above */ MACRO1( 305, "i", "\\i" ), /* Latin Small i without dot above */ MACRO2( 463, "v{I}", "\\v I", "\\vI" ), /* Latin Capital I with caron */ MACRO2( 464, "v{\\i}", "\\v\\i", "\\vi" ), /* Latin Small i with caron */ MACRO1( 308, "^{J}", "\\^J" ), /* Latin Capital J with circumflex */ MACRO1( 309, "^{j}", "\\^j" ), /* Latin Small j with circumflex */ MACRO2( 310, "c{K}", "\\c K", "\\cK" ), /* Latin Capital K with cedilla */ MACRO2( 311, "c{k}", "\\c k", "\\ck" ), /* Latin Small k with cedilla */ MACRO2( 488, "v{K}", "\\v K", "\\vK" ), /* Latin Capital K with caron */ MACRO2( 489, "v{k}", "\\v k", "\\vk" ), /* Latin Small k with caron */ MACRO1( 313, "'{L}", "\\'L" ), /* Latin Capital L with acute */ MACRO1( 314, "'{l}", "\\'l" ), /* Latin Small l with acute */ MACRO2( 315, "c{L}", "\\c L", "\\cL" ), /* Latin Capital L with cedilla */ MACRO2( 316, "c{l}", "\\c l", "\\cl" ), /* Latin Small l with cedilla */ MACRO2( 317, "v{L}", "\\v L", "\\vL" ), /* Latin Capital L with caron */ MACRO2( 318, "v{l}", "\\v l", "\\vl" ), /* Latin Small l with caron */ MACRO1( 319, "{L\\hspace{-0.35em}$\\cdot$}", "L\\hspace-0.35em\\cdot" ), /* Latin Capital L with middle dot */ MACRO1( 320, "{l$\\cdot$}", "l\\cdot" ), /* Latin Small l with middle dot */ MACRO1( 321, "L", "\\L" ), /* Latin Capital L with stroke */ MACRO1( 322, "l", "\\l" ), /* Latin Small l with stroke */ MACRO1( 209, "~{N}", "\\~N" ), /* Latin Capital N with tilde */ MACRO1( 241, "~{n}", "\\~n" ), /* Latin Small n with tilde */ MACRO1( 323, "'{N}", "\\'N" ), /* Latin Capital N with acute */ MACRO1( 324, "'{n}", "\\'n" ), /* Latin Small n with acute */ MACRO2( 325, "c{N}", "\\c N", "\\cN" ), /* Latin Capital N with cedilla */ MACRO2( 326, "c{n}", "\\c n", "\\cn" ), /* Latin Small n with cedilla */ MACRO2( 327, "v{N}", "\\v N", "\\vN" ), /* Latin Capital N with caron */ MACRO2( 328, "v{n}", "\\v n", "\\vn" ), /* Latin Small n with caron */ MACRO1( 329, "n", "\\n" ), /* Latin Small n preceeded by apostrophe */ MACRO1( 210, "`O", "\\`O" ), /* Latin Capital O with grave */ MACRO1( 242, "`o", "\\`o" ), /* Latin Small o with grave */ MACRO1( 211, "'O", "\\'O" ), /* Latin Capital O with acute */ MACRO1( 243, "'o", "\\'o" ), /* Latin Small o with acute */ MACRO1( 212, "^O", "\\^O" ), /* Latin Capital O with circumflex */ MACRO1( 244, "^o", "\\^o" ), /* Latin Small o with circumflex */ MACRO1( 213, "~O", "\\~O" ), /* Latin Capital O with tilde */ MACRO1( 245, "~o", "\\~o" ), /* Latin Small o with tilde */ MACRO1( 214, "\"O", "\\\"O" ), /* Latin Capital O with diaeresis */ MACRO1( 246, "\"o", "\\\"o" ), /* Latin Small o with diaeresis */ MACRO1( 216, "O", "\\O" ), /* Latin Capital O with stroke */ MACRO1( 248, "o", "\\o" ), /* Latin Small o with stroke */ MACRO1( 332, "={O}", "\\=O" ), /* Latin Capital O with macron */ MACRO1( 333, "={o}", "\\=o" ), /* Latin Small o with macron */ MACRO2( 334, "u{O}", "\\u O", "\\uO" ), /* Latin Capital O with breve */ MACRO2( 335, "u{o}", "\\u o", "\\uo" ), /* Latin Small o with breve */ MACRO2( 336, "H{O}", "\\H O", "\\HO" ), /* Latin Capital O with double acute */ MACRO2( 337, "H{o}", "\\H o", "\\Ho" ), /* Latin Small o with double acute */ MACRO2( 465, "v{O}", "\\v O", "\\vO" ), /* Latin Capital O with caron */ MACRO2( 466, "v{o}", "\\v o", "\\vo" ), /* Latin Small o with caron */ MACRO2( 490, "k{O}", "\\k O", "\\kO" ), /* Latin Capital O with ogonek */ MACRO2( 491, "k{o}", "\\k o", "\\ko" ), /* Latin Small o with ogonek */ MACRO1( 338, "OE", "\\OE" ), /* Latin Capital OE Ligature */ MACRO1( 339, "oe", "\\oe" ), /* Latin Small oe Ligature */ MACRO1( 340, "'R", "\\'R" ), /* Latin Capital R with acute */ MACRO1( 341, "'r", "\\'r" ), /* Latin Small r with acute */ MACRO2( 342, "c{R}", "\\c R", "\\cR" ), /* Latin Capital R with cedilla */ MACRO2( 343, "c{r}", "\\c r", "\\cr" ), /* Latin Small r with cedilla */ MACRO2( 344, "v{R}", "\\v R", "\\vR" ), /* Latin Capital R with caron */ MACRO2( 345, "v{r}", "\\v r", "\\vr" ), /* Latin Small r with caron */ MACRO1( 346, "'{S}", "\\'S" ), /* Latin Capital S with acute */ MACRO1( 347, "'{s}", "\\'s" ), /* Latin Small s with acute */ MACRO1( 348, "^{S}", "\\^S" ), /* Latin Capital S with circumflex */ MACRO1( 349, "^{s}", "\\^s" ), /* Latin Small s with circumflex */ MACRO2( 350, "c{S}", "\\c S", "\\cS" ), /* Latin Capital S with cedilla */ MACRO2( 351, "c{s}", "\\c s", "\\cs" ), /* Latin Small s with cedilla */ MACRO2( 352, "v{S}", "\\v S", "\\vS" ), /* Latin Capital S with caron */ MACRO2( 353, "v{s}", "\\v s", "\\vs" ), /* Latin Small s with caron */ MACRO1( 223, "ss", "\\ss" ), /* German sz Ligature, "sharp s" */ MACRO2( 354, "c{T}", "\\c T", "\\cT" ), /* Latin Capital T with cedilla */ MACRO2( 355, "c{t}", "\\c t", "\\ct" ), /* Latin Small t with cedilla */ MACRO2( 356, "v{T}", "\\v T", "\\vT" ), /* Latin Capital T with caron */ MACRO2( 357, "v{t}", "\\v t", "\\vt" ), /* Latin Small t with caron */ MACRO1( 217, "`U", "\\`U" ), /* Latin Capital U with grave */ MACRO1( 249, "`u", "\\`u" ), /* Latin Small u with grave */ MACRO1( 218, "'U", "\\'U" ), /* Latin Capital U with acute */ MACRO1( 250, "'u", "\\'u" ), /* Latin Small u with acute */ MACRO1( 219, "^U", "\\^U" ), /* Latin Capital U with circumflex */ MACRO1( 251, "^u", "\\^u" ), /* Latin Small u with circumflex */ MACRO1( 220, "\"U", "\\\"U" ), /* Latin Capital U with diaeresis */ MACRO1( 252, "\"u", "\\\"u" ), /* Latin Small u with diaeresis */ MACRO1( 360, "~{U}", "\\~U" ), /* Latin Capital U with tilde */ MACRO1( 361, "~{u}", "\\~u" ), /* Latin Small u with tilde */ MACRO1( 362, "={U}", "\\=U" ), /* Latin Capital U with macron */ MACRO1( 363, "={u}", "\\=u" ), /* Latin Small u with macron */ MACRO2( 364, "u{U}", "\\u U", "\\uU" ), /* Latin Capital U with breve */ MACRO2( 365, "u{u}", "\\u u", "\\uu" ), /* Latin Small u with breve */ MACRO2( 366, "r{U}", "\\r U", "\\rU" ), /* Latin Capital U with ring above */ MACRO2( 367, "r{u}", "\\r u", "\\ru" ), /* Latin Small u with ring above */ MACRO2( 368, "H{U}", "\\H U", "\\HU" ), /* Latin Capital U with double acute */ MACRO2( 369, "H{u}", "\\H u", "\\Hu" ), /* Latin Small u with double acute */ MACRO2( 370, "k{U}", "\\k U", "\\kU" ), /* Latin Capital U with ogonek */ MACRO2( 371, "k{u}", "\\k u", "\\ku" ), /* Latin Small u with ogonek */ MACRO2( 467, "v{U}", "\\v U", "\\vU" ), /* Latin Capital U with caron */ MACRO2( 468, "v{u}", "\\v u", "\\vu" ), /* Latin Small u with caron */ MACRO1( 372, "^{W}", "\\^W" ), /* Latin Capital W with circumflex */ MACRO1( 373, "^{w}", "\\^w" ), /* Latin Small w with circumflex */ MACRO1( 221, "'{Y}", "\\'Y" ), /* Latin Capital Y with acute */ MACRO1( 253, "'y", "\\'y" ), /* Latin Small y with acute */ MACRO1( 374, "^{Y}", "\\^Y" ), /* Latin Capital Y with circumflex */ MACRO1( 375, "^{y}", "\\^y" ), /* Latin Small y with circumflex */ MACRO1( 376, "\"{Y}", "\\\"Y" ), /* Latin Capital Y with diaeresis */ MACRO1( 255, "\"y", "\\\"y" ), /* Latin Small y with diaeresis */ MACRO1( 377, "'{Z}", "\\'Z" ), /* Latin Capital Z with acute */ MACRO1( 378, "'{z}", "\\'z" ), /* Latin Small z with acute */ MACRO1( 379, ".{Z}", "\\.Z" ), /* Latin Capital Z with dot above */ MACRO1( 380, ".{z}", "\\.z" ), /* Latin Small z with dot above */ MACRO2( 381, "v{Z}", "\\v Z", "\\vZ" ), /* Latin Capital Z with caron */ MACRO2( 382, "v{z}", "\\v z", "\\vz" ), /* Latin Small z with caron */ MATH1 ( 8203, "\\null", "\\null" ), /* No space ​ Needs to be before \nu*/ MATH1 ( 913, "\\Alpha", "\\Alpha" ), /*GREEK CAPITAL LETTER ALPHA*/ MATH1 ( 914, "\\Beta", "\\Beta" ), /*GREEK CAPITAL LETTER BETA*/ MATH1 ( 915, "\\Gamma", "\\Gamma" ), /*GREEK CAPITAL LETTER GAMMA*/ MATH1 ( 916, "\\Delta", "\\Delta" ), /*GREEK CAPITAL LETTER DELTA*/ MATH1 ( 917, "\\Epsilon", "\\Epsilon" ), /*GREEK CAPITAL LETTER EPSILON*/ MATH1 ( 918, "\\Zeta", "\\Zeta" ), /*GREEK CAPITAL LETTER ZETA*/ MATH1 ( 919, "\\Eta", "\\Eta" ), /*GREEK CAPITAL LETTER ETA*/ MATH1 ( 920, "\\Theta", "\\Theta" ), /*GREEK CAPITAL LETTER THETA*/ MATH1 ( 921, "\\Iota", "\\Iota" ), /*GREEK CAPITAL LETTER IOTA*/ MATH1 ( 922, "\\Kappa", "\\Kappa" ), /*GREEK CAPITAL LETTER KAPPA*/ MATH1 ( 923, "\\Lambda", "\\Lambda" ), /*GREEK CAPITAL LETTER LAMDA*/ MATH1 ( 924, "\\Mu", "\\Mu" ), /*GREEK CAPITAL LETTER MU*/ MATH1 ( 925, "\\Nu", "\\Nu" ), /*GREEK CAPITAL LETTER NU*/ MATH1 ( 926, "\\Xi", "\\Xi" ), /*GREEK CAPITAL LETTER XI*/ MATH1 ( 927, "\\Omicron", "\\Omicron" ), /*GREEK CAPITAL LETTER OMICRON*/ MATH1 ( 928, "\\Pi", "\\Pi" ), /*GREEK CAPITAL LETTER PI*/ MATH1 ( 929, "\\Rho", "\\Rho" ), /*GREEK CAPITAL LETTER RHO*/ MATH1 ( 931, "\\Sigma", "\\Sigma" ), /*GREEK CAPITAL LETTER SIGMA*/ MATH1 ( 932, "\\Tau", "\\Tau" ), /*GREEK CAPITAL LETTER TAU*/ MATH1 ( 933, "\\Upsilon", "\\Upsilon" ), /*GREEK CAPITAL LETTER UPSILON*/ MATH1 ( 934, "\\Phi", "\\Phi" ), /*GREEK CAPITAL LETTER PHI*/ MATH1 ( 935, "\\Chi", "\\Chi" ), /*GREEK CAPITAL LETTER CHI*/ MATH1 ( 936, "\\Psi", "\\Psi" ), /*GREEK CAPITAL LETTER PSI*/ MATH1 ( 937, "\\Omega", "\\Omega" ), /*GREEK CAPITAL LETTER OMEGA*/ MATH1 ( 945, "\\alpha", "\\alpha" ), /*GREEK SMALL LETTER ALPHA*/ MATH1 ( 946, "\\beta", "\\beta" ), /*GREEK SMALL LETTER BETA*/ MATH1 ( 947, "\\gamma", "\\gamma" ), /*GREEK SMALL LETTER GAMMA*/ MATH1 ( 948, "\\delta", "\\delta" ), /*GREEK SMALL LETTER DELTA*/ MATH1 ( 949, "\\epsilon", "\\epsilon" ), /*GREEK SMALL LETTER EPSILON*/ MATH1 ( 950, "\\zeta", "\\zeta" ), /*GREEK SMALL LETTER ZETA*/ MATH1 ( 951, "\\eta", "\\eta" ), /*GREEK SMALL LETTER ETA*/ MATH1 ( 952, "\\theta", "\\theta" ), /*GREEK SMALL LETTER THETA*/ MATH1 ( 953, "\\iota", "\\iota" ), /*GREEK SMALL LETTER IOTA*/ MATH1 ( 954, "\\kappa", "\\kappa" ), /*GREEK SMALL LETTER KAPPA*/ MATH1 ( 955, "\\lambda", "\\lambda" ), /*GREEK SMALL LETTER LAMDA*/ MATH1 ( 956, "\\mu", "\\mu" ), /*GREEK SMALL LETTER MU*/ MATH1 ( 957, "\\nu", "\\nu" ), /*GREEK SMALL LETTER NU*/ MATH1 ( 958, "\\xi", "\\xi" ), /*GREEK SMALL LETTER XI*/ MATH1 ( 959, "\\omicron", "\\omicron" ), /*GREEK SMALL LETTER OMICRON*/ MATH1 ( 960, "\\pi", "\\pi" ), /*GREEK SMALL LETTER PI*/ MATH1 ( 961, "\\rho", "\\rho" ), /*GREEK SMALL LETTER RHO*/ MATH1 ( 963, "\\sigma", "\\sigma" ), /*GREEK SMALL LETTER SIGMA*/ MATH1 ( 964, "\\tau", "\\tau" ), /*GREEK SMALL LETTER TAU*/ MATH1 ( 965, "\\upsilon", "\\upsilon" ), /*GREEK SMALL LETTER UPSILON*/ MATH1 ( 966, "\\phi", "\\phi" ), /*GREEK SMALL LETTER PHI*/ MATH1 ( 967, "\\chi", "\\chi" ), /*GREEK SMALL LETTER CHI*/ MATH1 ( 968, "\\psi", "\\psi" ), /*GREEK SMALL LETTER PSI*/ MATH1 ( 969, "\\omega", "\\omega" ), /*GREEK SMALL LETTER OMEGA*/ MACRO2( 181, "textmu", "\\textmu", "\\mu" ), /* 181=micro sign, techically µ */ /* Make sure that these don't stomp on other latex things above */ COMBO2( 8212, "---", "---", "\\textemdash" ), /* Em-dash — */ COMBO2( 8211, "--", "--", "\\textendash" ), /* En-dash – */ MACRO2( 8230, "ldots", "\\ldots", "\\textellipsis" ), /* Ellipsis … */ COMBO2( 8220, "``", "``", "\\textquotedblleft" ), /* Opening double quote “ */ COMBO1( 8221, "''", "\"" ), /* Closing double quote ” */ COMBO2( 8221, "''", "''", "\\textquotedblright" ), /* Closing double quote ” */ COMBO2( 8216, "`", "`", "\\textquoteleft" ), /* Opening single quote ‘ */ COMBO2( 8217, "'", "'", "\\textquoteright" ), /* Closing single quote ’ */ MACRO1( 8242, "textasciiacutex", "\\textasciiacutex" ), /* Prime symbol ′ */ MACRO2( 180, "textasciiacute", "\\textasciiacute", "\\'" ), /* acute accent ´ */ MACRO1( 8243, "textacutedbl", "\\textacutedbl" ), /* Double prime ″ */ MACRO2( 8245, "textasciigrave", "\\textasciigrave", "\\`" ), /* Grave accent ‵ */ MACRO1( 8963, "textasciicircum", "\\textasciicircum" ), /* ⌃ */ MACRO1( 184, "textasciicedilla", "\\textasciicedilla" ), /* cedilla ¸ */ MACRO1( 168, "textasciidieresis", "\\textasciidieresis" ), /* dieresis ¨ */ MACRO1( 175, "textasciimacron", "\\textasciimacron" ), /* macron ¯ */ MACRO1( 8593, "textuparrow", "\\textuparrow" ), /* Up arrow ↑ */ MACRO1( 8595, "textdownarrow", "\\textdownarrow" ), /* Down arrow ↓ */ MACRO1( 8594, "textrightarrow", "\\textrightarrow" ), /* Right arrow → */ MACRO1( 8592, "textleftarrow", "\\textleftarrow" ), /* Left arrow ← */ MACRO1(12296, "textlangle", "\\textlangle" ), /* L-angle 〈 */ MACRO1(12297, "textrangle", "\\textrangle" ), /* R-angle 〉 */ MACRO1( 166, "textbrokenbar", "\\textbrokenbar" ), /* Broken vertical bar ¦ */ MACRO2( 167, "textsection", "\\textsection", "\\S" ), /* Section sign, § */ MACRO2( 170, "textordfeminine", "\\textordfeminine", "^a" ), /* ª */ MACRO1( 172, "textlnot", "\\textlnot" ), /* Lnot ¬ */ MACRO1( 182, "textparagraph", "\\textparagraph" ), /* Paragraph sign ¶ */ MACRO1( 183, "textperiodcentered", "\\textperiodcentered" ), /* Period-centered · */ MACRO1( 186, "textordmasculine", "\\textordmasculine" ), /* º */ MACRO1( 8214, "textbardbl", "\\textbardbl" ), /* Double vertical bar ‖ */ MACRO1( 8224, "textdagger", "\\textdagger" ), /* Dagger † */ MACRO1( 8225, "textdaggerdbl", "\\textdaggerdbl" ), /* Double dagger &x2021; */ MACRO1( 8226, "textbullet", "\\textbullet" ), /* Bullet • */ MACRO1( 8494, "textestimated", "\\textestimated" ), /* Estimated ℮ */ MACRO1( 9526, "textopenbullet", "\\textopenbullet" ), /* ┶ */ MACRO1( 8261, "textlquill", "\\textlquill" ), /* Left quill ⁅ */ MACRO1( 8262, "textrquill", "\\textrquill" ), /* Right quill ⁆ */ MACRO2( 8194, "enspace", "\\enspace", "\\hspace.5em" ), /* En-space   */ MACRO2( 8195, "emspace", "\\emspace", "\\hspace1em" ), /* Em-space   */ MACRO1( 8201, "thinspace", "\\thinspace" ), /* Thin space   */ MACRO1( 8203, "textnospace", "\\textnospace" ), /* No space ​ */ MACRO1( 9251, "textvisiblespace", "\\textvisiblespace" ), /* Visible space ␣ */ MACRO1( 215, "texttimes", "\\texttimes" ), /* Multiplication symbol × */ MACRO1( 247, "textdiv", "\\textdiv" ), /* Division symbol ÷ */ MACRO1( 177, "textpm", "\\textpm" ), /* Plus-minus character &#B1; */ MACRO1( 188, "textonequarter", "\\textonequarter" ), /* Vulgar fraction one quarter ¼ */ MACRO1( 189, "textonehalf", "\\textonehalf" ), /* Vulgar fraction one half ½ */ MACRO1( 190, "textthreequarters", "\\textthreequarters" ), /* Vulgar fraction three quarters ¾ */ MACRO1( 8240, "texttenthousand", "\\texttenthousand" ), /* Per thousand sign ‰ */ MACRO1( 8241, "textpertenthousand", "\\textpertenthousand" ), /* Per ten thousand sign ‱*/ MACRO1( 8260, "textfractionssolidus", "\\textfractionsolidus" ), /* &x8260 */ MACRO1( 8451, "textcelcius", "\\textcelcius" ), /* Celcius ℃ */ MACRO1( 8470, "textnumero", "\\textnumero" ), /* Numero symbol № */ MACRO1( 8486, "textohm", "\\textohm" ), /* Ohm symbol Ω */ MACRO1( 8487, "textmho", "\\textmho" ), /* Mho symbol ℧ */ MACRO1( 8730, "textsurd", "\\textsurd" ), /* √ */ MACRO2( 185, "textonesuperior", "\\textonesuperior", "^1" ), /*Superscript 1 ¹ */ MACRO2( 178, "texttwosuperior", "\\texttwosuperior", "^2" ), /*Superscript 2 ² */ MACRO2( 179, "textthreesuperior", "\\textthreesuperior", "^3" ), /*Superscript 3 ³ */ MATH1 ( 8308, "^4", "^4" ), /*Superscript 4 U+2074*/ MATH1 ( 8309, "^5", "^5" ), /*Superscript 5 U+2075*/ MATH1 ( 8310, "^6", "^6" ), /*Superscript 6 U+2076*/ MATH1 ( 8311, "^7", "^7" ), /*Superscript 7 U+2077*/ MATH1 ( 8312, "^8", "^8" ), /*Superscript 8 U+2078*/ MATH1 ( 8313, "^9", "^9" ), /*Superscript 9 U+2079*/ MATH1 ( 8314, "^+", "^+" ), /*Superscript - U+207A*/ MATH1 ( 8315, "^-", "^-" ), /*Superscript - U+207B*/ MATH1 ( 8316, "^=", "^=" ), /*Superscript = U+207C*/ MATH1 ( 8317, "^(", "^(" ), /*Superscript ) U+207D*/ MATH1 ( 8318, "^)", "^)" ), /*Superscript ) U+207E*/ MATH1 ( 8319, "^n", "^n" ), /*Superscript n U+207F*/ MATH1 ( 8320, "_0", "_0" ), /*Subscript 0 U+2080*/ MATH1 ( 8321, "_1", "_1" ), /*Subscript 1 U+2081*/ MATH1 ( 8322, "_2", "_2" ), /*Subscript 2 U+2082*/ MATH1 ( 8323, "_3", "_3" ), /*Subscript 3 U+2083*/ MATH1 ( 8324, "_4", "_4" ), /*Subscript 4 U+2084*/ MATH1 ( 8325, "_5", "_5" ), /*Subscript 5 U+2085*/ MATH1 ( 8326, "_6", "_6" ), /*Subscript 6 U+2086*/ MATH1 ( 8327, "_7", "_7" ), /*Subscript 7 U+2087*/ MATH1 ( 8328, "_8", "_8" ), /*Subscript 8 U+2088*/ MATH1 ( 8329, "_9", "_9" ), /*Subscript 9 U+2089*/ MATH2( 183, "\\cdot", "\\cdot", "^." ), MATH1( 2192, "\\to", "\\to" ), MACRO1( 161, "textexclamdown", "\\textexclamdown" ), /* Inverted exclamation mark ¡*/ MACRO1( 191, "textquestiondown", "\\textquestiondown" ), /* Inverted question mark ¿ */ MACRO1( 162, "textcent", "\\textcent" ), /* Cent sign ¢ */ MACRO2( 163, "textsterling", "\\textsterling", "\\pounds" ), /* Pound sign £ */ MACRO1( 165, "textyen", "\\textyen" ), /* Yen sign ¥ */ MACRO1( 402, "textflorin", "\\textflorin" ), /* Florin sign ƒ */ MACRO1( 3647, "textbaht", "\\textbaht" ), /* Thai currency ฿ */ MACRO1( 8355, "textfrenchfranc", "\\textfrenchfranc" ), /* French franc ₣ */ MACRO1( 8356, "textlira", "\\textlira" ), /* Lira ₤ */ MACRO1( 8358, "textnaira", "\\textnaira" ), /* Naira ₦ */ MACRO1( 8361, "textwon", "\\textwon" ), /* ₩ */ MACRO1( 8363, "textdong", "\\textdong" ), /* Vietnamese currency ₫ */ MACRO1( 8364, "texteuro", "\\texteuro" ), /* Euro sign */ MACRO1( 169, "textcopyright", "\\textcopyright" ), /* Copyright (C) © */ MACRO1( 175, "textregistered", "\\textregistered" ), /* Registered sign (R) ¯*/ MACRO2( 8482, "texttrademark", "\\texttrademark", "^TM" ), /* Trademark (TM) ™ */ MACRO2( 8480, "textservicemark", "\\textservicemark", "^SM" ), /* Servicemark (SM) ℠*/ MACRO1( 8471, "textcircledP", "\\textcircledP" ), /* Circled P ࡅ */ /* keep it after all other things like \~n */ MACRO1( 35, "#", "\\#" ), /* Number/pound/hash sign */ MACRO1( 36, "$", "\\$" ), /* Dollar Sign */ MACRO2( 36, "$", "\\$", "\\textdollar" ), MACRO1( 37, "%", "\\%" ), /* Percent Sign */ MACRO1( 37, "%", "\\%" ), MACRO1( 38, "&", "\\&" ), /* Ampersand */ MACRO1( 95, "_", "\\_" ), /* Underscore alone indicates subscript */ MACRO1( 95, "_", "\\textunderscore" ), MACRO2( 123, "{", "\\{", "\\textbraceleft" ), /* Left Curly Bracket */ MACRO2( 125, "}", "\\}", "\\textbraceright" ), /* Right Curly Bracket */ MACRO2( 126, "~", "\\~", "\\textasciitilde" ), MACRO1( 92, "backslash", "\\backslash" ), /* Backslash */ MACRO2( 176, "textdegree", "\\textdegree", "^\\circ" ), /* Degree sign */ }; static int nlatex_chars = sizeof(latex_chars)/sizeof(latex_chars[0]); static struct latex_chars only_from_latex[] = { COMBO1( 32, " ", "~" ), MACRO1( 32, " ", "\\ " ), /* escaping the space is used to avoid extra space after periods */ }; static int num_only_from_latex = sizeof( only_from_latex ) / sizeof( only_from_latex[0] ); /* latex2char() * * Use the latex_chars[] lookup table to determine if any character * is a special LaTeX code. Note that if it is, then the equivalency * is a Unicode character and we need to flag (by setting *unicode to 1) * that we know the output is Unicode. Otherwise, we set *unicode to 0, * meaning that the output is whatever character set was given to us * (which could be Unicode, but is not necessarily Unicode). * */ static unsigned int lookup_latex( struct latex_chars *lc, int n, char *p, unsigned int *pos, int *unicode ) { struct latex_entry *variant; int i, j; for ( i=0; ientry == NULL ) break; if ( !strncmp( p, variant->entry, variant->length ) ) { *pos = *pos + variant->length; *unicode = 1; return lc[i].unicode; } } } return 0; } unsigned int latex2char( char *s, unsigned int *pos, int *unicode ) { unsigned int value, result; char *p; p = &( s[*pos] ); value = (unsigned char) *p; if ( strchr( "\\\'\"`-^_lL", value ) ) { result = lookup_latex( latex_chars, nlatex_chars, p, pos, unicode ); if ( result!=0 ) return result; } if ( value=='~' || value=='\\' ) { result = lookup_latex( only_from_latex, num_only_from_latex, p, pos, unicode ); if ( result!=0 ) return result; } *unicode = 0; *pos = *pos + 1; return value; } void uni2latex( unsigned int ch, char buf[], int buf_size ) { int i, j, n; if ( buf_size==0 ) return; buf[0] = '?'; buf[1] = '\0'; if ( ch==' ' ) { buf[0] = ' '; /*special case to avoid  */ return; } for ( i=0; i #include #include #include "bibdefs.h" #include "is_ws.h" #include "latex_parse.h" typedef struct latex_node { struct latex_edge *next_edge; struct latex_node *down_node; } latex_node; typedef struct latex_edge { struct latex_node *next_node; str text; } latex_edge; static latex_node * latex_node_new( void ) { return ( latex_node * ) calloc( 1, sizeof( latex_node ) ); } static void latex_node_delete( latex_node *n ) { free( n ); } static latex_edge * latex_edge_new( void ) { latex_edge *e; e = ( latex_edge * ) calloc( 1, sizeof( latex_edge ) ); if ( e ) str_init( &(e->text) ); return e; } static void latex_edge_delete( latex_edge *e ) { str_free( &(e->text) ); free( e ); } static int is_unescaped( char *p, unsigned long *offset, char c ) { if ( *p!=c ) return 0; if ( *offset > 0 && *(p-1)=='\\' ) return 0; return 1; } static int build_latex_graph_r( str *in, unsigned long *offset, int *mathmode, int depth, latex_node **node ) { latex_node *newnode, *downnode; int status = BIBL_OK; latex_edge *newedge; char *p; newnode = latex_node_new(); if ( !newnode ) return BIBL_ERR_MEMERR; newedge = latex_edge_new(); if ( !newedge ) { latex_node_delete( newnode ); return BIBL_ERR_MEMERR; } *node = newnode; newnode->next_edge = newedge; p = str_cstr( in ) + *offset; while ( *p ) { if ( is_unescaped( p, offset, '{' ) ) { *offset += 1; newnode = latex_node_new(); if ( !newnode ) { status = BIBL_ERR_MEMERR; goto out; } newedge->next_node = newnode; newedge = latex_edge_new(); if ( !newedge ) { status = BIBL_ERR_MEMERR; goto out; } newnode->next_edge = newedge; status = build_latex_graph_r( in, offset, mathmode, depth+1, &downnode ); if ( status!=BIBL_OK ) goto out; newnode->down_node = downnode; p = str_cstr( in ) + *offset; } else if ( is_unescaped( p, offset, '}' ) ) { *offset += 1; if ( depth==0 ) { fprintf( stderr, "Unmatched '}' character in LaTeX encoding '%s'.\n", str_cstr( in ) ); p++; continue; } goto out; } else if ( is_unescaped( p, offset, '$' ) ) { *mathmode = !(*mathmode); *offset += 1; if ( *mathmode ) { newnode = latex_node_new(); if ( !newnode ) { status = BIBL_ERR_MEMERR; goto out; } newedge->next_node = newnode; newedge = latex_edge_new(); if ( !newedge ) { status = BIBL_ERR_MEMERR; goto out; } newnode->next_edge = newedge; status = build_latex_graph_r( in, offset, mathmode, depth+1, &downnode ); if ( status!=BIBL_OK ) goto out; newnode->down_node = downnode; p = str_cstr( in ) + *offset; } else { if ( depth==0 ) { fprintf( stderr, "Unmatched '$' character in LaTeX encoding '%s'.\n", str_cstr( in ) ); p++; continue; } goto out; } } else { str_addchar( &(newedge->text), *p ); p++; *offset += 1; } } if ( depth!=0 ) { fprintf( stderr, "Unmatched '{' character in LaTeX encoding '%s'.\n", str_cstr( in ) ); } out: if ( status!=BIBL_OK || str_memerr( &(newedge->text) ) ) { latex_node_delete( newnode ); latex_edge_delete( newedge ); *node = NULL; return BIBL_ERR_MEMERR; } return BIBL_OK; } int build_latex_graph( str *in, latex_node **start ) { unsigned long offset = 0; int mathmode = 0; latex_node *n; n = latex_node_new(); if ( !n ) return BIBL_ERR_MEMERR; return build_latex_graph_r( in, &offset, &mathmode, 0, start ); } typedef struct { const char *wbracket; int wbracketsize; const char *wobracket; const char *toreplace; } latex_cmds_t; static const latex_cmds_t latex_cmds[] = { { "\\it", 3, "\\it ", NULL }, { "\\em", 3, "\\em ", NULL }, { "\\bf", 3, "\\bf ", NULL }, { "\\small", 6, "\\small ", NULL }, /* 'textcomp' annotations */ { "\\textit", 7, "\\textit ", NULL }, { "\\textbf", 7, "\\textbf ", NULL }, { "\\textrm", 7, "\\textrm ", NULL }, { "\\textsl", 7, "\\textsl ", NULL }, { "\\textsc", 7, "\\textsc ", NULL }, { "\\textsf", 7, "\\textsf ", NULL }, { "\\texttt", 7, "\\texttt ", NULL }, { "\\emph", 5, "\\emph ", NULL }, { "\\url", 4, "\\url ", NULL }, { "\\mbox", 5, "\\mbox ", NULL }, { "\\mkbibquote", 11, "\\mkbibquote ", NULL }, /* math functions */ { "\\ln", 3, "\\ln ", "ln" }, { "\\sin", 4, "\\sin ", "sin" }, { "\\cos", 4, "\\cos ", "cos" }, { "\\tan", 4, "\\tan ", "tan" }, }; static const int nlatex_cmds = sizeof( latex_cmds ) / sizeof( latex_cmds[0] ); static const latex_cmds_t math_cmds[] = { { "\\ln", 3, "\\ln ", "ln" }, { "\\sin", 4, "\\sin ", "sin" }, { "\\cos", 4, "\\cos ", "cos" }, { "\\tan", 4, "\\tan ", "tan" }, { "\\mathrm", 7, "\\mathrm ", "" }, { "\\rm", 3, "\\rm ", "" }, { "\\LaTeX", 6, "\\LaTeX ", "LaTeX" }, }; static const int nmath_cmds = sizeof( math_cmds ) / sizeof( math_cmds[0] ); /* remove from "ABC \it{DEF}" --> parses to "ABC \it" */ static int remove_latex_cmds_with_brackets( str *s ) { unsigned long offset; int i; for ( i=0; ilen < latex_cmds[i].wbracketsize ) continue; offset = s->len - latex_cmds[i].wbracketsize; if ( !strcmp( str_cstr( s ) + offset, latex_cmds[i].wbracket ) ) { str_trimend( s, latex_cmds[i].wbracketsize ); return 1; } } return 0; } /* remove from "{\it ABC}" */ static void remove_latex_cmds_without_brackets( str *s ) { int i; for ( i=0; idown_node ) { status = collapse_latex_graph( n->down_node, out ); if ( status!=BIBL_OK ) return status; } e = n->next_edge; if ( e ) { if ( !remove_latex_cmds_with_brackets( &(e->text) ) ) remove_latex_cmds_without_brackets( &(e->text) ); remove_math_cmds( &(e->text) ); str_strcat( out, &(e->text) ); if ( str_memerr( &(e->text) ) ) return BIBL_ERR_MEMERR; if ( e->next_node ) { status = collapse_latex_graph( e->next_node, out ); if ( status!=BIBL_OK ) return status; } } return BIBL_OK; } static int string_from_latex_graph( latex_node *n, str *out ) { int status; status = collapse_latex_graph( n, out ); if ( status!=BIBL_OK ) return status; while( str_findreplace( out, " ", " " ) ) {} if ( str_memerr( out ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } #if 0 static void write_latex_graph( latex_node *n ) { latex_edge *e; while ( n ) { if ( n->down_node ) { printf( "+{" ); write_latex_graph( n->down_node ); printf( "}" ); } else printf( "." ); e = n->next_edge; if ( e ) { if ( str_has_value( &(e->text) ) ) printf( "%s", str_cstr( &(e->text) ) ); n = e->next_node; } else n = NULL; } } #endif int latex_parse( str *in, str *out ) { latex_node *n; int status; str_empty( out ); if ( str_is_empty( in ) ) return BIBL_OK; status = build_latex_graph( in, &n ); if ( status!=BIBL_OK ) return status; status = string_from_latex_graph( n, out ); if ( status!=BIBL_OK ) return status; str_trimendingws( out ); return BIBL_OK; } int latex_tokenize( slist *tokens, str *s ) { int i, n = s->len, nbrackets = 0, status = BIBL_OK; str tok, *t; str_init( &tok ); for ( i=0; idata[i]=='{' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets++; str_addchar( &tok, '{' ); } else if ( s->data[i]=='}' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets--; str_addchar( &tok, '}' ); } else if ( !is_ws( s->data[i] ) || nbrackets ) { str_addchar( &tok, s->data[i] ); } else if ( is_ws( s->data[i] ) ) { if ( str_has_value( &tok ) ) { status = slist_add_ret( tokens, &tok, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; } str_empty( &tok ); } } if ( str_has_value( &tok ) ) { if ( str_memerr( &tok ) ) { status = BIBL_ERR_MEMERR; goto out; } status = slist_add_ret( tokens, &tok, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; } for ( i=0; in; ++i ) { t = slist_str( tokens, i ); str_trimstartingws( t ); str_trimendingws( t ); if ( str_memerr( t ) ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &tok ); return status; } hs-bibutils-6.10.0.0/bibutils/latex_parse.c0000755000000000000000000002060507346545000016650 0ustar0000000000000000/* * latex_parse.c * * Parse LaTeX code. * * Copyright (c) Chris Putnam 2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "bibdefs.h" #include "is_ws.h" #include "latex_parse.h" typedef struct latex_node { struct latex_edge *next_edge; struct latex_node *down_node; } latex_node; typedef struct latex_edge { struct latex_node *next_node; str text; } latex_edge; static latex_node * latex_node_new( void ) { return ( latex_node * ) calloc( 1, sizeof( latex_node ) ); } static void latex_node_delete( latex_node *n ) { free( n ); } static latex_edge * latex_edge_new( void ) { latex_edge *e; e = ( latex_edge * ) calloc( 1, sizeof( latex_edge ) ); if ( e ) str_init( &(e->text) ); return e; } static void latex_edge_delete( latex_edge *e ) { str_free( &(e->text) ); free( e ); } static int is_unescaped( char *p, unsigned long *offset, char c ) { if ( *p!=c ) return 0; if ( *offset > 0 && *(p-1)=='\\' ) return 0; return 1; } static int build_latex_graph_r( str *in, unsigned long *offset, int *mathmode, int depth, latex_node **node ) { latex_node *newnode, *downnode; int status = BIBL_OK; latex_edge *newedge; char *p; newnode = latex_node_new(); if ( !newnode ) return BIBL_ERR_MEMERR; newedge = latex_edge_new(); if ( !newedge ) { latex_node_delete( newnode ); return BIBL_ERR_MEMERR; } *node = newnode; newnode->next_edge = newedge; p = str_cstr( in ) + *offset; while ( *p ) { if ( is_unescaped( p, offset, '{' ) ) { *offset += 1; newnode = latex_node_new(); if ( !newnode ) { status = BIBL_ERR_MEMERR; goto out; } newedge->next_node = newnode; newedge = latex_edge_new(); if ( !newedge ) { status = BIBL_ERR_MEMERR; goto out; } newnode->next_edge = newedge; status = build_latex_graph_r( in, offset, mathmode, depth+1, &downnode ); if ( status!=BIBL_OK ) goto out; newnode->down_node = downnode; p = str_cstr( in ) + *offset; } else if ( is_unescaped( p, offset, '}' ) ) { *offset += 1; if ( depth==0 ) { fprintf( stderr, "Unmatched '}' character in LaTeX encoding '%s'.\n", str_cstr( in ) ); p++; continue; } goto out; } else if ( is_unescaped( p, offset, '$' ) ) { *mathmode = !(*mathmode); *offset += 1; if ( *mathmode ) { newnode = latex_node_new(); if ( !newnode ) { status = BIBL_ERR_MEMERR; goto out; } newedge->next_node = newnode; newedge = latex_edge_new(); if ( !newedge ) { status = BIBL_ERR_MEMERR; goto out; } newnode->next_edge = newedge; status = build_latex_graph_r( in, offset, mathmode, depth+1, &downnode ); if ( status!=BIBL_OK ) goto out; newnode->down_node = downnode; p = str_cstr( in ) + *offset; } else { if ( depth==0 ) { fprintf( stderr, "Unmatched '$' character in LaTeX encoding '%s'.\n", str_cstr( in ) ); p++; continue; } goto out; } } else { str_addchar( &(newedge->text), *p ); p++; *offset += 1; } } if ( depth!=0 ) { fprintf( stderr, "Unmatched '{' character in LaTeX encoding '%s'.\n", str_cstr( in ) ); } out: if ( status!=BIBL_OK || str_memerr( &(newedge->text) ) ) { latex_node_delete( newnode ); latex_edge_delete( newedge ); *node = NULL; return BIBL_ERR_MEMERR; } return BIBL_OK; } int build_latex_graph( str *in, latex_node **start ) { unsigned long offset = 0; int mathmode = 0; latex_node *n; n = latex_node_new(); if ( !n ) return BIBL_ERR_MEMERR; return build_latex_graph_r( in, &offset, &mathmode, 0, start ); } typedef struct { const char *wbracket; int wbracketsize; const char *wobracket; const char *toreplace; } latex_cmds_t; static const latex_cmds_t latex_cmds[] = { { "\\it", 3, "\\it ", NULL }, { "\\em", 3, "\\em ", NULL }, { "\\bf", 3, "\\bf ", NULL }, { "\\small", 6, "\\small ", NULL }, /* 'textcomp' annotations */ { "\\textit", 7, "\\textit ", NULL }, { "\\textbf", 7, "\\textbf ", NULL }, { "\\textrm", 7, "\\textrm ", NULL }, { "\\textsl", 7, "\\textsl ", NULL }, { "\\textsc", 7, "\\textsc ", NULL }, { "\\textsf", 7, "\\textsf ", NULL }, { "\\texttt", 7, "\\texttt ", NULL }, { "\\emph", 5, "\\emph ", NULL }, { "\\url", 4, "\\url ", NULL }, { "\\mbox", 5, "\\mbox ", NULL }, { "\\mkbibquote", 11, "\\mkbibquote ", NULL }, /* math functions */ { "\\ln", 3, "\\ln ", "ln" }, { "\\sin", 4, "\\sin ", "sin" }, { "\\cos", 4, "\\cos ", "cos" }, { "\\tan", 4, "\\tan ", "tan" }, }; static const int nlatex_cmds = sizeof( latex_cmds ) / sizeof( latex_cmds[0] ); static const latex_cmds_t math_cmds[] = { { "\\ln", 3, "\\ln ", "ln" }, { "\\sin", 4, "\\sin ", "sin" }, { "\\cos", 4, "\\cos ", "cos" }, { "\\tan", 4, "\\tan ", "tan" }, { "\\mathrm", 7, "\\mathrm ", "" }, { "\\rm", 3, "\\rm ", "" }, { "\\LaTeX", 6, "\\LaTeX ", "LaTeX" }, }; static const int nmath_cmds = sizeof( math_cmds ) / sizeof( math_cmds[0] ); /* remove from "ABC \it{DEF}" --> parses to "ABC \it" */ static int remove_latex_cmds_with_brackets( str *s ) { unsigned long offset; int i; for ( i=0; ilen < latex_cmds[i].wbracketsize ) continue; offset = s->len - latex_cmds[i].wbracketsize; if ( !strcmp( str_cstr( s ) + offset, latex_cmds[i].wbracket ) ) { str_trimend( s, latex_cmds[i].wbracketsize ); return 1; } } return 0; } /* remove from "{\it ABC}" */ static void remove_latex_cmds_without_brackets( str *s ) { int i; for ( i=0; idown_node ) { status = collapse_latex_graph( n->down_node, out ); if ( status!=BIBL_OK ) return status; } e = n->next_edge; if ( e ) { if ( !remove_latex_cmds_with_brackets( &(e->text) ) ) remove_latex_cmds_without_brackets( &(e->text) ); remove_math_cmds( &(e->text) ); str_strcat( out, &(e->text) ); if ( str_memerr( &(e->text) ) ) return BIBL_ERR_MEMERR; if ( e->next_node ) { status = collapse_latex_graph( e->next_node, out ); if ( status!=BIBL_OK ) return status; } } return BIBL_OK; } static int string_from_latex_graph( latex_node *n, str *out ) { int status; status = collapse_latex_graph( n, out ); if ( status!=BIBL_OK ) return status; while( str_findreplace( out, " ", " " ) ) {} if ( str_memerr( out ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } #if 0 static void write_latex_graph( latex_node *n ) { latex_edge *e; while ( n ) { if ( n->down_node ) { printf( "+{" ); write_latex_graph( n->down_node ); printf( "}" ); } else printf( "." ); e = n->next_edge; if ( e ) { if ( str_has_value( &(e->text) ) ) printf( "%s", str_cstr( &(e->text) ) ); n = e->next_node; } else n = NULL; } } #endif int latex_parse( str *in, str *out ) { latex_node *n; int status; str_empty( out ); if ( str_is_empty( in ) ) return BIBL_OK; status = build_latex_graph( in, &n ); if ( status!=BIBL_OK ) return status; status = string_from_latex_graph( n, out ); if ( status!=BIBL_OK ) return status; str_trimendingws( out ); return BIBL_OK; } int latex_tokenize( slist *tokens, str *s ) { int i, n = s->len, nbrackets = 0, status = BIBL_OK; str tok, *t; str_init( &tok ); for ( i=0; idata[i]=='{' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets++; str_addchar( &tok, '{' ); } else if ( s->data[i]=='}' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets--; str_addchar( &tok, '}' ); } else if ( !is_ws( s->data[i] ) || nbrackets ) { str_addchar( &tok, s->data[i] ); } else if ( is_ws( s->data[i] ) ) { if ( str_has_value( &tok ) ) { status = slist_add_ret( tokens, &tok, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; } str_empty( &tok ); } } if ( str_has_value( &tok ) ) { if ( str_memerr( &tok ) ) { status = BIBL_ERR_MEMERR; goto out; } status = slist_add_ret( tokens, &tok, BIBL_OK, BIBL_ERR_MEMERR ); if ( status!=BIBL_OK ) goto out; } for ( i=0; in; ++i ) { t = slist_str( tokens, i ); str_trimstartingws( t ); str_trimendingws( t ); if ( str_memerr( t ) ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &tok ); return status; } hs-bibutils-6.10.0.0/bibutils/latex_parse.h0000755000000000000000000000026507346545000016655 0ustar0000000000000000/* * latex_parse.h */ #ifndef LATEX_PARSE_H #define LATEX_PARSE_H #include "slist.h" int latex_parse( str *in, str *out ); int latex_tokenize( slist *tokens, str *s ); #endif hs-bibutils-6.10.0.0/bibutils/marc_auth.c0000644000000000000000000006377007346545000016313 0ustar0000000000000000/* * marc_auth.c * * MARC (MAchine-Readable Cataloging) 21 authority codes/values from the Library of Congress initiative * * Copyright (c) Chris Putnam 2004-2020 * * Source code released under the GPL version 2 * */ #include "marc_auth.h" #include static const char *marc_genre[] = { "abstract or summary", "art original", "art reproduction", "article", "atlas", "autobiography", "bibliography", "biography", "book", "calendar", "catalog", "chart", "comic or graphic novel", "comic strip", "conference publication", "database", "dictionary", "diorama", "directory", "discography", "drama", "encyclopedia", "essay", "festschrift", "fiction", "filmography", "filmstrip", "finding aid", "flash card", "folktale", "font", "game", "government publication", "graphic", "globe", "handbook", "history", "humor, satire", "hymnal", "index", "instruction", "interview", "issue", "journal", "kit", "language instruction", "law report or digest", "legal article", "legal case and case notes", "legislation", "letter", "loose-leaf", "map", "memoir", "microscope slide", "model", "motion picture", "multivolume monograph", "newspaper", "novel", "numeric data", "offprint", "online system or service", "patent", "periodical", "picture", "poetry", "programmed text", "realia", "rehearsal", "remote sensing image", "reporting", "review", "series", "short story", "slide", "sound", "speech", "standard or specification", "statistics", "survey of literature", "technical drawing", "technical report", "thesis", "toy", "transparency", "treaty", "videorecording", "web site", "yearbook", }; static const int nmarc_genre = sizeof( marc_genre ) / sizeof( const char* ); static const char *marc_resource[] = { "cartographic", "kit", "mixed material", "moving image", "notated music", "software, multimedia", "sound recording", "sound recording - musical", "sound recording - nonmusical", "still image", "text", "three dimensional object" }; static const int nmarc_resource = sizeof( marc_resource ) / sizeof( const char* ); /* www.loc.gov/marc/relators/relacode.html */ typedef struct marc_trans { char *internal_name; char *abbreviation; } marc_trans; static const marc_trans relators[] = { { "ABRIDGER", "abr" }, { "ART_COPYIST", "acp" }, { "ACTOR", "act" }, { "ART_DIRECTOR", "adi" }, { "ADAPTER", "adp" }, { "AFTERAUTHOR", "aft" }, { "ANALYST", "anl" }, { "ANIMATOR", "anm" }, { "ANNOTATOR", "ann" }, { "BIBLIOGRAPHIC_ANTECEDENT", "ant" }, { "APPELLEE", "ape" }, { "APPELLANT", "apl" }, { "APPLICANT", "app" }, { "AUTHOR", "aqt" },/* Author in quotations or text abstracts */ { "ARCHITECT", "arc" }, { "ARTISTIC_DIRECTOR", "ard" }, { "ARRANGER", "arr" }, { "ARTIST", "art" }, { "ASSIGNEE", "asg" }, { "ASSOCIATED_NAME", "asn" }, { "AUTOGRAPHER", "ato" }, { "ATTRIBUTED_NAME", "att" }, { "AUCTIONEER", "auc" }, { "AUTHOR", "aud" },/* Author of dialog */ { "INTROAUTHOR", "aui" },/* Author of introduction, etc. */ { "AUTHOR", "aus" },/* Screenwriter */ { "AUTHOR", "aut" }, { "AUTHOR", "author" }, { "AFTERAUTHOR", "author of afterword, colophon, etc." }, { "INTROAUTHOR", "author of introduction, etc." }, { "BINDING_DESIGNER", "bdd" }, { "BOOKJACKET_DESIGNER", "bjd" }, { "BOOK_DESIGNER", "bkd" }, { "BOOK_PRODUCER", "bkp" }, { "AUTHOR", "blw" },/* Blurb writer */ { "BINDER", "bnd" }, { "BOOKPLATE_DESIGNER", "bpd" }, { "BROADCASTER", "brd" }, { "BRAILLE_EMBOSSER", "brl" }, { "BOOKSELLER", "bsl" }, { "CASTER", "cas" }, { "CONCEPTOR", "ccp" }, { "CHOREOGRAPHER", "chr" }, { "COLLABORATOR", "clb" }, { "CLIENT", "cli" }, { "CALLIGRAPHER", "cll" }, { "COLORIST", "clr" }, { "COLLOTYPER", "clt" }, { "COMMENTATOR", "cmm" }, { "COMPOSER", "cmp" }, { "COMPOSITOR", "cmt" }, { "CONDUCTOR", "cnd" }, { "CINEMATOGRAPHER", "cng" }, { "CENSOR", "cns" }, { "CONTESTANT-APPELLEE", "coe" }, { "COLLECTOR", "col" }, { "COMPILER", "com" }, { "CONSERVATOR", "con" }, { "COLLECTION_REGISTRAR", "cor" }, { "CONTESTANT", "cos" }, { "CONTESTANT-APPELLANT", "cot" }, { "COURT_GOVERNED", "cou" }, { "COVER_DESIGNER", "cov" }, { "COPYRIGHT_CLAIMANT", "cpc" }, { "COMPLAINANT-APPELLEE", "cpe" }, { "COPYRIGHT_HOLDER", "cph" }, { "COMPLAINANT", "cpl" }, { "COMPLAINANT-APPELLANT", "cpt" }, { "AUTHOR", "cre" },/* Creator */ { "AUTHOR", "creator" },/* Creator */ { "CORRESPONDENT", "crp" }, { "CORRECTOR", "crr" }, { "COURT_REPORTER", "crt" }, { "CONSULTANT", "csl" }, { "CONSULTANT", "csp" },/* Consultant to a project */ { "COSTUME_DESIGNER", "cst" }, { "CONTRIBUTOR", "ctb" }, { "CONTESTEE-APPELLEE", "cte" }, { "CARTOGRAPHER", "ctg" }, { "CONTRACTOR", "ctr" }, { "CONTESTEE", "cts" }, { "CONTESTEE-APPELLANT", "ctt" }, { "CURATOR", "cur" }, { "COMMENTATOR", "cwt" },/* Commentator for written text */ { "DISTRIBUTION_PLACE", "dbp" }, { "DEGREEGRANTOR", "degree grantor" },/* Degree granting institution */ { "DEFENDANT", "dfd" }, { "DEFENDANT-APPELLEE", "dfe" }, { "DEFENDANT-APPELLANT", "dft" }, { "DEGREEGRANTOR", "dgg" },/* Degree granting institution */ { "DEGREE_SUPERVISOR", "dgs" }, { "DISSERTANT", "dis" }, { "DELINEATOR", "dln" }, { "DANCER", "dnc" }, { "DONOR", "dnr" }, { "DEPICTED", "dpc" }, { "DEPOSITOR", "dpt" }, { "DRAFTSMAN", "drm" }, { "DIRECTOR", "drt" }, { "DESIGNER", "dsr" }, { "DISTRIBUTOR", "dst" }, { "DATA_CONTRIBUTOR", "dtc" }, { "DEDICATEE", "dte" }, { "DATA_MANAGER", "dtm" }, { "DEDICATOR", "dto" }, { "AUTHOR", "dub" },/* Dubious author */ { "EDITOR", "edc" },/* Editor of compilation */ { "EDITOR", "edm" },/* Editor of moving image work */ { "EDITOR", "edt" }, { "ENGRAVER", "egr" }, { "ELECTRICIAN", "elg" }, { "ELECTROTYPER", "elt" }, { "ENGINEER", "eng" }, { "ENACTING_JURISDICTION", "enj" }, { "ETCHER", "etr" }, { "EVENT_PLACE", "evp" }, { "EXPERT", "exp" }, { "FACSIMILIST", "fac" }, { "FILM_DISTRIBUTOR", "fds" }, { "FIELD_DIRECTOR", "fld" }, { "EDITOR", "flm" },/* Film editor */ { "DIRECTOR", "fmd" },/* Film director */ { "FILMMAKER", "fmk" }, { "FORMER_OWNER", "fmo" }, { "PRODUCER", "fmp" },/* Film producer */ { "FUNDER", "fnd" }, { "FIRST_PARTY", "fpy" }, { "FORGER", "frg" }, { "GEOGRAPHIC_INFORMATION_SPECIALIST", "gis" }, { "GRAPHIC_TECHNICIAN", "grt" }, { "HOST_INSTITUTION", "his" }, { "HONOREE", "hnr" }, { "HOST", "hst" }, { "ILLUSTRATOR", "ill" }, { "ILLUMINATOR", "ilu" }, { "INSCRIBER", "ins" }, { "INVENTOR", "inv" }, { "ISSUING_BODY", "isb" }, { "MUSICIAN", "itr" },/* Instrumentalist */ { "INTERVIEWEE", "ive" }, { "INTERVIEWER", "ivr" }, { "JUDGE", "jud" }, { "JURISDICTION_GOVERNED", "jug" }, { "LABORATORY", "lbr" }, { "AUTHOR", "lbt" },/* Librettist */ { "LABORATORY_DIRECTOR", "ldr" }, { "LEAD", "led" }, { "LIBELEE-APPELLEE", "lee" }, { "LIBELEE", "lel" }, { "LENDER", "len" }, { "LIBELEE-APPELLANT", "let" }, { "LIGHTING_DESIGNER", "lgd" }, { "LIBELANT-APPELLEE", "lie" }, { "LIBELANT", "lil" }, { "LIBELANT-APPELLANT", "lit" }, { "LANDSCAPE_ARCHITECT", "lsa" }, { "LICENSEE", "lse" }, { "LICENSOR", "lso" }, { "LITHOGRAPHER", "ltg" }, { "AUTHOR", "lyr" },/* Lyricist */ { "MUSIC_COPYIST", "mcp" }, { "METADATA_CONTACT", "mdc" }, { "MEDIUM", "med" }, { "MANUFACTURE_PLACE", "mfp" }, { "MANUFACTURER", "mfr" }, { "MODERATOR", "mod" }, { "THESIS_EXAMINER", "mon" },/* Monitor */ { "MARBLER", "mrb" }, { "EDITOR", "mrk" },/* Markup editor */ { "MUSICAL_DIRECTOR", "msd" }, { "METAL-ENGRAVER", "mte" }, { "MINUTE_TAKER", "mtk" }, { "MUSICIAN", "mus" }, { "NARRATOR", "nrt" }, { "THESIS_OPPONENT", "opn" },/* Opponent */ { "ORIGINATOR", "org" }, { "ORGANIZER", "organizer of meeting" }, { "ORGANIZER", "orm" }, { "ONSCREEN_PRESENTER", "osp" }, { "THESIS_OTHER", "oth" },/* Other */ { "OWNER", "own" }, { "PANELIST", "pan" }, { "PATRON", "pat" }, { "ASSIGNEE", "patent holder" },/* Patent holder */ { "PUBLISHING_DIRECTOR", "pbd" }, { "PUBLISHER", "pbl" }, { "PROJECT_DIRECTOR", "pdr" }, { "PROOFREADER", "pfr" }, { "PHOTOGRAPHER", "pht" }, { "PLATEMAKER", "plt" }, { "PERMITTING_AGENCY", "pma" }, { "PRODUCTION_MANAGER", "pmn" }, { "PRINTER_OF_PLATES", "pop" }, { "PAPERMAKER", "ppm" }, { "PUPPETEER", "ppt" }, { "PRAESES", "pra" }, { "PROCESS_CONTRACT", "prc" }, { "PRODUCTION_PERSONNEL", "prd" }, { "PRESENTER", "pre" }, { "PERFORMER", "prf" }, { "AUTHOR", "prg" },/* Programmer */ { "PRINTMAKER", "prm" }, { "PRODUCTION_COMPANY", "prn" }, { "PRODUCER", "pro" }, { "PRODUCTION_PLACE", "prp" }, { "PRODUCTION_DESIGNER", "prs" }, { "PRINTER", "prt" }, { "PROVIDER", "prv" }, { "PATENT_APPLICANT", "pta" }, { "PLAINTIFF-APPELLEE", "pte" }, { "PLAINTIFF", "ptf" }, { "ASSIGNEE", "pth" },/* Patent holder */ { "PLAINTIFF-APPELLANT", "ptt" }, { "PUBLICATION_PLACE", "pup" }, { "RUBRICATOR", "rbr" }, { "RECORDIST", "rcd" }, { "RECORDING_ENGINEER", "rce" }, { "ADDRESSEE", "rcp" },/* Recipient */ { "RADIO_DIRECTOR", "rdd" }, { "REDAKTOR", "red" }, { "RENDERER", "ren" }, { "RESEARCHER", "res" }, { "REVIEWER", "rev" }, { "RADIO_PRODUCER", "rpc" }, { "REPOSITORY", "rps" }, { "REPORTER", "rpt" }, { "RESPONSIBLE_PARTY", "rpy" }, { "RESPONDENT-APPELLEE", "rse" }, { "RESTAGER", "rsg" }, { "RESPONDENT", "rsp" }, { "RESTORATIONIST", "rsr" }, { "RESPONDENT-APPELLANT", "rst" }, { "RESEARCH_TEAM_HEAD", "rth" }, { "RESEARCH_TEAM_MEMBER", "rtm" }, { "SCIENTIFIC_ADVISOR", "sad" }, { "SCENARIST", "sce" }, { "SCULPTOR", "scl" }, { "SCRIBE", "scr" }, { "SOUND_DESIGNER", "sds" }, { "SECRETARY", "sec" }, { "STAGE_DIRECTOR", "sgd" }, { "SIGNER", "sgn" }, { "SUPPORTING_HOST", "sht" }, { "SELLER", "sll" }, { "SINGER", "sng" }, { "SPEAKER", "spk" }, { "SPONSOR", "spn" }, { "SECOND_PARTY", "spy" }, { "SURVEYOR", "srv" }, { "SET_DESIGNER", "std" }, { "SETTING", "stg" }, { "STORYTELLER", "stl" }, { "STAGE_MANAGER", "stm" }, { "STANDARDS_BODY", "stn" }, { "STEREOTYPER", "str" }, { "TECHNICAL_DIRECTOR", "tcd" }, { "TEACHER", "tch" }, { "THESIS_ADVISOR", "ths" }, { "TELEVISION_DIRECTOR", "tld" }, { "TELEVISION_PRODUCER", "tlp" }, { "TRANSCRIBER", "trc" }, { "TRANSLATOR", "translator" }, { "TRANSLATOR", "trl" }, { "TYPE_DIRECTOR", "tyd" }, { "TYPOGRAPHER", "tyg" }, { "UNIVERSITY_PLACE", "uvp" }, { "VOICE_ACTOR", "vac" }, { "VIDEOGRAPHER", "vdg" }, { "VOCALIST", "voc" }, { "AUTHOR", "wac" },/* Writer of added commentary */ { "AUTHOR", "wal" },/* Writer of added lyrics */ { "AUTHOR", "wam" },/* Writer of accompanying material */ { "AUTHOR", "wat" },/* Writer of added text */ { "WOODCUTTER", "wdc" }, { "WOOD_ENGRAVER", "wde" }, { "INTROAUTHOR", "win" },/* Writer of introduction */ { "WITNESS", "wit" }, { "INTROAUTHOR", "wpr" },/* Writer of preface */ { "AUTHOR", "wst" },/* Writer of supplementary textual content */ }; static const int nrealtors = sizeof( relators ) / sizeof( relators[0] ); char * marc_convert_role( const char *query ) { int i; for ( i=0; i static const char *marc_genre[] = { "abstract or summary", "art original", "art reproduction", "article", "atlas", "autobiography", "bibliography", "biography", "book", "calendar", "catalog", "chart", "comic or graphic novel", "comic strip", "conference publication", "database", "dictionary", "diorama", "directory", "discography", "drama", "encyclopedia", "essay", "festschrift", "fiction", "filmography", "filmstrip", "finding aid", "flash card", "folktale", "font", "game", "government publication", "graphic", "globe", "handbook", "history", "humor, satire", "hymnal", "index", "instruction", "interview", "issue", "journal", "kit", "language instruction", "law report or digest", "legal article", "legal case and case notes", "legislation", "letter", "loose-leaf", "map", "memoir", "microscope slide", "model", "motion picture", "multivolume monograph", "newspaper", "novel", "numeric data", "offprint", "online system or service", "patent", "periodical", "picture", "poetry", "programmed text", "realia", "rehearsal", "remote sensing image", "reporting", "review", "series", "short story", "slide", "sound", "speech", "standard or specification", "statistics", "survey of literature", "technical drawing", "technical report", "thesis", "toy", "transparency", "treaty", "videorecording", "web site", "yearbook", }; static const int nmarc_genre = sizeof( marc_genre ) / sizeof( const char* ); static const char *marc_resource[] = { "cartographic", "kit", "mixed material", "moving image", "notated music", "software, multimedia", "sound recording", "sound recording - musical", "sound recording - nonmusical", "still image", "text", "three dimensional object" }; static const int nmarc_resource = sizeof( marc_resource ) / sizeof( const char* ); /* www.loc.gov/marc/relators/relacode.html */ typedef struct marc_trans { char *internal_name; char *abbreviation; } marc_trans; static const marc_trans relators[] = { { "ABRIDGER", "abr" }, { "ART_COPYIST", "acp" }, { "ACTOR", "act" }, { "ART_DIRECTOR", "adi" }, { "ADAPTER", "adp" }, { "AFTERAUTHOR", "aft" }, { "ANALYST", "anl" }, { "ANIMATOR", "anm" }, { "ANNOTATOR", "ann" }, { "BIBLIOGRAPHIC_ANTECEDENT", "ant" }, { "APPELLEE", "ape" }, { "APPELLANT", "apl" }, { "APPLICANT", "app" }, { "AUTHOR", "aqt" },/* Author in quotations or text abstracts */ { "ARCHITECT", "arc" }, { "ARTISTIC_DIRECTOR", "ard" }, { "ARRANGER", "arr" }, { "ARTIST", "art" }, { "ASSIGNEE", "asg" }, { "ASSOCIATED_NAME", "asn" }, { "AUTOGRAPHER", "ato" }, { "ATTRIBUTED_NAME", "att" }, { "AUCTIONEER", "auc" }, { "AUTHOR", "aud" },/* Author of dialog */ { "INTROAUTHOR", "aui" },/* Author of introduction, etc. */ { "AUTHOR", "aus" },/* Screenwriter */ { "AUTHOR", "aut" }, { "AUTHOR", "author" }, { "AFTERAUTHOR", "author of afterword, colophon, etc." }, { "INTROAUTHOR", "author of introduction, etc." }, { "BINDING_DESIGNER", "bdd" }, { "BOOKJACKET_DESIGNER", "bjd" }, { "BOOK_DESIGNER", "bkd" }, { "BOOK_PRODUCER", "bkp" }, { "AUTHOR", "blw" },/* Blurb writer */ { "BINDER", "bnd" }, { "BOOKPLATE_DESIGNER", "bpd" }, { "BROADCASTER", "brd" }, { "BRAILLE_EMBOSSER", "brl" }, { "BOOKSELLER", "bsl" }, { "CASTER", "cas" }, { "CONCEPTOR", "ccp" }, { "CHOREOGRAPHER", "chr" }, { "COLLABORATOR", "clb" }, { "CLIENT", "cli" }, { "CALLIGRAPHER", "cll" }, { "COLORIST", "clr" }, { "COLLOTYPER", "clt" }, { "COMMENTATOR", "cmm" }, { "COMPOSER", "cmp" }, { "COMPOSITOR", "cmt" }, { "CONDUCTOR", "cnd" }, { "CINEMATOGRAPHER", "cng" }, { "CENSOR", "cns" }, { "CONTESTANT-APPELLEE", "coe" }, { "COLLECTOR", "col" }, { "COMPILER", "com" }, { "CONSERVATOR", "con" }, { "COLLECTION_REGISTRAR", "cor" }, { "CONTESTANT", "cos" }, { "CONTESTANT-APPELLANT", "cot" }, { "COURT_GOVERNED", "cou" }, { "COVER_DESIGNER", "cov" }, { "COPYRIGHT_CLAIMANT", "cpc" }, { "COMPLAINANT-APPELLEE", "cpe" }, { "COPYRIGHT_HOLDER", "cph" }, { "COMPLAINANT", "cpl" }, { "COMPLAINANT-APPELLANT", "cpt" }, { "AUTHOR", "cre" },/* Creator */ { "AUTHOR", "creator" },/* Creator */ { "CORRESPONDENT", "crp" }, { "CORRECTOR", "crr" }, { "COURT_REPORTER", "crt" }, { "CONSULTANT", "csl" }, { "CONSULTANT", "csp" },/* Consultant to a project */ { "COSTUME_DESIGNER", "cst" }, { "CONTRIBUTOR", "ctb" }, { "CONTESTEE-APPELLEE", "cte" }, { "CARTOGRAPHER", "ctg" }, { "CONTRACTOR", "ctr" }, { "CONTESTEE", "cts" }, { "CONTESTEE-APPELLANT", "ctt" }, { "CURATOR", "cur" }, { "COMMENTATOR", "cwt" },/* Commentator for written text */ { "DISTRIBUTION_PLACE", "dbp" }, { "DEGREEGRANTOR", "degree grantor" },/* Degree granting institution */ { "DEFENDANT", "dfd" }, { "DEFENDANT-APPELLEE", "dfe" }, { "DEFENDANT-APPELLANT", "dft" }, { "DEGREEGRANTOR", "dgg" },/* Degree granting institution */ { "DEGREE_SUPERVISOR", "dgs" }, { "DISSERTANT", "dis" }, { "DELINEATOR", "dln" }, { "DANCER", "dnc" }, { "DONOR", "dnr" }, { "DEPICTED", "dpc" }, { "DEPOSITOR", "dpt" }, { "DRAFTSMAN", "drm" }, { "DIRECTOR", "drt" }, { "DESIGNER", "dsr" }, { "DISTRIBUTOR", "dst" }, { "DATA_CONTRIBUTOR", "dtc" }, { "DEDICATEE", "dte" }, { "DATA_MANAGER", "dtm" }, { "DEDICATOR", "dto" }, { "AUTHOR", "dub" },/* Dubious author */ { "EDITOR", "edc" },/* Editor of compilation */ { "EDITOR", "edm" },/* Editor of moving image work */ { "EDITOR", "edt" }, { "ENGRAVER", "egr" }, { "ELECTRICIAN", "elg" }, { "ELECTROTYPER", "elt" }, { "ENGINEER", "eng" }, { "ENACTING_JURISDICTION", "enj" }, { "ETCHER", "etr" }, { "EVENT_PLACE", "evp" }, { "EXPERT", "exp" }, { "FACSIMILIST", "fac" }, { "FILM_DISTRIBUTOR", "fds" }, { "FIELD_DIRECTOR", "fld" }, { "EDITOR", "flm" },/* Film editor */ { "DIRECTOR", "fmd" },/* Film director */ { "FILMMAKER", "fmk" }, { "FORMER_OWNER", "fmo" }, { "PRODUCER", "fmp" },/* Film producer */ { "FUNDER", "fnd" }, { "FIRST_PARTY", "fpy" }, { "FORGER", "frg" }, { "GEOGRAPHIC_INFORMATION_SPECIALIST", "gis" }, { "GRAPHIC_TECHNICIAN", "grt" }, { "HOST_INSTITUTION", "his" }, { "HONOREE", "hnr" }, { "HOST", "hst" }, { "ILLUSTRATOR", "ill" }, { "ILLUMINATOR", "ilu" }, { "INSCRIBER", "ins" }, { "INVENTOR", "inv" }, { "ISSUING_BODY", "isb" }, { "MUSICIAN", "itr" },/* Instrumentalist */ { "INTERVIEWEE", "ive" }, { "INTERVIEWER", "ivr" }, { "JUDGE", "jud" }, { "JURISDICTION_GOVERNED", "jug" }, { "LABORATORY", "lbr" }, { "AUTHOR", "lbt" },/* Librettist */ { "LABORATORY_DIRECTOR", "ldr" }, { "LEAD", "led" }, { "LIBELEE-APPELLEE", "lee" }, { "LIBELEE", "lel" }, { "LENDER", "len" }, { "LIBELEE-APPELLANT", "let" }, { "LIGHTING_DESIGNER", "lgd" }, { "LIBELANT-APPELLEE", "lie" }, { "LIBELANT", "lil" }, { "LIBELANT-APPELLANT", "lit" }, { "LANDSCAPE_ARCHITECT", "lsa" }, { "LICENSEE", "lse" }, { "LICENSOR", "lso" }, { "LITHOGRAPHER", "ltg" }, { "AUTHOR", "lyr" },/* Lyricist */ { "MUSIC_COPYIST", "mcp" }, { "METADATA_CONTACT", "mdc" }, { "MEDIUM", "med" }, { "MANUFACTURE_PLACE", "mfp" }, { "MANUFACTURER", "mfr" }, { "MODERATOR", "mod" }, { "THESIS_EXAMINER", "mon" },/* Monitor */ { "MARBLER", "mrb" }, { "EDITOR", "mrk" },/* Markup editor */ { "MUSICAL_DIRECTOR", "msd" }, { "METAL-ENGRAVER", "mte" }, { "MINUTE_TAKER", "mtk" }, { "MUSICIAN", "mus" }, { "NARRATOR", "nrt" }, { "THESIS_OPPONENT", "opn" },/* Opponent */ { "ORIGINATOR", "org" }, { "ORGANIZER", "organizer of meeting" }, { "ORGANIZER", "orm" }, { "ONSCREEN_PRESENTER", "osp" }, { "THESIS_OTHER", "oth" },/* Other */ { "OWNER", "own" }, { "PANELIST", "pan" }, { "PATRON", "pat" }, { "ASSIGNEE", "patent holder" },/* Patent holder */ { "PUBLISHING_DIRECTOR", "pbd" }, { "PUBLISHER", "pbl" }, { "PROJECT_DIRECTOR", "pdr" }, { "PROOFREADER", "pfr" }, { "PHOTOGRAPHER", "pht" }, { "PLATEMAKER", "plt" }, { "PERMITTING_AGENCY", "pma" }, { "PRODUCTION_MANAGER", "pmn" }, { "PRINTER_OF_PLATES", "pop" }, { "PAPERMAKER", "ppm" }, { "PUPPETEER", "ppt" }, { "PRAESES", "pra" }, { "PROCESS_CONTRACT", "prc" }, { "PRODUCTION_PERSONNEL", "prd" }, { "PRESENTER", "pre" }, { "PERFORMER", "prf" }, { "AUTHOR", "prg" },/* Programmer */ { "PRINTMAKER", "prm" }, { "PRODUCTION_COMPANY", "prn" }, { "PRODUCER", "pro" }, { "PRODUCTION_PLACE", "prp" }, { "PRODUCTION_DESIGNER", "prs" }, { "PRINTER", "prt" }, { "PROVIDER", "prv" }, { "PATENT_APPLICANT", "pta" }, { "PLAINTIFF-APPELLEE", "pte" }, { "PLAINTIFF", "ptf" }, { "ASSIGNEE", "pth" },/* Patent holder */ { "PLAINTIFF-APPELLANT", "ptt" }, { "PUBLICATION_PLACE", "pup" }, { "RUBRICATOR", "rbr" }, { "RECORDIST", "rcd" }, { "RECORDING_ENGINEER", "rce" }, { "ADDRESSEE", "rcp" },/* Recipient */ { "RADIO_DIRECTOR", "rdd" }, { "REDAKTOR", "red" }, { "RENDERER", "ren" }, { "RESEARCHER", "res" }, { "REVIEWER", "rev" }, { "RADIO_PRODUCER", "rpc" }, { "REPOSITORY", "rps" }, { "REPORTER", "rpt" }, { "RESPONSIBLE_PARTY", "rpy" }, { "RESPONDENT-APPELLEE", "rse" }, { "RESTAGER", "rsg" }, { "RESPONDENT", "rsp" }, { "RESTORATIONIST", "rsr" }, { "RESPONDENT-APPELLANT", "rst" }, { "RESEARCH_TEAM_HEAD", "rth" }, { "RESEARCH_TEAM_MEMBER", "rtm" }, { "SCIENTIFIC_ADVISOR", "sad" }, { "SCENARIST", "sce" }, { "SCULPTOR", "scl" }, { "SCRIBE", "scr" }, { "SOUND_DESIGNER", "sds" }, { "SECRETARY", "sec" }, { "STAGE_DIRECTOR", "sgd" }, { "SIGNER", "sgn" }, { "SUPPORTING_HOST", "sht" }, { "SELLER", "sll" }, { "SINGER", "sng" }, { "SPEAKER", "spk" }, { "SPONSOR", "spn" }, { "SECOND_PARTY", "spy" }, { "SURVEYOR", "srv" }, { "SET_DESIGNER", "std" }, { "SETTING", "stg" }, { "STORYTELLER", "stl" }, { "STAGE_MANAGER", "stm" }, { "STANDARDS_BODY", "stn" }, { "STEREOTYPER", "str" }, { "TECHNICAL_DIRECTOR", "tcd" }, { "TEACHER", "tch" }, { "THESIS_ADVISOR", "ths" }, { "TELEVISION_DIRECTOR", "tld" }, { "TELEVISION_PRODUCER", "tlp" }, { "TRANSCRIBER", "trc" }, { "TRANSLATOR", "translator" }, { "TRANSLATOR", "trl" }, { "TYPE_DIRECTOR", "tyd" }, { "TYPOGRAPHER", "tyg" }, { "UNIVERSITY_PLACE", "uvp" }, { "VOICE_ACTOR", "vac" }, { "VIDEOGRAPHER", "vdg" }, { "VOCALIST", "voc" }, { "AUTHOR", "wac" },/* Writer of added commentary */ { "AUTHOR", "wal" },/* Writer of added lyrics */ { "AUTHOR", "wam" },/* Writer of accompanying material */ { "AUTHOR", "wat" },/* Writer of added text */ { "WOODCUTTER", "wdc" }, { "WOOD_ENGRAVER", "wde" }, { "INTROAUTHOR", "win" },/* Writer of introduction */ { "WITNESS", "wit" }, { "INTROAUTHOR", "wpr" },/* Writer of preface */ { "AUTHOR", "wst" },/* Writer of supplementary textual content */ }; static const int nrealtors = sizeof( relators ) / sizeof( relators[0] ); char * marc_convert_role( const char *query ) { int i; for ( i=0; i #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "xml.h" #include "xml_encoding.h" #include "iso639_2.h" #include "bibutils.h" #include "bibformats.h" static int medin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int medin_processf( fields *medin, const char *data, const char *filename, long nref, param *p ); /***************************************************** PUBLIC: void medin_initparams() *****************************************************/ int medin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_MEDLINEIN; pm->charsetin = BIBL_CHARSET_UNICODE; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 1; pm->utf8in = 1; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; pm->readf = medin_readf; pm->processf = medin_processf; pm->cleanf = NULL; pm->typef = NULL; pm->convertf = NULL; pm->all = NULL; pm->nall = 0; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int medin_readf() *****************************************************/ /* * The only difference between MEDLINE and PUBMED in format is * that the entire library is wrapped in * or tags... */ static char *wrapper[] = { "PubmedArticle", "MedlineCitation" }; static int nwrapper = sizeof( wrapper ) / sizeof( wrapper[0] ); static char * medin_findstartwrapper( char *buf, int *ntype ) { char *startptr=NULL; int i; for ( i=0; idata ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( line->data ) { startptr = medin_findstartwrapper( line->data, &type ); } if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = medin_findendwrapper( str_cstr( &tmp ), type ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int medin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; static int medin_doconvert( xml *node, fields *info, xml_convert *c, int nc, int *found ) { int i, fstatus; char *d; *found = 0; if ( !xml_has_value( node ) ) return BIBL_OK; d = xml_value_cstr( node ); for ( i=0; iMechanism and..... */ static int medin_articletitle( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_has_value( node ) ) { fstatus = fields_add( info, "TITLE", xml_value_cstr( node ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } return status; } /* 2003 Jan-Feb */ static int medin_medlinedate( fields *info, const char *p, int level ) { int fstatus; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { fstatus = fields_add( info, "PARTDATE:YEAR", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { str_findreplace( &tmp, "-", "/" ); fstatus = fields_add( info, "PARTDATE:MONTH", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } (void) str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { fstatus = fields_add( info, "PARTDATE:DAY", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &tmp ); return BIBL_OK; } /* eng */ static int medin_language( xml *node, fields *info, int level ) { char *code, *language; int fstatus; code = xml_value_cstr( node ); if ( !code ) return BIBL_OK; language = iso639_2_from_code( code ); if ( language ) fstatus = fields_add( info, "LANGUAGE", language, level ); else fstatus = fields_add( info, "LANGUAGE", code, level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* * 0027-8424 * * 100 * 21 * * 2003 * Oct * 14 * * * * * or.... * * * 0735-0414 * * 38 * 1 * * 2003 Jan-Feb * * * Alcohol and alcoholism (Oxford, Oxfordshire) * Alcohol Alcohol. * */ static int medin_journal1( xml *node, fields *info ) { xml_convert c[] = { { "Title", NULL, NULL, "TITLE", 1 }, { "ISOAbbreviation", NULL, NULL, "SHORTTITLE", 1 }, { "ISSN", NULL, NULL, "ISSN", 1 }, { "Volume", NULL, NULL, "VOLUME", 1 }, { "Issue", NULL, NULL, "ISSUE", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, }; int nc = sizeof( c ) / sizeof( c[0] ), status, found; if ( xml_has_value( node ) ) { status = medin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { if ( xml_tag_matches( node, "MedlineDate" ) ) { status = medin_medlinedate( info, xml_value_cstr( node ), 1 ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node, "Language" ) ) { status = medin_language( node, info, LEVEL_HOST ); if ( status!=BIBL_OK ) return status; } } } if ( node->down ) { status = medin_journal1( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = medin_journal1( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 12111-6 * */ static int medin_pagination( xml *node, fields *info ) { int i, fstatus, status; str sp, ep; const char *p, *pp; if ( xml_tag_matches( node, "MedlinePgn" ) && node->value.len ) { strs_init( &sp, &ep, NULL ); p = str_cpytodelim( &sp, xml_value_cstr( node ), "-", 1 ); if ( str_memerr( &sp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &sp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &sp ), LEVEL_HOST ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } (void) str_cpytodelim( &ep, p, "", 0 ); if ( str_memerr( &ep ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &ep ) ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idown ) { status = medin_pagination( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = medin_pagination( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * ljwejrelr * */ static int medin_abstract( xml *node, fields *info ) { int fstatus; if ( xml_tag_matches_has_value( node, "AbstractText" ) ) { fstatus = fields_add( info, "ABSTRACT", xml_value_cstr( node ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( node->next ) return medin_abstract( node->next, info ); return BIBL_OK; } /* * * Barondeau * David P * ( or David P ) * DP * * * Organization * * */ static int medin_author( xml *node, str *name ) { char *p; if ( xml_tag_matches( node, "LastName" ) ) { if ( str_has_value( name ) ) { str_prepend( name, "|" ); str_prepend( name, xml_value_cstr( node ) ); } else str_strcat( name, xml_value( node ) ); } else if ( xml_tag_matches( node, "ForeName" ) || xml_tag_matches( node, "FirstName" ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); while ( *p==' ' ) p++; while ( *p && *p!=' ' ) str_addchar( name, *p++ ); } } else if ( xml_tag_matches( node, "Initials" ) && !strchr( name->data, '|' )) { p = xml_value_cstr( node ); while ( p && *p ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); if ( !is_ws(*p) ) str_addchar( name, *p++ ); } } if ( node->next ) medin_author( node->next, name ); return BIBL_OK; } static int medin_corpauthor( xml *node, str *name ) { if ( xml_tag_matches( node, "CollectiveName" ) ) { str_strcpy( name, xml_value( node ) ); } else if ( node->next ) medin_corpauthor( node->next, name ); return BIBL_OK; } static int medin_authorlist( xml *node, fields *info ) { int fstatus, status = BIBL_OK; char *tag; str name; str_init( &name ); node = node->down; while ( node ) { if ( xml_tag_matches( node, "Author" ) && node->down ) { status = medin_author( node->down, &name ); if ( status!=BIBL_OK ) goto out; tag = "AUTHOR"; if ( str_is_empty( &name ) ) { status = medin_corpauthor( node->down, &name ); tag = "AUTHOR:CORP"; } if ( str_memerr( &name ) || status!=BIBL_OK ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &name ) ) { fstatus = fields_add( info, tag, str_cstr( &name ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } str_empty( &name ); } node = node->next; } out: str_free( &name ); return BIBL_OK; } /* * Journal Article * */ /* * United States * Proc Natl Acad Sci U S A * 7507876 * */ static int medin_journal2( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "MedlineTA" ) && fields_find( info, "TITLE", LEVEL_HOST )==FIELDS_NOTFOUND ) { fstatus = fields_add( info, "TITLE", xml_value_cstr( node ), 1 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = medin_journal2( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_journal2( node->next, info ); return status; } /* Biophysics Crystallography, X-Ray */ static int medin_meshheading( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "DescriptorName" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->next ) status = medin_meshheading( node->next, info ); return status; } static int medin_meshheadinglist( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "MeshHeading" ) && node->down ) { status = medin_meshheading( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_meshheadinglist( node->next, info ); return status; } /* * .... * * 14523232 * 10.1073/pnas.2133463100 * 2133463100 * PMC4833866 * * * * I think "pii" is "Publisher Item Identifier" */ static int medin_pubmeddata( xml *node, fields *info ) { xml_convert c[] = { { "ArticleId", "IdType", "doi", "DOI", 0 }, { "ArticleId", "IdType", "pubmed", "PMID", 0 }, { "ArticleId", "IdType", "medline", "MEDLINE", 0 }, { "ArticleId", "IdType", "pmc", "PMC", 0 }, { "ArticleId", "IdType", "pii", "PII", 0 }, }; int nc = sizeof( c ) / sizeof( c[0] ), found, status; status = medin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = medin_pubmeddata( node->next, info ); if ( status!=BIBL_OK ) return status; } if ( node->down ) { status = medin_pubmeddata( node->down, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int medin_article( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches( node, "Journal" ) ) status = medin_journal1( node, info ); else if ( xml_tag_matches( node, "ArticleTitle" ) ) status = medin_articletitle( node, info ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = medin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = medin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = medin_authorlist( node, info ); else if ( xml_tag_matches( node, "Language" ) ) status = medin_language( node, info, LEVEL_MAIN ); else if ( xml_tag_matches( node, "Affiliation" ) ) { fstatus = fields_add( info, "ADDRESS", xml_value_cstr( node ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } if ( status!=BIBL_OK ) return status; if ( node->next ) status = medin_article( node->next, info ); return status; } static int medin_medlinecitation( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "PMID" ) ) { fstatus = fields_add( info, "PMID", xml_value_cstr( node ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { if ( xml_tag_matches( node, "Article" ) ) { status = medin_article( node->down, info ); } else if ( xml_tag_matches( node, "MedlineJournalInfo" ) ) { status = medin_journal2( node->down, info ); } else if ( xml_tag_matches( node, "MeshHeadingList" ) ) status = medin_meshheadinglist( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_medlinecitation( node->next, info ); return status; } static int medin_pubmedarticle( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "MedlineCitation" ) ) status = medin_medlinecitation( node->down, info ); else if ( xml_tag_matches( node, "PubmedData" ) ) status = medin_pubmeddata( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_pubmedarticle( node->next, info ); return status; } static int medin_assembleref( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "PubmedArticle" ) ) status = medin_pubmedarticle( node->down, info ); else if ( xml_tag_matches( node, "MedlineCitation" ) ) status = medin_medlinecitation( node->down, info ); else status = medin_assembleref( node->down, info ); } if ( status!=BIBL_OK ) return status; if ( node->next ) { status = medin_assembleref( node->next, info ); if ( status!=BIBL_OK ) return status; } /* assume everything is a journal article */ if ( fields_num( info ) ) { status = fields_add( info, "RESOURCE", "text", LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "ISSUANCE", "continuing", LEVEL_HOST ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "GENRE:MARC", "periodical", LEVEL_HOST ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "GENRE:BIBUTILS", "academic journal", LEVEL_HOST ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = BIBL_OK; } return status; } static int medin_processf( fields *medin, const char *data, const char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = medin_assembleref( &top, medin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; return 0; } hs-bibutils-6.10.0.0/bibutils/medin.c0000755000000000000000000004433507346545000015443 0ustar0000000000000000/* * medin.c * * Copyright (c) Chris Putnam 2004-2020 * * Source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "xml.h" #include "xml_encoding.h" #include "iso639_2.h" #include "bibutils.h" #include "bibformats.h" static int medin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int medin_processf( fields *medin, const char *data, const char *filename, long nref, param *p ); /***************************************************** PUBLIC: void medin_initparams() *****************************************************/ int medin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_MEDLINEIN; pm->charsetin = BIBL_CHARSET_UNICODE; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 1; pm->utf8in = 1; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; pm->readf = medin_readf; pm->processf = medin_processf; pm->cleanf = NULL; pm->typef = NULL; pm->convertf = NULL; pm->all = NULL; pm->nall = 0; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int medin_readf() *****************************************************/ /* * The only difference between MEDLINE and PUBMED in format is * that the entire library is wrapped in * or tags... */ static char *wrapper[] = { "PubmedArticle", "MedlineCitation" }; static int nwrapper = sizeof( wrapper ) / sizeof( wrapper[0] ); static char * medin_findstartwrapper( char *buf, int *ntype ) { char *startptr=NULL; int i; for ( i=0; idata ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( line->data ) { startptr = medin_findstartwrapper( line->data, &type ); } if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = medin_findendwrapper( str_cstr( &tmp ), type ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int medin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; static int medin_doconvert( xml *node, fields *info, xml_convert *c, int nc, int *found ) { int i, fstatus; char *d; *found = 0; if ( !xml_has_value( node ) ) return BIBL_OK; d = xml_value_cstr( node ); for ( i=0; iMechanism and..... */ static int medin_articletitle( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_has_value( node ) ) { fstatus = fields_add( info, "TITLE", xml_value_cstr( node ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } return status; } /* 2003 Jan-Feb */ static int medin_medlinedate( fields *info, const char *p, int level ) { int fstatus; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { fstatus = fields_add( info, "PARTDATE:YEAR", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { str_findreplace( &tmp, "-", "/" ); fstatus = fields_add( info, "PARTDATE:MONTH", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } (void) str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { fstatus = fields_add( info, "PARTDATE:DAY", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &tmp ); return BIBL_OK; } /* eng */ static int medin_language( xml *node, fields *info, int level ) { char *code, *language; int fstatus; code = xml_value_cstr( node ); if ( !code ) return BIBL_OK; language = iso639_2_from_code( code ); if ( language ) fstatus = fields_add( info, "LANGUAGE", language, level ); else fstatus = fields_add( info, "LANGUAGE", code, level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* * 0027-8424 * * 100 * 21 * * 2003 * Oct * 14 * * * * * or.... * * * 0735-0414 * * 38 * 1 * * 2003 Jan-Feb * * * Alcohol and alcoholism (Oxford, Oxfordshire) * Alcohol Alcohol. * */ static int medin_journal1( xml *node, fields *info ) { xml_convert c[] = { { "Title", NULL, NULL, "TITLE", 1 }, { "ISOAbbreviation", NULL, NULL, "SHORTTITLE", 1 }, { "ISSN", NULL, NULL, "ISSN", 1 }, { "Volume", NULL, NULL, "VOLUME", 1 }, { "Issue", NULL, NULL, "ISSUE", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, }; int nc = sizeof( c ) / sizeof( c[0] ), status, found; if ( xml_has_value( node ) ) { status = medin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { if ( xml_tag_matches( node, "MedlineDate" ) ) { status = medin_medlinedate( info, xml_value_cstr( node ), 1 ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node, "Language" ) ) { status = medin_language( node, info, LEVEL_HOST ); if ( status!=BIBL_OK ) return status; } } } if ( node->down ) { status = medin_journal1( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = medin_journal1( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 12111-6 * */ static int medin_pagination( xml *node, fields *info ) { int i, fstatus, status; str sp, ep; const char *p, *pp; if ( xml_tag_matches( node, "MedlinePgn" ) && node->value.len ) { strs_init( &sp, &ep, NULL ); p = str_cpytodelim( &sp, xml_value_cstr( node ), "-", 1 ); if ( str_memerr( &sp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &sp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &sp ), LEVEL_HOST ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } (void) str_cpytodelim( &ep, p, "", 0 ); if ( str_memerr( &ep ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &ep ) ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idown ) { status = medin_pagination( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = medin_pagination( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * ljwejrelr * */ static int medin_abstract( xml *node, fields *info ) { int fstatus; if ( xml_tag_matches_has_value( node, "AbstractText" ) ) { fstatus = fields_add( info, "ABSTRACT", xml_value_cstr( node ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( node->next ) return medin_abstract( node->next, info ); return BIBL_OK; } /* * * Barondeau * David P * ( or David P ) * DP * * * Organization * * */ static int medin_author( xml *node, str *name ) { char *p; if ( xml_tag_matches( node, "LastName" ) ) { if ( str_has_value( name ) ) { str_prepend( name, "|" ); str_prepend( name, xml_value_cstr( node ) ); } else str_strcat( name, xml_value( node ) ); } else if ( xml_tag_matches( node, "ForeName" ) || xml_tag_matches( node, "FirstName" ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); while ( *p==' ' ) p++; while ( *p && *p!=' ' ) str_addchar( name, *p++ ); } } else if ( xml_tag_matches( node, "Initials" ) && !strchr( name->data, '|' )) { p = xml_value_cstr( node ); while ( p && *p ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); if ( !is_ws(*p) ) str_addchar( name, *p++ ); } } if ( node->next ) medin_author( node->next, name ); return BIBL_OK; } static int medin_corpauthor( xml *node, str *name ) { if ( xml_tag_matches( node, "CollectiveName" ) ) { str_strcpy( name, xml_value( node ) ); } else if ( node->next ) medin_corpauthor( node->next, name ); return BIBL_OK; } static int medin_authorlist( xml *node, fields *info ) { int fstatus, status = BIBL_OK; char *tag; str name; str_init( &name ); node = node->down; while ( node ) { if ( xml_tag_matches( node, "Author" ) && node->down ) { status = medin_author( node->down, &name ); if ( status!=BIBL_OK ) goto out; tag = "AUTHOR"; if ( str_is_empty( &name ) ) { status = medin_corpauthor( node->down, &name ); tag = "AUTHOR:CORP"; } if ( str_memerr( &name ) || status!=BIBL_OK ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &name ) ) { fstatus = fields_add( info, tag, str_cstr( &name ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } str_empty( &name ); } node = node->next; } out: str_free( &name ); return BIBL_OK; } /* * Journal Article * */ /* * United States * Proc Natl Acad Sci U S A * 7507876 * */ static int medin_journal2( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "MedlineTA" ) && fields_find( info, "TITLE", LEVEL_HOST )==FIELDS_NOTFOUND ) { fstatus = fields_add( info, "TITLE", xml_value_cstr( node ), 1 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = medin_journal2( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_journal2( node->next, info ); return status; } /* Biophysics Crystallography, X-Ray */ static int medin_meshheading( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "DescriptorName" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->next ) status = medin_meshheading( node->next, info ); return status; } static int medin_meshheadinglist( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "MeshHeading" ) && node->down ) { status = medin_meshheading( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_meshheadinglist( node->next, info ); return status; } /* * .... * * 14523232 * 10.1073/pnas.2133463100 * 2133463100 * PMC4833866 * * * * I think "pii" is "Publisher Item Identifier" */ static int medin_pubmeddata( xml *node, fields *info ) { xml_convert c[] = { { "ArticleId", "IdType", "doi", "DOI", 0 }, { "ArticleId", "IdType", "pubmed", "PMID", 0 }, { "ArticleId", "IdType", "medline", "MEDLINE", 0 }, { "ArticleId", "IdType", "pmc", "PMC", 0 }, { "ArticleId", "IdType", "pii", "PII", 0 }, }; int nc = sizeof( c ) / sizeof( c[0] ), found, status; status = medin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = medin_pubmeddata( node->next, info ); if ( status!=BIBL_OK ) return status; } if ( node->down ) { status = medin_pubmeddata( node->down, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int medin_article( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches( node, "Journal" ) ) status = medin_journal1( node, info ); else if ( xml_tag_matches( node, "ArticleTitle" ) ) status = medin_articletitle( node, info ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = medin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = medin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = medin_authorlist( node, info ); else if ( xml_tag_matches( node, "Language" ) ) status = medin_language( node, info, LEVEL_MAIN ); else if ( xml_tag_matches( node, "Affiliation" ) ) { fstatus = fields_add( info, "ADDRESS", xml_value_cstr( node ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } if ( status!=BIBL_OK ) return status; if ( node->next ) status = medin_article( node->next, info ); return status; } static int medin_medlinecitation( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "PMID" ) ) { fstatus = fields_add( info, "PMID", xml_value_cstr( node ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { if ( xml_tag_matches( node, "Article" ) ) { status = medin_article( node->down, info ); } else if ( xml_tag_matches( node, "MedlineJournalInfo" ) ) { status = medin_journal2( node->down, info ); } else if ( xml_tag_matches( node, "MeshHeadingList" ) ) status = medin_meshheadinglist( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_medlinecitation( node->next, info ); return status; } static int medin_pubmedarticle( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "MedlineCitation" ) ) status = medin_medlinecitation( node->down, info ); else if ( xml_tag_matches( node, "PubmedData" ) ) status = medin_pubmeddata( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_pubmedarticle( node->next, info ); return status; } static int medin_assembleref( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "PubmedArticle" ) ) status = medin_pubmedarticle( node->down, info ); else if ( xml_tag_matches( node, "MedlineCitation" ) ) status = medin_medlinecitation( node->down, info ); else status = medin_assembleref( node->down, info ); } if ( status!=BIBL_OK ) return status; if ( node->next ) { status = medin_assembleref( node->next, info ); if ( status!=BIBL_OK ) return status; } /* assume everything is a journal article */ if ( fields_num( info ) ) { status = fields_add( info, "RESOURCE", "text", LEVEL_MAIN ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "ISSUANCE", "continuing", LEVEL_HOST ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "GENRE:MARC", "periodical", LEVEL_HOST ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "GENRE:BIBUTILS", "academic journal", LEVEL_HOST ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = BIBL_OK; } return status; } static int medin_processf( fields *medin, const char *data, const char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = medin_assembleref( &top, medin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; return 0; } hs-bibutils-6.10.0.0/bibutils/modsin.c0000644000000000000000000010057507346545000015634 0ustar0000000000000000/* * modsin.c * * Copyright (c) Chris Putnam 2004-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "xml.h" #include "xml_encoding.h" #include "fields.h" #include "name.h" #include "reftypes.h" #include "modstypes.h" #include "bu_auth.h" #include "marc_auth.h" #include "url.h" #include "iso639_1.h" #include "iso639_2.h" #include "iso639_3.h" #include "bibutils.h" #include "bibformats.h" static int modsin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int modsin_processf( fields *medin, const char *data, const char *filename, long nref, param *p ); /***************************************************** PUBLIC: void modsin_initparams() *****************************************************/ int modsin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_MODSIN; pm->format_opts = 0; pm->charsetin = BIBL_CHARSET_UNICODE; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->utf8in = 1; pm->xmlin = 1; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; pm->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; pm->readf = modsin_readf; pm->processf = modsin_processf; pm->cleanf = NULL; pm->typef = NULL; pm->convertf = NULL; pm->all = NULL; pm->nall = 0; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int modsin_processf() *****************************************************/ static char modsns[]="mods"; static int modsin_detailr( xml *node, str *value ) { int status = BIBL_OK; if ( xml_has_value( node ) ) { if ( str_has_value( value ) ) str_addchar( value, ' ' ); str_strcat( value, xml_value( node ) ); if ( str_memerr( value ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_detailr( node->down, value ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_detailr( node->next, value ); return status; } static int modsin_detail( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str type, value, *tp; if ( !node->down ) return BIBL_OK; strs_init( &type, &value, NULL ); tp = xml_attribute( node, "type" ); if ( tp ) { str_strcpy( &type, tp ); str_toupper( &type ); if ( str_memerr( &type ) ) goto out; } status = modsin_detailr( node->down, &value ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &type ) && !strcasecmp( str_cstr( &type ), "PAGE" ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &value ), level ); } else { fstatus = fields_add( info, str_cstr( &type ), str_cstr( &value ), level ); } if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &type, &value, NULL ); return status; } static int modsin_date( xml *node, fields *info, int level, int part ) { int fstatus, status = BIBL_OK; const char *tag, *p; str s; str_init( &s ); p = xml_value_cstr( node ); if ( p ) { p = str_cpytodelim( &s, skip_ws( p ), "-", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:YEAR" : "DATE:YEAR"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } p = str_cpytodelim( &s, skip_ws( p ), "-", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:MONTH" : "DATE:MONTH"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } (void) str_cpytodelim( &s, skip_ws( p ), "", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:DAY" : "DATE:DAY"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: str_free( &s ); return status; } static int modsin_pager( xml *node, str *sp, str *ep, str *tp, str *lp ) { int status = BIBL_OK; if ( xml_tag_matches_has_value( node, "start" ) ) { str_strcpy( sp, xml_value( node ) ); if ( str_memerr( sp ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "end" ) ) { str_strcpy( ep, xml_value( node ) ); if ( str_memerr( ep ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "total" ) ) { str_strcpy( tp, xml_value( node ) ); if ( str_memerr( tp ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "list" ) ) { str_strcpy( lp, xml_value( node ) ); if ( str_memerr( lp ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_pager( node->down, sp, ep, tp, lp ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_pager( node->next, sp, ep, tp, lp ); return status; } static int modsin_page( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str sp, ep, tp, lp; xml *dnode = node->down; if ( !dnode ) return BIBL_OK; strs_init( &sp, &ep, &tp, &lp, NULL ); status = modsin_pager( dnode, &sp, &ep, &tp, &lp ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &sp ) || str_has_value( &ep ) ) { if ( str_has_value( &sp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &sp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &ep ) ) { fstatus = fields_add( info, "PAGES:STOP", str_cstr( &ep ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } else if ( str_has_value( &lp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &lp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &tp ) ) { fstatus = fields_add( info, "PAGES:TOTAL", str_cstr( &tp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &sp, &ep, &tp, &lp, NULL ); return status; } static int modsin_titler( xml *node, str *title, str *subtitle ) { int status = BIBL_OK; if ( xml_tag_matches_has_value( node, "title" ) ) { if ( str_has_value( title ) ) str_strcatc( title, " : " ); str_strcat( title, xml_value( node ) ); if ( str_memerr( title ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "subTitle" ) ) { str_strcat( subtitle, xml_value( node ) ); if ( str_memerr( subtitle ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_titler( node->down, title, subtitle ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_titler( node->next, title, subtitle ); return status; } static int modsin_title( xml *node, fields *info, int level ) { char *titletag[2][2] = { { "TITLE", "SHORTTITLE" }, { "SUBTITLE", "SHORTSUBTITLE" }, }; int fstatus, status = BIBL_OK; str title, subtitle; xml *dnode; int abbr; dnode = node->down; if ( !dnode ) return status; strs_init( &title, &subtitle, NULL ); abbr = xml_tag_has_attribute( node, "titleInfo", "type", "abbreviated" ); status = modsin_titler( dnode, &title, &subtitle ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &title ) ) { fstatus = fields_add( info, titletag[0][abbr], str_cstr( &title ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &subtitle ) ) { fstatus = fields_add( info, titletag[1][abbr], str_cstr( &subtitle ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &title, &subtitle, NULL ); return status; } /* modsin_marcrole_convert() * * Map MARC-authority roles for people or organizations associated * with a reference to internal roles. * * Take input strings with roles separated by '|' characters, e.g. * "author" or "author|creator" or "edt" or "editor|edt". */ static int modsin_marcrole_convert( str *s, char *suffix, str *out ) { int i, sstatus, status = BIBL_OK; slist tokens; char *p; slist_init( &tokens ); /* ...default to author on an empty string */ if ( str_is_empty( s ) ) { str_strcpyc( out, "AUTHOR" ); } else { sstatus = slist_tokenize( &tokens, s, "|", 1 ); if ( sstatus!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto done; } /* ...take first match */ for ( i=0; ilen ) str_addchar( role, '|' ); str_strcat( role, xml_value( node ) ); if ( str_memerr( role ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_asis_corp_r( node->down, name, role ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_asis_corp_r( node->next, name, role ); return status; } static int modsin_asis_corp( xml *node, fields *info, int level, char *suffix ) { int fstatus, status = BIBL_OK; str name, roles, role_out; xml *dnode = node->down; if ( dnode ) { strs_init( &name, &roles, &role_out, NULL ); status = modsin_asis_corp_r( dnode, &name, &roles ); if ( status!=BIBL_OK ) goto out; status = modsin_marcrole_convert( &roles, suffix, &role_out ); if ( status!=BIBL_OK ) goto out; fstatus = fields_add( info, str_cstr( &role_out ), str_cstr( &name ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &name, &roles, &role_out, NULL ); } return status; } static int modsin_roler( xml *node, str *roles ) { if ( xml_has_value( node ) ) { if ( roles->len ) str_addchar( roles, '|' ); str_strcat( roles, xml_value( node ) ); } if ( str_memerr( roles ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int modsin_personr( xml *node, str *familyname, str *givenname, str *suffix ) { int status = BIBL_OK; if ( !xml_has_value( node ) ) return status; if ( xml_tag_has_attribute( node, "namePart", "type", "family" ) ) { if ( str_has_value( familyname ) ) str_addchar( familyname, ' ' ); str_strcat( familyname, xml_value( node ) ); if ( str_memerr( familyname ) ) status = BIBL_ERR_MEMERR; } else if ( xml_tag_has_attribute( node, "namePart", "type", "suffix" ) || xml_tag_has_attribute( node, "namePart", "type", "termsOfAddress" ) ) { if ( str_has_value( suffix ) ) str_addchar( suffix, ' ' ); str_strcat( suffix, xml_value( node ) ); if ( str_memerr( suffix ) ) status = BIBL_ERR_MEMERR; } else if ( xml_tag_has_attribute( node, "namePart", "type", "date" ) ) { /* no nothing */ } else { if ( str_has_value( givenname ) ) str_addchar( givenname, '|' ); str_strcat( givenname, xml_value( node ) ); if ( str_memerr( givenname ) ) status = BIBL_ERR_MEMERR; } return status; } static int modsin_person( xml *node, fields *info, int level ) { str familyname, givenname, name, suffix, roles, role_out; int fstatus, status = BIBL_OK; xml *dnode, *rnode; dnode = node->down; if ( !dnode ) return status; strs_init( &name, &familyname, &givenname, &suffix, &roles, &role_out, NULL ); while ( dnode ) { if ( xml_tag_matches( dnode, "namePart" ) ) { status = modsin_personr( dnode, &familyname, &givenname, &suffix ); if ( status!=BIBL_OK ) goto out; } else if ( xml_tag_matches( dnode, "role" ) ) { rnode = dnode->down; while ( rnode ) { if ( xml_tag_matches( rnode, "roleTerm" ) ) { status = modsin_roler( rnode, &roles ); if ( status!=BIBL_OK ) goto out; } rnode = rnode->next; } } dnode = dnode->next; } /* * Handle: * Noah A. * Smith * without mangling the order of "Noah A." */ if ( str_has_value( &familyname ) ) { str_strcpy( &name, &familyname ); if ( givenname.len ) { str_addchar( &name, '|' ); str_strcat( &name, &givenname ); } } /* * Handle: * Noah A. Smith * with name order mangling. */ else { if ( str_has_value( &givenname ) ) name_parse( &name, &givenname, NULL, NULL ); } if ( str_has_value( &suffix ) ) { str_strcatc( &name, "||" ); str_strcat( &name, &suffix ); } if ( str_memerr( &name ) ) { status=BIBL_ERR_MEMERR; goto out; } status = modsin_marcrole_convert( &roles, NULL, &role_out ); if ( status!=BIBL_OK ) goto out; fstatus = fields_add_can_dup( info, str_cstr( &role_out ), str_cstr( &name ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &name, &familyname, &givenname, &suffix, &roles, &role_out, NULL ); return status; } static int modsin_placeterm_text( xml *node, fields *info, int level, int school ) { char address_tag[] = "ADDRESS"; char school_tag[] = "SCHOOL"; char *tag; int fstatus; tag = ( school ) ? school_tag : address_tag; fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; return BIBL_OK; } static int modsin_placeterm_code( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str s, *auth; str_init( &s ); auth = xml_attribute( node, "authority" ); if ( auth && auth->len ) { str_strcpy( &s, auth ); str_addchar( &s, '|' ); } str_strcat( &s, xml_value( node ) ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( info, "CODEDADDRESS", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: str_free( &s ); return status; } static int modsin_placeterm( xml *node, fields *info, int level, int school ) { int status = BIBL_OK; str *type; type = xml_attribute( node, "type" ); if ( str_has_value( type ) ) { if ( !strcmp( str_cstr( type ), "text" ) ) status = modsin_placeterm_text( node, info, level, school ); else if ( !strcmp( str_cstr( type ), "code" ) ) status = modsin_placeterm_code( node, info, level ); } return status; } static int modsin_placer( xml *node, fields *info, int level, int school ) { int status = BIBL_OK; if ( xml_tag_has_attribute( node, "place", "type", "school" ) ) { school = 1; } else if ( xml_tag_matches( node, "placeTerm" ) ) { status = modsin_placeterm( node, info, level, school ); } if ( node->down ) { status = modsin_placer( node->down, info, level, school ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_placer( node->next, info, level, school ); return status; } static int modsin_origininfor( xml *node, fields *info, int level, str *pub, str *add, str *addc, str *ed, str *iss ) { int status = BIBL_OK; if ( xml_tag_matches( node, "dateIssued" ) ) { status = modsin_date( node, info, level, 0 ); } else if ( xml_tag_matches( node, "place" ) ) { status = modsin_placer( node, info, level, 0 ); } else if ( xml_tag_matches_has_value( node, "publisher" ) ) { str_strcat( pub, xml_value( node ) ); if ( str_memerr( pub ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "edition" ) ) { str_strcat( ed, xml_value( node ) ); if( str_memerr( ed ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "issuance" ) ) { str_strcat( iss, xml_value( node ) ); if ( str_memerr( iss ) ) return BIBL_ERR_MEMERR; } if ( status!=BIBL_OK ) return status; if ( node->down ) { status = modsin_origininfor( node->down, info, level, pub, add, addc, ed, iss ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_origininfor( node->next, info, level, pub, add, addc, ed, iss ); return status; } static int modsin_origininfo( xml *node, fields *info, int level ) { str publisher, address, addcode, edition, issuance; int fstatus, status = BIBL_OK; if ( node->down ) { strs_init( &publisher, &address, &addcode, &edition, &issuance, NULL ); status = modsin_origininfor( node->down, info, level, &publisher, &address, &addcode, &edition, &issuance ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &publisher ) ) { fstatus = fields_add( info, "PUBLISHER", str_cstr( &publisher ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &address ) ) { fstatus = fields_add( info, "ADDRESS", str_cstr( &address ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &addcode ) ) { fstatus = fields_add( info, "CODEDADDRESS", str_cstr( &addcode ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &edition ) ) { fstatus = fields_add( info, "EDITION", str_cstr( &edition ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &issuance ) ) { fstatus = fields_add( info, "ISSUANCE", str_cstr( &issuance ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } out: strs_free( &publisher, &address, &addcode, &edition, &issuance, NULL ); } return status; } static int modsin_subjectr( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; if ( xml_tag_has_attribute( node, "topic", "class", "primary" ) && xml_has_value( node ) ) { fstatus = fields_add( info, "EPRINTCLASS", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "topic" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "geographic" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_subjectr( node->down, info, level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_subjectr( node->next, info, level ); return status; } static int modsin_subject( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( node->down ) status = modsin_subjectr( node->down, info, level ); return status; } static int modsin_id1( xml *node, fields *info, int level ) { int fstatus; str *ns; ns = xml_attribute( node, "ID" ); if ( str_has_value( ns ) ) { fstatus = fields_add( info, "REFNUM", str_cstr( ns ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* modsin_genre() * * MARC authority terms tagged with "GENRE:MARC" * bibutils authority terms tagged with "GENRE:BIBUTILS" * unknown terms tagged with "GENRE:UNKNOWN" */ static int modsin_genre( xml *node, fields *info, int level ) { int fstatus; char *d; if ( !xml_has_value( node ) ) return BIBL_OK; d = xml_value_cstr( node ); /* ...handle special genres in KTH DivA */ if ( !strcmp( d, "conferenceProceedings" ) || !strcmp( d, "conferencePaper" ) ) d = "conference publication"; else if ( !strcmp( d, "artisticOutput" ) || !strcmp( d, "other" ) ) d = "miscellaneous"; else if ( !strcmp( d, "studentThesis" ) ) d = "thesis"; else if ( !strcmp( d, "monographDoctoralThesis" ) ) d = "Ph.D. thesis"; else if ( !strcmp( d, "comprehensiveDoctoralThesis" ) ) d = "Ph.D. thesis"; else if ( !strcmp( d, "monographLicentiateThesis" ) ) d = "Licentiate thesis"; else if ( !strcmp( d, "comprehensiveLicentiateThesis" ) ) d = "Licentiate thesis"; if ( is_marc_genre( d ) ) fstatus = fields_add( info, "GENRE:MARC", d, level ); else if ( is_bu_genre( d ) ) fstatus = fields_add( info, "GENRE:BIBUTILS", d, level ); else fstatus = fields_add( info, "GENRE:UNKNOWN", d, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; else return BIBL_OK; } /* in MODS version 3.5 * .... * ... * xxx = rfc3066 * xxx = iso639-2b * xxx = iso639-3 * xxx = rfc4646 * xxx = rfc5646 */ static int modsin_languager( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *d = NULL; if ( xml_tag_matches( node, "languageTerm" ) ) { if ( xml_has_value( node ) ) { if ( xml_has_attribute( node, "type", "code" ) ) { if ( xml_has_attribute( node, "authority", "iso639-1" ) ) d = iso639_1_from_code( xml_value_cstr( node ) ); else if ( xml_has_attribute( node, "authority", "iso639-2b" ) ) d = iso639_2_from_code( xml_value_cstr( node ) ); else if ( xml_has_attribute( node, "authority", "iso639-3" )) d = iso639_3_from_code( xml_value_cstr( node ) ); } if ( !d ) d = xml_value_cstr( node ); fstatus = fields_add( info, "LANGUAGE", d, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } if ( node->next ) status = modsin_languager( node->next, info, level ); return status; } static int modsin_language( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; /* Old versions of MODS had English */ if ( xml_has_value( node ) ) { fstatus = fields_add( info, "LANGUAGE", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } /* New versions of MODS have English */ if ( node->down ) status = modsin_languager( node->down, info, level ); return status; } static int modsin_simple( xml *node, fields *info, char *tag, int level ) { int fstatus; if ( xml_has_value( node ) ) { fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int modsin_locationr( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *url = "URL"; char *fileattach = "FILEATTACH"; char *tag=NULL; if ( xml_tag_matches( node, "url" ) ) { if ( xml_has_attribute( node, "access", "raw object" ) ) tag = fileattach; else tag = url; } else if ( xml_tag_matches( node, "physicalLocation" ) ) { if ( xml_has_attribute( node, "type", "school" ) ) tag = "SCHOOL"; else tag = "LOCATION"; } if ( tag == url ) { status = urls_split_and_add( xml_value_cstr( node ), info, level ); if ( status!=BIBL_OK ) return status; } else if ( tag ) { fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_locationr( node->down, info, level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_locationr( node->next, info, level ); return status; } static int modsin_location( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( node->down ) status = modsin_locationr( node->down, info, level ); return status; } static int modsin_descriptionr( xml *node, str *s ) { int status = BIBL_OK; if ( xml_tag_matches( node, "extent" ) || xml_tag_matches( node, "note" ) ) { str_strcpy( s, &(node->value) ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_descriptionr( node->down, s ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_descriptionr( node->next, s ); return status; } static int modsin_description( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); if ( node->down ) { status = modsin_descriptionr( node->down, &s ); if ( status!=BIBL_OK ) goto out; } else { if ( node->value.len > 0 ) str_strcpy( &s, &(node->value) ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "DESCRIPTION", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &s ); return status; } static int modsin_partr( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( xml_tag_matches( node, "detail" ) ) status = modsin_detail( node, info, level ); else if ( xml_tag_has_attribute( node, "extent", "unit", "page" ) ) status = modsin_page( node, info, level ); else if ( xml_tag_has_attribute( node, "extent", "unit", "pages" ) ) status = modsin_page( node, info, level ); else if ( xml_tag_matches( node, "date" ) ) status = modsin_date( node, info, level, 1 ); if ( status!=BIBL_OK ) return status; if ( node->next ) status = modsin_partr( node->next, info, level ); return status; } static int modsin_part( xml *node, fields *info, int level ) { if ( node->down ) return modsin_partr( node->down, info, level ); return BIBL_OK; } /* Q3 .A65 */ static int modsin_classification( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *tag; if ( xml_has_value( node ) ) { if ( xml_tag_has_attribute( node, "classification", "authority", "lcc" ) ) tag = "LCC"; else tag = "CLASSIFICATION"; fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) status = modsin_classification( node->down, info, level ); return status; } static int modsin_recordinfo( xml *node, fields *info, int level ) { xml *curr, *down; int fstatus; /* extract recordIdentifier */ curr = node; while ( curr ) { if ( xml_tag_matches_has_value( curr, "recordIdentifier" ) ) { fstatus = fields_add( info, "REFNUM", xml_value_cstr( curr ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches( curr, "languageOfCataloging" ) ) { if ( curr->down ) { down = curr->down; fstatus = fields_add( info, "LANGCATALOG", xml_value_cstr( down ), level ); } } curr = curr->next; } return BIBL_OK; } static int modsin_identifier( xml *node, fields *info, int level ) { convert ids[] = { { "citekey", "REFNUM", 0, 0 }, { "issn", "ISSN", 0, 0 }, { "coden", "CODEN", 0, 0 }, { "isbn", "ISBN", 0, 0 }, { "doi", "DOI", 0, 0 }, { "url", "URL", 0, 0 }, { "uri", "URL", 0, 0 }, { "pmid", "PMID", 0, 0 }, { "pubmed", "PMID", 0, 0 }, { "medline", "MEDLINE", 0, 0 }, { "pmc", "PMC", 0, 0 }, { "arXiv", "ARXIV", 0, 0 }, { "MRnumber", "MRNUMBER", 0, 0 }, { "pii", "PII", 0, 0 }, { "isi", "ISIREFNUM", 0, 0 }, { "serial number", "SERIALNUMBER",0, 0 }, { "accessnum", "ACCESSNUM", 0, 0 }, { "jstor", "JSTOR", 0, 0 }, { "eid", "EID", 0, 0 }, }; int i, fstatus, n = sizeof( ids ) / sizeof( ids[0] ); if ( node->value.len==0 ) return BIBL_OK; for ( i=0; idown ) status = modsin_recordinfo( node->down, info, level ); else if ( xml_tag_matches( node, "part" ) ) modsin_part( node, info, level ); else if ( xml_tag_matches( node, "identifier" ) ) status = modsin_identifier( node, info, level ); else if ( xml_tag_matches( node, "originInfo" ) ) status = modsin_origininfo( node, info, level ); else if ( xml_tag_matches( node, "language" ) ) status = modsin_language( node, info, level ); else if ( xml_tag_matches( node, "genre" ) ) status = modsin_genre( node, info, level ); else if ( xml_tag_matches( node, "date" ) ) status = modsin_date( node, info, level, 0 ); else if ( xml_tag_matches( node, "subject" ) ) status = modsin_subject( node, info, level ); else if ( xml_tag_matches( node, "classification" ) ) status = modsin_classification( node, info, level ); else if ( xml_tag_matches( node, "location" ) ) status = modsin_location( node, info, level ); else if ( xml_tag_matches( node, "physicalDescription" ) ) status = modsin_description( node, info, level ); else if ( xml_tag_has_attribute( node, "relatedItem", "type", "host" ) || xml_tag_has_attribute( node, "relatedItem", "type", "series" ) ) { if ( node->down ) status = modsin_mods( node->down, info, level+1 ); } else if ( xml_tag_has_attribute( node, "relatedItem", "type", "original" ) ) { if ( node->down ) status = modsin_mods( node->down, info, LEVEL_ORIG ); } if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_mods( node->next, info, level ); return status; } static int modsin_assembleref( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "mods" ) ) { status = modsin_id1( node, info, 0 ); if ( status!=BIBL_OK ) return status; if ( node->down ) { status = modsin_mods( node->down, info, 0 ); if ( status!=BIBL_OK ) return status; } } else if ( node->down ) { status = modsin_assembleref( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_assembleref( node->next, info ); return status; } static int modsin_processf( fields *modsin, const char *data, const char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = modsin_assembleref( &top, modsin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; else return 0; } /***************************************************** PUBLIC: int modsin_readf() *****************************************************/ static char * modsin_startptr( char *p, char **next ) { char *startptr; *next = NULL; startptr = xml_find_start( p, "mods:mods" ); if ( startptr ) { /* set namespace if found */ xml_pns = modsns; *next = startptr + 9; } else { startptr = xml_find_start( p, "mods" ); if ( startptr ) { xml_pns = NULL; *next = startptr + 5; } } return startptr; } static char * modsin_endptr( char *p ) { return xml_find_end( p, "mods" ); } static int modsin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { str tmp; int m, file_charset = CHARSET_UNKNOWN; char *startptr = NULL, *nextptr, *endptr = NULL; str_init( &tmp ); do { if ( line->data ) str_strcat( &tmp, line ); if ( str_has_value( &tmp ) ) { m = xml_getencoding( &tmp ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; startptr = modsin_startptr( tmp.data, &nextptr ); if ( nextptr ) endptr = modsin_endptr( nextptr ); } else startptr = endptr = NULL; str_empty( line ); if ( startptr && endptr ) { str_segcpy( reference, startptr, endptr ); str_strcpyc( line, endptr ); } } while ( !endptr && str_fget( fp, buf, bufsize, bufpos, line ) ); str_free( &tmp ); *fcharset = file_charset; return ( reference->len > 0 ); } hs-bibutils-6.10.0.0/bibutils/modsin.c0000755000000000000000000010057507346545000015637 0ustar0000000000000000/* * modsin.c * * Copyright (c) Chris Putnam 2004-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "xml.h" #include "xml_encoding.h" #include "fields.h" #include "name.h" #include "reftypes.h" #include "modstypes.h" #include "bu_auth.h" #include "marc_auth.h" #include "url.h" #include "iso639_1.h" #include "iso639_2.h" #include "iso639_3.h" #include "bibutils.h" #include "bibformats.h" static int modsin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int modsin_processf( fields *medin, const char *data, const char *filename, long nref, param *p ); /***************************************************** PUBLIC: void modsin_initparams() *****************************************************/ int modsin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_MODSIN; pm->format_opts = 0; pm->charsetin = BIBL_CHARSET_UNICODE; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->utf8in = 1; pm->xmlin = 1; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; pm->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; pm->readf = modsin_readf; pm->processf = modsin_processf; pm->cleanf = NULL; pm->typef = NULL; pm->convertf = NULL; pm->all = NULL; pm->nall = 0; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int modsin_processf() *****************************************************/ static char modsns[]="mods"; static int modsin_detailr( xml *node, str *value ) { int status = BIBL_OK; if ( xml_has_value( node ) ) { if ( str_has_value( value ) ) str_addchar( value, ' ' ); str_strcat( value, xml_value( node ) ); if ( str_memerr( value ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_detailr( node->down, value ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_detailr( node->next, value ); return status; } static int modsin_detail( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str type, value, *tp; if ( !node->down ) return BIBL_OK; strs_init( &type, &value, NULL ); tp = xml_attribute( node, "type" ); if ( tp ) { str_strcpy( &type, tp ); str_toupper( &type ); if ( str_memerr( &type ) ) goto out; } status = modsin_detailr( node->down, &value ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &type ) && !strcasecmp( str_cstr( &type ), "PAGE" ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &value ), level ); } else { fstatus = fields_add( info, str_cstr( &type ), str_cstr( &value ), level ); } if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &type, &value, NULL ); return status; } static int modsin_date( xml *node, fields *info, int level, int part ) { int fstatus, status = BIBL_OK; const char *tag, *p; str s; str_init( &s ); p = xml_value_cstr( node ); if ( p ) { p = str_cpytodelim( &s, skip_ws( p ), "-", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:YEAR" : "DATE:YEAR"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } p = str_cpytodelim( &s, skip_ws( p ), "-", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:MONTH" : "DATE:MONTH"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } (void) str_cpytodelim( &s, skip_ws( p ), "", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:DAY" : "DATE:DAY"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: str_free( &s ); return status; } static int modsin_pager( xml *node, str *sp, str *ep, str *tp, str *lp ) { int status = BIBL_OK; if ( xml_tag_matches_has_value( node, "start" ) ) { str_strcpy( sp, xml_value( node ) ); if ( str_memerr( sp ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "end" ) ) { str_strcpy( ep, xml_value( node ) ); if ( str_memerr( ep ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "total" ) ) { str_strcpy( tp, xml_value( node ) ); if ( str_memerr( tp ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "list" ) ) { str_strcpy( lp, xml_value( node ) ); if ( str_memerr( lp ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_pager( node->down, sp, ep, tp, lp ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_pager( node->next, sp, ep, tp, lp ); return status; } static int modsin_page( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str sp, ep, tp, lp; xml *dnode = node->down; if ( !dnode ) return BIBL_OK; strs_init( &sp, &ep, &tp, &lp, NULL ); status = modsin_pager( dnode, &sp, &ep, &tp, &lp ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &sp ) || str_has_value( &ep ) ) { if ( str_has_value( &sp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &sp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &ep ) ) { fstatus = fields_add( info, "PAGES:STOP", str_cstr( &ep ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } else if ( str_has_value( &lp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &lp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &tp ) ) { fstatus = fields_add( info, "PAGES:TOTAL", str_cstr( &tp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &sp, &ep, &tp, &lp, NULL ); return status; } static int modsin_titler( xml *node, str *title, str *subtitle ) { int status = BIBL_OK; if ( xml_tag_matches_has_value( node, "title" ) ) { if ( str_has_value( title ) ) str_strcatc( title, " : " ); str_strcat( title, xml_value( node ) ); if ( str_memerr( title ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "subTitle" ) ) { str_strcat( subtitle, xml_value( node ) ); if ( str_memerr( subtitle ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_titler( node->down, title, subtitle ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_titler( node->next, title, subtitle ); return status; } static int modsin_title( xml *node, fields *info, int level ) { char *titletag[2][2] = { { "TITLE", "SHORTTITLE" }, { "SUBTITLE", "SHORTSUBTITLE" }, }; int fstatus, status = BIBL_OK; str title, subtitle; xml *dnode; int abbr; dnode = node->down; if ( !dnode ) return status; strs_init( &title, &subtitle, NULL ); abbr = xml_tag_has_attribute( node, "titleInfo", "type", "abbreviated" ); status = modsin_titler( dnode, &title, &subtitle ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &title ) ) { fstatus = fields_add( info, titletag[0][abbr], str_cstr( &title ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &subtitle ) ) { fstatus = fields_add( info, titletag[1][abbr], str_cstr( &subtitle ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &title, &subtitle, NULL ); return status; } /* modsin_marcrole_convert() * * Map MARC-authority roles for people or organizations associated * with a reference to internal roles. * * Take input strings with roles separated by '|' characters, e.g. * "author" or "author|creator" or "edt" or "editor|edt". */ static int modsin_marcrole_convert( str *s, char *suffix, str *out ) { int i, sstatus, status = BIBL_OK; slist tokens; char *p; slist_init( &tokens ); /* ...default to author on an empty string */ if ( str_is_empty( s ) ) { str_strcpyc( out, "AUTHOR" ); } else { sstatus = slist_tokenize( &tokens, s, "|", 1 ); if ( sstatus!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto done; } /* ...take first match */ for ( i=0; ilen ) str_addchar( role, '|' ); str_strcat( role, xml_value( node ) ); if ( str_memerr( role ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_asis_corp_r( node->down, name, role ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_asis_corp_r( node->next, name, role ); return status; } static int modsin_asis_corp( xml *node, fields *info, int level, char *suffix ) { int fstatus, status = BIBL_OK; str name, roles, role_out; xml *dnode = node->down; if ( dnode ) { strs_init( &name, &roles, &role_out, NULL ); status = modsin_asis_corp_r( dnode, &name, &roles ); if ( status!=BIBL_OK ) goto out; status = modsin_marcrole_convert( &roles, suffix, &role_out ); if ( status!=BIBL_OK ) goto out; fstatus = fields_add( info, str_cstr( &role_out ), str_cstr( &name ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &name, &roles, &role_out, NULL ); } return status; } static int modsin_roler( xml *node, str *roles ) { if ( xml_has_value( node ) ) { if ( roles->len ) str_addchar( roles, '|' ); str_strcat( roles, xml_value( node ) ); } if ( str_memerr( roles ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int modsin_personr( xml *node, str *familyname, str *givenname, str *suffix ) { int status = BIBL_OK; if ( !xml_has_value( node ) ) return status; if ( xml_tag_has_attribute( node, "namePart", "type", "family" ) ) { if ( str_has_value( familyname ) ) str_addchar( familyname, ' ' ); str_strcat( familyname, xml_value( node ) ); if ( str_memerr( familyname ) ) status = BIBL_ERR_MEMERR; } else if ( xml_tag_has_attribute( node, "namePart", "type", "suffix" ) || xml_tag_has_attribute( node, "namePart", "type", "termsOfAddress" ) ) { if ( str_has_value( suffix ) ) str_addchar( suffix, ' ' ); str_strcat( suffix, xml_value( node ) ); if ( str_memerr( suffix ) ) status = BIBL_ERR_MEMERR; } else if ( xml_tag_has_attribute( node, "namePart", "type", "date" ) ) { /* no nothing */ } else { if ( str_has_value( givenname ) ) str_addchar( givenname, '|' ); str_strcat( givenname, xml_value( node ) ); if ( str_memerr( givenname ) ) status = BIBL_ERR_MEMERR; } return status; } static int modsin_person( xml *node, fields *info, int level ) { str familyname, givenname, name, suffix, roles, role_out; int fstatus, status = BIBL_OK; xml *dnode, *rnode; dnode = node->down; if ( !dnode ) return status; strs_init( &name, &familyname, &givenname, &suffix, &roles, &role_out, NULL ); while ( dnode ) { if ( xml_tag_matches( dnode, "namePart" ) ) { status = modsin_personr( dnode, &familyname, &givenname, &suffix ); if ( status!=BIBL_OK ) goto out; } else if ( xml_tag_matches( dnode, "role" ) ) { rnode = dnode->down; while ( rnode ) { if ( xml_tag_matches( rnode, "roleTerm" ) ) { status = modsin_roler( rnode, &roles ); if ( status!=BIBL_OK ) goto out; } rnode = rnode->next; } } dnode = dnode->next; } /* * Handle: * Noah A. * Smith * without mangling the order of "Noah A." */ if ( str_has_value( &familyname ) ) { str_strcpy( &name, &familyname ); if ( givenname.len ) { str_addchar( &name, '|' ); str_strcat( &name, &givenname ); } } /* * Handle: * Noah A. Smith * with name order mangling. */ else { if ( str_has_value( &givenname ) ) name_parse( &name, &givenname, NULL, NULL ); } if ( str_has_value( &suffix ) ) { str_strcatc( &name, "||" ); str_strcat( &name, &suffix ); } if ( str_memerr( &name ) ) { status=BIBL_ERR_MEMERR; goto out; } status = modsin_marcrole_convert( &roles, NULL, &role_out ); if ( status!=BIBL_OK ) goto out; fstatus = fields_add_can_dup( info, str_cstr( &role_out ), str_cstr( &name ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &name, &familyname, &givenname, &suffix, &roles, &role_out, NULL ); return status; } static int modsin_placeterm_text( xml *node, fields *info, int level, int school ) { char address_tag[] = "ADDRESS"; char school_tag[] = "SCHOOL"; char *tag; int fstatus; tag = ( school ) ? school_tag : address_tag; fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; return BIBL_OK; } static int modsin_placeterm_code( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str s, *auth; str_init( &s ); auth = xml_attribute( node, "authority" ); if ( auth && auth->len ) { str_strcpy( &s, auth ); str_addchar( &s, '|' ); } str_strcat( &s, xml_value( node ) ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( info, "CODEDADDRESS", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: str_free( &s ); return status; } static int modsin_placeterm( xml *node, fields *info, int level, int school ) { int status = BIBL_OK; str *type; type = xml_attribute( node, "type" ); if ( str_has_value( type ) ) { if ( !strcmp( str_cstr( type ), "text" ) ) status = modsin_placeterm_text( node, info, level, school ); else if ( !strcmp( str_cstr( type ), "code" ) ) status = modsin_placeterm_code( node, info, level ); } return status; } static int modsin_placer( xml *node, fields *info, int level, int school ) { int status = BIBL_OK; if ( xml_tag_has_attribute( node, "place", "type", "school" ) ) { school = 1; } else if ( xml_tag_matches( node, "placeTerm" ) ) { status = modsin_placeterm( node, info, level, school ); } if ( node->down ) { status = modsin_placer( node->down, info, level, school ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_placer( node->next, info, level, school ); return status; } static int modsin_origininfor( xml *node, fields *info, int level, str *pub, str *add, str *addc, str *ed, str *iss ) { int status = BIBL_OK; if ( xml_tag_matches( node, "dateIssued" ) ) { status = modsin_date( node, info, level, 0 ); } else if ( xml_tag_matches( node, "place" ) ) { status = modsin_placer( node, info, level, 0 ); } else if ( xml_tag_matches_has_value( node, "publisher" ) ) { str_strcat( pub, xml_value( node ) ); if ( str_memerr( pub ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "edition" ) ) { str_strcat( ed, xml_value( node ) ); if( str_memerr( ed ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "issuance" ) ) { str_strcat( iss, xml_value( node ) ); if ( str_memerr( iss ) ) return BIBL_ERR_MEMERR; } if ( status!=BIBL_OK ) return status; if ( node->down ) { status = modsin_origininfor( node->down, info, level, pub, add, addc, ed, iss ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_origininfor( node->next, info, level, pub, add, addc, ed, iss ); return status; } static int modsin_origininfo( xml *node, fields *info, int level ) { str publisher, address, addcode, edition, issuance; int fstatus, status = BIBL_OK; if ( node->down ) { strs_init( &publisher, &address, &addcode, &edition, &issuance, NULL ); status = modsin_origininfor( node->down, info, level, &publisher, &address, &addcode, &edition, &issuance ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &publisher ) ) { fstatus = fields_add( info, "PUBLISHER", str_cstr( &publisher ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &address ) ) { fstatus = fields_add( info, "ADDRESS", str_cstr( &address ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &addcode ) ) { fstatus = fields_add( info, "CODEDADDRESS", str_cstr( &addcode ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &edition ) ) { fstatus = fields_add( info, "EDITION", str_cstr( &edition ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &issuance ) ) { fstatus = fields_add( info, "ISSUANCE", str_cstr( &issuance ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } out: strs_free( &publisher, &address, &addcode, &edition, &issuance, NULL ); } return status; } static int modsin_subjectr( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; if ( xml_tag_has_attribute( node, "topic", "class", "primary" ) && xml_has_value( node ) ) { fstatus = fields_add( info, "EPRINTCLASS", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "topic" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "geographic" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_subjectr( node->down, info, level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_subjectr( node->next, info, level ); return status; } static int modsin_subject( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( node->down ) status = modsin_subjectr( node->down, info, level ); return status; } static int modsin_id1( xml *node, fields *info, int level ) { int fstatus; str *ns; ns = xml_attribute( node, "ID" ); if ( str_has_value( ns ) ) { fstatus = fields_add( info, "REFNUM", str_cstr( ns ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* modsin_genre() * * MARC authority terms tagged with "GENRE:MARC" * bibutils authority terms tagged with "GENRE:BIBUTILS" * unknown terms tagged with "GENRE:UNKNOWN" */ static int modsin_genre( xml *node, fields *info, int level ) { int fstatus; char *d; if ( !xml_has_value( node ) ) return BIBL_OK; d = xml_value_cstr( node ); /* ...handle special genres in KTH DivA */ if ( !strcmp( d, "conferenceProceedings" ) || !strcmp( d, "conferencePaper" ) ) d = "conference publication"; else if ( !strcmp( d, "artisticOutput" ) || !strcmp( d, "other" ) ) d = "miscellaneous"; else if ( !strcmp( d, "studentThesis" ) ) d = "thesis"; else if ( !strcmp( d, "monographDoctoralThesis" ) ) d = "Ph.D. thesis"; else if ( !strcmp( d, "comprehensiveDoctoralThesis" ) ) d = "Ph.D. thesis"; else if ( !strcmp( d, "monographLicentiateThesis" ) ) d = "Licentiate thesis"; else if ( !strcmp( d, "comprehensiveLicentiateThesis" ) ) d = "Licentiate thesis"; if ( is_marc_genre( d ) ) fstatus = fields_add( info, "GENRE:MARC", d, level ); else if ( is_bu_genre( d ) ) fstatus = fields_add( info, "GENRE:BIBUTILS", d, level ); else fstatus = fields_add( info, "GENRE:UNKNOWN", d, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; else return BIBL_OK; } /* in MODS version 3.5 * .... * ... * xxx = rfc3066 * xxx = iso639-2b * xxx = iso639-3 * xxx = rfc4646 * xxx = rfc5646 */ static int modsin_languager( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *d = NULL; if ( xml_tag_matches( node, "languageTerm" ) ) { if ( xml_has_value( node ) ) { if ( xml_has_attribute( node, "type", "code" ) ) { if ( xml_has_attribute( node, "authority", "iso639-1" ) ) d = iso639_1_from_code( xml_value_cstr( node ) ); else if ( xml_has_attribute( node, "authority", "iso639-2b" ) ) d = iso639_2_from_code( xml_value_cstr( node ) ); else if ( xml_has_attribute( node, "authority", "iso639-3" )) d = iso639_3_from_code( xml_value_cstr( node ) ); } if ( !d ) d = xml_value_cstr( node ); fstatus = fields_add( info, "LANGUAGE", d, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } if ( node->next ) status = modsin_languager( node->next, info, level ); return status; } static int modsin_language( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; /* Old versions of MODS had English */ if ( xml_has_value( node ) ) { fstatus = fields_add( info, "LANGUAGE", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } /* New versions of MODS have English */ if ( node->down ) status = modsin_languager( node->down, info, level ); return status; } static int modsin_simple( xml *node, fields *info, char *tag, int level ) { int fstatus; if ( xml_has_value( node ) ) { fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int modsin_locationr( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *url = "URL"; char *fileattach = "FILEATTACH"; char *tag=NULL; if ( xml_tag_matches( node, "url" ) ) { if ( xml_has_attribute( node, "access", "raw object" ) ) tag = fileattach; else tag = url; } else if ( xml_tag_matches( node, "physicalLocation" ) ) { if ( xml_has_attribute( node, "type", "school" ) ) tag = "SCHOOL"; else tag = "LOCATION"; } if ( tag == url ) { status = urls_split_and_add( xml_value_cstr( node ), info, level ); if ( status!=BIBL_OK ) return status; } else if ( tag ) { fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_locationr( node->down, info, level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_locationr( node->next, info, level ); return status; } static int modsin_location( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( node->down ) status = modsin_locationr( node->down, info, level ); return status; } static int modsin_descriptionr( xml *node, str *s ) { int status = BIBL_OK; if ( xml_tag_matches( node, "extent" ) || xml_tag_matches( node, "note" ) ) { str_strcpy( s, &(node->value) ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_descriptionr( node->down, s ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_descriptionr( node->next, s ); return status; } static int modsin_description( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); if ( node->down ) { status = modsin_descriptionr( node->down, &s ); if ( status!=BIBL_OK ) goto out; } else { if ( node->value.len > 0 ) str_strcpy( &s, &(node->value) ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "DESCRIPTION", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &s ); return status; } static int modsin_partr( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( xml_tag_matches( node, "detail" ) ) status = modsin_detail( node, info, level ); else if ( xml_tag_has_attribute( node, "extent", "unit", "page" ) ) status = modsin_page( node, info, level ); else if ( xml_tag_has_attribute( node, "extent", "unit", "pages" ) ) status = modsin_page( node, info, level ); else if ( xml_tag_matches( node, "date" ) ) status = modsin_date( node, info, level, 1 ); if ( status!=BIBL_OK ) return status; if ( node->next ) status = modsin_partr( node->next, info, level ); return status; } static int modsin_part( xml *node, fields *info, int level ) { if ( node->down ) return modsin_partr( node->down, info, level ); return BIBL_OK; } /* Q3 .A65 */ static int modsin_classification( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *tag; if ( xml_has_value( node ) ) { if ( xml_tag_has_attribute( node, "classification", "authority", "lcc" ) ) tag = "LCC"; else tag = "CLASSIFICATION"; fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) status = modsin_classification( node->down, info, level ); return status; } static int modsin_recordinfo( xml *node, fields *info, int level ) { xml *curr, *down; int fstatus; /* extract recordIdentifier */ curr = node; while ( curr ) { if ( xml_tag_matches_has_value( curr, "recordIdentifier" ) ) { fstatus = fields_add( info, "REFNUM", xml_value_cstr( curr ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches( curr, "languageOfCataloging" ) ) { if ( curr->down ) { down = curr->down; fstatus = fields_add( info, "LANGCATALOG", xml_value_cstr( down ), level ); } } curr = curr->next; } return BIBL_OK; } static int modsin_identifier( xml *node, fields *info, int level ) { convert ids[] = { { "citekey", "REFNUM", 0, 0 }, { "issn", "ISSN", 0, 0 }, { "coden", "CODEN", 0, 0 }, { "isbn", "ISBN", 0, 0 }, { "doi", "DOI", 0, 0 }, { "url", "URL", 0, 0 }, { "uri", "URL", 0, 0 }, { "pmid", "PMID", 0, 0 }, { "pubmed", "PMID", 0, 0 }, { "medline", "MEDLINE", 0, 0 }, { "pmc", "PMC", 0, 0 }, { "arXiv", "ARXIV", 0, 0 }, { "MRnumber", "MRNUMBER", 0, 0 }, { "pii", "PII", 0, 0 }, { "isi", "ISIREFNUM", 0, 0 }, { "serial number", "SERIALNUMBER",0, 0 }, { "accessnum", "ACCESSNUM", 0, 0 }, { "jstor", "JSTOR", 0, 0 }, { "eid", "EID", 0, 0 }, }; int i, fstatus, n = sizeof( ids ) / sizeof( ids[0] ); if ( node->value.len==0 ) return BIBL_OK; for ( i=0; idown ) status = modsin_recordinfo( node->down, info, level ); else if ( xml_tag_matches( node, "part" ) ) modsin_part( node, info, level ); else if ( xml_tag_matches( node, "identifier" ) ) status = modsin_identifier( node, info, level ); else if ( xml_tag_matches( node, "originInfo" ) ) status = modsin_origininfo( node, info, level ); else if ( xml_tag_matches( node, "language" ) ) status = modsin_language( node, info, level ); else if ( xml_tag_matches( node, "genre" ) ) status = modsin_genre( node, info, level ); else if ( xml_tag_matches( node, "date" ) ) status = modsin_date( node, info, level, 0 ); else if ( xml_tag_matches( node, "subject" ) ) status = modsin_subject( node, info, level ); else if ( xml_tag_matches( node, "classification" ) ) status = modsin_classification( node, info, level ); else if ( xml_tag_matches( node, "location" ) ) status = modsin_location( node, info, level ); else if ( xml_tag_matches( node, "physicalDescription" ) ) status = modsin_description( node, info, level ); else if ( xml_tag_has_attribute( node, "relatedItem", "type", "host" ) || xml_tag_has_attribute( node, "relatedItem", "type", "series" ) ) { if ( node->down ) status = modsin_mods( node->down, info, level+1 ); } else if ( xml_tag_has_attribute( node, "relatedItem", "type", "original" ) ) { if ( node->down ) status = modsin_mods( node->down, info, LEVEL_ORIG ); } if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_mods( node->next, info, level ); return status; } static int modsin_assembleref( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "mods" ) ) { status = modsin_id1( node, info, 0 ); if ( status!=BIBL_OK ) return status; if ( node->down ) { status = modsin_mods( node->down, info, 0 ); if ( status!=BIBL_OK ) return status; } } else if ( node->down ) { status = modsin_assembleref( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_assembleref( node->next, info ); return status; } static int modsin_processf( fields *modsin, const char *data, const char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = modsin_assembleref( &top, modsin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; else return 0; } /***************************************************** PUBLIC: int modsin_readf() *****************************************************/ static char * modsin_startptr( char *p, char **next ) { char *startptr; *next = NULL; startptr = xml_find_start( p, "mods:mods" ); if ( startptr ) { /* set namespace if found */ xml_pns = modsns; *next = startptr + 9; } else { startptr = xml_find_start( p, "mods" ); if ( startptr ) { xml_pns = NULL; *next = startptr + 5; } } return startptr; } static char * modsin_endptr( char *p ) { return xml_find_end( p, "mods" ); } static int modsin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { str tmp; int m, file_charset = CHARSET_UNKNOWN; char *startptr = NULL, *nextptr, *endptr = NULL; str_init( &tmp ); do { if ( line->data ) str_strcat( &tmp, line ); if ( str_has_value( &tmp ) ) { m = xml_getencoding( &tmp ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; startptr = modsin_startptr( tmp.data, &nextptr ); if ( nextptr ) endptr = modsin_endptr( nextptr ); } else startptr = endptr = NULL; str_empty( line ); if ( startptr && endptr ) { str_segcpy( reference, startptr, endptr ); str_strcpyc( line, endptr ); } } while ( !endptr && str_fget( fp, buf, bufsize, bufpos, line ) ); str_free( &tmp ); *fcharset = file_charset; return ( reference->len > 0 ); } hs-bibutils-6.10.0.0/bibutils/modsout.c0000644000000000000000000011501307346545000016026 0ustar0000000000000000/* * modsout.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "charsets.h" #include "str_conv.h" #include "fields.h" #include "iso639_2.h" #include "utf8.h" #include "modstypes.h" #include "bu_auth.h" #include "marc_auth.h" #include "bibformats.h" /***************************************************** PUBLIC: int modsout_initparams() *****************************************************/ static void modsout_writeheader( FILE *outptr, param *p ); static void modsout_writefooter( FILE *outptr ); static int modsout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ); int modsout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_MODSOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_UNICODE; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = 1; pm->utf8bom = 1; pm->xmlout = BIBL_XMLOUT_TRUE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; pm->headerf = modsout_writeheader; pm->footerf = modsout_writefooter; pm->assemblef = NULL; pm->writef = modsout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int modsout_write() *****************************************************/ /* output_tag() * * mode = TAG_OPEN, "" * mode = TAG_CLOSE, "" * mode = TAG_OPENCLOSE, "data" * mode = TAG_SELFCLOSE, "" * * newline = TAG_NONEWLINE, "" * newline = TAG_NEWLINE, "\n" * */ #define TAG_OPEN (0) #define TAG_CLOSE (1) #define TAG_OPENCLOSE (2) #define TAG_SELFCLOSE (3) #define TAG_NONEWLINE (0) #define TAG_NEWLINE (1) static void output_tag_core( FILE *outptr, int nindents, char *tag, char *data, unsigned char mode, unsigned char newline, va_list *attrs ) { char *attr, *val; int i; for ( i=0; i" ); else fprintf( outptr, "/>" ); if ( mode==TAG_OPENCLOSE ) { fprintf( outptr, "%s", data, tag ); } if ( newline==TAG_NEWLINE ) fprintf( outptr, "\n" ); } /* output_tag() * * output XML tag * * mode = [ TAG_OPEN | TAG_CLOSE | TAG_OPENCLOSE | TAG_SELFCLOSE ] * newline = [ TAG_NEWLINE | TAG_NONEWLINE ] * * for mode TAG_OPENCLOSE, ensure that value is non-NULL, as string pointed to by value * will be output in the tag */ static void output_tag( FILE *outptr, int nindents, char *tag, char *value, unsigned char mode, unsigned char newline, ... ) { va_list attrs; va_start( attrs, newline ); output_tag_core( outptr, nindents, tag, value, mode, newline, &attrs ); va_end( attrs ); } /* output_fil() * * output XML tag, but lookup data in fields struct * * mode = [ TAG_OPEN | TAG_CLOSE | TAG_OPENCLOSE | TAG_SELFCLOSE ] * newline = [ TAG_NEWLINE | TAG_NONEWLINE ] * * value looked up in fields will only be used in mode TAG_OPENCLOSE */ static void output_fil( FILE *outptr, int nindents, char *tag, fields *f, int n, unsigned char mode, unsigned char newline, ... ) { va_list attrs; char *value; if ( n!=-1 ) { value = (char *) fields_value( f, n, FIELDS_CHRP ); va_start( attrs, newline ); output_tag_core( outptr, nindents, tag, value, mode, newline, &attrs ); va_end( attrs ); } } static inline int lvl2indent( int level ) { if ( level < -1 ) return -level + 1; else return level + 1; } static inline int incr_level( int level, int amt ) { if ( level > -1 ) return level+amt; else return level-amt; } /* convert_findallfields() * * Find the positions of all convert.internal tags in the fields * structure and store the locations in convert.pos element. * * Return number of the tags found. */ static int convert_findallfields( fields *f, convert *parts, int nparts, int level ) { int i, n = 0; for ( i=0; i element */ if ( ttl==-1 && subttl==-1 ) output_tag( outptr, lvl2indent(incr_level(level,1)), "title", NULL, TAG_SELFCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); /* output shorttitle if it's different from normal title */ if ( shrttl!=FIELDS_NOTFOUND ) { val = (char *) fields_value( f, shrttl, FIELDS_CHRP ); if ( ttl==FIELDS_NOTFOUND || subttl!=FIELDS_NOTFOUND || strcmp(fields_value(f,ttl,FIELDS_CHRP),val) ) { output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_OPEN, TAG_NEWLINE, "type", "abbreviated", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "title", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } } static void output_name( FILE *outptr, char *p, int level ) { str family, part, suffix; int n=0; strs_init( &family, &part, &suffix, NULL ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); if ( *p=='|' ) p++; while ( *p ) { while ( *p && *p!='|' ) str_addchar( &part, *p++ ); /* truncate periods from "A. B. Jones" names */ if ( part.len ) { if ( part.len==2 && part.data[1]=='.' ) { part.len=1; part.data[1]='\0'; } if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", part.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "given", NULL ); n++; } if ( *p=='|' ) { p++; if ( *p=='|' ) { p++; while ( *p && *p!='|' ) str_addchar( &suffix, *p++ ); } str_empty( &part ); } } if ( family.len ) { if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", family.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "family", NULL ); n++; } if ( suffix.len ) { if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", suffix.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "suffix", NULL ); } strs_free( &part, &family, &suffix, NULL ); } /* MODS v 3.4 * * * * * * * * * * */ #define NO_AUTHORITY (0) #define MARC_AUTHORITY (1) static void output_names( fields *f, FILE *outptr, int level ) { convert names[] = { { "author", "AUTHOR", 0, MARC_AUTHORITY }, { "editor", "EDITOR", 0, MARC_AUTHORITY }, { "annotator", "ANNOTATOR", 0, MARC_AUTHORITY }, { "artist", "ARTIST", 0, MARC_AUTHORITY }, { "author", "2ND_AUTHOR", 0, MARC_AUTHORITY }, { "author", "3RD_AUTHOR", 0, MARC_AUTHORITY }, { "author", "SUB_AUTHOR", 0, MARC_AUTHORITY }, { "author", "COMMITTEE", 0, MARC_AUTHORITY }, { "author", "COURT", 0, MARC_AUTHORITY }, { "author", "LEGISLATIVEBODY", 0, MARC_AUTHORITY }, { "author of afterword, colophon, etc.", "AFTERAUTHOR", 0, MARC_AUTHORITY }, { "author of introduction, etc.", "INTROAUTHOR", 0, MARC_AUTHORITY }, { "cartographer", "CARTOGRAPHER", 0, MARC_AUTHORITY }, { "collaborator", "COLLABORATOR", 0, MARC_AUTHORITY }, { "commentator", "COMMENTATOR", 0, MARC_AUTHORITY }, { "compiler", "COMPILER", 0, MARC_AUTHORITY }, { "degree grantor", "DEGREEGRANTOR", 0, MARC_AUTHORITY }, { "director", "DIRECTOR", 0, MARC_AUTHORITY }, { "event", "EVENT", 0, NO_AUTHORITY }, { "inventor", "INVENTOR", 0, MARC_AUTHORITY }, { "organizer of meeting", "ORGANIZER", 0, MARC_AUTHORITY }, { "patent holder", "ASSIGNEE", 0, MARC_AUTHORITY }, { "performer", "PERFORMER", 0, MARC_AUTHORITY }, { "producer", "PRODUCER", 0, MARC_AUTHORITY }, { "addressee", "ADDRESSEE", 0, MARC_AUTHORITY }, { "redactor", "REDACTOR", 0, MARC_AUTHORITY }, { "reporter", "REPORTER", 0, MARC_AUTHORITY }, { "sponsor", "SPONSOR", 0, MARC_AUTHORITY }, { "translator", "TRANSLATOR", 0, MARC_AUTHORITY }, { "writer", "WRITER", 0, MARC_AUTHORITY }, }; int i, n, nfields, ntypes = sizeof( names ) / sizeof( convert ); int f_asis, f_corp, f_conf; str role; str_init( &role ); nfields = fields_num( f ); for ( n=0; ntag[i].data ); if ( str_findreplace( &role, ":ASIS", "" )) f_asis=1; if ( str_findreplace( &role, ":CORP", "" )) f_corp=1; if ( str_findreplace( &role, ":CONF", "" )) f_conf=1; if ( strcasecmp( role.data, names[n].internal ) ) continue; if ( f_asis ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else if ( f_corp ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "corporate", NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else if ( f_conf ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "conference", NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else { output_name(outptr, fields_value( f, i, FIELDS_CHRP ), level); } output_tag( outptr, lvl2indent(incr_level(level,1)), "role", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); if ( names[n].code & MARC_AUTHORITY ) output_tag( outptr, lvl2indent(incr_level(level,2)), "roleTerm", names[n].mods, TAG_OPENCLOSE, TAG_NEWLINE, "authority", "marcrelator", "type", "text", NULL ); else output_tag( outptr, lvl2indent(incr_level(level,2)), "roleTerm", names[n].mods, TAG_OPENCLOSE, TAG_NEWLINE, "type", "text", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "role", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "name", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); fields_set_used( f, i ); } } str_free( &role ); } /* datepos[ NUM_DATE_TYPES ] * use define to ensure that the array and loops don't get out of sync * datepos[0] -> DATE:YEAR/PARTDATE:YEAR * datepos[1] -> DATE:MONTH/PARTDATE:MONTH * datepos[2] -> DATE:DAY/PARTDATE:DAY * datepos[3] -> DATE/PARTDATE */ #define DATE_YEAR (0) #define DATE_MONTH (1) #define DATE_DAY (2) #define DATE_ALL (3) #define NUM_DATE_TYPES (4) static int find_datepos( fields *f, int level, unsigned char use_altnames, int datepos[NUM_DATE_TYPES] ) { char *src_names[] = { "DATE:YEAR", "DATE:MONTH", "DATE:DAY", "DATE" }; char *alt_names[] = { "PARTDATE:YEAR", "PARTDATE:MONTH", "PARTDATE:DAY", "PARTDATE" }; int found = 0; int i; for ( i=0; i0 ) fprintf( outptr, "-" ); /* zero pad month or days written as "1", "2", "3" ... */ if ( i==DATE_MONTH || i==DATE_DAY ) { s = fields_value( f, pos[i], FIELDS_STRP_NOUSE ); if ( s->len==1 ) { fprintf( outptr, "0" ); } } fprintf( outptr, "%s", (char *) fields_value( f, pos[i], FIELDS_CHRP ) ); } } static void output_dateissued( fields *f, FILE *outptr, int level, int pos[ NUM_DATE_TYPES ] ) { output_tag( outptr, lvl2indent(incr_level(level,1)), "dateIssued", NULL, TAG_OPEN, TAG_NONEWLINE, NULL ); if ( pos[ DATE_YEAR ]!=-1 || pos[ DATE_MONTH ]!=-1 || pos[ DATE_DAY ]!=-1 ) { output_datepieces( f, outptr, pos ); } else { fprintf( outptr, "%s", (char *) fields_value( f, pos[ DATE_ALL ], FIELDS_CHRP ) ); } fprintf( outptr, "\n" ); } static void output_origin( fields *f, FILE *outptr, int level ) { convert parts[] = { { "issuance", "ISSUANCE", 0, 0 }, { "publisher", "PUBLISHER", 0, 0 }, { "place", "ADDRESS", 0, 1 }, { "place", "ADDRESS:PUBLISHER", 0, 0 }, { "place", "ADDRESS:AUTHOR", 0, 0 }, { "edition", "EDITION", 0, 0 }, { "dateCaptured", "URLDATE", 0, 0 } }; int nparts = sizeof( parts ) / sizeof( parts[0] ); int i, found, datefound, datepos[ NUM_DATE_TYPES ]; found = convert_findallfields( f, parts, nparts, level ); datefound = find_dateinfo( f, level, datepos ); if ( !found && !datefound ) return; output_tag( outptr, lvl2indent(level), "originInfo", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); /* issuance must precede date */ if ( parts[0].pos!=-1 ) output_fil( outptr, lvl2indent(incr_level(level,1)), "issuance", f, parts[0].pos, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); /* date */ if ( datefound ) output_dateissued( f, outptr, level, datepos ); /* rest of the originInfo elements */ for ( i=1; i * xxx * * * * xxx * xxx * * */ static void output_language_core( fields *f, int n, FILE *outptr, char *tag, int level ) { char *lang, *code; lang = (char *) fields_value( f, n, FIELDS_CHRP ); code = iso639_2_from_language( lang ); output_tag( outptr, lvl2indent(level), tag, NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "languageTerm", lang, TAG_OPENCLOSE, TAG_NEWLINE, "type", "text", NULL ); if ( code ) { output_tag( outptr, lvl2indent(incr_level(level,1)), "languageTerm", code, TAG_OPENCLOSE, TAG_NEWLINE, "type", "code", "authority", "iso639-2b", NULL ); } output_tag( outptr, lvl2indent(level), tag, NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } static void output_language( fields *f, FILE *outptr, int level ) { int n; n = fields_find( f, "LANGUAGE", level ); if ( n!=FIELDS_NOTFOUND ) output_language_core( f, n, outptr, "language", level ); } static void output_description( fields *f, FILE *outptr, int level ) { char *val; int n; n = fields_find( f, "DESCRIPTION", level ); if ( n!=FIELDS_NOTFOUND ) { val = ( char * ) fields_value( f, n, FIELDS_CHRP ); output_tag( outptr, lvl2indent(level), "physicalDescription", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "note", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "physicalDescription", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } static void output_toc( fields *f, FILE *outptr, int level ) { char *val; int n; n = fields_find( f, "CONTENTS", level ); if ( n!=FIELDS_NOTFOUND ) { val = (char *) fields_value( f, n, FIELDS_CHRP ); output_tag( outptr, lvl2indent(level), "tableOfContents", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } } /* detail output * * for example: * * xxx * xxx * xxx * */ static void mods_output_extents( fields *f, FILE *outptr, int start, int end, int total, char *extype, int level ) { char *val; output_tag( outptr, lvl2indent(incr_level(level,1)), "extent", NULL, TAG_OPEN, TAG_NEWLINE, "unit", extype, NULL ); if ( start!=-1 ) { val = (char *) fields_value( f, start, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "start", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } if ( end!=-1 ) { val = (char *) fields_value( f, end, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "end", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } if ( total!=-1 ) { val = (char *) fields_value( f, total, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "total", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } output_tag( outptr, lvl2indent(incr_level(level,1)), "extent", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } static void try_output_partheader( FILE *outptr, int wrote_header, int level ) { if ( !wrote_header ) output_tag( outptr, lvl2indent(level), "part", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); } static void try_output_partfooter( FILE *outptr, int wrote_header, int level ) { if ( wrote_header ) output_tag( outptr, lvl2indent(level), "part", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* part date output * * xxxx-xx-xx * */ static int output_partdate( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "PARTDATE:YEAR", 0, 0 }, { "", "PARTDATE:MONTH", 0, 0 }, { "", "PARTDATE:DAY", 0, 0 }, }; int nparts = sizeof(parts)/sizeof(parts[0]); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); output_tag( outptr, lvl2indent(incr_level(level,1)), "date", NULL, TAG_OPEN, TAG_NONEWLINE, NULL ); if ( parts[0].pos!=-1 ) { fprintf( outptr, "%s", (char *) fields_value( f, parts[0].pos, FIELDS_CHRP ) ); } else fprintf( outptr, "XXXX" ); if ( parts[1].pos!=-1 ) { fprintf( outptr, "-%s", (char *) fields_value( f, parts[1].pos, FIELDS_CHRP ) ); } if ( parts[2].pos!=-1 ) { if ( parts[1].pos==-1 ) fprintf( outptr, "-XX" ); fprintf( outptr, "-%s", (char *) fields_value( f, parts[2].pos, FIELDS_CHRP ) ); } fprintf( outptr,"\n"); return 1; } static int output_partpages( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "PAGES:START", 0, 0 }, { "", "PAGES:STOP", 0, 0 }, { "", "PAGES", 0, 0 }, { "", "PAGES:TOTAL", 0, 0 } }; int nparts = sizeof(parts)/sizeof(parts[0]); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); /* If PAGES:START or PAGES:STOP are undefined */ if ( parts[0].pos==-1 || parts[1].pos==-1 ) { if ( parts[0].pos!=-1 ) mods_output_detail( f, outptr, parts[0].pos, "page", level ); if ( parts[1].pos!=-1 ) mods_output_detail( f, outptr, parts[1].pos, "page", level ); if ( parts[2].pos!=-1 ) mods_output_detail( f, outptr, parts[2].pos, "page", level ); if ( parts[3].pos!=-1 ) mods_output_extents( f, outptr, -1, -1, parts[3].pos, "page", level ); } /* If both PAGES:START and PAGES:STOP are defined */ else { mods_output_extents( f, outptr, parts[0].pos, parts[1].pos, parts[3].pos, "page", level ); } return 1; } static int output_partelement( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "NUMVOLUMES", 0, 0 }, { "volume", "VOLUME", 0, 0 }, { "section", "SECTION", 0, 0 }, { "issue", "ISSUE", 0, 0 }, { "number", "NUMBER", 0, 0 }, { "publiclawnumber", "PUBLICLAWNUMBER", 0, 0 }, { "session", "SESSION", 0, 0 }, { "articlenumber", "ARTICLENUMBER", 0, 0 }, { "part", "PART", 0, 0 }, { "chapter", "CHAPTER", 0, 0 }, { "report number", "REPORTNUMBER", 0, 0 }, }; int i, nparts = sizeof( parts ) / sizeof( convert ); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); /* start loop at 1 to skip NUMVOLUMES */ for ( i=1; ithesis * Diploma thesis */ static void output_genre( fields *f, FILE *outptr, int level ) { char *value, *attr = NULL, *attrvalue = NULL; int i, n; n = fields_num( f ); for ( i=0; itext */ static void output_resource( fields *f, FILE *outptr, int level ) { char *value; int n; n = fields_find( f, "RESOURCE", level ); if ( n!=FIELDS_NOTFOUND ) { value = fields_value( f, n, FIELDS_CHRP ); if ( is_marc_resource( value ) ) { output_fil( outptr, lvl2indent(level), "typeOfResource", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else { fprintf( stderr, "Illegal typeofResource = '%s'\n", value ); } } } static void output_type( fields *f, FILE *outptr, int level ) { int n; /* silence warnings about INTERNAL_TYPE being unused */ n = fields_find( f, "INTERNAL_TYPE", LEVEL_MAIN ); if ( n!=FIELDS_NOTFOUND ) fields_set_used( f, n ); output_resource( f, outptr, level ); output_genre( f, outptr, level ); } /* output_abs() * * xxxx */ static void output_abs( fields *f, FILE *outptr, int level ) { int n; n = fields_find( f, "ABSTRACT", level ); output_fil( outptr, lvl2indent(level), "abstract", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } static void output_notes( fields *f, FILE *outptr, int level ) { int i, n; char *t; n = fields_num( f ); for ( i=0; i * xxxx * */ static void output_key( fields *f, FILE *outptr, int level ) { int i, n; n = fields_num( f ); for ( i=0; itag[i].data, "KEYWORD" ) ) { output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "topic", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } else if ( !strcasecmp( f->tag[i].data, "EPRINTCLASS" ) ) { output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "topic", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "class", "primary", NULL ); output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } } static void output_sn( fields *f, FILE *outptr, int level ) { convert sn_types[] = { { "isbn", "ISBN", 0, 0 }, { "isbn", "ISBN13", 0, 0 }, { "lccn", "LCCN", 0, 0 }, { "issn", "ISSN", 0, 0 }, { "coden", "CODEN", 0, 0 }, { "citekey", "REFNUM", 0, 0 }, { "doi", "DOI", 0, 0 }, { "eid", "EID", 0, 0 }, { "eprint", "EPRINT", 0, 0 }, { "eprinttype","EPRINTTYPE",0, 0 }, { "pubmed", "PMID", 0, 0 }, { "MRnumber", "MRNUMBER", 0, 0 }, { "medline", "MEDLINE", 0, 0 }, { "pii", "PII", 0, 0 }, { "pmc", "PMC", 0, 0 }, { "arXiv", "ARXIV", 0, 0 }, { "isi", "ISIREFNUM", 0, 0 }, { "accessnum", "ACCESSNUM", 0, 0 }, { "jstor", "JSTOR", 0, 0 }, { "isrn", "ISRN", 0, 0 }, }; int ntypes = sizeof( sn_types ) / sizeof( sn_types[0] ); int i, n, found; /* output call number */ n = fields_find( f, "CALLNUMBER", level ); output_fil( outptr, lvl2indent(level), "classification", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); /* output specialized serialnumber */ found = convert_findallfields( f, sn_types, ntypes, level ); if ( found ) { for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "SERIALNUMBER" ) ) continue; output_fil( outptr, lvl2indent(level), "identifier", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "type", "serial number", NULL ); } } /* output_url() * * * URL * PDFLINK * PDFLINK * LOCATION * */ static void output_url( fields *f, FILE *outptr, int level ) { int location = fields_find( f, "LOCATION", level ); int url = fields_find( f, "URL", level ); int fileattach = fields_find( f, "FILEATTACH", level ); int pdflink = fields_find( f, "PDFLINK", level ); int i, n; if ( url==FIELDS_NOTFOUND && location==FIELDS_NOTFOUND && pdflink==FIELDS_NOTFOUND && fileattach==FIELDS_NOTFOUND ) return; output_tag( outptr, lvl2indent(level), "location", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); n = fields_num( f ); for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "URL" ) ) continue; output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "PDFLINK" ) ) continue; /* output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "urlType", "pdf", NULL ); */ output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "FILEATTACH" ) ) continue; output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "displayLabel", "Electronic full text", "access", "raw object", NULL ); } if ( location!=-1 ) output_fil( outptr, lvl2indent(incr_level(level,1)), "physicalLocation", f, location, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "location", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* refnum should start with a non-number and not include spaces -- ignore this */ static void output_refnum( fields *f, int n, FILE *outptr ) { char *p = fields_value( f, n, FIELDS_CHRP_NOUSE ); /* if ( p && ((*p>='0' && *p<='9') || *p=='-' || *p=='_' )) fprintf( outptr, "ref" );*/ while ( p && *p ) { if ( !is_ws(*p) ) fprintf( outptr, "%c", *p ); /* if ( (*p>='A' && *p<='Z') || (*p>='a' && *p<='z') || (*p>='0' && *p<='9') || (*p=='-') || (*p==' (*p=='_') ) fprintf( outptr, "%c", *p );*/ p++; } } static void output_head( fields *f, FILE *outptr, int dropkey, unsigned long numrefs ) { int n; fprintf( outptr, "\n" ); } static int original_items( fields *f, int level ) { int i, targetlevel, n; if ( level < 0 ) return 0; targetlevel = -( level + 2 ); n = fields_num( f ); for ( i=0; i= 0 && level < max ) { output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_OPEN, TAG_NEWLINE, "type", "host", NULL ); output_citeparts( f, outptr, incr_level(level,1), max ); output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* Look for original item things */ orig_level = original_items( f, level ); if ( orig_level ) { output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_OPEN, TAG_NEWLINE, "type", "original", NULL ); output_citeparts( f, outptr, orig_level, max ); output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } output_abs( f, outptr, level ); output_notes( f, outptr, level ); output_toc( f, outptr, level ); output_key( f, outptr, level ); output_sn( f, outptr, level ); output_url( f, outptr, level ); output_part( f, outptr, level ); output_recordInfo( f, outptr, level ); } static void modsout_report_unused_tags( fields *f, param *p, unsigned long numrefs ) { int i, n, nwritten, nunused = 0, level; char *tag, *value; n = fields_num( f ); for ( i=0; iprogname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Reference %lu has unused tags.\n", numrefs+1 ); /* Find author from level 0 */ nwritten = 0; for ( i=0; iformat_opts & BIBL_FORMAT_MODSOUT_DROPKEY ); output_head( f, outptr, dropkey, numrefs ); output_citeparts( f, outptr, 0, max ); modsout_report_unused_tags( f, p, numrefs ); fprintf( outptr, "\n" ); fflush( outptr ); return BIBL_OK; } /***************************************************** PUBLIC: int modsout_writeheader() *****************************************************/ static void modsout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); fprintf(outptr,"\n", charset_get_xmlname( p->charsetout ) ); fprintf(outptr,"\n"); } /***************************************************** PUBLIC: int modsout_writefooter() *****************************************************/ static void modsout_writefooter( FILE *outptr ) { fprintf(outptr,"\n"); fflush( outptr ); } hs-bibutils-6.10.0.0/bibutils/modsout.c0000755000000000000000000011501307346545000016031 0ustar0000000000000000/* * modsout.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "charsets.h" #include "str_conv.h" #include "fields.h" #include "iso639_2.h" #include "utf8.h" #include "modstypes.h" #include "bu_auth.h" #include "marc_auth.h" #include "bibformats.h" /***************************************************** PUBLIC: int modsout_initparams() *****************************************************/ static void modsout_writeheader( FILE *outptr, param *p ); static void modsout_writefooter( FILE *outptr ); static int modsout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ); int modsout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_MODSOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_UNICODE; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = 1; pm->utf8bom = 1; pm->xmlout = BIBL_XMLOUT_TRUE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; pm->headerf = modsout_writeheader; pm->footerf = modsout_writefooter; pm->assemblef = NULL; pm->writef = modsout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int modsout_write() *****************************************************/ /* output_tag() * * mode = TAG_OPEN, "" * mode = TAG_CLOSE, "" * mode = TAG_OPENCLOSE, "data" * mode = TAG_SELFCLOSE, "" * * newline = TAG_NONEWLINE, "" * newline = TAG_NEWLINE, "\n" * */ #define TAG_OPEN (0) #define TAG_CLOSE (1) #define TAG_OPENCLOSE (2) #define TAG_SELFCLOSE (3) #define TAG_NONEWLINE (0) #define TAG_NEWLINE (1) static void output_tag_core( FILE *outptr, int nindents, char *tag, char *data, unsigned char mode, unsigned char newline, va_list *attrs ) { char *attr, *val; int i; for ( i=0; i" ); else fprintf( outptr, "/>" ); if ( mode==TAG_OPENCLOSE ) { fprintf( outptr, "%s", data, tag ); } if ( newline==TAG_NEWLINE ) fprintf( outptr, "\n" ); } /* output_tag() * * output XML tag * * mode = [ TAG_OPEN | TAG_CLOSE | TAG_OPENCLOSE | TAG_SELFCLOSE ] * newline = [ TAG_NEWLINE | TAG_NONEWLINE ] * * for mode TAG_OPENCLOSE, ensure that value is non-NULL, as string pointed to by value * will be output in the tag */ static void output_tag( FILE *outptr, int nindents, char *tag, char *value, unsigned char mode, unsigned char newline, ... ) { va_list attrs; va_start( attrs, newline ); output_tag_core( outptr, nindents, tag, value, mode, newline, &attrs ); va_end( attrs ); } /* output_fil() * * output XML tag, but lookup data in fields struct * * mode = [ TAG_OPEN | TAG_CLOSE | TAG_OPENCLOSE | TAG_SELFCLOSE ] * newline = [ TAG_NEWLINE | TAG_NONEWLINE ] * * value looked up in fields will only be used in mode TAG_OPENCLOSE */ static void output_fil( FILE *outptr, int nindents, char *tag, fields *f, int n, unsigned char mode, unsigned char newline, ... ) { va_list attrs; char *value; if ( n!=-1 ) { value = (char *) fields_value( f, n, FIELDS_CHRP ); va_start( attrs, newline ); output_tag_core( outptr, nindents, tag, value, mode, newline, &attrs ); va_end( attrs ); } } static inline int lvl2indent( int level ) { if ( level < -1 ) return -level + 1; else return level + 1; } static inline int incr_level( int level, int amt ) { if ( level > -1 ) return level+amt; else return level-amt; } /* convert_findallfields() * * Find the positions of all convert.internal tags in the fields * structure and store the locations in convert.pos element. * * Return number of the tags found. */ static int convert_findallfields( fields *f, convert *parts, int nparts, int level ) { int i, n = 0; for ( i=0; i element */ if ( ttl==-1 && subttl==-1 ) output_tag( outptr, lvl2indent(incr_level(level,1)), "title", NULL, TAG_SELFCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); /* output shorttitle if it's different from normal title */ if ( shrttl!=FIELDS_NOTFOUND ) { val = (char *) fields_value( f, shrttl, FIELDS_CHRP ); if ( ttl==FIELDS_NOTFOUND || subttl!=FIELDS_NOTFOUND || strcmp(fields_value(f,ttl,FIELDS_CHRP),val) ) { output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_OPEN, TAG_NEWLINE, "type", "abbreviated", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "title", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } } static void output_name( FILE *outptr, char *p, int level ) { str family, part, suffix; int n=0; strs_init( &family, &part, &suffix, NULL ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); if ( *p=='|' ) p++; while ( *p ) { while ( *p && *p!='|' ) str_addchar( &part, *p++ ); /* truncate periods from "A. B. Jones" names */ if ( part.len ) { if ( part.len==2 && part.data[1]=='.' ) { part.len=1; part.data[1]='\0'; } if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", part.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "given", NULL ); n++; } if ( *p=='|' ) { p++; if ( *p=='|' ) { p++; while ( *p && *p!='|' ) str_addchar( &suffix, *p++ ); } str_empty( &part ); } } if ( family.len ) { if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", family.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "family", NULL ); n++; } if ( suffix.len ) { if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", suffix.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "suffix", NULL ); } strs_free( &part, &family, &suffix, NULL ); } /* MODS v 3.4 * * * * * * * * * * */ #define NO_AUTHORITY (0) #define MARC_AUTHORITY (1) static void output_names( fields *f, FILE *outptr, int level ) { convert names[] = { { "author", "AUTHOR", 0, MARC_AUTHORITY }, { "editor", "EDITOR", 0, MARC_AUTHORITY }, { "annotator", "ANNOTATOR", 0, MARC_AUTHORITY }, { "artist", "ARTIST", 0, MARC_AUTHORITY }, { "author", "2ND_AUTHOR", 0, MARC_AUTHORITY }, { "author", "3RD_AUTHOR", 0, MARC_AUTHORITY }, { "author", "SUB_AUTHOR", 0, MARC_AUTHORITY }, { "author", "COMMITTEE", 0, MARC_AUTHORITY }, { "author", "COURT", 0, MARC_AUTHORITY }, { "author", "LEGISLATIVEBODY", 0, MARC_AUTHORITY }, { "author of afterword, colophon, etc.", "AFTERAUTHOR", 0, MARC_AUTHORITY }, { "author of introduction, etc.", "INTROAUTHOR", 0, MARC_AUTHORITY }, { "cartographer", "CARTOGRAPHER", 0, MARC_AUTHORITY }, { "collaborator", "COLLABORATOR", 0, MARC_AUTHORITY }, { "commentator", "COMMENTATOR", 0, MARC_AUTHORITY }, { "compiler", "COMPILER", 0, MARC_AUTHORITY }, { "degree grantor", "DEGREEGRANTOR", 0, MARC_AUTHORITY }, { "director", "DIRECTOR", 0, MARC_AUTHORITY }, { "event", "EVENT", 0, NO_AUTHORITY }, { "inventor", "INVENTOR", 0, MARC_AUTHORITY }, { "organizer of meeting", "ORGANIZER", 0, MARC_AUTHORITY }, { "patent holder", "ASSIGNEE", 0, MARC_AUTHORITY }, { "performer", "PERFORMER", 0, MARC_AUTHORITY }, { "producer", "PRODUCER", 0, MARC_AUTHORITY }, { "addressee", "ADDRESSEE", 0, MARC_AUTHORITY }, { "redactor", "REDACTOR", 0, MARC_AUTHORITY }, { "reporter", "REPORTER", 0, MARC_AUTHORITY }, { "sponsor", "SPONSOR", 0, MARC_AUTHORITY }, { "translator", "TRANSLATOR", 0, MARC_AUTHORITY }, { "writer", "WRITER", 0, MARC_AUTHORITY }, }; int i, n, nfields, ntypes = sizeof( names ) / sizeof( convert ); int f_asis, f_corp, f_conf; str role; str_init( &role ); nfields = fields_num( f ); for ( n=0; ntag[i].data ); if ( str_findreplace( &role, ":ASIS", "" )) f_asis=1; if ( str_findreplace( &role, ":CORP", "" )) f_corp=1; if ( str_findreplace( &role, ":CONF", "" )) f_conf=1; if ( strcasecmp( role.data, names[n].internal ) ) continue; if ( f_asis ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else if ( f_corp ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "corporate", NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else if ( f_conf ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "conference", NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else { output_name(outptr, fields_value( f, i, FIELDS_CHRP ), level); } output_tag( outptr, lvl2indent(incr_level(level,1)), "role", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); if ( names[n].code & MARC_AUTHORITY ) output_tag( outptr, lvl2indent(incr_level(level,2)), "roleTerm", names[n].mods, TAG_OPENCLOSE, TAG_NEWLINE, "authority", "marcrelator", "type", "text", NULL ); else output_tag( outptr, lvl2indent(incr_level(level,2)), "roleTerm", names[n].mods, TAG_OPENCLOSE, TAG_NEWLINE, "type", "text", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "role", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "name", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); fields_set_used( f, i ); } } str_free( &role ); } /* datepos[ NUM_DATE_TYPES ] * use define to ensure that the array and loops don't get out of sync * datepos[0] -> DATE:YEAR/PARTDATE:YEAR * datepos[1] -> DATE:MONTH/PARTDATE:MONTH * datepos[2] -> DATE:DAY/PARTDATE:DAY * datepos[3] -> DATE/PARTDATE */ #define DATE_YEAR (0) #define DATE_MONTH (1) #define DATE_DAY (2) #define DATE_ALL (3) #define NUM_DATE_TYPES (4) static int find_datepos( fields *f, int level, unsigned char use_altnames, int datepos[NUM_DATE_TYPES] ) { char *src_names[] = { "DATE:YEAR", "DATE:MONTH", "DATE:DAY", "DATE" }; char *alt_names[] = { "PARTDATE:YEAR", "PARTDATE:MONTH", "PARTDATE:DAY", "PARTDATE" }; int found = 0; int i; for ( i=0; i0 ) fprintf( outptr, "-" ); /* zero pad month or days written as "1", "2", "3" ... */ if ( i==DATE_MONTH || i==DATE_DAY ) { s = fields_value( f, pos[i], FIELDS_STRP_NOUSE ); if ( s->len==1 ) { fprintf( outptr, "0" ); } } fprintf( outptr, "%s", (char *) fields_value( f, pos[i], FIELDS_CHRP ) ); } } static void output_dateissued( fields *f, FILE *outptr, int level, int pos[ NUM_DATE_TYPES ] ) { output_tag( outptr, lvl2indent(incr_level(level,1)), "dateIssued", NULL, TAG_OPEN, TAG_NONEWLINE, NULL ); if ( pos[ DATE_YEAR ]!=-1 || pos[ DATE_MONTH ]!=-1 || pos[ DATE_DAY ]!=-1 ) { output_datepieces( f, outptr, pos ); } else { fprintf( outptr, "%s", (char *) fields_value( f, pos[ DATE_ALL ], FIELDS_CHRP ) ); } fprintf( outptr, "\n" ); } static void output_origin( fields *f, FILE *outptr, int level ) { convert parts[] = { { "issuance", "ISSUANCE", 0, 0 }, { "publisher", "PUBLISHER", 0, 0 }, { "place", "ADDRESS", 0, 1 }, { "place", "ADDRESS:PUBLISHER", 0, 0 }, { "place", "ADDRESS:AUTHOR", 0, 0 }, { "edition", "EDITION", 0, 0 }, { "dateCaptured", "URLDATE", 0, 0 } }; int nparts = sizeof( parts ) / sizeof( parts[0] ); int i, found, datefound, datepos[ NUM_DATE_TYPES ]; found = convert_findallfields( f, parts, nparts, level ); datefound = find_dateinfo( f, level, datepos ); if ( !found && !datefound ) return; output_tag( outptr, lvl2indent(level), "originInfo", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); /* issuance must precede date */ if ( parts[0].pos!=-1 ) output_fil( outptr, lvl2indent(incr_level(level,1)), "issuance", f, parts[0].pos, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); /* date */ if ( datefound ) output_dateissued( f, outptr, level, datepos ); /* rest of the originInfo elements */ for ( i=1; i * xxx * * * * xxx * xxx * * */ static void output_language_core( fields *f, int n, FILE *outptr, char *tag, int level ) { char *lang, *code; lang = (char *) fields_value( f, n, FIELDS_CHRP ); code = iso639_2_from_language( lang ); output_tag( outptr, lvl2indent(level), tag, NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "languageTerm", lang, TAG_OPENCLOSE, TAG_NEWLINE, "type", "text", NULL ); if ( code ) { output_tag( outptr, lvl2indent(incr_level(level,1)), "languageTerm", code, TAG_OPENCLOSE, TAG_NEWLINE, "type", "code", "authority", "iso639-2b", NULL ); } output_tag( outptr, lvl2indent(level), tag, NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } static void output_language( fields *f, FILE *outptr, int level ) { int n; n = fields_find( f, "LANGUAGE", level ); if ( n!=FIELDS_NOTFOUND ) output_language_core( f, n, outptr, "language", level ); } static void output_description( fields *f, FILE *outptr, int level ) { char *val; int n; n = fields_find( f, "DESCRIPTION", level ); if ( n!=FIELDS_NOTFOUND ) { val = ( char * ) fields_value( f, n, FIELDS_CHRP ); output_tag( outptr, lvl2indent(level), "physicalDescription", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "note", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "physicalDescription", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } static void output_toc( fields *f, FILE *outptr, int level ) { char *val; int n; n = fields_find( f, "CONTENTS", level ); if ( n!=FIELDS_NOTFOUND ) { val = (char *) fields_value( f, n, FIELDS_CHRP ); output_tag( outptr, lvl2indent(level), "tableOfContents", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } } /* detail output * * for example: * * xxx * xxx * xxx * */ static void mods_output_extents( fields *f, FILE *outptr, int start, int end, int total, char *extype, int level ) { char *val; output_tag( outptr, lvl2indent(incr_level(level,1)), "extent", NULL, TAG_OPEN, TAG_NEWLINE, "unit", extype, NULL ); if ( start!=-1 ) { val = (char *) fields_value( f, start, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "start", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } if ( end!=-1 ) { val = (char *) fields_value( f, end, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "end", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } if ( total!=-1 ) { val = (char *) fields_value( f, total, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "total", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } output_tag( outptr, lvl2indent(incr_level(level,1)), "extent", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } static void try_output_partheader( FILE *outptr, int wrote_header, int level ) { if ( !wrote_header ) output_tag( outptr, lvl2indent(level), "part", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); } static void try_output_partfooter( FILE *outptr, int wrote_header, int level ) { if ( wrote_header ) output_tag( outptr, lvl2indent(level), "part", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* part date output * * xxxx-xx-xx * */ static int output_partdate( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "PARTDATE:YEAR", 0, 0 }, { "", "PARTDATE:MONTH", 0, 0 }, { "", "PARTDATE:DAY", 0, 0 }, }; int nparts = sizeof(parts)/sizeof(parts[0]); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); output_tag( outptr, lvl2indent(incr_level(level,1)), "date", NULL, TAG_OPEN, TAG_NONEWLINE, NULL ); if ( parts[0].pos!=-1 ) { fprintf( outptr, "%s", (char *) fields_value( f, parts[0].pos, FIELDS_CHRP ) ); } else fprintf( outptr, "XXXX" ); if ( parts[1].pos!=-1 ) { fprintf( outptr, "-%s", (char *) fields_value( f, parts[1].pos, FIELDS_CHRP ) ); } if ( parts[2].pos!=-1 ) { if ( parts[1].pos==-1 ) fprintf( outptr, "-XX" ); fprintf( outptr, "-%s", (char *) fields_value( f, parts[2].pos, FIELDS_CHRP ) ); } fprintf( outptr,"\n"); return 1; } static int output_partpages( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "PAGES:START", 0, 0 }, { "", "PAGES:STOP", 0, 0 }, { "", "PAGES", 0, 0 }, { "", "PAGES:TOTAL", 0, 0 } }; int nparts = sizeof(parts)/sizeof(parts[0]); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); /* If PAGES:START or PAGES:STOP are undefined */ if ( parts[0].pos==-1 || parts[1].pos==-1 ) { if ( parts[0].pos!=-1 ) mods_output_detail( f, outptr, parts[0].pos, "page", level ); if ( parts[1].pos!=-1 ) mods_output_detail( f, outptr, parts[1].pos, "page", level ); if ( parts[2].pos!=-1 ) mods_output_detail( f, outptr, parts[2].pos, "page", level ); if ( parts[3].pos!=-1 ) mods_output_extents( f, outptr, -1, -1, parts[3].pos, "page", level ); } /* If both PAGES:START and PAGES:STOP are defined */ else { mods_output_extents( f, outptr, parts[0].pos, parts[1].pos, parts[3].pos, "page", level ); } return 1; } static int output_partelement( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "NUMVOLUMES", 0, 0 }, { "volume", "VOLUME", 0, 0 }, { "section", "SECTION", 0, 0 }, { "issue", "ISSUE", 0, 0 }, { "number", "NUMBER", 0, 0 }, { "publiclawnumber", "PUBLICLAWNUMBER", 0, 0 }, { "session", "SESSION", 0, 0 }, { "articlenumber", "ARTICLENUMBER", 0, 0 }, { "part", "PART", 0, 0 }, { "chapter", "CHAPTER", 0, 0 }, { "report number", "REPORTNUMBER", 0, 0 }, }; int i, nparts = sizeof( parts ) / sizeof( convert ); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); /* start loop at 1 to skip NUMVOLUMES */ for ( i=1; ithesis * Diploma thesis */ static void output_genre( fields *f, FILE *outptr, int level ) { char *value, *attr = NULL, *attrvalue = NULL; int i, n; n = fields_num( f ); for ( i=0; itext */ static void output_resource( fields *f, FILE *outptr, int level ) { char *value; int n; n = fields_find( f, "RESOURCE", level ); if ( n!=FIELDS_NOTFOUND ) { value = fields_value( f, n, FIELDS_CHRP ); if ( is_marc_resource( value ) ) { output_fil( outptr, lvl2indent(level), "typeOfResource", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else { fprintf( stderr, "Illegal typeofResource = '%s'\n", value ); } } } static void output_type( fields *f, FILE *outptr, int level ) { int n; /* silence warnings about INTERNAL_TYPE being unused */ n = fields_find( f, "INTERNAL_TYPE", LEVEL_MAIN ); if ( n!=FIELDS_NOTFOUND ) fields_set_used( f, n ); output_resource( f, outptr, level ); output_genre( f, outptr, level ); } /* output_abs() * * xxxx */ static void output_abs( fields *f, FILE *outptr, int level ) { int n; n = fields_find( f, "ABSTRACT", level ); output_fil( outptr, lvl2indent(level), "abstract", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } static void output_notes( fields *f, FILE *outptr, int level ) { int i, n; char *t; n = fields_num( f ); for ( i=0; i * xxxx * */ static void output_key( fields *f, FILE *outptr, int level ) { int i, n; n = fields_num( f ); for ( i=0; itag[i].data, "KEYWORD" ) ) { output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "topic", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } else if ( !strcasecmp( f->tag[i].data, "EPRINTCLASS" ) ) { output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "topic", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "class", "primary", NULL ); output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } } static void output_sn( fields *f, FILE *outptr, int level ) { convert sn_types[] = { { "isbn", "ISBN", 0, 0 }, { "isbn", "ISBN13", 0, 0 }, { "lccn", "LCCN", 0, 0 }, { "issn", "ISSN", 0, 0 }, { "coden", "CODEN", 0, 0 }, { "citekey", "REFNUM", 0, 0 }, { "doi", "DOI", 0, 0 }, { "eid", "EID", 0, 0 }, { "eprint", "EPRINT", 0, 0 }, { "eprinttype","EPRINTTYPE",0, 0 }, { "pubmed", "PMID", 0, 0 }, { "MRnumber", "MRNUMBER", 0, 0 }, { "medline", "MEDLINE", 0, 0 }, { "pii", "PII", 0, 0 }, { "pmc", "PMC", 0, 0 }, { "arXiv", "ARXIV", 0, 0 }, { "isi", "ISIREFNUM", 0, 0 }, { "accessnum", "ACCESSNUM", 0, 0 }, { "jstor", "JSTOR", 0, 0 }, { "isrn", "ISRN", 0, 0 }, }; int ntypes = sizeof( sn_types ) / sizeof( sn_types[0] ); int i, n, found; /* output call number */ n = fields_find( f, "CALLNUMBER", level ); output_fil( outptr, lvl2indent(level), "classification", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); /* output specialized serialnumber */ found = convert_findallfields( f, sn_types, ntypes, level ); if ( found ) { for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "SERIALNUMBER" ) ) continue; output_fil( outptr, lvl2indent(level), "identifier", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "type", "serial number", NULL ); } } /* output_url() * * * URL * PDFLINK * PDFLINK * LOCATION * */ static void output_url( fields *f, FILE *outptr, int level ) { int location = fields_find( f, "LOCATION", level ); int url = fields_find( f, "URL", level ); int fileattach = fields_find( f, "FILEATTACH", level ); int pdflink = fields_find( f, "PDFLINK", level ); int i, n; if ( url==FIELDS_NOTFOUND && location==FIELDS_NOTFOUND && pdflink==FIELDS_NOTFOUND && fileattach==FIELDS_NOTFOUND ) return; output_tag( outptr, lvl2indent(level), "location", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); n = fields_num( f ); for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "URL" ) ) continue; output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "PDFLINK" ) ) continue; /* output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "urlType", "pdf", NULL ); */ output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "FILEATTACH" ) ) continue; output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "displayLabel", "Electronic full text", "access", "raw object", NULL ); } if ( location!=-1 ) output_fil( outptr, lvl2indent(incr_level(level,1)), "physicalLocation", f, location, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "location", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* refnum should start with a non-number and not include spaces -- ignore this */ static void output_refnum( fields *f, int n, FILE *outptr ) { char *p = fields_value( f, n, FIELDS_CHRP_NOUSE ); /* if ( p && ((*p>='0' && *p<='9') || *p=='-' || *p=='_' )) fprintf( outptr, "ref" );*/ while ( p && *p ) { if ( !is_ws(*p) ) fprintf( outptr, "%c", *p ); /* if ( (*p>='A' && *p<='Z') || (*p>='a' && *p<='z') || (*p>='0' && *p<='9') || (*p=='-') || (*p==' (*p=='_') ) fprintf( outptr, "%c", *p );*/ p++; } } static void output_head( fields *f, FILE *outptr, int dropkey, unsigned long numrefs ) { int n; fprintf( outptr, "\n" ); } static int original_items( fields *f, int level ) { int i, targetlevel, n; if ( level < 0 ) return 0; targetlevel = -( level + 2 ); n = fields_num( f ); for ( i=0; i= 0 && level < max ) { output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_OPEN, TAG_NEWLINE, "type", "host", NULL ); output_citeparts( f, outptr, incr_level(level,1), max ); output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* Look for original item things */ orig_level = original_items( f, level ); if ( orig_level ) { output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_OPEN, TAG_NEWLINE, "type", "original", NULL ); output_citeparts( f, outptr, orig_level, max ); output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } output_abs( f, outptr, level ); output_notes( f, outptr, level ); output_toc( f, outptr, level ); output_key( f, outptr, level ); output_sn( f, outptr, level ); output_url( f, outptr, level ); output_part( f, outptr, level ); output_recordInfo( f, outptr, level ); } static void modsout_report_unused_tags( fields *f, param *p, unsigned long numrefs ) { int i, n, nwritten, nunused = 0, level; char *tag, *value; n = fields_num( f ); for ( i=0; iprogname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Reference %lu has unused tags.\n", numrefs+1 ); /* Find author from level 0 */ nwritten = 0; for ( i=0; iformat_opts & BIBL_FORMAT_MODSOUT_DROPKEY ); output_head( f, outptr, dropkey, numrefs ); output_citeparts( f, outptr, 0, max ); modsout_report_unused_tags( f, p, numrefs ); fprintf( outptr, "\n" ); fflush( outptr ); return BIBL_OK; } /***************************************************** PUBLIC: int modsout_writeheader() *****************************************************/ static void modsout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); fprintf(outptr,"\n", charset_get_xmlname( p->charsetout ) ); fprintf(outptr,"\n"); } /***************************************************** PUBLIC: int modsout_writefooter() *****************************************************/ static void modsout_writefooter( FILE *outptr ) { fprintf(outptr,"\n"); fflush( outptr ); } hs-bibutils-6.10.0.0/bibutils/modstypes.c0000644000000000000000000000250007346545000016357 0ustar0000000000000000/* * modstypes.c * * Copyright (c) Chris Putnam 2004-2020 * * Source code released under the GPL version 2 * */ #include #include #include "modstypes.h" /* Conversion information for identifier type attributes: * * XXXX-XXXX * */ convert identifier_types[] = { { "citekey", "REFNUM" }, { "issn", "ISSN" }, { "isbn", "ISBN" }, { "doi", "DOI" }, { "url", "URL" }, { "uri", "URL" }, { "pubmed", "PMID", }, { "medline", "MEDLINE" }, { "pmc", "PMC" }, { "pii", "PII" }, { "isi", "ISIREFNUM" }, { "lccn", "LCCN" }, { "serial number", "SERIALNUMBER" }, { "accessnum", "ACCESSNUM" } }; int nidentifier_types = sizeof( identifier_types ) / sizeof( identifier_types[0] ); char * mods_find_attrib( char *internal_name, convert *data, int ndata ) { int i; for ( i=0; i #include #include "modstypes.h" /* Conversion information for identifier type attributes: * * XXXX-XXXX * */ convert identifier_types[] = { { "citekey", "REFNUM" }, { "issn", "ISSN" }, { "isbn", "ISBN" }, { "doi", "DOI" }, { "url", "URL" }, { "uri", "URL" }, { "pubmed", "PMID", }, { "medline", "MEDLINE" }, { "pmc", "PMC" }, { "pii", "PII" }, { "isi", "ISIREFNUM" }, { "lccn", "LCCN" }, { "serial number", "SERIALNUMBER" }, { "accessnum", "ACCESSNUM" } }; int nidentifier_types = sizeof( identifier_types ) / sizeof( identifier_types[0] ); char * mods_find_attrib( char *internal_name, convert *data, int ndata ) { int i; for ( i=0; i #include #include #include "utf8.h" #include "unicode.h" #include "is_ws.h" #include "str.h" #include "fields.h" #include "slist.h" #include "intlist.h" #include "name.h" /* name_build_withcomma() * * reconstruct parsed names in format: 'family|given|given||suffix' * to 'family suffix, given given */ void name_build_withcomma( str *s, const char *p ) { const char *suffix, *stopat; int nseps = 0, nch; str_empty( s ); suffix = strstr( p, "||" ); if ( suffix ) stopat = suffix; else stopat = strchr( p, '\0' ); while ( p != stopat ) { nch = 0; if ( nseps==1 ) { if ( suffix ) { str_strcatc( s, " " ); str_strcatc( s, suffix+2 ); } str_addchar( s, ',' ); } if ( nseps ) str_addchar( s, ' ' ); while ( p!=stopat && *p!='|' ) { str_addchar( s, *p++ ); nch++; } if ( p!=stopat && *p=='|' ) p++; if ( nseps!=0 && nch==1 ) str_addchar( s, '.' ); nseps++; } } /* name_findetal() * * Returns number of final tokens to be skipped in processing * of name lists. */ int name_findetal( slist *tokens ) { str *s1, *s2; if ( tokens->n==0 ) return 0; /* ...check last entry for full 'et al.' or variant */ s2 = slist_str( tokens, tokens->n - 1 ); if ( !strcasecmp( s2->data, "et alia" ) || !strcasecmp( s2->data, "et al." ) || !strcasecmp( s2->data, "et al.," ) || !strcasecmp( s2->data, "et al" ) || !strcasecmp( s2->data, "etalia" ) || !strcasecmp( s2->data, "etal." ) || !strcasecmp( s2->data, "etal" ) ) { return 1; } if ( tokens->n==1 ) return 0; /* ...check last two entries for full 'et' and 'al.' */ s1 = slist_str( tokens, tokens->n - 2 ); if ( !strcasecmp( s1->data, "et" ) ) { if ( !strcasecmp( s2->data, "alia" ) || !strcasecmp( s2->data, "al." ) || !strcasecmp( s2->data, "al.," ) || !strcasecmp( s2->data, "al" ) ) { return 2; } } return 0; } #define WITHCOMMA (1) #define JUNIOR (2) #define SENIOR (4) #define THIRD (8) #define FOURTH (16) typedef struct { char *s; unsigned short value; } suffix_value_t; static int identify_suffix( char *p ) { suffix_value_t suffixes[] = { { "Jr." , JUNIOR }, { "Jr" , JUNIOR }, { "Jr.," , JUNIOR | WITHCOMMA }, { "Jr," , JUNIOR | WITHCOMMA }, { "Sr." , SENIOR }, { "Sr" , SENIOR }, { "Sr.," , SENIOR | WITHCOMMA }, { "Sr," , SENIOR | WITHCOMMA }, { "III" , THIRD }, { "III," , THIRD | WITHCOMMA }, { "IV" , FOURTH }, { "IV," , FOURTH | WITHCOMMA }, }; int i, nsuffixes = sizeof( suffixes ) / sizeof( suffixes[0] ); for ( i=0; idata ); if ( ret ) { *suffixpos = end - 1; return ret; } /* ...try to find one after a comma, e.g. "Author, Sr., H. F." */ for ( i=begin; ilen && s->data[ s->len - 1 ]==',' ) { s = slist_str( tokens, i+1 ); ret = identify_suffix( s->data ); if ( ret ) { *suffixpos = i+1; return ret; } } } return 0; } static int add_given_split( str *name, str *s ) { unsigned int unicode_char; unsigned int pos = 0; char utf8s[7]; while ( pos < s->len ) { unicode_char = utf8_decode( s->data, &pos ); if ( is_ws( (char) unicode_char ) ) continue; else if ( unicode_char==(unsigned int)'.' ) { if ( s->data[pos]=='-' ) { str_strcatc( name, ".-" ); pos += 1; unicode_char = utf8_decode( s->data, &pos ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); str_addchar( name, '.' ); } } else if ( unicode_char==(unsigned int)'-' ) { str_strcatc( name, ".-" ); unicode_char = utf8_decode( s->data, &pos ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); str_addchar( name, '.' ); } else if ( unicode_char==(unsigned int)',' ) { /* nothing */ } else { str_addchar( name, '|' ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); } } return 1; } static unsigned char token_has_no_upper( slist *tokens, int n ) { unsigned short m; str *s; s = slist_str( tokens, n ); m = unicode_utf8_classify_str( s ); if ( m & UNICODE_UPPER ) return 0; else return 1; } static unsigned char token_has_upper( slist *tokens, int n ) { if ( token_has_no_upper( tokens, n ) ) return 0; else return 1; } static int name_multielement_nocomma( intlist *given, intlist *family, slist *tokens, int begin, int end, int suffixpos ) { int family_start, family_end; int i, n; /* ...family name(s) */ family_start = family_end = end - 1; if ( family_start == suffixpos ) family_start = family_end = end - 2; /* ...if family name is capitalized, then look for first non-capitalized * ...token and combine range to family name, e.g. single quoted parts of * ..."Ludwig 'von Beethoven'" * ..."Johannes Diderik 'van der Waals'" * ..."Charles Louis Xavier Joseph 'de la Valla Poussin' */ if ( token_has_upper( tokens, family_start ) ) { i = family_start - 1; n = -1; while ( i >= begin && ( n==-1 || token_has_no_upper( tokens, i ) ) ) { if ( token_has_no_upper( tokens, i ) ) n = i; i--; } if ( n != -1 ) family_start = n; } for ( i=family_start; i=family_start && i<=family_end ) continue; if ( i==suffixpos ) continue; intlist_add( given, i ); } return 1; } static int name_multielement_comma( intlist *given, intlist *family, slist *tokens, int begin, int end, int comma, int suffixpos ) { str *s; int i; /* ...family names */ for ( i=begin; in; ++i ) { m = intlist_get( family, i ); s = slist_str( tokens, m ); if ( i ) str_addchar( name, ' ' ); str_strcat( name, s ); case_family |= unicode_utf8_classify_str( s ); } /* ...check given name case */ for ( i=0; in; ++i ) { m = intlist_get( given, i ); s = slist_str( tokens, m ); case_given |= unicode_utf8_classify_str( s ); } if ( ( ( case_family & UNICODE_MIXEDCASE ) == UNICODE_MIXEDCASE ) && ( ( case_given & UNICODE_MIXEDCASE ) == UNICODE_UPPER ) ) { should_split = 1; } for ( i=0; in; ++i ) { m = intlist_get( given, i ); s = slist_str( tokens, m ); if ( !should_split ) { str_addchar( name, '|' ); str_strcat( name, s ); } else add_given_split( name, s ); } return 1; } static int name_construct_multi( str *outname, slist *tokens, int begin, int end ) { int i, suffix, suffixpos=-1, comma=-1; intlist given, family; str *s; intlist_init( &family ); intlist_init( &given ); str_empty( outname ); suffix = has_suffix( tokens, begin, end, &suffixpos ); for ( i=begin; idata[ s->len - 1 ] == ',' ) { if ( suffix && i==suffixpos-1 && !(suffix&WITHCOMMA) ) str_trimend( s, 1 ); else comma = i; } } if ( comma != -1 ) name_multielement_comma( &given, &family, tokens, begin, end, comma, suffixpos ); else name_multielement_nocomma( &given, &family, tokens, begin, end, suffixpos ); name_mutlielement_build( outname, &given, &family, tokens ); if ( suffix ) { if ( suffix & JUNIOR ) str_strcatc( outname, "||Jr." ); if ( suffix & SENIOR ) str_strcatc( outname, "||Sr." ); if ( suffix & THIRD ) str_strcatc( outname, "||III" ); if ( suffix & FOURTH ) str_strcatc( outname, "||IV" ); } intlist_free( &given ); intlist_free( &family ); return 1; } int name_addmultielement( fields *info, const char *tag, slist *tokens, int begin, int end, int level ) { int status, ok = 1; str name; str_init( &name ); name_construct_multi( &name, tokens, begin, end ); status = fields_add_can_dup( info, tag, str_cstr( &name ), level ); if ( status!=FIELDS_OK ) ok = 0; str_free( &name ); return ok; } /* name_addsingleelement() * * Treat names that are single tokens, e.g. {Random Corporation, Inc.} in bibtex * as a name that should not be mangled (e.g. AUTHOR:ASIS or AUTHOR:CORP, if corp * is set). */ int name_addsingleelement( fields *info, const char *tag, const char *name, int level, int asiscorp ) { int status, ok = 1; str outtag; str_init( &outtag ); str_strcpyc( &outtag, tag ); if ( asiscorp == NAME_ASIS ) str_strcatc( &outtag, ":ASIS" ); else if ( asiscorp == NAME_CORP ) str_strcatc( &outtag, ":CORP" ); status = fields_add_can_dup( info, outtag.data, name, level ); if ( status!=FIELDS_OK ) ok = 0; str_free( &outtag ); return ok; } /* * Takes a single name in a string and parses it. * Skipped by bibtex/biblatex that come pre-parsed. * * Returns 0 on error. * Returns 1 on ok. * Returns 2 on ok and name in asis list * Returns 3 on ok and name in corps list */ int name_parse( str *outname, str *inname, slist *asis, slist *corps ) { int status, ret = 1; slist tokens; str_empty( outname ); if ( !inname || !inname->len ) return ret; slist_init( &tokens ); if ( asis && slist_find( asis, inname ) !=-1 ) { str_strcpy( outname, inname ); ret = 2; goto out; } else if ( corps && slist_find( corps, inname ) != -1 ) { str_strcpy( outname, inname ); ret = 3; goto out; } str_findreplace( inname, ",", ", " ); status = slist_tokenize( &tokens, inname, " ", 1 ); if ( status!=SLIST_OK ) { str_strcpy( outname, inname ); ret = 2; goto out; } if ( tokens.n==1 ) { str_strcpy( outname, inname ); ret = 2; } else { name_construct_multi( outname, &tokens, 0, tokens.n ); ret = 1; } out: slist_free( &tokens ); return ret; } static const char * name_copy( str *name, const char *p ) { const char *start, *end, *q; str_empty( name ); start = p = skip_ws( p ); /* strip tailing whitespace and commas */ while ( *p && *p!='|' ) p++; end = p; while ( is_ws( *end ) || *end==',' || *end=='|' || *end=='\0' ) end--; if ( *p=='|' ) p++; for ( q=start; q<=end; q++ ) str_addchar( name, *q ); return p; } /* * name_add( info, newtag, data, level ) * * take name(s) in data, multiple names should be separated by * '|' characters and divide into individual name, e.g. * "H. F. Author|W. G. Author|Q. X. Author" * * for each name, compare to names in the "as is" or "corporation" * lists...these are not personal names and should be added to the * bibliography fields directly and should not be mangled * * for each personal name, send to appropriate algorithm depending * on if the author name is in the format "H. F. Author" or * "Author, H. F." */ int name_add( fields *info, const char *tag, const char *q, int level, slist *asis, slist *corps ) { int ok, status, nametype, ret = 1; str inname, outname; slist tokens; if ( !q ) return 0; slist_init( &tokens ); strs_init( &inname, &outname, NULL ); while ( *q ) { q = name_copy( &inname, q ); nametype = name_parse( &outname, &inname, asis, corps ); if ( !nametype ) { ret = 0; goto out; } if ( nametype==1 ) { status = fields_add_can_dup( info, tag, outname.data, level ); ok = ( status==FIELDS_OK ) ? 1 : 0; } else if ( nametype==2 ) ok = name_addsingleelement( info, tag, outname.data, level, NAME_ASIS ); else ok = name_addsingleelement( info, tag, outname.data, level, NAME_CORP ); if ( !ok ) { ret = 0; goto out; } } out: strs_free( &inname, &outname, NULL ); slist_free( &tokens ); return ret; } hs-bibutils-6.10.0.0/bibutils/name.c0000755000000000000000000003033107346545000015256 0ustar0000000000000000/* * name.c * * mangle names w/ and w/o commas * * Copyright (c) Chris Putnam 2004-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "utf8.h" #include "unicode.h" #include "is_ws.h" #include "str.h" #include "fields.h" #include "slist.h" #include "intlist.h" #include "name.h" /* name_build_withcomma() * * reconstruct parsed names in format: 'family|given|given||suffix' * to 'family suffix, given given */ void name_build_withcomma( str *s, const char *p ) { const char *suffix, *stopat; int nseps = 0, nch; str_empty( s ); suffix = strstr( p, "||" ); if ( suffix ) stopat = suffix; else stopat = strchr( p, '\0' ); while ( p != stopat ) { nch = 0; if ( nseps==1 ) { if ( suffix ) { str_strcatc( s, " " ); str_strcatc( s, suffix+2 ); } str_addchar( s, ',' ); } if ( nseps ) str_addchar( s, ' ' ); while ( p!=stopat && *p!='|' ) { str_addchar( s, *p++ ); nch++; } if ( p!=stopat && *p=='|' ) p++; if ( nseps!=0 && nch==1 ) str_addchar( s, '.' ); nseps++; } } /* name_findetal() * * Returns number of final tokens to be skipped in processing * of name lists. */ int name_findetal( slist *tokens ) { str *s1, *s2; if ( tokens->n==0 ) return 0; /* ...check last entry for full 'et al.' or variant */ s2 = slist_str( tokens, tokens->n - 1 ); if ( !strcasecmp( s2->data, "et alia" ) || !strcasecmp( s2->data, "et al." ) || !strcasecmp( s2->data, "et al.," ) || !strcasecmp( s2->data, "et al" ) || !strcasecmp( s2->data, "etalia" ) || !strcasecmp( s2->data, "etal." ) || !strcasecmp( s2->data, "etal" ) ) { return 1; } if ( tokens->n==1 ) return 0; /* ...check last two entries for full 'et' and 'al.' */ s1 = slist_str( tokens, tokens->n - 2 ); if ( !strcasecmp( s1->data, "et" ) ) { if ( !strcasecmp( s2->data, "alia" ) || !strcasecmp( s2->data, "al." ) || !strcasecmp( s2->data, "al.," ) || !strcasecmp( s2->data, "al" ) ) { return 2; } } return 0; } #define WITHCOMMA (1) #define JUNIOR (2) #define SENIOR (4) #define THIRD (8) #define FOURTH (16) typedef struct { char *s; unsigned short value; } suffix_value_t; static int identify_suffix( char *p ) { suffix_value_t suffixes[] = { { "Jr." , JUNIOR }, { "Jr" , JUNIOR }, { "Jr.," , JUNIOR | WITHCOMMA }, { "Jr," , JUNIOR | WITHCOMMA }, { "Sr." , SENIOR }, { "Sr" , SENIOR }, { "Sr.," , SENIOR | WITHCOMMA }, { "Sr," , SENIOR | WITHCOMMA }, { "III" , THIRD }, { "III," , THIRD | WITHCOMMA }, { "IV" , FOURTH }, { "IV," , FOURTH | WITHCOMMA }, }; int i, nsuffixes = sizeof( suffixes ) / sizeof( suffixes[0] ); for ( i=0; idata ); if ( ret ) { *suffixpos = end - 1; return ret; } /* ...try to find one after a comma, e.g. "Author, Sr., H. F." */ for ( i=begin; ilen && s->data[ s->len - 1 ]==',' ) { s = slist_str( tokens, i+1 ); ret = identify_suffix( s->data ); if ( ret ) { *suffixpos = i+1; return ret; } } } return 0; } static int add_given_split( str *name, str *s ) { unsigned int unicode_char; unsigned int pos = 0; char utf8s[7]; while ( pos < s->len ) { unicode_char = utf8_decode( s->data, &pos ); if ( is_ws( (char) unicode_char ) ) continue; else if ( unicode_char==(unsigned int)'.' ) { if ( s->data[pos]=='-' ) { str_strcatc( name, ".-" ); pos += 1; unicode_char = utf8_decode( s->data, &pos ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); str_addchar( name, '.' ); } } else if ( unicode_char==(unsigned int)'-' ) { str_strcatc( name, ".-" ); unicode_char = utf8_decode( s->data, &pos ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); str_addchar( name, '.' ); } else if ( unicode_char==(unsigned int)',' ) { /* nothing */ } else { str_addchar( name, '|' ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); } } return 1; } static unsigned char token_has_no_upper( slist *tokens, int n ) { unsigned short m; str *s; s = slist_str( tokens, n ); m = unicode_utf8_classify_str( s ); if ( m & UNICODE_UPPER ) return 0; else return 1; } static unsigned char token_has_upper( slist *tokens, int n ) { if ( token_has_no_upper( tokens, n ) ) return 0; else return 1; } static int name_multielement_nocomma( intlist *given, intlist *family, slist *tokens, int begin, int end, int suffixpos ) { int family_start, family_end; int i, n; /* ...family name(s) */ family_start = family_end = end - 1; if ( family_start == suffixpos ) family_start = family_end = end - 2; /* ...if family name is capitalized, then look for first non-capitalized * ...token and combine range to family name, e.g. single quoted parts of * ..."Ludwig 'von Beethoven'" * ..."Johannes Diderik 'van der Waals'" * ..."Charles Louis Xavier Joseph 'de la Valla Poussin' */ if ( token_has_upper( tokens, family_start ) ) { i = family_start - 1; n = -1; while ( i >= begin && ( n==-1 || token_has_no_upper( tokens, i ) ) ) { if ( token_has_no_upper( tokens, i ) ) n = i; i--; } if ( n != -1 ) family_start = n; } for ( i=family_start; i=family_start && i<=family_end ) continue; if ( i==suffixpos ) continue; intlist_add( given, i ); } return 1; } static int name_multielement_comma( intlist *given, intlist *family, slist *tokens, int begin, int end, int comma, int suffixpos ) { str *s; int i; /* ...family names */ for ( i=begin; in; ++i ) { m = intlist_get( family, i ); s = slist_str( tokens, m ); if ( i ) str_addchar( name, ' ' ); str_strcat( name, s ); case_family |= unicode_utf8_classify_str( s ); } /* ...check given name case */ for ( i=0; in; ++i ) { m = intlist_get( given, i ); s = slist_str( tokens, m ); case_given |= unicode_utf8_classify_str( s ); } if ( ( ( case_family & UNICODE_MIXEDCASE ) == UNICODE_MIXEDCASE ) && ( ( case_given & UNICODE_MIXEDCASE ) == UNICODE_UPPER ) ) { should_split = 1; } for ( i=0; in; ++i ) { m = intlist_get( given, i ); s = slist_str( tokens, m ); if ( !should_split ) { str_addchar( name, '|' ); str_strcat( name, s ); } else add_given_split( name, s ); } return 1; } static int name_construct_multi( str *outname, slist *tokens, int begin, int end ) { int i, suffix, suffixpos=-1, comma=-1; intlist given, family; str *s; intlist_init( &family ); intlist_init( &given ); str_empty( outname ); suffix = has_suffix( tokens, begin, end, &suffixpos ); for ( i=begin; idata[ s->len - 1 ] == ',' ) { if ( suffix && i==suffixpos-1 && !(suffix&WITHCOMMA) ) str_trimend( s, 1 ); else comma = i; } } if ( comma != -1 ) name_multielement_comma( &given, &family, tokens, begin, end, comma, suffixpos ); else name_multielement_nocomma( &given, &family, tokens, begin, end, suffixpos ); name_mutlielement_build( outname, &given, &family, tokens ); if ( suffix ) { if ( suffix & JUNIOR ) str_strcatc( outname, "||Jr." ); if ( suffix & SENIOR ) str_strcatc( outname, "||Sr." ); if ( suffix & THIRD ) str_strcatc( outname, "||III" ); if ( suffix & FOURTH ) str_strcatc( outname, "||IV" ); } intlist_free( &given ); intlist_free( &family ); return 1; } int name_addmultielement( fields *info, const char *tag, slist *tokens, int begin, int end, int level ) { int status, ok = 1; str name; str_init( &name ); name_construct_multi( &name, tokens, begin, end ); status = fields_add_can_dup( info, tag, str_cstr( &name ), level ); if ( status!=FIELDS_OK ) ok = 0; str_free( &name ); return ok; } /* name_addsingleelement() * * Treat names that are single tokens, e.g. {Random Corporation, Inc.} in bibtex * as a name that should not be mangled (e.g. AUTHOR:ASIS or AUTHOR:CORP, if corp * is set). */ int name_addsingleelement( fields *info, const char *tag, const char *name, int level, int asiscorp ) { int status, ok = 1; str outtag; str_init( &outtag ); str_strcpyc( &outtag, tag ); if ( asiscorp == NAME_ASIS ) str_strcatc( &outtag, ":ASIS" ); else if ( asiscorp == NAME_CORP ) str_strcatc( &outtag, ":CORP" ); status = fields_add_can_dup( info, outtag.data, name, level ); if ( status!=FIELDS_OK ) ok = 0; str_free( &outtag ); return ok; } /* * Takes a single name in a string and parses it. * Skipped by bibtex/biblatex that come pre-parsed. * * Returns 0 on error. * Returns 1 on ok. * Returns 2 on ok and name in asis list * Returns 3 on ok and name in corps list */ int name_parse( str *outname, str *inname, slist *asis, slist *corps ) { int status, ret = 1; slist tokens; str_empty( outname ); if ( !inname || !inname->len ) return ret; slist_init( &tokens ); if ( asis && slist_find( asis, inname ) !=-1 ) { str_strcpy( outname, inname ); ret = 2; goto out; } else if ( corps && slist_find( corps, inname ) != -1 ) { str_strcpy( outname, inname ); ret = 3; goto out; } str_findreplace( inname, ",", ", " ); status = slist_tokenize( &tokens, inname, " ", 1 ); if ( status!=SLIST_OK ) { str_strcpy( outname, inname ); ret = 2; goto out; } if ( tokens.n==1 ) { str_strcpy( outname, inname ); ret = 2; } else { name_construct_multi( outname, &tokens, 0, tokens.n ); ret = 1; } out: slist_free( &tokens ); return ret; } static const char * name_copy( str *name, const char *p ) { const char *start, *end, *q; str_empty( name ); start = p = skip_ws( p ); /* strip tailing whitespace and commas */ while ( *p && *p!='|' ) p++; end = p; while ( is_ws( *end ) || *end==',' || *end=='|' || *end=='\0' ) end--; if ( *p=='|' ) p++; for ( q=start; q<=end; q++ ) str_addchar( name, *q ); return p; } /* * name_add( info, newtag, data, level ) * * take name(s) in data, multiple names should be separated by * '|' characters and divide into individual name, e.g. * "H. F. Author|W. G. Author|Q. X. Author" * * for each name, compare to names in the "as is" or "corporation" * lists...these are not personal names and should be added to the * bibliography fields directly and should not be mangled * * for each personal name, send to appropriate algorithm depending * on if the author name is in the format "H. F. Author" or * "Author, H. F." */ int name_add( fields *info, const char *tag, const char *q, int level, slist *asis, slist *corps ) { int ok, status, nametype, ret = 1; str inname, outname; slist tokens; if ( !q ) return 0; slist_init( &tokens ); strs_init( &inname, &outname, NULL ); while ( *q ) { q = name_copy( &inname, q ); nametype = name_parse( &outname, &inname, asis, corps ); if ( !nametype ) { ret = 0; goto out; } if ( nametype==1 ) { status = fields_add_can_dup( info, tag, outname.data, level ); ok = ( status==FIELDS_OK ) ? 1 : 0; } else if ( nametype==2 ) ok = name_addsingleelement( info, tag, outname.data, level, NAME_ASIS ); else ok = name_addsingleelement( info, tag, outname.data, level, NAME_CORP ); if ( !ok ) { ret = 0; goto out; } } out: strs_free( &inname, &outname, NULL ); slist_free( &tokens ); return ret; } hs-bibutils-6.10.0.0/bibutils/name.h0000755000000000000000000000143207346545000015263 0ustar0000000000000000/* * name.h * * mangle names w/ and w/o commas * * Copyright (c) Chris Putnam 2004-2019 * * Source code released under the GPL version 2 * */ #ifndef NAME_H #define NAME_H #define NAME_SIMPLE (0) #define NAME_ASIS (1) #define NAME_CORP (2) #include "str.h" #include "slist.h" #include "fields.h" int name_add( fields *info, const char *tag, const char *q, int level, slist *asis, slist *corps ); void name_build_withcomma( str *s, const char *p ); int name_parse( str *outname, str *inname, slist *asis, slist *corps ); int name_addsingleelement( fields *info, const char *tag, const char *name, int level, int asiscorp ); int name_addmultielement( fields *info, const char *tag, slist *tokens, int begin, int end, int level ); int name_findetal( slist *tokens ); #endif hs-bibutils-6.10.0.0/bibutils/nbibin.c0000644000000000000000000002755607346545000015613 0ustar0000000000000000/* * nbibin.c * * Copyright (c) Chris Putnam 2016-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "serialno.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants nbib_all[]; extern int nbib_nall; /***************************************************** PUBLIC: void nbib_initparams() *****************************************************/ static int nbib_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int nbib_processf( fields *nbib, const char *p, const char *filename, long nref, param *pm ); static int nbib_typef( fields *nbib, const char *filename, int nref, param *p ); static int nbib_convertf( fields *nbib, fields *info, int reftype, param *p ); int nbibin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_NBIBIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = nbib_readf; pm->processf = nbib_processf; pm->cleanf = NULL; pm->typef = nbib_typef; pm->convertf = nbib_convertf; pm->all = nbib_all; pm->nall = nbib_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int nbib_readf() *****************************************************/ /* RIS definition of a tag is strict: character 1 = uppercase alphabetic character character 2 = uppercase alphabetic character character 3 = character or space (ansi 32) character 4 = character or space (ansi 32) character 5 = dash (ansi 45) character 6 = space (ansi 32) */ static inline int is_upperchar( const char c ) { if ( c>='A' && c<='Z' ) return 1; else return 0; } static inline int is_upperchar_space( const char c ) { if ( c==' ' ) return 1; if ( c>='A' && c<='Z' ) return 1; else return 0; } static int nbib_istag( const char *buf ) { if ( !is_upperchar( buf[0] ) ) return 0; if ( !is_upperchar( buf[1] ) ) return 0; if ( !is_upperchar_space( buf[2] ) ) return 0; if ( !is_upperchar_space( buf[3] ) ) return 0; if (buf[4]!='-') return 0; if (buf[5]!=' ') return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int skip_utf8_bom( str *line, int *fcharset ) { unsigned char *up; if ( line->len < 3 ) return 0; up = ( unsigned char *) str_cstr( line ); if ( up[0]==0xEF && up[1]==0xBB && up[2]==0xBF ) { *fcharset = CHARSET_UNICODE; return 3; } return 0; } static int nbib_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int n, haveref = 0, inref = 0, readtoofar = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { /* ...references are terminated by an empty line */ if ( str_is_empty( line ) ) { if ( reference->len ) haveref = 1; continue; } /* ...recognize and skip over UTF8 BOM */ n = skip_utf8_bom( line, fcharset ); p = &( line->data[n] ); /* Each reference starts with 'PMID- ' && ends with blank line */ if ( strncmp(p,"PMID- ",6)==0 ) { if ( !inref ) { inref = 1; } else { /* we've read too far.... */ readtoofar = 1; inref = 0; } } if ( nbib_istag( p ) ) { if ( !inref ) { fprintf(stderr,"Warning. Tagged line not " "in properly started reference.\n"); fprintf(stderr,"Ignored: '%s'\n", p ); } else if ( !strncmp(p,"ER -",5) ) { inref = 0; } else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } } /* not a tag, but we'll append to last values ...*/ else if ( inref && strlen( p ) >= 6 ) { str_strcatc( reference, p+5 ); } if ( !readtoofar ) str_empty( line ); } if ( inref ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int nbib_processf() *****************************************************/ static const char* process_line2( str *tag, str *value, const char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static const char* process_line( str *tag, str *value, const char *p ) { int i; i = 0; while ( i<6 && *p ) { if ( *p!=' ' && *p!='-' ) str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); str_trimendingws( value ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static int nbib_processf( fields *nbib, const char *p, const char *filename, long nref, param *pm ) { str tag, value; int status, n; strs_init( &tag, &value, NULL ); while ( *p ) { if ( nbib_istag( p ) ) p = process_line( &tag, &value, p ); /* no anonymous fields allowed */ if ( str_has_value( &tag ) ) { status = fields_add( nbib, str_cstr( &tag ), str_cstr( &value ), 0 ); if ( status!=FIELDS_OK ) return 0; } else { p = process_line2( &tag, &value, p ); n = fields_num( nbib ); if ( value.len && n>0 ) { str *od; od = fields_value( nbib, n-1, FIELDS_STRP ); str_addchar( od, ' ' ); str_strcat( od, &value ); } } strs_empty( &tag, &value, NULL ); } strs_free( &tag, &value, NULL ); return 1; } /***************************************************** PUBLIC: int nbib_typef() *****************************************************/ /* * PT - Case Reports * PT - Journal Article * PT - Research Support, N.I.H., Extramural * PT - Review */ static int nbib_typef( fields *nbib, const char *filename, int nref, param *p ) { int reftype = 0, nrefname, is_default; char *typename, *refname = ""; vplist_index i; vplist a; nrefname = fields_find( nbib, "PMID", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( nbib, nrefname, FIELDS_CHRP_NOUSE ); vplist_init( &a ); fields_findv_each( nbib, LEVEL_MAIN, FIELDS_CHRP_NOUSE, &a, "PT" ); is_default = 1; for ( i=0; iprogname, p->all, p->nall, refname, &is_default, REFTYPE_SILENT ); if ( !is_default ) break; } if ( a.n==0 ) reftype = get_reftype( "", nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); else if ( is_default ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not recognize type of refnum %d (%s).\n" "\tDefaulting to %s.\n", nref, refname, p->all[0].type ); } vplist_free( &a ); return reftype; } /***************************************************** PUBLIC: int nbib_convertf() *****************************************************/ /* PB - 2016 May 7 */ static int nbibin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str s; char *p; p = str_cstr( invalue ); if ( !p ) return status; str_init( &s ); /* ...handle year */ while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:YEAR", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } /* ...handle month */ str_empty( &s ); while ( is_ws( *p ) ) p++; while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:MONTH", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } /* ...handle day */ str_empty( &s ); while ( is_ws( *p ) ) p++; while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:DAY", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &s ); return status; } /* the LID and AID fields that can be doi's or pii's */ static int nbibin_doi( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, sstatus, status = BIBL_OK; char *id, *type, *usetag=""; slist tokens; slist_init( &tokens ); sstatus = slist_tokenize( &tokens, invalue, " ", 1 ); if ( sstatus!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto out; } if ( tokens.n == 2 ) { id = slist_cstr( &tokens, 0 ); type = slist_cstr( &tokens, 1 ); if ( !strcmp( type, "[doi]" ) ) usetag = "DOI"; else if ( !strcmp( type, "[pii]" ) ) usetag = "PII"; if ( strlen( outtag ) > 0 ) { fstatus = fields_add( bibout, usetag, id, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: slist_free( &tokens ); return status; } static int nbibin_pages( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str sp, tmp, ep; char *p; int i; p = str_cstr( invalue ); if ( !p ) return BIBL_OK; strs_init( &sp, &tmp, &ep, NULL ); while ( *p && *p!='-' ) { str_addchar( &sp, *p ); p++; } if ( str_memerr( &sp ) ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p=='-' ) p++; while ( *p ) { str_addchar( &tmp, *p ); p++; } if ( sp.len ) { fstatus = fields_add( bibout, "PAGES:START", str_cstr( &sp ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( tmp.len ) { for ( i=0; iverbose && strcmp( tag, "TY" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify NBIB tag '%s'\n", tag ); } } static int nbib_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int i, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SKIP ] = generic_skip, [ DATE ] = nbibin_date, [ PAGES ] = nbibin_pages, [ DOI ] = nbibin_doi, }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { nbib_report_notag( p, str_cstr( intag ) ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.10.0.0/bibutils/nbibin.c0000755000000000000000000002755607346545000015616 0ustar0000000000000000/* * nbibin.c * * Copyright (c) Chris Putnam 2016-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "serialno.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants nbib_all[]; extern int nbib_nall; /***************************************************** PUBLIC: void nbib_initparams() *****************************************************/ static int nbib_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int nbib_processf( fields *nbib, const char *p, const char *filename, long nref, param *pm ); static int nbib_typef( fields *nbib, const char *filename, int nref, param *p ); static int nbib_convertf( fields *nbib, fields *info, int reftype, param *p ); int nbibin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_NBIBIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = nbib_readf; pm->processf = nbib_processf; pm->cleanf = NULL; pm->typef = nbib_typef; pm->convertf = nbib_convertf; pm->all = nbib_all; pm->nall = nbib_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int nbib_readf() *****************************************************/ /* RIS definition of a tag is strict: character 1 = uppercase alphabetic character character 2 = uppercase alphabetic character character 3 = character or space (ansi 32) character 4 = character or space (ansi 32) character 5 = dash (ansi 45) character 6 = space (ansi 32) */ static inline int is_upperchar( const char c ) { if ( c>='A' && c<='Z' ) return 1; else return 0; } static inline int is_upperchar_space( const char c ) { if ( c==' ' ) return 1; if ( c>='A' && c<='Z' ) return 1; else return 0; } static int nbib_istag( const char *buf ) { if ( !is_upperchar( buf[0] ) ) return 0; if ( !is_upperchar( buf[1] ) ) return 0; if ( !is_upperchar_space( buf[2] ) ) return 0; if ( !is_upperchar_space( buf[3] ) ) return 0; if (buf[4]!='-') return 0; if (buf[5]!=' ') return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int skip_utf8_bom( str *line, int *fcharset ) { unsigned char *up; if ( line->len < 3 ) return 0; up = ( unsigned char *) str_cstr( line ); if ( up[0]==0xEF && up[1]==0xBB && up[2]==0xBF ) { *fcharset = CHARSET_UNICODE; return 3; } return 0; } static int nbib_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int n, haveref = 0, inref = 0, readtoofar = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { /* ...references are terminated by an empty line */ if ( str_is_empty( line ) ) { if ( reference->len ) haveref = 1; continue; } /* ...recognize and skip over UTF8 BOM */ n = skip_utf8_bom( line, fcharset ); p = &( line->data[n] ); /* Each reference starts with 'PMID- ' && ends with blank line */ if ( strncmp(p,"PMID- ",6)==0 ) { if ( !inref ) { inref = 1; } else { /* we've read too far.... */ readtoofar = 1; inref = 0; } } if ( nbib_istag( p ) ) { if ( !inref ) { fprintf(stderr,"Warning. Tagged line not " "in properly started reference.\n"); fprintf(stderr,"Ignored: '%s'\n", p ); } else if ( !strncmp(p,"ER -",5) ) { inref = 0; } else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } } /* not a tag, but we'll append to last values ...*/ else if ( inref && strlen( p ) >= 6 ) { str_strcatc( reference, p+5 ); } if ( !readtoofar ) str_empty( line ); } if ( inref ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int nbib_processf() *****************************************************/ static const char* process_line2( str *tag, str *value, const char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static const char* process_line( str *tag, str *value, const char *p ) { int i; i = 0; while ( i<6 && *p ) { if ( *p!=' ' && *p!='-' ) str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); str_trimendingws( value ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static int nbib_processf( fields *nbib, const char *p, const char *filename, long nref, param *pm ) { str tag, value; int status, n; strs_init( &tag, &value, NULL ); while ( *p ) { if ( nbib_istag( p ) ) p = process_line( &tag, &value, p ); /* no anonymous fields allowed */ if ( str_has_value( &tag ) ) { status = fields_add( nbib, str_cstr( &tag ), str_cstr( &value ), 0 ); if ( status!=FIELDS_OK ) return 0; } else { p = process_line2( &tag, &value, p ); n = fields_num( nbib ); if ( value.len && n>0 ) { str *od; od = fields_value( nbib, n-1, FIELDS_STRP ); str_addchar( od, ' ' ); str_strcat( od, &value ); } } strs_empty( &tag, &value, NULL ); } strs_free( &tag, &value, NULL ); return 1; } /***************************************************** PUBLIC: int nbib_typef() *****************************************************/ /* * PT - Case Reports * PT - Journal Article * PT - Research Support, N.I.H., Extramural * PT - Review */ static int nbib_typef( fields *nbib, const char *filename, int nref, param *p ) { int reftype = 0, nrefname, is_default; char *typename, *refname = ""; vplist_index i; vplist a; nrefname = fields_find( nbib, "PMID", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( nbib, nrefname, FIELDS_CHRP_NOUSE ); vplist_init( &a ); fields_findv_each( nbib, LEVEL_MAIN, FIELDS_CHRP_NOUSE, &a, "PT" ); is_default = 1; for ( i=0; iprogname, p->all, p->nall, refname, &is_default, REFTYPE_SILENT ); if ( !is_default ) break; } if ( a.n==0 ) reftype = get_reftype( "", nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); else if ( is_default ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not recognize type of refnum %d (%s).\n" "\tDefaulting to %s.\n", nref, refname, p->all[0].type ); } vplist_free( &a ); return reftype; } /***************************************************** PUBLIC: int nbib_convertf() *****************************************************/ /* PB - 2016 May 7 */ static int nbibin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str s; char *p; p = str_cstr( invalue ); if ( !p ) return status; str_init( &s ); /* ...handle year */ while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:YEAR", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } /* ...handle month */ str_empty( &s ); while ( is_ws( *p ) ) p++; while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:MONTH", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } /* ...handle day */ str_empty( &s ); while ( is_ws( *p ) ) p++; while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:DAY", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &s ); return status; } /* the LID and AID fields that can be doi's or pii's */ static int nbibin_doi( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, sstatus, status = BIBL_OK; char *id, *type, *usetag=""; slist tokens; slist_init( &tokens ); sstatus = slist_tokenize( &tokens, invalue, " ", 1 ); if ( sstatus!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto out; } if ( tokens.n == 2 ) { id = slist_cstr( &tokens, 0 ); type = slist_cstr( &tokens, 1 ); if ( !strcmp( type, "[doi]" ) ) usetag = "DOI"; else if ( !strcmp( type, "[pii]" ) ) usetag = "PII"; if ( strlen( outtag ) > 0 ) { fstatus = fields_add( bibout, usetag, id, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: slist_free( &tokens ); return status; } static int nbibin_pages( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str sp, tmp, ep; char *p; int i; p = str_cstr( invalue ); if ( !p ) return BIBL_OK; strs_init( &sp, &tmp, &ep, NULL ); while ( *p && *p!='-' ) { str_addchar( &sp, *p ); p++; } if ( str_memerr( &sp ) ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p=='-' ) p++; while ( *p ) { str_addchar( &tmp, *p ); p++; } if ( sp.len ) { fstatus = fields_add( bibout, "PAGES:START", str_cstr( &sp ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( tmp.len ) { for ( i=0; iverbose && strcmp( tag, "TY" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify NBIB tag '%s'\n", tag ); } } static int nbib_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int i, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SKIP ] = generic_skip, [ DATE ] = nbibin_date, [ PAGES ] = nbibin_pages, [ DOI ] = nbibin_doi, }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { nbib_report_notag( p, str_cstr( intag ) ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.10.0.0/bibutils/nbibout.c0000644000000000000000000003326407346545000016005 0ustar0000000000000000/* * nbibout.c * * Copyright (c) Chris Putnam 2018-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "is_ws.h" #include "fields.h" #include "generic.h" #include "iso639_3.h" #include "title.h" #include "bibutils.h" #include "bibformats.h" /***************************************************** PUBLIC: int nbibout_initparams() *****************************************************/ static int nbibout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); int nbibout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_NBIBOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; if ( pm->charsetout == BIBL_CHARSET_UNICODE ) { pm->utf8out = pm->utf8bom = 1; } pm->headerf = generic_writeheader; pm->footerf = NULL; pm->writef = nbibout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int nbibout_write() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE = 1, TYPE_INBOOK = 2, TYPE_BOOK = 3, }; static void append_type( fields *in, fields *out, int *status ) { int fstatus; char *s; int type = TYPE_UNKNOWN, i, n, level; char *tag, *value; n = fields_num( in ); for ( i=0; ilen < 82 ) { fprintf( fp, "%s", str_cstr( value ) ); return; } p = str_cstr( value ); while ( p && *p ) { n = 0; q = p; lastws = NULL; while ( n < 82 && *q ) { if ( is_ws( *q ) ) lastws = q; q++; n++; } if ( *q && lastws ) { while ( p!=lastws ) { fprintf( fp, "%c", *p ); p++; } p++; /* skip ws separator */ } else { while ( p!=q ) { fprintf( fp, "%c", *p ); p++; } p = q; } if ( *p ) { fprintf( fp, "\n" ); fprintf( fp, " " ); } } } static void output_reference( FILE *fp, fields *out ) { int i; for ( i=0; in; ++i ) { output_tag( fp, ( char * ) fields_tag( out, i, FIELDS_CHRP ) ); output_value( fp, ( str * ) fields_value( out, i, FIELDS_STRP ) ); fprintf( fp, "\n" ); } fprintf( fp, "\n\n" ); fflush( fp ); } static int nbibout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( in, "IN", refnum ); status = append_data( in, &out ); if ( status==BIBL_OK ) output_reference( fp, &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( &out, "OUT", refnum ); fields_free( &out ); return status; } hs-bibutils-6.10.0.0/bibutils/nbibout.c0000755000000000000000000003326407346545000016010 0ustar0000000000000000/* * nbibout.c * * Copyright (c) Chris Putnam 2018-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "is_ws.h" #include "fields.h" #include "generic.h" #include "iso639_3.h" #include "title.h" #include "bibutils.h" #include "bibformats.h" /***************************************************** PUBLIC: int nbibout_initparams() *****************************************************/ static int nbibout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); int nbibout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_NBIBOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; if ( pm->charsetout == BIBL_CHARSET_UNICODE ) { pm->utf8out = pm->utf8bom = 1; } pm->headerf = generic_writeheader; pm->footerf = NULL; pm->writef = nbibout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int nbibout_write() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE = 1, TYPE_INBOOK = 2, TYPE_BOOK = 3, }; static void append_type( fields *in, fields *out, int *status ) { int fstatus; char *s; int type = TYPE_UNKNOWN, i, n, level; char *tag, *value; n = fields_num( in ); for ( i=0; ilen < 82 ) { fprintf( fp, "%s", str_cstr( value ) ); return; } p = str_cstr( value ); while ( p && *p ) { n = 0; q = p; lastws = NULL; while ( n < 82 && *q ) { if ( is_ws( *q ) ) lastws = q; q++; n++; } if ( *q && lastws ) { while ( p!=lastws ) { fprintf( fp, "%c", *p ); p++; } p++; /* skip ws separator */ } else { while ( p!=q ) { fprintf( fp, "%c", *p ); p++; } p = q; } if ( *p ) { fprintf( fp, "\n" ); fprintf( fp, " " ); } } } static void output_reference( FILE *fp, fields *out ) { int i; for ( i=0; in; ++i ) { output_tag( fp, ( char * ) fields_tag( out, i, FIELDS_CHRP ) ); output_value( fp, ( str * ) fields_value( out, i, FIELDS_STRP ) ); fprintf( fp, "\n" ); } fprintf( fp, "\n\n" ); fflush( fp ); } static int nbibout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( in, "IN", refnum ); status = append_data( in, &out ); if ( status==BIBL_OK ) output_reference( fp, &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( &out, "OUT", refnum ); fields_free( &out ); return status; } hs-bibutils-6.10.0.0/bibutils/nbibtypes.c0000644000000000000000000000623707346545000016342 0ustar0000000000000000/* * nbibtypes.c * * Copyright (c) Chris Putnam 2016-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" static lookups article[] = { { "PMID", "PMID", SIMPLE, LEVEL_MAIN }, { "OWN", "", SKIP, LEVEL_MAIN }, { "STAT", "", SKIP, LEVEL_MAIN }, { "DA", "", SKIP, LEVEL_MAIN }, { "DCOM", "", SKIP, LEVEL_MAIN }, { "LR", "", SKIP, LEVEL_MAIN }, { "IS", "", SKIP, LEVEL_MAIN }, { "VI", "VOLUME", SIMPLE, LEVEL_MAIN }, { "IP", "ISSUE", SIMPLE, LEVEL_MAIN }, { "DP", "", DATE, LEVEL_MAIN }, /* date published? */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "PG", "PAGES", PAGES, LEVEL_MAIN }, { "LID", "DOI", DOI, LEVEL_MAIN }, /* linking ID? -- can be DOI/PII */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "FAU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AU", "", SKIP, LEVEL_MAIN }, { "AD", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "GR", "", SKIP, LEVEL_MAIN }, { "DEP", "", SKIP, LEVEL_MAIN }, /* a date */ { "PL", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Publisher location */ { "TA", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* Journal title abbreviation */ { "JT", "TITLE", SIMPLE, LEVEL_HOST }, /* Journal title */ { "JID", "", SKIP, LEVEL_HOST }, /* Journal ID? */ { "SB", "", SKIP, LEVEL_MAIN }, { "MH", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "OT", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "PMC", "PMC", SIMPLE, LEVEL_MAIN }, { "OID", "", SKIP, LEVEL_MAIN }, { "EDAT", "", SKIP, LEVEL_MAIN }, { "MHDA", "", SKIP, LEVEL_MAIN }, { "CRDT", "", SKIP, LEVEL_MAIN }, { "PHST", "", SKIP, LEVEL_MAIN }, /* Publication history? */ { "AID", "DOI", DOI, LEVEL_MAIN }, /* Article ID? -- can be DOI/PII */ { "PST", "", SKIP, LEVEL_MAIN }, { "SO", "", SKIP, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants nbib_all[] = { REFTYPE( "Journal article", article ), REFTYPE( "News", article ), }; int nbib_nall = sizeof( nbib_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/nbibtypes.c0000755000000000000000000000623707346545000016345 0ustar0000000000000000/* * nbibtypes.c * * Copyright (c) Chris Putnam 2016-2020 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" static lookups article[] = { { "PMID", "PMID", SIMPLE, LEVEL_MAIN }, { "OWN", "", SKIP, LEVEL_MAIN }, { "STAT", "", SKIP, LEVEL_MAIN }, { "DA", "", SKIP, LEVEL_MAIN }, { "DCOM", "", SKIP, LEVEL_MAIN }, { "LR", "", SKIP, LEVEL_MAIN }, { "IS", "", SKIP, LEVEL_MAIN }, { "VI", "VOLUME", SIMPLE, LEVEL_MAIN }, { "IP", "ISSUE", SIMPLE, LEVEL_MAIN }, { "DP", "", DATE, LEVEL_MAIN }, /* date published? */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "PG", "PAGES", PAGES, LEVEL_MAIN }, { "LID", "DOI", DOI, LEVEL_MAIN }, /* linking ID? -- can be DOI/PII */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "FAU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AU", "", SKIP, LEVEL_MAIN }, { "AD", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "GR", "", SKIP, LEVEL_MAIN }, { "DEP", "", SKIP, LEVEL_MAIN }, /* a date */ { "PL", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Publisher location */ { "TA", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* Journal title abbreviation */ { "JT", "TITLE", SIMPLE, LEVEL_HOST }, /* Journal title */ { "JID", "", SKIP, LEVEL_HOST }, /* Journal ID? */ { "SB", "", SKIP, LEVEL_MAIN }, { "MH", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "OT", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "PMC", "PMC", SIMPLE, LEVEL_MAIN }, { "OID", "", SKIP, LEVEL_MAIN }, { "EDAT", "", SKIP, LEVEL_MAIN }, { "MHDA", "", SKIP, LEVEL_MAIN }, { "CRDT", "", SKIP, LEVEL_MAIN }, { "PHST", "", SKIP, LEVEL_MAIN }, /* Publication history? */ { "AID", "DOI", DOI, LEVEL_MAIN }, /* Article ID? -- can be DOI/PII */ { "PST", "", SKIP, LEVEL_MAIN }, { "SO", "", SKIP, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants nbib_all[] = { REFTYPE( "Journal article", article ), REFTYPE( "News", article ), }; int nbib_nall = sizeof( nbib_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/notes.c0000644000000000000000000000474707346545000015477 0ustar0000000000000000/* * notes.c * * Copyright (c) Chris Putnam 2016-2020 * * Program and source code released under the GPL version 2 * */ #include #include "url.h" #include "notes.h" /* * notes are mostly directly copies; however, lots of formats hide * URLs/DOIs in the notes fields. For example: * * For RIS, Oxford Journals hides DOI in the N1 field. * For Endnote, Wiley hides DOI in the %1 field. * etc. */ typedef struct url_t { char *prefix; char *tag; int offset; } url_t; static void notes_added_url( fields *bibout, str *invalue, int level, int *ok ) { url_t prefixes[] = { { "arXiv:", "ARXIV", 6 }, { "http://arxiv.org/abs/", "ARXIV", 21 }, { "jstor:", "JSTOR", 6 }, { "http://www.jstor.org/stable/", "JSTOR", 28 }, { "medline:", "MEDLINE", 8 }, { "pubmed:", "PMID", 7 }, { "http://www.ncbi.nlm.nih.gov/pubmed/", "PMID", 35 }, { "http://www.ncbi.nlm.nih.gov/pmc/articles/", "PMC", 41 }, { "http://dx.doi.org/", "DOI", 19 }, { "isi:", "ISIREFNUM", 4 }, }; int nprefixes = sizeof( prefixes ) / sizeof( prefixes[0] ); const char *p = str_cstr( invalue ); char *tag = "URL"; int fstatus; int i; /* bibtex/biblatex-specific */ if ( !strncasecmp( p, "\\urllink", 8 ) ) p += 8; if ( !strncasecmp( p, "\\url", 4 ) ) p += 4; for ( i=0; idata[doi]), level ); if ( fstatus != FIELDS_OK ) *ok = 0; return 1; } else return 0; } int notes_add( fields *bibout, str *invalue, int level ) { int fstatus, done = 0, ok = 1; if ( !is_embedded_link( str_cstr( invalue ) ) ) { fstatus = fields_add( bibout, "NOTES", str_cstr( invalue ), level ); if ( fstatus != FIELDS_OK ) ok = 0; } else { done = notes_added_doi( bibout, invalue, level, &ok ); if ( !done ) notes_added_url( bibout, invalue, level, &ok ); } return ok; } hs-bibutils-6.10.0.0/bibutils/notes.c0000755000000000000000000000474707346545000015502 0ustar0000000000000000/* * notes.c * * Copyright (c) Chris Putnam 2016-2020 * * Program and source code released under the GPL version 2 * */ #include #include "url.h" #include "notes.h" /* * notes are mostly directly copies; however, lots of formats hide * URLs/DOIs in the notes fields. For example: * * For RIS, Oxford Journals hides DOI in the N1 field. * For Endnote, Wiley hides DOI in the %1 field. * etc. */ typedef struct url_t { char *prefix; char *tag; int offset; } url_t; static void notes_added_url( fields *bibout, str *invalue, int level, int *ok ) { url_t prefixes[] = { { "arXiv:", "ARXIV", 6 }, { "http://arxiv.org/abs/", "ARXIV", 21 }, { "jstor:", "JSTOR", 6 }, { "http://www.jstor.org/stable/", "JSTOR", 28 }, { "medline:", "MEDLINE", 8 }, { "pubmed:", "PMID", 7 }, { "http://www.ncbi.nlm.nih.gov/pubmed/", "PMID", 35 }, { "http://www.ncbi.nlm.nih.gov/pmc/articles/", "PMC", 41 }, { "http://dx.doi.org/", "DOI", 19 }, { "isi:", "ISIREFNUM", 4 }, }; int nprefixes = sizeof( prefixes ) / sizeof( prefixes[0] ); const char *p = str_cstr( invalue ); char *tag = "URL"; int fstatus; int i; /* bibtex/biblatex-specific */ if ( !strncasecmp( p, "\\urllink", 8 ) ) p += 8; if ( !strncasecmp( p, "\\url", 4 ) ) p += 4; for ( i=0; idata[doi]), level ); if ( fstatus != FIELDS_OK ) *ok = 0; return 1; } else return 0; } int notes_add( fields *bibout, str *invalue, int level ) { int fstatus, done = 0, ok = 1; if ( !is_embedded_link( str_cstr( invalue ) ) ) { fstatus = fields_add( bibout, "NOTES", str_cstr( invalue ), level ); if ( fstatus != FIELDS_OK ) ok = 0; } else { done = notes_added_doi( bibout, invalue, level, &ok ); if ( !done ) notes_added_url( bibout, invalue, level, &ok ); } return ok; } hs-bibutils-6.10.0.0/bibutils/notes.h0000755000000000000000000000035607346545000015477 0ustar0000000000000000/* * notes.h * * Copyright (c) Chris Putnam 2016-2019 * * Source code released under the GPL version 2 * */ #ifndef NOTES_H #define NOTES_H #include "bibutils.h" int notes_add( fields *bibout, str *invalue, int level ); #endif hs-bibutils-6.10.0.0/bibutils/pages.c0000644000000000000000000000315207346545000015433 0ustar0000000000000000/* * pages.c * * Copyright (c) Chris Putnam 2016-2020 * * Program and source code released under GPL verison 2 */ #include #include #include #include "is_ws.h" #include "utf8.h" #include "pages.h" /* extract_range() * * Handle input strings like: * * "1-15" * " 1 - 15 " * " 1000--- 1500" * " 1 <> 10" * " 107 111" */ static void extract_range( str *input, str *begin, str *end ) { /* -30 is the first character of a UTF8 em-dash and en-dash */ const char terminators[] = { ' ', '-', '\t', '\r', '\n', -30, '\0' }; const char *p; str_empty( begin ); str_empty( end ); if ( input->len==0 ) return; p = skip_ws( str_cstr( input ) ); while ( *p && !strchr( terminators, *p ) ) str_addchar( begin, *p++ ); p = skip_ws( p ); while ( *p=='-' ) p++; while ( utf8_is_emdash( p ) ) p+=3; while ( utf8_is_endash( p ) ) p+=3; p = skip_ws( p ); while ( *p && !strchr( terminators, *p ) ) str_addchar( end, *p++ ); } int pages_add( fields *bibout, char *outtag, str *invalue, int level ) { int fstatus, status = 1; str start, stop; str_init( &start ); str_init( &stop ); extract_range( invalue, &start, &stop ); if ( str_memerr( &start ) || str_memerr( &stop ) ) { status = 0; goto out; } if ( start.len>0 ) { fstatus = fields_add( bibout, "PAGES:START", str_cstr( &start ), level ); if ( fstatus!=FIELDS_OK ) { status = 0; goto out; } } if ( stop.len>0 ) { fstatus = fields_add( bibout, "PAGES:STOP", str_cstr( &stop ), level ); if ( fstatus!=FIELDS_OK ) status = 0; } out: str_free( &start ); str_free( &stop ); return status; } hs-bibutils-6.10.0.0/bibutils/pages.c0000755000000000000000000000315207346545000015436 0ustar0000000000000000/* * pages.c * * Copyright (c) Chris Putnam 2016-2020 * * Program and source code released under GPL verison 2 */ #include #include #include #include "is_ws.h" #include "utf8.h" #include "pages.h" /* extract_range() * * Handle input strings like: * * "1-15" * " 1 - 15 " * " 1000--- 1500" * " 1 <> 10" * " 107 111" */ static void extract_range( str *input, str *begin, str *end ) { /* -30 is the first character of a UTF8 em-dash and en-dash */ const char terminators[] = { ' ', '-', '\t', '\r', '\n', -30, '\0' }; const char *p; str_empty( begin ); str_empty( end ); if ( input->len==0 ) return; p = skip_ws( str_cstr( input ) ); while ( *p && !strchr( terminators, *p ) ) str_addchar( begin, *p++ ); p = skip_ws( p ); while ( *p=='-' ) p++; while ( utf8_is_emdash( p ) ) p+=3; while ( utf8_is_endash( p ) ) p+=3; p = skip_ws( p ); while ( *p && !strchr( terminators, *p ) ) str_addchar( end, *p++ ); } int pages_add( fields *bibout, char *outtag, str *invalue, int level ) { int fstatus, status = 1; str start, stop; str_init( &start ); str_init( &stop ); extract_range( invalue, &start, &stop ); if ( str_memerr( &start ) || str_memerr( &stop ) ) { status = 0; goto out; } if ( start.len>0 ) { fstatus = fields_add( bibout, "PAGES:START", str_cstr( &start ), level ); if ( fstatus!=FIELDS_OK ) { status = 0; goto out; } } if ( stop.len>0 ) { fstatus = fields_add( bibout, "PAGES:STOP", str_cstr( &stop ), level ); if ( fstatus!=FIELDS_OK ) status = 0; } out: str_free( &start ); str_free( &stop ); return status; } hs-bibutils-6.10.0.0/bibutils/pages.h0000755000000000000000000000040107346545000015435 0ustar0000000000000000/* * pages.h * * Copyright (c) Chris Putnam 2016-2019 * * Program and source code released under the GPL version 2 */ #ifndef PAGES_H #define PAGES_H #include "bibl.h" int pages_add( fields *bibout, char *outtag, str *invalue, int level ); #endif hs-bibutils-6.10.0.0/bibutils/reftypes.c0000644000000000000000000000275507346545000016205 0ustar0000000000000000/* * reftypes.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" int get_reftype( const char *p, long refnum, char *progname, variants *all, int nall, char *tag, int *is_default, int chattiness ) { int i; p = skip_ws( p ); *is_default = 0; for ( i=0; intags; ++i ) { if ( !strcasecmp( (v->tags[i]).oldstr, oldtag ) ) return i; } return -1; } /* translate_oldtag() */ int translate_oldtag( const char *oldtag, int reftype, variants all[], int nall, int *processingtype, int *level, char **newtag ) { int n; n = process_findoldtag( oldtag, reftype, all, nall ); if ( n!=-1 ) { *processingtype = ((all[reftype]).tags[n]).processingtype; *level = ((all[reftype]).tags[n]).level; *newtag = ((all[reftype]).tags[n]).newstr; return 1; } return 0; } hs-bibutils-6.10.0.0/bibutils/reftypes.c0000755000000000000000000000275507346545000016210 0ustar0000000000000000/* * reftypes.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" int get_reftype( const char *p, long refnum, char *progname, variants *all, int nall, char *tag, int *is_default, int chattiness ) { int i; p = skip_ws( p ); *is_default = 0; for ( i=0; intags; ++i ) { if ( !strcasecmp( (v->tags[i]).oldstr, oldtag ) ) return i; } return -1; } /* translate_oldtag() */ int translate_oldtag( const char *oldtag, int reftype, variants all[], int nall, int *processingtype, int *level, char **newtag ) { int n; n = process_findoldtag( oldtag, reftype, all, nall ); if ( n!=-1 ) { *processingtype = ((all[reftype]).tags[n]).processingtype; *level = ((all[reftype]).tags[n]).level; *newtag = ((all[reftype]).tags[n]).newstr; return 1; } return 0; } hs-bibutils-6.10.0.0/bibutils/reftypes.h0000755000000000000000000000340107346545000016202 0ustar0000000000000000/* * reftypes.h * * Copyright (c) Chris Putnam 2003-2019 * * Source code released under the GPL version 2 * */ #ifndef REFTYPES_H #define REFTYPES_H #define REFTYPE_CHATTY (0) #define REFTYPE_SILENT (1) /* Reftypes handled by core code */ #define ALWAYS (0) #define DEFAULT (1) #define SKIP (2) /* Reftypes to be handled by converters */ #define SIMPLE (3) #define TYPE (4) #define PERSON (5) #define DATE (6) #define PAGES (7) #define SERIALNO (8) #define TITLE (9) #define NOTES (10) #define DOI (11) #define HOWPUBLISHED (12) #define LINKEDFILE (13) #define KEYWORD (14) #define URL (15) #define GENRE (16) #define BT_SENTE (17) /* Bibtex 'Sente' */ #define BT_EPRINT (18) /* Bibtex 'Eprint' */ #define BT_ORG (19) /* Bibtex Organization */ #define BLT_THESIS_TYPE (20) /* Biblatex Thesis Type */ #define BLT_SCHOOL (21) /* Biblatex School */ #define BLT_EDITOR (22) /* Biblatex Editor */ #define BLT_SUBTYPE (23) /* Biblatex entrysubtype */ #define BLT_SKIP (24) /* Biblatex Skip Entry */ #define EPRINT (25) #define NUM_REFTYPES (26) typedef struct { char *oldstr; char *newstr; int processingtype; int level; } lookups; typedef struct { char type[25]; lookups *tags; int ntags; } variants; int get_reftype( const char *q, long refnum, char *progname, variants *all, int nall, char *tag, int *is_default, int chattiness ); int process_findoldtag( const char *oldtag, int reftype, variants all[], int nall ); int translate_oldtag( const char *oldtag, int reftype, variants all[], int nall, int *processingtype, int *level, char **newtag ); #endif hs-bibutils-6.10.0.0/bibutils/risin.c0000644000000000000000000003524207346545000015465 0ustar0000000000000000/* * risin.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "utf8.h" #include "serialno.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants ris_all[]; extern int ris_nall; /***************************************************** PUBLIC: void risin_initparams() *****************************************************/ static int risin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int risin_processf( fields *risin, const char *p, const char *filename, long nref, param *pm ); static int risin_typef( fields *risin, const char *filename, int nref, param *p ); static int risin_convertf( fields *risin, fields *info, int reftype, param *p ); int risin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_RISIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = risin_readf; pm->processf = risin_processf; pm->cleanf = NULL; pm->typef = risin_typef; pm->convertf = risin_convertf; pm->all = ris_all; pm->nall = ris_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int risin_readf() *****************************************************/ /* RIS definition of a tag is strict: character 1 = uppercase alphabetic character character 2 = uppercase alphabetic character or digit character 3 = space (ansi 32) character 4 = space (ansi 32) character 5 = dash (ansi 45) character 6 = space (ansi 32) some sources don't have a space at character 6 if there is no data (such as "ER -" records). Handle this. www.omicsonline.org mangles the RIS specification and puts _three_ spaces before the dash. Handle this too. */ static int is_ris_tag( const char *buf ) { if ( !isupper( (unsigned char )buf[0] ) ) return 0; if ( !( isupper( (unsigned char )buf[1] ) || isdigit( (unsigned char )buf[1] ) ) ) return 0; if ( buf[2]!=' ' ) return 0; if ( buf[3]!=' ' ) return 0; /*...RIS tags with two spaces */ if ( buf[4]=='-' ) { if ( buf[5]==' ' || buf[5]=='\0' || buf[5]=='\n' || buf[5]=='\r' ) return 1; } /* ...RIS tags with three spaces */ else if ( buf[4]==' ' ) { if ( buf[5]!='-' ) return 0; if ( buf[6]==' ' || buf[6]=='\0' || buf[6]=='\n' || buf[6]=='\r' ) return 1; } return 0; } static int is_ris_start_tag( char *p ) { /* ...TY tag that fits specifications */ if ( !strncmp( p, "TY - ", 6 ) ) return 1; /* ...TY tag with an extra space? */ if ( !strncmp( p, "TY - ", 7 ) ) return 1; return 0; } static int is_ris_end_tag( char *p ) { /* ...ER tag that fits specifications */ if ( !strncmp( p, "ER -", 5 ) ) return 1; /* ...ER tag with an extra space? */ if ( !strncmp( p, "ER -", 6 ) ) return 1; return 0; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int risin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0, readtoofar = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( str_is_empty( line ) ) continue; p = str_cstr( line ); if ( utf8_is_bom( p ) ) { *fcharset = CHARSET_UNICODE; p += 3; } /* References are bounded by tags 'TY - ' && 'ER - ' */ if ( is_ris_start_tag( p ) ) { if ( !inref ) inref = 1; else { /* we've read too far.... */ readtoofar = 1; inref = 0; } } if ( is_ris_tag( p ) ) { if ( !inref ) { fprintf(stderr,"Warning. Tagged line not " "in properly started reference.\n"); fprintf(stderr,"Ignored: '%s'\n", p ); } else if ( is_ris_end_tag( p ) ) { inref = 0; } else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } } /* not a tag, but we'll append to last values ...*/ else if ( inref && !is_ris_end_tag( p ) ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } if ( !inref && reference->len ) haveref = 1; if ( !readtoofar ) str_empty( line ); } if ( inref ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int risin_processf() *****************************************************/ static const char* process_untagged_line( str *value, const char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static const char* process_tagged_line( str *tag, str *value, const char *p ) { int i = 0; while ( i<6 && *p && *p!='\n' && *p!='\r' ) { if ( i<2 ) str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); str_trimendingws( value ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static int merge_tag_value( fields *risin, str *tag, str *value, int *tag_added ) { str *oldval; int n, status; if ( str_has_value( value ) ) { if ( *tag_added==1 ) { n = fields_num( risin ); if ( n>0 ) { oldval = fields_value( risin, n-1, FIELDS_STRP ); str_addchar( oldval, ' ' ); str_strcat( oldval, value ); if ( str_memerr( oldval ) ) return BIBL_ERR_MEMERR; } } else { status = fields_add( risin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } } return BIBL_OK; } static int add_tag_value( fields *risin, str *tag, str *value, int *tag_added ) { int status; if ( str_has_value( value ) ) { status = fields_add( risin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } else { *tag_added = 0; } return BIBL_OK; } static int risin_processf( fields *risin, const char *p, const char *filename, long nref, param *pm ) { int status, tag_added = 0, ret = 1; str tag, value; strs_init( &tag, &value, NULL ); while ( *p ) { /* ...tag, add entry */ if ( is_ris_tag( p ) ) { str_empty( &tag ); str_empty( &value ); p = process_tagged_line( &tag, &value, p ); status = add_tag_value( risin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } /* ...no tag, merge with previous line */ else { str_empty( &value ); p = process_untagged_line( &value, p ); status = merge_tag_value( risin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } } out: strs_free( &tag, &value, NULL ); return ret; } /***************************************************** PUBLIC: int risin_typef() *****************************************************/ static int risin_typef( fields *risin, const char *filename, int nref, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename = ""; ntypename = fields_find( risin, "TY", LEVEL_MAIN ); nrefname = fields_find( risin, "ID", LEVEL_MAIN ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( risin, ntypename, FIELDS_CHRP_NOUSE ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( risin, nrefname, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int risin_convertf() *****************************************************/ static int is_uri_file_scheme( char *p ) { if ( !strncmp( p, "file:", 5 ) ) return 5; return 0; } static int risin_linkedfile( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, m; char *p; /* if URL is file:///path/to/xyz.pdf, only store "///path/to/xyz.pdf" */ m = is_uri_file_scheme( str_cstr( invalue ) ); if ( m ) { /* skip past "file:" and store only actual path */ p = str_cstr( invalue ) + m; fstatus = fields_add( bibout, outtag, p, level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* if URL is http:, ftp:, etc. store as a URL */ m = is_uri_remote_scheme( str_cstr( invalue ) ); if ( m!=-1 ) { fstatus = fields_add( bibout, "URL", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* badly formed, RIS wants URI, but store value anyway */ fstatus = fields_add( bibout, outtag, str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* scopus puts DOI in the DO or DI tag, but it needs cleaning */ static int risin_doi( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, doi; doi = is_doi( str_cstr( invalue ) ); if ( doi!=-1 ) { fstatus = fields_add( bibout, "DOI", str_cstr( invalue ) + doi, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int risin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *p = str_cstr( invalue ); int part, status; str date; part = ( !strncasecmp( outtag, "PART", 4 ) ); str_init( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:YEAR", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:YEAR", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:MONTH", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:MONTH", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:DAY", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:DAY", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:OTHER", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:OTHER", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &date ); return BIBL_OK; } static int risin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int i, begin, end, ok, status = BIBL_OK; slist tokens; str name; str_init( &name ); slist_init( &tokens ); status = slist_tokenize( &tokens, invalue, " \t\r\n", 1 ); if ( status!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto out; } begin = 0; while ( begin < tokens.n ) { end = begin + 1; while ( end < tokens.n && strcasecmp( slist_cstr( &tokens, end ), "and" ) ) end++; str_empty( &name ); for ( i=begin; ibegin ) str_addchar( &name, ' ' ); str_strcat( &name, slist_str( &tokens, i ) ); } ok = name_add( bibout, outtag, str_cstr( &name ), level, &(pm->asis), &(pm->corps) ); if ( !ok ) { status = BIBL_ERR_MEMERR; goto out; } begin = end + 1; /* Handle repeated 'and' errors */ while ( begin < tokens.n && !strcasecmp( slist_cstr( &tokens, begin ), "and" ) ) begin++; } out: str_free( &name ); slist_free( &tokens ); return status; } /* look for thesis-type hint */ static int risin_thesis_hints( fields *bibin, int reftype, param *p, fields *bibout ) { int i, nfields, fstatus; char *tag, *value; if ( strcasecmp( p->all[reftype].type, "THES" ) ) return BIBL_OK; nfields = fields_num( bibin ); for ( i=0; iverbose && strcmp( tag, "TY" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify RIS tag '%s'\n", tag ); } } static int risin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ SERIALNO ] = generic_serialno, [ NOTES ] = generic_notes, [ URL ] = generic_url, [ GENRE ] = generic_genre, [ PERSON ] = risin_person, [ DATE ] = risin_date, [ DOI ] = risin_doi, [ LINKEDFILE ] = risin_linkedfile, }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { risin_report_notag( p, str_cstr( intag ) ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status == BIBL_OK ) status = risin_thesis_hints( bibin, reftype, p, bibout ); if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.10.0.0/bibutils/risin.c0000755000000000000000000003524207346545000015470 0ustar0000000000000000/* * risin.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "utf8.h" #include "serialno.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants ris_all[]; extern int ris_nall; /***************************************************** PUBLIC: void risin_initparams() *****************************************************/ static int risin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int risin_processf( fields *risin, const char *p, const char *filename, long nref, param *pm ); static int risin_typef( fields *risin, const char *filename, int nref, param *p ); static int risin_convertf( fields *risin, fields *info, int reftype, param *p ); int risin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_RISIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 0; pm->utf8in = 0; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = 0; pm->readf = risin_readf; pm->processf = risin_processf; pm->cleanf = NULL; pm->typef = risin_typef; pm->convertf = risin_convertf; pm->all = ris_all; pm->nall = ris_nall; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int risin_readf() *****************************************************/ /* RIS definition of a tag is strict: character 1 = uppercase alphabetic character character 2 = uppercase alphabetic character or digit character 3 = space (ansi 32) character 4 = space (ansi 32) character 5 = dash (ansi 45) character 6 = space (ansi 32) some sources don't have a space at character 6 if there is no data (such as "ER -" records). Handle this. www.omicsonline.org mangles the RIS specification and puts _three_ spaces before the dash. Handle this too. */ static int is_ris_tag( const char *buf ) { if ( !isupper( (unsigned char )buf[0] ) ) return 0; if ( !( isupper( (unsigned char )buf[1] ) || isdigit( (unsigned char )buf[1] ) ) ) return 0; if ( buf[2]!=' ' ) return 0; if ( buf[3]!=' ' ) return 0; /*...RIS tags with two spaces */ if ( buf[4]=='-' ) { if ( buf[5]==' ' || buf[5]=='\0' || buf[5]=='\n' || buf[5]=='\r' ) return 1; } /* ...RIS tags with three spaces */ else if ( buf[4]==' ' ) { if ( buf[5]!='-' ) return 0; if ( buf[6]==' ' || buf[6]=='\0' || buf[6]=='\n' || buf[6]=='\r' ) return 1; } return 0; } static int is_ris_start_tag( char *p ) { /* ...TY tag that fits specifications */ if ( !strncmp( p, "TY - ", 6 ) ) return 1; /* ...TY tag with an extra space? */ if ( !strncmp( p, "TY - ", 7 ) ) return 1; return 0; } static int is_ris_end_tag( char *p ) { /* ...ER tag that fits specifications */ if ( !strncmp( p, "ER -", 5 ) ) return 1; /* ...ER tag with an extra space? */ if ( !strncmp( p, "ER -", 6 ) ) return 1; return 0; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int risin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0, readtoofar = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( str_is_empty( line ) ) continue; p = str_cstr( line ); if ( utf8_is_bom( p ) ) { *fcharset = CHARSET_UNICODE; p += 3; } /* References are bounded by tags 'TY - ' && 'ER - ' */ if ( is_ris_start_tag( p ) ) { if ( !inref ) inref = 1; else { /* we've read too far.... */ readtoofar = 1; inref = 0; } } if ( is_ris_tag( p ) ) { if ( !inref ) { fprintf(stderr,"Warning. Tagged line not " "in properly started reference.\n"); fprintf(stderr,"Ignored: '%s'\n", p ); } else if ( is_ris_end_tag( p ) ) { inref = 0; } else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } } /* not a tag, but we'll append to last values ...*/ else if ( inref && !is_ris_end_tag( p ) ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } if ( !inref && reference->len ) haveref = 1; if ( !readtoofar ) str_empty( line ); } if ( inref ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int risin_processf() *****************************************************/ static const char* process_untagged_line( str *value, const char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static const char* process_tagged_line( str *tag, str *value, const char *p ) { int i = 0; while ( i<6 && *p && *p!='\n' && *p!='\r' ) { if ( i<2 ) str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); str_trimendingws( value ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static int merge_tag_value( fields *risin, str *tag, str *value, int *tag_added ) { str *oldval; int n, status; if ( str_has_value( value ) ) { if ( *tag_added==1 ) { n = fields_num( risin ); if ( n>0 ) { oldval = fields_value( risin, n-1, FIELDS_STRP ); str_addchar( oldval, ' ' ); str_strcat( oldval, value ); if ( str_memerr( oldval ) ) return BIBL_ERR_MEMERR; } } else { status = fields_add( risin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } } return BIBL_OK; } static int add_tag_value( fields *risin, str *tag, str *value, int *tag_added ) { int status; if ( str_has_value( value ) ) { status = fields_add( risin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } else { *tag_added = 0; } return BIBL_OK; } static int risin_processf( fields *risin, const char *p, const char *filename, long nref, param *pm ) { int status, tag_added = 0, ret = 1; str tag, value; strs_init( &tag, &value, NULL ); while ( *p ) { /* ...tag, add entry */ if ( is_ris_tag( p ) ) { str_empty( &tag ); str_empty( &value ); p = process_tagged_line( &tag, &value, p ); status = add_tag_value( risin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } /* ...no tag, merge with previous line */ else { str_empty( &value ); p = process_untagged_line( &value, p ); status = merge_tag_value( risin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } } out: strs_free( &tag, &value, NULL ); return ret; } /***************************************************** PUBLIC: int risin_typef() *****************************************************/ static int risin_typef( fields *risin, const char *filename, int nref, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename = ""; ntypename = fields_find( risin, "TY", LEVEL_MAIN ); nrefname = fields_find( risin, "ID", LEVEL_MAIN ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( risin, ntypename, FIELDS_CHRP_NOUSE ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( risin, nrefname, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int risin_convertf() *****************************************************/ static int is_uri_file_scheme( char *p ) { if ( !strncmp( p, "file:", 5 ) ) return 5; return 0; } static int risin_linkedfile( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, m; char *p; /* if URL is file:///path/to/xyz.pdf, only store "///path/to/xyz.pdf" */ m = is_uri_file_scheme( str_cstr( invalue ) ); if ( m ) { /* skip past "file:" and store only actual path */ p = str_cstr( invalue ) + m; fstatus = fields_add( bibout, outtag, p, level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* if URL is http:, ftp:, etc. store as a URL */ m = is_uri_remote_scheme( str_cstr( invalue ) ); if ( m!=-1 ) { fstatus = fields_add( bibout, "URL", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* badly formed, RIS wants URI, but store value anyway */ fstatus = fields_add( bibout, outtag, str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* scopus puts DOI in the DO or DI tag, but it needs cleaning */ static int risin_doi( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, doi; doi = is_doi( str_cstr( invalue ) ); if ( doi!=-1 ) { fstatus = fields_add( bibout, "DOI", str_cstr( invalue ) + doi, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int risin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *p = str_cstr( invalue ); int part, status; str date; part = ( !strncasecmp( outtag, "PART", 4 ) ); str_init( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:YEAR", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:YEAR", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:MONTH", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:MONTH", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:DAY", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:DAY", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:OTHER", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:OTHER", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &date ); return BIBL_OK; } static int risin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int i, begin, end, ok, status = BIBL_OK; slist tokens; str name; str_init( &name ); slist_init( &tokens ); status = slist_tokenize( &tokens, invalue, " \t\r\n", 1 ); if ( status!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto out; } begin = 0; while ( begin < tokens.n ) { end = begin + 1; while ( end < tokens.n && strcasecmp( slist_cstr( &tokens, end ), "and" ) ) end++; str_empty( &name ); for ( i=begin; ibegin ) str_addchar( &name, ' ' ); str_strcat( &name, slist_str( &tokens, i ) ); } ok = name_add( bibout, outtag, str_cstr( &name ), level, &(pm->asis), &(pm->corps) ); if ( !ok ) { status = BIBL_ERR_MEMERR; goto out; } begin = end + 1; /* Handle repeated 'and' errors */ while ( begin < tokens.n && !strcasecmp( slist_cstr( &tokens, begin ), "and" ) ) begin++; } out: str_free( &name ); slist_free( &tokens ); return status; } /* look for thesis-type hint */ static int risin_thesis_hints( fields *bibin, int reftype, param *p, fields *bibout ) { int i, nfields, fstatus; char *tag, *value; if ( strcasecmp( p->all[reftype].type, "THES" ) ) return BIBL_OK; nfields = fields_num( bibin ); for ( i=0; iverbose && strcmp( tag, "TY" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify RIS tag '%s'\n", tag ); } } static int risin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ SERIALNO ] = generic_serialno, [ NOTES ] = generic_notes, [ URL ] = generic_url, [ GENRE ] = generic_genre, [ PERSON ] = risin_person, [ DATE ] = risin_date, [ DOI ] = risin_doi, [ LINKEDFILE ] = risin_linkedfile, }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { risin_report_notag( p, str_cstr( intag ) ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status == BIBL_OK ) status = risin_thesis_hints( bibin, reftype, p, bibout ); if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.10.0.0/bibutils/risout.c0000644000000000000000000005467507346545000015701 0ustar0000000000000000/* * risout.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "bibformats.h" #include "fields.h" #include "generic.h" #include "name.h" #include "str.h" #include "title.h" #include "url.h" #include "utf8.h" /***************************************************** PUBLIC: int risout_initparams() *****************************************************/ static int risout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); static int risout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int risout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_RISOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; if ( pm->charsetout == BIBL_CHARSET_UNICODE ) { pm->utf8out = pm->utf8bom = 1; } pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = risout_assemble; pm->writef = risout_write; if ( !pm->progname ) { if ( progname==NULL ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int risout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_STD, /* standard/generic */ TYPE_ABSTRACT, /* abstract */ TYPE_ARTICLE, /* article */ TYPE_BOOK, /* book */ TYPE_CASE, /* case */ TYPE_INBOOK, /* chapter */ TYPE_CONF, /* conference */ TYPE_ELEC, /* electronic */ TYPE_HEAR, /* hearing */ TYPE_MAGARTICLE, /* magazine article */ TYPE_NEWSPAPER, /* newspaper */ TYPE_MPCT, /* mpct */ TYPE_PAMPHLET, /* pamphlet */ TYPE_PATENT, /* patent */ TYPE_PCOMM, /* personal communication */ TYPE_PROGRAM, /* program */ TYPE_REPORT, /* report */ TYPE_STATUTE, /* statute */ TYPE_THESIS, /* thesis */ TYPE_LICENTIATETHESIS, /* thesis */ TYPE_MASTERSTHESIS, /* thesis */ TYPE_PHDTHESIS, /* thesis */ TYPE_DIPLOMATHESIS, /* thesis */ TYPE_DOCTORALTHESIS, /* thesis */ TYPE_HABILITATIONTHESIS, /* thesis */ TYPE_MAP, /* map, cartographic data */ TYPE_UNPUBLISHED, /* unpublished */ NUM_TYPES }; static int type_is_element[ NUM_TYPES ] = { [ 0 ... NUM_TYPES-1 ] = 0, [ TYPE_ARTICLE ] = 1, [ TYPE_INBOOK ] = 1, [ TYPE_MAGARTICLE ] = 1, [ TYPE_NEWSPAPER ] = 1, [ TYPE_ABSTRACT ] = 1, [ TYPE_CONF ] = 1, }; static int type_uses_journal[ NUM_TYPES ] = { [ 0 ... NUM_TYPES-1 ] = 0, [ TYPE_ARTICLE ] = 1, [ TYPE_MAGARTICLE ] = 1, }; static void write_type( FILE *fp, int type ) { const char *typenames[ NUM_TYPES ] = { [ TYPE_UNKNOWN ] = "TYPE_UNKNOWN", [ TYPE_STD ] = "TYPE_STD", [ TYPE_ABSTRACT ] = "TYPE_ABSTRACT", [ TYPE_ARTICLE ] = "TYPE_ARTICLE", [ TYPE_BOOK ] = "TYPE_BOOK", [ TYPE_CASE ] = "TYPE_CASE", [ TYPE_INBOOK ] = "TYPE_INBOOK", [ TYPE_CONF ] = "TYPE_CONF", [ TYPE_ELEC ] = "TYPE_ELEC", [ TYPE_HEAR ] = "TYPE_HEAR", [ TYPE_MAGARTICLE ] = "TYPE_MAGARTICLE", [ TYPE_NEWSPAPER ] = "TYPE_NEWSPAPER", [ TYPE_MPCT ] = "TYPE_MPCT", [ TYPE_PAMPHLET ] = "TYPE_PAMPHLET", [ TYPE_PATENT ] = "TYPE_PATENT", [ TYPE_PCOMM ] = "TYPE_PCOMM", [ TYPE_PROGRAM ] = "TYPE_PROGRAM", [ TYPE_REPORT ] = "TYPE_REPORT", [ TYPE_STATUTE ] = "TYPE_STATUTE", [ TYPE_THESIS ] = "TYPE_THESIS", [ TYPE_LICENTIATETHESIS ] = "TYPE_LICENTIATETHESIS", [ TYPE_MASTERSTHESIS ] = "TYPE_MASTERSTHESIS", [ TYPE_PHDTHESIS ] = "TYPE_PHDTHESIS", [ TYPE_DIPLOMATHESIS ] = "TYPE_DIPLOMATHESIS", [ TYPE_DOCTORALTHESIS ] = "TYPE_DOCTORALTHESIS", [ TYPE_HABILITATIONTHESIS ] = "TYPE_HABILITATIONTHESIS", [ TYPE_MAP ] = "TYPE_MAP", [ TYPE_UNPUBLISHED ] = "TYPE_UNPUBLISHED", }; if ( type < 0 || type >= NUM_TYPES ) fprintf( fp, "Error - type not in enum" ); else fprintf( fp, "%s", typenames[ type ] ); } static void verbose_type_identified( char *element_type, param *p, int type ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from %s element: ", element_type ); write_type( stderr, type ); fprintf( stderr, "\n" ); } static void verbose_type_assignment( char *tag, char *value, param *p, int type ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from tag '%s' value '%s': ", tag, value ); write_type( stderr, type ); fprintf( stderr, "\n" ); } typedef struct match_type { char *name; int type; } match_type; /* Try to determine type of reference from * */ static int get_type_genre( fields *f, param *p ) { match_type match_genres[] = { { "academic journal", TYPE_ARTICLE }, { "article", TYPE_ARTICLE }, { "journal article", TYPE_ARTICLE }, { "magazine", TYPE_MAGARTICLE }, { "conference publication", TYPE_CONF }, { "newspaper", TYPE_NEWSPAPER }, { "legislation", TYPE_STATUTE }, { "communication", TYPE_PCOMM }, { "hearing", TYPE_HEAR }, { "electronic", TYPE_ELEC }, { "legal case and case notes", TYPE_CASE }, { "book chapter", TYPE_INBOOK }, { "Ph.D. thesis", TYPE_PHDTHESIS }, { "Licentiate thesis", TYPE_LICENTIATETHESIS }, { "Masters thesis", TYPE_MASTERSTHESIS }, { "Diploma thesis", TYPE_DIPLOMATHESIS }, { "Doctoral thesis", TYPE_DOCTORALTHESIS }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS }, { "report", TYPE_REPORT }, { "technical report", TYPE_REPORT }, { "abstract or summary", TYPE_ABSTRACT }, { "patent", TYPE_PATENT }, { "unpublished", TYPE_UNPUBLISHED }, { "manuscript", TYPE_UNPUBLISHED }, { "map", TYPE_MAP }, }; int nmatch_genres = sizeof( match_genres ) / sizeof( match_genres[0] ); char *tag, *value; int type, i, j; type = TYPE_UNKNOWN; for ( i=0; iverbose ) verbose_type_assignment( tag, value, p, type ); if ( type==TYPE_UNKNOWN ) { if ( !strcasecmp( value, "periodical" ) ) type = TYPE_ARTICLE; else if ( !strcasecmp( value, "thesis" ) ) type = TYPE_THESIS; else if ( !strcasecmp( value, "book" ) ) { if ( fields_level( f, i )==0 ) type=TYPE_BOOK; else type=TYPE_INBOOK; } else if ( !strcasecmp( value, "collection" ) ) { if ( fields_level( f, i )==0 ) type=TYPE_BOOK; else type=TYPE_INBOOK; } } } if ( p->verbose ) verbose_type_identified( "genre", p, type ); return type; } /* Try to determine type of reference from * */ static int get_type_resource( fields *f, param *p ) { match_type match_res[] = { { "software, multimedia", TYPE_PROGRAM }, { "cartographic", TYPE_MAP }, }; int nmatch_res = sizeof( match_res ) / sizeof( match_res[0] ); vplist_index i; int type, j; char *value; vplist a; type = TYPE_UNKNOWN; vplist_init( &a ); fields_findv_each( f, LEVEL_ANY, FIELDS_CHRP, &a, "RESOURCE" ); for ( i=0; iverbose ) verbose_type_assignment( "RESOURCE", value, p, type ); } if ( p->verbose ) verbose_type_identified( "resource", p, type ); vplist_free( &a ); return type; } /* Try to determine type of reference from and */ /* */ static int get_type_issuance( fields *f, param *p ) { int type = TYPE_UNKNOWN; int i, monographic = 0, monographic_level = 0; for ( i=0; in; ++i ) { if ( !strcasecmp( (char *) fields_tag( f, i, FIELDS_CHRP_NOUSE ), "issuance" ) && !strcasecmp( (char *) fields_value( f, i, FIELDS_CHRP_NOUSE ), "MONOGRAPHIC" ) ){ monographic = 1; monographic_level = f->level[i]; } } if ( monographic ) { if ( monographic_level==0 ) type=TYPE_BOOK; else if ( monographic_level>0 ) type=TYPE_INBOOK; } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from issuance/typeOfReference elements: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } return type; } static int get_type( fields *f, param *p ) { int type; type = get_type_genre( f, p ); if ( type==TYPE_UNKNOWN ) type = get_type_resource( f, p ); if ( type==TYPE_UNKNOWN ) type = get_type_issuance( f, p ); if ( type==TYPE_UNKNOWN ) { if ( fields_maxlevel( f ) > 0 ) type = TYPE_INBOOK; else type = TYPE_STD; } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Final type: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } return type; } static void append_type( int type, param *p, fields *out, int *status ) { char *typenames[ NUM_TYPES ] = { [ TYPE_STD ] = "STD", [ TYPE_ABSTRACT ] = "ABST", [ TYPE_ARTICLE ] = "JOUR", [ TYPE_BOOK ] = "BOOK", [ TYPE_CASE ] = "CASE", [ TYPE_INBOOK ] = "CHAP", [ TYPE_CONF ] = "CONF", [ TYPE_ELEC ] = "ELEC", [ TYPE_HEAR ] = "HEAR", [ TYPE_MAGARTICLE ] = "MGZN", [ TYPE_NEWSPAPER ] = "NEWS", [ TYPE_MPCT ] = "MPCT", [ TYPE_PAMPHLET ] = "PAMP", [ TYPE_PATENT ] = "PAT", [ TYPE_PCOMM ] = "PCOMM", [ TYPE_PROGRAM ] = "COMP", [ TYPE_REPORT ] = "RPRT", [ TYPE_STATUTE ] = "STAT", [ TYPE_THESIS ] = "THES", [ TYPE_MASTERSTHESIS ] = "THES", [ TYPE_PHDTHESIS ] = "THES", [ TYPE_DIPLOMATHESIS ] = "THES", [ TYPE_DOCTORALTHESIS ] = "THES", [ TYPE_HABILITATIONTHESIS ] = "THES", [ TYPE_MAP ] = "MAP", [ TYPE_UNPUBLISHED ] = "UNPB", }; int fstatus; if ( type < 0 || type >= NUM_TYPES ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Internal error: Cannot recognize type %d, switching to TYPE_STD %d\n", type, TYPE_STD ); type = TYPE_STD; } fstatus = fields_add( out, "TY", typenames[ type ], LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_people( fields *f, char *tag, char *ristag, int level, fields *out, int *status ) { vplist_index i; str oneperson; vplist people; int fstatus; str_init( &oneperson ); vplist_init( &people ); fields_findv_each( f, level, FIELDS_CHRP, &people, tag ); for ( i=0; in; ++i ) { tag = fields_tag ( out, i, FIELDS_CHRP ); value = fields_value( out, i, FIELDS_CHRP ); fprintf( fp, "%s - %s\n", tag, value ); } fprintf( fp, "ER - \n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/risout.c0000755000000000000000000005467507346545000015704 0ustar0000000000000000/* * risout.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "bibformats.h" #include "fields.h" #include "generic.h" #include "name.h" #include "str.h" #include "title.h" #include "url.h" #include "utf8.h" /***************************************************** PUBLIC: int risout_initparams() *****************************************************/ static int risout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); static int risout_assemble( fields *in, fields *out, param *pm, unsigned long refnum ); int risout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_RISOUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_DEFAULT; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; pm->xmlout = BIBL_XMLOUT_FALSE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; if ( pm->charsetout == BIBL_CHARSET_UNICODE ) { pm->utf8out = pm->utf8bom = 1; } pm->headerf = generic_writeheader; pm->footerf = NULL; pm->assemblef = risout_assemble; pm->writef = risout_write; if ( !pm->progname ) { if ( progname==NULL ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int risout_assemble() *****************************************************/ enum { TYPE_UNKNOWN = 0, TYPE_STD, /* standard/generic */ TYPE_ABSTRACT, /* abstract */ TYPE_ARTICLE, /* article */ TYPE_BOOK, /* book */ TYPE_CASE, /* case */ TYPE_INBOOK, /* chapter */ TYPE_CONF, /* conference */ TYPE_ELEC, /* electronic */ TYPE_HEAR, /* hearing */ TYPE_MAGARTICLE, /* magazine article */ TYPE_NEWSPAPER, /* newspaper */ TYPE_MPCT, /* mpct */ TYPE_PAMPHLET, /* pamphlet */ TYPE_PATENT, /* patent */ TYPE_PCOMM, /* personal communication */ TYPE_PROGRAM, /* program */ TYPE_REPORT, /* report */ TYPE_STATUTE, /* statute */ TYPE_THESIS, /* thesis */ TYPE_LICENTIATETHESIS, /* thesis */ TYPE_MASTERSTHESIS, /* thesis */ TYPE_PHDTHESIS, /* thesis */ TYPE_DIPLOMATHESIS, /* thesis */ TYPE_DOCTORALTHESIS, /* thesis */ TYPE_HABILITATIONTHESIS, /* thesis */ TYPE_MAP, /* map, cartographic data */ TYPE_UNPUBLISHED, /* unpublished */ NUM_TYPES }; static int type_is_element[ NUM_TYPES ] = { [ 0 ... NUM_TYPES-1 ] = 0, [ TYPE_ARTICLE ] = 1, [ TYPE_INBOOK ] = 1, [ TYPE_MAGARTICLE ] = 1, [ TYPE_NEWSPAPER ] = 1, [ TYPE_ABSTRACT ] = 1, [ TYPE_CONF ] = 1, }; static int type_uses_journal[ NUM_TYPES ] = { [ 0 ... NUM_TYPES-1 ] = 0, [ TYPE_ARTICLE ] = 1, [ TYPE_MAGARTICLE ] = 1, }; static void write_type( FILE *fp, int type ) { const char *typenames[ NUM_TYPES ] = { [ TYPE_UNKNOWN ] = "TYPE_UNKNOWN", [ TYPE_STD ] = "TYPE_STD", [ TYPE_ABSTRACT ] = "TYPE_ABSTRACT", [ TYPE_ARTICLE ] = "TYPE_ARTICLE", [ TYPE_BOOK ] = "TYPE_BOOK", [ TYPE_CASE ] = "TYPE_CASE", [ TYPE_INBOOK ] = "TYPE_INBOOK", [ TYPE_CONF ] = "TYPE_CONF", [ TYPE_ELEC ] = "TYPE_ELEC", [ TYPE_HEAR ] = "TYPE_HEAR", [ TYPE_MAGARTICLE ] = "TYPE_MAGARTICLE", [ TYPE_NEWSPAPER ] = "TYPE_NEWSPAPER", [ TYPE_MPCT ] = "TYPE_MPCT", [ TYPE_PAMPHLET ] = "TYPE_PAMPHLET", [ TYPE_PATENT ] = "TYPE_PATENT", [ TYPE_PCOMM ] = "TYPE_PCOMM", [ TYPE_PROGRAM ] = "TYPE_PROGRAM", [ TYPE_REPORT ] = "TYPE_REPORT", [ TYPE_STATUTE ] = "TYPE_STATUTE", [ TYPE_THESIS ] = "TYPE_THESIS", [ TYPE_LICENTIATETHESIS ] = "TYPE_LICENTIATETHESIS", [ TYPE_MASTERSTHESIS ] = "TYPE_MASTERSTHESIS", [ TYPE_PHDTHESIS ] = "TYPE_PHDTHESIS", [ TYPE_DIPLOMATHESIS ] = "TYPE_DIPLOMATHESIS", [ TYPE_DOCTORALTHESIS ] = "TYPE_DOCTORALTHESIS", [ TYPE_HABILITATIONTHESIS ] = "TYPE_HABILITATIONTHESIS", [ TYPE_MAP ] = "TYPE_MAP", [ TYPE_UNPUBLISHED ] = "TYPE_UNPUBLISHED", }; if ( type < 0 || type >= NUM_TYPES ) fprintf( fp, "Error - type not in enum" ); else fprintf( fp, "%s", typenames[ type ] ); } static void verbose_type_identified( char *element_type, param *p, int type ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from %s element: ", element_type ); write_type( stderr, type ); fprintf( stderr, "\n" ); } static void verbose_type_assignment( char *tag, char *value, param *p, int type ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from tag '%s' value '%s': ", tag, value ); write_type( stderr, type ); fprintf( stderr, "\n" ); } typedef struct match_type { char *name; int type; } match_type; /* Try to determine type of reference from * */ static int get_type_genre( fields *f, param *p ) { match_type match_genres[] = { { "academic journal", TYPE_ARTICLE }, { "article", TYPE_ARTICLE }, { "journal article", TYPE_ARTICLE }, { "magazine", TYPE_MAGARTICLE }, { "conference publication", TYPE_CONF }, { "newspaper", TYPE_NEWSPAPER }, { "legislation", TYPE_STATUTE }, { "communication", TYPE_PCOMM }, { "hearing", TYPE_HEAR }, { "electronic", TYPE_ELEC }, { "legal case and case notes", TYPE_CASE }, { "book chapter", TYPE_INBOOK }, { "Ph.D. thesis", TYPE_PHDTHESIS }, { "Licentiate thesis", TYPE_LICENTIATETHESIS }, { "Masters thesis", TYPE_MASTERSTHESIS }, { "Diploma thesis", TYPE_DIPLOMATHESIS }, { "Doctoral thesis", TYPE_DOCTORALTHESIS }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS }, { "report", TYPE_REPORT }, { "technical report", TYPE_REPORT }, { "abstract or summary", TYPE_ABSTRACT }, { "patent", TYPE_PATENT }, { "unpublished", TYPE_UNPUBLISHED }, { "manuscript", TYPE_UNPUBLISHED }, { "map", TYPE_MAP }, }; int nmatch_genres = sizeof( match_genres ) / sizeof( match_genres[0] ); char *tag, *value; int type, i, j; type = TYPE_UNKNOWN; for ( i=0; iverbose ) verbose_type_assignment( tag, value, p, type ); if ( type==TYPE_UNKNOWN ) { if ( !strcasecmp( value, "periodical" ) ) type = TYPE_ARTICLE; else if ( !strcasecmp( value, "thesis" ) ) type = TYPE_THESIS; else if ( !strcasecmp( value, "book" ) ) { if ( fields_level( f, i )==0 ) type=TYPE_BOOK; else type=TYPE_INBOOK; } else if ( !strcasecmp( value, "collection" ) ) { if ( fields_level( f, i )==0 ) type=TYPE_BOOK; else type=TYPE_INBOOK; } } } if ( p->verbose ) verbose_type_identified( "genre", p, type ); return type; } /* Try to determine type of reference from * */ static int get_type_resource( fields *f, param *p ) { match_type match_res[] = { { "software, multimedia", TYPE_PROGRAM }, { "cartographic", TYPE_MAP }, }; int nmatch_res = sizeof( match_res ) / sizeof( match_res[0] ); vplist_index i; int type, j; char *value; vplist a; type = TYPE_UNKNOWN; vplist_init( &a ); fields_findv_each( f, LEVEL_ANY, FIELDS_CHRP, &a, "RESOURCE" ); for ( i=0; iverbose ) verbose_type_assignment( "RESOURCE", value, p, type ); } if ( p->verbose ) verbose_type_identified( "resource", p, type ); vplist_free( &a ); return type; } /* Try to determine type of reference from and */ /* */ static int get_type_issuance( fields *f, param *p ) { int type = TYPE_UNKNOWN; int i, monographic = 0, monographic_level = 0; for ( i=0; in; ++i ) { if ( !strcasecmp( (char *) fields_tag( f, i, FIELDS_CHRP_NOUSE ), "issuance" ) && !strcasecmp( (char *) fields_value( f, i, FIELDS_CHRP_NOUSE ), "MONOGRAPHIC" ) ){ monographic = 1; monographic_level = f->level[i]; } } if ( monographic ) { if ( monographic_level==0 ) type=TYPE_BOOK; else if ( monographic_level>0 ) type=TYPE_INBOOK; } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from issuance/typeOfReference elements: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } return type; } static int get_type( fields *f, param *p ) { int type; type = get_type_genre( f, p ); if ( type==TYPE_UNKNOWN ) type = get_type_resource( f, p ); if ( type==TYPE_UNKNOWN ) type = get_type_issuance( f, p ); if ( type==TYPE_UNKNOWN ) { if ( fields_maxlevel( f ) > 0 ) type = TYPE_INBOOK; else type = TYPE_STD; } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Final type: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } return type; } static void append_type( int type, param *p, fields *out, int *status ) { char *typenames[ NUM_TYPES ] = { [ TYPE_STD ] = "STD", [ TYPE_ABSTRACT ] = "ABST", [ TYPE_ARTICLE ] = "JOUR", [ TYPE_BOOK ] = "BOOK", [ TYPE_CASE ] = "CASE", [ TYPE_INBOOK ] = "CHAP", [ TYPE_CONF ] = "CONF", [ TYPE_ELEC ] = "ELEC", [ TYPE_HEAR ] = "HEAR", [ TYPE_MAGARTICLE ] = "MGZN", [ TYPE_NEWSPAPER ] = "NEWS", [ TYPE_MPCT ] = "MPCT", [ TYPE_PAMPHLET ] = "PAMP", [ TYPE_PATENT ] = "PAT", [ TYPE_PCOMM ] = "PCOMM", [ TYPE_PROGRAM ] = "COMP", [ TYPE_REPORT ] = "RPRT", [ TYPE_STATUTE ] = "STAT", [ TYPE_THESIS ] = "THES", [ TYPE_MASTERSTHESIS ] = "THES", [ TYPE_PHDTHESIS ] = "THES", [ TYPE_DIPLOMATHESIS ] = "THES", [ TYPE_DOCTORALTHESIS ] = "THES", [ TYPE_HABILITATIONTHESIS ] = "THES", [ TYPE_MAP ] = "MAP", [ TYPE_UNPUBLISHED ] = "UNPB", }; int fstatus; if ( type < 0 || type >= NUM_TYPES ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Internal error: Cannot recognize type %d, switching to TYPE_STD %d\n", type, TYPE_STD ); type = TYPE_STD; } fstatus = fields_add( out, "TY", typenames[ type ], LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_people( fields *f, char *tag, char *ristag, int level, fields *out, int *status ) { vplist_index i; str oneperson; vplist people; int fstatus; str_init( &oneperson ); vplist_init( &people ); fields_findv_each( f, level, FIELDS_CHRP, &people, tag ); for ( i=0; in; ++i ) { tag = fields_tag ( out, i, FIELDS_CHRP ); value = fields_value( out, i, FIELDS_CHRP ); fprintf( fp, "%s - %s\n", tag, value ); } fprintf( fp, "ER - \n" ); fflush( fp ); return BIBL_OK; } hs-bibutils-6.10.0.0/bibutils/ristypes.c0000644000000000000000000032312407346545000016222 0ustar0000000000000000/* * ristypes.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "fields.h" #include "reftypes.h" static lookups generic[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author -- Series editors */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Name of Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachments (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Resarch Notes -> Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated? */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ }; static lookups article[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author -- Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; /* magazine article */ static lookups magarticle[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editors */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|magazine", ALWAYS, LEVEL_HOST } }; static lookups newsarticle[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|NEWSARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|newspaper", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_HOST }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title -- here abbreviated title for series*/ { "T3", "TITLE", SIMPLE, LEVEL_HOST }, /* 'Tertiary' Title -- series title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups inbook[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_HOST }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_HOST }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_HOST }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_HOST }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_SERIES }, /* 'Secondary' Title -- here abbreviated title for series*/ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_HOST }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_HOST }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_HOST }, /* Access Date */ { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups conference[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR:ASIS", SIMPLE, LEVEL_HOST }, /* 'Secondary' Author - Name of conference */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_HOST }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_SERIES }, /* 'Secondary' Title - Abbreviated series TItle*/ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title - Series Title*/ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_HOST }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_HOST }, /* Access Date */ { " ", "INTERNAL_TYPE|CONFERENCE", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups statute[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|STATUTE", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups hearing[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|HEARING", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|hearing", ALWAYS, LEVEL_MAIN } }; static lookups cases[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|CASE", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legal case and case notes", ALWAYS, LEVEL_MAIN } }; static lookups communication[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "ADDRESSEE", PERSON, LEVEL_MAIN }, /* SPECIAL */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|communication", ALWAYS, LEVEL_MAIN } }; static lookups thesis[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, }; static lookups report[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN } }; static lookups abstract[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "GENRE:MARC|abstract or summary", ALWAYS, LEVEL_MAIN } }; static lookups program[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN } }; static lookups patent[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN } }; static lookups electric[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups pamphlet[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|pamphlet", ALWAYS, LEVEL_MAIN }, }; static lookups map[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Name of Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachments (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Resarch Notes -> Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated? */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|cartographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|map", ALWAYS, LEVEL_MAIN } }; static lookups unpublished[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants ris_all[] = { REFTYPE( "STD", generic ), REFTYPE( "GEN", generic ), REFTYPE( "JOUR", article ), REFTYPE( "MGZN", magarticle ), REFTYPE( "BOOK", book ), REFTYPE( "CHAP", inbook ), REFTYPE( "CONF", conference ), REFTYPE( "STAT", statute ), REFTYPE( "HEAR", hearing ), REFTYPE( "CASE", cases ), REFTYPE( "NEWS", newsarticle ), REFTYPE( "MPCT", generic ), REFTYPE( "PCOMM", communication ), REFTYPE( "PAMP", pamphlet ), REFTYPE( "ELEC", electric ), REFTYPE( "THES", thesis ), REFTYPE( "RPRT", report ), REFTYPE( "ABST", abstract ), REFTYPE( "COMP", program ), REFTYPE( "PAT", patent ), REFTYPE( "MAP", map ), REFTYPE( "UNPB", unpublished ), }; int ris_nall = sizeof( ris_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/ristypes.c0000755000000000000000000032312407346545000016225 0ustar0000000000000000/* * ristypes.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "fields.h" #include "reftypes.h" static lookups generic[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author -- Series editors */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Name of Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachments (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Resarch Notes -> Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated? */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ }; static lookups article[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author -- Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; /* magazine article */ static lookups magarticle[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editors */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|magazine", ALWAYS, LEVEL_HOST } }; static lookups newsarticle[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|NEWSARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|newspaper", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_HOST }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title -- here abbreviated title for series*/ { "T3", "TITLE", SIMPLE, LEVEL_HOST }, /* 'Tertiary' Title -- series title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups inbook[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_HOST }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_HOST }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_HOST }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_HOST }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_SERIES }, /* 'Secondary' Title -- here abbreviated title for series*/ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_HOST }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_HOST }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_HOST }, /* Access Date */ { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups conference[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR:ASIS", SIMPLE, LEVEL_HOST }, /* 'Secondary' Author - Name of conference */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_HOST }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_SERIES }, /* 'Secondary' Title - Abbreviated series TItle*/ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title - Series Title*/ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_HOST }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_HOST }, /* Access Date */ { " ", "INTERNAL_TYPE|CONFERENCE", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups statute[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|STATUTE", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups hearing[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|HEARING", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|hearing", ALWAYS, LEVEL_MAIN } }; static lookups cases[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|CASE", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legal case and case notes", ALWAYS, LEVEL_MAIN } }; static lookups communication[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "ADDRESSEE", PERSON, LEVEL_MAIN }, /* SPECIAL */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|communication", ALWAYS, LEVEL_MAIN } }; static lookups thesis[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, }; static lookups report[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN } }; static lookups abstract[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "GENRE:MARC|abstract or summary", ALWAYS, LEVEL_MAIN } }; static lookups program[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN } }; static lookups patent[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN } }; static lookups electric[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups pamphlet[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|pamphlet", ALWAYS, LEVEL_MAIN }, }; static lookups map[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Name of Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachments (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Resarch Notes -> Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated? */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|cartographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|map", ALWAYS, LEVEL_MAIN } }; static lookups unpublished[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "ADDRESS:AUTHOR",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants ris_all[] = { REFTYPE( "STD", generic ), REFTYPE( "GEN", generic ), REFTYPE( "JOUR", article ), REFTYPE( "MGZN", magarticle ), REFTYPE( "BOOK", book ), REFTYPE( "CHAP", inbook ), REFTYPE( "CONF", conference ), REFTYPE( "STAT", statute ), REFTYPE( "HEAR", hearing ), REFTYPE( "CASE", cases ), REFTYPE( "NEWS", newsarticle ), REFTYPE( "MPCT", generic ), REFTYPE( "PCOMM", communication ), REFTYPE( "PAMP", pamphlet ), REFTYPE( "ELEC", electric ), REFTYPE( "THES", thesis ), REFTYPE( "RPRT", report ), REFTYPE( "ABST", abstract ), REFTYPE( "COMP", program ), REFTYPE( "PAT", patent ), REFTYPE( "MAP", map ), REFTYPE( "UNPB", unpublished ), }; int ris_nall = sizeof( ris_all ) / sizeof( variants ); hs-bibutils-6.10.0.0/bibutils/serialno.c0000644000000000000000000000234707346545000016155 0ustar0000000000000000/* * serialno.c * * Copyright (c) Chris Putnam 2005-2020 * * Source code released under the GPL version 2 * */ #include #include "serialno.h" int addsn( fields *info, char *buf, int level ) { int ndigits, issn=0, isbn=0, isbn10=0, isbn13=0, status; char *p = buf, *tag; if ( !strncasecmp( p, "ISSN", 4 ) ) issn=1; else if ( !strncasecmp( p, "ISBN", 4 ) ) isbn=1; if ( isbn ) { ndigits = 0; while ( *p && !(ndigits && (*p==';'||*p==':')) ) { if ( ( *p>='0' && *p<='9' ) || *p=='x' || *p=='X' ) ndigits++; p++; } if ( ndigits==13 ) isbn13 = 1; else /* ( ndigits==10) */ isbn10 = 1; } if ( !issn && !isbn ) { /* a lot have semicolons between multiple ISBN's for paperbacks and hardbacks with different numbers */ ndigits = 0; while ( *p && !(ndigits && (*p==';'||*p==':')) ) { if ( ( *p>='0' && *p<='9' ) || *p=='x' || *p=='X' ) ndigits++; p++; } if ( ndigits==8 ) issn = 1; else if ( ndigits==10 ) isbn10 = 1; else if ( ndigits==13 ) isbn13 = 1; } if ( issn ) tag = "ISSN"; else if ( isbn10 ) tag = "ISBN"; else if ( isbn13 ) tag = "ISBN13"; else tag = "SERIALNUMBER"; status = fields_add( info, tag, buf, level ); if ( status==FIELDS_OK ) return 1; else return 0; } hs-bibutils-6.10.0.0/bibutils/serialno.c0000755000000000000000000000234707346545000016160 0ustar0000000000000000/* * serialno.c * * Copyright (c) Chris Putnam 2005-2020 * * Source code released under the GPL version 2 * */ #include #include "serialno.h" int addsn( fields *info, char *buf, int level ) { int ndigits, issn=0, isbn=0, isbn10=0, isbn13=0, status; char *p = buf, *tag; if ( !strncasecmp( p, "ISSN", 4 ) ) issn=1; else if ( !strncasecmp( p, "ISBN", 4 ) ) isbn=1; if ( isbn ) { ndigits = 0; while ( *p && !(ndigits && (*p==';'||*p==':')) ) { if ( ( *p>='0' && *p<='9' ) || *p=='x' || *p=='X' ) ndigits++; p++; } if ( ndigits==13 ) isbn13 = 1; else /* ( ndigits==10) */ isbn10 = 1; } if ( !issn && !isbn ) { /* a lot have semicolons between multiple ISBN's for paperbacks and hardbacks with different numbers */ ndigits = 0; while ( *p && !(ndigits && (*p==';'||*p==':')) ) { if ( ( *p>='0' && *p<='9' ) || *p=='x' || *p=='X' ) ndigits++; p++; } if ( ndigits==8 ) issn = 1; else if ( ndigits==10 ) isbn10 = 1; else if ( ndigits==13 ) isbn13 = 1; } if ( issn ) tag = "ISSN"; else if ( isbn10 ) tag = "ISBN"; else if ( isbn13 ) tag = "ISBN13"; else tag = "SERIALNUMBER"; status = fields_add( info, tag, buf, level ); if ( status==FIELDS_OK ) return 1; else return 0; } hs-bibutils-6.10.0.0/bibutils/serialno.h0000755000000000000000000000035307346545000016160 0ustar0000000000000000/* * serialno.h * * Copyright (c) Chris Putnam 2005-2019 * * Source code released under the GPL version 2 * */ #ifndef SERIALNO_H #define SERIALNO_H #include "fields.h" int addsn( fields *info, char *buf, int level ); #endif hs-bibutils-6.10.0.0/bibutils/slist.c0000644000000000000000000003705307346545000015501 0ustar0000000000000000/* * slist.c * * version: 2019-01-14 * * Copyright (c) Chris Putnam 2004-2020 * * Source code released under the GPL version 2 * * Implements a simple managed array of strs. * */ #include "slist.h" /* Do not use asserts in VPLIST_NOASSERT defined */ #ifdef VPLIST_NOASSERT #define NDEBUG #endif #include #define SLIST_MINALLOC (20) #define SLIST_EXACT_SIZE (0) #define SLIST_DOUBLE_SIZE (1) /* * returns 1 if n is valid string in slist */ static inline int slist_valid_num( slist *a, slist_index n ) { if ( n < 0 || n >= a->n ) return 0; return 1; } void slist_init( slist *a ) { assert( a ); a->strs = NULL; a->max = 0; a->n = 0; a->sorted = 1; } int slist_init_values( slist *a, ... ) { int status = SLIST_OK; va_list ap; str *s; slist_init( a ); va_start( ap, a ); do { s = va_arg( ap, str * ); if ( s ) { status = slist_add( a, s ); if ( status!=SLIST_OK ) goto out; } } while ( s ); out: va_end( ap ); return status; } int slist_init_valuesc( slist *a, ... ) { int status = SLIST_OK; va_list ap; char *s; slist_init( a ); va_start( ap, a ); do { s = va_arg( ap, char * ); if ( s ) { status = slist_addc( a, s ); if ( status!=SLIST_OK ) goto out; } } while ( s ); out: va_end( ap ); return status; } void slist_empty( slist *a ) { slist_index i; assert( a ); for ( i=0; imax; ++i ) str_empty( &(a->strs[i]) ); a->n = 0; a->sorted = 1; } void slist_free( slist *a ) { slist_index i; assert( a ); for ( i=0; imax; ++i ) str_free( &(a->strs[i]) ); free( a->strs ); slist_init( a ); } slist * slist_new( void ) { slist *a; a = ( slist * ) malloc( sizeof ( slist ) ); if ( a ) slist_init( a ); return a; } void slist_delete( slist *a ) { assert( a ); slist_free( a ); free( a ); } void slist_deletev( void *v ) { slist_delete( (slist*) v ); } void slist_swap( slist *a, slist_index n1, slist_index n2 ) { assert( a ); if ( slist_valid_num( a, n1 ) && slist_valid_num( a, n2 ) ) str_swapstrings( &(a->strs[n1]), &(a->strs[n2]) ); } static int slist_revcomp( const void *v1, const void *v2 ) { str *s1 = ( str *) v1; str *s2 = ( str *) v2; int n; if ( !s1->len && !s2->len ) return 0; else if ( !s1->len ) return 1; else if ( !s2->len ) return -1; n = str_strcmp( s1, s2 ); if ( n==0 ) return 0; else if ( n > 0 ) return -1; else return 1; } static int slist_comp( const void *v1, const void *v2 ) { str *s1 = ( str *) v1; str *s2 = ( str *) v2; if ( !s1->len && !s2->len ) return 0; else if ( !s1->len ) return -1; else if ( !s2->len ) return 1; else return str_strcmp( s1, s2 ); } static int slist_comp_step( slist *a, slist_index n1, slist_index n2 ) { return slist_comp( (const void*) &(a->strs[n1]), (const void*) &(a->strs[n2]) ); } static str * slist_set_cleanup( slist *a, slist_index n ) { if ( str_memerr( &(a->strs[n]) ) ) return NULL; if ( a->sorted ) { if ( n>0 && slist_comp_step( a, n-1, n )>0 ) a->sorted = 0; } if ( a->sorted ) { if ( nn-1 && slist_comp_step( a, n, n+1 )>0 ) a->sorted = 0; } return &(a->strs[n]); } str * slist_setc( slist *a, slist_index n, const char *s ) { assert( a ); assert( s ); if ( !slist_valid_num( a, n ) ) return NULL; str_strcpyc( &(a->strs[n]), s ); return slist_set_cleanup( a, n ); } str * slist_set( slist *a, slist_index n, str *s ) { assert( s ); return slist_setc( a, n, str_cstr( s ) ); } /* * return pointer to str 'n' */ str * slist_str( slist *a, slist_index n ) { assert( a ); if ( !slist_valid_num( a, n ) ) return NULL; else return &(a->strs[n]); } /* * return pointer to C string 'n' * * So long as the index is a valid number ensure * that a pointer is returned even if the newstr isn't * allocated. Only return NULL if the index * is invalid. Thus we can convert loops like: * * for ( i=0; in; ++i ) { * p = slist_cstr( a, i ); * if ( p==NULL ) continue; // empty string * ... * } * * to * * i = 0; * while ( ( p = slist_cstr( a, i ) ) ) { * ... * i++; * } * */ char * slist_cstr( slist *a, slist_index n ) { static char empty[] = ""; char *p; assert( a ); if ( !slist_valid_num( a, n ) ) return NULL; p = str_cstr( &(a->strs[n]) ); if ( p ) return p; else return empty; } static inline int slist_alloc( slist *a, slist_index alloc ) { slist_index i; a->strs = ( str* ) malloc( sizeof( str ) * alloc ); if ( !(a->strs) ) return SLIST_ERR_MEMERR; a->max = alloc; a->n = 0; for ( i=0; istrs[i]) ); return SLIST_OK; } static inline int slist_realloc( slist *a, slist_index alloc ) { slist_index i; str *more; more = ( str* ) realloc( a->strs, sizeof( str ) * alloc ); if ( !more ) return SLIST_ERR_MEMERR; a->strs = more; for ( i=a->max; istrs[i]) ); a->max = alloc; return SLIST_OK; } #define SLIST_EXACT_SIZE (0) #define SLIST_DOUBLE_SIZE (1) static int slist_ensure_space( slist *a, slist_index n, int mode ) { int status = SLIST_OK; int alloc = n; if ( a->max==0 ) { if ( mode == SLIST_DOUBLE_SIZE && alloc < SLIST_MINALLOC ) alloc = SLIST_MINALLOC; status = slist_alloc( a, alloc ); } else if ( a->max < n ) { if ( mode == SLIST_DOUBLE_SIZE && alloc < a->max * 2 ) alloc = a->max * 2; status = slist_realloc( a, alloc ); } return status; } int slist_addvp( slist *a, int mode, void *vp ) { str *s = NULL; int status; status = slist_ensure_space( a, a->n+1, SLIST_DOUBLE_SIZE ); if ( status==SLIST_OK ) { s = &( a->strs[a->n] ); if ( mode==SLIST_CHR ) str_strcpyc( s, (const char*) vp ); else str_strcpy( s, (str*) vp ); if ( str_memerr( s ) ) return SLIST_ERR_MEMERR; a->n++; if ( a->sorted && a->n > 1 ) { if ( slist_comp_step( a, a->n-2, a->n-1 ) > 0 ) a->sorted = 0; } } return SLIST_OK; } int slist_addc( slist *a, const char *s ) { return slist_addvp( a, SLIST_CHR, (void*)s ); } int slist_add( slist *a, str *s ) { return slist_addvp( a, SLIST_STR, (void*)s ); } int slist_addvp_ret( slist *a, int mode, void *vp, int retok, int reterr ) { int status = slist_addvp( a, mode, vp ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_addc_ret( slist *a, const char *value, int retok, int reterr ) { int status = slist_addc( a, value ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_add_ret( slist *a, str *value, int retok, int reterr ) { int status = slist_add( a, value ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_addvp_unique( slist *a, int mode, void *vp ) { int n; if ( mode==SLIST_CHR ) n = slist_findc( a, (const char*) vp ); else n = slist_find( a, (str*) vp ); if ( slist_wasfound( a, n ) ) return SLIST_OK; else return slist_addvp( a, mode, vp ); } int slist_addc_unique( slist *a, const char *s ) { return slist_addvp_unique( a, SLIST_CHR, (void*)s ); } int slist_add_unique( slist *a, str *s ) { return slist_addvp_unique( a, SLIST_STR, (void*)s ); } int slist_addvp_unique_ret( slist *a, int mode, void *vp, int retok, int reterr ) { int status = slist_addvp_unique( a, mode, vp ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_addc_unique_ret( slist *a, const char *s, int retok, int reterr ) { int status = slist_addc_unique( a, s ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_add_unique_ret( slist *a, str *s, int retok, int reterr ) { int status = slist_add_unique( a, s ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_addvp_all( slist *a, int mode, ... ) { int status = SLIST_OK; va_list ap; void *v; va_start( ap, mode ); do { if ( mode==SLIST_CHR ) v = va_arg( ap, char * ); else v = va_arg( ap, str * ); if ( v ) { status = slist_addvp( a, mode, v ); if ( status!=SLIST_OK ) goto out; } } while ( v ); out: va_end( ap ); return status; } int slist_add_all( slist *a, ... ) { int status = SLIST_OK; va_list ap; str *v; va_start( ap, a ); do { v = va_arg( ap, str * ); if ( v ) { status = slist_addvp( a, SLIST_STR, (void*)v ); if ( status!=SLIST_OK ) goto out; } } while ( v ); out: va_end( ap ); return status; } int slist_addc_all( slist *a, ... ) { int status = SLIST_OK; const char *v; va_list ap; va_start( ap, a ); do { v = va_arg( ap, const char * ); if ( v ) { status = slist_addvp( a, SLIST_CHR, (void*)v ); if ( status!=SLIST_OK ) goto out; } } while ( v ); out: va_end( ap ); return status; } int slist_append( slist *a, slist *toadd ) { int i, status; assert( a ); assert( toadd ); status = slist_ensure_space( a, a->n + toadd->n, SLIST_EXACT_SIZE ); if ( status == SLIST_OK ) { for ( i=0; in; ++i ) { str_strcpy( &(a->strs[a->n+i]), &(toadd->strs[i]) ); if ( str_memerr( &(a->strs[a->n+i]) ) ) return SLIST_ERR_MEMERR; } if ( a->sorted && toadd->sorted == 0 ) a->sorted = 0; if ( a->sorted && a->n > 0 ) { if ( slist_comp_step( a, a->n-1, a->n ) > 0 ) { a->sorted = 0; } } a->n += toadd->n; } return status; } int slist_append_unique( slist *a, slist *toadd ) { int i, status; assert( a ); assert( toadd ); for ( i=0; in; ++i ) { status = slist_add_unique( a, &(toadd->strs[i]) ); if ( status!=SLIST_OK ) return status; } return SLIST_OK; } int slist_append_ret( slist *a, slist *toadd, int retok, int reterr ) { int status; status = slist_append( a, toadd ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_append_unique_ret( slist *a, slist *toadd, int retok, int reterr ) { int status; status = slist_append_unique( a, toadd ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_remove( slist *a, slist_index n ) { int i; assert( a ); if ( !slist_valid_num( a, n ) ) return SLIST_ERR_BADPARAM; for ( i=n+1; in; ++i ) { str_strcpy( &(a->strs[i-1]), &(a->strs[i]) ); if ( str_memerr( &(a->strs[i-1]) ) ) return SLIST_ERR_MEMERR; } a->n--; return SLIST_OK; } void slist_sort( slist *a ) { qsort( a->strs, a->n, sizeof( str ), slist_comp ); a->sorted = 1; } void slist_revsort( slist *a ) { qsort( a->strs, a->n, sizeof( str ), slist_revcomp ); a->sorted = 0; } static slist_index slist_find_sorted( slist *a, const char *searchstr ) { slist_index min, max, mid; str s, *cs; int comp; assert( a ); assert( searchstr ); str_initstrc( &s, searchstr ); min = 0; max = a->n - 1; while ( min <= max ) { mid = ( min + max ) / 2; cs = slist_str( a, mid ); comp = slist_comp( (void*)cs, (void*) (&s) ); if ( comp==0 ) { str_free( &s ); return mid; } else if ( comp > 0 ) max = mid - 1; else if ( comp < 0 ) min = mid + 1; } str_free( &s ); return -1; } static slist_index slist_find_simple( slist *a, const char *searchstr, int nocase ) { slist_index i; assert( a ); assert( searchstr ); if ( nocase ) { for ( i=0; in; ++i ) if ( !str_strcasecmpc( &(a->strs[i]), searchstr ) ) return i; } else { for ( i=0; in; ++i ) if ( !str_strcmpc( &(a->strs[i]), searchstr ) ) return i; } return -1; } slist_index slist_findc( slist *a, const char *searchstr ) { assert( a ); if ( a->n==0 ) return -1; if ( a->sorted ) return slist_find_sorted( a, searchstr ); else return slist_find_simple( a, searchstr, 0 ); } slist_index slist_find( slist *a, str *searchstr ) { if ( searchstr->len==0 ) return -1; return slist_findc( a, str_cstr( searchstr ) ); } slist_index slist_findnocasec( slist *a, const char *searchstr ) { assert( a ); return slist_find_simple( a, searchstr, 1 ); } slist_index slist_findnocase( slist *a, str *searchstr ) { if ( searchstr->len==0 ) return -1; return slist_findnocasec( a, str_cstr( searchstr ) ); } int slist_wasfound( slist *a, slist_index n ) { return ( n!=-1 ); } int slist_wasnotfound( slist *a, slist_index n ) { return ( n==-1 ); } int slist_fillfp( slist *a, FILE *fp, unsigned char skip_blank_lines ) { int status, ret = SLIST_OK; str line; assert( a ); assert( fp ); slist_empty( a ); str_init( &line ); while ( str_fgetline( &line, fp ) ) { if ( skip_blank_lines && line.len==0 ) continue; status = slist_add( a, &line ); if ( status!=SLIST_OK ) { ret = SLIST_ERR_MEMERR; goto out; } } out: str_free( &line ); return ret; } int slist_fill( slist *a, const char *filename, unsigned char skip_blank_lines ) { FILE *fp; int ret; fp = fopen( filename, "r" ); if ( !fp ) return SLIST_ERR_CANTOPEN; ret = slist_fillfp( a, fp, skip_blank_lines ); fclose( fp ); return ret; } int slist_copy( slist *to, slist *from ) { slist_index i; int status; assert( to ); assert( from ); slist_free( to ); if ( from->n==0 ) return SLIST_OK; status = slist_ensure_space( to, from->n, SLIST_EXACT_SIZE ); if ( status == SLIST_OK ) { to->sorted = from->sorted; to->n = from->n; for ( i=0; in; i++ ) { str_strcpy( &(to->strs[i]), &(from->strs[i]) ); if ( str_memerr( &(to->strs[i]) ) ) return SLIST_ERR_MEMERR; } } return SLIST_OK; } int slist_copy_ret( slist *to, slist *from, int retok, int reterr ) { int status = slist_copy( to, from ); if ( status==SLIST_OK ) return retok; else return reterr; } slist * slist_dup( slist *from ) { int status; slist *to; to = slist_new(); if ( to ) { status = slist_copy( to, from ); if ( status!=SLIST_OK ) { slist_delete( to ); to = NULL; } } return to; } unsigned long slist_get_maxlen( slist *a ) { unsigned long max = 0; slist_index i; str *s; assert( a ); for ( i=0; in; ++i ) { s = slist_str( a, i ); if ( s->len > max ) max = s->len; } return max; } void slist_dump( slist *a, FILE *fp, int newline ) { slist_index i; assert( a ); assert( fp ); if ( newline ) { for ( i=0; in; ++i ) fprintf( fp, "%s\n", slist_cstr( a, i ) ); } else { for ( i=0; in; ++i ) fprintf( fp, "%s", slist_cstr( a, i ) ); } } int slist_match_entry( slist *a, int n, const char *s ) { assert( a ); if ( !slist_valid_num( a, n ) ) return 0; if ( str_strcmpc( &(a->strs[n]), s ) ) return 0; return 1; } void slist_trimend( slist *a, int n ) { slist_index i; assert( a ); if ( a->n - n < 1 ) { slist_empty( a ); } else { for ( i=a->n -n; in; ++i ) { str_empty( &(a->strs[i]) ); } a->n -= n; } } int slist_tokenizec( slist *tokens, char *p, const char *delim, int merge_delim ) { int status, ret = SLIST_OK; char *q; str s; assert( tokens ); slist_empty( tokens ); str_init( &s ); while ( p && *p ) { q = p; while ( *q && !strchr( delim, *q ) ) q++; str_segcpy( &s, p, q ); if ( str_memerr( &s ) ) { ret = SLIST_ERR_MEMERR; goto out; } if ( s.len ) { status = slist_addvp( tokens, SLIST_STR, (void*) &s ); if ( status!=SLIST_OK ) { ret = SLIST_ERR_MEMERR; goto out; } } else if ( !merge_delim ) { status = slist_addvp( tokens, SLIST_CHR, (void*) "" ); if ( status!=SLIST_OK ) { ret = SLIST_ERR_MEMERR; goto out; } } p = q; if ( *p ) p++; } out: str_free( &s ); return ret; } int slist_tokenize( slist *tokens, str *in, const char *delim, int merge_delim ) { return slist_tokenizec( tokens, str_cstr( in ), delim, merge_delim ); } void slists_init( slist *a, ... ) { slist *a2; va_list ap; slist_init( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_init( a2 ); } while ( a2 ); va_end( ap ); } void slists_free( slist *a, ... ) { slist *a2; va_list ap; slist_free( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_free( a2 ); } while ( a2 ); va_end( ap ); } void slists_empty( slist *a, ... ) { slist *a2; va_list ap; slist_empty( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_empty( a2 ); } while ( a2 ); va_end( ap ); } hs-bibutils-6.10.0.0/bibutils/slist.c0000755000000000000000000003705307346545000015504 0ustar0000000000000000/* * slist.c * * version: 2019-01-14 * * Copyright (c) Chris Putnam 2004-2020 * * Source code released under the GPL version 2 * * Implements a simple managed array of strs. * */ #include "slist.h" /* Do not use asserts in VPLIST_NOASSERT defined */ #ifdef VPLIST_NOASSERT #define NDEBUG #endif #include #define SLIST_MINALLOC (20) #define SLIST_EXACT_SIZE (0) #define SLIST_DOUBLE_SIZE (1) /* * returns 1 if n is valid string in slist */ static inline int slist_valid_num( slist *a, slist_index n ) { if ( n < 0 || n >= a->n ) return 0; return 1; } void slist_init( slist *a ) { assert( a ); a->strs = NULL; a->max = 0; a->n = 0; a->sorted = 1; } int slist_init_values( slist *a, ... ) { int status = SLIST_OK; va_list ap; str *s; slist_init( a ); va_start( ap, a ); do { s = va_arg( ap, str * ); if ( s ) { status = slist_add( a, s ); if ( status!=SLIST_OK ) goto out; } } while ( s ); out: va_end( ap ); return status; } int slist_init_valuesc( slist *a, ... ) { int status = SLIST_OK; va_list ap; char *s; slist_init( a ); va_start( ap, a ); do { s = va_arg( ap, char * ); if ( s ) { status = slist_addc( a, s ); if ( status!=SLIST_OK ) goto out; } } while ( s ); out: va_end( ap ); return status; } void slist_empty( slist *a ) { slist_index i; assert( a ); for ( i=0; imax; ++i ) str_empty( &(a->strs[i]) ); a->n = 0; a->sorted = 1; } void slist_free( slist *a ) { slist_index i; assert( a ); for ( i=0; imax; ++i ) str_free( &(a->strs[i]) ); free( a->strs ); slist_init( a ); } slist * slist_new( void ) { slist *a; a = ( slist * ) malloc( sizeof ( slist ) ); if ( a ) slist_init( a ); return a; } void slist_delete( slist *a ) { assert( a ); slist_free( a ); free( a ); } void slist_deletev( void *v ) { slist_delete( (slist*) v ); } void slist_swap( slist *a, slist_index n1, slist_index n2 ) { assert( a ); if ( slist_valid_num( a, n1 ) && slist_valid_num( a, n2 ) ) str_swapstrings( &(a->strs[n1]), &(a->strs[n2]) ); } static int slist_revcomp( const void *v1, const void *v2 ) { str *s1 = ( str *) v1; str *s2 = ( str *) v2; int n; if ( !s1->len && !s2->len ) return 0; else if ( !s1->len ) return 1; else if ( !s2->len ) return -1; n = str_strcmp( s1, s2 ); if ( n==0 ) return 0; else if ( n > 0 ) return -1; else return 1; } static int slist_comp( const void *v1, const void *v2 ) { str *s1 = ( str *) v1; str *s2 = ( str *) v2; if ( !s1->len && !s2->len ) return 0; else if ( !s1->len ) return -1; else if ( !s2->len ) return 1; else return str_strcmp( s1, s2 ); } static int slist_comp_step( slist *a, slist_index n1, slist_index n2 ) { return slist_comp( (const void*) &(a->strs[n1]), (const void*) &(a->strs[n2]) ); } static str * slist_set_cleanup( slist *a, slist_index n ) { if ( str_memerr( &(a->strs[n]) ) ) return NULL; if ( a->sorted ) { if ( n>0 && slist_comp_step( a, n-1, n )>0 ) a->sorted = 0; } if ( a->sorted ) { if ( nn-1 && slist_comp_step( a, n, n+1 )>0 ) a->sorted = 0; } return &(a->strs[n]); } str * slist_setc( slist *a, slist_index n, const char *s ) { assert( a ); assert( s ); if ( !slist_valid_num( a, n ) ) return NULL; str_strcpyc( &(a->strs[n]), s ); return slist_set_cleanup( a, n ); } str * slist_set( slist *a, slist_index n, str *s ) { assert( s ); return slist_setc( a, n, str_cstr( s ) ); } /* * return pointer to str 'n' */ str * slist_str( slist *a, slist_index n ) { assert( a ); if ( !slist_valid_num( a, n ) ) return NULL; else return &(a->strs[n]); } /* * return pointer to C string 'n' * * So long as the index is a valid number ensure * that a pointer is returned even if the newstr isn't * allocated. Only return NULL if the index * is invalid. Thus we can convert loops like: * * for ( i=0; in; ++i ) { * p = slist_cstr( a, i ); * if ( p==NULL ) continue; // empty string * ... * } * * to * * i = 0; * while ( ( p = slist_cstr( a, i ) ) ) { * ... * i++; * } * */ char * slist_cstr( slist *a, slist_index n ) { static char empty[] = ""; char *p; assert( a ); if ( !slist_valid_num( a, n ) ) return NULL; p = str_cstr( &(a->strs[n]) ); if ( p ) return p; else return empty; } static inline int slist_alloc( slist *a, slist_index alloc ) { slist_index i; a->strs = ( str* ) malloc( sizeof( str ) * alloc ); if ( !(a->strs) ) return SLIST_ERR_MEMERR; a->max = alloc; a->n = 0; for ( i=0; istrs[i]) ); return SLIST_OK; } static inline int slist_realloc( slist *a, slist_index alloc ) { slist_index i; str *more; more = ( str* ) realloc( a->strs, sizeof( str ) * alloc ); if ( !more ) return SLIST_ERR_MEMERR; a->strs = more; for ( i=a->max; istrs[i]) ); a->max = alloc; return SLIST_OK; } #define SLIST_EXACT_SIZE (0) #define SLIST_DOUBLE_SIZE (1) static int slist_ensure_space( slist *a, slist_index n, int mode ) { int status = SLIST_OK; int alloc = n; if ( a->max==0 ) { if ( mode == SLIST_DOUBLE_SIZE && alloc < SLIST_MINALLOC ) alloc = SLIST_MINALLOC; status = slist_alloc( a, alloc ); } else if ( a->max < n ) { if ( mode == SLIST_DOUBLE_SIZE && alloc < a->max * 2 ) alloc = a->max * 2; status = slist_realloc( a, alloc ); } return status; } int slist_addvp( slist *a, int mode, void *vp ) { str *s = NULL; int status; status = slist_ensure_space( a, a->n+1, SLIST_DOUBLE_SIZE ); if ( status==SLIST_OK ) { s = &( a->strs[a->n] ); if ( mode==SLIST_CHR ) str_strcpyc( s, (const char*) vp ); else str_strcpy( s, (str*) vp ); if ( str_memerr( s ) ) return SLIST_ERR_MEMERR; a->n++; if ( a->sorted && a->n > 1 ) { if ( slist_comp_step( a, a->n-2, a->n-1 ) > 0 ) a->sorted = 0; } } return SLIST_OK; } int slist_addc( slist *a, const char *s ) { return slist_addvp( a, SLIST_CHR, (void*)s ); } int slist_add( slist *a, str *s ) { return slist_addvp( a, SLIST_STR, (void*)s ); } int slist_addvp_ret( slist *a, int mode, void *vp, int retok, int reterr ) { int status = slist_addvp( a, mode, vp ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_addc_ret( slist *a, const char *value, int retok, int reterr ) { int status = slist_addc( a, value ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_add_ret( slist *a, str *value, int retok, int reterr ) { int status = slist_add( a, value ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_addvp_unique( slist *a, int mode, void *vp ) { int n; if ( mode==SLIST_CHR ) n = slist_findc( a, (const char*) vp ); else n = slist_find( a, (str*) vp ); if ( slist_wasfound( a, n ) ) return SLIST_OK; else return slist_addvp( a, mode, vp ); } int slist_addc_unique( slist *a, const char *s ) { return slist_addvp_unique( a, SLIST_CHR, (void*)s ); } int slist_add_unique( slist *a, str *s ) { return slist_addvp_unique( a, SLIST_STR, (void*)s ); } int slist_addvp_unique_ret( slist *a, int mode, void *vp, int retok, int reterr ) { int status = slist_addvp_unique( a, mode, vp ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_addc_unique_ret( slist *a, const char *s, int retok, int reterr ) { int status = slist_addc_unique( a, s ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_add_unique_ret( slist *a, str *s, int retok, int reterr ) { int status = slist_add_unique( a, s ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_addvp_all( slist *a, int mode, ... ) { int status = SLIST_OK; va_list ap; void *v; va_start( ap, mode ); do { if ( mode==SLIST_CHR ) v = va_arg( ap, char * ); else v = va_arg( ap, str * ); if ( v ) { status = slist_addvp( a, mode, v ); if ( status!=SLIST_OK ) goto out; } } while ( v ); out: va_end( ap ); return status; } int slist_add_all( slist *a, ... ) { int status = SLIST_OK; va_list ap; str *v; va_start( ap, a ); do { v = va_arg( ap, str * ); if ( v ) { status = slist_addvp( a, SLIST_STR, (void*)v ); if ( status!=SLIST_OK ) goto out; } } while ( v ); out: va_end( ap ); return status; } int slist_addc_all( slist *a, ... ) { int status = SLIST_OK; const char *v; va_list ap; va_start( ap, a ); do { v = va_arg( ap, const char * ); if ( v ) { status = slist_addvp( a, SLIST_CHR, (void*)v ); if ( status!=SLIST_OK ) goto out; } } while ( v ); out: va_end( ap ); return status; } int slist_append( slist *a, slist *toadd ) { int i, status; assert( a ); assert( toadd ); status = slist_ensure_space( a, a->n + toadd->n, SLIST_EXACT_SIZE ); if ( status == SLIST_OK ) { for ( i=0; in; ++i ) { str_strcpy( &(a->strs[a->n+i]), &(toadd->strs[i]) ); if ( str_memerr( &(a->strs[a->n+i]) ) ) return SLIST_ERR_MEMERR; } if ( a->sorted && toadd->sorted == 0 ) a->sorted = 0; if ( a->sorted && a->n > 0 ) { if ( slist_comp_step( a, a->n-1, a->n ) > 0 ) { a->sorted = 0; } } a->n += toadd->n; } return status; } int slist_append_unique( slist *a, slist *toadd ) { int i, status; assert( a ); assert( toadd ); for ( i=0; in; ++i ) { status = slist_add_unique( a, &(toadd->strs[i]) ); if ( status!=SLIST_OK ) return status; } return SLIST_OK; } int slist_append_ret( slist *a, slist *toadd, int retok, int reterr ) { int status; status = slist_append( a, toadd ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_append_unique_ret( slist *a, slist *toadd, int retok, int reterr ) { int status; status = slist_append_unique( a, toadd ); if ( status==SLIST_OK ) return retok; else return reterr; } int slist_remove( slist *a, slist_index n ) { int i; assert( a ); if ( !slist_valid_num( a, n ) ) return SLIST_ERR_BADPARAM; for ( i=n+1; in; ++i ) { str_strcpy( &(a->strs[i-1]), &(a->strs[i]) ); if ( str_memerr( &(a->strs[i-1]) ) ) return SLIST_ERR_MEMERR; } a->n--; return SLIST_OK; } void slist_sort( slist *a ) { qsort( a->strs, a->n, sizeof( str ), slist_comp ); a->sorted = 1; } void slist_revsort( slist *a ) { qsort( a->strs, a->n, sizeof( str ), slist_revcomp ); a->sorted = 0; } static slist_index slist_find_sorted( slist *a, const char *searchstr ) { slist_index min, max, mid; str s, *cs; int comp; assert( a ); assert( searchstr ); str_initstrc( &s, searchstr ); min = 0; max = a->n - 1; while ( min <= max ) { mid = ( min + max ) / 2; cs = slist_str( a, mid ); comp = slist_comp( (void*)cs, (void*) (&s) ); if ( comp==0 ) { str_free( &s ); return mid; } else if ( comp > 0 ) max = mid - 1; else if ( comp < 0 ) min = mid + 1; } str_free( &s ); return -1; } static slist_index slist_find_simple( slist *a, const char *searchstr, int nocase ) { slist_index i; assert( a ); assert( searchstr ); if ( nocase ) { for ( i=0; in; ++i ) if ( !str_strcasecmpc( &(a->strs[i]), searchstr ) ) return i; } else { for ( i=0; in; ++i ) if ( !str_strcmpc( &(a->strs[i]), searchstr ) ) return i; } return -1; } slist_index slist_findc( slist *a, const char *searchstr ) { assert( a ); if ( a->n==0 ) return -1; if ( a->sorted ) return slist_find_sorted( a, searchstr ); else return slist_find_simple( a, searchstr, 0 ); } slist_index slist_find( slist *a, str *searchstr ) { if ( searchstr->len==0 ) return -1; return slist_findc( a, str_cstr( searchstr ) ); } slist_index slist_findnocasec( slist *a, const char *searchstr ) { assert( a ); return slist_find_simple( a, searchstr, 1 ); } slist_index slist_findnocase( slist *a, str *searchstr ) { if ( searchstr->len==0 ) return -1; return slist_findnocasec( a, str_cstr( searchstr ) ); } int slist_wasfound( slist *a, slist_index n ) { return ( n!=-1 ); } int slist_wasnotfound( slist *a, slist_index n ) { return ( n==-1 ); } int slist_fillfp( slist *a, FILE *fp, unsigned char skip_blank_lines ) { int status, ret = SLIST_OK; str line; assert( a ); assert( fp ); slist_empty( a ); str_init( &line ); while ( str_fgetline( &line, fp ) ) { if ( skip_blank_lines && line.len==0 ) continue; status = slist_add( a, &line ); if ( status!=SLIST_OK ) { ret = SLIST_ERR_MEMERR; goto out; } } out: str_free( &line ); return ret; } int slist_fill( slist *a, const char *filename, unsigned char skip_blank_lines ) { FILE *fp; int ret; fp = fopen( filename, "r" ); if ( !fp ) return SLIST_ERR_CANTOPEN; ret = slist_fillfp( a, fp, skip_blank_lines ); fclose( fp ); return ret; } int slist_copy( slist *to, slist *from ) { slist_index i; int status; assert( to ); assert( from ); slist_free( to ); if ( from->n==0 ) return SLIST_OK; status = slist_ensure_space( to, from->n, SLIST_EXACT_SIZE ); if ( status == SLIST_OK ) { to->sorted = from->sorted; to->n = from->n; for ( i=0; in; i++ ) { str_strcpy( &(to->strs[i]), &(from->strs[i]) ); if ( str_memerr( &(to->strs[i]) ) ) return SLIST_ERR_MEMERR; } } return SLIST_OK; } int slist_copy_ret( slist *to, slist *from, int retok, int reterr ) { int status = slist_copy( to, from ); if ( status==SLIST_OK ) return retok; else return reterr; } slist * slist_dup( slist *from ) { int status; slist *to; to = slist_new(); if ( to ) { status = slist_copy( to, from ); if ( status!=SLIST_OK ) { slist_delete( to ); to = NULL; } } return to; } unsigned long slist_get_maxlen( slist *a ) { unsigned long max = 0; slist_index i; str *s; assert( a ); for ( i=0; in; ++i ) { s = slist_str( a, i ); if ( s->len > max ) max = s->len; } return max; } void slist_dump( slist *a, FILE *fp, int newline ) { slist_index i; assert( a ); assert( fp ); if ( newline ) { for ( i=0; in; ++i ) fprintf( fp, "%s\n", slist_cstr( a, i ) ); } else { for ( i=0; in; ++i ) fprintf( fp, "%s", slist_cstr( a, i ) ); } } int slist_match_entry( slist *a, int n, const char *s ) { assert( a ); if ( !slist_valid_num( a, n ) ) return 0; if ( str_strcmpc( &(a->strs[n]), s ) ) return 0; return 1; } void slist_trimend( slist *a, int n ) { slist_index i; assert( a ); if ( a->n - n < 1 ) { slist_empty( a ); } else { for ( i=a->n -n; in; ++i ) { str_empty( &(a->strs[i]) ); } a->n -= n; } } int slist_tokenizec( slist *tokens, char *p, const char *delim, int merge_delim ) { int status, ret = SLIST_OK; char *q; str s; assert( tokens ); slist_empty( tokens ); str_init( &s ); while ( p && *p ) { q = p; while ( *q && !strchr( delim, *q ) ) q++; str_segcpy( &s, p, q ); if ( str_memerr( &s ) ) { ret = SLIST_ERR_MEMERR; goto out; } if ( s.len ) { status = slist_addvp( tokens, SLIST_STR, (void*) &s ); if ( status!=SLIST_OK ) { ret = SLIST_ERR_MEMERR; goto out; } } else if ( !merge_delim ) { status = slist_addvp( tokens, SLIST_CHR, (void*) "" ); if ( status!=SLIST_OK ) { ret = SLIST_ERR_MEMERR; goto out; } } p = q; if ( *p ) p++; } out: str_free( &s ); return ret; } int slist_tokenize( slist *tokens, str *in, const char *delim, int merge_delim ) { return slist_tokenizec( tokens, str_cstr( in ), delim, merge_delim ); } void slists_init( slist *a, ... ) { slist *a2; va_list ap; slist_init( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_init( a2 ); } while ( a2 ); va_end( ap ); } void slists_free( slist *a, ... ) { slist *a2; va_list ap; slist_free( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_free( a2 ); } while ( a2 ); va_end( ap ); } void slists_empty( slist *a, ... ) { slist *a2; va_list ap; slist_empty( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_empty( a2 ); } while ( a2 ); va_end( ap ); } hs-bibutils-6.10.0.0/bibutils/slist.h0000755000000000000000000000677007346545000015513 0ustar0000000000000000/* * slist.h * * version: 2019-01-14 * * Copyright (c) Chris Putnam 2004-2019 * * Source code released under the GPL version 2 * */ #ifndef SLIST_H #define SLIST_H #include #include #include #include #include "str.h" #define SLIST_OK (0) #define SLIST_ERR_MEMERR (-1) #define SLIST_ERR_CANTOPEN (-2) #define SLIST_ERR_BADPARAM (-3) #define SLIST_CHR (0) #define SLIST_STR (1) typedef int slist_index; typedef struct slist { slist_index n, max; int sorted; str *strs; } slist; void slists_init( slist *a, ... ); void slists_free( slist *a, ... ); void slists_empty( slist *a, ... ); void slist_init( slist *a ); int slist_init_values ( slist *a, ... ); int slist_init_valuesc( slist *a, ... ); void slist_free( slist *a ); void slist_empty( slist *a ); slist * slist_new( void ); void slist_delete( slist * ); void slist_deletev( void *v ); slist * slist_dup( slist *a ); int slist_copy( slist *to, slist *from ); int slist_copy_ret( slist *to, slist *from, int retok, int reterr ); void slist_swap( slist *a, slist_index n1, slist_index n2 ); int slist_addvp( slist *a, int mode, void *vp ); int slist_addc( slist *a, const char *value ); int slist_add( slist *a, str *value ); int slist_addvp_ret( slist *a, int mode, void *vp, int retok, int reterr ); int slist_addc_ret( slist *a, const char *value, int retok, int reterr ); int slist_add_ret( slist *a, str *value, int retok, int reterr ); int slist_addvp_all( slist *a, int mode, ... ); int slist_addc_all( slist *a, ... ); int slist_add_all( slist *a, ... ); int slist_addvp_unique( slist *a, int mode, void *vp ); int slist_addc_unique( slist *a, const char *value ); int slist_add_unique( slist *a, str *value ); int slist_addvp_unique_ret( slist *a, int mode, void *vp, int retok, int reterr ); int slist_addc_unique_ret( slist *a, const char *value, int retok, int reterr ); int slist_add_unique_ret( slist *a, str *value, int retok, int reterr ); int slist_append( slist *a, slist *toadd ); int slist_append_ret( slist *a, slist *toadd, int retok, int reterr ); int slist_append_unique( slist *a, slist *toadd ); int slist_append_unique_ret( slist *a, slist *toadd, int retok, int reterr ); int slist_remove( slist *a, slist_index n ); str * slist_str( slist *a, slist_index n ); char * slist_cstr( slist *a, slist_index n ); str * slist_set( slist *a, slist_index n, str *s ); str * slist_setc( slist *a, slist_index n, const char *s ); void slist_sort( slist *a ); void slist_revsort( slist *a ); int slist_find( slist *a, str *searchstr ); int slist_findc( slist *a, const char *searchstr ); int slist_findnocase( slist *a, str *searchstr ); int slist_findnocasec( slist *a, const char *searchstr ); int slist_wasfound( slist *a, slist_index n ); int slist_wasnotfound( slist *a, slist_index n ); int slist_match_entry( slist *a, slist_index n, const char *s ); void slist_trimend( slist *a, slist_index n ); unsigned long slist_get_maxlen( slist *a ); void slist_dump( slist *a, FILE *fp, int newline ); int slist_fill( slist *a, const char *filename, unsigned char skip_blank_lines ); int slist_fillfp( slist *a, FILE *fp, unsigned char skip_blank_lines ); int slist_tokenize( slist *tokens, str *in, const char *delim, int merge_delim ); int slist_tokenizec( slist *tokens, char *p, const char *delim, int merge_delim ); #endif hs-bibutils-6.10.0.0/bibutils/str.c0000644000000000000000000004715707346545000015161 0ustar0000000000000000/* * str.c * * Version: 2018-09-21 * * Copyright (c) Chris Putnam 1999-2020 * * Source code released under the GPL version 2 * * * routines for dynamically allocated strings * */ #include #include #include #include #include #include #include "is_ws.h" #include "str.h" /* Do not use asserts in STR_NOASSERT defined */ #ifdef STR_NOASSERT #define NDEBUG #endif #include #define str_initlen (64) #ifndef STR_SMALL #define str_clear_status( s ) s->status = STR_OK; #define handle_memerr( s, f ) s->status = STR_MEMERR; #define return_if_memerr( s ) \ { \ if ( s->status != STR_OK ) return; \ } #define return_zero_if_memerr( s ) \ { \ if ( s->status != STR_OK ) return 0; \ } #define return_after_delim_if_memerr( s, p, delim, finalstep ) \ { \ if ( s->status != STR_OK ) { \ while ( p && *p && !strchr( delim, *p ) ) p++; \ if ( p && *p && finalstep ) p++; \ return p; \ } \ } #else #define str_clear_status( s ) {} #define handle_memerr( s, f ) \ { \ fprintf( stderr,"Error. Cannot allocate memory in %s.\n", f ); \ exit( EXIT_FAILURE ); \ } #define return_if_memerr( s ) {} #define return_zero_if_memerr( s ) {} #define return_after_delim_if_memerr( s, p, delim, finalstep ) {} #endif /* Clear memory in resize/free if STR_PARANOIA defined */ #ifndef STR_PARANOIA static void str_realloc( str *s, unsigned long minsize ) { unsigned long size; char *newptr; assert( s ); return_if_memerr( s ); size = 2 * s->dim; if (size < minsize) size = minsize; newptr = (char *) realloc( s->data, sizeof( *(s->data) )*size ); if ( !newptr ) handle_memerr( s, __FUNCTION__ ); s->data = newptr; s->dim = size; } /* define as a no-op */ #define str_nullify( s ) #else static void str_realloc( str *s, unsigned long minsize ) { unsigned long size; char *newptr; assert( s ); return_if_memerr( s ); size = 2 * s->dim; if ( size < minsize ) size = minsize; newptr = (char *) malloc( sizeof( *(s->data) ) * size ); if ( !newptr ) handle_memerr( s, __FUNCTION__ ); if ( s->data ) { str_nullify( s ); free( s->data ); } s->data = newptr; s->dim = size; } static inline void str_nullify( str *s ) { memset( s->data, 0, s->dim ); } #endif void str_init( str *s ) { assert( s ); s->dim = 0; s->len = 0; s->data = NULL; str_clear_status( s ); } void str_initstr( str *s, str *from ) { assert( s ); assert( from ); str_init( s ); str_strcpy( s, from ); } void str_initstrc( str *s, const char *initstr ) { assert( s ); assert( initstr ); str_init( s ); str_strcpyc( s, initstr ); } void str_initstrsc( str *s, ... ) { const char *c; va_list ap; str_init( s ); va_start( ap, s ); do { c = va_arg( ap, const char * ); if ( c ) str_strcatc( s, c ); } while ( c ); va_end( ap ); } void strs_init( str *s, ... ) { str *s2; va_list ap; str_init( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_init( s2 ); } while ( s2 ); va_end( ap ); } int str_memerr( str *s ) { #ifndef STR_SMALL return s->status == STR_MEMERR; #else return 0; #endif } void str_mergestrs( str *s, ... ) { va_list ap; const char *cp; str_clear_status( s ); str_empty( s ); va_start( ap, s ); do { cp = va_arg( ap, const char * ); if ( cp ) str_strcatc( s, cp ); } while ( cp ); va_end( ap ); } static void str_initalloc( str *s, unsigned long minsize ) { unsigned long size = str_initlen; assert( s ); if ( minsize > str_initlen ) size = minsize; s->data = (char *) malloc( sizeof( *(s->data) ) * size ); if ( !s->data ) { fprintf(stderr,"Error. Cannot allocate memory in str_initalloc, requested %lu characters.\n", size ); exit( EXIT_FAILURE ); } s->data[0]='\0'; s->dim=size; s->len=0; str_clear_status( s ); } str * str_new( void ) { str *s = (str *) malloc( sizeof( *s ) ); if ( s ) str_initalloc( s, str_initlen ); return s; } void str_free( str *s ) { assert( s ); if ( s->data ) { str_nullify( s ); free( s->data ); } s->dim = 0; s->len = 0; s->data = NULL; } void strs_free( str *s, ... ) { str *s2; va_list ap; str_free( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_free( s2 ); } while ( s2 ); va_end( ap ); } void str_delete( str *s ) { assert( s ); str_free( s ); free( s ); } void str_empty( str *s ) { assert( s ); str_clear_status( s ); if ( s->data ) { str_nullify( s ); s->data[0] = '\0'; } s->len = 0; } void strs_empty( str *s, ... ) { str *s2; va_list ap; str_empty( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_empty( s2 ); } while ( s2 ); va_end( ap ); } void str_addchar( str *s, char newchar ) { assert( s ); return_if_memerr( s ); if ( newchar=='\0' ) return; /* appending '\0' is a null operation */ if ( !s->data || s->dim==0 ) str_initalloc( s, str_initlen ); if ( s->len + 2 > s->dim ) str_realloc( s, s->len*2 ); s->data[s->len++] = newchar; s->data[s->len] = '\0'; } /* str_addutf8 * * Add potential multibyte character to s starting at pointer p. * Multibyte Unicode characters have the high bit set. * * Since we can progress more than one byte at p, return the * properly updated pointer p. */ const char * str_addutf8( str *s, const char *p ) { if ( ! ((*p) & 128 ) ) { str_addchar( s, *p ); p++; } else { while ( ((*p) & 128) ) { str_addchar( s, *p ); p++; } } return p; } char * str_cstr( str *s ) { assert( s ); return s->data; } void str_fprintf( FILE *fp, str *s ) { assert( s ); if ( s->data ) fprintf( fp, "%s", s->data ); } void str_prepend( str *s, const char *addstr ) { unsigned long lenaddstr, i; assert( s && addstr ); return_if_memerr( s ); lenaddstr = strlen( addstr ); if ( lenaddstr==0 ) return; /* appending an empty string is a null op */ if ( !s->data || !s->dim ) str_initalloc( s, lenaddstr+1 ); else { if ( s->len + lenaddstr + 1 > s->dim ) str_realloc( s, s->len + lenaddstr + 1 ); for ( i=s->len+lenaddstr-1; i>=lenaddstr; i-- ) s->data[i] = s->data[i-lenaddstr]; } strncpy( s->data, addstr, lenaddstr ); s->len += lenaddstr; s->data[ s->len ] = '\0'; } static inline void str_strcat_ensurespace( str *s, unsigned long n ) { unsigned long m = s->len + n + 1; if ( !s->data || !s->dim ) str_initalloc( s, m ); else if ( s->len + n + 1 > s->dim ) str_realloc( s, m ); } static inline void str_strcat_internal( str *s, const char *addstr, unsigned long n ) { return_if_memerr( s ); str_strcat_ensurespace( s, n ); strncat( &(s->data[s->len]), addstr, n ); s->len += n; s->data[s->len]='\0'; } void str_strcat( str *s, str *from ) { assert ( s && from ); if ( !from->data ) return; else str_strcat_internal( s, from->data, from->len ); } void str_strcatc( str *s, const char *from ) { unsigned long n; assert( s && from ); n = strlen( from ); str_strcat_internal( s, from, n ); } void str_segcat( str *s, char *startat, char *endat ) { unsigned long n; char *p; assert( s && startat && endat ); assert( (size_t) startat < (size_t) endat ); return_if_memerr( s ); if ( startat==endat ) return; n = 0; p = startat; while ( p!=endat ) { n++; p++; } str_strcat_internal( s, startat, n ); } void str_indxcat( str *s, char *p, unsigned long start, unsigned long stop ) { unsigned long i; assert( s && p ); assert( start <= stop ); return_if_memerr( s ); for ( i=start; idata || !s->dim ) str_initalloc( s, m ); else if ( m > s->dim ) str_realloc( s, m ); } static inline void str_strcpy_internal( str *s, const char *p, unsigned long n ) { return_if_memerr( s ); str_strcpy_ensurespace( s, n ); strncpy( s->data, p, n ); s->data[n] = '\0'; s->len = n; } void str_strcpy( str *s, str *from ) { assert( s ); assert( from ); if ( s==from ) return; else if ( !from || from->len==0 ) str_empty( s ); else str_strcpy_internal( s, from->data, from->len ); } void str_strcpyc( str *s, const char *from ) { unsigned long n; assert( s && from ); n = strlen( from ); str_strcpy_internal( s, from, n ); } /* str_segcpy( s, start, end ); * * copies [start,end) into s */ void str_segcpy( str *s, char *startat, char *endat ) { unsigned long n; char *p; assert( s && startat && endat ); assert( ((size_t) startat) <= ((size_t) endat) ); return_if_memerr( s ); if ( startat==endat ) { str_empty( s ); return; } n = 0; p = startat; while ( p!=endat ) { p++; n++; } str_strcpy_internal( s, startat, n ); } /* * str_indxcpy( s, in, start, stop ); * * copies in[start,stop) (excludes stop) into s */ void str_indxcpy( str *s, char *p, unsigned long start, unsigned long stop ) { unsigned long i; assert( s && p ); assert( start <= stop ); return_if_memerr( s ); if ( start == stop ) { str_empty( s ); return; } str_strcpy_ensurespace( s, stop-start+1 ); for ( i=start; idata[i-start] = p[i]; s->len = stop-start; s->data[s->len] = '\0'; } str * str_strdup( str *from ) { str *s = str_new(); if ( s ) str_strcpy( s, from ); return s; } str * str_strdupc( const char *from ) { str *s = str_new(); if ( s ) str_strcpyc( s, from ); return s; } void str_segdel( str *s, char *p, char *q ) { str tmp1, tmp2; char *r; assert( s ); return_if_memerr( s ); r = &(s->data[s->len]); str_init( &tmp1 ); str_init( &tmp2 ); str_segcpy( &tmp1, s->data, p ); str_segcpy( &tmp2, q, r ); str_empty( s ); if ( tmp1.data ) str_strcat( s, &tmp1 ); if ( tmp2.data ) str_strcat( s, &tmp2 ); str_free( &tmp2 ); str_free( &tmp1 ); } /* * str_findreplace() * * if replace is "" or NULL, then delete find */ int str_findreplace( str *s, const char *find, const char *replace ) { long diff; size_t findstart, searchstart; size_t p1, p2; size_t find_len, rep_len, curr_len; char empty[2] = ""; unsigned long minsize; char *p; int n = 0; assert( s && find ); return_zero_if_memerr( s ); if ( !s->data || !s->dim ) return 0; if ( !replace ) replace = empty; find_len = strlen( find ); rep_len = strlen( replace ); diff = rep_len - find_len; if ( diff < 0 ) diff = 0; searchstart=0; while ((p=strstr(s->data + searchstart,find))!=NULL) { curr_len = strlen(s->data); findstart=(size_t) p - (size_t) s->data; minsize = curr_len + diff + 1; if (s->dim <= minsize) str_realloc( s, minsize ); if ( find_len > rep_len ) { p1 = findstart + rep_len; p2 = findstart + find_len; while( s->data[p2] ) s->data[p1++]=s->data[p2++]; s->data[p1]='\0'; n++; } else if ( find_len < rep_len ) { for ( p1=curr_len; p1>=findstart+find_len; p1-- ) s->data[p1+diff] = s->data[p1]; n++; } for (p1=0; p1data[findstart+p1]=replace[p1]; searchstart = findstart + rep_len; s->len += rep_len - find_len; } return n; } /* str_fget() * returns 0 if we're done, 1 if we're not done * extracts line by line (regardless of end characters) * and feeds from buf.... */ int str_fget( FILE *fp, char *buf, int bufsize, int *pbufpos, str *outs ) { int bufpos = *pbufpos, done = 0; char *ok; assert( fp && outs ); str_empty( outs ); while ( !done ) { while ( buf[bufpos] && buf[bufpos]!='\r' && buf[bufpos]!='\n' ) str_addchar( outs, buf[bufpos++] ); if ( buf[bufpos]=='\0' ) { ok = fgets( buf, bufsize, fp ); bufpos=*pbufpos=0; if ( !ok && feof(fp) ) { /* end-of-file */ buf[bufpos] = 0; if ( outs->len==0 ) return 0; /*nothing in out*/ else return 1; /*one last out */ } } else if ( buf[bufpos]=='\r' || buf[bufpos]=='\n' ) done=1; } if ( ( buf[bufpos]=='\n' && buf[bufpos+1]=='\r') || ( buf[bufpos]=='\r' && buf[bufpos+1]=='\n') ) bufpos+=2; else if ( buf[bufpos]=='\n' || buf[bufpos]=='\r' ) bufpos+=1; *pbufpos = bufpos; return 1; } void str_toupper( str *s ) { unsigned long i; assert( s ); for ( i=0; ilen; ++i ) s->data[i] = toupper( (unsigned char)s->data[i] ); } void str_tolower( str *s ) { unsigned long i; assert( s ); for ( i=0; ilen; ++i ) s->data[i] = tolower( (unsigned char)s->data[i] ); } /* str_swapstrings( s1, s2 ) * be sneaky and swap internal string data from one * string to another */ void str_swapstrings( str *s1, str *s2 ) { char *tmpp; int tmp; assert( s1 && s2 ); /* swap dimensioning info */ tmp = s1->dim; s1->dim = s2->dim; s2->dim = tmp; /* swap length info */ tmp = s1->len; s1->len = s2->len; s2->len = tmp; /* swap data */ tmpp = s1->data; s1->data = s2->data; s2->data = tmpp; } void str_trimstartingws( str *s ) { char *p, *q; int n; assert( s ); if ( s->len==0 || !is_ws( s->data[0] ) ) return; n = 0; p = s->data; while ( is_ws( *p ) ) p++; q = s->data; while ( *p ) { *q++ = *p++; n++; } *q = '\0'; s->len = n; } void str_trimendingws( str *s ) { assert( s ); while ( s->len > 0 && is_ws( s->data[s->len-1] ) ) { s->data[s->len-1] = '\0'; s->len--; } } int str_match_first( str *s, char ch ) { assert( s ); if ( !s->len ) return 0; if ( s->data[0] == ch ) return 1; return 0; } int str_match_end( str *s, char ch ) { assert( s ); if ( !s->len ) return 0; if ( s->data[ s->len - 1 ] == ch ) return 1; return 0; } void str_trimbegin( str *s, unsigned long n ) { char *p, *q; assert( s ); if ( n==0 ) return; if ( s->len==0 ) return; if ( n >= s->len ) { str_empty( s ); return; } p = s->data; while ( n-- > 0 ) p++; n = 0; q = s->data; while ( *p ) { *q++ = *p++; n++; } *q = '\0'; s->len = n; } void str_trimend( str *s, unsigned long n ) { assert( s ); if ( n==0 ) return; if ( n >= s->len ) { str_empty( s ); return; } s->len -= n; s->data[ s->len ] = '\0'; } void str_pad( str *s, unsigned long len, char ch ) { unsigned long i; assert( s ); for ( i=s->len; i in->len ) max = in->len; for ( i=pos; idata[i] ); } static void str_check_case( str *s, int *lowercase, int *uppercase ) { int i; assert( s ); *lowercase = 0; *uppercase = 0; if ( s->len < 1 ) return; for ( i=0; ilen && !( *lowercase && *uppercase ); ++i ) { if ( isalpha( (unsigned char)s->data[i] ) ) { if ( isupper( (unsigned char)s->data[i] ) ) *uppercase += 1; else if ( islower( (unsigned char)s->data[i] ) ) *lowercase += 1; } } } int str_is_mixedcase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase > 0 && uppercase > 0 ) return 1; return 0; } int str_is_lowercase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase > 0 && uppercase == 0 ) return 1; return 0; } int str_is_uppercase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase == 0 && uppercase > 0 ) return 1; return 0; } void str_stripws( str *s ) { unsigned long len = 0; char *p, *q; assert( s ); if ( s->len ) { p = q = s->data; while ( *p ) { if ( !is_ws( *p ) ) { *q = *p; q++; len++; } p++; } *q = '\0'; } s->len = len; } int str_strcmp( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strcmp( "", t->data ); if ( t->len == 0 ) return strcmp( s->data, "" ); return strcmp( s->data, t->data ); } int str_strcmpc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strcmp( "", t ); return strcmp( s->data, t ); } int str_strncmp( const str *s, const str *t, size_t n ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strncmp( "", t->data, n ); if ( t->len == 0 ) return strncmp( s->data, "", n ); return strncmp( s->data, t->data, n ); } int str_strncmpc( const str *s, const char *t, size_t n ) { assert( s ); assert( t ); if ( s->len == 0 ) return strncmp( "", t, n ); return strncmp( s->data, t, n ); } int str_strcasecmp( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strcasecmp( "", t->data ); if ( t->len == 0 ) return strcasecmp( s->data, "" ); return strcasecmp( s->data, t->data ); } int str_strcasecmpc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strcasecmp( "", t ); return strcasecmp( s->data, t ); } char * str_strstr( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return strstr( "", "" ); if ( s->len == 0 ) return strstr( "", t->data ); if ( t->len == 0 ) return strstr( s->data, "" ); return strstr( s->data, t->data ); } char * str_strstrc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strstr( "", t ); return strstr( s->data, t ); } void str_reverse( str *s ) { unsigned long i, max; char tmp; assert( s ); max = s->len / 2; for ( i=0; idata[ i ]; s->data[ i ] = s->data[ s->len - 1 - i ]; s->data[ s->len - 1 - i ] = tmp; } } int str_fgetline( str *s, FILE *fp ) { int ch, eol = 0; assert( s ); assert( fp ); str_empty( s ); if ( feof( fp ) ) return 0; while ( !feof( fp ) && !eol ) { ch = fgetc( fp ); if ( ch == EOF ) { if ( s->len ) return 1; else return 0; } else if ( ch == '\n' ) eol = 1; else if ( ch == '\r' ) { ch = fgetc( fp ); if ( ch != '\n' ) ungetc( ch, fp ); eol = 1; } else { str_addchar( s, (char) ch ); } } return 1; } /* * s = "Hi!\0", s.len = 3 * * str_char( s, 0 ) = 'H' str_revchar( s, 0 ) = '!' * str_char( s, 1 ) = 'i' str_revchar( s, 1 ) = 'i' * str_char( s, 2 ) = '!' str_revchar( s, 2 ) = 'H' * str_char( s, 3 ) = '\0' str_revchar( s, 3 ) = '\0' */ char str_char( str *s, unsigned long n ) { assert( s ); if ( s->len==0 || n >= s->len ) return '\0'; return s->data[ n ]; } char str_revchar( str *s, unsigned long n ) { assert( s ); if ( s->len==0 || n >= s->len ) return '\0'; return s->data[ s->len - n - 1]; } void str_makepath( str *path, const char *dirname, const char *filename, char sep ) { assert( path ); if ( dirname ) str_strcpyc( path, dirname ); else str_empty( path ); if ( path->len && path->data[path->len-1]!=sep ) str_addchar( path, sep ); if ( filename ) str_strcatc( path, filename ); } void str_fill( str *s, unsigned long n, char fillchar ) { unsigned long i; assert( s ); str_clear_status( s ); if ( !s->data || s->dim==0 ) str_initalloc( s, n+1 ); if ( n + 1 > s->dim ) str_realloc( s, n+1 ); for ( i=0; idata[i] = fillchar; s->data[n] = '\0'; s->len = n; } int str_has_value( str *s ) { if ( !s || s->len==0 ) return 0; return 1; } int str_is_empty( str *s ) { if ( !s || s->len==0 ) return 1; return 0; } unsigned long str_strlen( str *s ) { if ( !s ) return 0; else return s->len; } hs-bibutils-6.10.0.0/bibutils/str.c0000755000000000000000000004715707346545000015164 0ustar0000000000000000/* * str.c * * Version: 2018-09-21 * * Copyright (c) Chris Putnam 1999-2020 * * Source code released under the GPL version 2 * * * routines for dynamically allocated strings * */ #include #include #include #include #include #include #include "is_ws.h" #include "str.h" /* Do not use asserts in STR_NOASSERT defined */ #ifdef STR_NOASSERT #define NDEBUG #endif #include #define str_initlen (64) #ifndef STR_SMALL #define str_clear_status( s ) s->status = STR_OK; #define handle_memerr( s, f ) s->status = STR_MEMERR; #define return_if_memerr( s ) \ { \ if ( s->status != STR_OK ) return; \ } #define return_zero_if_memerr( s ) \ { \ if ( s->status != STR_OK ) return 0; \ } #define return_after_delim_if_memerr( s, p, delim, finalstep ) \ { \ if ( s->status != STR_OK ) { \ while ( p && *p && !strchr( delim, *p ) ) p++; \ if ( p && *p && finalstep ) p++; \ return p; \ } \ } #else #define str_clear_status( s ) {} #define handle_memerr( s, f ) \ { \ fprintf( stderr,"Error. Cannot allocate memory in %s.\n", f ); \ exit( EXIT_FAILURE ); \ } #define return_if_memerr( s ) {} #define return_zero_if_memerr( s ) {} #define return_after_delim_if_memerr( s, p, delim, finalstep ) {} #endif /* Clear memory in resize/free if STR_PARANOIA defined */ #ifndef STR_PARANOIA static void str_realloc( str *s, unsigned long minsize ) { unsigned long size; char *newptr; assert( s ); return_if_memerr( s ); size = 2 * s->dim; if (size < minsize) size = minsize; newptr = (char *) realloc( s->data, sizeof( *(s->data) )*size ); if ( !newptr ) handle_memerr( s, __FUNCTION__ ); s->data = newptr; s->dim = size; } /* define as a no-op */ #define str_nullify( s ) #else static void str_realloc( str *s, unsigned long minsize ) { unsigned long size; char *newptr; assert( s ); return_if_memerr( s ); size = 2 * s->dim; if ( size < minsize ) size = minsize; newptr = (char *) malloc( sizeof( *(s->data) ) * size ); if ( !newptr ) handle_memerr( s, __FUNCTION__ ); if ( s->data ) { str_nullify( s ); free( s->data ); } s->data = newptr; s->dim = size; } static inline void str_nullify( str *s ) { memset( s->data, 0, s->dim ); } #endif void str_init( str *s ) { assert( s ); s->dim = 0; s->len = 0; s->data = NULL; str_clear_status( s ); } void str_initstr( str *s, str *from ) { assert( s ); assert( from ); str_init( s ); str_strcpy( s, from ); } void str_initstrc( str *s, const char *initstr ) { assert( s ); assert( initstr ); str_init( s ); str_strcpyc( s, initstr ); } void str_initstrsc( str *s, ... ) { const char *c; va_list ap; str_init( s ); va_start( ap, s ); do { c = va_arg( ap, const char * ); if ( c ) str_strcatc( s, c ); } while ( c ); va_end( ap ); } void strs_init( str *s, ... ) { str *s2; va_list ap; str_init( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_init( s2 ); } while ( s2 ); va_end( ap ); } int str_memerr( str *s ) { #ifndef STR_SMALL return s->status == STR_MEMERR; #else return 0; #endif } void str_mergestrs( str *s, ... ) { va_list ap; const char *cp; str_clear_status( s ); str_empty( s ); va_start( ap, s ); do { cp = va_arg( ap, const char * ); if ( cp ) str_strcatc( s, cp ); } while ( cp ); va_end( ap ); } static void str_initalloc( str *s, unsigned long minsize ) { unsigned long size = str_initlen; assert( s ); if ( minsize > str_initlen ) size = minsize; s->data = (char *) malloc( sizeof( *(s->data) ) * size ); if ( !s->data ) { fprintf(stderr,"Error. Cannot allocate memory in str_initalloc, requested %lu characters.\n", size ); exit( EXIT_FAILURE ); } s->data[0]='\0'; s->dim=size; s->len=0; str_clear_status( s ); } str * str_new( void ) { str *s = (str *) malloc( sizeof( *s ) ); if ( s ) str_initalloc( s, str_initlen ); return s; } void str_free( str *s ) { assert( s ); if ( s->data ) { str_nullify( s ); free( s->data ); } s->dim = 0; s->len = 0; s->data = NULL; } void strs_free( str *s, ... ) { str *s2; va_list ap; str_free( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_free( s2 ); } while ( s2 ); va_end( ap ); } void str_delete( str *s ) { assert( s ); str_free( s ); free( s ); } void str_empty( str *s ) { assert( s ); str_clear_status( s ); if ( s->data ) { str_nullify( s ); s->data[0] = '\0'; } s->len = 0; } void strs_empty( str *s, ... ) { str *s2; va_list ap; str_empty( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_empty( s2 ); } while ( s2 ); va_end( ap ); } void str_addchar( str *s, char newchar ) { assert( s ); return_if_memerr( s ); if ( newchar=='\0' ) return; /* appending '\0' is a null operation */ if ( !s->data || s->dim==0 ) str_initalloc( s, str_initlen ); if ( s->len + 2 > s->dim ) str_realloc( s, s->len*2 ); s->data[s->len++] = newchar; s->data[s->len] = '\0'; } /* str_addutf8 * * Add potential multibyte character to s starting at pointer p. * Multibyte Unicode characters have the high bit set. * * Since we can progress more than one byte at p, return the * properly updated pointer p. */ const char * str_addutf8( str *s, const char *p ) { if ( ! ((*p) & 128 ) ) { str_addchar( s, *p ); p++; } else { while ( ((*p) & 128) ) { str_addchar( s, *p ); p++; } } return p; } char * str_cstr( str *s ) { assert( s ); return s->data; } void str_fprintf( FILE *fp, str *s ) { assert( s ); if ( s->data ) fprintf( fp, "%s", s->data ); } void str_prepend( str *s, const char *addstr ) { unsigned long lenaddstr, i; assert( s && addstr ); return_if_memerr( s ); lenaddstr = strlen( addstr ); if ( lenaddstr==0 ) return; /* appending an empty string is a null op */ if ( !s->data || !s->dim ) str_initalloc( s, lenaddstr+1 ); else { if ( s->len + lenaddstr + 1 > s->dim ) str_realloc( s, s->len + lenaddstr + 1 ); for ( i=s->len+lenaddstr-1; i>=lenaddstr; i-- ) s->data[i] = s->data[i-lenaddstr]; } strncpy( s->data, addstr, lenaddstr ); s->len += lenaddstr; s->data[ s->len ] = '\0'; } static inline void str_strcat_ensurespace( str *s, unsigned long n ) { unsigned long m = s->len + n + 1; if ( !s->data || !s->dim ) str_initalloc( s, m ); else if ( s->len + n + 1 > s->dim ) str_realloc( s, m ); } static inline void str_strcat_internal( str *s, const char *addstr, unsigned long n ) { return_if_memerr( s ); str_strcat_ensurespace( s, n ); strncat( &(s->data[s->len]), addstr, n ); s->len += n; s->data[s->len]='\0'; } void str_strcat( str *s, str *from ) { assert ( s && from ); if ( !from->data ) return; else str_strcat_internal( s, from->data, from->len ); } void str_strcatc( str *s, const char *from ) { unsigned long n; assert( s && from ); n = strlen( from ); str_strcat_internal( s, from, n ); } void str_segcat( str *s, char *startat, char *endat ) { unsigned long n; char *p; assert( s && startat && endat ); assert( (size_t) startat < (size_t) endat ); return_if_memerr( s ); if ( startat==endat ) return; n = 0; p = startat; while ( p!=endat ) { n++; p++; } str_strcat_internal( s, startat, n ); } void str_indxcat( str *s, char *p, unsigned long start, unsigned long stop ) { unsigned long i; assert( s && p ); assert( start <= stop ); return_if_memerr( s ); for ( i=start; idata || !s->dim ) str_initalloc( s, m ); else if ( m > s->dim ) str_realloc( s, m ); } static inline void str_strcpy_internal( str *s, const char *p, unsigned long n ) { return_if_memerr( s ); str_strcpy_ensurespace( s, n ); strncpy( s->data, p, n ); s->data[n] = '\0'; s->len = n; } void str_strcpy( str *s, str *from ) { assert( s ); assert( from ); if ( s==from ) return; else if ( !from || from->len==0 ) str_empty( s ); else str_strcpy_internal( s, from->data, from->len ); } void str_strcpyc( str *s, const char *from ) { unsigned long n; assert( s && from ); n = strlen( from ); str_strcpy_internal( s, from, n ); } /* str_segcpy( s, start, end ); * * copies [start,end) into s */ void str_segcpy( str *s, char *startat, char *endat ) { unsigned long n; char *p; assert( s && startat && endat ); assert( ((size_t) startat) <= ((size_t) endat) ); return_if_memerr( s ); if ( startat==endat ) { str_empty( s ); return; } n = 0; p = startat; while ( p!=endat ) { p++; n++; } str_strcpy_internal( s, startat, n ); } /* * str_indxcpy( s, in, start, stop ); * * copies in[start,stop) (excludes stop) into s */ void str_indxcpy( str *s, char *p, unsigned long start, unsigned long stop ) { unsigned long i; assert( s && p ); assert( start <= stop ); return_if_memerr( s ); if ( start == stop ) { str_empty( s ); return; } str_strcpy_ensurespace( s, stop-start+1 ); for ( i=start; idata[i-start] = p[i]; s->len = stop-start; s->data[s->len] = '\0'; } str * str_strdup( str *from ) { str *s = str_new(); if ( s ) str_strcpy( s, from ); return s; } str * str_strdupc( const char *from ) { str *s = str_new(); if ( s ) str_strcpyc( s, from ); return s; } void str_segdel( str *s, char *p, char *q ) { str tmp1, tmp2; char *r; assert( s ); return_if_memerr( s ); r = &(s->data[s->len]); str_init( &tmp1 ); str_init( &tmp2 ); str_segcpy( &tmp1, s->data, p ); str_segcpy( &tmp2, q, r ); str_empty( s ); if ( tmp1.data ) str_strcat( s, &tmp1 ); if ( tmp2.data ) str_strcat( s, &tmp2 ); str_free( &tmp2 ); str_free( &tmp1 ); } /* * str_findreplace() * * if replace is "" or NULL, then delete find */ int str_findreplace( str *s, const char *find, const char *replace ) { long diff; size_t findstart, searchstart; size_t p1, p2; size_t find_len, rep_len, curr_len; char empty[2] = ""; unsigned long minsize; char *p; int n = 0; assert( s && find ); return_zero_if_memerr( s ); if ( !s->data || !s->dim ) return 0; if ( !replace ) replace = empty; find_len = strlen( find ); rep_len = strlen( replace ); diff = rep_len - find_len; if ( diff < 0 ) diff = 0; searchstart=0; while ((p=strstr(s->data + searchstart,find))!=NULL) { curr_len = strlen(s->data); findstart=(size_t) p - (size_t) s->data; minsize = curr_len + diff + 1; if (s->dim <= minsize) str_realloc( s, minsize ); if ( find_len > rep_len ) { p1 = findstart + rep_len; p2 = findstart + find_len; while( s->data[p2] ) s->data[p1++]=s->data[p2++]; s->data[p1]='\0'; n++; } else if ( find_len < rep_len ) { for ( p1=curr_len; p1>=findstart+find_len; p1-- ) s->data[p1+diff] = s->data[p1]; n++; } for (p1=0; p1data[findstart+p1]=replace[p1]; searchstart = findstart + rep_len; s->len += rep_len - find_len; } return n; } /* str_fget() * returns 0 if we're done, 1 if we're not done * extracts line by line (regardless of end characters) * and feeds from buf.... */ int str_fget( FILE *fp, char *buf, int bufsize, int *pbufpos, str *outs ) { int bufpos = *pbufpos, done = 0; char *ok; assert( fp && outs ); str_empty( outs ); while ( !done ) { while ( buf[bufpos] && buf[bufpos]!='\r' && buf[bufpos]!='\n' ) str_addchar( outs, buf[bufpos++] ); if ( buf[bufpos]=='\0' ) { ok = fgets( buf, bufsize, fp ); bufpos=*pbufpos=0; if ( !ok && feof(fp) ) { /* end-of-file */ buf[bufpos] = 0; if ( outs->len==0 ) return 0; /*nothing in out*/ else return 1; /*one last out */ } } else if ( buf[bufpos]=='\r' || buf[bufpos]=='\n' ) done=1; } if ( ( buf[bufpos]=='\n' && buf[bufpos+1]=='\r') || ( buf[bufpos]=='\r' && buf[bufpos+1]=='\n') ) bufpos+=2; else if ( buf[bufpos]=='\n' || buf[bufpos]=='\r' ) bufpos+=1; *pbufpos = bufpos; return 1; } void str_toupper( str *s ) { unsigned long i; assert( s ); for ( i=0; ilen; ++i ) s->data[i] = toupper( (unsigned char)s->data[i] ); } void str_tolower( str *s ) { unsigned long i; assert( s ); for ( i=0; ilen; ++i ) s->data[i] = tolower( (unsigned char)s->data[i] ); } /* str_swapstrings( s1, s2 ) * be sneaky and swap internal string data from one * string to another */ void str_swapstrings( str *s1, str *s2 ) { char *tmpp; int tmp; assert( s1 && s2 ); /* swap dimensioning info */ tmp = s1->dim; s1->dim = s2->dim; s2->dim = tmp; /* swap length info */ tmp = s1->len; s1->len = s2->len; s2->len = tmp; /* swap data */ tmpp = s1->data; s1->data = s2->data; s2->data = tmpp; } void str_trimstartingws( str *s ) { char *p, *q; int n; assert( s ); if ( s->len==0 || !is_ws( s->data[0] ) ) return; n = 0; p = s->data; while ( is_ws( *p ) ) p++; q = s->data; while ( *p ) { *q++ = *p++; n++; } *q = '\0'; s->len = n; } void str_trimendingws( str *s ) { assert( s ); while ( s->len > 0 && is_ws( s->data[s->len-1] ) ) { s->data[s->len-1] = '\0'; s->len--; } } int str_match_first( str *s, char ch ) { assert( s ); if ( !s->len ) return 0; if ( s->data[0] == ch ) return 1; return 0; } int str_match_end( str *s, char ch ) { assert( s ); if ( !s->len ) return 0; if ( s->data[ s->len - 1 ] == ch ) return 1; return 0; } void str_trimbegin( str *s, unsigned long n ) { char *p, *q; assert( s ); if ( n==0 ) return; if ( s->len==0 ) return; if ( n >= s->len ) { str_empty( s ); return; } p = s->data; while ( n-- > 0 ) p++; n = 0; q = s->data; while ( *p ) { *q++ = *p++; n++; } *q = '\0'; s->len = n; } void str_trimend( str *s, unsigned long n ) { assert( s ); if ( n==0 ) return; if ( n >= s->len ) { str_empty( s ); return; } s->len -= n; s->data[ s->len ] = '\0'; } void str_pad( str *s, unsigned long len, char ch ) { unsigned long i; assert( s ); for ( i=s->len; i in->len ) max = in->len; for ( i=pos; idata[i] ); } static void str_check_case( str *s, int *lowercase, int *uppercase ) { int i; assert( s ); *lowercase = 0; *uppercase = 0; if ( s->len < 1 ) return; for ( i=0; ilen && !( *lowercase && *uppercase ); ++i ) { if ( isalpha( (unsigned char)s->data[i] ) ) { if ( isupper( (unsigned char)s->data[i] ) ) *uppercase += 1; else if ( islower( (unsigned char)s->data[i] ) ) *lowercase += 1; } } } int str_is_mixedcase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase > 0 && uppercase > 0 ) return 1; return 0; } int str_is_lowercase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase > 0 && uppercase == 0 ) return 1; return 0; } int str_is_uppercase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase == 0 && uppercase > 0 ) return 1; return 0; } void str_stripws( str *s ) { unsigned long len = 0; char *p, *q; assert( s ); if ( s->len ) { p = q = s->data; while ( *p ) { if ( !is_ws( *p ) ) { *q = *p; q++; len++; } p++; } *q = '\0'; } s->len = len; } int str_strcmp( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strcmp( "", t->data ); if ( t->len == 0 ) return strcmp( s->data, "" ); return strcmp( s->data, t->data ); } int str_strcmpc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strcmp( "", t ); return strcmp( s->data, t ); } int str_strncmp( const str *s, const str *t, size_t n ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strncmp( "", t->data, n ); if ( t->len == 0 ) return strncmp( s->data, "", n ); return strncmp( s->data, t->data, n ); } int str_strncmpc( const str *s, const char *t, size_t n ) { assert( s ); assert( t ); if ( s->len == 0 ) return strncmp( "", t, n ); return strncmp( s->data, t, n ); } int str_strcasecmp( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strcasecmp( "", t->data ); if ( t->len == 0 ) return strcasecmp( s->data, "" ); return strcasecmp( s->data, t->data ); } int str_strcasecmpc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strcasecmp( "", t ); return strcasecmp( s->data, t ); } char * str_strstr( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return strstr( "", "" ); if ( s->len == 0 ) return strstr( "", t->data ); if ( t->len == 0 ) return strstr( s->data, "" ); return strstr( s->data, t->data ); } char * str_strstrc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strstr( "", t ); return strstr( s->data, t ); } void str_reverse( str *s ) { unsigned long i, max; char tmp; assert( s ); max = s->len / 2; for ( i=0; idata[ i ]; s->data[ i ] = s->data[ s->len - 1 - i ]; s->data[ s->len - 1 - i ] = tmp; } } int str_fgetline( str *s, FILE *fp ) { int ch, eol = 0; assert( s ); assert( fp ); str_empty( s ); if ( feof( fp ) ) return 0; while ( !feof( fp ) && !eol ) { ch = fgetc( fp ); if ( ch == EOF ) { if ( s->len ) return 1; else return 0; } else if ( ch == '\n' ) eol = 1; else if ( ch == '\r' ) { ch = fgetc( fp ); if ( ch != '\n' ) ungetc( ch, fp ); eol = 1; } else { str_addchar( s, (char) ch ); } } return 1; } /* * s = "Hi!\0", s.len = 3 * * str_char( s, 0 ) = 'H' str_revchar( s, 0 ) = '!' * str_char( s, 1 ) = 'i' str_revchar( s, 1 ) = 'i' * str_char( s, 2 ) = '!' str_revchar( s, 2 ) = 'H' * str_char( s, 3 ) = '\0' str_revchar( s, 3 ) = '\0' */ char str_char( str *s, unsigned long n ) { assert( s ); if ( s->len==0 || n >= s->len ) return '\0'; return s->data[ n ]; } char str_revchar( str *s, unsigned long n ) { assert( s ); if ( s->len==0 || n >= s->len ) return '\0'; return s->data[ s->len - n - 1]; } void str_makepath( str *path, const char *dirname, const char *filename, char sep ) { assert( path ); if ( dirname ) str_strcpyc( path, dirname ); else str_empty( path ); if ( path->len && path->data[path->len-1]!=sep ) str_addchar( path, sep ); if ( filename ) str_strcatc( path, filename ); } void str_fill( str *s, unsigned long n, char fillchar ) { unsigned long i; assert( s ); str_clear_status( s ); if ( !s->data || s->dim==0 ) str_initalloc( s, n+1 ); if ( n + 1 > s->dim ) str_realloc( s, n+1 ); for ( i=0; idata[i] = fillchar; s->data[n] = '\0'; s->len = n; } int str_has_value( str *s ) { if ( !s || s->len==0 ) return 0; return 1; } int str_is_empty( str *s ) { if ( !s || s->len==0 ) return 1; return 0; } unsigned long str_strlen( str *s ) { if ( !s ) return 0; else return s->len; } hs-bibutils-6.10.0.0/bibutils/str.h0000755000000000000000000001016407346545000015155 0ustar0000000000000000/* * str.h * * Version: 2018-09-21 * * Copyright (c) Chris Putnam 1999-2019 * * Source code released under the GPL version 2 * */ #ifndef STR_H #define STR_H #define STR_OK (0) #define STR_MEMERR (-1) #include typedef struct str { char *data; unsigned long dim; unsigned long len; #ifndef STR_SMALL int status; #endif } str; str * str_new ( void ); void str_delete ( str *s ); void str_init ( str *s ); void str_initstr ( str *s, str *from ); void str_initstrc ( str *s, const char *initstr ); void str_initstrsc ( str *s, ... ); void str_empty ( str *s ); void str_free ( str *s ); void strs_init ( str *s, ... ); void strs_empty ( str *s, ... ); void strs_free ( str *s, ... ); str* str_strdup ( str *s ); str* str_strdupc( const char *p ); void str_strcat ( str *s, str *from ); void str_strcatc( str *s, const char *from ); void str_strcpy ( str *s, str *from ); void str_strcpyc( str *s, const char *from ); int str_strcmp ( const str *s, const str *t ); int str_strcmpc( const str *s, const char *t ); int str_strncmp ( const str *s, const str *t, size_t n ); int str_strncmpc( const str *s, const char *t, size_t n ); int str_strcasecmp ( const str *s, const str *t ); int str_strcasecmpc( const str *s, const char *t ); char * str_strstr ( const str *s, const str *t ); char * str_strstrc( const str *s, const char *t ); void str_prepend ( str *s, const char *addstr ); void str_mergestrs ( str *s, ... ); void str_addchar ( str *s, char newchar ); void str_reverse ( str *s ); const char *str_addutf8 ( str *s, const char *p ); void str_segcat ( str *s, char *startat, char *endat ); const char *str_cpytodelim ( str *s, const char *p, const char *delim, unsigned char finalstep ); const char *str_cattodelim ( str *s, const char *p, const char *delim, unsigned char finalstep ); void str_prepend ( str *s, const char *addstr ); void str_segcpy ( str *s, char *startat, char *endat ); void str_segdel ( str *s, char *startat, char *endat ); void str_indxcpy ( str *s, char *p, unsigned long start, unsigned long stop ); void str_indxcat ( str *s, char *p, unsigned long start, unsigned long stop ); void str_fprintf ( FILE *fp, str *s ); int str_fget ( FILE *fp, char *buf, int bufsize, int *pbufpos, str *outs ); char * str_cstr ( str *s ); char str_char ( str *s, unsigned long n ); char str_revchar ( str *s, unsigned long n ); int str_fgetline ( str *s, FILE *fp ); int str_findreplace ( str *s, const char *find, const char *replace ); void str_toupper ( str *s ); void str_tolower ( str *s ); void str_trimstartingws( str *s ); void str_trimendingws( str *s ); void str_swapstrings ( str *s1, str *s2 ); void str_stripws ( str *s ); int str_match_first ( str *s, char ch ); int str_match_end ( str *s, char ch ); void str_trimbegin ( str *s, unsigned long n ); void str_trimend ( str *s, unsigned long n ); void str_pad ( str *s, unsigned long len, char ch ); void str_copyposlen ( str *s, str *in, unsigned long pos, unsigned long len ); void str_makepath ( str *path, const char *dirname, const char *filename, char sep ); void str_fill ( str *s, unsigned long n, char fillchar ); int str_is_mixedcase( str *s ); int str_is_lowercase( str *s ); int str_is_uppercase( str *s ); int str_memerr( str *s ); unsigned long str_strlen( str *s ); int str_has_value( str *s ); int str_is_empty( str *s ); /* #define STR_PARANOIA * * set to clear memory before it is freed or reallocated * note that this is slower...may be important if string * contains sensitive information */ /* #define STR_NOASSERT * * set to turn off the use of asserts (and associated call to exit) * in str functions...useful for library construction for * Linux distributions that don't want libraries calling exit, but * not useful during code development */ /* #define STR_SMALL * * set to make the smallest possible struct str, but will get * exit( EXIT_FAILURE ) upon memory failures */ #endif hs-bibutils-6.10.0.0/bibutils/str_conv.c0000644000000000000000000001247507346545000016201 0ustar0000000000000000/* * str_conv.c * * Copyright (c) Chris Putnam 1999-2020 * * Source code released under the GPL version 2 * * str routines for converting strs between character sets * */ #include #include #include #include #include #include "latex.h" #include "entities.h" #include "utf8.h" #include "gb18030.h" #include "charsets.h" #include "str_conv.h" static void addentity( str *s, unsigned int ch ) { char buf[512]; sprintf( buf, "&#%u;", ch ); str_strcatc( s, buf ); } /* These are the five minimal predefined entites in XML */ static int minimalxmlchars( str *s, unsigned int ch ) { if ( ch==34 ) { str_strcatc( s, """ ); return 1; } else if ( ch==38 ) { str_strcatc( s, "&" ); return 1; } else if ( ch==39 ) { str_strcatc( s, "'" ); return 1; } else if ( ch==60 ) { str_strcatc( s, "<" ); return 1; } else if ( ch==62 ) { str_strcatc( s, ">" ); return 1; } return 0; } static void addxmlchar( str *s, unsigned int ch ) { if ( minimalxmlchars( s, ch ) ) return; if ( ch > 127 ) addentity( s, ch ); else str_addchar( s, ch ); } static void addutf8char( str *s, unsigned int ch, int xmlout ) { unsigned char code[6]; int nc, i; if ( xmlout ) { if ( minimalxmlchars( s, ch ) ) return; if ( ch > 127 && xmlout == STR_CONV_XMLOUT_ENTITIES ) { addentity( s, ch ); return; } } nc = utf8_encode( ch, code ); for ( i=0; i 127 && xmlout == STR_CONV_XMLOUT_ENTITIES ) { addentity( s, ch ); return; } } nc = gb18030_encode( ch, code ); for ( i=0; i 128 or by numeric xml entities such as "Ȗ" * then the output of decode_entity() and utf8_decode will necessarily * be in the charsetin character set. On the other hand, if it's a * fancy latex expression, such as "\alpha", or a non-numeric xml entity * like "&", then we'll get the Unicode value (because our lists only * keep the Unicode equivalent). * * The unicode variable indicates whether or not a Unicode-based listing * was used to convert the character (remember that charsetin could be * Unicode independently). * * The charset variable is used to keep track of what character set * the character is in prior to conversion. * */ static unsigned int get_unicode( str *s, unsigned int *pi, int charsetin, int latexin, int utf8in, int xmlin ) { unsigned int ch; int unicode = 0, err = 0; if ( xmlin && s->data[*pi]=='&' ) { ch = decode_entity( s->data, pi, &unicode, &err ); } else if ( charsetin==CHARSET_GB18030 ) { ch = gb18030_decode( s->data, pi ); unicode = 1; } else if ( latexin ) { /* Must handle bibtex files in UTF8/Unicode */ if ( utf8in && ( s->data[*pi] & 128 ) ) { ch = utf8_decode( s->data, pi ); unicode = 1; } else ch = latex2char( s->data, pi, &unicode ); } else if ( utf8in ) ch = utf8_decode( s->data, pi ); else { ch = (unsigned int) s->data[*pi]; *pi = *pi + 1; } if ( !unicode && charsetin!=CHARSET_UNICODE ) ch = charset_lookupchar( charsetin, ch ); return ch; } static int write_unicode( str *s, unsigned int ch, int charsetout, int latexout, int utf8out, int xmlout ) { unsigned int c; if ( latexout ) { addlatexchar( s, ch, xmlout, utf8out ); } else if ( utf8out ) { addutf8char( s, ch, xmlout ); } else if ( charsetout==CHARSET_GB18030 ) { addgb18030char( s, ch, xmlout ); } else { c = charset_lookupuni( charsetout, ch ); if ( xmlout ) addxmlchar( s, c ); else str_addchar( s, c ); } return 1; } /* * Returns 1 on memory error condition */ int str_convert( str *s, int charsetin, int latexin, int utf8in, int xmlin, int charsetout, int latexout, int utf8out, int xmlout ) { unsigned int pos = 0; unsigned int ch; str ns; int ok = 1; if ( !s || s->len==0 ) return ok; /* Ensure that string is internally allocated. * This fixes NULL pointer derefernce in CVE-2018-10775 in bibutils * as a string with a valid data pointer is potentially replaced * by a string without a valid data pointer due to it being invalid * unicode. * This probably also fixes CVE-2018-10773 and CVE-2018-10774 which * are NULL dereferences also likely due to a fuzzer, but without * test cases in the report, I can't be completely sure. */ str_initstrc( &ns, "" ); if ( charsetin==CHARSET_UNKNOWN ) charsetin = CHARSET_DEFAULT; if ( charsetout==CHARSET_UNKNOWN ) charsetout = CHARSET_DEFAULT; while ( s->data[pos] ) { ch = get_unicode( s, &pos, charsetin, latexin, utf8in, xmlin ); ok = write_unicode( &ns, ch, charsetout, latexout, utf8out, xmlout ); if ( !ok ) goto out; } str_swapstrings( s, &ns ); out: str_free( &ns ); return ok; } hs-bibutils-6.10.0.0/bibutils/str_conv.c0000755000000000000000000001247507346545000016204 0ustar0000000000000000/* * str_conv.c * * Copyright (c) Chris Putnam 1999-2020 * * Source code released under the GPL version 2 * * str routines for converting strs between character sets * */ #include #include #include #include #include #include "latex.h" #include "entities.h" #include "utf8.h" #include "gb18030.h" #include "charsets.h" #include "str_conv.h" static void addentity( str *s, unsigned int ch ) { char buf[512]; sprintf( buf, "&#%u;", ch ); str_strcatc( s, buf ); } /* These are the five minimal predefined entites in XML */ static int minimalxmlchars( str *s, unsigned int ch ) { if ( ch==34 ) { str_strcatc( s, """ ); return 1; } else if ( ch==38 ) { str_strcatc( s, "&" ); return 1; } else if ( ch==39 ) { str_strcatc( s, "'" ); return 1; } else if ( ch==60 ) { str_strcatc( s, "<" ); return 1; } else if ( ch==62 ) { str_strcatc( s, ">" ); return 1; } return 0; } static void addxmlchar( str *s, unsigned int ch ) { if ( minimalxmlchars( s, ch ) ) return; if ( ch > 127 ) addentity( s, ch ); else str_addchar( s, ch ); } static void addutf8char( str *s, unsigned int ch, int xmlout ) { unsigned char code[6]; int nc, i; if ( xmlout ) { if ( minimalxmlchars( s, ch ) ) return; if ( ch > 127 && xmlout == STR_CONV_XMLOUT_ENTITIES ) { addentity( s, ch ); return; } } nc = utf8_encode( ch, code ); for ( i=0; i 127 && xmlout == STR_CONV_XMLOUT_ENTITIES ) { addentity( s, ch ); return; } } nc = gb18030_encode( ch, code ); for ( i=0; i 128 or by numeric xml entities such as "Ȗ" * then the output of decode_entity() and utf8_decode will necessarily * be in the charsetin character set. On the other hand, if it's a * fancy latex expression, such as "\alpha", or a non-numeric xml entity * like "&", then we'll get the Unicode value (because our lists only * keep the Unicode equivalent). * * The unicode variable indicates whether or not a Unicode-based listing * was used to convert the character (remember that charsetin could be * Unicode independently). * * The charset variable is used to keep track of what character set * the character is in prior to conversion. * */ static unsigned int get_unicode( str *s, unsigned int *pi, int charsetin, int latexin, int utf8in, int xmlin ) { unsigned int ch; int unicode = 0, err = 0; if ( xmlin && s->data[*pi]=='&' ) { ch = decode_entity( s->data, pi, &unicode, &err ); } else if ( charsetin==CHARSET_GB18030 ) { ch = gb18030_decode( s->data, pi ); unicode = 1; } else if ( latexin ) { /* Must handle bibtex files in UTF8/Unicode */ if ( utf8in && ( s->data[*pi] & 128 ) ) { ch = utf8_decode( s->data, pi ); unicode = 1; } else ch = latex2char( s->data, pi, &unicode ); } else if ( utf8in ) ch = utf8_decode( s->data, pi ); else { ch = (unsigned int) s->data[*pi]; *pi = *pi + 1; } if ( !unicode && charsetin!=CHARSET_UNICODE ) ch = charset_lookupchar( charsetin, ch ); return ch; } static int write_unicode( str *s, unsigned int ch, int charsetout, int latexout, int utf8out, int xmlout ) { unsigned int c; if ( latexout ) { addlatexchar( s, ch, xmlout, utf8out ); } else if ( utf8out ) { addutf8char( s, ch, xmlout ); } else if ( charsetout==CHARSET_GB18030 ) { addgb18030char( s, ch, xmlout ); } else { c = charset_lookupuni( charsetout, ch ); if ( xmlout ) addxmlchar( s, c ); else str_addchar( s, c ); } return 1; } /* * Returns 1 on memory error condition */ int str_convert( str *s, int charsetin, int latexin, int utf8in, int xmlin, int charsetout, int latexout, int utf8out, int xmlout ) { unsigned int pos = 0; unsigned int ch; str ns; int ok = 1; if ( !s || s->len==0 ) return ok; /* Ensure that string is internally allocated. * This fixes NULL pointer derefernce in CVE-2018-10775 in bibutils * as a string with a valid data pointer is potentially replaced * by a string without a valid data pointer due to it being invalid * unicode. * This probably also fixes CVE-2018-10773 and CVE-2018-10774 which * are NULL dereferences also likely due to a fuzzer, but without * test cases in the report, I can't be completely sure. */ str_initstrc( &ns, "" ); if ( charsetin==CHARSET_UNKNOWN ) charsetin = CHARSET_DEFAULT; if ( charsetout==CHARSET_UNKNOWN ) charsetout = CHARSET_DEFAULT; while ( s->data[pos] ) { ch = get_unicode( s, &pos, charsetin, latexin, utf8in, xmlin ); ok = write_unicode( &ns, ch, charsetout, latexout, utf8out, xmlout ); if ( !ok ) goto out; } str_swapstrings( s, &ns ); out: str_free( &ns ); return ok; } hs-bibutils-6.10.0.0/bibutils/str_conv.h0000755000000000000000000000067107346545000016204 0ustar0000000000000000/* * str_conv.h * * Copyright (c) Chris Putnam 1999-2019 * * Source code released under the GPL version 2 * */ #ifndef STR_CONV_H #define STR_CONV_H #define STR_CONV_XMLOUT_FALSE (0) #define STR_CONV_XMLOUT_TRUE (1) #define STR_CONV_XMLOUT_ENTITIES (3) #include "str.h" extern int str_convert( str *s, int charsetin, int latexin, int utf8in, int xmlin, int charsetout, int latexout, int utf8out, int xmlout ); #endif hs-bibutils-6.10.0.0/bibutils/strsearch.c0000644000000000000000000000171407346545000016334 0ustar0000000000000000/* strsearch.c * * Copyright (c) Chris Putnam 1995-2020 * * Source code released under the GPL version 2 * * strsearch() locates a case-independent substring * e.g. a case-independent version of strstr() * * returns pointer to first occurrence of substring needle in * the string haystack when found, NULL if not found * * '\0' characters terminating strings are not compared * * strsearch returns haystack when needle is empty as per strstr() * conventions * */ #include #include #include "strsearch.h" char *strsearch (const char *haystack, const char *needle) { char *returnptr=NULL; unsigned long pos=0; if ( !(*needle) ) returnptr = (char *) haystack; while (*(haystack+pos) && returnptr==NULL) { if ( toupper((unsigned char)*(haystack+pos)) == toupper((unsigned char)*(needle+pos)) ) pos++; else { pos = 0; haystack++; } if ( ! (*(needle+pos)) ) returnptr = (char *) haystack; } return returnptr; } hs-bibutils-6.10.0.0/bibutils/strsearch.c0000755000000000000000000000171407346545000016337 0ustar0000000000000000/* strsearch.c * * Copyright (c) Chris Putnam 1995-2020 * * Source code released under the GPL version 2 * * strsearch() locates a case-independent substring * e.g. a case-independent version of strstr() * * returns pointer to first occurrence of substring needle in * the string haystack when found, NULL if not found * * '\0' characters terminating strings are not compared * * strsearch returns haystack when needle is empty as per strstr() * conventions * */ #include #include #include "strsearch.h" char *strsearch (const char *haystack, const char *needle) { char *returnptr=NULL; unsigned long pos=0; if ( !(*needle) ) returnptr = (char *) haystack; while (*(haystack+pos) && returnptr==NULL) { if ( toupper((unsigned char)*(haystack+pos)) == toupper((unsigned char)*(needle+pos)) ) pos++; else { pos = 0; haystack++; } if ( ! (*(needle+pos)) ) returnptr = (char *) haystack; } return returnptr; } hs-bibutils-6.10.0.0/bibutils/strsearch.h0000755000000000000000000000034507346545000016343 0ustar0000000000000000/* * strsearch.h * * Copyright (c) Chris Putnam 1995-2019 * * Source code released under the GPL version 2 * */ #ifndef STRSEARCH_H #define STRSEARCH_H char *strsearch (const char *haystack, const char *needle); #endif hs-bibutils-6.10.0.0/bibutils/title.c0000644000000000000000000000446107346545000015461 0ustar0000000000000000/* * title.c * * process titles into title/subtitle pairs for MODS * * Copyright (c) Chris Putnam 2004-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "str.h" #include "fields.h" #include "title.h" #include "is_ws.h" int title_process( fields *info, const char *tag, const char *value, int level, unsigned char nosplittitle ) { str title, subtitle; const char *p, *q; int status; str_init( &title ); str_init( &subtitle ); if ( nosplittitle ) q = NULL; else { q = strstr( value, ": " ); if ( !q ) q = strstr( value, "? " ); } if ( !q ) str_strcpyc( &title, value ); else { p = value; while ( p!=q ) str_addchar( &title, *p++ ); if ( *q=='?' ) str_addchar( &title, '?' ); q++; q = skip_ws( q ); while ( *q ) str_addchar( &subtitle, *q++ ); } if ( strncasecmp( "SHORT", tag, 5 ) ) { if ( str_has_value( &title ) ) { status = fields_add( info, "TITLE", str_cstr( &title ), level ); if ( status!=FIELDS_OK ) return 0; } if ( str_has_value( &subtitle ) ) { status = fields_add( info, "SUBTITLE", str_cstr( &subtitle ), level ); if ( status!=FIELDS_OK ) return 0; } } else { if ( str_has_value( &title ) ) { status = fields_add( info, "SHORTTITLE", str_cstr( &title ), level ); if ( status!=FIELDS_OK ) return 0; } /* no SHORT-SUBTITLE! */ } str_free( &subtitle ); str_free( &title ); return 1; } /* title_combine() * * Combine a main title and a subtitle into a full title. * * Example: * Main title = "A Clearing in the Distance" * Subtitle = "The Biography of Frederick Law Olmstead" * Full title = "A Clearing in the Distance: The Biography of Frederick Law Olmstead" * Example: * Main title = "What Makes a Good Team Player?" * Subtitle = "Personality and Team Effectiveness" * Full title = "What Makes a Good Team Player? Personality and Team Effectiveness" */ void title_combine( str *fullttl, str *mainttl, str *subttl ) { str_empty( fullttl ); if ( !mainttl ) return; str_strcpy( fullttl, mainttl ); if ( subttl ) { if ( str_has_value( mainttl ) ) { if ( mainttl->data[ mainttl->len - 1 ] != '?' && mainttl->data[ mainttl->len - 1] != ':' ) str_strcatc( fullttl, ": " ); else str_strcatc( fullttl, " " ); } str_strcat( fullttl, subttl ); } } hs-bibutils-6.10.0.0/bibutils/title.c0000755000000000000000000000446107346545000015464 0ustar0000000000000000/* * title.c * * process titles into title/subtitle pairs for MODS * * Copyright (c) Chris Putnam 2004-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "str.h" #include "fields.h" #include "title.h" #include "is_ws.h" int title_process( fields *info, const char *tag, const char *value, int level, unsigned char nosplittitle ) { str title, subtitle; const char *p, *q; int status; str_init( &title ); str_init( &subtitle ); if ( nosplittitle ) q = NULL; else { q = strstr( value, ": " ); if ( !q ) q = strstr( value, "? " ); } if ( !q ) str_strcpyc( &title, value ); else { p = value; while ( p!=q ) str_addchar( &title, *p++ ); if ( *q=='?' ) str_addchar( &title, '?' ); q++; q = skip_ws( q ); while ( *q ) str_addchar( &subtitle, *q++ ); } if ( strncasecmp( "SHORT", tag, 5 ) ) { if ( str_has_value( &title ) ) { status = fields_add( info, "TITLE", str_cstr( &title ), level ); if ( status!=FIELDS_OK ) return 0; } if ( str_has_value( &subtitle ) ) { status = fields_add( info, "SUBTITLE", str_cstr( &subtitle ), level ); if ( status!=FIELDS_OK ) return 0; } } else { if ( str_has_value( &title ) ) { status = fields_add( info, "SHORTTITLE", str_cstr( &title ), level ); if ( status!=FIELDS_OK ) return 0; } /* no SHORT-SUBTITLE! */ } str_free( &subtitle ); str_free( &title ); return 1; } /* title_combine() * * Combine a main title and a subtitle into a full title. * * Example: * Main title = "A Clearing in the Distance" * Subtitle = "The Biography of Frederick Law Olmstead" * Full title = "A Clearing in the Distance: The Biography of Frederick Law Olmstead" * Example: * Main title = "What Makes a Good Team Player?" * Subtitle = "Personality and Team Effectiveness" * Full title = "What Makes a Good Team Player? Personality and Team Effectiveness" */ void title_combine( str *fullttl, str *mainttl, str *subttl ) { str_empty( fullttl ); if ( !mainttl ) return; str_strcpy( fullttl, mainttl ); if ( subttl ) { if ( str_has_value( mainttl ) ) { if ( mainttl->data[ mainttl->len - 1 ] != '?' && mainttl->data[ mainttl->len - 1] != ':' ) str_strcatc( fullttl, ": " ); else str_strcatc( fullttl, " " ); } str_strcat( fullttl, subttl ); } } hs-bibutils-6.10.0.0/bibutils/title.h0000755000000000000000000000065007346545000015465 0ustar0000000000000000/* * title.h * * process titles into title/subtitle pairs for MODS * * Copyright (c) Chris Putnam 2004-2019 * * Source code released under the GPL verison 2 * */ #ifndef TITLE_H #define TITLE_H #include "str.h" #include "fields.h" int title_process( fields *info, const char *tag, const char *value, int level, unsigned char nosplittitle ); void title_combine( str *fullttl, str *mainttl, str *subttl ); #endif hs-bibutils-6.10.0.0/bibutils/type.c0000644000000000000000000000426707346545000015325 0ustar0000000000000000/* * type.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 */ #include #include #include #include "type.h" static int is_genre_element( fields *in, int n ) { char *tag; tag = fields_tag( in, n, FIELDS_CHRP ); if ( !strcasecmp( tag, "GENRE:MARC" ) ) return 1; if ( !strcasecmp( tag, "GENRE:BIBUTILS" ) ) return 1; if ( !strcasecmp( tag, "GENRE:UNKNOWN" ) ) return 1; return 0; } static int is_resource_element( fields *in, int n ) { if ( !strcasecmp( fields_tag( in, n, FIELDS_CHRP ), "RESOURCE" ) ) return 1; return 0; } static int is_issuance_element( fields *in, int n ) { if ( !strcasecmp( fields_tag( in, n, FIELDS_CHRP ), "ISSUANCE" ) ) return 1; else return 0; } static int match_hints( const char *value, int level, const char *match_name, int match_level ) { if ( strcasecmp( value, match_name ) ) return 0; if ( match_level!=LEVEL_ANY && level!=match_level ) return 0; return 1; } /* type_from_mods_hints() * * We return the first match from the match list that works...this makes us * independent of how the genre hints are internally stored in fields *in. * * Thus we can distinguish between 'book' and 'book chapter' in which book is * at different MODS levels by match_type arrays of: * * ... * { "book", TYPE_BOOK, LEVEL_MAIN }, * { "book", TYPE_BOOKCHAPTER, LEVEL_ANY }, * ... * * e.g. "book" at LEVEL_ANY matches any values of "book" not caught by the "book" LEVEL_MAIN line * */ int type_from_mods_hints( fields *in, int mode, match_type matches[], int nmatches, int type_unknown ) { int i, j, level, type = type_unknown; char *value; for ( i=0; in; ++j ) { if ( mode==TYPE_FROM_GENRE && !is_genre_element( in, j ) ) continue; if ( mode==TYPE_FROM_RESOURCE && !is_resource_element( in, j ) ) continue; if ( mode==TYPE_FROM_ISSUANCE && !is_issuance_element( in, j ) ) continue; value = fields_value( in, j, FIELDS_CHRP ); level = fields_level( in, j ); if ( match_hints( value, level, matches[i].name, matches[i].level ) ) { if ( type==type_unknown ) type = matches[i].type; } } } return type; } hs-bibutils-6.10.0.0/bibutils/type.c0000755000000000000000000000426707346545000015330 0ustar0000000000000000/* * type.c * * Copyright (c) Chris Putnam 2003-2020 * * Source code released under the GPL version 2 */ #include #include #include #include "type.h" static int is_genre_element( fields *in, int n ) { char *tag; tag = fields_tag( in, n, FIELDS_CHRP ); if ( !strcasecmp( tag, "GENRE:MARC" ) ) return 1; if ( !strcasecmp( tag, "GENRE:BIBUTILS" ) ) return 1; if ( !strcasecmp( tag, "GENRE:UNKNOWN" ) ) return 1; return 0; } static int is_resource_element( fields *in, int n ) { if ( !strcasecmp( fields_tag( in, n, FIELDS_CHRP ), "RESOURCE" ) ) return 1; return 0; } static int is_issuance_element( fields *in, int n ) { if ( !strcasecmp( fields_tag( in, n, FIELDS_CHRP ), "ISSUANCE" ) ) return 1; else return 0; } static int match_hints( const char *value, int level, const char *match_name, int match_level ) { if ( strcasecmp( value, match_name ) ) return 0; if ( match_level!=LEVEL_ANY && level!=match_level ) return 0; return 1; } /* type_from_mods_hints() * * We return the first match from the match list that works...this makes us * independent of how the genre hints are internally stored in fields *in. * * Thus we can distinguish between 'book' and 'book chapter' in which book is * at different MODS levels by match_type arrays of: * * ... * { "book", TYPE_BOOK, LEVEL_MAIN }, * { "book", TYPE_BOOKCHAPTER, LEVEL_ANY }, * ... * * e.g. "book" at LEVEL_ANY matches any values of "book" not caught by the "book" LEVEL_MAIN line * */ int type_from_mods_hints( fields *in, int mode, match_type matches[], int nmatches, int type_unknown ) { int i, j, level, type = type_unknown; char *value; for ( i=0; in; ++j ) { if ( mode==TYPE_FROM_GENRE && !is_genre_element( in, j ) ) continue; if ( mode==TYPE_FROM_RESOURCE && !is_resource_element( in, j ) ) continue; if ( mode==TYPE_FROM_ISSUANCE && !is_issuance_element( in, j ) ) continue; value = fields_value( in, j, FIELDS_CHRP ); level = fields_level( in, j ); if ( match_hints( value, level, matches[i].name, matches[i].level ) ) { if ( type==type_unknown ) type = matches[i].type; } } } return type; } hs-bibutils-6.10.0.0/bibutils/type.h0000755000000000000000000000076707346545000015336 0ustar0000000000000000/* * type.h * * Copyright (c) Chris Putnam 2019 * * Source code released under the GPL version 2 */ #ifndef TYPE_H #define TYPE_H #include #include #include "fields.h" #define TYPE_FROM_GENRE (0) #define TYPE_FROM_RESOURCE (1) #define TYPE_FROM_ISSUANCE (2) typedef struct match_type { char *name; int type; int level; } match_type; int type_from_mods_hints( fields *in, int mode, match_type matches[], int nmatches, int type_unknown ); #endif hs-bibutils-6.10.0.0/bibutils/unicode.c0000644000000000000000000003773407346545000015777 0ustar0000000000000000/* * unicode.c * * Helper unicode functions/values to determine the * types of unicode characters. */ #include "utf8.h" #include "unicode.h" typedef struct { unsigned int value; unsigned short info; } unicodeinfo_t; static unicodeinfo_t unicodeinfo[] = { { 48, UNICODE_NUMBER }, /* 0 */ { 49, UNICODE_NUMBER }, /* 1 */ { 50, UNICODE_NUMBER }, /* 2 */ { 51, UNICODE_NUMBER }, /* 3 */ { 52, UNICODE_NUMBER }, /* 4 */ { 53, UNICODE_NUMBER }, /* 5 */ { 54, UNICODE_NUMBER }, /* 6 */ { 55, UNICODE_NUMBER }, /* 7 */ { 56, UNICODE_NUMBER }, /* 8 */ { 57, UNICODE_NUMBER }, /* 9 */ { 65, UNICODE_UPPER }, /* Latin Capital A */ { 66, UNICODE_UPPER }, /* Latin Capital B */ { 67, UNICODE_UPPER }, /* Latin Capital C */ { 68, UNICODE_UPPER }, /* Latin Capital D */ { 69, UNICODE_UPPER }, /* Latin Capital E */ { 70, UNICODE_UPPER }, /* Latin Capital F */ { 71, UNICODE_UPPER }, /* Latin Capital G */ { 72, UNICODE_UPPER }, /* Latin Capital H */ { 73, UNICODE_UPPER }, /* Latin Capital I */ { 74, UNICODE_UPPER }, /* Latin Capital J */ { 75, UNICODE_UPPER }, /* Latin Capital K */ { 76, UNICODE_UPPER }, /* Latin Capital L */ { 77, UNICODE_UPPER }, /* Latin Capital M */ { 78, UNICODE_UPPER }, /* Latin Capital N */ { 79, UNICODE_UPPER }, /* Latin Capital O */ { 80, UNICODE_UPPER }, /* Latin Capital P */ { 81, UNICODE_UPPER }, /* Latin Capital Q */ { 82, UNICODE_UPPER }, /* Latin Capital R */ { 83, UNICODE_UPPER }, /* Latin Capital S */ { 84, UNICODE_UPPER }, /* Latin Capital T */ { 85, UNICODE_UPPER }, /* Latin Capital U */ { 86, UNICODE_UPPER }, /* Latin Capital V */ { 87, UNICODE_UPPER }, /* Latin Capital W */ { 88, UNICODE_UPPER }, /* Latin Capital X */ { 89, UNICODE_UPPER }, /* Latin Capital Y */ { 90, UNICODE_UPPER }, /* Latin Capital Z */ { 97, UNICODE_LOWER }, /* Latin Small a */ { 98, UNICODE_LOWER }, /* Latin Small b */ { 99, UNICODE_LOWER }, /* Latin Small c */ { 100, UNICODE_LOWER }, /* Latin Small d */ { 101, UNICODE_LOWER }, /* Latin Small e */ { 102, UNICODE_LOWER }, /* Latin Small f */ { 103, UNICODE_LOWER }, /* Latin Small g */ { 104, UNICODE_LOWER }, /* Latin Small h */ { 105, UNICODE_LOWER }, /* Latin Small i */ { 106, UNICODE_LOWER }, /* Latin Small j */ { 107, UNICODE_LOWER }, /* Latin Small k */ { 108, UNICODE_LOWER }, /* Latin Small l */ { 109, UNICODE_LOWER }, /* Latin Small m */ { 110, UNICODE_LOWER }, /* Latin Small n */ { 111, UNICODE_LOWER }, /* Latin Small o */ { 112, UNICODE_LOWER }, /* Latin Small p */ { 113, UNICODE_LOWER }, /* Latin Small q */ { 114, UNICODE_LOWER }, /* Latin Small r */ { 115, UNICODE_LOWER }, /* Latin Small s */ { 116, UNICODE_LOWER }, /* Latin Small t */ { 117, UNICODE_LOWER }, /* Latin Small u */ { 118, UNICODE_LOWER }, /* Latin Small v */ { 119, UNICODE_LOWER }, /* Latin Small w */ { 120, UNICODE_LOWER }, /* Latin Small x */ { 121, UNICODE_LOWER }, /* Latin Small y */ { 122, UNICODE_LOWER }, /* Latin Small z */ { 192, UNICODE_UPPER }, /* Latin Capital A with grave */ { 193, UNICODE_UPPER }, /* Latin Capital A with acute */ { 194, UNICODE_UPPER }, /* Latin Capital A with circumflex */ { 195, UNICODE_UPPER }, /* Latin Capital A with tilde */ { 196, UNICODE_UPPER }, /* Latin Capital A with diuresis */ { 197, UNICODE_UPPER }, /* Latin Capital A with ring above */ { 198, UNICODE_UPPER }, /* Latin Capital AE */ { 199, UNICODE_UPPER }, /* Latin Capital C with cedilla */ { 200, UNICODE_UPPER }, /* Latin Capital E with grave */ { 201, UNICODE_UPPER }, /* Latin Capital E with acute */ { 202, UNICODE_UPPER }, /* Latin Capital E with circumflex */ { 203, UNICODE_UPPER }, /* Latin Capital E with diuresis */ { 204, UNICODE_UPPER }, /* Latin Capital I with grave */ { 205, UNICODE_UPPER }, /* Latin Capital I with acute */ { 206, UNICODE_UPPER }, /* Latin Capital I with circumflex */ { 207, UNICODE_UPPER }, /* Latin Capital I with diuresis */ { 208, UNICODE_UPPER }, /* Latin Capital ETH */ { 209, UNICODE_UPPER }, /* Latin Capital N with tilde */ { 210, UNICODE_UPPER }, /* Latin Capital O with grave */ { 211, UNICODE_UPPER }, /* Latin Capital O with acute */ { 212, UNICODE_UPPER }, /* Latin Capital O with circumflex */ { 213, UNICODE_UPPER }, /* Latin Capital O with tilde */ { 214, UNICODE_UPPER }, /* Latin Captial O with diaeresis */ { 216, UNICODE_UPPER }, /* Latin Capital O with stroke */ { 217, UNICODE_UPPER }, /* Latin Capital U with grave */ { 218, UNICODE_UPPER }, /* Latin Capital U with acute */ { 219, UNICODE_UPPER }, /* Latin Capital U with circumflex */ { 220, UNICODE_UPPER }, /* Latin Capital U with diaeresis */ { 221, UNICODE_UPPER }, /* Latin Capital Y with acute */ { 222, UNICODE_UPPER }, /* Latin Capital THORN */ { 223, UNICODE_LOWER }, /* German sz ligature */ { 224, UNICODE_LOWER }, /* Latin Small a with grave */ { 225, UNICODE_LOWER }, /* Latin Small a with acute */ { 226, UNICODE_LOWER }, /* Latin Small a with circumflex */ { 227, UNICODE_LOWER }, /* Latin Small a with tilde */ { 228, UNICODE_LOWER }, /* Latin Small a with diuresis */ { 229, UNICODE_LOWER }, /* Latin Small a with ring above */ { 230, UNICODE_LOWER }, /* Latin Small ae */ { 231, UNICODE_LOWER }, /* Latin Small c with cedilla */ { 232, UNICODE_LOWER }, /* Latin Small e with grave */ { 233, UNICODE_LOWER }, /* Latin Small e with acute */ { 234, UNICODE_LOWER }, /* Latin Small e with circumflex */ { 235, UNICODE_LOWER }, /* Latin Small e with diuresis */ { 236, UNICODE_LOWER }, /* Latin Small i with grave */ { 237, UNICODE_LOWER }, /* Latin Small i with acute */ { 238, UNICODE_LOWER }, /* Latin Small i with circumflex */ { 239, UNICODE_LOWER }, /* Latin Small i with diuresis */ { 240, UNICODE_LOWER }, /* Latin Small eth */ { 241, UNICODE_LOWER }, /* Latin Small n with tilde */ { 242, UNICODE_LOWER }, /* Latin Small o with grave */ { 243, UNICODE_LOWER }, /* Latin Small o with acute */ { 244, UNICODE_LOWER }, /* Latin Small o with circumflex */ { 245, UNICODE_LOWER }, /* Latin Small o with tilde */ { 246, UNICODE_LOWER }, /* Latin Small o with diaeresis */ { 248, UNICODE_LOWER }, /* Latin Small o with stroke */ { 249, UNICODE_LOWER }, /* Latin Small u with grave */ { 250, UNICODE_LOWER }, /* Latin Small u with acute */ { 251, UNICODE_LOWER }, /* Latin Small u with circumflex */ { 252, UNICODE_LOWER }, /* Latin Small u with diaeresis */ { 253, UNICODE_LOWER }, /* Latin Small y with acute */ { 254, UNICODE_LOWER }, /* Latin Small thorn */ { 255, UNICODE_LOWER }, /* Latin Small y with diaeresis */ { 256, UNICODE_UPPER }, /* Latin Capital A with macron */ { 257, UNICODE_LOWER }, /* Latin Small a with macron */ { 258, UNICODE_UPPER }, /* Latin Capital A with breve */ { 259, UNICODE_LOWER }, /* Latin Small a with breve */ { 260, UNICODE_UPPER }, /* Latin Capital A with ogonek */ { 261, UNICODE_LOWER }, /* Latin Small a with ogonek */ { 262, UNICODE_UPPER }, /* Latin Capital C with acute */ { 263, UNICODE_LOWER }, /* Latin Small c with acute */ { 264, UNICODE_UPPER }, /* Latin Capital C with circumflex */ { 265, UNICODE_LOWER }, /* Latin Small c with circumflex */ { 266, UNICODE_UPPER }, /* Latin Capital C with dot above */ { 267, UNICODE_LOWER }, /* Latin Small c with dot above */ { 268, UNICODE_UPPER }, /* Latin Capital C with caron (hacek) */ { 269, UNICODE_LOWER }, /* Latin Small c with caron (hacek) */ { 270, UNICODE_UPPER }, /* Latin Capital D with caron (hacek) */ { 271, UNICODE_LOWER }, /* Latin Small d with caron (hacek) */ { 272, UNICODE_UPPER }, /* Latin Capital D with stroke */ { 273, UNICODE_LOWER }, /* Latin Small d with stroke */ { 274, UNICODE_UPPER }, /* Latin Capital E with macron */ { 275, UNICODE_LOWER }, /* Latin Small e with macron */ { 276, UNICODE_UPPER }, /* Latin Capital E with breve */ { 277, UNICODE_LOWER }, /* Latin Small e with breve */ { 278, UNICODE_UPPER }, /* Latin Capital E with dot above */ { 279, UNICODE_LOWER }, /* Latin Small e with dot above */ { 280, UNICODE_UPPER }, /* Latin Capital E with ogonek */ { 281, UNICODE_LOWER }, /* Latin Small e with ogonek */ { 282, UNICODE_UPPER }, /* Latin Capital E with caron (hacek) */ { 283, UNICODE_LOWER }, /* Latin Small e with caron */ { 284, UNICODE_UPPER }, /* Latin Capital G with circumflex */ { 285, UNICODE_LOWER }, /* Latin Small g with circumflex */ { 286, UNICODE_UPPER }, /* Latin Capital G with breve */ { 287, UNICODE_LOWER }, /* Latin Small g with breve */ { 288, UNICODE_UPPER }, /* Latin Capital G with dot above */ { 289, UNICODE_LOWER }, /* Latin Small g with dot above */ { 290, UNICODE_UPPER }, /* Latin Capital G with cedilla */ { 291, UNICODE_LOWER }, /* Latin Small g with cedilla */ { 292, UNICODE_UPPER }, /* Latin Capital H with circumflex */ { 293, UNICODE_LOWER }, /* Latin Small h with circumflex */ { 294, UNICODE_UPPER }, /* Latin Capital H with stroke */ { 295, UNICODE_LOWER }, /* Latin Small h with stroke */ { 296, UNICODE_UPPER }, /* Latin Capital I with tilde */ { 297, UNICODE_LOWER }, /* Latin Small i with tilde */ { 298, UNICODE_UPPER }, /* Latin Capital I with macron */ { 299, UNICODE_LOWER }, /* Latin Small i with macron */ { 300, UNICODE_UPPER }, /* Latin Capital I with breve */ { 301, UNICODE_LOWER }, /* Latin Small i with breve */ { 302, UNICODE_UPPER }, /* Latin Capital I with ogonek */ { 303, UNICODE_LOWER }, /* Latin Small i with ogonek */ { 304, UNICODE_UPPER }, /* Latin Capital I with dot above */ { 305, UNICODE_LOWER }, /* Latin Small i without dot above */ { 306, UNICODE_UPPER }, /* Latin Capital IJ */ { 307, UNICODE_LOWER }, /* Latin Small IJ */ { 308, UNICODE_UPPER }, /* Latin Capital J with circumflex */ { 309, UNICODE_LOWER }, /* Latin Small j with circumflex */ { 310, UNICODE_UPPER }, /* Latin Capital K with cedilla */ { 311, UNICODE_LOWER }, /* Latin Small j with cedilla */ { 312, UNICODE_LOWER }, /* Latin Small kra */ { 313, UNICODE_UPPER }, /* Latin Capital L with acute */ { 314, UNICODE_LOWER }, /* Latin Small l with acute */ { 315, UNICODE_UPPER }, /* Latin Capital L with cedilla */ { 316, UNICODE_LOWER }, /* Latin Small l with cedilla */ { 317, UNICODE_UPPER }, /* Latin Capital L with caron */ { 318, UNICODE_LOWER }, /* Latin Small l with caron */ { 319, UNICODE_UPPER }, /* Latin Capital L with middle dot */ { 320, UNICODE_LOWER }, /* Latin Small l with middle dot */ { 321, UNICODE_UPPER }, /* Latin Capital L with stroke */ { 322, UNICODE_LOWER }, /* Latin Small l with stroke */ { 323, UNICODE_UPPER }, /* Latin Capital N with acute */ { 324, UNICODE_LOWER }, /* Latin Small n with acute */ { 325, UNICODE_UPPER }, /* Latin Capital N with cedilla */ { 326, UNICODE_LOWER }, /* Latin Small n with cedilla */ { 327, UNICODE_UPPER }, /* Latin Capital N with caron */ { 328, UNICODE_LOWER }, /* Latin Small n with caron */ { 329, UNICODE_LOWER }, /* Latin Small n preceeded by apostrophe */ { 330, UNICODE_UPPER }, /* Latin Capital Eng */ { 331, UNICODE_LOWER }, /* Latin Small eng */ { 332, UNICODE_UPPER }, /* Latin Capital O with macron */ { 333, UNICODE_LOWER }, /* Latin Small o with macron */ { 334, UNICODE_UPPER }, /* Latin Capital O with breve */ { 335, UNICODE_LOWER }, /* Latin Small o with breve */ { 336, UNICODE_UPPER }, /* Latin Capital O with double acute */ { 337, UNICODE_LOWER }, /* Latin Small o with double acute */ { 338, UNICODE_UPPER }, /* Latin Capital OE */ { 339, UNICODE_LOWER }, /* Latin Small oe */ { 340, UNICODE_UPPER }, /* Latin Capital R with acute */ { 341, UNICODE_LOWER }, /* Latin Small r with acute */ { 342, UNICODE_UPPER }, /* Latin Capital R with cedilla */ { 343, UNICODE_LOWER }, /* Latin Small r with cedilla */ { 344, UNICODE_UPPER }, /* Latin Capital R with caron */ { 345, UNICODE_LOWER }, /* Latin Small r with caron */ { 346, UNICODE_UPPER }, /* Latin Capital S with acute */ { 347, UNICODE_LOWER }, /* Latin Small s with acute */ { 348, UNICODE_UPPER }, /* Latin Capital S with circumflex */ { 349, UNICODE_LOWER }, /* Latin Small s with circumflex */ { 350, UNICODE_UPPER }, /* Latin Capital S with cedilla */ { 351, UNICODE_LOWER }, /* Latin Small s with cedilla */ { 352, UNICODE_UPPER }, /* Latin Capital S with caron */ { 353, UNICODE_LOWER }, /* Latin Small s with caron */ { 354, UNICODE_UPPER }, /* Latin Capital T with cedilla */ { 355, UNICODE_LOWER }, /* Latin Small t with cedilla */ { 356, UNICODE_UPPER }, /* Latin Capital T with caron */ { 357, UNICODE_LOWER }, /* Latin Small t with caron */ { 358, UNICODE_UPPER }, /* Latin Capital T with stroke */ { 359, UNICODE_LOWER }, /* Latin Small t with stroke */ { 360, UNICODE_UPPER }, /* Latin Capital U with tilde */ { 361, UNICODE_LOWER }, /* Latin Small u with tilde */ { 362, UNICODE_UPPER }, /* Latin Capital U with macron */ { 363, UNICODE_LOWER }, /* Latin Small u with macron */ { 364, UNICODE_UPPER }, /* Latin Capital U with breve */ { 365, UNICODE_LOWER }, /* Latin Small u with breve */ { 366, UNICODE_UPPER }, /* Latin Capital U with ring above */ { 367, UNICODE_LOWER }, /* Latin Small u with ring above */ { 368, UNICODE_UPPER }, /* Latin Capital U with double acute */ { 369, UNICODE_LOWER }, /* Latin Small u with double acute */ { 370, UNICODE_UPPER }, /* Latin Capital U with ogonek */ { 371, UNICODE_LOWER }, /* Latin Small u with ogonek */ { 372, UNICODE_UPPER }, /* Latin Capital W with circumflex */ { 373, UNICODE_LOWER }, /* Latin Small w with circumflex */ { 374, UNICODE_UPPER }, /* Latin Capital Y with circumflex */ { 375, UNICODE_LOWER }, /* Latin Small y with circumflex */ { 376, UNICODE_UPPER }, /* Latin Capital Y with diaeresis */ { 377, UNICODE_UPPER }, /* Latin Capital Z with acute */ { 378, UNICODE_LOWER }, /* Latin Small z with acute */ { 379, UNICODE_UPPER }, /* Latin Capital Z with dot above */ { 380, UNICODE_LOWER }, /* Latin Small z with dot above */ { 381, UNICODE_UPPER }, /* Latin Capital Z with caron */ { 382, UNICODE_LOWER }, /* Latin Small z with caron */ { 383, UNICODE_LOWER }, /* Latin Small long S */ { 461, UNICODE_UPPER }, /* Latin Capital A with caron (hacek) */ { 462, UNICODE_LOWER }, /* Latin Small a with caron (hacek) */ { 463, UNICODE_UPPER }, /* Latin Capital I with caron (hacek) */ { 464, UNICODE_LOWER }, /* Latin Small i with caron (hacek) */ { 465, UNICODE_UPPER }, /* Latin Capital O with caron (hacek) */ { 466, UNICODE_LOWER }, /* Latin Small o with caron (hacek) */ { 467, UNICODE_UPPER }, /* Latin Capital U with caron (hacek) */ { 468, UNICODE_LOWER }, /* Latin Small u with caron (hacek) */ { 486, UNICODE_UPPER }, /* Latin Capital G with caron */ { 487, UNICODE_LOWER }, /* Latin Small g with caron */ { 488, UNICODE_UPPER }, /* Latin Capital J with caron */ { 489, UNICODE_LOWER }, /* Latin Small j with caron */ { 490, UNICODE_UPPER }, /* Latin Capital O with caron */ { 491, UNICODE_LOWER }, /* Latin Small o with caron */ { 500, UNICODE_UPPER }, /* Latin Capital G with acute */ { 501, UNICODE_LOWER }, /* Latin Small g with caron */ }; static int nunicodeinfo = sizeof( unicodeinfo ) / sizeof( unicodeinfo[0] ); static int unicode_find( unsigned int unicode_character ) { int min = 0, max = nunicodeinfo, mid; while ( min < max ) { mid = ( min + max ) / 2; if ( unicodeinfo[mid].value < unicode_character ) min = mid + 1; else max = mid; } if ( ( max==min ) && ( unicodeinfo[min].value == unicode_character ) ) return min; else return -1; } unsigned short unicode_utf8_classify( char *p ) { unsigned int unicode_character, pos = 0; int n; unicode_character = utf8_decode( p, &pos ); n = unicode_find( unicode_character ); if ( n==-1 ) return UNICODE_SYMBOL; else return unicodeinfo[n].info; } unsigned short unicode_utf8_classify_str( str *s ) { unsigned int unicode_character, pos = 0; unsigned short value = 0; int n; while ( pos < s->len ) { unicode_character = utf8_decode( str_cstr( s ), &pos ); n = unicode_find( unicode_character ); if ( n==-1 ) value |= UNICODE_SYMBOL; else value |= unicodeinfo[n].info; } return value; } hs-bibutils-6.10.0.0/bibutils/unicode.c0000755000000000000000000003773407346545000016002 0ustar0000000000000000/* * unicode.c * * Helper unicode functions/values to determine the * types of unicode characters. */ #include "utf8.h" #include "unicode.h" typedef struct { unsigned int value; unsigned short info; } unicodeinfo_t; static unicodeinfo_t unicodeinfo[] = { { 48, UNICODE_NUMBER }, /* 0 */ { 49, UNICODE_NUMBER }, /* 1 */ { 50, UNICODE_NUMBER }, /* 2 */ { 51, UNICODE_NUMBER }, /* 3 */ { 52, UNICODE_NUMBER }, /* 4 */ { 53, UNICODE_NUMBER }, /* 5 */ { 54, UNICODE_NUMBER }, /* 6 */ { 55, UNICODE_NUMBER }, /* 7 */ { 56, UNICODE_NUMBER }, /* 8 */ { 57, UNICODE_NUMBER }, /* 9 */ { 65, UNICODE_UPPER }, /* Latin Capital A */ { 66, UNICODE_UPPER }, /* Latin Capital B */ { 67, UNICODE_UPPER }, /* Latin Capital C */ { 68, UNICODE_UPPER }, /* Latin Capital D */ { 69, UNICODE_UPPER }, /* Latin Capital E */ { 70, UNICODE_UPPER }, /* Latin Capital F */ { 71, UNICODE_UPPER }, /* Latin Capital G */ { 72, UNICODE_UPPER }, /* Latin Capital H */ { 73, UNICODE_UPPER }, /* Latin Capital I */ { 74, UNICODE_UPPER }, /* Latin Capital J */ { 75, UNICODE_UPPER }, /* Latin Capital K */ { 76, UNICODE_UPPER }, /* Latin Capital L */ { 77, UNICODE_UPPER }, /* Latin Capital M */ { 78, UNICODE_UPPER }, /* Latin Capital N */ { 79, UNICODE_UPPER }, /* Latin Capital O */ { 80, UNICODE_UPPER }, /* Latin Capital P */ { 81, UNICODE_UPPER }, /* Latin Capital Q */ { 82, UNICODE_UPPER }, /* Latin Capital R */ { 83, UNICODE_UPPER }, /* Latin Capital S */ { 84, UNICODE_UPPER }, /* Latin Capital T */ { 85, UNICODE_UPPER }, /* Latin Capital U */ { 86, UNICODE_UPPER }, /* Latin Capital V */ { 87, UNICODE_UPPER }, /* Latin Capital W */ { 88, UNICODE_UPPER }, /* Latin Capital X */ { 89, UNICODE_UPPER }, /* Latin Capital Y */ { 90, UNICODE_UPPER }, /* Latin Capital Z */ { 97, UNICODE_LOWER }, /* Latin Small a */ { 98, UNICODE_LOWER }, /* Latin Small b */ { 99, UNICODE_LOWER }, /* Latin Small c */ { 100, UNICODE_LOWER }, /* Latin Small d */ { 101, UNICODE_LOWER }, /* Latin Small e */ { 102, UNICODE_LOWER }, /* Latin Small f */ { 103, UNICODE_LOWER }, /* Latin Small g */ { 104, UNICODE_LOWER }, /* Latin Small h */ { 105, UNICODE_LOWER }, /* Latin Small i */ { 106, UNICODE_LOWER }, /* Latin Small j */ { 107, UNICODE_LOWER }, /* Latin Small k */ { 108, UNICODE_LOWER }, /* Latin Small l */ { 109, UNICODE_LOWER }, /* Latin Small m */ { 110, UNICODE_LOWER }, /* Latin Small n */ { 111, UNICODE_LOWER }, /* Latin Small o */ { 112, UNICODE_LOWER }, /* Latin Small p */ { 113, UNICODE_LOWER }, /* Latin Small q */ { 114, UNICODE_LOWER }, /* Latin Small r */ { 115, UNICODE_LOWER }, /* Latin Small s */ { 116, UNICODE_LOWER }, /* Latin Small t */ { 117, UNICODE_LOWER }, /* Latin Small u */ { 118, UNICODE_LOWER }, /* Latin Small v */ { 119, UNICODE_LOWER }, /* Latin Small w */ { 120, UNICODE_LOWER }, /* Latin Small x */ { 121, UNICODE_LOWER }, /* Latin Small y */ { 122, UNICODE_LOWER }, /* Latin Small z */ { 192, UNICODE_UPPER }, /* Latin Capital A with grave */ { 193, UNICODE_UPPER }, /* Latin Capital A with acute */ { 194, UNICODE_UPPER }, /* Latin Capital A with circumflex */ { 195, UNICODE_UPPER }, /* Latin Capital A with tilde */ { 196, UNICODE_UPPER }, /* Latin Capital A with diuresis */ { 197, UNICODE_UPPER }, /* Latin Capital A with ring above */ { 198, UNICODE_UPPER }, /* Latin Capital AE */ { 199, UNICODE_UPPER }, /* Latin Capital C with cedilla */ { 200, UNICODE_UPPER }, /* Latin Capital E with grave */ { 201, UNICODE_UPPER }, /* Latin Capital E with acute */ { 202, UNICODE_UPPER }, /* Latin Capital E with circumflex */ { 203, UNICODE_UPPER }, /* Latin Capital E with diuresis */ { 204, UNICODE_UPPER }, /* Latin Capital I with grave */ { 205, UNICODE_UPPER }, /* Latin Capital I with acute */ { 206, UNICODE_UPPER }, /* Latin Capital I with circumflex */ { 207, UNICODE_UPPER }, /* Latin Capital I with diuresis */ { 208, UNICODE_UPPER }, /* Latin Capital ETH */ { 209, UNICODE_UPPER }, /* Latin Capital N with tilde */ { 210, UNICODE_UPPER }, /* Latin Capital O with grave */ { 211, UNICODE_UPPER }, /* Latin Capital O with acute */ { 212, UNICODE_UPPER }, /* Latin Capital O with circumflex */ { 213, UNICODE_UPPER }, /* Latin Capital O with tilde */ { 214, UNICODE_UPPER }, /* Latin Captial O with diaeresis */ { 216, UNICODE_UPPER }, /* Latin Capital O with stroke */ { 217, UNICODE_UPPER }, /* Latin Capital U with grave */ { 218, UNICODE_UPPER }, /* Latin Capital U with acute */ { 219, UNICODE_UPPER }, /* Latin Capital U with circumflex */ { 220, UNICODE_UPPER }, /* Latin Capital U with diaeresis */ { 221, UNICODE_UPPER }, /* Latin Capital Y with acute */ { 222, UNICODE_UPPER }, /* Latin Capital THORN */ { 223, UNICODE_LOWER }, /* German sz ligature */ { 224, UNICODE_LOWER }, /* Latin Small a with grave */ { 225, UNICODE_LOWER }, /* Latin Small a with acute */ { 226, UNICODE_LOWER }, /* Latin Small a with circumflex */ { 227, UNICODE_LOWER }, /* Latin Small a with tilde */ { 228, UNICODE_LOWER }, /* Latin Small a with diuresis */ { 229, UNICODE_LOWER }, /* Latin Small a with ring above */ { 230, UNICODE_LOWER }, /* Latin Small ae */ { 231, UNICODE_LOWER }, /* Latin Small c with cedilla */ { 232, UNICODE_LOWER }, /* Latin Small e with grave */ { 233, UNICODE_LOWER }, /* Latin Small e with acute */ { 234, UNICODE_LOWER }, /* Latin Small e with circumflex */ { 235, UNICODE_LOWER }, /* Latin Small e with diuresis */ { 236, UNICODE_LOWER }, /* Latin Small i with grave */ { 237, UNICODE_LOWER }, /* Latin Small i with acute */ { 238, UNICODE_LOWER }, /* Latin Small i with circumflex */ { 239, UNICODE_LOWER }, /* Latin Small i with diuresis */ { 240, UNICODE_LOWER }, /* Latin Small eth */ { 241, UNICODE_LOWER }, /* Latin Small n with tilde */ { 242, UNICODE_LOWER }, /* Latin Small o with grave */ { 243, UNICODE_LOWER }, /* Latin Small o with acute */ { 244, UNICODE_LOWER }, /* Latin Small o with circumflex */ { 245, UNICODE_LOWER }, /* Latin Small o with tilde */ { 246, UNICODE_LOWER }, /* Latin Small o with diaeresis */ { 248, UNICODE_LOWER }, /* Latin Small o with stroke */ { 249, UNICODE_LOWER }, /* Latin Small u with grave */ { 250, UNICODE_LOWER }, /* Latin Small u with acute */ { 251, UNICODE_LOWER }, /* Latin Small u with circumflex */ { 252, UNICODE_LOWER }, /* Latin Small u with diaeresis */ { 253, UNICODE_LOWER }, /* Latin Small y with acute */ { 254, UNICODE_LOWER }, /* Latin Small thorn */ { 255, UNICODE_LOWER }, /* Latin Small y with diaeresis */ { 256, UNICODE_UPPER }, /* Latin Capital A with macron */ { 257, UNICODE_LOWER }, /* Latin Small a with macron */ { 258, UNICODE_UPPER }, /* Latin Capital A with breve */ { 259, UNICODE_LOWER }, /* Latin Small a with breve */ { 260, UNICODE_UPPER }, /* Latin Capital A with ogonek */ { 261, UNICODE_LOWER }, /* Latin Small a with ogonek */ { 262, UNICODE_UPPER }, /* Latin Capital C with acute */ { 263, UNICODE_LOWER }, /* Latin Small c with acute */ { 264, UNICODE_UPPER }, /* Latin Capital C with circumflex */ { 265, UNICODE_LOWER }, /* Latin Small c with circumflex */ { 266, UNICODE_UPPER }, /* Latin Capital C with dot above */ { 267, UNICODE_LOWER }, /* Latin Small c with dot above */ { 268, UNICODE_UPPER }, /* Latin Capital C with caron (hacek) */ { 269, UNICODE_LOWER }, /* Latin Small c with caron (hacek) */ { 270, UNICODE_UPPER }, /* Latin Capital D with caron (hacek) */ { 271, UNICODE_LOWER }, /* Latin Small d with caron (hacek) */ { 272, UNICODE_UPPER }, /* Latin Capital D with stroke */ { 273, UNICODE_LOWER }, /* Latin Small d with stroke */ { 274, UNICODE_UPPER }, /* Latin Capital E with macron */ { 275, UNICODE_LOWER }, /* Latin Small e with macron */ { 276, UNICODE_UPPER }, /* Latin Capital E with breve */ { 277, UNICODE_LOWER }, /* Latin Small e with breve */ { 278, UNICODE_UPPER }, /* Latin Capital E with dot above */ { 279, UNICODE_LOWER }, /* Latin Small e with dot above */ { 280, UNICODE_UPPER }, /* Latin Capital E with ogonek */ { 281, UNICODE_LOWER }, /* Latin Small e with ogonek */ { 282, UNICODE_UPPER }, /* Latin Capital E with caron (hacek) */ { 283, UNICODE_LOWER }, /* Latin Small e with caron */ { 284, UNICODE_UPPER }, /* Latin Capital G with circumflex */ { 285, UNICODE_LOWER }, /* Latin Small g with circumflex */ { 286, UNICODE_UPPER }, /* Latin Capital G with breve */ { 287, UNICODE_LOWER }, /* Latin Small g with breve */ { 288, UNICODE_UPPER }, /* Latin Capital G with dot above */ { 289, UNICODE_LOWER }, /* Latin Small g with dot above */ { 290, UNICODE_UPPER }, /* Latin Capital G with cedilla */ { 291, UNICODE_LOWER }, /* Latin Small g with cedilla */ { 292, UNICODE_UPPER }, /* Latin Capital H with circumflex */ { 293, UNICODE_LOWER }, /* Latin Small h with circumflex */ { 294, UNICODE_UPPER }, /* Latin Capital H with stroke */ { 295, UNICODE_LOWER }, /* Latin Small h with stroke */ { 296, UNICODE_UPPER }, /* Latin Capital I with tilde */ { 297, UNICODE_LOWER }, /* Latin Small i with tilde */ { 298, UNICODE_UPPER }, /* Latin Capital I with macron */ { 299, UNICODE_LOWER }, /* Latin Small i with macron */ { 300, UNICODE_UPPER }, /* Latin Capital I with breve */ { 301, UNICODE_LOWER }, /* Latin Small i with breve */ { 302, UNICODE_UPPER }, /* Latin Capital I with ogonek */ { 303, UNICODE_LOWER }, /* Latin Small i with ogonek */ { 304, UNICODE_UPPER }, /* Latin Capital I with dot above */ { 305, UNICODE_LOWER }, /* Latin Small i without dot above */ { 306, UNICODE_UPPER }, /* Latin Capital IJ */ { 307, UNICODE_LOWER }, /* Latin Small IJ */ { 308, UNICODE_UPPER }, /* Latin Capital J with circumflex */ { 309, UNICODE_LOWER }, /* Latin Small j with circumflex */ { 310, UNICODE_UPPER }, /* Latin Capital K with cedilla */ { 311, UNICODE_LOWER }, /* Latin Small j with cedilla */ { 312, UNICODE_LOWER }, /* Latin Small kra */ { 313, UNICODE_UPPER }, /* Latin Capital L with acute */ { 314, UNICODE_LOWER }, /* Latin Small l with acute */ { 315, UNICODE_UPPER }, /* Latin Capital L with cedilla */ { 316, UNICODE_LOWER }, /* Latin Small l with cedilla */ { 317, UNICODE_UPPER }, /* Latin Capital L with caron */ { 318, UNICODE_LOWER }, /* Latin Small l with caron */ { 319, UNICODE_UPPER }, /* Latin Capital L with middle dot */ { 320, UNICODE_LOWER }, /* Latin Small l with middle dot */ { 321, UNICODE_UPPER }, /* Latin Capital L with stroke */ { 322, UNICODE_LOWER }, /* Latin Small l with stroke */ { 323, UNICODE_UPPER }, /* Latin Capital N with acute */ { 324, UNICODE_LOWER }, /* Latin Small n with acute */ { 325, UNICODE_UPPER }, /* Latin Capital N with cedilla */ { 326, UNICODE_LOWER }, /* Latin Small n with cedilla */ { 327, UNICODE_UPPER }, /* Latin Capital N with caron */ { 328, UNICODE_LOWER }, /* Latin Small n with caron */ { 329, UNICODE_LOWER }, /* Latin Small n preceeded by apostrophe */ { 330, UNICODE_UPPER }, /* Latin Capital Eng */ { 331, UNICODE_LOWER }, /* Latin Small eng */ { 332, UNICODE_UPPER }, /* Latin Capital O with macron */ { 333, UNICODE_LOWER }, /* Latin Small o with macron */ { 334, UNICODE_UPPER }, /* Latin Capital O with breve */ { 335, UNICODE_LOWER }, /* Latin Small o with breve */ { 336, UNICODE_UPPER }, /* Latin Capital O with double acute */ { 337, UNICODE_LOWER }, /* Latin Small o with double acute */ { 338, UNICODE_UPPER }, /* Latin Capital OE */ { 339, UNICODE_LOWER }, /* Latin Small oe */ { 340, UNICODE_UPPER }, /* Latin Capital R with acute */ { 341, UNICODE_LOWER }, /* Latin Small r with acute */ { 342, UNICODE_UPPER }, /* Latin Capital R with cedilla */ { 343, UNICODE_LOWER }, /* Latin Small r with cedilla */ { 344, UNICODE_UPPER }, /* Latin Capital R with caron */ { 345, UNICODE_LOWER }, /* Latin Small r with caron */ { 346, UNICODE_UPPER }, /* Latin Capital S with acute */ { 347, UNICODE_LOWER }, /* Latin Small s with acute */ { 348, UNICODE_UPPER }, /* Latin Capital S with circumflex */ { 349, UNICODE_LOWER }, /* Latin Small s with circumflex */ { 350, UNICODE_UPPER }, /* Latin Capital S with cedilla */ { 351, UNICODE_LOWER }, /* Latin Small s with cedilla */ { 352, UNICODE_UPPER }, /* Latin Capital S with caron */ { 353, UNICODE_LOWER }, /* Latin Small s with caron */ { 354, UNICODE_UPPER }, /* Latin Capital T with cedilla */ { 355, UNICODE_LOWER }, /* Latin Small t with cedilla */ { 356, UNICODE_UPPER }, /* Latin Capital T with caron */ { 357, UNICODE_LOWER }, /* Latin Small t with caron */ { 358, UNICODE_UPPER }, /* Latin Capital T with stroke */ { 359, UNICODE_LOWER }, /* Latin Small t with stroke */ { 360, UNICODE_UPPER }, /* Latin Capital U with tilde */ { 361, UNICODE_LOWER }, /* Latin Small u with tilde */ { 362, UNICODE_UPPER }, /* Latin Capital U with macron */ { 363, UNICODE_LOWER }, /* Latin Small u with macron */ { 364, UNICODE_UPPER }, /* Latin Capital U with breve */ { 365, UNICODE_LOWER }, /* Latin Small u with breve */ { 366, UNICODE_UPPER }, /* Latin Capital U with ring above */ { 367, UNICODE_LOWER }, /* Latin Small u with ring above */ { 368, UNICODE_UPPER }, /* Latin Capital U with double acute */ { 369, UNICODE_LOWER }, /* Latin Small u with double acute */ { 370, UNICODE_UPPER }, /* Latin Capital U with ogonek */ { 371, UNICODE_LOWER }, /* Latin Small u with ogonek */ { 372, UNICODE_UPPER }, /* Latin Capital W with circumflex */ { 373, UNICODE_LOWER }, /* Latin Small w with circumflex */ { 374, UNICODE_UPPER }, /* Latin Capital Y with circumflex */ { 375, UNICODE_LOWER }, /* Latin Small y with circumflex */ { 376, UNICODE_UPPER }, /* Latin Capital Y with diaeresis */ { 377, UNICODE_UPPER }, /* Latin Capital Z with acute */ { 378, UNICODE_LOWER }, /* Latin Small z with acute */ { 379, UNICODE_UPPER }, /* Latin Capital Z with dot above */ { 380, UNICODE_LOWER }, /* Latin Small z with dot above */ { 381, UNICODE_UPPER }, /* Latin Capital Z with caron */ { 382, UNICODE_LOWER }, /* Latin Small z with caron */ { 383, UNICODE_LOWER }, /* Latin Small long S */ { 461, UNICODE_UPPER }, /* Latin Capital A with caron (hacek) */ { 462, UNICODE_LOWER }, /* Latin Small a with caron (hacek) */ { 463, UNICODE_UPPER }, /* Latin Capital I with caron (hacek) */ { 464, UNICODE_LOWER }, /* Latin Small i with caron (hacek) */ { 465, UNICODE_UPPER }, /* Latin Capital O with caron (hacek) */ { 466, UNICODE_LOWER }, /* Latin Small o with caron (hacek) */ { 467, UNICODE_UPPER }, /* Latin Capital U with caron (hacek) */ { 468, UNICODE_LOWER }, /* Latin Small u with caron (hacek) */ { 486, UNICODE_UPPER }, /* Latin Capital G with caron */ { 487, UNICODE_LOWER }, /* Latin Small g with caron */ { 488, UNICODE_UPPER }, /* Latin Capital J with caron */ { 489, UNICODE_LOWER }, /* Latin Small j with caron */ { 490, UNICODE_UPPER }, /* Latin Capital O with caron */ { 491, UNICODE_LOWER }, /* Latin Small o with caron */ { 500, UNICODE_UPPER }, /* Latin Capital G with acute */ { 501, UNICODE_LOWER }, /* Latin Small g with caron */ }; static int nunicodeinfo = sizeof( unicodeinfo ) / sizeof( unicodeinfo[0] ); static int unicode_find( unsigned int unicode_character ) { int min = 0, max = nunicodeinfo, mid; while ( min < max ) { mid = ( min + max ) / 2; if ( unicodeinfo[mid].value < unicode_character ) min = mid + 1; else max = mid; } if ( ( max==min ) && ( unicodeinfo[min].value == unicode_character ) ) return min; else return -1; } unsigned short unicode_utf8_classify( char *p ) { unsigned int unicode_character, pos = 0; int n; unicode_character = utf8_decode( p, &pos ); n = unicode_find( unicode_character ); if ( n==-1 ) return UNICODE_SYMBOL; else return unicodeinfo[n].info; } unsigned short unicode_utf8_classify_str( str *s ) { unsigned int unicode_character, pos = 0; unsigned short value = 0; int n; while ( pos < s->len ) { unicode_character = utf8_decode( str_cstr( s ), &pos ); n = unicode_find( unicode_character ); if ( n==-1 ) value |= UNICODE_SYMBOL; else value |= unicodeinfo[n].info; } return value; } hs-bibutils-6.10.0.0/bibutils/unicode.h0000755000000000000000000000105307346545000015770 0ustar0000000000000000/* * unicode.h * * Copyright (c) Chris Putnam 2004-2019 * * Program and source code released under the GPL version 2 */ #ifndef UNICODE_H #define UNICODE_H #include "str.h" #define UNICODE_SYMBOL (1) #define UNICODE_UPPER (2) /* Uppercase letter */ #define UNICODE_LOWER (4) /* Lowercase letter */ #define UNICODE_NUMBER (8) /* Numeric character */ #define UNICODE_MIXEDCASE ( UNICODE_UPPER | UNICODE_LOWER ) extern unsigned short unicode_utf8_classify( char *p ); extern unsigned short unicode_utf8_classify_str( str *s ); #endif hs-bibutils-6.10.0.0/bibutils/url.c0000644000000000000000000002127007346545000015137 0ustar0000000000000000/* * url.c * * doi_to_url() * Handle outputing DOI as a URL (Endnote and RIS formats) * 1) Append https://doi.org as necessary * 2) Check for overlap with pre-existing URL for the DOI * * is_doi() * Check for DOI buried in another field. * * Copyright (c) Chris Putnam 2008-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "bibutils.h" #include "url.h" static void construct_url( char *prefix, str *id, str *id_url, char sep ) { if ( !strncasecmp( str_cstr( id ), "http:", 5 ) ) str_strcpy( id_url, id ); else { str_strcpyc( id_url, prefix ); if ( sep!='\0' ) { if ( id->data[0]!=sep ) str_addchar( id_url, sep ); } str_strcat( id_url, id ); } } static int url_exists( fields *f, char *urltag, str *doi_url ) { int i, n; if ( urltag ) { n = fields_num( f ); for ( i=0; in; ++i ) { str_strcpyc( &url, prefix ); str_strcatc( &url, ( char * ) vplist_get( values, i ) ); fstatus = fields_add( out, tag_out, str_cstr( &url ), lvl_out ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &url ); return status; } /* * urls_merge_and_add() * * Append urls of types controlled by the list type and automatically append appropriate * prefixes. If no prefix is found for the entry, don't add one (e.g. "URL" entries). * * Control of the types to be added by list type is necessary as some reference formats * like bibtex ought to do special things with DOI, ARXIV, MRNUMBER, and the like. */ int urls_merge_and_add( fields *in, int lvl_in, fields *out, char *tag_out, int lvl_out, slist *types ) { int i, j, status = BIBL_OK; char *tag, *prefix, *empty=""; vplist a; vplist_init( &a ); for ( i=0; in; ++i ) { tag = slist_cstr( types, i ); /* ...look for data of requested type; if not found skip */ vplist_empty( &a ); fields_findv_each( in, lvl_in, FIELDS_CHRP, &a, tag ); if ( a.n==0 ) continue; /* ...find the prefix (if present) */ prefix = empty; for ( j=0; j #include #include #include #include "bibutils.h" #include "url.h" static void construct_url( char *prefix, str *id, str *id_url, char sep ) { if ( !strncasecmp( str_cstr( id ), "http:", 5 ) ) str_strcpy( id_url, id ); else { str_strcpyc( id_url, prefix ); if ( sep!='\0' ) { if ( id->data[0]!=sep ) str_addchar( id_url, sep ); } str_strcat( id_url, id ); } } static int url_exists( fields *f, char *urltag, str *doi_url ) { int i, n; if ( urltag ) { n = fields_num( f ); for ( i=0; in; ++i ) { str_strcpyc( &url, prefix ); str_strcatc( &url, ( char * ) vplist_get( values, i ) ); fstatus = fields_add( out, tag_out, str_cstr( &url ), lvl_out ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &url ); return status; } /* * urls_merge_and_add() * * Append urls of types controlled by the list type and automatically append appropriate * prefixes. If no prefix is found for the entry, don't add one (e.g. "URL" entries). * * Control of the types to be added by list type is necessary as some reference formats * like bibtex ought to do special things with DOI, ARXIV, MRNUMBER, and the like. */ int urls_merge_and_add( fields *in, int lvl_in, fields *out, char *tag_out, int lvl_out, slist *types ) { int i, j, status = BIBL_OK; char *tag, *prefix, *empty=""; vplist a; vplist_init( &a ); for ( i=0; in; ++i ) { tag = slist_cstr( types, i ); /* ...look for data of requested type; if not found skip */ vplist_empty( &a ); fields_findv_each( in, lvl_in, FIELDS_CHRP, &a, tag ); if ( a.n==0 ) continue; /* ...find the prefix (if present) */ prefix = empty; for ( j=0; j #include #include "utf8.h" /* UTF-8 encoding U-00000000 - U-0000007F: 0xxxxxxx U-00000080 - U-000007FF: 110xxxxx 10xxxxxx U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */ static void utf8_build( unsigned int value, unsigned char out[6], int in_pos, int out_pos ) { unsigned int in_mask, out_mask; int byte = 0; while ( in_pos < 32 ) { in_mask = 1 << ( 31 - in_pos ); out_mask = 1 << ( 7 - out_pos ); if ( value & in_mask ) out[byte] |= out_mask; in_pos++; out_pos++; if ( out_pos > 7 ) { out_pos=2; byte++; } } } /* int utf8( in, out[6] ); * * in is character code 0x0 -> 0x7FFFFFFF * int is number of characters for output * */ int utf8_encode( unsigned int value, unsigned char out[6] ) { int i; for ( i=1; i<6; ++i ) out[i] = 0x80; /* 10xxxxxx */ if ( value < 0x80 ) { out[0] = 0x0; /* 0xxxxxxx */ utf8_build( value, out, 25, 1 ); return 1; } else if ( value < 0x800 ) { out[0] = 0xC0; /* 110xxxxx */ utf8_build( value, out, 21, 3 ); return 2; } else if ( value < 0x10000 ) { out[0] = 0xE0; /* 1110xxxx */ utf8_build( value, out, 16, 4 ); return 3; } else if ( value < 0x200000 ) { out[0] = 0xF0; /* 11110xxx */ utf8_build( value, out, 11, 5 ); return 4; } else if ( value < 0x4000000 ) { out[0] = 0xF8; /* 111110xx */ utf8_build( value, out, 6, 6 ); return 5; } else if ( value < (unsigned int ) 0x80000000 ) { out[0] = 0xFC; /* 1111110x */ utf8_build( value, out, 1, 7 ); return 6; } else { /* error, above 2^31 bits encodable by UTF-8 */ return 0; } } /* Generate UTF8 character as null-terminated string */ void utf8_encode_str( unsigned int value, char outstr[7] ) { unsigned char encoded[6]; int i, n; n = utf8_encode( value, encoded ); for ( i=0; i #include #include "utf8.h" /* UTF-8 encoding U-00000000 - U-0000007F: 0xxxxxxx U-00000080 - U-000007FF: 110xxxxx 10xxxxxx U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */ static void utf8_build( unsigned int value, unsigned char out[6], int in_pos, int out_pos ) { unsigned int in_mask, out_mask; int byte = 0; while ( in_pos < 32 ) { in_mask = 1 << ( 31 - in_pos ); out_mask = 1 << ( 7 - out_pos ); if ( value & in_mask ) out[byte] |= out_mask; in_pos++; out_pos++; if ( out_pos > 7 ) { out_pos=2; byte++; } } } /* int utf8( in, out[6] ); * * in is character code 0x0 -> 0x7FFFFFFF * int is number of characters for output * */ int utf8_encode( unsigned int value, unsigned char out[6] ) { int i; for ( i=1; i<6; ++i ) out[i] = 0x80; /* 10xxxxxx */ if ( value < 0x80 ) { out[0] = 0x0; /* 0xxxxxxx */ utf8_build( value, out, 25, 1 ); return 1; } else if ( value < 0x800 ) { out[0] = 0xC0; /* 110xxxxx */ utf8_build( value, out, 21, 3 ); return 2; } else if ( value < 0x10000 ) { out[0] = 0xE0; /* 1110xxxx */ utf8_build( value, out, 16, 4 ); return 3; } else if ( value < 0x200000 ) { out[0] = 0xF0; /* 11110xxx */ utf8_build( value, out, 11, 5 ); return 4; } else if ( value < 0x4000000 ) { out[0] = 0xF8; /* 111110xx */ utf8_build( value, out, 6, 6 ); return 5; } else if ( value < (unsigned int ) 0x80000000 ) { out[0] = 0xFC; /* 1111110x */ utf8_build( value, out, 1, 7 ); return 6; } else { /* error, above 2^31 bits encodable by UTF-8 */ return 0; } } /* Generate UTF8 character as null-terminated string */ void utf8_encode_str( unsigned int value, char outstr[7] ) { unsigned char encoded[6]; int i, n; n = utf8_encode( value, encoded ); for ( i=0; i int utf8_encode( unsigned int value, unsigned char out[6] ); void utf8_encode_str( unsigned int value, char outstr[7] ); unsigned int utf8_decode( const char *s, unsigned int *pi ); void utf8_writebom( FILE *outptr ); int utf8_is_bom( const char *p ); int utf8_is_emdash( const char *p ); int utf8_is_endash( const char *p ); #endif hs-bibutils-6.10.0.0/bibutils/vplist.c0000644000000000000000000001515707346545000015665 0ustar0000000000000000/* * vplist.c * * Version: 1/9/2017 * * Copyright (c) Chris Putnam 2011-2020 * * Source code released under the GPL version 2 * * Implements a simple managed array of pointers to void * */ #include #include "vplist.h" /* Do not use asserts in VPLIST_NOASSERT defined */ #ifdef VPLIST_NOASSERT #define NDEBUG #endif #include #define VPLIST_MINALLOC (20) #define VPLIST_EXACT_SIZE (0) #define VPLIST_DOUBLE_SIZE (1) void vplist_init( vplist *vpl ) { assert( vpl ); vpl->data = NULL; vpl->n = vpl->max = 0; } vplist * vplist_new( void ) { vplist *vpl; vpl = ( vplist * ) malloc( sizeof( vplist ) ); if ( vpl ) vplist_init( vpl ); return vpl; } static inline int vplist_alloc( vplist *vpl, vplist_index alloc ) { vpl->data = ( void ** ) malloc( sizeof( void * ) * alloc ); if ( !vpl->data ) return VPLIST_MEMERR; vpl->max = alloc; vpl->n = 0; return VPLIST_OK; } static inline int vplist_realloc( vplist *vpl, vplist_index alloc ) { void **more; more = ( void ** ) realloc( vpl->data, sizeof( void * ) * alloc ); if ( !more ) return VPLIST_MEMERR; vpl->data = more; vpl->max = alloc; return VPLIST_OK; } /* vplist_ensure_space( vpl, n, mode ) * * Makes sure that vplist can hold at least n members, allocating memory if required. * * mode * - Can either be VPLIST_DOUBLE_SIZE or VPLIST_EXACT_SIZE. * - If VPLIST_EXACT_SIZE and current size < n, size will be exactly n. * - If VPLIST_DOUBLE_SIZE and current size < n, size will be doubled (or VPLIST_MINALLOC * if the vplist is empty) or n, whichever is bigger. * * Returns VPLIST_OK or VPLIST_MEMERR. */ static int vplist_ensure_space( vplist *vpl, vplist_index n, unsigned char mode ) { vplist_index alloc = n; int status = VPLIST_OK; if ( vpl->max == 0 ) { if ( mode == VPLIST_DOUBLE_SIZE && alloc < VPLIST_MINALLOC ) alloc = VPLIST_MINALLOC; status = vplist_alloc( vpl, alloc ); } else if ( vpl->max < n ) { if ( mode == VPLIST_DOUBLE_SIZE && alloc < 2 * vpl->max ) alloc = 2 * vpl->max; status = vplist_realloc( vpl, alloc ); } return status; } int vplist_copy( vplist *to, vplist *from ) { vplist_index i; int status; assert( to ); assert( from ); status = vplist_ensure_space( to, from->n, VPLIST_EXACT_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; in; ++i ) to->data[i] = from->data[i]; to->n = from->n; } return status; } int vplist_fill( vplist *vpl, vplist_index n, void *v ) { vplist_index i; int status; assert( vpl ); status = vplist_ensure_space( vpl, n, VPLIST_EXACT_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; idata[i] = v; vpl->n = n; } return status; } int vplist_add( vplist *vpl, void *v ) { int status; assert( vpl ); status = vplist_ensure_space( vpl, vpl->n + 1, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { vpl->data[vpl->n] = v; vpl->n++; } return status; } int vplist_insert_list( vplist *vpl, vplist_index pos, vplist *add ) { vplist_index i; int status; assert( vpl ); assert( add ); assert( pos <= vpl->n ); /* nothing to do here */ if ( add->n < 1 ) return VPLIST_OK; status = vplist_ensure_space( vpl, vpl->n + add->n, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { for ( i=vpl->n-1; i>=pos; --i ) vpl->data[i+add->n] = vpl->data[i]; for ( i=0; in; ++i ) vpl->data[pos+i] = add->data[i]; vpl->n += add->n; } return status; } int vplist_append( vplist *vpl, vplist *add ) { vplist_index i; int status; assert( vpl ); assert( add ); status = vplist_ensure_space( vpl, vpl->n + add->n, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; in; ++i ) vpl->data[ vpl->n + i ] = add->data[i]; vpl->n += add->n; } return status; } static void vplist_freemembers( vplist *vpl, vplist_ptrfree vpf ) { vplist_index i; void *v; for ( i=0; in; ++i ) { v = vplist_get( vpl, i ); if ( v ) (*vpf)( v ); } } void vplist_emptyfn( vplist *vpl, vplist_ptrfree vpf ) { assert( vpl ); if ( vpf ) vplist_freemembers( vpl, vpf ); vpl->n = 0; } void vplist_empty( vplist *vpl ) { vplist_emptyfn( vpl, NULL ); } void vplist_freefn( vplist *vpl, vplist_ptrfree vpf ) { assert( vpl ); if ( vpf ) vplist_freemembers( vpl, vpf ); if ( vpl->data ) free( vpl->data ); vplist_init( vpl ); } void vplist_free( vplist *vpl ) { vplist_freefn( vpl, NULL ); } void vplist_deletefn( vplist **vpl, vplist_ptrfree vpf ) { vplist_freefn( *vpl, vpf ); free( *vpl ); *vpl = NULL; } void vplist_delete( vplist **vpl ) { vplist_deletefn( vpl, NULL ); } static inline int vplist_validindex( vplist *vpl, vplist_index n ) { if ( n < 0 || n >= vpl->n ) return 0; return 1; } void * vplist_get( vplist *vpl, vplist_index n ) { assert( vpl ); if ( !vplist_validindex( vpl, n ) ) return NULL; return vpl->data[ n ]; } void vplist_set( vplist *vpl, vplist_index n, void *v ) { assert( vpl ); assert( vplist_validindex( vpl, n ) ); vpl->data[ n ] = v; } int vplist_find( vplist *vpl, void *v ) { vplist_index i; assert( vpl ); for ( i=0; in; ++i ) if ( vpl->data[i]==v ) return i; return -1; } void vplist_swap( vplist *vpl, vplist_index n1, vplist_index n2 ) { void *tmp; assert( vpl ); assert( vplist_validindex( vpl, n1 ) ); assert( vplist_validindex( vpl, n2 ) ); tmp = vpl->data[n1]; vpl->data[n1] = vpl->data[n2]; vpl->data[n2] = tmp; } int vplist_removefn( vplist *vpl, vplist_index n, vplist_ptrfree vpf ) { vplist_index i; assert( vpl ); assert( vplist_validindex( vpl, n ) ); if ( vpf ) (*vpf)( vplist_get( vpl, n ) ); for ( i=n+1; in; ++i ) vpl->data[ i-1 ] = vpl->data[ i ]; vpl->n -= 1; return 1; } int vplist_remove( vplist *vpl, vplist_index n ) { return vplist_removefn( vpl, n, NULL ); } int vplist_removevpfn( vplist *vpl, void *v, vplist_ptrfree vpf ) { vplist_index n; int count = 0; assert( vpl ); do { n = vplist_find( vpl, v ); if ( vplist_found( vpl, n ) ) { vplist_removefn( vpl, n, vpf ); count++; } } while ( vplist_found( vpl, n ) ); return count; } int vplist_removevp( vplist *vpl, void *v ) { return vplist_removevpfn( vpl, v, NULL ); } void vplist_remove_rangefn( vplist *vpl, vplist_index start, vplist_index endplusone, vplist_ptrfree vpf ) { vplist_index i, n; assert( endplusone <= vpl->n ); assert( endplusone > start ); n = endplusone - start; if ( vpf ) { for ( i=start; in; ++i ) { vpl->data[i-n] = vpl->data[i]; } vpl->n -= n; } void vplist_remove_range( vplist *vpl, vplist_index start, vplist_index endplusone ) { vplist_remove_rangefn( vpl, start, endplusone, NULL ); } hs-bibutils-6.10.0.0/bibutils/vplist.c0000755000000000000000000001515707346545000015670 0ustar0000000000000000/* * vplist.c * * Version: 1/9/2017 * * Copyright (c) Chris Putnam 2011-2020 * * Source code released under the GPL version 2 * * Implements a simple managed array of pointers to void * */ #include #include "vplist.h" /* Do not use asserts in VPLIST_NOASSERT defined */ #ifdef VPLIST_NOASSERT #define NDEBUG #endif #include #define VPLIST_MINALLOC (20) #define VPLIST_EXACT_SIZE (0) #define VPLIST_DOUBLE_SIZE (1) void vplist_init( vplist *vpl ) { assert( vpl ); vpl->data = NULL; vpl->n = vpl->max = 0; } vplist * vplist_new( void ) { vplist *vpl; vpl = ( vplist * ) malloc( sizeof( vplist ) ); if ( vpl ) vplist_init( vpl ); return vpl; } static inline int vplist_alloc( vplist *vpl, vplist_index alloc ) { vpl->data = ( void ** ) malloc( sizeof( void * ) * alloc ); if ( !vpl->data ) return VPLIST_MEMERR; vpl->max = alloc; vpl->n = 0; return VPLIST_OK; } static inline int vplist_realloc( vplist *vpl, vplist_index alloc ) { void **more; more = ( void ** ) realloc( vpl->data, sizeof( void * ) * alloc ); if ( !more ) return VPLIST_MEMERR; vpl->data = more; vpl->max = alloc; return VPLIST_OK; } /* vplist_ensure_space( vpl, n, mode ) * * Makes sure that vplist can hold at least n members, allocating memory if required. * * mode * - Can either be VPLIST_DOUBLE_SIZE or VPLIST_EXACT_SIZE. * - If VPLIST_EXACT_SIZE and current size < n, size will be exactly n. * - If VPLIST_DOUBLE_SIZE and current size < n, size will be doubled (or VPLIST_MINALLOC * if the vplist is empty) or n, whichever is bigger. * * Returns VPLIST_OK or VPLIST_MEMERR. */ static int vplist_ensure_space( vplist *vpl, vplist_index n, unsigned char mode ) { vplist_index alloc = n; int status = VPLIST_OK; if ( vpl->max == 0 ) { if ( mode == VPLIST_DOUBLE_SIZE && alloc < VPLIST_MINALLOC ) alloc = VPLIST_MINALLOC; status = vplist_alloc( vpl, alloc ); } else if ( vpl->max < n ) { if ( mode == VPLIST_DOUBLE_SIZE && alloc < 2 * vpl->max ) alloc = 2 * vpl->max; status = vplist_realloc( vpl, alloc ); } return status; } int vplist_copy( vplist *to, vplist *from ) { vplist_index i; int status; assert( to ); assert( from ); status = vplist_ensure_space( to, from->n, VPLIST_EXACT_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; in; ++i ) to->data[i] = from->data[i]; to->n = from->n; } return status; } int vplist_fill( vplist *vpl, vplist_index n, void *v ) { vplist_index i; int status; assert( vpl ); status = vplist_ensure_space( vpl, n, VPLIST_EXACT_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; idata[i] = v; vpl->n = n; } return status; } int vplist_add( vplist *vpl, void *v ) { int status; assert( vpl ); status = vplist_ensure_space( vpl, vpl->n + 1, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { vpl->data[vpl->n] = v; vpl->n++; } return status; } int vplist_insert_list( vplist *vpl, vplist_index pos, vplist *add ) { vplist_index i; int status; assert( vpl ); assert( add ); assert( pos <= vpl->n ); /* nothing to do here */ if ( add->n < 1 ) return VPLIST_OK; status = vplist_ensure_space( vpl, vpl->n + add->n, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { for ( i=vpl->n-1; i>=pos; --i ) vpl->data[i+add->n] = vpl->data[i]; for ( i=0; in; ++i ) vpl->data[pos+i] = add->data[i]; vpl->n += add->n; } return status; } int vplist_append( vplist *vpl, vplist *add ) { vplist_index i; int status; assert( vpl ); assert( add ); status = vplist_ensure_space( vpl, vpl->n + add->n, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; in; ++i ) vpl->data[ vpl->n + i ] = add->data[i]; vpl->n += add->n; } return status; } static void vplist_freemembers( vplist *vpl, vplist_ptrfree vpf ) { vplist_index i; void *v; for ( i=0; in; ++i ) { v = vplist_get( vpl, i ); if ( v ) (*vpf)( v ); } } void vplist_emptyfn( vplist *vpl, vplist_ptrfree vpf ) { assert( vpl ); if ( vpf ) vplist_freemembers( vpl, vpf ); vpl->n = 0; } void vplist_empty( vplist *vpl ) { vplist_emptyfn( vpl, NULL ); } void vplist_freefn( vplist *vpl, vplist_ptrfree vpf ) { assert( vpl ); if ( vpf ) vplist_freemembers( vpl, vpf ); if ( vpl->data ) free( vpl->data ); vplist_init( vpl ); } void vplist_free( vplist *vpl ) { vplist_freefn( vpl, NULL ); } void vplist_deletefn( vplist **vpl, vplist_ptrfree vpf ) { vplist_freefn( *vpl, vpf ); free( *vpl ); *vpl = NULL; } void vplist_delete( vplist **vpl ) { vplist_deletefn( vpl, NULL ); } static inline int vplist_validindex( vplist *vpl, vplist_index n ) { if ( n < 0 || n >= vpl->n ) return 0; return 1; } void * vplist_get( vplist *vpl, vplist_index n ) { assert( vpl ); if ( !vplist_validindex( vpl, n ) ) return NULL; return vpl->data[ n ]; } void vplist_set( vplist *vpl, vplist_index n, void *v ) { assert( vpl ); assert( vplist_validindex( vpl, n ) ); vpl->data[ n ] = v; } int vplist_find( vplist *vpl, void *v ) { vplist_index i; assert( vpl ); for ( i=0; in; ++i ) if ( vpl->data[i]==v ) return i; return -1; } void vplist_swap( vplist *vpl, vplist_index n1, vplist_index n2 ) { void *tmp; assert( vpl ); assert( vplist_validindex( vpl, n1 ) ); assert( vplist_validindex( vpl, n2 ) ); tmp = vpl->data[n1]; vpl->data[n1] = vpl->data[n2]; vpl->data[n2] = tmp; } int vplist_removefn( vplist *vpl, vplist_index n, vplist_ptrfree vpf ) { vplist_index i; assert( vpl ); assert( vplist_validindex( vpl, n ) ); if ( vpf ) (*vpf)( vplist_get( vpl, n ) ); for ( i=n+1; in; ++i ) vpl->data[ i-1 ] = vpl->data[ i ]; vpl->n -= 1; return 1; } int vplist_remove( vplist *vpl, vplist_index n ) { return vplist_removefn( vpl, n, NULL ); } int vplist_removevpfn( vplist *vpl, void *v, vplist_ptrfree vpf ) { vplist_index n; int count = 0; assert( vpl ); do { n = vplist_find( vpl, v ); if ( vplist_found( vpl, n ) ) { vplist_removefn( vpl, n, vpf ); count++; } } while ( vplist_found( vpl, n ) ); return count; } int vplist_removevp( vplist *vpl, void *v ) { return vplist_removevpfn( vpl, v, NULL ); } void vplist_remove_rangefn( vplist *vpl, vplist_index start, vplist_index endplusone, vplist_ptrfree vpf ) { vplist_index i, n; assert( endplusone <= vpl->n ); assert( endplusone > start ); n = endplusone - start; if ( vpf ) { for ( i=start; in; ++i ) { vpl->data[i-n] = vpl->data[i]; } vpl->n -= n; } void vplist_remove_range( vplist *vpl, vplist_index start, vplist_index endplusone ) { vplist_remove_rangefn( vpl, start, endplusone, NULL ); } hs-bibutils-6.10.0.0/bibutils/vplist.h0000755000000000000000000000501107346545000015661 0ustar0000000000000000/* * vplist.h * * generic container to hold a list of pointers to void * * Version: 1/9/2017 * * Copyright (c) Chris Putnam 2011-2019 * * Source code released under the GPL version 2 * */ #ifndef VPLIST_H #define VPLIST_H #define VPLIST_MEMERR (-1) #define VPLIST_OK (0) typedef int vplist_index; typedef struct vplist { vplist_index n, max; void **data; } vplist; #define vplist_found( vpl, n ) ( n!=-1 ) #define vplist_notfound( vpl, n ) ( n==-1 ) typedef void (*vplist_ptrfree)(void*); vplist * vplist_new( void ); void vplist_init ( vplist *vpl ); int vplist_add ( vplist *vpl, void *v ); int vplist_fill ( vplist *vpl, vplist_index n, void *v ); int vplist_copy ( vplist *to, vplist *from ); int vplist_append ( vplist *vpl, vplist *add ); int vplist_insert_list ( vplist *vpl, vplist_index pos, vplist *add ); void * vplist_get ( vplist *vpl, vplist_index n ); void vplist_set ( vplist *vpl, vplist_index n, void *v ); void vplist_swap ( vplist *vpl, vplist_index n1, vplist_index n2 ); int vplist_remove ( vplist *vpl, vplist_index n ); int vplist_removefn ( vplist *vpl, vplist_index n, vplist_ptrfree vpf ); int vplist_removevp ( vplist *vpl, void *v ); int vplist_removevpfn ( vplist *vpl, void *v, vplist_ptrfree vpf ); void vplist_remove_rangefn( vplist *vpl, vplist_index start, vplist_index endplusone, vplist_ptrfree vpf ); void vplist_remove_range ( vplist *vpl, vplist_index start, vplist_index endplusone ); vplist_index vplist_find( vplist *vpl, void *v ); /* * vplist_empty does not free space * * if members require their own free calls, then call vplist_emptyfn() * * void * member_free( void *v ) * { * member *m = ( member * ) v; * member_free( m ); * free( m ); * } * vplist_emptyfn( &vpl, member_free ); * * if members are simply allocated with malloc(), then use free() * * vplist_emptyfn( &vpl, free ); */ void vplist_empty ( vplist *vpl ); void vplist_emptyfn( vplist *vpl, vplist_ptrfree fn ); /* * vplist_free frees the space for the data array of void * elements. * * if members require their own free calls, then call vplist_freefn() */ void vplist_free ( vplist *vpl ); void vplist_freefn( vplist *vpl, vplist_ptrfree fn ); /* * vplist_delete does vplist_free and deallocates the struct * vplist * and replaces with NULL. */ void vplist_delete ( vplist **vpl ); void vplist_deletefn( vplist **vpl, vplist_ptrfree fn ); #endif hs-bibutils-6.10.0.0/bibutils/wordin.c0000644000000000000000000002075107346545000015642 0ustar0000000000000000/* * wordin.c * * Copyright (c) Chris Putnam 2010-2020 * * Source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "xml.h" #include "xml_encoding.h" #include "bibformats.h" static int wordin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int wordin_processf( fields *wordin, const char *data, const char *filename, long nref, param *p ); /***************************************************** PUBLIC: void wordin_initparams() *****************************************************/ int wordin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_WORDIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 1; pm->utf8in = 1; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; pm->readf = wordin_readf; pm->processf = wordin_processf; pm->cleanf = NULL; pm->typef = NULL; pm->convertf = NULL; pm->all = NULL; pm->nall = 0; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int wordin_readf() *****************************************************/ static char * wordin_findstartwrapper( char *buf, int *ntype ) { return xml_find_start( buf, "b:Source" ); } static char * wordin_findendwrapper( char *buf, int ntype ) { return xml_find_end( buf, "b:Source" ); } static int wordin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { str tmp; char *startptr = NULL, *endptr; int haveref = 0, inref = 0, file_charset = CHARSET_UNKNOWN, m, type = 1; str_init( &tmp ); while ( !haveref && str_fget( fp, buf, bufsize, bufpos, line ) ) { if ( str_cstr( line ) ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( str_cstr( line ) ) { startptr = wordin_findstartwrapper( str_cstr( line ), &type ); } if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = wordin_findendwrapper( str_cstr( &tmp ), type ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int wordin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; /* wordin_person_last() * * From an xml list, extract the value from the first entry * of xxxx and copy into name * * Additional yyyyy will be ignored. * * Returns BIBL_ERR_MEMERR on memory error, BIBL_OK otherwise. */ static int wordin_person_last( xml *node, str *name ) { while ( node && !xml_tag_matches( node, "b:Last" ) ) node = node->next; if ( xml_has_value( node ) ) { str_strcpy( name, xml_value( node ) ); if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* wordin_person_first() * * From an xml list, extract the value of any * xxxx and append "|xxxx" to name. * * Returns BIBL_ERR_MEMERR on memory error, BIBL_OK otherwise */ static int wordin_person_first( xml *node, str *name ) { for ( ; node; node=node->next ) { if ( !xml_tag_matches( node, "b:First" ) ) continue; if ( xml_has_value( node ) ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); str_strcat( name, xml_value( node ) ); if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int wordin_person( xml *node, fields *info, char *type ) { int status, ret = BIBL_OK; str name; str_init( &name ); status = wordin_person_last( node, &name ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = wordin_person_first( node, &name ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = fields_add( info, type, str_cstr( &name ), 0 ); if ( status != FIELDS_OK ) ret = BIBL_ERR_MEMERR; out: str_free( &name ); return ret; } static int wordin_people( xml *node, fields *info, char *type ) { int ret = BIBL_OK; if ( xml_tag_matches( node, "b:Author" ) && node->down ) { ret = wordin_people( node->down, info, type ); } else if ( xml_tag_matches( node, "b:NameList" ) && node->down ) { ret = wordin_people( node->down, info, type ); } else if ( xml_tag_matches( node, "b:Person" ) ) { if ( node->down ) ret = wordin_person( node->down, info, type ); if ( ret!=BIBL_OK ) return ret; if ( node->next ) ret = wordin_people( node->next, info, type ); } return ret; } static int wordin_pages( xml *node, fields *info ) { int i, status, ret = BIBL_OK; str sp, ep; char *p; strs_init( &sp, &ep, NULL ); p = xml_value_cstr( node ); while ( *p && *p!='-' ) str_addchar( &sp, *p++ ); if ( str_memerr( &sp ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( *p=='-' ) p++; while ( *p ) str_addchar( &ep, *p++ ); if ( str_memerr( &ep ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &sp ) ) { status = fields_add( info, "PAGES:START", str_cstr( &sp ), 1 ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &ep ) ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idown ) { ret = wordin_people( node->down, info, "AUTHOR" ); } else if ( xml_tag_matches( node, "b:Editor" ) && node->down ) { ret = wordin_people( node->down, info, "EDITOR" ); } } if ( ret==BIBL_OK && node->next ) wordin_reference( node->next, info ); return ret; } static int wordin_assembleref( xml *node, fields *info ) { int ret = BIBL_OK; if ( xml_tag_matches( node, "b:Source" ) ) { if ( node->down ) ret = wordin_reference( node->down, info ); } else if ( str_is_empty( &(node->tag) ) && node->down ) { ret = wordin_assembleref( node->down, info ); } return ret; } static int wordin_processf( fields *wordin, const char *data, const char *filename, long nref, param *p ) { int status, ret = 1; xml top; xml_init( &top ); xml_parse( data, &top ); status = wordin_assembleref( &top, wordin ); xml_free( &top ); if ( status==BIBL_ERR_MEMERR ) ret = 0; return ret; } hs-bibutils-6.10.0.0/bibutils/wordin.c0000755000000000000000000002075107346545000015645 0ustar0000000000000000/* * wordin.c * * Copyright (c) Chris Putnam 2010-2020 * * Source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "xml.h" #include "xml_encoding.h" #include "bibformats.h" static int wordin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int wordin_processf( fields *wordin, const char *data, const char *filename, long nref, param *p ); /***************************************************** PUBLIC: void wordin_initparams() *****************************************************/ int wordin_initparams( param *pm, const char *progname ) { pm->readformat = BIBL_WORDIN; pm->charsetin = BIBL_CHARSET_DEFAULT; pm->charsetin_src = BIBL_SRC_DEFAULT; pm->latexin = 0; pm->xmlin = 1; pm->utf8in = 1; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; pm->readf = wordin_readf; pm->processf = wordin_processf; pm->cleanf = NULL; pm->typef = NULL; pm->convertf = NULL; pm->all = NULL; pm->nall = 0; slist_init( &(pm->asis) ); slist_init( &(pm->corps) ); if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /***************************************************** PUBLIC: int wordin_readf() *****************************************************/ static char * wordin_findstartwrapper( char *buf, int *ntype ) { return xml_find_start( buf, "b:Source" ); } static char * wordin_findendwrapper( char *buf, int ntype ) { return xml_find_end( buf, "b:Source" ); } static int wordin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { str tmp; char *startptr = NULL, *endptr; int haveref = 0, inref = 0, file_charset = CHARSET_UNKNOWN, m, type = 1; str_init( &tmp ); while ( !haveref && str_fget( fp, buf, bufsize, bufpos, line ) ) { if ( str_cstr( line ) ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( str_cstr( line ) ) { startptr = wordin_findstartwrapper( str_cstr( line ), &type ); } if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = wordin_findendwrapper( str_cstr( &tmp ), type ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int wordin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; /* wordin_person_last() * * From an xml list, extract the value from the first entry * of xxxx and copy into name * * Additional yyyyy will be ignored. * * Returns BIBL_ERR_MEMERR on memory error, BIBL_OK otherwise. */ static int wordin_person_last( xml *node, str *name ) { while ( node && !xml_tag_matches( node, "b:Last" ) ) node = node->next; if ( xml_has_value( node ) ) { str_strcpy( name, xml_value( node ) ); if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* wordin_person_first() * * From an xml list, extract the value of any * xxxx and append "|xxxx" to name. * * Returns BIBL_ERR_MEMERR on memory error, BIBL_OK otherwise */ static int wordin_person_first( xml *node, str *name ) { for ( ; node; node=node->next ) { if ( !xml_tag_matches( node, "b:First" ) ) continue; if ( xml_has_value( node ) ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); str_strcat( name, xml_value( node ) ); if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int wordin_person( xml *node, fields *info, char *type ) { int status, ret = BIBL_OK; str name; str_init( &name ); status = wordin_person_last( node, &name ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = wordin_person_first( node, &name ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = fields_add( info, type, str_cstr( &name ), 0 ); if ( status != FIELDS_OK ) ret = BIBL_ERR_MEMERR; out: str_free( &name ); return ret; } static int wordin_people( xml *node, fields *info, char *type ) { int ret = BIBL_OK; if ( xml_tag_matches( node, "b:Author" ) && node->down ) { ret = wordin_people( node->down, info, type ); } else if ( xml_tag_matches( node, "b:NameList" ) && node->down ) { ret = wordin_people( node->down, info, type ); } else if ( xml_tag_matches( node, "b:Person" ) ) { if ( node->down ) ret = wordin_person( node->down, info, type ); if ( ret!=BIBL_OK ) return ret; if ( node->next ) ret = wordin_people( node->next, info, type ); } return ret; } static int wordin_pages( xml *node, fields *info ) { int i, status, ret = BIBL_OK; str sp, ep; char *p; strs_init( &sp, &ep, NULL ); p = xml_value_cstr( node ); while ( *p && *p!='-' ) str_addchar( &sp, *p++ ); if ( str_memerr( &sp ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( *p=='-' ) p++; while ( *p ) str_addchar( &ep, *p++ ); if ( str_memerr( &ep ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &sp ) ) { status = fields_add( info, "PAGES:START", str_cstr( &sp ), 1 ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &ep ) ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idown ) { ret = wordin_people( node->down, info, "AUTHOR" ); } else if ( xml_tag_matches( node, "b:Editor" ) && node->down ) { ret = wordin_people( node->down, info, "EDITOR" ); } } if ( ret==BIBL_OK && node->next ) wordin_reference( node->next, info ); return ret; } static int wordin_assembleref( xml *node, fields *info ) { int ret = BIBL_OK; if ( xml_tag_matches( node, "b:Source" ) ) { if ( node->down ) ret = wordin_reference( node->down, info ); } else if ( str_is_empty( &(node->tag) ) && node->down ) { ret = wordin_assembleref( node->down, info ); } return ret; } static int wordin_processf( fields *wordin, const char *data, const char *filename, long nref, param *p ) { int status, ret = 1; xml top; xml_init( &top ); xml_parse( data, &top ); status = wordin_assembleref( &top, wordin ); xml_free( &top ); if ( status==BIBL_ERR_MEMERR ) ret = 0; return ret; } hs-bibutils-6.10.0.0/bibutils/wordout.c0000644000000000000000000004552107346545000016045 0ustar0000000000000000/* * wordout.c * * (Word 2007 format) * * Copyright (c) Chris Putnam 2007-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "str.h" #include "fields.h" #include "utf8.h" #include "bibformats.h" /***************************************************** PUBLIC: int wordout_initparams() *****************************************************/ static void wordout_writeheader( FILE *outptr, param *p ); static void wordout_writefooter( FILE *outptr ); static int wordout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ); int wordout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_WORD2007OUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_UNICODE; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; if ( !pm->utf8out ) pm->xmlout = BIBL_XMLOUT_ENTITIES; else pm->xmlout = BIBL_XMLOUT_TRUE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; pm->headerf = wordout_writeheader; pm->footerf = wordout_writefooter; pm->assemblef = NULL; pm->writef = wordout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int wordout_write() *****************************************************/ typedef struct convert { char *oldtag; char *newtag; char *prefix; int code; } convert; /* At the moment 17 unique types of sources are defined: {code} Art ArticleInAPeriodical Book BookSection Case Conference DocumentFromInternetSite ElectronicSource Film InternetSite Interview JournalArticle Report Misc Patent Performance Proceedings SoundRecording {code} */ enum { TYPE_UNKNOWN = 0, TYPE_ART, TYPE_ARTICLEINAPERIODICAL, TYPE_BOOK, TYPE_BOOKSECTION, TYPE_CASE, TYPE_CONFERENCE, TYPE_DOCUMENTFROMINTERNETSITE, TYPE_ELECTRONICSOURCE, TYPE_FILM, TYPE_INTERNETSITE, TYPE_INTERVIEW, TYPE_JOURNALARTICLE, TYPE_MISC, TYPE_PATENT, TYPE_PERFORMANCE, TYPE_PROCEEDINGS, TYPE_REPORT, TYPE_SOUNDRECORDING, TYPE_THESIS, TYPE_MASTERSTHESIS, TYPE_PHDTHESIS, }; static void output_level( FILE *outptr, int level ) { int i; for ( i=0; ivalue */ static void output_fixed( FILE *outptr, const char *tag, const char *value, int level ) { output_level( outptr, level ); fprintf( outptr, "<%s>%s\n", tag, value, tag ); } /* detail output * * value */ static void output_item( fields *info, FILE *outptr, const char *tag, const char *prefix, int item, int level ) { if ( item!=-1 ) { output_level( outptr, level ); fprintf( outptr, "<%s>%s%s\n", tag, prefix, (char*) fields_value( info, item, FIELDS_CHRP ), tag ); } } static void output_itemv( FILE *outptr, const char *tag, const char *item, int level ) { output_level( outptr, level ); fprintf( outptr, "<%s>%s\n", tag, item, tag ); } /* range output * * start-end * */ static void output_range( FILE *outptr, const char *tag, const char *start, const char *end, int level ) { if ( start && end ) { output_level( outptr, level ); fprintf( outptr, "<%s>%s-%s\n", tag, start, end, tag ); } else if ( start ) output_itemv( outptr, tag, start, level ); else if ( end ) output_itemv( outptr, tag, end, level ); } static void output_list( fields *info, FILE *outptr, convert *c, int nc ) { int i, n; for ( i=0; in; ++i ) { tag = (const char *) fields_tag( info, i, FIELDS_CHRP ); if ( strcasecmp( tag, "GENRE:MARC" ) && strcasecmp( tag, "GENRE:BIBUTILS" ) && strcasecmp( tag, "GENRE:UNKNOWN" ) ) continue; genre = (const char *) fields_value( info, i, FIELDS_CHRP ); for ( j=0; jlevel[i]; if ( !strcasecmp( genre, "academic journal" ) ) { type = TYPE_JOURNALARTICLE; } else if ( !strcasecmp( genre, "periodical" ) ) { if ( type == TYPE_UNKNOWN ) type = TYPE_ARTICLEINAPERIODICAL; } else if ( !strcasecmp( genre, "book" ) || !strcasecmp( genre, "collection" ) ) { if ( info->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_BOOKSECTION; } else if ( !strcasecmp( genre, "conference publication" ) ) { if ( level==0 ) type=TYPE_CONFERENCE; else type = TYPE_PROCEEDINGS; } else if ( !strcasecmp( genre, "thesis" ) ) { if ( type==TYPE_UNKNOWN ) type=TYPE_THESIS; } else if ( !strcasecmp( genre, "Ph.D. thesis" ) ) { type = TYPE_PHDTHESIS; } else if ( !strcasecmp( genre, "Masters thesis" ) ) { type = TYPE_MASTERSTHESIS; } } } return type; } static int get_type_from_resource( fields *info ) { int type = TYPE_UNKNOWN, i; char *tag, *resource; for ( i=0; in; ++i ) { tag = (char *) fields_tag( info, i, FIELDS_CHRP ); if ( strcasecmp( tag, "RESOURCE" ) ) continue; resource = (char *) fields_value( info, i, FIELDS_CHRP ); if ( !strcasecmp( resource, "moving image" ) ) type = TYPE_FILM; } return type; } static int get_type( fields *info ) { int type; type = get_type_from_genre( info ); if ( type==TYPE_UNKNOWN ) type = get_type_from_resource( info ); return type; } static void output_titlebits( const char *mainttl, const char *subttl, FILE *outptr ) { if ( mainttl ) fprintf( outptr, "%s", mainttl ); if ( subttl ) { if ( mainttl ) { if ( mainttl[ strlen( mainttl ) - 1 ] != '?' ) fprintf( outptr, ": " ); else fprintf( outptr, " " ); } fprintf( outptr, "%s", subttl ); } } static void output_titleinfo( const char *mainttl, const char *subttl, FILE *outptr, const char *tag, int level ) { if ( mainttl || subttl ) { fprintf( outptr, "<%s>", tag ); output_titlebits( mainttl, subttl, outptr ); fprintf( outptr, "\n", tag ); } } static void output_generaltitle( fields *info, FILE *outptr, const char *tag, int level ) { const char *ttl = fields_findv( info, level, FIELDS_CHRP, "TITLE" ); const char *subttl = fields_findv( info, level, FIELDS_CHRP, "SUBTITLE" ); const char *shrttl = fields_findv( info, level, FIELDS_CHRP, "SHORTTITLE" ); const char *shrsubttl = fields_findv( info, level, FIELDS_CHRP, "SHORTSUBTITLE" ); if ( ttl ) { output_titleinfo( ttl, subttl, outptr, tag, level ); } else if ( shrttl ) { output_titleinfo( shrttl, shrsubttl, outptr, tag, level ); } } static void output_maintitle( fields *info, FILE *outptr, int level ) { const char *ttl = fields_findv( info, level, FIELDS_CHRP, "TITLE" ); const char *subttl = fields_findv( info, level, FIELDS_CHRP, "SUBTITLE" ); const char *shrttl = fields_findv( info, level, FIELDS_CHRP, "SHORTTITLE" ); const char *shrsubttl = fields_findv( info, level, FIELDS_CHRP, "SHORTSUBTITLE" ); if ( ttl ) { output_titleinfo( ttl, subttl, outptr, "b:Title", level ); /* output shorttitle if it's different from normal title */ if ( shrttl ) { if ( !ttl || ( strcmp( shrttl, ttl ) || subttl ) ) { fprintf( outptr, " " ); output_titlebits( shrttl, shrsubttl, outptr ); fprintf( outptr, "\n" ); } } } else if ( shrttl ) { output_titleinfo( shrttl, shrsubttl, outptr, "b:Title", level ); } } static void output_name_nomangle( FILE *outptr, const char *p ) { fprintf( outptr, "" ); fprintf( outptr, "%s", p ); fprintf( outptr, "\n" ); } static void output_name( FILE *outptr, const char *p ) { str family, part; int n=0, npart=0; str_init( &family ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); if ( *p=='|' ) p++; if ( str_has_value( &family ) ) { fprintf( outptr, "" ); fprintf( outptr, "%s", str_cstr( &family ) ); n++; } str_free( &family ); str_init( &part ); while ( *p ) { while ( *p && *p!='|' ) str_addchar( &part, *p++ ); if ( str_has_value( &part ) ) { if ( n==0 ) fprintf( outptr, "" ); if ( npart==0 ) fprintf( outptr, "%s", str_cstr( &part ) ); else fprintf( outptr, "%s", str_cstr( &part ) ); n++; npart++; } if ( *p=='|' ) { p++; str_empty( &part ); } } if ( n ) fprintf( outptr, "\n" ); str_free( &part ); } #define NAME (1) #define NAME_ASIS (2) #define NAME_CORP (4) static int extract_name_and_info( str *outtag, str *intag ) { int code = NAME; str_strcpy( outtag, intag ); if ( str_findreplace( outtag, ":ASIS", "" ) ) code = NAME_ASIS; if ( str_findreplace( outtag, ":CORP", "" ) ) code = NAME_CORP; return code; } static void output_name_type( fields *info, FILE *outptr, int level, char *map[], int nmap, const char *tag ) { str ntag; int i, j, n=0, code, nfields; str_init( &ntag ); nfields = fields_num( info ); for ( j=0; jtag[i]) ); if ( strcasecmp( str_cstr( &ntag ), map[j] ) ) continue; if ( n==0 ) fprintf( outptr, "<%s>\n", tag ); if ( code != NAME ) output_name_nomangle( outptr, (char *) fields_value( info, i, FIELDS_CHRP ) ); else output_name( outptr, (char *) fields_value( info, i, FIELDS_CHRP ) ); n++; } } str_free( &ntag ); if ( n ) fprintf( outptr, "\n", tag ); } static void output_names( fields *info, FILE *outptr, int level, int type ) { char *authors[] = { "AUTHOR", "WRITER", "ASSIGNEE", "ARTIST", "CARTOGRAPHER", "INVENTOR", "ORGANIZER", "DIRECTOR", "PERFORMER", "REPORTER", "TRANSLATOR", "ADDRESSEE", "2ND_AUTHOR", "3RD_AUTHOR", "SUB_AUTHOR", "COMMITTEE", "COURT", "LEGISLATIVEBODY" }; int nauthors = sizeof( authors ) / sizeof( authors[0] ); char *editors[] = { "EDITOR" }; int neditors = sizeof( editors ) / sizeof( editors[0] ); char author_default[] = "b:Author", inventor[] = "b:Inventor"; char *author_type = author_default; if ( type == TYPE_PATENT ) author_type = inventor; fprintf( outptr, "\n" ); output_name_type( info, outptr, level, authors, nauthors, author_type ); output_name_type( info, outptr, level, editors, neditors, "b:Editor" ); fprintf( outptr, "\n" ); } static void output_date( fields *info, FILE *outptr, int level ) { const char *year = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:YEAR", "DATE:YEAR", NULL ); const char *month = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:MONTH", "DATE:MONTH", NULL ); const char *day = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:DAY", "DATE:DAY", NULL ); if ( year ) output_itemv( outptr, "b:Year", year, 0 ); if ( month ) output_itemv( outptr, "b:Month", month, 0 ); if ( day ) output_itemv( outptr, "b:Day", day, 0 ); } static void output_pages( fields *info, FILE *outptr, int level ) { const char *sn = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "PAGES:START" ); const char *en = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "PAGES:STOP" ); const char *ar = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "ARTICLENUMBER" ); if ( sn || en ) output_range( outptr, "b:Pages", sn, en, level ); else if ( ar ) output_range( outptr, "b:Pages", ar, NULL, level ); } static void output_includedin( fields *info, FILE *outptr, int type ) { if ( type==TYPE_JOURNALARTICLE ) { output_generaltitle( info, outptr, "b:JournalName", 1 ); } else if ( type==TYPE_ARTICLEINAPERIODICAL ) { output_generaltitle( info, outptr, "b:PeriodicalTitle", 1 ); } else if ( type==TYPE_BOOKSECTION ) { output_generaltitle( info, outptr, "b:ConferenceName", 1 ); /*??*/ } else if ( type==TYPE_PROCEEDINGS ) { output_generaltitle( info, outptr, "b:ConferenceName", 1 ); } } static int type_is_thesis( int type ) { if ( type==TYPE_THESIS || type==TYPE_PHDTHESIS || type==TYPE_MASTERSTHESIS ) return 1; else return 0; } static void output_thesisdetails( fields *info, FILE *outptr, int type ) { char *tag; int i, n; if ( type==TYPE_PHDTHESIS ) output_fixed( outptr, "b:ThesisType", "Ph.D. Thesis", 0 ); else if ( type==TYPE_MASTERSTHESIS ) output_fixed( outptr, "b:ThesisType", "Masters Thesis", 0 ); n = fields_num( info ); for ( i=0; i" ); for ( i=0; i\n" ); if ( type_is_thesis( type ) ) output_thesisdetails( info, outptr, type ); } static void output_comments( fields *info, FILE *outptr, int level ) { const char *abs; vplist_index i; vplist notes; vplist_init( ¬es ); abs = fields_findv( info, level, FIELDS_CHRP, "ABSTRACT" ); fields_findv_each( info, level, FIELDS_CHRP, ¬es, "NOTES" ); if ( abs || notes.n ) fprintf( outptr, "" ); if ( abs ) fprintf( outptr, "%s", abs ); for ( i=0; i\n" ); vplist_free( ¬es ); } static void output_bibkey( fields *info, FILE *outptr ) { const char *bibkey = fields_findv_firstof( info, LEVEL_ANY, FIELDS_CHRP, "REFNUM", "BIBKEY", NULL ); if ( bibkey ) output_itemv( outptr, "b:Tag", bibkey, 0 ); } static void output_citeparts( fields *info, FILE *outptr, int level, int max, int type ) { convert origin[] = { { "ADDRESS", "b:City", "", LEVEL_ANY }, { "PUBLISHER", "b:Publisher", "", LEVEL_ANY }, { "EDITION", "b:Edition", "", LEVEL_ANY } }; int norigin = sizeof( origin ) / sizeof ( convert ); convert parts[] = { { "VOLUME", "b:Volume", "", LEVEL_ANY }, { "SECTION", "b:Section", "", LEVEL_ANY }, { "ISSUE", "b:Issue", "", LEVEL_ANY }, { "NUMBER", "b:Issue", "", LEVEL_ANY }, { "PUBLICLAWNUMBER", "b:Volume", "", LEVEL_ANY }, { "SESSION", "b:Issue", "", LEVEL_ANY }, { "URL", "b:Url", "", LEVEL_ANY }, { "JSTOR", "b:Url", "http://www.jstor.org/stable/", LEVEL_ANY }, { "ARXIV", "b:Url", "http://arxiv.org/abs/", LEVEL_ANY }, { "PMID", "b:Url", "http://www.ncbi.nlm.nih.gov/pubmed/", LEVEL_ANY }, { "PMC", "b:Url", "http://www.ncbi.nlm.nih.gov/pmc/articles/", LEVEL_ANY }, { "DOI", "b:Url", "https://doi.org/", LEVEL_ANY }, { "MRNUMBER", "b:Url", "http://www.ams.org/mathscinet-getitem?mr=", LEVEL_ANY }, }; int nparts=sizeof(parts)/sizeof(convert); output_bibkey( info, outptr ); output_type( info, outptr, type ); output_list( info, outptr, origin, norigin ); output_date( info, outptr, level ); output_includedin( info, outptr, type ); output_list( info, outptr, parts, nparts ); output_pages( info, outptr, level ); output_names( info, outptr, level, type ); output_maintitle( info, outptr, 0 ); output_comments( info, outptr, level ); } static int wordout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ) { int max = fields_maxlevel( info ); int type = get_type( info ); fprintf( outptr, "\n" ); output_citeparts( info, outptr, -1, max, type ); fprintf( outptr, "\n" ); fflush( outptr ); return BIBL_OK; } /***************************************************** PUBLIC: void wordout_writeheader() *****************************************************/ static void wordout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); fprintf(outptr,"\n"); fprintf(outptr,"\n"); } /***************************************************** PUBLIC: void wordout_writefooter() *****************************************************/ static void wordout_writefooter( FILE *outptr ) { fprintf(outptr,"\n"); fflush( outptr ); } hs-bibutils-6.10.0.0/bibutils/wordout.c0000755000000000000000000004552107346545000016050 0ustar0000000000000000/* * wordout.c * * (Word 2007 format) * * Copyright (c) Chris Putnam 2007-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "str.h" #include "fields.h" #include "utf8.h" #include "bibformats.h" /***************************************************** PUBLIC: int wordout_initparams() *****************************************************/ static void wordout_writeheader( FILE *outptr, param *p ); static void wordout_writefooter( FILE *outptr ); static int wordout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ); int wordout_initparams( param *pm, const char *progname ) { pm->writeformat = BIBL_WORD2007OUT; pm->format_opts = 0; pm->charsetout = BIBL_CHARSET_UNICODE; pm->charsetout_src = BIBL_SRC_DEFAULT; pm->latexout = 0; pm->utf8out = BIBL_CHARSET_UTF8_DEFAULT; pm->utf8bom = BIBL_CHARSET_BOM_DEFAULT; if ( !pm->utf8out ) pm->xmlout = BIBL_XMLOUT_ENTITIES; else pm->xmlout = BIBL_XMLOUT_TRUE; pm->nosplittitle = 0; pm->verbose = 0; pm->addcount = 0; pm->singlerefperfile = 0; pm->headerf = wordout_writeheader; pm->footerf = wordout_writefooter; pm->assemblef = NULL; pm->writef = wordout_write; if ( !pm->progname ) { if ( !progname ) pm->progname = NULL; else { pm->progname = strdup( progname ); if ( !pm->progname ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } /***************************************************** PUBLIC: int wordout_write() *****************************************************/ typedef struct convert { char *oldtag; char *newtag; char *prefix; int code; } convert; /* At the moment 17 unique types of sources are defined: {code} Art ArticleInAPeriodical Book BookSection Case Conference DocumentFromInternetSite ElectronicSource Film InternetSite Interview JournalArticle Report Misc Patent Performance Proceedings SoundRecording {code} */ enum { TYPE_UNKNOWN = 0, TYPE_ART, TYPE_ARTICLEINAPERIODICAL, TYPE_BOOK, TYPE_BOOKSECTION, TYPE_CASE, TYPE_CONFERENCE, TYPE_DOCUMENTFROMINTERNETSITE, TYPE_ELECTRONICSOURCE, TYPE_FILM, TYPE_INTERNETSITE, TYPE_INTERVIEW, TYPE_JOURNALARTICLE, TYPE_MISC, TYPE_PATENT, TYPE_PERFORMANCE, TYPE_PROCEEDINGS, TYPE_REPORT, TYPE_SOUNDRECORDING, TYPE_THESIS, TYPE_MASTERSTHESIS, TYPE_PHDTHESIS, }; static void output_level( FILE *outptr, int level ) { int i; for ( i=0; ivalue */ static void output_fixed( FILE *outptr, const char *tag, const char *value, int level ) { output_level( outptr, level ); fprintf( outptr, "<%s>%s\n", tag, value, tag ); } /* detail output * * value */ static void output_item( fields *info, FILE *outptr, const char *tag, const char *prefix, int item, int level ) { if ( item!=-1 ) { output_level( outptr, level ); fprintf( outptr, "<%s>%s%s\n", tag, prefix, (char*) fields_value( info, item, FIELDS_CHRP ), tag ); } } static void output_itemv( FILE *outptr, const char *tag, const char *item, int level ) { output_level( outptr, level ); fprintf( outptr, "<%s>%s\n", tag, item, tag ); } /* range output * * start-end * */ static void output_range( FILE *outptr, const char *tag, const char *start, const char *end, int level ) { if ( start && end ) { output_level( outptr, level ); fprintf( outptr, "<%s>%s-%s\n", tag, start, end, tag ); } else if ( start ) output_itemv( outptr, tag, start, level ); else if ( end ) output_itemv( outptr, tag, end, level ); } static void output_list( fields *info, FILE *outptr, convert *c, int nc ) { int i, n; for ( i=0; in; ++i ) { tag = (const char *) fields_tag( info, i, FIELDS_CHRP ); if ( strcasecmp( tag, "GENRE:MARC" ) && strcasecmp( tag, "GENRE:BIBUTILS" ) && strcasecmp( tag, "GENRE:UNKNOWN" ) ) continue; genre = (const char *) fields_value( info, i, FIELDS_CHRP ); for ( j=0; jlevel[i]; if ( !strcasecmp( genre, "academic journal" ) ) { type = TYPE_JOURNALARTICLE; } else if ( !strcasecmp( genre, "periodical" ) ) { if ( type == TYPE_UNKNOWN ) type = TYPE_ARTICLEINAPERIODICAL; } else if ( !strcasecmp( genre, "book" ) || !strcasecmp( genre, "collection" ) ) { if ( info->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_BOOKSECTION; } else if ( !strcasecmp( genre, "conference publication" ) ) { if ( level==0 ) type=TYPE_CONFERENCE; else type = TYPE_PROCEEDINGS; } else if ( !strcasecmp( genre, "thesis" ) ) { if ( type==TYPE_UNKNOWN ) type=TYPE_THESIS; } else if ( !strcasecmp( genre, "Ph.D. thesis" ) ) { type = TYPE_PHDTHESIS; } else if ( !strcasecmp( genre, "Masters thesis" ) ) { type = TYPE_MASTERSTHESIS; } } } return type; } static int get_type_from_resource( fields *info ) { int type = TYPE_UNKNOWN, i; char *tag, *resource; for ( i=0; in; ++i ) { tag = (char *) fields_tag( info, i, FIELDS_CHRP ); if ( strcasecmp( tag, "RESOURCE" ) ) continue; resource = (char *) fields_value( info, i, FIELDS_CHRP ); if ( !strcasecmp( resource, "moving image" ) ) type = TYPE_FILM; } return type; } static int get_type( fields *info ) { int type; type = get_type_from_genre( info ); if ( type==TYPE_UNKNOWN ) type = get_type_from_resource( info ); return type; } static void output_titlebits( const char *mainttl, const char *subttl, FILE *outptr ) { if ( mainttl ) fprintf( outptr, "%s", mainttl ); if ( subttl ) { if ( mainttl ) { if ( mainttl[ strlen( mainttl ) - 1 ] != '?' ) fprintf( outptr, ": " ); else fprintf( outptr, " " ); } fprintf( outptr, "%s", subttl ); } } static void output_titleinfo( const char *mainttl, const char *subttl, FILE *outptr, const char *tag, int level ) { if ( mainttl || subttl ) { fprintf( outptr, "<%s>", tag ); output_titlebits( mainttl, subttl, outptr ); fprintf( outptr, "\n", tag ); } } static void output_generaltitle( fields *info, FILE *outptr, const char *tag, int level ) { const char *ttl = fields_findv( info, level, FIELDS_CHRP, "TITLE" ); const char *subttl = fields_findv( info, level, FIELDS_CHRP, "SUBTITLE" ); const char *shrttl = fields_findv( info, level, FIELDS_CHRP, "SHORTTITLE" ); const char *shrsubttl = fields_findv( info, level, FIELDS_CHRP, "SHORTSUBTITLE" ); if ( ttl ) { output_titleinfo( ttl, subttl, outptr, tag, level ); } else if ( shrttl ) { output_titleinfo( shrttl, shrsubttl, outptr, tag, level ); } } static void output_maintitle( fields *info, FILE *outptr, int level ) { const char *ttl = fields_findv( info, level, FIELDS_CHRP, "TITLE" ); const char *subttl = fields_findv( info, level, FIELDS_CHRP, "SUBTITLE" ); const char *shrttl = fields_findv( info, level, FIELDS_CHRP, "SHORTTITLE" ); const char *shrsubttl = fields_findv( info, level, FIELDS_CHRP, "SHORTSUBTITLE" ); if ( ttl ) { output_titleinfo( ttl, subttl, outptr, "b:Title", level ); /* output shorttitle if it's different from normal title */ if ( shrttl ) { if ( !ttl || ( strcmp( shrttl, ttl ) || subttl ) ) { fprintf( outptr, " " ); output_titlebits( shrttl, shrsubttl, outptr ); fprintf( outptr, "\n" ); } } } else if ( shrttl ) { output_titleinfo( shrttl, shrsubttl, outptr, "b:Title", level ); } } static void output_name_nomangle( FILE *outptr, const char *p ) { fprintf( outptr, "" ); fprintf( outptr, "%s", p ); fprintf( outptr, "\n" ); } static void output_name( FILE *outptr, const char *p ) { str family, part; int n=0, npart=0; str_init( &family ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); if ( *p=='|' ) p++; if ( str_has_value( &family ) ) { fprintf( outptr, "" ); fprintf( outptr, "%s", str_cstr( &family ) ); n++; } str_free( &family ); str_init( &part ); while ( *p ) { while ( *p && *p!='|' ) str_addchar( &part, *p++ ); if ( str_has_value( &part ) ) { if ( n==0 ) fprintf( outptr, "" ); if ( npart==0 ) fprintf( outptr, "%s", str_cstr( &part ) ); else fprintf( outptr, "%s", str_cstr( &part ) ); n++; npart++; } if ( *p=='|' ) { p++; str_empty( &part ); } } if ( n ) fprintf( outptr, "\n" ); str_free( &part ); } #define NAME (1) #define NAME_ASIS (2) #define NAME_CORP (4) static int extract_name_and_info( str *outtag, str *intag ) { int code = NAME; str_strcpy( outtag, intag ); if ( str_findreplace( outtag, ":ASIS", "" ) ) code = NAME_ASIS; if ( str_findreplace( outtag, ":CORP", "" ) ) code = NAME_CORP; return code; } static void output_name_type( fields *info, FILE *outptr, int level, char *map[], int nmap, const char *tag ) { str ntag; int i, j, n=0, code, nfields; str_init( &ntag ); nfields = fields_num( info ); for ( j=0; jtag[i]) ); if ( strcasecmp( str_cstr( &ntag ), map[j] ) ) continue; if ( n==0 ) fprintf( outptr, "<%s>\n", tag ); if ( code != NAME ) output_name_nomangle( outptr, (char *) fields_value( info, i, FIELDS_CHRP ) ); else output_name( outptr, (char *) fields_value( info, i, FIELDS_CHRP ) ); n++; } } str_free( &ntag ); if ( n ) fprintf( outptr, "\n", tag ); } static void output_names( fields *info, FILE *outptr, int level, int type ) { char *authors[] = { "AUTHOR", "WRITER", "ASSIGNEE", "ARTIST", "CARTOGRAPHER", "INVENTOR", "ORGANIZER", "DIRECTOR", "PERFORMER", "REPORTER", "TRANSLATOR", "ADDRESSEE", "2ND_AUTHOR", "3RD_AUTHOR", "SUB_AUTHOR", "COMMITTEE", "COURT", "LEGISLATIVEBODY" }; int nauthors = sizeof( authors ) / sizeof( authors[0] ); char *editors[] = { "EDITOR" }; int neditors = sizeof( editors ) / sizeof( editors[0] ); char author_default[] = "b:Author", inventor[] = "b:Inventor"; char *author_type = author_default; if ( type == TYPE_PATENT ) author_type = inventor; fprintf( outptr, "\n" ); output_name_type( info, outptr, level, authors, nauthors, author_type ); output_name_type( info, outptr, level, editors, neditors, "b:Editor" ); fprintf( outptr, "\n" ); } static void output_date( fields *info, FILE *outptr, int level ) { const char *year = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:YEAR", "DATE:YEAR", NULL ); const char *month = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:MONTH", "DATE:MONTH", NULL ); const char *day = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:DAY", "DATE:DAY", NULL ); if ( year ) output_itemv( outptr, "b:Year", year, 0 ); if ( month ) output_itemv( outptr, "b:Month", month, 0 ); if ( day ) output_itemv( outptr, "b:Day", day, 0 ); } static void output_pages( fields *info, FILE *outptr, int level ) { const char *sn = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "PAGES:START" ); const char *en = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "PAGES:STOP" ); const char *ar = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "ARTICLENUMBER" ); if ( sn || en ) output_range( outptr, "b:Pages", sn, en, level ); else if ( ar ) output_range( outptr, "b:Pages", ar, NULL, level ); } static void output_includedin( fields *info, FILE *outptr, int type ) { if ( type==TYPE_JOURNALARTICLE ) { output_generaltitle( info, outptr, "b:JournalName", 1 ); } else if ( type==TYPE_ARTICLEINAPERIODICAL ) { output_generaltitle( info, outptr, "b:PeriodicalTitle", 1 ); } else if ( type==TYPE_BOOKSECTION ) { output_generaltitle( info, outptr, "b:ConferenceName", 1 ); /*??*/ } else if ( type==TYPE_PROCEEDINGS ) { output_generaltitle( info, outptr, "b:ConferenceName", 1 ); } } static int type_is_thesis( int type ) { if ( type==TYPE_THESIS || type==TYPE_PHDTHESIS || type==TYPE_MASTERSTHESIS ) return 1; else return 0; } static void output_thesisdetails( fields *info, FILE *outptr, int type ) { char *tag; int i, n; if ( type==TYPE_PHDTHESIS ) output_fixed( outptr, "b:ThesisType", "Ph.D. Thesis", 0 ); else if ( type==TYPE_MASTERSTHESIS ) output_fixed( outptr, "b:ThesisType", "Masters Thesis", 0 ); n = fields_num( info ); for ( i=0; i" ); for ( i=0; i\n" ); if ( type_is_thesis( type ) ) output_thesisdetails( info, outptr, type ); } static void output_comments( fields *info, FILE *outptr, int level ) { const char *abs; vplist_index i; vplist notes; vplist_init( ¬es ); abs = fields_findv( info, level, FIELDS_CHRP, "ABSTRACT" ); fields_findv_each( info, level, FIELDS_CHRP, ¬es, "NOTES" ); if ( abs || notes.n ) fprintf( outptr, "" ); if ( abs ) fprintf( outptr, "%s", abs ); for ( i=0; i\n" ); vplist_free( ¬es ); } static void output_bibkey( fields *info, FILE *outptr ) { const char *bibkey = fields_findv_firstof( info, LEVEL_ANY, FIELDS_CHRP, "REFNUM", "BIBKEY", NULL ); if ( bibkey ) output_itemv( outptr, "b:Tag", bibkey, 0 ); } static void output_citeparts( fields *info, FILE *outptr, int level, int max, int type ) { convert origin[] = { { "ADDRESS", "b:City", "", LEVEL_ANY }, { "PUBLISHER", "b:Publisher", "", LEVEL_ANY }, { "EDITION", "b:Edition", "", LEVEL_ANY } }; int norigin = sizeof( origin ) / sizeof ( convert ); convert parts[] = { { "VOLUME", "b:Volume", "", LEVEL_ANY }, { "SECTION", "b:Section", "", LEVEL_ANY }, { "ISSUE", "b:Issue", "", LEVEL_ANY }, { "NUMBER", "b:Issue", "", LEVEL_ANY }, { "PUBLICLAWNUMBER", "b:Volume", "", LEVEL_ANY }, { "SESSION", "b:Issue", "", LEVEL_ANY }, { "URL", "b:Url", "", LEVEL_ANY }, { "JSTOR", "b:Url", "http://www.jstor.org/stable/", LEVEL_ANY }, { "ARXIV", "b:Url", "http://arxiv.org/abs/", LEVEL_ANY }, { "PMID", "b:Url", "http://www.ncbi.nlm.nih.gov/pubmed/", LEVEL_ANY }, { "PMC", "b:Url", "http://www.ncbi.nlm.nih.gov/pmc/articles/", LEVEL_ANY }, { "DOI", "b:Url", "https://doi.org/", LEVEL_ANY }, { "MRNUMBER", "b:Url", "http://www.ams.org/mathscinet-getitem?mr=", LEVEL_ANY }, }; int nparts=sizeof(parts)/sizeof(convert); output_bibkey( info, outptr ); output_type( info, outptr, type ); output_list( info, outptr, origin, norigin ); output_date( info, outptr, level ); output_includedin( info, outptr, type ); output_list( info, outptr, parts, nparts ); output_pages( info, outptr, level ); output_names( info, outptr, level, type ); output_maintitle( info, outptr, 0 ); output_comments( info, outptr, level ); } static int wordout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ) { int max = fields_maxlevel( info ); int type = get_type( info ); fprintf( outptr, "\n" ); output_citeparts( info, outptr, -1, max, type ); fprintf( outptr, "\n" ); fflush( outptr ); return BIBL_OK; } /***************************************************** PUBLIC: void wordout_writeheader() *****************************************************/ static void wordout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); fprintf(outptr,"\n"); fprintf(outptr,"\n"); } /***************************************************** PUBLIC: void wordout_writefooter() *****************************************************/ static void wordout_writefooter( FILE *outptr ) { fprintf(outptr,"\n"); fflush( outptr ); } hs-bibutils-6.10.0.0/bibutils/xml.c0000644000000000000000000002064607346545000015143 0ustar0000000000000000/* * xml.c * * Copyright (c) Chris Putnam 2004-2020 * * Source code released under the GPL version 2 * */ #include #include #include #include "is_ws.h" #include "strsearch.h" #include "xml.h" char *xml_pns = NULL; void xml_init( xml *node ) { str_init( &(node->tag) ); str_init( &(node->value) ); slist_init( &(node->attributes) ); slist_init( &(node->attribute_values) ); node->down = NULL; node->next = NULL; } static xml * xml_new( void ) { xml *node = ( xml * ) malloc( sizeof( xml ) ); if ( node ) xml_init( node ); return node; } static void xml_delete( xml *node ) { xml_free( node ); free( node ); } void xml_free( xml *node ) { str_free( &(node->tag) ); str_free( &(node->value) ); slist_free( &(node->attributes) ); slist_free( &(node->attribute_values) ); if ( node->down ) xml_delete( node->down ); if ( node->next ) xml_delete( node->next ); } enum { XML_DESCRIPTOR, XML_COMMENT, XML_OPEN, XML_CLOSE, XML_OPENCLOSE }; static int xml_is_terminator( const char *p, int *type ) { if ( *p=='>' ) { return 1; } else if ( *p=='/' && *(p+1)=='>' ) { if ( *type==XML_OPENCLOSE ) return 1; else if ( *type==XML_OPEN ) { *type = XML_OPENCLOSE; return 1; } } else if ( *p=='?' && *(p+1)=='>' && *type==XML_DESCRIPTOR ) { return 1; } else if ( *p=='!' && *(p+1)=='>' && *type==XML_COMMENT ) { return 1; } return 0; } static int xml_add_attribute( xml *node, char *attribute, char *attribute_value ) { int status; if ( attribute ) status = slist_addc( &(node->attributes), attribute ); else status = slist_addc( &(node->attributes), "" ); if ( status!=SLIST_OK ) return 0; if ( attribute_value ) status = slist_addc( &(node->attribute_values), attribute_value ); else status = slist_addc( &(node->attribute_values), "" ); if ( status!=SLIST_OK ) { (void) slist_remove( &(node->attributes), node->attributes.n-1 ); return 0; } return 1; } static const char * xml_processattrib( const char *p, xml *node, int *type ) { char quote_character = '\"'; int inquotes = 0; str aname, aval; str_init( &aname ); str_init( &aval ); while ( *p && !xml_is_terminator( p, type ) ) { /* get attribute name */ while ( *p==' ' || *p=='\t' ) p++; while ( *p && !strchr( "= \t", *p ) && !xml_is_terminator( p, type ) ){ str_addchar( &aname, *p ); p++; } /* equals sign */ while ( *p==' ' || *p=='\t' ) p++; if ( *p=='=' ) p++; while ( *p==' ' || *p=='\t' ) p++; /* get attribute value */ if ( *p=='\"' || *p=='\'' ) { if ( *p=='\'' ) quote_character = *p; inquotes=1; p++; } while ( *p && ((!xml_is_terminator(p,type) && !strchr("= \t", *p ))||inquotes)){ if ( *p==quote_character ) inquotes=0; else str_addchar( &aval, *p ); p++; } if ( str_has_value( &aname ) ) { xml_add_attribute( node, str_cstr( &aname ), str_cstr( &aval ) ); } str_empty( &aname ); str_empty( &aval ); } str_free( &aname ); str_free( &aval ); return p; } /* * xml_processtag * * start right after '<' * * * XML_COMMENT * XML_DESCRIPTOR * XML_OPEN * XML_CLOSE * XML_OPENCLOSE */ static const char * xml_processtag( const char *p, xml *node, int *type ) { str tag; str_init( &tag ); if ( *p=='!' ) { *type = XML_COMMENT; while ( *p && *p!='>' ) p++; } else if ( *p=='?' ) { *type = XML_DESCRIPTOR; p++; /* skip '?' */ while ( *p && !strchr( " \t", *p ) && !xml_is_terminator(p,type) ) str_addchar( &tag, *p++ ); if ( *p==' ' || *p=='\t' ) p = xml_processattrib( p, node, type ); } else if ( *p=='/' ) { *type = XML_CLOSE; while ( *p && !strchr( " \t", *p ) && !xml_is_terminator(p,type) ) str_addchar( &tag, *p++ ); if ( *p==' ' || *p=='\t' ) p = xml_processattrib( p, node, type ); } else { *type = XML_OPEN; while ( *p && !strchr( " \t", *p ) && !xml_is_terminator(p,type) ) str_addchar( &tag, *p++ ); if ( *p==' ' || *p=='\t' ) p = xml_processattrib( p, node, type ); } while ( *p && *p!='>' ) p++; if ( *p=='>' ) p++; str_strcpy( &(node->tag), &tag ); str_free( &tag ); return p; } static void xml_appendnode( xml *onode, xml *nnode ) { if ( !onode->down ) onode->down = nnode; else { xml *p = onode->down; while ( p->next ) p = p->next; p->next = nnode; } } const char * xml_parse( const char *p, xml *onode ) { int type, is_style = 0; xml *nnode; while ( *p ) { /* retain white space for