Index: source/data/mappings/windows-949-2000.ucm
===================================================================
--- source/data/mappings/windows-949-2000.ucm	(revision 259715)
+++ source/data/mappings/windows-949-2000.ucm	(working copy)
@@ -32,18 +32,17 @@
 # Suggested ICU specific alias information
 #<icu:alias>                  "windows-949_VPUA"
 
-<icu:state>                   0-80, 81-fe:1, ff
-<icu:state>                   40-7e, 80-fe
+# CHROME: Uses the generated state table. 
+<icu:state>                  0-80, 81-fe:1, ff
+<icu:state>                  41-5a, 61-7a, 81-fe
+#<icu:state>                   0-80, 81-fe:1, ff
+#<icu:state>                   40-7e, 80-fe
 
 # build an extension-only (delta) .cnv file
 # requires the base .cnv file at runtime
-<icu:base>                    "ibm-1363_P11B-1998"
+# CHROME: We don't want to include ibm-1363.
+#<icu:base>                    "ibm-1363_P11B-1998"
 
-# The following was the generated state table.
-# This does not account for unassigned characters
-#<icu:state>                  0-80, 81-fe:1, ff
-#<icu:state>                  41-5a, 61-7a, 81-fe
-#
 CHARMAP
 <U0000> \x00 |0
 <U0001> \x01 |0
Index: source/data/mappings/windows-950-2000.ucm
===================================================================
--- source/data/mappings/windows-950-2000.ucm	(revision 259715)
+++ source/data/mappings/windows-950-2000.ucm	(working copy)
@@ -32,18 +32,15 @@
 # Suggested ICU specific alias information
 #<icu:alias>                  "windows-950_VPUA"
 
-<icu:state>                   0-80, 81-fe:1, ff
-<icu:state>                   40-7e, 80-fe
+# CHROME: use the generated state table.
+<icu:state>                  0-80, 81-fe:1, ff
+<icu:state>                  40-7e, a1-fe
 
 # build an extension-only (delta) .cnv file
 # requires the base .cnv file at runtime
-<icu:base>                    "ibm-1373_P100-2002"
+# CHROME : we don't want to include ibm-1373
+#<icu:base>                    "ibm-1373_P100-2002"
 
-# The following was the generated state table.
-# This does not account for unassigned characters
-#<icu:state>                  0-80, 81-fe:1, ff
-#<icu:state>                  40-7e, a1-fe
-#
 CHARMAP
 <U0000> \x00 |0
 <U0001> \x01 |0
Index: source/data/mappings/convrtrs.txt
===================================================================
--- source/data/mappings/convrtrs.txt	(revision 259715)
+++ source/data/mappings/convrtrs.txt	(working copy)
@@ -292,44 +292,8 @@
 # End of Java-specific, non-Unicode-standard UTF variants.
 
 
-# On UTF-7:
-# RFC 2152 (http://www.imc.org/rfc2152) allows to encode some US-ASCII
-# characters directly or in base64. Especially, the characters in set O
-# as defined in the RFC (!"#$%&*;<=>@[]^_`{|}) may be encoded directly
-# but are not allowed in, e.g., email headers.
-# By default, the ICU UTF-7 converter encodes set O directly.
-# By choosing the option "version=1", set O will be escaped instead.
-# For example:
-#     utf7Converter=ucnv_open("UTF-7,version=1");
-#
-# For details about email headers see RFC 2047.
-UTF-7 { IANA* MIME* WINDOWS }   windows-65000 { WINDOWS* }
-                                unicode-1-1-utf-7
-                                unicode-2-0-utf-7
+# Chrome: Remove all the entries for UTF-7, SCSU, BOCU, CESU-8.
 
-# UTF-EBCDIC doesn't exist in ICU, but the aliases are here for reference.
-#UTF-EBCDIC ibm-1210 { IBM* } ibm-1211 { IBM }
-
-# IMAP-mailbox-name is an ICU-specific name for the encoding of IMAP mailbox names.
-# It is a substantially modified UTF-7 encoding. See the specification in:
-#
-# RFC 2060: INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
-# (http://www.ietf.org/rfc/rfc2060.txt)
-# Section 5.1.3.  Mailbox International Naming Convention
-IMAP-mailbox-name
-
-SCSU { IANA* }
-    ibm-1212 { IBM }  # SCSU with IBM PUA
-    ibm-1213 { IBM* } # SCSU
-BOCU-1 { IANA* }
-    csBOCU-1 { IANA }
-    ibm-1214 { IBM }  # BOCU-1 with IBM PUA
-    ibm-1215 { IBM* } # BOCU-1
-
-# See http://www.unicode.org/unicode/reports/tr26 for this Compatibility Encoding Scheme for UTF-16
-# The Unicode Consortium does not encourage the use of CESU-8
-CESU-8 { IANA* } ibm-9400 { IBM* }
-
 # Standard iso-8859-1, which does not have the Euro update.
 # See iso-8859-15 (latin9) for the Euro update
 ISO-8859-1 { MIME* IANA JAVA* }
@@ -364,7 +328,9 @@
     ibm-367 { IBM* } IBM367 { IANA WINDOWS } # This is not truely ibm-367 because it's missing the fallbacks.
 
 # GB 18030 is partly algorithmic, using the MBCS converter
-gb18030 { IANA* }       ibm-1392 { IBM* } windows-54936 { WINDOWS* } GB18030 { MIME* }
+# Chrome: HTML5 GBK an alias for GB18030
+#         TODO(jshin): Decide if Chrome should follow spec. crbug.com/339862
+gb18030 { IANA* }       ibm-1392 { IBM* } windows-54936 { WINDOWS* } gb18030 { MIME* }
 
 # Table-based interchange codepages
 
@@ -423,13 +389,6 @@
                         915 { JAVA }
                         windows-28595 { WINDOWS* }
 
-glibc-PT154-2.3.3 { UTR22* }
-                        PTCP154 { IANA* }
-                        csPTCP154
-                        PT154
-                        CP154
-                        Cyrillic-Asian
-
 # Arabic
 # ISO_8859-6-E and ISO_8859-6-I are similar to this charset, but BiDi is done differently
 # From a narrow mapping point of view, there is no difference.
@@ -467,13 +426,6 @@
                         windows-28597 { WINDOWS* }
                         sun_eu_greek # For Solaris
 
-# ISO Greek (w/o euro update)
-# JDK 1.5 has these aliases.
-ibm-813_P100-1995 { UTR22* }
-                        ibm-813 { IBM* JAVA* }
-                        cp813 { JAVA }
-                        813 { JAVA }
-
 # hebrew
 # ISO_8859-8-E and ISO_8859-8-I are similar to this charset, but BiDi is done differently
 # From a narrow mapping point of view, there is no difference.
@@ -493,23 +445,17 @@
                         windows-28598 { WINDOWS* } # Hebrew (ISO-Visual). A hybrid between ibm-5012 and ibm-916 with extra PUA mappings.
                         hebrew8 # Reflect HP-UX code page update
 
-# Unfortunately, the Java aliases are split across ibm-916 and ibm-5012
-# Also many platforms are a combination between ibm-916 and ibm-5012 behaviors
-ibm-916_P100-1995 { UTR22* }
-                        ibm-916 { IBM* JAVA* }
-                        cp916 { JAVA }
-                        916 { JAVA }
-
 # Turkish
+# Chrome: ISO-8859-9 and its aliases are moved to windows-1254 per
+# HTML5. 
 ibm-920_P100-1995 { UTR22* }
                         ibm-920 { IBM* JAVA }
-                        ISO-8859-9 { MIME* IANA WINDOWS JAVA* }
-                        latin5 { IANA WINDOWS JAVA }
-                        csISOLatin5 { IANA JAVA }
-                        iso-ir-148 { IANA WINDOWS JAVA }
-                        ISO_8859-9:1989 { IANA* WINDOWS }
-                        l5 { IANA WINDOWS JAVA }
-                        8859_9 { JAVA }
+                        ISO-8859-9
+                        latin5
+                        csISOLatin5
+                        iso-ir-148 
+                        ISO_8859-9:1989
+                        l5
                         cp920 { JAVA }
                         920 { JAVA }
                         windows-28599 { WINDOWS* }
@@ -567,22 +513,11 @@
 
 # CJK encodings
 
-ibm-942_P12A-1999 { UTR22* }    # ibm-942_P120 is a rarely used alternate mapping (sjis78 is already old)
-                        ibm-942 { IBM* }
-                        ibm-932 { IBM }
-                        cp932
-                        shift_jis78
-                        sjis78
-                        ibm-942_VSUB_VPUA
-                        ibm-932_VSUB_VPUA
-                        x-IBM942 { JAVA* }
-                        x-IBM942C { JAVA }
-                        # Is this "JIS_C6226-1978"?
+# Chrome: Instead of ibm-943_P15A-2003, we use what's specified in the WHATWG
+# encoding standard (HTML5) for Shift_JIS. Keep all the aliases (even though
+not all of them not required by the encoding spec) for now.
 
-# ibm-943_P15A-2003 differs from windows-932-2000 only in a few roundtrip mappings:
-# - the usual IBM PC control code rotation (1A-1C-7F)
-# - the Windows table has roundtrips for bytes 80, A0, and FD-FF to U+0080 and PUA
-ibm-943_P15A-2003 { UTR22* }
+shift_jis-html
                         ibm-943 # Leave untagged because this isn't the default
                         Shift_JIS { IANA* MIME* WINDOWS JAVA }
                         MS_Kanji { IANA WINDOWS JAVA }
@@ -601,64 +536,20 @@
                         ibm-943_VSUB_VPUA
                         x-MS932_0213 { JAVA }
                         x-JISAutoDetect { JAVA }
