# ***************************************************************************
# *
# *   Copyright (C) 1995-2007, International Business Machines
# *   Corporation and others.  All Rights Reserved.
# *
# ***************************************************************************
#
# File created by rptp2ucm (compiled on Dec  3 2002)
# from source files 44B00391.RPMAP100 and 039144B0.TPMAP100
#
<code_set_name>               "ibm-913_P100-2000"
<char_name_mask>              "AXXXX"
<mb_cur_max>                  1
<mb_cur_min>                  1
<uconv_class>                 "SBCS"
<subchar>                     \x1A
<icu:charsetFamily>           "ASCII"
<icu:alias>                   "ibm-913_STD"

CHARMAP
<U0000> \x00 |0
<U0001> \x01 |0
<U0002> \x02 |0
<U0003> \x03 |0
<U0004> \x04 |0
<U0005> \x05 |0
<U0006> \x06 |0
<U0007> \x07 |0
<U0008> \x08 |0
<U0009> \x09 |0
<U000A> \x0A |0
<U000B> \x0B |0
<U000C> \x0C |0
<U000D> \x0D |0
<U000E> \x0E |0
<U000F> \x0F |0
<U0010> \x10 |0
<U0011> \x11 |0
<U0012> \x12 |0
<U0013> \x13 |0
<U0014> \x14 |0
<U0015> \x15 |0
<U0016> \x16 |0
<U0017> \x17 |0
<U0018> \x18 |0
<U0019> \x19 |0
<U001A> \x1A |0
<U001B> \x1B |0
<U001C> \x1C |0
<U001D> \x1D |0
<U001E> \x1E |0
<U001F> \x1F |0
<U0020> \x20 |0
<U0021> \x21 |0
<U0022> \x22 |0
<U0023> \x23 |0
<U0024> \x24 |0
<U0025> \x25 |0
<U0026> \x26 |0
<U0027> \x27 |0
<U0028> \x28 |0
<U0029> \x29 |0
<U002A> \x2A |0
<U002B> \x2B |0
<U002C> \x2C |0
<U002D> \x2D |0
<U002E> \x2E |0
<U002F> \x2F |0
<U0030> \x30 |0
<U0031> \x31 |0
<U0032> \x32 |0
<U0033> \x33 |0
<U0034> \x34 |0
<U0035> \x35 |0
<U0036> \x36 |0
<U0037> \x37 |0
<U0038> \x38 |0
<U0039> \x39 |0
<U003A> \x3A |0
<U003B> \x3B |0
<U003C> \x3C |0
<U003D> \x3D |0
<U003E> \x3E |0
<U003F> \x3F |0
<U0040> \x40 |0
<U0041> \x41 |0
<U0042> \x42 |0
<U0043> \x43 |0
<U0044> \x44 |0
<U0045> \x45 |0
<U0046> \x46 |0
<U0047> \x47 |0
<U0048> \x48 |0
<U0049> \x49 |0
<U004A> \x4A |0
<U004B> \x4B |0
<U004C> \x4C |0
<U004D> \x4D |0
<U004E> \x4E |0
<U004F> \x4F |0
<U0050> \x50 |0
<U0051> \x51 |0
<U0052> \x52 |0
<U0053> \x53 |0
<U0054> \x54 |0
<U0055> \x55 |0
<U0056> \x56 |0
<U0057> \x57 |0
<U0058> \x58 |0
<U0059> \x59 |0
<U005A> \x5A |0
<U005B> \x5B |0
<U005C> \x5C |0
<U005D> \x5D |0
<U005E> \x5E |0
<U005F> \x5F |0
<U0060> \x60 |0
<U0061> \x61 |0
<U0062> \x62 |0
<U0063> \x63 |0
<U0064> \x64 |0
<U0065> \x65 |0
<U0066> \x66 |0
<U0067> \x67 |0
<U0068> \x68 |0
<U0069> \x69 |0
<U006A> \x6A |0
<U006B> \x6B |0
<U006C> \x6C |0
<U006D> \x6D |0
<U006E> \x6E |0
<U006F> \x6F |0
<U0070> \x70 |0
<U0071> \x71 |0
<U0072> \x72 |0
<U0073> \x73 |0
<U0074> \x74 |0
<U0075> \x75 |0
<U0076> \x76 |0
<U0077> \x77 |0
<U0078> \x78 |0
<U0079> \x79 |0
<U007A> \x7A |0
<U007B> \x7B |0
<U007C> \x7C |0
<U007D> \x7D |0
<U007E> \x7E |0
<U007F> \x7F |0
<U0080> \x80 |0
<U0081> \x81 |0
<U0082> \x82 |0
<U0083> \x83 |0
<U0084> \x84 |0
<U0085> \x85 |0
<U0086> \x86 |0
<U0087> \x87 |0
<U0088> \x88 |0
<U0089> \x89 |0
<U008A> \x8A |0
<U008B> \x8B |0
<U008C> \x8C |0
<U008D> \x8D |0
<U008E> \x8E |0
<U008F> \x8F |0
<U0090> \x90 |0
<U0091> \x91 |0
<U0092> \x92 |0
<U0093> \x93 |0
<U0094> \x94 |0
<U0095> \x95 |0
<U0096> \x96 |0
<U0097> \x97 |0
<U0098> \x98 |0
<U0099> \x99 |0
<U009A> \x9A |0
<U009B> \x9B |0
<U009C> \x9C |0
<U009D> \x9D |0
<U009E> \x9E |0
<U009F> \x9F |0
<U00A0> \xA0 |0
<U00A3> \xA3 |0
<U00A4> \xA4 |0
<U00A7> \xA7 |0
<U00A8> \xA8 |0
<U00AD> \xAD |0
<U00B0> \xB0 |0
<U00B2> \xB2 |0
<U00B3> \xB3 |0
<U00B4> \xB4 |0
<U00B5> \xB5 |0
<U00B7> \xB7 |0
<U00B8> \xB8 |0
<U00BD> \xBD |0
<U00C0> \xC0 |0
<U00C1> \xC1 |0
<U00C2> \xC2 |0
<U00C4> \xC4 |0
<U00C7> \xC7 |0
<U00C8> \xC8 |0
<U00C9> \xC9 |0
<U00CA> \xCA |0
<U00CB> \xCB |0
<U00CC> \xCC |0
<U00CD> \xCD |0
<U00CE> \xCE |0
<U00CF> \xCF |0
<U00D1> \xD1 |0
<U00D2> \xD2 |0
<U00D3> \xD3 |0
<U00D4> \xD4 |0
<U00D6> \xD6 |0
<U00D7> \xD7 |0
<U00D9> \xD9 |0
<U00DA> \xDA |0
<U00DB> \xDB |0
<U00DC> \xDC |0
<U00DF> \xDF |0
<U00E0> \xE0 |0
<U00E1> \xE1 |0
<U00E2> \xE2 |0
<U00E4> \xE4 |0
<U00E7> \xE7 |0
<U00E8> \xE8 |0
<U00E9> \xE9 |0
<U00EA> \xEA |0
<U00EB> \xEB |0
<U00EC> \xEC |0
<U00ED> \xED |0
<U00EE> \xEE |0
<U00EF> \xEF |0
<U00F1> \xF1 |0
<U00F2> \xF2 |0
<U00F3> \xF3 |0
<U00F4> \xF4 |0
<U00F6> \xF6 |0
<U00F7> \xF7 |0
<U00F9> \xF9 |0
<U00FA> \xFA |0
<U00FB> \xFB |0
<U00FC> \xFC |0
<U0108> \xC6 |0
<U0109> \xE6 |0
<U010A> \xC5 |0
<U010B> \xE5 |0
<U011C> \xD8 |0
<U011D> \xF8 |0
<U011E> \xAB |0
<U011F> \xBB |0
<U0120> \xD5 |0
<U0121> \xF5 |0
<U0124> \xA6 |0
<U0125> \xB6 |0
<U0126> \xA1 |0
<U0127> \xB1 |0
<U0130> \xA9 |0
<U0131> \xB9 |0
<U0134> \xAC |0
<U0135> \xBC |0
<U015C> \xDE |0
<U015D> \xFE |0
<U015E> \xAA |0
<U015F> \xBA |0
<U016C> \xDD |0
<U016D> \xFD |0
<U017B> \xAF |0
<U017C> \xBF |0
<U02D8> \xA2 |0
<U02D9> \xFF |0
<UFF01> \x21 |1
<UFF02> \x22 |1
<UFF03> \x23 |1
<UFF04> \x24 |1
<UFF05> \x25 |1
<UFF06> \x26 |1
<UFF07> \x27 |1
<UFF08> \x28 |1
<UFF09> \x29 |1
<UFF0A> \x2A |1
<UFF0B> \x2B |1
<UFF0C> \x2C |1
<UFF0D> \x2D |1
<UFF0E> \x2E |1
<UFF0F> \x2F |1
<UFF10> \x30 |1
<UFF11> \x31 |1
<UFF12> \x32 |1
<UFF13> \x33 |1
<UFF14> \x34 |1
<UFF15> \x35 |1
<UFF16> \x36 |1
<UFF17> \x37 |1
<UFF18> \x38 |1
<UFF19> \x39 |1
<UFF1A> \x3A |1
<UFF1B> \x3B |1
<UFF1C> \x3C |1
<UFF1D> \x3D |1
<UFF1E> \x3E |1
<UFF1F> \x3F |1
<UFF20> \x40 |1
<UFF21> \x41 |1
<UFF22> \x42 |1
<UFF23> \x43 |1
<UFF24> \x44 |1
<UFF25> \x45 |1
<UFF26> \x46 |1
<UFF27> \x47 |1
<UFF28> \x48 |1
<UFF29> \x49 |1
<UFF2A> \x4A |1
<UFF2B> \x4B |1
<UFF2C> \x4C |1
<UFF2D> \x4D |1
<UFF2E> \x4E |1
<UFF2F> \x4F |1
<UFF30> \x50 |1
<UFF31> \x51 |1
<UFF32> \x52 |1
<UFF33> \x53 |1
<UFF34> \x54 |1
<UFF35> \x55 |1
<UFF36> \x56 |1
<UFF37> \x57 |1
<UFF38> \x58 |1
<UFF39> \x59 |1
<UFF3A> \x5A |1
<UFF3B> \x5B |1
<UFF3C> \x5C |1
<UFF3D> \x5D |1
<UFF3E> \x5E |1
<UFF3F> \x5F |1
<UFF40> \x60 |1
<UFF41> \x61 |1
<UFF42> \x62 |1
<UFF43> \x63 |1
<UFF44> \x64 |1
<UFF45> \x65 |1
<UFF46> \x66 |1
<UFF47> \x67 |1
<UFF48> \x68 |1
<UFF49> \x69 |1
<UFF4A> \x6A |1
<UFF4B> \x6B |1
<UFF4C> \x6C |1
<UFF4D> \x6D |1
<UFF4E> \x6E |1
<UFF4F> \x6F |1
<UFF50> \x70 |1
<UFF51> \x71 |1
<UFF52> \x72 |1
<UFF53> \x73 |1
<UFF54> \x74 |1
<UFF55> \x75 |1
<UFF56> \x76 |1
<UFF57> \x77 |1
<UFF58> \x78 |1
<UFF59> \x79 |1
<UFF5A> \x7A |1
<UFF5B> \x7B |1
<UFF5C> \x7C |1
<UFF5D> \x7D |1
<UFF5E> \x7E |1
END CHARMAP
