
#       Thus if there are many rows that have the same Unicode character,
#       Thus pass 2 overrides pass 1.  See VietAscii.txt for an example
#       are all mapped to the same letter A in column 1.
#       from top of the file to bottom and from right to left.
#       the last row will define the reverse mapping.
#       to left, i.e, reading column 2 before column 1
#       where many Viet Unicode characters A', A`, A?, A~, A., A^, etc
#      column 1 is codepage, column 2 is Unicode, column 3 is comment
#     + pass 1: read entire file from top to bottom and from right
#     + pass 2: read only lines that start with "#R 0x" at column 1,
#   Depending on codepages such as VNI-Windows, DHBK2, this mapping
#   can be many-to-one, i.e., many different values in column 1 are
#   mapped to the same Unicode value.
#   reading the file in two passes:
# - The reverse mapping from Unicode to codepage is obtained by
# - This file defines the forward mapping from codepage to Unicode:
# 1. Short name: VNIwin
# 2. Long name: VNI For Windows
# 3. Encoding type: Multibyte encoding -- up to 2 bytes
# Author:  Hoc D. Ngo
# Date:    Wed Jan 12 21:25:03 2005
# Email:   trichlor@trichlor.org, hoc96@yahoo.com, hocngo@gmail.com
# Note:
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
0x00       0x0000  #  
0x01       0x0001  #  
0x02       0x0002  #  
0x03       0x0003  #  
0x04       0x0004  #  
0x05       0x0005  #  
0x06       0x0006  #  
0x07       0x0007  #  
0x08       0x0008  #  
0x09       0x0009  #  
0x0A       0x000A  #  
0x0B       0x000B  #  
0x0C       0x000C  #  
0x0D       0x000D  #  
0x0E       0x000E  #  
0x0F       0x000F  #  
0x10       0x0010  #  
0x11       0x0011  #  
0x12       0x0012  #  
0x13       0x0013  #  
0x14       0x0014  #  
0x15       0x0015  #  
0x16       0x0016  #  
0x17       0x0017  #  
0x18       0x0018  #  
0x19       0x0019  #  
0x1A       0x001A  #  
0x1B       0x001B  #  
0x1C       0x001C  #  
0x1D       0x001D  #  
0x1E       0x001E  #  
0x1F       0x001F  #  
0x20       0x0020  #  
0x21       0x0021  # !
0x22       0x0022  # "
0x23       0x0023  # #
0x24       0x0024  # $
0x25       0x0025  # %
0x26       0x0026  # &
0x27       0x0027  # '
0x28       0x0028  # (
0x29       0x0029  # )
0x2A       0x002A  # *
0x2B       0x002B  # +
0x2C       0x002C  # ,
0x2D       0x002D  # -
0x2E       0x002E  # .
0x2F       0x002F  # /
0x30       0x0030  # 0
0x31       0x0031  # 1
0x32       0x0032  # 2
0x33       0x0033  # 3
0x34       0x0034  # 4
0x35       0x0035  # 5
0x36       0x0036  # 6
0x37       0x0037  # 7
0x38       0x0038  # 8
0x39       0x0039  # 9
0x3A       0x003A  # :
0x3B       0x003B  # ;
0x3C       0x003C  # <
0x3D       0x003D  # =
0x3E       0x003E  # >
0x3F       0x003F  # ?
0x40       0x0040  # @
0x41       0x0041  # A
0x41,0xC0  0x1EA6  # A^`
0x41,0xC1  0x1EA4  # A^'
0x41,0xC2  0x00C2  # A^
0x41,0xC3  0x1EAA  # A^~
0x41,0xC4  0x1EAC  # A^.
0x41,0xC5  0x1EA8  # A^?
0x41,0xC8  0x1EB0  # A(`
0x41,0xC9  0x1EAE  # A('
0x41,0xCA  0x0102  # A(
0x41,0xCB  0x1EB6  # A(.
0x41,0xCF  0x1EA0  # A.
0x41,0xD5  0x00C3  # A~
0x41,0xD8  0x00C0  # A`
0x41,0xD9  0x00C1  # A'
0x41,0xDA  0x1EB2  # A(?
0x41,0xDB  0x1EA2  # A?
0x41,0xDC  0x1EB4  # A(~
0x42       0x0042  # B
0x43       0x0043  # C
0x44       0x0044  # D
0x45       0x0045  # E
0x45,0xC0  0x1EC0  # E^`
0x45,0xC1  0x1EBE  # E^'
0x45,0xC2  0x00CA  # E^
0x45,0xC3  0x1EC4  # E^~
0x45,0xC4  0x1EC6  # E^.
0x45,0xC5  0x1EC2  # E^?
0x45,0xCF  0x1EB8  # E.
0x45,0xD5  0x1EBC  # E~
0x45,0xD8  0x00C8  # E`
0x45,0xD9  0x00C9  # E'
0x45,0xDB  0x1EBA  # E?
0x46       0x0046  # F
0x47       0x0047  # G
0x48       0x0048  # H
0x49       0x0049  # I
0x4A       0x004A  # J
0x4B       0x004B  # K
0x4C       0x004C  # L
0x4D       0x004D  # M
0x4E       0x004E  # N
0x4F       0x004F  # O
0x4F,0xC0  0x1ED2  # O^`
0x4F,0xC1  0x1ED0  # O^'
0x4F,0xC2  0x00D4  # O^
0x4F,0xC3  0x1ED6  # O^~
0x4F,0xC4  0x1ED8  # O^.
0x4F,0xC5  0x1ED4  # O^?
0x4F,0xCF  0x1ECC  # O.
0x4F,0xD5  0x00D5  # O~
0x4F,0xD8  0x00D2  # O`
0x4F,0xD9  0x00D3  # O'
0x4F,0xDB  0x1ECE  # O?
0x50       0x0050  # P
0x51       0x0051  # Q
0x52       0x0052  # R
0x53       0x0053  # S
0x54       0x0054  # T
0x55       0x0055  # U
0x55,0xCF  0x1EE4  # U.
0x55,0xD5  0x0168  # U~
0x55,0xD8  0x00D9  # U`
0x55,0xD9  0x00DA  # U'
0x55,0xDB  0x1EE6  # U?
0x56       0x0056  # V
0x57       0x0057  # W
0x58       0x0058  # X
0x59       0x0059  # Y
0x59,0xD5  0x1EF8  # Y~
0x59,0xD8  0x1EF2  # Y`
0x59,0xD9  0x00DD  # Y'
0x59,0xDB  0x1EF6  # Y?
0x5A       0x005A  # Z
0x5B       0x005B  # [
0x5C       0x005C  # \
0x5D       0x005D  # ]
0x5E       0x005E  # ^
0x5F       0x005F  # _
0x60       0x0060  # `
0x61       0x0061  # a
0x61,0xE0  0x1EA7  # a^`
0x61,0xE1  0x1EA5  # a^'
0x61,0xE2  0x00E2  # a^
0x61,0xE3  0x1EAB  # a^~
0x61,0xE4  0x1EAD  # a^.
0x61,0xE5  0x1EA9  # a^?
0x61,0xE8  0x1EB1  # a(`
0x61,0xE9  0x1EAF  # a('
0x61,0xEA  0x0103  # a(
0x61,0xEB  0x1EB7  # a(.
0x61,0xEF  0x1EA1  # a.
0x61,0xF5  0x00E3  # a~
0x61,0xF8  0x00E0  # a`
0x61,0xF9  0x00E1  # a'
0x61,0xFA  0x1EB3  # a(?
0x61,0xFB  0x1EA3  # a?
0x61,0xFC  0x1EB5  # a(~
0x62       0x0062  # b
0x63       0x0063  # c
0x64       0x0064  # d
0x65       0x0065  # e
0x65,0xE0  0x1EC1  # e^`
0x65,0xE1  0x1EBF  # e^'
0x65,0xE2  0x00EA  # e^
0x65,0xE3  0x1EC5  # e^~
0x65,0xE4  0x1EC7  # e^.
0x65,0xE5  0x1EC3  # e^?
0x65,0xEF  0x1EB9  # e.
0x65,0xF5  0x1EBD  # e~
0x65,0xF8  0x00E8  # e`
0x65,0xF9  0x00E9  # e'
0x65,0xFB  0x1EBB  # e?
0x66       0x0066  # f
0x67       0x0067  # g
0x68       0x0068  # h
0x69       0x0069  # i
0x6A       0x006A  # j
0x6B       0x006B  # k
0x6C       0x006C  # l
0x6D       0x006D  # m
0x6E       0x006E  # n
0x6F       0x006F  # o
0x6F,0xE0  0x1ED3  # o^`
0x6F,0xE1  0x1ED1  # o^'
0x6F,0xE2  0x00F4  # o^
0x6F,0xE3  0x1ED7  # o^~
0x6F,0xE4  0x1ED9  # o^.
0x6F,0xE5  0x1ED5  # o^?
0x6F,0xEF  0x1ECD  # o.
0x6F,0xF5  0x00F5  # o~
0x6F,0xF8  0x00F2  # o`
0x6F,0xF9  0x00F3  # o'
0x6F,0xFB  0x1ECF  # o?
0x70       0x0070  # p
0x71       0x0071  # q
0x72       0x0072  # r
0x73       0x0073  # s
0x74       0x0074  # t
0x75       0x0075  # u
0x75,0xEF  0x1EE5  # u.
0x75,0xF5  0x0169  # u~
0x75,0xF8  0x00F9  # u`
0x75,0xF9  0x00FA  # u'
0x75,0xFB  0x1EE7  # u?
0x76       0x0076  # v
0x77       0x0077  # w
0x78       0x0078  # x
0x79       0x0079  # y
0x79,0xF5  0x1EF9  # y~
0x79,0xF8  0x1EF3  # y`
0x79,0xF9  0x00FD  # y'
0x79,0xFB  0x1EF7  # y?
0x7A       0x007A  # z
0x7B       0x007B  # {
0x7C       0x007C  # |
0x7D       0x007D  # }
0x7E       0x007E  # ~
0x7F       0x007F  #  
0xC6       0x1EC8  # I?
0xCC       0x00CC  # I`
0xCD       0x00CD  # I'
0xCE       0x1EF4  # Y.
0xD1       0x0110  # DD
0xD2       0x1ECA  # I.
0xD3       0x0128  # I~
0xD4       0x01A0  # O+
0xD4,0xCF  0x1EE2  # O+.
0xD4,0xD5  0x1EE0  # O+~
0xD4,0xD8  0x1EDC  # O+`
0xD4,0xD9  0x1EDA  # O+'
0xD4,0xDB  0x1EDE  # O+?
0xD6       0x01AF  # U+
0xD6,0xCF  0x1EF0  # U+.
0xD6,0xD5  0x1EEE  # U+~
0xD6,0xD8  0x1EEA  # U+`
0xD6,0xD9  0x1EE8  # U+'
0xD6,0xDB  0x1EEC  # U+?
0xE6       0x1EC9  # i?
0xEC       0x00EC  # i`
0xED       0x00ED  # i'
0xEE       0x1EF5  # y.
0xF1       0x0111  # dd
0xF2       0x1ECB  # i.
0xF3       0x0129  # i~
0xF4       0x01A1  # o+
0xF4,0xEF  0x1EE3  # o+.
0xF4,0xF5  0x1EE1  # o+~
0xF4,0xF8  0x1EDD  # o+`
0xF4,0xF9  0x1EDB  # o+'
0xF4,0xFB  0x1EDF  # o+?
0xF6       0x01B0  # u+
0xF6,0xEF  0x1EF1  # u+.
0xF6,0xF5  0x1EEF  # u+~
0xF6,0xF8  0x1EEB  # u+`
0xF6,0xF9  0x1EE9  # u+'
0xF6,0xFB  0x1EED  # u+?