-                        # cp943 # This isn't Windows, and no one else uses it.
-                        # IANA says that Windows-31J is an extension to csshiftjis ibm-932 
-ibm-943_P130-1999 { UTR22* }
-                        ibm-943 { IBM* JAVA }
-                        Shift_JIS # Leave untagged because this isn't the default
-                        cp943 { JAVA* }    # This is slightly different, but the backslash mapping is the same.
-                        943 { JAVA }
-                        ibm-943_VASCII_VSUB_VPUA
-                        x-IBM943 { JAVA }
-                        # japanese. Unicode name is \u30b7\u30d5\u30c8\u7b26\u53f7\u5316\u8868\u73fe
-ibm-33722_P12A_P12A-2009_U2 { UTR22* }
-                        ibm-33722   # Leave untagged because this isn't the default
-                        ibm-5050    # Leave untagged because this isn't the default, and yes this alias is correct
-                        ibm-33722_VPUA
-                        IBM-eucJP
-windows-51932-2006 { UTR22* }
-                        windows-51932 { WINDOWS* }
-                        CP51932 { IANA* }
-                        csCP51932
-ibm-33722_P120-1999 { UTR22* }  # Japan EUC with \ <-> Yen mapping
-                        ibm-33722 { IBM* JAVA }
-                        ibm-5050 { IBM }    # Yes this is correct
-                        cp33722 { JAVA* }
-                        33722 { JAVA }
-                        ibm-33722_VASCII_VPUA
-                        x-IBM33722 { JAVA }
-                        x-IBM33722A { JAVA }
-                        x-IBM33722C { JAVA }
-# ibm-954 seems to be almost a superset of ibm-33722 and ibm-1350
-# ibm-1350 seems to be almost a superset of ibm-33722
-# ibm-954 contains more PUA characters than the others.
-ibm-954_P101-2007 { UTR22* }
-                        ibm-954 { IBM* }
-                        x-IBM954 { JAVA* }
-                        x-IBM954C { JAVA }
-                        # eucJP # This is closest to Solaris EUC-JP.
-euc-jp-2007 { UTR22* }
-                        EUC-JP { MIME* IANA JAVA* WINDOWS* }
+
+# Chrome: Instead of ibm-33722_P*, we use what's specified in the WHATWG
+# encoding standard (HTML5). All the
+# 3-byte seqeunces in the normative EUC-JP are now decode-only.
+euc-jp-html
+                        EUC-JP { MIME* IANA JAVA* WINDOWS*}
                         Extended_UNIX_Code_Packed_Format_for_Japanese { IANA* JAVA WINDOWS }
                         csEUCPkdFmtJapanese { IANA JAVA WINDOWS }
+                        windows-51932 { WINDOWS }
                         X-EUC-JP { MIME JAVA WINDOWS }   # Japan EUC. x-euc-jp is a MIME name
                         eucjis {JAVA}
                         ujis # Linux sometimes uses this name. This is an unfortunate generic and rarely used name. Its use is discouraged.
 
-aix-IBM_udcJP-4.3.6 { UTR22* }
-                        x-IBM-udcJP { JAVA* }
 
-java-euc_jp_linux-1.6_P { UTR22* }
-                        euc-jp-linux
-                        x-EUC_JP_LINUX { JAVA* }
-
-java-sjis_0213-1.6_P { UTR22* }
-                        x-SJIS_0213 { JAVA* }
-
-# Here are various interpretations and extentions of Big5
-ibm-1373_P100-2002 { UTR22* } # IBM's interpretation of Windows' Taiwan Big-5 without HKSCS extensions
-                        ibm-1373 { IBM* }
-                        windows-950 # Alternate mapping. Leave untagged. This is the IBM interpretation of a Windows codepage.
 windows-950-2000 { UTR22* }
                         Big5 { IANA* MIME* JAVA* WINDOWS }
                         csBig5 { IANA WINDOWS }
@@ -666,16 +557,14 @@
                         x-windows-950 { JAVA }
                         x-big5
                         ms950
-ibm-950_P110-1999 { UTR22* }                # Taiwan Big-5 (w/o euro update)
-                        ibm-950 { IBM* JAVA }
-                        cp950 { JAVA* }
-                        950 { JAVA }
-                        x-IBM950 { JAVA }
+# Chrome: HTML5 has big5-hkscs as an alias for big5
+#         TODO(jshin): Decide if Chrome should follow spec. crbug.com/277040
 ibm-1375_P100-2007 { UTR22* }   # Big5-HKSCS-2004 with Unicode 3.1 mappings. This uses supplementary characters.
                         ibm-1375 { IBM* }
                         Big5-HKSCS { IANA* JAVA* }
                         big5hk { JAVA }
                         HKSCS-BIG5  # From http://www.openi18n.org/localenameguide/
+
 ibm-5471_P100-2006 { UTR22* }   # Big5-HKSCS-2001 with Unicode 3.0 mappings. This uses many PUA characters.
                         ibm-5471 { IBM* }
                         Big5-HKSCS
@@ -685,201 +574,68 @@
                         x-MS950-HKSCS { JAVA }
                         # windows-950 # Windows-950 can be w/ or w/o HKSCS extensions. By default it's not.
                         # windows-950_hkscs
-solaris-zh_TW_big5-2.7 { UTR22* }
-                        Big5_Solaris { JAVA* }
-                        x-Big5-Solaris { JAVA }
 # GBK
-ibm-1386_P100-2001  { UTR22* }
-                        ibm-1386 { IBM* }
-                        cp1386
-                        windows-936 # Alternate mapping. Leave untagged. This is the IBM interpretation of a Windows codepage.
-                        ibm-1386_VSUB_VPUA
+# Chrome: Added 4 GB2312 aliases and EUC-CN to Windows-936 to reflect the
+#         reality of the web (GB2312 is treated synonymously with its
+#         superset, Windows-936/GBK)
+#         All the aliases listed for this converter (windows-936-2000)
+#         are removed from the list of aliases for other simplified Chinese
+#         converters above.
+#         HTML5 makes GBK an alias for GB18030
+#         TODO(jshin): Decide if Chrome should follow spec. crbug.com/339862
 windows-936-2000 { UTR22* }
-                        GBK { IANA* WINDOWS JAVA* }
+                        GB2312 { IANA MIME }
+                        GBK { IANA* MIME* WINDOWS JAVA* }
                         CP936 { IANA JAVA }
                         MS936 { IANA }  # In JDK 1.5, this goes to x-mswin-936. This is an IANA name split.
                         windows-936 { IANA WINDOWS* JAVA }
-
-# Java has two different tables for ibm-1383 and gb2312. We pick closest set for tagging.
-ibm-1383_P110-1999 { UTR22* }       # China EUC.
-                        ibm-1383 { IBM* JAVA }
-                        GB2312 { IANA* MIME* }
-                        csGB2312 { IANA }
-                        cp1383 { JAVA* }
-                        1383 { JAVA }
-                        EUC-CN  # According to other platforms, windows-20936 looks more like euc-cn. x-euc-cn is also a MIME name
-                        ibm-eucCN
-                        hp15CN  # From HP-UX?
-                        ibm-1383_VPUA
-                        # gb          # This is not an IANA name. gb in IANA means Great Britain.
-
-ibm-5478_P100-1995 { UTR22* } ibm-5478 { IBM* } # This gb_2312_80 DBCS mapping is needed by iso-2022.
-                        GB_2312-80 { IANA* }    # Windows maps this alias incorrectly
                         chinese { IANA }
                         iso-ir-58 { IANA }
-                        csISO58GB231280 { IANA }
                         gb2312-1980
-                        GB2312.1980-0   # From X11R6
+                        EUC-CN
+                        csGB2312 { IANA }
+                        GB_2312-80 { IANA }
 
-ibm-964_P110-1999 { UTR22* }                # Taiwan EUC. x-euc-tw is a MIME name
-                        ibm-964 { IBM* JAVA }
-                        EUC-TW
-                        ibm-eucTW
-                        cns11643 
-                        cp964 { JAVA* }
-                        964 { JAVA }
-                        ibm-964_VPUA
-                        x-IBM964 { JAVA }
 
-# ISO-2022 needs one, and other people may need others.
-ibm-949_P110-1999 { UTR22* }
-                        ibm-949 { IBM* JAVA }
-                        cp949 { JAVA* }
-                        949 { JAVA }
-                        ibm-949_VASCII_VSUB_VPUA
-                        x-IBM949 { JAVA }
-ibm-949_P11A-1999 { UTR22* }
-                        ibm-949 # Leave untagged because this isn't the default
-                        cp949c { JAVA* }
-                        ibm-949_VSUB_VPUA
-                        x-IBM949C { JAVA }
-                        IBM-949C { JAVA }
+# Chrome: ibm-5478 and ibm-949 are replaced by noop-gb2312_gl and windows-949
+# (ksc_5601), respectively, in ucnv2022.c
 
 # Korean EUC.
-#
-# <quote from="Jungshik Shin">
-# EUC-KR = KS X 1003/ISO 646-KR or ISO 646-IRV/US-ASCII in GL and KS X 1001:1998 (formerly KS C 5601-1987) in GR.
-#
-# Although widely spread on MS Windows, using 
-# KS C 5601 or related names to denote EUC-KR or
-# windows-949 is very much misleading. KS C 5601-1987
-# is NOT suitable as a designation for MIME charset
-# and MBCS. It's just the name of a 94 x 94 Korean 
-# coded character set standard which can be invoked
-# on either GL (with MSB reset) or GR (with MSB set).
-# Note that JOHAB (windows-1361) specified in 
-# KS X 1001:1998 annex 3 (KS C 5601-1992 annex 3) 
-# is a _seprate_ MBCS with a _completely different_
-# mapping.
-# </quote>
-#
-# The following aliases tries to mirror the poor state of alias recognition
-# on these platforms.
-#
-# ibm-970 is almost a subset of ibm-1363.
-# Java, Solaris and AIX use euc-kr to also mean ksc5601.
-# Java has both ibm-970 and EUC-KR as separate converters.
-ibm-970_P110_P110-2006_U2 { UTR22* }
-                        ibm-970 { IBM* JAVA }
-                        EUC-KR { IANA* MIME* WINDOWS JAVA }
-                        KS_C_5601-1987 { JAVA }
-                        windows-51949 { WINDOWS* }
-                        csEUCKR { IANA WINDOWS }  # x-euc-kr is also a MIME name
-                        ibm-eucKR { JAVA }
-                        KSC_5601 { JAVA } # Needed by iso-2022
-                        5601 { JAVA }
-                        cp970 { JAVA* }
-                        970 { JAVA }
-                        ibm-970_VPUA
-                        x-IBM970 { JAVA }
 
