List:Commits« Previous MessageNext Message »
From:Alexander Barkov Date:November 27 2009 7:48am
Subject:bzr commit into mysql-5.6-next-mr branch (bar:2925) WL#4583
View as plain text  
#At file:///home/bar/mysql-bzr/mysql-next-mr-bar-w4583/ based on revid:alik@strippedi

 2925 Alexander Barkov	2009-11-27
      WL#4583 Case conversion in Asian character sets
      
      modified:
        include/m_ctype.h
        - Changing type for tolower/toupper members, to store values >= 0xFFFF.
        - Adding function prototypes
      
        mysql-test/r/ctype_big5.result
        mysql-test/r/ctype_cp932_binlog_stm.result
        mysql-test/r/ctype_eucjpms.result*
        mysql-test/r/ctype_euckr.result
        mysql-test/r/ctype_gb2312.result
        mysql-test/r/ctype_gbk.result
        mysql-test/r/ctype_sjis.result
        mysql-test/r/ctype_ujis.result
        mysql-test/t/ctype_big5.test
        mysql-test/t/ctype_cp932_binlog_stm.test
        mysql-test/t/ctype_eucjpms.test
        mysql-test/t/ctype_euckr.test
        mysql-test/t/ctype_gb2312.test
        mysql-test/t/ctype_gbk.test
        mysql-test/t/ctype_sjis.test
        mysql-test/t/ctype_ujis.test
        -  Adding tests
      
        strings/ctype-big5.c
        strings/ctype-cp932.c
        strings/ctype-euc_kr.c
        strings/ctype-eucjpms.c
        strings/ctype-gb2312.c
        strings/ctype-gbk.c
        strings/ctype-sjis.c
        - Adding upper/lower case conversion data
      
        strings/ctype-mb.c
        - Adding handling of upper/lower conversion for multi-byte characters.
      
        strings/ctype-ujis.c
        - Implementing shared upper/lower conversion
          functions  for ujis and eucjpms
        - Adding upper/lower case conversion data for ujis

    modified:
      include/m_ctype.h
      mysql-test/r/ctype_big5.result
      mysql-test/r/ctype_cp932_binlog_stm.result
      mysql-test/r/ctype_eucjpms.result*
      mysql-test/r/ctype_euckr.result
      mysql-test/r/ctype_gb2312.result
      mysql-test/r/ctype_gbk.result
      mysql-test/r/ctype_sjis.result
      mysql-test/r/ctype_ujis.result
      mysql-test/t/ctype_big5.test
      mysql-test/t/ctype_cp932_binlog_stm.test
      mysql-test/t/ctype_eucjpms.test
      mysql-test/t/ctype_euckr.test
      mysql-test/t/ctype_gb2312.test
      mysql-test/t/ctype_gbk.test
      mysql-test/t/ctype_sjis.test
      mysql-test/t/ctype_ujis.test
      strings/ctype-big5.c
      strings/ctype-cp932.c
      strings/ctype-euc_kr.c
      strings/ctype-eucjpms.c
      strings/ctype-gb2312.c
      strings/ctype-gbk.c
      strings/ctype-mb.c
      strings/ctype-sjis.c
      strings/ctype-ujis.c
=== modified file 'include/m_ctype.h'
--- a/include/m_ctype.h	2009-10-15 12:23:43 +0000
+++ b/include/m_ctype.h	2009-11-27 07:42:35 +0000
@@ -40,9 +40,9 @@ extern "C" {
 
 typedef struct unicase_info_st
 {
-  uint16 toupper;
-  uint16 tolower;
-  uint16 sort;
+  uint32 toupper;
+  uint32 tolower;
+  uint32 sort;
 } MY_UNICASE_INFO;
 
 
@@ -439,6 +439,14 @@ extern size_t my_caseup_mb(CHARSET_INFO 
                                          char *dst, size_t dstlen);
 extern size_t my_casedn_mb(CHARSET_INFO *, char *src, size_t srclen,
                                          char *dst, size_t dstlen);
+extern size_t my_caseup_mb_varlen(CHARSET_INFO *, char *src, size_t srclen,
+                                  char *dst, size_t dstlen);
+extern size_t my_casedn_mb_varlen(CHARSET_INFO *, char *src, size_t srclen,
+                                  char *dst, size_t dstlen);
+extern size_t my_caseup_ujis(CHARSET_INFO *, char *src, size_t srclen,
+                             char *dst, size_t dstlen);
+extern size_t my_casedn_ujis(CHARSET_INFO *, char *src, size_t srclen,
+                             char *dst, size_t dstlen);
 extern int my_strcasecmp_mb(CHARSET_INFO * cs,const char *, const char *);
 
 int my_wildcmp_mb(CHARSET_INFO *,

=== modified file 'mysql-test/r/ctype_big5.result'
--- a/mysql-test/r/ctype_big5.result	2008-04-03 09:50:43 +0000
+++ b/mysql-test/r/ctype_big5.result	2009-11-27 07:42:35 +0000
@@ -277,3 +277,186 @@ hex(a)
 EE00
 drop table t1;
 End of 5.0 tests
+#
+# Start of 5.5 tests
+#
+#
+# Testing WL#4583 Case conversion in Asian character sets 
+#
+SET NAMES utf8;
+SET collation_connection=big5_chinese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE (hi BETWEEN 'A1' AND 'F9')
+AND ((lo BETWEEN '40' AND '7E') OR (lo BETWEEN 'A1' AND 'FE'))
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `code` varchar(8) DEFAULT NULL,
+  `a` varchar(1) CHARACTER SET big5 NOT NULL DEFAULT ''
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+13973
+UPDATE t1 SET a=unhex(code);
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+code	hex(upper(a))	hex(lower(a))	a	upper(a)	lower(a)
+A2CF	A2CF	A2E9	A	A	a
+A2D0	A2D0	A2EA		F	f
+A2D5	A2D5	A2EF	G	G	g
+A2D6	A2D6	A2F0	H	H	h
+A2D7	A2D7	A2F1	I	I	i
+A2D8	A2D8	A2F2	J		n
+A2DD	A2DD	A2F7	O	O	o
+A2DE	A2DE	A2F8	P	P	p
+A2DF	A2DF	A2F9	Q	Q	q
+A2E0	A2E0	A2FA	R	R	
+A2E5	A2E5	A340	W	W	w
+A2E6	A2E6	A341	X	X	x
+A2E7	A2E7	A342	Y	Y	y
+A2E8	A2E8	A343	Z	Z	z
+A2E9	A2CF	A2E9	a	A	a
+A2EA	A2D0	A2EA	b	B	b
+A2EB	A2D1	A2EB	c	C	c
+A2EC	A2D2	A2EC	d	D	d
+A2ED	A2D3	A2ED	e	E	e
+A2EE	A2D4	A2EE	f	F	f
+A2EF	A2D5	A2EF	g	G	g
+A2F0	A2D6	A2F0	h	H	h
+A2F1	A2D7	A2F1	i	I	i
+A2F2	A2D8	A2F2	j	J	j
+A2F3	A2D9	A2F3	k	K	k
+A2F4	A2DA	A2F4	l	L	l
+A2F5	A2DB	A2F5	m	M	m
+A2F6	A2DC	A2F6	n	N	n
+A2F7	A2DD	A2F7	o	O	o
+A2F8	A2DE	A2F8	p	P	p
+A2F9	A2DF	A2F9	q	Q	q
+A2FA	A2E0	A2FA	r	R	r
+A2FB	A2E1	A2FB	s	S	s
+A2FC	A2E2	A2FC	t	T	t
+A2FD	A2E3	A2FD	u	U	u
+A2FE	A2E4	A2FE	v	V	v
+A340	A2E5	A340	w	W	w
+A341	A2E6	A341	x	X	x
+A342	A2E7	A342	y	Y	y
+A343	A2E8	A343	z	Z	z
+A344	A344	A35C	Α	Α	α
+A345	A345	A35D	Β	Β	β
+A346	A346	A35E	Γ	Γ	γ
+A347	A347	A35F	Δ	Δ	δ
+A348	A348	A360	Ε	Ε	ε
+A349	A349	A361	Ζ	Ζ	ζ
+A34A	A34A	A362	Η	Η	η
+A34B	A34B	A363	Θ	Θ	θ
+A34C	A34C	A364	Ι	Ι	ι
+A34D	A34D	A365	
+A350	A350	A368	Ν	Ν	ν
+A351	A351	A369	Ξ	Ξ	ξ
+A352	A352	A36A	Ο	Ο	ο
+A353	A353	A36B	Π	Π	π
+A354	A354	A36C	Ρ	Ρ	ρ
+A355	A355	A36D	Σ	Σ	σ
+A356	A356	A36E	Τ	359	A359	A371	Χ	Χ	χ
+A35A	A35A	A372	Ψ	Ψ	ψ
+A35B	A35B	A373	Ω	Ω	ω
+A35C	A344	A35C	α	Α	α
+A35D	A345	A35D	β	Β	β
+A35E	A346	A35E	γ	Γ	γ
+A35F	A347	A35F	δ	Δ		A34A	A362	η	Η	η
+A363	A34B	A363	θ	Θ	θ
+A364	A34C	A364	ι	Ι	ι
+A365	A34D	A365	κ	Κ	κ
+A366	A34E	A366	λ	Λ	λ
+A367	A34F	A367	μ	Μ	μ
+A368	A350	A368	ν	Ν	ν
+A369	A351	A369	ξ	Ξ	ξ
+A36A	A352	A36A	ο	Ο	ο
+A36B	A353	A36B	π	Π	π
+A36C	A354	A36C	ρ	Ρ	ρ
+A36D	A355	A36D	σ	Σ	σ
+A36E	A356	A36E	τ	Τ	τ
+A36F	A357	A36F	υ	Υ	υ
+A370	A358	A370	φ	Φ	φ
+A371	A359	A371	χ	Χ	χ
+A372	A35A	A372	ψ	Ψ	ψ
+A373	A35B	A373	ω	Ω	ω
+C7B1	C7B1	C7CC	Д	Д	д
+C7B2	C7B2	C7CD	Е	Е	е
+C7B3	C7B3	C7CE	Ё	Ё	ё
+C7B4	C7B4	C7CF	Ж	Ж	ж
+C7B5	C7B5	C7D0	З	З	з
+C7B6	C7B6	C7D1	И	И	и
+C7B7	C7B7	C7D2	Й	Й	й
+C7B8	C7B8	C7D3	К	К	к
+C7B9	C7B9	C7D4	Л	Л	л
+C7BA	C7BA	C7D5	М	М	м
+C7BB	C7BB	C7DC	У	У	у
+C7BC	C7BC	C7DD	Ф	Ф	ф
+C7BD	C7BD	C7DE	Х	Х	х
+C7BE	C7BE	C7DF	Ц	Ц	ц
+C7BF	C7BF	C7E0	Ч	Ч	ч
+C7C0	C7C0	C7E1	Ш	Ш	ш
+C7C1	C7C1	C7E2	Щ	Щ	щ
+C7C2	C7C2	C7E3	Ъ	Ъ	ъ
+C7C3	C7C3	C7E4	
+C7C6	C7C6	C7E7	Ю	Ю	ю
+C7C7	C7C7	C7E8	Я	Я	я
+C7CC	C7B1	C7CC	д	Д	д
+C7CD	C7B2	C7CD	е	Е	е
+C7CE	C7B3	C7CE	ё	Ё	ё
+C7CF	C7B4	C7CF	ж	Ж	ж
+C7D0	C7B5	C7D0	з	7D3	C7B8	C7D3	к	К	к
+C7D4	C7B9	C7D4	л	Л	л
+C7D5	C7BA	C7D5	м	М	м
+C7DC	C7BB	C7DC	у	У	у
+C7DD	C7BC	C7DD	ф	Ф	ф
+C7DE	C7BD	C7DE	х	Х	х
+C7DF	C7BE	C7DF	ц	Ц		C7C1	C7E2	щ	Щ	щ
+C7E3	C7C2	C7E3	ъ	Ъ	ъ
+C7E4	C7C3	C7E4	ы	Ы	ы
+C7E5	C7C4	C7E5	ь	Ь	ь
+C7E6	C7C5	C7E6	э	Э	э
+C7E7	C7C6	C7E7	ю	Ю	ю
+C7E8	C7C7	C7E8	я	Я	я
+DROP TABLE t1;
+#
+# End of 5.5 tests
+#

=== modified file 'mysql-test/r/ctype_cp932_binlog_stm.result'
--- a/mysql-test/r/ctype_cp932_binlog_stm.result	2009-10-01 16:44:53 +0000
+++ b/mysql-test/r/ctype_cp932_binlog_stm.result	2009-11-27 07:42:35 +0000
@@ -55,3 +55,247 @@ hex(a)	hex(lower(a))	hex(upper(a))
 8372835E	8372835E	8372835E
 DROP TABLE t1;
 End of 5.1 tests
+#
+# Start of 5.5 tests
+#
+#
+# Testing WL#4583 Case conversion in Asian character sets 
+#
+SET NAMES utf8;
+SET collation_connection=cp932_japanese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE
+((hi BETWEEN '81' AND '9F') OR (hi BETWEEN 'E0' AND 'FC'))
+AND ((lo BETWEEN '40' AND '7E') OR (lo BETWEEN '80' AND 'FC'))
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `code` varchar(8) DEFAULT NULL,
+  `a` varchar(1) CHARACTER SET cp932 NOT NULL DEFAULT ''
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+11280
+UPDATE t1 SET a=unhex(code);
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+code	hex(upper(a))	hex(lower(a))	a	upper(a)	lower(a)
+8260	8260	8281	A	A	a
+8261	8261	8282	B	B	b
+8262	8262	8283	C	C	c
+8263	8263	8284	D	D	d
+8264	8264	8285	E	E	e
+8265	8265	8286	F	F	f
+8266	8266	8287	G	G	g
+8267	8267	8288	H	H	h
+8268	8268	8289	I	I	i
+8269	8269	828A	J	J	j
+826A	826A	828B	K	K	k
+826B	826B	828C	L	L	l
+826C	826C	828D	M	M	m
+826D	826D	828E	N	N	n
+826E	826E	828F	O	O	o
+826F	826F	8290	P	P	p
+8270	8270	8291	Q	Q	q
+8271	8271	8292	R	R	r
+8272	8272	8293	S	S	s
+8273	8273	8294	T	T	t
+8274	8274	8295	U	U	u
+8275	8275	8296	V	V	v
+8276	8276	8297		A	a
+8282	8261	8282	b	B	b
+8283	8262	8283	c	C	c
+8284	8263	8284	d	D	d
+8285	8264	8285	e		i
+828A	8269	828A	j	J	j
+828B	826A	828B	k	K	k
+828C	826B	828C	l	L	l
+828D	826C	828D	m	M	
+8292	8271	8292	r	R	r
+8293	8272	8293	s	S	s
+8294	8273	8294	t	T	t
+8295	8274	8295	u	U	u
+8296	8275	8296	v	V	v
+8297	8276	8297	w	W	w
+8298	8277	8298	x	X	x
+8299	8278	8299	y	Y	y
+829A	8279	829A	z	Z	z
+839F	839F	83BF	Α	Α	α
+83A0	83A0	83C0	Β	Β	β
+83A1	83A1	83C1	Γ	Γ	γ
+83A2	83A2	83C2	Δ	Δ	δ
+83A3	83A3	83C3	Ε	Ε	ε
+83A4	83A4	83C4	Ζ	Ζ	ζ
+83A5	83A5	83C5	Η	Η	η
+83A6	83A6	83C6	Θ	Θ	θ
+83A7	83A7	83C7	Ι	Ι	ι
+83A8	83A8	83C8	Κ	Κ	κ
+83A9	83A9	83C9	Λ	Λ	λ
+83AA	83AA	83CA	Μ	Μ	μ
+83AB	83AB	83CB	
+83AE	83AE	83CE	Π	Π	π
+83AF	83AF	83CF	Ρ	Ρ	ρ
+83B0	83B0	83D0	Σ	Σ	σ
+83B1	83B1	83D1	Τ	Τ	τ
+83B2	83B2	83D2	Υ	Υ	υ
+83B3	83B3	83D3	Φ	Φ	φ
+83B4	83B4	83D4	Χ	3BF	839F	83BF	α	Α	α
+83C0	83A0	83C0	β	Β	β
+83C1	83A1	83C1	γ	Γ	γ
+83C2	83A2	83C2	δ	Δ	δ
+83C3	83A3	83C3	ε	Ε	ε
+83C4	83A4	83C4	ζ	Ζ	ζ
+83C5	83A5	83C5	η	Η		83A8	83C8	κ	Κ	κ
+83C9	83A9	83C9	λ	Λ	λ
+83CA	83AA	83CA	μ	Μ	μ
+83CB	83AB	83CB	ν	Ν	ν
+83CC	83AC	83CC	ξ	Ξ	ξ
+83CD	83AD	83CD	ο	Ο	ο
+83CE	83AE	83CE	π	Π	π
+83CF	83AF	83CF	ρ	Ρ	ρ
+83D0	83B0	83D0	σ	Σ	σ
+83D1	83B1	83D1	τ	Τ	τ
+83D2	83B2	83D2	υ	Υ	υ
+83D3	83B3	83D3	φ	Φ	φ
+83D4	83B4	83D4	χ	Χ	χ
+83D5	83B5	83D5	ψ	Ψ	ψ
+83D6	83B6	83D6	ω	Ω	ω
+8440	8440	8470	А	А	а
+8441	8441	8471	Б	Б	б
+8442	8442	8472	В	В	в
+8443	8443	8473	Г	Г	г
+8444	8444	8474	Д	Д	д
+8445	8445	8475	Е	Е	е
+8446	8446	8476	Ё	Ё	ё
+8447	8447	8477	Ж	Ж	ж
+8448	8448	8478	З	З	з
+8449	8449	8479	И	И	и
+844A	844A	847A	Й	Й	й
+844B	844B	847B	К	К	к
+844C	844C	847C	Л	Л	л
+844D	844D	847D	М	М	м
+844E	844E	847E	Н	Н	н
+844F	844F	8480	О	О	о
+8450	8450	8481	П	П	п
+8451	8451	8482	Р	Р	р
+8452	8452	8483	С	С	с
+8453	8453	8484	Т	Т	т
+8454	8454	8485	У	У	у
+8455	8455	8486	
+8458	8458	8489	Ч	Ч	ч
+8459	8459	848A	Ш	Ш	ш
+845A	845A	848B	Щ	Щ	щ
+845B	845B	848C	Ъ	Ъ	ъ
+845C	845C	848D	Ы	Ы	ы
+845D	845D	848E	Ь	Ь	ь
+845E	845E	848F	Э	470	8440	8470	а	А	а
+8471	8441	8471	б	Б	б
+8472	8442	8472	в	В	в
+8473	8443	8473	г	Г	г
+8474	8444	8474	д	Д	д
+8475	8445	8475	е	Е	е
+8476	8446	8476	ё	Ё		8449	8479	и	И	и
+847A	844A	847A	й	Й	й
+847B	844B	847B	к	К	к
+847C	844C	847C	л	Л	л
+847D	844D	847D	м	М	м
+847E	844E	847E	н	Н	н
+8480	844F	8480	о	О	о
+8481	8450	8481	п	П	п
+8482	8451	8482	р	Р	р
+8483	8452	8483	с	С	с
+8484	8453	8484	т	Т	т
+8485	8454	8485	у	У	у
+8486	8455	8486	ф	Ф	ф
+8487	8456	8487	х	Х	х
+8488	8457	8488	ц	Ц	ц
+8489	8458	8489	ч	Ч	ч
+848A	8459	848A	ш	Ш	ш
+848B	845A	848B	щ	Щ	щ
+848C	845B	848C	ъ	Ъ	ъ
+848D	845C	848D	ы	Ы	ы
+848E	845D	848E	ь	Ь	ь
+848F	845E	848F	э	Э	э
+8490	845F	8490	ю	Ю	ю
+8491	8460	8491	я	Я	я
+8754	8754	EEEF	Ⅰ	Ⅰ	ⅰ
+8755	8755	EEF0	Ⅱ	Ⅱ	ⅱ
+8756	8756	EEF1	Ⅲ	Ⅲ	ⅲ
+8757	8757	EEF2	Ⅳ	Ⅳ	ⅳ
+8758	8758	EEF3	Ⅴ	Ⅴ	ⅴ
+8759	8759	EEF4	Ⅵ	Ⅵ	ⅵ
+875A	875A	EEF5	Ⅶ	Ⅶ	ⅶ
+875B	875B	EEF6	Ⅷ	Ⅷ	ⅷ
+875C	875C	EEF7	Ⅸ	Ⅸ	ⅸ
+875D	875D	EEF8	Ⅹ	Ⅹ	ⅹ
+EEEF	8754	EEEF	ⅰ	Ⅰ	ⅰ
+EEF0	8755	EEF0	ⅱ	Ⅱ	ⅱ
+EEF1	8756	EEF1	ⅲ	Ⅲ	ⅲ
+EEF2	8757	EEF2	ⅳ	Ⅳ	ⅳ
+EEF3	8758	EEF3	ⅴ	Ⅴ	ⅴ
+EEF4	8759	EEF4	ⅵ	Ⅵ	ⅵ
+EEF5	875A	EEF5	ⅶ	Ⅶ	ⅶ
+EEF6	875B	EEF6	ⅷ	Ⅷ	ⅷ
+EEF7	875C	EEF7	ⅸ	Ⅸ	ⅸ
+EEF8	875D	EEF8	ⅹ	Ⅹ	ⅹ
+FA40	FA4A	FA40	ⅰ	Ⅰ	ⅰ
+FA41	FA4B	FA41	ⅱ	Ⅱ	ⅱ
+FA42	FA4C	FA42	ⅲ	Ⅲ	ⅲ
+FA43	FA4D	FA43	ⅳ	Ⅳ	ⅳ
+FA44	FA4E	FA44	ⅴ	Ⅴ	ⅴ
+FA45	FA4F	FA45	ⅵ	Ⅵ	ⅵ
+FA46	FA50	FA46	ⅶ	Ⅶ	ⅶ
+FA47	FA51	FA47		Ⅱ	ⅱ
+FA4C	FA4C	FA42	Ⅲ	Ⅲ	ⅲ
+FA4D	FA4D	FA43	Ⅳ	Ⅳ	ⅳ
+FA4E	FA4E	FA44	Ⅴ	Ⅴ	ⅴ
+FA4F	FA4F	FA45	Ⅵ		ⅹ
+DROP TABLE t1;
+#
+# End of 5.5 tests
+#

=== modified file 'mysql-test/r/ctype_eucjpms.result' (properties changed: +x to -x)
--- a/mysql-test/r/ctype_eucjpms.result	2008-02-04 07:10:40 +0000
+++ b/mysql-test/r/ctype_eucjpms.result	2009-11-27 07:42:35 +0000
@@ -9859,3 +9859,480 @@ hex(convert(_eucjpms 0xA5FE41 using ucs2
 select hex(convert(_eucjpms 0x8FABF841 using ucs2));
 hex(convert(_eucjpms 0x8FABF841 using ucs2))
 003F0041
+#
+# Start of 5.5 tests
+#
+#
+# Testing WL#4583 Case conversion in Asian character sets 
+#
+SET NAMES utf8;
+SET collation_connection=eucjpms_japanese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+CREATE TABLE t1 AS SELECT 'XXXXXX' AS code, ' ' AS a LIMIT 0;
+INSERT INTO t1 (code) SELECT concat(hi, lo)
+FROM hi, lo
+WHERE (hi BETWEEN 'A1' AND 'FE')
+AND   (lo BETWEEN 'A1' AND 'FE')
+ORDER BY hi, lo;
+INSERT INTO t1 (code) SELECT concat('8F', hi, lo)
+FROM hi, lo
+WHERE
+(hi BETWEEN 'A1' AND 'FE')
+AND (lo BETWEEN 'A1' AND 'FE')
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `code` varchar(6) CHARACTER SET eucjpms NOT NULL DEFAULT '',
+  `a` varchar(1) CHARACTER SET eucjpms NOT NULL DEFAULT ''
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+17672
+UPDATE t1 SET a=unhex(code);
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a)) ORDER BY code;
+code	hex(upper(a))	hex(lower(a))	a	upper(a)	lower(a)
+8FA6E1	8FA6E1	8FA6F1	Ά	Ά	ά
+8FA6E2	8FA6E2	8FA6F2	Έ	Έ	έ
+8FA6E3	8FA6E3	8FA6F3	Ή	Ή	ή
+8FA6E4	8FA6E4	8FA6F4	Ί	Ί	ί
+8FA6E5	8FA6E5	8FA6F5	Ϊ	Ϊ	ϊ
+8FA6E7	8FA6E7	8FA6F7	Ό	Ό	ό
+8FA6E9	8FA6E9	8FA6F9	Ύ	Ύ	ύ
+8FA6EA	8FA6EA	8FA6FA	Ϋ	Ϋ	ϋ
+8FA6EC	8FA6EC	8FA6FC	6F2	έ	Έ	έ
+8FA6F3	8FA6E3	8FA6F3	ή	Ή	ή
+8FA6F4	8FA6E4	8FA6F4	ί	Ί	ί
+8FA6F5	8FA6E5	8FA6F5	ϊ	Ϊ	ϊ
+8FA6F7	8FA6E7	8FA6F7	ό	Ό	ό
+8FA6F8	A6B2	8FA6F8	ς	Σ	ς
+8FA6F9	8FA6E9	8FA6F9	ύ	Ύ	ύ
+8FA6FA	8FA6EA	8FA6FA	ϋ	Ϋ	ϋ
+8FA6FC	8FA6EC	8FA6FC	ώ	Ώ	ώ
+8FA7C2	8FA7C2	8FA7F2	Ђ		Є	Є	є
+8FA7C5	8FA7C5	8FA7F5	Ѕ	Ѕ	ѕ
+8FA7C6	8FA7C6	8FA7F6	І	І	і
+8FA7C7	8FA7C7	8FA7F7	Ї	Ї	ї
+8FA7C8	8FA7C8	8FA7F8	Ј	Ј	ј
+8FA7C9	8FA7C9	8FA7F9	Љ	Љ	љ
+8FA7CA	8FA7CA	8FA7FA	Њ	Њ	њ
+8FA7CB	8FA7CB	8FA7FB	Ћ	Ћ	ћ
+8FA7CC	8FA7CC	8FA7FC	Ќ	Ќ	ќ
+8FA7CD	8FA7CD	8FA7FD	Ў	Ў	ў
+8FA7CE	8FA7CE	8FA7FE	Џ	Џ	џ
+8FA7F2	8FA7C2	8FA7F2	ђ	Ђ	ђ
+8FA7F3	8FA7C3	8FA7F3	ѓ	Ѓ	ѓ
+8FA7F4	8FA7C4	8FA7F4	є	Є	є
+8FA7F5	8FA7C5	8FA7F5	ѕ	Ѕ	ѕ
+8FA7F6	8FA7C6	8FA7F6	і	І	і
+8FA7F7	8FA7C7	8FA7F7	ї	Ї	ї
+8FA7F8	8FA7C8	8FA7F8	ј	Ј	ј
+8FA7F9	8FA7C9	8FA7F9	љ	Љ	љ
+8FA7FA	8FA7CA	8FA7FA	њ	Њ	њ
+8FA7FB	8FA7CB	8FA7FB	ћ	Ћ	ћ
+8FA7FC	8FA7CC	8FA7FC	ќ	Ќ	ќ
+8FA7FD	8FA7CD	8FA7FD	9C1	Æ	Æ	æ
+8FA9A2	8FA9A2	8FA9C2	Đ	Đ	đ
+8FA9A4	8FA9A4	8FA9C4	Ħ	Ħ	ħ
+8FA9A6	8FA9A6	8FA9C6	IJ	IJ	ij
+8FA9A8	8FA9A8	8FA9C8	Ł	Ł	ł
+8FA9A9	8FA9A9	8FA9C9	Ŀ	Ŀ	ŀ
+8FA9AB	8FA9AB	8FA9CB	Ŋ	Ŋ	ŋ
+8FA9AC	8FA9AC	8FA9CC	Ø	Ø		Ŧ	ŧ
+8FA9B0	8FA9B0	8FA9D0	Þ	Þ	þ
+8FA9C1	8FA9A1	8FA9C1	æ	Æ	æ
+8FA9C2	8FA9A2	8FA9C2	đ	Đ	đ
+8FA9C4	8FA9A4	8FA9C4	ħ	Ħ	ħ
+8FA9C5	49	8FA9C5	ı	I	ı
+8FA9C6	8FA9A6	8FA9C6	ij	IJ	ij
+8FA9C8	8FA9A8	8FA9C8	ł	Ł	ł
+8FA9C9	8FA9A9	8FA9C9	ŀ	Ŀ	ŀ
+8FA9CB	8FA9AB	8FA9CB	ŋ	Ŋ	ŋ
+8FA9CC	8FA9AC	8FA9CC	ø	Ø	ø
+8FA9CD	8FA9AD	8FA9CD	œ	Œ	œ
+8FA9CF	8FA9AF	8FA9CF	ŧ	Ŧ	ŧ
+8FA9D0	8FA9B0	8FA9D0	þ	Þ	þ
+8FAAA1	8FAAA1	8FABA1	Á	Á	á
+8FAAA2	8FAAA2	8FABA2	À	À	à
+8FAAA3	8FAAA3	8FABA3	Ä	Ä	ä
+8FAAA4	8FAAA4	8FABA4	Â	Â	â
+8FAAA5	8FAAA5	8FABA5	Ă	Ă	ă
+8FAAA6	8FAAA6	8FABA6	Ǎ	Ǎ	ǎ
+8FAAA7	8FAAA7	8FABA7	Ā	Ā	ā
+8FAAA8	8FAAA8	8FABA8	Ą	Ą	ą
+8FAAA9	8FAAA9	8FABA9	Å	Å	å
+8FAAAA	8FAAAA	8FABAA	Ã	Ã	ã
+8FAAAB	8FAAAB	8FABAB	Ć		Č	Č	č
+8FAAAE	8FAAAE	8FABAE	Ç	Ç	ç
+8FAAAF	8FAAAF	8FABAF	Ċ	Ċ	ċ
+8FAAB0	8FAAB0	8FABB0	Ď	Ď	ď
+8FAAB1	8FAAB1	8FABB1	É	É	é
+8FAAB2	8FAAB2	8FABB2	È	È	è
+8FAAB3	8FAAB3	8FABB3	Ë	Ë	ë
+8FAAB4	8FAAB4	8FABB4	Ê	Ê	ê
+8FAAB5	8FAAB5	8FABB5	Ě	Ě	ě
+8FAAB6	8FAAB6	8FABB6	Ė	Ė	ė
+8FAAB7	8FAAB7	8FABB7	Ē	Ē	ē
+8FAAB8	8FAAB8	8FABB8	Ę	Ę	ę
+8FAABA	8FAABA	8FABBA	Ĝ	Ĝ	ĝ
+8FAABB	8FAABB	8FABBB	Ğ	Ğ	ğ
+8FAABD	8FAABD	8FABBD	Ġ	Ġ	ġ
+8FAABE	8FAABE	8FABBE	Ĥ	Ĥ	ĥ
+8FAABF	8FAABF	8FABBF	Í	Í	í
+8FAAC0	8FAAC0	8FABC0	Ì	Ì	ì
+8FAAC1	8FAAC1	8FABC1	Ï	Ï	ï
+8FAAC2	8FAAC2	8FABC2	Î	Î	î
+8FAAC3	8FAAC3	8FABC3	Ǐ	Ǐ	ǐ
+8FAAC4	8FAAC4	69	İ	İ	i
+8FAAC5	8FAAC5	8FABC5	Ī	Ī	ī
+8FAAC6	8FAAC6	8FABC6	Į	Į	į
+8FAAC7	8FAAC7	8FABC7	BC9	Ķ	Ķ	ķ
+8FAACA	8FAACA	8FABCA	Ĺ	Ĺ	ĺ
+8FAACB	8FAACB	8FABCB	Ľ	Ľ	ľ
+8FAACC	8FAACC	8FABCC	Ļ	Ļ	ļ
+8FAACD	8FAACD	8FABCD	Ń	Ń	ń
+8FAACE	8FAACE	8FABCE	Ň	Ň	ň
+8FAACF	8FAACF	8FABCF	Ņ	Ņ	ņ
+8FAAD0	8FAAD0	8FABD0	Ñ	Ñ		Ò	ò
+8FAAD3	8FAAD3	8FABD3	Ö	Ö	ö
+8FAAD4	8FAAD4	8FABD4	Ô	Ô	ô
+8FAAD5	8FAAD5	8FABD5	Ǒ	Ǒ	ǒ
+8FAAD6	8FAAD6	8FABD6	Ő	Ő	ő
+8FAAD7	8FAAD7	8FABD7	Ō	Ō	ō
+8FAAD8	8FAAD8	8FABD8	Õ	Õ	õ
+8FAAD9	8FAAD9	8FABD9	Ŕ	Ŕ	ŕ
+8FAADA	8FAADA	8FABDA	Ř	Ř	ř
+8FAADB	8FAADB	8FABDB	Ŗ	Ŗ	ŗ
+8FAADC	8FAADC	8FABDC	Ś	Ś	ś
+8FAADD	8FAADD	8FABDD	Ŝ	Ŝ	ŝ
+8FAADE	8FAADE	8FABDE	Š	Š	š
+8FAADF	8FAADF	8FABDF	Ş	Ş	ş
+8FAAE0	8FAAE0	8FABE0	Ť	Ť	ť
+8FAAE1	8FAAE1	8FABE1	Ţ	Ţ	ţ
+8FAAE2	8FAAE2	8FABE2	Ú	Ú	ú
+8FAAE3	8FAAE3	8FABE3	Ù	Ù	ù
+8FAAE4	8FAAE4	8FABE4	Ü	Ü	ü
+8FAAE5	8FAAE5	8FABE5	Û	Û	û
+8FAAE6	8FAAE6	8FABE6	Ŭ	Ŭ	ŭ
+8FAAE7	8FAAE7	8FABE7	Ǔ	Ǔ	ǔ
+8FAAE8	8FAAE8	8FABE8	Ű		Ų	Ų	ų
+8FAAEB	8FAAEB	8FABEB	Ů	Ů	ů
+8FAAEC	8FAAEC	8FABEC	Ũ	Ũ	ũ
+8FAAED	8FAAED	8FABED	Ǘ	Ǘ	ǘ
+8FAAEE	8FAAEE	8FABEE	Ǜ	Ǜ	ǜ
+8FAAEF	8FAAEF	8FABEF	Ǚ	Ǚ	ǚ
+8FAAF0	8FAAF0	8FABF0	Ǖ	Ǖ	ǖ
+8FAAF1	8FAAF1	8FABF1	Ŵ	Ŵ	ŵ
+8FAAF2	8FAAF2	8FABF2	Ý	Ý	ý
+8FAAF3	8FAAF3	8FABF3	Ÿ	Ÿ	ÿ
+8FAAF4	8FAAF4	8FABF4	Ŷ	Ŷ	ŷ
+8FAAF5	8FAAF5	8FABF5	Ź	Ź	ź
+8FAAF6	8FAAF6	8FABF6	Ž	Ž	ž
+8FAAF7	8FAAF7	8FABF7	Ż	Ż	ż
+8FABA1	8FAAA1	8FABA1	á	Á	á
+8FABA2	8FAAA2	8FABA2	à	À	à
+8FABA3	8FAAA3	8FABA3	ä	Ä	ä
+8FABA4	8FAAA4	8FABA4	â	Â	â
+8FABA5	8FAAA5	8FABA5	ă	Ă	ă
+8FABA6	8FAAA6	8FABA6	ǎ	Ǎ	ǎ
+8FABA7	8FAAA7	8FABA7	ā	Ā	ā
+8FABA8	8FAAA8	8FABA8	ą	Ą	ą
+8FABA9	8FAAA9	8FABA9	BAB	ć	Ć	ć
+8FABAC	8FAAAC	8FABAC	ĉ	Ĉ	ĉ
+8FABAD	8FAAAD	8FABAD	č	Č	č
+8FABAE	8FAAAE	8FABAE	ç	Ç	ç
+8FABAF	8FAAAF	8FABAF	ċ	Ċ	ċ
+8FABB0	8FAAB0	8FABB0	ď	Ď	ď
+8FABB1	8FAAB1	8FABB1	é	É	é
+8FABB2	8FAAB2	8FABB2	è	È		Ê	ê
+8FABB5	8FAAB5	8FABB5	ě	Ě	ě
+8FABB6	8FAAB6	8FABB6	ė	Ė	ė
+8FABB7	8FAAB7	8FABB7	ē	Ē	ē
+8FABB8	8FAAB8	8FABB8	ę	Ę	ę
+8FABBA	8FAABA	8FABBA	ĝ	Ĝ	ĝ
+8FABBB	8FAABB	8FABBB	ğ	Ğ	ğ
+8FABBD	8FAABD	8FABBD	ġ	Ġ	ġ
+8FABBE	8FAABE	8FABBE	ĥ	Ĥ	ĥ
+8FABBF	8FAABF	8FABBF	í	Í	í
+8FABC0	8FAAC0	8FABC0	ì	Ì	ì
+8FABC1	8FAAC1	8FABC1	ï	Ï	ï
+8FABC2	8FAAC2	8FABC2	î	Î	î
+8FABC3	8FAAC3	8FABC3	ǐ	Ǐ	ǐ
+8FABC5	8FAAC5	8FABC5	ī	Ī	ī
+8FABC6	8FAAC6	8FABC6	į	Į	į
+8FABC7	8FAAC7	8FABC7	ĩ	Ĩ	ĩ
+8FABC8	8FAAC8	8FABC8	ĵ	Ĵ	ĵ
+8FABC9	8FAAC9	8FABC9	ķ	Ķ	ķ
+8FABCA	8FAACA	8FABCA	ĺ	Ĺ	ĺ
+8FABCB	8FAACB	8FABCB	ľ	Ľ	ľ
+8FABCC	8FAACC	8FABCC	ļ	Ļ	ļ
+8FABCD	8FAACD	8FABCD	ń		ņ	Ņ	ņ
+8FABD0	8FAAD0	8FABD0	ñ	Ñ	ñ
+8FABD1	8FAAD1	8FABD1	ó	Ó	ó
+8FABD2	8FAAD2	8FABD2	ò	Ò	ò
+8FABD3	8FAAD3	8FABD3	ö	Ö	ö
+8FABD4	8FAAD4	8FABD4	ô	Ô	ô
+8FABD5	8FAAD5	8FABD5	ǒ	Ǒ	ǒ
+8FABD6	8FAAD6	8FABD6	ő	Ő	ő
+8FABD7	8FAAD7	8FABD7	ō	Ō	ō
+8FABD8	8FAAD8	8FABD8	õ	Õ	õ
+8FABD9	8FAAD9	8FABD9	ŕ	Ŕ	ŕ
+8FABDA	8FAADA	8FABDA	ř	Ř	ř
+8FABDB	8FAADB	8FABDB	ŗ	Ŗ	ŗ
+8FABDC	8FAADC	8FABDC	ś	Ś	ś
+8FABDD	8FAADD	8FABDD	ŝ	Ŝ	ŝ
+8FABDE	8FAADE	8FABDE	š	Š	š
+8FABDF	8FAADF	8FABDF	ş	Ş	ş
+8FABE0	8FAAE0	8FABE0	ť	Ť	ť
+8FABE1	8FAAE1	8FABE1	ţ	Ţ	ţ
+8FABE2	8FAAE2	8FABE2	ú	Ú	ú
+8FABE3	8FAAE3	8FABE3	ù	Ù	ù
+8FABE4	8FAAE4	8FABE4	ü	Ü	ü
+8FABE5	8FAAE5	8FABE5	BE7	ǔ	Ǔ	ǔ
+8FABE8	8FAAE8	8FABE8	ű	Ű	ű
+8FABE9	8FAAE9	8FABE9	ū	Ū	ū
+8FABEA	8FAAEA	8FABEA	ų	Ų	ų
+8FABEB	8FAAEB	8FABEB	ů	Ů	ů
+8FABEC	8FAAEC	8FABEC	ũ	Ũ	ũ
+8FABED	8FAAED	8FABED	ǘ	Ǘ	ǘ
+8FABEE	8FAAEE	8FABEE	ǜ	Ǜ		Ǖ	ǖ
+8FABF1	8FAAF1	8FABF1	ŵ	Ŵ	ŵ
+8FABF2	8FAAF2	8FABF2	ý	Ý	ý
+8FABF3	8FAAF3	8FABF3	ÿ	Ÿ	ÿ
+8FABF4	8FAAF4	8FABF4	ŷ	Ŷ	ŷ
+8FABF5	8FAAF5	8FABF5	ź	Ź	ź
+8FABF6	8FAAF6	8FABF6	ž	Ž	ž
+8FABF7	8FAAF7	8FABF7	ż	Ż	ż
+8FF3F3	8FF3FD	8FF3F3	ⅰ	Ⅰ	ⅰ
+8FF3F4	8FF3FE	8FF3F4	ⅱ	FF3F6	ⅳ	Ⅳ	ⅳ
+8FF3F7	8FF4A3	8FF3F7	ⅴ	Ⅴ	ⅴ
+8FF3F8	8FF4A4	8FF3F8	ⅵ	Ⅵ	ⅵ
+8FF3F9	8FF4A5	8FF3F9	ⅶ	F3FB	ⅸ	Ⅸ	ⅸ
+8FF3FC	8FF4A8	8FF3FC	ⅹ	Ⅹ	ⅹ
+8FF3FD	8FF3FD	8FF3F3	Ⅰ	Ⅰ	ⅰ
+8FF3FE	8FF3FE	8FF3F4	Ⅱ	Ⅱ	ⅱ
+8FF4A1	8FF4A1	8FF3F5	Ⅲ	Ⅲ	ⅲ
+8FF4A2	8FF4A2	8FF3F6	Ⅳ	Ⅳ	ⅳ
+8FF4A3	8FF4A3	8FF3F7	Ⅴ	Ⅴ	ⅴ
+8FF4A4	8FF4A4	8FF3F8	Ⅵ	Ⅵ	ⅵ
+8FF4A5	8FF4A5	8FF3F9	Ⅶ	Ⅶ	ⅶ
+8FF4A6	8FF4A6	8FF3FA	Ⅷ	Ⅷ	ⅷ
+8FF4A7	8FF4A7	8FF3FB	Ⅸ	Ⅸ	ⅸ
+8FF4A8	8FF4A8	8FF3FC	Ⅹ	Ⅹ	ⅹ
+A2F2	A2F2	8FABA9	Å	Å	å
+A3C1	A3C1	A3E1	A	A	a
+A3C2	A3C2	A3E2	B	B	b
+A3C3	A3C3	A3E3	C	C	c
+A3C4	A3C4	A3E4	D	D	d
+A3C5	A3C5	A3E5	E	E	e
+A3C6	A3C6	A3E6	F	F	f
+A3C7	A3C7	A3E7	G	G	g
+A3C8	A3C8	A3E8	H	H	h
+A3C9	A3C9	A3E9	I	I	i
+A3CA	A3CA	A3EA	J	J	j
+A3CB	A3CB	A3EB	K	K	k
+A3CC	A3CC	A3EC	L	L	l
+A3CD	A3CD	A3ED	M	M	m
+A3CE	A3CE	A3EE	N	N	n
+A3CF	A3CF	A3EF	O	O	o
+A3D0	A3D0	A3F0	P	P	p
+A3D1	A3D1	A3F1	Q	Q	q
+A3D2	A3D2	A3F2	R	R	r
+A3D3	A3D3	A3F3	S	S	s
+A3D4	A3D4	A3F4		X	x
+A3D9	A3D9	A3F9	Y	Y	y
+A3DA	A3DA	A3FA	Z	Z	z
+A3E1	A3C1	A3E1	a	A	a
+A3E2	A3C2	A3E2	b		f
+A3E7	A3C7	A3E7	g	G	g
+A3E8	A3C8	A3E8	h	H	h
+A3E9	A3C9	A3E9	i	I	i
+A3EA	A3CA	A3EA	j	J	
+A3EF	A3CF	A3EF	o	O	o
+A3F0	A3D0	A3F0	p	P	p
+A3F1	A3D1	A3F1	q	Q	q
+A3F2	A3D2	A3F2	r	R	r
+A3F3	A3D3	A3F3	s	S	s
+A3F4	A3D4	A3F4	t	T	t
+A3F5	A3D5	A3F5	u	U	u
+A3F6	A3D6	A3F6	v	V	v
+A3F7	A3D7	A3F7	w	W	w
+A3F8	A3D8	A3F8	x	X	x
+A3F9	A3D9	A3F9	y	Y	y
+A3FA	A3DA	A3FA	z	Z	z
+A6A1	A6A1	A6C1	Α	Α	α
+A6A2	A6A2	A6C2	Β	Β	β
+A6A3	A6A3	A6C3	Γ	Γ	γ
+A6A4	A6A4	A6C4	Δ	Δ	δ
+A6A5	A6A5	A6C5	Ε	Ε	ε
+A6A6	A6A6	A6C6	Ζ	Ζ	ζ
+A6A7	A6A7	A6C7	Η	Η	η
+A6A8	A6A8	A6C8	Θ	Θ	θ
+A6A9	A6A9	A6C9	Ι	Ι	ι
+A6AA	A6AA	A6CA	Κ	Κ	κ
+A6AB	A6AB	A6CB	Λ	Λ	λ
+A6AC	A6AC	A6CC	Μ	Μ	μ
+A6AD	A6AD	A6CD	Ν	Ν	ν
+A6AE	A6AE	A6CE	Ξ	Ξ	ξ
+A6AF	A6AF	A6CF	Ο	Ο	ο
+A6B0	A6B0	A6D0	Π	Π	π
+A6B1	A6B1	A6D1	Ρ	Ρ	ρ
+A6B2	A6B2	A6D2	Σ	Σ	σ
+A6B3	A6B3	A6D3	Τ	Τ	τ
+A6B4	A6B4	A6D4	Υ	Υ	υ
+A6B5	A6B5	A6D5	Φ	Φ	φ
+A6B6	A6B6	A6D6	Χ	Χ	χ
+A6B7	A6B7	A6D7	Ψ	Ψ	ψ
+A6B8	A6B8	A6D8	Ω	Ω	ω
+A6C1	A6A1	A6C1	α	Α	α
+A6C2	A6A2	A6C2	β	Β	β
+A6C3	A6A3	A6C3	γ	Γ	γ
+A6C4	A6A4	A6C4	δ	Δ	δ
+A6C5	A6A5	A6C5	ε	Ε	ε
+A6C6	A6A6	A6C6	ζ	Ζ	ζ
+A6C7	A6A7	A6C7	η	Η	η
+A6C8	A6A8	A6C8	θ	Θ	θ
+A6C9	A6A9	A6C9	ι	Ι	ι
+A6CA	A6AA	A6CA	κ	Κ	κ
+A6CB	A6AB	A6CB	λ	Λ	λ
+A6CC	A6AC	A6CC	μ	Μ	μ
+A6CD	A6AD	A6CD	
+A6D0	A6B0	A6D0	π	Π	π
+A6D1	A6B1	A6D1	ρ	Ρ	ρ
+A6D2	A6B2	A6D2	σ	Σ	σ
+A6D3	A6B3	A6D3	τ	Τ	τ
+A6D4	A6B4	A6D4	υ	Υ	υ
+A6D5	A6B5	A6D5	φ	Φ	φ
+A6D6	A6B6	A6D6	χ	7A1	A7A1	A7D1	А	А	а
+A7A2	A7A2	A7D2	Б	Б	б
+A7A3	A7A3	A7D3	В	В	в
+A7A4	A7A4	A7D4	Г	Г	г
+A7A5	A7A5	A7D5	Д	Д	д
+A7A6	A7A6	A7D6	Е	Е	е
+A7A7	A7A7	A7D7	Ё	Ё		A7AA	A7DA	И	И	и
+A7AB	A7AB	A7DB	Й	Й	й
+A7AC	A7AC	A7DC	К	К	к
+A7AD	A7AD	A7DD	Л	Л	л
+A7AE	A7AE	A7DE	М	М	м
+A7AF	A7AF	A7DF	Н	Н	н
+A7B0	A7B0	A7E0	О	О	о
+A7B1	A7B1	A7E1	П	П	п
+A7B2	A7B2	A7E2	Р	Р	р
+A7B3	A7B3	A7E3	С	С	с
+A7B4	A7B4	A7E4	Т	Т	т
+A7B5	A7B5	A7E5	У	У	у
+A7B6	A7B6	A7E6	Ф	Ф	ф
+A7B7	A7B7	A7E7	Х	Х	х
+A7B8	A7B8	A7E8	Ц	Ц	ц
+A7B9	A7B9	A7E9	Ч	Ч	ч
+A7BA	A7BA	A7EA	Ш	Ш	ш
+A7BB	A7BB	A7EB	Щ	Щ	щ
+A7BC	A7BC	A7EC	Ъ	Ъ	ъ
+A7BD	A7BD	A7ED	Ы	Ы	ы
+A7BE	A7BE	A7EE	Ь	Ь	ь
+A7BF	A7BF	A7EF	Э	Э	э
+A7C0	A7C0	A7F0	Ю	Ю	ю
+A7C1	A7C1	A7F1	Я	Я	я
+A7D1	A7A1	A7D1	а	А	а
+A7D2	A7A2	A7D2	б	Б	б
+A7D3	A7A3	A7D3	в	В	в
+A7D4	A7A4	A7D4	г	Г	г
+A7D5	A7A5	A7D5	д	Д	д
+A7D6	A7A6	A7D6	е	Е	е
+A7D7	A7A7	A7D7	ё	Ё	ё
+A7D8	A7A8	A7D8	ж	Ж	ж
+A7D9	A7A9	A7D9	з	З	з
+A7DA	A7AA	A7DA	и	И	и
+A7DB	A7AB	A7DB	й	Й	й
+A7DC	A7AC	A7DC	к	К	к
+A7DD	A7AD	A7DD	
+A7E0	A7B0	A7E0	о	О	о
+A7E1	A7B1	A7E1	п	П	п
+A7E2	A7B2	A7E2	р	Р	р
+A7E3	A7B3	A7E3	с	С	с
+A7E4	A7B4	A7E4	т	Т	т
+A7E5	A7B5	A7E5	у	У	у
+A7E6	A7B6	A7E6	ф	7E9	A7B9	A7E9	ч	Ч	ч
+A7EA	A7BA	A7EA	ш	Ш	ш
+A7EB	A7BB	A7EB	щ	Щ	щ
+A7EC	A7BC	A7EC	ъ	Ъ	ъ
+A7ED	A7BD	A7ED	ы	Ы	ы
+A7EE	A7BE	A7EE	ь	Ь	ь
+A7EF	A7BF	A7EF	э	Э		ADB5	8FF3F3	Ⅰ	Ⅰ	ⅰ
+ADB6	ADB6	8FF3F4	Ⅱ	Ⅱ	ⅱ
+ADB7	ADB7	8FF3F5	Ⅲ	Ⅲ	ⅲ
+ADB8	ADB8	8FF3F6	Ⅳ	Ⅳ	ⅳ
+ADB9	ADB9	8FF3F7	Ⅴ	Ⅴ	ⅴ
+ADBA	ADBA	8FF3F8	Ⅵ	Ⅵ	ⅵ
+ADBB	ADBB	8FF3F9	Ⅶ	Ⅶ	ⅶ
+ADBC	ADBC	8FF3FA	Ⅷ	modified file 'mysql-test/r/ctype_euckr.result'
--- a/mysql-test/r/ctype_euckr.result	2009-07-24 06:27:23 +0000
+++ b/mysql-test/r/ctype_euckr.result	2009-11-27 07:42:35 +0000
@@ -24255,3 +24255,251 @@ FDFD	FDFD	E7BEB2	FDFD
 FDFE	FDFE	E8A9B0	FDFE
 DROP TABLE t1, t2;
 End of 5.4 tests
+#
+# Start of 5.5 tests
+#
+#
+# Testing WL#4583 Case conversion in Asian character sets 
+#
+SET NAMES utf8;
+SET collation_connection=euckr_korean_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE
+((hi BETWEEN '81' AND 'FE'))
+AND ((lo BETWEEN '41' AND '5A') OR (lo BETWEEN '61' AND '7A') OR (lo BETWEEN '81' AND 'FE'))
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `code` varchar(8) DEFAULT NULL,
+  `a` varchar(1) CHARACTER SET euckr NOT NULL DEFAULT ''
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+22428
+UPDATE t1 SET a=unhex(code);
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+code	hex(upper(a))	hex(lower(a))	a	upper(a)	lower(a)
+A3C1	A3C1	A3E1	A	A	a
+A3C2	A3C2	A3E2	B	B	b
+A3C3	A3C3	A3E3	C	C	c
+A3C4	A3C4	A3E4	D	D	d
+A3C5	A3C5	A3E5	E	E	e
+A3C6	A3C6	A3E6	F	F	f
+A3C7	A3C7	A3E7	G	G	g
+A3C8	A3C8	A3E8	H	H	h
+A3C9	A3C9	A3E9	I	I	i
+A3CA	A3CA	A3EA	J	J	j
+A3CB	A3CB	A3EB	K	K	k
+A3CC	A3CC	A3EC	L	L	l
+A3CD	A3CD	A3ED	M	M	m
+A3CE	A3CE	A3EE	N	N	n
+A3CF	A3CF	A3EF	O	O	o
+A3D0	A3D0	A3F0		T	t
+A3D5	A3D5	A3F5	U	U	u
+A3D6	A3D6	A3F6	V	V	v
+A3D7	A3D7	A3F7	W	W	w
+A3D8	A3D8	A3F8	X		b
+A3E3	A3C3	A3E3	c	C	c
+A3E4	A3C4	A3E4	d	D	d
+A3E5	A3C5	A3E5	e	E	e
+A3E6	A3C6	A3E6	f	F	
+A3EB	A3CB	A3EB	k	K	k
+A3EC	A3CC	A3EC	l	L	l
+A3ED	A3CD	A3ED	m	M	m
+A3EE	A3CE	A3EE	n	N	n
+A3EF	A3CF	A3EF	o	O	o
+A3F0	A3D0	A3F0	p	P	p
+A3F1	A3D1	A3F1	q	Q	q
+A3F2	A3D2	A3F2	r	R	r
+A3F3	A3D3	A3F3	s	S	s
+A3F4	A3D4	A3F4	t	T	t
+A3F5	A3D5	A3F5	u	U	u
+A3F6	A3D6	A3F6	v	V	v
+A3F7	A3D7	A3F7	w	W	w
+A3F8	A3D8	A3F8	x	X	x
+A3F9	A3D9	A3F9	y	Y	y
+A3FA	A3DA	A3FA	z	Z	z
+A5A1	A5B0	A5A1	ⅰ	Ⅰ	ⅰ
+A5A2	A5B1	A5A2	ⅱ	Ⅱ	ⅱ
+A5A3	A5B2	A5A3	ⅲ	Ⅲ	ⅲ
+A5A4	A5B3	A5A4	ⅳ	Ⅳ	ⅳ
+A5A5	A5B4	A5A5	ⅴ	Ⅴ	ⅴ
+A5A6	A5B5	A5A6	ⅵ	Ⅵ	ⅵ
+A5A7	A5B6	A5A7	ⅶ	Ⅶ	ⅶ
+A5A8	A5B7	A5A8	ⅷ	Ⅷ	ⅷ
+A5A9	A5B8	A5A9	ⅸ	Ⅸ	ⅸ
+A5AA	A5B9	A5AA	ⅹ	Ⅹ	ⅹ
+A5B0	A5B0	A5A1	Ⅰ	Ⅰ	ⅰ
+A5B1	A5B1	A5A2	Ⅱ	Ⅱ	ⅱ
+A5B2	A5B2	A5A3	Ⅲ	Ⅲ	ⅲ
+A5B3	A5B3	A5A4	Ⅳ	Ⅳ	ⅳ
+A5B4	A5B4	A5A5	Ⅴ	Ⅴ	ⅴ
+A5B5	A5B5	A5A6	Ⅵ	Ⅵ	ⅵ
+A5B6	A5B6	A5A7	Ⅶ	Ⅶ	ⅶ
+A5B7	A5B7	A5A8	Ⅷ	Ⅷ	ⅷ
+A5B8	A5B8	A5A9	Ⅸ	Ⅸ	ⅸ
+A5B9	A5B9	A5AA	Ⅹ	Ⅹ	ⅹ
+A5C1	A5C1	A5E1	
+A5C4	A5C4	A5E4	Δ	Δ	δ
+A5C5	A5C5	A5E5	Ε	Ε	ε
+A5C6	A5C6	A5E6	Ζ	Ζ	ζ
+A5C7	A5C7	A5E7	Η	Η	η
+A5C8	A5C8	A5E8	Θ	Θ	θ
+A5C9	A5C9	A5E9	Ι	Ι	ι
+A5CA	A5CA	A5EA	Κ	5CD	A5CD	A5ED	Ν	Ν	ν
+A5CE	A5CE	A5EE	Ξ	Ξ	ξ
+A5CF	A5CF	A5EF	Ο	Ο	ο
+A5D0	A5D0	A5F0	Π	Π	π
+A5D1	A5D1	A5F1	Ρ	Ρ	ρ
+A5D2	A5D2	A5F2	Σ	Σ	σ
+A5D3	A5D3	A5F3	Τ	Τ		A5D6	A5F6	Χ	Χ	χ
+A5D7	A5D7	A5F7	Ψ	Ψ	ψ
+A5D8	A5D8	A5F8	Ω	Ω	ω
+A5E1	A5C1	A5E1	α	Α	α
+A5E2	A5C2	A5E2	β	Β	β
+A5E3	A5C3	A5E3	γ	Γ	γ
+A5E4	A5C4	A5E4	δ	Δ	δ
+A5E5	A5C5	A5E5	ε	Ε	ε
+A5E6	A5C6	A5E6	ζ	Ζ	ζ
+A5E7	A5C7	A5E7	η	Η	η
+A5E8	A5C8	A5E8	θ	Θ	θ
+A5E9	A5C9	A5E9	ι	Ι	ι
+A5EA	A5CA	A5EA	κ	Κ	κ
+A5EB	A5CB	A5EB	λ	Λ	λ
+A5EC	A5CC	A5EC	μ	Μ	μ
+A5ED	A5CD	A5ED	ν	Ν	ν
+A5EE	A5CE	A5EE	ξ	Ξ	ξ
+A5EF	A5CF	A5EF	ο	Ο	ο
+A5F0	A5D0	A5F0	π	Π	π
+A5F1	A5D1	A5F1	ρ	Ρ	ρ
+A5F2	A5D2	A5F2	σ	Σ	σ
+A5F3	A5D3	A5F3	τ	Τ	τ
+A5F4	A5D4	A5F4	υ	Υ	υ
+A5F5	A5D5	A5F5	φ	Φ	φ
+A5F6	A5D6	A5F6	χ	Χ	χ
+A5F7	A5D7	A5F7	ψ	Ψ	ψ
+A5F8	A5D8	A5F8	ω	Ω	ω
+A7D9	A7D9	A5F8	Ω	Ω	ω
+A8A1	A8A1	A9A1	Æ	Æ	æ
+A8A2	A8A2	A9A3	Ð	Ð	ð
+A8A4	A8A4	A9A4	Ħ	Ħ	ħ
+A8A6	A8A6	A9A6	IJ	IJ	ij
+A8A8	A8A8	A9A8	Ŀ	Ŀ	ŀ
+A8A9	A8A9	A9A9	Ł	Ł	ł
+A8AA	A8AA	A9AA	Ø	Ø	ø
+A8AB	A8AB	A9AB	Œ	Œ	œ
+A8AD	A8AD	A9AD	Þ	Þ	þ
+A8AE	A8AE	A9AE	Ŧ	Ŧ	ŧ
+A8AF	A8AF	A9AF	Ŋ	Ŋ	ŋ
+A9A1	A8A1	A9A1	æ	Æ	æ
+A9A3	A8A2	A9A3	ð	Ð	ð
+A9A4	A8A4	A9A4	ħ	Ħ	ħ
+A9A5	49	A9A5	ı	I	ı
+A9A6	A8A6	A9A6	ij	IJ	ij
+A9A8	A8A8	A9A8	ŀ	Ŀ	ŀ
+A9A9	A8A9	A9A9	ł	Ł	ł
+A9AA	A8AA	A9AA	ø	Ø	ø
+A9AB	A8AB	A9AB	œ	Œ	œ
+A9AD	A8AD	A9AD	þ	Þ	þ
+A9AE	A8AE	A9AE	ŧ	Ŧ	ŧ
+A9AF	A8AF	A9AF	ŋ	Ŋ	ŋ
+ACA1	ACA1	ACD1	А	А	а
+ACA2	ACA2	ACD2	
+ACA5	ACA5	ACD5	Д	Д	д
+ACA6	ACA6	ACD6	Е	Е	е
+ACA7	ACA7	ACD7	Ё	Ё	ё
+ACA8	ACA8	ACD8	Ж	Ж	ж
+ACA9	ACA9	ACD9	З	З	з
+ACAA	ACAA	ACDA	И	И	и
+ACAB	ACAB	ACDB	Й	CAE	ACAE	ACDE	М	М	м
+ACAF	ACAF	ACDF	Н	Н	н
+ACB0	ACB0	ACE0	О	О	о
+ACB1	ACB1	ACE1	П	П	п
+ACB2	ACB2	ACE2	Р	Р	р
+ACB3	ACB3	ACE3	С	С	с
+ACB4	ACB4	ACE4	Т	Т		ACB7	ACE7	Х	Х	х
+ACB8	ACB8	ACE8	Ц	Ц	ц
+ACB9	ACB9	ACE9	Ч	Ч	ч
+ACBA	ACBA	ACEA	Ш	Ш	ш
+ACBB	ACBB	ACEB	Щ	Щ	щ
+ACBC	ACBC	ACEC	Ъ	Ъ	ъ
+ACBD	ACBD	ACED	Ы	Ы	ы
+ACBE	ACBE	ACEE	Ь	Ь	ь
+ACBF	ACBF	ACEF	Э	Э	э
+ACC0	ACC0	ACF0	Ю	Ю	ю
+ACC1	ACC1	ACF1	Я	Я	я
+ACD1	ACA1	ACD1	а	А	а
+ACD2	ACA2	ACD2	б	Б	б
+ACD3	ACA3	ACD3	в	В	в
+ACD4	ACA4	ACD4	г	Г	г
+ACD5	ACA5	ACD5	д	Д	д
+ACD6	ACA6	ACD6	е	Е	е
+ACD7	ACA7	ACD7	ё	Ё	ё
+ACD8	ACA8	ACD8	ж	Ж	ж
+ACD9	ACA9	ACD9	з	З	з
+ACDA	ACAA	ACDA	и	И	и
+ACDB	ACAB	ACDB	й	Й	й
+ACDC	ACAC	ACDC	к	К	к
+ACDD	ACAD	ACDD	л	Л	л
+ACDE	ACAE	ACDE	м	М	м
+ACDF	ACAF	ACDF	н	Н	н
+ACE0	ACB0	ACE0	о	О	о
+ACE1	ACB1	ACE1	п	П	п
+ACE2	ACB2	ACE2	р	Р	р
+ACE3	ACB3	ACE3	с	С	с
+ACE4	ACB4	ACE4	т	Т	т
+ACE5	ACB5	ACE5	у	У	у
+ACE6	ACB6	ACE6	ф	Ф	ф
+ACE7	ACB7	ACE7	х	Х	х
+ACE8	ACB8	ACE8	ц	Ц	ц
+ACE9	ACB9	ACE9	ч	Ч	ч
+ACEA	ACBA	ACEA	
+ACED	ACBD	ACED	ы	Ы	ы
+ACEE	ACBE	ACEE	ь	Ь	ь
+ACEF	ACBF	ACEF	э	Э	э
+ACF0	ACC0	ACF0	ю	Ю	ю
+ACF1	ACC1	ACF1	я	Я	я
+DROP TABLE t1;
+#
+# End of 5.5 tests
+#

=== modified file 'mysql-test/r/ctype_gb2312.result'
--- a/mysql-test/r/ctype_gb2312.result	2008-03-26 09:51:16 +0000
+++ b/mysql-test/r/ctype_gb2312.result	2009-11-27 07:42:35 +0000
@@ -235,3 +235,207 @@ hex(a)
 A2A1
 D7FE
 DROP TABLE t1;
+#
+# Start of 5.5 tests
+#
+#
+# Testing WL#4583 Case conversion in Asian character sets 
+#
+SET NAMES utf8;
+SET collation_connection=gb2312_chinese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE
+(hi BETWEEN 'A1' AND 'F7')
+AND (lo BETWEEN 'A1' AND 'FE')
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `code` varchar(8) DEFAULT NULL,
+  `a` varchar(1) CHARACTER SET gb2312 NOT NULL DEFAULT ''
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+8178
+UPDATE t1 SET a=unhex(code);
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+code	hex(upper(a))	hex(lower(a))	a	upper(a)	lower(a)
+A3C1	A3C1	A3E1	A	A	a
+A3C2	A3C2	A3E2	B	B	b
+A3C3	A3C3	A3E3	C	C	c
+A3C4	A3C4	A3E4	D	D	d
+A3C5	A3C5	A3E5	E	E	e
+A3C6	A3C6	A3E6	F	F	f
+A3C7	A3C7	A3E7	G	G	g
+A3C8	A3C8	A3E8	H	H	h
+A3C9	A3C9	A3E9	I	I	i
+A3CA	A3CA	A3EA	J	J	j
+A3CB	A3CB	A3EB	K	K	k
+A3CC	A3CC	A3EC	L	L	l
+A3CD	A3CD	A3ED	M	M	m
+A3CE	A3CE	A3EE	N	N	n
+A3CF	A3CF	A3EF	O	O	o
+A3D0	A3D0	A3F0	P	P	p
+A3D1	A3D1	A3F1	Q	Q	q
+A3D2	A3D2	A3F2	R	R	r
+A3D3	A3D3	A3F3	S	S	s
+A3D4	A3D4	A3F4	T	T	t
+A3D5	A3D5	A3F5	U	U	u
+A3D6	A3D6	A3F6	V	V	v
+A3D7	A3D7	A3F7	W	W	w
+A3D8	A3D8	A3F8	X	X	x
+A3D9	A3D9	A3F9	Y	Y	y
+A3DA	A3DA	A3FA		D	d
+A3E5	A3C5	A3E5	e	E	e
+A3E6	A3C6	A3E6	f	F	f
+A3E7	A3C7	A3E7	g	G	g
+A3E8	A3C8	A3E8	h		l
+A3ED	A3CD	A3ED	m	M	m
+A3EE	A3CE	A3EE	n	N	n
+A3EF	A3CF	A3EF	o	O	o
+A3F0	A3D0	A3F0	p	P	
+A3F5	A3D5	A3F5	u	U	u
+A3F6	A3D6	A3F6	v	V	v
+A3F7	A3D7	A3F7	w	W	w
+A3F8	A3D8	A3F8	x	X	x
+A3F9	A3D9	A3F9	y	Y	y
+A3FA	A3DA	A3FA	z	Z	z
+A6A1	A6A1	A6C1	Α	Α	α
+A6A2	A6A2	A6C2	Β	Β	β
+A6A3	A6A3	A6C3	Γ	Γ	γ
+A6A4	A6A4	A6C4	Δ	Δ	δ
+A6A5	A6A5	A6C5	Ε	Ε	ε
+A6A6	A6A6	A6C6	Ζ	Ζ	ζ
+A6A7	A6A7	A6C7	Η	Η		A6AA	A6CA	Κ	Κ	κ
+A6AB	A6AB	A6CB	Λ	Λ	λ
+A6AC	A6AC	A6CC	Μ	Μ	μ
+A6AD	A6AD	A6CD	Ν	Ν	ν
+A6AE	A6AE	A6CE	Ξ	Ξ	ξ
+A6AF	A6AF	A6CF	Ο	Ο	ο
+A6B0	A6B0	A6D0	Π	Π	π
+A6B1	A6B1	A6D1	Ρ	Ρ	ρ
+A6B2	A6B2	A6D2	Σ	Σ	σ
+A6B3	A6B3	A6D3	Τ	Τ	τ
+A6B4	A6B4	A6D4	Υ	Υ	υ
+A6B5	A6B5	A6D5	Φ	Φ	φ
+A6B6	A6B6	A6D6	Χ	Χ	χ
+A6B7	A6B7	A6D7	Ψ	Ψ	ψ
+A6B8	A6B8	A6D8	Ω	Ω	ω
+A6C1	A6A1	A6C1	α	Α	α
+A6C2	A6A2	A6C2	β	Β	β
+A6C3	A6A3	A6C3	γ	Γ	γ
+A6C4	A6A4	A6C4	δ	Δ	δ
+A6C5	A6A5	A6C5	ε	Ε	ε
+A6C6	A6A6	A6C6	ζ	Ζ	ζ
+A6C7	A6A7	A6C7	η	Η	η
+A6C8	A6A8	A6C8	θ	Θ	θ
+A6C9	A6A9	A6C9	ι	Ι	ι
+A6CA	A6AA	A6CA	κ	Κ	κ
+A6CB	A6AB	A6CB	λ	Λ	λ
+A6CC	A6AC	A6CC	μ	Μ	μ
+A6CD	A6AD	A6CD	ν	Ν	ν
+A6CE	A6AE	A6CE	ξ	Ξ	ξ
+A6CF	A6AF	A6CF	ο	Ο	ο
+A6D0	A6B0	A6D0	π	Π	π
+A6D1	A6B1	A6D1	ρ	Ρ	ρ
+A6D2	A6B2	A6D2	σ	Σ	σ
+A6D3	A6B3	A6D3	τ	Τ	τ
+A6D4	A6B4	A6D4	υ	Υ	υ
+A6D5	A6B5	A6D5	φ	Φ	φ
+A6D6	A6B6	A6D6	
+A7A1	A7A1	A7D1	А	А	а
+A7A2	A7A2	A7D2	Б	Б	б
+A7A3	A7A3	A7D3	В	В	в
+A7A4	A7A4	A7D4	Г	Г	г
+A7A5	A7A5	A7D5	Д	Д	д
+A7A6	A7A6	A7D6	Е	Е	е
+A7A7	A7A7	A7D7	Ё	7AA	A7AA	A7DA	И	И	и
+A7AB	A7AB	A7DB	Й	Й	й
+A7AC	A7AC	A7DC	К	К	к
+A7AD	A7AD	A7DD	Л	Л	л
+A7AE	A7AE	A7DE	М	М	м
+A7AF	A7AF	A7DF	Н	Н	н
+A7B0	A7B0	A7E0	О	О		A7B3	A7E3	С	С	с
+A7B4	A7B4	A7E4	Т	Т	т
+A7B5	A7B5	A7E5	У	У	у
+A7B6	A7B6	A7E6	Ф	Ф	ф
+A7B7	A7B7	A7E7	Х	Х	х
+A7B8	A7B8	A7E8	Ц	Ц	ц
+A7B9	A7B9	A7E9	Ч	Ч	ч
+A7BA	A7BA	A7EA	Ш	Ш	ш
+A7BB	A7BB	A7EB	Щ	Щ	щ
+A7BC	A7BC	A7EC	Ъ	Ъ	ъ
+A7BD	A7BD	A7ED	Ы	Ы	ы
+A7BE	A7BE	A7EE	Ь	Ь	ь
+A7BF	A7BF	A7EF	Э	Э	э
+A7C0	A7C0	A7F0	Ю	Ю	ю
+A7C1	A7C1	A7F1	Я	Я	я
+A7D1	A7A1	A7D1	а	А	а
+A7D2	A7A2	A7D2	б	Б	б
+A7D3	A7A3	A7D3	в	В	в
+A7D4	A7A4	A7D4	г	Г	г
+A7D5	A7A5	A7D5	д	Д	д
+A7D6	A7A6	A7D6	е	Е	е
+A7D7	A7A7	A7D7	ё	Ё	ё
+A7D8	A7A8	A7D8	ж	Ж	ж
+A7D9	A7A9	A7D9	з	З	з
+A7DA	A7AA	A7DA	и	И	и
+A7DB	A7AB	A7DB	й	Й	й
+A7DC	A7AC	A7DC	к	К	к
+A7DD	A7AD	A7DD	л	Л	л
+A7DE	A7AE	A7DE	м	М	м
+A7DF	A7AF	A7DF	н	Н	н
+A7E0	A7B0	A7E0	о	О	о
+A7E1	A7B1	A7E1	п	П	п
+A7E2	A7B2	A7E2	р	Р	р
+A7E3	A7B3	A7E3	с	С	с
+A7E4	A7B4	A7E4	т	Т	т
+A7E5	A7B5	A7E5	у	У	у
+A7E6	A7B6	A7E6	
+A7E9	A7B9	A7E9	ч	Ч	ч
+A7EA	A7BA	A7EA	ш	Ш	ш
+A7EB	A7BB	A7EB	щ	Щ	щ
+A7EC	A7BC	A7EC	ъ	Ъ	ъ
+A7ED	A7BD	A7ED	ы	Ы	ы
+A7EE	A7BE	A7EE	ь	Ь	ь
+A7EF	A7BF	A7EF	э	ROP TABLE t1;
+#
+# End of 5.5 tests
+#

=== modified file 'mysql-test/r/ctype_gbk.result'
--- a/mysql-test/r/ctype_gbk.result	2008-04-23 06:06:26 +0000
+++ b/mysql-test/r/ctype_gbk.result	2009-11-27 07:42:35 +0000
@@ -255,3 +255,227 @@ SELECT a FROM t1 GROUP BY 1 LIMIT 1 INTO
 SELECT b FROM t1 GROUP BY 1 LIMIT 1 INTO @nullll;
 DROP TABLES t1;
 End of 5.0 tests
+#
+# Start of 5.5 tests
+#
+#
+# Testing WL#4583 Case conversion in Asian character sets 
+#
+SET NAMES utf8;
+SET collation_connection=gbk_chinese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE
+((hi BETWEEN '81' AND 'FE'))
+AND ((lo BETWEEN '40' AND '7E') OR (lo BETWEEN '80' AND 'FE'))
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `code` varchar(8) DEFAULT NULL,
+  `a` varchar(1) CHARACTER SET gbk NOT NULL DEFAULT ''
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+23940
+UPDATE t1 SET a=unhex(code);
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+code	hex(upper(a))	hex(lower(a))	a	upper(a)	lower(a)
+A2A1	A2F1	A2A1	ⅰ	Ⅰ	ⅰ
+A2A2	A2F2	A2A2	ⅱ		ⅵ
+A2A7	A2F7	A2A7	ⅶ	Ⅶ	ⅶ
+A2A8	A2F8	A2A8	ⅷ	Ⅷ	ⅷ
+A2A9	A2F9	A2A9	ⅸ	Ⅸ	ⅸ
+A2AA	A2FA	A2AA	ⅹ	Ⅹ	
+A2F5	A2F5	A2A5	Ⅴ	Ⅴ	ⅴ
+A2F6	A2F6	A2A6	Ⅵ	Ⅵ	ⅵ
+A2F7	A2F7	A2A7	Ⅶ	Ⅶ	ⅶ
+A2F8	A2F8	A2A8	Ⅷ	Ⅷ	ⅷ
+A2F9	A2F9	A2A9	Ⅸ	Ⅸ	ⅸ
+A2FA	A2FA	A2AA	Ⅹ	Ⅹ	ⅹ
+A3C1	A3C1	A3E1	A	A	a
+A3C2	A3C2	A3E2	B	B	b
+A3C3	A3C3	A3E3	C	C	c
+A3C4	A3C4	A3E4	D	D	d
+A3C5	A3C5	A3E5	E	E	e
+A3C6	A3C6	A3E6	F	F	f
+A3C7	A3C7	A3E7	G	G	g
+A3C8	A3C8	A3E8	H	H	h
+A3C9	A3C9	A3E9	I	I	i
+A3CA	A3CA	A3EA	J	J	j
+A3CB	A3CB	A3EB	K	K	k
+A3CC	A3CC	A3EC	L	L	l
+A3CD	A3CD	A3ED	M	M	m
+A3CE	A3CE	A3EE	N	N	n
+A3CF	A3CF	A3EF	O	O	o
+A3D0	A3D0	A3F0	P	P	p
+A3D1	A3D1	A3F1	Q	Q	q
+A3D2	A3D2	A3F2	R	R	r
+A3D3	A3D3	A3F3	S	S	s
+A3D4	A3D4	A3F4	T	T	t
+A3D5	A3D5	A3F5	U	U	u
+A3D6	A3D6	A3F6	V	V	v
+A3D7	A3D7	A3F7	W	W	w
+A3D8	A3D8	A3F8	X	X	x
+A3D9	A3D9	A3F9	Y	Y	y
+A3DA	A3DA	A3FA	Z	Z	z
+A3E1	A3C1	A3E1	a	A	a
+A3E2	A3C2	A3E2	b	B	b
+A3E3	A3C3	A3E3	c	C	c
+A3E4	A3C4	A3E4	d	D	d
+A3E5	A3C5	A3E5		I	i
+A3EA	A3CA	A3EA	j	J	j
+A3EB	A3CB	A3EB	k	K	k
+A3EC	A3CC	A3EC	l	L	l
+A3ED	A3CD	A3ED	m		q
+A3F2	A3D2	A3F2	r	R	r
+A3F3	A3D3	A3F3	s	S	s
+A3F4	A3D4	A3F4	t	T	t
+A3F5	A3D5	A3F5	u	U	
+A3FA	A3DA	A3FA	z	Z	z
+A6A1	A6A1	A6C1	Α	Α	α
+A6A2	A6A2	A6C2	Β	Β	β
+A6A3	A6A3	A6C3	Γ	Γ	γ
+A6A4	A6A4	A6C4	Δ	Δ	δ
+A6A5	A6A5	A6C5	Ε	Ε	ε
+A6A6	A6A6	A6C6	
+A6A9	A6A9	A6C9	Ι	Ι	ι
+A6AA	A6AA	A6CA	Κ	Κ	κ
+A6AB	A6AB	A6CB	Λ	Λ	λ
+A6AC	A6AC	A6CC	Μ	Μ	μ
+A6AD	A6AD	A6CD	Ν	Ν	ν
+A6AE	A6AE	A6CE	Ξ	Ξ	ξ
+A6AF	A6AF	A6CF	Ο	6B2	A6B2	A6D2	Σ	Σ	σ
+A6B3	A6B3	A6D3	Τ	Τ	τ
+A6B4	A6B4	A6D4	Υ	Υ	υ
+A6B5	A6B5	A6D5	Φ	Φ	φ
+A6B6	A6B6	A6D6	Χ	Χ	χ
+A6B7	A6B7	A6D7	Ψ	Ψ	ψ
+A6B8	A6B8	A6D8	Ω	Ω		A6A3	A6C3	γ	Γ	γ
+A6C4	A6A4	A6C4	δ	Δ	δ
+A6C5	A6A5	A6C5	ε	Ε	ε
+A6C6	A6A6	A6C6	ζ	Ζ	ζ
+A6C7	A6A7	A6C7	η	Η	η
+A6C8	A6A8	A6C8	θ	Θ	θ
+A6C9	A6A9	A6C9	ι	Ι	ι
+A6CA	A6AA	A6CA	κ	Κ	κ
+A6CB	A6AB	A6CB	λ	Λ	λ
+A6CC	A6AC	A6CC	μ	Μ	μ
+A6CD	A6AD	A6CD	ν	Ν	ν
+A6CE	A6AE	A6CE	ξ	Ξ	ξ
+A6CF	A6AF	A6CF	ο	Ο	ο
+A6D0	A6B0	A6D0	π	Π	π
+A6D1	A6B1	A6D1	ρ	Ρ	ρ
+A6D2	A6B2	A6D2	σ	Σ	σ
+A6D3	A6B3	A6D3	τ	Τ	τ
+A6D4	A6B4	A6D4	υ	Υ	υ
+A6D5	A6B5	A6D5	φ	Φ	φ
+A6D6	A6B6	A6D6	χ	Χ	χ
+A6D7	A6B7	A6D7	ψ	Ψ	ψ
+A6D8	A6B8	A6D8	ω	Ω	ω
+A7A1	A7A1	A7D1	А	А	а
+A7A2	A7A2	A7D2	Б	Б	б
+A7A3	A7A3	A7D3	В	В	в
+A7A4	A7A4	A7D4	Г	Г	г
+A7A5	A7A5	A7D5	Д	Д	д
+A7A6	A7A6	A7D6	Е	Е	е
+A7A7	A7A7	A7D7	Ё	Ё	ё
+A7A8	A7A8	A7D8	Ж	Ж	ж
+A7A9	A7A9	A7D9	З	З	з
+A7AA	A7AA	A7DA	И	И	и
+A7AB	A7AB	A7DB	Й	Й	й
+A7AC	A7AC	A7DC	К	К	к
+A7AD	A7AD	A7DD	Л	Л	л
+A7AE	A7AE	A7DE	М	М	м
+A7AF	A7AF	A7DF	
+A7B2	A7B2	A7E2	Р	Р	р
+A7B3	A7B3	A7E3	С	С	с
+A7B4	A7B4	A7E4	Т	Т	т
+A7B5	A7B5	A7E5	У	У	у
+A7B6	A7B6	A7E6	Ф	Ф	ф
+A7B7	A7B7	A7E7	Х	Х	х
+A7B8	A7B8	A7E8	Ц	7BB	A7BB	A7EB	Щ	Щ	щ
+A7BC	A7BC	A7EC	Ъ	Ъ	ъ
+A7BD	A7BD	A7ED	Ы	Ы	ы
+A7BE	A7BE	A7EE	Ь	Ь	ь
+A7BF	A7BF	A7EF	Э	Э	э
+A7C0	A7C0	A7F0	Ю	Ю	ю
+A7C1	A7C1	A7F1	Я	Я		A7A3	A7D3	в	В	в
+A7D4	A7A4	A7D4	г	Г	г
+A7D5	A7A5	A7D5	д	Д	д
+A7D6	A7A6	A7D6	е	Е	е
+A7D7	A7A7	A7D7	ё	Ё	ё
+A7D8	A7A8	A7D8	ж	Ж	ж
+A7D9	A7A9	A7D9	з	З	з
+A7DA	A7AA	A7DA	и	И	и
+A7DB	A7AB	A7DB	й	Й	й
+A7DC	A7AC	A7DC	к	К	к
+A7DD	A7AD	A7DD	л	Л	л
+A7DE	A7AE	A7DE	м	М	м
+A7DF	A7AF	A7DF	н	Н	н
+A7E0	A7B0	A7E0	о	О	о
+A7E1	A7B1	A7E1	п	П	п
+A7E2	A7B2	A7E2	р	Р	р
+A7E3	A7B3	A7E3	с	С	с
+A7E4	A7B4	A7E4	т	Т	т
+A7E5	A7B5	A7E5	у	У	у
+A7E6	A7B6	A7E6	ф	Ф	ф
+A7E7	A7B7	A7E7	х	Х	х
+A7E8	A7B8	A7E8	ц	Ц	ц
+A7E9	A7B9	A7E9	ч	Ч	ч
+A7EA	A7BA	A7EA	ш	Ш	ш
+A7EB	A7BB	A7EB	щ	Щ	щ
+A7EC	A7BC	A7EC	ъ	Ъ	ъ
+A7ED	A7BD	A7ED	ы	Ы	ы
+A7EE	A7BE	A7EE	ь	Ь	ь
+A7EF	A7BF	A7EF	э	Э	э
+A7F0	A7C0	A7F0	ю	Ю	ю
+A7F1	A7C1	A7F1	я	Я	я
+DROP TABLE t1;
+#
+# End of 5.5 tests
+#

=== modified file 'mysql-test/r/ctype_sjis.result'
--- a/mysql-test/r/ctype_sjis.result	2009-05-05 06:55:22 +0000
+++ b/mysql-test/r/ctype_sjis.result	2009-11-27 07:42:35 +0000
@@ -219,3 +219,207 @@ hex(a)	hex(lower(a))	hex(upper(a))
 8372835E	8372835E	8372835E
 DROP TABLE t1;
 # End of 5.1 tests
+#
+# Start of 5.5 tests
+#
+#
+# Testing WL#4583 Case conversion in Asian character sets 
+#
+SET NAMES utf8;
+SET collation_connection=sjis_japanese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE
+((hi BETWEEN '81' AND '9F') OR (hi BETWEEN 'E0' AND 'FC'))
+AND ((lo BETWEEN '40' AND '7E') OR (lo BETWEEN '80' AND 'FC'))
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `code` varchar(8) DEFAULT NULL,
+  `a` varchar(1) CHARACTER SET sjis NOT NULL DEFAULT ''
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+11280
+UPDATE t1 SET a=unhex(code);
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+code	hex(upper(a))	hex(lower(a))	a	upper(a)	lower(a)
+8260	8260	8281	A	A	a
+8261	8261	8282	B	B	b
+8262	8262	8283	C	C	c
+8263	8263	8284	D	D	d
+8264	8264	8285	E	E	e
+8265	8265	8286	F	F	f
+8266	8266	8287	G	G	g
+8267	8267	8288	H	H	h
+8268	8268	8289	I	I	i
+8269	8269	828A	J	J	j
+826A	826A	828B	K	K	k
+826B	826B	828C	L	L	l
+826C	826C	828D	M	M	m
+826D	826D	828E	N	N	n
+826E	826E	828F		S	s
+8273	8273	8294	T	T	t
+8274	8274	8295	U	U	u
+8275	8275	8296	V	V	v
+8276	8276	8297	W		a
+8282	8261	8282	b	B	b
+8283	8262	8283	c	C	c
+8284	8263	8284	d	D	d
+8285	8264	8285	e	E	
+828A	8269	828A	j	J	j
+828B	826A	828B	k	K	k
+828C	826B	828C	l	L	l
+828D	826C	828D	m	M	m
+828E	826D	828E	n	N	n
+828F	826E	828F	o	O	o
+8290	826F	8290	p	P	p
+8291	8270	8291	q	Q	q
+8292	8271	8292	r	R	r
+8293	8272	8293	s	S	s
+8294	8273	8294	t	T	t
+8295	8274	8295	u	U	u
+8296	8275	8296	v	V	v
+8297	8276	8297	w	W	w
+8298	8277	8298	x	X	x
+8299	8278	8299	y	Y	y
+829A	8279	829A	z	Z	z
+839F	839F	83BF	Α	Α	α
+83A0	83A0	83C0	Β	Β	β
+83A1	83A1	83C1	Γ	Γ	γ
+83A2	83A2	83C2	Δ	Δ	δ
+83A3	83A3	83C3	Ε	Ε	ε
+83A4	83A4	83C4	Ζ	Ζ	ζ
+83A5	83A5	83C5	Η	Η	η
+83A6	83A6	83C6	Θ	Θ	θ
+83A7	83A7	83C7	Ι	Ι	ι
+83A8	83A8	83C8	Κ	Κ	κ
+83A9	83A9	83C9	Λ	Λ	λ
+83AA	83AA	83CA	Μ	Μ	μ
+83AB	83AB	83CB	Ν	Ν	ν
+83AC	83AC	83CC	Ξ	Ξ	ξ
+83AD	83AD	83CD	Ο	Ο	ο
+83AE	83AE	83CE	Π	Π	π
+83AF	83AF	83CF	Ρ	Ρ	ρ
+83B0	83B0	83D0	Σ	Σ	σ
+83B1	83B1	83D1	Τ	Τ	τ
+83B2	83B2	83D2	
+83B5	83B5	83D5	Ψ	Ψ	ψ
+83B6	83B6	83D6	Ω	Ω	ω
+83BF	839F	83BF	α	Α	α
+83C0	83A0	83C0	β	Β	β
+83C1	83A1	83C1	γ	Γ	γ
+83C2	83A2	83C2	δ	Δ	δ
+83C3	83A3	83C3	ε	3C6	83A6	83C6	θ	Θ	θ
+83C7	83A7	83C7	ι	Ι	ι
+83C8	83A8	83C8	κ	Κ	κ
+83C9	83A9	83C9	λ	Λ	λ
+83CA	83AA	83CA	μ	Μ	μ
+83CB	83AB	83CB	ν	Ν	ν
+83CC	83AC	83CC	ξ	Ξ		83AF	83CF	ρ	Ρ	ρ
+83D0	83B0	83D0	σ	Σ	σ
+83D1	83B1	83D1	τ	Τ	τ
+83D2	83B2	83D2	υ	Υ	υ
+83D3	83B3	83D3	φ	Φ	φ
+83D4	83B4	83D4	χ	Χ	χ
+83D5	83B5	83D5	ψ	Ψ	ψ
+83D6	83B6	83D6	ω	Ω	ω
+8440	8440	8470	А	А	а
+8441	8441	8471	Б	Б	б
+8442	8442	8472	В	В	в
+8443	8443	8473	Г	Г	г
+8444	8444	8474	Д	Д	д
+8445	8445	8475	Е	Е	е
+8446	8446	8476	Ё	Ё	ё
+8447	8447	8477	Ж	Ж	ж
+8448	8448	8478	З	З	з
+8449	8449	8479	И	И	и
+844A	844A	847A	Й	Й	й
+844B	844B	847B	К	К	к
+844C	844C	847C	Л	Л	л
+844D	844D	847D	М	М	м
+844E	844E	847E	Н	Н	н
+844F	844F	8480	О	О	о
+8450	8450	8481	П	П	п
+8451	8451	8482	Р	Р	р
+8452	8452	8483	С	С	с
+8453	8453	8484	Т	Т	т
+8454	8454	8485	У	У	у
+8455	8455	8486	Ф	Ф	ф
+8456	8456	8487	Х	Х	х
+8457	8457	8488	Ц	Ц	ц
+8458	8458	8489	Ч	Ч	ч
+8459	8459	848A	Ш	Ш	ш
+845A	845A	848B	Щ	Щ	щ
+845B	845B	848C	Ъ	Ъ	ъ
+845C	845C	848D	
+845F	845F	8490	Ю	Ю	ю
+8460	8460	8491	Я	Я	я
+8470	8440	8470	а	А	а
+8471	8441	8471	б	Б	б
+8472	8442	8472	в	В	в
+8473	8443	8473	г	Г	г
+8474	8444	8474	д	477	8447	8477	ж	Ж	ж
+8478	8448	8478	з	З	з
+8479	8449	8479	и	И	и
+847A	844A	847A	й	Й	й
+847B	844B	847B	к	К	к
+847C	844C	847C	л	Л	л
+847D	844D	847D	м	М		8450	8481	п	П	п
+8482	8451	8482	р	Р	р
+8483	8452	8483	с	С	с
+8484	8453	8484	т	Т	т
+8485	8454	8485	у	У	у
+8486	8455	8486	ф	Ф	ф
+8487	8456	8487	х	Х	х
+8488	8457	8488	ц	Ц	ц
+8489	8458	8489	ч	Ч	ч
+848A	8459	848A	ш	Ш	ш
+848B	845A	848B	щ	Щ	щ
+848C	845B	848C	ъ	Ъ	ъ
+848D	845C	848D	ы	Ы	ы
+848E	845D	848E	ь	Ь	ь
+848F	845E	848F	э	Э	э
+8490	845F	8490	ю	Ю	ю
+8491	8460	8491	я	Я	я
+DROP TABLE t1;
+#
+# End of 5.5 tests
+#

=== modified file 'mysql-test/r/ctype_ujis.result'
--- a/mysql-test/r/ctype_ujis.result	2008-02-20 18:49:26 +0000
+++ b/mysql-test/r/ctype_ujis.result	2009-11-27 07:42:35 +0000
@@ -2377,3 +2377,450 @@ DROP TABLE t2;
 set names default;
 set character_set_database=default;
 set character_set_server=default;
+#
+# Start of 5.5 tests
+#
+#
+# Testing WL#4583 Case conversion in Asian character sets 
+#
+SET NAMES utf8;
+SET collation_connection=ujis_japanese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+CREATE TABLE t1 AS SELECT 'XXXXXX' AS code, ' ' AS a LIMIT 0;
+INSERT INTO t1 (code) SELECT concat(hi, lo)
+FROM hi, lo
+WHERE (hi BETWEEN 'A1' AND 'FE')
+AND   (lo BETWEEN 'A1' AND 'FE')
+ORDER BY hi, lo;
+INSERT INTO t1 (code) SELECT concat('8F', hi, lo)
+FROM hi, lo
+WHERE
+(hi BETWEEN 'A1' AND 'FE')
+AND (lo BETWEEN 'A1' AND 'FE')
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `code` varchar(6) CHARACTER SET ujis NOT NULL DEFAULT '',
+  `a` varchar(1) CHARACTER SET ujis NOT NULL DEFAULT ''
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+17672
+UPDATE t1 SET a=unhex(code);
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a)) ORDER BY code;
+code	hex(upper(a))	hex(lower(a))	a	upper(a)	lower(a)
+8FA6E1	8FA6E1	8FA6F1	Ά	Ά	ά
+8FA6E2	8FA6E2	8FA6F2	Έ	Έ	έ
+8FA6E3	8FA6E3	8FA6F3	Ή	Ή	ή
+8FA6E4	8FA6E4	8FA6F4	Ί	Ί	ί
+8FA6E5	8FA6E5	8FA6F5	Ϊ	Ϊ	ϊ
+8FA6E7	8FA6E7	8FA6F7	Ό	Ό	ό
+8FA6E9	8FA6E9	8FA6F9	Ύ	Ύ	ύ
+8FA6EA	8FA6EA	8FA6FA	Ϋ	Ϋ	ϋ
+8FA6EC	8FA6EC	8FA6FC	Ώ	Ώ	ώ
+8FA6F1	8FA6E1	8FA6F1	ά	Ά	ά
+8FA6F2	8FA6E2	8FA6F2	έ	Έ	έ
+8FA6F3	8FA6E3	8FA6F3	ή	Ή	ή
+8FA6F4	8FA6E4	8FA6F4	ί	Ί	ί
+8FA6F5	8FA6E5	8FA6F5	ϊ	Ϊ	ϊ
+8FA6F7	8FA6E7	8FA6F7	ό	Ό	ό
+8FA6F8	A6B2	8FA6F8	ς	Σ	ς
+8FA6F9	8FA6E9	8FA6F9	ύ	Ύ	ύ
+8FA6FA	8FA6EA	8FA6FA	ϋ	Ϋ	ϋ
+8FA6FC	8FA6EC	8FA6FC	ώ	Ώ	ώ
+8FA7C2	8FA7C2	8FA7F2	Ђ	Ђ	ђ
+8FA7C3	8FA7C3	8FA7F3	Ѓ	Ѓ	ѓ
+8FA7C4	8FA7C4	8FA7F4	Є	Є	є
+8FA7C5	8FA7C5	8FA7F5	Ѕ	Ѕ	ѕ
+8FA7C6	8FA7C6	8FA7F6	І	І	і
+8FA7C7	8FA7C7	8FA7F7	Ї	Ї	ї
+8FA7C8	8FA7C8	8FA7F8	Ј	Ј	ј
+8FA7C9	8FA7C9	8FA7F9	Љ	Љ	љ
+8FA7CA	8FA7CA	8FA7FA	Њ		Ќ	Ќ	ќ
+8FA7CD	8FA7CD	8FA7FD	Ў	Ў	ў
+8FA7CE	8FA7CE	8FA7FE	Џ	Џ	џ
+8FA7F2	8FA7C2	8FA7F2	ђ	Ђ	ђ
+8FA7F3	8FA7C3	8FA7F3	ѓ	Ѓ	ѓ
+8FA7F4	8FA7C4	8FA7F4	є	Є	є
+8FA7F5	8FA7C5	8FA7F5	ѕ	Ѕ	ѕ
+8FA7F6	8FA7C6	8FA7F6	і	І	і
+8FA7F7	8FA7C7	8FA7F7	ї	Ї	ї
+8FA7F8	8FA7C8	8FA7F8	ј	Ј	ј
+8FA7F9	8FA7C9	8FA7F9	љ	Љ	љ
+8FA7FA	8FA7CA	8FA7FA	њ	Њ	њ
+8FA7FB	8FA7CB	8FA7FB	ћ	Ћ	ћ
+8FA7FC	8FA7CC	8FA7FC	ќ	Ќ	ќ
+8FA7FD	8FA7CD	8FA7FD	ў	Ў	ў
+8FA7FE	8FA7CE	8FA7FE	џ	Џ	џ
+8FA9A1	8FA9A1	8FA9C1	Æ	Æ	æ
+8FA9A2	8FA9A2	8FA9C2	Đ	Đ	đ
+8FA9A4	8FA9A4	8FA9C4	Ħ	Ħ	ħ
+8FA9A6	8FA9A6	8FA9C6	IJ	IJ	ij
+8FA9A8	8FA9A8	8FA9C8	Ł	Ł	ł
+8FA9A9	8FA9A9	8FA9C9	Ŀ	Ŀ	ŀ
+8FA9AB	8FA9AB	8FA9CB	9CD	Œ	Œ	œ
+8FA9AF	8FA9AF	8FA9CF	Ŧ	Ŧ	ŧ
+8FA9B0	8FA9B0	8FA9D0	Þ	Þ	þ
+8FA9C1	8FA9A1	8FA9C1	æ	Æ	æ
+8FA9C2	8FA9A2	8FA9C2	đ	Đ	đ
+8FA9C4	8FA9A4	8FA9C4	ħ	Ħ	ħ
+8FA9C5	49	8FA9C5	ı	I	ı
+8FA9C6	8FA9A6	8FA9C6	ij	IJ	ij
+8FA9C8	8FA9A8	8FA9C8	ł	Ł	ł
+8FA9C9	8FA9A9	8FA9C9	ŀ	Ŀ		Ø	ø
+8FA9CD	8FA9AD	8FA9CD	œ	Œ	œ
+8FA9CF	8FA9AF	8FA9CF	ŧ	Ŧ	ŧ
+8FA9D0	8FA9B0	8FA9D0	þ	Þ	þ
+8FAAA1	8FAAA1	8FABA1	Á	Á	á
+8FAAA2	8FAAA2	8FABA2	À	À	à
+8FAAA3	8FAAA3	8FABA3	Ä	Ä	ä
+8FAAA4	8FAAA4	8FABA4	Â	Â	â
+8FAAA5	8FAAA5	8FABA5	Ă	Ă	ă
+8FAAA6	8FAAA6	8FABA6	Ǎ	Ǎ	ǎ
+8FAAA7	8FAAA7	8FABA7	Ā	Ā	ā
+8FAAA8	8FAAA8	8FABA8	Ą	Ą	ą
+8FAAA9	8FAAA9	8FABA9	Å	Å	å
+8FAAAA	8FAAAA	8FABAA	Ã	Ã	ã
+8FAAAB	8FAAAB	8FABAB	Ć	Ć	ć
+8FAAAC	8FAAAC	8FABAC	Ĉ	Ĉ	ĉ
+8FAAAD	8FAAAD	8FABAD	Č	Č	č
+8FAAAE	8FAAAE	8FABAE	Ç	Ç	ç
+8FAAAF	8FAAAF	8FABAF	Ċ	Ċ	ċ
+8FAAB0	8FAAB0	8FABB0	Ď	Ď	ď
+8FAAB1	8FAAB1	8FABB1	É	É	é
+8FAAB2	8FAAB2	8FABB2	È	È	è
+8FAAB3	8FAAB3	8FABB3	Ë		Ě	Ě	ě
+8FAAB6	8FAAB6	8FABB6	Ė	Ė	ė
+8FAAB7	8FAAB7	8FABB7	Ē	Ē	ē
+8FAAB8	8FAAB8	8FABB8	Ę	Ę	ę
+8FAABA	8FAABA	8FABBA	Ĝ	Ĝ	ĝ
+8FAABB	8FAABB	8FABBB	Ğ	Ğ	ğ
+8FAABD	8FAABD	8FABBD	Ġ	Ġ	ġ
+8FAABE	8FAABE	8FABBE	Ĥ	Ĥ	ĥ
+8FAABF	8FAABF	8FABBF	Í	Í	í
+8FAAC0	8FAAC0	8FABC0	Ì	Ì	ì
+8FAAC1	8FAAC1	8FABC1	Ï	Ï	ï
+8FAAC2	8FAAC2	8FABC2	Î	Î	î
+8FAAC3	8FAAC3	8FABC3	Ǐ	Ǐ	ǐ
+8FAAC4	8FAAC4	69	İ	İ	i
+8FAAC5	8FAAC5	8FABC5	Ī	Ī	ī
+8FAAC6	8FAAC6	8FABC6	Į	Į	į
+8FAAC7	8FAAC7	8FABC7	Ĩ	Ĩ	ĩ
+8FAAC8	8FAAC8	8FABC8	Ĵ	Ĵ	ĵ
+8FAAC9	8FAAC9	8FABC9	Ķ	Ķ	ķ
+8FAACA	8FAACA	8FABCA	Ĺ	Ĺ	ĺ
+8FAACB	8FAACB	8FABCB	Ľ	Ľ	ľ
+8FAACC	8FAACC	8FABCC	Ļ	Ļ	ļ
+8FAACD	8FAACD	8FABCD	Ń	Ń	ń
+8FAACE	8FAACE	8FABCE	Ň	Ň	ň
+8FAACF	8FAACF	8FABCF	BD1	Ó	Ó	ó
+8FAAD2	8FAAD2	8FABD2	Ò	Ò	ò
+8FAAD3	8FAAD3	8FABD3	Ö	Ö	ö
+8FAAD4	8FAAD4	8FABD4	Ô	Ô	ô
+8FAAD5	8FAAD5	8FABD5	Ǒ	Ǒ	ǒ
+8FAAD6	8FAAD6	8FABD6	Ő	Ő	ő
+8FAAD7	8FAAD7	8FABD7	Ō	Ō	ō
+8FAAD8	8FAAD8	8FABD8	Õ	Õ		Ř	ř
+8FAADB	8FAADB	8FABDB	Ŗ	Ŗ	ŗ
+8FAADC	8FAADC	8FABDC	Ś	Ś	ś
+8FAADD	8FAADD	8FABDD	Ŝ	Ŝ	ŝ
+8FAADE	8FAADE	8FABDE	Š	Š	š
+8FAADF	8FAADF	8FABDF	Ş	Ş	ş
+8FAAE0	8FAAE0	8FABE0	Ť	Ť	ť
+8FAAE1	8FAAE1	8FABE1	Ţ	Ţ	ţ
+8FAAE2	8FAAE2	8FABE2	Ú	Ú	ú
+8FAAE3	8FAAE3	8FABE3	Ù	Ù	ù
+8FAAE4	8FAAE4	8FABE4	Ü	Ü	ü
+8FAAE5	8FAAE5	8FABE5	Û	Û	û
+8FAAE6	8FAAE6	8FABE6	Ŭ	Ŭ	ŭ
+8FAAE7	8FAAE7	8FABE7	Ǔ	Ǔ	ǔ
+8FAAE8	8FAAE8	8FABE8	Ű	Ű	ű
+8FAAE9	8FAAE9	8FABE9	Ū	Ū	ū
+8FAAEA	8FAAEA	8FABEA	Ų	Ų	ų
+8FAAEB	8FAAEB	8FABEB	Ů	Ů	ů
+8FAAEC	8FAAEC	8FABEC	Ũ	Ũ	ũ
+8FAAED	8FAAED	8FABED	Ǘ	Ǘ	ǘ
+8FAAEE	8FAAEE	8FABEE	Ǜ	Ǜ	ǜ
+8FAAEF	8FAAEF	8FABEF	Ǚ	Ǚ	ǚ
+8FAAF0	8FAAF0	8FABF0	Ǖ		Ý	Ý	ý
+8FAAF3	8FAAF3	8FABF3	Ÿ	Ÿ	ÿ
+8FAAF4	8FAAF4	8FABF4	Ŷ	Ŷ	ŷ
+8FAAF5	8FAAF5	8FABF5	Ź	Ź	ź
+8FAAF6	8FAAF6	8FABF6	Ž	Ž	ž
+8FAAF7	8FAAF7	8FABF7	Ż	Ż	ż
+8FABA1	8FAAA1	8FABA1	á	Á	á
+8FABA2	8FAAA2	8FABA2	à	À	à
+8FABA3	8FAAA3	8FABA3	ä	Ä	ä
+8FABA4	8FAAA4	8FABA4	â	Â	â
+8FABA5	8FAAA5	8FABA5	ă	Ă	ă
+8FABA6	8FAAA6	8FABA6	ǎ	Ǎ	ǎ
+8FABA7	8FAAA7	8FABA7	ā	Ā	ā
+8FABA8	8FAAA8	8FABA8	ą	Ą	ą
+8FABA9	8FAAA9	8FABA9	å	Å	å
+8FABAA	8FAAAA	8FABAA	ã	Ã	ã
+8FABAB	8FAAAB	8FABAB	ć	Ć	ć
+8FABAC	8FAAAC	8FABAC	ĉ	Ĉ	ĉ
+8FABAD	8FAAAD	8FABAD	č	Č	č
+8FABAE	8FAAAE	8FABAE	ç	Ç	ç
+8FABAF	8FAAAF	8FABAF	ċ	Ċ	ċ
+8FABB0	8FAAB0	8FABB0	ď	Ď	ď
+8FABB1	8FAAB1	8FABB1	BB3	ë	Ë	ë
+8FABB4	8FAAB4	8FABB4	ê	Ê	ê
+8FABB5	8FAAB5	8FABB5	ě	Ě	ě
+8FABB6	8FAAB6	8FABB6	ė	Ė	ė
+8FABB7	8FAAB7	8FABB7	ē	Ē	ē
+8FABB8	8FAAB8	8FABB8	ę	Ę	ę
+8FABBA	8FAABA	8FABBA	ĝ	Ĝ	ĝ
+8FABBB	8FAABB	8FABBB	ğ	Ğ		Ĥ	ĥ
+8FABBF	8FAABF	8FABBF	í	Í	í
+8FABC0	8FAAC0	8FABC0	ì	Ì	ì
+8FABC1	8FAAC1	8FABC1	ï	Ï	ï
+8FABC2	8FAAC2	8FABC2	î	Î	î
+8FABC3	8FAAC3	8FABC3	ǐ	Ǐ	ǐ
+8FABC5	8FAAC5	8FABC5	ī	Ī	ī
+8FABC6	8FAAC6	8FABC6	į	Į	į
+8FABC7	8FAAC7	8FABC7	ĩ	Ĩ	ĩ
+8FABC8	8FAAC8	8FABC8	ĵ	Ĵ	ĵ
+8FABC9	8FAAC9	8FABC9	ķ	Ķ	ķ
+8FABCA	8FAACA	8FABCA	ĺ	Ĺ	ĺ
+8FABCB	8FAACB	8FABCB	ľ	Ľ	ľ
+8FABCC	8FAACC	8FABCC	ļ	Ļ	ļ
+8FABCD	8FAACD	8FABCD	ń	Ń	ń
+8FABCE	8FAACE	8FABCE	ň	Ň	ň
+8FABCF	8FAACF	8FABCF	ņ	Ņ	ņ
+8FABD0	8FAAD0	8FABD0	ñ	Ñ	ñ
+8FABD1	8FAAD1	8FABD1	ó	Ó	ó
+8FABD2	8FAAD2	8FABD2	ò	Ò	ò
+8FABD3	8FAAD3	8FABD3	ö	Ö	ö
+8FABD4	8FAAD4	8FABD4	ô	Ô	ô
+8FABD5	8FAAD5	8FABD5	ǒ		ō	Ō	ō
+8FABD8	8FAAD8	8FABD8	õ	Õ	õ
+8FABD9	8FAAD9	8FABD9	ŕ	Ŕ	ŕ
+8FABDA	8FAADA	8FABDA	ř	Ř	ř
+8FABDB	8FAADB	8FABDB	ŗ	Ŗ	ŗ
+8FABDC	8FAADC	8FABDC	ś	Ś	ś
+8FABDD	8FAADD	8FABDD	ŝ	Ŝ	ŝ
+8FABDE	8FAADE	8FABDE	š	Š	š
+8FABDF	8FAADF	8FABDF	ş	Ş	ş
+8FABE0	8FAAE0	8FABE0	ť	Ť	ť
+8FABE1	8FAAE1	8FABE1	ţ	Ţ	ţ
+8FABE2	8FAAE2	8FABE2	ú	Ú	ú
+8FABE3	8FAAE3	8FABE3	ù	Ù	ù
+8FABE4	8FAAE4	8FABE4	ü	Ü	ü
+8FABE5	8FAAE5	8FABE5	û	Û	û
+8FABE6	8FAAE6	8FABE6	ŭ	Ŭ	ŭ
+8FABE7	8FAAE7	8FABE7	ǔ	Ǔ	ǔ
+8FABE8	8FAAE8	8FABE8	ű	Ű	ű
+8FABE9	8FAAE9	8FABE9	ū	Ū	ū
+8FABEA	8FAAEA	8FABEA	ų	Ų	ų
+8FABEB	8FAAEB	8FABEB	ů	Ů	ů
+8FABEC	8FAAEC	8FABEC	ũ	Ũ	ũ
+8FABED	8FAAED	8FABED	BEF	ǚ	Ǚ	ǚ
+8FABF0	8FAAF0	8FABF0	ǖ	Ǖ	ǖ
+8FABF1	8FAAF1	8FABF1	ŵ	Ŵ	ŵ
+8FABF2	8FAAF2	8FABF2	ý	Ý	ý
+8FABF3	8FAAF3	8FABF3	ÿ	Ÿ	ÿ
+8FABF4	8FAAF4	8FABF4	ŷ	Ŷ	ŷ
+8FABF5	8FAAF5	8FABF5	ź	Ź	ź
+8FABF6	8FAAF6	8FABF6	ž	Ž	b
+A3C3	A3C3	A3E3	C	C	c
+A3C4	A3C4	A3E4	D	D	
+A3C9	A3C9	A3E9	I	I	i
+A3CA	A3CA	A3EA	J	J	j
+A3CB	A3CB	A3EB	K	K	k
+A3CC	A3CC	A3EC	L	L	l
+A3CD	A3CD	A3ED	M	M	m
+A3CE	A3CE	A3EE	N	N	n
+A3CF	A3CF	A3EF	O	O	o
+A3D0	A3D0	A3F0	P	P	p
+A3D1	A3D1	A3F1	Q	Q	q
+A3D2	A3D2	A3F2	R	R	r
+A3D3	A3D3	A3F3	S	S	s
+A3D4	A3D4	A3F4	T	T	t
+A3D5	A3D5	A3F5	U	U	u
+A3D6	A3D6	A3F6	V	V	v
+A3D7	A3D7	A3F7	W	W	w
+A3D8	A3D8	A3F8	X	X	x
+A3D9	A3D9	A3F9	Y	Y	y
+A3DA	A3DA	A3FA	Z	Z	z
+A3E1	A3C1	A3E1	a	A	a
+A3E2	A3C2	A3E2	b	B	b
+A3E3	A3C3	A3E3	c	C	c
+A3E4	A3C4	A3E4	d	D	d
+A3E5	A3C5	A3E5	e	E	e
+A3E6	A3C6	A3E6	f	F	f
+A3E7	A3C7	A3E7	g	G	g
+A3E8	A3C8	A3E8	h	H	h
+A3E9	A3C9	A3E9	i	I	i
+A3EA	A3CA	A3EA	j	J	j
+A3EB	A3CB	A3EB	k	K	k
+A3EC	A3CC	A3EC	l	L	l
+A3ED	A3CD	A3ED	m	M	m
+A3EE	A3CE	A3EE	n	N	n
+A3EF	A3CF	A3EF	o	O	o
+A3F0	A3D0	A3F0	p	P	p
+A3F1	A3D1	A3F1	q	Q	q
+A3F2	A3D2	A3F2	r	R	r
+A3F3	A3D3	A3F3		W	w
+A3F8	A3D8	A3F8	x	X	x
+A3F9	A3D9	A3F9	y	Y	y
+A3FA	A3DA	A3FA	z	Z	z
+A6A1	A6A1	A6C1	Α	Α	α
+A6A2	A6A2	A6C2	Β	Β	β
+A6A3	A6A3	A6C3	Γ	Γ	γ
+A6A4	A6A4	A6C4	Δ	Δ	δ
+A6A5	A6A5	A6C5	Ε	Ε	ε
+A6A6	A6A6	A6C6	Ζ	Ζ	ζ
+A6A7	A6A7	A6C7	Η	Η	η
+A6A8	A6A8	A6C8	
+A6AB	A6AB	A6CB	Λ	Λ	λ
+A6AC	A6AC	A6CC	Μ	Μ	μ
+A6AD	A6AD	A6CD	Ν	Ν	ν
+A6AE	A6AE	A6CE	Ξ	Ξ	ξ
+A6AF	A6AF	A6CF	Ο	Ο	ο
+A6B0	A6B0	A6D0	Π	Π	π
+A6B1	A6B1	A6D1	Ρ	6B4	A6B4	A6D4	Υ	Υ	υ
+A6B5	A6B5	A6D5	Φ	Φ	φ
+A6B6	A6B6	A6D6	Χ	Χ	χ
+A6B7	A6B7	A6D7	Ψ	Ψ	ψ
+A6B8	A6B8	A6D8	Ω	Ω	ω
+A6C1	A6A1	A6C1	α	Α	α
+A6C2	A6A2	A6C2	β	Β		A6A5	A6C5	ε	Ε	ε
+A6C6	A6A6	A6C6	ζ	Ζ	ζ
+A6C7	A6A7	A6C7	η	Η	η
+A6C8	A6A8	A6C8	θ	Θ	θ
+A6C9	A6A9	A6C9	ι	Ι	ι
+A6CA	A6AA	A6CA	κ	Κ	κ
+A6CB	A6AB	A6CB	λ	Λ	λ
+A6CC	A6AC	A6CC	μ	Μ	μ
+A6CD	A6AD	A6CD	ν	Ν	ν
+A6CE	A6AE	A6CE	ξ	Ξ	ξ
+A6CF	A6AF	A6CF	ο	Ο	ο
+A6D0	A6B0	A6D0	π	Π	π
+A6D1	A6B1	A6D1	ρ	Ρ	ρ
+A6D2	A6B2	A6D2	σ	Σ	σ
+A6D3	A6B3	A6D3	τ	Τ	τ
+A6D4	A6B4	A6D4	υ	Υ	υ
+A6D5	A6B5	A6D5	φ	Φ	φ
+A6D6	A6B6	A6D6	χ	Χ	χ
+A6D7	A6B7	A6D7	ψ	Ψ	ψ
+A6D8	A6B8	A6D8	ω	Ω	ω
+A7A1	A7A1	A7D1	А	А	а
+A7A2	A7A2	A7D2	Б	Б	б
+A7A3	A7A3	A7D3	В	В	в
+A7A4	A7A4	A7D4	Г	Г	г
+A7A5	A7A5	A7D5	Д	Д	д
+A7A6	A7A6	A7D6	Е	Е	е
+A7A7	A7A7	A7D7	Ё	Ё	ё
+A7A8	A7A8	A7D8	Ж	Ж	ж
+A7A9	A7A9	A7D9	З	З	з
+A7AA	A7AA	A7DA	И	И	и
+A7AB	A7AB	A7DB	Й	Й	й
+A7AC	A7AC	A7DC	К	К	к
+A7AD	A7AD	A7DD	Л	Л	л
+A7AE	A7AE	A7DE	М	М	м
+A7AF	A7AF	A7DF	Н	Н	н
+A7B0	A7B0	A7E0	О	О	о
+A7B1	A7B1	A7E1	
+A7B4	A7B4	A7E4	Т	Т	т
+A7B5	A7B5	A7E5	У	У	у
+A7B6	A7B6	A7E6	Ф	Ф	ф
+A7B7	A7B7	A7E7	Х	Х	х
+A7B8	A7B8	A7E8	Ц	Ц	ц
+A7B9	A7B9	A7E9	Ч	Ч	ч
+A7BA	A7BA	A7EA	Ш	7BD	A7BD	A7ED	Ы	Ы	ы
+A7BE	A7BE	A7EE	Ь	Ь	ь
+A7BF	A7BF	A7EF	Э	Э	э
+A7C0	A7C0	A7F0	Ю	Ю	ю
+A7C1	A7C1	A7F1	Я	Я	я
+A7D1	A7A1	A7D1	а	А	а
+A7D2	A7A2	A7D2	б	Б		A7A5	A7D5	д	Д	д
+A7D6	A7A6	A7D6	е	Е	е
+A7D7	A7A7	A7D7	ё	Ё	ё
+A7D8	A7A8	A7D8	ж	Ж	ж
+A7D9	A7A9	A7D9	з	З	з
+A7DA	A7AA	A7DA	и	И	и
+A7DB	A7AB	A7DB	й	Й	й
+A7DC	A7AC	A7DC	к	К	к
+A7DD	A7AD	A7DD	л	Л	л
+A7DE	A7AE	A7DE	м	М	м
+A7DF	A7AF	A7DF	н	Н	н
+A7E0	A7B0	A7E0	о	О	о
+A7E1	A7B1	A7E1	п	П	п
+A7E2	A7B2	A7E2	р	Р	р
+A7E3	A7B3	A7E3	с	С	с
+A7E4	A7B4	A7E4	т	Т	т
+A7E5	A7B5	A7E5	у	У	у
+A7E6	A7B6	A7E6	ф	Ф	ф
+A7E7	A7B7	A7E7	х	Х	х
+A7E8	A7B8	A7E8	ц	Ц	ц
+A7E9	A7B9	A7E9	ч	Ч	ч
+A7EA	A7BA	A7EA	ш	Ш	ш
+A7EB	A7BB	A7EB	щ	Щ	щ
+A7EC	A7BC	A7EC	ъ	Ъ	ъ
+A7ED	A7BD	A7ED	ы	Ы	ы
+A7EE	A7BE	A7EE	ь	Ь	ь
+A7EF	A7BF	A7EF	э	Э	э
+A7F0	A7C0	A7F0	ю	Ю	ю
+A7F1	A7C1	A7F1	я	Я	я
+DROP TABLE t1;
+#
+# End of 5.5 tests
+#

=== modified file 'mysql-test/t/ctype_big5.test'
--- a/mysql-test/t/ctype_big5.test	2008-10-23 19:27:09 +0000
+++ b/mysql-test/t/ctype_big5.test	2009-11-27 07:42:35 +0000
@@ -84,3 +84,52 @@ select hex(a) from t1;
 drop table t1;
 
 --echo End of 5.0 tests
+
+
+--echo #
+--echo # Start of 5.5 tests
+--echo #
+
+--echo #
+--echo # Testing WL#4583 Case conversion in Asian character sets 
+--echo #
+#
+# Populate t1 with all hex digits
+#
+SET NAMES utf8;
+SET collation_connection=big5_chinese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+#
+# Populate tables hi and low with values '00'-'FF'
+#
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+#
+# Populate table t1 with all big5 codes [A1..F9][40..7E,A1..FE]
+#
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE (hi BETWEEN 'A1' AND 'F9')
+AND ((lo BETWEEN '40' AND '7E') OR (lo BETWEEN 'A1' AND 'FE'))
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+SELECT COUNT(*) FROM t1;
+UPDATE t1 SET a=unhex(code);
+#
+# Display all characters that have upper or lower case mapping.
+#
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+
+DROP TABLE t1;
+
+
+
+
+--echo #
+--echo # End of 5.5 tests
+--echo #

=== modified file 'mysql-test/t/ctype_cp932_binlog_stm.test'
--- a/mysql-test/t/ctype_cp932_binlog_stm.test	2009-10-01 16:44:53 +0000
+++ b/mysql-test/t/ctype_cp932_binlog_stm.test	2009-11-27 07:42:35 +0000
@@ -42,3 +42,53 @@ SELECT hex(a), hex(lower(a)), hex(upper(
 DROP TABLE t1;
 
 --echo End of 5.1 tests
+
+
+--echo #
+--echo # Start of 5.5 tests
+--echo #
+
+--echo #
+--echo # Testing WL#4583 Case conversion in Asian character sets 
+--echo #
+#
+# Populate t1 with all hex digits
+#
+SET NAMES utf8;
+SET collation_connection=cp932_japanese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+#
+# Populate tables hi and low with values '00'-'FF'
+#
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+#
+# Populate table t1 with all cp932 codes [81..9F,E0..FC][40..7E,80..fC]
+#
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE
+    ((hi BETWEEN '81' AND '9F') OR (hi BETWEEN 'E0' AND 'FC'))
+AND ((lo BETWEEN '40' AND '7E') OR (lo BETWEEN '80' AND 'FC'))
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+SELECT COUNT(*) FROM t1;
+UPDATE t1 SET a=unhex(code);
+#
+# Display all characters that have upper or lower case mapping.
+#
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+
+DROP TABLE t1;
+
+
+
+
+--echo #
+--echo # End of 5.5 tests
+--echo #

=== modified file 'mysql-test/t/ctype_eucjpms.test'
--- a/mysql-test/t/ctype_eucjpms.test	2008-02-04 07:10:40 +0000
+++ b/mysql-test/t/ctype_eucjpms.test	2009-11-27 07:42:35 +0000
@@ -381,3 +381,63 @@ select hex(convert(_eucjpms 0xA5FE41 usi
 # the next character, which is a single byte character 0x41.
 select hex(convert(_eucjpms 0x8FABF841 using ucs2));
 
+
+--echo #
+--echo # Start of 5.5 tests
+--echo #
+
+--echo #
+--echo # Testing WL#4583 Case conversion in Asian character sets 
+--echo #
+#
+# Populate t1 with all hex digits
+#
+SET NAMES utf8;
+SET collation_connection=eucjpms_japanese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+#
+# Populate tables hi and low with values '00'-'FF'
+#
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+#
+# Populate table t1 with all eucjpms codes:
+# [A1..FE][A1..FE], [8F][A1..FE][A1..FE]
+#
+CREATE TABLE t1 AS SELECT 'XXXXXX' AS code, ' ' AS a LIMIT 0;
+#
+# Populate JIS-X-0208 range
+#
+INSERT INTO t1 (code) SELECT concat(hi, lo)
+FROM hi, lo
+WHERE (hi BETWEEN 'A1' AND 'FE')
+AND   (lo BETWEEN 'A1' AND 'FE')
+ORDER BY hi, lo;
+#
+# Populate JIS-X-0212 range
+#
+INSERT INTO t1 (code) SELECT concat('8F', hi, lo)
+FROM hi, lo
+WHERE
+    (hi BETWEEN 'A1' AND 'FE')
+AND (lo BETWEEN 'A1' AND 'FE')
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+
+SELECT COUNT(*) FROM t1;
+UPDATE t1 SET a=unhex(code);
+#
+# Display all characters that have upper or lower case mapping.
+#
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a)) ORDER BY code;
+
+DROP TABLE t1;
+
+
+--echo #
+--echo # End of 5.5 tests
+--echo #

=== modified file 'mysql-test/t/ctype_euckr.test'
--- a/mysql-test/t/ctype_euckr.test	2009-07-24 06:27:23 +0000
+++ b/mysql-test/t/ctype_euckr.test	2009-11-27 07:42:35 +0000
@@ -107,3 +107,54 @@ SELECT s, hex(a), hex(u), hex(a2) FROM t
 DROP TABLE t1, t2;
 
 --echo End of 5.4 tests
+
+
+
+--echo #
+--echo # Start of 5.5 tests
+--echo #
+
+--echo #
+--echo # Testing WL#4583 Case conversion in Asian character sets 
+--echo #
+#
+# Populate t1 with all hex digits
+#
+SET NAMES utf8;
+SET collation_connection=euckr_korean_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+#
+# Populate tables hi and low with values '00'-'FF'
+#
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+#
+# Populate table t1 with all euckr codes [81..FE][41..5A,61..7A,81..FE]
+#
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE
+    ((hi BETWEEN '81' AND 'FE'))
+AND ((lo BETWEEN '41' AND '5A') OR (lo BETWEEN '61' AND '7A') OR (lo BETWEEN '81' AND 'FE'))
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+SELECT COUNT(*) FROM t1;
+UPDATE t1 SET a=unhex(code);
+#
+# Display all characters that have upper or lower case mapping.
+#
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+
+DROP TABLE t1;
+
+
+
+
+--echo #
+--echo # End of 5.5 tests
+--echo #

=== modified file 'mysql-test/t/ctype_gb2312.test'
--- a/mysql-test/t/ctype_gb2312.test	2008-02-04 07:10:40 +0000
+++ b/mysql-test/t/ctype_gb2312.test	2009-11-27 07:42:35 +0000
@@ -33,3 +33,53 @@ SELECT hex(a) FROM t1 ORDER BY a;
 DROP TABLE t1;
 
 # End of 4.1 tests
+
+
+--echo #
+--echo # Start of 5.5 tests
+--echo #
+
+--echo #
+--echo # Testing WL#4583 Case conversion in Asian character sets 
+--echo #
+#
+# Populate t1 with all hex digits
+#
+SET NAMES utf8;
+SET collation_connection=gb2312_chinese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+#
+# Populate tables hi and low with values '00'-'FF'
+#
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+#
+# Populate table t1 with all gb2312 codes [A1..F7][A1..FE]
+#
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE
+    (hi BETWEEN 'A1' AND 'F7')
+AND (lo BETWEEN 'A1' AND 'FE')
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+SELECT COUNT(*) FROM t1;
+UPDATE t1 SET a=unhex(code);
+#
+# Display all characters that have upper or lower case mapping.
+#
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+
+DROP TABLE t1;
+
+
+
+
+--echo #
+--echo # End of 5.5 tests
+--echo #

=== modified file 'mysql-test/t/ctype_gbk.test'
--- a/mysql-test/t/ctype_gbk.test	2008-04-22 21:14:58 +0000
+++ b/mysql-test/t/ctype_gbk.test	2009-11-27 07:42:35 +0000
@@ -68,3 +68,53 @@ SELECT b FROM t1 GROUP BY 1 LIMIT 1 INTO
 DROP TABLES t1;
 
 --echo End of 5.0 tests
+
+
+--echo #
+--echo # Start of 5.5 tests
+--echo #
+
+--echo #
+--echo # Testing WL#4583 Case conversion in Asian character sets 
+--echo #
+#
+# Populate t1 with all hex digits
+#
+SET NAMES utf8;
+SET collation_connection=gbk_chinese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+#
+# Populate tables hi and low with values '00'-'FF'
+#
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+#
+# Populate table t1 with all gbk codes [81..FE][40..7E,80..FE]
+#
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE
+    ((hi BETWEEN '81' AND 'FE'))
+AND ((lo BETWEEN '40' AND '7E') OR (lo BETWEEN '80' AND 'FE'))
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+SELECT COUNT(*) FROM t1;
+UPDATE t1 SET a=unhex(code);
+#
+# Display all characters that have upper or lower case mapping.
+#
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+
+DROP TABLE t1;
+
+
+
+
+--echo #
+--echo # End of 5.5 tests
+--echo #

=== modified file 'mysql-test/t/ctype_sjis.test'
--- a/mysql-test/t/ctype_sjis.test	2009-05-05 06:55:22 +0000
+++ b/mysql-test/t/ctype_sjis.test	2009-11-27 07:42:35 +0000
@@ -93,3 +93,53 @@ SELECT hex(a), hex(lower(a)), hex(upper(
 DROP TABLE t1;
 
 --echo # End of 5.1 tests
+
+
+--echo #
+--echo # Start of 5.5 tests
+--echo #
+
+--echo #
+--echo # Testing WL#4583 Case conversion in Asian character sets 
+--echo #
+#
+# Populate t1 with all hex digits
+#
+SET NAMES utf8;
+SET collation_connection=sjis_japanese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+#
+# Populate tables hi and low with values '00'-'FF'
+#
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+#
+# Populate table t1 with all sjis codes [81..9F,E0..FC][40..7E,80..fC]
+#
+CREATE TABLE t1 AS
+SELECT concat(hi, lo) AS code, ' ' AS a
+FROM hi, lo
+WHERE
+    ((hi BETWEEN '81' AND '9F') OR (hi BETWEEN 'E0' AND 'FC'))
+AND ((lo BETWEEN '40' AND '7E') OR (lo BETWEEN '80' AND 'FC'))
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+SELECT COUNT(*) FROM t1;
+UPDATE t1 SET a=unhex(code);
+#
+# Display all characters that have upper or lower case mapping.
+#
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
+
+DROP TABLE t1;
+
+
+
+
+--echo #
+--echo # End of 5.5 tests
+--echo #

=== modified file 'mysql-test/t/ctype_ujis.test'
--- a/mysql-test/t/ctype_ujis.test	2008-02-20 18:49:26 +0000
+++ b/mysql-test/t/ctype_ujis.test	2009-11-27 07:42:35 +0000
@@ -1212,3 +1212,64 @@ DROP TABLE t2;
 set names default;
 set character_set_database=default;
 set character_set_server=default;
+
+
+--echo #
+--echo # Start of 5.5 tests
+--echo #
+
+--echo #
+--echo # Testing WL#4583 Case conversion in Asian character sets 
+--echo #
+#
+# Populate t1 with all hex digits
+#
+SET NAMES utf8;
+SET collation_connection=ujis_japanese_ci;
+CREATE TABLE t1 (b VARCHAR(2));
+INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+#
+# Populate tables hi and low with values '00'-'FF'
+#
+CREATE TEMPORARY TABLE hi AS SELECT concat(b1.b, b2.b) AS hi FROM t1 b1, t1 b2;
+CREATE TEMPORARY TABLE lo AS SELECT concat(b1.b, b2.b) AS lo FROM t1 b1, t1 b2;
+DROP TABLE t1;
+#
+# Populate table t1 with all ujis codes:
+# [A1..FE][A1..FE], [8F][A1..FE][A1..FE]
+#
+CREATE TABLE t1 AS SELECT 'XXXXXX' AS code, ' ' AS a LIMIT 0;
+#
+# Populate JIS-X-0208 range
+#
+INSERT INTO t1 (code) SELECT concat(hi, lo)
+FROM hi, lo
+WHERE (hi BETWEEN 'A1' AND 'FE')
+AND   (lo BETWEEN 'A1' AND 'FE')
+ORDER BY hi, lo;
+#
+# Populate JIS-X-0212 range
+#
+INSERT INTO t1 (code) SELECT concat('8F', hi, lo)
+FROM hi, lo
+WHERE
+    (hi BETWEEN 'A1' AND 'FE')
+AND (lo BETWEEN 'A1' AND 'FE')
+ORDER BY hi, lo;
+DROP TEMPORARY TABLE hi, lo;
+SHOW CREATE TABLE t1;
+
+SELECT COUNT(*) FROM t1;
+UPDATE t1 SET a=unhex(code);
+#
+# Display all characters that have upper or lower case mapping.
+#
+SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a)) ORDER BY code;
+
+DROP TABLE t1;
+
+
+--echo #
+--echo # End of 5.5 tests
+--echo #

=== modified file 'strings/ctype-big5.c'
--- a/strings/ctype-big5.c	2008-04-23 06:06:26 +0000
+++ b/strings/ctype-big5.c	2009-11-27 07:42:35 +0000
@@ -176,6 +176,623 @@ static uchar NEAR sort_order_big5[]=
   (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
 };
 
+
+static MY_UNICASE_INFO cA2[256]=
+{
+  /* A200-A20F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A210-A21F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A220-A22F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A230-A23F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A240-A24F */
+  {0xA240,0xA240,0xFFFD},
+  {0xA241,0xA241,0xFF0F},
+  {0xA242,0xA242,0xFF3C},
+  {0xA243,0xA243,0xFF04},
+  {0xA244,0xA244,0x00A5},
+  {0xA245,0xA245,0x3012},
+  {0xA246,0xA246,0x00A2},
+  {0xA247,0xA247,0x00A3},
+  {0xA248,0xA248,0xFF05},
+  {0xA249,0xA249,0xFF20},
+  {0xA24A,0xA24A,0x2103},
+  {0xA24B,0xA24B,0x2109},
+  {0xA24C,0xA24C,0xFE69},
+  {0xA24D,0xA24D,0xFE6A},
+  {0xA24E,0xA24E,0xFE6B},
+  {0xA24F,0xA24F,0x33D5},
+  /* A250-A25F */
+  {0xA250,0xA250,0x339C},
+  {0xA251,0xA251,0x339D},
+  {0xA252,0xA252,0x339E},
+  {0xA253,0xA253,0x33CE},
+  {0xA254,0xA254,0x33A1},
+  {0xA255,0xA255,0x338E},
+  {0xA256,0xA256,0x338F},
+  {0xA257,0xA257,0x33C4},
+  {0xA258,0xA258,0x00B0},
+  {0xA259,0xA259,0x5159},
+  {0xA25A,0xA25A,0x515B},
+  {0xA25B,0xA25B,0x515E},
+  {0xA25C,0xA25C,0x515D},
+  {0xA25D,0xA25D,0x5161},
+  {0xA25E,0xA25E,0x5163},
+  {0xA25F,0xA25F,0x55E7},
+  /* A260-A26F */
+  {0xA260,0xA260,0x74E9},
+  {0xA261,0xA261,0x7CCE},
+  {0xA262,0xA262,0x2581},
+  {0xA263,0xA263,0x2582},
+  {0xA264,0xA264,0x2583},
+  {0xA265,0xA265,0x2584},
+  {0xA266,0xA266,0x2585},
+  {0xA267,0xA267,0x2586},
+  {0xA268,0xA268,0x2587},
+  {0xA269,0xA269,0x2588},
+  {0xA26A,0xA26A,0x258F},
+  {0xA26B,0xA26B,0x258E},
+  {0xA26C,0xA26C,0x258D},
+  {0xA26D,0xA26D,0x258C},
+  {0xA26E,0xA26E,0x258B},
+  {0xA26F,0xA26F,0x258A},
+  /* A270-A27F */
+  {0xA270,0xA270,0x2589},
+  {0xA271,0xA271,0x253C},
+  {0xA272,0xA272,0x2534},
+  {0xA273,0xA273,0x252C},
+  {0xA274,0xA274,0x2524},
+  {0xA275,0xA275,0x251C},
+  {0xA276,0xA276,0x2594},
+  {0xA277,0xA277,0x2500},
+  {0xA278,0xA278,0x2502},
+  {0xA279,0xA279,0x2595},
+  {0xA27A,0xA27A,0x250C},
+  {0xA27B,0xA27B,0x2510},
+  {0xA27C,0xA27C,0x2514},
+  {0xA27D,0xA27D,0x2518},
+  {0xA27E,0xA27E,0x256D},
+  {0x0000,0x0000,0x0000},
+  /* A280-A28F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A290-A29F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A2A0-A2AF */
+  {0x0000,0x0000,0x0000},
+  {0xA2A1,0xA2A1,0x256E},
+  {0xA2A2,0xA2A2,0x2570},
+  {0xA2A3,0xA2A3,0x256F},
+  {0xA2A4,0xA2A4,0x2550},
+  {0xA2A5,0xA2A5,0x255E},
+  {0xA2A6,0xA2A6,0x256A},
+  {0xA2A7,0xA2A7,0x2561},
+  {0xA2A8,0xA2A8,0x25E2},
+  {0xA2A9,0xA2A9,0x25E3},
+  {0xA2AA,0xA2AA,0x25E5},
+  {0xA2AB,0xA2AB,0x25E4},
+  {0xA2AC,0xA2AC,0x2571},
+  {0xA2AD,0xA2AD,0x2572},
+  {0xA2AE,0xA2AE,0x2573},
+  {0xA2AF,0xA2AF,0xFF10},
+  /* A2B0-A2BF */
+  {0xA2B0,0xA2B0,0xFF11},
+  {0xA2B1,0xA2B1,0xFF12},
+  {0xA2B2,0xA2B2,0xFF13},
+  {0xA2B3,0xA2B3,0xFF14},
+  {0xA2B4,0xA2B4,0xFF15},
+  {0xA2B5,0xA2B5,0xFF16},
+  {0xA2B6,0xA2B6,0xFF17},
+  {0xA2B7,0xA2B7,0xFF18},
+  {0xA2B8,0xA2B8,0xFF19},
+  {0xA2B9,0xA2B9,0x2160},
+  {0xA2BA,0xA2BA,0x2161},
+  {0xA2BB,0xA2BB,0x2162},
+  {0xA2BC,0xA2BC,0x2163},
+  {0xA2BD,0xA2BD,0x2164},
+  {0xA2BE,0xA2BE,0x2165},
+  {0xA2BF,0xA2BF,0x2166},
+  /* A2C0-A2CF */
+  {0xA2C0,0xA2C0,0x2167},
+  {0xA2C1,0xA2C1,0x2168},
+  {0xA2C2,0xA2C2,0x2169},
+  {0xA2C3,0xA2C3,0x3021},
+  {0xA2C4,0xA2C4,0x3022},
+  {0xA2C5,0xA2C5,0x3023},
+  {0xA2C6,0xA2C6,0x3024},
+  {0xA2C7,0xA2C7,0x3025},
+  {0xA2C8,0xA2C8,0x3026},
+  {0xA2C9,0xA2C9,0x3027},
+  {0xA2CA,0xA2CA,0x3028},
+  {0xA2CB,0xA2CB,0x3029},
+  {0xA2CC,0xA2CC,0xFFFD},
+  {0xA2CD,0xA2CD,0x5344},
+  {0xA2CE,0xA2CE,0xFFFD},
+  {0xA2CF,0xA2E9,0xFF21},
+  /* A2D0-A2DF */
+  {0xA2D0,0xA2EA,0xFF22},
+  {0xA2D1,0xA2EB,0xFF23},
+  {0xA2D2,0xA2EC,0xFF24},
+  {0xA2D3,0xA2ED,0xFF25},
+  {0xA2D4,0xA2EE,0xFF26},
+  {0xA2D5,0xA2EF,0xFF27},
+  {0xA2D6,0xA2F0,0xFF28},
+  {0xA2D7,0xA2F1,0xFF29},
+  {0xA2D8,0xA2F2,0xFF2A},
+  {0xA2D9,0xA2F3,0xFF2B},
+  {0xA2DA,0xA2F4,0xFF2C},
+  {0xA2DB,0xA2F5,0xFF2D},
+  {0xA2DC,0xA2F6,0xFF2E},
+  {0xA2DD,0xA2F7,0xFF2F},
+  {0xA2DE,0xA2F8,0xFF30},
+  {0xA2DF,0xA2F9,0xFF31},
+  /* A2E0-A2EF */
+  {0xA2E0,0xA2FA,0xFF32},
+  {0xA2E1,0xA2FB,0xFF33},
+  {0xA2E2,0xA2FC,0xFF34},
+  {0xA2E3,0xA2FD,0xFF35},
+  {0xA2E4,0xA2FE,0xFF36},
+  {0xA2E5,0xA340,0xFF37},
+  {0xA2E6,0xA341,0xFF38},
+  {0xA2E7,0xA342,0xFF39},
+  {0xA2E8,0xA343,0xFF3A},
+  {0xA2CF,0xA2E9,0xFF41},
+  {0xA2D0,0xA2EA,0xFF42},
+  {0xA2D1,0xA2EB,0xFF43},
+  {0xA2D2,0xA2EC,0xFF44},
+  {0xA2D3,0xA2ED,0xFF45},
+  {0xA2D4,0xA2EE,0xFF46},
+  {0xA2D5,0xA2EF,0xFF47},
+  /* A2F0-A2FF */
+  {0xA2D6,0xA2F0,0xFF48},
+  {0xA2D7,0xA2F1,0xFF49},
+  {0xA2D8,0xA2F2,0xFF4A},
+  {0xA2D9,0xA2F3,0xFF4B},
+  {0xA2DA,0xA2F4,0xFF4C},
+  {0xA2DB,0xA2F5,0xFF4D},
+  {0xA2DC,0xA2F6,0xFF4E},
+  {0xA2DD,0xA2F7,0xFF4F},
+  {0xA2DE,0xA2F8,0xFF50},
+  {0xA2DF,0xA2F9,0xFF51},
+  {0xA2E0,0xA2FA,0xFF52},
+  {0xA2E1,0xA2FB,0xFF53},
+  {0xA2E2,0xA2FC,0xFF54},
+  {0xA2E3,0xA2FD,0xFF55},
+  {0xA2E4,0xA2FE,0xFF56},
+  {0x0000,0x0000,0x0000}
+};
+
+
+static MY_UNICASE_INFO cA3[256]=
+{
+  /* A300-A30F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A310-A31F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A320-A32F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A330-A33F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A340-A34F */
+  {0xA2E5,0xA340,0xFF57},
+  {0xA2E6,0xA341,0xFF58},
+  {0xA2E7,0xA342,0xFF59},
+  {0xA2E8,0xA343,0xFF5A},
+  {0xA344,0xA35C,0x0391},
+  {0xA345,0xA35D,0x0392},
+  {0xA346,0xA35E,0x0393},
+  {0xA347,0xA35F,0x0394},
+  {0xA348,0xA360,0x0395},
+  {0xA349,0xA361,0x0396},
+  {0xA34A,0xA362,0x0397},
+  {0xA34B,0xA363,0x0398},
+  {0xA34C,0xA364,0x0399},
+  {0xA34D,0xA365,0x039A},
+  {0xA34E,0xA366,0x039B},
+  {0xA34F,0xA367,0x039C},
+  /* A350-A35F */
+  {0xA350,0xA368,0x039D},
+  {0xA351,0xA369,0x039E},
+  {0xA352,0xA36A,0x039F},
+  {0xA353,0xA36B,0x03A0},
+  {0xA354,0xA36C,0x03A1},
+  {0xA355,0xA36D,0x03A3},
+  {0xA356,0xA36E,0x03A4},
+  {0xA357,0xA36F,0x03A5},
+  {0xA358,0xA370,0x03A6},
+  {0xA359,0xA371,0x03A7},
+  {0xA35A,0xA372,0x03A8},
+  {0xA35B,0xA373,0x03A9},
+  {0xA344,0xA35C,0x03B1},
+  {0xA345,0xA35D,0x03B2},
+  {0xA346,0xA35E,0x03B3},
+  {0xA347,0xA35F,0x03B4},
+  /* A360-A36F */
+  {0xA348,0xA360,0x03B5},
+  {0xA349,0xA361,0x03B6},
+  {0xA34A,0xA362,0x03B7},
+  {0xA34B,0xA363,0x03B8},
+  {0xA34C,0xA364,0x03B9},
+  {0xA34D,0xA365,0x03BA},
+  {0xA34E,0xA366,0x03BB},
+  {0xA34F,0xA367,0x03BC},
+  {0xA350,0xA368,0x03BD},
+  {0xA351,0xA369,0x03BE},
+  {0xA352,0xA36A,0x03BF},
+  {0xA353,0xA36B,0x03C0},
+  {0xA354,0xA36C,0x03C1},
+  {0xA355,0xA36D,0x03C3},
+  {0xA356,0xA36E,0x03C4},
+  {0xA357,0xA36F,0x03C5},
+  /* A370-A37F */
+  {0xA358,0xA370,0x03C6},
+  {0xA359,0xA371,0x03C7},
+  {0xA35A,0xA372,0x03C8},
+  {0xA35B,0xA373,0x03C9},
+  {0xA374,0xA374,0x3105},
+  {0xA375,0xA375,0x3106},
+  {0xA376,0xA376,0x3107},
+  {0xA377,0xA377,0x3108},
+  {0xA378,0xA378,0x3109},
+  {0xA379,0xA379,0x310A},
+  {0xA37A,0xA37A,0x310B},
+  {0xA37B,0xA37B,0x310C},
+  {0xA37C,0xA37C,0x310D},
+  {0xA37D,0xA37D,0x310E},
+  {0xA37E,0xA37E,0x310F},
+  {0x0000,0x0000,0x0000},
+  /* A380-A38F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A390-A39F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* A3A0-A3AF */
+  {0x0000,0x0000,0x0000},
+  {0xA3A1,0xA3A1,0x3110},
+  {0xA3A2,0xA3A2,0x3111},
+  {0xA3A3,0xA3A3,0x3112},
+  {0xA3A4,0xA3A4,0x3113},
+  {0xA3A5,0xA3A5,0x3114},
+  {0xA3A6,0xA3A6,0x3115},
+  {0xA3A7,0xA3A7,0x3116},
+  {0xA3A8,0xA3A8,0x3117},
+  {0xA3A9,0xA3A9,0x3118},
+  {0xA3AA,0xA3AA,0x3119},
+  {0xA3AB,0xA3AB,0x311A},
+  {0xA3AC,0xA3AC,0x311B},
+  {0xA3AD,0xA3AD,0x311C},
+  {0xA3AE,0xA3AE,0x311D},
+  {0xA3AF,0xA3AF,0x311E},
+  /* A3B0-A3BF */
+  {0xA3B0,0xA3B0,0x311F},
+  {0xA3B1,0xA3B1,0x3120},
+  {0xA3B2,0xA3B2,0x3121},
+  {0xA3B3,0xA3B3,0x3122},
+  {0xA3B4,0xA3B4,0x3123},
+  {0xA3B5,0xA3B5,0x3124},
+  {0xA3B6,0xA3B6,0x3125},
+  {0xA3B7,0xA3B7,0x3126},
+  {0xA3B8,0xA3B8,0x3127},
+  {0xA3B9,0xA3B9,0x3128},
+  {0xA3BA,0xA3BA,0x3129},
+  {0xA3BB,0xA3BB,0x02D9},
+  {0xA3BC,0xA3BC,0x02C9},
+  {0xA3BD,0xA3BD,0x02CA},
+  {0xA3BE,0xA3BE,0x02C7},
+  {0xA3BF,0xA3BF,0x02CB},
+  /* A3C0-A3CF */
+  {0xA3C0,0xA3C0,0x003F},
+  {0xA3C1,0xA3C1,0x003F},
+  {0xA3C2,0xA3C2,0x003F},
+  {0xA3C3,0xA3C3,0x003F},
+  {0xA3C4,0xA3C4,0x003F},
+  {0xA3C5,0xA3C5,0x003F},
+  {0xA3C6,0xA3C6,0x003F},
+  {0xA3C7,0xA3C7,0x003F},
+  {0xA3C8,0xA3C8,0x003F},
+  {0xA3C9,0xA3C9,0x003F},
+  {0xA3CA,0xA3CA,0x003F},
+  {0xA3CB,0xA3CB,0x003F},
+  {0xA3CC,0xA3CC,0x003F},
+  {0xA3CD,0xA3CD,0x003F},
+  {0xA3CE,0xA3CE,0x003F},
+  {0xA3CF,0xA3CF,0x003F},
+  /* A3D0-A3DF */
+  {0xA3D0,0xA3D0,0x003F},
+  {0xA3D1,0xA3D1,0x003F},
+  {0xA3D2,0xA3D2,0x003F},
+  {0xA3D3,0xA3D3,0x003F},
+  {0xA3D4,0xA3D4,0x003F},
+  {0xA3D5,0xA3D5,0x003F},
+  {0xA3D6,0xA3D6,0x003F},
+  {0xA3D7,0xA3D7,0x003F},
+  {0xA3D8,0xA3D8,0x003F},
+  {0xA3D9,0xA3D9,0x003F},
+  {0xA3DA,0xA3DA,0x003F},
+  {0xA3DB,0xA3DB,0x003F},
+  {0xA3DC,0xA3DC,0x003F},
+  {0xA3DD,0xA3DD,0x003F},
+  {0xA3DE,0xA3DE,0x003F},
+  {0xA3DF,0xA3DF,0x003F},
+  /* A3E0-A3EF */
+  {0xA3E0,0xA3E0,0x003F},
+  {0xA3E1,0xA3E1,0x003F},
+  {0xA3E2,0xA3E2,0x003F},
+  {0xA3E3,0xA3E3,0x003F},
+  {0xA3E4,0xA3E4,0x003F},
+  {0xA3E5,0xA3E5,0x003F},
+  {0xA3E6,0xA3E6,0x003F},
+  {0xA3E7,0xA3E7,0x003F},
+  {0xA3E8,0xA3E8,0x003F},
+  {0xA3E9,0xA3E9,0x003F},
+  {0xA3EA,0xA3EA,0x003F},
+  {0xA3EB,0xA3EB,0x003F},
+  {0xA3EC,0xA3EC,0x003F},
+  {0xA3ED,0xA3ED,0x003F},
+  {0xA3EE,0xA3EE,0x003F},
+  {0xA3EF,0xA3EF,0x003F},
+  /* A3F0-A3FF */
+  {0xA3F0,0xA3F0,0x003F},
+  {0xA3F1,0xA3F1,0x003F},
+  {0xA3F2,0xA3F2,0x003F},
+  {0xA3F3,0xA3F3,0x003F},
+  {0xA3F4,0xA3F4,0x003F},
+  {0xA3F5,0xA3F5,0x003F},
+  {0xA3F6,0xA3F6,0x003F},
+  {0xA3F7,0xA3F7,0x003F},
+  {0xA3F8,0xA3F8,0x003F},
+  {0xA3F9,0xA3F9,0x003F},
+  {0xA3FA,0xA3FA,0x003F},
+  {0xA3FB,0xA3FB,0x003F},
+  {0xA3FC,0xA3FC,0x003F},
+  {0xA3FD,0xA3FD,0x003F},
+  {0xA3FE,0xA3FE,0x003F},
+  {0x0000,0x0000,0x0000}
+};
+
+
+static MY_UNICASE_INFO cC7[256]=
+{
+  /* C700-C70F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* C710-C71F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* C720-C72F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* C730-C73F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* C740-C74F */
+  {0xC740,0xC740,0x30A8},
+  {0xC741,0xC741,0x30A9},
+  {0xC742,0xC742,0x30AA},
+  {0xC743,0xC743,0x30AB},
+  {0xC744,0xC744,0x30AC},
+  {0xC745,0xC745,0x30AD},
+  {0xC746,0xC746,0x30AE},
+  {0xC747,0xC747,0x30AF},
+  {0xC748,0xC748,0x30B0},
+  {0xC749,0xC749,0x30B1},
+  {0xC74A,0xC74A,0x30B2},
+  {0xC74B,0xC74B,0x30B3},
+  {0xC74C,0xC74C,0x30B4},
+  {0xC74D,0xC74D,0x30B5},
+  {0xC74E,0xC74E,0x30B6},
+  {0xC74F,0xC74F,0x30B7},
+  /* C750-C75F */
+  {0xC750,0xC750,0x30B8},
+  {0xC751,0xC751,0x30B9},
+  {0xC752,0xC752,0x30BA},
+  {0xC753,0xC753,0x30BB},
+  {0xC754,0xC754,0x30BC},
+  {0xC755,0xC755,0x30BD},
+  {0xC756,0xC756,0x30BE},
+  {0xC757,0xC757,0x30BF},
+  {0xC758,0xC758,0x30C0},
+  {0xC759,0xC759,0x30C1},
+  {0xC75A,0xC75A,0x30C2},
+  {0xC75B,0xC75B,0x30C3},
+  {0xC75C,0xC75C,0x30C4},
+  {0xC75D,0xC75D,0x30C5},
+  {0xC75E,0xC75E,0x30C6},
+  {0xC75F,0xC75F,0x30C7},
+  /* C760-C76F */
+  {0xC760,0xC760,0x30C8},
+  {0xC761,0xC761,0x30C9},
+  {0xC762,0xC762,0x30CA},
+  {0xC763,0xC763,0x30CB},
+  {0xC764,0xC764,0x30CC},
+  {0xC765,0xC765,0x30CD},
+  {0xC766,0xC766,0x30CE},
+  {0xC767,0xC767,0x30CF},
+  {0xC768,0xC768,0x30D0},
+  {0xC769,0xC769,0x30D1},
+  {0xC76A,0xC76A,0x30D2},
+  {0xC76B,0xC76B,0x30D3},
+  {0xC76C,0xC76C,0x30D4},
+  {0xC76D,0xC76D,0x30D5},
+  {0xC76E,0xC76E,0x30D6},
+  {0xC76F,0xC76F,0x30D7},
+  /* C770-C77F */
+  {0xC770,0xC770,0x30D8},
+  {0xC771,0xC771,0x30D9},
+  {0xC772,0xC772,0x30DA},
+  {0xC773,0xC773,0x30DB},
+  {0xC774,0xC774,0x30DC},
+  {0xC775,0xC775,0x30DD},
+  {0xC776,0xC776,0x30DE},
+  {0xC777,0xC777,0x30DF},
+  {0xC778,0xC778,0x30E0},
+  {0xC779,0xC779,0x30E1},
+  {0xC77A,0xC77A,0x30E2},
+  {0xC77B,0xC77B,0x30E3},
+  {0xC77C,0xC77C,0x30E4},
+  {0xC77D,0xC77D,0x30E5},
+  {0xC77E,0xC77E,0x30E6},
+  {0x0000,0x0000,0x0000},
+  /* C780-C78F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* C790-C79F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* C7A0-C7AF */
+  {0x0000,0x0000,0x0000}, 
+  {0xC7A1,0xC7A1,0x30E7},
+  {0xC7A2,0xC7A2,0x30E8},
+  {0xC7A3,0xC7A3,0x30E9},
+  {0xC7A4,0xC7A4,0x30EA},
+  {0xC7A5,0xC7A5,0x30EB},
+  {0xC7A6,0xC7A6,0x30EC},
+  {0xC7A7,0xC7A7,0x30ED},
+  {0xC7A8,0xC7A8,0x30EE},
+  {0xC7A9,0xC7A9,0x30EF},
+  {0xC7AA,0xC7AA,0x30F0},
+  {0xC7AB,0xC7AB,0x30F1},
+  {0xC7AC,0xC7AC,0x30F2},
+  {0xC7AD,0xC7AD,0x30F3},
+  {0xC7AE,0xC7AE,0x30F4},
+  {0xC7AF,0xC7AF,0x30F5},
+  /* C7B0-C7BF */
+  {0xC7B0,0xC7B0,0x30F6},
+  {0xC7B1,0xC7CC,0x0414},
+  {0xC7B2,0xC7CD,0x0415},
+  {0xC7B3,0xC7CE,0x0401},
+  {0xC7B4,0xC7CF,0x0416},
+  {0xC7B5,0xC7D0,0x0417},
+  {0xC7B6,0xC7D1,0x0418},
+  {0xC7B7,0xC7D2,0x0419},
+  {0xC7B8,0xC7D3,0x041A},
+  {0xC7B9,0xC7D4,0x041B},
+  {0xC7BA,0xC7D5,0x041C},
+  {0xC7BB,0xC7DC,0x0423},
+  {0xC7BC,0xC7DD,0x0424},
+  {0xC7BD,0xC7DE,0x0425},
+  {0xC7BE,0xC7DF,0x0426},
+  {0xC7BF,0xC7E0,0x0427},
+  /* C7C0-C7CF */
+  {0xC7C0,0xC7E1,0x0428},
+  {0xC7C1,0xC7E2,0x0429},
+  {0xC7C2,0xC7E3,0x042A},
+  {0xC7C3,0xC7E4,0x042B},
+  {0xC7C4,0xC7E5,0x042C},
+  {0xC7C5,0xC7E6,0x042D},
+  {0xC7C6,0xC7E7,0x042E},
+  {0xC7C7,0xC7E8,0x042F},
+  {0xC7C8,0xC7C8,0x0430},
+  {0xC7C9,0xC7C9,0x0431},
+  {0xC7CA,0xC7CA,0x0432},
+  {0xC7CB,0xC7CB,0x0433},
+  {0xC7B1,0xC7CC,0x0434},
+  {0xC7B2,0xC7CD,0x0435},
+  {0xC7B3,0xC7CE,0x0451},
+  {0xC7B4,0xC7CF,0x0436},
+  /* C7D0-C7DF */
+  {0xC7B5,0xC7D0,0x0437},
+  {0xC7B6,0xC7D1,0x0438},
+  {0xC7B7,0xC7D2,0x0439},
+  {0xC7B8,0xC7D3,0x043A},
+  {0xC7B9,0xC7D4,0x043B},
+  {0xC7BA,0xC7D5,0x043C},
+  {0xC7D6,0xC7D6,0x043D},
+  {0xC7D7,0xC7D7,0x043E},
+  {0xC7D8,0xC7D8,0x043F},
+  {0xC7D9,0xC7D9,0x0440},
+  {0xC7DA,0xC7DA,0x0441},
+  {0xC7DB,0xC7DB,0x0442},
+  {0xC7BB,0xC7DC,0x0443},
+  {0xC7BC,0xC7DD,0x0444},
+  {0xC7BD,0xC7DE,0x0445},
+  {0xC7BE,0xC7DF,0x0446},
+  /* C7E0-C7EF */
+  {0xC7BF,0xC7E0,0x0447},
+  {0xC7C0,0xC7E1,0x0448},
+  {0xC7C1,0xC7E2,0x0449},
+  {0xC7C2,0xC7E3,0x044A},
+  {0xC7C3,0xC7E4,0x044B},
+  {0xC7C4,0xC7E5,0x044C},
+  {0xC7C5,0xC7E6,0x044D},
+  {0xC7C6,0xC7E7,0x044E},
+  {0xC7C7,0xC7E8,0x044F},
+  {0xC7E9,0xC7E9,0x2460},
+  {0xC7EA,0xC7EA,0x2461},
+  {0xC7EB,0xC7EB,0x2462},
+  {0xC7EC,0xC7EC,0x2463},
+  {0xC7ED,0xC7ED,0x2464},
+  {0xC7EE,0xC7EE,0x2465},
+  {0xC7EF,0xC7EF,0x2466},
+  /* C7F0-C7FF */
+  {0xC7F0,0xC7F0,0x2467},
+  {0xC7F1,0xC7F1,0x2468},
+  {0xC7F2,0xC7F2,0x2469},
+  {0xC7F3,0xC7F3,0x2474},
+  {0xC7F4,0xC7F4,0x2475},
+  {0xC7F5,0xC7F5,0x2476},
+  {0xC7F6,0xC7F6,0x2477},
+  {0xC7F7,0xC7F7,0x2478},
+  {0xC7F8,0xC7F8,0x2479},
+  {0xC7F9,0xC7F9,0x247A},
+  {0xC7FA,0xC7FA,0x247B},
+  {0xC7FB,0xC7FB,0x247C},
+  {0xC7FC,0xC7FC,0x247D},
+  {0xC7FD,0xC7FD,0x003F},
+  {0xC7FE,0xC7FE,0x003F},
+  {0x0000,0x0000,0x0000}
+};
+
+
+static MY_UNICASE_INFO *my_caseinfo_big5[256]=
+{
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, cA2,  cA3,  NULL, NULL, NULL, NULL, /* A */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, cC7,  /* C */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+};
+
+
 static uint16 big5strokexfrm(uint16 i)
 {
   if ((i == 0xA440) || (i == 0xA441))  return 0xA440;
@@ -6393,7 +7010,7 @@ CHARSET_INFO my_charset_big5_chinese_ci=
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_big5,   /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */
@@ -6426,7 +7043,7 @@ CHARSET_INFO my_charset_big5_bin=
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_big5,   /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */

=== modified file 'strings/ctype-cp932.c'
--- a/strings/ctype-cp932.c	2009-05-05 06:55:22 +0000
+++ b/strings/ctype-cp932.c	2009-11-27 07:42:35 +0000
@@ -197,6 +197,1512 @@ static uint mbcharlen_cp932(CHARSET_INFO
 #define cp932code(c,d)	((((uint) (uchar)(c)) << 8) | (uint) (uchar) (d))
 
 
+static MY_UNICASE_INFO c81[256]=
+{
+  /* 8100-810F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8110-811F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8120-812F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8130-813F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  
+  {0x8140,0x8140,0x3000}, /* 8140-814F */
+  {0x8141,0x8141,0x3001},
+  {0x8142,0x8142,0x3002},
+  {0x8143,0x8143,0xFF0C},
+  {0x8144,0x8144,0xFF0E},
+  {0x8145,0x8145,0x30FB},
+  {0x8146,0x8146,0xFF1A},
+  {0x8147,0x8147,0xFF1B},
+  {0x8148,0x8148,0xFF1F},
+  {0x8149,0x8149,0xFF01},
+  {0x814A,0x814A,0x309B},
+  {0x814B,0x814B,0x309C},
+  {0x814C,0x814C,0x00B4},
+  {0x814D,0x814D,0xFF40},
+  {0x814E,0x814E,0x00A8},
+  {0x814F,0x814F,0xFF3E},
+  {0x8150,0x8150,0xFFE3}, /* 8150-815F */
+  {0x8151,0x8151,0xFF3F},
+  {0x8152,0x8152,0x30FD},
+  {0x8153,0x8153,0x30FE},
+  {0x8154,0x8154,0x309D},
+  {0x8155,0x8155,0x309E},
+  {0x8156,0x8156,0x3003},
+  {0x8157,0x8157,0x4EDD},
+  {0x8158,0x8158,0x3005},
+  {0x8159,0x8159,0x3006},
+  {0x815A,0x815A,0x3007},
+  {0x815B,0x815B,0x30FC},
+  {0x815C,0x815C,0x2015},
+  {0x815D,0x815D,0x2010},
+  {0x815E,0x815E,0xFF0F},
+  {0x815F,0x815F,0xFF3C},
+  {0x8160,0x8160,0xFF5E}, /* 8160-816F */
+  {0x8161,0x8161,0x2225},
+  {0x8162,0x8162,0xFF5C},
+  {0x8163,0x8163,0x2026},
+  {0x8164,0x8164,0x2025},
+  {0x8165,0x8165,0x2018},
+  {0x8166,0x8166,0x2019},
+  {0x8167,0x8167,0x201C},
+  {0x8168,0x8168,0x201D},
+  {0x8169,0x8169,0xFF08},
+  {0x816A,0x816A,0xFF09},
+  {0x816B,0x816B,0x3014},
+  {0x816C,0x816C,0x3015},
+  {0x816D,0x816D,0xFF3B},
+  {0x816E,0x816E,0xFF3D},
+  {0x816F,0x816F,0xFF5B},
+  {0x8170,0x8170,0xFF5D}, /* 8170-817F */
+  {0x8171,0x8171,0x3008},
+  {0x8172,0x8172,0x3009},
+  {0x8173,0x8173,0x300A},
+  {0x8174,0x8174,0x300B},
+  {0x8175,0x8175,0x300C},
+  {0x8176,0x8176,0x300D},
+  {0x8177,0x8177,0x300E},
+  {0x8178,0x8178,0x300F},
+  {0x8179,0x8179,0x3010},
+  {0x817A,0x817A,0x3011},
+  {0x817B,0x817B,0xFF0B},
+  {0x817C,0x817C,0xFF0D},
+  {0x817D,0x817D,0x00B1},
+  {0x817E,0x817E,0x00D7},
+  {0,0,0},
+  {0x8180,0x8180,0x00F7}, /* 8180-818F */
+  {0x8181,0x8181,0xFF1D},
+  {0x8182,0x8182,0x2260},
+  {0x8183,0x8183,0xFF1C},
+  {0x8184,0x8184,0xFF1E},
+  {0x8185,0x8185,0x2266},
+  {0x8186,0x8186,0x2267},
+  {0x8187,0x8187,0x221E},
+  {0x8188,0x8188,0x2234},
+  {0x8189,0x8189,0x2642},
+  {0x818A,0x818A,0x2640},
+  {0x818B,0x818B,0x00B0},
+  {0x818C,0x818C,0x2032},
+  {0x818D,0x818D,0x2033},
+  {0x818E,0x818E,0x2103},
+  {0x818F,0x818F,0xFFE5},
+  {0x8190,0x8190,0xFF04}, /* 8190-819F*/
+  {0x8191,0x8191,0xFFE0},
+  {0x8192,0x8192,0xFFE1},
+  {0x8193,0x8193,0xFF05},
+  {0x8194,0x8194,0xFF03},
+  {0x8195,0x8195,0xFF06},
+  {0x8196,0x8196,0xFF0A},
+  {0x8197,0x8197,0xFF20},
+  {0x8198,0x8198,0x00A7},
+  {0x8199,0x8199,0x2606},
+  {0x819A,0x819A,0x2605},
+  {0x819B,0x819B,0x25CB},
+  {0x819C,0x819C,0x25CF},
+  {0x819D,0x819D,0x25CE},
+  {0x819E,0x819E,0x25C7},
+  {0x819F,0x819F,0x25C6},
+  {0x81A0,0x81A0,0x25A1}, /* 81A0-81AF */
+  {0x81A1,0x81A1,0x25A0},
+  {0x81A2,0x81A2,0x25B3},
+  {0x81A3,0x81A3,0x25B2},
+  {0x81A4,0x81A4,0x25BD},
+  {0x81A5,0x81A5,0x25BC},
+  {0x81A6,0x81A6,0x203B},
+  {0x81A7,0x81A7,0x3012},
+  {0x81A8,0x81A8,0x2192},
+  {0x81A9,0x81A9,0x2190},
+  {0x81AA,0x81AA,0x2191},
+  {0x81AB,0x81AB,0x2193},
+  {0x81AC,0x81AC,0x3013},
+  {0x81AD,0x81AD,0x003F},
+  {0x81AE,0x81AE,0x003F},
+  {0x81AF,0x81AF,0x003F},
+  {0x81B0,0x81B0,0x003F}, /* 81B0-81BF */
+  {0x81B1,0x81B1,0x003F},
+  {0x81B2,0x81B2,0x003F},
+  {0x81B3,0x81B3,0x003F},
+  {0x81B4,0x81B4,0x003F},
+  {0x81B5,0x81B5,0x003F},
+  {0x81B6,0x81B6,0x003F},
+  {0x81B7,0x81B7,0x003F},
+  {0x81B8,0x81B8,0x2208},
+  {0x81B9,0x81B9,0x220B},
+  {0x81BA,0x81BA,0x2286},
+  {0x81BB,0x81BB,0x2287},
+  {0x81BC,0x81BC,0x2282},
+  {0x81BD,0x81BD,0x2283},
+  {0x81BE,0x81BE,0x222A},
+  {0x81BF,0x81BF,0x2229},
+  {0x81C0,0x81C0,0x003F}, /* 81C0-81CF */
+  {0x81C1,0x81C1,0x003F},
+  {0x81C2,0x81C2,0x003F},
+  {0x81C3,0x81C3,0x003F},
+  {0x81C4,0x81C4,0x003F},
+  {0x81C5,0x81C5,0x003F},
+  {0x81C6,0x81C6,0x003F},
+  {0x81C7,0x81C7,0x003F},
+  {0x81C8,0x81C8,0x2227},
+  {0x81C9,0x81C9,0x2228},
+  {0x81CA,0x81CA,0xFFE2},
+  {0x81CB,0x81CB,0x21D2},
+  {0x81CC,0x81CC,0x21D4},
+  {0x81CD,0x81CD,0x2200},
+  {0x81CE,0x81CE,0x2203},
+  {0x81CF,0x81CF,0x003F},
+  {0x81D0,0x81D0,0x003F}, /* 81D0-81DF */
+  {0x81D1,0x81D1,0x003F},
+  {0x81D2,0x81D2,0x003F},
+  {0x81D3,0x81D3,0x003F},
+  {0x81D4,0x81D4,0x003F},
+  {0x81D5,0x81D5,0x003F},
+  {0x81D6,0x81D6,0x003F},
+  {0x81D7,0x81D7,0x003F},
+  {0x81D8,0x81D8,0x003F},
+  {0x81D9,0x81D9,0x003F},
+  {0x81DA,0x81DA,0x2220},
+  {0x81DB,0x81DB,0x22A5},
+  {0x81DC,0x81DC,0x2312},
+  {0x81DD,0x81DD,0x2202},
+  {0x81DE,0x81DE,0x2207},
+  {0x81DF,0x81DF,0x2261},
+  {0x81E0,0x81E0,0x2252}, /* 81E0-81EF */
+  {0x81E1,0x81E1,0x226A},
+  {0x81E2,0x81E2,0x226B},
+  {0x81E3,0x81E3,0x221A},
+  {0x81E4,0x81E4,0x223D},
+  {0x81E5,0x81E5,0x221D},
+  {0x81E6,0x81E6,0x2235},
+  {0x81E7,0x81E7,0x222B},
+  {0x81E8,0x81E8,0x222C},
+  {0x81E9,0x81E9,0x003F},
+  {0x81EA,0x81EA,0x003F},
+  {0x81EB,0x81EB,0x003F},
+  {0x81EC,0x81EC,0x003F},
+  {0x81ED,0x81ED,0x003F},
+  {0x81EE,0x81EE,0x003F},
+  {0x81EF,0x81EF,0x003F},
+  {0x81F0,0x81F0,0x212B}, /* 81F0-81FF */
+  {0x81F1,0x81F1,0x2030},
+  {0x81F2,0x81F2,0x266F},
+  {0x81F3,0x81F3,0x266D},
+  {0x81F4,0x81F4,0x266A},
+  {0x81F5,0x81F5,0x2020},
+  {0x81F6,0x81F6,0x2021},
+  {0x81F7,0x81F7,0x00B6},
+  {0x81F8,0x81F8,0x003F},
+  {0x81F9,0x81F9,0x003F},
+  {0x81FA,0x81FA,0x003F},
+  {0x81FB,0x81FB,0x003F},
+  {0x81FC,0x81FC,0x25EF},
+  {0,0,0},
+  {0,0,0},
+  {0,0,0},
+};
+
+
+static MY_UNICASE_INFO c82[256]=
+{
+  /* 8200-820F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8210-821F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8220-822F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8230-823F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+
+  {0x8240,0x8240,0x003F}, /* 8240-824F */
+  {0x8241,0x8241,0x003F},
+  {0x8242,0x8242,0x003F},
+  {0x8243,0x8243,0x003F},
+  {0x8244,0x8244,0x003F},
+  {0x8245,0x8245,0x003F},
+  {0x8246,0x8246,0x003F},
+  {0x8247,0x8247,0x003F},
+  {0x8248,0x8248,0x003F},
+  {0x8249,0x8249,0x003F},
+  {0x824A,0x824A,0x003F},
+  {0x824B,0x824B,0x003F},
+  {0x824C,0x824C,0x003F},
+  {0x824D,0x824D,0x003F},
+  {0x824E,0x824E,0x003F},
+  {0x824F,0x824F,0xFF10},
+  {0x8250,0x8250,0xFF11}, /* 8250-825F */
+  {0x8251,0x8251,0xFF12},
+  {0x8252,0x8252,0xFF13},
+  {0x8253,0x8253,0xFF14},
+  {0x8254,0x8254,0xFF15},
+  {0x8255,0x8255,0xFF16},
+  {0x8256,0x8256,0xFF17},
+  {0x8257,0x8257,0xFF18},
+  {0x8258,0x8258,0xFF19},
+  {0x8259,0x8259,0x003F},
+  {0x825A,0x825A,0x003F},
+  {0x825B,0x825B,0x003F},
+  {0x825C,0x825C,0x003F},
+  {0x825D,0x825D,0x003F},
+  {0x825E,0x825E,0x003F},
+  {0x825F,0x825F,0x003F},
+  {0x8260,0x8281,0xFF21}, /* 8260-826F */
+  {0x8261,0x8282,0xFF22},
+  {0x8262,0x8283,0xFF23},
+  {0x8263,0x8284,0xFF24},
+  {0x8264,0x8285,0xFF25},
+  {0x8265,0x8286,0xFF26},
+  {0x8266,0x8287,0xFF27},
+  {0x8267,0x8288,0xFF28},
+  {0x8268,0x8289,0xFF29},
+  {0x8269,0x828A,0xFF2A},
+  {0x826A,0x828B,0xFF2B},
+  {0x826B,0x828C,0xFF2C},
+  {0x826C,0x828D,0xFF2D},
+  {0x826D,0x828E,0xFF2E},
+  {0x826E,0x828F,0xFF2F},
+  {0x826F,0x8290,0xFF30},
+  {0x8270,0x8291,0xFF31}, /* 8270-827F */
+  {0x8271,0x8292,0xFF32},
+  {0x8272,0x8293,0xFF33},
+  {0x8273,0x8294,0xFF34},
+  {0x8274,0x8295,0xFF35},
+  {0x8275,0x8296,0xFF36},
+  {0x8276,0x8297,0xFF37},
+  {0x8277,0x8298,0xFF38},
+  {0x8278,0x8299,0xFF39},
+  {0x8279,0x829A,0xFF3A},
+  {0x827A,0x827A,0x003F},
+  {0x827B,0x827B,0x003F},
+  {0x827C,0x827C,0x003F},
+  {0x827D,0x827D,0x003F},
+  {0x827E,0x827E,0x003F},
+  {0,0,0},
+  {0x8280,0x8280,0x003F}, /* 8280-828F */
+  {0x8260,0x8281,0xFF41},
+  {0x8261,0x8282,0xFF42},
+  {0x8262,0x8283,0xFF43},
+  {0x8263,0x8284,0xFF44},
+  {0x8264,0x8285,0xFF45},
+  {0x8265,0x8286,0xFF46},
+  {0x8266,0x8287,0xFF47},
+  {0x8267,0x8288,0xFF48},
+  {0x8268,0x8289,0xFF49},
+  {0x8269,0x828A,0xFF4A},
+  {0x826A,0x828B,0xFF4B},
+  {0x826B,0x828C,0xFF4C},
+  {0x826C,0x828D,0xFF4D},
+  {0x826D,0x828E,0xFF4E},
+  {0x826E,0x828F,0xFF4F},
+  {0x826F,0x8290,0xFF50}, /* 8290-829F */
+  {0x8270,0x8291,0xFF51},
+  {0x8271,0x8292,0xFF52},
+  {0x8272,0x8293,0xFF53},
+  {0x8273,0x8294,0xFF54},
+  {0x8274,0x8295,0xFF55},
+  {0x8275,0x8296,0xFF56},
+  {0x8276,0x8297,0xFF57},
+  {0x8277,0x8298,0xFF58},
+  {0x8278,0x8299,0xFF59},
+  {0x8279,0x829A,0xFF5A},
+  {0x829B,0x829B,0x003F},
+  {0x829C,0x829C,0x003F},
+  {0x829D,0x829D,0x003F},
+  {0x829E,0x829E,0x003F},
+  {0x829F,0x829F,0x3041},
+  {0x82A0,0x82A0,0x3042}, /* 82A0-82AF */
+  {0x82A1,0x82A1,0x3043},
+  {0x82A2,0x82A2,0x3044},
+  {0x82A3,0x82A3,0x3045},
+  {0x82A4,0x82A4,0x3046},
+  {0x82A5,0x82A5,0x3047},
+  {0x82A6,0x82A6,0x3048},
+  {0x82A7,0x82A7,0x3049},
+  {0x82A8,0x82A8,0x304A},
+  {0x82A9,0x82A9,0x304B},
+  {0x82AA,0x82AA,0x304C},
+  {0x82AB,0x82AB,0x304D},
+  {0x82AC,0x82AC,0x304E},
+  {0x82AD,0x82AD,0x304F},
+  {0x82AE,0x82AE,0x3050},
+  {0x82AF,0x82AF,0x3051},
+  {0x82B0,0x82B0,0x3052}, /* 82B0-82BF */
+  {0x82B1,0x82B1,0x3053},
+  {0x82B2,0x82B2,0x3054},
+  {0x82B3,0x82B3,0x3055},
+  {0x82B4,0x82B4,0x3056},
+  {0x82B5,0x82B5,0x3057},
+  {0x82B6,0x82B6,0x3058},
+  {0x82B7,0x82B7,0x3059},
+  {0x82B8,0x82B8,0x305A},
+  {0x82B9,0x82B9,0x305B},
+  {0x82BA,0x82BA,0x305C},
+  {0x82BB,0x82BB,0x305D},
+  {0x82BC,0x82BC,0x305E},
+  {0x82BD,0x82BD,0x305F},
+  {0x82BE,0x82BE,0x3060},
+  {0x82BF,0x82BF,0x3061},
+  {0x82C0,0x82C0,0x3062}, /* 82C0-82CF */
+  {0x82C1,0x82C1,0x3063},
+  {0x82C2,0x82C2,0x3064},
+  {0x82C3,0x82C3,0x3065},
+  {0x82C4,0x82C4,0x3066},
+  {0x82C5,0x82C5,0x3067},
+  {0x82C6,0x82C6,0x3068},
+  {0x82C7,0x82C7,0x3069},
+  {0x82C8,0x82C8,0x306A},
+  {0x82C9,0x82C9,0x306B},
+  {0x82CA,0x82CA,0x306C},
+  {0x82CB,0x82CB,0x306D},
+  {0x82CC,0x82CC,0x306E},
+  {0x82CD,0x82CD,0x306F},
+  {0x82CE,0x82CE,0x3070},
+  {0x82CF,0x82CF,0x3071},
+  {0x82D0,0x82D0,0x3072}, /* 82D0-82DF */
+  {0x82D1,0x82D1,0x3073},
+  {0x82D2,0x82D2,0x3074},
+  {0x82D3,0x82D3,0x3075},
+  {0x82D4,0x82D4,0x3076},
+  {0x82D5,0x82D5,0x3077},
+  {0x82D6,0x82D6,0x3078},
+  {0x82D7,0x82D7,0x3079},
+  {0x82D8,0x82D8,0x307A},
+  {0x82D9,0x82D9,0x307B},
+  {0x82DA,0x82DA,0x307C},
+  {0x82DB,0x82DB,0x307D},
+  {0x82DC,0x82DC,0x307E},
+  {0x82DD,0x82DD,0x307F},
+  {0x82DE,0x82DE,0x3080},
+  {0x82DF,0x82DF,0x3081},
+  {0x82E0,0x82E0,0x3082}, /* 82E0-82EF */
+  {0x82E1,0x82E1,0x3083},
+  {0x82E2,0x82E2,0x3084},
+  {0x82E3,0x82E3,0x3085},
+  {0x82E4,0x82E4,0x3086},
+  {0x82E5,0x82E5,0x3087},
+  {0x82E6,0x82E6,0x3088},
+  {0x82E7,0x82E7,0x3089},
+  {0x82E8,0x82E8,0x308A},
+  {0x82E9,0x82E9,0x308B},
+  {0x82EA,0x82EA,0x308C},
+  {0x82EB,0x82EB,0x308D},
+  {0x82EC,0x82EC,0x308E},
+  {0x82ED,0x82ED,0x308F},
+  {0x82EE,0x82EE,0x3090},
+  {0x82EF,0x82EF,0x3091},
+  {0x82F0,0x82F0,0x3092}, /* 82F0-82FF */
+  {0x82F1,0x82F1,0x3093},
+  {0x82F2,0x82F2,0x003F},
+  {0x82F3,0x82F3,0x003F},
+  {0x82F4,0x82F4,0x003F},
+  {0x82F5,0x82F5,0x003F},
+  {0x82F6,0x82F6,0x003F},
+  {0x82F7,0x82F7,0x003F},
+  {0x82F8,0x82F8,0x003F},
+  {0x82F9,0x82F9,0x003F},
+  {0x82FA,0x82FA,0x003F},
+  {0x82FB,0x82FB,0x003F},
+  {0x82FC,0x82FC,0x003F},
+  {0,0,0}
+};
+
+
+static MY_UNICASE_INFO c83[256]=
+{
+  /* 8300-830F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8310-831F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8320-832F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8330-833F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+
+  {0x8340,0x8340,0x30A1}, /* 8340 */
+  {0x8341,0x8341,0x30A2},
+  {0x8342,0x8342,0x30A3},
+  {0x8343,0x8343,0x30A4},
+  {0x8344,0x8344,0x30A5},
+  {0x8345,0x8345,0x30A6},
+  {0x8346,0x8346,0x30A7},
+  {0x8347,0x8347,0x30A8},
+  {0x8348,0x8348,0x30A9},
+  {0x8349,0x8349,0x30AA},
+  {0x834A,0x834A,0x30AB},
+  {0x834B,0x834B,0x30AC},
+  {0x834C,0x834C,0x30AD},
+  {0x834D,0x834D,0x30AE},
+  {0x834E,0x834E,0x30AF},
+  {0x834F,0x834F,0x30B0},
+  {0x8350,0x8350,0x30B1}, /* 8350 */
+  {0x8351,0x8351,0x30B2},
+  {0x8352,0x8352,0x30B3},
+  {0x8353,0x8353,0x30B4},
+  {0x8354,0x8354,0x30B5},
+  {0x8355,0x8355,0x30B6},
+  {0x8356,0x8356,0x30B7},
+  {0x8357,0x8357,0x30B8},
+  {0x8358,0x8358,0x30B9},
+  {0x8359,0x8359,0x30BA},
+  {0x835A,0x835A,0x30BB},
+  {0x835B,0x835B,0x30BC},
+  {0x835C,0x835C,0x30BD},
+  {0x835D,0x835D,0x30BE},
+  {0x835E,0x835E,0x30BF},
+  {0x835F,0x835F,0x30C0},
+  {0x8360,0x8360,0x30C1}, /* 8360 */
+  {0x8361,0x8361,0x30C2},
+  {0x8362,0x8362,0x30C3},
+  {0x8363,0x8363,0x30C4},
+  {0x8364,0x8364,0x30C5},
+  {0x8365,0x8365,0x30C6},
+  {0x8366,0x8366,0x30C7},
+  {0x8367,0x8367,0x30C8},
+  {0x8368,0x8368,0x30C9},
+  {0x8369,0x8369,0x30CA},
+  {0x836A,0x836A,0x30CB},
+  {0x836B,0x836B,0x30CC},
+  {0x836C,0x836C,0x30CD},
+  {0x836D,0x836D,0x30CE},
+  {0x836E,0x836E,0x30CF},
+  {0x836F,0x836F,0x30D0},
+  {0x8370,0x8370,0x30D1}, /* 8370 */
+  {0x8371,0x8371,0x30D2},
+  {0x8372,0x8372,0x30D3},
+  {0x8373,0x8373,0x30D4},
+  {0x8374,0x8374,0x30D5},
+  {0x8375,0x8375,0x30D6},
+  {0x8376,0x8376,0x30D7},
+  {0x8377,0x8377,0x30D8},
+  {0x8378,0x8378,0x30D9},
+  {0x8379,0x8379,0x30DA},
+  {0x837A,0x837A,0x30DB},
+  {0x837B,0x837B,0x30DC},
+  {0x837C,0x837C,0x30DD},
+  {0x837D,0x837D,0x30DE},
+  {0x837E,0x837E,0x30DF},
+  {0,0,0},
+  {0x8380,0x8380,0x30E0}, /* 8380 */
+  {0x8381,0x8381,0x30E1},
+  {0x8382,0x8382,0x30E2},
+  {0x8383,0x8383,0x30E3},
+  {0x8384,0x8384,0x30E4},
+  {0x8385,0x8385,0x30E5},
+  {0x8386,0x8386,0x30E6},
+  {0x8387,0x8387,0x30E7},
+  {0x8388,0x8388,0x30E8},
+  {0x8389,0x8389,0x30E9},
+  {0x838A,0x838A,0x30EA},
+  {0x838B,0x838B,0x30EB},
+  {0x838C,0x838C,0x30EC},
+  {0x838D,0x838D,0x30ED},
+  {0x838E,0x838E,0x30EE},
+  {0x838F,0x838F,0x30EF},
+  {0x8390,0x8390,0x30F0}, /* 8390 */
+  {0x8391,0x8391,0x30F1},
+  {0x8392,0x8392,0x30F2},
+  {0x8393,0x8393,0x30F3},
+  {0x8394,0x8394,0x30F4},
+  {0x8395,0x8395,0x30F5},
+  {0x8396,0x8396,0x30F6},
+  {0x8397,0x8397,0x003F},
+  {0x8398,0x8398,0x003F},
+  {0x8399,0x8399,0x003F},
+  {0x839A,0x839A,0x003F},
+  {0x839B,0x839B,0x003F},
+  {0x839C,0x839C,0x003F},
+  {0x839D,0x839D,0x003F},
+  {0x839E,0x839E,0x003F},
+  {0x839F,0x83BF,0x0391},
+  {0x83A0,0x83C0,0x0392}, /* 83A0 */
+  {0x83A1,0x83C1,0x0393},
+  {0x83A2,0x83C2,0x0394},
+  {0x83A3,0x83C3,0x0395},
+  {0x83A4,0x83C4,0x0396},
+  {0x83A5,0x83C5,0x0397},
+  {0x83A6,0x83C6,0x0398},
+  {0x83A7,0x83C7,0x0399},
+  {0x83A8,0x83C8,0x039A},
+  {0x83A9,0x83C9,0x039B},
+  {0x83AA,0x83CA,0x039C},
+  {0x83AB,0x83CB,0x039D},
+  {0x83AC,0x83CC,0x039E},
+  {0x83AD,0x83CD,0x039F},
+  {0x83AE,0x83CE,0x03A0},
+  {0x83AF,0x83CF,0x03A1},
+  {0x83B0,0x83D0,0x03A3}, /* 83B0 */
+  {0x83B1,0x83D1,0x03A4},
+  {0x83B2,0x83D2,0x03A5},
+  {0x83B3,0x83D3,0x03A6},
+  {0x83B4,0x83D4,0x03A7},
+  {0x83B5,0x83D5,0x03A8},
+  {0x83B6,0x83D6,0x03A9},
+  {0x83B7,0x83B7,0x003F},
+  {0x83B8,0x83B8,0x003F},
+  {0x83B9,0x83B9,0x003F},
+  {0x83BA,0x83BA,0x003F},
+  {0x83BB,0x83BB,0x003F},
+  {0x83BC,0x83BC,0x003F},
+  {0x83BD,0x83BD,0x003F},
+  {0x83BE,0x83BE,0x003F},
+  {0x839F,0x83BF,0x03B1},
+  {0x83A0,0x83C0,0x03B2}, /* 83C0 */
+  {0x83A1,0x83C1,0x03B3},
+  {0x83A2,0x83C2,0x03B4},
+  {0x83A3,0x83C3,0x03B5},
+  {0x83A4,0x83C4,0x03B6},
+  {0x83A5,0x83C5,0x03B7},
+  {0x83A6,0x83C6,0x03B8},
+  {0x83A7,0x83C7,0x03B9},
+  {0x83A8,0x83C8,0x03BA},
+  {0x83A9,0x83C9,0x03BB},
+  {0x83AA,0x83CA,0x03BC},
+  {0x83AB,0x83CB,0x03BD},
+  {0x83AC,0x83CC,0x03BE},
+  {0x83AD,0x83CD,0x03BF},
+  {0x83AE,0x83CE,0x03C0},
+  {0x83AF,0x83CF,0x03C1},
+  {0x83B0,0x83D0,0x03C3}, /* 83D0 */
+  {0x83B1,0x83D1,0x03C4},
+  {0x83B2,0x83D2,0x03C5},
+  {0x83B3,0x83D3,0x03C6},
+  {0x83B4,0x83D4,0x03C7},
+  {0x83B5,0x83D5,0x03C8},
+  {0x83B6,0x83D6,0x03C9},
+  {0x83D7,0x83D7,0x003F},
+  {0x83D8,0x83D8,0x003F},
+  {0x83D9,0x83D9,0x003F},
+  {0x83DA,0x83DA,0x003F},
+  {0x83DB,0x83DB,0x003F},
+  {0x83DC,0x83DC,0x003F},
+  {0x83DD,0x83DD,0x003F},
+  {0x83DE,0x83DE,0x003F},
+  {0x83DF,0x83DF,0x003F},
+  {0x83E0,0x83E0,0x003F}, /* 83E0 */
+  {0x83E1,0x83E1,0x003F},
+  {0x83E2,0x83E2,0x003F},
+  {0x83E3,0x83E3,0x003F},
+  {0x83E4,0x83E4,0x003F},
+  {0x83E5,0x83E5,0x003F},
+  {0x83E6,0x83E6,0x003F},
+  {0x83E7,0x83E7,0x003F},
+  {0x83E8,0x83E8,0x003F},
+  {0x83E9,0x83E9,0x003F},
+  {0x83EA,0x83EA,0x003F},
+  {0x83EB,0x83EB,0x003F},
+  {0x83EC,0x83EC,0x003F},
+  {0x83ED,0x83ED,0x003F},
+  {0x83EE,0x83EE,0x003F},
+  {0x83EF,0x83EF,0x003F},
+  {0x83F0,0x83F0,0x003F}, /* 83F0 */
+  {0x83F1,0x83F1,0x003F},
+  {0x83F2,0x83F2,0x003F},
+  {0x83F3,0x83F3,0x003F},
+  {0x83F4,0x83F4,0x003F},
+  {0x83F5,0x83F5,0x003F},
+  {0x83F6,0x83F6,0x003F},
+  {0x83F7,0x83F7,0x003F},
+  {0x83F8,0x83F8,0x003F},
+  {0x83F9,0x83F9,0x003F},
+  {0x83FA,0x83FA,0x003F},
+  {0x83FB,0x83FB,0x003F},
+  {0x83FC,0x83FC,0x003F},
+  {0,0,0},
+  {0,0,0},
+  {0,0,0}
+};
+
+
+static MY_UNICASE_INFO c84[256]=
+{
+  /* 8400-840F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8410-841F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8420-842F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8430-843F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+
+  {0x8440,0x8470,0x0410}, /* 8440 */
+  {0x8441,0x8471,0x0411},
+  {0x8442,0x8472,0x0412},
+  {0x8443,0x8473,0x0413},
+  {0x8444,0x8474,0x0414},
+  {0x8445,0x8475,0x0415},
+  {0x8446,0x8476,0x0401},
+  {0x8447,0x8477,0x0416},
+  {0x8448,0x8478,0x0417},
+  {0x8449,0x8479,0x0418},
+  {0x844A,0x847A,0x0419},
+  {0x844B,0x847B,0x041A},
+  {0x844C,0x847C,0x041B},
+  {0x844D,0x847D,0x041C},
+  {0x844E,0x847E,0x041D},
+  {0x844F,0x8480,0x041E},
+  {0x8450,0x8481,0x041F}, /* 8450 */
+  {0x8451,0x8482,0x0420},
+  {0x8452,0x8483,0x0421},
+  {0x8453,0x8484,0x0422},
+  {0x8454,0x8485,0x0423},
+  {0x8455,0x8486,0x0424},
+  {0x8456,0x8487,0x0425},
+  {0x8457,0x8488,0x0426},
+  {0x8458,0x8489,0x0427},
+  {0x8459,0x848A,0x0428},
+  {0x845A,0x848B,0x0429},
+  {0x845B,0x848C,0x042A},
+  {0x845C,0x848D,0x042B},
+  {0x845D,0x848E,0x042C},
+  {0x845E,0x848F,0x042D},
+  {0x845F,0x8490,0x042E},
+  {0x8460,0x8491,0x042F}, /* 8460 */
+  {0x8461,0x8461,0x003F},
+  {0x8462,0x8462,0x003F},
+  {0x8463,0x8463,0x003F},
+  {0x8464,0x8464,0x003F},
+  {0x8465,0x8465,0x003F},
+  {0x8466,0x8466,0x003F},
+  {0x8467,0x8467,0x003F},
+  {0x8468,0x8468,0x003F},
+  {0x8469,0x8469,0x003F},
+  {0x846A,0x846A,0x003F},
+  {0x846B,0x846B,0x003F},
+  {0x846C,0x846C,0x003F},
+  {0x846D,0x846D,0x003F},
+  {0x846E,0x846E,0x003F},
+  {0x846F,0x846F,0x003F},
+  {0x8440,0x8470,0x0430}, /* 8470 */
+  {0x8441,0x8471,0x0431},
+  {0x8442,0x8472,0x0432},
+  {0x8443,0x8473,0x0433},
+  {0x8444,0x8474,0x0434},
+  {0x8445,0x8475,0x0435},
+  {0x8446,0x8476,0x0451},
+  {0x8447,0x8477,0x0436},
+  {0x8448,0x8478,0x0437},
+  {0x8449,0x8479,0x0438},
+  {0x844A,0x847A,0x0439},
+  {0x844B,0x847B,0x043A},
+  {0x844C,0x847C,0x043B},
+  {0x844D,0x847D,0x043C},
+  {0x844E,0x847E,0x043D},
+  {0,0,0},
+  {0x844F,0x8480,0x043E}, /* 8480 */
+  {0x8450,0x8481,0x043F},
+  {0x8451,0x8482,0x0440},
+  {0x8452,0x8483,0x0441},
+  {0x8453,0x8484,0x0442},
+  {0x8454,0x8485,0x0443},
+  {0x8455,0x8486,0x0444},
+  {0x8456,0x8487,0x0445},
+  {0x8457,0x8488,0x0446},
+  {0x8458,0x8489,0x0447},
+  {0x8459,0x848A,0x0448},
+  {0x845A,0x848B,0x0449},
+  {0x845B,0x848C,0x044A},
+  {0x845C,0x848D,0x044B},
+  {0x845D,0x848E,0x044C},
+  {0x845E,0x848F,0x044D},
+  {0x845F,0x8490,0x044E}, /* 8490 */
+  {0x8460,0x8491,0x044F},
+  {0x8492,0x8492,0x003F},
+  {0x8493,0x8493,0x003F},
+  {0x8494,0x8494,0x003F},
+  {0x8495,0x8495,0x003F},
+  {0x8496,0x8496,0x003F},
+  {0x8497,0x8497,0x003F},
+  {0x8498,0x8498,0x003F},
+  {0x8499,0x8499,0x003F},
+  {0x849A,0x849A,0x003F},
+  {0x849B,0x849B,0x003F},
+  {0x849C,0x849C,0x003F},
+  {0x849D,0x849D,0x003F},
+  {0x849E,0x849E,0x003F},
+  {0x849F,0x849F,0x2500},
+  {0x84A0,0x84A0,0x2502}, /* 84A0 */
+  {0x84A1,0x84A1,0x250C},
+  {0x84A2,0x84A2,0x2510},
+  {0x84A3,0x84A3,0x2518},
+  {0x84A4,0x84A4,0x2514},
+  {0x84A5,0x84A5,0x251C},
+  {0x84A6,0x84A6,0x252C},
+  {0x84A7,0x84A7,0x2524},
+  {0x84A8,0x84A8,0x2534},
+  {0x84A9,0x84A9,0x253C},
+  {0x84AA,0x84AA,0x2501},
+  {0x84AB,0x84AB,0x2503},
+  {0x84AC,0x84AC,0x250F},
+  {0x84AD,0x84AD,0x2513},
+  {0x84AE,0x84AE,0x251B},
+  {0x84AF,0x84AF,0x2517},
+  {0x84B0,0x84B0,0x2523}, /* 84B0 */
+  {0x84B1,0x84B1,0x2533},
+  {0x84B2,0x84B2,0x252B},
+  {0x84B3,0x84B3,0x253B},
+  {0x84B4,0x84B4,0x254B},
+  {0x84B5,0x84B5,0x2520},
+  {0x84B6,0x84B6,0x252F},
+  {0x84B7,0x84B7,0x2528},
+  {0x84B8,0x84B8,0x2537},
+  {0x84B9,0x84B9,0x253F},
+  {0x84BA,0x84BA,0x251D},
+  {0x84BB,0x84BB,0x2530},
+  {0x84BC,0x84BC,0x2525},
+  {0x84BD,0x84BD,0x2538},
+  {0x84BE,0x84BE,0x2542},
+  {0x84BF,0x84BF,0x003F},
+  {0x84C0,0x84C0,0x003F}, /* 84C0 */
+  {0x84C1,0x84C1,0x003F},
+  {0x84C2,0x84C2,0x003F},
+  {0x84C3,0x84C3,0x003F},
+  {0x84C4,0x84C4,0x003F},
+  {0x84C5,0x84C5,0x003F},
+  {0x84C6,0x84C6,0x003F},
+  {0x84C7,0x84C7,0x003F},
+  {0x84C8,0x84C8,0x003F},
+  {0x84C9,0x84C9,0x003F},
+  {0x84CA,0x84CA,0x003F},
+  {0x84CB,0x84CB,0x003F},
+  {0x84CC,0x84CC,0x003F},
+  {0x84CD,0x84CD,0x003F},
+  {0x84CE,0x84CE,0x003F},
+  {0x84CF,0x84CF,0x003F},
+  {0x84D0,0x84D0,0x003F}, /* 84D0 */
+  {0x84D1,0x84D1,0x003F},
+  {0x84D2,0x84D2,0x003F},
+  {0x84D3,0x84D3,0x003F},
+  {0x84D4,0x84D4,0x003F},
+  {0x84D5,0x84D5,0x003F},
+  {0x84D6,0x84D6,0x003F},
+  {0x84D7,0x84D7,0x003F},
+  {0x84D8,0x84D8,0x003F},
+  {0x84D9,0x84D9,0x003F},
+  {0x84DA,0x84DA,0x003F},
+  {0x84DB,0x84DB,0x003F},
+  {0x84DC,0x84DC,0x003F},
+  {0x84DD,0x84DD,0x003F},
+  {0x84DE,0x84DE,0x003F},
+  {0x84DF,0x84DF,0x003F},
+  {0x84E0,0x84E0,0x003F}, /* 84E0 */
+  {0x84E1,0x84E1,0x003F},
+  {0x84E2,0x84E2,0x003F},
+  {0x84E3,0x84E3,0x003F},
+  {0x84E4,0x84E4,0x003F},
+  {0x84E5,0x84E5,0x003F},
+  {0x84E6,0x84E6,0x003F},
+  {0x84E7,0x84E7,0x003F},
+  {0x84E8,0x84E8,0x003F},
+  {0x84E9,0x84E9,0x003F},
+  {0x84EA,0x84EA,0x003F},
+  {0x84EB,0x84EB,0x003F},
+  {0x84EC,0x84EC,0x003F},
+  {0x84ED,0x84ED,0x003F},
+  {0x84EE,0x84EE,0x003F},
+  {0x84EF,0x84EF,0x003F},
+  {0x84F0,0x84F0,0x003F}, /* 84F0 */
+  {0x84F1,0x84F1,0x003F},
+  {0x84F2,0x84F2,0x003F},
+  {0x84F3,0x84F3,0x003F},
+  {0x84F4,0x84F4,0x003F},
+  {0x84F5,0x84F5,0x003F},
+  {0x84F6,0x84F6,0x003F},
+  {0x84F7,0x84F7,0x003F},
+  {0x84F8,0x84F8,0x003F},
+  {0x84F9,0x84F9,0x003F},
+  {0x84FA,0x84FA,0x003F},
+  {0x84FB,0x84FB,0x003F},
+  {0x84FC,0x84FC,0x003F},
+  {0,0,0},
+  {0,0,0},
+  {0,0,0}
+};
+
+
+static MY_UNICASE_INFO c87[256]=
+{
+  /* 8700-870F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8710-871F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8720-872F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8730-873F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+
+  {0x8740,0x8740,0x2460}, /* 8740 */
+  {0x8741,0x8741,0x2461},
+  {0x8742,0x8742,0x2462},
+  {0x8743,0x8743,0x2463},
+  {0x8744,0x8744,0x2464},
+  {0x8745,0x8745,0x2465},
+  {0x8746,0x8746,0x2466},
+  {0x8747,0x8747,0x2467},
+  {0x8748,0x8748,0x2468},
+  {0x8749,0x8749,0x2469},
+  {0x874A,0x874A,0x246A},
+  {0x874B,0x874B,0x246B},
+  {0x874C,0x874C,0x246C},
+  {0x874D,0x874D,0x246D},
+  {0x874E,0x874E,0x246E},
+  {0x874F,0x874F,0x246F},
+  {0x8750,0x8750,0x2470}, /* 8750 */
+  {0x8751,0x8751,0x2471},
+  {0x8752,0x8752,0x2472},
+  {0x8753,0x8753,0x2473},
+  {0x8754,0xEEEF,0x2160},
+  {0x8755,0xEEF0,0x2161},
+  {0x8756,0xEEF1,0x2162},
+  {0x8757,0xEEF2,0x2163},
+  {0x8758,0xEEF3,0x2164},
+  {0x8759,0xEEF4,0x2165},
+  {0x875A,0xEEF5,0x2166},
+  {0x875B,0xEEF6,0x2167},
+  {0x875C,0xEEF7,0x2168},
+  {0x875D,0xEEF8,0x2169},
+  {0x875E,0x875E,0x003F},
+  {0x875F,0x875F,0x3349},
+  {0x8760,0x8760,0x3314}, /* 8760 */
+  {0x8761,0x8761,0x3322},
+  {0x8762,0x8762,0x334D},
+  {0x8763,0x8763,0x3318},
+  {0x8764,0x8764,0x3327},
+  {0x8765,0x8765,0x3303},
+  {0x8766,0x8766,0x3336},
+  {0x8767,0x8767,0x3351},
+  {0x8768,0x8768,0x3357},
+  {0x8769,0x8769,0x330D},
+  {0x876A,0x876A,0x3326},
+  {0x876B,0x876B,0x3323},
+  {0x876C,0x876C,0x332B},
+  {0x876D,0x876D,0x334A},
+  {0x876E,0x876E,0x333B},
+  {0x876F,0x876F,0x339C},
+  {0x8770,0x8770,0x339D}, /* 8770 */
+  {0x8771,0x8771,0x339E},
+  {0x8772,0x8772,0x338E},
+  {0x8773,0x8773,0x338F},
+  {0x8774,0x8774,0x33C4},
+  {0x8775,0x8775,0x33A1},
+  {0x8776,0x8776,0x003F},
+  {0x8777,0x8777,0x003F},
+  {0x8778,0x8778,0x003F},
+  {0x8779,0x8779,0x003F},
+  {0x877A,0x877A,0x003F},
+  {0x877B,0x877B,0x003F},
+  {0x877C,0x877C,0x003F},
+  {0x877D,0x877D,0x003F},
+  {0x877E,0x877E,0x337B},
+  {0,0,0},
+  {0x8780,0x8780,0x301D}, /* 8780 */
+  {0x8781,0x8781,0x301F},
+  {0x8782,0x8782,0x2116},
+  {0x8783,0x8783,0x33CD},
+  {0x8784,0x8784,0x2121},
+  {0x8785,0x8785,0x32A4},
+  {0x8786,0x8786,0x32A5},
+  {0x8787,0x8787,0x32A6},
+  {0x8788,0x8788,0x32A7},
+  {0x8789,0x8789,0x32A8},
+  {0x878A,0x878A,0x3231},
+  {0x878B,0x878B,0x3232},
+  {0x878C,0x878C,0x3239},
+  {0x878D,0x878D,0x337E},
+  {0x878E,0x878E,0x337D},
+  {0x878F,0x878F,0x337C},
+  {0x8790,0x8790,0x2252}, /* 8790 */
+  {0x8791,0x8791,0x2261},
+  {0x8792,0x8792,0x222B},
+  {0x8793,0x8793,0x222E},
+  {0x8794,0x8794,0x2211},
+  {0x8795,0x8795,0x221A},
+  {0x8796,0x8796,0x22A5},
+  {0x8797,0x8797,0x2220},
+  {0x8798,0x8798,0x221F},
+  {0x8799,0x8799,0x22BF},
+  {0x879A,0x879A,0x2235},
+  {0x879B,0x879B,0x2229},
+  {0x879C,0x879C,0x222A},
+  {0x879D,0x879D,0x003F},
+  {0x879E,0x879E,0x003F},
+  {0x879F,0x879F,0x003F},
+  {0x87A0,0x87A0,0x003F}, /* 87A0 */
+  {0x87A1,0x87A1,0x003F},
+  {0x87A2,0x87A2,0x003F},
+  {0x87A3,0x87A3,0x003F},
+  {0x87A4,0x87A4,0x003F},
+  {0x87A5,0x87A5,0x003F},
+  {0x87A6,0x87A6,0x003F},
+  {0x87A7,0x87A7,0x003F},
+  {0x87A8,0x87A8,0x003F},
+  {0x87A9,0x87A9,0x003F},
+  {0x87AA,0x87AA,0x003F},
+  {0x87AB,0x87AB,0x003F},
+  {0x87AC,0x87AC,0x003F},
+  {0x87AD,0x87AD,0x003F},
+  {0x87AE,0x87AE,0x003F},
+  {0x87AF,0x87AF,0x003F},
+  {0x87B0,0x87B0,0x003F}, /* 87B0 */
+  {0x87B1,0x87B1,0x003F},
+  {0x87B2,0x87B2,0x003F},
+  {0x87B3,0x87B3,0x003F},
+  {0x87B4,0x87B4,0x003F},
+  {0x87B5,0x87B5,0x003F},
+  {0x87B6,0x87B6,0x003F},
+  {0x87B7,0x87B7,0x003F},
+  {0x87B8,0x87B8,0x003F},
+  {0x87B9,0x87B9,0x003F},
+  {0x87BA,0x87BA,0x003F},
+  {0x87BB,0x87BB,0x003F},
+  {0x87BC,0x87BC,0x003F},
+  {0x87BD,0x87BD,0x003F},
+  {0x87BE,0x87BE,0x003F},
+  {0x87BF,0x87BF,0x003F},
+  {0x87C0,0x87C0,0x003F}, /* 87C0 */
+  {0x87C1,0x87C1,0x003F},
+  {0x87C2,0x87C2,0x003F},
+  {0x87C3,0x87C3,0x003F},
+  {0x87C4,0x87C4,0x003F},
+  {0x87C5,0x87C5,0x003F},
+  {0x87C6,0x87C6,0x003F},
+  {0x87C7,0x87C7,0x003F},
+  {0x87C8,0x87C8,0x003F},
+  {0x87C9,0x87C9,0x003F},
+  {0x87CA,0x87CA,0x003F},
+  {0x87CB,0x87CB,0x003F},
+  {0x87CC,0x87CC,0x003F},
+  {0x87CD,0x87CD,0x003F},
+  {0x87CE,0x87CE,0x003F},
+  {0x87CF,0x87CF,0x003F},
+  {0x87D0,0x87D0,0x003F}, /* 87D0 */
+  {0x87D1,0x87D1,0x003F},
+  {0x87D2,0x87D2,0x003F},
+  {0x87D3,0x87D3,0x003F},
+  {0x87D4,0x87D4,0x003F},
+  {0x87D5,0x87D5,0x003F},
+  {0x87D6,0x87D6,0x003F},
+  {0x87D7,0x87D7,0x003F},
+  {0x87D8,0x87D8,0x003F},
+  {0x87D9,0x87D9,0x003F},
+  {0x87DA,0x87DA,0x003F},
+  {0x87DB,0x87DB,0x003F},
+  {0x87DC,0x87DC,0x003F},
+  {0x87DD,0x87DD,0x003F},
+  {0x87DE,0x87DE,0x003F},
+  {0x87DF,0x87DF,0x003F},
+  {0x87E0,0x87E0,0x003F}, /* 87E0 */
+  {0x87E1,0x87E1,0x003F},
+  {0x87E2,0x87E2,0x003F},
+  {0x87E3,0x87E3,0x003F},
+  {0x87E4,0x87E4,0x003F},
+  {0x87E5,0x87E5,0x003F},
+  {0x87E6,0x87E6,0x003F},
+  {0x87E7,0x87E7,0x003F},
+  {0x87E8,0x87E8,0x003F},
+  {0x87E9,0x87E9,0x003F},
+  {0x87EA,0x87EA,0x003F},
+  {0x87EB,0x87EB,0x003F},
+  {0x87EC,0x87EC,0x003F},
+  {0x87ED,0x87ED,0x003F},
+  {0x87EE,0x87EE,0x003F},
+  {0x87EF,0x87EF,0x003F},
+  {0x87F0,0x87F0,0x003F}, /* 87F0 */
+  {0x87F1,0x87F1,0x003F},
+  {0x87F2,0x87F2,0x003F},
+  {0x87F3,0x87F3,0x003F},
+  {0x87F4,0x87F4,0x003F},
+  {0x87F5,0x87F5,0x003F},
+  {0x87F6,0x87F6,0x003F},
+  {0x87F7,0x87F7,0x003F},
+  {0x87F8,0x87F8,0x003F},
+  {0x87F9,0x87F9,0x003F},
+  {0x87FA,0x87FA,0x003F},
+  {0x87FB,0x87FB,0x003F},
+  {0x87FC,0x87FC,0x003F},
+  {0,0,0},
+  {0,0,0},
+  {0,0,0}
+};
+
+
+static MY_UNICASE_INFO cEE[256]=
+{
+  /* EE00-EE0F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* EE10-EE1F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* EE20-EE2F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* EE30-EE3F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+
+  {0xEE40,0xEE40,0x72BE}, /* EE40 */
+  {0xEE41,0xEE41,0x7324},
+  {0xEE42,0xEE42,0xFA16},
+  {0xEE43,0xEE43,0x7377},
+  {0xEE44,0xEE44,0x73BD},
+  {0xEE45,0xEE45,0x73C9},
+  {0xEE46,0xEE46,0x73D6},
+  {0xEE47,0xEE47,0x73E3},
+  {0xEE48,0xEE48,0x73D2},
+  {0xEE49,0xEE49,0x7407},
+  {0xEE4A,0xEE4A,0x73F5},
+  {0xEE4B,0xEE4B,0x7426},
+  {0xEE4C,0xEE4C,0x742A},
+  {0xEE4D,0xEE4D,0x7429},
+  {0xEE4E,0xEE4E,0x742E},
+  {0xEE4F,0xEE4F,0x7462},
+  
+  {0xEE50,0xEE50,0x7489}, /* EE50 */
+  {0xEE51,0xEE51,0x749F},
+  {0xEE52,0xEE52,0x7501},
+  {0xEE53,0xEE53,0x756F},
+  {0xEE54,0xEE54,0x7682},
+  {0xEE55,0xEE55,0x769C},
+  {0xEE56,0xEE56,0x769E},
+  {0xEE57,0xEE57,0x769B},
+  {0xEE58,0xEE58,0x76A6},
+  {0xEE59,0xEE59,0xFA17},
+  {0xEE5A,0xEE5A,0x7746},
+  {0xEE5B,0xEE5B,0x52AF},
+  {0xEE5C,0xEE5C,0x7821},
+  {0xEE5D,0xEE5D,0x784E},
+  {0xEE5E,0xEE5E,0x7864},
+  {0xEE5F,0xEE5F,0x787A},
+  {0xEE60,0xEE60,0x7930}, /* EE60 */
+  {0xEE61,0xEE61,0xFA18},
+  {0xEE62,0xEE62,0xFA19},
+  {0xEE63,0xEE63,0xFA1A},
+  {0xEE64,0xEE64,0x7994},
+  {0xEE65,0xEE65,0xFA1B},
+  {0xEE66,0xEE66,0x799B},
+  {0xEE67,0xEE67,0x7AD1},
+  {0xEE68,0xEE68,0x7AE7},
+  {0xEE69,0xEE69,0xFA1C},
+  {0xEE6A,0xEE6A,0x7AEB},
+  {0xEE6B,0xEE6B,0x7B9E},
+  {0xEE6C,0xEE6C,0xFA1D},
+  {0xEE6D,0xEE6D,0x7D48},
+  {0xEE6E,0xEE6E,0x7D5C},
+  {0xEE6F,0xEE6F,0x7DB7},
+  {0xEE70,0xEE70,0x7DA0}, /* EE70 */
+  {0xEE71,0xEE71,0x7DD6},
+  {0xEE72,0xEE72,0x7E52},
+  {0xEE73,0xEE73,0x7F47},
+  {0xEE74,0xEE74,0x7FA1},
+  {0xEE75,0xEE75,0xFA1E},
+  {0xEE76,0xEE76,0x8301},
+  {0xEE77,0xEE77,0x8362},
+  {0xEE78,0xEE78,0x837F},
+  {0xEE79,0xEE79,0x83C7},
+  {0xEE7A,0xEE7A,0x83F6},
+  {0xEE7B,0xEE7B,0x8448},
+  {0xEE7C,0xEE7C,0x84B4},
+  {0xEE7D,0xEE7D,0x8553},
+  {0xEE7E,0xEE7E,0x8559},
+  {0,0,0},
+  {0xEE80,0xEE80,0x856B}, /* EE80 */
+  {0xEE81,0xEE81,0xFA1F},
+  {0xEE82,0xEE82,0x85B0},
+  {0xEE83,0xEE83,0xFA20},
+  {0xEE84,0xEE84,0xFA21},
+  {0xEE85,0xEE85,0x8807},
+  {0xEE86,0xEE86,0x88F5},
+  {0xEE87,0xEE87,0x8A12},
+  {0xEE88,0xEE88,0x8A37},
+  {0xEE89,0xEE89,0x8A79},
+  {0xEE8A,0xEE8A,0x8AA7},
+  {0xEE8B,0xEE8B,0x8ABE},
+  {0xEE8C,0xEE8C,0x8ADF},
+  {0xEE8D,0xEE8D,0xFA22},
+  {0xEE8E,0xEE8E,0x8AF6},
+  {0xEE8F,0xEE8F,0x8B53},
+  {0xEE90,0xEE90,0x8B7F}, /* EE90 */
+  {0xEE91,0xEE91,0x8CF0},
+  {0xEE92,0xEE92,0x8CF4},
+  {0xEE93,0xEE93,0x8D12},
+  {0xEE94,0xEE94,0x8D76},
+  {0xEE95,0xEE95,0xFA23},
+  {0xEE96,0xEE96,0x8ECF},
+  {0xEE97,0xEE97,0xFA24},
+  {0xEE98,0xEE98,0xFA25},
+  {0xEE99,0xEE99,0x9067},
+  {0xEE9A,0xEE9A,0x90DE},
+  {0xEE9B,0xEE9B,0xFA26},
+  {0xEE9C,0xEE9C,0x9115},
+  {0xEE9D,0xEE9D,0x9127},
+  {0xEE9E,0xEE9E,0x91DA},
+  {0xEE9F,0xEE9F,0x91D7},
+  {0xEEA0,0xEEA0,0x91DE}, /* EEA0 */
+  {0xEEA1,0xEEA1,0x91ED},
+  {0xEEA2,0xEEA2,0x91EE},
+  {0xEEA3,0xEEA3,0x91E4},
+  {0xEEA4,0xEEA4,0x91E5},
+  {0xEEA5,0xEEA5,0x9206},
+  {0xEEA6,0xEEA6,0x9210},
+  {0xEEA7,0xEEA7,0x920A},
+  {0xEEA8,0xEEA8,0x923A},
+  {0xEEA9,0xEEA9,0x9240},
+  {0xEEAA,0xEEAA,0x923C},
+  {0xEEAB,0xEEAB,0x924E},
+  {0xEEAC,0xEEAC,0x9259},
+  {0xEEAD,0xEEAD,0x9251},
+  {0xEEAE,0xEEAE,0x9239},
+  {0xEEAF,0xEEAF,0x9267},
+  {0xEEB0,0xEEB0,0x92A7}, /* EEB0 */
+  {0xEEB1,0xEEB1,0x9277},
+  {0xEEB2,0xEEB2,0x9278},
+  {0xEEB3,0xEEB3,0x92E7},
+  {0xEEB4,0xEEB4,0x92D7},
+  {0xEEB5,0xEEB5,0x92D9},
+  {0xEEB6,0xEEB6,0x92D0},
+  {0xEEB7,0xEEB7,0xFA27},
+  {0xEEB8,0xEEB8,0x92D5},
+  {0xEEB9,0xEEB9,0x92E0},
+  {0xEEBA,0xEEBA,0x92D3},
+  {0xEEBB,0xEEBB,0x9325},
+  {0xEEBC,0xEEBC,0x9321},
+  {0xEEBD,0xEEBD,0x92FB},
+  {0xEEBE,0xEEBE,0xFA28},
+  {0xEEBF,0xEEBF,0x931E},
+  {0xEEC0,0xEEC0,0x92FF}, /* EEC0 */
+  {0xEEC1,0xEEC1,0x931D},
+  {0xEEC2,0xEEC2,0x9302},
+  {0xEEC3,0xEEC3,0x9370},
+  {0xEEC4,0xEEC4,0x9357},
+  {0xEEC5,0xEEC5,0x93A4},
+  {0xEEC6,0xEEC6,0x93C6},
+  {0xEEC7,0xEEC7,0x93DE},
+  {0xEEC8,0xEEC8,0x93F8},
+  {0xEEC9,0xEEC9,0x9431},
+  {0xEECA,0xEECA,0x9445},
+  {0xEECB,0xEECB,0x9448},
+  {0xEECC,0xEECC,0x9592},
+  {0xEECD,0xEECD,0xF9DC},
+  {0xEECE,0xEECE,0xFA29},
+  {0xEECF,0xEECF,0x969D},
+  {0xEED0,0xEED0,0x96AF}, /* EED0 */
+  {0xEED1,0xEED1,0x9733},
+  {0xEED2,0xEED2,0x973B},
+  {0xEED3,0xEED3,0x9743},
+  {0xEED4,0xEED4,0x974D},
+  {0xEED5,0xEED5,0x974F},
+  {0xEED6,0xEED6,0x9751},
+  {0xEED7,0xEED7,0x9755},
+  {0xEED8,0xEED8,0x9857},
+  {0xEED9,0xEED9,0x9865},
+  {0xEEDA,0xEEDA,0xFA2A},
+  {0xEEDB,0xEEDB,0xFA2B},
+  {0xEEDC,0xEEDC,0x9927},
+  {0xEEDD,0xEEDD,0xFA2C},
+  {0xEEDE,0xEEDE,0x999E},
+  {0xEEDF,0xEEDF,0x9A4E},
+  {0xEEE0,0xEEE0,0x9AD9}, /* EEE0 */
+  {0xEEE1,0xEEE1,0x9ADC},
+  {0xEEE2,0xEEE2,0x9B75},
+  {0xEEE3,0xEEE3,0x9B72},
+  {0xEEE4,0xEEE4,0x9B8F},
+  {0xEEE5,0xEEE5,0x9BB1},
+  {0xEEE6,0xEEE6,0x9BBB},
+  {0xEEE7,0xEEE7,0x9C00},
+  {0xEEE8,0xEEE8,0x9D70},
+  {0xEEE9,0xEEE9,0x9D6B},
+  {0xEEEA,0xEEEA,0xFA2D},
+  {0xEEEB,0xEEEB,0x9E19},
+  {0xEEEC,0xEEEC,0x9ED1},
+  {0xEEED,0xEEED,0x003F},
+  {0xEEEE,0xEEEE,0x003F},
+  {0x8754,0xEEEF,0x2170},
+  {0x8755,0xEEF0,0x2171}, /* EEF0 */
+  {0x8756,0xEEF1,0x2172},
+  {0x8757,0xEEF2,0x2173},
+  {0x8758,0xEEF3,0x2174},
+  {0x8759,0xEEF4,0x2175},
+  {0x875A,0xEEF5,0x2176},
+  {0x875B,0xEEF6,0x2177},
+  {0x875C,0xEEF7,0x2178},
+  {0x875D,0xEEF8,0x2179},
+  {0xEEF9,0xEEF9,0xFFE2},
+  {0xEEFA,0xEEFA,0xFFE4},
+  {0xEEFB,0xEEFB,0xFF07},
+  {0xEEFC,0xEEFC,0xFF02},
+  {0,0,0},
+  {0,0,0},
+  {0,0,0}
+};
+
+
+static MY_UNICASE_INFO cFA[256]=
+{
+  /* FA00-FA0F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* FA10-FA1F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* FA20-FA2F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* FA30-FA3F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+
+  {0xFA4A,0xFA40,0x2170}, /* FA40 */
+  {0xFA4B,0xFA41,0x2171},
+  {0xFA4C,0xFA42,0x2172},
+  {0xFA4D,0xFA43,0x2173},
+  {0xFA4E,0xFA44,0x2174},
+  {0xFA4F,0xFA45,0x2175},
+  {0xFA50,0xFA46,0x2176},
+  {0xFA51,0xFA47,0x2177},
+  {0xFA52,0xFA48,0x2178},
+  {0xFA53,0xFA49,0x2179},
+  {0xFA4A,0xFA40,0x2160},
+  {0xFA4B,0xFA41,0x2161},
+  {0xFA4C,0xFA42,0x2162},
+  {0xFA4D,0xFA43,0x2163},
+  {0xFA4E,0xFA44,0x2164},
+  {0xFA4F,0xFA45,0x2165},
+  {0xFA50,0xFA46,0x2166}, /* FA50 */
+  {0xFA51,0xFA47,0x2167},
+  {0xFA52,0xFA48,0x2168},
+  {0xFA53,0xFA49,0x2169},
+  {0xFA54,0xFA54,0xFFE2},
+  {0xFA55,0xFA55,0xFFE4},
+  {0xFA56,0xFA56,0xFF07},
+  {0xFA57,0xFA57,0xFF02},
+  {0xFA58,0xFA58,0x3231},
+  {0xFA59,0xFA59,0x2116},
+  {0xFA5A,0xFA5A,0x2121},
+  {0xFA5B,0xFA5B,0x2235},
+  {0xFA5C,0xFA5C,0x7E8A},
+  {0xFA5D,0xFA5D,0x891C},
+  {0xFA5E,0xFA5E,0x9348},
+  {0xFA5F,0xFA5F,0x9288},
+  {0xFA60,0xFA60,0x84DC}, /* FA60 */
+  {0xFA61,0xFA61,0x4FC9},
+  {0xFA62,0xFA62,0x70BB},
+  {0xFA63,0xFA63,0x6631},
+  {0xFA64,0xFA64,0x68C8},
+  {0xFA65,0xFA65,0x92F9},
+  {0xFA66,0xFA66,0x66FB},
+  {0xFA67,0xFA67,0x5F45},
+  {0xFA68,0xFA68,0x4E28},
+  {0xFA69,0xFA69,0x4EE1},
+  {0xFA6A,0xFA6A,0x4EFC},
+  {0xFA6B,0xFA6B,0x4F00},
+  {0xFA6C,0xFA6C,0x4F03},
+  {0xFA6D,0xFA6D,0x4F39},
+  {0xFA6E,0xFA6E,0x4F56},
+  {0xFA6F,0xFA6F,0x4F92},
+  {0xFA70,0xFA70,0x4F8A}, /* FA70 */
+  {0xFA71,0xFA71,0x4F9A},
+  {0xFA72,0xFA72,0x4F94},
+  {0xFA73,0xFA73,0x4FCD},
+  {0xFA74,0xFA74,0x5040},
+  {0xFA75,0xFA75,0x5022},
+  {0xFA76,0xFA76,0x4FFF},
+  {0xFA77,0xFA77,0x501E},
+  {0xFA78,0xFA78,0x5046},
+  {0xFA79,0xFA79,0x5070},
+  {0xFA7A,0xFA7A,0x5042},
+  {0xFA7B,0xFA7B,0x5094},
+  {0xFA7C,0xFA7C,0x50F4},
+  {0xFA7D,0xFA7D,0x50D8},
+  {0xFA7E,0xFA7E,0x514A},
+  {0,0,0},
+  {0xFA80,0xFA80,0x5164}, /* FA80 */
+  {0xFA81,0xFA81,0x519D},
+  {0xFA82,0xFA82,0x51BE},
+  {0xFA83,0xFA83,0x51EC},
+  {0xFA84,0xFA84,0x5215},
+  {0xFA85,0xFA85,0x529C},
+  {0xFA86,0xFA86,0x52A6},
+  {0xFA87,0xFA87,0x52C0},
+  {0xFA88,0xFA88,0x52DB},
+  {0xFA89,0xFA89,0x5300},
+  {0xFA8A,0xFA8A,0x5307},
+  {0xFA8B,0xFA8B,0x5324},
+  {0xFA8C,0xFA8C,0x5372},
+  {0xFA8D,0xFA8D,0x5393},
+  {0xFA8E,0xFA8E,0x53B2},
+  {0xFA8F,0xFA8F,0x53DD},
+  {0xFA90,0xFA90,0xFA0E}, /* FA90 */
+  {0xFA91,0xFA91,0x549C},
+  {0xFA92,0xFA92,0x548A},
+  {0xFA93,0xFA93,0x54A9},
+  {0xFA94,0xFA94,0x54FF},
+  {0xFA95,0xFA95,0x5586},
+  {0xFA96,0xFA96,0x5759},
+  {0xFA97,0xFA97,0x5765},
+  {0xFA98,0xFA98,0x57AC},
+  {0xFA99,0xFA99,0x57C8},
+  {0xFA9A,0xFA9A,0x57C7},
+  {0xFA9B,0xFA9B,0xFA0F},
+  {0xFA9C,0xFA9C,0xFA10},
+  {0xFA9D,0xFA9D,0x589E},
+  {0xFA9E,0xFA9E,0x58B2},
+  {0xFA9F,0xFA9F,0x590B},
+  {0xFAA0,0xFAA0,0x5953}, /* FAA0 */
+  {0xFAA1,0xFAA1,0x595B},
+  {0xFAA2,0xFAA2,0x595D},
+  {0xFAA3,0xFAA3,0x5963},
+  {0xFAA4,0xFAA4,0x59A4},
+  {0xFAA5,0xFAA5,0x59BA},
+  {0xFAA6,0xFAA6,0x5B56},
+  {0xFAA7,0xFAA7,0x5BC0},
+  {0xFAA8,0xFAA8,0x752F},
+  {0xFAA9,0xFAA9,0x5BD8},
+  {0xFAAA,0xFAAA,0x5BEC},
+  {0xFAAB,0xFAAB,0x5C1E},
+  {0xFAAC,0xFAAC,0x5CA6},
+  {0xFAAD,0xFAAD,0x5CBA},
+  {0xFAAE,0xFAAE,0x5CF5},
+  {0xFAAF,0xFAAF,0x5D27},
+  {0xFAB0,0xFAB0,0x5D53}, /* FAB0 */
+  {0xFAB1,0xFAB1,0xFA11},
+  {0xFAB2,0xFAB2,0x5D42},
+  {0xFAB3,0xFAB3,0x5D6D},
+  {0xFAB4,0xFAB4,0x5DB8},
+  {0xFAB5,0xFAB5,0x5DB9},
+  {0xFAB6,0xFAB6,0x5DD0},
+  {0xFAB7,0xFAB7,0x5F21},
+  {0xFAB8,0xFAB8,0x5F34},
+  {0xFAB9,0xFAB9,0x5F67},
+  {0xFABA,0xFABA,0x5FB7},
+  {0xFABB,0xFABB,0x5FDE},
+  {0xFABC,0xFABC,0x605D},
+  {0xFABD,0xFABD,0x6085},
+  {0xFABE,0xFABE,0x608A},
+  {0xFABF,0xFABF,0x60DE},
+  {0xFAC0,0xFAC0,0x60D5}, /* FAC0 */
+  {0xFAC1,0xFAC1,0x6120},
+  {0xFAC2,0xFAC2,0x60F2},
+  {0xFAC3,0xFAC3,0x6111},
+  {0xFAC4,0xFAC4,0x6137},
+  {0xFAC5,0xFAC5,0x6130},
+  {0xFAC6,0xFAC6,0x6198},
+  {0xFAC7,0xFAC7,0x6213},
+  {0xFAC8,0xFAC8,0x62A6},
+  {0xFAC9,0xFAC9,0x63F5},
+  {0xFACA,0xFACA,0x6460},
+  {0xFACB,0xFACB,0x649D},
+  {0xFACC,0xFACC,0x64CE},
+  {0xFACD,0xFACD,0x654E},
+  {0xFACE,0xFACE,0x6600},
+  {0xFACF,0xFACF,0x6615},
+  {0xFAD0,0xFAD0,0x663B}, /* FAD0 */
+  {0xFAD1,0xFAD1,0x6609},
+  {0xFAD2,0xFAD2,0x662E},
+  {0xFAD3,0xFAD3,0x661E},
+  {0xFAD4,0xFAD4,0x6624},
+  {0xFAD5,0xFAD5,0x6665},
+  {0xFAD6,0xFAD6,0x6657},
+  {0xFAD7,0xFAD7,0x6659},
+  {0xFAD8,0xFAD8,0xFA12},
+  {0xFAD9,0xFAD9,0x6673},
+  {0xFADA,0xFADA,0x6699},
+  {0xFADB,0xFADB,0x66A0},
+  {0xFADC,0xFADC,0x66B2},
+  {0xFADD,0xFADD,0x66BF},
+  {0xFADE,0xFADE,0x66FA},
+  {0xFADF,0xFADF,0x670E},
+  {0xFAE0,0xFAE0,0xF929}, /* FAE0 */
+  {0xFAE1,0xFAE1,0x6766},
+  {0xFAE2,0xFAE2,0x67BB},
+  {0xFAE3,0xFAE3,0x6852},
+  {0xFAE4,0xFAE4,0x67C0},
+  {0xFAE5,0xFAE5,0x6801},
+  {0xFAE6,0xFAE6,0x6844},
+  {0xFAE7,0xFAE7,0x68CF},
+  {0xFAE8,0xFAE8,0xFA13},
+  {0xFAE9,0xFAE9,0x6968},
+  {0xFAEA,0xFAEA,0xFA14},
+  {0xFAEB,0xFAEB,0x6998},
+  {0xFAEC,0xFAEC,0x69E2},
+  {0xFAED,0xFAED,0x6A30},
+  {0xFAEE,0xFAEE,0x6A6B},
+  {0xFAEF,0xFAEF,0x6A46},
+  {0xFAF0,0xFAF0,0x6A73}, /* FAF0 */
+  {0xFAF1,0xFAF1,0x6A7E},
+  {0xFAF2,0xFAF2,0x6AE2},
+  {0xFAF3,0xFAF3,0x6AE4},
+  {0xFAF4,0xFAF4,0x6BD6},
+  {0xFAF5,0xFAF5,0x6C3F},
+  {0xFAF6,0xFAF6,0x6C5C},
+  {0xFAF7,0xFAF7,0x6C86},
+  {0xFAF8,0xFAF8,0x6C6F},
+  {0xFAF9,0xFAF9,0x6CDA},
+  {0xFAFA,0xFAFA,0x6D04},
+  {0xFAFB,0xFAFB,0x6D87},
+  {0xFAFC,0xFAFC,0x6D6F},
+  {0,0,0},
+  {0,0,0},
+  {0,0,0}
+};
+
+
+static MY_UNICASE_INFO *my_caseinfo_cp932[256]=
+{
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, c81,  c82,  c83,  c84,  NULL, NULL, c87, /* 8 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* A */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
+  NULL, NULL, NULL, NULL, NULL, NULL, cEE,  NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
+  NULL, NULL, cFA,  NULL, NULL, NULL, NULL, NULL
+};
+
+
 static int my_strnncoll_cp932_internal(CHARSET_INFO *cs,
 				      const uchar **a_res, size_t a_length,
 				      const uchar **b_res, size_t b_length)
@@ -5524,7 +7030,7 @@ CHARSET_INFO my_charset_cp932_japanese_c
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_cp932,  /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */
@@ -5556,7 +7062,7 @@ CHARSET_INFO my_charset_cp932_bin=
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_cp932,  /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */

=== modified file 'strings/ctype-euc_kr.c'
--- a/strings/ctype-euc_kr.c	2009-07-24 06:27:23 +0000
+++ b/strings/ctype-euc_kr.c	2009-11-27 07:42:35 +0000
@@ -216,6 +216,1273 @@ static uint mbcharlen_euc_kr(CHARSET_INF
 }
 
 
+static MY_UNICASE_INFO cA3[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA340,0xA340,0x003F}, /* A340 */
+  {0xA341,0xA341,0xC971},
+  {0xA342,0xA342,0xC972},
+  {0xA343,0xA343,0xC973},
+  {0xA344,0xA344,0xC975},
+  {0xA345,0xA345,0xC976},
+  {0xA346,0xA346,0xC977},
+  {0xA347,0xA347,0xC978},
+  {0xA348,0xA348,0xC979},
+  {0xA349,0xA349,0xC97A},
+  {0xA34A,0xA34A,0xC97B},
+  {0xA34B,0xA34B,0xC97D},
+  {0xA34C,0xA34C,0xC97E},
+  {0xA34D,0xA34D,0xC97F},
+  {0xA34E,0xA34E,0xC980},
+  {0xA34F,0xA34F,0xC981},
+  {0xA350,0xA350,0xC982}, /* A350 */
+  {0xA351,0xA351,0xC983},
+  {0xA352,0xA352,0xC984},
+  {0xA353,0xA353,0xC985},
+  {0xA354,0xA354,0xC986},
+  {0xA355,0xA355,0xC987},
+  {0xA356,0xA356,0xC98A},
+  {0xA357,0xA357,0xC98B},
+  {0xA358,0xA358,0xC98D},
+  {0xA359,0xA359,0xC98E},
+  {0xA35A,0xA35A,0xC98F},
+  {0xA35B,0xA35B,0x003F},
+  {0xA35C,0xA35C,0x003F},
+  {0xA35D,0xA35D,0x003F},
+  {0xA35E,0xA35E,0x003F},
+  {0xA35F,0xA35F,0x003F},
+  {0xA360,0xA360,0x003F}, /* A360 */
+  {0xA361,0xA361,0xC991},
+  {0xA362,0xA362,0xC992},
+  {0xA363,0xA363,0xC993},
+  {0xA364,0xA364,0xC994},
+  {0xA365,0xA365,0xC995},
+  {0xA366,0xA366,0xC996},
+  {0xA367,0xA367,0xC997},
+  {0xA368,0xA368,0xC99A},
+  {0xA369,0xA369,0xC99C},
+  {0xA36A,0xA36A,0xC99E},
+  {0xA36B,0xA36B,0xC99F},
+  {0xA36C,0xA36C,0xC9A0},
+  {0xA36D,0xA36D,0xC9A1},
+  {0xA36E,0xA36E,0xC9A2},
+  {0xA36F,0xA36F,0xC9A3},
+  {0xA370,0xA370,0xC9A4}, /* A370 */
+  {0xA371,0xA371,0xC9A5},
+  {0xA372,0xA372,0xC9A6},
+  {0xA373,0xA373,0xC9A7},
+  {0xA374,0xA374,0xC9A8},
+  {0xA375,0xA375,0xC9A9},
+  {0xA376,0xA376,0xC9AA},
+  {0xA377,0xA377,0xC9AB},
+  {0xA378,0xA378,0xC9AC},
+  {0xA379,0xA379,0xC9AD},
+  {0xA37A,0xA37A,0xC9AE},
+  {0xA37B,0xA37B,0x003F},
+  {0xA37C,0xA37C,0x003F},
+  {0xA37D,0xA37D,0x003F},
+  {0xA37E,0xA37E,0x003F},
+  {0xA37F,0xA37F,0x003F},
+  {0xA380,0xA380,0x003F}, /* A380 */
+  {0xA381,0xA381,0xC9AF},
+  {0xA382,0xA382,0xC9B0},
+  {0xA383,0xA383,0xC9B1},
+  {0xA384,0xA384,0xC9B2},
+  {0xA385,0xA385,0xC9B3},
+  {0xA386,0xA386,0xC9B4},
+  {0xA387,0xA387,0xC9B5},
+  {0xA388,0xA388,0xC9B6},
+  {0xA389,0xA389,0xC9B7},
+  {0xA38A,0xA38A,0xC9B8},
+  {0xA38B,0xA38B,0xC9B9},
+  {0xA38C,0xA38C,0xC9BA},
+  {0xA38D,0xA38D,0xC9BB},
+  {0xA38E,0xA38E,0xC9BC},
+  {0xA38F,0xA38F,0xC9BD},
+  {0xA390,0xA390,0xC9BE}, /* A390 */
+  {0xA391,0xA391,0xC9BF},
+  {0xA392,0xA392,0xC9C2},
+  {0xA393,0xA393,0xC9C3},
+  {0xA394,0xA394,0xC9C5},
+  {0xA395,0xA395,0xC9C6},
+  {0xA396,0xA396,0xC9C9},
+  {0xA397,0xA397,0xC9CB},
+  {0xA398,0xA398,0xC9CC},
+  {0xA399,0xA399,0xC9CD},
+  {0xA39A,0xA39A,0xC9CE},
+  {0xA39B,0xA39B,0xC9CF},
+  {0xA39C,0xA39C,0xC9D2},
+  {0xA39D,0xA39D,0xC9D4},
+  {0xA39E,0xA39E,0xC9D7},
+  {0xA39F,0xA39F,0xC9D8},
+  {0xA3A0,0xA3A0,0xC9DB}, /* A3A0 */
+  {0xA3A1,0xA3A1,0xFF01},
+  {0xA3A2,0xA3A2,0xFF02},
+  {0xA3A3,0xA3A3,0xFF03},
+  {0xA3A4,0xA3A4,0xFF04},
+  {0xA3A5,0xA3A5,0xFF05},
+  {0xA3A6,0xA3A6,0xFF06},
+  {0xA3A7,0xA3A7,0xFF07},
+  {0xA3A8,0xA3A8,0xFF08},
+  {0xA3A9,0xA3A9,0xFF09},
+  {0xA3AA,0xA3AA,0xFF0A},
+  {0xA3AB,0xA3AB,0xFF0B},
+  {0xA3AC,0xA3AC,0xFF0C},
+  {0xA3AD,0xA3AD,0xFF0D},
+  {0xA3AE,0xA3AE,0xFF0E},
+  {0xA3AF,0xA3AF,0xFF0F},
+  {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */
+  {0xA3B1,0xA3B1,0xFF11},
+  {0xA3B2,0xA3B2,0xFF12},
+  {0xA3B3,0xA3B3,0xFF13},
+  {0xA3B4,0xA3B4,0xFF14},
+  {0xA3B5,0xA3B5,0xFF15},
+  {0xA3B6,0xA3B6,0xFF16},
+  {0xA3B7,0xA3B7,0xFF17},
+  {0xA3B8,0xA3B8,0xFF18},
+  {0xA3B9,0xA3B9,0xFF19},
+  {0xA3BA,0xA3BA,0xFF1A},
+  {0xA3BB,0xA3BB,0xFF1B},
+  {0xA3BC,0xA3BC,0xFF1C},
+  {0xA3BD,0xA3BD,0xFF1D},
+  {0xA3BE,0xA3BE,0xFF1E},
+  {0xA3BF,0xA3BF,0xFF1F},
+  {0xA3C0,0xA3C0,0xFF20}, /* A3C0 */
+  {0xA3C1,0xA3E1,0xFF21},
+  {0xA3C2,0xA3E2,0xFF22},
+  {0xA3C3,0xA3E3,0xFF23},
+  {0xA3C4,0xA3E4,0xFF24},
+  {0xA3C5,0xA3E5,0xFF25},
+  {0xA3C6,0xA3E6,0xFF26},
+  {0xA3C7,0xA3E7,0xFF27},
+  {0xA3C8,0xA3E8,0xFF28},
+  {0xA3C9,0xA3E9,0xFF29},
+  {0xA3CA,0xA3EA,0xFF2A},
+  {0xA3CB,0xA3EB,0xFF2B},
+  {0xA3CC,0xA3EC,0xFF2C},
+  {0xA3CD,0xA3ED,0xFF2D},
+  {0xA3CE,0xA3EE,0xFF2E},
+  {0xA3CF,0xA3EF,0xFF2F},
+  {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */
+  {0xA3D1,0xA3F1,0xFF31},
+  {0xA3D2,0xA3F2,0xFF32},
+  {0xA3D3,0xA3F3,0xFF33},
+  {0xA3D4,0xA3F4,0xFF34},
+  {0xA3D5,0xA3F5,0xFF35},
+  {0xA3D6,0xA3F6,0xFF36},
+  {0xA3D7,0xA3F7,0xFF37},
+  {0xA3D8,0xA3F8,0xFF38},
+  {0xA3D9,0xA3F9,0xFF39},
+  {0xA3DA,0xA3FA,0xFF3A},
+  {0xA3DB,0xA3DB,0xFF3B},
+  {0xA3DC,0xA3DC,0xFFE6},
+  {0xA3DD,0xA3DD,0xFF3D},
+  {0xA3DE,0xA3DE,0xFF3E},
+  {0xA3DF,0xA3DF,0xFF3F},
+  {0xA3E0,0xA3E0,0xFF40}, /* A3E0 */
+  {0xA3C1,0xA3E1,0xFF41},
+  {0xA3C2,0xA3E2,0xFF42},
+  {0xA3C3,0xA3E3,0xFF43},
+  {0xA3C4,0xA3E4,0xFF44},
+  {0xA3C5,0xA3E5,0xFF45},
+  {0xA3C6,0xA3E6,0xFF46},
+  {0xA3C7,0xA3E7,0xFF47},
+  {0xA3C8,0xA3E8,0xFF48},
+  {0xA3C9,0xA3E9,0xFF49},
+  {0xA3CA,0xA3EA,0xFF4A},
+  {0xA3CB,0xA3EB,0xFF4B},
+  {0xA3CC,0xA3EC,0xFF4C},
+  {0xA3CD,0xA3ED,0xFF4D},
+  {0xA3CE,0xA3EE,0xFF4E},
+  {0xA3CF,0xA3EF,0xFF4F},
+  {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */
+  {0xA3D1,0xA3F1,0xFF51},
+  {0xA3D2,0xA3F2,0xFF52},
+  {0xA3D3,0xA3F3,0xFF53},
+  {0xA3D4,0xA3F4,0xFF54},
+  {0xA3D5,0xA3F5,0xFF55},
+  {0xA3D6,0xA3F6,0xFF56},
+  {0xA3D7,0xA3F7,0xFF57},
+  {0xA3D8,0xA3F8,0xFF58},
+  {0xA3D9,0xA3F9,0xFF59},
+  {0xA3DA,0xA3FA,0xFF5A},
+  {0xA3FB,0xA3FB,0xFF5B},
+  {0xA3FC,0xA3FC,0xFF5C},
+  {0xA3FD,0xA3FD,0xFF5D},
+  {0xA3FE,0xA3FE,0xFFE3},
+  {0xA3FF,0xA3FF,0x003F}
+};
+
+
+static MY_UNICASE_INFO cA5[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA540,0xA540,0x003F}, /* A540 */
+  {0xA541,0xA541,0xCA47},
+  {0xA542,0xA542,0xCA48},
+  {0xA543,0xA543,0xCA49},
+  {0xA544,0xA544,0xCA4A},
+  {0xA545,0xA545,0xCA4B},
+  {0xA546,0xA546,0xCA4E},
+  {0xA547,0xA547,0xCA4F},
+  {0xA548,0xA548,0xCA51},
+  {0xA549,0xA549,0xCA52},
+  {0xA54A,0xA54A,0xCA53},
+  {0xA54B,0xA54B,0xCA55},
+  {0xA54C,0xA54C,0xCA56},
+  {0xA54D,0xA54D,0xCA57},
+  {0xA54E,0xA54E,0xCA58},
+  {0xA54F,0xA54F,0xCA59},
+  {0xA550,0xA550,0xCA5A}, /* A550 */
+  {0xA551,0xA551,0xCA5B},
+  {0xA552,0xA552,0xCA5E},
+  {0xA553,0xA553,0xCA62},
+  {0xA554,0xA554,0xCA63},
+  {0xA555,0xA555,0xCA64},
+  {0xA556,0xA556,0xCA65},
+  {0xA557,0xA557,0xCA66},
+  {0xA558,0xA558,0xCA67},
+  {0xA559,0xA559,0xCA69},
+  {0xA55A,0xA55A,0xCA6A},
+  {0xA55B,0xA55B,0x003F},
+  {0xA55C,0xA55C,0x003F},
+  {0xA55D,0xA55D,0x003F},
+  {0xA55E,0xA55E,0x003F},
+  {0xA55F,0xA55F,0x003F},
+  {0xA560,0xA560,0x003F}, /* A560 */
+  {0xA561,0xA561,0xCA6B},
+  {0xA562,0xA562,0xCA6C},
+  {0xA563,0xA563,0xCA6D},
+  {0xA564,0xA564,0xCA6E},
+  {0xA565,0xA565,0xCA6F},
+  {0xA566,0xA566,0xCA70},
+  {0xA567,0xA567,0xCA71},
+  {0xA568,0xA568,0xCA72},
+  {0xA569,0xA569,0xCA73},
+  {0xA56A,0xA56A,0xCA74},
+  {0xA56B,0xA56B,0xCA75},
+  {0xA56C,0xA56C,0xCA76},
+  {0xA56D,0xA56D,0xCA77},
+  {0xA56E,0xA56E,0xCA78},
+  {0xA56F,0xA56F,0xCA79},
+  {0xA570,0xA570,0xCA7A}, /* A570 */
+  {0xA571,0xA571,0xCA7B},
+  {0xA572,0xA572,0xCA7C},
+  {0xA573,0xA573,0xCA7E},
+  {0xA574,0xA574,0xCA7F},
+  {0xA575,0xA575,0xCA80},
+  {0xA576,0xA576,0xCA81},
+  {0xA577,0xA577,0xCA82},
+  {0xA578,0xA578,0xCA83},
+  {0xA579,0xA579,0xCA85},
+  {0xA57A,0xA57A,0xCA86},
+  {0xA57B,0xA57B,0x003F},
+  {0xA57C,0xA57C,0x003F},
+  {0xA57D,0xA57D,0x003F},
+  {0xA57E,0xA57E,0x003F},
+  {0xA57F,0xA57F,0x003F},
+  {0xA580,0xA580,0x003F}, /* A580 */
+  {0xA581,0xA581,0xCA87},
+  {0xA582,0xA582,0xCA88},
+  {0xA583,0xA583,0xCA89},
+  {0xA584,0xA584,0xCA8A},
+  {0xA585,0xA585,0xCA8B},
+  {0xA586,0xA586,0xCA8C},
+  {0xA587,0xA587,0xCA8D},
+  {0xA588,0xA588,0xCA8E},
+  {0xA589,0xA589,0xCA8F},
+  {0xA58A,0xA58A,0xCA90},
+  {0xA58B,0xA58B,0xCA91},
+  {0xA58C,0xA58C,0xCA92},
+  {0xA58D,0xA58D,0xCA93},
+  {0xA58E,0xA58E,0xCA94},
+  {0xA58F,0xA58F,0xCA95},
+  {0xA590,0xA590,0xCA96}, /* A590 */
+  {0xA591,0xA591,0xCA97},
+  {0xA592,0xA592,0xCA99},
+  {0xA593,0xA593,0xCA9A},
+  {0xA594,0xA594,0xCA9B},
+  {0xA595,0xA595,0xCA9C},
+  {0xA596,0xA596,0xCA9D},
+  {0xA597,0xA597,0xCA9E},
+  {0xA598,0xA598,0xCA9F},
+  {0xA599,0xA599,0xCAA0},
+  {0xA59A,0xA59A,0xCAA1},
+  {0xA59B,0xA59B,0xCAA2},
+  {0xA59C,0xA59C,0xCAA3},
+  {0xA59D,0xA59D,0xCAA4},
+  {0xA59E,0xA59E,0xCAA5},
+  {0xA59F,0xA59F,0xCAA6},
+  {0xA5A0,0xA5A0,0xCAA7}, /* A5A0 */
+  {0xA5B0,0xA5A1,0x2170},
+  {0xA5B1,0xA5A2,0x2171},
+  {0xA5B2,0xA5A3,0x2172},
+  {0xA5B3,0xA5A4,0x2173},
+  {0xA5B4,0xA5A5,0x2174},
+  {0xA5B5,0xA5A6,0x2175},
+  {0xA5B6,0xA5A7,0x2176},
+  {0xA5B7,0xA5A8,0x2177},
+  {0xA5B8,0xA5A9,0x2178},
+  {0xA5B9,0xA5AA,0x2179},
+  {0xA5AB,0xA5AB,0x003F},
+  {0xA5AC,0xA5AC,0x003F},
+  {0xA5AD,0xA5AD,0x003F},
+  {0xA5AE,0xA5AE,0x003F},
+  {0xA5AF,0xA5AF,0x003F},
+  {0xA5B0,0xA5A1,0x2160}, /* A5B0 */
+  {0xA5B1,0xA5A2,0x2161},
+  {0xA5B2,0xA5A3,0x2162},
+  {0xA5B3,0xA5A4,0x2163},
+  {0xA5B4,0xA5A5,0x2164},
+  {0xA5B5,0xA5A6,0x2165},
+  {0xA5B6,0xA5A7,0x2166},
+  {0xA5B7,0xA5A8,0x2167},
+  {0xA5B8,0xA5A9,0x2168},
+  {0xA5B9,0xA5AA,0x2169},
+  {0xA5BA,0xA5BA,0x003F},
+  {0xA5BB,0xA5BB,0x003F},
+  {0xA5BC,0xA5BC,0x003F},
+  {0xA5BD,0xA5BD,0x003F},
+  {0xA5BE,0xA5BE,0x003F},
+  {0xA5BF,0xA5BF,0x003F},
+  {0xA5C0,0xA5C0,0x003F}, /* A5C0 */
+  {0xA5C1,0xA5E1,0x0391},
+  {0xA5C2,0xA5E2,0x0392},
+  {0xA5C3,0xA5E3,0x0393},
+  {0xA5C4,0xA5E4,0x0394},
+  {0xA5C5,0xA5E5,0x0395},
+  {0xA5C6,0xA5E6,0x0396},
+  {0xA5C7,0xA5E7,0x0397},
+  {0xA5C8,0xA5E8,0x0398},
+  {0xA5C9,0xA5E9,0x0399},
+  {0xA5CA,0xA5EA,0x039A},
+  {0xA5CB,0xA5EB,0x039B},
+  {0xA5CC,0xA5EC,0x039C},
+  {0xA5CD,0xA5ED,0x039D},
+  {0xA5CE,0xA5EE,0x039E},
+  {0xA5CF,0xA5EF,0x039F},
+  {0xA5D0,0xA5F0,0x03A0}, /* A5D0 */
+  {0xA5D1,0xA5F1,0x03A1},
+  {0xA5D2,0xA5F2,0x03A3},
+  {0xA5D3,0xA5F3,0x03A4},
+  {0xA5D4,0xA5F4,0x03A5},
+  {0xA5D5,0xA5F5,0x03A6},
+  {0xA5D6,0xA5F6,0x03A7},
+  {0xA5D7,0xA5F7,0x03A8},
+  {0xA5D8,0xA5F8,0x03A9},
+  {0xA5D9,0xA5D9,0x003F},
+  {0xA5DA,0xA5DA,0x003F},
+  {0xA5DB,0xA5DB,0x003F},
+  {0xA5DC,0xA5DC,0x003F},
+  {0xA5DD,0xA5DD,0x003F},
+  {0xA5DE,0xA5DE,0x003F},
+  {0xA5DF,0xA5DF,0x003F},
+  {0xA5E0,0xA5E0,0x003F}, /* A5E0 */
+  {0xA5C1,0xA5E1,0x03B1},
+  {0xA5C2,0xA5E2,0x03B2},
+  {0xA5C3,0xA5E3,0x03B3},
+  {0xA5C4,0xA5E4,0x03B4},
+  {0xA5C5,0xA5E5,0x03B5},
+  {0xA5C6,0xA5E6,0x03B6},
+  {0xA5C7,0xA5E7,0x03B7},
+  {0xA5C8,0xA5E8,0x03B8},
+  {0xA5C9,0xA5E9,0x03B9},
+  {0xA5CA,0xA5EA,0x03BA},
+  {0xA5CB,0xA5EB,0x03BB},
+  {0xA5CC,0xA5EC,0x03BC},
+  {0xA5CD,0xA5ED,0x03BD},
+  {0xA5CE,0xA5EE,0x03BE},
+  {0xA5CF,0xA5EF,0x03BF},
+  {0xA5D0,0xA5F0,0x03C0}, /* A5F0 */
+  {0xA5D1,0xA5F1,0x03C1},
+  {0xA5D2,0xA5F2,0x03C3},
+  {0xA5D3,0xA5F3,0x03C4},
+  {0xA5D4,0xA5F4,0x03C5},
+  {0xA5D5,0xA5F5,0x03C6},
+  {0xA5D6,0xA5F6,0x03C7},
+  {0xA5D7,0xA5F7,0x03C8},
+  {0xA5D8,0xA5F8,0x03C9},
+  {0xA5F9,0xA5F9,0x003F},
+  {0xA5FA,0xA5FA,0x003F},
+  {0xA5FB,0xA5FB,0x003F},
+  {0xA5FC,0xA5FC,0x003F},
+  {0xA5FD,0xA5FD,0x003F},
+  {0xA5FE,0xA5FE,0x003F},
+  {0xA5FF,0xA5FF,0x003F} 
+};
+
+
+static MY_UNICASE_INFO cA7[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA740,0xA740,0x003F}, /* A740 */
+  {0xA741,0xA741,0xCB0B},
+  {0xA742,0xA742,0xCB0C},
+  {0xA743,0xA743,0xCB0D},
+  {0xA744,0xA744,0xCB0E},
+  {0xA745,0xA745,0xCB0F},
+  {0xA746,0xA746,0xCB11},
+  {0xA747,0xA747,0xCB12},
+  {0xA748,0xA748,0xCB13},
+  {0xA749,0xA749,0xCB15},
+  {0xA74A,0xA74A,0xCB16},
+  {0xA74B,0xA74B,0xCB17},
+  {0xA74C,0xA74C,0xCB19},
+  {0xA74D,0xA74D,0xCB1A},
+  {0xA74E,0xA74E,0xCB1B},
+  {0xA74F,0xA74F,0xCB1C},
+  {0xA750,0xA750,0xCB1D}, /* A750 */
+  {0xA751,0xA751,0xCB1E},
+  {0xA752,0xA752,0xCB1F},
+  {0xA753,0xA753,0xCB22},
+  {0xA754,0xA754,0xCB23},
+  {0xA755,0xA755,0xCB24},
+  {0xA756,0xA756,0xCB25},
+  {0xA757,0xA757,0xCB26},
+  {0xA758,0xA758,0xCB27},
+  {0xA759,0xA759,0xCB28},
+  {0xA75A,0xA75A,0xCB29},
+  {0xA75B,0xA75B,0x003F},
+  {0xA75C,0xA75C,0x003F},
+  {0xA75D,0xA75D,0x003F},
+  {0xA75E,0xA75E,0x003F},
+  {0xA75F,0xA75F,0x003F},
+  {0xA760,0xA760,0x003F}, /* A760 */
+  {0xA761,0xA761,0xCB2A},
+  {0xA762,0xA762,0xCB2B},
+  {0xA763,0xA763,0xCB2C},
+  {0xA764,0xA764,0xCB2D},
+  {0xA765,0xA765,0xCB2E},
+  {0xA766,0xA766,0xCB2F},
+  {0xA767,0xA767,0xCB30},
+  {0xA768,0xA768,0xCB31},
+  {0xA769,0xA769,0xCB32},
+  {0xA76A,0xA76A,0xCB33},
+  {0xA76B,0xA76B,0xCB34},
+  {0xA76C,0xA76C,0xCB35},
+  {0xA76D,0xA76D,0xCB36},
+  {0xA76E,0xA76E,0xCB37},
+  {0xA76F,0xA76F,0xCB38},
+  {0xA770,0xA770,0xCB39}, /* A770 */
+  {0xA771,0xA771,0xCB3A},
+  {0xA772,0xA772,0xCB3B},
+  {0xA773,0xA773,0xCB3C},
+  {0xA774,0xA774,0xCB3D},
+  {0xA775,0xA775,0xCB3E},
+  {0xA776,0xA776,0xCB3F},
+  {0xA777,0xA777,0xCB40},
+  {0xA778,0xA778,0xCB42},
+  {0xA779,0xA779,0xCB43},
+  {0xA77A,0xA77A,0xCB44},
+  {0xA77B,0xA77B,0x003F},
+  {0xA77C,0xA77C,0x003F},
+  {0xA77D,0xA77D,0x003F},
+  {0xA77E,0xA77E,0x003F},
+  {0xA77F,0xA77F,0x003F},
+  {0xA780,0xA780,0x003F}, /* A780 */
+  {0xA781,0xA781,0xCB45},
+  {0xA782,0xA782,0xCB46},
+  {0xA783,0xA783,0xCB47},
+  {0xA784,0xA784,0xCB4A},
+  {0xA785,0xA785,0xCB4B},
+  {0xA786,0xA786,0xCB4D},
+  {0xA787,0xA787,0xCB4E},
+  {0xA788,0xA788,0xCB4F},
+  {0xA789,0xA789,0xCB51},
+  {0xA78A,0xA78A,0xCB52},
+  {0xA78B,0xA78B,0xCB53},
+  {0xA78C,0xA78C,0xCB54},
+  {0xA78D,0xA78D,0xCB55},
+  {0xA78E,0xA78E,0xCB56},
+  {0xA78F,0xA78F,0xCB57},
+  {0xA790,0xA790,0xCB5A}, /* A790 */
+  {0xA791,0xA791,0xCB5B},
+  {0xA792,0xA792,0xCB5C},
+  {0xA793,0xA793,0xCB5E},
+  {0xA794,0xA794,0xCB5F},
+  {0xA795,0xA795,0xCB60},
+  {0xA796,0xA796,0xCB61},
+  {0xA797,0xA797,0xCB62},
+  {0xA798,0xA798,0xCB63},
+  {0xA799,0xA799,0xCB65},
+  {0xA79A,0xA79A,0xCB66},
+  {0xA79B,0xA79B,0xCB67},
+  {0xA79C,0xA79C,0xCB68},
+  {0xA79D,0xA79D,0xCB69},
+  {0xA79E,0xA79E,0xCB6A},
+  {0xA79F,0xA79F,0xCB6B},
+  {0xA7A0,0xA7A0,0xCB6C}, /* A7A0 */
+  {0xA7A1,0xA7A1,0x3395},
+  {0xA7A2,0xA7A2,0x3396},
+  {0xA7A3,0xA7A3,0x3397},
+  {0xA7A4,0xA7A4,0x2113},
+  {0xA7A5,0xA7A5,0x3398},
+  {0xA7A6,0xA7A6,0x33C4},
+  {0xA7A7,0xA7A7,0x33A3},
+  {0xA7A8,0xA7A8,0x33A4},
+  {0xA7A9,0xA7A9,0x33A5},
+  {0xA7AA,0xA7AA,0x33A6},
+  {0xA7AB,0xA7AB,0x3399},
+  {0xA7AC,0xA7AC,0x339A},
+  {0xA7AD,0xA7AD,0x339B},
+  {0xA7AE,0xA7AE,0x339C},
+  {0xA7AF,0xA7AF,0x339D},
+  {0xA7B0,0xA7B0,0x339E}, /* A7B0 */
+  {0xA7B1,0xA7B1,0x339F},
+  {0xA7B2,0xA7B2,0x33A0},
+  {0xA7B3,0xA7B3,0x33A1},
+  {0xA7B4,0xA7B4,0x33A2},
+  {0xA7B5,0xA7B5,0x33CA},
+  {0xA7B6,0xA7B6,0x338D},
+  {0xA7B7,0xA7B7,0x338E},
+  {0xA7B8,0xA7B8,0x338F},
+  {0xA7B9,0xA7B9,0x33CF},
+  {0xA7BA,0xA7BA,0x3388},
+  {0xA7BB,0xA7BB,0x3389},
+  {0xA7BC,0xA7BC,0x33C8},
+  {0xA7BD,0xA7BD,0x33A7},
+  {0xA7BE,0xA7BE,0x33A8},
+  {0xA7BF,0xA7BF,0x33B0},
+  {0xA7C0,0xA7C0,0x33B1}, /* A7C0 */
+  {0xA7C1,0xA7C1,0x33B2},
+  {0xA7C2,0xA7C2,0x33B3},
+  {0xA7C3,0xA7C3,0x33B4},
+  {0xA7C4,0xA7C4,0x33B5},
+  {0xA7C5,0xA7C5,0x33B6},
+  {0xA7C6,0xA7C6,0x33B7},
+  {0xA7C7,0xA7C7,0x33B8},
+  {0xA7C8,0xA7C8,0x33B9},
+  {0xA7C9,0xA7C9,0x3380},
+  {0xA7CA,0xA7CA,0x3381},
+  {0xA7CB,0xA7CB,0x3382},
+  {0xA7CC,0xA7CC,0x3383},
+  {0xA7CD,0xA7CD,0x3384},
+  {0xA7CE,0xA7CE,0x33BA},
+  {0xA7CF,0xA7CF,0x33BB},
+  {0xA7D0,0xA7D0,0x33BC}, /* A7D0 */
+  {0xA7D1,0xA7D1,0x33BD},
+  {0xA7D2,0xA7D2,0x33BE},
+  {0xA7D3,0xA7D3,0x33BF},
+  {0xA7D4,0xA7D4,0x3390},
+  {0xA7D5,0xA7D5,0x3391},
+  {0xA7D6,0xA7D6,0x3392},
+  {0xA7D7,0xA7D7,0x3393},
+  {0xA7D8,0xA7D8,0x3394},
+  {0xA7D9,0xA5F8,0x2126},
+  {0xA7DA,0xA7DA,0x33C0},
+  {0xA7DB,0xA7DB,0x33C1},
+  {0xA7DC,0xA7DC,0x338A},
+  {0xA7DD,0xA7DD,0x338B},
+  {0xA7DE,0xA7DE,0x338C},
+  {0xA7DF,0xA7DF,0x33D6},
+  {0xA7E0,0xA7E0,0x33C5}, /* A7E0 */
+  {0xA7E1,0xA7E1,0x33AD},
+  {0xA7E2,0xA7E2,0x33AE},
+  {0xA7E3,0xA7E3,0x33AF},
+  {0xA7E4,0xA7E4,0x33DB},
+  {0xA7E5,0xA7E5,0x33A9},
+  {0xA7E6,0xA7E6,0x33AA},
+  {0xA7E7,0xA7E7,0x33AB},
+  {0xA7E8,0xA7E8,0x33AC},
+  {0xA7E9,0xA7E9,0x33DD},
+  {0xA7EA,0xA7EA,0x33D0},
+  {0xA7EB,0xA7EB,0x33D3},
+  {0xA7EC,0xA7EC,0x33C3},
+  {0xA7ED,0xA7ED,0x33C9},
+  {0xA7EE,0xA7EE,0x33DC},
+  {0xA7EF,0xA7EF,0x33C6},
+  {0xA7F0,0xA7F0,0x003F}, /* A7F0 */
+  {0xA7F1,0xA7F1,0x003F},
+  {0xA7F2,0xA7F2,0x003F},
+  {0xA7F3,0xA7F3,0x003F},
+  {0xA7F4,0xA7F4,0x003F},
+  {0xA7F5,0xA7F5,0x003F},
+  {0xA7F6,0xA7F6,0x003F},
+  {0xA7F7,0xA7F7,0x003F},
+  {0xA7F8,0xA7F8,0x003F},
+  {0xA7F9,0xA7F9,0x003F},
+  {0xA7FA,0xA7FA,0x003F},
+  {0xA7FB,0xA7FB,0x003F},
+  {0xA7FC,0xA7FC,0x003F},
+  {0xA7FD,0xA7FD,0x003F},
+  {0xA7FE,0xA7FE,0x003F},
+  {0xA7FF,0xA7FF,0x003F}
+};
+
+
+static MY_UNICASE_INFO cA8[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA840,0xA840,0x003F}, /* A840 */
+  {0xA841,0xA841,0xCB6D},
+  {0xA842,0xA842,0xCB6E},
+  {0xA843,0xA843,0xCB6F},
+  {0xA844,0xA844,0xCB70},
+  {0xA845,0xA845,0xCB71},
+  {0xA846,0xA846,0xCB72},
+  {0xA847,0xA847,0xCB73},
+  {0xA848,0xA848,0xCB74},
+  {0xA849,0xA849,0xCB75},
+  {0xA84A,0xA84A,0xCB76},
+  {0xA84B,0xA84B,0xCB77},
+  {0xA84C,0xA84C,0xCB7A},
+  {0xA84D,0xA84D,0xCB7B},
+  {0xA84E,0xA84E,0xCB7C},
+  {0xA84F,0xA84F,0xCB7D},
+  {0xA850,0xA850,0xCB7E}, /* A850 */
+  {0xA851,0xA851,0xCB7F},
+  {0xA852,0xA852,0xCB80},
+  {0xA853,0xA853,0xCB81},
+  {0xA854,0xA854,0xCB82},
+  {0xA855,0xA855,0xCB83},
+  {0xA856,0xA856,0xCB84},
+  {0xA857,0xA857,0xCB85},
+  {0xA858,0xA858,0xCB86},
+  {0xA859,0xA859,0xCB87},
+  {0xA85A,0xA85A,0xCB88},
+  {0xA85B,0xA85B,0x003F},
+  {0xA85C,0xA85C,0x003F},
+  {0xA85D,0xA85D,0x003F},
+  {0xA85E,0xA85E,0x003F},
+  {0xA85F,0xA85F,0x003F},
+  {0xA860,0xA860,0x003F}, /* A860 */
+  {0xA861,0xA861,0xCB89},
+  {0xA862,0xA862,0xCB8A},
+  {0xA863,0xA863,0xCB8B},
+  {0xA864,0xA864,0xCB8C},
+  {0xA865,0xA865,0xCB8D},
+  {0xA866,0xA866,0xCB8E},
+  {0xA867,0xA867,0xCB8F},
+  {0xA868,0xA868,0xCB90},
+  {0xA869,0xA869,0xCB91},
+  {0xA86A,0xA86A,0xCB92},
+  {0xA86B,0xA86B,0xCB93},
+  {0xA86C,0xA86C,0xCB94},
+  {0xA86D,0xA86D,0xCB95},
+  {0xA86E,0xA86E,0xCB96},
+  {0xA86F,0xA86F,0xCB97},
+  {0xA870,0xA870,0xCB98}, /* A870 */
+  {0xA871,0xA871,0xCB99},
+  {0xA872,0xA872,0xCB9A},
+  {0xA873,0xA873,0xCB9B},
+  {0xA874,0xA874,0xCB9D},
+  {0xA875,0xA875,0xCB9E},
+  {0xA876,0xA876,0xCB9F},
+  {0xA877,0xA877,0xCBA0},
+  {0xA878,0xA878,0xCBA1},
+  {0xA879,0xA879,0xCBA2},
+  {0xA87A,0xA87A,0xCBA3},
+  {0xA87B,0xA87B,0x003F},
+  {0xA87C,0xA87C,0x003F},
+  {0xA87D,0xA87D,0x003F},
+  {0xA87E,0xA87E,0x003F},
+  {0xA87F,0xA87F,0x003F},
+  {0xA880,0xA880,0x003F}, /* A880 */
+  {0xA881,0xA881,0xCBA4},
+  {0xA882,0xA882,0xCBA5},
+  {0xA883,0xA883,0xCBA6},
+  {0xA884,0xA884,0xCBA7},
+  {0xA885,0xA885,0xCBA8},
+  {0xA886,0xA886,0xCBA9},
+  {0xA887,0xA887,0xCBAA},
+  {0xA888,0xA888,0xCBAB},
+  {0xA889,0xA889,0xCBAC},
+  {0xA88A,0xA88A,0xCBAD},
+  {0xA88B,0xA88B,0xCBAE},
+  {0xA88C,0xA88C,0xCBAF},
+  {0xA88D,0xA88D,0xCBB0},
+  {0xA88E,0xA88E,0xCBB1},
+  {0xA88F,0xA88F,0xCBB2},
+  {0xA890,0xA890,0xCBB3}, /* A890 */
+  {0xA891,0xA891,0xCBB4},
+  {0xA892,0xA892,0xCBB5},
+  {0xA893,0xA893,0xCBB6},
+  {0xA894,0xA894,0xCBB7},
+  {0xA895,0xA895,0xCBB9},
+  {0xA896,0xA896,0xCBBA},
+  {0xA897,0xA897,0xCBBB},
+  {0xA898,0xA898,0xCBBC},
+  {0xA899,0xA899,0xCBBD},
+  {0xA89A,0xA89A,0xCBBE},
+  {0xA89B,0xA89B,0xCBBF},
+  {0xA89C,0xA89C,0xCBC0},
+  {0xA89D,0xA89D,0xCBC1},
+  {0xA89E,0xA89E,0xCBC2},
+  {0xA89F,0xA89F,0xCBC3},
+  {0xA8A0,0xA8A0,0xCBC4}, /* A8A0 */
+  {0xA8A1,0xA9A1,0x00C6},
+  {0xA8A2,0xA9A3,0x00D0},
+  {0xA8A3,0xA8A3,0x00AA},
+  {0xA8A4,0xA9A4,0x0126},
+  {0xA8A5,0xA8A5,0x003F},
+  {0xA8A6,0xA9A6,0x0132},
+  {0xA8A7,0xA8A7,0x003F},
+  {0xA8A8,0xA9A8,0x013F},
+  {0xA8A9,0xA9A9,0x0141},
+  {0xA8AA,0xA9AA,0x00D8},
+  {0xA8AB,0xA9AB,0x0152},
+  {0xA8AC,0xA8AC,0x00BA},
+  {0xA8AD,0xA9AD,0x00DE},
+  {0xA8AE,0xA9AE,0x0166},
+  {0xA8AF,0xA9AF,0x014A},
+  {0xA8B0,0xA8B0,0x003F}, /* A8B0 */
+  {0xA8B1,0xA8B1,0x3260},
+  {0xA8B2,0xA8B2,0x3261},
+  {0xA8B3,0xA8B3,0x3262},
+  {0xA8B4,0xA8B4,0x3263},
+  {0xA8B5,0xA8B5,0x3264},
+  {0xA8B6,0xA8B6,0x3265},
+  {0xA8B7,0xA8B7,0x3266},
+  {0xA8B8,0xA8B8,0x3267},
+  {0xA8B9,0xA8B9,0x3268},
+  {0xA8BA,0xA8BA,0x3269},
+  {0xA8BB,0xA8BB,0x326A},
+  {0xA8BC,0xA8BC,0x326B},
+  {0xA8BD,0xA8BD,0x326C},
+  {0xA8BE,0xA8BE,0x326D},
+  {0xA8BF,0xA8BF,0x326E},
+  {0xA8C0,0xA8C0,0x326F}, /* A8C0 */
+  {0xA8C1,0xA8C1,0x3270},
+  {0xA8C2,0xA8C2,0x3271},
+  {0xA8C3,0xA8C3,0x3272},
+  {0xA8C4,0xA8C4,0x3273},
+  {0xA8C5,0xA8C5,0x3274},
+  {0xA8C6,0xA8C6,0x3275},
+  {0xA8C7,0xA8C7,0x3276},
+  {0xA8C8,0xA8C8,0x3277},
+  {0xA8C9,0xA8C9,0x3278},
+  {0xA8CA,0xA8CA,0x3279},
+  {0xA8CB,0xA8CB,0x327A},
+  {0xA8CC,0xA8CC,0x327B},
+  {0xA8CD,0xA8CD,0x24D0},
+  {0xA8CE,0xA8CE,0x24D1},
+  {0xA8CF,0xA8CF,0x24D2},
+  {0xA8D0,0xA8D0,0x24D3}, /* A8D0 */
+  {0xA8D1,0xA8D1,0x24D4},
+  {0xA8D2,0xA8D2,0x24D5},
+  {0xA8D3,0xA8D3,0x24D6},
+  {0xA8D4,0xA8D4,0x24D7},
+  {0xA8D5,0xA8D5,0x24D8},
+  {0xA8D6,0xA8D6,0x24D9},
+  {0xA8D7,0xA8D7,0x24DA},
+  {0xA8D8,0xA8D8,0x24DB},
+  {0xA8D9,0xA8D9,0x24DC},
+  {0xA8DA,0xA8DA,0x24DD},
+  {0xA8DB,0xA8DB,0x24DE},
+  {0xA8DC,0xA8DC,0x24DF},
+  {0xA8DD,0xA8DD,0x24E0},
+  {0xA8DE,0xA8DE,0x24E1},
+  {0xA8DF,0xA8DF,0x24E2},
+  {0xA8E0,0xA8E0,0x24E3}, /* A8E0 */
+  {0xA8E1,0xA8E1,0x24E4},
+  {0xA8E2,0xA8E2,0x24E5},
+  {0xA8E3,0xA8E3,0x24E6},
+  {0xA8E4,0xA8E4,0x24E7},
+  {0xA8E5,0xA8E5,0x24E8},
+  {0xA8E6,0xA8E6,0x24E9},
+  {0xA8E7,0xA8E7,0x2460},
+  {0xA8E8,0xA8E8,0x2461},
+  {0xA8E9,0xA8E9,0x2462},
+  {0xA8EA,0xA8EA,0x2463},
+  {0xA8EB,0xA8EB,0x2464},
+  {0xA8EC,0xA8EC,0x2465},
+  {0xA8ED,0xA8ED,0x2466},
+  {0xA8EE,0xA8EE,0x2467},
+  {0xA8EF,0xA8EF,0x2468},
+  {0xA8F0,0xA8F0,0x2469}, /* A8F0 */
+  {0xA8F1,0xA8F1,0x246A},
+  {0xA8F2,0xA8F2,0x246B},
+  {0xA8F3,0xA8F3,0x246C},
+  {0xA8F4,0xA8F4,0x246D},
+  {0xA8F5,0xA8F5,0x246E},
+  {0xA8F6,0xA8F6,0x00BD},
+  {0xA8F7,0xA8F7,0x2153},
+  {0xA8F8,0xA8F8,0x2154},
+  {0xA8F9,0xA8F9,0x00BC},
+  {0xA8FA,0xA8FA,0x00BE},
+  {0xA8FB,0xA8FB,0x215B},
+  {0xA8FC,0xA8FC,0x215C},
+  {0xA8FD,0xA8FD,0x215D},
+  {0xA8FE,0xA8FE,0x215E},
+  {0xA8FF,0xA8FF,0x003F}
+};
+
+
+static MY_UNICASE_INFO cA9[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA940,0xA940,0x003F}, /* A940 */
+  {0xA941,0xA941,0xCBC5},
+  {0xA942,0xA942,0xCBC6},
+  {0xA943,0xA943,0xCBC7},
+  {0xA944,0xA944,0xCBC8},
+  {0xA945,0xA945,0xCBC9},
+  {0xA946,0xA946,0xCBCA},
+  {0xA947,0xA947,0xCBCB},
+  {0xA948,0xA948,0xCBCC},
+  {0xA949,0xA949,0xCBCD},
+  {0xA94A,0xA94A,0xCBCE},
+  {0xA94B,0xA94B,0xCBCF},
+  {0xA94C,0xA94C,0xCBD0},
+  {0xA94D,0xA94D,0xCBD1},
+  {0xA94E,0xA94E,0xCBD2},
+  {0xA94F,0xA94F,0xCBD3},
+  {0xA950,0xA950,0xCBD5}, /* A950 */
+  {0xA951,0xA951,0xCBD6},
+  {0xA952,0xA952,0xCBD7},
+  {0xA953,0xA953,0xCBD8},
+  {0xA954,0xA954,0xCBD9},
+  {0xA955,0xA955,0xCBDA},
+  {0xA956,0xA956,0xCBDB},
+  {0xA957,0xA957,0xCBDC},
+  {0xA958,0xA958,0xCBDD},
+  {0xA959,0xA959,0xCBDE},
+  {0xA95A,0xA95A,0xCBDF},
+  {0xA95B,0xA95B,0x003F},
+  {0xA95C,0xA95C,0x003F},
+  {0xA95D,0xA95D,0x003F},
+  {0xA95E,0xA95E,0x003F},
+  {0xA95F,0xA95F,0x003F},
+  {0xA960,0xA960,0x003F}, /* A960 */
+  {0xA961,0xA961,0xCBE0},
+  {0xA962,0xA962,0xCBE1},
+  {0xA963,0xA963,0xCBE2},
+  {0xA964,0xA964,0xCBE3},
+  {0xA965,0xA965,0xCBE5},
+  {0xA966,0xA966,0xCBE6},
+  {0xA967,0xA967,0xCBE8},
+  {0xA968,0xA968,0xCBEA},
+  {0xA969,0xA969,0xCBEB},
+  {0xA96A,0xA96A,0xCBEC},
+  {0xA96B,0xA96B,0xCBED},
+  {0xA96C,0xA96C,0xCBEE},
+  {0xA96D,0xA96D,0xCBEF},
+  {0xA96E,0xA96E,0xCBF0},
+  {0xA96F,0xA96F,0xCBF1},
+  {0xA970,0xA970,0xCBF2}, /* A970 */
+  {0xA971,0xA971,0xCBF3},
+  {0xA972,0xA972,0xCBF4},
+  {0xA973,0xA973,0xCBF5},
+  {0xA974,0xA974,0xCBF6},
+  {0xA975,0xA975,0xCBF7},
+  {0xA976,0xA976,0xCBF8},
+  {0xA977,0xA977,0xCBF9},
+  {0xA978,0xA978,0xCBFA},
+  {0xA979,0xA979,0xCBFB},
+  {0xA97A,0xA97A,0xCBFC},
+  {0xA97B,0xA97B,0x003F},
+  {0xA97C,0xA97C,0x003F},
+  {0xA97D,0xA97D,0x003F},
+  {0xA97E,0xA97E,0x003F},
+  {0xA97F,0xA97F,0x003F},
+  {0xA980,0xA980,0x003F}, /* A980 */
+  {0xA981,0xA981,0xCBFD},
+  {0xA982,0xA982,0xCBFE},
+  {0xA983,0xA983,0xCBFF},
+  {0xA984,0xA984,0xCC00},
+  {0xA985,0xA985,0xCC01},
+  {0xA986,0xA986,0xCC02},
+  {0xA987,0xA987,0xCC03},
+  {0xA988,0xA988,0xCC04},
+  {0xA989,0xA989,0xCC05},
+  {0xA98A,0xA98A,0xCC06},
+  {0xA98B,0xA98B,0xCC07},
+  {0xA98C,0xA98C,0xCC08},
+  {0xA98D,0xA98D,0xCC09},
+  {0xA98E,0xA98E,0xCC0A},
+  {0xA98F,0xA98F,0xCC0B},
+  {0xA990,0xA990,0xCC0E}, /* A990 */
+  {0xA991,0xA991,0xCC0F},
+  {0xA992,0xA992,0xCC11},
+  {0xA993,0xA993,0xCC12},
+  {0xA994,0xA994,0xCC13},
+  {0xA995,0xA995,0xCC15},
+  {0xA996,0xA996,0xCC16},
+  {0xA997,0xA997,0xCC17},
+  {0xA998,0xA998,0xCC18},
+  {0xA999,0xA999,0xCC19},
+  {0xA99A,0xA99A,0xCC1A},
+  {0xA99B,0xA99B,0xCC1B},
+  {0xA99C,0xA99C,0xCC1E},
+  {0xA99D,0xA99D,0xCC1F},
+  {0xA99E,0xA99E,0xCC20},
+  {0xA99F,0xA99F,0xCC23},
+  {0xA9A0,0xA9A0,0xCC24}, /* A9A0 */
+  {0xA8A1,0xA9A1,0x00E6},
+  {0xA9A2,0xA9A2,0x0111},
+  {0xA8A2,0xA9A3,0x00F0},
+  {0xA8A4,0xA9A4,0x0127},
+  {  0x49,0xA9A5,0x0131}, /* Turkish i */
+  {0xA8A6,0xA9A6,0x0133},
+  {0xA9A7,0xA9A7,0x0138},
+  {0xA8A8,0xA9A8,0x0140},
+  {0xA8A9,0xA9A9,0x0142},
+  {0xA8AA,0xA9AA,0x00F8},
+  {0xA8AB,0xA9AB,0x0153},
+  {0xA9AC,0xA9AC,0x00DF},
+  {0xA8AD,0xA9AD,0x00FE},
+  {0xA8AE,0xA9AE,0x0167},
+  {0xA8AF,0xA9AF,0x014B},
+  {0xA9B0,0xA9B0,0x0149}, /* A9B0 */
+  {0xA9B1,0xA9B1,0x3200},
+  {0xA9B2,0xA9B2,0x3201},
+  {0xA9B3,0xA9B3,0x3202},
+  {0xA9B4,0xA9B4,0x3203},
+  {0xA9B5,0xA9B5,0x3204},
+  {0xA9B6,0xA9B6,0x3205},
+  {0xA9B7,0xA9B7,0x3206},
+  {0xA9B8,0xA9B8,0x3207},
+  {0xA9B9,0xA9B9,0x3208},
+  {0xA9BA,0xA9BA,0x3209},
+  {0xA9BB,0xA9BB,0x320A},
+  {0xA9BC,0xA9BC,0x320B},
+  {0xA9BD,0xA9BD,0x320C},
+  {0xA9BE,0xA9BE,0x320D},
+  {0xA9BF,0xA9BF,0x320E},
+  {0xA9C0,0xA9C0,0x320F}, /* A9C0 */
+  {0xA9C1,0xA9C1,0x3210},
+  {0xA9C2,0xA9C2,0x3211},
+  {0xA9C3,0xA9C3,0x3212},
+  {0xA9C4,0xA9C4,0x3213},
+  {0xA9C5,0xA9C5,0x3214},
+  {0xA9C6,0xA9C6,0x3215},
+  {0xA9C7,0xA9C7,0x3216},
+  {0xA9C8,0xA9C8,0x3217},
+  {0xA9C9,0xA9C9,0x3218},
+  {0xA9CA,0xA9CA,0x3219},
+  {0xA9CB,0xA9CB,0x321A},
+  {0xA9CC,0xA9CC,0x321B},
+  {0xA9CD,0xA9CD,0x249C},
+  {0xA9CE,0xA9CE,0x249D},
+  {0xA9CF,0xA9CF,0x249E},
+  {0xA9D0,0xA9D0,0x249F}, /* A9D0 */
+  {0xA9D1,0xA9D1,0x24A0},
+  {0xA9D2,0xA9D2,0x24A1},
+  {0xA9D3,0xA9D3,0x24A2},
+  {0xA9D4,0xA9D4,0x24A3},
+  {0xA9D5,0xA9D5,0x24A4},
+  {0xA9D6,0xA9D6,0x24A5},
+  {0xA9D7,0xA9D7,0x24A6},
+  {0xA9D8,0xA9D8,0x24A7},
+  {0xA9D9,0xA9D9,0x24A8},
+  {0xA9DA,0xA9DA,0x24A9},
+  {0xA9DB,0xA9DB,0x24AA},
+  {0xA9DC,0xA9DC,0x24AB},
+  {0xA9DD,0xA9DD,0x24AC},
+  {0xA9DE,0xA9DE,0x24AD},
+  {0xA9DF,0xA9DF,0x24AE},
+  {0xA9E0,0xA9E0,0x24AF}, /* A9E0 */
+  {0xA9E1,0xA9E1,0x24B0},
+  {0xA9E2,0xA9E2,0x24B1},
+  {0xA9E3,0xA9E3,0x24B2},
+  {0xA9E4,0xA9E4,0x24B3},
+  {0xA9E5,0xA9E5,0x24B4},
+  {0xA9E6,0xA9E6,0x24B5},
+  {0xA9E7,0xA9E7,0x2474},
+  {0xA9E8,0xA9E8,0x2475},
+  {0xA9E9,0xA9E9,0x2476},
+  {0xA9EA,0xA9EA,0x2477},
+  {0xA9EB,0xA9EB,0x2478},
+  {0xA9EC,0xA9EC,0x2479},
+  {0xA9ED,0xA9ED,0x247A},
+  {0xA9EE,0xA9EE,0x247B},
+  {0xA9EF,0xA9EF,0x247C},
+  {0xA9F0,0xA9F0,0x247D}, /* A9F0 */
+  {0xA9F1,0xA9F1,0x247E},
+  {0xA9F2,0xA9F2,0x247F},
+  {0xA9F3,0xA9F3,0x2480},
+  {0xA9F4,0xA9F4,0x2481},
+  {0xA9F5,0xA9F5,0x2482},
+  {0xA9F6,0xA9F6,0x00B9},
+  {0xA9F7,0xA9F7,0x00B2},
+  {0xA9F8,0xA9F8,0x00B3},
+  {0xA9F9,0xA9F9,0x2074},
+  {0xA9FA,0xA9FA,0x207F},
+  {0xA9FB,0xA9FB,0x2081},
+  {0xA9FC,0xA9FC,0x2082},
+  {0xA9FD,0xA9FD,0x2083},
+  {0xA9FE,0xA9FE,0x2084},
+  {0xA9FF,0xA9FF,0x003F}
+};  
+
+
+static MY_UNICASE_INFO cAC[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xAC40,0xAC40,0x003F}, /* AC40 */
+  {0xAC41,0xAC41,0xCCFE},
+  {0xAC42,0xAC42,0xCCFF},
+  {0xAC43,0xAC43,0xCD00},
+  {0xAC44,0xAC44,0xCD02},
+  {0xAC45,0xAC45,0xCD03},
+  {0xAC46,0xAC46,0xCD04},
+  {0xAC47,0xAC47,0xCD05},
+  {0xAC48,0xAC48,0xCD06},
+  {0xAC49,0xAC49,0xCD07},
+  {0xAC4A,0xAC4A,0xCD0A},
+  {0xAC4B,0xAC4B,0xCD0B},
+  {0xAC4C,0xAC4C,0xCD0D},
+  {0xAC4D,0xAC4D,0xCD0E},
+  {0xAC4E,0xAC4E,0xCD0F},
+  {0xAC4F,0xAC4F,0xCD11},
+  {0xAC50,0xAC50,0xCD12}, /* AC50 */
+  {0xAC51,0xAC51,0xCD13},
+  {0xAC52,0xAC52,0xCD14},
+  {0xAC53,0xAC53,0xCD15},
+  {0xAC54,0xAC54,0xCD16},
+  {0xAC55,0xAC55,0xCD17},
+  {0xAC56,0xAC56,0xCD1A},
+  {0xAC57,0xAC57,0xCD1C},
+  {0xAC58,0xAC58,0xCD1E},
+  {0xAC59,0xAC59,0xCD1F},
+  {0xAC5A,0xAC5A,0xCD20},
+  {0xAC5B,0xAC5B,0x003F},
+  {0xAC5C,0xAC5C,0x003F},
+  {0xAC5D,0xAC5D,0x003F},
+  {0xAC5E,0xAC5E,0x003F},
+  {0xAC5F,0xAC5F,0x003F},
+  {0xAC60,0xAC60,0x003F}, /* AC60 */
+  {0xAC61,0xAC61,0xCD21},
+  {0xAC62,0xAC62,0xCD22},
+  {0xAC63,0xAC63,0xCD23},
+  {0xAC64,0xAC64,0xCD25},
+  {0xAC65,0xAC65,0xCD26},
+  {0xAC66,0xAC66,0xCD27},
+  {0xAC67,0xAC67,0xCD29},
+  {0xAC68,0xAC68,0xCD2A},
+  {0xAC69,0xAC69,0xCD2B},
+  {0xAC6A,0xAC6A,0xCD2D},
+  {0xAC6B,0xAC6B,0xCD2E},
+  {0xAC6C,0xAC6C,0xCD2F},
+  {0xAC6D,0xAC6D,0xCD30},
+  {0xAC6E,0xAC6E,0xCD31},
+  {0xAC6F,0xAC6F,0xCD32},
+  {0xAC70,0xAC70,0xCD33}, /* AC70 */
+  {0xAC71,0xAC71,0xCD34},
+  {0xAC72,0xAC72,0xCD35},
+  {0xAC73,0xAC73,0xCD36},
+  {0xAC74,0xAC74,0xCD37},
+  {0xAC75,0xAC75,0xCD38},
+  {0xAC76,0xAC76,0xCD3A},
+  {0xAC77,0xAC77,0xCD3B},
+  {0xAC78,0xAC78,0xCD3C},
+  {0xAC79,0xAC79,0xCD3D},
+  {0xAC7A,0xAC7A,0xCD3E},
+  {0xAC7B,0xAC7B,0x003F},
+  {0xAC7C,0xAC7C,0x003F},
+  {0xAC7D,0xAC7D,0x003F},
+  {0xAC7E,0xAC7E,0x003F},
+  {0xAC7F,0xAC7F,0x003F},
+  {0xAC80,0xAC80,0x003F}, /* AC80 */
+  {0xAC81,0xAC81,0xCD3F},
+  {0xAC82,0xAC82,0xCD40},
+  {0xAC83,0xAC83,0xCD41},
+  {0xAC84,0xAC84,0xCD42},
+  {0xAC85,0xAC85,0xCD43},
+  {0xAC86,0xAC86,0xCD44},
+  {0xAC87,0xAC87,0xCD45},
+  {0xAC88,0xAC88,0xCD46},
+  {0xAC89,0xAC89,0xCD47},
+  {0xAC8A,0xAC8A,0xCD48},
+  {0xAC8B,0xAC8B,0xCD49},
+  {0xAC8C,0xAC8C,0xCD4A},
+  {0xAC8D,0xAC8D,0xCD4B},
+  {0xAC8E,0xAC8E,0xCD4C},
+  {0xAC8F,0xAC8F,0xCD4D},
+  {0xAC90,0xAC90,0xCD4E}, /* AC90 */
+  {0xAC91,0xAC91,0xCD4F},
+  {0xAC92,0xAC92,0xCD50},
+  {0xAC93,0xAC93,0xCD51},
+  {0xAC94,0xAC94,0xCD52},
+  {0xAC95,0xAC95,0xCD53},
+  {0xAC96,0xAC96,0xCD54},
+  {0xAC97,0xAC97,0xCD55},
+  {0xAC98,0xAC98,0xCD56},
+  {0xAC99,0xAC99,0xCD57},
+  {0xAC9A,0xAC9A,0xCD58},
+  {0xAC9B,0xAC9B,0xCD59},
+  {0xAC9C,0xAC9C,0xCD5A},
+  {0xAC9D,0xAC9D,0xCD5B},
+  {0xAC9E,0xAC9E,0xCD5D},
+  {0xAC9F,0xAC9F,0xCD5E},
+  {0xACA0,0xACA0,0xCD5F}, /* ACA0 */
+  {0xACA1,0xACD1,0x0410},
+  {0xACA2,0xACD2,0x0411},
+  {0xACA3,0xACD3,0x0412},
+  {0xACA4,0xACD4,0x0413},
+  {0xACA5,0xACD5,0x0414},
+  {0xACA6,0xACD6,0x0415},
+  {0xACA7,0xACD7,0x0401},
+  {0xACA8,0xACD8,0x0416},
+  {0xACA9,0xACD9,0x0417},
+  {0xACAA,0xACDA,0x0418},
+  {0xACAB,0xACDB,0x0419},
+  {0xACAC,0xACDC,0x041A},
+  {0xACAD,0xACDD,0x041B},
+  {0xACAE,0xACDE,0x041C},
+  {0xACAF,0xACDF,0x041D},
+  {0xACB0,0xACE0,0x041E}, /* ACB0 */
+  {0xACB1,0xACE1,0x041F},
+  {0xACB2,0xACE2,0x0420},
+  {0xACB3,0xACE3,0x0421},
+  {0xACB4,0xACE4,0x0422},
+  {0xACB5,0xACE5,0x0423},
+  {0xACB6,0xACE6,0x0424},
+  {0xACB7,0xACE7,0x0425},
+  {0xACB8,0xACE8,0x0426},
+  {0xACB9,0xACE9,0x0427},
+  {0xACBA,0xACEA,0x0428},
+  {0xACBB,0xACEB,0x0429},
+  {0xACBC,0xACEC,0x042A},
+  {0xACBD,0xACED,0x042B},
+  {0xACBE,0xACEE,0x042C},
+  {0xACBF,0xACEF,0x042D},
+  {0xACC0,0xACF0,0x042E}, /* ACC0 */
+  {0xACC1,0xACF1,0x042F},
+  {0xACC2,0xACC2,0x003F},
+  {0xACC3,0xACC3,0x003F},
+  {0xACC4,0xACC4,0x003F},
+  {0xACC5,0xACC5,0x003F},
+  {0xACC6,0xACC6,0x003F},
+  {0xACC7,0xACC7,0x003F},
+  {0xACC8,0xACC8,0x003F},
+  {0xACC9,0xACC9,0x003F},
+  {0xACCA,0xACCA,0x003F},
+  {0xACCB,0xACCB,0x003F},
+  {0xACCC,0xACCC,0x003F},
+  {0xACCD,0xACCD,0x003F},
+  {0xACCE,0xACCE,0x003F},
+  {0xACCF,0xACCF,0x003F},
+  {0xACD0,0xACD0,0x003F}, /* ACD0 */
+  {0xACA1,0xACD1,0x0430},
+  {0xACA2,0xACD2,0x0431},
+  {0xACA3,0xACD3,0x0432},
+  {0xACA4,0xACD4,0x0433},
+  {0xACA5,0xACD5,0x0434},
+  {0xACA6,0xACD6,0x0435},
+  {0xACA7,0xACD7,0x0451},
+  {0xACA8,0xACD8,0x0436},
+  {0xACA9,0xACD9,0x0437},
+  {0xACAA,0xACDA,0x0438},
+  {0xACAB,0xACDB,0x0439},
+  {0xACAC,0xACDC,0x043A},
+  {0xACAD,0xACDD,0x043B},
+  {0xACAE,0xACDE,0x043C},
+  {0xACAF,0xACDF,0x043D},
+  {0xACB0,0xACE0,0x043E}, /* ACE0 */
+  {0xACB1,0xACE1,0x043F},
+  {0xACB2,0xACE2,0x0440},
+  {0xACB3,0xACE3,0x0441},
+  {0xACB4,0xACE4,0x0442},
+  {0xACB5,0xACE5,0x0443},
+  {0xACB6,0xACE6,0x0444},
+  {0xACB7,0xACE7,0x0445},
+  {0xACB8,0xACE8,0x0446},
+  {0xACB9,0xACE9,0x0447},
+  {0xACBA,0xACEA,0x0448},
+  {0xACBB,0xACEB,0x0449},
+  {0xACBC,0xACEC,0x044A},
+  {0xACBD,0xACED,0x044B},
+  {0xACBE,0xACEE,0x044C},
+  {0xACBF,0xACEF,0x044D},
+  {0xACC0,0xACF0,0x044E}, /* ACF0 */
+  {0xACC1,0xACF1,0x044F},
+  {0xACF2,0xACF2,0x003F},
+  {0xACF3,0xACF3,0x003F},
+  {0xACF4,0xACF4,0x003F},
+  {0xACF5,0xACF5,0x003F},
+  {0xACF6,0xACF6,0x003F},
+  {0xACF7,0xACF7,0x003F},
+  {0xACF8,0xACF8,0x003F},
+  {0xACF9,0xACF9,0x003F},
+  {0xACFA,0xACFA,0x003F},
+  {0xACFB,0xACFB,0x003F},
+  {0xACFC,0xACFC,0x003F},
+  {0xACFD,0xACFD,0x003F},
+  {0xACFE,0xACFE,0x003F},
+  {0xACFF,0xACFF,0x003F}
+};
+
+
+static MY_UNICASE_INFO *my_caseinfo_euckr[256]=
+{
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL,  cA3, NULL,  cA5, NULL,  cA7, /* A */
+   cA8,  cA9, NULL, NULL,  cAC, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+};
+
+
 /* page 0 0x8141-0xC8FE */
 static uint16 tab_ksc5601_uni0[]={
 0xAC02,0xAC03,0xAC05,0xAC06,0xAC0B,0xAC0C,0xAC0D,0xAC0E,
@@ -8720,8 +9987,8 @@ static MY_CHARSET_HANDLER my_charset_han
   my_mb_ctype_mb,
   my_caseup_str_mb,
   my_casedn_str_mb,
-  my_caseup_mb,
-  my_casedn_mb,
+  my_caseup_mb_varlen, /* UPPER() can reduce length: Turkish DOTLESS i -> I */
+  my_casedn_mb,        /* LOWER() does not change length, use simple version*/
   my_snprintf_8bit,
   my_long10_to_str_8bit,
   my_longlong10_to_str_8bit,
@@ -8753,7 +10020,7 @@ CHARSET_INFO my_charset_euckr_korean_ci=
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_euckr,  /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */
@@ -8786,7 +10053,7 @@ CHARSET_INFO my_charset_euckr_bin=
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_euckr,  /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */

=== modified file 'strings/ctype-eucjpms.c'
--- a/strings/ctype-eucjpms.c	2008-02-20 18:49:26 +0000
+++ b/strings/ctype-eucjpms.c	2009-11-27 07:42:35 +0000
@@ -201,6 +201,1535 @@ static uint mbcharlen_eucjpms(CHARSET_IN
 }
 
 
+
+/* Case info pages for JIS-X-0208 range */
+
+static MY_UNICASE_INFO cA2[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA2A0,0xA2A0,0x003F}, /* A2A0 */
+  {0xA2A1,0xA2A1,0x25C6},
+  {0xA2A2,0xA2A2,0x25A1},
+  {0xA2A3,0xA2A3,0x25A0},
+  {0xA2A4,0xA2A4,0x25B3},
+  {0xA2A5,0xA2A5,0x25B2},
+  {0xA2A6,0xA2A6,0x25BD},
+  {0xA2A7,0xA2A7,0x25BC},
+  {0xA2A8,0xA2A8,0x203B},
+  {0xA2A9,0xA2A9,0x3012},
+  {0xA2AA,0xA2AA,0x2192},
+  {0xA2AB,0xA2AB,0x2190},
+  {0xA2AC,0xA2AC,0x2191},
+  {0xA2AD,0xA2AD,0x2193},
+  {0xA2AE,0xA2AE,0x3013},
+  {0xA2AF,0xA2AF,0x003F},
+  {0xA2B0,0xA2B0,0x003F}, /* A2B0 */
+  {0xA2B1,0xA2B1,0x003F},
+  {0xA2B2,0xA2B2,0x003F},
+  {0xA2B3,0xA2B3,0x003F},
+  {0xA2B4,0xA2B4,0x003F},
+  {0xA2B5,0xA2B5,0x003F},
+  {0xA2B6,0xA2B6,0x003F},
+  {0xA2B7,0xA2B7,0x003F},
+  {0xA2B8,0xA2B8,0x003F},
+  {0xA2B9,0xA2B9,0x003F},
+  {0xA2BA,0xA2BA,0x2208},
+  {0xA2BB,0xA2BB,0x220B},
+  {0xA2BC,0xA2BC,0x2286},
+  {0xA2BD,0xA2BD,0x2287},
+  {0xA2BE,0xA2BE,0x2282},
+  {0xA2BF,0xA2BF,0x2283},
+  {0xA2C0,0xA2C0,0x222A}, /* A2C0 */
+  {0xA2C1,0xA2C1,0x2229},
+  {0xA2C2,0xA2C2,0x003F},
+  {0xA2C3,0xA2C3,0x003F},
+  {0xA2C4,0xA2C4,0x003F},
+  {0xA2C5,0xA2C5,0x003F},
+  {0xA2C6,0xA2C6,0x003F},
+  {0xA2C7,0xA2C7,0x003F},
+  {0xA2C8,0xA2C8,0x003F},
+  {0xA2C9,0xA2C9,0x003F},
+  {0xA2CA,0xA2CA,0x2227},
+  {0xA2CB,0xA2CB,0x2228},
+  {0xA2CC,0xA2CC,0xFFE2},
+  {0xA2CD,0xA2CD,0x21D2},
+  {0xA2CE,0xA2CE,0x21D4},
+  {0xA2CF,0xA2CF,0x2200},
+  {0xA2D0,0xA2D0,0x2203}, /* A2D0 */
+  {0xA2D1,0xA2D1,0x003F},
+  {0xA2D2,0xA2D2,0x003F},
+  {0xA2D3,0xA2D3,0x003F},
+  {0xA2D4,0xA2D4,0x003F},
+  {0xA2D5,0xA2D5,0x003F},
+  {0xA2D6,0xA2D6,0x003F},
+  {0xA2D7,0xA2D7,0x003F},
+  {0xA2D8,0xA2D8,0x003F},
+  {0xA2D9,0xA2D9,0x003F},
+  {0xA2DA,0xA2DA,0x003F},
+  {0xA2DB,0xA2DB,0x003F},
+  {0xA2DC,0xA2DC,0x2220},
+  {0xA2DD,0xA2DD,0x22A5},
+  {0xA2DE,0xA2DE,0x2312},
+  {0xA2DF,0xA2DF,0x2202},
+  {0xA2E0,0xA2E0,0x2207}, /* A2E0 */
+  {0xA2E1,0xA2E1,0x2261},
+  {0xA2E2,0xA2E2,0x2252},
+  {0xA2E3,0xA2E3,0x226A},
+  {0xA2E4,0xA2E4,0x226B},
+  {0xA2E5,0xA2E5,0x221A},
+  {0xA2E6,0xA2E6,0x223D},
+  {0xA2E7,0xA2E7,0x221D},
+  {0xA2E8,0xA2E8,0x2235},
+  {0xA2E9,0xA2E9,0x222B},
+  {0xA2EA,0xA2EA,0x222C},
+  {0xA2EB,0xA2EB,0x003F},
+  {0xA2EC,0xA2EC,0x003F},
+  {0xA2ED,0xA2ED,0x003F},
+  {0xA2EE,0xA2EE,0x003F},
+  {0xA2EF,0xA2EF,0x003F},
+  {0xA2F0,0xA2F0,0x003F}, /* A2F0 */
+  {0xA2F1,0xA2F1,0x003F},
+  {0xA2F2,0x8FABA9,0x212B},
+  {0xA2F3,0xA2F3,0x2030},
+  {0xA2F4,0xA2F4,0x266F},
+  {0xA2F5,0xA2F5,0x266D},
+  {0xA2F6,0xA2F6,0x266A},
+  {0xA2F7,0xA2F7,0x2020},
+  {0xA2F8,0xA2F8,0x2021},
+  {0xA2F9,0xA2F9,0x00B6},
+  {0xA2FA,0xA2FA,0x003F},
+  {0xA2FB,0xA2FB,0x003F},
+  {0xA2FC,0xA2FC,0x003F},
+  {0xA2FD,0xA2FD,0x003F},
+  {0xA2FE,0xA2FE,0x25EF},
+  {0xA2FF,0xA2FF,0x003F},
+};
+
+
+static MY_UNICASE_INFO cA3[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA3A0,0xA3A0,0x003F}, /* A3A0 */
+  {0xA3A1,0xA3A1,0x003F},
+  {0xA3A2,0xA3A2,0x003F},
+  {0xA3A3,0xA3A3,0x003F},
+  {0xA3A4,0xA3A4,0x003F},
+  {0xA3A5,0xA3A5,0x003F},
+  {0xA3A6,0xA3A6,0x003F},
+  {0xA3A7,0xA3A7,0x003F},
+  {0xA3A8,0xA3A8,0x003F},
+  {0xA3A9,0xA3A9,0x003F},
+  {0xA3AA,0xA3AA,0x003F},
+  {0xA3AB,0xA3AB,0x003F},
+  {0xA3AC,0xA3AC,0x003F},
+  {0xA3AD,0xA3AD,0x003F},
+  {0xA3AE,0xA3AE,0x003F},
+  {0xA3AF,0xA3AF,0x003F},
+  {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */
+  {0xA3B1,0xA3B1,0xFF11},
+  {0xA3B2,0xA3B2,0xFF12},
+  {0xA3B3,0xA3B3,0xFF13},
+  {0xA3B4,0xA3B4,0xFF14},
+  {0xA3B5,0xA3B5,0xFF15},
+  {0xA3B6,0xA3B6,0xFF16},
+  {0xA3B7,0xA3B7,0xFF17},
+  {0xA3B8,0xA3B8,0xFF18},
+  {0xA3B9,0xA3B9,0xFF19},
+  {0xA3BA,0xA3BA,0x003F},
+  {0xA3BB,0xA3BB,0x003F},
+  {0xA3BC,0xA3BC,0x003F},
+  {0xA3BD,0xA3BD,0x003F},
+  {0xA3BE,0xA3BE,0x003F},
+  {0xA3BF,0xA3BF,0x003F},
+  {0xA3C0,0xA3C0,0x003F}, /* A3C0 */
+  {0xA3C1,0xA3E1,0xFF21},
+  {0xA3C2,0xA3E2,0xFF22},
+  {0xA3C3,0xA3E3,0xFF23},
+  {0xA3C4,0xA3E4,0xFF24},
+  {0xA3C5,0xA3E5,0xFF25},
+  {0xA3C6,0xA3E6,0xFF26},
+  {0xA3C7,0xA3E7,0xFF27},
+  {0xA3C8,0xA3E8,0xFF28},
+  {0xA3C9,0xA3E9,0xFF29},
+  {0xA3CA,0xA3EA,0xFF2A},
+  {0xA3CB,0xA3EB,0xFF2B},
+  {0xA3CC,0xA3EC,0xFF2C},
+  {0xA3CD,0xA3ED,0xFF2D},
+  {0xA3CE,0xA3EE,0xFF2E},
+  {0xA3CF,0xA3EF,0xFF2F},
+  {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */
+  {0xA3D1,0xA3F1,0xFF31},
+  {0xA3D2,0xA3F2,0xFF32},
+  {0xA3D3,0xA3F3,0xFF33},
+  {0xA3D4,0xA3F4,0xFF34},
+  {0xA3D5,0xA3F5,0xFF35},
+  {0xA3D6,0xA3F6,0xFF36},
+  {0xA3D7,0xA3F7,0xFF37},
+  {0xA3D8,0xA3F8,0xFF38},
+  {0xA3D9,0xA3F9,0xFF39},
+  {0xA3DA,0xA3FA,0xFF3A},
+  {0xA3DB,0xA3DB,0x003F},
+  {0xA3DC,0xA3DC,0x003F},
+  {0xA3DD,0xA3DD,0x003F},
+  {0xA3DE,0xA3DE,0x003F},
+  {0xA3DF,0xA3DF,0x003F},
+  {0xA3E0,0xA3E0,0x003F}, /* A3E0 */
+  {0xA3C1,0xA3E1,0xFF41},
+  {0xA3C2,0xA3E2,0xFF42},
+  {0xA3C3,0xA3E3,0xFF43},
+  {0xA3C4,0xA3E4,0xFF44},
+  {0xA3C5,0xA3E5,0xFF45},
+  {0xA3C6,0xA3E6,0xFF46},
+  {0xA3C7,0xA3E7,0xFF47},
+  {0xA3C8,0xA3E8,0xFF48},
+  {0xA3C9,0xA3E9,0xFF49},
+  {0xA3CA,0xA3EA,0xFF4A},
+  {0xA3CB,0xA3EB,0xFF4B},
+  {0xA3CC,0xA3EC,0xFF4C},
+  {0xA3CD,0xA3ED,0xFF4D},
+  {0xA3CE,0xA3EE,0xFF4E},
+  {0xA3CF,0xA3EF,0xFF4F},
+  {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */
+  {0xA3D1,0xA3F1,0xFF51},
+  {0xA3D2,0xA3F2,0xFF52},
+  {0xA3D3,0xA3F3,0xFF53},
+  {0xA3D4,0xA3F4,0xFF54},
+  {0xA3D5,0xA3F5,0xFF55},
+  {0xA3D6,0xA3F6,0xFF56},
+  {0xA3D7,0xA3F7,0xFF57},
+  {0xA3D8,0xA3F8,0xFF58},
+  {0xA3D9,0xA3F9,0xFF59},
+  {0xA3DA,0xA3FA,0xFF5A},
+  {0xA3FB,0xA3FB,0x003F},
+  {0xA3FC,0xA3FC,0x003F},
+  {0xA3FD,0xA3FD,0x003F},
+  {0xA3FE,0xA3FE,0x003F},
+  {0xA3FF,0xA3FF,0x003F},
+};
+
+
+static MY_UNICASE_INFO cA6[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA6A0,0xA6A0,0x003F}, /* A6A0 */
+  {0xA6A1,0xA6C1,0x0391},
+  {0xA6A2,0xA6C2,0x0392},
+  {0xA6A3,0xA6C3,0x0393},
+  {0xA6A4,0xA6C4,0x0394},
+  {0xA6A5,0xA6C5,0x0395},
+  {0xA6A6,0xA6C6,0x0396},
+  {0xA6A7,0xA6C7,0x0397},
+  {0xA6A8,0xA6C8,0x0398},
+  {0xA6A9,0xA6C9,0x0399},
+  {0xA6AA,0xA6CA,0x039A},
+  {0xA6AB,0xA6CB,0x039B},
+  {0xA6AC,0xA6CC,0x039C},
+  {0xA6AD,0xA6CD,0x039D},
+  {0xA6AE,0xA6CE,0x039E},
+  {0xA6AF,0xA6CF,0x039F},
+  {0xA6B0,0xA6D0,0x03A0}, /* A6B0 */
+  {0xA6B1,0xA6D1,0x03A1},
+  {0xA6B2,0xA6D2,0x03A3},
+  {0xA6B3,0xA6D3,0x03A4},
+  {0xA6B4,0xA6D4,0x03A5},
+  {0xA6B5,0xA6D5,0x03A6},
+  {0xA6B6,0xA6D6,0x03A7},
+  {0xA6B7,0xA6D7,0x03A8},
+  {0xA6B8,0xA6D8,0x03A9},
+  {0xA6B9,0xA6B9,0x003F},
+  {0xA6BA,0xA6BA,0x003F},
+  {0xA6BB,0xA6BB,0x003F},
+  {0xA6BC,0xA6BC,0x003F},
+  {0xA6BD,0xA6BD,0x003F},
+  {0xA6BE,0xA6BE,0x003F},
+  {0xA6BF,0xA6BF,0x003F},
+  {0xA6C0,0xA6C0,0x003F}, /* A6C0 */
+  {0xA6A1,0xA6C1,0x03B1},
+  {0xA6A2,0xA6C2,0x03B2},
+  {0xA6A3,0xA6C3,0x03B3},
+  {0xA6A4,0xA6C4,0x03B4},
+  {0xA6A5,0xA6C5,0x03B5},
+  {0xA6A6,0xA6C6,0x03B6},
+  {0xA6A7,0xA6C7,0x03B7},
+  {0xA6A8,0xA6C8,0x03B8},
+  {0xA6A9,0xA6C9,0x03B9},
+  {0xA6AA,0xA6CA,0x03BA},
+  {0xA6AB,0xA6CB,0x03BB},
+  {0xA6AC,0xA6CC,0x03BC},
+  {0xA6AD,0xA6CD,0x03BD},
+  {0xA6AE,0xA6CE,0x03BE},
+  {0xA6AF,0xA6CF,0x03BF},
+  {0xA6B0,0xA6D0,0x03C0}, /* A6D0 */
+  {0xA6B1,0xA6D1,0x03C1},
+  {0xA6B2,0xA6D2,0x03C3},
+  {0xA6B3,0xA6D3,0x03C4},
+  {0xA6B4,0xA6D4,0x03C5},
+  {0xA6B5,0xA6D5,0x03C6},
+  {0xA6B6,0xA6D6,0x03C7},
+  {0xA6B7,0xA6D7,0x03C8},
+  {0xA6B8,0xA6D8,0x03C9},
+  {0xA6D9,0xA6D9,0x003F},
+  {0xA6DA,0xA6DA,0x003F},
+  {0xA6DB,0xA6DB,0x003F},
+  {0xA6DC,0xA6DC,0x003F},
+  {0xA6DD,0xA6DD,0x003F},
+  {0xA6DE,0xA6DE,0x003F},
+  {0xA6DF,0xA6DF,0x003F},
+  {0xA6E0,0xA6E0,0x003F}, /* A6E0 */
+  {0xA6E1,0xA6E1,0x003F},
+  {0xA6E2,0xA6E2,0x003F},
+  {0xA6E3,0xA6E3,0x003F},
+  {0xA6E4,0xA6E4,0x003F},
+  {0xA6E5,0xA6E5,0x003F},
+  {0xA6E6,0xA6E6,0x003F},
+  {0xA6E7,0xA6E7,0x003F},
+  {0xA6E8,0xA6E8,0x003F},
+  {0xA6E9,0xA6E9,0x003F},
+  {0xA6EA,0xA6EA,0x003F},
+  {0xA6EB,0xA6EB,0x003F},
+  {0xA6EC,0xA6EC,0x003F},
+  {0xA6ED,0xA6ED,0x003F},
+  {0xA6EE,0xA6EE,0x003F},
+  {0xA6EF,0xA6EF,0x003F},
+  {0xA6F0,0xA6F0,0x003F}, /* A6F0 */
+  {0xA6F1,0xA6F1,0x003F},
+  {0xA6F2,0xA6F2,0x003F},
+  {0xA6F3,0xA6F3,0x003F},
+  {0xA6F4,0xA6F4,0x003F},
+  {0xA6F5,0xA6F5,0x003F},
+  {0xA6F6,0xA6F6,0x003F},
+  {0xA6F7,0xA6F7,0x003F},
+  {0xA6F8,0xA6F8,0x003F},
+  {0xA6F9,0xA6F9,0x003F},
+  {0xA6FA,0xA6FA,0x003F},
+  {0xA6FB,0xA6FB,0x003F},
+  {0xA6FC,0xA6FC,0x003F},
+  {0xA6FD,0xA6FD,0x003F},
+  {0xA6FE,0xA6FE,0x003F},
+  {0xA6FF,0xA6FF,0x003F},
+};
+
+
+static MY_UNICASE_INFO cA7[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA7A0,0xA7A0,0x003F}, /* A7A0 */
+  {0xA7A1,0xA7D1,0x0410},
+  {0xA7A2,0xA7D2,0x0411},
+  {0xA7A3,0xA7D3,0x0412},
+  {0xA7A4,0xA7D4,0x0413},
+  {0xA7A5,0xA7D5,0x0414},
+  {0xA7A6,0xA7D6,0x0415},
+  {0xA7A7,0xA7D7,0x0401},
+  {0xA7A8,0xA7D8,0x0416},
+  {0xA7A9,0xA7D9,0x0417},
+  {0xA7AA,0xA7DA,0x0418},
+  {0xA7AB,0xA7DB,0x0419},
+  {0xA7AC,0xA7DC,0x041A},
+  {0xA7AD,0xA7DD,0x041B},
+  {0xA7AE,0xA7DE,0x041C},
+  {0xA7AF,0xA7DF,0x041D},
+  {0xA7B0,0xA7E0,0x041E}, /* A7B0 */
+  {0xA7B1,0xA7E1,0x041F},
+  {0xA7B2,0xA7E2,0x0420},
+  {0xA7B3,0xA7E3,0x0421},
+  {0xA7B4,0xA7E4,0x0422},
+  {0xA7B5,0xA7E5,0x0423},
+  {0xA7B6,0xA7E6,0x0424},
+  {0xA7B7,0xA7E7,0x0425},
+  {0xA7B8,0xA7E8,0x0426},
+  {0xA7B9,0xA7E9,0x0427},
+  {0xA7BA,0xA7EA,0x0428},
+  {0xA7BB,0xA7EB,0x0429},
+  {0xA7BC,0xA7EC,0x042A},
+  {0xA7BD,0xA7ED,0x042B},
+  {0xA7BE,0xA7EE,0x042C},
+  {0xA7BF,0xA7EF,0x042D},
+  {0xA7C0,0xA7F0,0x042E}, /* A7C0 */
+  {0xA7C1,0xA7F1,0x042F},
+  {0xA7C2,0xA7C2,0x003F},
+  {0xA7C3,0xA7C3,0x003F},
+  {0xA7C4,0xA7C4,0x003F},
+  {0xA7C5,0xA7C5,0x003F},
+  {0xA7C6,0xA7C6,0x003F},
+  {0xA7C7,0xA7C7,0x003F},
+  {0xA7C8,0xA7C8,0x003F},
+  {0xA7C9,0xA7C9,0x003F},
+  {0xA7CA,0xA7CA,0x003F},
+  {0xA7CB,0xA7CB,0x003F},
+  {0xA7CC,0xA7CC,0x003F},
+  {0xA7CD,0xA7CD,0x003F},
+  {0xA7CE,0xA7CE,0x003F},
+  {0xA7CF,0xA7CF,0x003F},
+  {0xA7D0,0xA7D0,0x003F}, /* A7D0 */
+  {0xA7A1,0xA7D1,0x0430},
+  {0xA7A2,0xA7D2,0x0431},
+  {0xA7A3,0xA7D3,0x0432},
+  {0xA7A4,0xA7D4,0x0433},
+  {0xA7A5,0xA7D5,0x0434},
+  {0xA7A6,0xA7D6,0x0435},
+  {0xA7A7,0xA7D7,0x0451},
+  {0xA7A8,0xA7D8,0x0436},
+  {0xA7A9,0xA7D9,0x0437},
+  {0xA7AA,0xA7DA,0x0438},
+  {0xA7AB,0xA7DB,0x0439},
+  {0xA7AC,0xA7DC,0x043A},
+  {0xA7AD,0xA7DD,0x043B},
+  {0xA7AE,0xA7DE,0x043C},
+  {0xA7AF,0xA7DF,0x043D},
+  {0xA7B0,0xA7E0,0x043E}, /* A7E0 */
+  {0xA7B1,0xA7E1,0x043F},
+  {0xA7B2,0xA7E2,0x0440},
+  {0xA7B3,0xA7E3,0x0441},
+  {0xA7B4,0xA7E4,0x0442},
+  {0xA7B5,0xA7E5,0x0443},
+  {0xA7B6,0xA7E6,0x0444},
+  {0xA7B7,0xA7E7,0x0445},
+  {0xA7B8,0xA7E8,0x0446},
+  {0xA7B9,0xA7E9,0x0447},
+  {0xA7BA,0xA7EA,0x0448},
+  {0xA7BB,0xA7EB,0x0449},
+  {0xA7BC,0xA7EC,0x044A},
+  {0xA7BD,0xA7ED,0x044B},
+  {0xA7BE,0xA7EE,0x044C},
+  {0xA7BF,0xA7EF,0x044D},
+  {0xA7C0,0xA7F0,0x044E}, /* A7F0 */
+  {0xA7C1,0xA7F1,0x044F},
+  {0xA7F2,0xA7F2,0x003F},
+  {0xA7F3,0xA7F3,0x003F},
+  {0xA7F4,0xA7F4,0x003F},
+  {0xA7F5,0xA7F5,0x003F},
+  {0xA7F6,0xA7F6,0x003F},
+  {0xA7F7,0xA7F7,0x003F},
+  {0xA7F8,0xA7F8,0x003F},
+  {0xA7F9,0xA7F9,0x003F},
+  {0xA7FA,0xA7FA,0x003F},
+  {0xA7FB,0xA7FB,0x003F},
+  {0xA7FC,0xA7FC,0x003F},
+  {0xA7FD,0xA7FD,0x003F},
+  {0xA7FE,0xA7FE,0x003F},
+  {0xA7FF,0xA7FF,0x003F},
+};
+
+
+static MY_UNICASE_INFO cAD[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xADA0,0xADA0,0x003F}, /* ADA0 */
+  {0xADA1,0xADA1,0x2460},
+  {0xADA2,0xADA2,0x2461},
+  {0xADA3,0xADA3,0x2462},
+  {0xADA4,0xADA4,0x2463},
+  {0xADA5,0xADA5,0x2464},
+  {0xADA6,0xADA6,0x2465},
+  {0xADA7,0xADA7,0x2466},
+  {0xADA8,0xADA8,0x2467},
+  {0xADA9,0xADA9,0x2468},
+  {0xADAA,0xADAA,0x2469},
+  {0xADAB,0xADAB,0x246A},
+  {0xADAC,0xADAC,0x246B},
+  {0xADAD,0xADAD,0x246C},
+  {0xADAE,0xADAE,0x246D},
+  {0xADAF,0xADAF,0x246E},
+  {0xADB0,0xADB0,0x246F}, /* ADB0 */
+  {0xADB1,0xADB1,0x2470},
+  {0xADB2,0xADB2,0x2471},
+  {0xADB3,0xADB3,0x2472},
+  {0xADB4,0xADB4,0x2473},
+  {0xADB5,0x8FF3F3,0x2160},
+  {0xADB6,0x8FF3F4,0x2161},
+  {0xADB7,0x8FF3F5,0x2162},
+  {0xADB8,0x8FF3F6,0x2163},
+  {0xADB9,0x8FF3F7,0x2164},
+  {0xADBA,0x8FF3F8,0x2165},
+  {0xADBB,0x8FF3F9,0x2166},
+  {0xADBC,0x8FF3FA,0x2167},
+  {0xADBD,0x8FF3FB,0x2168},
+  {0xADBE,0x8FF3FC,0x2169},
+  {0xADBF,0xADBF,0x003F},
+  {0xADC0,0xADC0,0x3349}, /* ADC0 */
+  {0xADC1,0xADC1,0x3314},
+  {0xADC2,0xADC2,0x3322},
+  {0xADC3,0xADC3,0x334D},
+  {0xADC4,0xADC4,0x3318},
+  {0xADC5,0xADC5,0x3327},
+  {0xADC6,0xADC6,0x3303},
+  {0xADC7,0xADC7,0x3336},
+  {0xADC8,0xADC8,0x3351},
+  {0xADC9,0xADC9,0x3357},
+  {0xADCA,0xADCA,0x330D},
+  {0xADCB,0xADCB,0x3326},
+  {0xADCC,0xADCC,0x3323},
+  {0xADCD,0xADCD,0x332B},
+  {0xADCE,0xADCE,0x334A},
+  {0xADCF,0xADCF,0x333B},
+  {0xADD0,0xADD0,0x339C}, /* ADD0 */
+  {0xADD1,0xADD1,0x339D},
+  {0xADD2,0xADD2,0x339E},
+  {0xADD3,0xADD3,0x338E},
+  {0xADD4,0xADD4,0x338F},
+  {0xADD5,0xADD5,0x33C4},
+  {0xADD6,0xADD6,0x33A1},
+  {0xADD7,0xADD7,0x003F},
+  {0xADD8,0xADD8,0x003F},
+  {0xADD9,0xADD9,0x003F},
+  {0xADDA,0xADDA,0x003F},
+  {0xADDB,0xADDB,0x003F},
+  {0xADDC,0xADDC,0x003F},
+  {0xADDD,0xADDD,0x003F},
+  {0xADDE,0xADDE,0x003F},
+  {0xADDF,0xADDF,0x337B},
+  {0xADE0,0xADE0,0x301D}, /* ADE0 */
+  {0xADE1,0xADE1,0x301F},
+  {0xADE2,0xADE2,0x2116},
+  {0xADE3,0xADE3,0x33CD},
+  {0xADE4,0xADE4,0x2121},
+  {0xADE5,0xADE5,0x32A4},
+  {0xADE6,0xADE6,0x32A5},
+  {0xADE7,0xADE7,0x32A6},
+  {0xADE8,0xADE8,0x32A7},
+  {0xADE9,0xADE9,0x32A8},
+  {0xADEA,0xADEA,0x3231},
+  {0xADEB,0xADEB,0x3232},
+  {0xADEC,0xADEC,0x3239},
+  {0xADED,0xADED,0x337E},
+  {0xADEE,0xADEE,0x337D},
+  {0xADEF,0xADEF,0x337C},
+  {0xADF0,0xADF0,0x2252}, /* ADF0 */
+  {0xADF1,0xADF1,0x2261},
+  {0xADF2,0xADF2,0x222B},
+  {0xADF3,0xADF3,0x222E},
+  {0xADF4,0xADF4,0x2211},
+  {0xADF5,0xADF5,0x221A},
+  {0xADF6,0xADF6,0x22A5},
+  {0xADF7,0xADF7,0x2220},
+  {0xADF8,0xADF8,0x221F},
+  {0xADF9,0xADF9,0x22BF},
+  {0xADFA,0xADFA,0x2235},
+  {0xADFB,0xADFB,0x2229},
+  {0xADFC,0xADFC,0x222A},
+  {0xADFD,0xADFD,0x003F},
+  {0xADFE,0xADFE,0x003F},
+  {0xADFF,0xADFF,0x003F},
+};
+
+
+/* Case info pages for JIS-X-0212 range */
+
+static MY_UNICASE_INFO c8FA6[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FA6A0,0x8FA6A0,0x003F}, /* 8FA6A0 */
+  {0x8FA6A1,0x8FA6A1,0x003F},
+  {0x8FA6A2,0x8FA6A2,0x003F},
+  {0x8FA6A3,0x8FA6A3,0x003F},
+  {0x8FA6A4,0x8FA6A4,0x003F},
+  {0x8FA6A5,0x8FA6A5,0x003F},
+  {0x8FA6A6,0x8FA6A6,0x003F},
+  {0x8FA6A7,0x8FA6A7,0x003F},
+  {0x8FA6A8,0x8FA6A8,0x003F},
+  {0x8FA6A9,0x8FA6A9,0x003F},
+  {0x8FA6AA,0x8FA6AA,0x003F},
+  {0x8FA6AB,0x8FA6AB,0x003F},
+  {0x8FA6AC,0x8FA6AC,0x003F},
+  {0x8FA6AD,0x8FA6AD,0x003F},
+  {0x8FA6AE,0x8FA6AE,0x003F},
+  {0x8FA6AF,0x8FA6AF,0x003F},
+  {0x8FA6B0,0x8FA6B0,0x003F}, /* 8FA6B0 */
+  {0x8FA6B1,0x8FA6B1,0x003F},
+  {0x8FA6B2,0x8FA6B2,0x003F},
+  {0x8FA6B3,0x8FA6B3,0x003F},
+  {0x8FA6B4,0x8FA6B4,0x003F},
+  {0x8FA6B5,0x8FA6B5,0x003F},
+  {0x8FA6B6,0x8FA6B6,0x003F},
+  {0x8FA6B7,0x8FA6B7,0x003F},
+  {0x8FA6B8,0x8FA6B8,0x003F},
+  {0x8FA6B9,0x8FA6B9,0x003F},
+  {0x8FA6BA,0x8FA6BA,0x003F},
+  {0x8FA6BB,0x8FA6BB,0x003F},
+  {0x8FA6BC,0x8FA6BC,0x003F},
+  {0x8FA6BD,0x8FA6BD,0x003F},
+  {0x8FA6BE,0x8FA6BE,0x003F},
+  {0x8FA6BF,0x8FA6BF,0x003F},
+  {0x8FA6C0,0x8FA6C0,0x003F}, /* 8FA6C0 */
+  {0x8FA6C1,0x8FA6C1,0x003F},
+  {0x8FA6C2,0x8FA6C2,0x003F},
+  {0x8FA6C3,0x8FA6C3,0x003F},
+  {0x8FA6C4,0x8FA6C4,0x003F},
+  {0x8FA6C5,0x8FA6C5,0x003F},
+  {0x8FA6C6,0x8FA6C6,0x003F},
+  {0x8FA6C7,0x8FA6C7,0x003F},
+  {0x8FA6C8,0x8FA6C8,0x003F},
+  {0x8FA6C9,0x8FA6C9,0x003F},
+  {0x8FA6CA,0x8FA6CA,0x003F},
+  {0x8FA6CB,0x8FA6CB,0x003F},
+  {0x8FA6CC,0x8FA6CC,0x003F},
+  {0x8FA6CD,0x8FA6CD,0x003F},
+  {0x8FA6CE,0x8FA6CE,0x003F},
+  {0x8FA6CF,0x8FA6CF,0x003F},
+  {0x8FA6D0,0x8FA6D0,0x003F}, /* 8FA6D0 */
+  {0x8FA6D1,0x8FA6D1,0x003F},
+  {0x8FA6D2,0x8FA6D2,0x003F},
+  {0x8FA6D3,0x8FA6D3,0x003F},
+  {0x8FA6D4,0x8FA6D4,0x003F},
+  {0x8FA6D5,0x8FA6D5,0x003F},
+  {0x8FA6D6,0x8FA6D6,0x003F},
+  {0x8FA6D7,0x8FA6D7,0x003F},
+  {0x8FA6D8,0x8FA6D8,0x003F},
+  {0x8FA6D9,0x8FA6D9,0x003F},
+  {0x8FA6DA,0x8FA6DA,0x003F},
+  {0x8FA6DB,0x8FA6DB,0x003F},
+  {0x8FA6DC,0x8FA6DC,0x003F},
+  {0x8FA6DD,0x8FA6DD,0x003F},
+  {0x8FA6DE,0x8FA6DE,0x003F},
+  {0x8FA6DF,0x8FA6DF,0x003F},
+  {0x8FA6E0,0x8FA6E0,0x003F}, /* 8FA6E0 */
+  {0x8FA6E1,0x8FA6F1,0x0386},
+  {0x8FA6E2,0x8FA6F2,0x0388},
+  {0x8FA6E3,0x8FA6F3,0x0389},
+  {0x8FA6E4,0x8FA6F4,0x038A},
+  {0x8FA6E5,0x8FA6F5,0x03AA},
+  {0x8FA6E6,0x8FA6E6,0x003F},
+  {0x8FA6E7,0x8FA6F7,0x038C},
+  {0x8FA6E8,0x8FA6E8,0x003F},
+  {0x8FA6E9,0x8FA6F9,0x038E},
+  {0x8FA6EA,0x8FA6FA,0x03AB},
+  {0x8FA6EB,0x8FA6EB,0x003F},
+  {0x8FA6EC,0x8FA6FC,0x038F},
+  {0x8FA6ED,0x8FA6ED,0x003F},
+  {0x8FA6EE,0x8FA6EE,0x003F},
+  {0x8FA6EF,0x8FA6EF,0x003F},
+  {0x8FA6F0,0x8FA6F0,0x003F}, /* 8FA6F0 */
+  {0x8FA6E1,0x8FA6F1,0x03AC},
+  {0x8FA6E2,0x8FA6F2,0x03AD},
+  {0x8FA6E3,0x8FA6F3,0x03AE},
+  {0x8FA6E4,0x8FA6F4,0x03AF},
+  {0x8FA6E5,0x8FA6F5,0x03CA},
+  {0x8FA6F6,0x8FA6F6,0x0390},
+  {0x8FA6E7,0x8FA6F7,0x03CC},
+  {0xA6B2,0x8FA6F8,0x03C2},
+  {0x8FA6E9,0x8FA6F9,0x03CD},
+  {0x8FA6EA,0x8FA6FA,0x03CB},
+  {0x8FA6FB,0x8FA6FB,0x03B0},
+  {0x8FA6EC,0x8FA6FC,0x03CE},
+  {0x8FA6FD,0x8FA6FD,0x003F},
+  {0x8FA6FE,0x8FA6FE,0x003F},
+  {0x8FA6FF,0x8FA6FF,0x003F},
+};
+
+
+static MY_UNICASE_INFO c8FA7[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FA7A0,0x8FA7A0,0x003F}, /* 8FA7A0 */
+  {0x8FA7A1,0x8FA7A1,0x003F},
+  {0x8FA7A2,0x8FA7A2,0x003F},
+  {0x8FA7A3,0x8FA7A3,0x003F},
+  {0x8FA7A4,0x8FA7A4,0x003F},
+  {0x8FA7A5,0x8FA7A5,0x003F},
+  {0x8FA7A6,0x8FA7A6,0x003F},
+  {0x8FA7A7,0x8FA7A7,0x003F},
+  {0x8FA7A8,0x8FA7A8,0x003F},
+  {0x8FA7A9,0x8FA7A9,0x003F},
+  {0x8FA7AA,0x8FA7AA,0x003F},
+  {0x8FA7AB,0x8FA7AB,0x003F},
+  {0x8FA7AC,0x8FA7AC,0x003F},
+  {0x8FA7AD,0x8FA7AD,0x003F},
+  {0x8FA7AE,0x8FA7AE,0x003F},
+  {0x8FA7AF,0x8FA7AF,0x003F},
+  {0x8FA7B0,0x8FA7B0,0x003F}, /* 8FA7B0 */
+  {0x8FA7B1,0x8FA7B1,0x003F},
+  {0x8FA7B2,0x8FA7B2,0x003F},
+  {0x8FA7B3,0x8FA7B3,0x003F},
+  {0x8FA7B4,0x8FA7B4,0x003F},
+  {0x8FA7B5,0x8FA7B5,0x003F},
+  {0x8FA7B6,0x8FA7B6,0x003F},
+  {0x8FA7B7,0x8FA7B7,0x003F},
+  {0x8FA7B8,0x8FA7B8,0x003F},
+  {0x8FA7B9,0x8FA7B9,0x003F},
+  {0x8FA7BA,0x8FA7BA,0x003F},
+  {0x8FA7BB,0x8FA7BB,0x003F},
+  {0x8FA7BC,0x8FA7BC,0x003F},
+  {0x8FA7BD,0x8FA7BD,0x003F},
+  {0x8FA7BE,0x8FA7BE,0x003F},
+  {0x8FA7BF,0x8FA7BF,0x003F},
+  {0x8FA7C0,0x8FA7C0,0x003F}, /* 8FA7C0 */
+  {0x8FA7C1,0x8FA7C1,0x003F},
+  {0x8FA7C2,0x8FA7F2,0x0402},
+  {0x8FA7C3,0x8FA7F3,0x0403},
+  {0x8FA7C4,0x8FA7F4,0x0404},
+  {0x8FA7C5,0x8FA7F5,0x0405},
+  {0x8FA7C6,0x8FA7F6,0x0406},
+  {0x8FA7C7,0x8FA7F7,0x0407},
+  {0x8FA7C8,0x8FA7F8,0x0408},
+  {0x8FA7C9,0x8FA7F9,0x0409},
+  {0x8FA7CA,0x8FA7FA,0x040A},
+  {0x8FA7CB,0x8FA7FB,0x040B},
+  {0x8FA7CC,0x8FA7FC,0x040C},
+  {0x8FA7CD,0x8FA7FD,0x040E},
+  {0x8FA7CE,0x8FA7FE,0x040F},
+  {0x8FA7CF,0x8FA7CF,0x003F},
+  {0x8FA7D0,0x8FA7D0,0x003F}, /* 8FA7D0 */
+  {0x8FA7D1,0x8FA7D1,0x003F},
+  {0x8FA7D2,0x8FA7D2,0x003F},
+  {0x8FA7D3,0x8FA7D3,0x003F},
+  {0x8FA7D4,0x8FA7D4,0x003F},
+  {0x8FA7D5,0x8FA7D5,0x003F},
+  {0x8FA7D6,0x8FA7D6,0x003F},
+  {0x8FA7D7,0x8FA7D7,0x003F},
+  {0x8FA7D8,0x8FA7D8,0x003F},
+  {0x8FA7D9,0x8FA7D9,0x003F},
+  {0x8FA7DA,0x8FA7DA,0x003F},
+  {0x8FA7DB,0x8FA7DB,0x003F},
+  {0x8FA7DC,0x8FA7DC,0x003F},
+  {0x8FA7DD,0x8FA7DD,0x003F},
+  {0x8FA7DE,0x8FA7DE,0x003F},
+  {0x8FA7DF,0x8FA7DF,0x003F},
+  {0x8FA7E0,0x8FA7E0,0x003F}, /* 8FA7E0 */
+  {0x8FA7E1,0x8FA7E1,0x003F},
+  {0x8FA7E2,0x8FA7E2,0x003F},
+  {0x8FA7E3,0x8FA7E3,0x003F},
+  {0x8FA7E4,0x8FA7E4,0x003F},
+  {0x8FA7E5,0x8FA7E5,0x003F},
+  {0x8FA7E6,0x8FA7E6,0x003F},
+  {0x8FA7E7,0x8FA7E7,0x003F},
+  {0x8FA7E8,0x8FA7E8,0x003F},
+  {0x8FA7E9,0x8FA7E9,0x003F},
+  {0x8FA7EA,0x8FA7EA,0x003F},
+  {0x8FA7EB,0x8FA7EB,0x003F},
+  {0x8FA7EC,0x8FA7EC,0x003F},
+  {0x8FA7ED,0x8FA7ED,0x003F},
+  {0x8FA7EE,0x8FA7EE,0x003F},
+  {0x8FA7EF,0x8FA7EF,0x003F},
+  {0x8FA7F0,0x8FA7F0,0x003F}, /* 8FA7F0 */
+  {0x8FA7F1,0x8FA7F1,0x003F},
+  {0x8FA7C2,0x8FA7F2,0x0452},
+  {0x8FA7C3,0x8FA7F3,0x0453},
+  {0x8FA7C4,0x8FA7F4,0x0454},
+  {0x8FA7C5,0x8FA7F5,0x0455},
+  {0x8FA7C6,0x8FA7F6,0x0456},
+  {0x8FA7C7,0x8FA7F7,0x0457},
+  {0x8FA7C8,0x8FA7F8,0x0458},
+  {0x8FA7C9,0x8FA7F9,0x0459},
+  {0x8FA7CA,0x8FA7FA,0x045A},
+  {0x8FA7CB,0x8FA7FB,0x045B},
+  {0x8FA7CC,0x8FA7FC,0x045C},
+  {0x8FA7CD,0x8FA7FD,0x045E},
+  {0x8FA7CE,0x8FA7FE,0x045F},
+  {0x8FA7FF,0x8FA7FF,0x003F},
+};
+
+
+static MY_UNICASE_INFO c8FA9[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FA9A0,0x8FA9A0,0x003F}, /* 8FA9A0 */
+  {0x8FA9A1,0x8FA9C1,0x00C6},
+  {0x8FA9A2,0x8FA9C2,0x0110},
+  {0x8FA9A3,0x8FA9A3,0x003F},
+  {0x8FA9A4,0x8FA9C4,0x0126},
+  {0x8FA9A5,0x8FA9A5,0x003F},
+  {0x8FA9A6,0x8FA9C6,0x0132},
+  {0x8FA9A7,0x8FA9A7,0x003F},
+  {0x8FA9A8,0x8FA9C8,0x0141},
+  {0x8FA9A9,0x8FA9C9,0x013F},
+  {0x8FA9AA,0x8FA9AA,0x003F},
+  {0x8FA9AB,0x8FA9CB,0x014A},
+  {0x8FA9AC,0x8FA9CC,0x00D8},
+  {0x8FA9AD,0x8FA9CD,0x0152},
+  {0x8FA9AE,0x8FA9AE,0x003F},
+  {0x8FA9AF,0x8FA9CF,0x0166},
+  {0x8FA9B0,0x8FA9D0,0x00DE}, /* 8FA9B0 */
+  {0x8FA9B1,0x8FA9B1,0x003F},
+  {0x8FA9B2,0x8FA9B2,0x003F},
+  {0x8FA9B3,0x8FA9B3,0x003F},
+  {0x8FA9B4,0x8FA9B4,0x003F},
+  {0x8FA9B5,0x8FA9B5,0x003F},
+  {0x8FA9B6,0x8FA9B6,0x003F},
+  {0x8FA9B7,0x8FA9B7,0x003F},
+  {0x8FA9B8,0x8FA9B8,0x003F},
+  {0x8FA9B9,0x8FA9B9,0x003F},
+  {0x8FA9BA,0x8FA9BA,0x003F},
+  {0x8FA9BB,0x8FA9BB,0x003F},
+  {0x8FA9BC,0x8FA9BC,0x003F},
+  {0x8FA9BD,0x8FA9BD,0x003F},
+  {0x8FA9BE,0x8FA9BE,0x003F},
+  {0x8FA9BF,0x8FA9BF,0x003F},
+  {0x8FA9C0,0x8FA9C0,0x003F}, /* 8FA9C0 */
+  {0x8FA9A1,0x8FA9C1,0x00E6},
+  {0x8FA9A2,0x8FA9C2,0x0111},
+  {0x8FA9C3,0x8FA9C3,0x00F0},
+  {0x8FA9A4,0x8FA9C4,0x0127},
+  {0x49,0x8FA9C5,0x0131},
+  {0x8FA9A6,0x8FA9C6,0x0133},
+  {0x8FA9C7,0x8FA9C7,0x0138},
+  {0x8FA9A8,0x8FA9C8,0x0142},
+  {0x8FA9A9,0x8FA9C9,0x0140},
+  {0x8FA9CA,0x8FA9CA,0x0149},
+  {0x8FA9AB,0x8FA9CB,0x014B},
+  {0x8FA9AC,0x8FA9CC,0x00F8},
+  {0x8FA9AD,0x8FA9CD,0x0153},
+  {0x8FA9CE,0x8FA9CE,0x00DF},
+  {0x8FA9AF,0x8FA9CF,0x0167},
+  {0x8FA9B0,0x8FA9D0,0x00FE}, /* 8FA9D0 */
+  {0x8FA9D1,0x8FA9D1,0x003F},
+  {0x8FA9D2,0x8FA9D2,0x003F},
+  {0x8FA9D3,0x8FA9D3,0x003F},
+  {0x8FA9D4,0x8FA9D4,0x003F},
+  {0x8FA9D5,0x8FA9D5,0x003F},
+  {0x8FA9D6,0x8FA9D6,0x003F},
+  {0x8FA9D7,0x8FA9D7,0x003F},
+  {0x8FA9D8,0x8FA9D8,0x003F},
+  {0x8FA9D9,0x8FA9D9,0x003F},
+  {0x8FA9DA,0x8FA9DA,0x003F},
+  {0x8FA9DB,0x8FA9DB,0x003F},
+  {0x8FA9DC,0x8FA9DC,0x003F},
+  {0x8FA9DD,0x8FA9DD,0x003F},
+  {0x8FA9DE,0x8FA9DE,0x003F},
+  {0x8FA9DF,0x8FA9DF,0x003F},
+  {0x8FA9E0,0x8FA9E0,0x003F}, /* 8FA9E0 */
+  {0x8FA9E1,0x8FA9E1,0x003F},
+  {0x8FA9E2,0x8FA9E2,0x003F},
+  {0x8FA9E3,0x8FA9E3,0x003F},
+  {0x8FA9E4,0x8FA9E4,0x003F},
+  {0x8FA9E5,0x8FA9E5,0x003F},
+  {0x8FA9E6,0x8FA9E6,0x003F},
+  {0x8FA9E7,0x8FA9E7,0x003F},
+  {0x8FA9E8,0x8FA9E8,0x003F},
+  {0x8FA9E9,0x8FA9E9,0x003F},
+  {0x8FA9EA,0x8FA9EA,0x003F},
+  {0x8FA9EB,0x8FA9EB,0x003F},
+  {0x8FA9EC,0x8FA9EC,0x003F},
+  {0x8FA9ED,0x8FA9ED,0x003F},
+  {0x8FA9EE,0x8FA9EE,0x003F},
+  {0x8FA9EF,0x8FA9EF,0x003F},
+  {0x8FA9F0,0x8FA9F0,0x003F}, /* 8FA9F0 */
+  {0x8FA9F1,0x8FA9F1,0x003F},
+  {0x8FA9F2,0x8FA9F2,0x003F},
+  {0x8FA9F3,0x8FA9F3,0x003F},
+  {0x8FA9F4,0x8FA9F4,0x003F},
+  {0x8FA9F5,0x8FA9F5,0x003F},
+  {0x8FA9F6,0x8FA9F6,0x003F},
+  {0x8FA9F7,0x8FA9F7,0x003F},
+  {0x8FA9F8,0x8FA9F8,0x003F},
+  {0x8FA9F9,0x8FA9F9,0x003F},
+  {0x8FA9FA,0x8FA9FA,0x003F},
+  {0x8FA9FB,0x8FA9FB,0x003F},
+  {0x8FA9FC,0x8FA9FC,0x003F},
+  {0x8FA9FD,0x8FA9FD,0x003F},
+  {0x8FA9FE,0x8FA9FE,0x003F},
+  {0x8FA9FF,0x8FA9FF,0x003F},
+};
+
+
+static MY_UNICASE_INFO c8FAA[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FAAA0,0x8FAAA0,0x003F}, /* 8FAAA0 */
+  {0x8FAAA1,0x8FABA1,0x00C1},
+  {0x8FAAA2,0x8FABA2,0x00C0},
+  {0x8FAAA3,0x8FABA3,0x00C4},
+  {0x8FAAA4,0x8FABA4,0x00C2},
+  {0x8FAAA5,0x8FABA5,0x0102},
+  {0x8FAAA6,0x8FABA6,0x01CD},
+  {0x8FAAA7,0x8FABA7,0x0100},
+  {0x8FAAA8,0x8FABA8,0x0104},
+  {0x8FAAA9,0x8FABA9,0x00C5},
+  {0x8FAAAA,0x8FABAA,0x00C3},
+  {0x8FAAAB,0x8FABAB,0x0106},
+  {0x8FAAAC,0x8FABAC,0x0108},
+  {0x8FAAAD,0x8FABAD,0x010C},
+  {0x8FAAAE,0x8FABAE,0x00C7},
+  {0x8FAAAF,0x8FABAF,0x010A},
+  {0x8FAAB0,0x8FABB0,0x010E}, /* 8FAAB0 */
+  {0x8FAAB1,0x8FABB1,0x00C9},
+  {0x8FAAB2,0x8FABB2,0x00C8},
+  {0x8FAAB3,0x8FABB3,0x00CB},
+  {0x8FAAB4,0x8FABB4,0x00CA},
+  {0x8FAAB5,0x8FABB5,0x011A},
+  {0x8FAAB6,0x8FABB6,0x0116},
+  {0x8FAAB7,0x8FABB7,0x0112},
+  {0x8FAAB8,0x8FABB8,0x0118},
+  {0x8FAAB9,0x8FAAB9,0x003F},
+  {0x8FAABA,0x8FABBA,0x011C},
+  {0x8FAABB,0x8FABBB,0x011E},
+  {0x8FAABC,0x8FAABC,0x0122},
+  {0x8FAABD,0x8FABBD,0x0120},
+  {0x8FAABE,0x8FABBE,0x0124},
+  {0x8FAABF,0x8FABBF,0x00CD},
+  {0x8FAAC0,0x8FABC0,0x00CC}, /* 8FAAC0 */
+  {0x8FAAC1,0x8FABC1,0x00CF},
+  {0x8FAAC2,0x8FABC2,0x00CE},
+  {0x8FAAC3,0x8FABC3,0x01CF},
+  {0x8FAAC4,0x69,0x0130},
+  {0x8FAAC5,0x8FABC5,0x012A},
+  {0x8FAAC6,0x8FABC6,0x012E},
+  {0x8FAAC7,0x8FABC7,0x0128},
+  {0x8FAAC8,0x8FABC8,0x0134},
+  {0x8FAAC9,0x8FABC9,0x0136},
+  {0x8FAACA,0x8FABCA,0x0139},
+  {0x8FAACB,0x8FABCB,0x013D},
+  {0x8FAACC,0x8FABCC,0x013B},
+  {0x8FAACD,0x8FABCD,0x0143},
+  {0x8FAACE,0x8FABCE,0x0147},
+  {0x8FAACF,0x8FABCF,0x0145},
+  {0x8FAAD0,0x8FABD0,0x00D1}, /* 8FAAD0 */
+  {0x8FAAD1,0x8FABD1,0x00D3},
+  {0x8FAAD2,0x8FABD2,0x00D2},
+  {0x8FAAD3,0x8FABD3,0x00D6},
+  {0x8FAAD4,0x8FABD4,0x00D4},
+  {0x8FAAD5,0x8FABD5,0x01D1},
+  {0x8FAAD6,0x8FABD6,0x0150},
+  {0x8FAAD7,0x8FABD7,0x014C},
+  {0x8FAAD8,0x8FABD8,0x00D5},
+  {0x8FAAD9,0x8FABD9,0x0154},
+  {0x8FAADA,0x8FABDA,0x0158},
+  {0x8FAADB,0x8FABDB,0x0156},
+  {0x8FAADC,0x8FABDC,0x015A},
+  {0x8FAADD,0x8FABDD,0x015C},
+  {0x8FAADE,0x8FABDE,0x0160},
+  {0x8FAADF,0x8FABDF,0x015E},
+  {0x8FAAE0,0x8FABE0,0x0164}, /* 8FAAE0 */
+  {0x8FAAE1,0x8FABE1,0x0162},
+  {0x8FAAE2,0x8FABE2,0x00DA},
+  {0x8FAAE3,0x8FABE3,0x00D9},
+  {0x8FAAE4,0x8FABE4,0x00DC},
+  {0x8FAAE5,0x8FABE5,0x00DB},
+  {0x8FAAE6,0x8FABE6,0x016C},
+  {0x8FAAE7,0x8FABE7,0x01D3},
+  {0x8FAAE8,0x8FABE8,0x0170},
+  {0x8FAAE9,0x8FABE9,0x016A},
+  {0x8FAAEA,0x8FABEA,0x0172},
+  {0x8FAAEB,0x8FABEB,0x016E},
+  {0x8FAAEC,0x8FABEC,0x0168},
+  {0x8FAAED,0x8FABED,0x01D7},
+  {0x8FAAEE,0x8FABEE,0x01DB},
+  {0x8FAAEF,0x8FABEF,0x01D9},
+  {0x8FAAF0,0x8FABF0,0x01D5}, /* 8FAAF0 */
+  {0x8FAAF1,0x8FABF1,0x0174},
+  {0x8FAAF2,0x8FABF2,0x00DD},
+  {0x8FAAF3,0x8FABF3,0x0178},
+  {0x8FAAF4,0x8FABF4,0x0176},
+  {0x8FAAF5,0x8FABF5,0x0179},
+  {0x8FAAF6,0x8FABF6,0x017D},
+  {0x8FAAF7,0x8FABF7,0x017B},
+  {0x8FAAF8,0x8FAAF8,0x003F},
+  {0x8FAAF9,0x8FAAF9,0x003F},
+  {0x8FAAFA,0x8FAAFA,0x003F},
+  {0x8FAAFB,0x8FAAFB,0x003F},
+  {0x8FAAFC,0x8FAAFC,0x003F},
+  {0x8FAAFD,0x8FAAFD,0x003F},
+  {0x8FAAFE,0x8FAAFE,0x003F},
+  {0x8FAAFF,0x8FAAFF,0x003F},
+};
+
+
+static MY_UNICASE_INFO c8FAB[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FABA0,0x8FABA0,0x003F}, /* 8FABA0 */
+  {0x8FAAA1,0x8FABA1,0x00E1},
+  {0x8FAAA2,0x8FABA2,0x00E0},
+  {0x8FAAA3,0x8FABA3,0x00E4},
+  {0x8FAAA4,0x8FABA4,0x00E2},
+  {0x8FAAA5,0x8FABA5,0x0103},
+  {0x8FAAA6,0x8FABA6,0x01CE},
+  {0x8FAAA7,0x8FABA7,0x0101},
+  {0x8FAAA8,0x8FABA8,0x0105},
+  {0x8FAAA9,0x8FABA9,0x00E5},
+  {0x8FAAAA,0x8FABAA,0x00E3},
+  {0x8FAAAB,0x8FABAB,0x0107},
+  {0x8FAAAC,0x8FABAC,0x0109},
+  {0x8FAAAD,0x8FABAD,0x010D},
+  {0x8FAAAE,0x8FABAE,0x00E7},
+  {0x8FAAAF,0x8FABAF,0x010B},
+  {0x8FAAB0,0x8FABB0,0x010F}, /* 8FABB0 */
+  {0x8FAAB1,0x8FABB1,0x00E9},
+  {0x8FAAB2,0x8FABB2,0x00E8},
+  {0x8FAAB3,0x8FABB3,0x00EB},
+  {0x8FAAB4,0x8FABB4,0x00EA},
+  {0x8FAAB5,0x8FABB5,0x011B},
+  {0x8FAAB6,0x8FABB6,0x0117},
+  {0x8FAAB7,0x8FABB7,0x0113},
+  {0x8FAAB8,0x8FABB8,0x0119},
+  {0x8FABB9,0x8FABB9,0x01F5},
+  {0x8FAABA,0x8FABBA,0x011D},
+  {0x8FAABB,0x8FABBB,0x011F},
+  {0x8FABBC,0x8FABBC,0x003F},
+  {0x8FAABD,0x8FABBD,0x0121},
+  {0x8FAABE,0x8FABBE,0x0125},
+  {0x8FAABF,0x8FABBF,0x00ED},
+  {0x8FAAC0,0x8FABC0,0x00EC}, /* 8FABC0 */
+  {0x8FAAC1,0x8FABC1,0x00EF},
+  {0x8FAAC2,0x8FABC2,0x00EE},
+  {0x8FAAC3,0x8FABC3,0x01D0},
+  {0x8FABC4,0x8FABC4,0x003F},
+  {0x8FAAC5,0x8FABC5,0x012B},
+  {0x8FAAC6,0x8FABC6,0x012F},
+  {0x8FAAC7,0x8FABC7,0x0129},
+  {0x8FAAC8,0x8FABC8,0x0135},
+  {0x8FAAC9,0x8FABC9,0x0137},
+  {0x8FAACA,0x8FABCA,0x013A},
+  {0x8FAACB,0x8FABCB,0x013E},
+  {0x8FAACC,0x8FABCC,0x013C},
+  {0x8FAACD,0x8FABCD,0x0144},
+  {0x8FAACE,0x8FABCE,0x0148},
+  {0x8FAACF,0x8FABCF,0x0146},
+  {0x8FAAD0,0x8FABD0,0x00F1}, /* 8FABD0 */
+  {0x8FAAD1,0x8FABD1,0x00F3},
+  {0x8FAAD2,0x8FABD2,0x00F2},
+  {0x8FAAD3,0x8FABD3,0x00F6},
+  {0x8FAAD4,0x8FABD4,0x00F4},
+  {0x8FAAD5,0x8FABD5,0x01D2},
+  {0x8FAAD6,0x8FABD6,0x0151},
+  {0x8FAAD7,0x8FABD7,0x014D},
+  {0x8FAAD8,0x8FABD8,0x00F5},
+  {0x8FAAD9,0x8FABD9,0x0155},
+  {0x8FAADA,0x8FABDA,0x0159},
+  {0x8FAADB,0x8FABDB,0x0157},
+  {0x8FAADC,0x8FABDC,0x015B},
+  {0x8FAADD,0x8FABDD,0x015D},
+  {0x8FAADE,0x8FABDE,0x0161},
+  {0x8FAADF,0x8FABDF,0x015F},
+  {0x8FAAE0,0x8FABE0,0x0165}, /* 8FABE0 */
+  {0x8FAAE1,0x8FABE1,0x0163},
+  {0x8FAAE2,0x8FABE2,0x00FA},
+  {0x8FAAE3,0x8FABE3,0x00F9},
+  {0x8FAAE4,0x8FABE4,0x00FC},
+  {0x8FAAE5,0x8FABE5,0x00FB},
+  {0x8FAAE6,0x8FABE6,0x016D},
+  {0x8FAAE7,0x8FABE7,0x01D4},
+  {0x8FAAE8,0x8FABE8,0x0171},
+  {0x8FAAE9,0x8FABE9,0x016B},
+  {0x8FAAEA,0x8FABEA,0x0173},
+  {0x8FAAEB,0x8FABEB,0x016F},
+  {0x8FAAEC,0x8FABEC,0x0169},
+  {0x8FAAED,0x8FABED,0x01D8},
+  {0x8FAAEE,0x8FABEE,0x01DC},
+  {0x8FAAEF,0x8FABEF,0x01DA},
+  {0x8FAAF0,0x8FABF0,0x01D6}, /* 8FABF0 */
+  {0x8FAAF1,0x8FABF1,0x0175},
+  {0x8FAAF2,0x8FABF2,0x00FD},
+  {0x8FAAF3,0x8FABF3,0x00FF},
+  {0x8FAAF4,0x8FABF4,0x0177},
+  {0x8FAAF5,0x8FABF5,0x017A},
+  {0x8FAAF6,0x8FABF6,0x017E},
+  {0x8FAAF7,0x8FABF7,0x017C},
+  {0x8FABF8,0x8FABF8,0x003F},
+  {0x8FABF9,0x8FABF9,0x003F},
+  {0x8FABFA,0x8FABFA,0x003F},
+  {0x8FABFB,0x8FABFB,0x003F},
+  {0x8FABFC,0x8FABFC,0x003F},
+  {0x8FABFD,0x8FABFD,0x003F},
+  {0x8FABFE,0x8FABFE,0x003F},
+  {0x8FABFF,0x8FABFF,0x003F},
+};
+
+
+static MY_UNICASE_INFO c8FF3[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FF3A0,0x8FF3A0,0x003F}, /* 8FF3F0 */
+  {0x8FF3A1,0x8FF3A1,0x003F},
+  {0x8FF3A2,0x8FF3A2,0x003F},
+  {0x8FF3A3,0x8FF3A3,0x003F},
+  {0x8FF3A4,0x8FF3A4,0x003F},
+  {0x8FF3A5,0x8FF3A5,0x003F},
+  {0x8FF3A6,0x8FF3A6,0x003F},
+  {0x8FF3A7,0x8FF3A7,0x003F},
+  {0x8FF3A8,0x8FF3A8,0x003F},
+  {0x8FF3A9,0x8FF3A9,0x003F},
+  {0x8FF3AA,0x8FF3AA,0x003F},
+  {0x8FF3AB,0x8FF3AB,0x003F},
+  {0x8FF3AC,0x8FF3AC,0x003F},
+  {0x8FF3AD,0x8FF3AD,0x003F},
+  {0x8FF3AE,0x8FF3AE,0x003F},
+  {0x8FF3AF,0x8FF3AF,0x003F},
+  {0x8FF3B0,0x8FF3B0,0x003F}, /* 8FF3B0 */
+  {0x8FF3B1,0x8FF3B1,0x003F},
+  {0x8FF3B2,0x8FF3B2,0x003F},
+  {0x8FF3B3,0x8FF3B3,0x003F},
+  {0x8FF3B4,0x8FF3B4,0x003F},
+  {0x8FF3B5,0x8FF3B5,0x003F},
+  {0x8FF3B6,0x8FF3B6,0x003F},
+  {0x8FF3B7,0x8FF3B7,0x003F},
+  {0x8FF3B8,0x8FF3B8,0x003F},
+  {0x8FF3B9,0x8FF3B9,0x003F},
+  {0x8FF3BA,0x8FF3BA,0x003F},
+  {0x8FF3BB,0x8FF3BB,0x003F},
+  {0x8FF3BC,0x8FF3BC,0x003F},
+  {0x8FF3BD,0x8FF3BD,0x003F},
+  {0x8FF3BE,0x8FF3BE,0x003F},
+  {0x8FF3BF,0x8FF3BF,0x003F},
+  {0x8FF3C0,0x8FF3C0,0x003F}, /* 8FF3C0 */
+  {0x8FF3C1,0x8FF3C1,0x003F},
+  {0x8FF3C2,0x8FF3C2,0x003F},
+  {0x8FF3C3,0x8FF3C3,0x003F},
+  {0x8FF3C4,0x8FF3C4,0x003F},
+  {0x8FF3C5,0x8FF3C5,0x003F},
+  {0x8FF3C6,0x8FF3C6,0x003F},
+  {0x8FF3C7,0x8FF3C7,0x003F},
+  {0x8FF3C8,0x8FF3C8,0x003F},
+  {0x8FF3C9,0x8FF3C9,0x003F},
+  {0x8FF3CA,0x8FF3CA,0x003F},
+  {0x8FF3CB,0x8FF3CB,0x003F},
+  {0x8FF3CC,0x8FF3CC,0x003F},
+  {0x8FF3CD,0x8FF3CD,0x003F},
+  {0x8FF3CE,0x8FF3CE,0x003F},
+  {0x8FF3CF,0x8FF3CF,0x003F},
+  {0x8FF3D0,0x8FF3D0,0x003F}, /* 8FF3D0 */
+  {0x8FF3D1,0x8FF3D1,0x003F},
+  {0x8FF3D2,0x8FF3D2,0x003F},
+  {0x8FF3D3,0x8FF3D3,0x003F},
+  {0x8FF3D4,0x8FF3D4,0x003F},
+  {0x8FF3D5,0x8FF3D5,0x003F},
+  {0x8FF3D6,0x8FF3D6,0x003F},
+  {0x8FF3D7,0x8FF3D7,0x003F},
+  {0x8FF3D8,0x8FF3D8,0x003F},
+  {0x8FF3D9,0x8FF3D9,0x003F},
+  {0x8FF3DA,0x8FF3DA,0x003F},
+  {0x8FF3DB,0x8FF3DB,0x003F},
+  {0x8FF3DC,0x8FF3DC,0x003F},
+  {0x8FF3DD,0x8FF3DD,0x003F},
+  {0x8FF3DE,0x8FF3DE,0x003F},
+  {0x8FF3DF,0x8FF3DF,0x003F},
+  {0x8FF3E0,0x8FF3E0,0x003F}, /* 8FF3E0 */
+  {0x8FF3E1,0x8FF3E1,0x003F},
+  {0x8FF3E2,0x8FF3E2,0x003F},
+  {0x8FF3E3,0x8FF3E3,0x003F},
+  {0x8FF3E4,0x8FF3E4,0x003F},
+  {0x8FF3E5,0x8FF3E5,0x003F},
+  {0x8FF3E6,0x8FF3E6,0x003F},
+  {0x8FF3E7,0x8FF3E7,0x003F},
+  {0x8FF3E8,0x8FF3E8,0x003F},
+  {0x8FF3E9,0x8FF3E9,0x003F},
+  {0x8FF3EA,0x8FF3EA,0x003F},
+  {0x8FF3EB,0x8FF3EB,0x003F},
+  {0x8FF3EC,0x8FF3EC,0x003F},
+  {0x8FF3ED,0x8FF3ED,0x003F},
+  {0x8FF3EE,0x8FF3EE,0x003F},
+  {0x8FF3EF,0x8FF3EF,0x003F},
+  {0x8FF3F0,0x8FF3F0,0x003F}, /* 8FF3F0 */
+  {0x8FF3F1,0x8FF3F1,0x003F},
+  {0x8FF3F2,0x8FF3F2,0x003F},
+  {0x8FF3FD,0x8FF3F3,0x2170},
+  {0x8FF3FE,0x8FF3F4,0x2171},
+  {0x8FF4A1,0x8FF3F5,0x2172},
+  {0x8FF4A2,0x8FF3F6,0x2173},
+  {0x8FF4A3,0x8FF3F7,0x2174},
+  {0x8FF4A4,0x8FF3F8,0x2175},
+  {0x8FF4A5,0x8FF3F9,0x2176},
+  {0x8FF4A6,0x8FF3FA,0x2177},
+  {0x8FF4A7,0x8FF3FB,0x2178},
+  {0x8FF4A8,0x8FF3FC,0x2179},
+  {0x8FF3FD,0x8FF3F3,0x2160},
+  {0x8FF3FE,0x8FF3F4,0x2161},
+  {0x8FF3FF,0x8FF3FF,0x003F},
+};
+
+
+static MY_UNICASE_INFO c8FF4[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FF4A0,0x8FF4A0,0x003F}, /* 8FF4A0 */
+  {0x8FF4A1,0x8FF3F5,0x2162},
+  {0x8FF4A2,0x8FF3F6,0x2163},
+  {0x8FF4A3,0x8FF3F7,0x2164},
+  {0x8FF4A4,0x8FF3F8,0x2165},
+  {0x8FF4A5,0x8FF3F9,0x2166},
+  {0x8FF4A6,0x8FF3FA,0x2167},
+  {0x8FF4A7,0x8FF3FB,0x2168},
+  {0x8FF4A8,0x8FF3FC,0x2169},
+  {0x8FF4A9,0x8FF4A9,0xFF07},
+  {0x8FF4AA,0x8FF4AA,0xFF02},
+  {0x8FF4AB,0x8FF4AB,0x3231},
+  {0x8FF4AC,0x8FF4AC,0x2116},
+  {0x8FF4AD,0x8FF4AD,0x2121},
+  {0x8FF4AE,0x8FF4AE,0x70BB},
+  {0x8FF4AF,0x8FF4AF,0x4EFC},
+  {0x8FF4B0,0x8FF4B0,0x50F4}, /* 8FF4B0 */
+  {0x8FF4B1,0x8FF4B1,0x51EC},
+  {0x8FF4B2,0x8FF4B2,0x5307},
+  {0x8FF4B3,0x8FF4B3,0x5324},
+  {0x8FF4B4,0x8FF4B4,0xFA0E},
+  {0x8FF4B5,0x8FF4B5,0x548A},
+  {0x8FF4B6,0x8FF4B6,0x5759},
+  {0x8FF4B7,0x8FF4B7,0xFA0F},
+  {0x8FF4B8,0x8FF4B8,0xFA10},
+  {0x8FF4B9,0x8FF4B9,0x589E},
+  {0x8FF4BA,0x8FF4BA,0x5BEC},
+  {0x8FF4BB,0x8FF4BB,0x5CF5},
+  {0x8FF4BC,0x8FF4BC,0x5D53},
+  {0x8FF4BD,0x8FF4BD,0xFA11},
+  {0x8FF4BE,0x8FF4BE,0x5FB7},
+  {0x8FF4BF,0x8FF4BF,0x6085},
+  {0x8FF4C0,0x8FF4C0,0x6120}, /* 8FF4C0 */
+  {0x8FF4C1,0x8FF4C1,0x654E},
+  {0x8FF4C2,0x8FF4C2,0x663B},
+  {0x8FF4C3,0x8FF4C3,0x6665},
+  {0x8FF4C4,0x8FF4C4,0xFA12},
+  {0x8FF4C5,0x8FF4C5,0xF929},
+  {0x8FF4C6,0x8FF4C6,0x6801},
+  {0x8FF4C7,0x8FF4C7,0xFA13},
+  {0x8FF4C8,0x8FF4C8,0xFA14},
+  {0x8FF4C9,0x8FF4C9,0x6A6B},
+  {0x8FF4CA,0x8FF4CA,0x6AE2},
+  {0x8FF4CB,0x8FF4CB,0x6DF8},
+  {0x8FF4CC,0x8FF4CC,0x6DF2},
+  {0x8FF4CD,0x8FF4CD,0x7028},
+  {0x8FF4CE,0x8FF4CE,0xFA15},
+  {0x8FF4CF,0x8FF4CF,0xFA16},
+  {0x8FF4D0,0x8FF4D0,0x7501}, /* 8FF4D0 */
+  {0x8FF4D1,0x8FF4D1,0x7682},
+  {0x8FF4D2,0x8FF4D2,0x769E},
+  {0x8FF4D3,0x8FF4D3,0xFA17},
+  {0x8FF4D4,0x8FF4D4,0x7930},
+  {0x8FF4D5,0x8FF4D5,0xFA18},
+  {0x8FF4D6,0x8FF4D6,0xFA19},
+  {0x8FF4D7,0x8FF4D7,0xFA1A},
+  {0x8FF4D8,0x8FF4D8,0xFA1B},
+  {0x8FF4D9,0x8FF4D9,0x7AE7},
+  {0x8FF4DA,0x8FF4DA,0xFA1C},
+  {0x8FF4DB,0x8FF4DB,0xFA1D},
+  {0x8FF4DC,0x8FF4DC,0x7DA0},
+  {0x8FF4DD,0x8FF4DD,0x7DD6},
+  {0x8FF4DE,0x8FF4DE,0xFA1E},
+  {0x8FF4DF,0x8FF4DF,0x8362},
+  {0x8FF4E0,0x8FF4E0,0xFA1F}, /* 8FF4E0 */
+  {0x8FF4E1,0x8FF4E1,0x85B0},
+  {0x8FF4E2,0x8FF4E2,0xFA20},
+  {0x8FF4E3,0x8FF4E3,0xFA21},
+  {0x8FF4E4,0x8FF4E4,0x8807},
+  {0x8FF4E5,0x8FF4E5,0xFA22},
+  {0x8FF4E6,0x8FF4E6,0x8B7F},
+  {0x8FF4E7,0x8FF4E7,0x8CF4},
+  {0x8FF4E8,0x8FF4E8,0x8D76},
+  {0x8FF4E9,0x8FF4E9,0xFA23},
+  {0x8FF4EA,0x8FF4EA,0xFA24},
+  {0x8FF4EB,0x8FF4EB,0xFA25},
+  {0x8FF4EC,0x8FF4EC,0x90DE},
+  {0x8FF4ED,0x8FF4ED,0xFA26},
+  {0x8FF4EE,0x8FF4EE,0x9115},
+  {0x8FF4EF,0x8FF4EF,0xFA27},
+  {0x8FF4F0,0x8FF4F0,0xFA28}, /* 8FF4F0 */
+  {0x8FF4F1,0x8FF4F1,0x9592},
+  {0x8FF4F2,0x8FF4F2,0xF9DC},
+  {0x8FF4F3,0x8FF4F3,0xFA29},
+  {0x8FF4F4,0x8FF4F4,0x973B},
+  {0x8FF4F5,0x8FF4F5,0x974D},
+  {0x8FF4F6,0x8FF4F6,0x9751},
+  {0x8FF4F7,0x8FF4F7,0xFA2A},
+  {0x8FF4F8,0x8FF4F8,0xFA2B},
+  {0x8FF4F9,0x8FF4F9,0xFA2C},
+  {0x8FF4FA,0x8FF4FA,0x999E},
+  {0x8FF4FB,0x8FF4FB,0x9AD9},
+  {0x8FF4FC,0x8FF4FC,0x9B72},
+  {0x8FF4FD,0x8FF4FD,0xFA2D},
+  {0x8FF4FE,0x8FF4FE,0x9ED1},
+  {0x8FF4FF,0x8FF4FF,0x003F},
+};
+
+
+static MY_UNICASE_INFO *my_caseinfo_eucjpms[512]=
+{
+  /* JIS-X-0208 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL,  cA2,  cA3, NULL, NULL,  cA6,  cA7, /* A */
+  NULL, NULL, NULL, NULL, NULL,  cAD, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+
+  /* JIS-X-0212 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL,c8FA6,c8FA7, /* A */
+  NULL, c8FA9,c8FAA,c8FAB,NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL,c8FF3,c8FF4, NULL, NULL, NULL, /* F */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+};
+
+
 static uint16 tab_jisx0201_uni[256]={
      0,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
@@ -8667,8 +10196,8 @@ static MY_CHARSET_HANDLER my_charset_han
     my_mb_ctype_mb,
     my_caseup_str_mb,
     my_casedn_str_mb,
-    my_caseup_mb,
-    my_casedn_mb,
+    my_caseup_ujis,
+    my_casedn_ujis,
     my_snprintf_8bit,
     my_long10_to_str_8bit,
     my_longlong10_to_str_8bit,
@@ -8701,12 +10230,12 @@ CHARSET_INFO my_charset_eucjpms_japanese
     NULL,		/* contractions */
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_eucjpms,/* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */
     1,			/* caseup_multiply  */
-    1,			/* casedn_multiply  */
+    2,			/* casedn_multiply  */
     1,			/* mbminlen     */
     3,			/* mbmaxlen     */
     0,			/* min_sort_char */
@@ -8734,12 +10263,12 @@ CHARSET_INFO my_charset_eucjpms_bin=
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_eucjpms,/* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */
     1,			/* caseup_multiply  */
-    1,			/* casedn_multiply  */
+    2,			/* casedn_multiply  */
     1,			/* mbminlen     */
     3,			/* mbmaxlen     */
     0,			/* min_sort_char */

=== modified file 'strings/ctype-gb2312.c'
--- a/strings/ctype-gb2312.c	2008-02-20 18:49:26 +0000
+++ b/strings/ctype-gb2312.c	2009-11-27 07:42:35 +0000
@@ -177,6 +177,648 @@ static uint mbcharlen_gb2312(CHARSET_INF
 }
 
 
+static MY_UNICASE_INFO cA2[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA2A0,0xA2A0,0xA2A0}, /* A2A0 */ 
+  {0xA2A1,0xA2A1,0x003F},
+  {0xA2A2,0xA2A2,0x003F},
+  {0xA2A3,0xA2A3,0x003F},
+  {0xA2A4,0xA2A4,0x003F},
+  {0xA2A5,0xA2A5,0x003F},
+  {0xA2A6,0xA2A6,0x003F},
+  {0xA2A7,0xA2A7,0x003F},
+  {0xA2A8,0xA2A8,0x003F},
+  {0xA2A9,0xA2A9,0x003F},
+  {0xA2AA,0xA2AA,0x003F},
+  {0xA2AB,0xA2AB,0x003F},
+  {0xA2AC,0xA2AC,0x003F},
+  {0xA2AD,0xA2AD,0x003F},
+  {0xA2AE,0xA2AE,0x003F},
+  {0xA2AF,0xA2AF,0x003F},
+  {0xA2B0,0xA2B0,0x003F}, /* A2B0 */ 
+  {0xA2B1,0xA2B1,0x2488},
+  {0xA2B2,0xA2B2,0x2489},
+  {0xA2B3,0xA2B3,0x248A},
+  {0xA2B4,0xA2B4,0x248B},
+  {0xA2B5,0xA2B5,0x248C},
+  {0xA2B6,0xA2B6,0x248D},
+  {0xA2B7,0xA2B7,0x248E},
+  {0xA2B8,0xA2B8,0x248F},
+  {0xA2B9,0xA2B9,0x2490},
+  {0xA2BA,0xA2BA,0x2491},
+  {0xA2BB,0xA2BB,0x2492},
+  {0xA2BC,0xA2BC,0x2493},
+  {0xA2BD,0xA2BD,0x2494},
+  {0xA2BE,0xA2BE,0x2495},
+  {0xA2BF,0xA2BF,0x2496},
+  {0xA2C0,0xA2C0,0x2497}, /* A2C0 */ 
+  {0xA2C1,0xA2C1,0x2498},
+  {0xA2C2,0xA2C2,0x2499},
+  {0xA2C3,0xA2C3,0x249A},
+  {0xA2C4,0xA2C4,0x249B},
+  {0xA2C5,0xA2C5,0x2474},
+  {0xA2C6,0xA2C6,0x2475},
+  {0xA2C7,0xA2C7,0x2476},
+  {0xA2C8,0xA2C8,0x2477},
+  {0xA2C9,0xA2C9,0x2478},
+  {0xA2CA,0xA2CA,0x2479},
+  {0xA2CB,0xA2CB,0x247A},
+  {0xA2CC,0xA2CC,0x247B},
+  {0xA2CD,0xA2CD,0x247C},
+  {0xA2CE,0xA2CE,0x247D},
+  {0xA2CF,0xA2CF,0x247E},
+  {0xA2D0,0xA2D0,0x247F}, /* A2D0 */ 
+  {0xA2D1,0xA2D1,0x2480},
+  {0xA2D2,0xA2D2,0x2481},
+  {0xA2D3,0xA2D3,0x2482},
+  {0xA2D4,0xA2D4,0x2483},
+  {0xA2D5,0xA2D5,0x2484},
+  {0xA2D6,0xA2D6,0x2485},
+  {0xA2D7,0xA2D7,0x2486},
+  {0xA2D8,0xA2D8,0x2487},
+  {0xA2D9,0xA2D9,0x2460},
+  {0xA2DA,0xA2DA,0x2461},
+  {0xA2DB,0xA2DB,0x2462},
+  {0xA2DC,0xA2DC,0x2463},
+  {0xA2DD,0xA2DD,0x2464},
+  {0xA2DE,0xA2DE,0x2465},
+  {0xA2DF,0xA2DF,0x2466},
+  {0xA2E0,0xA2E0,0x2467}, /* A2E0 */ 
+  {0xA2E1,0xA2E1,0x2468},
+  {0xA2E2,0xA2E2,0x2469},
+  {0xA2E3,0xA2E3,0x003F},
+  {0xA2E4,0xA2E4,0x003F},
+  {0xA2E5,0xA2E5,0x3220},
+  {0xA2E6,0xA2E6,0x3221},
+  {0xA2E7,0xA2E7,0x3222},
+  {0xA2E8,0xA2E8,0x3223},
+  {0xA2E9,0xA2E9,0x3224},
+  {0xA2EA,0xA2EA,0x3225},
+  {0xA2EB,0xA2EB,0x3226},
+  {0xA2EC,0xA2EC,0x3227},
+  {0xA2ED,0xA2ED,0x3228},
+  {0xA2EE,0xA2EE,0x3229},
+  {0xA2EF,0xA2EF,0x003F},
+  {0xA2F0,0xA2F0,0x003F}, /* A2F0 */ 
+  {0xA2F1,0xA2F1,0x2160},
+  {0xA2F2,0xA2F2,0x2161},
+  {0xA2F3,0xA2F3,0x2162},
+  {0xA2F4,0xA2F4,0x2163},
+  {0xA2F5,0xA2F5,0x2164},
+  {0xA2F6,0xA2F6,0x2165},
+  {0xA2F7,0xA2F7,0x2166},
+  {0xA2F8,0xA2F8,0x2167},
+  {0xA2F9,0xA2F9,0x2168},
+  {0xA2FA,0xA2FA,0x2169},
+  {0xA2FB,0xA2FB,0x216A},
+  {0xA2FC,0xA2FC,0x216B},
+  {0xA2FD,0xA2FD,0x003F},
+  {0xA2FE,0xA2FE,0x003F},
+  {0xA2FF,0xA2FF,0xA2FF}
+};
+
+
+static MY_UNICASE_INFO cA3[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA3A0,0xA3A0,0xA3A0}, /* A3A0 */ 
+  {0xA3A1,0xA3A1,0xFF01},
+  {0xA3A2,0xA3A2,0xFF02},
+  {0xA3A3,0xA3A3,0xFF03},
+  {0xA3A4,0xA3A4,0xFFE5},
+  {0xA3A5,0xA3A5,0xFF05},
+  {0xA3A6,0xA3A6,0xFF06},
+  {0xA3A7,0xA3A7,0xFF07},
+  {0xA3A8,0xA3A8,0xFF08},
+  {0xA3A9,0xA3A9,0xFF09},
+  {0xA3AA,0xA3AA,0xFF0A},
+  {0xA3AB,0xA3AB,0xFF0B},
+  {0xA3AC,0xA3AC,0xFF0C},
+  {0xA3AD,0xA3AD,0xFF0D},
+  {0xA3AE,0xA3AE,0xFF0E},
+  {0xA3AF,0xA3AF,0xFF0F},
+  {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */ 
+  {0xA3B1,0xA3B1,0xFF11},
+  {0xA3B2,0xA3B2,0xFF12},
+  {0xA3B3,0xA3B3,0xFF13},
+  {0xA3B4,0xA3B4,0xFF14},
+  {0xA3B5,0xA3B5,0xFF15},
+  {0xA3B6,0xA3B6,0xFF16},
+  {0xA3B7,0xA3B7,0xFF17},
+  {0xA3B8,0xA3B8,0xFF18},
+  {0xA3B9,0xA3B9,0xFF19},
+  {0xA3BA,0xA3BA,0xFF1A},
+  {0xA3BB,0xA3BB,0xFF1B},
+  {0xA3BC,0xA3BC,0xFF1C},
+  {0xA3BD,0xA3BD,0xFF1D},
+  {0xA3BE,0xA3BE,0xFF1E},
+  {0xA3BF,0xA3BF,0xFF1F},
+  {0xA3C0,0xA3C0,0xFF20}, /* A3C0 */ 
+  {0xA3C1,0xA3E1,0xFF21},
+  {0xA3C2,0xA3E2,0xFF22},
+  {0xA3C3,0xA3E3,0xFF23},
+  {0xA3C4,0xA3E4,0xFF24},
+  {0xA3C5,0xA3E5,0xFF25},
+  {0xA3C6,0xA3E6,0xFF26},
+  {0xA3C7,0xA3E7,0xFF27},
+  {0xA3C8,0xA3E8,0xFF28},
+  {0xA3C9,0xA3E9,0xFF29},
+  {0xA3CA,0xA3EA,0xFF2A},
+  {0xA3CB,0xA3EB,0xFF2B},
+  {0xA3CC,0xA3EC,0xFF2C},
+  {0xA3CD,0xA3ED,0xFF2D},
+  {0xA3CE,0xA3EE,0xFF2E},
+  {0xA3CF,0xA3EF,0xFF2F},
+  {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */ 
+  {0xA3D1,0xA3F1,0xFF31},
+  {0xA3D2,0xA3F2,0xFF32},
+  {0xA3D3,0xA3F3,0xFF33},
+  {0xA3D4,0xA3F4,0xFF34},
+  {0xA3D5,0xA3F5,0xFF35},
+  {0xA3D6,0xA3F6,0xFF36},
+  {0xA3D7,0xA3F7,0xFF37},
+  {0xA3D8,0xA3F8,0xFF38},
+  {0xA3D9,0xA3F9,0xFF39},
+  {0xA3DA,0xA3FA,0xFF3A},
+  {0xA3DB,0xA3DB,0xFF3B},
+  {0xA3DC,0xA3DC,0xFF3C},
+  {0xA3DD,0xA3DD,0xFF3D},
+  {0xA3DE,0xA3DE,0xFF3E},
+  {0xA3DF,0xA3DF,0xFF3F},
+  {0xA3E0,0xA3E0,0xFF40}, /* A3E0 */ 
+  {0xA3C1,0xA3E1,0xFF41},
+  {0xA3C2,0xA3E2,0xFF42},
+  {0xA3C3,0xA3E3,0xFF43},
+  {0xA3C4,0xA3E4,0xFF44},
+  {0xA3C5,0xA3E5,0xFF45},
+  {0xA3C6,0xA3E6,0xFF46},
+  {0xA3C7,0xA3E7,0xFF47},
+  {0xA3C8,0xA3E8,0xFF48},
+  {0xA3C9,0xA3E9,0xFF49},
+  {0xA3CA,0xA3EA,0xFF4A},
+  {0xA3CB,0xA3EB,0xFF4B},
+  {0xA3CC,0xA3EC,0xFF4C},
+  {0xA3CD,0xA3ED,0xFF4D},
+  {0xA3CE,0xA3EE,0xFF4E},
+  {0xA3CF,0xA3EF,0xFF4F},
+  {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */ 
+  {0xA3D1,0xA3F1,0xFF51},
+  {0xA3D2,0xA3F2,0xFF52},
+  {0xA3D3,0xA3F3,0xFF53},
+  {0xA3D4,0xA3F4,0xFF54},
+  {0xA3D5,0xA3F5,0xFF55},
+  {0xA3D6,0xA3F6,0xFF56},
+  {0xA3D7,0xA3F7,0xFF57},
+  {0xA3D8,0xA3F8,0xFF58},
+  {0xA3D9,0xA3F9,0xFF59},
+  {0xA3DA,0xA3FA,0xFF5A},
+  {0xA3FB,0xA3FB,0xFF5B},
+  {0xA3FC,0xA3FC,0xFF5C},
+  {0xA3FD,0xA3FD,0xFF5D},
+  {0xA3FE,0xA3FE,0xFFE3},
+  {0xA3FF,0xA3FF,0xA3FF}
+};
+
+
+static MY_UNICASE_INFO cA6[256]=
+{ 
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA6A0,0xA6A0,0xA6A0}, /* A6A0 */ 
+  {0xA6A1,0xA6C1,0x0391},
+  {0xA6A2,0xA6C2,0x0392},
+  {0xA6A3,0xA6C3,0x0393},
+  {0xA6A4,0xA6C4,0x0394},
+  {0xA6A5,0xA6C5,0x0395},
+  {0xA6A6,0xA6C6,0x0396},
+  {0xA6A7,0xA6C7,0x0397},
+  {0xA6A8,0xA6C8,0x0398},
+  {0xA6A9,0xA6C9,0x0399},
+  {0xA6AA,0xA6CA,0x039A},
+  {0xA6AB,0xA6CB,0x039B},
+  {0xA6AC,0xA6CC,0x039C},
+  {0xA6AD,0xA6CD,0x039D},
+  {0xA6AE,0xA6CE,0x039E},
+  {0xA6AF,0xA6CF,0x039F},
+  {0xA6B0,0xA6D0,0x03A0}, /* A6B0 */ 
+  {0xA6B1,0xA6D1,0x03A1},
+  {0xA6B2,0xA6D2,0x03A3},
+  {0xA6B3,0xA6D3,0x03A4},
+  {0xA6B4,0xA6D4,0x03A5},
+  {0xA6B5,0xA6D5,0x03A6},
+  {0xA6B6,0xA6D6,0x03A7},
+  {0xA6B7,0xA6D7,0x03A8},
+  {0xA6B8,0xA6D8,0x03A9},
+  {0xA6B9,0xA6B9,0x003F},
+  {0xA6BA,0xA6BA,0x003F},
+  {0xA6BB,0xA6BB,0x003F},
+  {0xA6BC,0xA6BC,0x003F},
+  {0xA6BD,0xA6BD,0x003F},
+  {0xA6BE,0xA6BE,0x003F},
+  {0xA6BF,0xA6BF,0x003F},
+  {0xA6C0,0xA6C0,0x003F}, /* A6C0 */ 
+  {0xA6A1,0xA6C1,0x03B1},
+  {0xA6A2,0xA6C2,0x03B2},
+  {0xA6A3,0xA6C3,0x03B3},
+  {0xA6A4,0xA6C4,0x03B4},
+  {0xA6A5,0xA6C5,0x03B5},
+  {0xA6A6,0xA6C6,0x03B6},
+  {0xA6A7,0xA6C7,0x03B7},
+  {0xA6A8,0xA6C8,0x03B8},
+  {0xA6A9,0xA6C9,0x03B9},
+  {0xA6AA,0xA6CA,0x03BA},
+  {0xA6AB,0xA6CB,0x03BB},
+  {0xA6AC,0xA6CC,0x03BC},
+  {0xA6AD,0xA6CD,0x03BD},
+  {0xA6AE,0xA6CE,0x03BE},
+  {0xA6AF,0xA6CF,0x03BF},
+  {0xA6B0,0xA6D0,0x03C0}, /* A6D0 */ 
+  {0xA6B1,0xA6D1,0x03C1},
+  {0xA6B2,0xA6D2,0x03C3},
+  {0xA6B3,0xA6D3,0x03C4},
+  {0xA6B4,0xA6D4,0x03C5},
+  {0xA6B5,0xA6D5,0x03C6},
+  {0xA6B6,0xA6D6,0x03C7},
+  {0xA6B7,0xA6D7,0x03C8},
+  {0xA6B8,0xA6D8,0x03C9},
+  {0xA6D9,0xA6D9,0x003F},
+  {0xA6DA,0xA6DA,0x003F},
+  {0xA6DB,0xA6DB,0x003F},
+  {0xA6DC,0xA6DC,0x003F},
+  {0xA6DD,0xA6DD,0x003F},
+  {0xA6DE,0xA6DE,0x003F},
+  {0xA6DF,0xA6DF,0x003F},
+  {0xA6E0,0xA6E0,0x003F}, /* A6E0 */ 
+  {0xA6E1,0xA6E1,0x003F},
+  {0xA6E2,0xA6E2,0x003F},
+  {0xA6E3,0xA6E3,0x003F},
+  {0xA6E4,0xA6E4,0x003F},
+  {0xA6E5,0xA6E5,0x003F},
+  {0xA6E6,0xA6E6,0x003F},
+  {0xA6E7,0xA6E7,0x003F},
+  {0xA6E8,0xA6E8,0x003F},
+  {0xA6E9,0xA6E9,0x003F},
+  {0xA6EA,0xA6EA,0x003F},
+  {0xA6EB,0xA6EB,0x003F},
+  {0xA6EC,0xA6EC,0x003F},
+  {0xA6ED,0xA6ED,0x003F},
+  {0xA6EE,0xA6EE,0x003F},
+  {0xA6EF,0xA6EF,0x003F},
+  {0xA6F0,0xA6F0,0x003F}, /* A6F0 */ 
+  {0xA6F1,0xA6F1,0x003F},
+  {0xA6F2,0xA6F2,0x003F},
+  {0xA6F3,0xA6F3,0x003F},
+  {0xA6F4,0xA6F4,0x003F},
+  {0xA6F5,0xA6F5,0x003F},
+  {0xA6F6,0xA6F6,0x003F},
+  {0xA6F7,0xA6F7,0x003F},
+  {0xA6F8,0xA6F8,0x003F},
+  {0xA6F9,0xA6F9,0x003F},
+  {0xA6FA,0xA6FA,0x003F},
+  {0xA6FB,0xA6FB,0x003F},
+  {0xA6FC,0xA6FC,0x003F},
+  {0xA6FD,0xA6FD,0x003F},
+  {0xA6FE,0xA6FE,0x003F},
+  {0xA6FF,0xA6FF,0xA6FF}
+};
+  
+
+static MY_UNICASE_INFO cA7[256]=
+{  
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA7A0,0xA7A0,0xA7A0}, /* A7A0 */ 
+  {0xA7A1,0xA7D1,0x0410},
+  {0xA7A2,0xA7D2,0x0411},
+  {0xA7A3,0xA7D3,0x0412},
+  {0xA7A4,0xA7D4,0x0413},
+  {0xA7A5,0xA7D5,0x0414},
+  {0xA7A6,0xA7D6,0x0415},
+  {0xA7A7,0xA7D7,0x0401},
+  {0xA7A8,0xA7D8,0x0416},
+  {0xA7A9,0xA7D9,0x0417},
+  {0xA7AA,0xA7DA,0x0418},
+  {0xA7AB,0xA7DB,0x0419},
+  {0xA7AC,0xA7DC,0x041A},
+  {0xA7AD,0xA7DD,0x041B},
+  {0xA7AE,0xA7DE,0x041C},
+  {0xA7AF,0xA7DF,0x041D},
+  {0xA7B0,0xA7E0,0x041E}, /* A7B0 */ 
+  {0xA7B1,0xA7E1,0x041F},
+  {0xA7B2,0xA7E2,0x0420},
+  {0xA7B3,0xA7E3,0x0421},
+  {0xA7B4,0xA7E4,0x0422},
+  {0xA7B5,0xA7E5,0x0423},
+  {0xA7B6,0xA7E6,0x0424},
+  {0xA7B7,0xA7E7,0x0425},
+  {0xA7B8,0xA7E8,0x0426},
+  {0xA7B9,0xA7E9,0x0427},
+  {0xA7BA,0xA7EA,0x0428},
+  {0xA7BB,0xA7EB,0x0429},
+  {0xA7BC,0xA7EC,0x042A},
+  {0xA7BD,0xA7ED,0x042B},
+  {0xA7BE,0xA7EE,0x042C},
+  {0xA7BF,0xA7EF,0x042D},
+  {0xA7C0,0xA7F0,0x042E}, /* A7C0 */ 
+  {0xA7C1,0xA7F1,0x042F},
+  {0xA7C2,0xA7C2,0x003F},
+  {0xA7C3,0xA7C3,0x003F},
+  {0xA7C4,0xA7C4,0x003F},
+  {0xA7C5,0xA7C5,0x003F},
+  {0xA7C6,0xA7C6,0x003F},
+  {0xA7C7,0xA7C7,0x003F},
+  {0xA7C8,0xA7C8,0x003F},
+  {0xA7C9,0xA7C9,0x003F},
+  {0xA7CA,0xA7CA,0x003F},
+  {0xA7CB,0xA7CB,0x003F},
+  {0xA7CC,0xA7CC,0x003F},
+  {0xA7CD,0xA7CD,0x003F},
+  {0xA7CE,0xA7CE,0x003F},
+  {0xA7CF,0xA7CF,0x003F},
+  {0xA7D0,0xA7D0,0x003F}, /* A7D0 */ 
+  {0xA7A1,0xA7D1,0x0430},
+  {0xA7A2,0xA7D2,0x0431},
+  {0xA7A3,0xA7D3,0x0432},
+  {0xA7A4,0xA7D4,0x0433},
+  {0xA7A5,0xA7D5,0x0434},
+  {0xA7A6,0xA7D6,0x0435},
+  {0xA7A7,0xA7D7,0x0451},
+  {0xA7A8,0xA7D8,0x0436},
+  {0xA7A9,0xA7D9,0x0437},
+  {0xA7AA,0xA7DA,0x0438},
+  {0xA7AB,0xA7DB,0x0439},
+  {0xA7AC,0xA7DC,0x043A},
+  {0xA7AD,0xA7DD,0x043B},
+  {0xA7AE,0xA7DE,0x043C},
+  {0xA7AF,0xA7DF,0x043D},
+  {0xA7B0,0xA7E0,0x043E}, /* A7E0 */ 
+  {0xA7B1,0xA7E1,0x043F},
+  {0xA7B2,0xA7E2,0x0440},
+  {0xA7B3,0xA7E3,0x0441},
+  {0xA7B4,0xA7E4,0x0442},
+  {0xA7B5,0xA7E5,0x0443},
+  {0xA7B6,0xA7E6,0x0444},
+  {0xA7B7,0xA7E7,0x0445},
+  {0xA7B8,0xA7E8,0x0446},
+  {0xA7B9,0xA7E9,0x0447},
+  {0xA7BA,0xA7EA,0x0448},
+  {0xA7BB,0xA7EB,0x0449},
+  {0xA7BC,0xA7EC,0x044A},
+  {0xA7BD,0xA7ED,0x044B},
+  {0xA7BE,0xA7EE,0x044C},
+  {0xA7BF,0xA7EF,0x044D},
+  {0xA7C0,0xA7F0,0x044E}, /* A7F0 */ 
+  {0xA7C1,0xA7F1,0x044F},
+  {0xA7F2,0xA7F2,0x003F},
+  {0xA7F3,0xA7F3,0x003F},
+  {0xA7F4,0xA7F4,0x003F},
+  {0xA7F5,0xA7F5,0x003F},
+  {0xA7F6,0xA7F6,0x003F},
+  {0xA7F7,0xA7F7,0x003F},
+  {0xA7F8,0xA7F8,0x003F},
+  {0xA7F9,0xA7F9,0x003F},
+  {0xA7FA,0xA7FA,0x003F},
+  {0xA7FB,0xA7FB,0x003F},
+  {0xA7FC,0xA7FC,0x003F},
+  {0xA7FD,0xA7FD,0x003F},
+  {0xA7FE,0xA7FE,0x003F},
+  {0xA7FF,0xA7FF,0xA7FF}
+};
+  
+
+static MY_UNICASE_INFO cA8[256]=
+{ 
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA8A0,0xA8A0,0xA8A0}, /* A8A0 */ 
+  {0xA8A1,0xA8A1,0x0101},
+  {0xA8A2,0xA8A2,0x00E1},
+  {0xA8A3,0xA8A3,0x01CE},
+  {0xA8A4,0xA8A4,0x00E0},
+  {0xA8A5,0xA8A5,0x0113},
+  {0xA8A6,0xA8A6,0x00E9},
+  {0xA8A7,0xA8A7,0x011B},
+  {0xA8A8,0xA8A8,0x00E8},
+  {0xA8A9,0xA8A9,0x012B},
+  {0xA8AA,0xA8AA,0x00ED},
+  {0xA8AB,0xA8AB,0x01D0},
+  {0xA8AC,0xA8AC,0x00EC},
+  {0xA8AD,0xA8AD,0x014D},
+  {0xA8AE,0xA8AE,0x00F3},
+  {0xA8AF,0xA8AF,0x01D2},
+  {0xA8B0,0xA8B0,0x00F2}, /* A8B0 */ 
+  {0xA8B1,0xA8B1,0x016B},
+  {0xA8B2,0xA8B2,0x00FA},
+  {0xA8B3,0xA8B3,0x01D4},
+  {0xA8B4,0xA8B4,0x00F9},
+  {0xA8B5,0xA8B5,0x01D6},
+  {0xA8B6,0xA8B6,0x01D8},
+  {0xA8B7,0xA8B7,0x01DA},
+  {0xA8B8,0xA8B8,0x01DC},
+  {0xA8B9,0xA8B9,0x00FC},
+  {0xA8BA,0xA8BA,0x00EA},
+  {0xA8BB,0xA8BB,0x003F},
+  {0xA8BC,0xA8BC,0x003F},
+  {0xA8BD,0xA8BD,0x003F},
+  {0xA8BE,0xA8BE,0x003F},
+  {0xA8BF,0xA8BF,0x003F},
+  {0xA8C0,0xA8C0,0x003F}, /* A8C0 */ 
+  {0xA8C1,0xA8C1,0x003F},
+  {0xA8C2,0xA8C2,0x003F},
+  {0xA8C3,0xA8C3,0x003F},
+  {0xA8C4,0xA8C4,0x003F},
+  {0xA8C5,0xA8C5,0x3105},
+  {0xA8C6,0xA8C6,0x3106},
+  {0xA8C7,0xA8C7,0x3107},
+  {0xA8C8,0xA8C8,0x3108},
+  {0xA8C9,0xA8C9,0x3109},
+  {0xA8CA,0xA8CA,0x310A},
+  {0xA8CB,0xA8CB,0x310B},
+  {0xA8CC,0xA8CC,0x310C},
+  {0xA8CD,0xA8CD,0x310D},
+  {0xA8CE,0xA8CE,0x310E},
+  {0xA8CF,0xA8CF,0x310F},
+  {0xA8D0,0xA8D0,0x3110}, /* A8D0 */ 
+  {0xA8D1,0xA8D1,0x3111},
+  {0xA8D2,0xA8D2,0x3112},
+  {0xA8D3,0xA8D3,0x3113},
+  {0xA8D4,0xA8D4,0x3114},
+  {0xA8D5,0xA8D5,0x3115},
+  {0xA8D6,0xA8D6,0x3116},
+  {0xA8D7,0xA8D7,0x3117},
+  {0xA8D8,0xA8D8,0x3118},
+  {0xA8D9,0xA8D9,0x3119},
+  {0xA8DA,0xA8DA,0x311A},
+  {0xA8DB,0xA8DB,0x311B},
+  {0xA8DC,0xA8DC,0x311C},
+  {0xA8DD,0xA8DD,0x311D},
+  {0xA8DE,0xA8DE,0x311E},
+  {0xA8DF,0xA8DF,0x311F},
+  {0xA8E0,0xA8E0,0x3120}, /* A8E0 */ 
+  {0xA8E1,0xA8E1,0x3121},
+  {0xA8E2,0xA8E2,0x3122},
+  {0xA8E3,0xA8E3,0x3123},
+  {0xA8E4,0xA8E4,0x3124},
+  {0xA8E5,0xA8E5,0x3125},
+  {0xA8E6,0xA8E6,0x3126},
+  {0xA8E7,0xA8E7,0x3127},
+  {0xA8E8,0xA8E8,0x3128},
+  {0xA8E9,0xA8E9,0x3129},
+  {0xA8EA,0xA8EA,0x003F},
+  {0xA8EB,0xA8EB,0x003F},
+  {0xA8EC,0xA8EC,0x003F},
+  {0xA8ED,0xA8ED,0x003F},
+  {0xA8EE,0xA8EE,0x003F},
+  {0xA8EF,0xA8EF,0x003F},
+  {0xA8F0,0xA8F0,0x003F}, /* A8F0 */ 
+  {0xA8F1,0xA8F1,0x003F},
+  {0xA8F2,0xA8F2,0x003F},
+  {0xA8F3,0xA8F3,0x003F},
+  {0xA8F4,0xA8F4,0x003F},
+  {0xA8F5,0xA8F5,0x003F},
+  {0xA8F6,0xA8F6,0x003F},
+  {0xA8F7,0xA8F7,0x003F},
+  {0xA8F8,0xA8F8,0x003F},
+  {0xA8F9,0xA8F9,0x003F},
+  {0xA8FA,0xA8FA,0x003F},
+  {0xA8FB,0xA8FB,0x003F},
+  {0xA8FC,0xA8FC,0x003F},
+  {0xA8FD,0xA8FD,0x003F},
+  {0xA8FE,0xA8FE,0x003F},
+  {0xA8FF,0xA8FF,0xA8FF}
+};
+
+
+static MY_UNICASE_INFO *my_caseinfo_gb2312[256]=
+{
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL,  cA2,  cA3, NULL, NULL,  cA6,  cA7, /* A */
+   cA8, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+};
+
+
 /* page 0 0x2121-0x2658 */
 static uint16 tab_gb2312_uni0[]={
 0x3000,0x3001,0x3002,0x30FB,0x02C9,0x02C7,0x00A8,0x3003,
@@ -5781,7 +6423,7 @@ CHARSET_INFO my_charset_gb2312_chinese_c
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_gb2312, /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */
@@ -5813,7 +6455,7 @@ CHARSET_INFO my_charset_gb2312_bin=
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_gb2312, /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */

=== modified file 'strings/ctype-gbk.c'
--- a/strings/ctype-gbk.c	2008-04-23 06:06:26 +0000
+++ b/strings/ctype-gbk.c	2009-11-27 07:42:35 +0000
@@ -137,6 +137,864 @@ static uchar NEAR to_upper_gbk[]=
   (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
 };
 
+
+static MY_UNICASE_INFO cA2[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA240,0xA240,0x003F}, /* A240 */
+  {0xA241,0xA241,0x003F},
+  {0xA242,0xA242,0x003F},
+  {0xA243,0xA243,0x003F},
+  {0xA244,0xA244,0x003F},
+  {0xA245,0xA245,0x003F},
+  {0xA246,0xA246,0x003F},
+  {0xA247,0xA247,0x003F},
+  {0xA248,0xA248,0x003F},
+  {0xA249,0xA249,0x003F},
+  {0xA24A,0xA24A,0x003F},
+  {0xA24B,0xA24B,0x003F},
+  {0xA24C,0xA24C,0x003F},
+  {0xA24D,0xA24D,0x003F},
+  {0xA24E,0xA24E,0x003F},
+  {0xA24F,0xA24F,0x003F},
+  {0xA250,0xA250,0x003F}, /* A250 */
+  {0xA251,0xA251,0x003F},
+  {0xA252,0xA252,0x003F},
+  {0xA253,0xA253,0x003F},
+  {0xA254,0xA254,0x003F},
+  {0xA255,0xA255,0x003F},
+  {0xA256,0xA256,0x003F},
+  {0xA257,0xA257,0x003F},
+  {0xA258,0xA258,0x003F},
+  {0xA259,0xA259,0x003F},
+  {0xA25A,0xA25A,0x003F},
+  {0xA25B,0xA25B,0x003F},
+  {0xA25C,0xA25C,0x003F},
+  {0xA25D,0xA25D,0x003F},
+  {0xA25E,0xA25E,0x003F},
+  {0xA25F,0xA25F,0x003F},
+  {0xA260,0xA260,0x003F}, /* A260 */
+  {0xA261,0xA261,0x003F},
+  {0xA262,0xA262,0x003F},
+  {0xA263,0xA263,0x003F},
+  {0xA264,0xA264,0x003F},
+  {0xA265,0xA265,0x003F},
+  {0xA266,0xA266,0x003F},
+  {0xA267,0xA267,0x003F},
+  {0xA268,0xA268,0x003F},
+  {0xA269,0xA269,0x003F},
+  {0xA26A,0xA26A,0x003F},
+  {0xA26B,0xA26B,0x003F},
+  {0xA26C,0xA26C,0x003F},
+  {0xA26D,0xA26D,0x003F},
+  {0xA26E,0xA26E,0x003F},
+  {0xA26F,0xA26F,0x003F},
+  {0xA270,0xA270,0x003F}, /* A270 */
+  {0xA271,0xA271,0x003F},
+  {0xA272,0xA272,0x003F},
+  {0xA273,0xA273,0x003F},
+  {0xA274,0xA274,0x003F},
+  {0xA275,0xA275,0x003F},
+  {0xA276,0xA276,0x003F},
+  {0xA277,0xA277,0x003F},
+  {0xA278,0xA278,0x003F},
+  {0xA279,0xA279,0x003F},
+  {0xA27A,0xA27A,0x003F},
+  {0xA27B,0xA27B,0x003F},
+  {0xA27C,0xA27C,0x003F},
+  {0xA27D,0xA27D,0x003F},
+  {0xA27E,0xA27E,0x003F},
+  {0xA27F,0xA27F,0xA27F},
+  {0xA280,0xA280,0x003F}, /* A280 */
+  {0xA281,0xA281,0x003F},
+  {0xA282,0xA282,0x003F},
+  {0xA283,0xA283,0x003F},
+  {0xA284,0xA284,0x003F},
+  {0xA285,0xA285,0x003F},
+  {0xA286,0xA286,0x003F},
+  {0xA287,0xA287,0x003F},
+  {0xA288,0xA288,0x003F},
+  {0xA289,0xA289,0x003F},
+  {0xA28A,0xA28A,0x003F},
+  {0xA28B,0xA28B,0x003F},
+  {0xA28C,0xA28C,0x003F},
+  {0xA28D,0xA28D,0x003F},
+  {0xA28E,0xA28E,0x003F},
+  {0xA28F,0xA28F,0x003F},
+  {0xA290,0xA290,0x003F}, /* A290 */
+  {0xA291,0xA291,0x003F},
+  {0xA292,0xA292,0x003F},
+  {0xA293,0xA293,0x003F},
+  {0xA294,0xA294,0x003F},
+  {0xA295,0xA295,0x003F},
+  {0xA296,0xA296,0x003F},
+  {0xA297,0xA297,0x003F},
+  {0xA298,0xA298,0x003F},
+  {0xA299,0xA299,0x003F},
+  {0xA29A,0xA29A,0x003F},
+  {0xA29B,0xA29B,0x003F},
+  {0xA29C,0xA29C,0x003F},
+  {0xA29D,0xA29D,0x003F},
+  {0xA29E,0xA29E,0x003F},
+  {0xA29F,0xA29F,0x003F},
+  {0xA2A0,0xA2A0,0x003F}, /* A2A0 */
+  {0xA2F1,0xA2A1,0x2170},
+  {0xA2F2,0xA2A2,0x2171},
+  {0xA2F3,0xA2A3,0x2172},
+  {0xA2F4,0xA2A4,0x2173},
+  {0xA2F5,0xA2A5,0x2174},
+  {0xA2F6,0xA2A6,0x2175},
+  {0xA2F7,0xA2A7,0x2176},
+  {0xA2F8,0xA2A8,0x2177},
+  {0xA2F9,0xA2A9,0x2178},
+  {0xA2FA,0xA2AA,0x2179},
+  {0xA2AB,0xA2AB,0x003F},
+  {0xA2AC,0xA2AC,0x003F},
+  {0xA2AD,0xA2AD,0x003F},
+  {0xA2AE,0xA2AE,0x003F},
+  {0xA2AF,0xA2AF,0x003F},
+  {0xA2B0,0xA2B0,0x003F}, /* A2B0 */
+  {0xA2B1,0xA2B1,0x2488},
+  {0xA2B2,0xA2B2,0x2489},
+  {0xA2B3,0xA2B3,0x248A},
+  {0xA2B4,0xA2B4,0x248B},
+  {0xA2B5,0xA2B5,0x248C},
+  {0xA2B6,0xA2B6,0x248D},
+  {0xA2B7,0xA2B7,0x248E},
+  {0xA2B8,0xA2B8,0x248F},
+  {0xA2B9,0xA2B9,0x2490},
+  {0xA2BA,0xA2BA,0x2491},
+  {0xA2BB,0xA2BB,0x2492},
+  {0xA2BC,0xA2BC,0x2493},
+  {0xA2BD,0xA2BD,0x2494},
+  {0xA2BE,0xA2BE,0x2495},
+  {0xA2BF,0xA2BF,0x2496},
+  {0xA2C0,0xA2C0,0x2497}, /* A2C0 */
+  {0xA2C1,0xA2C1,0x2498},
+  {0xA2C2,0xA2C2,0x2499},
+  {0xA2C3,0xA2C3,0x249A},
+  {0xA2C4,0xA2C4,0x249B},
+  {0xA2C5,0xA2C5,0x2474},
+  {0xA2C6,0xA2C6,0x2475},
+  {0xA2C7,0xA2C7,0x2476},
+  {0xA2C8,0xA2C8,0x2477},
+  {0xA2C9,0xA2C9,0x2478},
+  {0xA2CA,0xA2CA,0x2479},
+  {0xA2CB,0xA2CB,0x247A},
+  {0xA2CC,0xA2CC,0x247B},
+  {0xA2CD,0xA2CD,0x247C},
+  {0xA2CE,0xA2CE,0x247D},
+  {0xA2CF,0xA2CF,0x247E},
+  {0xA2D0,0xA2D0,0x247F}, /* A2D0 */
+  {0xA2D1,0xA2D1,0x2480},
+  {0xA2D2,0xA2D2,0x2481},
+  {0xA2D3,0xA2D3,0x2482},
+  {0xA2D4,0xA2D4,0x2483},
+  {0xA2D5,0xA2D5,0x2484},
+  {0xA2D6,0xA2D6,0x2485},
+  {0xA2D7,0xA2D7,0x2486},
+  {0xA2D8,0xA2D8,0x2487},
+  {0xA2D9,0xA2D9,0x2460},
+  {0xA2DA,0xA2DA,0x2461},
+  {0xA2DB,0xA2DB,0x2462},
+  {0xA2DC,0xA2DC,0x2463},
+  {0xA2DD,0xA2DD,0x2464},
+  {0xA2DE,0xA2DE,0x2465},
+  {0xA2DF,0xA2DF,0x2466},
+  {0xA2E0,0xA2E0,0x2467}, /* A2E0 */
+  {0xA2E1,0xA2E1,0x2468},
+  {0xA2E2,0xA2E2,0x2469},
+  {0xA2E3,0xA2E3,0x003F},
+  {0xA2E4,0xA2E4,0x003F},
+  {0xA2E5,0xA2E5,0x3220},
+  {0xA2E6,0xA2E6,0x3221},
+  {0xA2E7,0xA2E7,0x3222},
+  {0xA2E8,0xA2E8,0x3223},
+  {0xA2E9,0xA2E9,0x3224},
+  {0xA2EA,0xA2EA,0x3225},
+  {0xA2EB,0xA2EB,0x3226},
+  {0xA2EC,0xA2EC,0x3227},
+  {0xA2ED,0xA2ED,0x3228},
+  {0xA2EE,0xA2EE,0x3229},
+  {0xA2EF,0xA2EF,0x003F},
+  {0xA2F0,0xA2F0,0x003F}, /* A2F0 */
+  {0xA2F1,0xA2A1,0x2160},
+  {0xA2F2,0xA2A2,0x2161},
+  {0xA2F3,0xA2A3,0x2162},
+  {0xA2F4,0xA2A4,0x2163},
+  {0xA2F5,0xA2A5,0x2164},
+  {0xA2F6,0xA2A6,0x2165},
+  {0xA2F7,0xA2A7,0x2166},
+  {0xA2F8,0xA2A8,0x2167},
+  {0xA2F9,0xA2A9,0x2168},
+  {0xA2FA,0xA2AA,0x2169},
+  {0xA2FB,0xA2FB,0x216A},
+  {0xA2FC,0xA2FC,0x216B},
+  {0xA2FD,0xA2FD,0x003F},
+  {0xA2FE,0xA2FE,0x003F},
+  {0xA2FF,0xA2FF,0xA2FF}
+};
+
+static MY_UNICASE_INFO cA3[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA340,0xA340,0x003F}, /* A340 */
+  {0xA341,0xA341,0x003F},
+  {0xA342,0xA342,0x003F},
+  {0xA343,0xA343,0x003F},
+  {0xA344,0xA344,0x003F},
+  {0xA345,0xA345,0x003F},
+  {0xA346,0xA346,0x003F},
+  {0xA347,0xA347,0x003F},
+  {0xA348,0xA348,0x003F},
+  {0xA349,0xA349,0x003F},
+  {0xA34A,0xA34A,0x003F},
+  {0xA34B,0xA34B,0x003F},
+  {0xA34C,0xA34C,0x003F},
+  {0xA34D,0xA34D,0x003F},
+  {0xA34E,0xA34E,0x003F},
+  {0xA34F,0xA34F,0x003F},
+  {0xA350,0xA350,0x003F}, /* A350 */
+  {0xA351,0xA351,0x003F},
+  {0xA352,0xA352,0x003F},
+  {0xA353,0xA353,0x003F},
+  {0xA354,0xA354,0x003F},
+  {0xA355,0xA355,0x003F},
+  {0xA356,0xA356,0x003F},
+  {0xA357,0xA357,0x003F},
+  {0xA358,0xA358,0x003F},
+  {0xA359,0xA359,0x003F},
+  {0xA35A,0xA35A,0x003F},
+  {0xA35B,0xA35B,0x003F},
+  {0xA35C,0xA35C,0x003F},
+  {0xA35D,0xA35D,0x003F},
+  {0xA35E,0xA35E,0x003F},
+  {0xA35F,0xA35F,0x003F},
+  {0xA360,0xA360,0x003F}, /* A360 */
+  {0xA361,0xA361,0x003F},
+  {0xA362,0xA362,0x003F},
+  {0xA363,0xA363,0x003F},
+  {0xA364,0xA364,0x003F},
+  {0xA365,0xA365,0x003F},
+  {0xA366,0xA366,0x003F},
+  {0xA367,0xA367,0x003F},
+  {0xA368,0xA368,0x003F},
+  {0xA369,0xA369,0x003F},
+  {0xA36A,0xA36A,0x003F},
+  {0xA36B,0xA36B,0x003F},
+  {0xA36C,0xA36C,0x003F},
+  {0xA36D,0xA36D,0x003F},
+  {0xA36E,0xA36E,0x003F},
+  {0xA36F,0xA36F,0x003F},
+  {0xA370,0xA370,0x003F}, /* A370 */
+  {0xA371,0xA371,0x003F},
+  {0xA372,0xA372,0x003F},
+  {0xA373,0xA373,0x003F},
+  {0xA374,0xA374,0x003F},
+  {0xA375,0xA375,0x003F},
+  {0xA376,0xA376,0x003F},
+  {0xA377,0xA377,0x003F},
+  {0xA378,0xA378,0x003F},
+  {0xA379,0xA379,0x003F},
+  {0xA37A,0xA37A,0x003F},
+  {0xA37B,0xA37B,0x003F},
+  {0xA37C,0xA37C,0x003F},
+  {0xA37D,0xA37D,0x003F},
+  {0xA37E,0xA37E,0x003F},
+  {0xA37F,0xA37F,0xA37F},
+  {0xA380,0xA380,0x003F}, /* A380 */
+  {0xA381,0xA381,0x003F},
+  {0xA382,0xA382,0x003F},
+  {0xA383,0xA383,0x003F},
+  {0xA384,0xA384,0x003F},
+  {0xA385,0xA385,0x003F},
+  {0xA386,0xA386,0x003F},
+  {0xA387,0xA387,0x003F},
+  {0xA388,0xA388,0x003F},
+  {0xA389,0xA389,0x003F},
+  {0xA38A,0xA38A,0x003F},
+  {0xA38B,0xA38B,0x003F},
+  {0xA38C,0xA38C,0x003F},
+  {0xA38D,0xA38D,0x003F},
+  {0xA38E,0xA38E,0x003F},
+  {0xA38F,0xA38F,0x003F},
+  {0xA390,0xA390,0x003F}, /* A390 */
+  {0xA391,0xA391,0x003F},
+  {0xA392,0xA392,0x003F},
+  {0xA393,0xA393,0x003F},
+  {0xA394,0xA394,0x003F},
+  {0xA395,0xA395,0x003F},
+  {0xA396,0xA396,0x003F},
+  {0xA397,0xA397,0x003F},
+  {0xA398,0xA398,0x003F},
+  {0xA399,0xA399,0x003F},
+  {0xA39A,0xA39A,0x003F},
+  {0xA39B,0xA39B,0x003F},
+  {0xA39C,0xA39C,0x003F},
+  {0xA39D,0xA39D,0x003F},
+  {0xA39E,0xA39E,0x003F},
+  {0xA39F,0xA39F,0x003F},
+  {0xA3A0,0xA3A0,0x003F}, /* A3A0 */
+  {0xA3A1,0xA3A1,0xFF01},
+  {0xA3A2,0xA3A2,0xFF02},
+  {0xA3A3,0xA3A3,0xFF03},
+  {0xA3A4,0xA3A4,0xFFE5},
+  {0xA3A5,0xA3A5,0xFF05},
+  {0xA3A6,0xA3A6,0xFF06},
+  {0xA3A7,0xA3A7,0xFF07},
+  {0xA3A8,0xA3A8,0xFF08},
+  {0xA3A9,0xA3A9,0xFF09},
+  {0xA3AA,0xA3AA,0xFF0A},
+  {0xA3AB,0xA3AB,0xFF0B},
+  {0xA3AC,0xA3AC,0xFF0C},
+  {0xA3AD,0xA3AD,0xFF0D},
+  {0xA3AE,0xA3AE,0xFF0E},
+  {0xA3AF,0xA3AF,0xFF0F},
+  {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */
+  {0xA3B1,0xA3B1,0xFF11},
+  {0xA3B2,0xA3B2,0xFF12},
+  {0xA3B3,0xA3B3,0xFF13},
+  {0xA3B4,0xA3B4,0xFF14},
+  {0xA3B5,0xA3B5,0xFF15},
+  {0xA3B6,0xA3B6,0xFF16},
+  {0xA3B7,0xA3B7,0xFF17},
+  {0xA3B8,0xA3B8,0xFF18},
+  {0xA3B9,0xA3B9,0xFF19},
+  {0xA3BA,0xA3BA,0xFF1A},
+  {0xA3BB,0xA3BB,0xFF1B},
+  {0xA3BC,0xA3BC,0xFF1C},
+  {0xA3BD,0xA3BD,0xFF1D},
+  {0xA3BE,0xA3BE,0xFF1E},
+  {0xA3BF,0xA3BF,0xFF1F},
+  {0xA3C0,0xA3C0,0xFF20}, /* A3C0 */
+  {0xA3C1,0xA3E1,0xFF21},
+  {0xA3C2,0xA3E2,0xFF22},
+  {0xA3C3,0xA3E3,0xFF23},
+  {0xA3C4,0xA3E4,0xFF24},
+  {0xA3C5,0xA3E5,0xFF25},
+  {0xA3C6,0xA3E6,0xFF26},
+  {0xA3C7,0xA3E7,0xFF27},
+  {0xA3C8,0xA3E8,0xFF28},
+  {0xA3C9,0xA3E9,0xFF29},
+  {0xA3CA,0xA3EA,0xFF2A},
+  {0xA3CB,0xA3EB,0xFF2B},
+  {0xA3CC,0xA3EC,0xFF2C},
+  {0xA3CD,0xA3ED,0xFF2D},
+  {0xA3CE,0xA3EE,0xFF2E},
+  {0xA3CF,0xA3EF,0xFF2F},
+  {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */
+  {0xA3D1,0xA3F1,0xFF31},
+  {0xA3D2,0xA3F2,0xFF32},
+  {0xA3D3,0xA3F3,0xFF33},
+  {0xA3D4,0xA3F4,0xFF34},
+  {0xA3D5,0xA3F5,0xFF35},
+  {0xA3D6,0xA3F6,0xFF36},
+  {0xA3D7,0xA3F7,0xFF37},
+  {0xA3D8,0xA3F8,0xFF38},
+  {0xA3D9,0xA3F9,0xFF39},
+  {0xA3DA,0xA3FA,0xFF3A},
+  {0xA3DB,0xA3DB,0xFF3B},
+  {0xA3DC,0xA3DC,0xFF3C},
+  {0xA3DD,0xA3DD,0xFF3D},
+  {0xA3DE,0xA3DE,0xFF3E},
+  {0xA3DF,0xA3DF,0xFF3F},
+  {0xA3E0,0xA3E0,0xFF40}, /* A3E0 */
+  {0xA3C1,0xA3E1,0xFF41},
+  {0xA3C2,0xA3E2,0xFF42},
+  {0xA3C3,0xA3E3,0xFF43},
+  {0xA3C4,0xA3E4,0xFF44},
+  {0xA3C5,0xA3E5,0xFF45},
+  {0xA3C6,0xA3E6,0xFF46},
+  {0xA3C7,0xA3E7,0xFF47},
+  {0xA3C8,0xA3E8,0xFF48},
+  {0xA3C9,0xA3E9,0xFF49},
+  {0xA3CA,0xA3EA,0xFF4A},
+  {0xA3CB,0xA3EB,0xFF4B},
+  {0xA3CC,0xA3EC,0xFF4C},
+  {0xA3CD,0xA3ED,0xFF4D},
+  {0xA3CE,0xA3EE,0xFF4E},
+  {0xA3CF,0xA3EF,0xFF4F},
+  {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */
+  {0xA3D1,0xA3F1,0xFF51},
+  {0xA3D2,0xA3F2,0xFF52},
+  {0xA3D3,0xA3F3,0xFF53},
+  {0xA3D4,0xA3F4,0xFF54},
+  {0xA3D5,0xA3F5,0xFF55},
+  {0xA3D6,0xA3F6,0xFF56},
+  {0xA3D7,0xA3F7,0xFF57},
+  {0xA3D8,0xA3F8,0xFF58},
+  {0xA3D9,0xA3F9,0xFF59},
+  {0xA3DA,0xA3FA,0xFF5A},
+  {0xA3FB,0xA3FB,0xFF5B},
+  {0xA3FC,0xA3FC,0xFF5C},
+  {0xA3FD,0xA3FD,0xFF5D},
+  {0xA3FE,0xA3FE,0xFFE3},
+  {0xA3FF,0xA3FF,0xA3FF}
+};
+
+
+static MY_UNICASE_INFO cA6[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA640,0xA640,0x003F}, /* A640 */
+  {0xA641,0xA641,0x003F},
+  {0xA642,0xA642,0x003F},
+  {0xA643,0xA643,0x003F},
+  {0xA644,0xA644,0x003F},
+  {0xA645,0xA645,0x003F},
+  {0xA646,0xA646,0x003F},
+  {0xA647,0xA647,0x003F},
+  {0xA648,0xA648,0x003F},
+  {0xA649,0xA649,0x003F},
+  {0xA64A,0xA64A,0x003F},
+  {0xA64B,0xA64B,0x003F},
+  {0xA64C,0xA64C,0x003F},
+  {0xA64D,0xA64D,0x003F},
+  {0xA64E,0xA64E,0x003F},
+  {0xA64F,0xA64F,0x003F},
+  {0xA650,0xA650,0x003F}, /* A650 */
+  {0xA651,0xA651,0x003F},
+  {0xA652,0xA652,0x003F},
+  {0xA653,0xA653,0x003F},
+  {0xA654,0xA654,0x003F},
+  {0xA655,0xA655,0x003F},
+  {0xA656,0xA656,0x003F},
+  {0xA657,0xA657,0x003F},
+  {0xA658,0xA658,0x003F},
+  {0xA659,0xA659,0x003F},
+  {0xA65A,0xA65A,0x003F},
+  {0xA65B,0xA65B,0x003F},
+  {0xA65C,0xA65C,0x003F},
+  {0xA65D,0xA65D,0x003F},
+  {0xA65E,0xA65E,0x003F},
+  {0xA65F,0xA65F,0x003F},
+  {0xA660,0xA660,0x003F}, /* A660 */
+  {0xA661,0xA661,0x003F},
+  {0xA662,0xA662,0x003F},
+  {0xA663,0xA663,0x003F},
+  {0xA664,0xA664,0x003F},
+  {0xA665,0xA665,0x003F},
+  {0xA666,0xA666,0x003F},
+  {0xA667,0xA667,0x003F},
+  {0xA668,0xA668,0x003F},
+  {0xA669,0xA669,0x003F},
+  {0xA66A,0xA66A,0x003F},
+  {0xA66B,0xA66B,0x003F},
+  {0xA66C,0xA66C,0x003F},
+  {0xA66D,0xA66D,0x003F},
+  {0xA66E,0xA66E,0x003F},
+  {0xA66F,0xA66F,0x003F},
+  {0xA670,0xA670,0x003F}, /* A670 */
+  {0xA671,0xA671,0x003F},
+  {0xA672,0xA672,0x003F},
+  {0xA673,0xA673,0x003F},
+  {0xA674,0xA674,0x003F},
+  {0xA675,0xA675,0x003F},
+  {0xA676,0xA676,0x003F},
+  {0xA677,0xA677,0x003F},
+  {0xA678,0xA678,0x003F},
+  {0xA679,0xA679,0x003F},
+  {0xA67A,0xA67A,0x003F},
+  {0xA67B,0xA67B,0x003F},
+  {0xA67C,0xA67C,0x003F},
+  {0xA67D,0xA67D,0x003F},
+  {0xA67E,0xA67E,0x003F},
+  {0xA67F,0xA67F,0xA67F},
+  {0xA680,0xA680,0x003F}, /* A680 */
+  {0xA681,0xA681,0x003F},
+  {0xA682,0xA682,0x003F},
+  {0xA683,0xA683,0x003F},
+  {0xA684,0xA684,0x003F},
+  {0xA685,0xA685,0x003F},
+  {0xA686,0xA686,0x003F},
+  {0xA687,0xA687,0x003F},
+  {0xA688,0xA688,0x003F},
+  {0xA689,0xA689,0x003F},
+  {0xA68A,0xA68A,0x003F},
+  {0xA68B,0xA68B,0x003F},
+  {0xA68C,0xA68C,0x003F},
+  {0xA68D,0xA68D,0x003F},
+  {0xA68E,0xA68E,0x003F},
+  {0xA68F,0xA68F,0x003F},
+  {0xA690,0xA690,0x003F}, /* A690 */
+  {0xA691,0xA691,0x003F},
+  {0xA692,0xA692,0x003F},
+  {0xA693,0xA693,0x003F},
+  {0xA694,0xA694,0x003F},
+  {0xA695,0xA695,0x003F},
+  {0xA696,0xA696,0x003F},
+  {0xA697,0xA697,0x003F},
+  {0xA698,0xA698,0x003F},
+  {0xA699,0xA699,0x003F},
+  {0xA69A,0xA69A,0x003F},
+  {0xA69B,0xA69B,0x003F},
+  {0xA69C,0xA69C,0x003F},
+  {0xA69D,0xA69D,0x003F},
+  {0xA69E,0xA69E,0x003F},
+  {0xA69F,0xA69F,0x003F},
+  {0xA6A0,0xA6A0,0x003F}, /* A6A0 */
+  {0xA6A1,0xA6C1,0x0391},
+  {0xA6A2,0xA6C2,0x0392},
+  {0xA6A3,0xA6C3,0x0393},
+  {0xA6A4,0xA6C4,0x0394},
+  {0xA6A5,0xA6C5,0x0395},
+  {0xA6A6,0xA6C6,0x0396},
+  {0xA6A7,0xA6C7,0x0397},
+  {0xA6A8,0xA6C8,0x0398},
+  {0xA6A9,0xA6C9,0x0399},
+  {0xA6AA,0xA6CA,0x039A},
+  {0xA6AB,0xA6CB,0x039B},
+  {0xA6AC,0xA6CC,0x039C},
+  {0xA6AD,0xA6CD,0x039D},
+  {0xA6AE,0xA6CE,0x039E},
+  {0xA6AF,0xA6CF,0x039F},
+  {0xA6B0,0xA6D0,0x03A0}, /* A6B0 */
+  {0xA6B1,0xA6D1,0x03A1},
+  {0xA6B2,0xA6D2,0x03A3},
+  {0xA6B3,0xA6D3,0x03A4},
+  {0xA6B4,0xA6D4,0x03A5},
+  {0xA6B5,0xA6D5,0x03A6},
+  {0xA6B6,0xA6D6,0x03A7},
+  {0xA6B7,0xA6D7,0x03A8},
+  {0xA6B8,0xA6D8,0x03A9},
+  {0xA6B9,0xA6B9,0x003F},
+  {0xA6BA,0xA6BA,0x003F},
+  {0xA6BB,0xA6BB,0x003F},
+  {0xA6BC,0xA6BC,0x003F},
+  {0xA6BD,0xA6BD,0x003F},
+  {0xA6BE,0xA6BE,0x003F},
+  {0xA6BF,0xA6BF,0x003F},
+  {0xA6C0,0xA6C0,0x003F}, /* A6C0 */
+  {0xA6A1,0xA6C1,0x03B1},
+  {0xA6A2,0xA6C2,0x03B2},
+  {0xA6A3,0xA6C3,0x03B3},
+  {0xA6A4,0xA6C4,0x03B4},
+  {0xA6A5,0xA6C5,0x03B5},
+  {0xA6A6,0xA6C6,0x03B6},
+  {0xA6A7,0xA6C7,0x03B7},
+  {0xA6A8,0xA6C8,0x03B8},
+  {0xA6A9,0xA6C9,0x03B9},
+  {0xA6AA,0xA6CA,0x03BA},
+  {0xA6AB,0xA6CB,0x03BB},
+  {0xA6AC,0xA6CC,0x03BC},
+  {0xA6AD,0xA6CD,0x03BD},
+  {0xA6AE,0xA6CE,0x03BE},
+  {0xA6AF,0xA6CF,0x03BF},
+  {0xA6B0,0xA6D0,0x03C0}, /* A6D0 */
+  {0xA6B1,0xA6D1,0x03C1},
+  {0xA6B2,0xA6D2,0x03C3},
+  {0xA6B3,0xA6D3,0x03C4},
+  {0xA6B4,0xA6D4,0x03C5},
+  {0xA6B5,0xA6D5,0x03C6},
+  {0xA6B6,0xA6D6,0x03C7},
+  {0xA6B7,0xA6D7,0x03C8},
+  {0xA6B8,0xA6D8,0x03C9},
+  {0xA6D9,0xA6D9,0x003F},
+  {0xA6DA,0xA6DA,0x003F},
+  {0xA6DB,0xA6DB,0x003F},
+  {0xA6DC,0xA6DC,0x003F},
+  {0xA6DD,0xA6DD,0x003F},
+  {0xA6DE,0xA6DE,0x003F},
+  {0xA6DF,0xA6DF,0x003F},
+  {0xA6E0,0xA6E0,0xFE35}, /* A6E0 */
+  {0xA6E1,0xA6E1,0xFE36},
+  {0xA6E2,0xA6E2,0xFE39},
+  {0xA6E3,0xA6E3,0xFE3A},
+  {0xA6E4,0xA6E4,0xFE3F},
+  {0xA6E5,0xA6E5,0xFE40},
+  {0xA6E6,0xA6E6,0xFE3D},
+  {0xA6E7,0xA6E7,0xFE3E},
+  {0xA6E8,0xA6E8,0xFE41},
+  {0xA6E9,0xA6E9,0xFE42},
+  {0xA6EA,0xA6EA,0xFE43},
+  {0xA6EB,0xA6EB,0xFE44},
+  {0xA6EC,0xA6EC,0x003F},
+  {0xA6ED,0xA6ED,0x003F},
+  {0xA6EE,0xA6EE,0xFE3B},
+  {0xA6EF,0xA6EF,0xFE3C},
+  {0xA6F0,0xA6F0,0xFE37}, /* A6F0 */
+  {0xA6F1,0xA6F1,0xFE38},
+  {0xA6F2,0xA6F2,0xFE31},
+  {0xA6F3,0xA6F3,0x003F},
+  {0xA6F4,0xA6F4,0xFE33},
+  {0xA6F5,0xA6F5,0xFE34},
+  {0xA6F6,0xA6F6,0x003F},
+  {0xA6F7,0xA6F7,0x003F},
+  {0xA6F8,0xA6F8,0x003F},
+  {0xA6F9,0xA6F9,0x003F},
+  {0xA6FA,0xA6FA,0x003F},
+  {0xA6FB,0xA6FB,0x003F},
+  {0xA6FC,0xA6FC,0x003F},
+  {0xA6FD,0xA6FD,0x003F},
+  {0xA6FE,0xA6FE,0x003F},
+  {0xA6FF,0xA6FF,0xA6FF}
+};
+
+
+static MY_UNICASE_INFO cA7[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA740,0xA740,0x003F}, /* A740 */
+  {0xA741,0xA741,0x003F},
+  {0xA742,0xA742,0x003F},
+  {0xA743,0xA743,0x003F},
+  {0xA744,0xA744,0x003F},
+  {0xA745,0xA745,0x003F},
+  {0xA746,0xA746,0x003F},
+  {0xA747,0xA747,0x003F},
+  {0xA748,0xA748,0x003F},
+  {0xA749,0xA749,0x003F},
+  {0xA74A,0xA74A,0x003F},
+  {0xA74B,0xA74B,0x003F},
+  {0xA74C,0xA74C,0x003F},
+  {0xA74D,0xA74D,0x003F},
+  {0xA74E,0xA74E,0x003F},
+  {0xA74F,0xA74F,0x003F},
+  {0xA750,0xA750,0x003F}, /* A750 */
+  {0xA751,0xA751,0x003F},
+  {0xA752,0xA752,0x003F},
+  {0xA753,0xA753,0x003F},
+  {0xA754,0xA754,0x003F},
+  {0xA755,0xA755,0x003F},
+  {0xA756,0xA756,0x003F},
+  {0xA757,0xA757,0x003F},
+  {0xA758,0xA758,0x003F},
+  {0xA759,0xA759,0x003F},
+  {0xA75A,0xA75A,0x003F},
+  {0xA75B,0xA75B,0x003F},
+  {0xA75C,0xA75C,0x003F},
+  {0xA75D,0xA75D,0x003F},
+  {0xA75E,0xA75E,0x003F},
+  {0xA75F,0xA75F,0x003F},
+  {0xA760,0xA760,0x003F}, /* A760 */
+  {0xA761,0xA761,0x003F},
+  {0xA762,0xA762,0x003F},
+  {0xA763,0xA763,0x003F},
+  {0xA764,0xA764,0x003F},
+  {0xA765,0xA765,0x003F},
+  {0xA766,0xA766,0x003F},
+  {0xA767,0xA767,0x003F},
+  {0xA768,0xA768,0x003F},
+  {0xA769,0xA769,0x003F},
+  {0xA76A,0xA76A,0x003F},
+  {0xA76B,0xA76B,0x003F},
+  {0xA76C,0xA76C,0x003F},
+  {0xA76D,0xA76D,0x003F},
+  {0xA76E,0xA76E,0x003F},
+  {0xA76F,0xA76F,0x003F},
+  {0xA770,0xA770,0x003F}, /* A770 */
+  {0xA771,0xA771,0x003F},
+  {0xA772,0xA772,0x003F},
+  {0xA773,0xA773,0x003F},
+  {0xA774,0xA774,0x003F},
+  {0xA775,0xA775,0x003F},
+  {0xA776,0xA776,0x003F},
+  {0xA777,0xA777,0x003F},
+  {0xA778,0xA778,0x003F},
+  {0xA779,0xA779,0x003F},
+  {0xA77A,0xA77A,0x003F},
+  {0xA77B,0xA77B,0x003F},
+  {0xA77C,0xA77C,0x003F},
+  {0xA77D,0xA77D,0x003F},
+  {0xA77E,0xA77E,0x003F},
+  {0xA77F,0xA77F,0xA77F},
+  {0xA780,0xA780,0x003F}, /* A780 */
+  {0xA781,0xA781,0x003F},
+  {0xA782,0xA782,0x003F},
+  {0xA783,0xA783,0x003F},
+  {0xA784,0xA784,0x003F},
+  {0xA785,0xA785,0x003F},
+  {0xA786,0xA786,0x003F},
+  {0xA787,0xA787,0x003F},
+  {0xA788,0xA788,0x003F},
+  {0xA789,0xA789,0x003F},
+  {0xA78A,0xA78A,0x003F},
+  {0xA78B,0xA78B,0x003F},
+  {0xA78C,0xA78C,0x003F},
+  {0xA78D,0xA78D,0x003F},
+  {0xA78E,0xA78E,0x003F},
+  {0xA78F,0xA78F,0x003F},
+  {0xA790,0xA790,0x003F}, /* A790 */
+  {0xA791,0xA791,0x003F},
+  {0xA792,0xA792,0x003F},
+  {0xA793,0xA793,0x003F},
+  {0xA794,0xA794,0x003F},
+  {0xA795,0xA795,0x003F},
+  {0xA796,0xA796,0x003F},
+  {0xA797,0xA797,0x003F},
+  {0xA798,0xA798,0x003F},
+  {0xA799,0xA799,0x003F},
+  {0xA79A,0xA79A,0x003F},
+  {0xA79B,0xA79B,0x003F},
+  {0xA79C,0xA79C,0x003F},
+  {0xA79D,0xA79D,0x003F},
+  {0xA79E,0xA79E,0x003F},
+  {0xA79F,0xA79F,0x003F},
+  {0xA7A0,0xA7A0,0x003F}, /* A7A0 */
+  {0xA7A1,0xA7D1,0x0410},
+  {0xA7A2,0xA7D2,0x0411},
+  {0xA7A3,0xA7D3,0x0412},
+  {0xA7A4,0xA7D4,0x0413},
+  {0xA7A5,0xA7D5,0x0414},
+  {0xA7A6,0xA7D6,0x0415},
+  {0xA7A7,0xA7D7,0x0401},
+  {0xA7A8,0xA7D8,0x0416},
+  {0xA7A9,0xA7D9,0x0417},
+  {0xA7AA,0xA7DA,0x0418},
+  {0xA7AB,0xA7DB,0x0419},
+  {0xA7AC,0xA7DC,0x041A},
+  {0xA7AD,0xA7DD,0x041B},
+  {0xA7AE,0xA7DE,0x041C},
+  {0xA7AF,0xA7DF,0x041D},
+  {0xA7B0,0xA7E0,0x041E}, /* A7B0 */
+  {0xA7B1,0xA7E1,0x041F},
+  {0xA7B2,0xA7E2,0x0420},
+  {0xA7B3,0xA7E3,0x0421},
+  {0xA7B4,0xA7E4,0x0422},
+  {0xA7B5,0xA7E5,0x0423},
+  {0xA7B6,0xA7E6,0x0424},
+  {0xA7B7,0xA7E7,0x0425},
+  {0xA7B8,0xA7E8,0x0426},
+  {0xA7B9,0xA7E9,0x0427},
+  {0xA7BA,0xA7EA,0x0428},
+  {0xA7BB,0xA7EB,0x0429},
+  {0xA7BC,0xA7EC,0x042A},
+  {0xA7BD,0xA7ED,0x042B},
+  {0xA7BE,0xA7EE,0x042C},
+  {0xA7BF,0xA7EF,0x042D},
+  {0xA7C0,0xA7F0,0x042E}, /* A7C0 */
+  {0xA7C1,0xA7F1,0x042F},
+  {0xA7C2,0xA7C2,0x003F},
+  {0xA7C3,0xA7C3,0x003F},
+  {0xA7C4,0xA7C4,0x003F},
+  {0xA7C5,0xA7C5,0x003F},
+  {0xA7C6,0xA7C6,0x003F},
+  {0xA7C7,0xA7C7,0x003F},
+  {0xA7C8,0xA7C8,0x003F},
+  {0xA7C9,0xA7C9,0x003F},
+  {0xA7CA,0xA7CA,0x003F},
+  {0xA7CB,0xA7CB,0x003F},
+  {0xA7CC,0xA7CC,0x003F},
+  {0xA7CD,0xA7CD,0x003F},
+  {0xA7CE,0xA7CE,0x003F},
+  {0xA7CF,0xA7CF,0x003F},
+  {0xA7D0,0xA7D0,0x003F}, /* A7D0 */
+  {0xA7A1,0xA7D1,0x0430},
+  {0xA7A2,0xA7D2,0x0431},
+  {0xA7A3,0xA7D3,0x0432},
+  {0xA7A4,0xA7D4,0x0433},
+  {0xA7A5,0xA7D5,0x0434},
+  {0xA7A6,0xA7D6,0x0435},
+  {0xA7A7,0xA7D7,0x0451},
+  {0xA7A8,0xA7D8,0x0436},
+  {0xA7A9,0xA7D9,0x0437},
+  {0xA7AA,0xA7DA,0x0438},
+  {0xA7AB,0xA7DB,0x0439},
+  {0xA7AC,0xA7DC,0x043A},
+  {0xA7AD,0xA7DD,0x043B},
+  {0xA7AE,0xA7DE,0x043C},
+  {0xA7AF,0xA7DF,0x043D},
+  {0xA7B0,0xA7E0,0x043E}, /* A7E0 */
+  {0xA7B1,0xA7E1,0x043F},
+  {0xA7B2,0xA7E2,0x0440},
+  {0xA7B3,0xA7E3,0x0441},
+  {0xA7B4,0xA7E4,0x0442},
+  {0xA7B5,0xA7E5,0x0443},
+  {0xA7B6,0xA7E6,0x0444},
+  {0xA7B7,0xA7E7,0x0445},
+  {0xA7B8,0xA7E8,0x0446},
+  {0xA7B9,0xA7E9,0x0447},
+  {0xA7BA,0xA7EA,0x0448},
+  {0xA7BB,0xA7EB,0x0449},
+  {0xA7BC,0xA7EC,0x044A},
+  {0xA7BD,0xA7ED,0x044B},
+  {0xA7BE,0xA7EE,0x044C},
+  {0xA7BF,0xA7EF,0x044D},
+  {0xA7C0,0xA7F0,0x044E}, /* A7F0 */
+  {0xA7C1,0xA7F1,0x044F},
+  {0xA7F2,0xA7F2,0x003F},
+  {0xA7F3,0xA7F3,0x003F},
+  {0xA7F4,0xA7F4,0x003F},
+  {0xA7F5,0xA7F5,0x003F},
+  {0xA7F6,0xA7F6,0x003F},
+  {0xA7F7,0xA7F7,0x003F},
+  {0xA7F8,0xA7F8,0x003F},
+  {0xA7F9,0xA7F9,0x003F},
+  {0xA7FA,0xA7FA,0x003F},
+  {0xA7FB,0xA7FB,0x003F},
+  {0xA7FC,0xA7FC,0x003F},
+  {0xA7FD,0xA7FD,0x003F},
+  {0xA7FE,0xA7FE,0x003F},
+  {0xA7FF,0xA7FF,0xA7FF}
+};
+
+
+static MY_UNICASE_INFO *my_caseinfo_gbk[256]=
+{
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL,  cA2,  cA3, NULL, NULL,  cA6,  cA7, /* A */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+};
+
+
+
 static uchar NEAR sort_order_gbk[]=
 {
   '\000','\001','\002','\003','\004','\005','\006','\007',
@@ -10039,7 +10897,7 @@ CHARSET_INFO my_charset_gbk_chinese_ci=
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_gbk,    /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */
@@ -10071,7 +10929,7 @@ CHARSET_INFO my_charset_gbk_bin=
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_gbk,    /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */

=== modified file 'strings/ctype-mb.c'
--- a/strings/ctype-mb.c	2009-11-11 16:03:02 +0000
+++ b/strings/ctype-mb.c	2009-11-27 07:42:35 +0000
@@ -62,6 +62,17 @@ size_t my_casedn_str_mb(CHARSET_INFO * c
 }
 
 
+static inline MY_UNICASE_INFO*
+get_case_info_for_ch(CHARSET_INFO *cs, uint page, uint offs)
+{
+  MY_UNICASE_INFO *p;
+  return cs->caseinfo ? ((p= cs->caseinfo[page]) ? &p[offs] : NULL) :  NULL;
+}
+
+
+/*
+  For character sets which don't change octet length in case conversion.
+*/
 size_t my_caseup_mb(CHARSET_INFO * cs, char *src, size_t srclen,
                     char *dst __attribute__((unused)),
                     size_t dstlen __attribute__((unused)))
@@ -70,11 +81,23 @@ size_t my_caseup_mb(CHARSET_INFO * cs, c
   register char *srcend= src + srclen;
   register uchar *map= cs->to_upper;
 
+  DBUG_ASSERT(cs->caseup_multiply == 1);
   DBUG_ASSERT(src == dst && srclen == dstlen);
+  DBUG_ASSERT(cs->mbmaxlen == 2);
+  
   while (src < srcend)
   {
     if ((l=my_ismbchar(cs, src, srcend)))
-      src+= l;
+    {
+      MY_UNICASE_INFO *ch;
+      if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1])))
+      {
+        *src++= ch->toupper >> 8;
+        *src++= ch->toupper & 0xFF;
+      }
+      else
+        src+= l;
+    }
     else 
     {
       *src=(char) map[(uchar) *src];
@@ -93,11 +116,23 @@ size_t my_casedn_mb(CHARSET_INFO * cs, c
   register char *srcend= src + srclen;
   register uchar *map=cs->to_lower;
 
+  DBUG_ASSERT(cs->casedn_multiply == 1);
   DBUG_ASSERT(src == dst && srclen == dstlen);  
+  DBUG_ASSERT(cs->mbmaxlen == 2);
+  
   while (src < srcend)
   {
     if ((l= my_ismbchar(cs, src, srcend)))
-      src+= l;
+    {
+      MY_UNICASE_INFO *ch;
+      if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1])))
+      {
+        *src++= ch->tolower >> 8;
+        *src++= ch->tolower & 0xFF;
+      }
+      else
+        src+= l;
+    }
     else
     {
       *src= (char) map[(uchar)*src];
@@ -109,6 +144,75 @@ size_t my_casedn_mb(CHARSET_INFO * cs, c
 
 
 /*
+  Case folding functions for character set
+  where case conversion can change string octet length.
+  For example, in EUCKR,
+    _euckr 0xA9A5 == "LATIN LETTER DOTLESS I" (Turkish letter)
+  is upper-cased to to
+    _euckr 0x49 "LATIN CAPITAL LETTER I"  ('usual' letter I)
+  Length is reduced in this example from two bytes to one byte.
+*/
+static size_t
+my_casefold_mb_varlen(CHARSET_INFO *cs,
+                      char *src, size_t srclen,
+                      char *dst, size_t dstlen __attribute__((unused)),
+                      uchar *map,
+                      size_t is_upper)
+{
+  char *srcend= src + srclen, *dst0= dst;
+
+  DBUG_ASSERT(cs->mbmaxlen == 2);
+
+  while (src < srcend)
+  {
+    size_t mblen= my_ismbchar(cs, src, srcend);
+    if (mblen)
+    {
+      MY_UNICASE_INFO *ch;
+      if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1])))
+      {
+        int code= is_upper ? ch->toupper : ch->tolower;
+        src+= 2;
+        if (code > 0xFF)
+          *dst++= code >> 8;
+        *dst++= code & 0xFF;
+      }
+      else
+      {
+        *dst++= *src++;
+        *dst++= *src++;
+      }
+    }
+    else
+    {
+      *dst++= (char) map[(uchar) *src++];
+    }
+  }
+  return (size_t) (dst - dst0);
+}
+
+
+size_t
+my_casedn_mb_varlen(CHARSET_INFO * cs, char *src, size_t srclen,
+                    char *dst, size_t dstlen)
+{
+  DBUG_ASSERT(dstlen >= srclen * cs->casedn_multiply); 
+  DBUG_ASSERT(src != dst || cs->casedn_multiply == 1);
+  return my_casefold_mb_varlen(cs, src, srclen, dst, dstlen, cs->to_lower, 0);
+}
+
+
+size_t
+my_caseup_mb_varlen(CHARSET_INFO * cs, char *src, size_t srclen,
+                    char *dst, size_t dstlen)
+{
+  DBUG_ASSERT(dstlen >= srclen * cs->caseup_multiply);
+  DBUG_ASSERT(src != dst || cs->caseup_multiply == 1);
+  return my_casefold_mb_varlen(cs, src, srclen, dst, dstlen, cs->to_upper, 1);
+}
+
+
+/*
   my_strcasecmp_mb() returns 0 if strings are equal, non-zero otherwise.
  */
 

=== modified file 'strings/ctype-sjis.c'
--- a/strings/ctype-sjis.c	2009-10-01 07:22:31 +0000
+++ b/strings/ctype-sjis.c	2009-11-27 07:42:35 +0000
@@ -197,6 +197,881 @@ static uint mbcharlen_sjis(CHARSET_INFO 
 #define sjiscode(c,d)	((((uint) (uchar)(c)) << 8) | (uint) (uchar) (d))
 
 
+static MY_UNICASE_INFO c81[256]=
+{
+  /* 8100-810F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8110-811F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8120-812F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8130-813F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  
+  {0x8140,0x8140,0x3000}, /* 8140-814F */
+  {0x8141,0x8141,0x3001},
+  {0x8142,0x8142,0x3002},
+  {0x8143,0x8143,0xFF0C},
+  {0x8144,0x8144,0xFF0E},
+  {0x8145,0x8145,0x30FB},
+  {0x8146,0x8146,0xFF1A},
+  {0x8147,0x8147,0xFF1B},
+  {0x8148,0x8148,0xFF1F},
+  {0x8149,0x8149,0xFF01},
+  {0x814A,0x814A,0x309B},
+  {0x814B,0x814B,0x309C},
+  {0x814C,0x814C,0x00B4},
+  {0x814D,0x814D,0xFF40},
+  {0x814E,0x814E,0x00A8},
+  {0x814F,0x814F,0xFF3E},
+  {0x8150,0x8150,0xFFE3}, /* 8150-815F */
+  {0x8151,0x8151,0xFF3F},
+  {0x8152,0x8152,0x30FD},
+  {0x8153,0x8153,0x30FE},
+  {0x8154,0x8154,0x309D},
+  {0x8155,0x8155,0x309E},
+  {0x8156,0x8156,0x3003},
+  {0x8157,0x8157,0x4EDD},
+  {0x8158,0x8158,0x3005},
+  {0x8159,0x8159,0x3006},
+  {0x815A,0x815A,0x3007},
+  {0x815B,0x815B,0x30FC},
+  {0x815C,0x815C,0x2015},
+  {0x815D,0x815D,0x2010},
+  {0x815E,0x815E,0xFF0F},
+  {0x815F,0x815F,0xFF3C},
+  {0x8160,0x8160,0xFF5E}, /* 8160-816F */
+  {0x8161,0x8161,0x2225},
+  {0x8162,0x8162,0xFF5C},
+  {0x8163,0x8163,0x2026},
+  {0x8164,0x8164,0x2025},
+  {0x8165,0x8165,0x2018},
+  {0x8166,0x8166,0x2019},
+  {0x8167,0x8167,0x201C},
+  {0x8168,0x8168,0x201D},
+  {0x8169,0x8169,0xFF08},
+  {0x816A,0x816A,0xFF09},
+  {0x816B,0x816B,0x3014},
+  {0x816C,0x816C,0x3015},
+  {0x816D,0x816D,0xFF3B},
+  {0x816E,0x816E,0xFF3D},
+  {0x816F,0x816F,0xFF5B},
+  {0x8170,0x8170,0xFF5D}, /* 8170-817F */
+  {0x8171,0x8171,0x3008},
+  {0x8172,0x8172,0x3009},
+  {0x8173,0x8173,0x300A},
+  {0x8174,0x8174,0x300B},
+  {0x8175,0x8175,0x300C},
+  {0x8176,0x8176,0x300D},
+  {0x8177,0x8177,0x300E},
+  {0x8178,0x8178,0x300F},
+  {0x8179,0x8179,0x3010},
+  {0x817A,0x817A,0x3011},
+  {0x817B,0x817B,0xFF0B},
+  {0x817C,0x817C,0xFF0D},
+  {0x817D,0x817D,0x00B1},
+  {0x817E,0x817E,0x00D7},
+  {0,0,0},
+  {0x8180,0x8180,0x00F7}, /* 8180-818F */
+  {0x8181,0x8181,0xFF1D},
+  {0x8182,0x8182,0x2260},
+  {0x8183,0x8183,0xFF1C},
+  {0x8184,0x8184,0xFF1E},
+  {0x8185,0x8185,0x2266},
+  {0x8186,0x8186,0x2267},
+  {0x8187,0x8187,0x221E},
+  {0x8188,0x8188,0x2234},
+  {0x8189,0x8189,0x2642},
+  {0x818A,0x818A,0x2640},
+  {0x818B,0x818B,0x00B0},
+  {0x818C,0x818C,0x2032},
+  {0x818D,0x818D,0x2033},
+  {0x818E,0x818E,0x2103},
+  {0x818F,0x818F,0xFFE5},
+  {0x8190,0x8190,0xFF04}, /* 8190-819F*/
+  {0x8191,0x8191,0xFFE0},
+  {0x8192,0x8192,0xFFE1},
+  {0x8193,0x8193,0xFF05},
+  {0x8194,0x8194,0xFF03},
+  {0x8195,0x8195,0xFF06},
+  {0x8196,0x8196,0xFF0A},
+  {0x8197,0x8197,0xFF20},
+  {0x8198,0x8198,0x00A7},
+  {0x8199,0x8199,0x2606},
+  {0x819A,0x819A,0x2605},
+  {0x819B,0x819B,0x25CB},
+  {0x819C,0x819C,0x25CF},
+  {0x819D,0x819D,0x25CE},
+  {0x819E,0x819E,0x25C7},
+  {0x819F,0x819F,0x25C6},
+  {0x81A0,0x81A0,0x25A1}, /* 81A0-81AF */
+  {0x81A1,0x81A1,0x25A0},
+  {0x81A2,0x81A2,0x25B3},
+  {0x81A3,0x81A3,0x25B2},
+  {0x81A4,0x81A4,0x25BD},
+  {0x81A5,0x81A5,0x25BC},
+  {0x81A6,0x81A6,0x203B},
+  {0x81A7,0x81A7,0x3012},
+  {0x81A8,0x81A8,0x2192},
+  {0x81A9,0x81A9,0x2190},
+  {0x81AA,0x81AA,0x2191},
+  {0x81AB,0x81AB,0x2193},
+  {0x81AC,0x81AC,0x3013},
+  {0x81AD,0x81AD,0x003F},
+  {0x81AE,0x81AE,0x003F},
+  {0x81AF,0x81AF,0x003F},
+  {0x81B0,0x81B0,0x003F}, /* 81B0-81BF */
+  {0x81B1,0x81B1,0x003F},
+  {0x81B2,0x81B2,0x003F},
+  {0x81B3,0x81B3,0x003F},
+  {0x81B4,0x81B4,0x003F},
+  {0x81B5,0x81B5,0x003F},
+  {0x81B6,0x81B6,0x003F},
+  {0x81B7,0x81B7,0x003F},
+  {0x81B8,0x81B8,0x2208},
+  {0x81B9,0x81B9,0x220B},
+  {0x81BA,0x81BA,0x2286},
+  {0x81BB,0x81BB,0x2287},
+  {0x81BC,0x81BC,0x2282},
+  {0x81BD,0x81BD,0x2283},
+  {0x81BE,0x81BE,0x222A},
+  {0x81BF,0x81BF,0x2229},
+  {0x81C0,0x81C0,0x003F}, /* 81C0-81CF */
+  {0x81C1,0x81C1,0x003F},
+  {0x81C2,0x81C2,0x003F},
+  {0x81C3,0x81C3,0x003F},
+  {0x81C4,0x81C4,0x003F},
+  {0x81C5,0x81C5,0x003F},
+  {0x81C6,0x81C6,0x003F},
+  {0x81C7,0x81C7,0x003F},
+  {0x81C8,0x81C8,0x2227},
+  {0x81C9,0x81C9,0x2228},
+  {0x81CA,0x81CA,0xFFE2},
+  {0x81CB,0x81CB,0x21D2},
+  {0x81CC,0x81CC,0x21D4},
+  {0x81CD,0x81CD,0x2200},
+  {0x81CE,0x81CE,0x2203},
+  {0x81CF,0x81CF,0x003F},
+  {0x81D0,0x81D0,0x003F}, /* 81D0-81DF */
+  {0x81D1,0x81D1,0x003F},
+  {0x81D2,0x81D2,0x003F},
+  {0x81D3,0x81D3,0x003F},
+  {0x81D4,0x81D4,0x003F},
+  {0x81D5,0x81D5,0x003F},
+  {0x81D6,0x81D6,0x003F},
+  {0x81D7,0x81D7,0x003F},
+  {0x81D8,0x81D8,0x003F},
+  {0x81D9,0x81D9,0x003F},
+  {0x81DA,0x81DA,0x2220},
+  {0x81DB,0x81DB,0x22A5},
+  {0x81DC,0x81DC,0x2312},
+  {0x81DD,0x81DD,0x2202},
+  {0x81DE,0x81DE,0x2207},
+  {0x81DF,0x81DF,0x2261},
+  {0x81E0,0x81E0,0x2252}, /* 81E0-81EF */
+  {0x81E1,0x81E1,0x226A},
+  {0x81E2,0x81E2,0x226B},
+  {0x81E3,0x81E3,0x221A},
+  {0x81E4,0x81E4,0x223D},
+  {0x81E5,0x81E5,0x221D},
+  {0x81E6,0x81E6,0x2235},
+  {0x81E7,0x81E7,0x222B},
+  {0x81E8,0x81E8,0x222C},
+  {0x81E9,0x81E9,0x003F},
+  {0x81EA,0x81EA,0x003F},
+  {0x81EB,0x81EB,0x003F},
+  {0x81EC,0x81EC,0x003F},
+  {0x81ED,0x81ED,0x003F},
+  {0x81EE,0x81EE,0x003F},
+  {0x81EF,0x81EF,0x003F},
+  {0x81F0,0x81F0,0x212B}, /* 81F0-81FF */
+  {0x81F1,0x81F1,0x2030},
+  {0x81F2,0x81F2,0x266F},
+  {0x81F3,0x81F3,0x266D},
+  {0x81F4,0x81F4,0x266A},
+  {0x81F5,0x81F5,0x2020},
+  {0x81F6,0x81F6,0x2021},
+  {0x81F7,0x81F7,0x00B6},
+  {0x81F8,0x81F8,0x003F},
+  {0x81F9,0x81F9,0x003F},
+  {0x81FA,0x81FA,0x003F},
+  {0x81FB,0x81FB,0x003F},
+  {0x81FC,0x81FC,0x25EF},
+  {0,0,0},
+  {0,0,0},
+  {0,0,0},
+};
+
+
+static MY_UNICASE_INFO c82[256]=
+{
+  /* 8200-820F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8210-821F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8220-822F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8230-823F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+
+  {0x8240,0x8240,0x003F}, /* 8240-824F */
+  {0x8241,0x8241,0x003F},
+  {0x8242,0x8242,0x003F},
+  {0x8243,0x8243,0x003F},
+  {0x8244,0x8244,0x003F},
+  {0x8245,0x8245,0x003F},
+  {0x8246,0x8246,0x003F},
+  {0x8247,0x8247,0x003F},
+  {0x8248,0x8248,0x003F},
+  {0x8249,0x8249,0x003F},
+  {0x824A,0x824A,0x003F},
+  {0x824B,0x824B,0x003F},
+  {0x824C,0x824C,0x003F},
+  {0x824D,0x824D,0x003F},
+  {0x824E,0x824E,0x003F},
+  {0x824F,0x824F,0xFF10},
+  {0x8250,0x8250,0xFF11}, /* 8250-825F */
+  {0x8251,0x8251,0xFF12},
+  {0x8252,0x8252,0xFF13},
+  {0x8253,0x8253,0xFF14},
+  {0x8254,0x8254,0xFF15},
+  {0x8255,0x8255,0xFF16},
+  {0x8256,0x8256,0xFF17},
+  {0x8257,0x8257,0xFF18},
+  {0x8258,0x8258,0xFF19},
+  {0x8259,0x8259,0x003F},
+  {0x825A,0x825A,0x003F},
+  {0x825B,0x825B,0x003F},
+  {0x825C,0x825C,0x003F},
+  {0x825D,0x825D,0x003F},
+  {0x825E,0x825E,0x003F},
+  {0x825F,0x825F,0x003F},
+  {0x8260,0x8281,0xFF21}, /* 8260-826F */
+  {0x8261,0x8282,0xFF22},
+  {0x8262,0x8283,0xFF23},
+  {0x8263,0x8284,0xFF24},
+  {0x8264,0x8285,0xFF25},
+  {0x8265,0x8286,0xFF26},
+  {0x8266,0x8287,0xFF27},
+  {0x8267,0x8288,0xFF28},
+  {0x8268,0x8289,0xFF29},
+  {0x8269,0x828A,0xFF2A},
+  {0x826A,0x828B,0xFF2B},
+  {0x826B,0x828C,0xFF2C},
+  {0x826C,0x828D,0xFF2D},
+  {0x826D,0x828E,0xFF2E},
+  {0x826E,0x828F,0xFF2F},
+  {0x826F,0x8290,0xFF30},
+  {0x8270,0x8291,0xFF31}, /* 8270-827F */
+  {0x8271,0x8292,0xFF32},
+  {0x8272,0x8293,0xFF33},
+  {0x8273,0x8294,0xFF34},
+  {0x8274,0x8295,0xFF35},
+  {0x8275,0x8296,0xFF36},
+  {0x8276,0x8297,0xFF37},
+  {0x8277,0x8298,0xFF38},
+  {0x8278,0x8299,0xFF39},
+  {0x8279,0x829A,0xFF3A},
+  {0x827A,0x827A,0x003F},
+  {0x827B,0x827B,0x003F},
+  {0x827C,0x827C,0x003F},
+  {0x827D,0x827D,0x003F},
+  {0x827E,0x827E,0x003F},
+  {0,0,0},
+  {0x8280,0x8280,0x003F}, /* 8280-828F */
+  {0x8260,0x8281,0xFF41},
+  {0x8261,0x8282,0xFF42},
+  {0x8262,0x8283,0xFF43},
+  {0x8263,0x8284,0xFF44},
+  {0x8264,0x8285,0xFF45},
+  {0x8265,0x8286,0xFF46},
+  {0x8266,0x8287,0xFF47},
+  {0x8267,0x8288,0xFF48},
+  {0x8268,0x8289,0xFF49},
+  {0x8269,0x828A,0xFF4A},
+  {0x826A,0x828B,0xFF4B},
+  {0x826B,0x828C,0xFF4C},
+  {0x826C,0x828D,0xFF4D},
+  {0x826D,0x828E,0xFF4E},
+  {0x826E,0x828F,0xFF4F},
+  {0x826F,0x8290,0xFF50}, /* 8290-829F */
+  {0x8270,0x8291,0xFF51},
+  {0x8271,0x8292,0xFF52},
+  {0x8272,0x8293,0xFF53},
+  {0x8273,0x8294,0xFF54},
+  {0x8274,0x8295,0xFF55},
+  {0x8275,0x8296,0xFF56},
+  {0x8276,0x8297,0xFF57},
+  {0x8277,0x8298,0xFF58},
+  {0x8278,0x8299,0xFF59},
+  {0x8279,0x829A,0xFF5A},
+  {0x829B,0x829B,0x003F},
+  {0x829C,0x829C,0x003F},
+  {0x829D,0x829D,0x003F},
+  {0x829E,0x829E,0x003F},
+  {0x829F,0x829F,0x3041},
+  {0x82A0,0x82A0,0x3042}, /* 82A0-82AF */
+  {0x82A1,0x82A1,0x3043},
+  {0x82A2,0x82A2,0x3044},
+  {0x82A3,0x82A3,0x3045},
+  {0x82A4,0x82A4,0x3046},
+  {0x82A5,0x82A5,0x3047},
+  {0x82A6,0x82A6,0x3048},
+  {0x82A7,0x82A7,0x3049},
+  {0x82A8,0x82A8,0x304A},
+  {0x82A9,0x82A9,0x304B},
+  {0x82AA,0x82AA,0x304C},
+  {0x82AB,0x82AB,0x304D},
+  {0x82AC,0x82AC,0x304E},
+  {0x82AD,0x82AD,0x304F},
+  {0x82AE,0x82AE,0x3050},
+  {0x82AF,0x82AF,0x3051},
+  {0x82B0,0x82B0,0x3052}, /* 82B0-82BF */
+  {0x82B1,0x82B1,0x3053},
+  {0x82B2,0x82B2,0x3054},
+  {0x82B3,0x82B3,0x3055},
+  {0x82B4,0x82B4,0x3056},
+  {0x82B5,0x82B5,0x3057},
+  {0x82B6,0x82B6,0x3058},
+  {0x82B7,0x82B7,0x3059},
+  {0x82B8,0x82B8,0x305A},
+  {0x82B9,0x82B9,0x305B},
+  {0x82BA,0x82BA,0x305C},
+  {0x82BB,0x82BB,0x305D},
+  {0x82BC,0x82BC,0x305E},
+  {0x82BD,0x82BD,0x305F},
+  {0x82BE,0x82BE,0x3060},
+  {0x82BF,0x82BF,0x3061},
+  {0x82C0,0x82C0,0x3062}, /* 82C0-82CF */
+  {0x82C1,0x82C1,0x3063},
+  {0x82C2,0x82C2,0x3064},
+  {0x82C3,0x82C3,0x3065},
+  {0x82C4,0x82C4,0x3066},
+  {0x82C5,0x82C5,0x3067},
+  {0x82C6,0x82C6,0x3068},
+  {0x82C7,0x82C7,0x3069},
+  {0x82C8,0x82C8,0x306A},
+  {0x82C9,0x82C9,0x306B},
+  {0x82CA,0x82CA,0x306C},
+  {0x82CB,0x82CB,0x306D},
+  {0x82CC,0x82CC,0x306E},
+  {0x82CD,0x82CD,0x306F},
+  {0x82CE,0x82CE,0x3070},
+  {0x82CF,0x82CF,0x3071},
+  {0x82D0,0x82D0,0x3072}, /* 82D0-82DF */
+  {0x82D1,0x82D1,0x3073},
+  {0x82D2,0x82D2,0x3074},
+  {0x82D3,0x82D3,0x3075},
+  {0x82D4,0x82D4,0x3076},
+  {0x82D5,0x82D5,0x3077},
+  {0x82D6,0x82D6,0x3078},
+  {0x82D7,0x82D7,0x3079},
+  {0x82D8,0x82D8,0x307A},
+  {0x82D9,0x82D9,0x307B},
+  {0x82DA,0x82DA,0x307C},
+  {0x82DB,0x82DB,0x307D},
+  {0x82DC,0x82DC,0x307E},
+  {0x82DD,0x82DD,0x307F},
+  {0x82DE,0x82DE,0x3080},
+  {0x82DF,0x82DF,0x3081},
+  {0x82E0,0x82E0,0x3082}, /* 82E0-82EF */
+  {0x82E1,0x82E1,0x3083},
+  {0x82E2,0x82E2,0x3084},
+  {0x82E3,0x82E3,0x3085},
+  {0x82E4,0x82E4,0x3086},
+  {0x82E5,0x82E5,0x3087},
+  {0x82E6,0x82E6,0x3088},
+  {0x82E7,0x82E7,0x3089},
+  {0x82E8,0x82E8,0x308A},
+  {0x82E9,0x82E9,0x308B},
+  {0x82EA,0x82EA,0x308C},
+  {0x82EB,0x82EB,0x308D},
+  {0x82EC,0x82EC,0x308E},
+  {0x82ED,0x82ED,0x308F},
+  {0x82EE,0x82EE,0x3090},
+  {0x82EF,0x82EF,0x3091},
+  {0x82F0,0x82F0,0x3092}, /* 82F0-82FF */
+  {0x82F1,0x82F1,0x3093},
+  {0x82F2,0x82F2,0x003F},
+  {0x82F3,0x82F3,0x003F},
+  {0x82F4,0x82F4,0x003F},
+  {0x82F5,0x82F5,0x003F},
+  {0x82F6,0x82F6,0x003F},
+  {0x82F7,0x82F7,0x003F},
+  {0x82F8,0x82F8,0x003F},
+  {0x82F9,0x82F9,0x003F},
+  {0x82FA,0x82FA,0x003F},
+  {0x82FB,0x82FB,0x003F},
+  {0x82FC,0x82FC,0x003F},
+  {0,0,0}
+};
+
+
+static MY_UNICASE_INFO c83[256]=
+{
+  /* 8300-830F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8310-831F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8320-832F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8330-833F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+
+  {0x8340,0x8340,0x30A1}, /* 8340 */
+  {0x8341,0x8341,0x30A2},
+  {0x8342,0x8342,0x30A3},
+  {0x8343,0x8343,0x30A4},
+  {0x8344,0x8344,0x30A5},
+  {0x8345,0x8345,0x30A6},
+  {0x8346,0x8346,0x30A7},
+  {0x8347,0x8347,0x30A8},
+  {0x8348,0x8348,0x30A9},
+  {0x8349,0x8349,0x30AA},
+  {0x834A,0x834A,0x30AB},
+  {0x834B,0x834B,0x30AC},
+  {0x834C,0x834C,0x30AD},
+  {0x834D,0x834D,0x30AE},
+  {0x834E,0x834E,0x30AF},
+  {0x834F,0x834F,0x30B0},
+  {0x8350,0x8350,0x30B1}, /* 8350 */
+  {0x8351,0x8351,0x30B2},
+  {0x8352,0x8352,0x30B3},
+  {0x8353,0x8353,0x30B4},
+  {0x8354,0x8354,0x30B5},
+  {0x8355,0x8355,0x30B6},
+  {0x8356,0x8356,0x30B7},
+  {0x8357,0x8357,0x30B8},
+  {0x8358,0x8358,0x30B9},
+  {0x8359,0x8359,0x30BA},
+  {0x835A,0x835A,0x30BB},
+  {0x835B,0x835B,0x30BC},
+  {0x835C,0x835C,0x30BD},
+  {0x835D,0x835D,0x30BE},
+  {0x835E,0x835E,0x30BF},
+  {0x835F,0x835F,0x30C0},
+  {0x8360,0x8360,0x30C1}, /* 8360 */
+  {0x8361,0x8361,0x30C2},
+  {0x8362,0x8362,0x30C3},
+  {0x8363,0x8363,0x30C4},
+  {0x8364,0x8364,0x30C5},
+  {0x8365,0x8365,0x30C6},
+  {0x8366,0x8366,0x30C7},
+  {0x8367,0x8367,0x30C8},
+  {0x8368,0x8368,0x30C9},
+  {0x8369,0x8369,0x30CA},
+  {0x836A,0x836A,0x30CB},
+  {0x836B,0x836B,0x30CC},
+  {0x836C,0x836C,0x30CD},
+  {0x836D,0x836D,0x30CE},
+  {0x836E,0x836E,0x30CF},
+  {0x836F,0x836F,0x30D0},
+  {0x8370,0x8370,0x30D1}, /* 8370 */
+  {0x8371,0x8371,0x30D2},
+  {0x8372,0x8372,0x30D3},
+  {0x8373,0x8373,0x30D4},
+  {0x8374,0x8374,0x30D5},
+  {0x8375,0x8375,0x30D6},
+  {0x8376,0x8376,0x30D7},
+  {0x8377,0x8377,0x30D8},
+  {0x8378,0x8378,0x30D9},
+  {0x8379,0x8379,0x30DA},
+  {0x837A,0x837A,0x30DB},
+  {0x837B,0x837B,0x30DC},
+  {0x837C,0x837C,0x30DD},
+  {0x837D,0x837D,0x30DE},
+  {0x837E,0x837E,0x30DF},
+  {0,0,0},
+  {0x8380,0x8380,0x30E0}, /* 8380 */
+  {0x8381,0x8381,0x30E1},
+  {0x8382,0x8382,0x30E2},
+  {0x8383,0x8383,0x30E3},
+  {0x8384,0x8384,0x30E4},
+  {0x8385,0x8385,0x30E5},
+  {0x8386,0x8386,0x30E6},
+  {0x8387,0x8387,0x30E7},
+  {0x8388,0x8388,0x30E8},
+  {0x8389,0x8389,0x30E9},
+  {0x838A,0x838A,0x30EA},
+  {0x838B,0x838B,0x30EB},
+  {0x838C,0x838C,0x30EC},
+  {0x838D,0x838D,0x30ED},
+  {0x838E,0x838E,0x30EE},
+  {0x838F,0x838F,0x30EF},
+  {0x8390,0x8390,0x30F0}, /* 8390 */
+  {0x8391,0x8391,0x30F1},
+  {0x8392,0x8392,0x30F2},
+  {0x8393,0x8393,0x30F3},
+  {0x8394,0x8394,0x30F4},
+  {0x8395,0x8395,0x30F5},
+  {0x8396,0x8396,0x30F6},
+  {0x8397,0x8397,0x003F},
+  {0x8398,0x8398,0x003F},
+  {0x8399,0x8399,0x003F},
+  {0x839A,0x839A,0x003F},
+  {0x839B,0x839B,0x003F},
+  {0x839C,0x839C,0x003F},
+  {0x839D,0x839D,0x003F},
+  {0x839E,0x839E,0x003F},
+  {0x839F,0x83BF,0x0391},
+  {0x83A0,0x83C0,0x0392}, /* 83A0 */
+  {0x83A1,0x83C1,0x0393},
+  {0x83A2,0x83C2,0x0394},
+  {0x83A3,0x83C3,0x0395},
+  {0x83A4,0x83C4,0x0396},
+  {0x83A5,0x83C5,0x0397},
+  {0x83A6,0x83C6,0x0398},
+  {0x83A7,0x83C7,0x0399},
+  {0x83A8,0x83C8,0x039A},
+  {0x83A9,0x83C9,0x039B},
+  {0x83AA,0x83CA,0x039C},
+  {0x83AB,0x83CB,0x039D},
+  {0x83AC,0x83CC,0x039E},
+  {0x83AD,0x83CD,0x039F},
+  {0x83AE,0x83CE,0x03A0},
+  {0x83AF,0x83CF,0x03A1},
+  {0x83B0,0x83D0,0x03A3}, /* 83B0 */
+  {0x83B1,0x83D1,0x03A4},
+  {0x83B2,0x83D2,0x03A5},
+  {0x83B3,0x83D3,0x03A6},
+  {0x83B4,0x83D4,0x03A7},
+  {0x83B5,0x83D5,0x03A8},
+  {0x83B6,0x83D6,0x03A9},
+  {0x83B7,0x83B7,0x003F},
+  {0x83B8,0x83B8,0x003F},
+  {0x83B9,0x83B9,0x003F},
+  {0x83BA,0x83BA,0x003F},
+  {0x83BB,0x83BB,0x003F},
+  {0x83BC,0x83BC,0x003F},
+  {0x83BD,0x83BD,0x003F},
+  {0x83BE,0x83BE,0x003F},
+  {0x839F,0x83BF,0x03B1},
+  {0x83A0,0x83C0,0x03B2}, /* 83C0 */
+  {0x83A1,0x83C1,0x03B3},
+  {0x83A2,0x83C2,0x03B4},
+  {0x83A3,0x83C3,0x03B5},
+  {0x83A4,0x83C4,0x03B6},
+  {0x83A5,0x83C5,0x03B7},
+  {0x83A6,0x83C6,0x03B8},
+  {0x83A7,0x83C7,0x03B9},
+  {0x83A8,0x83C8,0x03BA},
+  {0x83A9,0x83C9,0x03BB},
+  {0x83AA,0x83CA,0x03BC},
+  {0x83AB,0x83CB,0x03BD},
+  {0x83AC,0x83CC,0x03BE},
+  {0x83AD,0x83CD,0x03BF},
+  {0x83AE,0x83CE,0x03C0},
+  {0x83AF,0x83CF,0x03C1},
+  {0x83B0,0x83D0,0x03C3}, /* 83D0 */
+  {0x83B1,0x83D1,0x03C4},
+  {0x83B2,0x83D2,0x03C5},
+  {0x83B3,0x83D3,0x03C6},
+  {0x83B4,0x83D4,0x03C7},
+  {0x83B5,0x83D5,0x03C8},
+  {0x83B6,0x83D6,0x03C9},
+  {0x83D7,0x83D7,0x003F},
+  {0x83D8,0x83D8,0x003F},
+  {0x83D9,0x83D9,0x003F},
+  {0x83DA,0x83DA,0x003F},
+  {0x83DB,0x83DB,0x003F},
+  {0x83DC,0x83DC,0x003F},
+  {0x83DD,0x83DD,0x003F},
+  {0x83DE,0x83DE,0x003F},
+  {0x83DF,0x83DF,0x003F},
+  {0x83E0,0x83E0,0x003F}, /* 83E0 */
+  {0x83E1,0x83E1,0x003F},
+  {0x83E2,0x83E2,0x003F},
+  {0x83E3,0x83E3,0x003F},
+  {0x83E4,0x83E4,0x003F},
+  {0x83E5,0x83E5,0x003F},
+  {0x83E6,0x83E6,0x003F},
+  {0x83E7,0x83E7,0x003F},
+  {0x83E8,0x83E8,0x003F},
+  {0x83E9,0x83E9,0x003F},
+  {0x83EA,0x83EA,0x003F},
+  {0x83EB,0x83EB,0x003F},
+  {0x83EC,0x83EC,0x003F},
+  {0x83ED,0x83ED,0x003F},
+  {0x83EE,0x83EE,0x003F},
+  {0x83EF,0x83EF,0x003F},
+  {0x83F0,0x83F0,0x003F}, /* 83F0 */
+  {0x83F1,0x83F1,0x003F},
+  {0x83F2,0x83F2,0x003F},
+  {0x83F3,0x83F3,0x003F},
+  {0x83F4,0x83F4,0x003F},
+  {0x83F5,0x83F5,0x003F},
+  {0x83F6,0x83F6,0x003F},
+  {0x83F7,0x83F7,0x003F},
+  {0x83F8,0x83F8,0x003F},
+  {0x83F9,0x83F9,0x003F},
+  {0x83FA,0x83FA,0x003F},
+  {0x83FB,0x83FB,0x003F},
+  {0x83FC,0x83FC,0x003F},
+  {0,0,0},
+  {0,0,0},
+  {0,0,0}
+};
+
+
+static MY_UNICASE_INFO c84[256]=
+{
+  /* 8400-840F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8410-841F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8420-842F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  /* 8430-843F */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+
+  {0x8440,0x8470,0x0410}, /* 8440 */
+  {0x8441,0x8471,0x0411},
+  {0x8442,0x8472,0x0412},
+  {0x8443,0x8473,0x0413},
+  {0x8444,0x8474,0x0414},
+  {0x8445,0x8475,0x0415},
+  {0x8446,0x8476,0x0401},
+  {0x8447,0x8477,0x0416},
+  {0x8448,0x8478,0x0417},
+  {0x8449,0x8479,0x0418},
+  {0x844A,0x847A,0x0419},
+  {0x844B,0x847B,0x041A},
+  {0x844C,0x847C,0x041B},
+  {0x844D,0x847D,0x041C},
+  {0x844E,0x847E,0x041D},
+  {0x844F,0x8480,0x041E},
+  {0x8450,0x8481,0x041F}, /* 8450 */
+  {0x8451,0x8482,0x0420},
+  {0x8452,0x8483,0x0421},
+  {0x8453,0x8484,0x0422},
+  {0x8454,0x8485,0x0423},
+  {0x8455,0x8486,0x0424},
+  {0x8456,0x8487,0x0425},
+  {0x8457,0x8488,0x0426},
+  {0x8458,0x8489,0x0427},
+  {0x8459,0x848A,0x0428},
+  {0x845A,0x848B,0x0429},
+  {0x845B,0x848C,0x042A},
+  {0x845C,0x848D,0x042B},
+  {0x845D,0x848E,0x042C},
+  {0x845E,0x848F,0x042D},
+  {0x845F,0x8490,0x042E},
+  {0x8460,0x8491,0x042F}, /* 8460 */
+  {0x8461,0x8461,0x003F},
+  {0x8462,0x8462,0x003F},
+  {0x8463,0x8463,0x003F},
+  {0x8464,0x8464,0x003F},
+  {0x8465,0x8465,0x003F},
+  {0x8466,0x8466,0x003F},
+  {0x8467,0x8467,0x003F},
+  {0x8468,0x8468,0x003F},
+  {0x8469,0x8469,0x003F},
+  {0x846A,0x846A,0x003F},
+  {0x846B,0x846B,0x003F},
+  {0x846C,0x846C,0x003F},
+  {0x846D,0x846D,0x003F},
+  {0x846E,0x846E,0x003F},
+  {0x846F,0x846F,0x003F},
+  {0x8440,0x8470,0x0430}, /* 8470 */
+  {0x8441,0x8471,0x0431},
+  {0x8442,0x8472,0x0432},
+  {0x8443,0x8473,0x0433},
+  {0x8444,0x8474,0x0434},
+  {0x8445,0x8475,0x0435},
+  {0x8446,0x8476,0x0451},
+  {0x8447,0x8477,0x0436},
+  {0x8448,0x8478,0x0437},
+  {0x8449,0x8479,0x0438},
+  {0x844A,0x847A,0x0439},
+  {0x844B,0x847B,0x043A},
+  {0x844C,0x847C,0x043B},
+  {0x844D,0x847D,0x043C},
+  {0x844E,0x847E,0x043D},
+  {0,0,0},
+  {0x844F,0x8480,0x043E}, /* 8480 */
+  {0x8450,0x8481,0x043F},
+  {0x8451,0x8482,0x0440},
+  {0x8452,0x8483,0x0441},
+  {0x8453,0x8484,0x0442},
+  {0x8454,0x8485,0x0443},
+  {0x8455,0x8486,0x0444},
+  {0x8456,0x8487,0x0445},
+  {0x8457,0x8488,0x0446},
+  {0x8458,0x8489,0x0447},
+  {0x8459,0x848A,0x0448},
+  {0x845A,0x848B,0x0449},
+  {0x845B,0x848C,0x044A},
+  {0x845C,0x848D,0x044B},
+  {0x845D,0x848E,0x044C},
+  {0x845E,0x848F,0x044D},
+  {0x845F,0x8490,0x044E}, /* 8490 */
+  {0x8460,0x8491,0x044F},
+  {0x8492,0x8492,0x003F},
+  {0x8493,0x8493,0x003F},
+  {0x8494,0x8494,0x003F},
+  {0x8495,0x8495,0x003F},
+  {0x8496,0x8496,0x003F},
+  {0x8497,0x8497,0x003F},
+  {0x8498,0x8498,0x003F},
+  {0x8499,0x8499,0x003F},
+  {0x849A,0x849A,0x003F},
+  {0x849B,0x849B,0x003F},
+  {0x849C,0x849C,0x003F},
+  {0x849D,0x849D,0x003F},
+  {0x849E,0x849E,0x003F},
+  {0x849F,0x849F,0x2500},
+  {0x84A0,0x84A0,0x2502}, /* 84A0 */
+  {0x84A1,0x84A1,0x250C},
+  {0x84A2,0x84A2,0x2510},
+  {0x84A3,0x84A3,0x2518},
+  {0x84A4,0x84A4,0x2514},
+  {0x84A5,0x84A5,0x251C},
+  {0x84A6,0x84A6,0x252C},
+  {0x84A7,0x84A7,0x2524},
+  {0x84A8,0x84A8,0x2534},
+  {0x84A9,0x84A9,0x253C},
+  {0x84AA,0x84AA,0x2501},
+  {0x84AB,0x84AB,0x2503},
+  {0x84AC,0x84AC,0x250F},
+  {0x84AD,0x84AD,0x2513},
+  {0x84AE,0x84AE,0x251B},
+  {0x84AF,0x84AF,0x2517},
+  {0x84B0,0x84B0,0x2523}, /* 84B0 */
+  {0x84B1,0x84B1,0x2533},
+  {0x84B2,0x84B2,0x252B},
+  {0x84B3,0x84B3,0x253B},
+  {0x84B4,0x84B4,0x254B},
+  {0x84B5,0x84B5,0x2520},
+  {0x84B6,0x84B6,0x252F},
+  {0x84B7,0x84B7,0x2528},
+  {0x84B8,0x84B8,0x2537},
+  {0x84B9,0x84B9,0x253F},
+  {0x84BA,0x84BA,0x251D},
+  {0x84BB,0x84BB,0x2530},
+  {0x84BC,0x84BC,0x2525},
+  {0x84BD,0x84BD,0x2538},
+  {0x84BE,0x84BE,0x2542},
+  {0x84BF,0x84BF,0x003F},
+  {0x84C0,0x84C0,0x003F}, /* 84C0 */
+  {0x84C1,0x84C1,0x003F},
+  {0x84C2,0x84C2,0x003F},
+  {0x84C3,0x84C3,0x003F},
+  {0x84C4,0x84C4,0x003F},
+  {0x84C5,0x84C5,0x003F},
+  {0x84C6,0x84C6,0x003F},
+  {0x84C7,0x84C7,0x003F},
+  {0x84C8,0x84C8,0x003F},
+  {0x84C9,0x84C9,0x003F},
+  {0x84CA,0x84CA,0x003F},
+  {0x84CB,0x84CB,0x003F},
+  {0x84CC,0x84CC,0x003F},
+  {0x84CD,0x84CD,0x003F},
+  {0x84CE,0x84CE,0x003F},
+  {0x84CF,0x84CF,0x003F},
+  {0x84D0,0x84D0,0x003F}, /* 84D0 */
+  {0x84D1,0x84D1,0x003F},
+  {0x84D2,0x84D2,0x003F},
+  {0x84D3,0x84D3,0x003F},
+  {0x84D4,0x84D4,0x003F},
+  {0x84D5,0x84D5,0x003F},
+  {0x84D6,0x84D6,0x003F},
+  {0x84D7,0x84D7,0x003F},
+  {0x84D8,0x84D8,0x003F},
+  {0x84D9,0x84D9,0x003F},
+  {0x84DA,0x84DA,0x003F},
+  {0x84DB,0x84DB,0x003F},
+  {0x84DC,0x84DC,0x003F},
+  {0x84DD,0x84DD,0x003F},
+  {0x84DE,0x84DE,0x003F},
+  {0x84DF,0x84DF,0x003F},
+  {0x84E0,0x84E0,0x003F}, /* 84E0 */
+  {0x84E1,0x84E1,0x003F},
+  {0x84E2,0x84E2,0x003F},
+  {0x84E3,0x84E3,0x003F},
+  {0x84E4,0x84E4,0x003F},
+  {0x84E5,0x84E5,0x003F},
+  {0x84E6,0x84E6,0x003F},
+  {0x84E7,0x84E7,0x003F},
+  {0x84E8,0x84E8,0x003F},
+  {0x84E9,0x84E9,0x003F},
+  {0x84EA,0x84EA,0x003F},
+  {0x84EB,0x84EB,0x003F},
+  {0x84EC,0x84EC,0x003F},
+  {0x84ED,0x84ED,0x003F},
+  {0x84EE,0x84EE,0x003F},
+  {0x84EF,0x84EF,0x003F},
+  {0x84F0,0x84F0,0x003F}, /* 84F0 */
+  {0x84F1,0x84F1,0x003F},
+  {0x84F2,0x84F2,0x003F},
+  {0x84F3,0x84F3,0x003F},
+  {0x84F4,0x84F4,0x003F},
+  {0x84F5,0x84F5,0x003F},
+  {0x84F6,0x84F6,0x003F},
+  {0x84F7,0x84F7,0x003F},
+  {0x84F8,0x84F8,0x003F},
+  {0x84F9,0x84F9,0x003F},
+  {0x84FA,0x84FA,0x003F},
+  {0x84FB,0x84FB,0x003F},
+  {0x84FC,0x84FC,0x003F},
+  {0,0,0},
+  {0,0,0},
+  {0,0,0}
+};
+
+
+static MY_UNICASE_INFO *my_caseinfo_sjis[256]=
+{
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, c81,  c82,  c83,  c84,  NULL, NULL, NULL, /* 8 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* A */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+};
+
+
 static int my_strnncoll_sjis_internal(CHARSET_INFO *cs,
 				      const uchar **a_res, size_t a_length,
 				      const uchar **b_res, size_t b_length)
@@ -4685,7 +5560,7 @@ CHARSET_INFO my_charset_sjis_japanese_ci
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_sjis,   /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */
@@ -4717,7 +5592,7 @@ CHARSET_INFO my_charset_sjis_bin=
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_sjis,   /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */

=== modified file 'strings/ctype-ujis.c'
--- a/strings/ctype-ujis.c	2008-02-20 18:49:26 +0000
+++ b/strings/ctype-ujis.c	2009-11-27 07:42:35 +0000
@@ -8494,6 +8494,1263 @@ my_wc_mb_euc_jp(CHARSET_INFO *c,my_wc_t 
 }
 
 
+/* Case info pages for JIS-X-0208 range */
+static MY_UNICASE_INFO cA2[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA2A0,0xA2A0,0x003F}, /* A2A0 */
+  {0xA2A1,0xA2A1,0x25C6},
+  {0xA2A2,0xA2A2,0x25A1},
+  {0xA2A3,0xA2A3,0x25A0},
+  {0xA2A4,0xA2A4,0x25B3},
+  {0xA2A5,0xA2A5,0x25B2},
+  {0xA2A6,0xA2A6,0x25BD},
+  {0xA2A7,0xA2A7,0x25BC},
+  {0xA2A8,0xA2A8,0x203B},
+  {0xA2A9,0xA2A9,0x3012},
+  {0xA2AA,0xA2AA,0x2192},
+  {0xA2AB,0xA2AB,0x2190},
+  {0xA2AC,0xA2AC,0x2191},
+  {0xA2AD,0xA2AD,0x2193},
+  {0xA2AE,0xA2AE,0x3013},
+  {0xA2AF,0xA2AF,0x003F},
+  {0xA2B0,0xA2B0,0x003F}, /* A2B0 */
+  {0xA2B1,0xA2B1,0x003F},
+  {0xA2B2,0xA2B2,0x003F},
+  {0xA2B3,0xA2B3,0x003F},
+  {0xA2B4,0xA2B4,0x003F},
+  {0xA2B5,0xA2B5,0x003F},
+  {0xA2B6,0xA2B6,0x003F},
+  {0xA2B7,0xA2B7,0x003F},
+  {0xA2B8,0xA2B8,0x003F},
+  {0xA2B9,0xA2B9,0x003F},
+  {0xA2BA,0xA2BA,0x2208},
+  {0xA2BB,0xA2BB,0x220B},
+  {0xA2BC,0xA2BC,0x2286},
+  {0xA2BD,0xA2BD,0x2287},
+  {0xA2BE,0xA2BE,0x2282},
+  {0xA2BF,0xA2BF,0x2283},
+  {0xA2C0,0xA2C0,0x222A}, /* A2C0 */
+  {0xA2C1,0xA2C1,0x2229},
+  {0xA2C2,0xA2C2,0x003F},
+  {0xA2C3,0xA2C3,0x003F},
+  {0xA2C4,0xA2C4,0x003F},
+  {0xA2C5,0xA2C5,0x003F},
+  {0xA2C6,0xA2C6,0x003F},
+  {0xA2C7,0xA2C7,0x003F},
+  {0xA2C8,0xA2C8,0x003F},
+  {0xA2C9,0xA2C9,0x003F},
+  {0xA2CA,0xA2CA,0x2227},
+  {0xA2CB,0xA2CB,0x2228},
+  {0xA2CC,0xA2CC,0x00AC},
+  {0xA2CD,0xA2CD,0x21D2},
+  {0xA2CE,0xA2CE,0x21D4},
+  {0xA2CF,0xA2CF,0x2200},
+  {0xA2D0,0xA2D0,0x2203}, /* A2D0 */
+  {0xA2D1,0xA2D1,0x003F},
+  {0xA2D2,0xA2D2,0x003F},
+  {0xA2D3,0xA2D3,0x003F},
+  {0xA2D4,0xA2D4,0x003F},
+  {0xA2D5,0xA2D5,0x003F},
+  {0xA2D6,0xA2D6,0x003F},
+  {0xA2D7,0xA2D7,0x003F},
+  {0xA2D8,0xA2D8,0x003F},
+  {0xA2D9,0xA2D9,0x003F},
+  {0xA2DA,0xA2DA,0x003F},
+  {0xA2DB,0xA2DB,0x003F},
+  {0xA2DC,0xA2DC,0x2220},
+  {0xA2DD,0xA2DD,0x22A5},
+  {0xA2DE,0xA2DE,0x2312},
+  {0xA2DF,0xA2DF,0x2202},
+  {0xA2E0,0xA2E0,0x2207}, /* A2E0 */
+  {0xA2E1,0xA2E1,0x2261},
+  {0xA2E2,0xA2E2,0x2252},
+  {0xA2E3,0xA2E3,0x226A},
+  {0xA2E4,0xA2E4,0x226B},
+  {0xA2E5,0xA2E5,0x221A},
+  {0xA2E6,0xA2E6,0x223D},
+  {0xA2E7,0xA2E7,0x221D},
+  {0xA2E8,0xA2E8,0x2235},
+  {0xA2E9,0xA2E9,0x222B},
+  {0xA2EA,0xA2EA,0x222C},
+  {0xA2EB,0xA2EB,0x003F},
+  {0xA2EC,0xA2EC,0x003F},
+  {0xA2ED,0xA2ED,0x003F},
+  {0xA2EE,0xA2EE,0x003F},
+  {0xA2EF,0xA2EF,0x003F},
+  {0xA2F0,0xA2F0,0x003F}, /* A2F0 */
+  {0xA2F1,0xA2F1,0x003F},
+  {0xA2F2,0x8FABA9,0x212B},
+  {0xA2F3,0xA2F3,0x2030},
+  {0xA2F4,0xA2F4,0x266F},
+  {0xA2F5,0xA2F5,0x266D},
+  {0xA2F6,0xA2F6,0x266A},
+  {0xA2F7,0xA2F7,0x2020},
+  {0xA2F8,0xA2F8,0x2021},
+  {0xA2F9,0xA2F9,0x00B6},
+  {0xA2FA,0xA2FA,0x003F},
+  {0xA2FB,0xA2FB,0x003F},
+  {0xA2FC,0xA2FC,0x003F},
+  {0xA2FD,0xA2FD,0x003F},
+  {0xA2FE,0xA2FE,0x25EF},
+  {0xA2FF,0xA2FF,0x003F}
+};
+
+
+static MY_UNICASE_INFO cA3[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA3A0,0xA3A0,0x003F}, /* A3A0 */
+  {0xA3A1,0xA3A1,0x003F},
+  {0xA3A2,0xA3A2,0x003F},
+  {0xA3A3,0xA3A3,0x003F},
+  {0xA3A4,0xA3A4,0x003F},
+  {0xA3A5,0xA3A5,0x003F},
+  {0xA3A6,0xA3A6,0x003F},
+  {0xA3A7,0xA3A7,0x003F},
+  {0xA3A8,0xA3A8,0x003F},
+  {0xA3A9,0xA3A9,0x003F},
+  {0xA3AA,0xA3AA,0x003F},
+  {0xA3AB,0xA3AB,0x003F},
+  {0xA3AC,0xA3AC,0x003F},
+  {0xA3AD,0xA3AD,0x003F},
+  {0xA3AE,0xA3AE,0x003F},
+  {0xA3AF,0xA3AF,0x003F},
+  {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */
+  {0xA3B1,0xA3B1,0xFF11},
+  {0xA3B2,0xA3B2,0xFF12},
+  {0xA3B3,0xA3B3,0xFF13},
+  {0xA3B4,0xA3B4,0xFF14},
+  {0xA3B5,0xA3B5,0xFF15},
+  {0xA3B6,0xA3B6,0xFF16},
+  {0xA3B7,0xA3B7,0xFF17},
+  {0xA3B8,0xA3B8,0xFF18},
+  {0xA3B9,0xA3B9,0xFF19},
+  {0xA3BA,0xA3BA,0x003F},
+  {0xA3BB,0xA3BB,0x003F},
+  {0xA3BC,0xA3BC,0x003F},
+  {0xA3BD,0xA3BD,0x003F},
+  {0xA3BE,0xA3BE,0x003F},
+  {0xA3BF,0xA3BF,0x003F},
+  {0xA3C0,0xA3C0,0x003F}, /* A3C0 */
+  {0xA3C1,0xA3E1,0xFF21},
+  {0xA3C2,0xA3E2,0xFF22},
+  {0xA3C3,0xA3E3,0xFF23},
+  {0xA3C4,0xA3E4,0xFF24},
+  {0xA3C5,0xA3E5,0xFF25},
+  {0xA3C6,0xA3E6,0xFF26},
+  {0xA3C7,0xA3E7,0xFF27},
+  {0xA3C8,0xA3E8,0xFF28},
+  {0xA3C9,0xA3E9,0xFF29},
+  {0xA3CA,0xA3EA,0xFF2A},
+  {0xA3CB,0xA3EB,0xFF2B},
+  {0xA3CC,0xA3EC,0xFF2C},
+  {0xA3CD,0xA3ED,0xFF2D},
+  {0xA3CE,0xA3EE,0xFF2E},
+  {0xA3CF,0xA3EF,0xFF2F},
+  {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */
+  {0xA3D1,0xA3F1,0xFF31},
+  {0xA3D2,0xA3F2,0xFF32},
+  {0xA3D3,0xA3F3,0xFF33},
+  {0xA3D4,0xA3F4,0xFF34},
+  {0xA3D5,0xA3F5,0xFF35},
+  {0xA3D6,0xA3F6,0xFF36},
+  {0xA3D7,0xA3F7,0xFF37},
+  {0xA3D8,0xA3F8,0xFF38},
+  {0xA3D9,0xA3F9,0xFF39},
+  {0xA3DA,0xA3FA,0xFF3A},
+  {0xA3DB,0xA3DB,0x003F},
+  {0xA3DC,0xA3DC,0x003F},
+  {0xA3DD,0xA3DD,0x003F},
+  {0xA3DE,0xA3DE,0x003F},
+  {0xA3DF,0xA3DF,0x003F},
+  {0xA3E0,0xA3E0,0x003F}, /* A3E0 */
+  {0xA3C1,0xA3E1,0xFF41},
+  {0xA3C2,0xA3E2,0xFF42},
+  {0xA3C3,0xA3E3,0xFF43},
+  {0xA3C4,0xA3E4,0xFF44},
+  {0xA3C5,0xA3E5,0xFF45},
+  {0xA3C6,0xA3E6,0xFF46},
+  {0xA3C7,0xA3E7,0xFF47},
+  {0xA3C8,0xA3E8,0xFF48},
+  {0xA3C9,0xA3E9,0xFF49},
+  {0xA3CA,0xA3EA,0xFF4A},
+  {0xA3CB,0xA3EB,0xFF4B},
+  {0xA3CC,0xA3EC,0xFF4C},
+  {0xA3CD,0xA3ED,0xFF4D},
+  {0xA3CE,0xA3EE,0xFF4E},
+  {0xA3CF,0xA3EF,0xFF4F},
+  {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */
+  {0xA3D1,0xA3F1,0xFF51},
+  {0xA3D2,0xA3F2,0xFF52},
+  {0xA3D3,0xA3F3,0xFF53},
+  {0xA3D4,0xA3F4,0xFF54},
+  {0xA3D5,0xA3F5,0xFF55},
+  {0xA3D6,0xA3F6,0xFF56},
+  {0xA3D7,0xA3F7,0xFF57},
+  {0xA3D8,0xA3F8,0xFF58},
+  {0xA3D9,0xA3F9,0xFF59},
+  {0xA3DA,0xA3FA,0xFF5A},
+  {0xA3FB,0xA3FB,0x003F},
+  {0xA3FC,0xA3FC,0x003F},
+  {0xA3FD,0xA3FD,0x003F},
+  {0xA3FE,0xA3FE,0x003F},
+  {0xA3FF,0xA3FF,0x003F}
+};
+
+
+static MY_UNICASE_INFO cA6[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA6A0,0xA6A0,0x003F}, /* A6A0 */
+  {0xA6A1,0xA6C1,0x0391},
+  {0xA6A2,0xA6C2,0x0392},
+  {0xA6A3,0xA6C3,0x0393},
+  {0xA6A4,0xA6C4,0x0394},
+  {0xA6A5,0xA6C5,0x0395},
+  {0xA6A6,0xA6C6,0x0396},
+  {0xA6A7,0xA6C7,0x0397},
+  {0xA6A8,0xA6C8,0x0398},
+  {0xA6A9,0xA6C9,0x0399},
+  {0xA6AA,0xA6CA,0x039A},
+  {0xA6AB,0xA6CB,0x039B},
+  {0xA6AC,0xA6CC,0x039C},
+  {0xA6AD,0xA6CD,0x039D},
+  {0xA6AE,0xA6CE,0x039E},
+  {0xA6AF,0xA6CF,0x039F},
+  {0xA6B0,0xA6D0,0x03A0}, /* A6B0 */
+  {0xA6B1,0xA6D1,0x03A1},
+  {0xA6B2,0xA6D2,0x03A3},
+  {0xA6B3,0xA6D3,0x03A4},
+  {0xA6B4,0xA6D4,0x03A5},
+  {0xA6B5,0xA6D5,0x03A6},
+  {0xA6B6,0xA6D6,0x03A7},
+  {0xA6B7,0xA6D7,0x03A8},
+  {0xA6B8,0xA6D8,0x03A9},
+  {0xA6B9,0xA6B9,0x003F},
+  {0xA6BA,0xA6BA,0x003F},
+  {0xA6BB,0xA6BB,0x003F},
+  {0xA6BC,0xA6BC,0x003F},
+  {0xA6BD,0xA6BD,0x003F},
+  {0xA6BE,0xA6BE,0x003F},
+  {0xA6BF,0xA6BF,0x003F},
+  {0xA6C0,0xA6C0,0x003F}, /* A6C0 */
+  {0xA6A1,0xA6C1,0x03B1},
+  {0xA6A2,0xA6C2,0x03B2},
+  {0xA6A3,0xA6C3,0x03B3},
+  {0xA6A4,0xA6C4,0x03B4},
+  {0xA6A5,0xA6C5,0x03B5},
+  {0xA6A6,0xA6C6,0x03B6},
+  {0xA6A7,0xA6C7,0x03B7},
+  {0xA6A8,0xA6C8,0x03B8},
+  {0xA6A9,0xA6C9,0x03B9},
+  {0xA6AA,0xA6CA,0x03BA},
+  {0xA6AB,0xA6CB,0x03BB},
+  {0xA6AC,0xA6CC,0x03BC},
+  {0xA6AD,0xA6CD,0x03BD},
+  {0xA6AE,0xA6CE,0x03BE},
+  {0xA6AF,0xA6CF,0x03BF},
+  {0xA6B0,0xA6D0,0x03C0}, /* A6D0 */
+  {0xA6B1,0xA6D1,0x03C1},
+  {0xA6B2,0xA6D2,0x03C3},
+  {0xA6B3,0xA6D3,0x03C4},
+  {0xA6B4,0xA6D4,0x03C5},
+  {0xA6B5,0xA6D5,0x03C6},
+  {0xA6B6,0xA6D6,0x03C7},
+  {0xA6B7,0xA6D7,0x03C8},
+  {0xA6B8,0xA6D8,0x03C9},
+  {0xA6D9,0xA6D9,0x003F},
+  {0xA6DA,0xA6DA,0x003F},
+  {0xA6DB,0xA6DB,0x003F},
+  {0xA6DC,0xA6DC,0x003F},
+  {0xA6DD,0xA6DD,0x003F},
+  {0xA6DE,0xA6DE,0x003F},
+  {0xA6DF,0xA6DF,0x003F},
+  {0xA6E0,0xA6E0,0x003F}, /* A6E0 */
+  {0xA6E1,0xA6E1,0x003F},
+  {0xA6E2,0xA6E2,0x003F},
+  {0xA6E3,0xA6E3,0x003F},
+  {0xA6E4,0xA6E4,0x003F},
+  {0xA6E5,0xA6E5,0x003F},
+  {0xA6E6,0xA6E6,0x003F},
+  {0xA6E7,0xA6E7,0x003F},
+  {0xA6E8,0xA6E8,0x003F},
+  {0xA6E9,0xA6E9,0x003F},
+  {0xA6EA,0xA6EA,0x003F},
+  {0xA6EB,0xA6EB,0x003F},
+  {0xA6EC,0xA6EC,0x003F},
+  {0xA6ED,0xA6ED,0x003F},
+  {0xA6EE,0xA6EE,0x003F},
+  {0xA6EF,0xA6EF,0x003F},
+  {0xA6F0,0xA6F0,0x003F}, /* A6F0 */
+  {0xA6F1,0xA6F1,0x003F},
+  {0xA6F2,0xA6F2,0x003F},
+  {0xA6F3,0xA6F3,0x003F},
+  {0xA6F4,0xA6F4,0x003F},
+  {0xA6F5,0xA6F5,0x003F},
+  {0xA6F6,0xA6F6,0x003F},
+  {0xA6F7,0xA6F7,0x003F},
+  {0xA6F8,0xA6F8,0x003F},
+  {0xA6F9,0xA6F9,0x003F},
+  {0xA6FA,0xA6FA,0x003F},
+  {0xA6FB,0xA6FB,0x003F},
+  {0xA6FC,0xA6FC,0x003F},
+  {0xA6FD,0xA6FD,0x003F},
+  {0xA6FE,0xA6FE,0x003F},
+  {0xA6FF,0xA6FF,0x003F}
+};
+
+
+static MY_UNICASE_INFO cA7[256]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0xA7A0,0xA7A0,0x003F},
+  {0xA7A1,0xA7D1,0x0410},
+  {0xA7A2,0xA7D2,0x0411},
+  {0xA7A3,0xA7D3,0x0412},
+  {0xA7A4,0xA7D4,0x0413},
+  {0xA7A5,0xA7D5,0x0414},
+  {0xA7A6,0xA7D6,0x0415},
+  {0xA7A7,0xA7D7,0x0401},
+  {0xA7A8,0xA7D8,0x0416},
+  {0xA7A9,0xA7D9,0x0417},
+  {0xA7AA,0xA7DA,0x0418},
+  {0xA7AB,0xA7DB,0x0419},
+  {0xA7AC,0xA7DC,0x041A},
+  {0xA7AD,0xA7DD,0x041B},
+  {0xA7AE,0xA7DE,0x041C},
+  {0xA7AF,0xA7DF,0x041D},
+  {0xA7B0,0xA7E0,0x041E}, /* A7B0 */
+  {0xA7B1,0xA7E1,0x041F},
+  {0xA7B2,0xA7E2,0x0420},
+  {0xA7B3,0xA7E3,0x0421},
+  {0xA7B4,0xA7E4,0x0422},
+  {0xA7B5,0xA7E5,0x0423},
+  {0xA7B6,0xA7E6,0x0424},
+  {0xA7B7,0xA7E7,0x0425},
+  {0xA7B8,0xA7E8,0x0426},
+  {0xA7B9,0xA7E9,0x0427},
+  {0xA7BA,0xA7EA,0x0428},
+  {0xA7BB,0xA7EB,0x0429},
+  {0xA7BC,0xA7EC,0x042A},
+  {0xA7BD,0xA7ED,0x042B},
+  {0xA7BE,0xA7EE,0x042C},
+  {0xA7BF,0xA7EF,0x042D},
+  {0xA7C0,0xA7F0,0x042E}, /* A7C0 */
+  {0xA7C1,0xA7F1,0x042F},
+  {0xA7C2,0xA7C2,0x003F},
+  {0xA7C3,0xA7C3,0x003F},
+  {0xA7C4,0xA7C4,0x003F},
+  {0xA7C5,0xA7C5,0x003F},
+  {0xA7C6,0xA7C6,0x003F},
+  {0xA7C7,0xA7C7,0x003F},
+  {0xA7C8,0xA7C8,0x003F},
+  {0xA7C9,0xA7C9,0x003F},
+  {0xA7CA,0xA7CA,0x003F},
+  {0xA7CB,0xA7CB,0x003F},
+  {0xA7CC,0xA7CC,0x003F},
+  {0xA7CD,0xA7CD,0x003F},
+  {0xA7CE,0xA7CE,0x003F},
+  {0xA7CF,0xA7CF,0x003F},
+  {0xA7D0,0xA7D0,0x003F}, /* A7D0 */
+  {0xA7A1,0xA7D1,0x0430},
+  {0xA7A2,0xA7D2,0x0431},
+  {0xA7A3,0xA7D3,0x0432},
+  {0xA7A4,0xA7D4,0x0433},
+  {0xA7A5,0xA7D5,0x0434},
+  {0xA7A6,0xA7D6,0x0435},
+  {0xA7A7,0xA7D7,0x0451},
+  {0xA7A8,0xA7D8,0x0436},
+  {0xA7A9,0xA7D9,0x0437},
+  {0xA7AA,0xA7DA,0x0438},
+  {0xA7AB,0xA7DB,0x0439},
+  {0xA7AC,0xA7DC,0x043A},
+  {0xA7AD,0xA7DD,0x043B},
+  {0xA7AE,0xA7DE,0x043C},
+  {0xA7AF,0xA7DF,0x043D},
+  {0xA7B0,0xA7E0,0x043E}, /* A7E0 */
+  {0xA7B1,0xA7E1,0x043F},
+  {0xA7B2,0xA7E2,0x0440},
+  {0xA7B3,0xA7E3,0x0441},
+  {0xA7B4,0xA7E4,0x0442},
+  {0xA7B5,0xA7E5,0x0443},
+  {0xA7B6,0xA7E6,0x0444},
+  {0xA7B7,0xA7E7,0x0445},
+  {0xA7B8,0xA7E8,0x0446},
+  {0xA7B9,0xA7E9,0x0447},
+  {0xA7BA,0xA7EA,0x0448},
+  {0xA7BB,0xA7EB,0x0449},
+  {0xA7BC,0xA7EC,0x044A},
+  {0xA7BD,0xA7ED,0x044B},
+  {0xA7BE,0xA7EE,0x044C},
+  {0xA7BF,0xA7EF,0x044D},
+  {0xA7C0,0xA7F0,0x044E}, /* A7F0 */
+  {0xA7C1,0xA7F1,0x044F},
+  {0xA7F2,0xA7F2,0x003F},
+  {0xA7F3,0xA7F3,0x003F},
+  {0xA7F4,0xA7F4,0x003F},
+  {0xA7F5,0xA7F5,0x003F},
+  {0xA7F6,0xA7F6,0x003F},
+  {0xA7F7,0xA7F7,0x003F},
+  {0xA7F8,0xA7F8,0x003F},
+  {0xA7F9,0xA7F9,0x003F},
+  {0xA7FA,0xA7FA,0x003F},
+  {0xA7FB,0xA7FB,0x003F},
+  {0xA7FC,0xA7FC,0x003F},
+  {0xA7FD,0xA7FD,0x003F},
+  {0xA7FE,0xA7FE,0x003F},
+  {0xA7FF,0xA7FF,0x003F},
+};
+
+
+/* Case info pages for JIS-X-0212 range */
+static MY_UNICASE_INFO c8FA6[]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FA6A0,0x8FA6A0,0x003F}, /* 8FA6A0 */
+  {0x8FA6A1,0x8FA6A1,0x003F},
+  {0x8FA6A2,0x8FA6A2,0x003F},
+  {0x8FA6A3,0x8FA6A3,0x003F},
+  {0x8FA6A4,0x8FA6A4,0x003F},
+  {0x8FA6A5,0x8FA6A5,0x003F},
+  {0x8FA6A6,0x8FA6A6,0x003F},
+  {0x8FA6A7,0x8FA6A7,0x003F},
+  {0x8FA6A8,0x8FA6A8,0x003F},
+  {0x8FA6A9,0x8FA6A9,0x003F},
+  {0x8FA6AA,0x8FA6AA,0x003F},
+  {0x8FA6AB,0x8FA6AB,0x003F},
+  {0x8FA6AC,0x8FA6AC,0x003F},
+  {0x8FA6AD,0x8FA6AD,0x003F},
+  {0x8FA6AE,0x8FA6AE,0x003F},
+  {0x8FA6AF,0x8FA6AF,0x003F},
+  {0x8FA6B0,0x8FA6B0,0x003F}, /* 8FA6B0 */
+  {0x8FA6B1,0x8FA6B1,0x003F},
+  {0x8FA6B2,0x8FA6B2,0x003F},
+  {0x8FA6B3,0x8FA6B3,0x003F},
+  {0x8FA6B4,0x8FA6B4,0x003F},
+  {0x8FA6B5,0x8FA6B5,0x003F},
+  {0x8FA6B6,0x8FA6B6,0x003F},
+  {0x8FA6B7,0x8FA6B7,0x003F},
+  {0x8FA6B8,0x8FA6B8,0x003F},
+  {0x8FA6B9,0x8FA6B9,0x003F},
+  {0x8FA6BA,0x8FA6BA,0x003F},
+  {0x8FA6BB,0x8FA6BB,0x003F},
+  {0x8FA6BC,0x8FA6BC,0x003F},
+  {0x8FA6BD,0x8FA6BD,0x003F},
+  {0x8FA6BE,0x8FA6BE,0x003F},
+  {0x8FA6BF,0x8FA6BF,0x003F},
+  {0x8FA6C0,0x8FA6C0,0x003F}, /* 8FA6C0 */
+  {0x8FA6C1,0x8FA6C1,0x003F},
+  {0x8FA6C2,0x8FA6C2,0x003F},
+  {0x8FA6C3,0x8FA6C3,0x003F},
+  {0x8FA6C4,0x8FA6C4,0x003F},
+  {0x8FA6C5,0x8FA6C5,0x003F},
+  {0x8FA6C6,0x8FA6C6,0x003F},
+  {0x8FA6C7,0x8FA6C7,0x003F},
+  {0x8FA6C8,0x8FA6C8,0x003F},
+  {0x8FA6C9,0x8FA6C9,0x003F},
+  {0x8FA6CA,0x8FA6CA,0x003F},
+  {0x8FA6CB,0x8FA6CB,0x003F},
+  {0x8FA6CC,0x8FA6CC,0x003F},
+  {0x8FA6CD,0x8FA6CD,0x003F},
+  {0x8FA6CE,0x8FA6CE,0x003F},
+  {0x8FA6CF,0x8FA6CF,0x003F},
+  {0x8FA6D0,0x8FA6D0,0x003F}, /* 8FA6D0 */
+  {0x8FA6D1,0x8FA6D1,0x003F},
+  {0x8FA6D2,0x8FA6D2,0x003F},
+  {0x8FA6D3,0x8FA6D3,0x003F},
+  {0x8FA6D4,0x8FA6D4,0x003F},
+  {0x8FA6D5,0x8FA6D5,0x003F},
+  {0x8FA6D6,0x8FA6D6,0x003F},
+  {0x8FA6D7,0x8FA6D7,0x003F},
+  {0x8FA6D8,0x8FA6D8,0x003F},
+  {0x8FA6D9,0x8FA6D9,0x003F},
+  {0x8FA6DA,0x8FA6DA,0x003F},
+  {0x8FA6DB,0x8FA6DB,0x003F},
+  {0x8FA6DC,0x8FA6DC,0x003F},
+  {0x8FA6DD,0x8FA6DD,0x003F},
+  {0x8FA6DE,0x8FA6DE,0x003F},
+  {0x8FA6DF,0x8FA6DF,0x003F},
+  {0x8FA6E0,0x8FA6E0,0x003F}, /* 8FA6E0 */
+  {0x8FA6E1,0x8FA6F1,0x0386},
+  {0x8FA6E2,0x8FA6F2,0x0388},
+  {0x8FA6E3,0x8FA6F3,0x0389},
+  {0x8FA6E4,0x8FA6F4,0x038A},
+  {0x8FA6E5,0x8FA6F5,0x03AA},
+  {0x8FA6E6,0x8FA6E6,0x003F},
+  {0x8FA6E7,0x8FA6F7,0x038C},
+  {0x8FA6E8,0x8FA6E8,0x003F},
+  {0x8FA6E9,0x8FA6F9,0x038E},
+  {0x8FA6EA,0x8FA6FA,0x03AB},
+  {0x8FA6EB,0x8FA6EB,0x003F},
+  {0x8FA6EC,0x8FA6FC,0x038F},
+  {0x8FA6ED,0x8FA6ED,0x003F},
+  {0x8FA6EE,0x8FA6EE,0x003F},
+  {0x8FA6EF,0x8FA6EF,0x003F},
+  {0x8FA6F0,0x8FA6F0,0x003F}, /* 8FA6F0 */
+  {0x8FA6E1,0x8FA6F1,0x03AC},
+  {0x8FA6E2,0x8FA6F2,0x03AD},
+  {0x8FA6E3,0x8FA6F3,0x03AE},
+  {0x8FA6E4,0x8FA6F4,0x03AF},
+  {0x8FA6E5,0x8FA6F5,0x03CA},
+  {0x8FA6F6,0x8FA6F6,0x0390},
+  {0x8FA6E7,0x8FA6F7,0x03CC},
+  {  0xA6B2,0x8FA6F8,0x03C2},
+  {0x8FA6E9,0x8FA6F9,0x03CD},
+  {0x8FA6EA,0x8FA6FA,0x03CB},
+  {0x8FA6FB,0x8FA6FB,0x03B0},
+  {0x8FA6EC,0x8FA6FC,0x03CE},
+  {0x8FA6FD,0x8FA6FD,0x003F},
+  {0x8FA6FE,0x8FA6FE,0x003F},
+  {0x8FA6FF,0x8FA6FF,0x003F},
+};
+
+
+static MY_UNICASE_INFO c8FA7[]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FA7A0,0x8FA7A0,0x003F}, /* 8FA7A0 */
+  {0x8FA7A1,0x8FA7A1,0x003F},
+  {0x8FA7A2,0x8FA7A2,0x003F},
+  {0x8FA7A3,0x8FA7A3,0x003F},
+  {0x8FA7A4,0x8FA7A4,0x003F},
+  {0x8FA7A5,0x8FA7A5,0x003F},
+  {0x8FA7A6,0x8FA7A6,0x003F},
+  {0x8FA7A7,0x8FA7A7,0x003F},
+  {0x8FA7A8,0x8FA7A8,0x003F},
+  {0x8FA7A9,0x8FA7A9,0x003F},
+  {0x8FA7AA,0x8FA7AA,0x003F},
+  {0x8FA7AB,0x8FA7AB,0x003F},
+  {0x8FA7AC,0x8FA7AC,0x003F},
+  {0x8FA7AD,0x8FA7AD,0x003F},
+  {0x8FA7AE,0x8FA7AE,0x003F},
+  {0x8FA7AF,0x8FA7AF,0x003F},
+  {0x8FA7B0,0x8FA7B0,0x003F}, /* 8FA7B0 */
+  {0x8FA7B1,0x8FA7B1,0x003F},
+  {0x8FA7B2,0x8FA7B2,0x003F},
+  {0x8FA7B3,0x8FA7B3,0x003F},
+  {0x8FA7B4,0x8FA7B4,0x003F},
+  {0x8FA7B5,0x8FA7B5,0x003F},
+  {0x8FA7B6,0x8FA7B6,0x003F},
+  {0x8FA7B7,0x8FA7B7,0x003F},
+  {0x8FA7B8,0x8FA7B8,0x003F},
+  {0x8FA7B9,0x8FA7B9,0x003F},
+  {0x8FA7BA,0x8FA7BA,0x003F},
+  {0x8FA7BB,0x8FA7BB,0x003F},
+  {0x8FA7BC,0x8FA7BC,0x003F},
+  {0x8FA7BD,0x8FA7BD,0x003F},
+  {0x8FA7BE,0x8FA7BE,0x003F},
+  {0x8FA7BF,0x8FA7BF,0x003F},
+  {0x8FA7C0,0x8FA7C0,0x003F}, /* 8FA7C0 */
+  {0x8FA7C1,0x8FA7C1,0x003F},
+  {0x8FA7C2,0x8FA7F2,0x0402},
+  {0x8FA7C3,0x8FA7F3,0x0403},
+  {0x8FA7C4,0x8FA7F4,0x0404},
+  {0x8FA7C5,0x8FA7F5,0x0405},
+  {0x8FA7C6,0x8FA7F6,0x0406},
+  {0x8FA7C7,0x8FA7F7,0x0407},
+  {0x8FA7C8,0x8FA7F8,0x0408},
+  {0x8FA7C9,0x8FA7F9,0x0409},
+  {0x8FA7CA,0x8FA7FA,0x040A},
+  {0x8FA7CB,0x8FA7FB,0x040B},
+  {0x8FA7CC,0x8FA7FC,0x040C},
+  {0x8FA7CD,0x8FA7FD,0x040E},
+  {0x8FA7CE,0x8FA7FE,0x040F},
+  {0x8FA7CF,0x8FA7CF,0x003F},
+  {0x8FA7D0,0x8FA7D0,0x003F}, /* 8FA7D0 */
+  {0x8FA7D1,0x8FA7D1,0x003F},
+  {0x8FA7D2,0x8FA7D2,0x003F},
+  {0x8FA7D3,0x8FA7D3,0x003F},
+  {0x8FA7D4,0x8FA7D4,0x003F},
+  {0x8FA7D5,0x8FA7D5,0x003F},
+  {0x8FA7D6,0x8FA7D6,0x003F},
+  {0x8FA7D7,0x8FA7D7,0x003F},
+  {0x8FA7D8,0x8FA7D8,0x003F},
+  {0x8FA7D9,0x8FA7D9,0x003F},
+  {0x8FA7DA,0x8FA7DA,0x003F},
+  {0x8FA7DB,0x8FA7DB,0x003F},
+  {0x8FA7DC,0x8FA7DC,0x003F},
+  {0x8FA7DD,0x8FA7DD,0x003F},
+  {0x8FA7DE,0x8FA7DE,0x003F},
+  {0x8FA7DF,0x8FA7DF,0x003F},
+  {0x8FA7E0,0x8FA7E0,0x003F}, /* 8FA7E0 */
+  {0x8FA7E1,0x8FA7E1,0x003F},
+  {0x8FA7E2,0x8FA7E2,0x003F},
+  {0x8FA7E3,0x8FA7E3,0x003F},
+  {0x8FA7E4,0x8FA7E4,0x003F},
+  {0x8FA7E5,0x8FA7E5,0x003F},
+  {0x8FA7E6,0x8FA7E6,0x003F},
+  {0x8FA7E7,0x8FA7E7,0x003F},
+  {0x8FA7E8,0x8FA7E8,0x003F},
+  {0x8FA7E9,0x8FA7E9,0x003F},
+  {0x8FA7EA,0x8FA7EA,0x003F},
+  {0x8FA7EB,0x8FA7EB,0x003F},
+  {0x8FA7EC,0x8FA7EC,0x003F},
+  {0x8FA7ED,0x8FA7ED,0x003F},
+  {0x8FA7EE,0x8FA7EE,0x003F},
+  {0x8FA7EF,0x8FA7EF,0x003F},
+  {0x8FA7F0,0x8FA7F0,0x003F}, /* 8FA7F0 */
+  {0x8FA7F1,0x8FA7F1,0x003F},
+  {0x8FA7C2,0x8FA7F2,0x0452},
+  {0x8FA7C3,0x8FA7F3,0x0453},
+  {0x8FA7C4,0x8FA7F4,0x0454},
+  {0x8FA7C5,0x8FA7F5,0x0455},
+  {0x8FA7C6,0x8FA7F6,0x0456},
+  {0x8FA7C7,0x8FA7F7,0x0457},
+  {0x8FA7C8,0x8FA7F8,0x0458},
+  {0x8FA7C9,0x8FA7F9,0x0459},
+  {0x8FA7CA,0x8FA7FA,0x045A},
+  {0x8FA7CB,0x8FA7FB,0x045B},
+  {0x8FA7CC,0x8FA7FC,0x045C},
+  {0x8FA7CD,0x8FA7FD,0x045E},
+  {0x8FA7CE,0x8FA7FE,0x045F},
+  {0x8FA7FF,0x8FA7FF,0x003F}
+};
+
+
+static MY_UNICASE_INFO c8FA9[]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FA9A0,0x8FA9A0,0x003F}, /* 8FA9A0 */
+  {0x8FA9A1,0x8FA9C1,0x00C6},
+  {0x8FA9A2,0x8FA9C2,0x0110},
+  {0x8FA9A3,0x8FA9A3,0x003F},
+  {0x8FA9A4,0x8FA9C4,0x0126},
+  {0x8FA9A5,0x8FA9A5,0x003F},
+  {0x8FA9A6,0x8FA9C6,0x0132},
+  {0x8FA9A7,0x8FA9A7,0x003F},
+  {0x8FA9A8,0x8FA9C8,0x0141},
+  {0x8FA9A9,0x8FA9C9,0x013F},
+  {0x8FA9AA,0x8FA9AA,0x003F},
+  {0x8FA9AB,0x8FA9CB,0x014A},
+  {0x8FA9AC,0x8FA9CC,0x00D8},
+  {0x8FA9AD,0x8FA9CD,0x0152},
+  {0x8FA9AE,0x8FA9AE,0x003F},
+  {0x8FA9AF,0x8FA9CF,0x0166},
+  {0x8FA9B0,0x8FA9D0,0x00DE}, /* 8FA9B0 */
+  {0x8FA9B1,0x8FA9B1,0x003F},
+  {0x8FA9B2,0x8FA9B2,0x003F},
+  {0x8FA9B3,0x8FA9B3,0x003F},
+  {0x8FA9B4,0x8FA9B4,0x003F},
+  {0x8FA9B5,0x8FA9B5,0x003F},
+  {0x8FA9B6,0x8FA9B6,0x003F},
+  {0x8FA9B7,0x8FA9B7,0x003F},
+  {0x8FA9B8,0x8FA9B8,0x003F},
+  {0x8FA9B9,0x8FA9B9,0x003F},
+  {0x8FA9BA,0x8FA9BA,0x003F},
+  {0x8FA9BB,0x8FA9BB,0x003F},
+  {0x8FA9BC,0x8FA9BC,0x003F},
+  {0x8FA9BD,0x8FA9BD,0x003F},
+  {0x8FA9BE,0x8FA9BE,0x003F},
+  {0x8FA9BF,0x8FA9BF,0x003F},
+  {0x8FA9C0,0x8FA9C0,0x003F}, /* 8FA9C0 */
+  {0x8FA9A1,0x8FA9C1,0x00E6},
+  {0x8FA9A2,0x8FA9C2,0x0111},
+  {0x8FA9C3,0x8FA9C3,0x00F0},
+  {0x8FA9A4,0x8FA9C4,0x0127},
+  {    0x49,0x8FA9C5,0x0131},
+  {0x8FA9A6,0x8FA9C6,0x0133},
+  {0x8FA9C7,0x8FA9C7,0x0138},
+  {0x8FA9A8,0x8FA9C8,0x0142},
+  {0x8FA9A9,0x8FA9C9,0x0140},
+  {0x8FA9CA,0x8FA9CA,0x0149},
+  {0x8FA9AB,0x8FA9CB,0x014B},
+  {0x8FA9AC,0x8FA9CC,0x00F8},
+  {0x8FA9AD,0x8FA9CD,0x0153},
+  {0x8FA9CE,0x8FA9CE,0x00DF},
+  {0x8FA9AF,0x8FA9CF,0x0167},
+  {0x8FA9B0,0x8FA9D0,0x00FE}, /* 8FA9D0 */
+  {0x8FA9D1,0x8FA9D1,0x003F},
+  {0x8FA9D2,0x8FA9D2,0x003F},
+  {0x8FA9D3,0x8FA9D3,0x003F},
+  {0x8FA9D4,0x8FA9D4,0x003F},
+  {0x8FA9D5,0x8FA9D5,0x003F},
+  {0x8FA9D6,0x8FA9D6,0x003F},
+  {0x8FA9D7,0x8FA9D7,0x003F},
+  {0x8FA9D8,0x8FA9D8,0x003F},
+  {0x8FA9D9,0x8FA9D9,0x003F},
+  {0x8FA9DA,0x8FA9DA,0x003F},
+  {0x8FA9DB,0x8FA9DB,0x003F},
+  {0x8FA9DC,0x8FA9DC,0x003F},
+  {0x8FA9DD,0x8FA9DD,0x003F},
+  {0x8FA9DE,0x8FA9DE,0x003F},
+  {0x8FA9DF,0x8FA9DF,0x003F},
+  {0x8FA9E0,0x8FA9E0,0x003F}, /* 8FA9E0 */
+  {0x8FA9E1,0x8FA9E1,0x003F},
+  {0x8FA9E2,0x8FA9E2,0x003F},
+  {0x8FA9E3,0x8FA9E3,0x003F},
+  {0x8FA9E4,0x8FA9E4,0x003F},
+  {0x8FA9E5,0x8FA9E5,0x003F},
+  {0x8FA9E6,0x8FA9E6,0x003F},
+  {0x8FA9E7,0x8FA9E7,0x003F},
+  {0x8FA9E8,0x8FA9E8,0x003F},
+  {0x8FA9E9,0x8FA9E9,0x003F},
+  {0x8FA9EA,0x8FA9EA,0x003F},
+  {0x8FA9EB,0x8FA9EB,0x003F},
+  {0x8FA9EC,0x8FA9EC,0x003F},
+  {0x8FA9ED,0x8FA9ED,0x003F},
+  {0x8FA9EE,0x8FA9EE,0x003F},
+  {0x8FA9EF,0x8FA9EF,0x003F},
+  {0x8FA9F0,0x8FA9F0,0x003F}, /* 8FA9F0 */
+  {0x8FA9F1,0x8FA9F1,0x003F},
+  {0x8FA9F2,0x8FA9F2,0x003F},
+  {0x8FA9F3,0x8FA9F3,0x003F},
+  {0x8FA9F4,0x8FA9F4,0x003F},
+  {0x8FA9F5,0x8FA9F5,0x003F},
+  {0x8FA9F6,0x8FA9F6,0x003F},
+  {0x8FA9F7,0x8FA9F7,0x003F},
+  {0x8FA9F8,0x8FA9F8,0x003F},
+  {0x8FA9F9,0x8FA9F9,0x003F},
+  {0x8FA9FA,0x8FA9FA,0x003F},
+  {0x8FA9FB,0x8FA9FB,0x003F},
+  {0x8FA9FC,0x8FA9FC,0x003F},
+  {0x8FA9FD,0x8FA9FD,0x003F},
+  {0x8FA9FE,0x8FA9FE,0x003F},
+  {0x8FA9FF,0x8FA9FF,0x003F},
+};
+
+
+static MY_UNICASE_INFO c8FAA[]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FAAA0,0x8FAAA0,0x003F}, /* 8FAAA0 */
+  {0x8FAAA1,0x8FABA1,0x00C1},
+  {0x8FAAA2,0x8FABA2,0x00C0},
+  {0x8FAAA3,0x8FABA3,0x00C4},
+  {0x8FAAA4,0x8FABA4,0x00C2},
+  {0x8FAAA5,0x8FABA5,0x0102},
+  {0x8FAAA6,0x8FABA6,0x01CD},
+  {0x8FAAA7,0x8FABA7,0x0100},
+  {0x8FAAA8,0x8FABA8,0x0104},
+  {0x8FAAA9,0x8FABA9,0x00C5},
+  {0x8FAAAA,0x8FABAA,0x00C3},
+  {0x8FAAAB,0x8FABAB,0x0106},
+  {0x8FAAAC,0x8FABAC,0x0108},
+  {0x8FAAAD,0x8FABAD,0x010C},
+  {0x8FAAAE,0x8FABAE,0x00C7},
+  {0x8FAAAF,0x8FABAF,0x010A},
+  {0x8FAAB0,0x8FABB0,0x010E}, /* 8FAAB0 */
+  {0x8FAAB1,0x8FABB1,0x00C9},
+  {0x8FAAB2,0x8FABB2,0x00C8},
+  {0x8FAAB3,0x8FABB3,0x00CB},
+  {0x8FAAB4,0x8FABB4,0x00CA},
+  {0x8FAAB5,0x8FABB5,0x011A},
+  {0x8FAAB6,0x8FABB6,0x0116},
+  {0x8FAAB7,0x8FABB7,0x0112},
+  {0x8FAAB8,0x8FABB8,0x0118},
+  {0x8FAAB9,0x8FAAB9,0x003F},
+  {0x8FAABA,0x8FABBA,0x011C},
+  {0x8FAABB,0x8FABBB,0x011E},
+  {0x8FAABC,0x8FAABC,0x0122},
+  {0x8FAABD,0x8FABBD,0x0120},
+  {0x8FAABE,0x8FABBE,0x0124},
+  {0x8FAABF,0x8FABBF,0x00CD},
+  {0x8FAAC0,0x8FABC0,0x00CC}, /* 8FAAC0 */
+  {0x8FAAC1,0x8FABC1,0x00CF},
+  {0x8FAAC2,0x8FABC2,0x00CE},
+  {0x8FAAC3,0x8FABC3,0x01CF},
+  {0x8FAAC4,    0x69,0x0130},
+  {0x8FAAC5,0x8FABC5,0x012A},
+  {0x8FAAC6,0x8FABC6,0x012E},
+  {0x8FAAC7,0x8FABC7,0x0128},
+  {0x8FAAC8,0x8FABC8,0x0134},
+  {0x8FAAC9,0x8FABC9,0x0136},
+  {0x8FAACA,0x8FABCA,0x0139},
+  {0x8FAACB,0x8FABCB,0x013D},
+  {0x8FAACC,0x8FABCC,0x013B},
+  {0x8FAACD,0x8FABCD,0x0143},
+  {0x8FAACE,0x8FABCE,0x0147},
+  {0x8FAACF,0x8FABCF,0x0145},
+  {0x8FAAD0,0x8FABD0,0x00D1}, /* 8FAAD0 */
+  {0x8FAAD1,0x8FABD1,0x00D3},
+  {0x8FAAD2,0x8FABD2,0x00D2},
+  {0x8FAAD3,0x8FABD3,0x00D6},
+  {0x8FAAD4,0x8FABD4,0x00D4},
+  {0x8FAAD5,0x8FABD5,0x01D1},
+  {0x8FAAD6,0x8FABD6,0x0150},
+  {0x8FAAD7,0x8FABD7,0x014C},
+  {0x8FAAD8,0x8FABD8,0x00D5},
+  {0x8FAAD9,0x8FABD9,0x0154},
+  {0x8FAADA,0x8FABDA,0x0158},
+  {0x8FAADB,0x8FABDB,0x0156},
+  {0x8FAADC,0x8FABDC,0x015A},
+  {0x8FAADD,0x8FABDD,0x015C},
+  {0x8FAADE,0x8FABDE,0x0160},
+  {0x8FAADF,0x8FABDF,0x015E},
+  {0x8FAAE0,0x8FABE0,0x0164}, /* 8FAAE0 */
+  {0x8FAAE1,0x8FABE1,0x0162},
+  {0x8FAAE2,0x8FABE2,0x00DA},
+  {0x8FAAE3,0x8FABE3,0x00D9},
+  {0x8FAAE4,0x8FABE4,0x00DC},
+  {0x8FAAE5,0x8FABE5,0x00DB},
+  {0x8FAAE6,0x8FABE6,0x016C},
+  {0x8FAAE7,0x8FABE7,0x01D3},
+  {0x8FAAE8,0x8FABE8,0x0170},
+  {0x8FAAE9,0x8FABE9,0x016A},
+  {0x8FAAEA,0x8FABEA,0x0172},
+  {0x8FAAEB,0x8FABEB,0x016E},
+  {0x8FAAEC,0x8FABEC,0x0168},
+  {0x8FAAED,0x8FABED,0x01D7},
+  {0x8FAAEE,0x8FABEE,0x01DB},
+  {0x8FAAEF,0x8FABEF,0x01D9},
+  {0x8FAAF0,0x8FABF0,0x01D5}, /* 8FAAF0 */
+  {0x8FAAF1,0x8FABF1,0x0174},
+  {0x8FAAF2,0x8FABF2,0x00DD},
+  {0x8FAAF3,0x8FABF3,0x0178},
+  {0x8FAAF4,0x8FABF4,0x0176},
+  {0x8FAAF5,0x8FABF5,0x0179},
+  {0x8FAAF6,0x8FABF6,0x017D},
+  {0x8FAAF7,0x8FABF7,0x017B},
+  {0x8FAAF8,0x8FAAF8,0x003F},
+  {0x8FAAF9,0x8FAAF9,0x003F},
+  {0x8FAAFA,0x8FAAFA,0x003F},
+  {0x8FAAFB,0x8FAAFB,0x003F},
+  {0x8FAAFC,0x8FAAFC,0x003F},
+  {0x8FAAFD,0x8FAAFD,0x003F},
+  {0x8FAAFE,0x8FAAFE,0x003F},
+  {0x8FAAFF,0x8FAAFF,0x003F},
+};
+
+
+static MY_UNICASE_INFO c8FAB[]=
+{
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
+  {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
+  {0x8FABA0,0x8FABA0,0x003F}, /* 8FABA0 */
+  {0x8FAAA1,0x8FABA1,0x00E1},
+  {0x8FAAA2,0x8FABA2,0x00E0},
+  {0x8FAAA3,0x8FABA3,0x00E4},
+  {0x8FAAA4,0x8FABA4,0x00E2},
+  {0x8FAAA5,0x8FABA5,0x0103},
+  {0x8FAAA6,0x8FABA6,0x01CE},
+  {0x8FAAA7,0x8FABA7,0x0101},
+  {0x8FAAA8,0x8FABA8,0x0105},
+  {0x8FAAA9,0x8FABA9,0x00E5},
+  {0x8FAAAA,0x8FABAA,0x00E3},
+  {0x8FAAAB,0x8FABAB,0x0107},
+  {0x8FAAAC,0x8FABAC,0x0109},
+  {0x8FAAAD,0x8FABAD,0x010D},
+  {0x8FAAAE,0x8FABAE,0x00E7},
+  {0x8FAAAF,0x8FABAF,0x010B},
+  {0x8FAAB0,0x8FABB0,0x010F}, /* 8FABB0 */
+  {0x8FAAB1,0x8FABB1,0x00E9},
+  {0x8FAAB2,0x8FABB2,0x00E8},
+  {0x8FAAB3,0x8FABB3,0x00EB},
+  {0x8FAAB4,0x8FABB4,0x00EA},
+  {0x8FAAB5,0x8FABB5,0x011B},
+  {0x8FAAB6,0x8FABB6,0x0117},
+  {0x8FAAB7,0x8FABB7,0x0113},
+  {0x8FAAB8,0x8FABB8,0x0119},
+  {0x8FABB9,0x8FABB9,0x01F5},
+  {0x8FAABA,0x8FABBA,0x011D},
+  {0x8FAABB,0x8FABBB,0x011F},
+  {0x8FABBC,0x8FABBC,0x003F},
+  {0x8FAABD,0x8FABBD,0x0121},
+  {0x8FAABE,0x8FABBE,0x0125},
+  {0x8FAABF,0x8FABBF,0x00ED},
+  {0x8FAAC0,0x8FABC0,0x00EC}, /* 8FABC0 */
+  {0x8FAAC1,0x8FABC1,0x00EF},
+  {0x8FAAC2,0x8FABC2,0x00EE},
+  {0x8FAAC3,0x8FABC3,0x01D0},
+  {0x8FABC4,0x8FABC4,0x003F},
+  {0x8FAAC5,0x8FABC5,0x012B},
+  {0x8FAAC6,0x8FABC6,0x012F},
+  {0x8FAAC7,0x8FABC7,0x0129},
+  {0x8FAAC8,0x8FABC8,0x0135},
+  {0x8FAAC9,0x8FABC9,0x0137},
+  {0x8FAACA,0x8FABCA,0x013A},
+  {0x8FAACB,0x8FABCB,0x013E},
+  {0x8FAACC,0x8FABCC,0x013C},
+  {0x8FAACD,0x8FABCD,0x0144},
+  {0x8FAACE,0x8FABCE,0x0148},
+  {0x8FAACF,0x8FABCF,0x0146},
+  {0x8FAAD0,0x8FABD0,0x00F1}, /* 8FABD0 */
+  {0x8FAAD1,0x8FABD1,0x00F3},
+  {0x8FAAD2,0x8FABD2,0x00F2},
+  {0x8FAAD3,0x8FABD3,0x00F6},
+  {0x8FAAD4,0x8FABD4,0x00F4},
+  {0x8FAAD5,0x8FABD5,0x01D2},
+  {0x8FAAD6,0x8FABD6,0x0151},
+  {0x8FAAD7,0x8FABD7,0x014D},
+  {0x8FAAD8,0x8FABD8,0x00F5},
+  {0x8FAAD9,0x8FABD9,0x0155},
+  {0x8FAADA,0x8FABDA,0x0159},
+  {0x8FAADB,0x8FABDB,0x0157},
+  {0x8FAADC,0x8FABDC,0x015B},
+  {0x8FAADD,0x8FABDD,0x015D},
+  {0x8FAADE,0x8FABDE,0x0161},
+  {0x8FAADF,0x8FABDF,0x015F},
+  {0x8FAAE0,0x8FABE0,0x0165}, /* 8FABE0 */
+  {0x8FAAE1,0x8FABE1,0x0163},
+  {0x8FAAE2,0x8FABE2,0x00FA},
+  {0x8FAAE3,0x8FABE3,0x00F9},
+  {0x8FAAE4,0x8FABE4,0x00FC},
+  {0x8FAAE5,0x8FABE5,0x00FB},
+  {0x8FAAE6,0x8FABE6,0x016D},
+  {0x8FAAE7,0x8FABE7,0x01D4},
+  {0x8FAAE8,0x8FABE8,0x0171},
+  {0x8FAAE9,0x8FABE9,0x016B},
+  {0x8FAAEA,0x8FABEA,0x0173},
+  {0x8FAAEB,0x8FABEB,0x016F},
+  {0x8FAAEC,0x8FABEC,0x0169},
+  {0x8FAAED,0x8FABED,0x01D8},
+  {0x8FAAEE,0x8FABEE,0x01DC},
+  {0x8FAAEF,0x8FABEF,0x01DA},
+  {0x8FAAF0,0x8FABF0,0x01D6}, /* 8FABF0 */
+  {0x8FAAF1,0x8FABF1,0x0175},
+  {0x8FAAF2,0x8FABF2,0x00FD},
+  {0x8FAAF3,0x8FABF3,0x00FF},
+  {0x8FAAF4,0x8FABF4,0x0177},
+  {0x8FAAF5,0x8FABF5,0x017A},
+  {0x8FAAF6,0x8FABF6,0x017E},
+  {0x8FAAF7,0x8FABF7,0x017C},
+  {0x8FABF8,0x8FABF8,0x003F},
+  {0x8FABF9,0x8FABF9,0x003F},
+  {0x8FABFA,0x8FABFA,0x003F},
+  {0x8FABFB,0x8FABFB,0x003F},
+  {0x8FABFC,0x8FABFC,0x003F},
+  {0x8FABFD,0x8FABFD,0x003F},
+  {0x8FABFE,0x8FABFE,0x003F},
+  {0x8FABFF,0x8FABFF,0x003F}
+};
+
+
+static MY_UNICASE_INFO *my_caseinfo_ujis[512]=
+{
+  /* JIS-X-0208 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL,  cA2,  cA3, NULL, NULL,  cA6,  cA7, /* A */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+
+  /* JIS-X-0212 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL,c8FA6,c8FA7, /* A */
+  NULL, c8FA9,c8FAA,c8FAB,NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+};
+#endif /* HAVE_CHARSET_ujis */
+
+
+
+#if defined(HAVE_CHARSET_ujis) || defined(HAVE_CHARSET_eucjpms)
+
+/*
+  UJIS and EUCJPMS share the same UPPER/LOWER functions.
+*/
+
+static MY_UNICASE_INFO*
+get_case_info_for_ch(CHARSET_INFO *cs, uint plane, uint page, uint offs)
+{
+  MY_UNICASE_INFO *p;
+  return (p= cs->caseinfo[page + plane * 256]) ? &p[offs & 0xFF] : NULL;
+}
+
+
+/*
+  Generic function to handle UPPER and LOWER translation
+*/
+static size_t
+my_casefold_ujis(CHARSET_INFO *cs,
+                 char *src, size_t srclen,
+                 char *dst, size_t dstlen __attribute__((unused)),
+                 uchar *map,
+                 size_t is_upper)
+{
+  char *srcend= src + srclen, *dst0= dst;
+
+  while (src < srcend)
+  {
+    size_t mblen= my_ismbchar(cs, src, srcend);
+    if (mblen)
+    {
+      MY_UNICASE_INFO *ch;
+      ch= (mblen == 2) ?
+        get_case_info_for_ch(cs, 0, (uchar) src[0], (uchar) src[1]) :
+        get_case_info_for_ch(cs, 1, (uchar) src[1], (uchar) src[2]);
+      if (ch)
+      {
+        int code= is_upper ? ch->toupper : ch->tolower;
+        src+= mblen;
+        if (code > 0xFFFF)
+          *dst++= (char) (uchar) ((code >> 16) & 0xFF);
+        if (code > 0xFF)
+          *dst++= (char) (uchar) ((code >> 8) & 0xFF);
+        *dst++= (char) (uchar) (code & 0xFF);
+      }
+      else
+      {
+        if (mblen == 3)
+          *dst++= *src++;
+        *dst++= *src++;
+        *dst++= *src++;
+      }
+    }
+    else
+    {
+      *dst++= (char) map[(uchar) *src++];
+    }
+  }
+  return (size_t) (dst - dst0);
+}
+
+
+/*
+  LOWER()
+*/
+size_t
+my_casedn_ujis(CHARSET_INFO * cs, char *src, size_t srclen,
+               char *dst, size_t dstlen)
+{
+  DBUG_ASSERT(dstlen >= srclen * cs->casedn_multiply); 
+  DBUG_ASSERT(src != dst || cs->casedn_multiply == 1);
+  return my_casefold_ujis(cs, src, srclen, dst, dstlen, cs->to_lower, 0);
+}
+
+
+/*
+  UPPER()
+*/
+size_t
+my_caseup_ujis(CHARSET_INFO * cs, char *src, size_t srclen,
+               char *dst, size_t dstlen)
+{
+  DBUG_ASSERT(dstlen >= srclen * cs->caseup_multiply);
+  DBUG_ASSERT(src != dst || cs->caseup_multiply == 1);
+  return my_casefold_ujis(cs, src, srclen, dst, dstlen, cs->to_upper, 1);
+}
+#endif /* defined(HAVE_CHARSET_ujis) || defined(HAVE_CHARSET_eucjpms) */
+
+
+
+#ifdef HAVE_CHARSET_ujis
+
 static MY_COLLATION_HANDLER my_collation_ci_handler =
 {
     NULL,		/* init */
@@ -8524,8 +9781,8 @@ static MY_CHARSET_HANDLER my_charset_han
     my_mb_ctype_mb,
     my_caseup_str_mb,
     my_casedn_str_mb,
-    my_caseup_mb,
-    my_casedn_mb,
+    my_caseup_ujis,
+    my_casedn_ujis,
     my_snprintf_8bit,
     my_long10_to_str_8bit,
     my_longlong10_to_str_8bit,
@@ -8558,12 +9815,12 @@ CHARSET_INFO my_charset_ujis_japanese_ci
     NULL,		/* contractions */
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_ujis,   /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */
     1,                  /* caseup_multiply  */
-    1,                  /* casedn_multiply  */
+    2,                  /* casedn_multiply  */
     1,			/* mbminlen     */
     3,			/* mbmaxlen     */
     0,			/* min_sort_char */
@@ -8591,12 +9848,12 @@ CHARSET_INFO my_charset_ujis_bin=
     NULL,		/* sort_order_big*/
     NULL,		/* tab_to_uni   */
     NULL,		/* tab_from_uni */
-    my_unicase_default, /* caseinfo     */
+    my_caseinfo_ujis,   /* caseinfo     */
     NULL,		/* state_map    */
     NULL,		/* ident_map    */
     1,			/* strxfrm_multiply */
     1,                  /* caseup_multiply  */
-    1,                  /* casedn_multiply  */
+    2,                  /* casedn_multiply  */
     1,			/* mbminlen     */
     3,			/* mbmaxlen     */
     0,			/* min_sort_char */
@@ -8608,4 +9865,4 @@ CHARSET_INFO my_charset_ujis_bin=
 };
 
 
-#endif
+#endif /* HAVE_CHARSET_ujis */

Attachment: [text/bzr-bundle] bzr/bar@mysql.com-20091127074235-u7cichvp7alaadtu.bundle
Thread
bzr commit into mysql-5.6-next-mr branch (bar:2925) WL#4583Alexander Barkov27 Nov
Re: bzr commit into mysql-5.6-next-mr branch (bar:2925) WL#4583Peter Gulutzan29 Nov
  • Re: bzr commit into mysql-5.6-next-mr branch (bar:2925) WL#4583Alexander Barkov11 Dec