# International chars

0x82        0x00C6        # (A) = 
0x83        0x0192        # (f) = 
0x84        0x00E6        # (a) = 
0x86        0x2020        # (NOTE) = 
0x88        0x0153        # (e) = 
0x89        0x2030        # (%) = 
0x8b        0x012C        # I( = 
0x96        0x2013        # (-) = 
0x97        0x2014        # (--) = 
0x99        0x2122        # (TM) = 
0x9b        0x012D        # i( = 
0x9f        0x012B        # i9 = 
0xa1        0x00A1        # (!) = 
0xa2        0x00A2        # (C/) = 
0xa3        0x00A3        # (L) = 
0xa5        0x00A5        # (Y-) = 
0xa7        0x00A7        # (SS) = 
0xa9        0x00A9        # (C) = 
0xaa        0x00AA        # (U) = 
0xab        0x00AB        # (<) = 
0xac        0x0152        # (E) = 
0xae        0x00AE        # (R) = 
0xb0        0x00B0        # (O) = 
0xbb        0x00BB        # (>) = 
0xbe        0x00F0        # (d) = 
0xbf        0x00BF        # (?) = 
0xc7        0x00C7        # C9 = 
0xd0        0x00CF        # I% = 
0xd1        0x00D0        # (D) = 
0xd7        0x012A        # I9 = 
0xde        0x00D8        # O/ = 
0xdf        0x00DF        # (b) = 
0xe7        0x00E7        # c8 = 
0xf0        0x00EF        # i% = 
;0xf7        0x20AB        # (D) = 
0xf7        0x00F7        # -:-
0xfe        0x00F8        # o/ = 
0x6c,0x85   0x1E37        # l0 = l
0x6c,0xcf   0x1E37        # l0 = l
0x6c,0xef   0x1E37        # l0 = l
0x74,0x85   0x1E6D        # t0 = t
0x74,0xcf   0x1E6D        # t0 = t
0x74,0xef   0x1E6D        # t0 = t
0x64,0x87   0x0064,0x030C # d< = d
0x6c,0x87   0x006C,0x030C # l< = l
0x74,0x87   0x0074,0x030C # t< = t
0x41,0x8a   0x00C4        # A% = A
0x45,0x8a   0x00CB        # E% = E
0x4f,0x8a   0x00D6        # O% = O
0x55,0x8a   0x00DC        # U% = U
0x59,0x8a   0x0178        # Y% = Y
0x41,0x98   0x00C5        # A0 = A
0x55,0x98   0x016E        # U0 = U
0x61,0x9a   0x00E4        # a% = a
0x65,0x9a   0x00EB        # e% = e
0x6f,0x9a   0x00F6        # o% = o
0x75,0x9a   0x00FC        # u% = u
0x79,0x9a   0x00FF        # y% = y
0x4f,0xa6   0x0150        # O" = O
0x55,0xa6   0x0170        # U" = U
0x61,0xa8   0x00E5        # a0 = a
0x75,0xa8   0x016F        # u0 = u
0x41,0xaf   0x0100        # A9 = A
0x45,0xaf   0x0112        # E9 = E
0x4f,0xaf   0x014C        # O9 = O
0x55,0xaf   0x016A        # U9 = U
0x61,0xb1   0x0101        # a9 = a
0x65,0xb1   0x0113        # e9 = e
0x6f,0xb1   0x014D        # o9 = o
0x75,0xb1   0x016B        # u9 = u
0x41,0xb2   0x01CD        # A< = A
0x43,0xb2   0x010C        # C< = C
0x44,0xb2   0x010E        # D< = D
0x45,0xb2   0x011A        # E< = E
0x47,0xb2   0x01E6        # G< = G
0x4b,0xb2   0x01E8        # K< = K
0x4c,0xb2   0x004C,0x030C # L< = L
0x4e,0xb2   0x0147        # N< = N
0x52,0xb2   0x0158        # R< = R
0x53,0xb2   0x0160        # S< = S
0x54,0xb2   0x0164        # T< = T
0x5a,0xb2   0x017D        # Z< = Z
0x61,0xb3   0x01CE        # a< = a
0x63,0xb3   0x010D        # c< = c
0x65,0xb3   0x011B        # e< = e
0x67,0xb3   0x01E7        # g< = g
0x6e,0xb3   0x0148        # n< = n
0x72,0xb3   0x0159        # r< = r
0x73,0xb3   0x0161        # s< = s
0x7a,0xb3   0x017E        # z< = z
0x6c,0xb4   0x0142        # l/ = l
0x6f,0xb5   0x0151        # o" = o
0x75,0xb5   0x0171        # u" = u
0x45,0xb7   0x0116        # E0 = E
0x4d,0xb7   0x1E40        # M0 = M
0x4e,0xb7   0x1E44        # N> = N
0x5a,0xb7   0x017B        # Z0 = Z
0x41,0xb8   0x0104        # A8 = A
0x45,0xb8   0x0228        # E8 = E
0x47,0xb8   0x0122        # G8 = G
0x4b,0xb8   0x0136        # K8 = K
0x4c,0xb8   0x013B        # L8 = L
0x4e,0xb8   0x0145        # N8 = N
0x52,0xb8   0x0156        # R8 = R
0x53,0xb8   0x015E        # S9 = S
0x54,0xb8   0x0162        # T8 = T
0x61,0xb8   0x0105        # a8 = a
0x65,0xb8   0x0229        # e8 = e
0x6b,0xb8   0x0137        # k8 = k
0x6c,0xb8   0x013C        # l8 = l
0x6e,0xb8   0x0146        # n8 = n
0x72,0xb8   0x0157        # r8 = r
0x73,0xb8   0x015F        # s8 = s
0x74,0xb8   0x0163        # t8 = t
0x65,0xb9   0x0117        # e0 = e
0x6d,0xb9   0x1E41        # m0 = m
0x6e,0xb9   0x1E45        # n> = n
0x7a,0xb9   0x017C        # z0 = z
0x45,0xbc   0x0118        # E8 = E
0x49,0xbc   0x012E        # I8 = I
0x55,0xbc   0x0172        # U8 = U
0x65,0xbc   0x0119        # e8 = e
0x69,0xbc   0x012F        # i8 = i
0x75,0xbc   0x0173        # u8 = u
0x44,0xbd   0x0044,0x0301 # D' = D
0x54,0xbd   0x0054,0x0301 # T' = T
0x64,0xbd   0x010F        # d' = d
0x6c,0xbd   0x013E        # l' = l
0x74,0xbd   0x0165        # t' = t
0x55,0xc2   0x00DB        # U^ = U
0x45,0xca   0x0114        # E( = E
0x4f,0xca   0x014E        # O( = O
0x55,0xca   0x016C        # U( = U
0x44,0xef   0x1E0C        # D0 = D
0x44,0xcf   0x1E0C        # D0 = D
0x4c,0xef   0x1E36        # L0 = L
0x4c,0xcf   0x1E36        # L0 = L
0x4e,0xef   0x1E46        # N0 = N
0x4e,0xcf   0x1E46        # N0 = N
0x54,0xef   0x1E6C        # T0 = T
0x54,0xcf   0x1E6C        # T0 = T
0x4e,0xd5   0x00D1        # N~ = N
0x43,0xd9   0x0106        # C' = C
0x4c,0xd9   0x0139        # L' = L
0x4e,0xd9   0x0143        # N' = N
0x53,0xd9   0x015A        # S' = S
0x5a,0xd9   0x0179        # Z' = Z
0x49,0xdd   0x00CE        # I^ = I
0x75,0xe2   0x00FB        # u^ = u
0x65,0xea   0x0115        # e( = e
0x6f,0xea   0x014F        # o( = o
0x75,0xea   0x016D        # u( = u
0x64,0xef   0x1E0D        # d0 = d
0x64,0xcf   0x1E0D        # d0 = d
0x6e,0xef   0x1E47        # n0 = n
0x6e,0xef   0x1E47        # n0 = n
0x6e,0xf5   0x00F1        # n~ = n
0x63,0xd9   0x0107        # c' = c
0x63,0xf9   0x0107        # c' = c
0x67,0xd9   0x0123        # g' = g
0x67,0xf9   0x0123        # g' = g
0x6e,0xd9   0x0144        # n' = n
0x6e,0xf9   0x0144        # n' = n
0x73,0xd9   0x015B        # s' = s
0x73,0xf9   0x015B        # s' = s
0x7a,0xd9   0x017A        # z' = z
0x7a,0xf9   0x017A        # z' = z
0x69,0xfd   0x00EE        # i^ = i
0x91  0x2018  # left quote
0x92  0x2019  # right quote
0x93  0x201c  # opening "
0x94  0x201d  # closing "