-# ibm-971 is almost the set of DBCS mappings of ibm-970
-ibm-971_P100-1995       ibm-971 { IBM* } ibm-971_VPUA x-IBM971 { JAVA* }
-
-# Java, Solaris and AIX use euc-kr to also mean ksc5601, and _sometimes_ for Windows too.
-# ibm-1363 is almost a superset of ibm-970.
-ibm-1363_P11B-1998 { UTR22* }
-                        ibm-1363 # Leave untagged because this isn't the default
-                        KS_C_5601-1987 { IANA* }
-                        KS_C_5601-1989 { IANA }
-                        KSC_5601 { IANA }
-                        csKSC56011987 { IANA }
-                        korean { IANA }
-                        iso-ir-149 { IANA }
-                        cp1363 { MIME* }
-                        5601
-                        ksc
-                        windows-949 # Alternate mapping. Leave untagged. This is the IBM interpretation of a Windows codepage.
-                        ibm-1363_VSUB_VPUA
-                        x-IBM1363C { JAVA* }
-                        # ks_x_1001:1992
-                        # ksc5601-1992
-
-ibm-1363_P110-1997 { UTR22* } # Korean KSC MBCS with \ <-> Won mapping
-                        ibm-1363 { IBM* }
-                        ibm-1363_VASCII_VSUB_VPUA
-                        x-IBM1363 { JAVA* }
-
+# Chrome: Windows-949 is not EUC-KR, but a superset of EUC-KR with 8,822
+#         additional Hangul syllables. However, the reality of the web
+#         and HTML5 require that we treat EUC-KR a
+#         synonym of windows-949.
+#         All the aliases listed for this converter (windows-949-2000)
+#         are removed from the list of aliases for other Korean converters
+#         above.
 windows-949-2000 { UTR22* }
                         windows-949 { JAVA* WINDOWS* }
-                        KS_C_5601-1987 { WINDOWS }
-                        KS_C_5601-1989 { WINDOWS }
-                        KSC_5601 { MIME* WINDOWS } # Needed by iso-2022
+                        EUC-KR { IANA* MIME* WINDOWS }
+                        KS_C_5601-1987 { WINDOWS IANA }
+                        KS_C_5601-1989 { WINDOWS IANA }
+                        KSC_5601 { IANA WINDOWS } # Needed by iso-2022
                         csKSC56011987 { WINDOWS }
-                        korean { WINDOWS }
-                        iso-ir-149 { WINDOWS }
-                        ms949 { JAVA }
-                        x-KSC5601 { JAVA }
+                        korean { IANA WINDOWS }
+                        iso-ir-149 { IANA WINDOWS }
+                        csEUCKR { IANA WINDOWS }
 
-windows-1361-2000 { UTR22* }
-                        ksc5601_1992
-                        ms1361
-                        johab
-                        x-Johab { JAVA* }
-
+#Chrome: TIS-620, ISO-8859-11 and Windows-874 are slightly different from
+# each other, but they're used as if they're identical on the web. This is
+# also per HTML5.
 windows-874-2000 { UTR22* }   # Thai (w/ euro update)
-                        TIS-620 { WINDOWS }
-                        windows-874 { JAVA* WINDOWS* }
+                        TIS-620 { IANA* WINDOWS MIME* }
+                        windows-874 { JAVA* WINDOWS* MIME }
                         MS874 { JAVA }
                         x-windows-874 { JAVA }
-                        # iso-8859-11 { WINDOWS } # iso-8859-11 is similar to TIS-620. ibm-13162 is a closer match.
+                        iso-8859-11 { IANA WINDOWS MIME } # iso-8859-11 is similar to TIS-620. ibm-13162 is a closer match.
 
-ibm-874_P100-1995 { UTR22* }    # Thai PC (w/o euro update).
-                        ibm-874 { IBM* JAVA }
-                        ibm-9066 { IBM }    # Yes ibm-874 == ibm-9066. ibm-1161 has the euro update.
-                        cp874 { JAVA* }
-                        TIS-620 { IANA* JAVA }  # This is actually separate from ibm-874, which is similar to this table
-                        tis620.2533 { JAVA }    # This is actually separate from ibm-874, which is similar to this table
-                        eucTH               # eucTH is an unusual alias from Solaris.  eucTH has fewer mappings than TIS620
-                        x-IBM874 { JAVA }
-
-ibm-1162_P100-1999 { UTR22* }   # Thai (w/ euro update)
-                        ibm-1162 { IBM* }
-
-windows-864-2000 { UTR22* }
-                        ibm-864s
-                        cp864s
-                        x-IBM864S { JAVA* }
-
 # Platform codepages
-# If Java supports the IBM prefix, it should also support the ibm- prefix too.
-ibm-437_P100-1995 { UTR22* }    ibm-437 { IBM* } IBM437 { IANA* WINDOWS JAVA } cp437 { IANA WINDOWS JAVA* } 437 { IANA WINDOWS JAVA } csPC8CodePage437 { IANA JAVA } windows-437 { WINDOWS* }  # PC US
-ibm-720_P100-1997 { UTR22* }    ibm-720 { IBM* } windows-720 { WINDOWS* } DOS-720 { WINDOWS } x-IBM720 { JAVA* } # PC Arabic
-ibm-737_P100-1997 { UTR22* }    ibm-737 { IBM* } IBM737 { WINDOWS JAVA } cp737 { JAVA* } windows-737 { WINDOWS* } 737 { JAVA } x-IBM737 { JAVA } # PC Greek
-ibm-775_P100-1996 { UTR22* }    ibm-775 { IBM* } IBM775 { IANA* WINDOWS JAVA } cp775 { IANA WINDOWS JAVA* } csPC775Baltic { IANA } windows-775 { WINDOWS* } 775 { JAVA } # PC Baltic
-ibm-850_P100-1995 { UTR22* }    ibm-850 { IBM* } IBM850 { IANA* MIME* WINDOWS JAVA } cp850 { IANA MIME WINDOWS JAVA* } 850 { IANA JAVA } csPC850Multilingual { IANA JAVA } windows-850 { WINDOWS* } # PC latin1
-ibm-851_P100-1995 { UTR22* }    ibm-851 { IBM* } IBM851 { IANA* } cp851 { IANA MIME* } 851 { IANA } csPC851 { IANA }             # PC DOS Greek (w/o euro)
-ibm-852_P100-1995 { UTR22* }    ibm-852 { IBM* } IBM852 { IANA* WINDOWS JAVA } cp852 { IANA WINDOWS JAVA* } 852 { IANA WINDOWS JAVA } csPCp852 { IANA JAVA } windows-852 { WINDOWS* } # PC latin2 (w/o euro update)
-ibm-855_P100-1995 { UTR22* }    ibm-855 { IBM* } IBM855 { IANA* JAVA } cp855 { IANA JAVA* } 855 { IANA } csIBM855 { IANA } csPCp855 { JAVA } windows-855 { WINDOWS* } # PC cyrillic (w/o euro update)
-ibm-856_P100-1995 { UTR22* }    ibm-856 { IBM* } IBM856 { JAVA } cp856 { JAVA* } 856 { JAVA } x-IBM856 { JAVA } # PC Hebrew implicit order
-ibm-857_P100-1995 { UTR22* }    ibm-857 { IBM* } IBM857 { IANA* MIME* WINDOWS JAVA } cp857 { IANA MIME JAVA* } 857 { IANA JAVA } csIBM857 { IANA JAVA } windows-857 { WINDOWS* }   # PC Latin 5 (w/o euro update)
-ibm-858_P100-1997 { UTR22* }    ibm-858 { IBM* } IBM00858 { IANA* MIME* JAVA } CCSID00858 { IANA JAVA } CP00858 { IANA JAVA } PC-Multilingual-850+euro { IANA } cp858 { MIME JAVA* } windows-858 { WINDOWS* } # PC latin1 with Euro
-ibm-860_P100-1995 { UTR22* }    ibm-860 { IBM* } IBM860 { IANA* MIME* JAVA } cp860 { IANA MIME JAVA* } 860 { IANA JAVA } csIBM860 { IANA JAVA }    # PC Portugal
-ibm-861_P100-1995 { UTR22* }    ibm-861 { IBM* } IBM861 { IANA* MIME* WINDOWS JAVA } cp861 { IANA MIME JAVA* } 861 { IANA JAVA } cp-is { IANA JAVA } csIBM861 { IANA JAVA } windows-861 { WINDOWS* } # PC Iceland
-ibm-862_P100-1995 { UTR22* }    ibm-862 { IBM* } IBM862 { IANA* MIME* JAVA } cp862 { IANA MIME JAVA* } 862 { IANA JAVA } csPC862LatinHebrew { IANA JAVA } DOS-862 { WINDOWS } windows-862 { WINDOWS* }    # PC Hebrew visual order (w/o euro update)
-ibm-863_P100-1995 { UTR22* }    ibm-863 { IBM* } IBM863 { IANA* MIME* JAVA } cp863 { IANA MIME JAVA* } 863 { IANA JAVA } csIBM863 { IANA JAVA }    # PC Canadian French
-ibm-864_X110-1999 { UTR22* }    ibm-864 { IBM* } IBM864 { IANA* MIME* JAVA } cp864 { IANA MIME JAVA* } csIBM864 { IANA JAVA } # PC Arabic (w/o euro update)
-ibm-865_P100-1995 { UTR22* }    ibm-865 { IBM* } IBM865 { IANA* MIME* JAVA } cp865 { IANA MIME JAVA* } 865 { IANA JAVA } csIBM865 { IANA JAVA }    # PC Nordic
-ibm-866_P100-1995 { UTR22* }    ibm-866 { IBM* } IBM866 { IANA* MIME* JAVA } cp866 { IANA MIME WINDOWS JAVA* } 866 { IANA JAVA } csIBM866 { IANA JAVA } windows-866 { WINDOWS* } # PC Russian (w/o euro update)
-ibm-867_P100-1998 { UTR22* }    ibm-867 { IBM* } x-IBM867 { JAVA* } # PC Hebrew (w/ euro update) Updated version of ibm-862
-ibm-868_P100-1995 { UTR22* }    ibm-868 { IBM* } IBM868 { IANA* MIME* JAVA } CP868 { IANA MIME JAVA* } 868 { JAVA } csIBM868 { IANA } cp-ar { IANA }          # PC Urdu
-ibm-869_P100-1995 { UTR22* }    ibm-869 { IBM* } IBM869 { IANA* MIME* WINDOWS JAVA } cp869 { IANA MIME JAVA* } 869 { IANA JAVA } cp-gr { IANA JAVA } csIBM869 { IANA JAVA } windows-869 { WINDOWS* } # PC Greek (w/o euro update)
+# Chrome: only keep ibm-878 for KOI8-R, ibm-1168 for KOI8-RU and ibm-866
 ibm-878_P100-1996 { UTR22* }    ibm-878 { IBM* } KOI8-R { IANA* MIME* WINDOWS JAVA* } koi8 { WINDOWS JAVA } csKOI8R { IANA WINDOWS JAVA } windows-20866 { WINDOWS* } cp878   # Russian internet
