The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

/* This file was auto-generated by gen_codemap.pl */
/* generated at: Wed Jan 16 10:49:33 2008 */

/* $Id: getcode_map.c 5273 2008-01-21 05:58:14Z hio $ */

#include "getcode.h"

/* ----------------------------------------------------------------------------
 * << ascii >>
 * IVNALID    = 127
 * VALID      = 0
 */
const unsigned char map_ascii[1][256] =
{
  {
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [0] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  0, /* [1] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [2] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [7] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [8] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [9] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [a] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [b] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [c] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [d] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [e] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [f] */
  },
};

/* ----------------------------------------------------------------------------
 * << eucjp >>
 * IVNALID    = 127
 * VALID      = 0
 * ASCII      = 0
 * EUCJP:0212 = 1..2
 * EUCJP:C    = 3..3
 * EUCJP:KANA = 4..4
 */
const unsigned char map_eucjp[5][256] =
{
  { /* [0] first */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [0] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  0, /* [1] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [2] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [7] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,  4,  1, /* [8] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [9] */
   127,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3, /* [a] */
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3, /* [b] */
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3, /* [c] */
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3, /* [d] */
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3, /* [e] */
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,127, /* [f] */
  },
  { /* [1] 0212:3:2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [4] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [5] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [6] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [7] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [8] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [9] */
   127,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, /* [a] */
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, /* [b] */
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, /* [c] */
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, /* [d] */
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, /* [e] */
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,127, /* [f] */
  },
  { /* [2] 0212:3 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [4] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [5] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [6] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [7] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [8] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [9] */
   127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [f] */
  },
  { /* [3] c:2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [4] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [5] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [6] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [7] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [8] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [9] */
   127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [f] */
  },
  { /* [4] kana:2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [4] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [5] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [6] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [7] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [8] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [9] */
   127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [e] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [f] */
  },
};

/* ----------------------------------------------------------------------------
 * << sjis >>
 * IVNALID    = 127
 * VALID      = 0
 * ASCII      = 0
 * SJIS:DBCS  = 1..1
 * SJIS:KANA  = 0
 */
