/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



/* ======================================================================= */

/* This file contain the DBCS to UniCode tables for the following */
/* korean charsets: */
/* JOHAB */

/* ======================================================================= */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_00[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, /* 0x00 */
	0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, /* 0x00 */
	0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, /* 0x10 */
	0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, /* 0x10 */
	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, /* 0x20 */
	0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, /* 0x20 */
	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0x30 */
	0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, /* 0x30 */
	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0x40 */
	0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, /* 0x40 */
	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 0x50 */
	0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, /* 0x50 */
	0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 0x60 */
	0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, /* 0x60 */
	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, /* 0x70 */
	0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xD9AE, 	 0, 	 0, 0xD9B4, 	 0, 	 0, 0xD967, /* 0xA0 */
	0xD937, 	 0, 0xDCA3, 	 0, 	 0, 0xD939, 	 0, 	 0, /* 0xA0 */
	0xD956, 0xD94E, 0xDD99, 0xDD9A, 0xD9A5, 	 0, 0xD9D2, 0xD934, /* 0xB0 */
	0xD9AC, 0xDD98, 0xDCAC, 	 0, 0xDCF9, 0xDCF6, 0xDCFA, 0xD9AF, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDCA1, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xDCA2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD94F, /* 0xD0 */
	0xDCAA, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDCAD, 0xDD3C, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDD31, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xDD33, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD950, /* 0xF0 */
	0xDD3A, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDD3D			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_01[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xDD32, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDCA4, 0xDD34, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xDD35, 0xDCA6, 0xDD36, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xDD37, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDCA8, /* 0x30 */
	0xDD38, 0xDCA9, 0xDD39, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xDD40, 0xDCAF, 0xDD3F, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xDCAB, 0xDD3B, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDCAE, 0xDD3E	/* 0x60 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_02[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xD9A7, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xD9B0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xD9A8, 0xD9AB, 0xD9AA, 0xD9AD, 	 0, 0xD9A9					/* 0xD0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_03[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xDB51, 0xDB52, 0xDB53, 0xDB54, 0xDB55, 0xDB56, 0xDB57, /* 0x90 */
	0xDB58, 0xDB59, 0xDB5A, 0xDB5B, 0xDB5C, 0xDB5D, 0xDB5E, 0xDB5F, /* 0x90 */
	0xDB60, 0xDB61, 	 0, 0xDB62, 0xDB63, 0xDB64, 0xDB65, 0xDB66, /* 0xA0 */
	0xDB67, 0xDB68, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xDB71, 0xDB72, 0xDB73, 0xDB74, 0xDB75, 0xDB76, 0xDB77, /* 0xB0 */
	0xDB78, 0xDB79, 0xDB7A, 0xDB7B, 0xDB7C, 0xDB7D, 0xDB7E, 0xDB91, /* 0xB0 */
	0xDB92, 0xDB93, 	 0, 0xDB94, 0xDB95, 0xDB96, 0xDB97, 0xDB98, /* 0xC0 */
	0xDB99, 0xDB9A													/* 0xC0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_04[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xDEA7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xDEA1, 0xDEA2, 0xDEA3, 0xDEA4, 0xDEA5, 0xDEA6, 0xDEA8, 0xDEA9, /* 0x10 */
	0xDEAA, 0xDEAB, 0xDEAC, 0xDEAD, 0xDEAE, 0xDEAF, 0xDEB0, 0xDEB1, /* 0x10 */
	0xDEB2, 0xDEB3, 0xDEB4, 0xDEB5, 0xDEB6, 0xDEB7, 0xDEB8, 0xDEB9, /* 0x20 */
	0xDEBA, 0xDEBB, 0xDEBC, 0xDEBD, 0xDEBE, 0xDEBF, 0xDEC0, 0xDEC1, /* 0x20 */
	0xDED1, 0xDED2, 0xDED3, 0xDED4, 0xDED5, 0xDED6, 0xDED8, 0xDED9, /* 0x30 */
	0xDEDA, 0xDEDB, 0xDEDC, 0xDEDD, 0xDEDE, 0xDEDF, 0xDEE0, 0xDEE1, /* 0x30 */
	0xDEE2, 0xDEE3, 0xDEE4, 0xDEE5, 0xDEE6, 0xDEE7, 0xDEE8, 0xDEE9, /* 0x40 */
	0xDEEA, 0xDEEB, 0xDEEC, 0xDEED, 0xDEEE, 0xDEEF, 0xDEF0, 0xDEF1, /* 0x40 */
		 0, 0xDED7													/* 0x50 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_20[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xD93A, 	 0, 	 0, /* 0x10 */
	0xD93E, 0xD93F, 	 0, 	 0, 0xD940, 0xD941, 	 0, 	 0, /* 0x10 */
	0xD9D3, 0xD9D4, 	 0, 	 0, 	 0, 0xD935, 0xD936, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xD9B6, 	 0, 0xD957, 0xD958, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xD968, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xDD9B, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDD9C, /* 0x70 */
		 0, 0xDD9D, 0xDD9E, 0xDD9F, 0xDDA0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0x005C													/* 0xA0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_21[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xD959, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xD9B5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xDC34, 	 0, 	 0, 0xD9E0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xD9E5, 0xD9E2, 	 0, 	 0, 	 0, 0xDC69, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xD95A, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xDCF7, 0xDCF8, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xDCFB, 0xDCFC, 0xDCFD, 0xDCFE, 	 0, /* 0x50 */
	0xDB40, 0xDB41, 0xDB42, 0xDB43, 0xDB44, 0xDB45, 0xDB46, 0xDB47, /* 0x60 */
	0xDB48, 0xDB49, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xDB31, 0xDB32, 0xDB33, 0xDB34, 0xDB35, 0xDB36, 0xDB37, 0xDB38, /* 0x70 */
	0xDB39, 0xDB3A, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xD977, 0xD978, 0xD976, 0xD979, 0xD97A, 0xD9D5, 0xD9D8, 0xD9D6, /* 0x90 */
	0xD9D9, 0xD9D7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xD9A1, 	 0, 0xD9A2							/* 0xD0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_22[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD9A3, 	 0, 0xD963, 0xD9A4, 	 0, 	 0, 	 0, 0xD964, /* 0x00 */
	0xD996, 	 0, 	 0, 0xD997, 	 0, 	 0, 	 0, 0xD9B3, /* 0x00 */
		 0, 0xD9B2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xD97E, 	 0, 	 0, 0xD992, 0xD954, 	 0, /* 0x10 */
	0xD960, 	 0, 	 0, 	 0, 	 0, 0xD93B, 	 0, 0xD99E, /* 0x20 */
	0xD99F, 0xD99D, 0xD99C, 0xD994, 0xD995, 	 0, 0xD9B1, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xD955, 0xD993, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xD93D, 0xD991, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xD966, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xD951, 0xD965, 	 0, 	 0, 0xD952, 0xD953, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xD97C, 0xD97D, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xD99A, 0xD99B, 	 0, 	 0, 0xD998, 0xD999, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xD9C1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD961					/* 0xA0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_23[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xD962											/* 0x10 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_24[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xDCE7, 0xDCE8, 0xDCE9, 0xDCEA, 0xDCEB, 0xDCEC, 0xDCED, 0xDCEE, /* 0x60 */
	0xDCEF, 0xDCF0, 0xDCF1, 0xDCF2, 0xDCF3, 0xDCF4, 0xDCF5, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xDD77, 0xDD78, 0xDD79, 0xDD7A, /* 0x70 */
	0xDD7B, 0xDD7C, 0xDD7D, 0xDD7E, 0xDD91, 0xDD92, 0xDD93, 0xDD94, /* 0x70 */
	0xDD95, 0xDD96, 0xDD97, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xDD5D, 0xDD5E, 0xDD5F, 0xDD60, /* 0x90 */
	0xDD61, 0xDD62, 0xDD63, 0xDD64, 0xDD65, 0xDD66, 0xDD67, 0xDD68, /* 0xA0 */
	0xDD69, 0xDD6A, 0xDD6B, 0xDD6C, 0xDD6D, 0xDD6E, 0xDD6F, 0xDD70, /* 0xA0 */
	0xDD71, 0xDD72, 0xDD73, 0xDD74, 0xDD75, 0xDD76, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xDCCD, 0xDCCE, 0xDCCF, 0xDCD0, 0xDCD1, 0xDCD2, 0xDCD3, 0xDCD4, /* 0xD0 */
	0xDCD5, 0xDCD6, 0xDCD7, 0xDCD8, 0xDCD9, 0xDCDA, 0xDCDB, 0xDCDC, /* 0xD0 */
	0xDCDD, 0xDCDE, 0xDCDF, 0xDCE0, 0xDCE1, 0xDCE2, 0xDCE3, 0xDCE4, /* 0xE0 */
	0xDCE5, 0xDCE6													/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_25[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xDBA1, 0xDBAC, 0xDBA2, 0xDBAD, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xDBA3, 0xDBC8, 0xDBC7, 0xDBAE, /* 0x00 */
	0xDBA4, 0xDBC2, 0xDBC1, 0xDBAF, 0xDBA6, 0xDBC6, 0xDBC5, 0xDBB1, /* 0x10 */
	0xDBA5, 0xDBC4, 0xDBC3, 0xDBB0, 0xDBA7, 0xDBBC, 0xDBC9, 0xDBCA, /* 0x10 */
	0xDBB7, 0xDBCB, 0xDBCC, 0xDBB2, 0xDBA9, 0xDBBE, 0xDBCD, 0xDBCE, /* 0x20 */
	0xDBB9, 0xDBCF, 0xDBD0, 0xDBB4, 0xDBA8, 0xDBD1, 0xDBD2, 0xDBB8, /* 0x20 */
	0xDBBD, 0xDBD3, 0xDBD4, 0xDBB3, 0xDBAA, 0xDBD5, 0xDBD6, 0xDBBA, /* 0x30 */
	0xDBBF, 0xDBD7, 0xDBD8, 0xDBB5, 0xDBAB, 0xDBD9, 0xDBDA, 0xDBBB, /* 0x30 */
	0xDBDB, 0xDBDC, 0xDBC0, 0xDBDD, 0xDBDE, 0xDBDF, 0xDBE0, 0xDBE1, /* 0x40 */
	0xDBE2, 0xDBE3, 0xDBE4, 0xDBB6, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xD9C6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xD971, 0xD970, 	 0, 0xD9C3, 0xD9C7, 0xD9C8, 0xD9CB, 0xD9CA, /* 0xA0 */
	0xD9C9, 0xD9CC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xD973, 0xD972, 	 0, 	 0, 0xD9BA, 0xD9B9, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xD975, 0xD974, 	 0, 	 0, /* 0xB0 */
	0xD9B8, 0xD9B7, 	 0, 	 0, 	 0, 	 0, 0xD96F, 0xD96E, /* 0xC0 */
	0xD9C2, 	 0, 	 0, 0xD96B, 	 0, 	 0, 0xD96D, 0xD96C, /* 0xC0 */
	0xD9C4, 0xD9C5													/* 0xD0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_26[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xD96A, 0xD969, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD9CF, 0xD9CE, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xD9D0, 	 0, 0xD9D1, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xD95F, 	 0, 0xD95E, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xD9BC, 0xD9BD, 	 0, 0xD9C0, 0xD9BB, 0xD9BE, 	 0, 0xD9BF, /* 0x60 */
	0xD9CD, 0xD9DB, 0xD9DC, 	 0, 0xD9DD, 0xD9DA					/* 0x60 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_30[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD931, 0xD932, 0xD933, 0xD938, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xD944, 0xD945, 0xD946, 0xD947, 0xD948, 0xD949, 0xD94A, 0xD94B, /* 0x00 */
	0xD94C, 0xD94D, 	 0, 0xD97B, 0xD942, 0xD943, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xDDA1, 0xDDA2, 0xDDA3, 0xDDA4, 0xDDA5, 0xDDA6, 0xDDA7, /* 0x40 */
	0xDDA8, 0xDDA9, 0xDDAA, 0xDDAB, 0xDDAC, 0xDDAD, 0xDDAE, 0xDDAF, /* 0x40 */
	0xDDB0, 0xDDB1, 0xDDB2, 0xDDB3, 0xDDB4, 0xDDB5, 0xDDB6, 0xDDB7, /* 0x50 */
	0xDDB8, 0xDDB9, 0xDDBA, 0xDDBB, 0xDDBC, 0xDDBD, 0xDDBE, 0xDDBF, /* 0x50 */
	0xDDC0, 0xDDC1, 0xDDC2, 0xDDC3, 0xDDC4, 0xDDC5, 0xDDC6, 0xDDC7, /* 0x60 */
	0xDDC8, 0xDDC9, 0xDDCA, 0xDDCB, 0xDDCC, 0xDDCD, 0xDDCE, 0xDDCF, /* 0x60 */
	0xDDD0, 0xDDD1, 0xDDD2, 0xDDD3, 0xDDD4, 0xDDD5, 0xDDD6, 0xDDD7, /* 0x70 */
	0xDDD8, 0xDDD9, 0xDDDA, 0xDDDB, 0xDDDC, 0xDDDD, 0xDDDE, 0xDDDF, /* 0x70 */
	0xDDE0, 0xDDE1, 0xDDE2, 0xDDE3, 0xDDE4, 0xDDE5, 0xDDE6, 0xDDE7, /* 0x80 */
	0xDDE8, 0xDDE9, 0xDDEA, 0xDDEB, 0xDDEC, 0xDDED, 0xDDEE, 0xDDEF, /* 0x80 */
	0xDDF0, 0xDDF1, 0xDDF2, 0xDDF3, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xDE31, 0xDE32, 0xDE33, 0xDE34, 0xDE35, 0xDE36, 0xDE37, /* 0xA0 */
	0xDE38, 0xDE39, 0xDE3A, 0xDE3B, 0xDE3C, 0xDE3D, 0xDE3E, 0xDE3F, /* 0xA0 */
	0xDE40, 0xDE41, 0xDE42, 0xDE43, 0xDE44, 0xDE45, 0xDE46, 0xDE47, /* 0xB0 */
	0xDE48, 0xDE49, 0xDE4A, 0xDE4B, 0xDE4C, 0xDE4D, 0xDE4E, 0xDE4F, /* 0xB0 */
	0xDE50, 0xDE51, 0xDE52, 0xDE53, 0xDE54, 0xDE55, 0xDE56, 0xDE57, /* 0xC0 */
	0xDE58, 0xDE59, 0xDE5A, 0xDE5B, 0xDE5C, 0xDE5D, 0xDE5E, 0xDE5F, /* 0xC0 */
	0xDE60, 0xDE61, 0xDE62, 0xDE63, 0xDE64, 0xDE65, 0xDE66, 0xDE67, /* 0xD0 */
	0xDE68, 0xDE69, 0xDE6A, 0xDE6B, 0xDE6C, 0xDE6D, 0xDE6E, 0xDE6F, /* 0xD0 */
	0xDE70, 0xDE71, 0xDE72, 0xDE73, 0xDE74, 0xDE75, 0xDE76, 0xDE77, /* 0xE0 */
	0xDE78, 0xDE79, 0xDE7A, 0xDE7B, 0xDE7C, 0xDE7D, 0xDE7E, 0xDE91, /* 0xE0 */
	0xDE92, 0xDE93, 0xDE94, 0xDE95, 0xDE96, 0xDE97, 0xDE98			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_31[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0x8841, 0x8C41, 0x8444, 0x9041, 0x8446, 0x8447, 0x9441, /* 0x30 */
	0x9841, 0x9C41, 0x844A, 0x844B, 0x844C, 0x844D, 0x844E, 0x844F, /* 0x30 */
	0x8450, 0xA041, 0xA441, 0xA841, 0x8454, 0xAC41, 0xB041, 0xB441, /* 0x40 */
	0xB841, 0xBC41, 0xC041, 0xC441, 0xC841, 0xCC41, 0xD041, 0x8461, /* 0x40 */
	0x8481, 0x84A1, 0x84C1, 0x84E1, 0x8541, 0x8561, 0x8581, 0x85A1, /* 0x50 */
	0x85C1, 0x85E1, 0x8641, 0x8661, 0x8681, 0x86A1, 0x86C1, 0x86E1, /* 0x50 */
	0x8741, 0x8761, 0x8781, 0x87A1, 0xDAD4, 0xDAD5, 0xDAD6, 0xDAD7, /* 0x60 */
	0xDAD8, 0xDAD9, 0xDADA, 0xDADB, 0xDADC, 0xDADD, 0xDADE, 0xDADF, /* 0x60 */
	0xDAE0, 0xDAE1, 0xDAE2, 0xDAE3, 0xDAE4, 0xDAE5, 0xDAE6, 0xDAE7, /* 0x70 */
	0xDAE8, 0xDAE9, 0xDAEA, 0xDAEB, 0xDAEC, 0xDAED, 0xDAEE, 0xDAEF, /* 0x70 */
	0xDAF0, 0xDAF1, 0xDAF2, 0xDAF3, 0xDAF4, 0xDAF5, 0xDAF6, 0xDAF7, /* 0x80 */
	0xDAF8, 0xDAF9, 0xDAFA, 0xDAFB, 0xDAFC, 0xDAFD, 0xDAFE			/* 0x80 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_32[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xDD41, 0xDD42, 0xDD43, 0xDD44, 0xDD45, 0xDD46, 0xDD47, 0xDD48, /* 0x00 */
	0xDD49, 0xDD4A, 0xDD4B, 0xDD4C, 0xDD4D, 0xDD4E, 0xDD4F, 0xDD50, /* 0x00 */
	0xDD51, 0xDD52, 0xDD53, 0xDD54, 0xDD55, 0xDD56, 0xDD57, 0xDD58, /* 0x10 */
	0xDD59, 0xDD5A, 0xDD5B, 0xDD5C, 0xD9DF, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xDCB1, 0xDCB2, 0xDCB3, 0xDCB4, 0xDCB5, 0xDCB6, 0xDCB7, 0xDCB8, /* 0x60 */
	0xDCB9, 0xDCBA, 0xDCBB, 0xDCBC, 0xDCBD, 0xDCBE, 0xDCBF, 0xDCC0, /* 0x60 */
	0xDCC1, 0xDCC2, 0xDCC3, 0xDCC4, 0xDCC5, 0xDCC6, 0xDCC7, 0xDCC8, /* 0x70 */
	0xDCC9, 0xDCCA, 0xDCCB, 0xDCCC, 	 0, 	 0, 	 0, 0xD9DE	/* 0x70 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_33[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xDC59, 0xDC5A, 0xDC5B, 0xDC5C, 0xDC5D, 	 0, 	 0, 	 0, /* 0x80 */
	0xDC4A, 0xDC4B, 0xDC6C, 0xDC6D, 0xDC6E, 0xDC46, 0xDC47, 0xDC48, /* 0x80 */
	0xDC64, 0xDC65, 0xDC66, 0xDC67, 0xDC68, 0xDC31, 0xDC32, 0xDC33, /* 0x90 */
	0xDC35, 0xDC3B, 0xDC3C, 0xDC3D, 0xDC3E, 0xDC3F, 0xDC40, 0xDC41, /* 0x90 */
	0xDC42, 0xDC43, 0xDC44, 0xDC37, 0xDC38, 0xDC39, 0xDC3A, 0xDC4D, /* 0xA0 */
	0xDC4E, 0xDC75, 0xDC76, 0xDC77, 0xDC78, 0xDC71, 0xDC72, 0xDC73, /* 0xA0 */
	0xDC4F, 0xDC50, 0xDC51, 0xDC52, 0xDC53, 0xDC54, 0xDC55, 0xDC56, /* 0xB0 */
	0xDC57, 0xDC58, 0xDC5E, 0xDC5F, 0xDC60, 0xDC61, 0xDC62, 0xDC63, /* 0xB0 */
	0xDC6A, 0xDC6B, 0xD9E3, 0xDC7C, 0xDC36, 0xDC70, 0xDC91, 0xD9E1, /* 0xC0 */
	0xDC4C, 0xDC7D, 0xDC45, 	 0, 	 0, 	 0, 	 0, 0xDC49, /* 0xC0 */
	0xDC7A, 	 0, 	 0, 0xDC7B, 	 0, 	 0, 0xDC6F, 	 0, /* 0xD0 */
	0xD9E4, 	 0, 	 0, 0xDC74, 0xDC7E, 0xDC79					/* 0xD0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_4E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF179, 0xF2CB, 	 0, 0xF662, 	 0, 	 0, 	 0, 0xE742, /* 0x00 */
	0xF1DB, 0xEAB2, 0xEABE, 0xF7BB, 	 0, 0xE996, 	 0, 	 0, /* 0x00 */
		 0, 0xF5E4, 	 0, 	 0, 0xF4A6, 0xE9E0, 0xEBA6, 	 0, /* 0x10 */
	0xE29A, 0xE940, 	 0, 	 0, 	 0, 	 0, 0xECAA, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF3E9, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xE1FA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xF93F, 0xE4A1, 	 0, 0xF3AB, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xEED1, 0xE43C, 	 0, 0xE29B, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xF3FD, 	 0, 0xEA4F, 0xF8BA, 0xF7B9, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE262, 	 0, /* 0x50 */
	0xECAB, 0xF0E0, 	 0, 	 0, 	 0, 0xE29C, 0xE0F7, 0xEDA5, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xE071, 	 0, 0xE55C, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xF071, 	 0, 	 0, 0xE973, 0xEAAD, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE0EB, 	 0, /* 0x70 */
		 0, 	 0, 0xE5AF, 	 0, 	 0, 	 0, 0xE697, 	 0, /* 0x80 */
	0xEDF8, 	 0, 	 0, 0xEA50, 0xF133, 	 0, 0xEFCD, 	 0, /* 0x80 */
	0xF037, 0xEFF6, 0xF8BB, 	 0, 0xEEE9, 0xF2CC, 	 0, 	 0, /* 0x90 */
	0xE376, 	 0, 	 0, 0xEA51, 	 0, 	 0, 0xED3C, 	 0, /* 0x90 */
		 0, 0xE75C, 0xF7F1, 	 0, 0xE26F, 0xF834, 0xEE42, 	 0, /* 0xA0 */
	0xF89D, 	 0, 	 0, 0xF84D, 0xE158, 0xF2CD, 0xE5D5, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4A2, 	 0, /* 0xB0 */
		 0, 	 0, 0xF161, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xED37, 0xF162, 	 0, 	 0, 0xF641, 	 0, 	 0, 0xE29D, /* 0xC0 */
		 0, 	 0, 0xE361, 0xE0BF, 	 0, 0xF1A4, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xF1A8, 0xEA52, 0xF672, 0xF1DC, /* 0xD0 */
	0xE997, 0xEB49, 	 0, 	 0, 	 0, 0xE55E, 	 0, 0xF545, /* 0xD0 */
		 0, 	 0, 	 0, 0xE4DB, 0xE645, 0xF134, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xED76, 	 0, 0xF3EA, 	 0, 	 0, 	 0, 0xE0EC, 0xE0C0, /* 0xF0 */
		 0, 	 0, 	 0, 0xF194									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_4F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xE37A, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xF7F2, 0xF135, 0xE36F, 	 0, 0xEEEA, 0xE37B, 0xE961, /* 0x00 */
	0xE8E9, 0xF9CC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8D7, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xE871, 	 0, 0xE646, 	 0, /* 0x30 */
	0xECDF, 	 0, 0xEA53, 	 0, 0xEA54, 0xE031, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xF27C, 	 0, 	 0, 0xE4A3, 0xF247, /* 0x40 */
	0xF75F, 	 0, 	 0, 	 0, 	 0, 0xF058, 0xF248, 0xF3AC, /* 0x40 */
	0xF3A5, 0xEFCE, 	 0, 	 0, 	 0, 0xF7BC, 	 0, 	 0, /* 0x50 */
		 0, 0xEDF9, 0xF17A, 0xE9D6, 0xF1C2, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xF735, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDBA, /* 0x60 */
	0xE8D8, 	 0, 	 0, 0xE032, 	 0, 	 0, 0xE3CD, 	 0, /* 0x70 */
		 0, 	 0, 0xF27D, 	 0, 	 0, 	 0, 0xF17B, 0xEA55, /* 0x70 */
		 0, 0xECE0, 	 0, 0xE059, 0xF479, 	 0, 0xE5CE, 	 0, /* 0x80 */
	0xF646, 	 0, 0xE252, 0xE657, 	 0, 0xECB4, 	 0, 0xF3AD, /* 0x80 */
		 0, 0xF072, 	 0, 	 0, 	 0, 	 0, 0xE6C2, 	 0, /* 0x90 */
	0xF4A7, 	 0, 	 0, 0xE1EA, 	 0, 0xF0EE, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7B2, 0xF9A5, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF665, 0xE5E2, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF745, /* 0xB0 */
		 0, 	 0, 0xE197, 0xF5B5, 0xED3D, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xEEEB, 0xF3D5, 	 0, 	 0, 	 0, 0xF34B, 	 0, /* 0xC0 */
		 0, 0xEFB5, 	 0, 0xE159, 0xF865, 	 0, 	 0, 0xEBD4, /* 0xD0 */
		 0, 	 0, 0xE6D6, 	 0, 	 0, 0xE951, 	 0, 0xEA56, /* 0xD0 */
	0xF891, 0xECE1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEBF3, 0xE998, /* 0xE0 */
		 0, 0xE29E, 	 0, 0xE8C4, 	 0, 0xF793, 	 0, 	 0, /* 0xF0 */
	0xE974, 	 0, 0xEDEF											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_50[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xE941, 	 0, 	 0, 	 0, 0xE5D6, 	 0, /* 0x00 */
		 0, 0xF4DA, 	 0, 0xE0C1, 	 0, 0xE8C3, 	 0, 	 0, /* 0x00 */
		 0, 0xE7FA, 0xE4EE, 	 0, 	 0, 	 0, 0xF848, 	 0, /* 0x10 */
		 0, 0xF9A6, 0xF0EF, 	 0, 0xF536, 	 0, 0xE15A, 0xF4A8, /* 0x10 */
		 0, 0xF4DB, 	 0, 0xE8A7, 0xF647, 	 0, 0xE2E6, 0xF394, /* 0x20 */
	0xE0DA, 	 0, 0xEED2, 0xE6C3, 0xF692, 0xEF6E, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xEDA6, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xEDE7, 	 0, 	 0, 	 0, 0xE033, /* 0x40 */
	0xE137, 0xF059, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF746, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF835, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xF3AE, 	 0, 0xF2CE, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE0ED, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xF640, 0xF2CF, 0xEFCF, 	 0, /* 0x70 */
	0xF6DE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xE263, 	 0, 	 0, 	 0, 	 0, 0xE999, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE8A8, 	 0, 	 0, /* 0x80 */
		 0, 0xE0F8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xEAA1, 0xE9E1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xF5CA, 0xEFB6, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xEEEC, 0xF27E, 	 0, 0xF4F0, 	 0, 0xEABF, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE15B, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE351, 	 0, 	 0, /* 0xC0 */
		 0, 0xF562, 0xEB4A, 	 0, 	 0, 	 0, 	 0, 0xEAC0, /* 0xC0 */
		 0, 0xE270, 	 0, 	 0, 	 0, 0xE962, 0xF9EA, 	 0, /* 0xD0 */
		 0, 	 0, 0xE698, 	 0, 	 0, 	 0, 0xF05A, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEF79, 	 0, 0xECAC, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF4D0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xE034, 	 0, 0xE8F8, 	 0, 	 0, 	 0, 0xEA57	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_51[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF0F0, 0xF3D6, 	 0, 	 0, 0xEDE2, 	 0, 0xE15C, 	 0, /* 0x00 */
		 0, 0xE0FB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xF073, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAC1, /* 0x10 */
		 0, 0xE67D, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xEFD0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xF249, 	 0, 	 0, 	 0, 	 0, 0xE5E3, /* 0x30 */
		 0, 	 0, 0xE3D3, 	 0, 0xEDF0, 	 0, 	 0, 	 0, /* 0x30 */
	0xEF44, 0xF0C3, 	 0, 0xF03A, 0xF89E, 0xF5F6, 0xF34C, 0xF9D4, /* 0x40 */
	0xEB4B, 0xE253, 	 0, 0xE34A, 0xF6BA, 0xE795, 0xF6CD, 	 0, /* 0x40 */
		 0, 	 0, 0xED3E, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xE56F, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xE377, 	 0, 	 0, 0xF19F, 	 0, 0xE43E, /* 0x60 */
	0xF291, 0xE5D7, 0xF074, 0xF732, 0xE1EB, 0xE6BF, 0xF8B1, 	 0, /* 0x60 */
		 0, 0xE1EC, 	 0, 	 0, 	 0, 0xE942, 0xE37C, 0xE29F, /* 0x70 */
	0xF292, 	 0, 	 0, 	 0, 0xE152, 	 0, 	 0, 	 0, /* 0x70 */
	0xE37D, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDF7, 	 0, /* 0x80 */
		 0, 	 0, 0xF4FC, 	 0, 	 0, 0xF232, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE7B3, 	 0, 	 0, 0xE796, 	 0, 0xEFB7, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xE23E, 	 0, 	 0, 	 0, 	 0, 0xE7A2, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xE793, 	 0, 0xE55F, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDA7, 0xE5D2, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE639, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xF532, 	 0, 0xF3D7, 	 0, /* 0xC0 */
		 0, 0xE5D8, 	 0, 0xF34D, 0xE6D0, 0xE560, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xE6CF, 0xF0EA, 0xF9EB, 	 0, /* 0xD0 */
		 0, 0xE8ED, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF955, 0xE0C2, 	 0, 	 0, 	 0, 	 0, 0xF9D5, 	 0, /* 0xF0 */
	0xF558, 0xEF7A, 0xF5F3, 	 0, 	 0, 0xF7DE					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_52[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE4EF, 	 0, 	 0, 0xF163, 	 0, 	 0, 0xE9C2, 0xF2B7, /* 0x00 */
	0xEED4, 	 0, 0xE05A, 	 0, 	 0, 	 0, 0xE7FB, 	 0, /* 0x00 */
		 0, 0xF89F, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE63A, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF59A, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xF6F7, 0xE93C, 	 0, 	 0, /* 0x20 */
		 0, 0xE6D7, 0xEAA2, 	 0, 	 0, 	 0, 0xE24E, 	 0, /* 0x20 */
	0xE4F0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF334, 0xEBEC, /* 0x30 */
	0xE2E7, 0xF4CB, 0xF1A9, 0xE04E, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xF591, 	 0, 	 0, 	 0, 0xF65E, /* 0x40 */
		 0, 	 0, 0xEA9D, 0xE34B, 0xE5B7, 0xF293, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xF538, 	 0, 0xE99A, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xE0A7, 	 0, 0xE85E, 	 0, 	 0, /* 0x50 */
		 0, 0xEB76, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xF1A5, 0xF294, 	 0, 	 0, 	 0, 	 0, 0xE99B, /* 0x60 */
		 0, 	 0, 0xF7DC, 	 0, 	 0, 0xF4DC, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF794, 	 0, 0xF59B, /* 0x70 */
		 0, 	 0, 	 0, 0xF993, 	 0, 	 0, 	 0, 0xE34C, /* 0x80 */
	0xE8F9, 0xE6B1, 	 0, 	 0, 	 0, 0xE0FC, 	 0, 	 0, /* 0x80 */
		 0, 0xF335, 0xE0FD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xE5F4, 	 0, 	 0, 	 0, 0xE1ED, /* 0x90 */
	0xE035, 	 0, 	 0, 0xE63B, 0xE352, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xF34E, 0xE44D, 0xE134, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF846, 	 0, /* 0xB0 */
		 0, 0xE15D, 	 0, 0xE89C, 	 0, 0xF65F, 	 0, 0xEFB8, /* 0xC0 */
		 0, 0xE797, 	 0, 	 0, 	 0, 0xE15E, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE6CD, 	 0, 	 0, 0xE561, 0xEFED, 	 0, /* 0xD0 */
	0xE07B, 0xE7E2, 	 0, 0xF9B2, 	 0, 0xECAD, 0xE65C, 0xE7B4, /* 0xD0 */
		 0, 	 0, 0xEBA7, 0xF263, 0xE353, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF9B3, 	 0, 0xE5E4, 	 0, 	 0, /* 0xF0 */
	0xE2E8, 	 0, 0xF1C3, 0xE342, 	 0, 	 0, 0xE2A0, 0xE838	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_53[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xF760, 	 0, 	 0, /* 0x00 */
	0xF9D6, 	 0, 	 0, 	 0, 	 0, 0xF761, 	 0, 0xF762, /* 0x00 */
	0xE963, 	 0, 	 0, 	 0, 	 0, 0xE9E2, 0xF8F9, 0xE9C1, /* 0x10 */
		 0, 0xECB5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xF1DD, 0xE254, 	 0, 0xE0A1, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xE9E3, 	 0, 	 0, 	 0, 	 0, 0xF96D, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xF7AF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE49D, /* 0x30 */
	0xE2A1, 0xED38, 	 0, 0xF546, 0xF1A0, 	 0, 	 0, 0xECAE, /* 0x40 */
	0xEEED, 0xF9C1, 0xE872, 	 0, 	 0, 0xE743, 	 0, 	 0, /* 0x40 */
		 0, 0xE9E4, 0xF391, 0xF693, 0xF892, 	 0, 	 0, 0xE3F5, /* 0x50 */
		 0, 	 0, 0xE85F, 	 0, 0xE964, 	 0, 0xE936, 	 0, /* 0x50 */
	0xF2BF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE25F, 	 0, /* 0x60 */
	0xEB69, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7D6, /* 0x60 */
	0xF164, 0xF05B, 	 0, 	 0, 0xE04F, 0xE5B0, 	 0, 0xE2E9, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF3ED, 	 0, 0xE15F, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xED9A, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xED7D, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xE6D8, 	 0, 0xF9A7, 	 0, 	 0, 	 0, 	 0, 0xF03B, /* 0x90 */
	0xF642, 	 0, 	 0, 	 0, 	 0, 0xE2F0, 0xF7BD, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEE96, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xE0DB, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xF4D1, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xEFD1, 0xF4A9, 0xE370, 0xEFD2, 	 0, 0xE873, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xEC62, 	 0, 0xF632, 0xEBF4, /* 0xD0 */
		 0, 	 0, 	 0, 0xE874, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xEED5, 0xF5BF, 0xE2A2, 0xE1AF, 0xE2A3, 	 0, 	 0, /* 0xE0 */
		 0, 0xE1B0, 0xF3FE, 0xE333, 0xEBAF, 0xF733, 	 0, 0xE036, /* 0xE0 */
	0xF6BB, 0xF47A, 0xEA58, 0xEFD3, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xEA59															/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_54[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xF9DE, 0xE050, 	 0, 	 0, 	 0, /* 0x00 */
	0xF7EA, 0xE3CE, 0xF264, 	 0, 0xE562, 0xE7A3, 0xF9A8, 0xE6D9, /* 0x00 */
	0xF6CE, 0xF84E, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xE2D6, 	 0, 0xE6F0, 	 0, 0xF0E1, /* 0x10 */
	0xF755, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE99C, 	 0, /* 0x20 */
		 0, 0xE9C3, 	 0, 0xF7DF, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xEEEF, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xF9E5, 0xF633, 	 0, 0xE7FC, 0xF9A9, 	 0, 0xEEEE, 	 0, /* 0x30 */
		 0, 	 0, 0xE5E5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xF2D0, 	 0, 0xE1B1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xF6A2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xF3B2, 	 0, 0xF3B1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xE1B2, 	 0, 0xE83B, 	 0, 0xE037, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 0xECE2, 0xF8BC, 0xE7A4, 	 0, 	 0, /* 0x70 */
	0xF24A, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF763, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xF8FA, 	 0, 0xE2A4, 	 0, /* 0x80 */
	0xE99D, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xF673, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF1AA, 	 0, 	 0, 0xF431, 0xE271, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF836, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF7E0, 	 0, 	 0, 	 0, 	 0, 0xF166, 	 0, 	 0, /* 0xB0 */
	0xED7E, 0xF7A1, 	 0, 	 0, 0xF8EF, 	 0, 	 0, 	 0, /* 0xC0 */
	0xF7EB, 0xF233, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xF03C, 	 0, 	 0, 	 0, 0xE038, 	 0, 	 0, /* 0xE0 */
	0xF59C, 	 0, 	 0, 	 0, 	 0, 0xE1D6, 0xF998, 	 0, /* 0xE0 */
		 0, 	 0, 0xF559, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xF764											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_55[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xF736, 	 0, 0xEA5A, 0xF456, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6DA, 	 0, /* 0x00 */
	0xE4D0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xE755, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF076, /* 0x20 */
		 0, 0xF4DD, 	 0, 	 0, 	 0, 0xED6A, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF674, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xF694, 	 0, 0xEAC2, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7FD, /* 0x40 */
		 0, 	 0, 	 0, 0xE198, 	 0, 	 0, 0xE4BA, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xED3F, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xF7E1, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF336, 	 0, 	 0, 	 0, /* 0x70 */
	0xE0D3, 	 0, 	 0, 	 0, 0xEB4C, 	 0, 0xF55A, 0xE59C, /* 0x80 */
		 0, 0xF9AA, 0xF7E2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xF547, 0xF9C2, 0xF940, 	 0, 0xF9EC, 0xE072, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF9BD, /* 0xA0 */
		 0, 0xF077, 0xEAC3, 0xE3D2, 0xE272, 	 0, 0xE4A4, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF9AB, 	 0, 0xEAE0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xF457, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xEEF0, 	 0, 0xE37E, 	 0, 	 0, 0xF4AA, /* 0xD0 */
		 0, 	 0, 	 0, 0xEA5B, 0xF648, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEBF5, 0xF3B3			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_56[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
													0xF6A3, 	 0, /* 0x00 */
		 0, 0xE039, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xE2A5, 	 0, 	 0, 0xEAC4, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEBB0, /* 0x20 */
		 0, 	 0, 0xF34F, 	 0, 0xF634, 	 0, 0xECB6, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xF856, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xE391, 	 0, 	 0, 0xF9ED, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xE9C4, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF999, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEE4F, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xEA3D, 	 0, 0xF84F, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xEDF1, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xF1C4, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE435, 	 0, 	 0, 0xF9EE, 	 0, 	 0, /* 0xC0 */
		 0, 0xF5B6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xEBF6, 0xEA5C, 	 0, 	 0, 0xF96E, 	 0, /* 0xD0 */
	0xF167, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE1DD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xE647, 0xE1B3											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_57[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xF765, 0xEDD8, 	 0, 	 0, 	 0, /* 0x00 */
	0xE2EA, 	 0, 	 0, 0xE2D0, 	 0, 0xF05C, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xF03E, 0xF03D, 	 0, 	 0, 0xE4F1, 	 0, /* 0x10 */
	0xE4A5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF6CF, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xF234, 	 0, 	 0, 	 0, 	 0, 0xE334, 	 0, 	 0, /* 0x20 */
	0xF432, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xE392, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xF433, 	 0, 0xF6F8, 	 0, 	 0, 	 0, 	 0, 0xE343, /* 0x40 */
		 0, 	 0, 0xE8A9, 	 0, 	 0, 0xE4BB, 0xE07C, 	 0, /* 0x40 */
	0xF3A6, 0xE0D5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xF6E7, 	 0, 	 0, 0xE1DE, 	 0, 0xF6A4, 	 0, /* 0x60 */
		 0, 	 0, 0xF750, 	 0, 	 0, 	 0, 0xE4DD, 	 0, /* 0x60 */
	0xE160, 	 0, 	 0, 	 0, 	 0, 0xE2A6, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF695, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xEBF7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xE4DC, 	 0, 	 0, 0xF8A0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xF837, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xF0D9, 	 0, 0xE2A7, 0xF03F, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xED91, 	 0, 	 0, 	 0, 0xEFB9, /* 0xC0 */
	0xF3D8, 	 0, 	 0, 0xE768, 	 0, 	 0, 0xEB94, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEE44, /* 0xD0 */
	0xE99E, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF4F1, 	 0, 	 0, 	 0, 0xECD0, 	 0, 	 0, 0xF49D, /* 0xF0 */
		 0, 0xE8C6, 0xE393, 	 0, 0xE394							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_58[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE2DC, 	 0, 0xE4D1, 	 0, 	 0, 0xE141, 0xF6D8, 	 0, /* 0x00 */
	0xE0A8, 0xF0BC, 0xED4E, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF56C, 	 0, /* 0x10 */
		 0, 0xE952, 	 0, 	 0, 0xF337, 	 0, 	 0, 0xEE50, /* 0x20 */
		 0, 	 0, 0xE07D, 	 0, 	 0, 	 0, 	 0, 0xEF7B, /* 0x20 */
	0xEDE8, 0xE953, 	 0, 	 0, 0xF1DE, 0xE4F2, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xE199, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xE264, 0xEEAB, 	 0, 	 0, 	 0, 0xE0C3, /* 0x40 */
		 0, 0xEBB1, 	 0, 	 0, 0xF6B2, 	 0, 	 0, 0xE4F3, /* 0x50 */
	0xE4D2, 	 0, 0xF5C0, 	 0, 	 0, 	 0, 0xEADD, 	 0, /* 0x50 */
		 0, 0xF295, 0xEEF1, 	 0, 0xF9B4, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF458, 	 0, 	 0, /* 0x70 */
		 0, 0xF4D2, 	 0, 	 0, 0xF296, 	 0, 0xEC63, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 0xE161, 	 0, 0xEAEA, 	 0, 	 0, /* 0x80 */
		 0, 0xEFBA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xE7D7, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xF5CD, 	 0, 0xF3F2, 0xF857, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xE7F8, 0xE552, 	 0, 	 0, 	 0, 	 0, 0xF675, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xE9C5, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xEEF2, 0xF1DF, 	 0, 	 0, 0xE05B, 	 0, /* 0xB0 */
		 0, 0xE8FA, 	 0, 	 0, 	 0, 0xEF45, 	 0, 0xE4A6, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF9B5, 	 0, /* 0xC0 */
		 0, 0xF7C9, 	 0, 0xED72, 	 0, 0xF8BD, 	 0, 	 0, /* 0xD0 */
	0xE6A4, 0xE255, 	 0, 	 0, 	 0, 	 0, 0xE265, 0xE676, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xEDBD, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xEA5D, 0xF195, 	 0, 	 0, 0xF1E0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xF17C, 0xF8BE, 0xEAEB, 	 0, 0xEBF8					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_59[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xF7BE, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xE395, 0xEB3A, 0xEF72, 	 0, /* 0x10 */
		 0, 0xEC64, 0xE49F, 	 0, 0xEDA8, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xE7D3, 	 0, 	 0, 	 0, 	 0, 0xE4DE, /* 0x20 */
		 0, 0xF548, 0xF6BC, 0xE99F, 	 0, 0xEF7C, 0xED77, 	 0, /* 0x20 */
		 0, 0xECF7, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF138, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF893, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xEDF2, 	 0, 	 0, 0xE396, /* 0x40 */
	0xE43F, 0xE975, 	 0, 	 0, 	 0, 	 0, 0xE335, 0xF3B4, /* 0x40 */
	0xF941, 0xE19A, 	 0, 	 0, 0xE9C6, 0xF861, 	 0, 0xF6DF, /* 0x50 */
		 0, 	 0, 0xF838, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xF297, 	 0, 0xEA5E, 	 0, 	 0, 	 0, 	 0, 0xEEF3, /* 0x60 */
		 0, 	 0, 0xF6AC, 0xF0C4, 0xF1E1, 0xEB3B, 0xE9C7, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xE443, 0xE44F, 	 0, 	 0, 	 0, /* 0x70 */
	0xE05C, 	 0, 	 0, 	 0, 	 0, 0xF8BF, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xEDFD, 0xE9E5, 0xE75D, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xF196, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xE397, 	 0, 	 0, 0xEF7D, 0xE362, /* 0x90 */
		 0, 0xE7D8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF676, 	 0, 	 0, /* 0xA0 */
	0xE8AA, 	 0, 	 0, 	 0, 0xF6E0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE769, 	 0, 0xF533, 	 0, 	 0, 0xF56D, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xF2D1, 	 0, 	 0, 0xE7B5, 	 0, /* 0xC0 */
		 0, 0xF1AB, 	 0, 0xECB7, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xF24B, 0xE1B4, 	 0, 0xEB95, 0xF05D, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xF197, 0xEF7E, 	 0, 0xE0A9, 0xF3AF, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE05D, 	 0, /* 0xE0 */
	0xF139, 	 0, 0xF47B, 	 0, 0xF9EF, 	 0, 0xF7F3, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xEE51, 	 0, 	 0, 0xF168, 	 0, 	 0, 	 0, 0xF1AC	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xF05E, 	 0, 0xEF6F, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xEA5F, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xE436, 	 0, 	 0, 0xEEF4, 0xE3D6, 	 0, 	 0, 0xEE52, /* 0x10 */
	0xECE3, 	 0, 	 0, 	 0, 	 0, 0xED40, 	 0, 	 0, /* 0x20 */
		 0, 0xE744, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF635, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xF4DE, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xE6A5, 	 0, 	 0, 	 0, 	 0, 0xF6E8, 	 0, /* 0x40 */
		 0, 0xEF56, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xF8E6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xE9E6, 	 0, 	 0, 	 0, 0xE9A0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE76A, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xE83C, 0xF040, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xECB8, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE03A, 0xEBF9, 	 0, 0xF041, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF47C, 	 0, 	 0, 0xF87E, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xF265, 	 0, 	 0, 	 0, 	 0, 0xF7F4, 	 0, /* 0xE0 */
		 0, 0xE47C													/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xF8FB, 	 0, 	 0, /* 0x00 */
		 0, 0xF9F0, 	 0, 0xEB4D, 0xE273, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF756, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xEA3E, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xEAC5, 	 0, 	 0, 0xEDBE, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xF1AD, 0xF87A, 	 0, 	 0, 0xE1EE, 0xF1A6, 	 0, 0xF1AE, /* 0x50 */
	0xF37D, 	 0, 0xE9A1, 	 0, 0xF1AF, 0xF99A, 	 0, 0xE77B, /* 0x50 */
		 0, 	 0, 	 0, 0xE19B, 0xE1B5, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xF839, 	 0, 0xEBDD, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xEC65, 0xF1CF, 	 0, 	 0, 	 0, 0xE9A2, 	 0, 	 0, /* 0x70 */
	0xF7CA, 	 0, 0xF078, 	 0, 0xEDED, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE4EB, 	 0, 0xEFD4, /* 0x80 */
	0xEBFA, 0xED5C, 	 0, 0xEBE4, 0xEF57, 	 0, 	 0, 0xE26B, /* 0x80 */
		 0, 	 0, 	 0, 0xE965, 	 0, 0xF6B5, 0xF995, 0xF395, /* 0x90 */
	0xE23F, 0xF3B5, 0xF2D2, 0xEF58, 0xF0F1, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xE0D4, 0xEB4E, 0xECF8, 0xF079, 0xF942, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xEB96, 	 0, 0xE2E0, 	 0, /* 0xA0 */
	0xF235, 	 0, 	 0, 0xF83A, 0xEE53, 0xEBB2, 0xE03B, 	 0, /* 0xB0 */
	0xECE4, 0xEFBB, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEC66, /* 0xB0 */
	0xF4F2, 	 0, 0xF266, 0xF042, 0xE398, 0xF169, 0xE85B, 0xE2A8, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xE9A3, 	 0, 	 0, 	 0, /* 0xC0 */
	0xE76B, 	 0, 0xF7CE, 0xEFD5, 0xECD1, 	 0, 	 0, 0xE44C, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE73C, 0xF4CC, /* 0xD0 */
		 0, 0xE1FB, 0xF666, 	 0, 0xEEF5, 0xEF91, 0xECF9, 0xE44B, /* 0xE0 */
	0xF4F3, 0xECFB, 	 0, 0xEA60, 0xE240, 	 0, 0xE699, 0xF3D9, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5C1, 0xE954, 	 0, /* 0xF0 */
	0xF5BB, 	 0, 0xEA61											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xE976, 	 0, 	 0, 0xEA62, 	 0, 	 0, 0xF1E2, /* 0x00 */
	0xF298, 0xF05F, 0xF37E, 0xECFC, 	 0, 0xE4DF, 0xE4F4, 0xEBB3, /* 0x00 */
		 0, 0xEBB4, 	 0, 	 0, 	 0, 	 0, 0xF563, 	 0, /* 0x10 */
		 0, 0xEAC6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xEFD6, 	 0, 	 0, 	 0, /* 0x20 */
	0xE8AB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xF636, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xECB9, 0xF0C5, 0xF539, 0xE1B6, 0xE49B, 	 0, 0xE83D, 0xE473, /* 0x30 */
	0xE2D1, 	 0, 	 0, 	 0, 	 0, 0xE0DC, 0xE19C, 	 0, /* 0x40 */
	0xE2DD, 	 0, 	 0, 0xEF39, 	 0, 0xECBB, 0xECBA, 	 0, /* 0x40 */
		 0, 0xEB6A, 	 0, 	 0, 	 0, 0xF299, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xE943, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xE4F5, 	 0, 0xE6A6, 	 0, 0xF645, 0xE6DB, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xEBD5, 	 0, 	 0, 0xE57A, /* 0x60 */
		 0, 0xEAA3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xF9DF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xE399, 0xF1D4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xE0AA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xED6B, 	 0, 0xEBFB, 0xE0A2, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xE4E0, 	 0, 0xED4F, 	 0, 0xF8C0, 	 0, 0xE84E, /* 0xB0 */
	0xED5D, 	 0, 0xE649, 	 0, 	 0, 	 0, 0xF2C0, 	 0, /* 0xB0 */
	0xEBFC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xF649, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xEAC7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xED41, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE977, /* 0xE0 */
	0xE978, 	 0, 	 0, 	 0, 0xF866, 	 0, 0xE4F6, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xF3DA, 	 0, 0xF894					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xEC9F, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE5CF, 0xE39A, 	 0, /* 0x00 */
		 0, 0xE1DF, 	 0, 	 0, 0xF5CB, 	 0, 0xED92, 0xE0AB, /* 0x10 */
		 0, 0xE6C4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xECA0, /* 0x20 */
		 0, 0xE9DA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xE83E, 0xE07E, 	 0, 	 0, 	 0, /* 0x40 */
	0xE5B9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xECA1, 	 0, 	 0, 0xEF73, 	 0, 	 0, 0xF4AB, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE2A9, /* 0x80 */
		 0, 	 0, 	 0, 0xE4F7, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE593, 	 0, 	 0, /* 0x90 */
	0xE274, 	 0, 0xEF94, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xEDF5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xEEAE, 	 0, 0xE64A, 	 0, 0xEAEC, 0xED50, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEF74, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE745, 	 0, 	 0, 	 0, 0xED6C, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF549, 0xF3B6, 	 0, /* 0xD0 */
		 0, 0xEC6E, 0xEBB5, 	 0, 	 0, 0xE1EF, 0xF3A7, 0xE275, /* 0xE0 */
	0xE0DD, 	 0, 	 0, 0xE7E3, 	 0, 	 0, 0xF4AC, 	 0, /* 0xE0 */
		 0, 0xE39B, 0xF13B, 0xEA63, 0xF6E9, 	 0, 	 0, 0xF7F5, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEBDE, 0xE0EE			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xECBC, 0xF766, 	 0, 	 0, 0xE8EE, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xF9F1, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xF6B6, 	 0, 	 0, 	 0, 	 0, 0xF56E, 	 0, /* 0x10 */
		 0, 0xF47D, 	 0, 0xE8D9, 	 0, 0xF338, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEBFD, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xEA64, 	 0, 0xEB3C, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xF1E3, 	 0, 	 0, 0xE4E1, 	 0, /* 0x30 */
	0xEAC8, 	 0, 	 0, 	 0, 	 0, 0xE7B6, 	 0, 0xF9AC, /* 0x30 */
	0xF2D3, 	 0, 	 0, 	 0, 0xED51, 0xF77B, 	 0, 0xE8AC, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xF956, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE73D, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF64A, /* 0x50 */
		 0, 0xE8DF, 0xE4D3, 0xF757, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xE05E, 0xF751, 0xE444, 	 0, 	 0, 0xE944, /* 0x70 */
	0xF849, 0xE05F, 	 0, 0xF943, 0xF07A, 0xF07B, 0xE39C, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF1E4, 	 0, 	 0, 0xE9E7, /* 0x80 */
		 0, 	 0, 0xEAC9, 	 0, 	 0, 	 0, 	 0, 0xEAED, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF24C, 	 0, 0xF2C1, /* 0x90 */
		 0, 	 0, 0xE162, 	 0, 0xE9A4, 	 0, 	 0, 	 0, /* 0x90 */
	0xEACA, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4F8, 0xF3A8, /* 0xA0 */
		 0, 	 0, 	 0, 0xE1B7, 	 0, 0xF2D4, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xED6D, 0xEAEE, 0xE0AC, /* 0xB0 */
	0xEFBC, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF07C, 	 0, /* 0xB0 */
		 0, 	 0, 0xEACB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xF7BF, 0xE63F, 0xE5C6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xE2AA, 	 0, 	 0, 0xE239, 	 0, 	 0, 0xE69A, 	 0, /* 0xD0 */
		 0, 	 0, 0xF3B7, 0xF29A, 	 0, 	 0, 	 0, 0xE7D9, /* 0xD0 */
	0xF4DF, 	 0, 0xF758, 0xE256, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xE5E6, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF576, 	 0, 	 0, 0xEE55, 0xF2D5, /* 0xF0 */
		 0, 	 0, 0xE0EF, 0xF96F									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xE937, 	 0, 	 0, 0xE677, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xF759, 	 0, 	 0, 	 0, 	 0, 0xECD2, /* 0x00 */
		 0, 0xECBD, 	 0, 0xE2E1, 0xF350, 0xF16A, 	 0, 0xE9D7, /* 0x10 */
	0xF8F0, 	 0, 	 0, 0xF13C, 	 0, 	 0, 	 0, 0xF339, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF867, 0xF8C1, /* 0x20 */
		 0, 0xE450, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xEDB0, 	 0, 	 0, 	 0, 0xF1E5, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xE0AD, 	 0, 0xF7B0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xF6A5, 	 0, 0xE0AE, 	 0, 0xE83F, 	 0, 0xE746, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4A7, 0xF8B2, /* 0x50 */
		 0, 0xF9C4, 	 0, 0xF13D, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xF8A1, 	 0, 	 0, 	 0, 0xEDE9, 0xEFEE, /* 0x60 */
		 0, 0xF4F4, 0xF795, 0xF351, 0xEA3F, 0xF740, 	 0, 	 0, /* 0x60 */
	0xF4E0, 0xEEAF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8AD, /* 0x70 */
		 0, 0xEE45, 	 0, 	 0, 0xF7A8, 	 0, 	 0, 0xE9D8, /* 0x70 */
	0xEF69, 0xF2D6, 	 0, 	 0, 	 0, 0xE4E2, 	 0, 0xEC6F, /* 0x80 */
		 0, 	 0, 0xF970, 0xE6C8, 0xF9AD, 	 0, 	 0, 	 0, /* 0x80 */
	0xEAEF, 0xE163, 0xE4F9, 	 0, 	 0, 	 0, 	 0, 0xE592, /* 0x90 */
	0xE8C7, 0xEA65, 	 0, 	 0, 	 0, 	 0, 0xF396, 	 0, /* 0x90 */
	0xE5D0, 0xEDD9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF957, 0xE966, 0xEC70, 	 0, 	 0, 	 0, 0xE840, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF4A3, 	 0, 0xE4EC, /* 0xB0 */
		 0, 0xF55B, 	 0, 	 0, 	 0, 0xF9C5, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xECFD, 	 0, 0xF7B1, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xE39D, 0xF16B, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF5BC, 0xF434, /* 0xD0 */
	0xE75E, 0xE75F, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xF5F7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF671, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE447, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF8EC, 	 0, 0xE9C8	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_60[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xED78, /* 0x00 */
		 0, 	 0, 0xE451, 	 0, 	 0, 	 0, 0xF767, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xE64B, 0xEA66, 	 0, 	 0, /* 0x10 */
	0xF6BD, 0xF13E, 	 0, 	 0, 	 0, 0xE371, 	 0, 0xEB97, /* 0x20 */
	0xF043, 	 0, 0xE266, 	 0, 	 0, 	 0, 	 0, 0xE135, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xF198, 0xEC71, 0xECBE, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF958, 	 0, 	 0, /* 0x40 */
	0xE1F0, 	 0, 0xF7F6, 	 0, 	 0, 0xEAF0, 	 0, 	 0, /* 0x50 */
		 0, 0xEDBF, 	 0, 	 0, 	 0, 0xE24F, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xF971, 0xF1B0, 0xF9D1, 0xF64B, 	 0, 	 0, /* 0x60 */
	0xF7CF, 0xF0DA, 0xE051, 	 0, 0xE448, 0xE1F1, 	 0, 0xECD3, /* 0x60 */
	0xF9E6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEE7D, 	 0, 	 0, /* 0x80 */
		 0, 0xECFA, 	 0, 	 0, 0xF33A, 0xF7D0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xF972, 	 0, 0xF737, 	 0, /* 0x90 */
		 0, 	 0, 0xEBE5, 0xF29B, 	 0, 	 0, 	 0, 0xEEF6, /* 0x90 */
	0xF07D, 	 0, 	 0, 0xF944, 0xF5C2, 	 0, 	 0, 0xE6DC, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF397, 	 0, 0xE9E8, 0xE4ED, 0xF5FC, 	 0, 0xE84F, 	 0, /* 0xB0 */
	0xE19D, 	 0, 	 0, 	 0, 0xE4FA, 0xF534, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF2D7, 	 0, 0xE553, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF8E3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xF8ED, 	 0, 0xEB3D, 	 0, 	 0, 0xF07E, /* 0xD0 */
	0xF8B3, 0xED52, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF677, 0xE46D, 	 0, 0xEACC, 	 0, 	 0, 0xF959, 	 0, /* 0xF0 */
		 0, 0xEDA9, 0xEB98, 0xF643									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_61[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xEBFE, 	 0, 	 0, 	 0, 	 0, 0xE0F0, 	 0, /* 0x00 */
	0xF091, 0xF092, 	 0, 	 0, 	 0, 0xE850, 0xF744, 0xF0F2, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xED53, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xEFD7, 0xED93, 	 0, 	 0, 	 0, 0xE091, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE267, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xF95A, 	 0, 	 0, 	 0, 0xF4E1, 	 0, 	 0, 0xE0C4, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xECE5, 	 0, 0xE0C5, 0xF044, /* 0x30 */
		 0, 	 0, 0xEFBD, 	 0, 0xE6C9, 	 0, 	 0, 0xF0DB, /* 0x40 */
	0xF1B1, 	 0, 0xE153, 0xF6BE, 0xF95B, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xF796, 	 0, 0xE7B7, 	 0, 	 0, /* 0x50 */
	0xF4D3, 0xF4D4, 	 0, 	 0, 	 0, 0xF6E4, 	 0, 0xF6D1, /* 0x50 */
		 0, 	 0, 0xE747, 0xE241, 0xE052, 	 0, 	 0, 0xF8B4, /* 0x60 */
	0xE0C6, 	 0, 	 0, 0xF398, 	 0, 	 0, 0xE5E7, 	 0, /* 0x60 */
	0xF060, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE164, 0xE0AF, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF53A, 0xEFAF, 	 0, /* 0x70 */
		 0, 0xF5C3, 0xEFD8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE9E9, 	 0, 	 0, 	 0, 0xF3F3, 	 0, /* 0x80 */
	0xE5FB, 0xEA4B, 	 0, 	 0, 0xF59D, 	 0, 	 0, 	 0, /* 0x90 */
	0xF9F3, 0xF9F2, 0xF6A6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xE9C9, 	 0, 	 0, 0xE563, /* 0xA0 */
		 0, 0xE138, 	 0, 0xE851, 0xE165, 	 0, 0xE7E4, 	 0, /* 0xA0 */
		 0, 	 0, 0xF85A, 	 0, 	 0, 	 0, 0xEDE3, 	 0, /* 0xB0 */
		 0, 	 0, 0xE4BC, 	 0, 	 0, 	 0, 0xE092, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xE354, 	 0, 	 0, 	 0, 0xE060, /* 0xC0 */
	0xF83B, 0xF0EB, 0xEEF8, 0xE7E5, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE3D7, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xF4A4, 	 0, 	 0, 	 0, 0xE59D, 0xF973, /* 0xF0 */
	0xF868, 	 0, 0xF4D5, 	 0, 0xE2AB, 	 0, 	 0, 0xF0F3	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_62[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE5FC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4D4, /* 0x00 */
	0xE1FC, 	 0, 0xE7E6, 	 0, 0xEC9B, 0xEC31, 0xF0D4, 	 0, /* 0x00 */
	0xEB99, 0xED42, 0xE19E, 	 0, 	 0, 	 0, 0xF8E4, 	 0, /* 0x10 */
		 0, 	 0, 0xF53B, 	 0, 	 0, 	 0, 	 0, 0xE34D, /* 0x10 */
		 0, 0xE093, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xF2B8, 	 0, 	 0, 	 0, 0xE6C0, 	 0, /* 0x20 */
	0xF29C, 0xF9F4, 	 0, 	 0, 0xE4E3, 	 0, 0xF8C2, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5E8, 0xE8AE, /* 0x30 */
	0xEBB6, 0xF747, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEB4F, /* 0x40 */
	0xF8C3, 0xE9EA, 	 0, 0xEC32, 	 0, 0xF236, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xF678, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xF697, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE9CA, 	 0, /* 0x60 */
		 0, 0xE372, 	 0, 	 0, 	 0, 	 0, 0xE9A6, 	 0, /* 0x70 */
		 0, 0xE9EB, 	 0, 	 0, 0xED9B, 	 0, 	 0, 0xECAF, /* 0x70 */
	0xE39E, 	 0, 	 0, 	 0, 0xF59E, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xE14C, 0xF6EA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xEDE4, 0xEAF1, 	 0, 	 0, 0xF6E1, 	 0, 0xF7F7, /* 0x90 */
	0xF2B9, 	 0, 	 0, 0xF768, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF7A9, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xF769, 	 0, 	 0, 	 0, 0xF24D, 	 0, 	 0, /* 0xB0 */
		 0, 0xE756, 	 0, 	 0, 0xED73, 0xF5CE, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xE9D9, 	 0, 	 0, 	 0, 	 0, 0xE7E7, /* 0xC0 */
	0xE449, 0xE5C3, 	 0, 	 0, 0xE875, 0xE860, 	 0, 0xE3D9, /* 0xC0 */
	0xE268, 	 0, 0xE0DE, 0xF53C, 0xE89D, 	 0, 0xF679, 0xEF95, /* 0xD0 */
	0xE2AC, 0xF392, 	 0, 0xF59F, 0xE8C8, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xE250, 0xECD4, 0xE3CF, 0xF3F5, /* 0xE0 */
		 0, 0xE1F2, 	 0, 0xE2EB, 	 0, 	 0, 	 0, 0xE1B8, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xECA6, 0xE3DA	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_63[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xF435, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF436, /* 0x00 */
		 0, 0xED5E, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xE4FB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xF3A9, 	 0, 	 0, 	 0, 0xF459, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xF2D8, 0xEE59, 	 0, 0xE748, 0xF895, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xF4B5, 	 0, 	 0, 0xF734, 	 0, 	 0, 0xE3F3, /* 0x40 */
	0xEE58, 	 0, 	 0, 	 0, 	 0, 0xF76A, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE979, /* 0x60 */
	0xEA67, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE0DF, 	 0, /* 0x60 */
		 0, 	 0, 0xE2EC, 	 0, 	 0, 	 0, 	 0, 0xF56F, /* 0x70 */
		 0, 	 0, 0xE3F4, 0xE44A, 	 0, 	 0, 	 0, 0xEAF2, /* 0x70 */
		 0, 	 0, 	 0, 0xEBB7, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xEC33, 0xE4FC, 	 0, 	 0, 0xF1E6, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE8C9, 	 0, 	 0, 	 0, 0xED9C, 	 0, /* 0x90 */
	0xE2DE, 	 0, 	 0, 0xE260, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xE5D3, 0xF4F5, 0xF6AE, 	 0, 	 0, 0xF2C8, 	 0, 0xE1F3, /* 0xA0 */
	0xF5CF, 0xEDF3, 0xF352, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xE061, 	 0, 	 0, 	 0, 0xF093, 	 0, 0xE336, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7DA, /* 0xC0 */
	0xF33B, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF0E7, 	 0, /* 0xD0 */
		 0, 	 0, 0xEDC0, 0xF945, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xED54, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE139, 0xF9C6, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xF045, 	 0, 0xEDAA, 0xEABA	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_64[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xEBDF, 	 0, 0xE861, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xEBB8, 	 0, 0xEF96, 0xE4FD, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xEC34, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xF45A, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xE876, 0xF6B3, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xF9CD, 	 0, 	 0, 	 0, 0xF4B6, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xF267, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xF5C4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xE734, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF437, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xE7B8, 0xE7B9, 0xF2C9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xE65E, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xF6CB, 0xEAAE, 0xEF97, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xE445, 	 0, 	 0, 	 0, 0xE4D5, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xF55C, 0xE89E, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xE7E8, 	 0, 0xF6EB, 0xF5C9, 	 0, /* 0xA0 */
	0xF4BC, 	 0, 0xE862, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xE4B5, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xEF46, 	 0, 	 0, 0xE65F, 0xF54A, 	 0, 0xF6C9, /* 0xC0 */
		 0, 	 0, 0xE13A, 	 0, 	 0, 0xF353, 0xE166, 	 0, /* 0xC0 */
		 0, 	 0, 0xE363, 	 0, 0xE4BD, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE8FB, 	 0, 0xE0E0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xE4E4, 0xF699, 	 0, 	 0, 0xE5BA, 0xF4CD, 0xE0E1, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xF0F4, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xF53D, 	 0, 0xF93A, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xF6EC, 	 0, 	 0, 	 0, 0xEF98			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_65[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE877, 	 0, 	 0, 	 0, 0xF6CC, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xEDC1, 	 0, 	 0, 	 0, 	 0, 0xEB7E, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xE5FD, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xE276, 0xF93B, 0xE5BB, 	 0, 	 0, 0xF438, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEC35, 0xE1B9, /* 0x30 */
	0xF094, 0xE0C7, 	 0, 0xE1F4, 	 0, 	 0, 0xE8AF, 0xF2D9, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE1BA, 	 0, 	 0, /* 0x40 */
	0xF99B, 	 0, 	 0, 	 0, 	 0, 0xEAF3, 0xE277, 0xE852, /* 0x40 */
		 0, 0xE2AD, 	 0, 	 0, 	 0, 	 0, 0xEEF9, 0xF738, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4E2, 	 0, /* 0x50 */
		 0, 	 0, 0xE094, 0xEAA4, 	 0, 	 0, 0xE554, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xE167, 0xEDC2, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xE1BB, 	 0, 0xF2DA, 0xF268, 	 0, 0xE9A7, /* 0x70 */
	0xEC36, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEB50, 	 0, /* 0x70 */
		 0, 	 0, 0xE640, 0xF75A, 	 0, 0xF99C, 	 0, 0xE7FE, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xEA40, 	 0, 	 0, 	 0, /* 0x80 */
	0xE9EC, 0xE878, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE570, /* 0x90 */
		 0, 0xE69B, 	 0, 0xE1D7, 0xEA68, 	 0, 	 0, 0xF49A, /* 0x90 */
		 0, 0xED66, 	 0, 	 0, 0xE355, 0xF53E, 	 0, 0xE9A8, /* 0xA0 */
		 0, 	 0, 	 0, 0xF1C5, 0xF4D6, 	 0, 	 0, 0xEA69, /* 0xA0 */
	0xECE6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4A8, /* 0xB0 */
		 0, 0xE8B0, 	 0, 	 0, 0xEDDA, 0xECBF, 	 0, 	 0, /* 0xB0 */
		 0, 0xE8B1, 	 0, 	 0, 	 0, 0xE5E9, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xEB51, 0xF2DB, 	 0, 	 0, 0xF379, /* 0xC0 */
		 0, 	 0, 0xE6B2, 	 0, 	 0, 	 0, 	 0, 0xE39F, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE7E9, 	 0, 	 0, 0xE3A0, 	 0, 0xF17D, 0xE4A9, 	 0, /* 0xE0 */
	0xF439, 0xF354, 	 0, 	 0, 0xEC72, 0xEFEF, 	 0, 	 0, /* 0xE0 */
		 0, 0xF7D1, 	 0, 	 0, 0xEFD9, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xEF6A, 0xE853, 0xE854, 0xE555, 	 0, 0xEEFA	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_66[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
													0xE1E0, 0xECB0, /* 0x00 */
		 0, 0xE8B2, 0xF8C4, 	 0, 0xF4E3, 	 0, 0xE7A5, 0xF8E7, /* 0x00 */
	0xE9CB, 0xE364, 	 0, 0xEE46, 0xEB3E, 0xF9DA, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE945, 0xEB9A, /* 0x10 */
	0xEEB1, 	 0, 	 0, 	 0, 	 0, 0xF5F0, 	 0, 0xE76C, /* 0x20 */
	0xF1C6, 	 0, 	 0, 	 0, 	 0, 0xEBB9, 	 0, 0xECC0, /* 0x20 */
	0xF7C0, 0xEFF0, 	 0, 	 0, 0xE7DB, 	 0, 0xF4E4, 	 0, /* 0x30 */
		 0, 	 0, 0xE946, 0xED79, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xF355, 0xECC1, 0xF95C, 0xF95D, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xF45B, 	 0, 0xF45C, 	 0, 	 0, 	 0, 0xED5F, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xF3DB, 	 0, 0xF869, 	 0, 0xF3B8, 0xF9F5, 0xEB9B, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xEEFB, 0xF947, 0xF974, 0xF8C5, /* 0x60 */
	0xECE7, 0xE749, 	 0, 0xF69A, 	 0, 	 0, 0xE955, 0xE168, /* 0x60 */
		 0, 	 0, 	 0, 0xEB3F, 0xF577, 	 0, 0xF2DC, 0xE2FC, /* 0x70 */
	0xF2DD, 	 0, 0xF43A, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF9BE, 	 0, 	 0, 0xE03C, /* 0x80 */
	0xF9BB, 0xF9C7, 	 0, 	 0, 	 0, 	 0, 0xEEB2, 	 0, /* 0x80 */
	0xF061, 0xEAF4, 	 0, 	 0, 	 0, 	 0, 0xE3EC, 0xED6E, /* 0x90 */
	0xEDC3, 	 0, 	 0, 	 0, 	 0, 0xE7A6, 	 0, 	 0, /* 0x90 */
	0xE1BC, 	 0, 0xF4E5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF1D5, 	 0, 	 0, 0xE7BA, 	 0, /* 0xA0 */
		 0, 	 0, 0xF1E7, 0xF8B5, 0xF77C, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xEB77, 	 0, 0xE169, 	 0, 	 0, 0xE556, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xEEA5, 	 0, 0xE5F5, 0xE4BE, /* 0xC0 */
		 0, 0xF99D, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xED94, 	 0, /* 0xD0 */
		 0, 0xEAF5, 	 0, 	 0, 0xEF9A, 0xF77D, 	 0, 	 0, /* 0xD0 */
	0xE257, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF9F6, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xEF68, 	 0, 0xE1D8, 0xEED6, 0xE16A, 	 0, 	 0, 0xE073, /* 0xF0 */
	0xEAF6, 0xF357, 0xF356, 	 0, 0xE74A, 	 0, 0xF3F4, 0xF592	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_67[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF5CC, 	 0, 	 0, 0xF975, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xF055, 0xF095, 	 0, 0xE9DB, 	 0, 0xE967, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xEA9F, 0xF49B, 	 0, 0xE5C7, /* 0x10 */
		 0, 	 0, 	 0, 0xE760, 	 0, 0xF358, 0xE3A1, 0xE3A2, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7D4, 0xE678, /* 0x20 */
	0xE7CA, 	 0, 0xE841, 0xE757, 0xE972, 0xF4CE, 0xF5F4, 	 0, /* 0x20 */
		 0, 0xF3B9, 	 0, 	 0, 0xE863, 	 0, 0xF67A, 	 0, /* 0x30 */
		 0, 	 0, 0xE2F5, 	 0, 	 0, 0xF9AE, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE062, 	 0, /* 0x40 */
		 0, 0xEAB4, 	 0, 	 0, 	 0, 	 0, 0xE6DD, 0xF84A, /* 0x40 */
	0xF237, 0xF5BD, 	 0, 0xF797, 	 0, 	 0, 0xF1E8, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xE571, 	 0, 0xE3A3, 0xEBD6, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF7F8, 	 0, 0xE8CA, /* 0x60 */
	0xE0F9, 0xE564, 	 0, 0xE7DC, 	 0, 0xF24E, 	 0, 0xF6ED, /* 0x70 */
		 0, 	 0, 	 0, 0xE47E, 	 0, 	 0, 0xEBE6, 0xF6F9, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE9ED, /* 0x80 */
		 0, 0xEF6B, 	 0, 0xE8B3, 	 0, 	 0, 	 0, 0xE3F7, /* 0x80 */
	0xEB40, 	 0, 	 0, 0xE572, 	 0, 0xF667, 	 0, 0xE6F9, /* 0x90 */
		 0, 	 0, 0xE76D, 	 0, 0xE1FD, 0xF43B, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE1BD, /* 0xA0 */
	0xF752, 	 0, 	 0, 0xF43C, 	 0, 	 0, 0xE03D, 0xE03E, /* 0xB0 */
	0xE2AE, 	 0, 	 0, 	 0, 	 0, 	 0, 0xECC2, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xE947, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8DA, /* 0xC0 */
	0xE7BB, 0xE095, 0xF663, 0xEE9A, 0xF097, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xF098, 	 0, 	 0, 0xF69B, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xE2AF, 	 0, 	 0, 0xE063, 	 0, 	 0, 0xE03F, /* 0xE0 */
	0xE440, 0xF3BA, 	 0, 0xE6B3, 0xECC3, 0xF4FD, 0xEA6A, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xEA6B, 	 0, 	 0, 0xF2DE			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_68[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xEC73, 0xF29D, 	 0, 	 0, 0xEAF7, 0xE6CA, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xE278, 0xE8DB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xF3BB, 	 0, 	 0, 	 0, 	 0, 0xEFF1, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xF847, 0xE356, 	 0, 	 0, 0xE13B, 0xF238, 	 0, 	 0, /* 0x30 */
	0xE0FA, 0xF7F9, 0xE19F, 0xE4FE, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xED60, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF47E, 	 0, /* 0x40 */
	0xE565, 0xEACD, 	 0, 0xF948, 0xE3D0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF45D, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF6D2, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE064, /* 0x70 */
		 0, 0xE5D9, 	 0, 	 0, 	 0, 0xE76E, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE1D9, /* 0x80 */
		 0, 	 0, 	 0, 0xF239, 0xF64C, 	 0, 	 0, 0xE16B, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF359, 	 0, 0xF99E, /* 0x90 */
		 0, 0xEF59, 0xF5A0, 	 0, 	 0, 	 0, 	 0, 0xEEFC, /* 0xA0 */
	0xE6DE, 	 0, 	 0, 	 0, 	 0, 0xEA6C, 	 0, 0xF33C, /* 0xA0 */
	0xE1A0, 0xE1E1, 	 0, 0xEBBA, 	 0, 0xE8EF, 0xE842, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xE3A5, 0xE948, 	 0, 	 0, /* 0xC0 */
		 0, 0xE798, 	 0, 0xE3A4, 	 0, 0xE1E2, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE97A, 	 0, 	 0, 0xF399, 	 0, 0xF35A, /* 0xD0 */
	0xE34E, 	 0, 0xE9DC, 	 0, 	 0, 	 0, 	 0, 0xE566, /* 0xD0 */
	0xE4D6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF1D0, /* 0xE0 */
	0xE1A1, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAB5, 	 0, /* 0xE0 */
		 0, 	 0, 0xEAF8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xE531, 0xE242											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_69[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xEF5A, 	 0, 	 0, 	 0, 	 0, 0xF0F5, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xECD5, 0xF5D0, 	 0, /* 0x00 */
		 0, 	 0, 0xF5A1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7A7, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xEDAB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEE5B, 	 0, 0xF5F1, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xEDC5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xF7A3, 0xEB6B, 0xF67B, 	 0, 0xE0F1, /* 0x50 */
		 0, 0xE7EA, 0xF5A2, 	 0, 	 0, 	 0, 0xE6D1, 	 0, /* 0x50 */
	0xE3F8, 0xF09A, 0xF09B, 0xE843, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xF2DF, 	 0, 	 0, 0xF3EF, 	 0, 0xEDF6, 0xF24F, 0xEC74, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE34F, 	 0, 0xF83C, /* 0x70 */
	0xF5D1, 0xEEB3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEFBE, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xF45E, 0xE8B4, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF95E, 	 0, 0xE9EE, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEEB4, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xE6B4, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xF6B4, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE1BE, 	 0, 0xE879, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xE2B0, 0xF6D9, 0xF4E6, 	 0, 	 0, /* 0xC0 */
	0xE269, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE23A, 	 0, 0xE0C8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xE337, 	 0, 0xF35B, 	 0, 0xE357	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xED55, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xE8E0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xE5DA, 	 0, 0xE6A7, 	 0, 	 0, 	 0, 0xF250, /* 0x10 */
		 0, 0xF798, 	 0, 	 0, 	 0, 	 0, 0xF5D2, 0xF1E9, /* 0x10 */
		 0, 0xE7BC, 	 0, 0xEDC6, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5A3, 	 0, 	 0, /* 0x30 */
	0xE864, 0xEC37, 0xF8FC, 	 0, 	 0, 0xF3DC, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xE096, 	 0, 	 0, 	 0, /* 0x40 */
	0xEF9C, 	 0, 	 0, 0xE279, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xEFF8, 0xEC75, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xE349, 0xE594, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE3A6, /* 0x50 */
		 0, 0xEACE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xF996, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xE4AA, 	 0, 	 0, 	 0, 0xE13C, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xF2E0, 	 0, 	 0, 	 0, 0xEDE5, 0xE365, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8FC, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xF976, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xE0FE, 0xF1EA, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xEA41, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xF7E3, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xE532, 0xE2F6, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xE660, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xE5EA, 0xF3EE, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF85B, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xEDA1									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xE5B1, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xE2ED, 	 0, 0xF1EB, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xE5B2, 	 0, 	 0, 	 0, 0xE5BC, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xF9E2, 0xF4AD, 	 0, 0xF9DB, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xEFB0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xE3A7, 	 0, 	 0, 0xF9E3, 0xE243, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF9E4, 0xF85E, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xE040, 	 0, 0xF6A7, 	 0, /* 0x40 */
	0xE2B1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEE32, /* 0x50 */
		 0, 0xF946, 0xF43D, 0xF2E1, 0xF4AE, 0xE956, 0xE7EB, 	 0, /* 0x60 */
		 0, 	 0, 0xEF70, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xEBA8, 	 0, 	 0, 	 0, 	 0, 0xE5F6, /* 0x70 */
	0xE2FD, 	 0, 	 0, 0xEA6D, 	 0, 	 0, 	 0, 0xE7D1, /* 0x70 */
		 0, 	 0, 	 0, 0xED7A, 0xF45F, 	 0, 0xF6BF, 	 0, /* 0x80 */
		 0, 0xEC76, 0xEC38, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xECD6, 	 0, /* 0x90 */
	0xF1D1, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEFF9, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE641, 0xEA42, /* 0xA0 */
		 0, 	 0, 0xEB78, 	 0, 	 0, 0xE4AB, 	 0, 0xF0DC, /* 0xB0 */
		 0, 	 0, 0xEAAF, 	 0, 0xE053, 	 0, 	 0, 0xF29E, /* 0xB0 */
		 0, 0xF9C3, 	 0, 	 0, 	 0, 0xF0F6, 0xE2B2, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xE7EC, 	 0, 0xE7BD, 	 0, 0xE76F, /* 0xC0 */
		 0, 	 0, 0xE548, 0xF0BE, 0xE9EF, 	 0, 0xE9F0, 0xE9F1, /* 0xD0 */
	0xE9F2, 	 0, 	 0, 0xE7BE, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF8C6, 0xE2B3							/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF29F, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xED3B, /* 0x00 */
		 0, 0xE855, 	 0, 0xE77C, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xE3A8, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xEC39, 	 0, 	 0, 0xEA4C, /* 0x30 */
	0xEEB5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8F0, 	 0, /* 0x30 */
	0xF2E2, 0xF3F0, 0xE2B4, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8F1, 	 0, /* 0x40 */
	0xEB41, 	 0, 	 0, 	 0, 	 0, 0xEAA5, 	 0, 0xF7D2, /* 0x50 */
		 0, 	 0, 0xEEFD, 	 0, 	 0, 0xEE33, 0xF8F1, 0xE0B0, /* 0x50 */
	0xF43E, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xE1E7, 	 0, 0xEF6C, 	 0, 	 0, 0xEED7, 	 0, 	 0, /* 0x60 */
	0xF6C0, 	 0, 0xE373, 	 0, 	 0, 	 0, 0xE831, 	 0, /* 0x70 */
		 0, 	 0, 0xE14D, 	 0, 	 0, 0xE3A9, 0xE9CC, 	 0, /* 0x70 */
		 0, 0xECFE, 0xE3AA, 0xEF3A, 	 0, 0xF046, 0xF7FA, 0xEE5C, /* 0x80 */
	0xF668, 	 0, 	 0, 	 0, 0xE557, 	 0, 	 0, 	 0, /* 0x80 */
	0xE7CB, 	 0, 0xE7D2, 0xE4CB, 0xE799, 0xE839, 0xF5F8, 	 0, /* 0x90 */
		 0, 0xEA6E, 0xF43F, 0xF739, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xE758, 	 0, 	 0, 0xF251, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF7C1, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xE9F3, 0xF09C, 	 0, 0xF64D, 0xEBBB, 0xE1BF, 0xF564, 0xEE5D, /* 0xB0 */
		 0, 0xF95F, 0xF8A2, 	 0, 0xEB6C, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF54B, 0xE865, 	 0, 0xF7B2, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xF8F2, 	 0, 0xE8F6, 	 0, 0xEA6F, /* 0xD0 */
		 0, 	 0, 	 0, 0xE8F2, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xF76C, 0xF6EE, 0xF0E8, 	 0, 0xE49C, 	 0, 	 0, /* 0xE0 */
	0xF3BC, 	 0, 	 0, 0xF86A, 	 0, 	 0, 0xE87A, 0xE856, /* 0xE0 */
	0xF6C1, 	 0, 	 0, 0xEEB6									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xEDC7, 0xE63C, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xE957, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEBA9, /* 0x10 */
		 0, 0xEC3A, 	 0, 0xE5A6, 	 0, 	 0, 0xE567, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF460, 	 0, 0xF09D, /* 0x20 */
		 0, 0xEB6D, 0xF8F3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xF3BD, 	 0, 	 0, 0xEC77, 0xF9D7, 	 0, /* 0x30 */
	0xE258, 0xF047, 	 0, 0xF950, 	 0, 0xF9E7, 0xF6EF, 	 0, /* 0x30 */
		 0, 0xE6B5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xF2BA, 0xF3DD, 	 0, 0xEA43, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xEF5B, 	 0, 	 0, 0xF76D, 	 0, /* 0x60 */
		 0, 0xF8C7, 0xE5C8, 	 0, 0xE6DF, 	 0, 0xE9A9, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xEFB1, 	 0, 	 0, 0xF83D, /* 0x70 */
	0xF669, 0xF896, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF73A, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEE7E, 	 0, 0xE16C, /* 0x80 */
	0xEBBC, 0xEB91, 	 0, 	 0, 0xEFBF, 0xF99F, 0xEE5E, 	 0, /* 0x80 */
		 0, 0xEBD7, 	 0, 0xEE5F, 	 0, 0xF593, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xED95, /* 0xA0 */
		 0, 	 0, 0xED9D, 	 0, 	 0, 0xF7E4, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF2E3, 	 0, 	 0, 0xE2EE, 0xF64E, 0xEB42, 0xF9A0, 0xE3AB, /* 0xC0 */
		 0, 	 0, 	 0, 0xE6FA, 	 0, 	 0, 	 0, 0xF8C8, /* 0xC0 */
		 0, 0xEC67, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE533, 0xF39A, 0xE6A8, 	 0, 	 0, 	 0, 0xEBE7, 	 0, /* 0xD0 */
		 0, 0xE4BF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF2E4, 	 0, 0xE6C5, 0xF0E2, 	 0, 	 0, 0xF977, 	 0, /* 0xE0 */
		 0, 0xED32, 	 0, 0xEC78, 	 0, 0xEE60, 	 0, 0xF8E8, /* 0xF0 */
	0xF578, 0xEDF4, 0xF54C, 0xF565									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xEAB6, /* 0x10 */
		 0, 0xF949, 0xF252, 0xE097, 	 0, 	 0, 	 0, 0xF2E5, /* 0x10 */
	0xE0E2, 0xE534, 	 0, 0xEA70, 0xE89F, 0xED56, 0xEF4E, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xEB6E, 0xF644, 0xF062, 	 0, 0xF7FB, /* 0x20 */
		 0, 	 0, 0xEB52, 	 0, 0xE074, 	 0, 0xEEB7, 	 0, /* 0x30 */
	0xF09F, 	 0, 0xE7DD, 	 0, 0xE844, 0xF23A, 0xF8E9, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xE8CB, 0xE845, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xF3BE, 	 0, 	 0, 0xE4AC, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF8C9, 	 0, /* 0x50 */
	0xEACF, 	 0, 	 0, 0xE4C0, 0xECD7, 	 0, 0xF2E6, 0xF960, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEFC0, /* 0x60 */
		 0, 	 0, 	 0, 0xF5D3, 	 0, 	 0, 0xF16C, 0xF6B7, /* 0x60 */
		 0, 	 0, 0xF048, 0xE3F9, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xE958, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xF049, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF3DE, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xE6B6, 0xE2B5, 	 0, 0xE7A8, /* 0x90 */
		 0, 	 0, 0xF17E, 	 0, 	 0, 0xE9AA, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xE1A2, 0xEF3E, 	 0, 	 0, 	 0, 0xEBBD, /* 0xA0 */
		 0, 0xF461, 	 0, 	 0, 	 0, 	 0, 0xEFC1, 	 0, /* 0xB0 */
		 0, 	 0, 0xE49E, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xE8B5, 	 0, 0xF4E7, 0xE7A0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF961, 	 0, 0xF1B2, 0xF53F, 	 0, 0xF8A3, 	 0, /* 0xC0 */
		 0, 0xF951, 	 0, 0xF23B, 0xE535, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF594, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xF269, 	 0, 	 0, 	 0, /* 0xF0 */
	0xF8CA, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE1E3, 0xE74B	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xEDDB, 0xF799, 	 0, 	 0, 	 0, 0xF664, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6A9, /* 0x00 */
		 0, 0xE0C9, 	 0, 	 0, 0xEE61, 0xF35C, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xE73E, 	 0, 0xF7D3, 0xE5FE, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xE74C, 0xF440, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xEC3B, 0xF4E8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xF2C2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF1EC, /* 0x30 */
		 0, 0xEEB8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xE8A0, 	 0, 	 0, 0xE14E, 	 0, 	 0, 0xF49E, /* 0x50 */
	0xE87B, 	 0, 0xEC68, 0xF1D6, 	 0, 	 0, 0xE661, 0xEB43, /* 0x50 */
		 0, 	 0, 0xF962, 	 0, 0xF0C8, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE4C1, 0xF35D, 	 0, /* 0x60 */
	0xE2F7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xF1D2, 	 0, 0xE568, 0xE959, 0xE6F1, 	 0, /* 0x70 */
		 0, 0xEABB, 	 0, 	 0, 0xF4A5, 	 0, 	 0, 	 0, /* 0x80 */
	0xF55D, 	 0, 	 0, 	 0, 	 0, 0xF3BF, 0xF741, 	 0, /* 0x80 */
	0xEFFA, 	 0, 	 0, 	 0, 0xF8CB, 	 0, 	 0, 0xE065, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xF7D4, 0xF6CA, 	 0, 	 0, 0xE658, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF978, 0xF4BD, /* 0xA0 */
		 0, 0xF2A0, 	 0, 0xEEFE, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE4C2, 	 0, 	 0, 	 0, 	 0, 0xE4B6, 	 0, /* 0xB0 */
	0xE13D, 0xF69C, 0xE642, 0xE468, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xEED8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xECA5, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xEEB9, 	 0, 	 0, 	 0, 	 0, 0xF33D, /* 0xD0 */
	0xF8CC, 0xF0A1, 	 0, 	 0, 0xE536, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xF8CD, 	 0, 0xE5BD, 0xF3DF, 	 0, 	 0, 0xF69D, /* 0xE0 */
		 0, 0xEA44, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5EB			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_70[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xEDC8, 	 0, 	 0, 	 0, 0xF8A4, 0xE549, 	 0, /* 0x00 */
		 0, 0xEA71, 	 0, 0xED33, 	 0, 	 0, 	 0, 0xE6B7, /* 0x00 */
		 0, 0xF77E, 	 0, 	 0, 	 0, 0xEA45, 	 0, 	 0, /* 0x10 */
	0xE662, 	 0, 0xF7D5, 0xEEBA, 0xF0D5, 0xE5F7, 0xF2E7, 0xEBBE, /* 0x10 */
		 0, 	 0, 	 0, 0xF83E, 	 0, 	 0, 	 0, 0xE679, /* 0x20 */
	0xE67E, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEEBB, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF15B, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5B3, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xE244, 	 0, 	 0, 	 0, /* 0x40 */
	0xF8A5, 0xEBEE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xF6A8, 	 0, 	 0, 	 0, 	 0, 0xF8CE, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xE74D, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xF8FD, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xF979, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xE2B6, 	 0, 	 0, 	 0, 0xF1C7, 0xF23C, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE16D, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xF637, 	 0, 	 0, 	 0, 0xEE9C, 	 0, /* 0x80 */
		 0, 	 0, 0xF5A4, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xF9DC, 0xF1B3, 0xE259, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xF2E8, 	 0, 	 0, 0xEBBF, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF86B, 0xE0E3, 0xF6A9, 	 0, 0xF8A6, /* 0xA0 */
		 0, 	 0, 	 0, 0xE949, 	 0, 	 0, 	 0, 0xF3C0, /* 0xB0 */
	0xF1C8, 0xF2C3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xE63D, 	 0, 	 0, 0xF9CE, 	 0, 	 0, 	 0, 0xEF31, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xF8F4, 0xE5A7, 	 0, 	 0, 	 0, 0xF3F6, 	 0, 0xEE63, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xE16E, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xF742, 	 0, 	 0, 	 0, 0xE97B					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_71[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xF9B6, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xEDEA, 	 0, 	 0, 0xF3E0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xE8CC, 0xE9CD, 	 0, 	 0, 	 0, 0xE558, 	 0, /* 0x10 */
		 0, 0xE7ED, 	 0, 	 0, 	 0, 	 0, 0xF5A5, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xEE9D, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEE64, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF9C8, /* 0x40 */
		 0, 0xE631, 0xF9BF, 	 0, 0xF963, 	 0, 0xF2A1, 	 0, /* 0x40 */
	0xEEBC, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE3EE, 	 0, /* 0x50 */
		 0, 0xEE65, 	 0, 	 0, 0xEFF2, 	 0, 0xEAB0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xE770, 0xF94A, 0xF9AF, 0xF35E, /* 0x60 */
		 0, 0xE8E1, 	 0, 	 0, 0xEDC9, 	 0, 0xF1B4, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEB53, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xECD8, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xEFFB, 0xF038, 	 0, 	 0, 	 0, 	 0, 0xF9B7, /* 0x80 */
		 0, 	 0, 0xF8A7, 	 0, 0xEFC2, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xF9F7, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEC69, /* 0x90 */
		 0, 	 0, 0xE97C, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xEF32, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xEE92, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xF9F8, 0xF9F9, 	 0, 	 0, 	 0, 0xF64F, 	 0, /* 0xB0 */
		 0, 0xEEA7, 	 0, 0xEE67, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xE595, 0xE559, 	 0, 	 0, 	 0, 	 0, 0xE69C, 	 0, /* 0xC0 */
	0xE6F2, 	 0, 0xEBC0, 	 0, 0xE8E2, 0xEE68, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEEBD, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF35F, 0xF4BE, 0xEC3C, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5B7, 0xEB92, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xF9B8, 0xECE8, 	 0, 0xE537, 0xEF9E	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_72[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF862, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF791, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xE663, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xE5B4, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xF360, 	 0, 0xF6F0, 0xF243, 	 0, 	 0, /* 0x20 */
	0xF04A, 	 0, 0xF063, 	 0, 	 0, 0xF1C9, 0xE9AB, 	 0, /* 0x30 */
		 0, 	 0, 0xEDAC, 0xF9A1, 	 0, 0xEAD0, 0xF143, 	 0, /* 0x30 */
	0xEAD1, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF1ED, 0xF748, /* 0x40 */
	0xF6FA, 	 0, 	 0, 	 0, 0xF73B, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xF570, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xE54A, 0xED43, 	 0, 0xEFDA, 	 0, 0xEA46, 	 0, 0xE7BF, /* 0x50 */
		 0, 0xE7C0, 0xE691, 	 0, 	 0, 	 0, 	 0, 0xE7CC, /* 0x60 */
		 0, 0xE83A, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xEAE5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xF6E5, 	 0, 	 0, 	 0, 0xE142, 	 0, 	 0, /* 0x70 */
	0xEAF9, 0xE6E0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xE54B, 	 0, 	 0, 	 0, 	 0, 0xF9FA, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xE143, 	 0, 	 0, 0xE8F3, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xEAD2, 	 0, 0xE25A, 	 0, 0xF26A, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xED74, 	 0, /* 0xC0 */
	0xF8CF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE2B7, /* 0xD0 */
		 0, 0xF253, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xE27A, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xEC3D, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xE6E1, 0xF897, 	 0, 	 0, 0xE5C9, 0xF73C					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_73[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xEED9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4E9, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xE77D, 0xECC4, 0xF393, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEF75, 	 0, 	 0, /* 0x20 */
		 0, 0xEB9C, 0xF254, 0xE7DE, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF0A2, 0xF0A3, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF952, 0xF04B, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xEF3B, 0xEA72, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xF1EF, 	 0, 0xEF33, 	 0, 	 0, 	 0, 	 0, 0xE2F1, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xE54C, 	 0, 0xF97A, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xEEBE, 	 0, 0xF994, 	 0, 	 0, 0xE644, 	 0, 	 0, /* 0x70 */
	0xEC3E, 	 0, 0xE4B7, 0xF85C, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF86C, 	 0, 0xF1B5, 0xEBE3, /* 0x80 */
		 0, 0xEF3C, 	 0, 0xEF6D, 	 0, 	 0, 0xF2E9, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xF54D, 	 0, 0xE2B8, 0xEFDB, /* 0x90 */
	0xE3AC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE857, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF0C9, /* 0xA0 */
		 0, 0xEF5C, 	 0, 	 0, 	 0, 0xEA47, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xE64C, 0xE4E5, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xF86D, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xE866, 	 0, 0xE041, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xE858, 0xEAA6, 	 0, 0xF7B3, 0xF462, 	 0, 0xE054, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE25B, 	 0, /* 0xD0 */
		 0, 0xE1F5, 	 0, 	 0, 	 0, 0xF9B0, 0xE5A8, 	 0, /* 0xD0 */
	0xF3C1, 	 0, 	 0, 0xEC79, 0xE95A, 0xF144, 0xF850, 	 0, /* 0xE0 */
		 0, 0xF8A8, 0xE338, 	 0, 	 0, 0xE87C, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7EE, /* 0xF0 */
		 0, 0xEB9D, 	 0, 	 0, 	 0, 0xF2EA, 0xF86E			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_74[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xEB54, 	 0, 0xE2B9, 	 0, 0xE5CA, 0xE6E2, 0xEC3F, /* 0x00 */
		 0, 0xE6B8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xEF5D, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xF66A, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xF2A2, 0xEC6A, 0xF69E, 	 0, 	 0, 0xF8D0, 0xE3AD, 	 0, /* 0x20 */
	0xE1E4, 	 0, 0xE3AE, 0xE97D, 0xEF5E, 	 0, 0xF39B, 0xE245, /* 0x20 */
	0xEE9E, 	 0, 	 0, 0xE6FB, 0xE366, 0xE9F5, 0xF6F1, 	 0, /* 0x30 */
	0xF69F, 	 0, 0xE8F7, 	 0, 	 0, 	 0, 	 0, 0xF8EA, /* 0x30 */
	0xEFDC, 0xE7C1, 	 0, 0xF5F2, 0xEB55, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xF064, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF7C2, 	 0, 0xF04C, /* 0x50 */
		 0, 0xE455, 0xF8D1, 0xEEC0, 0xF0A5, 	 0, 0xEAFA, 0xECA2, /* 0x50 */
	0xE6B9, 	 0, 0xEFC3, 	 0, 0xEF9F, 0xEF3F, 	 0, 	 0, /* 0x60 */
	0xF463, 0xF8A9, 0xE735, 	 0, 	 0, 	 0, 	 0, 0xE5CB, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE358, 	 0, /* 0x70 */
		 0, 	 0, 0xE3AF, 0xE6E3, 	 0, 	 0, 	 0, 0xEB56, /* 0x80 */
		 0, 0xE632, 	 0, 0xF1F0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xE6F3, 	 0, 	 0, 	 0, 0xF964, 	 0, 0xE867, 0xE16F, /* 0x90 */
		 0, 0xF464, 	 0, 0xE3B0, 	 0, 0xE170, 	 0, 0xE8FD, /* 0xA0 */
	0xF4BF, 	 0, 0xF361, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF94B, 	 0, 0xEC40, 	 0, 	 0, 0xEE35, 	 0, 	 0, /* 0xB0 */
		 0, 0xEC6B, 	 0, 	 0, 	 0, 0xEADE, 	 0, 0xEB57, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF491, 	 0, /* 0xC0 */
		 0, 	 0, 0xE171, 	 0, 	 0, 	 0, 	 0, 0xE67A, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xEEC2, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE246, 	 0, 0xF4C0, 	 0, 0xE1FE, 	 0, 	 0, 	 0, /* 0xD0 */
	0xF8D2, 	 0, 0xF79A, 0xF6FB, 	 0, 	 0, 0xEF4F, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEF47, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF1B6	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_75[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xE94A, 	 0, 	 0, 0xE144, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xF3F7, 	 0, 	 0, 	 0, 0xEF48, 	 0, 	 0, /* 0x10 */
	0xE098, 	 0, 0xED34, 0xF566, 	 0, 	 0, 	 0, 0xEAE6, /* 0x10 */
		 0, 	 0, 	 0, 0xEAA7, 	 0, 0xEAE7, 0xEBC1, 	 0, /* 0x20 */
	0xEFC4, 	 0, 	 0, 0xE95B, 0xEFC5, 	 0, 	 0, 	 0, /* 0x20 */
	0xF2A3, 0xF0A6, 0xE0A3, 0xECE9, 	 0, 	 0, 	 0, 0xE3FB, /* 0x30 */
	0xF2A4, 	 0, 0xF2EB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE344, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xE1A3, 	 0, 	 0, 0xEF76, /* 0x40 */
		 0, 0xF2A5, 	 0, 0xE4CC, 0xE87D, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xE6BA, 	 0, 0xF465, 0xF5E5, 0xE7EF, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xF7B4, 	 0, 	 0, 0xE5D4, 0xF9CF, 	 0, /* 0x60 */
		 0, 	 0, 0xE8E3, 	 0, 	 0, 	 0, 	 0, 0xF3E1, /* 0x60 */
	0xF146, 	 0, 	 0, 	 0, 	 0, 0xF8FE, 0xE4D7, 	 0, /* 0x70 */
	0xE3B1, 	 0, 0xE0B1, 	 0, 	 0, 	 0, 	 0, 0xE3B2, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE0B2, 0xF3C2, /* 0x80 */
		 0, 	 0, 0xF571, 0xF7B5, 	 0, 	 0, 0xEBC3, 0xEBC2, /* 0x80 */
		 0, 0xF0F7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEAA8, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE0CA, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xEE49, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xF76E, 0xF7AA, 0xE099, 	 0, 0xF1B7, 	 0, 	 0, /* 0xB0 */
	0xE4B8, 0xF466, 	 0, 	 0, 0xE569, 0xF255, 0xF492, 	 0, /* 0xB0 */
		 0, 	 0, 0xE042, 	 0, 	 0, 0xE94B, 	 0, 0xF3F8, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF147, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xEDCA, 	 0, 0xF650, 0xF9DD, 	 0, 	 0, /* 0xD0 */
	0xE573, 0xE172, 	 0, 0xF6D4, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xE6E5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE4C3, 	 0, 0xE736, 	 0, 0xF651, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xE9F6, 	 0, 0xE1C0							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_76[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xEDDC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEDCB, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xEBC4, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEF40, /* 0x10 */
	0xF540, 0xF4EA, 0xE87E, 	 0, 0xE6BB, 	 0, 0xEC41, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xE6AA, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xE69D, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xED6F, 	 0, 0xE066, 	 0, /* 0x40 */
		 0, 	 0, 0xF0A8, 	 0, 	 0, 	 0, 0xE8FE, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xF652, 	 0, 	 0, 0xF2BB, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xE59F, 	 0, 	 0, 0xEB58, 	 0, 	 0, 	 0, /* 0x60 */
	0xEF49, 	 0, 0xF2A6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xE1A4, 	 0, 	 0, 0xE596, 0xE8A1, 0xE8DC, 0xE8DD, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF26C, 	 0, 0xE0CB, 0xF965, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE27B, 	 0, /* 0x80 */
	0xE1C1, 	 0, 	 0, 0xF8D3, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7AB, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xF5D4, 	 0, 	 0, 	 0, 	 0, 0xE7A9, /* 0xB0 */
		 0, 	 0, 0xEFDD, 0xE8CD, 	 0, 	 0, 0xE9CE, 	 0, /* 0xC0 */
	0xEEC3, 	 0, 0xF15C, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xF7EC, 	 0, 	 0, 	 0, 0xE0CC, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xEB9E, 0xE538, 	 0, 0xF1D3, 0xE791, /* 0xD0 */
		 0, 0xF467, 	 0, 0xE09A, 0xE891, 	 0, 	 0, 0xE664, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7CD, 	 0, /* 0xE0 */
		 0, 	 0, 0xE77E, 	 0, 0xF451, 	 0, 	 0, 	 0, /* 0xF0 */
	0xEAD3, 	 0, 	 0, 	 0, 0xE892, 	 0, 0xEC7A			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_77[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xEB9F, 	 0, 	 0, 0xE79A, 	 0, 	 0, 	 0, /* 0x00 */
	0xF6AF, 0xE846, 	 0, 0xE067, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF468, 	 0, /* 0x10 */
	0xE79B, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xF86F, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE2EF, /* 0x30 */
	0xE7C2, 	 0, 0xF362, 	 0, 0xED61, 	 0, 	 0, 	 0, /* 0x30 */
	0xF4B7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF870, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xF2EC, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xEC42, 	 0, 0xE54D, 	 0, 	 0, 0xE7CE, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xF572, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xE539, 	 0, 	 0, 	 0, 	 0, 0xE1C2, 0xEEDA, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xF469, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xE7AA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE74E, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE93D, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xEC7B, 0xE69E, 	 0, 	 0, /* 0xA0 */
	0xE09B, 	 0, 	 0, 0xE56A, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xF567, 0xE131, 	 0, 	 0, 0xE2BA, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF5B8, /* 0xD0 */
		 0, 	 0, 	 0, 0xE7C3, 0xE378, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xECC5, 0xF0F8, 	 0, 0xF441, 	 0, 	 0, /* 0xE0 */
		 0, 0xE2BB, 	 0, 	 0, 	 0, 0xE4AD, 0xEF71, 0xE27C, /* 0xE0 */
		 0, 	 0, 	 0, 0xEB44									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_78[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xEA73, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xE9F7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF442, 0xF4F6, 0xF66B, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xE6FE, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xF76F, 	 0, 0xF6F2, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE339, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEE6A, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5A6, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xE6BC, 0xE173, 	 0, 	 0, 0xEE6B, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xE9DD, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xE3B3, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF2ED, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xE66E, 0xED96, 0xEBEF, 	 0, /* 0x80 */
		 0, 0xE9F8, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEF5F, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xE075, 	 0, 	 0, 	 0, 0xE931, /* 0xA0 */
		 0, 0xEB45, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xF93C, 0xF93D, 0xE737, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xF1B8, 	 0, 	 0, 	 0, 0xE8B6, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE692, 0xF4AF, 	 0, 	 0, 0xE1A5, 	 0, /* 0xC0 */
	0xE893, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE738, 	 0, 	 0, 	 0, 0xE174, 	 0, 	 0, 0xE3B4, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE068, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xE894									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_79[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xF5A7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF5A8, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEE36, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xE5EC, 0xE5F8, 0xE895, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xECC6, 	 0, 	 0, 	 0, 0xEA74, 	 0, /* 0x30 */
	0xEA75, 0xE3B5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE3B6, /* 0x40 */
	0xE3B7, 0xF443, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xEFDE, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF363, 0xF444, /* 0x50 */
		 0, 	 0, 0xF364, 0xE0E4, 0xF8D4, 0xF5E6, 0xECEA, 	 0, /* 0x50 */
	0xEA76, 	 0, 	 0, 	 0, 	 0, 0xEAD4, 	 0, 	 0, /* 0x60 */
	0xF79B, 	 0, 	 0, 	 0, 	 0, 0xF33E, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xE3B8, 	 0, 	 0, 	 0, 	 0, 0xE66F, /* 0x70 */
		 0, 0xE367, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF931, 0xF2EE, 0xE968, /* 0x80 */
		 0, 0xEFDF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDDD, 0xF9FB, /* 0xA0 */
		 0, 	 0, 0xEB59, 	 0, 	 0, 	 0, 0xE659, 	 0, /* 0xA0 */
		 0, 0xE53A, 	 0, 0xEDCC, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xEFE0, 	 0, 	 0, 	 0, 0xE368, 0xF932, 0xE54E, /* 0xB0 */
	0xEC43, 0xEA77, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xE94C, 0xE446, 0xF5D5, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xE231, 0xF5A9, 	 0, 	 0, 0xE9F9, 	 0, 	 0, /* 0xD0 */
	0xE9FA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF365, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xF66F, 	 0, 0xF46A, 0xED7B, /* 0xE0 */
		 0, 0xF493, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xF149									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF9FC, 	 0, 	 0, 	 0, 	 0, 0xEBAA, 	 0, 	 0, /* 0x00 */
	0xE069, 	 0, 	 0, 0xF2EF, 	 0, 0xF5AA, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xF19B, 	 0, 	 0, 0xF73D, /* 0x10 */
		 0, 0xF452, 0xF653, 	 0, 0xE6D2, 	 0, 	 0, 0xF7A2, /* 0x10 */
	0xF366, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF39C, 	 0, /* 0x20 */
		 0, 0xF670, 	 0, 	 0, 	 0, 	 0, 0xEFF3, 0xF453, /* 0x30 */
		 0, 	 0, 	 0, 0xE53B, 0xE043, 0xE1A6, 	 0, 0xE1C3, /* 0x30 */
	0xE1DA, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7CF, 	 0, /* 0x40 */
		 0, 0xF654, 	 0, 	 0, 	 0, 0xF26D, 0xEEC4, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEC44, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xEAE2, 0xEEDB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xEF41, 	 0, 0xF93E, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xEDCD, 	 0, 	 0, 	 0, 0xF87B, 	 0, 0xE2BC, 	 0, /* 0x70 */
		 0, 0xE2E2, 0xE1F6, 	 0, 	 0, 0xF2F0, 	 0, 0xF54E, /* 0x70 */
		 0, 0xE55D, 	 0, 	 0, 0xF4B8, 	 0, 	 0, 	 0, /* 0x80 */
	0xEFA1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xF494, 0xF4EB, 	 0, 0xF367, 	 0, 	 0, /* 0x90 */
	0xE2D7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE2DF, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xEF50, 0xEF51, 	 0, 	 0, 	 0, 0xE2E3, 0xEFA2, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xE33A, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xF4C1, 0xE33B, 	 0, 0xE574, /* 0xC0 */
		 0, 	 0, 0xF2BC, 0xE731, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7DF, /* 0xD0 */
		 0, 0xF4D7, 	 0, 	 0, 	 0, 0xE94D, 	 0, 0xE175, /* 0xD0 */
	0xF1F1, 	 0, 	 0, 0xF3E2, 	 0, 0xE56B, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xEC45, 	 0, 	 0, 0xE076, 	 0, 0xE4AE, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE176, 	 0, /* 0xF0 */
		 0, 0xF3D3, 0xF5E7, 	 0, 	 0, 	 0, 	 0, 0xE06A	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xF8EE, /* 0x00 */
		 0, 0xEBC5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xEAE9, 	 0, 0xF26E, 	 0, 	 0, 0xF6C2, 	 0, /* 0x10 */
	0xE732, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE9AC, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xF33F, 0xE64D, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xEBAB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7B6, 	 0, /* 0x40 */
		 0, 0xE597, 	 0, 0xE359, 0xF2A7, 0xEC7C, 	 0, 0xE8EA, /* 0x40 */
	0xE25C, 0xF5E8, 0xF6D5, 	 0, 0xE4CD, 	 0, 0xF4FE, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xE345, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xEBA0, 	 0, 0xEAFB, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEE6D, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEF34, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE0CD, /* 0x80 */
		 0, 	 0, 	 0, 0xF2A8, 	 0, 	 0, 	 0, 0xF244, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xE868, 0xE3B9, 	 0, 0xEAA9, /* 0x90 */
		 0, 	 0, 0xF4B0, 	 0, 	 0, 0xE154, 	 0, 	 0, /* 0x90 */
		 0, 0xE247, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF2A9, 	 0, 	 0, /* 0xA0 */
		 0, 0xEAD5, 	 0, 	 0, 0xF1D7, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF256, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF2BD, 0xF966, 	 0, 	 0, 0xE8F4, 	 0, 0xF2AA, 0xF749, /* 0xC0 */
		 0, 0xF5E9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xECD9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xEBC6, 	 0, 	 0, 	 0, 0xE54F, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xEA78													/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xF37A, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xF4C2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4AF, 	 0, /* 0x10 */
		 0, 0xE06B, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF967, /* 0x20 */
		 0, 	 0, 0xF1D8, 0xEBC7, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF568, 0xE643, 0xE9AD, /* 0x30 */
		 0, 	 0, 	 0, 0xE5BE, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xF3C3, 0xF26F, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xE67B, 	 0, 	 0, 	 0, 0xF569, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xE6E6, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xE847, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 0xE9FB, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xE9CF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE733, 	 0, 	 0, 0xE869, 	 0, 0xF368, /* 0x90 */
	0xF2C4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEBD8, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF3D4, 	 0, 0xF1F2, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5DB, 	 0, /* 0xA0 */
		 0, 0xE5DC, 0xF4C4, 0xE0D7, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xEC46, 	 0, 	 0, 	 0, 	 0, 0xF2F1, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xF8D5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4D8, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE9D0, 0xF369, /* 0xD0 */
	0xE0B3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5DD, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xE1A7, 	 0, 	 0, 0xE33C			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE3BA, 	 0, 0xF3C4, 	 0, 0xEDB3, 0xF8F5, 0xEFE1, 0xF9E0, /* 0x00 */
	0xF94C, 	 0, 0xE832, 0xE833, 	 0, 0xE431, 	 0, 	 0, /* 0x00 */
	0xE491, 	 0, 	 0, 	 0, 0xEC7D, 	 0, 	 0, 0xEA79, /* 0x10 */
	0xE26C, 0xF445, 0xE374, 0xE9D1, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xEBC8, 0xE8B7, 0xEAE3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xF1B9, 0xF3C5, 	 0, 0xF4CF, 0xE6AB, /* 0x20 */
	0xEBAC, 	 0, 	 0, 0xECEB, 	 0, 0xF257, 	 0, 	 0, /* 0x30 */
		 0, 0xEBC9, 0xE09C, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xF39D, 0xF871, 0xF36A, 0xE177, 0xE896, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xE14F, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE27D, 	 0, /* 0x50 */
		 0, 0xE5A9, 0xF872, 	 0, 	 0, 	 0, 0xE375, 	 0, /* 0x60 */
	0xF0D6, 	 0, 0xF16F, 	 0, 	 0, 	 0, 0xEAFC, 	 0, /* 0x60 */
		 0, 0xF6D6, 0xEA7A, 0xE0B4, 	 0, 	 0, 0xF2BE, 	 0, /* 0x70 */
		 0, 0xE145, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE2BD, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF2F2, 0xEC47, /* 0x80 */
		 0, 	 0, 	 0, 0xE178, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xF39E, 	 0, 	 0, 	 0, /* 0x90 */
	0xE670, 	 0, 0xF3C6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xEC48, 0xF0AB, 	 0, 	 0, /* 0xA0 */
		 0, 0xE0B5, 0xE761, 	 0, 0xF55E, 0xF4F7, 	 0, 	 0, /* 0xB0 */
	0xE6C6, 	 0, 0xE3BB, 0xF6AA, 	 0, 0xF1CA, 0xE6D3, 0xE79C, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF655, /* 0xC0 */
		 0, 	 0, 0xE3CC, 0xE9FC, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAFD, 	 0, /* 0xD0 */
	0xF7E5, 	 0, 0xEB5A, 	 0, 	 0, 0xF49F, 0xE4B0, 	 0, /* 0xD0 */
	0xF595, 0xE859, 	 0, 0xEE6E, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF74A, 0xEF60, 	 0, 	 0, 0xE79D, 	 0, 	 0, 0xF065, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xE633, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xF656									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xF46B, 0xED9E, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEF42, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xE86A, 	 0, 0xF46C, 0xF8D6, 0xEFB2, /* 0x10 */
		 0, 0xF23D, 	 0, 0xF873, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xE97E, 	 0, 	 0, 0xF5EA, 0xEE70, /* 0x20 */
		 0, 0xF39F, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6AC, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5C5, 0xF270, 	 0, /* 0x30 */
		 0, 0xE8E5, 	 0, 0xE9DE, 	 0, 	 0, 0xE7F0, 0xEFA3, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xF3F9, 	 0, 0xF454, 0xEB5B, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEFA4, 	 0, /* 0x50 */
		 0, 0xEC49, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xECB1, 0xF97B, 0xE1A8, 	 0, 0xE146, 	 0, 	 0, /* 0x60 */
	0xF36B, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xEE4A, 	 0, 	 0, 0xE1A9, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xF4C3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xEBD9, 	 0, 	 0, 0xF2AB, /* 0x80 */
		 0, 	 0, 	 0, 0xEEC5, 	 0, 	 0, 0xEB79, 	 0, /* 0x90 */
	0xF4C5, 	 0, 	 0, 0xE550, 0xE5BF							/* 0x90 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
													0xE9AE, 	 0, /* 0x30 */
	0xF7FC, 	 0, 0xE150, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xEDA2, 	 0, 	 0, 	 0, /* 0x40 */
	0xE248, 	 0, 	 0, 	 0, 0xE762, 0xF7D6, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xF3AA, 0xE261, 	 0, 	 0, 0xF657, 	 0, /* 0x60 */
	0xE8EB, 	 0, 0xEAFE, 	 0, 	 0, 0xE771, 	 0, 0xF6F3, /* 0x70 */
		 0, 0xE6E7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE5A0, 	 0, 	 0, /* 0x80 */
	0xE3BC, 	 0, 0xEDCF, 	 0, 0xE0B6, 	 0, 0xE848, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xE1C4, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xE64E, 	 0, 	 0, 	 0, 0xEC4A, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xE2D8, 	 0, 	 0, 	 0, /* 0xA0 */
	0xEB5C, 0xF0F9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xF9FD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xE6E8, 0xE0D8, 	 0, 	 0, 	 0, 0xEFE2, 	 0, 	 0, /* 0xB0 */
		 0, 0xEF4A, 	 0, 	 0, 	 0, 0xECC7, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xF15D, 	 0, 0xF15E, 	 0, 0xE64F, 	 0, /* 0xC0 */
		 0, 	 0, 0xECA7, 	 0, 0xEAD6, 0xF9E8, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF271, /* 0xD0 */
	0xF638, 0xE9FD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xF74B, 	 0, 0xEF61, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF7D7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xE27E, 	 0, 	 0, 0xF15F							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_80[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xEFA5, 0xE665, 	 0, 0xE1C5, 	 0, 0xF1BA, 0xE3BD, 	 0, /* 0x00 */
		 0, 0xE2BE, 	 0, 	 0, 0xF14B, 	 0, 	 0, 	 0, /* 0x00 */
	0xE441, 	 0, 	 0, 	 0, 	 0, 0xE179, 	 0, 0xE7C4, /* 0x10 */
	0xEFFC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE3BE, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xF14C, 	 0, 	 0, 0xEDAD, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF6B0, 	 0, 0xE17A, /* 0x30 */
		 0, 	 0, 	 0, 0xE4C4, 	 0, 	 0, 0xE650, 	 0, /* 0x40 */
		 0, 	 0, 0xE69F, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEBA1, 	 0, /* 0x50 */
	0xEA4D, 	 0, 0xF639, 	 0, 	 0, 	 0, 0xE834, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE634, /* 0x60 */
	0xF5C6, 	 0, 0xEBA2, 0xEFC6, 	 0, 	 0, 	 0, 0xF455, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF579, 0xE67C, 0xF0D3, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF14D, 0xEC6C, 0xEA7B, 0xF36C, /* 0x80 */
		 0, 0xF0BF, 	 0, 0xE6CE, 0xE3BF, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF5AB, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xF7FD, 	 0, 0xE06C, 	 0, 	 0, /* 0x90 */
		 0, 0xE1C6, 0xF446, 	 0, 	 0, 0xE9FE, 	 0, 	 0, /* 0xA0 */
		 0, 0xE147, 0xE8B8, 	 0, 	 0, 	 0, 	 0, 0xE379, /* 0xA0 */
		 0, 0xE26D, 0xF0C0, 	 0, 0xF9A2, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xF75B, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xF066, 0xF3B0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xE8CE, 	 0, 0xF6C3, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xE8CF, 0xE0A4, 	 0, 	 0, 0xF770, 	 0, /* 0xD0 */
		 0, 0xF8D7, 	 0, 	 0, 0xF0CA, 0xEB31, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xE25D, 	 0, 	 0, 0xE56C, 	 0, 	 0, 	 0, /* 0xF0 */
	0xF9D8, 	 0, 	 0, 	 0, 	 0, 0xE498					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_81[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xF447, 	 0, 	 0, 0xF898, 0xF63A, 0xF899, /* 0x00 */
	0xE776, 	 0, 0xF541, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xEF62, 	 0, 0xE055, 0xE17B, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xEC7E, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xEC4B, 	 0, 0xF6AD, 	 0, 	 0, 	 0, 0xF771, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xF4EC, 	 0, 	 0, 	 0, 	 0, 0xEA31, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xED9F, 	 0, 	 0, 0xECEC, 	 0, /* 0x40 */
	0xE9AF, 0xE9B0, 	 0, 	 0, 0xE0B7, 0xEF63, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEBA3, 0xE470, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xF3A0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xEFA6, 0xE0F2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xF1F3, 0xE969, 0xEB5D, 	 0, 	 0, 	 0, 	 0, 0xF6DA, /* 0x70 */
	0xE8B9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xE13E, 	 0, 0xE86B, 	 0, 	 0, 	 0, 	 0, 0xE1C7, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xE9B1, 	 0, 0xE73F, 0xECA3, 	 0, 	 0, /* 0x90 */
	0xE291, 	 0, 	 0, 0xF495, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF743, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xEB5E, 	 0, 0xF5FD, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xF0EC, 	 0, 	 0, 0xE4C5, 0xF97C, 0xE46B, /* 0xB0 */
	0xE57B, 	 0, 0xEA32, 	 0, 	 0, 	 0, 0xEDE6, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF340, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE5C4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF1F4, /* 0xD0 */
		 0, 	 0, 	 0, 0xECED, 	 0, 0xEF52, 	 0, 0xF1F5, /* 0xE0 */
	0xE6FC, 	 0, 0xF1BB, 	 0, 	 0, 0xF63B, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF448, 0xF658, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xE4E6, 0xF46D, 0xE2BF, 	 0, 0xF0AC			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_82[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xE2C0, 	 0, 0xEE38, /* 0x00 */
	0xF9E9, 	 0, 0xE2C1, 	 0, 0xEB6F, 0xEA7C, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xEB32, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xF54F, 0xEC91, 	 0, 0xE7F1, 0xF3C7, /* 0x10 */
		 0, 0xE0B8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xF7FE, 0xE8BA, 0xE897, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF67C, 0xE86C, 0xF874, /* 0x30 */
		 0, 0xEB5F, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xE9B2, 	 0, 	 0, 	 0, 	 0, 0xEE39, 	 0, 0xF2F3, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xF4ED, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xF0FA, 	 0, 0xF7E6, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE06D, 0xE5DE, /* 0x60 */
		 0, 0xE06E, 0xEAE4, 	 0, 	 0, 	 0, 0xEE9F, 	 0, /* 0x70 */
	0xF5AC, 	 0, 	 0, 	 0, 	 0, 	 0, 0xED97, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xEFE3, 	 0, 0xF1CB, 0xE2E4, 	 0, /* 0x80 */
		 0, 	 0, 0xE763, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xE9B3, 0xE57C, 	 0, 	 0, 0xF449, 	 0, 0xEAB7, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE0CE, 0xF8D8, 	 0, /* 0xA0 */
		 0, 0xE369, 	 0, 	 0, 0xE9D2, 0xF6F4, 0xEEDC, 0xED35, /* 0xA0 */
		 0, 0xF933, 	 0, 0xE8BB, 	 0, 	 0, 	 0, 0xF44A, /* 0xB0 */
	0xEFFD, 0xE35A, 	 0, 0xF5D6, 0xE7C5, 0xED44, 	 0, 0xF1A7, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF04D, 0xEEA0, 	 0, 0xF6C4, 0xF5AD, 	 0, 0xE7E0, /* 0xD0 */
		 0, 	 0, 	 0, 0xE044, 	 0, 	 0, 0xF772, 0xE2C2, /* 0xD0 */
		 0, 0xF14E, 	 0, 	 0, 	 0, 0xEDB4, 0xE1C8, 0xF258, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xEEC8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE1C9, 0xF7B7			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_83[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xF3E8, 0xE7F2, 0xE8F5, 0xE045, 0xE7C6, 	 0, 	 0, /* 0x00 */
		 0, 0xE759, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7AB, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xF1BC, 	 0, 	 0, 0xE764, 	 0, 	 0, 	 0, 0xE96A, /* 0x20 */
		 0, 0xEC4C, 	 0, 	 0, 0xF97D, 0xF170, 0xE4A0, 	 0, /* 0x30 */
	0xEFC7, 0xEE3A, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xEC92, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF84B, /* 0x40 */
		 0, 0xF5AE, 0xF8AA, 	 0, 	 0, 	 0, 	 0, 0xF19D, /* 0x40 */
		 0, 0xF14F, 0xF968, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xE575, 	 0, 	 0, 	 0, 0xF7C3, /* 0x70 */
		 0, 	 0, 	 0, 0xF272, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xE6E9, 0xF1F6, 	 0, 	 0, 	 0, 0xEA7D, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE17C, 	 0, /* 0x90 */
	0xECEE, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEF64, 	 0, /* 0x90 */
		 0, 	 0, 0xF89A, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xE9B4, 0xED45, 0xE740, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE765, 	 0, 	 0, /* 0xB0 */
		 0, 0xF57A, 	 0, 	 0, 	 0, 0xE249, 	 0, 	 0, /* 0xC0 */
		 0, 0xE671, 0xE2D2, 	 0, 0xE346, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xE232, 	 0, 	 0, 0xF4EE, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xF4F8, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xE95C, 	 0, 0xE35B, 	 0, 	 0, 	 0, 0xF934, /* 0xE0 */
	0xE1CA, 0xE6D4, 0xEA33, 	 0, 0xED70, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xF259, 	 0, 	 0, 	 0, 0xEC6D					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_84[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xF5FE, 0xE53C, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xE5D1, 	 0, 0xE792, 0xF753, 0xF067, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xF5D7, 	 0, 	 0, 0xE74F, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xF9C0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xF0AD, 	 0, 	 0, 	 0, 	 0, 0xE5AA, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xEEA8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF25A, /* 0x50 */
		 0, 	 0, 	 0, 0xE077, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xF773, 	 0, 0xE56D, 	 0, 	 0, 0xF068, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xF8D9, 0xF1F7, 	 0, 	 0, 0xEDB5, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE33D, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xF3F1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xEC4D, 	 0, 	 0, 	 0, 0xECC8, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xE7D5, 	 0, 	 0, 0xEAAA, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xE8BC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xF774, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF3FA, 	 0, 	 0, 0xEDB6, 0xF4EF, 	 0, 	 0, 0xF8DA, /* 0xB0 */
	0xEBE0, 	 0, 0xE7AC, 	 0, 0xF5EB, 	 0, 0xEB46, 	 0, /* 0xC0 */
		 0, 0xEFC8, 	 0, 0xE0CF, 	 0, 0xECC9, 	 0, 	 0, /* 0xC0 */
		 0, 0xEA7E, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xEC4E, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xE991, 	 0, 0xE635, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xEC93, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 0xE6A0							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_85[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xE7A1, 	 0, 0xE750, 0xE96B, 	 0, 	 0, 0xF1BD, /* 0x10 */
	0xEAB8, 	 0, 0xF035, 	 0, 	 0, 	 0, 0xE6AD, 	 0, /* 0x10 */
		 0, 0xF4F9, 	 0, 0xF1F8, 	 0, 0xF5C7, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xEBCA, 0xF0E3, 	 0, 0xF46E, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF75C, 	 0, 0xF069, /* 0x30 */
		 0, 0xE4C6, 	 0, 0xE8E6, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xF5AF, 	 0, 	 0, 	 0, 	 0, 0xE292, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xEFFE, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xF8B6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xEC94, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xE2F2, 0xF6B9, 0xE7F3, 	 0, 	 0, 0xEBCB, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xE86D, 	 0, 	 0, 0xE849, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF0FB, /* 0x80 */
		 0, 0xE0B9, 	 0, 	 0, 0xF1F9, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xEB70, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF550, 	 0, /* 0xA0 */
	0xF9BC, 0xEAB1, 0xECEF, 	 0, 	 0, 	 0, 	 0, 0xEB33, /* 0xA0 */
	0xF9B9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xF341, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE1CB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF1BE, 	 0, 	 0, 	 0, 0xE5C0, 0xECF0, 0xF1FA, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEFE4, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xE5ED, 0xEEDD, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xE598, 0xEDB7, 	 0, 	 0, /* 0xE0 */
		 0, 0xE8E7, 0xEC4F, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF25B, /* 0xF0 */
		 0, 	 0, 0xE6F4, 0xF36D, 	 0, 	 0, 	 0, 0xE23B	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_86[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xEEDE, 	 0, 	 0, 	 0, 0xE666, 0xEBCC, /* 0x00 */
		 0, 	 0, 0xEF43, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDEE, 0xE932, /* 0x10 */
		 0, 	 0, 0xEB60, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE5B5, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5A1, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF8DB, 	 0, /* 0x40 */
	0xF7CB, 	 0, 	 0, 	 0, 0xE0F3, 0xF535, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xF858, 0xE667, 	 0, 0xEFE5, 0xF8DC, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF9D0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xF8F6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE835, 	 0, 0xE8BD, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xF172, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xE1F7, 0xF36E, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xF659, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEA91, /* 0xC0 */
		 0, 	 0, 	 0, 0xE4B1, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xF97E, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xEF53, 	 0, 0xF3C8, 	 0, 	 0, 	 0, 0xE293, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xF7ED, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF496, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xED46			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_87[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF5B9, 	 0, 0xE992, 0xECF1, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xEF35, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xF44B, 	 0, 0xEA34, 	 0, 0xE85C, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE079, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xECDA, 	 0, 0xF969, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF06A, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7C4, 	 0, /* 0x60 */
	0xECA4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xF8DD, 	 0, 0xF2CA, 	 0, /* 0x70 */
	0xEF54, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xE5CC, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF0D7, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7AD, /* 0x90 */
		 0, 	 0, 0xF8AB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xE4D9, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xE5A2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xF66E, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE898, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xEB61, 	 0, 	 0, 0xEFA8, /* 0xE0 */
		 0, 	 0, 0xF5F9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xF83F, 	 0, 0xF0FC, 	 0, 	 0, 0xEB7A			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_88[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xECB2, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5C5, /* 0x10 */
		 0, 	 0, 0xF3E3, 0xE5EE, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xE1CC, 	 0, 	 0, 	 0, 	 0, 0xF1D9, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xE751, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xF87C, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF3EB, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xF84C, 0xEE72, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xF875, 0xEC9C, 	 0, 	 0, 	 0, 0xE046, /* 0x50 */
		 0, 0xED47, 	 0, 0xF06B, 	 0, 0xF5FA, 	 0, 	 0, /* 0x50 */
		 0, 0xF8AC, 0xE2C3, 0xF0FD, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xF79C, 	 0, 	 0, 0xEAB9, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xEBF1, 	 0, 0xE434, 	 0, 	 0, 	 0, 	 0, 0xF5FB, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE36A, 0xE36B, /* 0x70 */
		 0, 0xF04E, 0xE7B1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xE047, 	 0, 	 0, 0xE4E7, 	 0, 0xF775, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE4B2, 	 0, 	 0, 	 0, 0xEC50, 0xF46F, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE1E5, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF7AC, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xE1CD, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xF23E, 0xE63E, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6EA, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xEEE0, 0xF0AE, 	 0, 	 0, /* 0xD0 */
		 0, 0xE2D9, 	 0, 	 0, 0xE95D, 0xF1FB, 	 0, 0xEA92, /* 0xD0 */
		 0, 0xE6EB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xEA35, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xEAD7, 0xE8D0, 0xE8D1, 	 0, 	 0, /* 0xF0 */
	0xE5A3, 	 0, 	 0, 	 0, 	 0, 0xF342					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_89[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xE96C, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xE078, 	 0, 0xF776, 0xE95E, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xF06C, 0xE8D2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEFB3, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xF6DB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xECA8, 	 0, /* 0x30 */
	0xE6AE, 	 0, 	 0, 0xEB71, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xE0BA, 	 0, 	 0, 0xEDD1, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE36C, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xE5C1, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xE75A, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xECA9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEB34, /* 0x70 */
		 0, 0xEFA9, 	 0, 0xE4C7, 	 0, 	 0, 0xE96D, 0xF73E, /* 0x80 */
		 0, 	 0, 	 0, 0xE148, 	 0, 	 0, 	 0, 0xE33E, /* 0x80 */
		 0, 	 0, 	 0, 0xE794, 	 0, 	 0, 0xECCA, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xE13F, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xE53D, 0xF661, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xE35C, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xE056, 	 0, 	 0, 0xE5C2, 	 0, 	 0, /* 0xB0 */
	0xE24A, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE057, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xF840, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xEAD8, 	 0, 	 0, 	 0, /* 0xF0 */
	0xF5BA															/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xEDEB, 	 0, 0xF2F4, 0xE9B5, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xE1AA, 	 0, 0xECF2, 	 0, 0xF8F7, 	 0, 0xF6D0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xF9BA, 	 0, 	 0, 0xF9E1, 0xF6A0, /* 0x10 */
	0xE3C0, 	 0, 	 0, 0xEF55, 	 0, 0xED48, 	 0, 0xEBE8, /* 0x10 */
		 0, 	 0, 	 0, 0xE151, 	 0, 0xE47D, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xE8BE, 	 0, 	 0, 0xEB72, 	 0, 	 0, /* 0x20 */
		 0, 0xF859, 	 0, 	 0, 0xEBCD, 	 0, 0xE048, 	 0, /* 0x30 */
		 0, 	 0, 0xF470, 0xF3C9, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xEA93, 	 0, 	 0, 	 0, 0xF36F, 0xF754, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xF25C, 	 0, 	 0, 0xEA94, 	 0, /* 0x50 */
	0xEEC9, 	 0, 0xEC95, 0xEEE1, 	 0, 	 0, 0xECCB, 	 0, /* 0x60 */
		 0, 0xECCC, 	 0, 	 0, 	 0, 0xE2F8, 0xF2AC, 	 0, /* 0x60 */
	0xF9FE, 0xF935, 0xF841, 0xEAD9, 	 0, 0xEB62, 	 0, 	 0, /* 0x70 */
		 0, 0xF56A, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF3CA, 	 0, 0xE233, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xF44C, 0xF173, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xEB35, 	 0, 0xF6AB, 	 0, 	 0, /* 0x90 */
	0xF0AF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDDE, 	 0, /* 0x90 */
	0xEBA4, 0xE1AB, 	 0, 0xE7F4, 0xEF36, 0xE1CE, 0xEBE9, 	 0, /* 0xA0 */
	0xF991, 	 0, 0xEB73, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xEC51, 	 0, 0xE234, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xEA36, 	 0, 	 0, 0xF0FE, 	 0, 0xF0DD, 0xF370, /* 0xB0 */
		 0, 	 0, 0xF56B, 	 0, 0xEC96, 	 0, 	 0, 0xE4C8, /* 0xC0 */
		 0, 	 0, 	 0, 0xF57B, 	 0, 0xF245, 	 0, 0xF5D8, /* 0xC0 */
		 0, 	 0, 0xE5DF, 	 0, 	 0, 	 0, 0xE675, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xF0B0, 0xF573, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xECCD, 	 0, 	 0, 	 0, 	 0, 0xF596, 0xF842, /* 0xE0 */
		 0, 	 0, 0xF2F5, 0xE06F, 	 0, 0xF0B1, 0xF1BF, 	 0, /* 0xE0 */
		 0, 0xF9C9, 	 0, 	 0, 	 0, 	 0, 0xED36, 0xF7A4, /* 0xF0 */
	0xF343, 	 0, 0xEDEC, 	 0, 	 0, 	 0, 0xE3E7			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE7C7, 0xED67, 0xF06D, 	 0, 0xE599, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE84A, 	 0, /* 0x00 */
	0xE85D, 	 0, 	 0, 	 0, 0xF7CC, 	 0, 0xEBDA, 0xE8BF, /* 0x10 */
		 0, 0xE155, 0xF160, 0xE0BB, 	 0, 0xEA95, 	 0, 	 0, /* 0x10 */
	0xEFAA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xE7C8, 	 0, 	 0, 0xF273, 0xE6BD, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xE2C4, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xE35D, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xF936, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xF3FB, 	 0, 	 0, 	 0, 	 0, 0xF9D2, 0xE3C1, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xECDB, 	 0, 0xE4C9, 	 0, 0xE95F, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE17D, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xEA37, 	 0, 	 0, 0xEE4B, /* 0x60 */
	0xF131, 	 0, 	 0, 	 0, 0xE149, 	 0, 	 0, 0xF8DE, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEEE2, 	 0, 	 0, /* 0x70 */
	0xE551, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE938, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xEC52, 	 0, 0xF4D8, 0xEDD3, 	 0, 	 0, 0xF4D9, 	 0, /* 0x90 */
		 0, 	 0, 0xF4C6											/* 0x90 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xE1DB, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE1AC, /* 0x30 */
		 0, 0xF953, 	 0, 	 0, 	 0, 	 0, 0xE577, 	 0, /* 0x40 */
	0xE3C2, 	 0, 0xF7A5, 	 0, 0xEF65, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xECCE, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xE55A, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xEADA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xF8DF, 0xEEE3, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xF79D, 0xECCF, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xF5B0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE777, 	 0, 0xE7C9, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF73F, 0xF2F6, 	 0, /* 0x90 */
	0xE9B6, 0xF23F, 0xE1F8, 	 0, 	 0, 	 0, 	 0, 0xEA48, /* 0xA0 */
	0xF937, 0xF6FC, 0xF6B1, 0xE24B, 0xF531, 	 0, 	 0, 0xF25D, /* 0xA0 */
	0xEBAE, 	 0, 	 0, 0xF153, 0xE2FE, 	 0, 0xF74F, 0xE772, /* 0xB0 */
	0xE4E8, 	 0, 	 0, 0xEA38, 0xF574, 0xF152, 	 0, 0xE7F5, /* 0xB0 */
	0xF7C5, 0xE9D3, 0xE693, 0xF19E, 0xF992, 	 0, 	 0, 0xF1C0, /* 0xC0 */
	0xE049, 	 0, 0xF274, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF471, 	 0, 0xEA49, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xE694, 	 0, 0xEA96, 	 0, 0xEADB, 	 0, /* 0xD0 */
	0xE8D3, 	 0, 0xF877, 0xE773, 0xF551, 	 0, 0xE9B7, 	 0, /* 0xE0 */
		 0, 	 0, 0xF497, 	 0, 	 0, 0xE53E, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xE695, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xE9B8, 0xE2C5, 0xEADF					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xF44E, 0xF631, 	 0, 0xF0CB, /* 0x00 */
	0xF3FC, 	 0, 0xF4C7, 	 0, 	 0, 0xEB7B, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xF1FC, 	 0, 	 0, 0xEBDB, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xF275, 	 0, 0xEA97, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xF863, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xF3CB, 	 0, 	 0, 0xE33F, 0xE9B9, 	 0, 	 0, 0xE3C3, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5B1, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xF056, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xF371, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xF63C, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF5D9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF37B, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xE9BA, 	 0, 	 0, 	 0, 0xF44F, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF6C5, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xE8A2, 0xF498, 	 0, 	 0, 0xE04A, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xF6F5, 	 0, 0xE0E5, 	 0, 	 0, /* 0xD0 */
		 0, 0xF276, 	 0, 0xEB63, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE235, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE668, /* 0xE0 */
		 0, 	 0, 	 0, 0xE53F									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xEFC9, 	 0, 	 0, 	 0, 	 0, 0xE4CE, /* 0x00 */
	0xF552, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE0E6, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xF3A1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xF0B2, 	 0, 	 0, 	 0, 	 0, 0xF3A2, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xF0B3, 	 0, 0xF344, 	 0, 	 0, 0xE0F4, /* 0x40 */
	0xE540, 0xF4B2, 0xF8B7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xF5EC, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF277, /* 0x50 */
	0xF542, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xF5ED, 	 0, 0xE2F3, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xF372, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF25E, /* 0x80 */
		 0, 	 0, 0xF3CC, 	 0, 	 0, 0xEDB8, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xE6F5, 0xECF3, 0xE2E5, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xE2C6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xF4B3, 0xED68, 0xE2F9, 0xE2DA, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xF85D, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEE73, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF472, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xF5EE, 	 0, 	 0, 0xE04B, 	 0, 	 0, 0xECDC			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xE294, 	 0, 0xE669, 	 0, 	 0, /* 0x00 */
		 0, 0xF240, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xF575, 0xE752, 0xE960, 0xE17E, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xE5E0, 0xF65A, 0xF9CA, 0xE766, 0xF55F, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE636, 0xE94E, /* 0x20 */
		 0, 0xE8D4, 0xE6C7, 	 0, 	 0, 	 0, 	 0, 0xF4A0, /* 0x20 */
		 0, 	 0, 	 0, 0xF3CD, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xEC53, 0xE96E, 	 0, 0xE96F, 	 0, 	 0, 0xF2AD, 0xEE3B, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xF7DD, 0xF04F, 	 0, 	 0, /* 0x40 */
		 0, 0xF2AE, 	 0, 	 0, 	 0, 0xF560, 0xE295, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEE3C, 	 0, 0xE26E, /* 0x50 */
		 0, 	 0, 0xE5F9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xECF4, 0xE1D0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xE5B8, 	 0, 	 0, 0xF6FD, 	 0, /* 0xA0 */
	0xE939, 	 0, 	 0, 	 0, 	 0, 0xEA98, 	 0, 0xE93A, /* 0xA0 */
	0xF473, 0xEFB4, 0xE46C, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xEFE6, 	 0, 	 0, 0xECF6, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEECA, 	 0, /* 0xC0 */
		 0, 0xE35E, 	 0, 	 0, 0xE899, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE04C, 	 0, /* 0xE0 */
		 0, 	 0, 0xF278, 0xE86E, 	 0, 0xF499, 	 0, 	 0, /* 0xE0 */
	0xEC9D, 	 0, 0xE136, 	 0, 	 0, 	 0, 	 0, 0xE84B, /* 0xF0 */
		 0, 0xF279, 	 0, 	 0, 	 0, 0xF5DA					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_90[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF6DC, 0xEBEA, 0xE251, 0xE541, 	 0, 0xF9B1, 0xEE4D, 	 0, /* 0x00 */
	0xF8AD, 	 0, 	 0, 0xF777, 	 0, 0xEBCE, 	 0, 0xF6E2, /* 0x00 */
	0xF5EF, 0xE2C7, 	 0, 	 0, 0xE542, 0xE191, 	 0, 0xE578, /* 0x10 */
		 0, 0xF25F, 0xF6D7, 	 0, 	 0, 0xEB36, 0xE651, 0xEBDC, /* 0x10 */
	0xF373, 0xF3E4, 0xE993, 0xE637, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF597, 	 0, /* 0x20 */
		 0, 0xF3CE, 0xF474, 	 0, 	 0, 0xE340, 	 0, 	 0, /* 0x30 */
	0xF191, 	 0, 	 0, 	 0, 0xF7BA, 	 0, 0xF0B5, 	 0, /* 0x30 */
		 0, 0xE57D, 0xEC54, 	 0, 	 0, 	 0, 	 0, 0xEFE7, /* 0x40 */
		 0, 	 0, 0xF0B4, 0xF031, 	 0, 0xF74C, 0xE236, 	 0, /* 0x40 */
	0xF7C6, 0xF96A, 	 0, 0xE543, 0xE4B9, 0xF06E, 	 0, 	 0, /* 0x50 */
		 0, 0xEFAB, 	 0, 	 0, 0xEBE1, 0xE4CF, 0xF598, 	 0, /* 0x50 */
	0xF050, 0xEBCF, 	 0, 0xE14A, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xF27A, 	 0, 	 0, 	 0, 0xF374, 0xF4B4, 0xE57E, /* 0x60 */
		 0, 	 0, 0xF450, 	 0, 	 0, 0xF3E5, 	 0, 0xF553, /* 0x70 */
	0xEB64, 	 0, 0xF0B6, 	 0, 0xE6A1, 0xE0E8, 	 0, 0xF7AD, /* 0x70 */
	0xEFAD, 0xE774, 0xF843, 0xEC55, 0xF94D, 	 0, 	 0, 0xF154, /* 0x80 */
	0xE741, 	 0, 0xE93B, 	 0, 	 0, 	 0, 	 0, 0xE5A4, /* 0x80 */
		 0, 0xF0E9, 	 0, 	 0, 	 0, 0xEF4B, 	 0, 	 0, /* 0x90 */
		 0, 0xE767, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xF8AE, 0xE3E1, 	 0, 	 0, 0xE8C0, 	 0, /* 0xA0 */
	0xF5BE, 	 0, 0xEA99, 	 0, 	 0, 	 0, 	 0, 0xE09D, /* 0xA0 */
	0xF6C6, 0xE2C8, 	 0, 	 0, 	 0, 0xEBD0, 	 0, 	 0, /* 0xB0 */
	0xF260, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xEFF4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE296, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5CD, 	 0, /* 0xD0 */
		 0, 0xE2DB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE9BB, 	 0, 	 0, 	 0, 	 0, 0xE23C, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEFE8, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE544					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_91[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xED57, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xF5DB, 	 0, 	 0, 0xF851, 	 0, 	 0, /* 0x10 */
		 0, 0xEA39, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE59A, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF2F7, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xE4B3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xF0B7, 0xF2F8, 0xF5DC, 0xF1CC, 0xE8D5, 0xF3CF, 	 0, /* 0x40 */
		 0, 	 0, 0xF3D0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xF5B2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xE7AE, 0xE5AC, 	 0, 0xEC56, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF9A3, 	 0, 0xF8E5, /* 0x70 */
	0xEAAB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEC97, /* 0x80 */
		 0, 0xF63D, 	 0, 0xF5B3, 	 0, 0xF345, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xEBA5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xF5DD, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF132, 0xF1FD, 	 0, 0xF5B4, 0xF8B8, /* 0xA0 */
		 0, 0xE8A3, 	 0, 	 0, 0xE65A, 0xE0D9, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xEDD4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4FA, /* 0xC0 */
		 0, 0xF0B8, 	 0, 0xEB47, 0xE6EC, 0xF3EC, 0xEDAF, 0xE5E1, /* 0xC0 */
	0xE6ED, 0xE3D1, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEBF2, /* 0xD0 */
	0xF2F9, 	 0, 	 0, 	 0, 0xE9BC, 0xF66C, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xF375, 	 0, 	 0, 	 0, 0xF554, /* 0xE0 */
		 0, 	 0, 0xEFE9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF4FB					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_92[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xE591, 	 0, 	 0, /* 0x00 */
	0xE132, 0xF6FE, 0xEABC, 	 0, 	 0, 	 0, 	 0, 0xF0CD, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE347, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xE652, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xEF3D, 	 0, 	 0, 	 0, 	 0, 0xF2AF, /* 0x30 */
	0xE0A5, 	 0, 	 0, 	 0, 	 0, 0xE0E9, 	 0, 	 0, /* 0x40 */
		 0, 0xF878, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE156, /* 0x50 */
		 0, 	 0, 	 0, 0xEE77, 	 0, 	 0, 0xF057, 	 0, /* 0x50 */
		 0, 	 0, 0xE8A4, 	 0, 0xE2C9, 0xEC9E, 0xF2FA, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xF0DE, 	 0, 	 0, 0xF5C8, 	 0, 0xE56E, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xEB65, 	 0, 0xF2B0, 	 0, 	 0, 0xEC57, 	 0, /* 0x90 */
	0xE7AF, 	 0, 	 0, 	 0, 0xF7E7, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xEEE5, 	 0, 	 0, 0xE2CA, 0xEBD1, /* 0xB0 */
		 0, 0xEC58, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xF2FB, 	 0, 	 0, 0xF89B, /* 0xC0 */
		 0, 	 0, 0xE994, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xEB37, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xF778, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xE0EA, 	 0, 	 0, 	 0, 0xE0BC							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_93[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xE672, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xF5DE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xF5DF, 	 0, 0xF246, 	 0, 	 0, 	 0, 0xEC98, 0xE4CA, /* 0x10 */
	0xF2FC, 0xE3C4, 0xF2B1, 	 0, 0xE3C5, 	 0, 0xE36E, 	 0, /* 0x20 */
	0xE7E1, 	 0, 	 0, 0xEB48, 	 0, 	 0, 0xE1D1, 0xF4B9, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xEECC, 	 0, 0xE638, 0xE237, 	 0, 0xE545, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xED58, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xE4B4, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF0B9, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE0F5, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF66D, 	 0, 0xF3A3, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xE157, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xEFCA, 	 0, 0xEBF0, 	 0, /* 0x90 */
		 0, 	 0, 0xF5E0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xF8AF, 	 0, 	 0, 	 0, 0xE0D1, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xF8E0, 0xF475, 	 0, 	 0, /* 0xA0 */
	0xF192, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xF37C, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF27B, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEFCB, 	 0, /* 0xD0 */
		 0, 0xE192, 	 0, 	 0, 0xE6AF, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4A1			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_94[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xF997, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xF3A4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEB66, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xF2B2, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF561, 	 0, 	 0, /* 0x30 */
	0xF6A1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xF3D1, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xE09E, 0xE09F, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xE25E, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF4C8, 	 0, 0xF4BA	/* 0x70 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_95[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xF1FE, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xE836, 	 0, 	 0, 0xEB7C, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xF75D, 	 0, 0xE0D2, 	 0, 	 0, 	 0, 0xF0CE, /* 0x80 */
		 0, 0xF7D8, 0xF7D9, 0xE070, 0xE85A, 	 0, 	 0, 	 0, /* 0x90 */
	0xE0A6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xE058, 0xF7EE, 0xE8EC, 	 0, 	 0, /* 0xA0 */
	0xE341, 	 0, 	 0, 	 0, 	 0, 0xE5EF, 	 0, 	 0, /* 0xA0 */
		 0, 0xEE95, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xEEA2, 0xED69, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xED71, /* 0xC0 */
		 0, 	 0, 0xF954, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xF7EF, 0xE2F4, 0xF6E6, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xE24C, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xF555, 0xE933											/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_96[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xE9BD, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xF556, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xF731, 	 0, 	 0, 	 0, 0xEF66, 	 0, /* 0x20 */
		 0, 	 0, 0xE8C1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xF376, 	 0, 	 0, 	 0, 0xED49, /* 0x30 */
	0xF67D, 	 0, 0xF7AE, 	 0, 0xE9BE, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xE6B0, 0xE778, 0xE0BD, 	 0, 	 0, /* 0x40 */
	0xF7DA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xF75E, 0xF7F0, 0xEB7D, 0xECB3, 0xF543, /* 0x50 */
		 0, 	 0, 0xF052, 0xF476, 0xF346, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xE8D6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xF0E4, 	 0, 	 0, 0xF477, 	 0, 0xE6D5, 0xE546, 0xF7E8, /* 0x70 */
	0xE6C1, 	 0, 	 0, 	 0, 	 0, 0xEDD5, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEFEA, 0xE6CC, 	 0, /* 0x80 */
		 0, 	 0, 0xE4E9, 0xEC59, 	 0, 0xF96B, 0xE1AD, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xE140, 0xF032, 	 0, 	 0, /* 0x90 */
	0xED98, 0xE350, 	 0, 0xF347, 0xF231, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xE6F6, 	 0, 	 0, 	 0, 0xEC5A, /* 0xA0 */
	0xEC5B, 	 0, 0xF85F, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xF0DF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE65B, /* 0xB0 */
		 0, 	 0, 	 0, 0xF544, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF1CD, 0xED62, 	 0, 	 0, 0xF039, 0xED4A, 0xF4A2, 0xE1D2, /* 0xC0 */
		 0, 0xF65B, 	 0, 0xF3E6, 0xF1C1, 0xEF4C, 0xF261, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF377, 0xEC5C, 	 0, /* 0xD0 */
		 0, 0xED3A, 	 0, 0xF5E1, 0xF1DA, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xE6EE, 0xE3F1, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xEFEB, 0xEFEC, 0xEB74, 	 0, 	 0, 	 0, 	 0, 0xE837, /* 0xE0 */
	0xE9D4, 	 0, 0xF033, 	 0, 	 0, 	 0, 0xE653, 0xE696, /* 0xF0 */
		 0, 0xE86F, 	 0, 0xF2B3									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_97[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xEC5D, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF2FD, 0xF478, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xF2C5, 	 0, 0xEEE7, 	 0, 	 0, 0xE6FD, 	 0, /* 0x10 */
		 0, 0xEECE, 	 0, 	 0, 0xEADC, 	 0, 0xF7C7, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7F6, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xEAAC, 	 0, 0xE66A, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xE934, 	 0, 	 0, 	 0, 0xF348, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xE5FA, 	 0, 0xED99, 	 0, 	 0, 	 0, /* 0x40 */
	0xE654, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xF57C, 	 0, 	 0, 	 0, 	 0, 0xF2FE, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xF331, 	 0, 0xEA3A, 	 0, /* 0x50 */
		 0, 0xE84C, 0xE79E, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xF864, 	 0, 	 0, 	 0, 0xF175, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xF938, 	 0, 	 0, 0xF176, /* 0x70 */
		 0, 	 0, 0xE75B, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xF8B9, 	 0, 0xED63, 	 0, 0xE1F9, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xE2D3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xE07A, 	 0, 	 0, 0xE2D4, 	 0, 0xF74D, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF557, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xF06F, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xF7DB, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xE547, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF0E5, 	 0, 	 0, 0xEBD2, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xF034, 	 0, 	 0, 	 0, 0xF852	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_98[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF8E1, 0xF87D, 0xF332, 0xE193, 	 0, 0xF833, 0xEC99, 	 0, /* 0x00 */
	0xEC5E, 	 0, 0xEFF5, 	 0, 0xEBEB, 	 0, 	 0, 	 0, /* 0x00 */
	0xEEE8, 0xEF67, 0xE89A, 0xE55B, 	 0, 	 0, 	 0, 0xF6F6, /* 0x10 */
	0xE655, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE579, 	 0, 	 0, /* 0x20 */
	0xF89C, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xE194, 0xF6DD, 	 0, 0xEA4A, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE238, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xF349, 0xEDA0, 0xED59, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xED64, 	 0, 	 0, 	 0, /* 0x50 */
	0xF053, 	 0, 0xF2B4, 	 0, 	 0, 	 0, 0xE6BE, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF8E2, 	 0, 0xE1D3, /* 0x60 */
		 0, 	 0, 	 0, 0xF2B5, 	 0, 	 0, 	 0, 0xF879, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF7A6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEABD, /* 0xA0 */
		 0, 0xF6C7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xF79F, 	 0, 	 0, 0xF79E, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xEA3B, 0xE8E8, 	 0, 	 0, 0xECDD, /* 0xD0 */
		 0, 0xEBE2, 0xE3C6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF660, 0xF0E6, 0xE89B, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xF157, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 0xEA9A, 0xF779, 0xECDE			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_99[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xE297, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xF853, 0xEDD7, 	 0, 0xF158, 	 0, 	 0, 	 0, /* 0x00 */
	0xF4C9, 	 0, 	 0, 0xED4B, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xEE3E, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF2B6, 	 0, /* 0x10 */
	0xE94F, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xE24D, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE753, 	 0, 	 0, /* 0x40 */
		 0, 0xE35F, 	 0, 0xE2FA, 0xF4CA, 0xEB67, 	 0, 	 0, /* 0x40 */
		 0, 0xE3C7, 0xEFAE, 	 0, 0xEF4D, 	 0, 	 0, 0xF854, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEC5F, 	 0, /* 0x90 */
		 0, 0xF855, 	 0, 	 0, 	 0, 0xF7B8, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE970, 	 0, 	 0, /* 0xA0 */
	0xF8B0, 	 0, 	 0, 	 0, 0xE739, 0xEDDF, 0xF7A7, 	 0, /* 0xA0 */
		 0, 0xF67E, 	 0, 0xF65C, 0xEC9A, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xF193, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE870, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xF3D2, 0xE45C, 0xE2CB, 	 0, 	 0, 0xE04D, 	 0, 	 0, /* 0xD0 */
		 0, 0xE9BF, 	 0, 	 0, 	 0, 0xF691, 	 0, 0xEA9B, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF844, 	 0, 	 0, /* 0xE0 */
		 0, 0xE5AD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF3E7	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xEA4E, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xE950, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE3C8, 0xE3C9, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xF74E, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xE0F6, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xE59B, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF5E2, 0xEBD3, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xE779, 	 0, 	 0, 0xF7A0, 	 0, 0xE2CC, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF9A4, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE298, 	 0, 0xF860, /* 0x50 */
		 0, 	 0, 0xE195, 0xEE4E, 	 0, 	 0, 	 0, 0xF63E, /* 0x50 */
		 0, 	 0, 0xE5F0, 	 0, 	 0, 0xE3CA, 	 0, 	 0, /* 0x60 */
		 0, 0xF94E, 0xE5F1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xE1E9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF845, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xEC60, 0xF599, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE1D4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEEA3, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8A5			/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xEC61, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6A2, /* 0x20 */
		 0, 	 0, 0xF6E3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xF036, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xE331, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xE26A, 0xF8EB, 0xE8A6, 0xE8DE, 0xE775, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF070, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xE73A, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xEDE0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE66B, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF2C6, 	 0, /* 0x80 */
		 0, 0xF77A, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xED65, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xE299, 	 0, 	 0, 0xEB68, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xE6EF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF57D, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xE1E6, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE196															/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xF5E3, 	 0, 	 0, /* 0x00 */
	0xED5A, 	 0, 0xE971, 	 0, 	 0, 0xF7C8, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF94F, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xEF37, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xE754, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE0BE, /* 0x40 */
		 0, 0xE93E, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6F7, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF378, 	 0, 0xE9C0, /* 0xE0 */
		 0, 0xE2CD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xE995, 0xE7B0, 	 0, 0xEE79			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xED4C, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xF054, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xED7C, 	 0, /* 0x20 */
	0xED75, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xF8F8, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xE14B, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xED4D, 	 0, 	 0, /* 0x50 */
	0xE1DC, 0xE7F7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xE9DF, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xF1CE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xE7D0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDA3, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xF7CD, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xE1AE, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE2CE, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xF63F, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xF9D3, 0xF0ED, 0xE66C											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xEDA4, 	 0, 	 0, 	 0, 0xE5B6, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE66D, 	 0, 	 0, /* 0x70 */
		 0, 0xF7E9, 	 0, 	 0, 	 0, 0xEEA4, 	 0, 0xE673, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE3CB, 0xE674, 	 0, 	 0, 	 0, 0xE5F2, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEA9C, 	 0, 0xE6F8, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE77A, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xE2D5, 0xE79F, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xE73B, 	 0, 	 0, 0xF9CB, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xF96C, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEB38, 0xE5F3, 	 0, /* 0xC0 */
		 0, 0xF9D9, 	 0, 	 0, 0xE133, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE7F9, 	 0, 	 0, 0xE4EA, 0xF5F5, 	 0, 0xF2C7, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE4DA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xE84D							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xEF38, /* 0x00 */
	0xE93F, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF333, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xE1D5, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xEB39, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xEA3C, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xF34A, 0xF241, 	 0, 	 0, 0xF242, 	 0, /* 0x40 */
		 0, 	 0, 0xF65D, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF262, /* 0x50 */
		 0, 0xE656, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEB75, /* 0x60 */
		 0, 	 0, 0xF4BB, 	 0, 0xEDE1, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xED5B, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE6A3, 	 0, 	 0, /* 0x80 */
	0xE8C2, 	 0, 	 0, 	 0, 	 0, 0xE0A0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xE2CF							/* 0x90 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_AC[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x8861, 0x8862, 0x8863, 0x8864, 0x8865, 0x8866, 0x8867, 0x8868, /* 0x00 */
	0x8869, 0x886A, 0x886B, 0x886C, 0x886D, 0x886E, 0x886F, 0x8870, /* 0x00 */
	0x8871, 0x8873, 0x8874, 0x8875, 0x8876, 0x8877, 0x8878, 0x8879, /* 0x10 */
	0x887A, 0x887B, 0x887C, 0x887D, 0x8881, 0x8882, 0x8883, 0x8884, /* 0x10 */
	0x8885, 0x8886, 0x8887, 0x8888, 0x8889, 0x888A, 0x888B, 0x888C, /* 0x20 */
	0x888D, 0x888E, 0x888F, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, /* 0x20 */
	0x8896, 0x8897, 0x8898, 0x8899, 0x889A, 0x889B, 0x889C, 0x889D, /* 0x30 */
	0x88A1, 0x88A2, 0x88A3, 0x88A4, 0x88A5, 0x88A6, 0x88A7, 0x88A8, /* 0x30 */
	0x88A9, 0x88AA, 0x88AB, 0x88AC, 0x88AD, 0x88AE, 0x88AF, 0x88B0, /* 0x40 */
	0x88B1, 0x88B3, 0x88B4, 0x88B5, 0x88B6, 0x88B7, 0x88B8, 0x88B9, /* 0x40 */
	0x88BA, 0x88BB, 0x88BC, 0x88BD, 0x88C1, 0x88C2, 0x88C3, 0x88C4, /* 0x50 */
	0x88C5, 0x88C6, 0x88C7, 0x88C8, 0x88C9, 0x88CA, 0x88CB, 0x88CC, /* 0x50 */
	0x88CD, 0x88CE, 0x88CF, 0x88D0, 0x88D1, 0x88D3, 0x88D4, 0x88D5, /* 0x60 */
	0x88D6, 0x88D7, 0x88D8, 0x88D9, 0x88DA, 0x88DB, 0x88DC, 0x88DD, /* 0x60 */
	0x88E1, 0x88E2, 0x88E3, 0x88E4, 0x88E5, 0x88E6, 0x88E7, 0x88E8, /* 0x70 */
	0x88E9, 0x88EA, 0x88EB, 0x88EC, 0x88ED, 0x88EE, 0x88EF, 0x88F0, /* 0x70 */
	0x88F1, 0x88F3, 0x88F4, 0x88F5, 0x88F6, 0x88F7, 0x88F8, 0x88F9, /* 0x80 */
	0x88FA, 0x88FB, 0x88FC, 0x88FD, 0x8941, 0x8942, 0x8943, 0x8944, /* 0x80 */
	0x8945, 0x8946, 0x8947, 0x8948, 0x8949, 0x894A, 0x894B, 0x894C, /* 0x90 */
	0x894D, 0x894E, 0x894F, 0x8950, 0x8951, 0x8953, 0x8954, 0x8955, /* 0x90 */
	0x8956, 0x8957, 0x8958, 0x8959, 0x895A, 0x895B, 0x895C, 0x895D, /* 0xA0 */
	0x8961, 0x8962, 0x8963, 0x8964, 0x8965, 0x8966, 0x8967, 0x8968, /* 0xA0 */
	0x8969, 0x896A, 0x896B, 0x896C, 0x896D, 0x896E, 0x896F, 0x8970, /* 0xB0 */
	0x8971, 0x8973, 0x8974, 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, /* 0xB0 */
	0x897A, 0x897B, 0x897C, 0x897D, 0x8981, 0x8982, 0x8983, 0x8984, /* 0xC0 */
	0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0x898A, 0x898B, 0x898C, /* 0xC0 */
	0x898D, 0x898E, 0x898F, 0x8990, 0x8991, 0x8993, 0x8994, 0x8995, /* 0xD0 */
	0x8996, 0x8997, 0x8998, 0x8999, 0x899A, 0x899B, 0x899C, 0x899D, /* 0xD0 */
	0x89A1, 0x89A2, 0x89A3, 0x89A4, 0x89A5, 0x89A6, 0x89A7, 0x89A8, /* 0xE0 */
	0x89A9, 0x89AA, 0x89AB, 0x89AC, 0x89AD, 0x89AE, 0x89AF, 0x89B0, /* 0xE0 */
	0x89B1, 0x89B3, 0x89B4, 0x89B5, 0x89B6, 0x89B7, 0x89B8, 0x89B9, /* 0xF0 */
	0x89BA, 0x89BB, 0x89BC, 0x89BD, 0x89C1, 0x89C2, 0x89C3, 0x89C4	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_AD[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x89C5, 0x89C6, 0x89C7, 0x89C8, 0x89C9, 0x89CA, 0x89CB, 0x89CC, /* 0x00 */
	0x89CD, 0x89CE, 0x89CF, 0x89D0, 0x89D1, 0x89D3, 0x89D4, 0x89D5, /* 0x00 */
	0x89D6, 0x89D7, 0x89D8, 0x89D9, 0x89DA, 0x89DB, 0x89DC, 0x89DD, /* 0x10 */
	0x89E1, 0x89E2, 0x89E3, 0x89E4, 0x89E5, 0x89E6, 0x89E7, 0x89E8, /* 0x10 */
	0x89E9, 0x89EA, 0x89EB, 0x89EC, 0x89ED, 0x89EE, 0x89EF, 0x89F0, /* 0x20 */
	0x89F1, 0x89F3, 0x89F4, 0x89F5, 0x89F6, 0x89F7, 0x89F8, 0x89F9, /* 0x20 */
	0x89FA, 0x89FB, 0x89FC, 0x89FD, 0x8A41, 0x8A42, 0x8A43, 0x8A44, /* 0x30 */
	0x8A45, 0x8A46, 0x8A47, 0x8A48, 0x8A49, 0x8A4A, 0x8A4B, 0x8A4C, /* 0x30 */
	0x8A4D, 0x8A4E, 0x8A4F, 0x8A50, 0x8A51, 0x8A53, 0x8A54, 0x8A55, /* 0x40 */
	0x8A56, 0x8A57, 0x8A58, 0x8A59, 0x8A5A, 0x8A5B, 0x8A5C, 0x8A5D, /* 0x40 */
	0x8A61, 0x8A62, 0x8A63, 0x8A64, 0x8A65, 0x8A66, 0x8A67, 0x8A68, /* 0x50 */
	0x8A69, 0x8A6A, 0x8A6B, 0x8A6C, 0x8A6D, 0x8A6E, 0x8A6F, 0x8A70, /* 0x50 */
	0x8A71, 0x8A73, 0x8A74, 0x8A75, 0x8A76, 0x8A77, 0x8A78, 0x8A79, /* 0x60 */
	0x8A7A, 0x8A7B, 0x8A7C, 0x8A7D, 0x8A81, 0x8A82, 0x8A83, 0x8A84, /* 0x60 */
	0x8A85, 0x8A86, 0x8A87, 0x8A88, 0x8A89, 0x8A8A, 0x8A8B, 0x8A8C, /* 0x70 */
	0x8A8D, 0x8A8E, 0x8A8F, 0x8A90, 0x8A91, 0x8A93, 0x8A94, 0x8A95, /* 0x70 */
	0x8A96, 0x8A97, 0x8A98, 0x8A99, 0x8A9A, 0x8A9B, 0x8A9C, 0x8A9D, /* 0x80 */
	0x8AA1, 0x8AA2, 0x8AA3, 0x8AA4, 0x8AA5, 0x8AA6, 0x8AA7, 0x8AA8, /* 0x80 */
	0x8AA9, 0x8AAA, 0x8AAB, 0x8AAC, 0x8AAD, 0x8AAE, 0x8AAF, 0x8AB0, /* 0x90 */
	0x8AB1, 0x8AB3, 0x8AB4, 0x8AB5, 0x8AB6, 0x8AB7, 0x8AB8, 0x8AB9, /* 0x90 */
	0x8ABA, 0x8ABB, 0x8ABC, 0x8ABD, 0x8AC1, 0x8AC2, 0x8AC3, 0x8AC4, /* 0xA0 */
	0x8AC5, 0x8AC6, 0x8AC7, 0x8AC8, 0x8AC9, 0x8ACA, 0x8ACB, 0x8ACC, /* 0xA0 */
	0x8ACD, 0x8ACE, 0x8ACF, 0x8AD0, 0x8AD1, 0x8AD3, 0x8AD4, 0x8AD5, /* 0xB0 */
	0x8AD6, 0x8AD7, 0x8AD8, 0x8AD9, 0x8ADA, 0x8ADB, 0x8ADC, 0x8ADD, /* 0xB0 */
	0x8AE1, 0x8AE2, 0x8AE3, 0x8AE4, 0x8AE5, 0x8AE6, 0x8AE7, 0x8AE8, /* 0xC0 */
	0x8AE9, 0x8AEA, 0x8AEB, 0x8AEC, 0x8AED, 0x8AEE, 0x8AEF, 0x8AF0, /* 0xC0 */
	0x8AF1, 0x8AF3, 0x8AF4, 0x8AF5, 0x8AF6, 0x8AF7, 0x8AF8, 0x8AF9, /* 0xD0 */
	0x8AFA, 0x8AFB, 0x8AFC, 0x8AFD, 0x8B41, 0x8B42, 0x8B43, 0x8B44, /* 0xD0 */
	0x8B45, 0x8B46, 0x8B47, 0x8B48, 0x8B49, 0x8B4A, 0x8B4B, 0x8B4C, /* 0xE0 */
	0x8B4D, 0x8B4E, 0x8B4F, 0x8B50, 0x8B51, 0x8B53, 0x8B54, 0x8B55, /* 0xE0 */
	0x8B56, 0x8B57, 0x8B58, 0x8B59, 0x8B5A, 0x8B5B, 0x8B5C, 0x8B5D, /* 0xF0 */
	0x8B61, 0x8B62, 0x8B63, 0x8B64, 0x8B65, 0x8B66, 0x8B67, 0x8B68	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_AE[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x8B69, 0x8B6A, 0x8B6B, 0x8B6C, 0x8B6D, 0x8B6E, 0x8B6F, 0x8B70, /* 0x00 */
	0x8B71, 0x8B73, 0x8B74, 0x8B75, 0x8B76, 0x8B77, 0x8B78, 0x8B79, /* 0x00 */
	0x8B7A, 0x8B7B, 0x8B7C, 0x8B7D, 0x8B81, 0x8B82, 0x8B83, 0x8B84, /* 0x10 */
	0x8B85, 0x8B86, 0x8B87, 0x8B88, 0x8B89, 0x8B8A, 0x8B8B, 0x8B8C, /* 0x10 */
	0x8B8D, 0x8B8E, 0x8B8F, 0x8B90, 0x8B91, 0x8B93, 0x8B94, 0x8B95, /* 0x20 */
	0x8B96, 0x8B97, 0x8B98, 0x8B99, 0x8B9A, 0x8B9B, 0x8B9C, 0x8B9D, /* 0x20 */
	0x8BA1, 0x8BA2, 0x8BA3, 0x8BA4, 0x8BA5, 0x8BA6, 0x8BA7, 0x8BA8, /* 0x30 */
	0x8BA9, 0x8BAA, 0x8BAB, 0x8BAC, 0x8BAD, 0x8BAE, 0x8BAF, 0x8BB0, /* 0x30 */
	0x8BB1, 0x8BB3, 0x8BB4, 0x8BB5, 0x8BB6, 0x8BB7, 0x8BB8, 0x8BB9, /* 0x40 */
	0x8BBA, 0x8BBB, 0x8BBC, 0x8BBD, 0x8C61, 0x8C62, 0x8C63, 0x8C64, /* 0x40 */
	0x8C65, 0x8C66, 0x8C67, 0x8C68, 0x8C69, 0x8C6A, 0x8C6B, 0x8C6C, /* 0x50 */
	0x8C6D, 0x8C6E, 0x8C6F, 0x8C70, 0x8C71, 0x8C73, 0x8C74, 0x8C75, /* 0x50 */
	0x8C76, 0x8C77, 0x8C78, 0x8C79, 0x8C7A, 0x8C7B, 0x8C7C, 0x8C7D, /* 0x60 */
	0x8C81, 0x8C82, 0x8C83, 0x8C84, 0x8C85, 0x8C86, 0x8C87, 0x8C88, /* 0x60 */
	0x8C89, 0x8C8A, 0x8C8B, 0x8C8C, 0x8C8D, 0x8C8E, 0x8C8F, 0x8C90, /* 0x70 */
	0x8C91, 0x8C93, 0x8C94, 0x8C95, 0x8C96, 0x8C97, 0x8C98, 0x8C99, /* 0x70 */
	0x8C9A, 0x8C9B, 0x8C9C, 0x8C9D, 0x8CA1, 0x8CA2, 0x8CA3, 0x8CA4, /* 0x80 */
	0x8CA5, 0x8CA6, 0x8CA7, 0x8CA8, 0x8CA9, 0x8CAA, 0x8CAB, 0x8CAC, /* 0x80 */
	0x8CAD, 0x8CAE, 0x8CAF, 0x8CB0, 0x8CB1, 0x8CB3, 0x8CB4, 0x8CB5, /* 0x90 */
	0x8CB6, 0x8CB7, 0x8CB8, 0x8CB9, 0x8CBA, 0x8CBB, 0x8CBC, 0x8CBD, /* 0x90 */
	0x8CC1, 0x8CC2, 0x8CC3, 0x8CC4, 0x8CC5, 0x8CC6, 0x8CC7, 0x8CC8, /* 0xA0 */
	0x8CC9, 0x8CCA, 0x8CCB, 0x8CCC, 0x8CCD, 0x8CCE, 0x8CCF, 0x8CD0, /* 0xA0 */
	0x8CD1, 0x8CD3, 0x8CD4, 0x8CD5, 0x8CD6, 0x8CD7, 0x8CD8, 0x8CD9, /* 0xB0 */
	0x8CDA, 0x8CDB, 0x8CDC, 0x8CDD, 0x8CE1, 0x8CE2, 0x8CE3, 0x8CE4, /* 0xB0 */
	0x8CE5, 0x8CE6, 0x8CE7, 0x8CE8, 0x8CE9, 0x8CEA, 0x8CEB, 0x8CEC, /* 0xC0 */
	0x8CED, 0x8CEE, 0x8CEF, 0x8CF0, 0x8CF1, 0x8CF3, 0x8CF4, 0x8CF5, /* 0xC0 */
	0x8CF6, 0x8CF7, 0x8CF8, 0x8CF9, 0x8CFA, 0x8CFB, 0x8CFC, 0x8CFD, /* 0xD0 */
	0x8D41, 0x8D42, 0x8D43, 0x8D44, 0x8D45, 0x8D46, 0x8D47, 0x8D48, /* 0xD0 */
	0x8D49, 0x8D4A, 0x8D4B, 0x8D4C, 0x8D4D, 0x8D4E, 0x8D4F, 0x8D50, /* 0xE0 */
	0x8D51, 0x8D53, 0x8D54, 0x8D55, 0x8D56, 0x8D57, 0x8D58, 0x8D59, /* 0xE0 */
	0x8D5A, 0x8D5B, 0x8D5C, 0x8D5D, 0x8D61, 0x8D62, 0x8D63, 0x8D64, /* 0xF0 */
	0x8D65, 0x8D66, 0x8D67, 0x8D68, 0x8D69, 0x8D6A, 0x8D6B, 0x8D6C	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_AF[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x8D6D, 0x8D6E, 0x8D6F, 0x8D70, 0x8D71, 0x8D73, 0x8D74, 0x8D75, /* 0x00 */
	0x8D76, 0x8D77, 0x8D78, 0x8D79, 0x8D7A, 0x8D7B, 0x8D7C, 0x8D7D, /* 0x00 */
	0x8D81, 0x8D82, 0x8D83, 0x8D84, 0x8D85, 0x8D86, 0x8D87, 0x8D88, /* 0x10 */
	0x8D89, 0x8D8A, 0x8D8B, 0x8D8C, 0x8D8D, 0x8D8E, 0x8D8F, 0x8D90, /* 0x10 */
	0x8D91, 0x8D93, 0x8D94, 0x8D95, 0x8D96, 0x8D97, 0x8D98, 0x8D99, /* 0x20 */
	0x8D9A, 0x8D9B, 0x8D9C, 0x8D9D, 0x8DA1, 0x8DA2, 0x8DA3, 0x8DA4, /* 0x20 */
	0x8DA5, 0x8DA6, 0x8DA7, 0x8DA8, 0x8DA9, 0x8DAA, 0x8DAB, 0x8DAC, /* 0x30 */
	0x8DAD, 0x8DAE, 0x8DAF, 0x8DB0, 0x8DB1, 0x8DB3, 0x8DB4, 0x8DB5, /* 0x30 */
	0x8DB6, 0x8DB7, 0x8DB8, 0x8DB9, 0x8DBA, 0x8DBB, 0x8DBC, 0x8DBD, /* 0x40 */
	0x8DC1, 0x8DC2, 0x8DC3, 0x8DC4, 0x8DC5, 0x8DC6, 0x8DC7, 0x8DC8, /* 0x40 */
	0x8DC9, 0x8DCA, 0x8DCB, 0x8DCC, 0x8DCD, 0x8DCE, 0x8DCF, 0x8DD0, /* 0x50 */
	0x8DD1, 0x8DD3, 0x8DD4, 0x8DD5, 0x8DD6, 0x8DD7, 0x8DD8, 0x8DD9, /* 0x50 */
	0x8DDA, 0x8DDB, 0x8DDC, 0x8DDD, 0x8DE1, 0x8DE2, 0x8DE3, 0x8DE4, /* 0x60 */
	0x8DE5, 0x8DE6, 0x8DE7, 0x8DE8, 0x8DE9, 0x8DEA, 0x8DEB, 0x8DEC, /* 0x60 */
	0x8DED, 0x8DEE, 0x8DEF, 0x8DF0, 0x8DF1, 0x8DF3, 0x8DF4, 0x8DF5, /* 0x70 */
	0x8DF6, 0x8DF7, 0x8DF8, 0x8DF9, 0x8DFA, 0x8DFB, 0x8DFC, 0x8DFD, /* 0x70 */
	0x8E41, 0x8E42, 0x8E43, 0x8E44, 0x8E45, 0x8E46, 0x8E47, 0x8E48, /* 0x80 */
	0x8E49, 0x8E4A, 0x8E4B, 0x8E4C, 0x8E4D, 0x8E4E, 0x8E4F, 0x8E50, /* 0x80 */
	0x8E51, 0x8E53, 0x8E54, 0x8E55, 0x8E56, 0x8E57, 0x8E58, 0x8E59, /* 0x90 */
	0x8E5A, 0x8E5B, 0x8E5C, 0x8E5D, 0x8E61, 0x8E62, 0x8E63, 0x8E64, /* 0x90 */
	0x8E65, 0x8E66, 0x8E67, 0x8E68, 0x8E69, 0x8E6A, 0x8E6B, 0x8E6C, /* 0xA0 */
	0x8E6D, 0x8E6E, 0x8E6F, 0x8E70, 0x8E71, 0x8E73, 0x8E74, 0x8E75, /* 0xA0 */
	0x8E76, 0x8E77, 0x8E78, 0x8E79, 0x8E7A, 0x8E7B, 0x8E7C, 0x8E7D, /* 0xB0 */
	0x8E81, 0x8E82, 0x8E83, 0x8E84, 0x8E85, 0x8E86, 0x8E87, 0x8E88, /* 0xB0 */
	0x8E89, 0x8E8A, 0x8E8B, 0x8E8C, 0x8E8D, 0x8E8E, 0x8E8F, 0x8E90, /* 0xC0 */
	0x8E91, 0x8E93, 0x8E94, 0x8E95, 0x8E96, 0x8E97, 0x8E98, 0x8E99, /* 0xC0 */
	0x8E9A, 0x8E9B, 0x8E9C, 0x8E9D, 0x8EA1, 0x8EA2, 0x8EA3, 0x8EA4, /* 0xD0 */
	0x8EA5, 0x8EA6, 0x8EA7, 0x8EA8, 0x8EA9, 0x8EAA, 0x8EAB, 0x8EAC, /* 0xD0 */
	0x8EAD, 0x8EAE, 0x8EAF, 0x8EB0, 0x8EB1, 0x8EB3, 0x8EB4, 0x8EB5, /* 0xE0 */
	0x8EB6, 0x8EB7, 0x8EB8, 0x8EB9, 0x8EBA, 0x8EBB, 0x8EBC, 0x8EBD, /* 0xE0 */
	0x8EC1, 0x8EC2, 0x8EC3, 0x8EC4, 0x8EC5, 0x8EC6, 0x8EC7, 0x8EC8, /* 0xF0 */
	0x8EC9, 0x8ECA, 0x8ECB, 0x8ECC, 0x8ECD, 0x8ECE, 0x8ECF, 0x8ED0	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B0[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x8ED1, 0x8ED3, 0x8ED4, 0x8ED5, 0x8ED6, 0x8ED7, 0x8ED8, 0x8ED9, /* 0x00 */
	0x8EDA, 0x8EDB, 0x8EDC, 0x8EDD, 0x8EE1, 0x8EE2, 0x8EE3, 0x8EE4, /* 0x00 */
	0x8EE5, 0x8EE6, 0x8EE7, 0x8EE8, 0x8EE9, 0x8EEA, 0x8EEB, 0x8EEC, /* 0x10 */
	0x8EED, 0x8EEE, 0x8EEF, 0x8EF0, 0x8EF1, 0x8EF3, 0x8EF4, 0x8EF5, /* 0x10 */
	0x8EF6, 0x8EF7, 0x8EF8, 0x8EF9, 0x8EFA, 0x8EFB, 0x8EFC, 0x8EFD, /* 0x20 */
	0x8F41, 0x8F42, 0x8F43, 0x8F44, 0x8F45, 0x8F46, 0x8F47, 0x8F48, /* 0x20 */
	0x8F49, 0x8F4A, 0x8F4B, 0x8F4C, 0x8F4D, 0x8F4E, 0x8F4F, 0x8F50, /* 0x30 */
	0x8F51, 0x8F53, 0x8F54, 0x8F55, 0x8F56, 0x8F57, 0x8F58, 0x8F59, /* 0x30 */
	0x8F5A, 0x8F5B, 0x8F5C, 0x8F5D, 0x8F61, 0x8F62, 0x8F63, 0x8F64, /* 0x40 */
	0x8F65, 0x8F66, 0x8F67, 0x8F68, 0x8F69, 0x8F6A, 0x8F6B, 0x8F6C, /* 0x40 */
	0x8F6D, 0x8F6E, 0x8F6F, 0x8F70, 0x8F71, 0x8F73, 0x8F74, 0x8F75, /* 0x50 */
	0x8F76, 0x8F77, 0x8F78, 0x8F79, 0x8F7A, 0x8F7B, 0x8F7C, 0x8F7D, /* 0x50 */
	0x8F81, 0x8F82, 0x8F83, 0x8F84, 0x8F85, 0x8F86, 0x8F87, 0x8F88, /* 0x60 */
	0x8F89, 0x8F8A, 0x8F8B, 0x8F8C, 0x8F8D, 0x8F8E, 0x8F8F, 0x8F90, /* 0x60 */
	0x8F91, 0x8F93, 0x8F94, 0x8F95, 0x8F96, 0x8F97, 0x8F98, 0x8F99, /* 0x70 */
	0x8F9A, 0x8F9B, 0x8F9C, 0x8F9D, 0x8FA1, 0x8FA2, 0x8FA3, 0x8FA4, /* 0x70 */
	0x8FA5, 0x8FA6, 0x8FA7, 0x8FA8, 0x8FA9, 0x8FAA, 0x8FAB, 0x8FAC, /* 0x80 */
	0x8FAD, 0x8FAE, 0x8FAF, 0x8FB0, 0x8FB1, 0x8FB3, 0x8FB4, 0x8FB5, /* 0x80 */
	0x8FB6, 0x8FB7, 0x8FB8, 0x8FB9, 0x8FBA, 0x8FBB, 0x8FBC, 0x8FBD, /* 0x90 */
	0x9061, 0x9062, 0x9063, 0x9064, 0x9065, 0x9066, 0x9067, 0x9068, /* 0x90 */
	0x9069, 0x906A, 0x906B, 0x906C, 0x906D, 0x906E, 0x906F, 0x9070, /* 0xA0 */
	0x9071, 0x9073, 0x9074, 0x9075, 0x9076, 0x9077, 0x9078, 0x9079, /* 0xA0 */
	0x907A, 0x907B, 0x907C, 0x907D, 0x9081, 0x9082, 0x9083, 0x9084, /* 0xB0 */
	0x9085, 0x9086, 0x9087, 0x9088, 0x9089, 0x908A, 0x908B, 0x908C, /* 0xB0 */
	0x908D, 0x908E, 0x908F, 0x9090, 0x9091, 0x9093, 0x9094, 0x9095, /* 0xC0 */
	0x9096, 0x9097, 0x9098, 0x9099, 0x909A, 0x909B, 0x909C, 0x909D, /* 0xC0 */
	0x90A1, 0x90A2, 0x90A3, 0x90A4, 0x90A5, 0x90A6, 0x90A7, 0x90A8, /* 0xD0 */
	0x90A9, 0x90AA, 0x90AB, 0x90AC, 0x90AD, 0x90AE, 0x90AF, 0x90B0, /* 0xD0 */
	0x90B1, 0x90B3, 0x90B4, 0x90B5, 0x90B6, 0x90B7, 0x90B8, 0x90B9, /* 0xE0 */
	0x90BA, 0x90BB, 0x90BC, 0x90BD, 0x90C1, 0x90C2, 0x90C3, 0x90C4, /* 0xE0 */
	0x90C5, 0x90C6, 0x90C7, 0x90C8, 0x90C9, 0x90CA, 0x90CB, 0x90CC, /* 0xF0 */
	0x90CD, 0x90CE, 0x90CF, 0x90D0, 0x90D1, 0x90D3, 0x90D4, 0x90D5	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B1[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x90D6, 0x90D7, 0x90D8, 0x90D9, 0x90DA, 0x90DB, 0x90DC, 0x90DD, /* 0x00 */
	0x90E1, 0x90E2, 0x90E3, 0x90E4, 0x90E5, 0x90E6, 0x90E7, 0x90E8, /* 0x00 */
	0x90E9, 0x90EA, 0x90EB, 0x90EC, 0x90ED, 0x90EE, 0x90EF, 0x90F0, /* 0x10 */
	0x90F1, 0x90F3, 0x90F4, 0x90F5, 0x90F6, 0x90F7, 0x90F8, 0x90F9, /* 0x10 */
	0x90FA, 0x90FB, 0x90FC, 0x90FD, 0x9141, 0x9142, 0x9143, 0x9144, /* 0x20 */
	0x9145, 0x9146, 0x9147, 0x9148, 0x9149, 0x914A, 0x914B, 0x914C, /* 0x20 */
	0x914D, 0x914E, 0x914F, 0x9150, 0x9151, 0x9153, 0x9154, 0x9155, /* 0x30 */
	0x9156, 0x9157, 0x9158, 0x9159, 0x915A, 0x915B, 0x915C, 0x915D, /* 0x30 */
	0x9161, 0x9162, 0x9163, 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, /* 0x40 */
	0x9169, 0x916A, 0x916B, 0x916C, 0x916D, 0x916E, 0x916F, 0x9170, /* 0x40 */
	0x9171, 0x9173, 0x9174, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179, /* 0x50 */
	0x917A, 0x917B, 0x917C, 0x917D, 0x9181, 0x9182, 0x9183, 0x9184, /* 0x50 */
	0x9185, 0x9186, 0x9187, 0x9188, 0x9189, 0x918A, 0x918B, 0x918C, /* 0x60 */
	0x918D, 0x918E, 0x918F, 0x9190, 0x9191, 0x9193, 0x9194, 0x9195, /* 0x60 */
	0x9196, 0x9197, 0x9198, 0x9199, 0x919A, 0x919B, 0x919C, 0x919D, /* 0x70 */
	0x91A1, 0x91A2, 0x91A3, 0x91A4, 0x91A5, 0x91A6, 0x91A7, 0x91A8, /* 0x70 */
	0x91A9, 0x91AA, 0x91AB, 0x91AC, 0x91AD, 0x91AE, 0x91AF, 0x91B0, /* 0x80 */
	0x91B1, 0x91B3, 0x91B4, 0x91B5, 0x91B6, 0x91B7, 0x91B8, 0x91B9, /* 0x80 */
	0x91BA, 0x91BB, 0x91BC, 0x91BD, 0x91C1, 0x91C2, 0x91C3, 0x91C4, /* 0x90 */
	0x91C5, 0x91C6, 0x91C7, 0x91C8, 0x91C9, 0x91CA, 0x91CB, 0x91CC, /* 0x90 */
	0x91CD, 0x91CE, 0x91CF, 0x91D0, 0x91D1, 0x91D3, 0x91D4, 0x91D5, /* 0xA0 */
	0x91D6, 0x91D7, 0x91D8, 0x91D9, 0x91DA, 0x91DB, 0x91DC, 0x91DD, /* 0xA0 */
	0x91E1, 0x91E2, 0x91E3, 0x91E4, 0x91E5, 0x91E6, 0x91E7, 0x91E8, /* 0xB0 */
	0x91E9, 0x91EA, 0x91EB, 0x91EC, 0x91ED, 0x91EE, 0x91EF, 0x91F0, /* 0xB0 */
	0x91F1, 0x91F3, 0x91F4, 0x91F5, 0x91F6, 0x91F7, 0x91F8, 0x91F9, /* 0xC0 */
	0x91FA, 0x91FB, 0x91FC, 0x91FD, 0x9241, 0x9242, 0x9243, 0x9244, /* 0xC0 */
	0x9245, 0x9246, 0x9247, 0x9248, 0x9249, 0x924A, 0x924B, 0x924C, /* 0xD0 */
	0x924D, 0x924E, 0x924F, 0x9250, 0x9251, 0x9253, 0x9254, 0x9255, /* 0xD0 */
	0x9256, 0x9257, 0x9258, 0x9259, 0x925A, 0x925B, 0x925C, 0x925D, /* 0xE0 */
	0x9261, 0x9262, 0x9263, 0x9264, 0x9265, 0x9266, 0x9267, 0x9268, /* 0xE0 */
	0x9269, 0x926A, 0x926B, 0x926C, 0x926D, 0x926E, 0x926F, 0x9270, /* 0xF0 */
	0x9271, 0x9273, 0x9274, 0x9275, 0x9276, 0x9277, 0x9278, 0x9279	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B2[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x927A, 0x927B, 0x927C, 0x927D, 0x9281, 0x9282, 0x9283, 0x9284, /* 0x00 */
	0x9285, 0x9286, 0x9287, 0x9288, 0x9289, 0x928A, 0x928B, 0x928C, /* 0x00 */
	0x928D, 0x928E, 0x928F, 0x9290, 0x9291, 0x9293, 0x9294, 0x9295, /* 0x10 */
	0x9296, 0x9297, 0x9298, 0x9299, 0x929A, 0x929B, 0x929C, 0x929D, /* 0x10 */
	0x92A1, 0x92A2, 0x92A3, 0x92A4, 0x92A5, 0x92A6, 0x92A7, 0x92A8, /* 0x20 */
	0x92A9, 0x92AA, 0x92AB, 0x92AC, 0x92AD, 0x92AE, 0x92AF, 0x92B0, /* 0x20 */
	0x92B1, 0x92B3, 0x92B4, 0x92B5, 0x92B6, 0x92B7, 0x92B8, 0x92B9, /* 0x30 */
	0x92BA, 0x92BB, 0x92BC, 0x92BD, 0x92C1, 0x92C2, 0x92C3, 0x92C4, /* 0x30 */
	0x92C5, 0x92C6, 0x92C7, 0x92C8, 0x92C9, 0x92CA, 0x92CB, 0x92CC, /* 0x40 */
	0x92CD, 0x92CE, 0x92CF, 0x92D0, 0x92D1, 0x92D3, 0x92D4, 0x92D5, /* 0x40 */
	0x92D6, 0x92D7, 0x92D8, 0x92D9, 0x92DA, 0x92DB, 0x92DC, 0x92DD, /* 0x50 */
	0x92E1, 0x92E2, 0x92E3, 0x92E4, 0x92E5, 0x92E6, 0x92E7, 0x92E8, /* 0x50 */
	0x92E9, 0x92EA, 0x92EB, 0x92EC, 0x92ED, 0x92EE, 0x92EF, 0x92F0, /* 0x60 */
	0x92F1, 0x92F3, 0x92F4, 0x92F5, 0x92F6, 0x92F7, 0x92F8, 0x92F9, /* 0x60 */
	0x92FA, 0x92FB, 0x92FC, 0x92FD, 0x9341, 0x9342, 0x9343, 0x9344, /* 0x70 */
	0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0x934A, 0x934B, 0x934C, /* 0x70 */
	0x934D, 0x934E, 0x934F, 0x9350, 0x9351, 0x9353, 0x9354, 0x9355, /* 0x80 */
	0x9356, 0x9357, 0x9358, 0x9359, 0x935A, 0x935B, 0x935C, 0x935D, /* 0x80 */
	0x9361, 0x9362, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, /* 0x90 */
	0x9369, 0x936A, 0x936B, 0x936C, 0x936D, 0x936E, 0x936F, 0x9370, /* 0x90 */
	0x9371, 0x9373, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, /* 0xA0 */
	0x937A, 0x937B, 0x937C, 0x937D, 0x9381, 0x9382, 0x9383, 0x9384, /* 0xA0 */
	0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938A, 0x938B, 0x938C, /* 0xB0 */
	0x938D, 0x938E, 0x938F, 0x9390, 0x9391, 0x9393, 0x9394, 0x9395, /* 0xB0 */
	0x9396, 0x9397, 0x9398, 0x9399, 0x939A, 0x939B, 0x939C, 0x939D, /* 0xC0 */
	0x93A1, 0x93A2, 0x93A3, 0x93A4, 0x93A5, 0x93A6, 0x93A7, 0x93A8, /* 0xC0 */
	0x93A9, 0x93AA, 0x93AB, 0x93AC, 0x93AD, 0x93AE, 0x93AF, 0x93B0, /* 0xD0 */
	0x93B1, 0x93B3, 0x93B4, 0x93B5, 0x93B6, 0x93B7, 0x93B8, 0x93B9, /* 0xD0 */
	0x93BA, 0x93BB, 0x93BC, 0x93BD, 0x9461, 0x9462, 0x9463, 0x9464, /* 0xE0 */
	0x9465, 0x9466, 0x9467, 0x9468, 0x9469, 0x946A, 0x946B, 0x946C, /* 0xE0 */
	0x946D, 0x946E, 0x946F, 0x9470, 0x9471, 0x9473, 0x9474, 0x9475, /* 0xF0 */
	0x9476, 0x9477, 0x9478, 0x9479, 0x947A, 0x947B, 0x947C, 0x947D	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B3[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x9481, 0x9482, 0x9483, 0x9484, 0x9485, 0x9486, 0x9487, 0x9488, /* 0x00 */
	0x9489, 0x948A, 0x948B, 0x948C, 0x948D, 0x948E, 0x948F, 0x9490, /* 0x00 */
	0x9491, 0x9493, 0x9494, 0x9495, 0x9496, 0x9497, 0x9498, 0x9499, /* 0x10 */
	0x949A, 0x949B, 0x949C, 0x949D, 0x94A1, 0x94A2, 0x94A3, 0x94A4, /* 0x10 */
	0x94A5, 0x94A6, 0x94A7, 0x94A8, 0x94A9, 0x94AA, 0x94AB, 0x94AC, /* 0x20 */
	0x94AD, 0x94AE, 0x94AF, 0x94B0, 0x94B1, 0x94B3, 0x94B4, 0x94B5, /* 0x20 */
	0x94B6, 0x94B7, 0x94B8, 0x94B9, 0x94BA, 0x94BB, 0x94BC, 0x94BD, /* 0x30 */
	0x94C1, 0x94C2, 0x94C3, 0x94C4, 0x94C5, 0x94C6, 0x94C7, 0x94C8, /* 0x30 */
	0x94C9, 0x94CA, 0x94CB, 0x94CC, 0x94CD, 0x94CE, 0x94CF, 0x94D0, /* 0x40 */
	0x94D1, 0x94D3, 0x94D4, 0x94D5, 0x94D6, 0x94D7, 0x94D8, 0x94D9, /* 0x40 */
	0x94DA, 0x94DB, 0x94DC, 0x94DD, 0x94E1, 0x94E2, 0x94E3, 0x94E4, /* 0x50 */
	0x94E5, 0x94E6, 0x94E7, 0x94E8, 0x94E9, 0x94EA, 0x94EB, 0x94EC, /* 0x50 */
	0x94ED, 0x94EE, 0x94EF, 0x94F0, 0x94F1, 0x94F3, 0x94F4, 0x94F5, /* 0x60 */
	0x94F6, 0x94F7, 0x94F8, 0x94F9, 0x94FA, 0x94FB, 0x94FC, 0x94FD, /* 0x60 */
	0x9541, 0x9542, 0x9543, 0x9544, 0x9545, 0x9546, 0x9547, 0x9548, /* 0x70 */
	0x9549, 0x954A, 0x954B, 0x954C, 0x954D, 0x954E, 0x954F, 0x9550, /* 0x70 */
	0x9551, 0x9553, 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559, /* 0x80 */
	0x955A, 0x955B, 0x955C, 0x955D, 0x9561, 0x9562, 0x9563, 0x9564, /* 0x80 */
	0x9565, 0x9566, 0x9567, 0x9568, 0x9569, 0x956A, 0x956B, 0x956C, /* 0x90 */
	0x956D, 0x956E, 0x956F, 0x9570, 0x9571, 0x9573, 0x9574, 0x9575, /* 0x90 */
	0x9576, 0x9577, 0x9578, 0x9579, 0x957A, 0x957B, 0x957C, 0x957D, /* 0xA0 */
	0x9581, 0x9582, 0x9583, 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, /* 0xA0 */
	0x9589, 0x958A, 0x958B, 0x958C, 0x958D, 0x958E, 0x958F, 0x9590, /* 0xB0 */
	0x9591, 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, /* 0xB0 */
	0x959A, 0x959B, 0x959C, 0x959D, 0x95A1, 0x95A2, 0x95A3, 0x95A4, /* 0xC0 */
	0x95A5, 0x95A6, 0x95A7, 0x95A8, 0x95A9, 0x95AA, 0x95AB, 0x95AC, /* 0xC0 */
	0x95AD, 0x95AE, 0x95AF, 0x95B0, 0x95B1, 0x95B3, 0x95B4, 0x95B5, /* 0xD0 */
	0x95B6, 0x95B7, 0x95B8, 0x95B9, 0x95BA, 0x95BB, 0x95BC, 0x95BD, /* 0xD0 */
	0x95C1, 0x95C2, 0x95C3, 0x95C4, 0x95C5, 0x95C6, 0x95C7, 0x95C8, /* 0xE0 */
	0x95C9, 0x95CA, 0x95CB, 0x95CC, 0x95CD, 0x95CE, 0x95CF, 0x95D0, /* 0xE0 */
	0x95D1, 0x95D3, 0x95D4, 0x95D5, 0x95D6, 0x95D7, 0x95D8, 0x95D9, /* 0xF0 */
	0x95DA, 0x95DB, 0x95DC, 0x95DD, 0x95E1, 0x95E2, 0x95E3, 0x95E4	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B4[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x95E5, 0x95E6, 0x95E7, 0x95E8, 0x95E9, 0x95EA, 0x95EB, 0x95EC, /* 0x00 */
	0x95ED, 0x95EE, 0x95EF, 0x95F0, 0x95F1, 0x95F3, 0x95F4, 0x95F5, /* 0x00 */
	0x95F6, 0x95F7, 0x95F8, 0x95F9, 0x95FA, 0x95FB, 0x95FC, 0x95FD, /* 0x10 */
	0x9641, 0x9642, 0x9643, 0x9644, 0x9645, 0x9646, 0x9647, 0x9648, /* 0x10 */
	0x9649, 0x964A, 0x964B, 0x964C, 0x964D, 0x964E, 0x964F, 0x9650, /* 0x20 */
	0x9651, 0x9653, 0x9654, 0x9655, 0x9656, 0x9657, 0x9658, 0x9659, /* 0x20 */
	0x965A, 0x965B, 0x965C, 0x965D, 0x9661, 0x9662, 0x9663, 0x9664, /* 0x30 */
	0x9665, 0x9666, 0x9667, 0x9668, 0x9669, 0x966A, 0x966B, 0x966C, /* 0x30 */
	0x966D, 0x966E, 0x966F, 0x9670, 0x9671, 0x9673, 0x9674, 0x9675, /* 0x40 */
	0x9676, 0x9677, 0x9678, 0x9679, 0x967A, 0x967B, 0x967C, 0x967D, /* 0x40 */
	0x9681, 0x9682, 0x9683, 0x9684, 0x9685, 0x9686, 0x9687, 0x9688, /* 0x50 */
	0x9689, 0x968A, 0x968B, 0x968C, 0x968D, 0x968E, 0x968F, 0x9690, /* 0x50 */
	0x9691, 0x9693, 0x9694, 0x9695, 0x9696, 0x9697, 0x9698, 0x9699, /* 0x60 */
	0x969A, 0x969B, 0x969C, 0x969D, 0x96A1, 0x96A2, 0x96A3, 0x96A4, /* 0x60 */
	0x96A5, 0x96A6, 0x96A7, 0x96A8, 0x96A9, 0x96AA, 0x96AB, 0x96AC, /* 0x70 */
	0x96AD, 0x96AE, 0x96AF, 0x96B0, 0x96B1, 0x96B3, 0x96B4, 0x96B5, /* 0x70 */
	0x96B6, 0x96B7, 0x96B8, 0x96B9, 0x96BA, 0x96BB, 0x96BC, 0x96BD, /* 0x80 */
	0x96C1, 0x96C2, 0x96C3, 0x96C4, 0x96C5, 0x96C6, 0x96C7, 0x96C8, /* 0x80 */
	0x96C9, 0x96CA, 0x96CB, 0x96CC, 0x96CD, 0x96CE, 0x96CF, 0x96D0, /* 0x90 */
	0x96D1, 0x96D3, 0x96D4, 0x96D5, 0x96D6, 0x96D7, 0x96D8, 0x96D9, /* 0x90 */
	0x96DA, 0x96DB, 0x96DC, 0x96DD, 0x96E1, 0x96E2, 0x96E3, 0x96E4, /* 0xA0 */
	0x96E5, 0x96E6, 0x96E7, 0x96E8, 0x96E9, 0x96EA, 0x96EB, 0x96EC, /* 0xA0 */
	0x96ED, 0x96EE, 0x96EF, 0x96F0, 0x96F1, 0x96F3, 0x96F4, 0x96F5, /* 0xB0 */
	0x96F6, 0x96F7, 0x96F8, 0x96F9, 0x96FA, 0x96FB, 0x96FC, 0x96FD, /* 0xB0 */
	0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, 0x9748, /* 0xC0 */
	0x9749, 0x974A, 0x974B, 0x974C, 0x974D, 0x974E, 0x974F, 0x9750, /* 0xC0 */
	0x9751, 0x9753, 0x9754, 0x9755, 0x9756, 0x9757, 0x9758, 0x9759, /* 0xD0 */
	0x975A, 0x975B, 0x975C, 0x975D, 0x9761, 0x9762, 0x9763, 0x9764, /* 0xD0 */
	0x9765, 0x9766, 0x9767, 0x9768, 0x9769, 0x976A, 0x976B, 0x976C, /* 0xE0 */
	0x976D, 0x976E, 0x976F, 0x9770, 0x9771, 0x9773, 0x9774, 0x9775, /* 0xE0 */
	0x9776, 0x9777, 0x9778, 0x9779, 0x977A, 0x977B, 0x977C, 0x977D, /* 0xF0 */
	0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, 0x9787, 0x9788	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B5[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x9789, 0x978A, 0x978B, 0x978C, 0x978D, 0x978E, 0x978F, 0x9790, /* 0x00 */
	0x9791, 0x9793, 0x9794, 0x9795, 0x9796, 0x9797, 0x9798, 0x9799, /* 0x00 */
	0x979A, 0x979B, 0x979C, 0x979D, 0x97A1, 0x97A2, 0x97A3, 0x97A4, /* 0x10 */
	0x97A5, 0x97A6, 0x97A7, 0x97A8, 0x97A9, 0x97AA, 0x97AB, 0x97AC, /* 0x10 */
	0x97AD, 0x97AE, 0x97AF, 0x97B0, 0x97B1, 0x97B3, 0x97B4, 0x97B5, /* 0x20 */
	0x97B6, 0x97B7, 0x97B8, 0x97B9, 0x97BA, 0x97BB, 0x97BC, 0x97BD, /* 0x20 */
	0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, 0x9867, 0x9868, /* 0x30 */
	0x9869, 0x986A, 0x986B, 0x986C, 0x986D, 0x986E, 0x986F, 0x9870, /* 0x30 */
	0x9871, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877, 0x9878, 0x9879, /* 0x40 */
	0x987A, 0x987B, 0x987C, 0x987D, 0x9881, 0x9882, 0x9883, 0x9884, /* 0x40 */
	0x9885, 0x9886, 0x9887, 0x9888, 0x9889, 0x988A, 0x988B, 0x988C, /* 0x50 */
	0x988D, 0x988E, 0x988F, 0x9890, 0x9891, 0x9893, 0x9894, 0x9895, /* 0x50 */
	0x9896, 0x9897, 0x9898, 0x9899, 0x989A, 0x989B, 0x989C, 0x989D, /* 0x60 */
	0x98A1, 0x98A2, 0x98A3, 0x98A4, 0x98A5, 0x98A6, 0x98A7, 0x98A8, /* 0x60 */
	0x98A9, 0x98AA, 0x98AB, 0x98AC, 0x98AD, 0x98AE, 0x98AF, 0x98B0, /* 0x70 */
	0x98B1, 0x98B3, 0x98B4, 0x98B5, 0x98B6, 0x98B7, 0x98B8, 0x98B9, /* 0x70 */
	0x98BA, 0x98BB, 0x98BC, 0x98BD, 0x98C1, 0x98C2, 0x98C3, 0x98C4, /* 0x80 */
	0x98C5, 0x98C6, 0x98C7, 0x98C8, 0x98C9, 0x98CA, 0x98CB, 0x98CC, /* 0x80 */
	0x98CD, 0x98CE, 0x98CF, 0x98D0, 0x98D1, 0x98D3, 0x98D4, 0x98D5, /* 0x90 */
	0x98D6, 0x98D7, 0x98D8, 0x98D9, 0x98DA, 0x98DB, 0x98DC, 0x98DD, /* 0x90 */
	0x98E1, 0x98E2, 0x98E3, 0x98E4, 0x98E5, 0x98E6, 0x98E7, 0x98E8, /* 0xA0 */
	0x98E9, 0x98EA, 0x98EB, 0x98EC, 0x98ED, 0x98EE, 0x98EF, 0x98F0, /* 0xA0 */
	0x98F1, 0x98F3, 0x98F4, 0x98F5, 0x98F6, 0x98F7, 0x98F8, 0x98F9, /* 0xB0 */
	0x98FA, 0x98FB, 0x98FC, 0x98FD, 0x9941, 0x9942, 0x9943, 0x9944, /* 0xB0 */
	0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x994A, 0x994B, 0x994C, /* 0xC0 */
	0x994D, 0x994E, 0x994F, 0x9950, 0x9951, 0x9953, 0x9954, 0x9955, /* 0xC0 */
	0x9956, 0x9957, 0x9958, 0x9959, 0x995A, 0x995B, 0x995C, 0x995D, /* 0xD0 */
	0x9961, 0x9962, 0x9963, 0x9964, 0x9965, 0x9966, 0x9967, 0x9968, /* 0xD0 */
	0x9969, 0x996A, 0x996B, 0x996C, 0x996D, 0x996E, 0x996F, 0x9970, /* 0xE0 */
	0x9971, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, 0x9979, /* 0xE0 */
	0x997A, 0x997B, 0x997C, 0x997D, 0x9981, 0x9982, 0x9983, 0x9984, /* 0xF0 */
	0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0x998A, 0x998B, 0x998C	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B6[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x998D, 0x998E, 0x998F, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, /* 0x00 */
	0x9996, 0x9997, 0x9998, 0x9999, 0x999A, 0x999B, 0x999C, 0x999D, /* 0x00 */
	0x99A1, 0x99A2, 0x99A3, 0x99A4, 0x99A5, 0x99A6, 0x99A7, 0x99A8, /* 0x10 */
	0x99A9, 0x99AA, 0x99AB, 0x99AC, 0x99AD, 0x99AE, 0x99AF, 0x99B0, /* 0x10 */
	0x99B1, 0x99B3, 0x99B4, 0x99B5, 0x99B6, 0x99B7, 0x99B8, 0x99B9, /* 0x20 */
	0x99BA, 0x99BB, 0x99BC, 0x99BD, 0x99C1, 0x99C2, 0x99C3, 0x99C4, /* 0x20 */
	0x99C5, 0x99C6, 0x99C7, 0x99C8, 0x99C9, 0x99CA, 0x99CB, 0x99CC, /* 0x30 */
	0x99CD, 0x99CE, 0x99CF, 0x99D0, 0x99D1, 0x99D3, 0x99D4, 0x99D5, /* 0x30 */
	0x99D6, 0x99D7, 0x99D8, 0x99D9, 0x99DA, 0x99DB, 0x99DC, 0x99DD, /* 0x40 */
	0x99E1, 0x99E2, 0x99E3, 0x99E4, 0x99E5, 0x99E6, 0x99E7, 0x99E8, /* 0x40 */
	0x99E9, 0x99EA, 0x99EB, 0x99EC, 0x99ED, 0x99EE, 0x99EF, 0x99F0, /* 0x50 */
	0x99F1, 0x99F3, 0x99F4, 0x99F5, 0x99F6, 0x99F7, 0x99F8, 0x99F9, /* 0x50 */
	0x99FA, 0x99FB, 0x99FC, 0x99FD, 0x9A41, 0x9A42, 0x9A43, 0x9A44, /* 0x60 */
	0x9A45, 0x9A46, 0x9A47, 0x9A48, 0x9A49, 0x9A4A, 0x9A4B, 0x9A4C, /* 0x60 */
	0x9A4D, 0x9A4E, 0x9A4F, 0x9A50, 0x9A51, 0x9A53, 0x9A54, 0x9A55, /* 0x70 */
	0x9A56, 0x9A57, 0x9A58, 0x9A59, 0x9A5A, 0x9A5B, 0x9A5C, 0x9A5D, /* 0x70 */
	0x9A61, 0x9A62, 0x9A63, 0x9A64, 0x9A65, 0x9A66, 0x9A67, 0x9A68, /* 0x80 */
	0x9A69, 0x9A6A, 0x9A6B, 0x9A6C, 0x9A6D, 0x9A6E, 0x9A6F, 0x9A70, /* 0x80 */
	0x9A71, 0x9A73, 0x9A74, 0x9A75, 0x9A76, 0x9A77, 0x9A78, 0x9A79, /* 0x90 */
	0x9A7A, 0x9A7B, 0x9A7C, 0x9A7D, 0x9A81, 0x9A82, 0x9A83, 0x9A84, /* 0x90 */
	0x9A85, 0x9A86, 0x9A87, 0x9A88, 0x9A89, 0x9A8A, 0x9A8B, 0x9A8C, /* 0xA0 */
	0x9A8D, 0x9A8E, 0x9A8F, 0x9A90, 0x9A91, 0x9A93, 0x9A94, 0x9A95, /* 0xA0 */
	0x9A96, 0x9A97, 0x9A98, 0x9A99, 0x9A9A, 0x9A9B, 0x9A9C, 0x9A9D, /* 0xB0 */
	0x9AA1, 0x9AA2, 0x9AA3, 0x9AA4, 0x9AA5, 0x9AA6, 0x9AA7, 0x9AA8, /* 0xB0 */
	0x9AA9, 0x9AAA, 0x9AAB, 0x9AAC, 0x9AAD, 0x9AAE, 0x9AAF, 0x9AB0, /* 0xC0 */
	0x9AB1, 0x9AB3, 0x9AB4, 0x9AB5, 0x9AB6, 0x9AB7, 0x9AB8, 0x9AB9, /* 0xC0 */
	0x9ABA, 0x9ABB, 0x9ABC, 0x9ABD, 0x9AC1, 0x9AC2, 0x9AC3, 0x9AC4, /* 0xD0 */
	0x9AC5, 0x9AC6, 0x9AC7, 0x9AC8, 0x9AC9, 0x9ACA, 0x9ACB, 0x9ACC, /* 0xD0 */
	0x9ACD, 0x9ACE, 0x9ACF, 0x9AD0, 0x9AD1, 0x9AD3, 0x9AD4, 0x9AD5, /* 0xE0 */
	0x9AD6, 0x9AD7, 0x9AD8, 0x9AD9, 0x9ADA, 0x9ADB, 0x9ADC, 0x9ADD, /* 0xE0 */
	0x9AE1, 0x9AE2, 0x9AE3, 0x9AE4, 0x9AE5, 0x9AE6, 0x9AE7, 0x9AE8, /* 0xF0 */
	0x9AE9, 0x9AEA, 0x9AEB, 0x9AEC, 0x9AED, 0x9AEE, 0x9AEF, 0x9AF0	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B7[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x9AF1, 0x9AF3, 0x9AF4, 0x9AF5, 0x9AF6, 0x9AF7, 0x9AF8, 0x9AF9, /* 0x00 */
	0x9AFA, 0x9AFB, 0x9AFC, 0x9AFD, 0x9B41, 0x9B42, 0x9B43, 0x9B44, /* 0x00 */
	0x9B45, 0x9B46, 0x9B47, 0x9B48, 0x9B49, 0x9B4A, 0x9B4B, 0x9B4C, /* 0x10 */
	0x9B4D, 0x9B4E, 0x9B4F, 0x9B50, 0x9B51, 0x9B53, 0x9B54, 0x9B55, /* 0x10 */
	0x9B56, 0x9B57, 0x9B58, 0x9B59, 0x9B5A, 0x9B5B, 0x9B5C, 0x9B5D, /* 0x20 */
	0x9B61, 0x9B62, 0x9B63, 0x9B64, 0x9B65, 0x9B66, 0x9B67, 0x9B68, /* 0x20 */
	0x9B69, 0x9B6A, 0x9B6B, 0x9B6C, 0x9B6D, 0x9B6E, 0x9B6F, 0x9B70, /* 0x30 */
	0x9B71, 0x9B73, 0x9B74, 0x9B75, 0x9B76, 0x9B77, 0x9B78, 0x9B79, /* 0x30 */
	0x9B7A, 0x9B7B, 0x9B7C, 0x9B7D, 0x9B81, 0x9B82, 0x9B83, 0x9B84, /* 0x40 */
	0x9B85, 0x9B86, 0x9B87, 0x9B88, 0x9B89, 0x9B8A, 0x9B8B, 0x9B8C, /* 0x40 */
	0x9B8D, 0x9B8E, 0x9B8F, 0x9B90, 0x9B91, 0x9B93, 0x9B94, 0x9B95, /* 0x50 */
	0x9B96, 0x9B97, 0x9B98, 0x9B99, 0x9B9A, 0x9B9B, 0x9B9C, 0x9B9D, /* 0x50 */
	0x9BA1, 0x9BA2, 0x9BA3, 0x9BA4, 0x9BA5, 0x9BA6, 0x9BA7, 0x9BA8, /* 0x60 */
	0x9BA9, 0x9BAA, 0x9BAB, 0x9BAC, 0x9BAD, 0x9BAE, 0x9BAF, 0x9BB0, /* 0x60 */
	0x9BB1, 0x9BB3, 0x9BB4, 0x9BB5, 0x9BB6, 0x9BB7, 0x9BB8, 0x9BB9, /* 0x70 */
	0x9BBA, 0x9BBB, 0x9BBC, 0x9BBD, 0x9C61, 0x9C62, 0x9C63, 0x9C64, /* 0x70 */
	0x9C65, 0x9C66, 0x9C67, 0x9C68, 0x9C69, 0x9C6A, 0x9C6B, 0x9C6C, /* 0x80 */
	0x9C6D, 0x9C6E, 0x9C6F, 0x9C70, 0x9C71, 0x9C73, 0x9C74, 0x9C75, /* 0x80 */
	0x9C76, 0x9C77, 0x9C78, 0x9C79, 0x9C7A, 0x9C7B, 0x9C7C, 0x9C7D, /* 0x90 */
	0x9C81, 0x9C82, 0x9C83, 0x9C84, 0x9C85, 0x9C86, 0x9C87, 0x9C88, /* 0x90 */
	0x9C89, 0x9C8A, 0x9C8B, 0x9C8C, 0x9C8D, 0x9C8E, 0x9C8F, 0x9C90, /* 0xA0 */
	0x9C91, 0x9C93, 0x9C94, 0x9C95, 0x9C96, 0x9C97, 0x9C98, 0x9C99, /* 0xA0 */
	0x9C9A, 0x9C9B, 0x9C9C, 0x9C9D, 0x9CA1, 0x9CA2, 0x9CA3, 0x9CA4, /* 0xB0 */
	0x9CA5, 0x9CA6, 0x9CA7, 0x9CA8, 0x9CA9, 0x9CAA, 0x9CAB, 0x9CAC, /* 0xB0 */
	0x9CAD, 0x9CAE, 0x9CAF, 0x9CB0, 0x9CB1, 0x9CB3, 0x9CB4, 0x9CB5, /* 0xC0 */
	0x9CB6, 0x9CB7, 0x9CB8, 0x9CB9, 0x9CBA, 0x9CBB, 0x9CBC, 0x9CBD, /* 0xC0 */
	0x9CC1, 0x9CC2, 0x9CC3, 0x9CC4, 0x9CC5, 0x9CC6, 0x9CC7, 0x9CC8, /* 0xD0 */
	0x9CC9, 0x9CCA, 0x9CCB, 0x9CCC, 0x9CCD, 0x9CCE, 0x9CCF, 0x9CD0, /* 0xD0 */
	0x9CD1, 0x9CD3, 0x9CD4, 0x9CD5, 0x9CD6, 0x9CD7, 0x9CD8, 0x9CD9, /* 0xE0 */
	0x9CDA, 0x9CDB, 0x9CDC, 0x9CDD, 0x9CE1, 0x9CE2, 0x9CE3, 0x9CE4, /* 0xE0 */
	0x9CE5, 0x9CE6, 0x9CE7, 0x9CE8, 0x9CE9, 0x9CEA, 0x9CEB, 0x9CEC, /* 0xF0 */
	0x9CED, 0x9CEE, 0x9CEF, 0x9CF0, 0x9CF1, 0x9CF3, 0x9CF4, 0x9CF5	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B8[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x9CF6, 0x9CF7, 0x9CF8, 0x9CF9, 0x9CFA, 0x9CFB, 0x9CFC, 0x9CFD, /* 0x00 */
	0x9D41, 0x9D42, 0x9D43, 0x9D44, 0x9D45, 0x9D46, 0x9D47, 0x9D48, /* 0x00 */
	0x9D49, 0x9D4A, 0x9D4B, 0x9D4C, 0x9D4D, 0x9D4E, 0x9D4F, 0x9D50, /* 0x10 */
	0x9D51, 0x9D53, 0x9D54, 0x9D55, 0x9D56, 0x9D57, 0x9D58, 0x9D59, /* 0x10 */
	0x9D5A, 0x9D5B, 0x9D5C, 0x9D5D, 0x9D61, 0x9D62, 0x9D63, 0x9D64, /* 0x20 */
	0x9D65, 0x9D66, 0x9D67, 0x9D68, 0x9D69, 0x9D6A, 0x9D6B, 0x9D6C, /* 0x20 */
	0x9D6D, 0x9D6E, 0x9D6F, 0x9D70, 0x9D71, 0x9D73, 0x9D74, 0x9D75, /* 0x30 */
	0x9D76, 0x9D77, 0x9D78, 0x9D79, 0x9D7A, 0x9D7B, 0x9D7C, 0x9D7D, /* 0x30 */
	0x9D81, 0x9D82, 0x9D83, 0x9D84, 0x9D85, 0x9D86, 0x9D87, 0x9D88, /* 0x40 */
	0x9D89, 0x9D8A, 0x9D8B, 0x9D8C, 0x9D8D, 0x9D8E, 0x9D8F, 0x9D90, /* 0x40 */
	0x9D91, 0x9D93, 0x9D94, 0x9D95, 0x9D96, 0x9D97, 0x9D98, 0x9D99, /* 0x50 */
	0x9D9A, 0x9D9B, 0x9D9C, 0x9D9D, 0x9DA1, 0x9DA2, 0x9DA3, 0x9DA4, /* 0x50 */
	0x9DA5, 0x9DA6, 0x9DA7, 0x9DA8, 0x9DA9, 0x9DAA, 0x9DAB, 0x9DAC, /* 0x60 */
	0x9DAD, 0x9DAE, 0x9DAF, 0x9DB0, 0x9DB1, 0x9DB3, 0x9DB4, 0x9DB5, /* 0x60 */
	0x9DB6, 0x9DB7, 0x9DB8, 0x9DB9, 0x9DBA, 0x9DBB, 0x9DBC, 0x9DBD, /* 0x70 */
	0x9DC1, 0x9DC2, 0x9DC3, 0x9DC4, 0x9DC5, 0x9DC6, 0x9DC7, 0x9DC8, /* 0x70 */
	0x9DC9, 0x9DCA, 0x9DCB, 0x9DCC, 0x9DCD, 0x9DCE, 0x9DCF, 0x9DD0, /* 0x80 */
	0x9DD1, 0x9DD3, 0x9DD4, 0x9DD5, 0x9DD6, 0x9DD7, 0x9DD8, 0x9DD9, /* 0x80 */
	0x9DDA, 0x9DDB, 0x9DDC, 0x9DDD, 0x9DE1, 0x9DE2, 0x9DE3, 0x9DE4, /* 0x90 */
	0x9DE5, 0x9DE6, 0x9DE7, 0x9DE8, 0x9DE9, 0x9DEA, 0x9DEB, 0x9DEC, /* 0x90 */
	0x9DED, 0x9DEE, 0x9DEF, 0x9DF0, 0x9DF1, 0x9DF3, 0x9DF4, 0x9DF5, /* 0xA0 */
	0x9DF6, 0x9DF7, 0x9DF8, 0x9DF9, 0x9DFA, 0x9DFB, 0x9DFC, 0x9DFD, /* 0xA0 */
	0x9E41, 0x9E42, 0x9E43, 0x9E44, 0x9E45, 0x9E46, 0x9E47, 0x9E48, /* 0xB0 */
	0x9E49, 0x9E4A, 0x9E4B, 0x9E4C, 0x9E4D, 0x9E4E, 0x9E4F, 0x9E50, /* 0xB0 */
	0x9E51, 0x9E53, 0x9E54, 0x9E55, 0x9E56, 0x9E57, 0x9E58, 0x9E59, /* 0xC0 */
	0x9E5A, 0x9E5B, 0x9E5C, 0x9E5D, 0x9E61, 0x9E62, 0x9E63, 0x9E64, /* 0xC0 */
	0x9E65, 0x9E66, 0x9E67, 0x9E68, 0x9E69, 0x9E6A, 0x9E6B, 0x9E6C, /* 0xD0 */
	0x9E6D, 0x9E6E, 0x9E6F, 0x9E70, 0x9E71, 0x9E73, 0x9E74, 0x9E75, /* 0xD0 */
	0x9E76, 0x9E77, 0x9E78, 0x9E79, 0x9E7A, 0x9E7B, 0x9E7C, 0x9E7D, /* 0xE0 */
	0x9E81, 0x9E82, 0x9E83, 0x9E84, 0x9E85, 0x9E86, 0x9E87, 0x9E88, /* 0xE0 */
	0x9E89, 0x9E8A, 0x9E8B, 0x9E8C, 0x9E8D, 0x9E8E, 0x9E8F, 0x9E90, /* 0xF0 */
	0x9E91, 0x9E93, 0x9E94, 0x9E95, 0x9E96, 0x9E97, 0x9E98, 0x9E99	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B9[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0x9E9A, 0x9E9B, 0x9E9C, 0x9E9D, 0x9EA1, 0x9EA2, 0x9EA3, 0x9EA4, /* 0x00 */
	0x9EA5, 0x9EA6, 0x9EA7, 0x9EA8, 0x9EA9, 0x9EAA, 0x9EAB, 0x9EAC, /* 0x00 */
	0x9EAD, 0x9EAE, 0x9EAF, 0x9EB0, 0x9EB1, 0x9EB3, 0x9EB4, 0x9EB5, /* 0x10 */
	0x9EB6, 0x9EB7, 0x9EB8, 0x9EB9, 0x9EBA, 0x9EBB, 0x9EBC, 0x9EBD, /* 0x10 */
	0x9EC1, 0x9EC2, 0x9EC3, 0x9EC4, 0x9EC5, 0x9EC6, 0x9EC7, 0x9EC8, /* 0x20 */
	0x9EC9, 0x9ECA, 0x9ECB, 0x9ECC, 0x9ECD, 0x9ECE, 0x9ECF, 0x9ED0, /* 0x20 */
	0x9ED1, 0x9ED3, 0x9ED4, 0x9ED5, 0x9ED6, 0x9ED7, 0x9ED8, 0x9ED9, /* 0x30 */
	0x9EDA, 0x9EDB, 0x9EDC, 0x9EDD, 0x9EE1, 0x9EE2, 0x9EE3, 0x9EE4, /* 0x30 */
	0x9EE5, 0x9EE6, 0x9EE7, 0x9EE8, 0x9EE9, 0x9EEA, 0x9EEB, 0x9EEC, /* 0x40 */
	0x9EED, 0x9EEE, 0x9EEF, 0x9EF0, 0x9EF1, 0x9EF3, 0x9EF4, 0x9EF5, /* 0x40 */
	0x9EF6, 0x9EF7, 0x9EF8, 0x9EF9, 0x9EFA, 0x9EFB, 0x9EFC, 0x9EFD, /* 0x50 */
	0x9F41, 0x9F42, 0x9F43, 0x9F44, 0x9F45, 0x9F46, 0x9F47, 0x9F48, /* 0x50 */
	0x9F49, 0x9F4A, 0x9F4B, 0x9F4C, 0x9F4D, 0x9F4E, 0x9F4F, 0x9F50, /* 0x60 */
	0x9F51, 0x9F53, 0x9F54, 0x9F55, 0x9F56, 0x9F57, 0x9F58, 0x9F59, /* 0x60 */
	0x9F5A, 0x9F5B, 0x9F5C, 0x9F5D, 0x9F61, 0x9F62, 0x9F63, 0x9F64, /* 0x70 */
	0x9F65, 0x9F66, 0x9F67, 0x9F68, 0x9F69, 0x9F6A, 0x9F6B, 0x9F6C, /* 0x70 */
	0x9F6D, 0x9F6E, 0x9F6F, 0x9F70, 0x9F71, 0x9F73, 0x9F74, 0x9F75, /* 0x80 */
	0x9F76, 0x9F77, 0x9F78, 0x9F79, 0x9F7A, 0x9F7B, 0x9F7C, 0x9F7D, /* 0x80 */
	0x9F81, 0x9F82, 0x9F83, 0x9F84, 0x9F85, 0x9F86, 0x9F87, 0x9F88, /* 0x90 */
	0x9F89, 0x9F8A, 0x9F8B, 0x9F8C, 0x9F8D, 0x9F8E, 0x9F8F, 0x9F90, /* 0x90 */
	0x9F91, 0x9F93, 0x9F94, 0x9F95, 0x9F96, 0x9F97, 0x9F98, 0x9F99, /* 0xA0 */
	0x9F9A, 0x9F9B, 0x9F9C, 0x9F9D, 0x9FA1, 0x9FA2, 0x9FA3, 0x9FA4, /* 0xA0 */
	0x9FA5, 0x9FA6, 0x9FA7, 0x9FA8, 0x9FA9, 0x9FAA, 0x9FAB, 0x9FAC, /* 0xB0 */
	0x9FAD, 0x9FAE, 0x9FAF, 0x9FB0, 0x9FB1, 0x9FB3, 0x9FB4, 0x9FB5, /* 0xB0 */
	0x9FB6, 0x9FB7, 0x9FB8, 0x9FB9, 0x9FBA, 0x9FBB, 0x9FBC, 0x9FBD, /* 0xC0 */
	0xA061, 0xA062, 0xA063, 0xA064, 0xA065, 0xA066, 0xA067, 0xA068, /* 0xC0 */
	0xA069, 0xA06A, 0xA06B, 0xA06C, 0xA06D, 0xA06E, 0xA06F, 0xA070, /* 0xD0 */
	0xA071, 0xA073, 0xA074, 0xA075, 0xA076, 0xA077, 0xA078, 0xA079, /* 0xD0 */
	0xA07A, 0xA07B, 0xA07C, 0xA07D, 0xA081, 0xA082, 0xA083, 0xA084, /* 0xE0 */
	0xA085, 0xA086, 0xA087, 0xA088, 0xA089, 0xA08A, 0xA08B, 0xA08C, /* 0xE0 */
	0xA08D, 0xA08E, 0xA08F, 0xA090, 0xA091, 0xA093, 0xA094, 0xA095, /* 0xF0 */
	0xA096, 0xA097, 0xA098, 0xA099, 0xA09A, 0xA09B, 0xA09C, 0xA09D	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BA[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xA0A1, 0xA0A2, 0xA0A3, 0xA0A4, 0xA0A5, 0xA0A6, 0xA0A7, 0xA0A8, /* 0x00 */
	0xA0A9, 0xA0AA, 0xA0AB, 0xA0AC, 0xA0AD, 0xA0AE, 0xA0AF, 0xA0B0, /* 0x00 */
	0xA0B1, 0xA0B3, 0xA0B4, 0xA0B5, 0xA0B6, 0xA0B7, 0xA0B8, 0xA0B9, /* 0x10 */
	0xA0BA, 0xA0BB, 0xA0BC, 0xA0BD, 0xA0C1, 0xA0C2, 0xA0C3, 0xA0C4, /* 0x10 */
	0xA0C5, 0xA0C6, 0xA0C7, 0xA0C8, 0xA0C9, 0xA0CA, 0xA0CB, 0xA0CC, /* 0x20 */
	0xA0CD, 0xA0CE, 0xA0CF, 0xA0D0, 0xA0D1, 0xA0D3, 0xA0D4, 0xA0D5, /* 0x20 */
	0xA0D6, 0xA0D7, 0xA0D8, 0xA0D9, 0xA0DA, 0xA0DB, 0xA0DC, 0xA0DD, /* 0x30 */
	0xA0E1, 0xA0E2, 0xA0E3, 0xA0E4, 0xA0E5, 0xA0E6, 0xA0E7, 0xA0E8, /* 0x30 */
	0xA0E9, 0xA0EA, 0xA0EB, 0xA0EC, 0xA0ED, 0xA0EE, 0xA0EF, 0xA0F0, /* 0x40 */
	0xA0F1, 0xA0F3, 0xA0F4, 0xA0F5, 0xA0F6, 0xA0F7, 0xA0F8, 0xA0F9, /* 0x40 */
	0xA0FA, 0xA0FB, 0xA0FC, 0xA0FD, 0xA141, 0xA142, 0xA143, 0xA144, /* 0x50 */
	0xA145, 0xA146, 0xA147, 0xA148, 0xA149, 0xA14A, 0xA14B, 0xA14C, /* 0x50 */
	0xA14D, 0xA14E, 0xA14F, 0xA150, 0xA151, 0xA153, 0xA154, 0xA155, /* 0x60 */
	0xA156, 0xA157, 0xA158, 0xA159, 0xA15A, 0xA15B, 0xA15C, 0xA15D, /* 0x60 */
	0xA161, 0xA162, 0xA163, 0xA164, 0xA165, 0xA166, 0xA167, 0xA168, /* 0x70 */
	0xA169, 0xA16A, 0xA16B, 0xA16C, 0xA16D, 0xA16E, 0xA16F, 0xA170, /* 0x70 */
	0xA171, 0xA173, 0xA174, 0xA175, 0xA176, 0xA177, 0xA178, 0xA179, /* 0x80 */
	0xA17A, 0xA17B, 0xA17C, 0xA17D, 0xA181, 0xA182, 0xA183, 0xA184, /* 0x80 */
	0xA185, 0xA186, 0xA187, 0xA188, 0xA189, 0xA18A, 0xA18B, 0xA18C, /* 0x90 */
	0xA18D, 0xA18E, 0xA18F, 0xA190, 0xA191, 0xA193, 0xA194, 0xA195, /* 0x90 */
	0xA196, 0xA197, 0xA198, 0xA199, 0xA19A, 0xA19B, 0xA19C, 0xA19D, /* 0xA0 */
	0xA1A1, 0xA1A2, 0xA1A3, 0xA1A4, 0xA1A5, 0xA1A6, 0xA1A7, 0xA1A8, /* 0xA0 */
	0xA1A9, 0xA1AA, 0xA1AB, 0xA1AC, 0xA1AD, 0xA1AE, 0xA1AF, 0xA1B0, /* 0xB0 */
	0xA1B1, 0xA1B3, 0xA1B4, 0xA1B5, 0xA1B6, 0xA1B7, 0xA1B8, 0xA1B9, /* 0xB0 */
	0xA1BA, 0xA1BB, 0xA1BC, 0xA1BD, 0xA1C1, 0xA1C2, 0xA1C3, 0xA1C4, /* 0xC0 */
	0xA1C5, 0xA1C6, 0xA1C7, 0xA1C8, 0xA1C9, 0xA1CA, 0xA1CB, 0xA1CC, /* 0xC0 */
	0xA1CD, 0xA1CE, 0xA1CF, 0xA1D0, 0xA1D1, 0xA1D3, 0xA1D4, 0xA1D5, /* 0xD0 */
	0xA1D6, 0xA1D7, 0xA1D8, 0xA1D9, 0xA1DA, 0xA1DB, 0xA1DC, 0xA1DD, /* 0xD0 */
	0xA1E1, 0xA1E2, 0xA1E3, 0xA1E4, 0xA1E5, 0xA1E6, 0xA1E7, 0xA1E8, /* 0xE0 */
	0xA1E9, 0xA1EA, 0xA1EB, 0xA1EC, 0xA1ED, 0xA1EE, 0xA1EF, 0xA1F0, /* 0xE0 */
	0xA1F1, 0xA1F3, 0xA1F4, 0xA1F5, 0xA1F6, 0xA1F7, 0xA1F8, 0xA1F9, /* 0xF0 */
	0xA1FA, 0xA1FB, 0xA1FC, 0xA1FD, 0xA241, 0xA242, 0xA243, 0xA244	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BB[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xA245, 0xA246, 0xA247, 0xA248, 0xA249, 0xA24A, 0xA24B, 0xA24C, /* 0x00 */
	0xA24D, 0xA24E, 0xA24F, 0xA250, 0xA251, 0xA253, 0xA254, 0xA255, /* 0x00 */
	0xA256, 0xA257, 0xA258, 0xA259, 0xA25A, 0xA25B, 0xA25C, 0xA25D, /* 0x10 */
	0xA261, 0xA262, 0xA263, 0xA264, 0xA265, 0xA266, 0xA267, 0xA268, /* 0x10 */
	0xA269, 0xA26A, 0xA26B, 0xA26C, 0xA26D, 0xA26E, 0xA26F, 0xA270, /* 0x20 */
	0xA271, 0xA273, 0xA274, 0xA275, 0xA276, 0xA277, 0xA278, 0xA279, /* 0x20 */
	0xA27A, 0xA27B, 0xA27C, 0xA27D, 0xA281, 0xA282, 0xA283, 0xA284, /* 0x30 */
	0xA285, 0xA286, 0xA287, 0xA288, 0xA289, 0xA28A, 0xA28B, 0xA28C, /* 0x30 */
	0xA28D, 0xA28E, 0xA28F, 0xA290, 0xA291, 0xA293, 0xA294, 0xA295, /* 0x40 */
	0xA296, 0xA297, 0xA298, 0xA299, 0xA29A, 0xA29B, 0xA29C, 0xA29D, /* 0x40 */
	0xA2A1, 0xA2A2, 0xA2A3, 0xA2A4, 0xA2A5, 0xA2A6, 0xA2A7, 0xA2A8, /* 0x50 */
	0xA2A9, 0xA2AA, 0xA2AB, 0xA2AC, 0xA2AD, 0xA2AE, 0xA2AF, 0xA2B0, /* 0x50 */
	0xA2B1, 0xA2B3, 0xA2B4, 0xA2B5, 0xA2B6, 0xA2B7, 0xA2B8, 0xA2B9, /* 0x60 */
	0xA2BA, 0xA2BB, 0xA2BC, 0xA2BD, 0xA2C1, 0xA2C2, 0xA2C3, 0xA2C4, /* 0x60 */
	0xA2C5, 0xA2C6, 0xA2C7, 0xA2C8, 0xA2C9, 0xA2CA, 0xA2CB, 0xA2CC, /* 0x70 */
	0xA2CD, 0xA2CE, 0xA2CF, 0xA2D0, 0xA2D1, 0xA2D3, 0xA2D4, 0xA2D5, /* 0x70 */
	0xA2D6, 0xA2D7, 0xA2D8, 0xA2D9, 0xA2DA, 0xA2DB, 0xA2DC, 0xA2DD, /* 0x80 */
	0xA2E1, 0xA2E2, 0xA2E3, 0xA2E4, 0xA2E5, 0xA2E6, 0xA2E7, 0xA2E8, /* 0x80 */
	0xA2E9, 0xA2EA, 0xA2EB, 0xA2EC, 0xA2ED, 0xA2EE, 0xA2EF, 0xA2F0, /* 0x90 */
	0xA2F1, 0xA2F3, 0xA2F4, 0xA2F5, 0xA2F6, 0xA2F7, 0xA2F8, 0xA2F9, /* 0x90 */
	0xA2FA, 0xA2FB, 0xA2FC, 0xA2FD, 0xA341, 0xA342, 0xA343, 0xA344, /* 0xA0 */
	0xA345, 0xA346, 0xA347, 0xA348, 0xA349, 0xA34A, 0xA34B, 0xA34C, /* 0xA0 */
	0xA34D, 0xA34E, 0xA34F, 0xA350, 0xA351, 0xA353, 0xA354, 0xA355, /* 0xB0 */
	0xA356, 0xA357, 0xA358, 0xA359, 0xA35A, 0xA35B, 0xA35C, 0xA35D, /* 0xB0 */
	0xA361, 0xA362, 0xA363, 0xA364, 0xA365, 0xA366, 0xA367, 0xA368, /* 0xC0 */
	0xA369, 0xA36A, 0xA36B, 0xA36C, 0xA36D, 0xA36E, 0xA36F, 0xA370, /* 0xC0 */
	0xA371, 0xA373, 0xA374, 0xA375, 0xA376, 0xA377, 0xA378, 0xA379, /* 0xD0 */
	0xA37A, 0xA37B, 0xA37C, 0xA37D, 0xA381, 0xA382, 0xA383, 0xA384, /* 0xD0 */
	0xA385, 0xA386, 0xA387, 0xA388, 0xA389, 0xA38A, 0xA38B, 0xA38C, /* 0xE0 */
	0xA38D, 0xA38E, 0xA38F, 0xA390, 0xA391, 0xA393, 0xA394, 0xA395, /* 0xE0 */
	0xA396, 0xA397, 0xA398, 0xA399, 0xA39A, 0xA39B, 0xA39C, 0xA39D, /* 0xF0 */
	0xA3A1, 0xA3A2, 0xA3A3, 0xA3A4, 0xA3A5, 0xA3A6, 0xA3A7, 0xA3A8	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BC[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xA3A9, 0xA3AA, 0xA3AB, 0xA3AC, 0xA3AD, 0xA3AE, 0xA3AF, 0xA3B0, /* 0x00 */
	0xA3B1, 0xA3B3, 0xA3B4, 0xA3B5, 0xA3B6, 0xA3B7, 0xA3B8, 0xA3B9, /* 0x00 */
	0xA3BA, 0xA3BB, 0xA3BC, 0xA3BD, 0xA461, 0xA462, 0xA463, 0xA464, /* 0x10 */
	0xA465, 0xA466, 0xA467, 0xA468, 0xA469, 0xA46A, 0xA46B, 0xA46C, /* 0x10 */
	0xA46D, 0xA46E, 0xA46F, 0xA470, 0xA471, 0xA473, 0xA474, 0xA475, /* 0x20 */
	0xA476, 0xA477, 0xA478, 0xA479, 0xA47A, 0xA47B, 0xA47C, 0xA47D, /* 0x20 */
	0xA481, 0xA482, 0xA483, 0xA484, 0xA485, 0xA486, 0xA487, 0xA488, /* 0x30 */
	0xA489, 0xA48A, 0xA48B, 0xA48C, 0xA48D, 0xA48E, 0xA48F, 0xA490, /* 0x30 */
	0xA491, 0xA493, 0xA494, 0xA495, 0xA496, 0xA497, 0xA498, 0xA499, /* 0x40 */
	0xA49A, 0xA49B, 0xA49C, 0xA49D, 0xA4A1, 0xA4A2, 0xA4A3, 0xA4A4, /* 0x40 */
	0xA4A5, 0xA4A6, 0xA4A7, 0xA4A8, 0xA4A9, 0xA4AA, 0xA4AB, 0xA4AC, /* 0x50 */
	0xA4AD, 0xA4AE, 0xA4AF, 0xA4B0, 0xA4B1, 0xA4B3, 0xA4B4, 0xA4B5, /* 0x50 */
	0xA4B6, 0xA4B7, 0xA4B8, 0xA4B9, 0xA4BA, 0xA4BB, 0xA4BC, 0xA4BD, /* 0x60 */
	0xA4C1, 0xA4C2, 0xA4C3, 0xA4C4, 0xA4C5, 0xA4C6, 0xA4C7, 0xA4C8, /* 0x60 */
	0xA4C9, 0xA4CA, 0xA4CB, 0xA4CC, 0xA4CD, 0xA4CE, 0xA4CF, 0xA4D0, /* 0x70 */
	0xA4D1, 0xA4D3, 0xA4D4, 0xA4D5, 0xA4D6, 0xA4D7, 0xA4D8, 0xA4D9, /* 0x70 */
	0xA4DA, 0xA4DB, 0xA4DC, 0xA4DD, 0xA4E1, 0xA4E2, 0xA4E3, 0xA4E4, /* 0x80 */
	0xA4E5, 0xA4E6, 0xA4E7, 0xA4E8, 0xA4E9, 0xA4EA, 0xA4EB, 0xA4EC, /* 0x80 */
	0xA4ED, 0xA4EE, 0xA4EF, 0xA4F0, 0xA4F1, 0xA4F3, 0xA4F4, 0xA4F5, /* 0x90 */
	0xA4F6, 0xA4F7, 0xA4F8, 0xA4F9, 0xA4FA, 0xA4FB, 0xA4FC, 0xA4FD, /* 0x90 */
	0xA541, 0xA542, 0xA543, 0xA544, 0xA545, 0xA546, 0xA547, 0xA548, /* 0xA0 */
	0xA549, 0xA54A, 0xA54B, 0xA54C, 0xA54D, 0xA54E, 0xA54F, 0xA550, /* 0xA0 */
	0xA551, 0xA553, 0xA554, 0xA555, 0xA556, 0xA557, 0xA558, 0xA559, /* 0xB0 */
	0xA55A, 0xA55B, 0xA55C, 0xA55D, 0xA561, 0xA562, 0xA563, 0xA564, /* 0xB0 */
	0xA565, 0xA566, 0xA567, 0xA568, 0xA569, 0xA56A, 0xA56B, 0xA56C, /* 0xC0 */
	0xA56D, 0xA56E, 0xA56F, 0xA570, 0xA571, 0xA573, 0xA574, 0xA575, /* 0xC0 */
	0xA576, 0xA577, 0xA578, 0xA579, 0xA57A, 0xA57B, 0xA57C, 0xA57D, /* 0xD0 */
	0xA581, 0xA582, 0xA583, 0xA584, 0xA585, 0xA586, 0xA587, 0xA588, /* 0xD0 */
	0xA589, 0xA58A, 0xA58B, 0xA58C, 0xA58D, 0xA58E, 0xA58F, 0xA590, /* 0xE0 */
	0xA591, 0xA593, 0xA594, 0xA595, 0xA596, 0xA597, 0xA598, 0xA599, /* 0xE0 */
	0xA59A, 0xA59B, 0xA59C, 0xA59D, 0xA5A1, 0xA5A2, 0xA5A3, 0xA5A4, /* 0xF0 */
	0xA5A5, 0xA5A6, 0xA5A7, 0xA5A8, 0xA5A9, 0xA5AA, 0xA5AB, 0xA5AC	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BD[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xA5AD, 0xA5AE, 0xA5AF, 0xA5B0, 0xA5B1, 0xA5B3, 0xA5B4, 0xA5B5, /* 0x00 */
	0xA5B6, 0xA5B7, 0xA5B8, 0xA5B9, 0xA5BA, 0xA5BB, 0xA5BC, 0xA5BD, /* 0x00 */
	0xA5C1, 0xA5C2, 0xA5C3, 0xA5C4, 0xA5C5, 0xA5C6, 0xA5C7, 0xA5C8, /* 0x10 */
	0xA5C9, 0xA5CA, 0xA5CB, 0xA5CC, 0xA5CD, 0xA5CE, 0xA5CF, 0xA5D0, /* 0x10 */
	0xA5D1, 0xA5D3, 0xA5D4, 0xA5D5, 0xA5D6, 0xA5D7, 0xA5D8, 0xA5D9, /* 0x20 */
	0xA5DA, 0xA5DB, 0xA5DC, 0xA5DD, 0xA5E1, 0xA5E2, 0xA5E3, 0xA5E4, /* 0x20 */
	0xA5E5, 0xA5E6, 0xA5E7, 0xA5E8, 0xA5E9, 0xA5EA, 0xA5EB, 0xA5EC, /* 0x30 */
	0xA5ED, 0xA5EE, 0xA5EF, 0xA5F0, 0xA5F1, 0xA5F3, 0xA5F4, 0xA5F5, /* 0x30 */
	0xA5F6, 0xA5F7, 0xA5F8, 0xA5F9, 0xA5FA, 0xA5FB, 0xA5FC, 0xA5FD, /* 0x40 */
	0xA641, 0xA642, 0xA643, 0xA644, 0xA645, 0xA646, 0xA647, 0xA648, /* 0x40 */
	0xA649, 0xA64A, 0xA64B, 0xA64C, 0xA64D, 0xA64E, 0xA64F, 0xA650, /* 0x50 */
	0xA651, 0xA653, 0xA654, 0xA655, 0xA656, 0xA657, 0xA658, 0xA659, /* 0x50 */
	0xA65A, 0xA65B, 0xA65C, 0xA65D, 0xA661, 0xA662, 0xA663, 0xA664, /* 0x60 */
	0xA665, 0xA666, 0xA667, 0xA668, 0xA669, 0xA66A, 0xA66B, 0xA66C, /* 0x60 */
	0xA66D, 0xA66E, 0xA66F, 0xA670, 0xA671, 0xA673, 0xA674, 0xA675, /* 0x70 */
	0xA676, 0xA677, 0xA678, 0xA679, 0xA67A, 0xA67B, 0xA67C, 0xA67D, /* 0x70 */
	0xA681, 0xA682, 0xA683, 0xA684, 0xA685, 0xA686, 0xA687, 0xA688, /* 0x80 */
	0xA689, 0xA68A, 0xA68B, 0xA68C, 0xA68D, 0xA68E, 0xA68F, 0xA690, /* 0x80 */
	0xA691, 0xA693, 0xA694, 0xA695, 0xA696, 0xA697, 0xA698, 0xA699, /* 0x90 */
	0xA69A, 0xA69B, 0xA69C, 0xA69D, 0xA6A1, 0xA6A2, 0xA6A3, 0xA6A4, /* 0x90 */
	0xA6A5, 0xA6A6, 0xA6A7, 0xA6A8, 0xA6A9, 0xA6AA, 0xA6AB, 0xA6AC, /* 0xA0 */
	0xA6AD, 0xA6AE, 0xA6AF, 0xA6B0, 0xA6B1, 0xA6B3, 0xA6B4, 0xA6B5, /* 0xA0 */
	0xA6B6, 0xA6B7, 0xA6B8, 0xA6B9, 0xA6BA, 0xA6BB, 0xA6BC, 0xA6BD, /* 0xB0 */
	0xA6C1, 0xA6C2, 0xA6C3, 0xA6C4, 0xA6C5, 0xA6C6, 0xA6C7, 0xA6C8, /* 0xB0 */
	0xA6C9, 0xA6CA, 0xA6CB, 0xA6CC, 0xA6CD, 0xA6CE, 0xA6CF, 0xA6D0, /* 0xC0 */
	0xA6D1, 0xA6D3, 0xA6D4, 0xA6D5, 0xA6D6, 0xA6D7, 0xA6D8, 0xA6D9, /* 0xC0 */
	0xA6DA, 0xA6DB, 0xA6DC, 0xA6DD, 0xA6E1, 0xA6E2, 0xA6E3, 0xA6E4, /* 0xD0 */
	0xA6E5, 0xA6E6, 0xA6E7, 0xA6E8, 0xA6E9, 0xA6EA, 0xA6EB, 0xA6EC, /* 0xD0 */
	0xA6ED, 0xA6EE, 0xA6EF, 0xA6F0, 0xA6F1, 0xA6F3, 0xA6F4, 0xA6F5, /* 0xE0 */
	0xA6F6, 0xA6F7, 0xA6F8, 0xA6F9, 0xA6FA, 0xA6FB, 0xA6FC, 0xA6FD, /* 0xE0 */
	0xA741, 0xA742, 0xA743, 0xA744, 0xA745, 0xA746, 0xA747, 0xA748, /* 0xF0 */
	0xA749, 0xA74A, 0xA74B, 0xA74C, 0xA74D, 0xA74E, 0xA74F, 0xA750	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BE[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xA751, 0xA753, 0xA754, 0xA755, 0xA756, 0xA757, 0xA758, 0xA759, /* 0x00 */
	0xA75A, 0xA75B, 0xA75C, 0xA75D, 0xA761, 0xA762, 0xA763, 0xA764, /* 0x00 */
	0xA765, 0xA766, 0xA767, 0xA768, 0xA769, 0xA76A, 0xA76B, 0xA76C, /* 0x10 */
	0xA76D, 0xA76E, 0xA76F, 0xA770, 0xA771, 0xA773, 0xA774, 0xA775, /* 0x10 */
	0xA776, 0xA777, 0xA778, 0xA779, 0xA77A, 0xA77B, 0xA77C, 0xA77D, /* 0x20 */
	0xA781, 0xA782, 0xA783, 0xA784, 0xA785, 0xA786, 0xA787, 0xA788, /* 0x20 */
	0xA789, 0xA78A, 0xA78B, 0xA78C, 0xA78D, 0xA78E, 0xA78F, 0xA790, /* 0x30 */
	0xA791, 0xA793, 0xA794, 0xA795, 0xA796, 0xA797, 0xA798, 0xA799, /* 0x30 */
	0xA79A, 0xA79B, 0xA79C, 0xA79D, 0xA7A1, 0xA7A2, 0xA7A3, 0xA7A4, /* 0x40 */
	0xA7A5, 0xA7A6, 0xA7A7, 0xA7A8, 0xA7A9, 0xA7AA, 0xA7AB, 0xA7AC, /* 0x40 */
	0xA7AD, 0xA7AE, 0xA7AF, 0xA7B0, 0xA7B1, 0xA7B3, 0xA7B4, 0xA7B5, /* 0x50 */
	0xA7B6, 0xA7B7, 0xA7B8, 0xA7B9, 0xA7BA, 0xA7BB, 0xA7BC, 0xA7BD, /* 0x50 */
	0xA861, 0xA862, 0xA863, 0xA864, 0xA865, 0xA866, 0xA867, 0xA868, /* 0x60 */
	0xA869, 0xA86A, 0xA86B, 0xA86C, 0xA86D, 0xA86E, 0xA86F, 0xA870, /* 0x60 */
	0xA871, 0xA873, 0xA874, 0xA875, 0xA876, 0xA877, 0xA878, 0xA879, /* 0x70 */
	0xA87A, 0xA87B, 0xA87C, 0xA87D, 0xA881, 0xA882, 0xA883, 0xA884, /* 0x70 */
	0xA885, 0xA886, 0xA887, 0xA888, 0xA889, 0xA88A, 0xA88B, 0xA88C, /* 0x80 */
	0xA88D, 0xA88E, 0xA88F, 0xA890, 0xA891, 0xA893, 0xA894, 0xA895, /* 0x80 */
	0xA896, 0xA897, 0xA898, 0xA899, 0xA89A, 0xA89B, 0xA89C, 0xA89D, /* 0x90 */
	0xA8A1, 0xA8A2, 0xA8A3, 0xA8A4, 0xA8A5, 0xA8A6, 0xA8A7, 0xA8A8, /* 0x90 */
	0xA8A9, 0xA8AA, 0xA8AB, 0xA8AC, 0xA8AD, 0xA8AE, 0xA8AF, 0xA8B0, /* 0xA0 */
	0xA8B1, 0xA8B3, 0xA8B4, 0xA8B5, 0xA8B6, 0xA8B7, 0xA8B8, 0xA8B9, /* 0xA0 */
	0xA8BA, 0xA8BB, 0xA8BC, 0xA8BD, 0xA8C1, 0xA8C2, 0xA8C3, 0xA8C4, /* 0xB0 */
	0xA8C5, 0xA8C6, 0xA8C7, 0xA8C8, 0xA8C9, 0xA8CA, 0xA8CB, 0xA8CC, /* 0xB0 */
	0xA8CD, 0xA8CE, 0xA8CF, 0xA8D0, 0xA8D1, 0xA8D3, 0xA8D4, 0xA8D5, /* 0xC0 */
	0xA8D6, 0xA8D7, 0xA8D8, 0xA8D9, 0xA8DA, 0xA8DB, 0xA8DC, 0xA8DD, /* 0xC0 */
	0xA8E1, 0xA8E2, 0xA8E3, 0xA8E4, 0xA8E5, 0xA8E6, 0xA8E7, 0xA8E8, /* 0xD0 */
	0xA8E9, 0xA8EA, 0xA8EB, 0xA8EC, 0xA8ED, 0xA8EE, 0xA8EF, 0xA8F0, /* 0xD0 */
	0xA8F1, 0xA8F3, 0xA8F4, 0xA8F5, 0xA8F6, 0xA8F7, 0xA8F8, 0xA8F9, /* 0xE0 */
	0xA8FA, 0xA8FB, 0xA8FC, 0xA8FD, 0xA941, 0xA942, 0xA943, 0xA944, /* 0xE0 */
	0xA945, 0xA946, 0xA947, 0xA948, 0xA949, 0xA94A, 0xA94B, 0xA94C, /* 0xF0 */
	0xA94D, 0xA94E, 0xA94F, 0xA950, 0xA951, 0xA953, 0xA954, 0xA955	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BF[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xA956, 0xA957, 0xA958, 0xA959, 0xA95A, 0xA95B, 0xA95C, 0xA95D, /* 0x00 */
	0xA961, 0xA962, 0xA963, 0xA964, 0xA965, 0xA966, 0xA967, 0xA968, /* 0x00 */
	0xA969, 0xA96A, 0xA96B, 0xA96C, 0xA96D, 0xA96E, 0xA96F, 0xA970, /* 0x10 */
	0xA971, 0xA973, 0xA974, 0xA975, 0xA976, 0xA977, 0xA978, 0xA979, /* 0x10 */
	0xA97A, 0xA97B, 0xA97C, 0xA97D, 0xA981, 0xA982, 0xA983, 0xA984, /* 0x20 */
	0xA985, 0xA986, 0xA987, 0xA988, 0xA989, 0xA98A, 0xA98B, 0xA98C, /* 0x20 */
	0xA98D, 0xA98E, 0xA98F, 0xA990, 0xA991, 0xA993, 0xA994, 0xA995, /* 0x30 */
	0xA996, 0xA997, 0xA998, 0xA999, 0xA99A, 0xA99B, 0xA99C, 0xA99D, /* 0x30 */
	0xA9A1, 0xA9A2, 0xA9A3, 0xA9A4, 0xA9A5, 0xA9A6, 0xA9A7, 0xA9A8, /* 0x40 */
	0xA9A9, 0xA9AA, 0xA9AB, 0xA9AC, 0xA9AD, 0xA9AE, 0xA9AF, 0xA9B0, /* 0x40 */
	0xA9B1, 0xA9B3, 0xA9B4, 0xA9B5, 0xA9B6, 0xA9B7, 0xA9B8, 0xA9B9, /* 0x50 */
	0xA9BA, 0xA9BB, 0xA9BC, 0xA9BD, 0xA9C1, 0xA9C2, 0xA9C3, 0xA9C4, /* 0x50 */
	0xA9C5, 0xA9C6, 0xA9C7, 0xA9C8, 0xA9C9, 0xA9CA, 0xA9CB, 0xA9CC, /* 0x60 */
	0xA9CD, 0xA9CE, 0xA9CF, 0xA9D0, 0xA9D1, 0xA9D3, 0xA9D4, 0xA9D5, /* 0x60 */
	0xA9D6, 0xA9D7, 0xA9D8, 0xA9D9, 0xA9DA, 0xA9DB, 0xA9DC, 0xA9DD, /* 0x70 */
	0xA9E1, 0xA9E2, 0xA9E3, 0xA9E4, 0xA9E5, 0xA9E6, 0xA9E7, 0xA9E8, /* 0x70 */
	0xA9E9, 0xA9EA, 0xA9EB, 0xA9EC, 0xA9ED, 0xA9EE, 0xA9EF, 0xA9F0, /* 0x80 */
	0xA9F1, 0xA9F3, 0xA9F4, 0xA9F5, 0xA9F6, 0xA9F7, 0xA9F8, 0xA9F9, /* 0x80 */
	0xA9FA, 0xA9FB, 0xA9FC, 0xA9FD, 0xAA41, 0xAA42, 0xAA43, 0xAA44, /* 0x90 */
	0xAA45, 0xAA46, 0xAA47, 0xAA48, 0xAA49, 0xAA4A, 0xAA4B, 0xAA4C, /* 0x90 */
	0xAA4D, 0xAA4E, 0xAA4F, 0xAA50, 0xAA51, 0xAA53, 0xAA54, 0xAA55, /* 0xA0 */
	0xAA56, 0xAA57, 0xAA58, 0xAA59, 0xAA5A, 0xAA5B, 0xAA5C, 0xAA5D, /* 0xA0 */
	0xAA61, 0xAA62, 0xAA63, 0xAA64, 0xAA65, 0xAA66, 0xAA67, 0xAA68, /* 0xB0 */
	0xAA69, 0xAA6A, 0xAA6B, 0xAA6C, 0xAA6D, 0xAA6E, 0xAA6F, 0xAA70, /* 0xB0 */
	0xAA71, 0xAA73, 0xAA74, 0xAA75, 0xAA76, 0xAA77, 0xAA78, 0xAA79, /* 0xC0 */
	0xAA7A, 0xAA7B, 0xAA7C, 0xAA7D, 0xAA81, 0xAA82, 0xAA83, 0xAA84, /* 0xC0 */
	0xAA85, 0xAA86, 0xAA87, 0xAA88, 0xAA89, 0xAA8A, 0xAA8B, 0xAA8C, /* 0xD0 */
	0xAA8D, 0xAA8E, 0xAA8F, 0xAA90, 0xAA91, 0xAA93, 0xAA94, 0xAA95, /* 0xD0 */
	0xAA96, 0xAA97, 0xAA98, 0xAA99, 0xAA9A, 0xAA9B, 0xAA9C, 0xAA9D, /* 0xE0 */
	0xAAA1, 0xAAA2, 0xAAA3, 0xAAA4, 0xAAA5, 0xAAA6, 0xAAA7, 0xAAA8, /* 0xE0 */
	0xAAA9, 0xAAAA, 0xAAAB, 0xAAAC, 0xAAAD, 0xAAAE, 0xAAAF, 0xAAB0, /* 0xF0 */
	0xAAB1, 0xAAB3, 0xAAB4, 0xAAB5, 0xAAB6, 0xAAB7, 0xAAB8, 0xAAB9	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C0[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xAABA, 0xAABB, 0xAABC, 0xAABD, 0xAAC1, 0xAAC2, 0xAAC3, 0xAAC4, /* 0x00 */
	0xAAC5, 0xAAC6, 0xAAC7, 0xAAC8, 0xAAC9, 0xAACA, 0xAACB, 0xAACC, /* 0x00 */
	0xAACD, 0xAACE, 0xAACF, 0xAAD0, 0xAAD1, 0xAAD3, 0xAAD4, 0xAAD5, /* 0x10 */
	0xAAD6, 0xAAD7, 0xAAD8, 0xAAD9, 0xAADA, 0xAADB, 0xAADC, 0xAADD, /* 0x10 */
	0xAAE1, 0xAAE2, 0xAAE3, 0xAAE4, 0xAAE5, 0xAAE6, 0xAAE7, 0xAAE8, /* 0x20 */
	0xAAE9, 0xAAEA, 0xAAEB, 0xAAEC, 0xAAED, 0xAAEE, 0xAAEF, 0xAAF0, /* 0x20 */
	0xAAF1, 0xAAF3, 0xAAF4, 0xAAF5, 0xAAF6, 0xAAF7, 0xAAF8, 0xAAF9, /* 0x30 */
	0xAAFA, 0xAAFB, 0xAAFC, 0xAAFD, 0xAB41, 0xAB42, 0xAB43, 0xAB44, /* 0x30 */
	0xAB45, 0xAB46, 0xAB47, 0xAB48, 0xAB49, 0xAB4A, 0xAB4B, 0xAB4C, /* 0x40 */
	0xAB4D, 0xAB4E, 0xAB4F, 0xAB50, 0xAB51, 0xAB53, 0xAB54, 0xAB55, /* 0x40 */
	0xAB56, 0xAB57, 0xAB58, 0xAB59, 0xAB5A, 0xAB5B, 0xAB5C, 0xAB5D, /* 0x50 */
	0xAB61, 0xAB62, 0xAB63, 0xAB64, 0xAB65, 0xAB66, 0xAB67, 0xAB68, /* 0x50 */
	0xAB69, 0xAB6A, 0xAB6B, 0xAB6C, 0xAB6D, 0xAB6E, 0xAB6F, 0xAB70, /* 0x60 */
	0xAB71, 0xAB73, 0xAB74, 0xAB75, 0xAB76, 0xAB77, 0xAB78, 0xAB79, /* 0x60 */
	0xAB7A, 0xAB7B, 0xAB7C, 0xAB7D, 0xAB81, 0xAB82, 0xAB83, 0xAB84, /* 0x70 */
	0xAB85, 0xAB86, 0xAB87, 0xAB88, 0xAB89, 0xAB8A, 0xAB8B, 0xAB8C, /* 0x70 */
	0xAB8D, 0xAB8E, 0xAB8F, 0xAB90, 0xAB91, 0xAB93, 0xAB94, 0xAB95, /* 0x80 */
	0xAB96, 0xAB97, 0xAB98, 0xAB99, 0xAB9A, 0xAB9B, 0xAB9C, 0xAB9D, /* 0x80 */
	0xABA1, 0xABA2, 0xABA3, 0xABA4, 0xABA5, 0xABA6, 0xABA7, 0xABA8, /* 0x90 */
	0xABA9, 0xABAA, 0xABAB, 0xABAC, 0xABAD, 0xABAE, 0xABAF, 0xABB0, /* 0x90 */
	0xABB1, 0xABB3, 0xABB4, 0xABB5, 0xABB6, 0xABB7, 0xABB8, 0xABB9, /* 0xA0 */
	0xABBA, 0xABBB, 0xABBC, 0xABBD, 0xAC61, 0xAC62, 0xAC63, 0xAC64, /* 0xA0 */
	0xAC65, 0xAC66, 0xAC67, 0xAC68, 0xAC69, 0xAC6A, 0xAC6B, 0xAC6C, /* 0xB0 */
	0xAC6D, 0xAC6E, 0xAC6F, 0xAC70, 0xAC71, 0xAC73, 0xAC74, 0xAC75, /* 0xB0 */
	0xAC76, 0xAC77, 0xAC78, 0xAC79, 0xAC7A, 0xAC7B, 0xAC7C, 0xAC7D, /* 0xC0 */
	0xAC81, 0xAC82, 0xAC83, 0xAC84, 0xAC85, 0xAC86, 0xAC87, 0xAC88, /* 0xC0 */
	0xAC89, 0xAC8A, 0xAC8B, 0xAC8C, 0xAC8D, 0xAC8E, 0xAC8F, 0xAC90, /* 0xD0 */
	0xAC91, 0xAC93, 0xAC94, 0xAC95, 0xAC96, 0xAC97, 0xAC98, 0xAC99, /* 0xD0 */
	0xAC9A, 0xAC9B, 0xAC9C, 0xAC9D, 0xACA1, 0xACA2, 0xACA3, 0xACA4, /* 0xE0 */
	0xACA5, 0xACA6, 0xACA7, 0xACA8, 0xACA9, 0xACAA, 0xACAB, 0xACAC, /* 0xE0 */
	0xACAD, 0xACAE, 0xACAF, 0xACB0, 0xACB1, 0xACB3, 0xACB4, 0xACB5, /* 0xF0 */
	0xACB6, 0xACB7, 0xACB8, 0xACB9, 0xACBA, 0xACBB, 0xACBC, 0xACBD	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C1[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xACC1, 0xACC2, 0xACC3, 0xACC4, 0xACC5, 0xACC6, 0xACC7, 0xACC8, /* 0x00 */
	0xACC9, 0xACCA, 0xACCB, 0xACCC, 0xACCD, 0xACCE, 0xACCF, 0xACD0, /* 0x00 */
	0xACD1, 0xACD3, 0xACD4, 0xACD5, 0xACD6, 0xACD7, 0xACD8, 0xACD9, /* 0x10 */
	0xACDA, 0xACDB, 0xACDC, 0xACDD, 0xACE1, 0xACE2, 0xACE3, 0xACE4, /* 0x10 */
	0xACE5, 0xACE6, 0xACE7, 0xACE8, 0xACE9, 0xACEA, 0xACEB, 0xACEC, /* 0x20 */
	0xACED, 0xACEE, 0xACEF, 0xACF0, 0xACF1, 0xACF3, 0xACF4, 0xACF5, /* 0x20 */
	0xACF6, 0xACF7, 0xACF8, 0xACF9, 0xACFA, 0xACFB, 0xACFC, 0xACFD, /* 0x30 */
	0xAD41, 0xAD42, 0xAD43, 0xAD44, 0xAD45, 0xAD46, 0xAD47, 0xAD48, /* 0x30 */
	0xAD49, 0xAD4A, 0xAD4B, 0xAD4C, 0xAD4D, 0xAD4E, 0xAD4F, 0xAD50, /* 0x40 */
	0xAD51, 0xAD53, 0xAD54, 0xAD55, 0xAD56, 0xAD57, 0xAD58, 0xAD59, /* 0x40 */
	0xAD5A, 0xAD5B, 0xAD5C, 0xAD5D, 0xAD61, 0xAD62, 0xAD63, 0xAD64, /* 0x50 */
	0xAD65, 0xAD66, 0xAD67, 0xAD68, 0xAD69, 0xAD6A, 0xAD6B, 0xAD6C, /* 0x50 */
	0xAD6D, 0xAD6E, 0xAD6F, 0xAD70, 0xAD71, 0xAD73, 0xAD74, 0xAD75, /* 0x60 */
	0xAD76, 0xAD77, 0xAD78, 0xAD79, 0xAD7A, 0xAD7B, 0xAD7C, 0xAD7D, /* 0x60 */
	0xAD81, 0xAD82, 0xAD83, 0xAD84, 0xAD85, 0xAD86, 0xAD87, 0xAD88, /* 0x70 */
	0xAD89, 0xAD8A, 0xAD8B, 0xAD8C, 0xAD8D, 0xAD8E, 0xAD8F, 0xAD90, /* 0x70 */
	0xAD91, 0xAD93, 0xAD94, 0xAD95, 0xAD96, 0xAD97, 0xAD98, 0xAD99, /* 0x80 */
	0xAD9A, 0xAD9B, 0xAD9C, 0xAD9D, 0xADA1, 0xADA2, 0xADA3, 0xADA4, /* 0x80 */
	0xADA5, 0xADA6, 0xADA7, 0xADA8, 0xADA9, 0xADAA, 0xADAB, 0xADAC, /* 0x90 */
	0xADAD, 0xADAE, 0xADAF, 0xADB0, 0xADB1, 0xADB3, 0xADB4, 0xADB5, /* 0x90 */
	0xADB6, 0xADB7, 0xADB8, 0xADB9, 0xADBA, 0xADBB, 0xADBC, 0xADBD, /* 0xA0 */
	0xADC1, 0xADC2, 0xADC3, 0xADC4, 0xADC5, 0xADC6, 0xADC7, 0xADC8, /* 0xA0 */
	0xADC9, 0xADCA, 0xADCB, 0xADCC, 0xADCD, 0xADCE, 0xADCF, 0xADD0, /* 0xB0 */
	0xADD1, 0xADD3, 0xADD4, 0xADD5, 0xADD6, 0xADD7, 0xADD8, 0xADD9, /* 0xB0 */
	0xADDA, 0xADDB, 0xADDC, 0xADDD, 0xADE1, 0xADE2, 0xADE3, 0xADE4, /* 0xC0 */
	0xADE5, 0xADE6, 0xADE7, 0xADE8, 0xADE9, 0xADEA, 0xADEB, 0xADEC, /* 0xC0 */
	0xADED, 0xADEE, 0xADEF, 0xADF0, 0xADF1, 0xADF3, 0xADF4, 0xADF5, /* 0xD0 */
	0xADF6, 0xADF7, 0xADF8, 0xADF9, 0xADFA, 0xADFB, 0xADFC, 0xADFD, /* 0xD0 */
	0xAE41, 0xAE42, 0xAE43, 0xAE44, 0xAE45, 0xAE46, 0xAE47, 0xAE48, /* 0xE0 */
	0xAE49, 0xAE4A, 0xAE4B, 0xAE4C, 0xAE4D, 0xAE4E, 0xAE4F, 0xAE50, /* 0xE0 */
	0xAE51, 0xAE53, 0xAE54, 0xAE55, 0xAE56, 0xAE57, 0xAE58, 0xAE59, /* 0xF0 */
	0xAE5A, 0xAE5B, 0xAE5C, 0xAE5D, 0xAE61, 0xAE62, 0xAE63, 0xAE64	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C2[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xAE65, 0xAE66, 0xAE67, 0xAE68, 0xAE69, 0xAE6A, 0xAE6B, 0xAE6C, /* 0x00 */
	0xAE6D, 0xAE6E, 0xAE6F, 0xAE70, 0xAE71, 0xAE73, 0xAE74, 0xAE75, /* 0x00 */
	0xAE76, 0xAE77, 0xAE78, 0xAE79, 0xAE7A, 0xAE7B, 0xAE7C, 0xAE7D, /* 0x10 */
	0xAE81, 0xAE82, 0xAE83, 0xAE84, 0xAE85, 0xAE86, 0xAE87, 0xAE88, /* 0x10 */
	0xAE89, 0xAE8A, 0xAE8B, 0xAE8C, 0xAE8D, 0xAE8E, 0xAE8F, 0xAE90, /* 0x20 */
	0xAE91, 0xAE93, 0xAE94, 0xAE95, 0xAE96, 0xAE97, 0xAE98, 0xAE99, /* 0x20 */
	0xAE9A, 0xAE9B, 0xAE9C, 0xAE9D, 0xAEA1, 0xAEA2, 0xAEA3, 0xAEA4, /* 0x30 */
	0xAEA5, 0xAEA6, 0xAEA7, 0xAEA8, 0xAEA9, 0xAEAA, 0xAEAB, 0xAEAC, /* 0x30 */
	0xAEAD, 0xAEAE, 0xAEAF, 0xAEB0, 0xAEB1, 0xAEB3, 0xAEB4, 0xAEB5, /* 0x40 */
	0xAEB6, 0xAEB7, 0xAEB8, 0xAEB9, 0xAEBA, 0xAEBB, 0xAEBC, 0xAEBD, /* 0x40 */
	0xAEC1, 0xAEC2, 0xAEC3, 0xAEC4, 0xAEC5, 0xAEC6, 0xAEC7, 0xAEC8, /* 0x50 */
	0xAEC9, 0xAECA, 0xAECB, 0xAECC, 0xAECD, 0xAECE, 0xAECF, 0xAED0, /* 0x50 */
	0xAED1, 0xAED3, 0xAED4, 0xAED5, 0xAED6, 0xAED7, 0xAED8, 0xAED9, /* 0x60 */
	0xAEDA, 0xAEDB, 0xAEDC, 0xAEDD, 0xAEE1, 0xAEE2, 0xAEE3, 0xAEE4, /* 0x60 */
	0xAEE5, 0xAEE6, 0xAEE7, 0xAEE8, 0xAEE9, 0xAEEA, 0xAEEB, 0xAEEC, /* 0x70 */
	0xAEED, 0xAEEE, 0xAEEF, 0xAEF0, 0xAEF1, 0xAEF3, 0xAEF4, 0xAEF5, /* 0x70 */
	0xAEF6, 0xAEF7, 0xAEF8, 0xAEF9, 0xAEFA, 0xAEFB, 0xAEFC, 0xAEFD, /* 0x80 */
	0xAF41, 0xAF42, 0xAF43, 0xAF44, 0xAF45, 0xAF46, 0xAF47, 0xAF48, /* 0x80 */
	0xAF49, 0xAF4A, 0xAF4B, 0xAF4C, 0xAF4D, 0xAF4E, 0xAF4F, 0xAF50, /* 0x90 */
	0xAF51, 0xAF53, 0xAF54, 0xAF55, 0xAF56, 0xAF57, 0xAF58, 0xAF59, /* 0x90 */
	0xAF5A, 0xAF5B, 0xAF5C, 0xAF5D, 0xAF61, 0xAF62, 0xAF63, 0xAF64, /* 0xA0 */
	0xAF65, 0xAF66, 0xAF67, 0xAF68, 0xAF69, 0xAF6A, 0xAF6B, 0xAF6C, /* 0xA0 */
	0xAF6D, 0xAF6E, 0xAF6F, 0xAF70, 0xAF71, 0xAF73, 0xAF74, 0xAF75, /* 0xB0 */
	0xAF76, 0xAF77, 0xAF78, 0xAF79, 0xAF7A, 0xAF7B, 0xAF7C, 0xAF7D, /* 0xB0 */
	0xAF81, 0xAF82, 0xAF83, 0xAF84, 0xAF85, 0xAF86, 0xAF87, 0xAF88, /* 0xC0 */
	0xAF89, 0xAF8A, 0xAF8B, 0xAF8C, 0xAF8D, 0xAF8E, 0xAF8F, 0xAF90, /* 0xC0 */
	0xAF91, 0xAF93, 0xAF94, 0xAF95, 0xAF96, 0xAF97, 0xAF98, 0xAF99, /* 0xD0 */
	0xAF9A, 0xAF9B, 0xAF9C, 0xAF9D, 0xAFA1, 0xAFA2, 0xAFA3, 0xAFA4, /* 0xD0 */
	0xAFA5, 0xAFA6, 0xAFA7, 0xAFA8, 0xAFA9, 0xAFAA, 0xAFAB, 0xAFAC, /* 0xE0 */
	0xAFAD, 0xAFAE, 0xAFAF, 0xAFB0, 0xAFB1, 0xAFB3, 0xAFB4, 0xAFB5, /* 0xE0 */
	0xAFB6, 0xAFB7, 0xAFB8, 0xAFB9, 0xAFBA, 0xAFBB, 0xAFBC, 0xAFBD, /* 0xF0 */
	0xB061, 0xB062, 0xB063, 0xB064, 0xB065, 0xB066, 0xB067, 0xB068	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C3[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xB069, 0xB06A, 0xB06B, 0xB06C, 0xB06D, 0xB06E, 0xB06F, 0xB070, /* 0x00 */
	0xB071, 0xB073, 0xB074, 0xB075, 0xB076, 0xB077, 0xB078, 0xB079, /* 0x00 */
	0xB07A, 0xB07B, 0xB07C, 0xB07D, 0xB081, 0xB082, 0xB083, 0xB084, /* 0x10 */
	0xB085, 0xB086, 0xB087, 0xB088, 0xB089, 0xB08A, 0xB08B, 0xB08C, /* 0x10 */
	0xB08D, 0xB08E, 0xB08F, 0xB090, 0xB091, 0xB093, 0xB094, 0xB095, /* 0x20 */
	0xB096, 0xB097, 0xB098, 0xB099, 0xB09A, 0xB09B, 0xB09C, 0xB09D, /* 0x20 */
	0xB0A1, 0xB0A2, 0xB0A3, 0xB0A4, 0xB0A5, 0xB0A6, 0xB0A7, 0xB0A8, /* 0x30 */
	0xB0A9, 0xB0AA, 0xB0AB, 0xB0AC, 0xB0AD, 0xB0AE, 0xB0AF, 0xB0B0, /* 0x30 */
	0xB0B1, 0xB0B3, 0xB0B4, 0xB0B5, 0xB0B6, 0xB0B7, 0xB0B8, 0xB0B9, /* 0x40 */
	0xB0BA, 0xB0BB, 0xB0BC, 0xB0BD, 0xB0C1, 0xB0C2, 0xB0C3, 0xB0C4, /* 0x40 */
	0xB0C5, 0xB0C6, 0xB0C7, 0xB0C8, 0xB0C9, 0xB0CA, 0xB0CB, 0xB0CC, /* 0x50 */
	0xB0CD, 0xB0CE, 0xB0CF, 0xB0D0, 0xB0D1, 0xB0D3, 0xB0D4, 0xB0D5, /* 0x50 */
	0xB0D6, 0xB0D7, 0xB0D8, 0xB0D9, 0xB0DA, 0xB0DB, 0xB0DC, 0xB0DD, /* 0x60 */
	0xB0E1, 0xB0E2, 0xB0E3, 0xB0E4, 0xB0E5, 0xB0E6, 0xB0E7, 0xB0E8, /* 0x60 */
	0xB0E9, 0xB0EA, 0xB0EB, 0xB0EC, 0xB0ED, 0xB0EE, 0xB0EF, 0xB0F0, /* 0x70 */
	0xB0F1, 0xB0F3, 0xB0F4, 0xB0F5, 0xB0F6, 0xB0F7, 0xB0F8, 0xB0F9, /* 0x70 */
	0xB0FA, 0xB0FB, 0xB0FC, 0xB0FD, 0xB141, 0xB142, 0xB143, 0xB144, /* 0x80 */
	0xB145, 0xB146, 0xB147, 0xB148, 0xB149, 0xB14A, 0xB14B, 0xB14C, /* 0x80 */
	0xB14D, 0xB14E, 0xB14F, 0xB150, 0xB151, 0xB153, 0xB154, 0xB155, /* 0x90 */
	0xB156, 0xB157, 0xB158, 0xB159, 0xB15A, 0xB15B, 0xB15C, 0xB15D, /* 0x90 */
	0xB161, 0xB162, 0xB163, 0xB164, 0xB165, 0xB166, 0xB167, 0xB168, /* 0xA0 */
	0xB169, 0xB16A, 0xB16B, 0xB16C, 0xB16D, 0xB16E, 0xB16F, 0xB170, /* 0xA0 */
	0xB171, 0xB173, 0xB174, 0xB175, 0xB176, 0xB177, 0xB178, 0xB179, /* 0xB0 */
	0xB17A, 0xB17B, 0xB17C, 0xB17D, 0xB181, 0xB182, 0xB183, 0xB184, /* 0xB0 */
	0xB185, 0xB186, 0xB187, 0xB188, 0xB189, 0xB18A, 0xB18B, 0xB18C, /* 0xC0 */
	0xB18D, 0xB18E, 0xB18F, 0xB190, 0xB191, 0xB193, 0xB194, 0xB195, /* 0xC0 */
	0xB196, 0xB197, 0xB198, 0xB199, 0xB19A, 0xB19B, 0xB19C, 0xB19D, /* 0xD0 */
	0xB1A1, 0xB1A2, 0xB1A3, 0xB1A4, 0xB1A5, 0xB1A6, 0xB1A7, 0xB1A8, /* 0xD0 */
	0xB1A9, 0xB1AA, 0xB1AB, 0xB1AC, 0xB1AD, 0xB1AE, 0xB1AF, 0xB1B0, /* 0xE0 */
	0xB1B1, 0xB1B3, 0xB1B4, 0xB1B5, 0xB1B6, 0xB1B7, 0xB1B8, 0xB1B9, /* 0xE0 */
	0xB1BA, 0xB1BB, 0xB1BC, 0xB1BD, 0xB1C1, 0xB1C2, 0xB1C3, 0xB1C4, /* 0xF0 */
	0xB1C5, 0xB1C6, 0xB1C7, 0xB1C8, 0xB1C9, 0xB1CA, 0xB1CB, 0xB1CC	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C4[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xB1CD, 0xB1CE, 0xB1CF, 0xB1D0, 0xB1D1, 0xB1D3, 0xB1D4, 0xB1D5, /* 0x00 */
	0xB1D6, 0xB1D7, 0xB1D8, 0xB1D9, 0xB1DA, 0xB1DB, 0xB1DC, 0xB1DD, /* 0x00 */
	0xB1E1, 0xB1E2, 0xB1E3, 0xB1E4, 0xB1E5, 0xB1E6, 0xB1E7, 0xB1E8, /* 0x10 */
	0xB1E9, 0xB1EA, 0xB1EB, 0xB1EC, 0xB1ED, 0xB1EE, 0xB1EF, 0xB1F0, /* 0x10 */
	0xB1F1, 0xB1F3, 0xB1F4, 0xB1F5, 0xB1F6, 0xB1F7, 0xB1F8, 0xB1F9, /* 0x20 */
	0xB1FA, 0xB1FB, 0xB1FC, 0xB1FD, 0xB241, 0xB242, 0xB243, 0xB244, /* 0x20 */
	0xB245, 0xB246, 0xB247, 0xB248, 0xB249, 0xB24A, 0xB24B, 0xB24C, /* 0x30 */
	0xB24D, 0xB24E, 0xB24F, 0xB250, 0xB251, 0xB253, 0xB254, 0xB255, /* 0x30 */
	0xB256, 0xB257, 0xB258, 0xB259, 0xB25A, 0xB25B, 0xB25C, 0xB25D, /* 0x40 */
	0xB261, 0xB262, 0xB263, 0xB264, 0xB265, 0xB266, 0xB267, 0xB268, /* 0x40 */
	0xB269, 0xB26A, 0xB26B, 0xB26C, 0xB26D, 0xB26E, 0xB26F, 0xB270, /* 0x50 */
	0xB271, 0xB273, 0xB274, 0xB275, 0xB276, 0xB277, 0xB278, 0xB279, /* 0x50 */
	0xB27A, 0xB27B, 0xB27C, 0xB27D, 0xB281, 0xB282, 0xB283, 0xB284, /* 0x60 */
	0xB285, 0xB286, 0xB287, 0xB288, 0xB289, 0xB28A, 0xB28B, 0xB28C, /* 0x60 */
	0xB28D, 0xB28E, 0xB28F, 0xB290, 0xB291, 0xB293, 0xB294, 0xB295, /* 0x70 */
	0xB296, 0xB297, 0xB298, 0xB299, 0xB29A, 0xB29B, 0xB29C, 0xB29D, /* 0x70 */
	0xB2A1, 0xB2A2, 0xB2A3, 0xB2A4, 0xB2A5, 0xB2A6, 0xB2A7, 0xB2A8, /* 0x80 */
	0xB2A9, 0xB2AA, 0xB2AB, 0xB2AC, 0xB2AD, 0xB2AE, 0xB2AF, 0xB2B0, /* 0x80 */
	0xB2B1, 0xB2B3, 0xB2B4, 0xB2B5, 0xB2B6, 0xB2B7, 0xB2B8, 0xB2B9, /* 0x90 */
	0xB2BA, 0xB2BB, 0xB2BC, 0xB2BD, 0xB2C1, 0xB2C2, 0xB2C3, 0xB2C4, /* 0x90 */
	0xB2C5, 0xB2C6, 0xB2C7, 0xB2C8, 0xB2C9, 0xB2CA, 0xB2CB, 0xB2CC, /* 0xA0 */
	0xB2CD, 0xB2CE, 0xB2CF, 0xB2D0, 0xB2D1, 0xB2D3, 0xB2D4, 0xB2D5, /* 0xA0 */
	0xB2D6, 0xB2D7, 0xB2D8, 0xB2D9, 0xB2DA, 0xB2DB, 0xB2DC, 0xB2DD, /* 0xB0 */
	0xB2E1, 0xB2E2, 0xB2E3, 0xB2E4, 0xB2E5, 0xB2E6, 0xB2E7, 0xB2E8, /* 0xB0 */
	0xB2E9, 0xB2EA, 0xB2EB, 0xB2EC, 0xB2ED, 0xB2EE, 0xB2EF, 0xB2F0, /* 0xC0 */
	0xB2F1, 0xB2F3, 0xB2F4, 0xB2F5, 0xB2F6, 0xB2F7, 0xB2F8, 0xB2F9, /* 0xC0 */
	0xB2FA, 0xB2FB, 0xB2FC, 0xB2FD, 0xB341, 0xB342, 0xB343, 0xB344, /* 0xD0 */
	0xB345, 0xB346, 0xB347, 0xB348, 0xB349, 0xB34A, 0xB34B, 0xB34C, /* 0xD0 */
	0xB34D, 0xB34E, 0xB34F, 0xB350, 0xB351, 0xB353, 0xB354, 0xB355, /* 0xE0 */
	0xB356, 0xB357, 0xB358, 0xB359, 0xB35A, 0xB35B, 0xB35C, 0xB35D, /* 0xE0 */
	0xB361, 0xB362, 0xB363, 0xB364, 0xB365, 0xB366, 0xB367, 0xB368, /* 0xF0 */
	0xB369, 0xB36A, 0xB36B, 0xB36C, 0xB36D, 0xB36E, 0xB36F, 0xB370	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C5[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xB371, 0xB373, 0xB374, 0xB375, 0xB376, 0xB377, 0xB378, 0xB379, /* 0x00 */
	0xB37A, 0xB37B, 0xB37C, 0xB37D, 0xB381, 0xB382, 0xB383, 0xB384, /* 0x00 */
	0xB385, 0xB386, 0xB387, 0xB388, 0xB389, 0xB38A, 0xB38B, 0xB38C, /* 0x10 */
	0xB38D, 0xB38E, 0xB38F, 0xB390, 0xB391, 0xB393, 0xB394, 0xB395, /* 0x10 */
	0xB396, 0xB397, 0xB398, 0xB399, 0xB39A, 0xB39B, 0xB39C, 0xB39D, /* 0x20 */
	0xB3A1, 0xB3A2, 0xB3A3, 0xB3A4, 0xB3A5, 0xB3A6, 0xB3A7, 0xB3A8, /* 0x20 */
	0xB3A9, 0xB3AA, 0xB3AB, 0xB3AC, 0xB3AD, 0xB3AE, 0xB3AF, 0xB3B0, /* 0x30 */
	0xB3B1, 0xB3B3, 0xB3B4, 0xB3B5, 0xB3B6, 0xB3B7, 0xB3B8, 0xB3B9, /* 0x30 */
	0xB3BA, 0xB3BB, 0xB3BC, 0xB3BD, 0xB461, 0xB462, 0xB463, 0xB464, /* 0x40 */
	0xB465, 0xB466, 0xB467, 0xB468, 0xB469, 0xB46A, 0xB46B, 0xB46C, /* 0x40 */
	0xB46D, 0xB46E, 0xB46F, 0xB470, 0xB471, 0xB473, 0xB474, 0xB475, /* 0x50 */
	0xB476, 0xB477, 0xB478, 0xB479, 0xB47A, 0xB47B, 0xB47C, 0xB47D, /* 0x50 */
	0xB481, 0xB482, 0xB483, 0xB484, 0xB485, 0xB486, 0xB487, 0xB488, /* 0x60 */
	0xB489, 0xB48A, 0xB48B, 0xB48C, 0xB48D, 0xB48E, 0xB48F, 0xB490, /* 0x60 */
	0xB491, 0xB493, 0xB494, 0xB495, 0xB496, 0xB497, 0xB498, 0xB499, /* 0x70 */
	0xB49A, 0xB49B, 0xB49C, 0xB49D, 0xB4A1, 0xB4A2, 0xB4A3, 0xB4A4, /* 0x70 */
	0xB4A5, 0xB4A6, 0xB4A7, 0xB4A8, 0xB4A9, 0xB4AA, 0xB4AB, 0xB4AC, /* 0x80 */
	0xB4AD, 0xB4AE, 0xB4AF, 0xB4B0, 0xB4B1, 0xB4B3, 0xB4B4, 0xB4B5, /* 0x80 */
	0xB4B6, 0xB4B7, 0xB4B8, 0xB4B9, 0xB4BA, 0xB4BB, 0xB4BC, 0xB4BD, /* 0x90 */
	0xB4C1, 0xB4C2, 0xB4C3, 0xB4C4, 0xB4C5, 0xB4C6, 0xB4C7, 0xB4C8, /* 0x90 */
	0xB4C9, 0xB4CA, 0xB4CB, 0xB4CC, 0xB4CD, 0xB4CE, 0xB4CF, 0xB4D0, /* 0xA0 */
	0xB4D1, 0xB4D3, 0xB4D4, 0xB4D5, 0xB4D6, 0xB4D7, 0xB4D8, 0xB4D9, /* 0xA0 */
	0xB4DA, 0xB4DB, 0xB4DC, 0xB4DD, 0xB4E1, 0xB4E2, 0xB4E3, 0xB4E4, /* 0xB0 */
	0xB4E5, 0xB4E6, 0xB4E7, 0xB4E8, 0xB4E9, 0xB4EA, 0xB4EB, 0xB4EC, /* 0xB0 */
	0xB4ED, 0xB4EE, 0xB4EF, 0xB4F0, 0xB4F1, 0xB4F3, 0xB4F4, 0xB4F5, /* 0xC0 */
	0xB4F6, 0xB4F7, 0xB4F8, 0xB4F9, 0xB4FA, 0xB4FB, 0xB4FC, 0xB4FD, /* 0xC0 */
	0xB541, 0xB542, 0xB543, 0xB544, 0xB545, 0xB546, 0xB547, 0xB548, /* 0xD0 */
	0xB549, 0xB54A, 0xB54B, 0xB54C, 0xB54D, 0xB54E, 0xB54F, 0xB550, /* 0xD0 */
	0xB551, 0xB553, 0xB554, 0xB555, 0xB556, 0xB557, 0xB558, 0xB559, /* 0xE0 */
	0xB55A, 0xB55B, 0xB55C, 0xB55D, 0xB561, 0xB562, 0xB563, 0xB564, /* 0xE0 */
	0xB565, 0xB566, 0xB567, 0xB568, 0xB569, 0xB56A, 0xB56B, 0xB56C, /* 0xF0 */
	0xB56D, 0xB56E, 0xB56F, 0xB570, 0xB571, 0xB573, 0xB574, 0xB575	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C6[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xB576, 0xB577, 0xB578, 0xB579, 0xB57A, 0xB57B, 0xB57C, 0xB57D, /* 0x00 */
	0xB581, 0xB582, 0xB583, 0xB584, 0xB585, 0xB586, 0xB587, 0xB588, /* 0x00 */
	0xB589, 0xB58A, 0xB58B, 0xB58C, 0xB58D, 0xB58E, 0xB58F, 0xB590, /* 0x10 */
	0xB591, 0xB593, 0xB594, 0xB595, 0xB596, 0xB597, 0xB598, 0xB599, /* 0x10 */
	0xB59A, 0xB59B, 0xB59C, 0xB59D, 0xB5A1, 0xB5A2, 0xB5A3, 0xB5A4, /* 0x20 */
	0xB5A5, 0xB5A6, 0xB5A7, 0xB5A8, 0xB5A9, 0xB5AA, 0xB5AB, 0xB5AC, /* 0x20 */
	0xB5AD, 0xB5AE, 0xB5AF, 0xB5B0, 0xB5B1, 0xB5B3, 0xB5B4, 0xB5B5, /* 0x30 */
	0xB5B6, 0xB5B7, 0xB5B8, 0xB5B9, 0xB5BA, 0xB5BB, 0xB5BC, 0xB5BD, /* 0x30 */
	0xB5C1, 0xB5C2, 0xB5C3, 0xB5C4, 0xB5C5, 0xB5C6, 0xB5C7, 0xB5C8, /* 0x40 */
	0xB5C9, 0xB5CA, 0xB5CB, 0xB5CC, 0xB5CD, 0xB5CE, 0xB5CF, 0xB5D0, /* 0x40 */
	0xB5D1, 0xB5D3, 0xB5D4, 0xB5D5, 0xB5D6, 0xB5D7, 0xB5D8, 0xB5D9, /* 0x50 */
	0xB5DA, 0xB5DB, 0xB5DC, 0xB5DD, 0xB5E1, 0xB5E2, 0xB5E3, 0xB5E4, /* 0x50 */
	0xB5E5, 0xB5E6, 0xB5E7, 0xB5E8, 0xB5E9, 0xB5EA, 0xB5EB, 0xB5EC, /* 0x60 */
	0xB5ED, 0xB5EE, 0xB5EF, 0xB5F0, 0xB5F1, 0xB5F3, 0xB5F4, 0xB5F5, /* 0x60 */
	0xB5F6, 0xB5F7, 0xB5F8, 0xB5F9, 0xB5FA, 0xB5FB, 0xB5FC, 0xB5FD, /* 0x70 */
	0xB641, 0xB642, 0xB643, 0xB644, 0xB645, 0xB646, 0xB647, 0xB648, /* 0x70 */
	0xB649, 0xB64A, 0xB64B, 0xB64C, 0xB64D, 0xB64E, 0xB64F, 0xB650, /* 0x80 */
	0xB651, 0xB653, 0xB654, 0xB655, 0xB656, 0xB657, 0xB658, 0xB659, /* 0x80 */
	0xB65A, 0xB65B, 0xB65C, 0xB65D, 0xB661, 0xB662, 0xB663, 0xB664, /* 0x90 */
	0xB665, 0xB666, 0xB667, 0xB668, 0xB669, 0xB66A, 0xB66B, 0xB66C, /* 0x90 */
	0xB66D, 0xB66E, 0xB66F, 0xB670, 0xB671, 0xB673, 0xB674, 0xB675, /* 0xA0 */
	0xB676, 0xB677, 0xB678, 0xB679, 0xB67A, 0xB67B, 0xB67C, 0xB67D, /* 0xA0 */
	0xB681, 0xB682, 0xB683, 0xB684, 0xB685, 0xB686, 0xB687, 0xB688, /* 0xB0 */
	0xB689, 0xB68A, 0xB68B, 0xB68C, 0xB68D, 0xB68E, 0xB68F, 0xB690, /* 0xB0 */
	0xB691, 0xB693, 0xB694, 0xB695, 0xB696, 0xB697, 0xB698, 0xB699, /* 0xC0 */
	0xB69A, 0xB69B, 0xB69C, 0xB69D, 0xB6A1, 0xB6A2, 0xB6A3, 0xB6A4, /* 0xC0 */
	0xB6A5, 0xB6A6, 0xB6A7, 0xB6A8, 0xB6A9, 0xB6AA, 0xB6AB, 0xB6AC, /* 0xD0 */
	0xB6AD, 0xB6AE, 0xB6AF, 0xB6B0, 0xB6B1, 0xB6B3, 0xB6B4, 0xB6B5, /* 0xD0 */
	0xB6B6, 0xB6B7, 0xB6B8, 0xB6B9, 0xB6BA, 0xB6BB, 0xB6BC, 0xB6BD, /* 0xE0 */
	0xB6C1, 0xB6C2, 0xB6C3, 0xB6C4, 0xB6C5, 0xB6C6, 0xB6C7, 0xB6C8, /* 0xE0 */
	0xB6C9, 0xB6CA, 0xB6CB, 0xB6CC, 0xB6CD, 0xB6CE, 0xB6CF, 0xB6D0, /* 0xF0 */
	0xB6D1, 0xB6D3, 0xB6D4, 0xB6D5, 0xB6D6, 0xB6D7, 0xB6D8, 0xB6D9	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C7[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xB6DA, 0xB6DB, 0xB6DC, 0xB6DD, 0xB6E1, 0xB6E2, 0xB6E3, 0xB6E4, /* 0x00 */
	0xB6E5, 0xB6E6, 0xB6E7, 0xB6E8, 0xB6E9, 0xB6EA, 0xB6EB, 0xB6EC, /* 0x00 */
	0xB6ED, 0xB6EE, 0xB6EF, 0xB6F0, 0xB6F1, 0xB6F3, 0xB6F4, 0xB6F5, /* 0x10 */
	0xB6F6, 0xB6F7, 0xB6F8, 0xB6F9, 0xB6FA, 0xB6FB, 0xB6FC, 0xB6FD, /* 0x10 */
	0xB741, 0xB742, 0xB743, 0xB744, 0xB745, 0xB746, 0xB747, 0xB748, /* 0x20 */
	0xB749, 0xB74A, 0xB74B, 0xB74C, 0xB74D, 0xB74E, 0xB74F, 0xB750, /* 0x20 */
	0xB751, 0xB753, 0xB754, 0xB755, 0xB756, 0xB757, 0xB758, 0xB759, /* 0x30 */
	0xB75A, 0xB75B, 0xB75C, 0xB75D, 0xB761, 0xB762, 0xB763, 0xB764, /* 0x30 */
	0xB765, 0xB766, 0xB767, 0xB768, 0xB769, 0xB76A, 0xB76B, 0xB76C, /* 0x40 */
	0xB76D, 0xB76E, 0xB76F, 0xB770, 0xB771, 0xB773, 0xB774, 0xB775, /* 0x40 */
	0xB776, 0xB777, 0xB778, 0xB779, 0xB77A, 0xB77B, 0xB77C, 0xB77D, /* 0x50 */
	0xB781, 0xB782, 0xB783, 0xB784, 0xB785, 0xB786, 0xB787, 0xB788, /* 0x50 */
	0xB789, 0xB78A, 0xB78B, 0xB78C, 0xB78D, 0xB78E, 0xB78F, 0xB790, /* 0x60 */
	0xB791, 0xB793, 0xB794, 0xB795, 0xB796, 0xB797, 0xB798, 0xB799, /* 0x60 */
	0xB79A, 0xB79B, 0xB79C, 0xB79D, 0xB7A1, 0xB7A2, 0xB7A3, 0xB7A4, /* 0x70 */
	0xB7A5, 0xB7A6, 0xB7A7, 0xB7A8, 0xB7A9, 0xB7AA, 0xB7AB, 0xB7AC, /* 0x70 */
	0xB7AD, 0xB7AE, 0xB7AF, 0xB7B0, 0xB7B1, 0xB7B3, 0xB7B4, 0xB7B5, /* 0x80 */
	0xB7B6, 0xB7B7, 0xB7B8, 0xB7B9, 0xB7BA, 0xB7BB, 0xB7BC, 0xB7BD, /* 0x80 */
	0xB861, 0xB862, 0xB863, 0xB864, 0xB865, 0xB866, 0xB867, 0xB868, /* 0x90 */
	0xB869, 0xB86A, 0xB86B, 0xB86C, 0xB86D, 0xB86E, 0xB86F, 0xB870, /* 0x90 */
	0xB871, 0xB873, 0xB874, 0xB875, 0xB876, 0xB877, 0xB878, 0xB879, /* 0xA0 */
	0xB87A, 0xB87B, 0xB87C, 0xB87D, 0xB881, 0xB882, 0xB883, 0xB884, /* 0xA0 */
	0xB885, 0xB886, 0xB887, 0xB888, 0xB889, 0xB88A, 0xB88B, 0xB88C, /* 0xB0 */
	0xB88D, 0xB88E, 0xB88F, 0xB890, 0xB891, 0xB893, 0xB894, 0xB895, /* 0xB0 */
	0xB896, 0xB897, 0xB898, 0xB899, 0xB89A, 0xB89B, 0xB89C, 0xB89D, /* 0xC0 */
	0xB8A1, 0xB8A2, 0xB8A3, 0xB8A4, 0xB8A5, 0xB8A6, 0xB8A7, 0xB8A8, /* 0xC0 */
	0xB8A9, 0xB8AA, 0xB8AB, 0xB8AC, 0xB8AD, 0xB8AE, 0xB8AF, 0xB8B0, /* 0xD0 */
	0xB8B1, 0xB8B3, 0xB8B4, 0xB8B5, 0xB8B6, 0xB8B7, 0xB8B8, 0xB8B9, /* 0xD0 */
	0xB8BA, 0xB8BB, 0xB8BC, 0xB8BD, 0xB8C1, 0xB8C2, 0xB8C3, 0xB8C4, /* 0xE0 */
	0xB8C5, 0xB8C6, 0xB8C7, 0xB8C8, 0xB8C9, 0xB8CA, 0xB8CB, 0xB8CC, /* 0xE0 */
	0xB8CD, 0xB8CE, 0xB8CF, 0xB8D0, 0xB8D1, 0xB8D3, 0xB8D4, 0xB8D5, /* 0xF0 */
	0xB8D6, 0xB8D7, 0xB8D8, 0xB8D9, 0xB8DA, 0xB8DB, 0xB8DC, 0xB8DD	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C8[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xB8E1, 0xB8E2, 0xB8E3, 0xB8E4, 0xB8E5, 0xB8E6, 0xB8E7, 0xB8E8, /* 0x00 */
	0xB8E9, 0xB8EA, 0xB8EB, 0xB8EC, 0xB8ED, 0xB8EE, 0xB8EF, 0xB8F0, /* 0x00 */
	0xB8F1, 0xB8F3, 0xB8F4, 0xB8F5, 0xB8F6, 0xB8F7, 0xB8F8, 0xB8F9, /* 0x10 */
	0xB8FA, 0xB8FB, 0xB8FC, 0xB8FD, 0xB941, 0xB942, 0xB943, 0xB944, /* 0x10 */
	0xB945, 0xB946, 0xB947, 0xB948, 0xB949, 0xB94A, 0xB94B, 0xB94C, /* 0x20 */
	0xB94D, 0xB94E, 0xB94F, 0xB950, 0xB951, 0xB953, 0xB954, 0xB955, /* 0x20 */
	0xB956, 0xB957, 0xB958, 0xB959, 0xB95A, 0xB95B, 0xB95C, 0xB95D, /* 0x30 */
	0xB961, 0xB962, 0xB963, 0xB964, 0xB965, 0xB966, 0xB967, 0xB968, /* 0x30 */
	0xB969, 0xB96A, 0xB96B, 0xB96C, 0xB96D, 0xB96E, 0xB96F, 0xB970, /* 0x40 */
	0xB971, 0xB973, 0xB974, 0xB975, 0xB976, 0xB977, 0xB978, 0xB979, /* 0x40 */
	0xB97A, 0xB97B, 0xB97C, 0xB97D, 0xB981, 0xB982, 0xB983, 0xB984, /* 0x50 */
	0xB985, 0xB986, 0xB987, 0xB988, 0xB989, 0xB98A, 0xB98B, 0xB98C, /* 0x50 */
	0xB98D, 0xB98E, 0xB98F, 0xB990, 0xB991, 0xB993, 0xB994, 0xB995, /* 0x60 */
	0xB996, 0xB997, 0xB998, 0xB999, 0xB99A, 0xB99B, 0xB99C, 0xB99D, /* 0x60 */
	0xB9A1, 0xB9A2, 0xB9A3, 0xB9A4, 0xB9A5, 0xB9A6, 0xB9A7, 0xB9A8, /* 0x70 */
	0xB9A9, 0xB9AA, 0xB9AB, 0xB9AC, 0xB9AD, 0xB9AE, 0xB9AF, 0xB9B0, /* 0x70 */
	0xB9B1, 0xB9B3, 0xB9B4, 0xB9B5, 0xB9B6, 0xB9B7, 0xB9B8, 0xB9B9, /* 0x80 */
	0xB9BA, 0xB9BB, 0xB9BC, 0xB9BD, 0xB9C1, 0xB9C2, 0xB9C3, 0xB9C4, /* 0x80 */
	0xB9C5, 0xB9C6, 0xB9C7, 0xB9C8, 0xB9C9, 0xB9CA, 0xB9CB, 0xB9CC, /* 0x90 */
	0xB9CD, 0xB9CE, 0xB9CF, 0xB9D0, 0xB9D1, 0xB9D3, 0xB9D4, 0xB9D5, /* 0x90 */
	0xB9D6, 0xB9D7, 0xB9D8, 0xB9D9, 0xB9DA, 0xB9DB, 0xB9DC, 0xB9DD, /* 0xA0 */
	0xB9E1, 0xB9E2, 0xB9E3, 0xB9E4, 0xB9E5, 0xB9E6, 0xB9E7, 0xB9E8, /* 0xA0 */
	0xB9E9, 0xB9EA, 0xB9EB, 0xB9EC, 0xB9ED, 0xB9EE, 0xB9EF, 0xB9F0, /* 0xB0 */
	0xB9F1, 0xB9F3, 0xB9F4, 0xB9F5, 0xB9F6, 0xB9F7, 0xB9F8, 0xB9F9, /* 0xB0 */
	0xB9FA, 0xB9FB, 0xB9FC, 0xB9FD, 0xBA41, 0xBA42, 0xBA43, 0xBA44, /* 0xC0 */
	0xBA45, 0xBA46, 0xBA47, 0xBA48, 0xBA49, 0xBA4A, 0xBA4B, 0xBA4C, /* 0xC0 */
	0xBA4D, 0xBA4E, 0xBA4F, 0xBA50, 0xBA51, 0xBA53, 0xBA54, 0xBA55, /* 0xD0 */
	0xBA56, 0xBA57, 0xBA58, 0xBA59, 0xBA5A, 0xBA5B, 0xBA5C, 0xBA5D, /* 0xD0 */
	0xBA61, 0xBA62, 0xBA63, 0xBA64, 0xBA65, 0xBA66, 0xBA67, 0xBA68, /* 0xE0 */
	0xBA69, 0xBA6A, 0xBA6B, 0xBA6C, 0xBA6D, 0xBA6E, 0xBA6F, 0xBA70, /* 0xE0 */
	0xBA71, 0xBA73, 0xBA74, 0xBA75, 0xBA76, 0xBA77, 0xBA78, 0xBA79, /* 0xF0 */
	0xBA7A, 0xBA7B, 0xBA7C, 0xBA7D, 0xBA81, 0xBA82, 0xBA83, 0xBA84	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C9[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xBA85, 0xBA86, 0xBA87, 0xBA88, 0xBA89, 0xBA8A, 0xBA8B, 0xBA8C, /* 0x00 */
	0xBA8D, 0xBA8E, 0xBA8F, 0xBA90, 0xBA91, 0xBA93, 0xBA94, 0xBA95, /* 0x00 */
	0xBA96, 0xBA97, 0xBA98, 0xBA99, 0xBA9A, 0xBA9B, 0xBA9C, 0xBA9D, /* 0x10 */
	0xBAA1, 0xBAA2, 0xBAA3, 0xBAA4, 0xBAA5, 0xBAA6, 0xBAA7, 0xBAA8, /* 0x10 */
	0xBAA9, 0xBAAA, 0xBAAB, 0xBAAC, 0xBAAD, 0xBAAE, 0xBAAF, 0xBAB0, /* 0x20 */
	0xBAB1, 0xBAB3, 0xBAB4, 0xBAB5, 0xBAB6, 0xBAB7, 0xBAB8, 0xBAB9, /* 0x20 */
	0xBABA, 0xBABB, 0xBABC, 0xBABD, 0xBAC1, 0xBAC2, 0xBAC3, 0xBAC4, /* 0x30 */
	0xBAC5, 0xBAC6, 0xBAC7, 0xBAC8, 0xBAC9, 0xBACA, 0xBACB, 0xBACC, /* 0x30 */
	0xBACD, 0xBACE, 0xBACF, 0xBAD0, 0xBAD1, 0xBAD3, 0xBAD4, 0xBAD5, /* 0x40 */
	0xBAD6, 0xBAD7, 0xBAD8, 0xBAD9, 0xBADA, 0xBADB, 0xBADC, 0xBADD, /* 0x40 */
	0xBAE1, 0xBAE2, 0xBAE3, 0xBAE4, 0xBAE5, 0xBAE6, 0xBAE7, 0xBAE8, /* 0x50 */
	0xBAE9, 0xBAEA, 0xBAEB, 0xBAEC, 0xBAED, 0xBAEE, 0xBAEF, 0xBAF0, /* 0x50 */
	0xBAF1, 0xBAF3, 0xBAF4, 0xBAF5, 0xBAF6, 0xBAF7, 0xBAF8, 0xBAF9, /* 0x60 */
	0xBAFA, 0xBAFB, 0xBAFC, 0xBAFD, 0xBB41, 0xBB42, 0xBB43, 0xBB44, /* 0x60 */
	0xBB45, 0xBB46, 0xBB47, 0xBB48, 0xBB49, 0xBB4A, 0xBB4B, 0xBB4C, /* 0x70 */
	0xBB4D, 0xBB4E, 0xBB4F, 0xBB50, 0xBB51, 0xBB53, 0xBB54, 0xBB55, /* 0x70 */
	0xBB56, 0xBB57, 0xBB58, 0xBB59, 0xBB5A, 0xBB5B, 0xBB5C, 0xBB5D, /* 0x80 */
	0xBB61, 0xBB62, 0xBB63, 0xBB64, 0xBB65, 0xBB66, 0xBB67, 0xBB68, /* 0x80 */
	0xBB69, 0xBB6A, 0xBB6B, 0xBB6C, 0xBB6D, 0xBB6E, 0xBB6F, 0xBB70, /* 0x90 */
	0xBB71, 0xBB73, 0xBB74, 0xBB75, 0xBB76, 0xBB77, 0xBB78, 0xBB79, /* 0x90 */
	0xBB7A, 0xBB7B, 0xBB7C, 0xBB7D, 0xBB81, 0xBB82, 0xBB83, 0xBB84, /* 0xA0 */
	0xBB85, 0xBB86, 0xBB87, 0xBB88, 0xBB89, 0xBB8A, 0xBB8B, 0xBB8C, /* 0xA0 */
	0xBB8D, 0xBB8E, 0xBB8F, 0xBB90, 0xBB91, 0xBB93, 0xBB94, 0xBB95, /* 0xB0 */
	0xBB96, 0xBB97, 0xBB98, 0xBB99, 0xBB9A, 0xBB9B, 0xBB9C, 0xBB9D, /* 0xB0 */
	0xBBA1, 0xBBA2, 0xBBA3, 0xBBA4, 0xBBA5, 0xBBA6, 0xBBA7, 0xBBA8, /* 0xC0 */
	0xBBA9, 0xBBAA, 0xBBAB, 0xBBAC, 0xBBAD, 0xBBAE, 0xBBAF, 0xBBB0, /* 0xC0 */
	0xBBB1, 0xBBB3, 0xBBB4, 0xBBB5, 0xBBB6, 0xBBB7, 0xBBB8, 0xBBB9, /* 0xD0 */
	0xBBBA, 0xBBBB, 0xBBBC, 0xBBBD, 0xBC61, 0xBC62, 0xBC63, 0xBC64, /* 0xD0 */
	0xBC65, 0xBC66, 0xBC67, 0xBC68, 0xBC69, 0xBC6A, 0xBC6B, 0xBC6C, /* 0xE0 */
	0xBC6D, 0xBC6E, 0xBC6F, 0xBC70, 0xBC71, 0xBC73, 0xBC74, 0xBC75, /* 0xE0 */
	0xBC76, 0xBC77, 0xBC78, 0xBC79, 0xBC7A, 0xBC7B, 0xBC7C, 0xBC7D, /* 0xF0 */
	0xBC81, 0xBC82, 0xBC83, 0xBC84, 0xBC85, 0xBC86, 0xBC87, 0xBC88	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CA[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xBC89, 0xBC8A, 0xBC8B, 0xBC8C, 0xBC8D, 0xBC8E, 0xBC8F, 0xBC90, /* 0x00 */
	0xBC91, 0xBC93, 0xBC94, 0xBC95, 0xBC96, 0xBC97, 0xBC98, 0xBC99, /* 0x00 */
	0xBC9A, 0xBC9B, 0xBC9C, 0xBC9D, 0xBCA1, 0xBCA2, 0xBCA3, 0xBCA4, /* 0x10 */
	0xBCA5, 0xBCA6, 0xBCA7, 0xBCA8, 0xBCA9, 0xBCAA, 0xBCAB, 0xBCAC, /* 0x10 */
	0xBCAD, 0xBCAE, 0xBCAF, 0xBCB0, 0xBCB1, 0xBCB3, 0xBCB4, 0xBCB5, /* 0x20 */
	0xBCB6, 0xBCB7, 0xBCB8, 0xBCB9, 0xBCBA, 0xBCBB, 0xBCBC, 0xBCBD, /* 0x20 */
	0xBCC1, 0xBCC2, 0xBCC3, 0xBCC4, 0xBCC5, 0xBCC6, 0xBCC7, 0xBCC8, /* 0x30 */
	0xBCC9, 0xBCCA, 0xBCCB, 0xBCCC, 0xBCCD, 0xBCCE, 0xBCCF, 0xBCD0, /* 0x30 */
	0xBCD1, 0xBCD3, 0xBCD4, 0xBCD5, 0xBCD6, 0xBCD7, 0xBCD8, 0xBCD9, /* 0x40 */
	0xBCDA, 0xBCDB, 0xBCDC, 0xBCDD, 0xBCE1, 0xBCE2, 0xBCE3, 0xBCE4, /* 0x40 */
	0xBCE5, 0xBCE6, 0xBCE7, 0xBCE8, 0xBCE9, 0xBCEA, 0xBCEB, 0xBCEC, /* 0x50 */
	0xBCED, 0xBCEE, 0xBCEF, 0xBCF0, 0xBCF1, 0xBCF3, 0xBCF4, 0xBCF5, /* 0x50 */
	0xBCF6, 0xBCF7, 0xBCF8, 0xBCF9, 0xBCFA, 0xBCFB, 0xBCFC, 0xBCFD, /* 0x60 */
	0xBD41, 0xBD42, 0xBD43, 0xBD44, 0xBD45, 0xBD46, 0xBD47, 0xBD48, /* 0x60 */
	0xBD49, 0xBD4A, 0xBD4B, 0xBD4C, 0xBD4D, 0xBD4E, 0xBD4F, 0xBD50, /* 0x70 */
	0xBD51, 0xBD53, 0xBD54, 0xBD55, 0xBD56, 0xBD57, 0xBD58, 0xBD59, /* 0x70 */
	0xBD5A, 0xBD5B, 0xBD5C, 0xBD5D, 0xBD61, 0xBD62, 0xBD63, 0xBD64, /* 0x80 */
	0xBD65, 0xBD66, 0xBD67, 0xBD68, 0xBD69, 0xBD6A, 0xBD6B, 0xBD6C, /* 0x80 */
	0xBD6D, 0xBD6E, 0xBD6F, 0xBD70, 0xBD71, 0xBD73, 0xBD74, 0xBD75, /* 0x90 */
	0xBD76, 0xBD77, 0xBD78, 0xBD79, 0xBD7A, 0xBD7B, 0xBD7C, 0xBD7D, /* 0x90 */
	0xBD81, 0xBD82, 0xBD83, 0xBD84, 0xBD85, 0xBD86, 0xBD87, 0xBD88, /* 0xA0 */
	0xBD89, 0xBD8A, 0xBD8B, 0xBD8C, 0xBD8D, 0xBD8E, 0xBD8F, 0xBD90, /* 0xA0 */
	0xBD91, 0xBD93, 0xBD94, 0xBD95, 0xBD96, 0xBD97, 0xBD98, 0xBD99, /* 0xB0 */
	0xBD9A, 0xBD9B, 0xBD9C, 0xBD9D, 0xBDA1, 0xBDA2, 0xBDA3, 0xBDA4, /* 0xB0 */
	0xBDA5, 0xBDA6, 0xBDA7, 0xBDA8, 0xBDA9, 0xBDAA, 0xBDAB, 0xBDAC, /* 0xC0 */
	0xBDAD, 0xBDAE, 0xBDAF, 0xBDB0, 0xBDB1, 0xBDB3, 0xBDB4, 0xBDB5, /* 0xC0 */
	0xBDB6, 0xBDB7, 0xBDB8, 0xBDB9, 0xBDBA, 0xBDBB, 0xBDBC, 0xBDBD, /* 0xD0 */
	0xBDC1, 0xBDC2, 0xBDC3, 0xBDC4, 0xBDC5, 0xBDC6, 0xBDC7, 0xBDC8, /* 0xD0 */
	0xBDC9, 0xBDCA, 0xBDCB, 0xBDCC, 0xBDCD, 0xBDCE, 0xBDCF, 0xBDD0, /* 0xE0 */
	0xBDD1, 0xBDD3, 0xBDD4, 0xBDD5, 0xBDD6, 0xBDD7, 0xBDD8, 0xBDD9, /* 0xE0 */
	0xBDDA, 0xBDDB, 0xBDDC, 0xBDDD, 0xBDE1, 0xBDE2, 0xBDE3, 0xBDE4, /* 0xF0 */
	0xBDE5, 0xBDE6, 0xBDE7, 0xBDE8, 0xBDE9, 0xBDEA, 0xBDEB, 0xBDEC	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CB[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xBDED, 0xBDEE, 0xBDEF, 0xBDF0, 0xBDF1, 0xBDF3, 0xBDF4, 0xBDF5, /* 0x00 */
	0xBDF6, 0xBDF7, 0xBDF8, 0xBDF9, 0xBDFA, 0xBDFB, 0xBDFC, 0xBDFD, /* 0x00 */
	0xBE41, 0xBE42, 0xBE43, 0xBE44, 0xBE45, 0xBE46, 0xBE47, 0xBE48, /* 0x10 */
	0xBE49, 0xBE4A, 0xBE4B, 0xBE4C, 0xBE4D, 0xBE4E, 0xBE4F, 0xBE50, /* 0x10 */
	0xBE51, 0xBE53, 0xBE54, 0xBE55, 0xBE56, 0xBE57, 0xBE58, 0xBE59, /* 0x20 */
	0xBE5A, 0xBE5B, 0xBE5C, 0xBE5D, 0xBE61, 0xBE62, 0xBE63, 0xBE64, /* 0x20 */
	0xBE65, 0xBE66, 0xBE67, 0xBE68, 0xBE69, 0xBE6A, 0xBE6B, 0xBE6C, /* 0x30 */
	0xBE6D, 0xBE6E, 0xBE6F, 0xBE70, 0xBE71, 0xBE73, 0xBE74, 0xBE75, /* 0x30 */
	0xBE76, 0xBE77, 0xBE78, 0xBE79, 0xBE7A, 0xBE7B, 0xBE7C, 0xBE7D, /* 0x40 */
	0xBE81, 0xBE82, 0xBE83, 0xBE84, 0xBE85, 0xBE86, 0xBE87, 0xBE88, /* 0x40 */
	0xBE89, 0xBE8A, 0xBE8B, 0xBE8C, 0xBE8D, 0xBE8E, 0xBE8F, 0xBE90, /* 0x50 */
	0xBE91, 0xBE93, 0xBE94, 0xBE95, 0xBE96, 0xBE97, 0xBE98, 0xBE99, /* 0x50 */
	0xBE9A, 0xBE9B, 0xBE9C, 0xBE9D, 0xBEA1, 0xBEA2, 0xBEA3, 0xBEA4, /* 0x60 */
	0xBEA5, 0xBEA6, 0xBEA7, 0xBEA8, 0xBEA9, 0xBEAA, 0xBEAB, 0xBEAC, /* 0x60 */
	0xBEAD, 0xBEAE, 0xBEAF, 0xBEB0, 0xBEB1, 0xBEB3, 0xBEB4, 0xBEB5, /* 0x70 */
	0xBEB6, 0xBEB7, 0xBEB8, 0xBEB9, 0xBEBA, 0xBEBB, 0xBEBC, 0xBEBD, /* 0x70 */
	0xBEC1, 0xBEC2, 0xBEC3, 0xBEC4, 0xBEC5, 0xBEC6, 0xBEC7, 0xBEC8, /* 0x80 */
	0xBEC9, 0xBECA, 0xBECB, 0xBECC, 0xBECD, 0xBECE, 0xBECF, 0xBED0, /* 0x80 */
	0xBED1, 0xBED3, 0xBED4, 0xBED5, 0xBED6, 0xBED7, 0xBED8, 0xBED9, /* 0x90 */
	0xBEDA, 0xBEDB, 0xBEDC, 0xBEDD, 0xBEE1, 0xBEE2, 0xBEE3, 0xBEE4, /* 0x90 */
	0xBEE5, 0xBEE6, 0xBEE7, 0xBEE8, 0xBEE9, 0xBEEA, 0xBEEB, 0xBEEC, /* 0xA0 */
	0xBEED, 0xBEEE, 0xBEEF, 0xBEF0, 0xBEF1, 0xBEF3, 0xBEF4, 0xBEF5, /* 0xA0 */
	0xBEF6, 0xBEF7, 0xBEF8, 0xBEF9, 0xBEFA, 0xBEFB, 0xBEFC, 0xBEFD, /* 0xB0 */
	0xBF41, 0xBF42, 0xBF43, 0xBF44, 0xBF45, 0xBF46, 0xBF47, 0xBF48, /* 0xB0 */
	0xBF49, 0xBF4A, 0xBF4B, 0xBF4C, 0xBF4D, 0xBF4E, 0xBF4F, 0xBF50, /* 0xC0 */
	0xBF51, 0xBF53, 0xBF54, 0xBF55, 0xBF56, 0xBF57, 0xBF58, 0xBF59, /* 0xC0 */
	0xBF5A, 0xBF5B, 0xBF5C, 0xBF5D, 0xBF61, 0xBF62, 0xBF63, 0xBF64, /* 0xD0 */
	0xBF65, 0xBF66, 0xBF67, 0xBF68, 0xBF69, 0xBF6A, 0xBF6B, 0xBF6C, /* 0xD0 */
	0xBF6D, 0xBF6E, 0xBF6F, 0xBF70, 0xBF71, 0xBF73, 0xBF74, 0xBF75, /* 0xE0 */
	0xBF76, 0xBF77, 0xBF78, 0xBF79, 0xBF7A, 0xBF7B, 0xBF7C, 0xBF7D, /* 0xE0 */
	0xBF81, 0xBF82, 0xBF83, 0xBF84, 0xBF85, 0xBF86, 0xBF87, 0xBF88, /* 0xF0 */
	0xBF89, 0xBF8A, 0xBF8B, 0xBF8C, 0xBF8D, 0xBF8E, 0xBF8F, 0xBF90	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CC[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xBF91, 0xBF93, 0xBF94, 0xBF95, 0xBF96, 0xBF97, 0xBF98, 0xBF99, /* 0x00 */
	0xBF9A, 0xBF9B, 0xBF9C, 0xBF9D, 0xBFA1, 0xBFA2, 0xBFA3, 0xBFA4, /* 0x00 */
	0xBFA5, 0xBFA6, 0xBFA7, 0xBFA8, 0xBFA9, 0xBFAA, 0xBFAB, 0xBFAC, /* 0x10 */
	0xBFAD, 0xBFAE, 0xBFAF, 0xBFB0, 0xBFB1, 0xBFB3, 0xBFB4, 0xBFB5, /* 0x10 */
	0xBFB6, 0xBFB7, 0xBFB8, 0xBFB9, 0xBFBA, 0xBFBB, 0xBFBC, 0xBFBD, /* 0x20 */
	0xC061, 0xC062, 0xC063, 0xC064, 0xC065, 0xC066, 0xC067, 0xC068, /* 0x20 */
	0xC069, 0xC06A, 0xC06B, 0xC06C, 0xC06D, 0xC06E, 0xC06F, 0xC070, /* 0x30 */
	0xC071, 0xC073, 0xC074, 0xC075, 0xC076, 0xC077, 0xC078, 0xC079, /* 0x30 */
	0xC07A, 0xC07B, 0xC07C, 0xC07D, 0xC081, 0xC082, 0xC083, 0xC084, /* 0x40 */
	0xC085, 0xC086, 0xC087, 0xC088, 0xC089, 0xC08A, 0xC08B, 0xC08C, /* 0x40 */
	0xC08D, 0xC08E, 0xC08F, 0xC090, 0xC091, 0xC093, 0xC094, 0xC095, /* 0x50 */
	0xC096, 0xC097, 0xC098, 0xC099, 0xC09A, 0xC09B, 0xC09C, 0xC09D, /* 0x50 */
	0xC0A1, 0xC0A2, 0xC0A3, 0xC0A4, 0xC0A5, 0xC0A6, 0xC0A7, 0xC0A8, /* 0x60 */
	0xC0A9, 0xC0AA, 0xC0AB, 0xC0AC, 0xC0AD, 0xC0AE, 0xC0AF, 0xC0B0, /* 0x60 */
	0xC0B1, 0xC0B3, 0xC0B4, 0xC0B5, 0xC0B6, 0xC0B7, 0xC0B8, 0xC0B9, /* 0x70 */
	0xC0BA, 0xC0BB, 0xC0BC, 0xC0BD, 0xC0C1, 0xC0C2, 0xC0C3, 0xC0C4, /* 0x70 */
	0xC0C5, 0xC0C6, 0xC0C7, 0xC0C8, 0xC0C9, 0xC0CA, 0xC0CB, 0xC0CC, /* 0x80 */
	0xC0CD, 0xC0CE, 0xC0CF, 0xC0D0, 0xC0D1, 0xC0D3, 0xC0D4, 0xC0D5, /* 0x80 */
	0xC0D6, 0xC0D7, 0xC0D8, 0xC0D9, 0xC0DA, 0xC0DB, 0xC0DC, 0xC0DD, /* 0x90 */
	0xC0E1, 0xC0E2, 0xC0E3, 0xC0E4, 0xC0E5, 0xC0E6, 0xC0E7, 0xC0E8, /* 0x90 */
	0xC0E9, 0xC0EA, 0xC0EB, 0xC0EC, 0xC0ED, 0xC0EE, 0xC0EF, 0xC0F0, /* 0xA0 */
	0xC0F1, 0xC0F3, 0xC0F4, 0xC0F5, 0xC0F6, 0xC0F7, 0xC0F8, 0xC0F9, /* 0xA0 */
	0xC0FA, 0xC0FB, 0xC0FC, 0xC0FD, 0xC141, 0xC142, 0xC143, 0xC144, /* 0xB0 */
	0xC145, 0xC146, 0xC147, 0xC148, 0xC149, 0xC14A, 0xC14B, 0xC14C, /* 0xB0 */
	0xC14D, 0xC14E, 0xC14F, 0xC150, 0xC151, 0xC153, 0xC154, 0xC155, /* 0xC0 */
	0xC156, 0xC157, 0xC158, 0xC159, 0xC15A, 0xC15B, 0xC15C, 0xC15D, /* 0xC0 */
	0xC161, 0xC162, 0xC163, 0xC164, 0xC165, 0xC166, 0xC167, 0xC168, /* 0xD0 */
	0xC169, 0xC16A, 0xC16B, 0xC16C, 0xC16D, 0xC16E, 0xC16F, 0xC170, /* 0xD0 */
	0xC171, 0xC173, 0xC174, 0xC175, 0xC176, 0xC177, 0xC178, 0xC179, /* 0xE0 */
	0xC17A, 0xC17B, 0xC17C, 0xC17D, 0xC181, 0xC182, 0xC183, 0xC184, /* 0xE0 */
	0xC185, 0xC186, 0xC187, 0xC188, 0xC189, 0xC18A, 0xC18B, 0xC18C, /* 0xF0 */
	0xC18D, 0xC18E, 0xC18F, 0xC190, 0xC191, 0xC193, 0xC194, 0xC195	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CD[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xC196, 0xC197, 0xC198, 0xC199, 0xC19A, 0xC19B, 0xC19C, 0xC19D, /* 0x00 */
	0xC1A1, 0xC1A2, 0xC1A3, 0xC1A4, 0xC1A5, 0xC1A6, 0xC1A7, 0xC1A8, /* 0x00 */
	0xC1A9, 0xC1AA, 0xC1AB, 0xC1AC, 0xC1AD, 0xC1AE, 0xC1AF, 0xC1B0, /* 0x10 */
	0xC1B1, 0xC1B3, 0xC1B4, 0xC1B5, 0xC1B6, 0xC1B7, 0xC1B8, 0xC1B9, /* 0x10 */
	0xC1BA, 0xC1BB, 0xC1BC, 0xC1BD, 0xC1C1, 0xC1C2, 0xC1C3, 0xC1C4, /* 0x20 */
	0xC1C5, 0xC1C6, 0xC1C7, 0xC1C8, 0xC1C9, 0xC1CA, 0xC1CB, 0xC1CC, /* 0x20 */
	0xC1CD, 0xC1CE, 0xC1CF, 0xC1D0, 0xC1D1, 0xC1D3, 0xC1D4, 0xC1D5, /* 0x30 */
	0xC1D6, 0xC1D7, 0xC1D8, 0xC1D9, 0xC1DA, 0xC1DB, 0xC1DC, 0xC1DD, /* 0x30 */
	0xC1E1, 0xC1E2, 0xC1E3, 0xC1E4, 0xC1E5, 0xC1E6, 0xC1E7, 0xC1E8, /* 0x40 */
	0xC1E9, 0xC1EA, 0xC1EB, 0xC1EC, 0xC1ED, 0xC1EE, 0xC1EF, 0xC1F0, /* 0x40 */
	0xC1F1, 0xC1F3, 0xC1F4, 0xC1F5, 0xC1F6, 0xC1F7, 0xC1F8, 0xC1F9, /* 0x50 */
	0xC1FA, 0xC1FB, 0xC1FC, 0xC1FD, 0xC241, 0xC242, 0xC243, 0xC244, /* 0x50 */
	0xC245, 0xC246, 0xC247, 0xC248, 0xC249, 0xC24A, 0xC24B, 0xC24C, /* 0x60 */
	0xC24D, 0xC24E, 0xC24F, 0xC250, 0xC251, 0xC253, 0xC254, 0xC255, /* 0x60 */
	0xC256, 0xC257, 0xC258, 0xC259, 0xC25A, 0xC25B, 0xC25C, 0xC25D, /* 0x70 */
	0xC261, 0xC262, 0xC263, 0xC264, 0xC265, 0xC266, 0xC267, 0xC268, /* 0x70 */
	0xC269, 0xC26A, 0xC26B, 0xC26C, 0xC26D, 0xC26E, 0xC26F, 0xC270, /* 0x80 */
	0xC271, 0xC273, 0xC274, 0xC275, 0xC276, 0xC277, 0xC278, 0xC279, /* 0x80 */
	0xC27A, 0xC27B, 0xC27C, 0xC27D, 0xC281, 0xC282, 0xC283, 0xC284, /* 0x90 */
	0xC285, 0xC286, 0xC287, 0xC288, 0xC289, 0xC28A, 0xC28B, 0xC28C, /* 0x90 */
	0xC28D, 0xC28E, 0xC28F, 0xC290, 0xC291, 0xC293, 0xC294, 0xC295, /* 0xA0 */
	0xC296, 0xC297, 0xC298, 0xC299, 0xC29A, 0xC29B, 0xC29C, 0xC29D, /* 0xA0 */
	0xC2A1, 0xC2A2, 0xC2A3, 0xC2A4, 0xC2A5, 0xC2A6, 0xC2A7, 0xC2A8, /* 0xB0 */
	0xC2A9, 0xC2AA, 0xC2AB, 0xC2AC, 0xC2AD, 0xC2AE, 0xC2AF, 0xC2B0, /* 0xB0 */
	0xC2B1, 0xC2B3, 0xC2B4, 0xC2B5, 0xC2B6, 0xC2B7, 0xC2B8, 0xC2B9, /* 0xC0 */
	0xC2BA, 0xC2BB, 0xC2BC, 0xC2BD, 0xC2C1, 0xC2C2, 0xC2C3, 0xC2C4, /* 0xC0 */
	0xC2C5, 0xC2C6, 0xC2C7, 0xC2C8, 0xC2C9, 0xC2CA, 0xC2CB, 0xC2CC, /* 0xD0 */
	0xC2CD, 0xC2CE, 0xC2CF, 0xC2D0, 0xC2D1, 0xC2D3, 0xC2D4, 0xC2D5, /* 0xD0 */
	0xC2D6, 0xC2D7, 0xC2D8, 0xC2D9, 0xC2DA, 0xC2DB, 0xC2DC, 0xC2DD, /* 0xE0 */
	0xC2E1, 0xC2E2, 0xC2E3, 0xC2E4, 0xC2E5, 0xC2E6, 0xC2E7, 0xC2E8, /* 0xE0 */
	0xC2E9, 0xC2EA, 0xC2EB, 0xC2EC, 0xC2ED, 0xC2EE, 0xC2EF, 0xC2F0, /* 0xF0 */
	0xC2F1, 0xC2F3, 0xC2F4, 0xC2F5, 0xC2F6, 0xC2F7, 0xC2F8, 0xC2F9	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CE[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xC2FA, 0xC2FB, 0xC2FC, 0xC2FD, 0xC341, 0xC342, 0xC343, 0xC344, /* 0x00 */
	0xC345, 0xC346, 0xC347, 0xC348, 0xC349, 0xC34A, 0xC34B, 0xC34C, /* 0x00 */
	0xC34D, 0xC34E, 0xC34F, 0xC350, 0xC351, 0xC353, 0xC354, 0xC355, /* 0x10 */
	0xC356, 0xC357, 0xC358, 0xC359, 0xC35A, 0xC35B, 0xC35C, 0xC35D, /* 0x10 */
	0xC361, 0xC362, 0xC363, 0xC364, 0xC365, 0xC366, 0xC367, 0xC368, /* 0x20 */
	0xC369, 0xC36A, 0xC36B, 0xC36C, 0xC36D, 0xC36E, 0xC36F, 0xC370, /* 0x20 */
	0xC371, 0xC373, 0xC374, 0xC375, 0xC376, 0xC377, 0xC378, 0xC379, /* 0x30 */
	0xC37A, 0xC37B, 0xC37C, 0xC37D, 0xC381, 0xC382, 0xC383, 0xC384, /* 0x30 */
	0xC385, 0xC386, 0xC387, 0xC388, 0xC389, 0xC38A, 0xC38B, 0xC38C, /* 0x40 */
	0xC38D, 0xC38E, 0xC38F, 0xC390, 0xC391, 0xC393, 0xC394, 0xC395, /* 0x40 */
	0xC396, 0xC397, 0xC398, 0xC399, 0xC39A, 0xC39B, 0xC39C, 0xC39D, /* 0x50 */
	0xC3A1, 0xC3A2, 0xC3A3, 0xC3A4, 0xC3A5, 0xC3A6, 0xC3A7, 0xC3A8, /* 0x50 */
	0xC3A9, 0xC3AA, 0xC3AB, 0xC3AC, 0xC3AD, 0xC3AE, 0xC3AF, 0xC3B0, /* 0x60 */
	0xC3B1, 0xC3B3, 0xC3B4, 0xC3B5, 0xC3B6, 0xC3B7, 0xC3B8, 0xC3B9, /* 0x60 */
	0xC3BA, 0xC3BB, 0xC3BC, 0xC3BD, 0xC461, 0xC462, 0xC463, 0xC464, /* 0x70 */
	0xC465, 0xC466, 0xC467, 0xC468, 0xC469, 0xC46A, 0xC46B, 0xC46C, /* 0x70 */
	0xC46D, 0xC46E, 0xC46F, 0xC470, 0xC471, 0xC473, 0xC474, 0xC475, /* 0x80 */
	0xC476, 0xC477, 0xC478, 0xC479, 0xC47A, 0xC47B, 0xC47C, 0xC47D, /* 0x80 */
	0xC481, 0xC482, 0xC483, 0xC484, 0xC485, 0xC486, 0xC487, 0xC488, /* 0x90 */
	0xC489, 0xC48A, 0xC48B, 0xC48C, 0xC48D, 0xC48E, 0xC48F, 0xC490, /* 0x90 */
	0xC491, 0xC493, 0xC494, 0xC495, 0xC496, 0xC497, 0xC498, 0xC499, /* 0xA0 */
	0xC49A, 0xC49B, 0xC49C, 0xC49D, 0xC4A1, 0xC4A2, 0xC4A3, 0xC4A4, /* 0xA0 */
	0xC4A5, 0xC4A6, 0xC4A7, 0xC4A8, 0xC4A9, 0xC4AA, 0xC4AB, 0xC4AC, /* 0xB0 */
	0xC4AD, 0xC4AE, 0xC4AF, 0xC4B0, 0xC4B1, 0xC4B3, 0xC4B4, 0xC4B5, /* 0xB0 */
	0xC4B6, 0xC4B7, 0xC4B8, 0xC4B9, 0xC4BA, 0xC4BB, 0xC4BC, 0xC4BD, /* 0xC0 */
	0xC4C1, 0xC4C2, 0xC4C3, 0xC4C4, 0xC4C5, 0xC4C6, 0xC4C7, 0xC4C8, /* 0xC0 */
	0xC4C9, 0xC4CA, 0xC4CB, 0xC4CC, 0xC4CD, 0xC4CE, 0xC4CF, 0xC4D0, /* 0xD0 */
	0xC4D1, 0xC4D3, 0xC4D4, 0xC4D5, 0xC4D6, 0xC4D7, 0xC4D8, 0xC4D9, /* 0xD0 */
	0xC4DA, 0xC4DB, 0xC4DC, 0xC4DD, 0xC4E1, 0xC4E2, 0xC4E3, 0xC4E4, /* 0xE0 */
	0xC4E5, 0xC4E6, 0xC4E7, 0xC4E8, 0xC4E9, 0xC4EA, 0xC4EB, 0xC4EC, /* 0xE0 */
	0xC4ED, 0xC4EE, 0xC4EF, 0xC4F0, 0xC4F1, 0xC4F3, 0xC4F4, 0xC4F5, /* 0xF0 */
	0xC4F6, 0xC4F7, 0xC4F8, 0xC4F9, 0xC4FA, 0xC4FB, 0xC4FC, 0xC4FD	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CF[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xC541, 0xC542, 0xC543, 0xC544, 0xC545, 0xC546, 0xC547, 0xC548, /* 0x00 */
	0xC549, 0xC54A, 0xC54B, 0xC54C, 0xC54D, 0xC54E, 0xC54F, 0xC550, /* 0x00 */
	0xC551, 0xC553, 0xC554, 0xC555, 0xC556, 0xC557, 0xC558, 0xC559, /* 0x10 */
	0xC55A, 0xC55B, 0xC55C, 0xC55D, 0xC561, 0xC562, 0xC563, 0xC564, /* 0x10 */
	0xC565, 0xC566, 0xC567, 0xC568, 0xC569, 0xC56A, 0xC56B, 0xC56C, /* 0x20 */
	0xC56D, 0xC56E, 0xC56F, 0xC570, 0xC571, 0xC573, 0xC574, 0xC575, /* 0x20 */
	0xC576, 0xC577, 0xC578, 0xC579, 0xC57A, 0xC57B, 0xC57C, 0xC57D, /* 0x30 */
	0xC581, 0xC582, 0xC583, 0xC584, 0xC585, 0xC586, 0xC587, 0xC588, /* 0x30 */
	0xC589, 0xC58A, 0xC58B, 0xC58C, 0xC58D, 0xC58E, 0xC58F, 0xC590, /* 0x40 */
	0xC591, 0xC593, 0xC594, 0xC595, 0xC596, 0xC597, 0xC598, 0xC599, /* 0x40 */
	0xC59A, 0xC59B, 0xC59C, 0xC59D, 0xC5A1, 0xC5A2, 0xC5A3, 0xC5A4, /* 0x50 */
	0xC5A5, 0xC5A6, 0xC5A7, 0xC5A8, 0xC5A9, 0xC5AA, 0xC5AB, 0xC5AC, /* 0x50 */
	0xC5AD, 0xC5AE, 0xC5AF, 0xC5B0, 0xC5B1, 0xC5B3, 0xC5B4, 0xC5B5, /* 0x60 */
	0xC5B6, 0xC5B7, 0xC5B8, 0xC5B9, 0xC5BA, 0xC5BB, 0xC5BC, 0xC5BD, /* 0x60 */
	0xC5C1, 0xC5C2, 0xC5C3, 0xC5C4, 0xC5C5, 0xC5C6, 0xC5C7, 0xC5C8, /* 0x70 */
	0xC5C9, 0xC5CA, 0xC5CB, 0xC5CC, 0xC5CD, 0xC5CE, 0xC5CF, 0xC5D0, /* 0x70 */
	0xC5D1, 0xC5D3, 0xC5D4, 0xC5D5, 0xC5D6, 0xC5D7, 0xC5D8, 0xC5D9, /* 0x80 */
	0xC5DA, 0xC5DB, 0xC5DC, 0xC5DD, 0xC5E1, 0xC5E2, 0xC5E3, 0xC5E4, /* 0x80 */
	0xC5E5, 0xC5E6, 0xC5E7, 0xC5E8, 0xC5E9, 0xC5EA, 0xC5EB, 0xC5EC, /* 0x90 */
	0xC5ED, 0xC5EE, 0xC5EF, 0xC5F0, 0xC5F1, 0xC5F3, 0xC5F4, 0xC5F5, /* 0x90 */
	0xC5F6, 0xC5F7, 0xC5F8, 0xC5F9, 0xC5FA, 0xC5FB, 0xC5FC, 0xC5FD, /* 0xA0 */
	0xC641, 0xC642, 0xC643, 0xC644, 0xC645, 0xC646, 0xC647, 0xC648, /* 0xA0 */
	0xC649, 0xC64A, 0xC64B, 0xC64C, 0xC64D, 0xC64E, 0xC64F, 0xC650, /* 0xB0 */
	0xC651, 0xC653, 0xC654, 0xC655, 0xC656, 0xC657, 0xC658, 0xC659, /* 0xB0 */
	0xC65A, 0xC65B, 0xC65C, 0xC65D, 0xC661, 0xC662, 0xC663, 0xC664, /* 0xC0 */
	0xC665, 0xC666, 0xC667, 0xC668, 0xC669, 0xC66A, 0xC66B, 0xC66C, /* 0xC0 */
	0xC66D, 0xC66E, 0xC66F, 0xC670, 0xC671, 0xC673, 0xC674, 0xC675, /* 0xD0 */
	0xC676, 0xC677, 0xC678, 0xC679, 0xC67A, 0xC67B, 0xC67C, 0xC67D, /* 0xD0 */
	0xC681, 0xC682, 0xC683, 0xC684, 0xC685, 0xC686, 0xC687, 0xC688, /* 0xE0 */
	0xC689, 0xC68A, 0xC68B, 0xC68C, 0xC68D, 0xC68E, 0xC68F, 0xC690, /* 0xE0 */
	0xC691, 0xC693, 0xC694, 0xC695, 0xC696, 0xC697, 0xC698, 0xC699, /* 0xF0 */
	0xC69A, 0xC69B, 0xC69C, 0xC69D, 0xC6A1, 0xC6A2, 0xC6A3, 0xC6A4	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D0[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xC6A5, 0xC6A6, 0xC6A7, 0xC6A8, 0xC6A9, 0xC6AA, 0xC6AB, 0xC6AC, /* 0x00 */
	0xC6AD, 0xC6AE, 0xC6AF, 0xC6B0, 0xC6B1, 0xC6B3, 0xC6B4, 0xC6B5, /* 0x00 */
	0xC6B6, 0xC6B7, 0xC6B8, 0xC6B9, 0xC6BA, 0xC6BB, 0xC6BC, 0xC6BD, /* 0x10 */
	0xC6C1, 0xC6C2, 0xC6C3, 0xC6C4, 0xC6C5, 0xC6C6, 0xC6C7, 0xC6C8, /* 0x10 */
	0xC6C9, 0xC6CA, 0xC6CB, 0xC6CC, 0xC6CD, 0xC6CE, 0xC6CF, 0xC6D0, /* 0x20 */
	0xC6D1, 0xC6D3, 0xC6D4, 0xC6D5, 0xC6D6, 0xC6D7, 0xC6D8, 0xC6D9, /* 0x20 */
	0xC6DA, 0xC6DB, 0xC6DC, 0xC6DD, 0xC6E1, 0xC6E2, 0xC6E3, 0xC6E4, /* 0x30 */
	0xC6E5, 0xC6E6, 0xC6E7, 0xC6E8, 0xC6E9, 0xC6EA, 0xC6EB, 0xC6EC, /* 0x30 */
	0xC6ED, 0xC6EE, 0xC6EF, 0xC6F0, 0xC6F1, 0xC6F3, 0xC6F4, 0xC6F5, /* 0x40 */
	0xC6F6, 0xC6F7, 0xC6F8, 0xC6F9, 0xC6FA, 0xC6FB, 0xC6FC, 0xC6FD, /* 0x40 */
	0xC741, 0xC742, 0xC743, 0xC744, 0xC745, 0xC746, 0xC747, 0xC748, /* 0x50 */
	0xC749, 0xC74A, 0xC74B, 0xC74C, 0xC74D, 0xC74E, 0xC74F, 0xC750, /* 0x50 */
	0xC751, 0xC753, 0xC754, 0xC755, 0xC756, 0xC757, 0xC758, 0xC759, /* 0x60 */
	0xC75A, 0xC75B, 0xC75C, 0xC75D, 0xC761, 0xC762, 0xC763, 0xC764, /* 0x60 */
	0xC765, 0xC766, 0xC767, 0xC768, 0xC769, 0xC76A, 0xC76B, 0xC76C, /* 0x70 */
	0xC76D, 0xC76E, 0xC76F, 0xC770, 0xC771, 0xC773, 0xC774, 0xC775, /* 0x70 */
	0xC776, 0xC777, 0xC778, 0xC779, 0xC77A, 0xC77B, 0xC77C, 0xC77D, /* 0x80 */
	0xC781, 0xC782, 0xC783, 0xC784, 0xC785, 0xC786, 0xC787, 0xC788, /* 0x80 */
	0xC789, 0xC78A, 0xC78B, 0xC78C, 0xC78D, 0xC78E, 0xC78F, 0xC790, /* 0x90 */
	0xC791, 0xC793, 0xC794, 0xC795, 0xC796, 0xC797, 0xC798, 0xC799, /* 0x90 */
	0xC79A, 0xC79B, 0xC79C, 0xC79D, 0xC7A1, 0xC7A2, 0xC7A3, 0xC7A4, /* 0xA0 */
	0xC7A5, 0xC7A6, 0xC7A7, 0xC7A8, 0xC7A9, 0xC7AA, 0xC7AB, 0xC7AC, /* 0xA0 */
	0xC7AD, 0xC7AE, 0xC7AF, 0xC7B0, 0xC7B1, 0xC7B3, 0xC7B4, 0xC7B5, /* 0xB0 */
	0xC7B6, 0xC7B7, 0xC7B8, 0xC7B9, 0xC7BA, 0xC7BB, 0xC7BC, 0xC7BD, /* 0xB0 */
	0xC861, 0xC862, 0xC863, 0xC864, 0xC865, 0xC866, 0xC867, 0xC868, /* 0xC0 */
	0xC869, 0xC86A, 0xC86B, 0xC86C, 0xC86D, 0xC86E, 0xC86F, 0xC870, /* 0xC0 */
	0xC871, 0xC873, 0xC874, 0xC875, 0xC876, 0xC877, 0xC878, 0xC879, /* 0xD0 */
	0xC87A, 0xC87B, 0xC87C, 0xC87D, 0xC881, 0xC882, 0xC883, 0xC884, /* 0xD0 */
	0xC885, 0xC886, 0xC887, 0xC888, 0xC889, 0xC88A, 0xC88B, 0xC88C, /* 0xE0 */
	0xC88D, 0xC88E, 0xC88F, 0xC890, 0xC891, 0xC893, 0xC894, 0xC895, /* 0xE0 */
	0xC896, 0xC897, 0xC898, 0xC899, 0xC89A, 0xC89B, 0xC89C, 0xC89D, /* 0xF0 */
	0xC8A1, 0xC8A2, 0xC8A3, 0xC8A4, 0xC8A5, 0xC8A6, 0xC8A7, 0xC8A8	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D1[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xC8A9, 0xC8AA, 0xC8AB, 0xC8AC, 0xC8AD, 0xC8AE, 0xC8AF, 0xC8B0, /* 0x00 */
	0xC8B1, 0xC8B3, 0xC8B4, 0xC8B5, 0xC8B6, 0xC8B7, 0xC8B8, 0xC8B9, /* 0x00 */
	0xC8BA, 0xC8BB, 0xC8BC, 0xC8BD, 0xC8C1, 0xC8C2, 0xC8C3, 0xC8C4, /* 0x10 */
	0xC8C5, 0xC8C6, 0xC8C7, 0xC8C8, 0xC8C9, 0xC8CA, 0xC8CB, 0xC8CC, /* 0x10 */
	0xC8CD, 0xC8CE, 0xC8CF, 0xC8D0, 0xC8D1, 0xC8D3, 0xC8D4, 0xC8D5, /* 0x20 */
	0xC8D6, 0xC8D7, 0xC8D8, 0xC8D9, 0xC8DA, 0xC8DB, 0xC8DC, 0xC8DD, /* 0x20 */
	0xC8E1, 0xC8E2, 0xC8E3, 0xC8E4, 0xC8E5, 0xC8E6, 0xC8E7, 0xC8E8, /* 0x30 */
	0xC8E9, 0xC8EA, 0xC8EB, 0xC8EC, 0xC8ED, 0xC8EE, 0xC8EF, 0xC8F0, /* 0x30 */
	0xC8F1, 0xC8F3, 0xC8F4, 0xC8F5, 0xC8F6, 0xC8F7, 0xC8F8, 0xC8F9, /* 0x40 */
	0xC8FA, 0xC8FB, 0xC8FC, 0xC8FD, 0xC941, 0xC942, 0xC943, 0xC944, /* 0x40 */
	0xC945, 0xC946, 0xC947, 0xC948, 0xC949, 0xC94A, 0xC94B, 0xC94C, /* 0x50 */
	0xC94D, 0xC94E, 0xC94F, 0xC950, 0xC951, 0xC953, 0xC954, 0xC955, /* 0x50 */
	0xC956, 0xC957, 0xC958, 0xC959, 0xC95A, 0xC95B, 0xC95C, 0xC95D, /* 0x60 */
	0xC961, 0xC962, 0xC963, 0xC964, 0xC965, 0xC966, 0xC967, 0xC968, /* 0x60 */
	0xC969, 0xC96A, 0xC96B, 0xC96C, 0xC96D, 0xC96E, 0xC96F, 0xC970, /* 0x70 */
	0xC971, 0xC973, 0xC974, 0xC975, 0xC976, 0xC977, 0xC978, 0xC979, /* 0x70 */
	0xC97A, 0xC97B, 0xC97C, 0xC97D, 0xC981, 0xC982, 0xC983, 0xC984, /* 0x80 */
	0xC985, 0xC986, 0xC987, 0xC988, 0xC989, 0xC98A, 0xC98B, 0xC98C, /* 0x80 */
	0xC98D, 0xC98E, 0xC98F, 0xC990, 0xC991, 0xC993, 0xC994, 0xC995, /* 0x90 */
	0xC996, 0xC997, 0xC998, 0xC999, 0xC99A, 0xC99B, 0xC99C, 0xC99D, /* 0x90 */
	0xC9A1, 0xC9A2, 0xC9A3, 0xC9A4, 0xC9A5, 0xC9A6, 0xC9A7, 0xC9A8, /* 0xA0 */
	0xC9A9, 0xC9AA, 0xC9AB, 0xC9AC, 0xC9AD, 0xC9AE, 0xC9AF, 0xC9B0, /* 0xA0 */
	0xC9B1, 0xC9B3, 0xC9B4, 0xC9B5, 0xC9B6, 0xC9B7, 0xC9B8, 0xC9B9, /* 0xB0 */
	0xC9BA, 0xC9BB, 0xC9BC, 0xC9BD, 0xC9C1, 0xC9C2, 0xC9C3, 0xC9C4, /* 0xB0 */
	0xC9C5, 0xC9C6, 0xC9C7, 0xC9C8, 0xC9C9, 0xC9CA, 0xC9CB, 0xC9CC, /* 0xC0 */
	0xC9CD, 0xC9CE, 0xC9CF, 0xC9D0, 0xC9D1, 0xC9D3, 0xC9D4, 0xC9D5, /* 0xC0 */
	0xC9D6, 0xC9D7, 0xC9D8, 0xC9D9, 0xC9DA, 0xC9DB, 0xC9DC, 0xC9DD, /* 0xD0 */
	0xC9E1, 0xC9E2, 0xC9E3, 0xC9E4, 0xC9E5, 0xC9E6, 0xC9E7, 0xC9E8, /* 0xD0 */
	0xC9E9, 0xC9EA, 0xC9EB, 0xC9EC, 0xC9ED, 0xC9EE, 0xC9EF, 0xC9F0, /* 0xE0 */
	0xC9F1, 0xC9F3, 0xC9F4, 0xC9F5, 0xC9F6, 0xC9F7, 0xC9F8, 0xC9F9, /* 0xE0 */
	0xC9FA, 0xC9FB, 0xC9FC, 0xC9FD, 0xCA41, 0xCA42, 0xCA43, 0xCA44, /* 0xF0 */
	0xCA45, 0xCA46, 0xCA47, 0xCA48, 0xCA49, 0xCA4A, 0xCA4B, 0xCA4C	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D2[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xCA4D, 0xCA4E, 0xCA4F, 0xCA50, 0xCA51, 0xCA53, 0xCA54, 0xCA55, /* 0x00 */
	0xCA56, 0xCA57, 0xCA58, 0xCA59, 0xCA5A, 0xCA5B, 0xCA5C, 0xCA5D, /* 0x00 */
	0xCA61, 0xCA62, 0xCA63, 0xCA64, 0xCA65, 0xCA66, 0xCA67, 0xCA68, /* 0x10 */
	0xCA69, 0xCA6A, 0xCA6B, 0xCA6C, 0xCA6D, 0xCA6E, 0xCA6F, 0xCA70, /* 0x10 */
	0xCA71, 0xCA73, 0xCA74, 0xCA75, 0xCA76, 0xCA77, 0xCA78, 0xCA79, /* 0x20 */
	0xCA7A, 0xCA7B, 0xCA7C, 0xCA7D, 0xCA81, 0xCA82, 0xCA83, 0xCA84, /* 0x20 */
	0xCA85, 0xCA86, 0xCA87, 0xCA88, 0xCA89, 0xCA8A, 0xCA8B, 0xCA8C, /* 0x30 */
	0xCA8D, 0xCA8E, 0xCA8F, 0xCA90, 0xCA91, 0xCA93, 0xCA94, 0xCA95, /* 0x30 */
	0xCA96, 0xCA97, 0xCA98, 0xCA99, 0xCA9A, 0xCA9B, 0xCA9C, 0xCA9D, /* 0x40 */
	0xCAA1, 0xCAA2, 0xCAA3, 0xCAA4, 0xCAA5, 0xCAA6, 0xCAA7, 0xCAA8, /* 0x40 */
	0xCAA9, 0xCAAA, 0xCAAB, 0xCAAC, 0xCAAD, 0xCAAE, 0xCAAF, 0xCAB0, /* 0x50 */
	0xCAB1, 0xCAB3, 0xCAB4, 0xCAB5, 0xCAB6, 0xCAB7, 0xCAB8, 0xCAB9, /* 0x50 */
	0xCABA, 0xCABB, 0xCABC, 0xCABD, 0xCAC1, 0xCAC2, 0xCAC3, 0xCAC4, /* 0x60 */
	0xCAC5, 0xCAC6, 0xCAC7, 0xCAC8, 0xCAC9, 0xCACA, 0xCACB, 0xCACC, /* 0x60 */
	0xCACD, 0xCACE, 0xCACF, 0xCAD0, 0xCAD1, 0xCAD3, 0xCAD4, 0xCAD5, /* 0x70 */
	0xCAD6, 0xCAD7, 0xCAD8, 0xCAD9, 0xCADA, 0xCADB, 0xCADC, 0xCADD, /* 0x70 */
	0xCAE1, 0xCAE2, 0xCAE3, 0xCAE4, 0xCAE5, 0xCAE6, 0xCAE7, 0xCAE8, /* 0x80 */
	0xCAE9, 0xCAEA, 0xCAEB, 0xCAEC, 0xCAED, 0xCAEE, 0xCAEF, 0xCAF0, /* 0x80 */
	0xCAF1, 0xCAF3, 0xCAF4, 0xCAF5, 0xCAF6, 0xCAF7, 0xCAF8, 0xCAF9, /* 0x90 */
	0xCAFA, 0xCAFB, 0xCAFC, 0xCAFD, 0xCB41, 0xCB42, 0xCB43, 0xCB44, /* 0x90 */
	0xCB45, 0xCB46, 0xCB47, 0xCB48, 0xCB49, 0xCB4A, 0xCB4B, 0xCB4C, /* 0xA0 */
	0xCB4D, 0xCB4E, 0xCB4F, 0xCB50, 0xCB51, 0xCB53, 0xCB54, 0xCB55, /* 0xA0 */
	0xCB56, 0xCB57, 0xCB58, 0xCB59, 0xCB5A, 0xCB5B, 0xCB5C, 0xCB5D, /* 0xB0 */
	0xCB61, 0xCB62, 0xCB63, 0xCB64, 0xCB65, 0xCB66, 0xCB67, 0xCB68, /* 0xB0 */
	0xCB69, 0xCB6A, 0xCB6B, 0xCB6C, 0xCB6D, 0xCB6E, 0xCB6F, 0xCB70, /* 0xC0 */
	0xCB71, 0xCB73, 0xCB74, 0xCB75, 0xCB76, 0xCB77, 0xCB78, 0xCB79, /* 0xC0 */
	0xCB7A, 0xCB7B, 0xCB7C, 0xCB7D, 0xCB81, 0xCB82, 0xCB83, 0xCB84, /* 0xD0 */
	0xCB85, 0xCB86, 0xCB87, 0xCB88, 0xCB89, 0xCB8A, 0xCB8B, 0xCB8C, /* 0xD0 */
	0xCB8D, 0xCB8E, 0xCB8F, 0xCB90, 0xCB91, 0xCB93, 0xCB94, 0xCB95, /* 0xE0 */
	0xCB96, 0xCB97, 0xCB98, 0xCB99, 0xCB9A, 0xCB9B, 0xCB9C, 0xCB9D, /* 0xE0 */
	0xCBA1, 0xCBA2, 0xCBA3, 0xCBA4, 0xCBA5, 0xCBA6, 0xCBA7, 0xCBA8, /* 0xF0 */
	0xCBA9, 0xCBAA, 0xCBAB, 0xCBAC, 0xCBAD, 0xCBAE, 0xCBAF, 0xCBB0	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D3[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xCBB1, 0xCBB3, 0xCBB4, 0xCBB5, 0xCBB6, 0xCBB7, 0xCBB8, 0xCBB9, /* 0x00 */
	0xCBBA, 0xCBBB, 0xCBBC, 0xCBBD, 0xCC61, 0xCC62, 0xCC63, 0xCC64, /* 0x00 */
	0xCC65, 0xCC66, 0xCC67, 0xCC68, 0xCC69, 0xCC6A, 0xCC6B, 0xCC6C, /* 0x10 */
	0xCC6D, 0xCC6E, 0xCC6F, 0xCC70, 0xCC71, 0xCC73, 0xCC74, 0xCC75, /* 0x10 */
	0xCC76, 0xCC77, 0xCC78, 0xCC79, 0xCC7A, 0xCC7B, 0xCC7C, 0xCC7D, /* 0x20 */
	0xCC81, 0xCC82, 0xCC83, 0xCC84, 0xCC85, 0xCC86, 0xCC87, 0xCC88, /* 0x20 */
	0xCC89, 0xCC8A, 0xCC8B, 0xCC8C, 0xCC8D, 0xCC8E, 0xCC8F, 0xCC90, /* 0x30 */
	0xCC91, 0xCC93, 0xCC94, 0xCC95, 0xCC96, 0xCC97, 0xCC98, 0xCC99, /* 0x30 */
	0xCC9A, 0xCC9B, 0xCC9C, 0xCC9D, 0xCCA1, 0xCCA2, 0xCCA3, 0xCCA4, /* 0x40 */
	0xCCA5, 0xCCA6, 0xCCA7, 0xCCA8, 0xCCA9, 0xCCAA, 0xCCAB, 0xCCAC, /* 0x40 */
	0xCCAD, 0xCCAE, 0xCCAF, 0xCCB0, 0xCCB1, 0xCCB3, 0xCCB4, 0xCCB5, /* 0x50 */
	0xCCB6, 0xCCB7, 0xCCB8, 0xCCB9, 0xCCBA, 0xCCBB, 0xCCBC, 0xCCBD, /* 0x50 */
	0xCCC1, 0xCCC2, 0xCCC3, 0xCCC4, 0xCCC5, 0xCCC6, 0xCCC7, 0xCCC8, /* 0x60 */
	0xCCC9, 0xCCCA, 0xCCCB, 0xCCCC, 0xCCCD, 0xCCCE, 0xCCCF, 0xCCD0, /* 0x60 */
	0xCCD1, 0xCCD3, 0xCCD4, 0xCCD5, 0xCCD6, 0xCCD7, 0xCCD8, 0xCCD9, /* 0x70 */
	0xCCDA, 0xCCDB, 0xCCDC, 0xCCDD, 0xCCE1, 0xCCE2, 0xCCE3, 0xCCE4, /* 0x70 */
	0xCCE5, 0xCCE6, 0xCCE7, 0xCCE8, 0xCCE9, 0xCCEA, 0xCCEB, 0xCCEC, /* 0x80 */
	0xCCED, 0xCCEE, 0xCCEF, 0xCCF0, 0xCCF1, 0xCCF3, 0xCCF4, 0xCCF5, /* 0x80 */
	0xCCF6, 0xCCF7, 0xCCF8, 0xCCF9, 0xCCFA, 0xCCFB, 0xCCFC, 0xCCFD, /* 0x90 */
	0xCD41, 0xCD42, 0xCD43, 0xCD44, 0xCD45, 0xCD46, 0xCD47, 0xCD48, /* 0x90 */
	0xCD49, 0xCD4A, 0xCD4B, 0xCD4C, 0xCD4D, 0xCD4E, 0xCD4F, 0xCD50, /* 0xA0 */
	0xCD51, 0xCD53, 0xCD54, 0xCD55, 0xCD56, 0xCD57, 0xCD58, 0xCD59, /* 0xA0 */
	0xCD5A, 0xCD5B, 0xCD5C, 0xCD5D, 0xCD61, 0xCD62, 0xCD63, 0xCD64, /* 0xB0 */
	0xCD65, 0xCD66, 0xCD67, 0xCD68, 0xCD69, 0xCD6A, 0xCD6B, 0xCD6C, /* 0xB0 */
	0xCD6D, 0xCD6E, 0xCD6F, 0xCD70, 0xCD71, 0xCD73, 0xCD74, 0xCD75, /* 0xC0 */
	0xCD76, 0xCD77, 0xCD78, 0xCD79, 0xCD7A, 0xCD7B, 0xCD7C, 0xCD7D, /* 0xC0 */
	0xCD81, 0xCD82, 0xCD83, 0xCD84, 0xCD85, 0xCD86, 0xCD87, 0xCD88, /* 0xD0 */
	0xCD89, 0xCD8A, 0xCD8B, 0xCD8C, 0xCD8D, 0xCD8E, 0xCD8F, 0xCD90, /* 0xD0 */
	0xCD91, 0xCD93, 0xCD94, 0xCD95, 0xCD96, 0xCD97, 0xCD98, 0xCD99, /* 0xE0 */
	0xCD9A, 0xCD9B, 0xCD9C, 0xCD9D, 0xCDA1, 0xCDA2, 0xCDA3, 0xCDA4, /* 0xE0 */
	0xCDA5, 0xCDA6, 0xCDA7, 0xCDA8, 0xCDA9, 0xCDAA, 0xCDAB, 0xCDAC, /* 0xF0 */
	0xCDAD, 0xCDAE, 0xCDAF, 0xCDB0, 0xCDB1, 0xCDB3, 0xCDB4, 0xCDB5	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D4[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xCDB6, 0xCDB7, 0xCDB8, 0xCDB9, 0xCDBA, 0xCDBB, 0xCDBC, 0xCDBD, /* 0x00 */
	0xCDC1, 0xCDC2, 0xCDC3, 0xCDC4, 0xCDC5, 0xCDC6, 0xCDC7, 0xCDC8, /* 0x00 */
	0xCDC9, 0xCDCA, 0xCDCB, 0xCDCC, 0xCDCD, 0xCDCE, 0xCDCF, 0xCDD0, /* 0x10 */
	0xCDD1, 0xCDD3, 0xCDD4, 0xCDD5, 0xCDD6, 0xCDD7, 0xCDD8, 0xCDD9, /* 0x10 */
	0xCDDA, 0xCDDB, 0xCDDC, 0xCDDD, 0xCDE1, 0xCDE2, 0xCDE3, 0xCDE4, /* 0x20 */
	0xCDE5, 0xCDE6, 0xCDE7, 0xCDE8, 0xCDE9, 0xCDEA, 0xCDEB, 0xCDEC, /* 0x20 */
	0xCDED, 0xCDEE, 0xCDEF, 0xCDF0, 0xCDF1, 0xCDF3, 0xCDF4, 0xCDF5, /* 0x30 */
	0xCDF6, 0xCDF7, 0xCDF8, 0xCDF9, 0xCDFA, 0xCDFB, 0xCDFC, 0xCDFD, /* 0x30 */
	0xCE41, 0xCE42, 0xCE43, 0xCE44, 0xCE45, 0xCE46, 0xCE47, 0xCE48, /* 0x40 */
	0xCE49, 0xCE4A, 0xCE4B, 0xCE4C, 0xCE4D, 0xCE4E, 0xCE4F, 0xCE50, /* 0x40 */
	0xCE51, 0xCE53, 0xCE54, 0xCE55, 0xCE56, 0xCE57, 0xCE58, 0xCE59, /* 0x50 */
	0xCE5A, 0xCE5B, 0xCE5C, 0xCE5D, 0xCE61, 0xCE62, 0xCE63, 0xCE64, /* 0x50 */
	0xCE65, 0xCE66, 0xCE67, 0xCE68, 0xCE69, 0xCE6A, 0xCE6B, 0xCE6C, /* 0x60 */
	0xCE6D, 0xCE6E, 0xCE6F, 0xCE70, 0xCE71, 0xCE73, 0xCE74, 0xCE75, /* 0x60 */
	0xCE76, 0xCE77, 0xCE78, 0xCE79, 0xCE7A, 0xCE7B, 0xCE7C, 0xCE7D, /* 0x70 */
	0xCE81, 0xCE82, 0xCE83, 0xCE84, 0xCE85, 0xCE86, 0xCE87, 0xCE88, /* 0x70 */
	0xCE89, 0xCE8A, 0xCE8B, 0xCE8C, 0xCE8D, 0xCE8E, 0xCE8F, 0xCE90, /* 0x80 */
	0xCE91, 0xCE93, 0xCE94, 0xCE95, 0xCE96, 0xCE97, 0xCE98, 0xCE99, /* 0x80 */
	0xCE9A, 0xCE9B, 0xCE9C, 0xCE9D, 0xCEA1, 0xCEA2, 0xCEA3, 0xCEA4, /* 0x90 */
	0xCEA5, 0xCEA6, 0xCEA7, 0xCEA8, 0xCEA9, 0xCEAA, 0xCEAB, 0xCEAC, /* 0x90 */
	0xCEAD, 0xCEAE, 0xCEAF, 0xCEB0, 0xCEB1, 0xCEB3, 0xCEB4, 0xCEB5, /* 0xA0 */
	0xCEB6, 0xCEB7, 0xCEB8, 0xCEB9, 0xCEBA, 0xCEBB, 0xCEBC, 0xCEBD, /* 0xA0 */
	0xCEC1, 0xCEC2, 0xCEC3, 0xCEC4, 0xCEC5, 0xCEC6, 0xCEC7, 0xCEC8, /* 0xB0 */
	0xCEC9, 0xCECA, 0xCECB, 0xCECC, 0xCECD, 0xCECE, 0xCECF, 0xCED0, /* 0xB0 */
	0xCED1, 0xCED3, 0xCED4, 0xCED5, 0xCED6, 0xCED7, 0xCED8, 0xCED9, /* 0xC0 */
	0xCEDA, 0xCEDB, 0xCEDC, 0xCEDD, 0xCEE1, 0xCEE2, 0xCEE3, 0xCEE4, /* 0xC0 */
	0xCEE5, 0xCEE6, 0xCEE7, 0xCEE8, 0xCEE9, 0xCEEA, 0xCEEB, 0xCEEC, /* 0xD0 */
	0xCEED, 0xCEEE, 0xCEEF, 0xCEF0, 0xCEF1, 0xCEF3, 0xCEF4, 0xCEF5, /* 0xD0 */
	0xCEF6, 0xCEF7, 0xCEF8, 0xCEF9, 0xCEFA, 0xCEFB, 0xCEFC, 0xCEFD, /* 0xE0 */
	0xCF41, 0xCF42, 0xCF43, 0xCF44, 0xCF45, 0xCF46, 0xCF47, 0xCF48, /* 0xE0 */
	0xCF49, 0xCF4A, 0xCF4B, 0xCF4C, 0xCF4D, 0xCF4E, 0xCF4F, 0xCF50, /* 0xF0 */
	0xCF51, 0xCF53, 0xCF54, 0xCF55, 0xCF56, 0xCF57, 0xCF58, 0xCF59	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D5[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xCF5A, 0xCF5B, 0xCF5C, 0xCF5D, 0xCF61, 0xCF62, 0xCF63, 0xCF64, /* 0x00 */
	0xCF65, 0xCF66, 0xCF67, 0xCF68, 0xCF69, 0xCF6A, 0xCF6B, 0xCF6C, /* 0x00 */
	0xCF6D, 0xCF6E, 0xCF6F, 0xCF70, 0xCF71, 0xCF73, 0xCF74, 0xCF75, /* 0x10 */
	0xCF76, 0xCF77, 0xCF78, 0xCF79, 0xCF7A, 0xCF7B, 0xCF7C, 0xCF7D, /* 0x10 */
	0xCF81, 0xCF82, 0xCF83, 0xCF84, 0xCF85, 0xCF86, 0xCF87, 0xCF88, /* 0x20 */
	0xCF89, 0xCF8A, 0xCF8B, 0xCF8C, 0xCF8D, 0xCF8E, 0xCF8F, 0xCF90, /* 0x20 */
	0xCF91, 0xCF93, 0xCF94, 0xCF95, 0xCF96, 0xCF97, 0xCF98, 0xCF99, /* 0x30 */
	0xCF9A, 0xCF9B, 0xCF9C, 0xCF9D, 0xCFA1, 0xCFA2, 0xCFA3, 0xCFA4, /* 0x30 */
	0xCFA5, 0xCFA6, 0xCFA7, 0xCFA8, 0xCFA9, 0xCFAA, 0xCFAB, 0xCFAC, /* 0x40 */
	0xCFAD, 0xCFAE, 0xCFAF, 0xCFB0, 0xCFB1, 0xCFB3, 0xCFB4, 0xCFB5, /* 0x40 */
	0xCFB6, 0xCFB7, 0xCFB8, 0xCFB9, 0xCFBA, 0xCFBB, 0xCFBC, 0xCFBD, /* 0x50 */
	0xD061, 0xD062, 0xD063, 0xD064, 0xD065, 0xD066, 0xD067, 0xD068, /* 0x50 */
	0xD069, 0xD06A, 0xD06B, 0xD06C, 0xD06D, 0xD06E, 0xD06F, 0xD070, /* 0x60 */
	0xD071, 0xD073, 0xD074, 0xD075, 0xD076, 0xD077, 0xD078, 0xD079, /* 0x60 */
	0xD07A, 0xD07B, 0xD07C, 0xD07D, 0xD081, 0xD082, 0xD083, 0xD084, /* 0x70 */
	0xD085, 0xD086, 0xD087, 0xD088, 0xD089, 0xD08A, 0xD08B, 0xD08C, /* 0x70 */
	0xD08D, 0xD08E, 0xD08F, 0xD090, 0xD091, 0xD093, 0xD094, 0xD095, /* 0x80 */
	0xD096, 0xD097, 0xD098, 0xD099, 0xD09A, 0xD09B, 0xD09C, 0xD09D, /* 0x80 */
	0xD0A1, 0xD0A2, 0xD0A3, 0xD0A4, 0xD0A5, 0xD0A6, 0xD0A7, 0xD0A8, /* 0x90 */
	0xD0A9, 0xD0AA, 0xD0AB, 0xD0AC, 0xD0AD, 0xD0AE, 0xD0AF, 0xD0B0, /* 0x90 */
	0xD0B1, 0xD0B3, 0xD0B4, 0xD0B5, 0xD0B6, 0xD0B7, 0xD0B8, 0xD0B9, /* 0xA0 */
	0xD0BA, 0xD0BB, 0xD0BC, 0xD0BD, 0xD0C1, 0xD0C2, 0xD0C3, 0xD0C4, /* 0xA0 */
	0xD0C5, 0xD0C6, 0xD0C7, 0xD0C8, 0xD0C9, 0xD0CA, 0xD0CB, 0xD0CC, /* 0xB0 */
	0xD0CD, 0xD0CE, 0xD0CF, 0xD0D0, 0xD0D1, 0xD0D3, 0xD0D4, 0xD0D5, /* 0xB0 */
	0xD0D6, 0xD0D7, 0xD0D8, 0xD0D9, 0xD0DA, 0xD0DB, 0xD0DC, 0xD0DD, /* 0xC0 */
	0xD0E1, 0xD0E2, 0xD0E3, 0xD0E4, 0xD0E5, 0xD0E6, 0xD0E7, 0xD0E8, /* 0xC0 */
	0xD0E9, 0xD0EA, 0xD0EB, 0xD0EC, 0xD0ED, 0xD0EE, 0xD0EF, 0xD0F0, /* 0xD0 */
	0xD0F1, 0xD0F3, 0xD0F4, 0xD0F5, 0xD0F6, 0xD0F7, 0xD0F8, 0xD0F9, /* 0xD0 */
	0xD0FA, 0xD0FB, 0xD0FC, 0xD0FD, 0xD141, 0xD142, 0xD143, 0xD144, /* 0xE0 */
	0xD145, 0xD146, 0xD147, 0xD148, 0xD149, 0xD14A, 0xD14B, 0xD14C, /* 0xE0 */
	0xD14D, 0xD14E, 0xD14F, 0xD150, 0xD151, 0xD153, 0xD154, 0xD155, /* 0xF0 */
	0xD156, 0xD157, 0xD158, 0xD159, 0xD15A, 0xD15B, 0xD15C, 0xD15D	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D6[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD161, 0xD162, 0xD163, 0xD164, 0xD165, 0xD166, 0xD167, 0xD168, /* 0x00 */
	0xD169, 0xD16A, 0xD16B, 0xD16C, 0xD16D, 0xD16E, 0xD16F, 0xD170, /* 0x00 */
	0xD171, 0xD173, 0xD174, 0xD175, 0xD176, 0xD177, 0xD178, 0xD179, /* 0x10 */
	0xD17A, 0xD17B, 0xD17C, 0xD17D, 0xD181, 0xD182, 0xD183, 0xD184, /* 0x10 */
	0xD185, 0xD186, 0xD187, 0xD188, 0xD189, 0xD18A, 0xD18B, 0xD18C, /* 0x20 */
	0xD18D, 0xD18E, 0xD18F, 0xD190, 0xD191, 0xD193, 0xD194, 0xD195, /* 0x20 */
	0xD196, 0xD197, 0xD198, 0xD199, 0xD19A, 0xD19B, 0xD19C, 0xD19D, /* 0x30 */
	0xD1A1, 0xD1A2, 0xD1A3, 0xD1A4, 0xD1A5, 0xD1A6, 0xD1A7, 0xD1A8, /* 0x30 */
	0xD1A9, 0xD1AA, 0xD1AB, 0xD1AC, 0xD1AD, 0xD1AE, 0xD1AF, 0xD1B0, /* 0x40 */
	0xD1B1, 0xD1B3, 0xD1B4, 0xD1B5, 0xD1B6, 0xD1B7, 0xD1B8, 0xD1B9, /* 0x40 */
	0xD1BA, 0xD1BB, 0xD1BC, 0xD1BD, 0xD1C1, 0xD1C2, 0xD1C3, 0xD1C4, /* 0x50 */
	0xD1C5, 0xD1C6, 0xD1C7, 0xD1C8, 0xD1C9, 0xD1CA, 0xD1CB, 0xD1CC, /* 0x50 */
	0xD1CD, 0xD1CE, 0xD1CF, 0xD1D0, 0xD1D1, 0xD1D3, 0xD1D4, 0xD1D5, /* 0x60 */
	0xD1D6, 0xD1D7, 0xD1D8, 0xD1D9, 0xD1DA, 0xD1DB, 0xD1DC, 0xD1DD, /* 0x60 */
	0xD1E1, 0xD1E2, 0xD1E3, 0xD1E4, 0xD1E5, 0xD1E6, 0xD1E7, 0xD1E8, /* 0x70 */
	0xD1E9, 0xD1EA, 0xD1EB, 0xD1EC, 0xD1ED, 0xD1EE, 0xD1EF, 0xD1F0, /* 0x70 */
	0xD1F1, 0xD1F3, 0xD1F4, 0xD1F5, 0xD1F6, 0xD1F7, 0xD1F8, 0xD1F9, /* 0x80 */
	0xD1FA, 0xD1FB, 0xD1FC, 0xD1FD, 0xD241, 0xD242, 0xD243, 0xD244, /* 0x80 */
	0xD245, 0xD246, 0xD247, 0xD248, 0xD249, 0xD24A, 0xD24B, 0xD24C, /* 0x90 */
	0xD24D, 0xD24E, 0xD24F, 0xD250, 0xD251, 0xD253, 0xD254, 0xD255, /* 0x90 */
	0xD256, 0xD257, 0xD258, 0xD259, 0xD25A, 0xD25B, 0xD25C, 0xD25D, /* 0xA0 */
	0xD261, 0xD262, 0xD263, 0xD264, 0xD265, 0xD266, 0xD267, 0xD268, /* 0xA0 */
	0xD269, 0xD26A, 0xD26B, 0xD26C, 0xD26D, 0xD26E, 0xD26F, 0xD270, /* 0xB0 */
	0xD271, 0xD273, 0xD274, 0xD275, 0xD276, 0xD277, 0xD278, 0xD279, /* 0xB0 */
	0xD27A, 0xD27B, 0xD27C, 0xD27D, 0xD281, 0xD282, 0xD283, 0xD284, /* 0xC0 */
	0xD285, 0xD286, 0xD287, 0xD288, 0xD289, 0xD28A, 0xD28B, 0xD28C, /* 0xC0 */
	0xD28D, 0xD28E, 0xD28F, 0xD290, 0xD291, 0xD293, 0xD294, 0xD295, /* 0xD0 */
	0xD296, 0xD297, 0xD298, 0xD299, 0xD29A, 0xD29B, 0xD29C, 0xD29D, /* 0xD0 */
	0xD2A1, 0xD2A2, 0xD2A3, 0xD2A4, 0xD2A5, 0xD2A6, 0xD2A7, 0xD2A8, /* 0xE0 */
	0xD2A9, 0xD2AA, 0xD2AB, 0xD2AC, 0xD2AD, 0xD2AE, 0xD2AF, 0xD2B0, /* 0xE0 */
	0xD2B1, 0xD2B3, 0xD2B4, 0xD2B5, 0xD2B6, 0xD2B7, 0xD2B8, 0xD2B9, /* 0xF0 */
	0xD2BA, 0xD2BB, 0xD2BC, 0xD2BD, 0xD2C1, 0xD2C2, 0xD2C3, 0xD2C4	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D7[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD2C5, 0xD2C6, 0xD2C7, 0xD2C8, 0xD2C9, 0xD2CA, 0xD2CB, 0xD2CC, /* 0x00 */
	0xD2CD, 0xD2CE, 0xD2CF, 0xD2D0, 0xD2D1, 0xD2D3, 0xD2D4, 0xD2D5, /* 0x00 */
	0xD2D6, 0xD2D7, 0xD2D8, 0xD2D9, 0xD2DA, 0xD2DB, 0xD2DC, 0xD2DD, /* 0x10 */
	0xD2E1, 0xD2E2, 0xD2E3, 0xD2E4, 0xD2E5, 0xD2E6, 0xD2E7, 0xD2E8, /* 0x10 */
	0xD2E9, 0xD2EA, 0xD2EB, 0xD2EC, 0xD2ED, 0xD2EE, 0xD2EF, 0xD2F0, /* 0x20 */
	0xD2F1, 0xD2F3, 0xD2F4, 0xD2F5, 0xD2F6, 0xD2F7, 0xD2F8, 0xD2F9, /* 0x20 */
	0xD2FA, 0xD2FB, 0xD2FC, 0xD2FD, 0xD341, 0xD342, 0xD343, 0xD344, /* 0x30 */
	0xD345, 0xD346, 0xD347, 0xD348, 0xD349, 0xD34A, 0xD34B, 0xD34C, /* 0x30 */
	0xD34D, 0xD34E, 0xD34F, 0xD350, 0xD351, 0xD353, 0xD354, 0xD355, /* 0x40 */
	0xD356, 0xD357, 0xD358, 0xD359, 0xD35A, 0xD35B, 0xD35C, 0xD35D, /* 0x40 */
	0xD361, 0xD362, 0xD363, 0xD364, 0xD365, 0xD366, 0xD367, 0xD368, /* 0x50 */
	0xD369, 0xD36A, 0xD36B, 0xD36C, 0xD36D, 0xD36E, 0xD36F, 0xD370, /* 0x50 */
	0xD371, 0xD373, 0xD374, 0xD375, 0xD376, 0xD377, 0xD378, 0xD379, /* 0x60 */
	0xD37A, 0xD37B, 0xD37C, 0xD37D, 0xD381, 0xD382, 0xD383, 0xD384, /* 0x60 */
	0xD385, 0xD386, 0xD387, 0xD388, 0xD389, 0xD38A, 0xD38B, 0xD38C, /* 0x70 */
	0xD38D, 0xD38E, 0xD38F, 0xD390, 0xD391, 0xD393, 0xD394, 0xD395, /* 0x70 */
	0xD396, 0xD397, 0xD398, 0xD399, 0xD39A, 0xD39B, 0xD39C, 0xD39D, /* 0x80 */
	0xD3A1, 0xD3A2, 0xD3A3, 0xD3A4, 0xD3A5, 0xD3A6, 0xD3A7, 0xD3A8, /* 0x80 */
	0xD3A9, 0xD3AA, 0xD3AB, 0xD3AC, 0xD3AD, 0xD3AE, 0xD3AF, 0xD3B0, /* 0x90 */
	0xD3B1, 0xD3B3, 0xD3B4, 0xD3B5, 0xD3B6, 0xD3B7, 0xD3B8, 0xD3B9, /* 0x90 */
	0xD3BA, 0xD3BB, 0xD3BC, 0xD3BD									/* 0xA0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_F9[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE0D0, 0xE0D6, 0xE0E7, 0xE1CF, 0xE1E8, 0xE23D, 0xE2FB, 0xE332, /* 0x00 */
	0xE348, 0xE360, 0xE36D, 0xE3D4, 0xE3D5, 0xE3D8, 0xE3DB, 0xE3DC, /* 0x00 */
	0xE3DD, 0xE3DE, 0xE3DF, 0xE3E0, 0xE3E2, 0xE3E3, 0xE3E4, 0xE3E5, /* 0x10 */
	0xE3E6, 0xE3E8, 0xE3E9, 0xE3EA, 0xE3EB, 0xE3ED, 0xE3EF, 0xE3F0, /* 0x10 */
	0xE3F2, 0xE3F6, 0xE3FA, 0xE3FC, 0xE3FD, 0xE3FE, 0xE432, 0xE433, /* 0x20 */
	0xE437, 0xE438, 0xE439, 0xE43A, 0xE43B, 0xE43D, 0xE442, 0xE44E, /* 0x20 */
	0xE452, 0xE453, 0xE454, 0xE456, 0xE457, 0xE458, 0xE459, 0xE45A, /* 0x30 */
	0xE45B, 0xE45D, 0xE45E, 0xE45F, 0xE460, 0xE461, 0xE462, 0xE463, /* 0x30 */
	0xE464, 0xE465, 0xE466, 0xE467, 0xE469, 0xE46A, 0xE46E, 0xE46F, /* 0x40 */
	0xE471, 0xE472, 0xE474, 0xE475, 0xE476, 0xE477, 0xE478, 0xE479, /* 0x40 */
	0xE47A, 0xE47B, 0xE492, 0xE493, 0xE494, 0xE495, 0xE496, 0xE497, /* 0x50 */
	0xE499, 0xE49A, 0xE576, 0xE59E, 0xE5A5, 0xE5AB, 0xE5AE, 0xE648, /* 0x50 */
	0xE65D, 0xE6CB, 0xE6E4, 0xE8C5, 0xE8E4, 0xE935, 0xE9A5, 0xE9D5, /* 0x60 */
	0xE9F4, 0xEA9E, 0xEAA0, 0xEAB3, 0xEAE1, 0xEAE8, 0xEB93, 0xEBAD, /* 0x60 */
	0xEBED, 0xECF5, 0xED31, 0xED39, 0xEDAE, 0xEDB1, 0xEDB2, 0xEDB9, /* 0x70 */
	0xEDBB, 0xEDBC, 0xEDC4, 0xEDCE, 0xEDD0, 0xEDD2, 0xEDD6, 0xEDFA, /* 0x70 */
	0xEDFB, 0xEDFC, 0xEDFE, 0xEE31, 0xEE34, 0xEE37, 0xEE3D, 0xEE3F, /* 0x80 */
	0xEE40, 0xEE41, 0xEE43, 0xEE47, 0xEE48, 0xEE4C, 0xEE54, 0xEE56, /* 0x80 */
	0xEE57, 0xEE5A, 0xEE62, 0xEE66, 0xEE69, 0xEE6C, 0xEE6F, 0xEE71, /* 0x90 */
	0xEE74, 0xEE75, 0xEE76, 0xEE78, 0xEE7A, 0xEE7B, 0xEE7C, 0xEE91, /* 0x90 */
	0xEE93, 0xEE94, 0xEE97, 0xEE98, 0xEE99, 0xEE9B, 0xEEA1, 0xEEA6, /* 0xA0 */
	0xEEA9, 0xEEAA, 0xEEAC, 0xEEAD, 0xEEB0, 0xEEBF, 0xEEC1, 0xEEC6, /* 0xA0 */
	0xEEC7, 0xEECB, 0xEECD, 0xEECF, 0xEED0, 0xEED3, 0xEEDF, 0xEEE4, /* 0xB0 */
	0xEEE6, 0xEEF7, 0xEF77, 0xEF78, 0xEF92, 0xEF93, 0xEF99, 0xEF9B, /* 0xB0 */
	0xEF9D, 0xEFA0, 0xEFA7, 0xEFAC, 0xEFCC, 0xEFF7, 0xF051, 0xF075, /* 0xC0 */
	0xF096, 0xF099, 0xF09E, 0xF0A0, 0xF0A4, 0xF0A7, 0xF0A9, 0xF0AA, /* 0xC0 */
	0xF0BA, 0xF0BB, 0xF0BD, 0xF0C1, 0xF0C2, 0xF0C6, 0xF0C7, 0xF0CC, /* 0xD0 */
	0xF0CF, 0xF0D0, 0xF0D1, 0xF0D2, 0xF0D8, 0xF136, 0xF137, 0xF13A, /* 0xD0 */
	0xF13F, 0xF140, 0xF141, 0xF142, 0xF145, 0xF148, 0xF14A, 0xF150, /* 0xE0 */
	0xF151, 0xF155, 0xF156, 0xF159, 0xF15A, 0xF165, 0xF16D, 0xF16E, /* 0xE0 */
	0xF171, 0xF174, 0xF177, 0xF178, 0xF199, 0xF19A, 0xF19C, 0xF1A1, /* 0xF0 */
	0xF1A2, 0xF1A3, 0xF1EE, 0xF26B, 0xF44D, 0xF49C, 0xF4B1, 0xF537	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_FA[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF57E, 0xF696, 0xF698, 0xF6B8, 0xF6C8, 0xF6D3, 0xF76B, 0xF792, /* 0x00 */
	0xF831, 0xF832, 0xF876, 0xF939									/* 0x00 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_JOHAB_FF[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xDA31, 0xDA32, 0xDA33, 0xDA34, 0xDA35, 0xDA36, 0xDA37, /* 0x00 */
	0xDA38, 0xDA39, 0xDA3A, 0xDA3B, 0xDA3C, 0xDA3D, 0xDA3E, 0xDA3F, /* 0x00 */
	0xDA40, 0xDA41, 0xDA42, 0xDA43, 0xDA44, 0xDA45, 0xDA46, 0xDA47, /* 0x10 */
	0xDA48, 0xDA49, 0xDA4A, 0xDA4B, 0xDA4C, 0xDA4D, 0xDA4E, 0xDA4F, /* 0x10 */
	0xDA50, 0xDA51, 0xDA52, 0xDA53, 0xDA54, 0xDA55, 0xDA56, 0xDA57, /* 0x20 */
	0xDA58, 0xDA59, 0xDA5A, 0xDA5B, 0xDA5C, 0xDA5D, 0xDA5E, 0xDA5F, /* 0x20 */
	0xDA60, 0xDA61, 0xDA62, 0xDA63, 0xDA64, 0xDA65, 0xDA66, 0xDA67, /* 0x30 */
	0xDA68, 0xDA69, 0xDA6A, 0xDA6B, 0xD93C, 0xDA6D, 0xDA6E, 0xDA6F, /* 0x30 */
	0xDA70, 0xDA71, 0xDA72, 0xDA73, 0xDA74, 0xDA75, 0xDA76, 0xDA77, /* 0x40 */
	0xDA78, 0xDA79, 0xDA7A, 0xDA7B, 0xDA7C, 0xDA7D, 0xDA7E, 0xDA91, /* 0x40 */
	0xDA92, 0xDA93, 0xDA94, 0xDA95, 0xDA96, 0xDA97, 0xDA98, 0xDA99, /* 0x50 */
	0xDA9A, 0xDA9B, 0xDA9C, 0xDA9D, 0xDA9E, 0xDA9F, 0xD9A6, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xD95B, 0xD95C, 0xD9A0, 0xDAA0, 	 0, 0xD95D, 0xDA6C			/* 0xE0 */
};