-ibm-901_P100-1999 { UTR22* }    ibm-901 { IBM* } # PC Baltic (w/ euro update), update of ibm-921
-ibm-902_P100-1999 { UTR22* }    ibm-902 { IBM* } # PC Estonian (w/ euro update), update of ibm-922
-ibm-922_P100-1999 { UTR22* }    ibm-922 { IBM* } IBM922 { JAVA } cp922 { JAVA* } 922 { JAVA } x-IBM922 { JAVA } # PC Estonian (w/o euro update)
+# Chrome: Use the table from the WHATWG encoding standard (HTML5).
+ibm866-html   ibm-866 { IBM* } IBM866 { IANA* MIME* JAVA } cp866 { IANA MIME WINDOWS JAVA* } 866 { IANA JAVA } csIBM866 { IANA JAVA } # PC Russian (w/o euro update)
 ibm-1168_P100-2002 { UTR22* }   ibm-1168 { IBM* } KOI8-U { IANA* WINDOWS } windows-21866 { WINDOWS* } # Ukrainian KOI8. koi8-ru != KOI8-U and Microsoft is wrong for aliasing them as the same.
-ibm-4909_P100-1999 { UTR22* }   ibm-4909 { IBM* } # ISO Greek (w/ euro update), update of ibm-813
 
 # The cp aliases in this section aren't really windows aliases, but it was used by ICU for Windows.
 # cp is usually used to denote IBM in Java, and that is why we don't do that anymore.
@@ -888,53 +644,26 @@
 ibm-5347_P100-1998 { UTR22* }   ibm-5347 { IBM* } windows-1251 { IANA* JAVA* WINDOWS* } cp1251 { WINDOWS JAVA } ANSI1251 # Windows Cyrillic (w/ euro update). ANSI1251 is from Solaris
 ibm-5348_P100-1997 { UTR22* }   ibm-5348 { IBM* } windows-1252 { IANA* JAVA* WINDOWS* } cp1252 { JAVA }         # Windows Latin1 (w/ euro update)
 ibm-5349_P100-1998 { UTR22* }   ibm-5349 { IBM* } windows-1253 { IANA* JAVA* WINDOWS* } cp1253 { JAVA }         # Windows Greek (w/ euro update)
-ibm-5350_P100-1998 { UTR22* }   ibm-5350 { IBM* } windows-1254 { IANA* JAVA* WINDOWS* } cp1254 { JAVA }         # Windows Turkish (w/ euro update)
+
+#CHROME : Make ISO-8859-9 an alias to windows-1254 per HTML5. Move
+#         other IANA aliases for ISO-8859-9 as well.
+ibm-5350_P100-1998 { UTR22* }   ibm-5350 { IBM* } windows-1254 { MIME* IANA* JAVA* WINDOWS* } cp1254 { JAVA }         # Windows Turkish (w/ euro update)
+                        ISO-8859-9 { MIME }
+                        latin5 { IANA }
+                        csISOLatin5 { IANA }
+                        iso-ir-148 { IANA }
+                        ISO_8859-9:1989 { IANA }
+                        l5 { IANA }
+                        8859_9 { JAVA }
 ibm-9447_P100-2002 { UTR22* }   ibm-9447 { IBM* } windows-1255 { IANA* JAVA* WINDOWS* } cp1255 { JAVA }         # Windows Hebrew (w/ euro update)
 ibm-9448_X100-2005 { UTR22* }   ibm-9448 { IBM* } windows-1256 { IANA* JAVA* WINDOWS* } cp1256 { WINDOWS JAVA } x-windows-1256S { JAVA } # Windows Arabic (w/ euro update)
 ibm-9449_P100-2002 { UTR22* }   ibm-9449 { IBM* } windows-1257 { IANA* JAVA* WINDOWS* } cp1257 { JAVA }         # Windows Baltic (w/ euro update)
 ibm-5354_P100-1998 { UTR22* }   ibm-5354 { IBM* } windows-1258 { IANA* JAVA* WINDOWS* } cp1258 { JAVA }         # Windows Vietnamese (w/ euro update)
 
-# These tables are out of date, and most don't have the Euro
-# Leave the windows- variants untagged. They are alternate tables of the newer ones above.
-ibm-1250_P100-1995 { UTR22* }   ibm-1250 { IBM* } windows-1250  # Old Windows Latin2 (w/o euro update)
-ibm-1251_P100-1995 { UTR22* }   ibm-1251 { IBM* } windows-1251  # Old Windows Cyrillic (w/o euro update)
-ibm-1252_P100-2000 { UTR22* }   ibm-1252 { IBM* } windows-1252  # Old Windows Latin 1 without Euro
-ibm-1253_P100-1995 { UTR22* }   ibm-1253 { IBM* } windows-1253  # Old Windows Greek (w/o euro update)
-ibm-1254_P100-1995 { UTR22* }   ibm-1254 { IBM* } windows-1254  # Old Windows Turkish (w/o euro update)
-ibm-1255_P100-1995 { UTR22* }   ibm-1255 { IBM* }               # Very old Windows Hebrew (w/o euro update)
-ibm-5351_P100-1998 { UTR22* }   ibm-5351 { IBM* } windows-1255  # Old Windows Hebrew (w/ euro update)
-ibm-1256_P110-1997 { UTR22* }   ibm-1256 { IBM* }               # Old Windows Arabic (w/o euro update)
-ibm-5352_P100-1998 { UTR22* }   ibm-5352 { IBM* } windows-1256  # Somewhat old Windows Arabic (w/ euro update)
-ibm-1257_P100-1995 { UTR22* }   ibm-1257 { IBM* }               # Old Windows Baltic (w/o euro update)
-ibm-5353_P100-1998 { UTR22* }   ibm-5353 { IBM* } windows-1257  # Somewhat old Windows Baltic (w/ euro update)
-ibm-1258_P100-1997 { UTR22* }   ibm-1258 { IBM* } windows-1258  # Old Windows Vietnamese (w/o euro update)
-
+# Chrome: Only MacRoman and MacCyrillic are necessary for HTML5.
 macos-0_2-10.2 { UTR22* }       macintosh { IANA* MIME* WINDOWS } mac { IANA } csMacintosh { IANA } windows-10000 { WINDOWS* } macroman { JAVA } x-macroman { JAVA* } # Apple latin 1
-macos-6_2-10.4 { UTR22* }       x-mac-greek { MIME* WINDOWS } windows-10006 { WINDOWS* } macgr x-MacGreek { JAVA* }  # Apple Greek
 macos-7_3-10.2 { UTR22* }       x-mac-cyrillic { MIME* WINDOWS } windows-10007 { WINDOWS* } mac-cyrillic maccy x-MacCyrillic { JAVA } x-MacUkraine { JAVA* } # Apple Cyrillic
-macos-21-10.5 { UTR22* }        x-mac-thai { MIME* } x-MacThai { JAVA* } MacThai { JAVA }
-macos-29-10.2 { UTR22* }        x-mac-centraleurroman { MIME* } windows-10029 { WINDOWS* } x-mac-ce { WINDOWS } macce maccentraleurope x-MacCentralEurope { JAVA* }  # Apple Central Europe
-macos-33-10.5 { UTR22* }        x-mac-symbol { MIME* } x-MacSymbol { JAVA* } MacSymbol { JAVA }
-macos-34-10.2 { UTR22* }        x-mac-dingbat { MIME* } x-MacDingbat { JAVA* } MacDingbat { JAVA }
-macos-35-10.2 { UTR22* }        x-mac-turkish { MIME* WINDOWS } windows-10081 { WINDOWS* } mactr x-MacTurkish { JAVA* }  # Apple Turkish
-macos-36_2-10.2 { UTR22* }      x-mac-croatian { MIME* } x-MacCroatian { JAVA* } MacCroatian { JAVA }
-macos-37_5-10.2 { UTR22* }      x-mac-iceland { MIME* } x-MacIceland { JAVA* } MacIceland { JAVA }
-macos-38_2-10.2 { UTR22* }      x-mac-romania { MIME* } x-MacRomania { JAVA* } MacRomania { JAVA }
-macos-518-10.2 { UTR22* }       x-mac-arabic { MIME* } x-MacArabic { JAVA* } MacArabic { JAVA }
-macos-1285-10.2 { UTR22* }      x-mac-hebrew { MIME* } x-MacHebrew { JAVA* } MacHebrew { JAVA }
 
-ibm-1051_P100-1995 { UTR22* }   ibm-1051 { IBM* } hp-roman8 { IANA* } roman8 { IANA } r8 { IANA } csHPRoman8 { IANA } x-roman8 { JAVA* }   # HP Latin1
-ibm-1276_P100-1995 { UTR22* }   ibm-1276 { IBM* } Adobe-Standard-Encoding { IANA* } csAdobeStandardEncoding { IANA } # Different from ISO-Unicode-IBM-1276 (GCSGID: 1276)
-
-ibm-1006_P100-1995 { UTR22* }   ibm-1006 { IBM* } IBM1006 { JAVA } cp1006 { JAVA* } 1006 { JAVA } x-IBM1006 { JAVA }  # Urdu
-ibm-1098_P100-1995 { UTR22* }   ibm-1098 { IBM* } IBM1098 { JAVA } cp1098 { JAVA* } 1098 { JAVA } x-IBM1098 { JAVA }  # PC Farsi
-ibm-1124_P100-1996 { UTR22* }   ibm-1124 { IBM* JAVA } cp1124 { JAVA* } 1124 { JAVA } x-IBM1124 { JAVA }  # ISO Cyrillic Ukraine
-ibm-1125_P100-1997 { UTR22* }   ibm-1125 { IBM* } cp1125                                # Cyrillic Ukraine PC
-ibm-1129_P100-1997 { UTR22* }   ibm-1129 { IBM* }                                       # ISO Vietnamese
-ibm-1131_P100-1997 { UTR22* }   ibm-1131 { IBM* } cp1131                                # Cyrillic Belarus PC
-ibm-1133_P100-1997 { UTR22* }   ibm-1133 { IBM* }                                       # ISO Lao
-
-
 # Partially algorithmic converters
 
 # [U_ENABLE_GENERIC_ISO_2022]