const unsigned char map_sjis[2][256] =
{
  { /* [0] first */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [0] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  0, /* [1] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [2] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [7] */
   127,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [8] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [9] */
   127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [e] */
   127,127,127,127,127,127,127,127,127,127,  1,  1,  1,127,127,127, /* [f] */
  },
  { /* [1] c:2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
};

/* ----------------------------------------------------------------------------
 * << utf8 >>
 * IVNALID    = 127
 * VALID      = 0
 * ASCII      = 0
 * UTF8:2     = 5
 * UTF8:3     = 4
 * UTF8:4     = 3
 * UTF8:5     = 2
 * UTF8:6     = 1..5
 */
const unsigned char map_utf8[6][256] =
{
  { /* [0] first */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
     5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
     4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
     3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  1,  1,127,127,
  },
  { /* [1] utf8:6:2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [2] utf8:6:3 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [3] utf8:6:4 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
     4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
     4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
     4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [4] utf8:6:5 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
     5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
     5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
     5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [5] utf8:6:6 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
};

/* ----------------------------------------------------------------------------
 * << jis >>
 * IVNALID    = 127
 * VALID      = 0
 * ASCII      = 0
 */
const unsigned char map_jis[11][256] =
{
  { /* [0] first */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [1] jis_0208(1978,1983):2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,  2,127,  3,127,  7,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [2] jis#2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     8,127,  8,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [3] jis#3 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     4,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [4] jis#4 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,  5,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [5] jis#5 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,  6,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [6] jis#6 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,  8,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [7] jis#7 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,  0,127,127,127,127,127,127, 10,  0,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [8] jis#loop1 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,  1,127,127,127,127,
   127,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,127,127,127,127,127,127,127,  9,  9,  9,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,127,127,127,127,127,127,127,  9,  9,  9,127,
  },
  { /* [9] jis#loop2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,127,
  },
  { /* [ 10,] kana */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,  1,127,127,127,127,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
};

/* ----------------------------------------------------------------------------
 * << jis:jsky >>
 * IVNALID    = 127
 * VALID      = 0
 * ASCII      = 0
 */
const unsigned char map_jis_jsky[13][256] =
{
  { /* [0] first */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [1] jis_0208(1978,1983):2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,  2,127,  3,127,  7,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [2] jis#2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     8,127,  8,127,127, 11, 11, 11,127,127,127,127,127,127,127,
    11, 11,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [3] jis#3 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     4,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [4] jis#4 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,  5,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [5] jis#5 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,  6,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [6] jis#6 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,  8,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [7] jis#7 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,  0,127,127,127,127,127,127, 10,  0,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [8] jis#loop1 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,  1,127,127,127,127,
   127,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,127,127,127,127,127,127,127,  9,  9,  9,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,127,127,127,127,127,127,127,  9,  9,  9,127,
  },
  { /* [9] jis#loop2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,127,
  },
  { /* [ 10,] kana */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,  1,127,127,127,127,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [12] jis#j2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,127,127,127,127,127,
  },
  { /* [0] jis#jend */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,  0,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
};

/* ----------------------------------------------------------------------------
 * << jis:au >>
 * IVNALID    = 127
 * VALID      = 0
 * ASCII      = 0
 */
const unsigned char map_jis_au[12][256] =
{
  { /* [0] first */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [1] jis_0208(1978,1983):2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,  2,127,  3,127,  7,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [2] jis#2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     8,127,  8,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [3] jis#3 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
     4,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [4] jis#4 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,  5,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [5] jis#5 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,  6,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [6] jis#6 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,  8,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [7] jis#7 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,  0,127,127,127,127,127,127, 10,  0,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [8] jis#loop1 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,  1,127,127,127,127,
   127,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
     9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,127,
  },
  { /* [9] jis#loop2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
     8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,127,
  },
  { /* [ 10,] kana */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,  1,127,127,127,127,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
};

/* ----------------------------------------------------------------------------
 * << utf32-be >>
 * IVNALID    = 127
 * VALID      = 0
 * UTF32-BE   = 1..3
 */
const unsigned char map_utf32_be[4][256] =
{
  { /* [0] first */
     1,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [1] utf32-be:4:2 */
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [2] utf32-be:4:3 */
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
  },
  { /* [3] utf32-be:4 */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  },
};

/* ----------------------------------------------------------------------------
 * << utf32-le >>
 * IVNALID    = 127
 * VALID      = 0
 * UTF32-LE   = 1..3
 */
const unsigned char map_utf32_le[4][256] =
{
  { /* [0] first */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
  },
  { /* [1] utf32-le:4:2 */
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
  },
  { /* [2] utf32-le:4:3 */
     3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
     3,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
  { /* [  3,] utf32-le:4 */
     0,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
  },
};

/* ----------------------------------------------------------------------------
 * << sjis:jsky >>
 * IVNALID    = 127
 * VALID      = 0
 * ASCII      = 0
 * SJIS:C     = 1..1
 * SJIS:KANA  = 0
 */
const unsigned char map_sjis_jsky[5][256] =
{
  { /* [0] first */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [0] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0, /* [1] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [2] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [7] */
   127,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [8] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [9] */
   127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [e] */
   127,127,127,127,127,127,127,127,127,127,  1,  1,  1,127,127,127, /* [f] */
  },
  { /* [1] c:2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
  { /* [2] jsy-start:2 */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [0] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0, /* [1] */
     0,  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [2] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [7] */
   127,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [8] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [9] */
   127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,127, /* [e] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [f] */
  },
  { /* [3] jsky-esc:1 */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [0] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [1] */
     0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4, /* [2] */
     4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,  4,  4,  4, /* [3] */
     4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4, /* [4] */
     4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4, /* [5] */
     4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4, /* [6] */
     4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,  0,  0,  0,  0, /* [7] */
   127,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [8] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [9] */
   127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,127, /* [e] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [f] */
  },
  { /* [4] jsky-esc:2 */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [0] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [1] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [2] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [7] */
   127,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [8] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [9] */
   127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,127, /* [e] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [f] */
  },
};

/* ----------------------------------------------------------------------------
 * << sjis:imode >>
 * IVNALID    = 127
 * VALID      = 0
 * ASCII      = 0
 * SJIS:C     = 1..1
 * SJIS:KANA  = 0
 * emoji:F8xx = 2
 * emoji:F9xx = 3
 */
const unsigned char map_sjis_imode[4][256] =
{
  { /* [0] first */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [0] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  0, /* [1] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [2] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [7] */
   127,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [8] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [9] */
   127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [e] */
   127,127,127,127,127,127,127,127,  2,  3,  1,  1,  1,127, /* [f] */
  },
  { /* [1] c:2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
  { /* [  2,] imode-emoji(1):2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
  { /* [  3,] imode-emoji(2):2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
};

/* ----------------------------------------------------------------------------
 * << sjis:doti >>
 * IVNALID    = 127
 * VALID      = 0
 * ASCII      = 0
 * SJIS:C     = 1..1
 * SJIS:KANA  = 0
 */
const unsigned char map_sjis_doti[7][256] =
{
  { /* [0] first */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [0] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  0, /* [1] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [2] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [7] */
   127,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [8] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [9] */
   127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [e] */
     2,  3,  4,  5,  6,127,127,127,127,127,  1,  1,  1,127,127,127, /* [f] */
  },
  { /* [1] c:2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
  { /* [2] doti-emoji(1):2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
  { /* [3] doti-emoji(2):2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,127,127,127,127,127,127,127,127,127, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
  { /* [4] doti-emoji(3):2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
  { /* [5] doti-emoji(4):2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
  { /* [6] doti-emoji(5):2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [f] */
  },
};

/* ----------------------------------------------------------------------------
 * << sjis:au >>
 * IVNALID    = 127
 * VALID      = 0
 * ASCII      = 0
 * SJIS:DBCS  = 1..1
 * SJIS:KANA  = 0
 * SJIS:AU    = 2..2
 */
const unsigned char map_sjis_au[3][256] =
{
  { /* [0] first */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [0] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  0, /* [1] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [2] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [7] */
   127,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [8] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [9] */
   127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, /* [e] */
   127,127,127,  2,  2,  2,  2,127,127,127,  1,  1,  1,127,127,127, /* [f] */
  },
  { /* [1] c:2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
  { /* [2] au:2 */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [0] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [1] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [2] */
   127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, /* [3] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [4] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [5] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [6] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [7] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [8] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [9] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [a] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [b] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [c] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [d] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* [e] */
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127, /* [f] */
  },
};