@@ -943,322 +672,21 @@
 # Language-specific variants of ISO-2022 continue to be available as listed below.
 # ISO_2022                         ISO-2022
 
+# Chrome: The encoding standard only supports ISO-2022-JP.
+# Remove ISO-2022-{KR,CN,CN-Ext} and HZ-GB from the alias table.
+# See crbug.com/277037 and https://www.w3.org/Bugs/Public/show_bug.cgi?id=25339
+# about HZ-GB.
 ISO_2022,locale=ja,version=0    ISO-2022-JP { IANA* MIME* JAVA* } csISO2022JP { IANA JAVA } x-windows-iso2022jp { JAVA } x-windows-50220 { JAVA }
-ISO_2022,locale=ja,version=1    ISO-2022-JP-1 { MIME* } JIS_Encoding { IANA* } csJISEncoding { IANA } ibm-5054 { IBM* } JIS x-windows-50221 { JAVA* }
-ISO_2022,locale=ja,version=2    ISO-2022-JP-2 { IANA* MIME* } csISO2022JP2 { IANA }
-ISO_2022,locale=ja,version=3    JIS7
-ISO_2022,locale=ja,version=4    JIS8
-ISO_2022,locale=ko,version=0    ISO-2022-KR { IANA* MIME* JAVA* } csISO2022KR { IANA JAVA } # This uses ibm-949
-ISO_2022,locale=ko,version=1    ibm-25546 { IBM* }
-ISO_2022,locale=zh,version=0    ISO-2022-CN { IANA* JAVA* } csISO2022CN { JAVA } x-ISO-2022-CN-GB { JAVA }
-ISO_2022,locale=zh,version=1    ISO-2022-CN-EXT { IANA* }
-ISO_2022,locale=zh,version=2    ISO-2022-CN-CNS x-ISO-2022-CN-CNS { JAVA* }
-HZ                              HZ-GB-2312 { IANA* }
-x11-compound-text               COMPOUND_TEXT x-compound-text { JAVA* }
 
-ISCII,version=0         x-ISCII91 { JAVA* } x-iscii-de { WINDOWS } windows-57002 { WINDOWS* } iscii-dev ibm-4902 { IBM* } # ibm-806 contains non-standard box drawing symbols.
-ISCII,version=1         x-iscii-be { WINDOWS } windows-57003 { WINDOWS* } iscii-bng windows-57006 { WINDOWS } x-iscii-as { WINDOWS } # be is different from as on Windows.
-ISCII,version=2         x-iscii-pa { WINDOWS } windows-57011 { WINDOWS* } iscii-gur
-ISCII,version=3         x-iscii-gu { WINDOWS } windows-57010 { WINDOWS* } iscii-guj
-ISCII,version=4         x-iscii-or { WINDOWS } windows-57007 { WINDOWS* } iscii-ori
-ISCII,version=5         x-iscii-ta { WINDOWS } windows-57004 { WINDOWS* } iscii-tml
-ISCII,version=6         x-iscii-te { WINDOWS } windows-57005 { WINDOWS* } iscii-tlg
-ISCII,version=7         x-iscii-ka { WINDOWS } windows-57008 { WINDOWS* } iscii-knd
-ISCII,version=8         x-iscii-ma { WINDOWS } windows-57009 { WINDOWS* } iscii-mlm
+# Chrome: HTML5 does not need ISCII.
+#         Remove all Lotus entries as well.
 
-# Lotus specific
-LMBCS-1                 lmbcs ibm-65025 { IBM* }
-
-# These Lotus specific converters still work, but they aren't advertised in this alias table.
-# These are almost never used outside of Lotus software,
-# and they take a lot of time when creating the available converter list.
-# Also Lotus doesn't really use them anyway. It was a mistake to create these LMBCS variant converters in ICU.
-#LMBCS-2
-#LMBCS-3
-#LMBCS-4
-#LMBCS-5
-#LMBCS-6
-#LMBCS-8
-#LMBCS-11
-#LMBCS-16
-#LMBCS-17
-#LMBCS-18
-#LMBCS-19
-
 # EBCDIC codepages according to the CDRA
+# Chrome: Removed all EBCDIC code pages.
 
-# without Euro
-ibm-37_P100-1995 { UTR22* }              # EBCDIC US
-                        ibm-37 { IBM* }
-                        IBM037 { IANA* JAVA }
-                        ibm-037 # { JAVA }
-                        ebcdic-cp-us { IANA JAVA }
-                        ebcdic-cp-ca { IANA JAVA }
-                        ebcdic-cp-wt { IANA JAVA }
-                        ebcdic-cp-nl { IANA JAVA }
-                        csIBM037 { IANA JAVA }
-                        cp037 { JAVA* }
-                        037 { JAVA }
-                        cpibm37 { JAVA }
-                        cp37
-
-ibm-273_P100-1995 { UTR22* }    ibm-273 { IBM* } IBM273 { IANA* JAVA } CP273 { IANA JAVA* } csIBM273 { IANA } ebcdic-de 273 { JAVA }                 # EBCDIC Germanay, Austria
-ibm-277_P100-1995 { UTR22* }    ibm-277 { IBM* } IBM277 { IANA* JAVA } cp277 { JAVA* } EBCDIC-CP-DK { IANA } EBCDIC-CP-NO { IANA } csIBM277 { IANA } ebcdic-dk 277 { JAVA } # EBCDIC Denmark
-ibm-278_P100-1995 { UTR22* }    ibm-278 { IBM* } IBM278 { IANA* JAVA } cp278 { JAVA* } ebcdic-cp-fi { IANA } ebcdic-cp-se { IANA } csIBM278 { IANA } ebcdic-sv { JAVA } 278 { JAVA } # EBCDIC Sweden
-ibm-280_P100-1995 { UTR22* }    ibm-280 { IBM* } IBM280 { IANA* JAVA } CP280 { IANA JAVA* } ebcdic-cp-it { IANA } csIBM280 { IANA } 280 { JAVA }     # EBCDIC Italy
-ibm-284_P100-1995 { UTR22* }    ibm-284 { IBM* } IBM284 { IANA* JAVA } CP284 { IANA JAVA* } ebcdic-cp-es { IANA } csIBM284 { IANA } cpibm284 { JAVA } 284 { JAVA }       # EBCDIC Spain
-ibm-285_P100-1995 { UTR22* }    ibm-285 { IBM* } IBM285 { IANA* JAVA } CP285 { IANA JAVA* } ebcdic-cp-gb { IANA } csIBM285 { IANA } cpibm285 { JAVA } ebcdic-gb { JAVA } 285 { JAVA } # EBCDIC UK Ireland
-ibm-290_P100-1995 { UTR22* }    ibm-290 { IBM* } IBM290 { IANA* } cp290 { IANA } EBCDIC-JP-kana { IANA } csIBM290 { IANA } # host SBCS (Katakana)
-ibm-297_P100-1995 { UTR22* }    ibm-297 { IBM* } IBM297 { IANA* JAVA } cp297 { IANA JAVA* } ebcdic-cp-fr { IANA } csIBM297 { IANA } cpibm297 { JAVA } 297 { JAVA }     # EBCDIC France
-ibm-420_X120-1999 { UTR22* }    ibm-420 { IBM* } IBM420 { IANA* JAVA } cp420 { IANA JAVA* } ebcdic-cp-ar1 { IANA } csIBM420 { IANA } 420 { JAVA }    # EBCDIC Arabic (all presentation shapes)
-ibm-424_P100-1995 { UTR22* }    ibm-424 { IBM* } IBM424 { IANA* JAVA } cp424 { IANA JAVA* } ebcdic-cp-he { IANA } csIBM424 { IANA } 424 { JAVA }     # EBCDIC Hebrew
-ibm-500_P100-1995 { UTR22* }    ibm-500 { IBM* } IBM500 { IANA* JAVA } CP500 { IANA JAVA* } ebcdic-cp-be { IANA } csIBM500 { IANA } ebcdic-cp-ch { IANA } 500   # EBCDIC International Latin1
-ibm-803_P100-1999 { UTR22* }    ibm-803 { IBM* } cp803   # Old EBCDIC Hebrew
-ibm-838_P100-1995 { UTR22* }    ibm-838 { IBM* } IBM838 { JAVA } IBM-Thai { IANA* JAVA } csIBMThai { IANA } cp838 { JAVA* } 838 { JAVA } ibm-9030 { IBM }   # EBCDIC Thai. Yes ibm-9030 is an alias.
-ibm-870_P100-1995 { UTR22* }    ibm-870 { IBM* } IBM870 { IANA* JAVA } CP870 { IANA JAVA* } ebcdic-cp-roece { IANA } ebcdic-cp-yu { IANA } csIBM870 { IANA }    # EBCDIC Latin 2 
-ibm-871_P100-1995 { UTR22* }    ibm-871 { IBM* } IBM871 { IANA* JAVA } ebcdic-cp-is { IANA JAVA } csIBM871 { IANA JAVA } CP871 { IANA JAVA* } ebcdic-is { JAVA } 871 { JAVA }     # EBCDIC Iceland
-ibm-875_P100-1995 { UTR22* }    ibm-875 { IBM* } IBM875 { JAVA } cp875 { JAVA* } 875 { JAVA } x-IBM875 { JAVA } # EBCDIC Greek
-ibm-918_P100-1995 { UTR22* }    ibm-918 { IBM* } IBM918 { IANA* JAVA } CP918 { IANA JAVA* } ebcdic-cp-ar2 { IANA } csIBM918 { IANA }        # EBCDIC Urdu
-ibm-930_P120-1999 { UTR22* }    # EBCDIC_STATEFUL Katakana-Kanji Host Mixed.
-                        ibm-930 { IBM* }
-                        ibm-5026 { IBM } # Yes this is correct
-                        IBM930 { JAVA }
-                        cp930 { JAVA* }
-                        930 { JAVA }
-                        x-IBM930 { JAVA }
-                        x-IBM930A { JAVA }
-ibm-933_P110-1995 { UTR22* }    ibm-933 { IBM* JAVA } cp933 { JAVA* } 933 { JAVA } x-IBM933 { JAVA } # Korea EBCDIC MIXED
-ibm-935_P110-1999 { UTR22* }    ibm-935 { IBM* JAVA } cp935 { JAVA* } 935 { JAVA } x-IBM935 { JAVA } # China EBCDIC MIXED. Need to use Unicode, ibm-1388 or gb18030 instead because it is required by the government of China.
-ibm-937_P110-1999 { UTR22* }    ibm-937 { IBM* JAVA } cp937 { JAVA* } 937 { JAVA } x-IBM937 { JAVA } # Taiwan EBCDIC MIXED
-ibm-939_P120-1999 { UTR22* }    # EBCDIC_STATEFUL Latin-Kanji Host Mixed.
-                        ibm-939 { IBM* }
-                        ibm-931 { IBM }     # Yes this is correct
-                        ibm-5035 { IBM }    # Yes this is also correct
-                        IBM939 { JAVA }
-                        cp939 { JAVA* }
-                        939 { JAVA }
-                        x-IBM939 { JAVA }
-                        x-IBM939A { JAVA }
-ibm-1025_P100-1995 { UTR22* }   ibm-1025 { IBM* JAVA } cp1025 { JAVA* } 1025 { JAVA } x-IBM1025 { JAVA }  # EBCDIC Cyrillic
-ibm-1026_P100-1995 { UTR22* }   ibm-1026 { IBM* } IBM1026 { IANA* JAVA } CP1026 { IANA JAVA* } csIBM1026 { IANA } 1026 { JAVA } # EBCDIC Turkey 
-ibm-1047_P100-1995 { UTR22* }   ibm-1047 { IBM* } IBM1047 { IANA* JAVA } cp1047 { JAVA* } 1047 { JAVA } # EBCDIC Open systems Latin1
-ibm-1097_P100-1995 { UTR22* }   ibm-1097 { IBM* JAVA } cp1097 { JAVA* } 1097 { JAVA } x-IBM1097 { JAVA }  # EBCDIC Farsi
-ibm-1112_P100-1995 { UTR22* }   ibm-1112 { IBM* JAVA } cp1112 { JAVA* } 1112 { JAVA } x-IBM1112 { JAVA }  # EBCDIC Baltic
-ibm-1114_P100-2001 { UTR22* }   ibm-1114 { IBM* } x-IBM1114 { JAVA* }
-ibm-1115_P100-1995 { UTR22* }   ibm-1115 { IBM* } x-IBM1115 { JAVA* }
-ibm-1122_P100-1999 { UTR22* }   ibm-1122 { IBM* JAVA } cp1122 { JAVA* } 1122 { JAVA } x-IBM1122 { JAVA }  # EBCDIC Estonia 
-ibm-1123_P100-1995 { UTR22* }   ibm-1123 { IBM* JAVA } cp1123 { JAVA* } 1123 { JAVA } x-IBM1123 { JAVA }  # EBCDIC Cyrillic Ukraine
-ibm-1130_P100-1997 { UTR22* }   ibm-1130 { IBM* }       # EBCDIC Vietnamese
-ibm-1132_P100-1998 { UTR22* }   ibm-1132 { IBM* }       # EBCDIC Lao
-ibm-1137_P100-1999 { UTR22* }   ibm-1137 { IBM* }       # Devanagari EBCDIC (based on Unicode character set)
-ibm-4517_P100-2005 { UTR22* }   ibm-4517 { IBM* }       # EBCDIC Arabic. Update of ibm-421
-
-# with Euro
-ibm-1140_P100-1997 { UTR22* }   ibm-1140 { IBM* } IBM01140 { IANA* JAVA } CCSID01140 { IANA JAVA } CP01140 { IANA JAVA } cp1140 { JAVA* } ebcdic-us-37+euro { IANA } # EBCDIC US
-ibm-1141_P100-1997 { UTR22* }   ibm-1141 { IBM* } IBM01141 { IANA* JAVA } CCSID01141 { IANA JAVA } CP01141 { IANA JAVA } cp1141 { JAVA* } ebcdic-de-273+euro { IANA } # EBCDIC Germanay, Austria
-ibm-1142_P100-1997 { UTR22* }   ibm-1142 { IBM* } IBM01142 { IANA* JAVA } CCSID01142 { IANA JAVA } CP01142 { IANA JAVA } cp1142 { JAVA* } ebcdic-dk-277+euro { IANA } ebcdic-no-277+euro { IANA } # EBCDIC Denmark
-ibm-1143_P100-1997 { UTR22* }   ibm-1143 { IBM* } IBM01143 { IANA* JAVA } CCSID01143 { IANA JAVA } CP01143 { IANA JAVA } cp1143 { JAVA* } ebcdic-fi-278+euro { IANA } ebcdic-se-278+euro { IANA } # EBCDIC Sweden
-ibm-1144_P100-1997 { UTR22* }   ibm-1144 { IBM* } IBM01144 { IANA* JAVA } CCSID01144 { IANA JAVA } CP01144 { IANA JAVA } cp1144 { JAVA* } ebcdic-it-280+euro { IANA } # EBCDIC Italy
-ibm-1145_P100-1997 { UTR22* }   ibm-1145 { IBM* } IBM01145 { IANA* JAVA } CCSID01145 { IANA JAVA } CP01145 { IANA JAVA } cp1145 { JAVA* } ebcdic-es-284+euro { IANA } # EBCDIC Spain
-ibm-1146_P100-1997 { UTR22* }   ibm-1146 { IBM* } IBM01146 { IANA* JAVA } CCSID01146 { IANA JAVA } CP01146 { IANA JAVA } cp1146 { JAVA* } ebcdic-gb-285+euro { IANA } # EBCDIC UK Ireland
-ibm-1147_P100-1997 { UTR22* }   ibm-1147 { IBM* } IBM01147 { IANA* JAVA } CCSID01147 { IANA JAVA } CP01147 { IANA JAVA } cp1147 { JAVA* } ebcdic-fr-297+euro { IANA } # EBCDIC France
-ibm-1148_P100-1997 { UTR22* }   ibm-1148 { IBM* } IBM01148 { IANA* JAVA } CCSID01148 { IANA JAVA } CP01148 { IANA JAVA } cp1148 { JAVA* } ebcdic-international-500+euro { IANA } # EBCDIC International Latin1
-ibm-1149_P100-1997 { UTR22* }   ibm-1149 { IBM* } IBM01149 { IANA* JAVA } CCSID01149 { IANA JAVA } CP01149 { IANA JAVA } cp1149 { JAVA* } ebcdic-is-871+euro { IANA } # EBCDIC Iceland
-ibm-1153_P100-1999 { UTR22* }   ibm-1153 { IBM* } IBM1153 { JAVA } x-IBM1153 { JAVA* } # EBCDIC latin 2
-ibm-1154_P100-1999 { UTR22* }   ibm-1154 { IBM* }                   # EBCDIC Cyrillic Multilingual
-ibm-1155_P100-1999 { UTR22* }   ibm-1155 { IBM* }                   # EBCDIC Turkey
-ibm-1156_P100-1999 { UTR22* }   ibm-1156 { IBM* }                   # EBCDIC Baltic Multilingual
-ibm-1157_P100-1999 { UTR22* }   ibm-1157 { IBM* }                   # EBCDIC Estonia
-ibm-1158_P100-1999 { UTR22* }   ibm-1158 { IBM* }                   # EBCDIC Cyrillic Ukraine
-ibm-1160_P100-1999 { UTR22* }   ibm-1160 { IBM* }                   # EBCDIC Thailand
-ibm-1164_P100-1999 { UTR22* }   ibm-1164 { IBM* }                   # EBCDIC Viet Nam
-ibm-1364_P110-2007 { UTR22* }   ibm-1364 { IBM* } x-IBM1364 { JAVA* } # Korean Host Mixed
-ibm-1370_P100-1999 { UTR22* }   ibm-1370 { IBM* } x-IBM1370 { JAVA* }
-ibm-1371_P100-1999 { UTR22* }   ibm-1371 { IBM* } x-IBM1371 { JAVA* } # Taiwan EBCDIC MIXED (Euro update of ibm-937)
-ibm-1388_P103-2001 { UTR22* }   ibm-1388 { IBM* } ibm-9580 { IBM } x-IBM1388 { JAVA* } # S-Ch DBCS-Host Data GBK EBCDIC_STATEFUL. Yes ibm-9580 is an alias.
-ibm-1390_P110-2003 { UTR22* }   ibm-1390 { IBM* } x-IBM1390 { JAVA* } # Japan EBCDIC MIXED (JIS X 0213)
-ibm-1399_P110-2003 { UTR22* }   ibm-1399 { IBM* } x-IBM1399 { JAVA* } # Host MBCS (Latin-Kanji) (JIS X 0213)
-ibm-5123_P100-1999 { UTR22* }   ibm-5123 { IBM* }                   # Host Roman Jis. Euro update of ibm-1027. SBCS portion of ibm-1390.
-ibm-8482_P100-1999 { UTR22* }   ibm-8482 { IBM* }                   # host SBCS (Katakana). Euro update of ibm-290. SBCS portion of ibm-1399.
-# Yes ibm-20780 is the same as ibm-16684
-ibm-16684_P110-2003 { UTR22* }  ibm-16684 { IBM* } ibm-20780 { IBM } # DBCS Jis + Roman Jis Host. This is the DBCS portion of ibm-1390 and ibm-1399 (JIS X 0213).
-ibm-4899_P100-1998 { UTR22* }   ibm-4899 { IBM* }                   # Old EBCDIC Hebrew. Update of ibm-803
-ibm-4971_P100-1999 { UTR22* }   ibm-4971 { IBM* }                   # EBCDIC Greek. Update of ibm-875 and superceded by ibm-9067
-ibm-9067_X100-2005 { UTR22* }   ibm-9067 { IBM* }                   # EBCDIC Greek. Update of ibm-875 and ibm-4971
-ibm-12712_P100-1998 { UTR22* }  ibm-12712 { IBM* } ebcdic-he        # EBCDIC Hebrew (new sheqel, control charaters update). Update of ibm-424
-ibm-16804_X110-1999 { UTR22* }  ibm-16804 { IBM* } ebcdic-ar        # EBCDIC Arabic. Update of ibm-420
-
-java-Cp1399A-1.6_P { UTR22* }   x-IBM1399A { JAVA* }
-java-Cp420s-1.6_P { UTR22* }    x-IBM420S { JAVA* }
-java-Cp1390A-1.6_P { UTR22* }   x-IBM1390A { JAVA* }
-
-# EBCDIC codepages for S/390, with LF and NL codes swapped
-# Starting with ICU 2.4, the swapping is done by modifying the
-# normal tables at runtime instead of at build time.
-# Append UCNV_SWAP_LFNL_OPTION_STRING to the "ibm-CCSID" name to select this.
-#
-# Example: "ibm-1047,swaplfnl" or "ibm-1047" UCNV_SWAP_LFNL_OPTION_STRING
-#
-# This avoids the duplication of all EBCDIC SBCS and mixed-SBCS/DBCS
-# mapping files.
-
-# Some examples below for declaring old-style, obsolete aliases with the "-s390"
-# suffix to map to the new-style, recommended names with the option added.
-# These are listed here for backward compatibility.
-# Do not use these; instead use the normal converter name with the option
-# added as recommended above.
-
-# Note: It is not possible to define an alias (non-initial name in a line here)
-# that itself contains a converter option like this one for swapping LF<->NL.
-# Such names would never be found because ucnv_open() will first parse and strip
-# options before looking up a name in this table.
-# ucnv_open() then parses the lookup result (the canonical name on the left
-# in lines here) as well.
-
-# This also means that it is not necessary to add anything to convrtrs.txt
-# for converter names like "ibm-1026,swaplfnl" to work -
-# they are already covered by the normal option parsing together with the
-# regular, option-less alias elsewhere in this file.
-
-ibm-37_P100-1995,swaplfnl     ibm-37-s390 # ibm037-s390 also matches ibm-37-s390
-ibm-924_P100-1998,swaplfnl    ibm-924-s390 IBM924_LF { JAVA* }
-ibm-1047_P100-1995,swaplfnl   ibm-1047-s390 IBM1047_LF { JAVA* }
-ibm-1140_P100-1997,swaplfnl   ibm-1140-s390
-ibm-1141_P100-1997,swaplfnl   ibm-1141-s390 IBM1141_LF { JAVA* }
-ibm-1142_P100-1997,swaplfnl   ibm-1142-s390
-ibm-1143_P100-1997,swaplfnl   ibm-1143-s390
-ibm-1144_P100-1997,swaplfnl   ibm-1144-s390
-ibm-1145_P100-1997,swaplfnl   ibm-1145-s390
-ibm-1146_P100-1997,swaplfnl   ibm-1146-s390
-ibm-1147_P100-1997,swaplfnl   ibm-1147-s390
-ibm-1148_P100-1997,swaplfnl   ibm-1148-s390
-ibm-1149_P100-1997,swaplfnl   ibm-1149-s390
-ibm-1153_P100-1999,swaplfnl   ibm-1153-s390
-ibm-12712_P100-1998,swaplfnl  ibm-12712-s390
-ibm-16804_X110-1999,swaplfnl  ibm-16804-s390
-
-# This is a special version of ibm-1140 that the XML4C (Xerces) parser team
-# requested in 2000.
-# It maps both EBCDIC LF and NL controls to Unicode LF U+000A.
-
-ebcdic-xml-us
-
 # These are not installed by default. They are rarely used.
 # Many of them can be added through the online ICU Data Library Customization tool
+# Chrome: Removed all these entries except for ISO-8859-16 required by HTML5.
 
-gsm-03.38-2000 { UTR22* }   GSM0338 # GSM0338 alias is from Perl
-ibm-1004_P100-1995 { UTR22* }   ibm-1004 { IBM* }
-ibm-1008_P100-1995 { UTR22* }   ibm-1008 { IBM* } # cp1008, 8-bit Arabic (w/o euro update)
-ibm-1009_P100-1995 { UTR22* }   ibm-1009 { IBM* }
-ibm-1010_P100-1995 { UTR22* }   ibm-1010 { IBM* } NF_Z_62-010 { IANA* } iso-ir-69 { IANA } ISO646-FR { IANA } fr { IANA } csISO69French { IANA }
-ibm-1011_P100-1995 { UTR22* }   ibm-1011 { IBM* } DIN_66003 { IANA* } iso-ir-21 { IANA } de { IANA } ISO646-DE { IANA } csISO21German { IANA }
-ibm-1012_P100-1995 { UTR22* }   ibm-1012 { IBM* } IT { IANA* } iso-ir-15 { IANA } ISO646-IT { IANA } csISO15Italian { IANA }
-ibm-1013_P100-1995 { UTR22* }   ibm-1013 { IBM* } BS_4730 { IANA* } iso-ir-4 { IANA } ISO646-GB { IANA } gb { IANA } uk { IANA } csISO4UnitedKingdom { IANA }
-ibm-1014_P100-1995 { UTR22* }   ibm-1014 { IBM* } ES2 { IANA* } iso-ir-85 { IANA } ISO646-ES2 { IANA } csISO85Spanish2 { IANA }
-ibm-1015_P100-1995 { UTR22* }   ibm-1015 { IBM* } PT2 { IANA* } iso-ir-84 { IANA } ISO646-PT2 { IANA } csISO84Portuguese2 { IANA }
-ibm-1016_P100-1995 { UTR22* }   ibm-1016 { IBM* } NS_4551-1 { IANA* } iso-ir-60 { IANA } ISO646-NO { IANA } no { IANA } csISO60DanishNorwegian { IANA } csISO60Norwegian1 { IANA }
-ibm-1017_P100-1995 { UTR22* }   ibm-1017 { IBM* }
-ibm-1018_P100-1995 { UTR22* }   ibm-1018 { IBM* } SEN_850200_B { IANA* } iso-ir-10 { IANA } FI { IANA } ISO646-FI { IANA } ISO646-SE { IANA } se { IANA } csISO10Swedish { IANA }
-ibm-1019_P100-1995 { UTR22* }   ibm-1019 { IBM* }
-ibm-1020_P100-2003 { UTR22* }   ibm-1020 { IBM* } CSA_Z243.4-1985-1 { IANA* } iso-ir-121 { IANA } ISO646-CA { IANA } csa7-1 { IANA } ca { IANA } csISO121Canadian1 { IANA }
-ibm-1021_P100-2003 { UTR22* }   ibm-1021 { IBM* }
-ibm-1023_P100-2003 { UTR22* }   ibm-1023 { IBM* } ES { IANA* } iso-ir-17 { IANA } ISO646-ES { IANA } csISO17Spanish { IANA }
-ibm-1027_P100-1995 { UTR22* }   ibm-1027 { IBM* } x-IBM1027 { JAVA* }
-ibm-1041_P100-1995 { UTR22* }   ibm-1041 { IBM* } x-IBM1041 { JAVA* }
-ibm-1043_P100-1995 { UTR22* }   ibm-1043 { IBM* } x-IBM1043 { JAVA* }
-ibm-1046_X110-1999 { UTR22* }   ibm-1046 { IBM* } x-IBM1046 { JAVA* } x-IBM1046S { JAVA } # Arabic
-ibm-1088_P100-1995 { UTR22* }   ibm-1088 { IBM* } x-IBM1088 { JAVA* }
-ibm-1100_P100-2003 { UTR22* }   ibm-1100 { IBM* } DEC-MCS { IANA* } dec { IANA } csDECMCS { IANA }
-ibm-1101_P100-2003 { UTR22* }   ibm-1101 { IBM* }
-ibm-1102_P100-2003 { UTR22* }   ibm-1102 { IBM* }
-ibm-1103_P100-2003 { UTR22* }   ibm-1103 { IBM* }
-ibm-1104_P100-2003 { UTR22* }   ibm-1104 { IBM* } NF_Z_62-010_1973 iso-ir-25 { IANA* } ISO646-FR1 { IANA } csISO25French { IANA } # NF_Z_62-010_(1973) is the real IANA alias, but () aren't invariant characters.
-ibm-1105_P100-2003 { UTR22* }   ibm-1105 { IBM* }
-ibm-1106_P100-2003 { UTR22* }   ibm-1106 { IBM* }
-ibm-1107_P100-2003 { UTR22* }   ibm-1107 { IBM* } DS_2089 { IANA* } ISO646-DK { IANA } dk { IANA } csISO646Danish { IANA }
-ibm-1127_P100-2004 { UTR22* }   ibm-1127 { IBM* }
-ibm-1161_P100-1999 { UTR22* }   ibm-1161 { IBM* } # Thai (Euro update of ibm-1129)
-ibm-1163_P100-1999 { UTR22* }   ibm-1163 { IBM* } # Vietnamese
-ibm-1165_P101-2000 { UTR22* }   ibm-1165 { IBM* } # Vietnamese (EBCDIC)
-ibm-1166_P100-2002 { UTR22* }   ibm-1166 { IBM* } # Cyrillic for Kazakhstan
-ibm-1167_P100-2002 { UTR22* }   ibm-1167 { IBM* } KOI8-RU x-KOI8_RU { JAVA* }
-ibm-1174_X100-2007 { UTR22* }   ibm-1174 { IBM* } KZ-1048 { IANA* } STRK1048-2002 { IANA } RK1048 { IANA } csKZ1048 { IANA }
-ibm-1277_P100-1995 { UTR22* }   ibm-1277 { IBM* } # Adobe (Postscript) Latin-1
-ibm-13125_P100-1997 { UTR22* }  ibm-13125 { IBM* } # S-Ch (DBCS subset of ibm-4933, ibm-1388)
-ibm-13140_P101-2000 { UTR22* }  ibm-13140 { IBM* }
-ibm-13218_P100-1996 { UTR22* }  ibm-13218 { IBM* } # Japanese (EBCDIC update of ibm-930)
-ibm-1350_P110-1997 { UTR22* }   ibm-1350 { IBM* } x-eucJP-Open { JAVA* } eucJP-Open { JAVA } # Japanese (EUC-JP variant)
-ibm-1351_P110-1997 { UTR22* }   ibm-1351 { IBM* } x-IBM1351 { JAVA* } # Japanese (DBCS subset of ibm-5039)
-ibm-1362_P110-1999 { UTR22* }   ibm-1362 { IBM* } x-IBM1362 { JAVA* } # Korean (DBCS subset of ibm-1363)
-ibm-13676_P102-2001 { UTR22* }  ibm-13676 { IBM* } # Simplified Chinese (EBCDIC)
-ibm-1380_P100-1995 { UTR22* }   ibm-1380 { IBM* } x-IBM1380 { JAVA* } # Simplified Chinese (DBCS subset of ibm-1381)
-ibm-1381_P110-1999 { UTR22* }   ibm-1381 { IBM* JAVA } cp1381 { JAVA* } 1381 { JAVA } x-IBM1381 { JAVA } # Simplified Chinese PC Data mixed (IBM GB) 
-ibm-1382_P100-1995 { UTR22* }   ibm-1382 { IBM* } x-IBM1382 { JAVA* } # Simplified Chinese (DBCS subset of ibm-1383)
-ibm-17221_P100-2001 { UTR22* }  ibm-17221 { IBM* } # Simplified Chinese (EBCDIC)
-ibm-17248_X110-1999 { UTR22* }  ibm-17248 { IBM* } # PC Arabic (w/ euro update) Updated version of ibm-864
-ibm-21344_P101-2000 { UTR22* }  ibm-21344 { IBM* } # PC Arabic. Updated version of ibm-864
-ibm-21427_P100-1999 { UTR22* }  ibm-21427 { IBM* } # Traditional Chinese (DBCS subset of ibm-1370)
-ibm-256_P100-1995 { UTR22* }    ibm-256 { IBM* } # Latin 1 EBCDIC
-ibm-259_P100-1995 { UTR22* }    ibm-259 { IBM* } IBM-Symbols { IANA* } csIBMSymbols { IANA }
-ibm-274_P100-2000 { UTR22* }    ibm-274 { IBM* } IBM274 { IANA* } EBCDIC-BE { IANA } CP274 { IANA } csIBM274 { IANA }
-ibm-275_P100-1995 { UTR22* }    ibm-275 { IBM* } IBM275 { IANA* } EBCDIC-BR { IANA } cp275 { IANA } csIBM275 { IANA }
-ibm-286_P100-2003 { UTR22* }    ibm-286 { IBM* } EBCDIC-AT-DE-A { IANA* } csEBCDICATDEA { IANA }
-ibm-293_P100-1995 { UTR22* }    ibm-293 { IBM* } # APL EBCDIC (APL: A Programming Language)
-ibm-300_P120-2006 { UTR22* }    ibm-300 { IBM* } x-IBM300 { JAVA* } # Japanese (DBCS subset of ibm-930 and ibm-939)
-ibm-301_P110-1997 { UTR22* }    ibm-301 { IBM* } x-IBM301 { JAVA* } # Japanese (DBCS subset of ibm-943)
-ibm-33058_P100-2000 { UTR22* }  ibm-33058 { IBM* } # SBCS (Katakana)
-ibm-425_P101-2000 { UTR22* }    ibm-425 { IBM* } # Arabic (EBCDIC)
-ibm-4930_P110-1999 { UTR22* }   ibm-4930 { IBM* } # Korean (DBCS subset of ibm-1364)
-ibm-4933_P100-2002 { UTR22* }   ibm-4933 { IBM* } # S-Ch (DBCS subset of ibm-1388)
-ibm-4948_P100-1995 { UTR22* }   ibm-4948 { IBM* }
-ibm-4951_P100-1995 { UTR22* }   ibm-4951 { IBM* }
-ibm-4952_P100-1995 { UTR22* }   ibm-4952 { IBM* }
-ibm-4960_P100-1995 { UTR22* }   ibm-4960 { IBM* }
-ibm-5039_P11A-1998 { UTR22* }   ibm-5039 { IBM* } # Japanese (HP Shift-JIS variant)
-ibm-5048_P100-1995 { UTR22* }   ibm-5048 { IBM* } # Japanese (DBCS subset of ibm-1350, JIS X208-1990)
-ibm-5049_P100-1995 { UTR22* }   ibm-5049 { IBM* } # Japanese (DBCS subset of ibm-1350, JIS X212)
-ibm-5067_P100-1995 { UTR22* }   ibm-5067 { IBM* } # Korean (DBCS subset of ibm-21450)
-ibm-5104_X110-1999 { UTR22* }   ibm-5104 { IBM* } # cp1008, 8-bit Arabic (w/ euro update)
-ibm-5233_P100-2011 { UTR22* }   ibm-5233 { IBM* } # Devanagari EBCDIC, including Indian Rupee
-ibm-806_P100-1998 { UTR22* }    ibm-806 { IBM* } # Hindi (ISCII variant)
-ibm-808_P100-1999 { UTR22* }    ibm-808 { IBM* } x-IBM808 { JAVA* } # Cyrillic
-ibm-833_P100-1995 { UTR22* }    ibm-833 { IBM* } x-IBM833 { JAVA* }
-ibm-834_P100-1995 { UTR22* }    ibm-834 { IBM* } x-IBM834 { JAVA* } # Korean (DBCS subset of ibm-933)
-ibm-835_P100-1995 { UTR22* }    ibm-835 { IBM* } x-IBM835 { JAVA* } # Traditional Chinese (DBCS subset of ibm-5033)
-ibm-836_P100-1995 { UTR22* }    ibm-836 { IBM* } x-IBM836 { JAVA* }
-ibm-837_P100-2011 { UTR22* }    ibm-837 { IBM* } x-IBM837 { JAVA* } # Simplified Chinese (DBCS subset of ibm-5031)
-ibm-848_P100-1999 { UTR22* }    ibm-848 { IBM* } # Cyrillic (euro update of ibm-1125)
-ibm-849_P100-1999 { UTR22* }    ibm-849 { IBM* } # Cyrillic Belarus (euro update of ibm-1131)
-ibm-859_P100-1999 { UTR22* }    ibm-859 { IBM* } x-IBM859 { JAVA* } # PC Latin 9 (w/ euro update)
-ibm-8612_P100-1995 { UTR22* }   ibm-8612 { IBM* } # Arabic (EBCDIC update of ibm-420)
-ibm-872_P100-1999 { UTR22* }    ibm-872 { IBM* } # Cyrillic (Euro update of ibm-855)
-ibm-880_P100-1995 { UTR22* }    ibm-880 { IBM* } IBM880 { IANA* } cp880 { IANA } EBCDIC-Cyrillic { IANA } csIBM880 { IANA } windows-20880 { WINDOWS* }
-ibm-896_P100-1995 { UTR22* }    ibm-896 { IBM* } # SBCS Katakana
-ibm-897_P100-1995 { UTR22* }    ibm-897 { IBM* } JIS_X0201 { IANA* } X0201 { IANA } csHalfWidthKatakana { IANA } x-IBM897 { JAVA* }
-ibm-9027_P100-1999 { UTR22* }   ibm-9027 { IBM* } # DBCS T-Ch Host. Euro update of ibm-835. DBCS portion of ibm-1371.
-ibm-9048_P100-1998 { UTR22* }   ibm-9048 { IBM* } # Hebrew (Euro and Sequel update of ibm-856)
-ibm-905_P100-1995 { UTR22* }    ibm-905 { IBM* } IBM905 { IANA* } CP905 { IANA } ebcdic-cp-tr { IANA } csIBM905 { IANA } windows-20905 { WINDOWS* }
-ibm-9056_P100-1995 { UTR22* }   ibm-9056 { IBM* } # Arabic
-ibm-9061_P100-1999 { UTR22* }   ibm-9061 { IBM* } # Greek (w/ euro update)
-ibm-9145_P110-1997 { UTR22* }   ibm-9145 { IBM* } # Japanese (DBCS subset of ibm-5050)
-ibm-9238_X110-1999 { UTR22* }   ibm-9238 { IBM* } # cp1046, PC Arabic Extended (w/ euro update)
-ibm-924_P100-1998 { UTR22* }    ibm-924 { IBM* } IBM00924 { IANA* } CCSID00924 { IANA } CP00924 { IANA } ebcdic-Latin9--euro { IANA }
-ibm-926_P100-2000 { UTR22* }    ibm-926 { IBM* } # Korean (DBCS subset of ibm-944)
-ibm-927_P100-1995 { UTR22* }    ibm-927 { IBM* } x-IBM927 { JAVA* } # Traditional Chinese (DBCS subset of ibm-948)
-ibm-928_P100-1995 { UTR22* }    ibm-928 { IBM* } # Simplified Chinese (DBCS subset of ibm-936)
-ibm-941_P13A-2001 { UTR22* }    ibm-941 { IBM* } # DBCS portion of ibm-943
-ibm-944_P100-1995 { UTR22* }    ibm-944 { IBM* } # Korean
-ibm-946_P100-1995 { UTR22* }    ibm-946 { IBM* } # Simplified Chinese
-ibm-947_P100-1995 { UTR22* }    ibm-947 { IBM* } x-IBM947 { JAVA* } # Traditional Chinese (DBCS subset of ibm-950)
-ibm-948_P110-1999 { UTR22* }    ibm-948 { IBM* } x-IBM948 { JAVA* } # Traditional Chinese
-ibm-951_P100-1995 { UTR22* }    ibm-951 { IBM* } x-IBM951 { JAVA* } # Korean (DBCS subset of ibm-949)
-ibm-952_P110-1997 { UTR22* }    ibm-952 { IBM* } x-JIS0208 # Pure DBCS, Japanese EUC, G1 - JIS X208-1990
-ibm-953_P100-2000 { UTR22* }    ibm-953 { IBM* } JIS_X0212-1990 { IANA* } # Pure DBCS, Japanese EUC, G3 - JIS X 0212-1990
-ibm-955_P110-1997 { UTR22* }    ibm-955 { IBM* } # Pure DBCS, Japanese EUC, G0 - JIS X208-1978
-ibm-9577_P100-2001 { UTR22* }   ibm-9577 { IBM* } ibm-1385 { IBM } x-IBM1385 { JAVA* } # ibm-9577 and ibm-1385 are identical DBCS tables.
 iso-8859_16-2001 { UTR22* }     ISO-8859-16 { IANA* } iso-ir-226 { IANA } ISO_8859-16:2001 { IANA } latin10 { IANA } l10 { IANA }
 
-# To be considered for listing at a later date for the data library customization tool
-#ibm-1159_P100-1999 { UTR22* }   ibm-1159 { IBM* } # SBCS T-Ch Host. Euro update of ibm-28709. This is used in combination with another CCSID mapping.
-#ibm-960_P100-2000 { UTR22* }    ibm-960 { IBM* } # Pure DBCS, CNS11643 plane 1
-#ibm-963_P100-1995 { UTR22* }    ibm-963 { IBM* } # Pure DBCS, CNS11643 plane 2 Traditional Chinese (DBCS subset of ibm-965)
