"Fossies" - the Fresh Open Source Software Archive

Member "xpdf-4.04/xpdf/UnicodeTypeTable.cc" (18 Apr 2022, 73118 Bytes) of package /linux/misc/xpdf-4.04.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.


    1 //========================================================================
    2 //
    3 // UnicodeTypeTable.cc
    4 //
    5 // Copyright 2004-2021 Glyph & Cog, LLC
    6 //
    7 //========================================================================
    8 
    9 #include <aconf.h>
   10 #include <stdlib.h>
   11 #include "gmempp.h"
   12 #include "CharTypes.h"
   13 #include "UnicodeTypeTable.h"
   14 
   15 struct UnicodeMapTableEntry {
   16   const char *vector;
   17   char type;
   18 };
   19 
   20 struct UnicodeCaseTableVector {
   21   Unicode codes[256];
   22 };
   23 
   24 static UnicodeMapTableEntry typeTable[256] = {
   25   { "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...NNNNN.....##########.NNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.N....NNNNLNNNNN..##NLNNN#LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL", 'X' },
   26   { NULL, 'L' },
   27   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLNNNNNNNNNNNNNNLLNNNNNNNNNNNNNNLLLLLNNNNNNNNNLNNNNNNNNNNNNNNNNN", 'X' },
   28   { "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLNNLLLLLLLLNLNNNNNNLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLL", 'X' },
   29   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
   30   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNN.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRNRNNRNNRNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR###########", 'X' },
   31   { "######NNR..R.RNNNNNNNNNNNNNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNNNNNNNNNNNNNNNNNNN##########.##RRRNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNNNNN#NNNNNNNRRNNNNNNNRR##########RRRRRR", 'X' },
   32   { "RRRRRRRRRRRRRRRRRNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNNNNNNNNNNNNNNNNNNNNNNNNNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNNNNNNNNNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNNNNNNNRRNNNNRNNNRR", 'X' },
   33   { "RRRRRRRRRRRRRRRRRRRRRRNNNNRNNNNNNNNNRNNNRNNNNNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNNNNNNNNNNNNNNNNNNNNNNNN#NNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   34   { "NNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLNLLLLNNNNNNNNLLLLNLLLNNNNNNNLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLNNNNLLLLLLLLNLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLL..LLLLLLL.LLNN", 'X' },
   35   { "NNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLNLNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLNNNNNNNNLLLLNLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLL.LLLLLLLLNNNNNN", 'X' },
   36   { "NNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLNLNNNNLLLLLLLLNNNNNNNNNNLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNN.NNNNNN", 'X' },
   37   { "NLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLNNNNNNNNNNNNNNNNNNLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLNNNNNNNLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLNNNNNNNNNNNNN", 'X' },
   38   { "NNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLNNNNLLLLLLLLNLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNLLLLLLLNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
   39   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLNNNNNNN.....LLLLLLLNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLNNNNNNNNNLLLLLLLLLLNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
   40   { "LLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLNLNLNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNLNNNNNLNNLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
   41   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNLNNNNNNLNNLLNNLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLNNNLLLLLLLLLLLLLLLLNNNNLLLLLLLLLLLLLNLLNNLLLLLLNLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
   42   { NULL, 'L' },
   43   { NULL, 'L' },
   44   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNN", 'X' },
   45   { "NLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
   46   { NULL, 'L' },
   47   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
   48   { "LLLLLLLLLLLLLLLLLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLNNNNNNNLLLLLLLLNLLNNNNNNNNNNNLLLLLLL.LNLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   49   { "NNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
   50   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNLLLLNNLLLLLLLLLNLLLLLLNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   51   { "LLLLLLLLLLLLLLLLLLLLLLLNNLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLNNNNNNNNNLNLLNNNNNNNNLLLLLLNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   52   { "NNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLNNNNNLNLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNLLLLLLLLLNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNLLNNLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLNNLLLNLNNNLLLLLLLLLLLLLL", 'X' },
   53   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNLNNNNNNNNNNNNNLNNNNNNNLLLLNLLLLLLNLLLNNLLLLLL", 'X' },
   54   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   55   { NULL, 'L' },
   56   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLNNNLLLLLLLLLLLNNNLLLLLLLLLLLLNNNNLLLLLLLLLLLLLNNNLLLLLLLLLLLLLNNN", 'X' },
   57   { "NNNNNNNNNNNNNNLRNNNNNNNNNNNNNNNNNNNNNNNNNNLRNLR......NNNNNNNNNNNNNNN.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLRNNNNNNNN#L########..NNNL##########..NNNLLLLLLLLLLLLLL...................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   58   { "NNLNNNNLNNLLLLLLLLLLNLNNNLLLLLNNNNNNLNLNLNLLLL.LLLLLLLLLLLNNLLLLNNNNNLLLLLNNNNLLNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   59   { "NNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   60   { "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   61   { "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN####################LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   62   { NULL, 'N' },
   63   { "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   64   { NULL, 'N' },
   65   { NULL, 'L' },
   66   { NULL, 'N' },
   67   { NULL, 'N' },
   68   { NULL, 'N' },
   69   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLNNNLLNNNNNNNNNNNN", 'X' },
   70   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
   71   { NULL, 'N' },
   72   { NULL, 'N' },
   73   { "NNNNNLLLNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLNNNNLLNLLLLLNNLLLLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLL", 'X' },
   74   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
   75   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNLLLLLLLLLLLLNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
   76   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN", 'X' },
   77   { NULL, 'L' },
   78   { NULL, 'L' },
   79   { NULL, 'L' },
   80   { NULL, 'L' },
   81   { NULL, 'L' },
   82   { NULL, 'L' },
   83   { NULL, 'L' },
   84   { NULL, 'L' },
   85   { NULL, 'L' },
   86   { NULL, 'L' },
   87   { NULL, 'L' },
   88   { NULL, 'L' },
   89   { NULL, 'L' },
   90   { NULL, 'L' },
   91   { NULL, 'L' },
   92   { NULL, 'L' },
   93   { NULL, 'L' },
   94   { NULL, 'L' },
   95   { NULL, 'L' },
   96   { NULL, 'L' },
   97   { NULL, 'L' },
   98   { NULL, 'L' },
   99   { NULL, 'L' },
  100   { NULL, 'L' },
  101   { NULL, 'L' },
  102   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
  103   { NULL, 'L' },
  104   { NULL, 'L' },
  105   { NULL, 'L' },
  106   { NULL, 'L' },
  107   { NULL, 'L' },
  108   { NULL, 'L' },
  109   { NULL, 'L' },
  110   { NULL, 'L' },
  111   { NULL, 'L' },
  112   { NULL, 'L' },
  113   { NULL, 'L' },
  114   { NULL, 'L' },
  115   { NULL, 'L' },
  116   { NULL, 'L' },
  117   { NULL, 'L' },
  118   { NULL, 'L' },
  119   { NULL, 'L' },
  120   { NULL, 'L' },
  121   { NULL, 'L' },
  122   { NULL, 'L' },
  123   { NULL, 'L' },
  124   { NULL, 'L' },
  125   { NULL, 'L' },
  126   { NULL, 'L' },
  127   { NULL, 'L' },
  128   { NULL, 'L' },
  129   { NULL, 'L' },
  130   { NULL, 'L' },
  131   { NULL, 'L' },
  132   { NULL, 'L' },
  133   { NULL, 'L' },
  134   { NULL, 'L' },
  135   { NULL, 'L' },
  136   { NULL, 'L' },
  137   { NULL, 'L' },
  138   { NULL, 'L' },
  139   { NULL, 'L' },
  140   { NULL, 'L' },
  141   { NULL, 'L' },
  142   { NULL, 'L' },
  143   { NULL, 'L' },
  144   { NULL, 'L' },
  145   { NULL, 'L' },
  146   { NULL, 'L' },
  147   { NULL, 'L' },
  148   { NULL, 'L' },
  149   { NULL, 'L' },
  150   { NULL, 'L' },
  151   { NULL, 'L' },
  152   { NULL, 'L' },
  153   { NULL, 'L' },
  154   { NULL, 'L' },
  155   { NULL, 'L' },
  156   { NULL, 'L' },
  157   { NULL, 'L' },
  158   { NULL, 'L' },
  159   { NULL, 'L' },
  160   { NULL, 'L' },
  161   { NULL, 'L' },
  162   { NULL, 'L' },
  163   { NULL, 'L' },
  164   { NULL, 'L' },
  165   { NULL, 'L' },
  166   { NULL, 'L' },
  167   { NULL, 'L' },
  168   { NULL, 'L' },
  169   { NULL, 'L' },
  170   { NULL, 'L' },
  171   { NULL, 'L' },
  172   { NULL, 'L' },
  173   { NULL, 'L' },
  174   { NULL, 'L' },
  175   { NULL, 'L' },
  176   { NULL, 'L' },
  177   { NULL, 'L' },
  178   { NULL, 'L' },
  179   { NULL, 'L' },
  180   { NULL, 'L' },
  181   { NULL, 'L' },
  182   { NULL, 'L' },
  183   { NULL, 'L' },
  184   { NULL, 'L' },
  185   { NULL, 'L' },
  186   { NULL, 'L' },
  187   { NULL, 'L' },
  188   { NULL, 'L' },
  189   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
  190   { NULL, 'L' },
  191   { "LLLLLLLLLLLLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLNNNNNNNN", 'X' },
  192   { "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
  193   { "LLNLLLNLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLNNLNNNNNLLLLLLLLLLL..LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLN", 'X' },
  194   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLNNNNLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
  195   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLNNLLNNLLLLLLLLLLLLNLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLNNNLLNNLLLLLNNLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLNLLLLLLLLL", 'X' },
  196   { "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLNLLLLNLLLLLLLLLLLLLLLLLL", 'X' },
  197   { NULL, 'L' },
  198   { NULL, 'L' },
  199   { NULL, 'L' },
  200   { NULL, 'L' },
  201   { NULL, 'L' },
  202   { NULL, 'L' },
  203   { NULL, 'L' },
  204   { NULL, 'L' },
  205   { NULL, 'L' },
  206   { NULL, 'L' },
  207   { NULL, 'L' },
  208   { NULL, 'L' },
  209   { NULL, 'L' },
  210   { NULL, 'L' },
  211   { NULL, 'L' },
  212   { NULL, 'L' },
  213   { NULL, 'L' },
  214   { NULL, 'L' },
  215   { NULL, 'L' },
  216   { NULL, 'L' },
  217   { NULL, 'L' },
  218   { NULL, 'L' },
  219   { NULL, 'L' },
  220   { NULL, 'L' },
  221   { NULL, 'L' },
  222   { NULL, 'L' },
  223   { NULL, 'L' },
  224   { NULL, 'L' },
  225   { NULL, 'L' },
  226   { NULL, 'L' },
  227   { NULL, 'L' },
  228   { NULL, 'L' },
  229   { NULL, 'L' },
  230   { NULL, 'L' },
  231   { NULL, 'L' },
  232   { NULL, 'L' },
  233   { NULL, 'L' },
  234   { NULL, 'L' },
  235   { NULL, 'L' },
  236   { NULL, 'L' },
  237   { NULL, 'L' },
  238   { NULL, 'L' },
  239   { NULL, 'L' },
  240   { NULL, 'L' },
  241   { NULL, 'L' },
  242   { NULL, 'L' },
  243   { NULL, 'L' },
  244   { NULL, 'L' },
  245   { NULL, 'L' },
  246   { NULL, 'L' },
  247   { NULL, 'L' },
  248   { NULL, 'L' },
  249   { NULL, 'L' },
  250   { NULL, 'L' },
  251   { NULL, 'L' },
  252   { NULL, 'L' },
  253   { NULL, 'L' },
  254   { NULL, 'L' },
  255   { NULL, 'L' },
  256   { NULL, 'L' },
  257   { NULL, 'L' },
  258   { NULL, 'L' },
  259   { NULL, 'L' },
  260   { NULL, 'L' },
  261   { NULL, 'L' },
  262   { NULL, 'L' },
  263   { NULL, 'L' },
  264   { NULL, 'L' },
  265   { NULL, 'L' },
  266   { NULL, 'L' },
  267   { NULL, 'L' },
  268   { NULL, 'L' },
  269   { NULL, 'L' },
  270   { NULL, 'L' },
  271   { NULL, 'L' },
  272   { NULL, 'L' },
  273   { NULL, 'L' },
  274   { NULL, 'L' },
  275   { NULL, 'L' },
  276   { "LLLLLLLLLLLLLLLLLLLLLLLLRRRRRRNRRRRRRRRRR.RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", 'X' },
  277   { NULL, 'R' },
  278   { "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNN", 'X' },
  279   { "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.N.NN.NNNNNNNNN.NN..NNNNN..NRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNN", 'X' },
  280   { "NNN...NNNNN.....##########.NNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.....NNN..NNNNNNNNNNNNNNNNNNNNNNNLL", 'X' }
  281 };
  282 
  283 static UnicodeCaseTableVector caseTable00 = {{
  284   0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
  285   0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
  286   0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
  287   0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
  288   0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
  289   0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
  290   0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
  291   0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
  292   0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
  293   0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
  294   0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
  295   0x0078, 0x0079, 0x007a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
  296   0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
  297   0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
  298   0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
  299   0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
  300   0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
  301   0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,
  302   0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
  303   0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,
  304   0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
  305   0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
  306   0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x03bc, 0x00b6, 0x00b7,
  307   0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
  308   0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
  309   0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
  310   0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00d7,
  311   0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00df,
  312   0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
  313   0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
  314   0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
  315   0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
  316 }};
  317 static UnicodeCaseTableVector caseTable01 = {{
  318   0x0101, 0x0101, 0x0103, 0x0103, 0x0105, 0x0105, 0x0107, 0x0107,
  319   0x0109, 0x0109, 0x010b, 0x010b, 0x010d, 0x010d, 0x010f, 0x010f,
  320   0x0111, 0x0111, 0x0113, 0x0113, 0x0115, 0x0115, 0x0117, 0x0117,
  321   0x0119, 0x0119, 0x011b, 0x011b, 0x011d, 0x011d, 0x011f, 0x011f,
  322   0x0121, 0x0121, 0x0123, 0x0123, 0x0125, 0x0125, 0x0127, 0x0127,
  323   0x0129, 0x0129, 0x012b, 0x012b, 0x012d, 0x012d, 0x012f, 0x012f,
  324   0x0130, 0x0131, 0x0133, 0x0133, 0x0135, 0x0135, 0x0137, 0x0137,
  325   0x0138, 0x013a, 0x013a, 0x013c, 0x013c, 0x013e, 0x013e, 0x0140,
  326   0x0140, 0x0142, 0x0142, 0x0144, 0x0144, 0x0146, 0x0146, 0x0148,
  327   0x0148, 0x0149, 0x014b, 0x014b, 0x014d, 0x014d, 0x014f, 0x014f,
  328   0x0151, 0x0151, 0x0153, 0x0153, 0x0155, 0x0155, 0x0157, 0x0157,
  329   0x0159, 0x0159, 0x015b, 0x015b, 0x015d, 0x015d, 0x015f, 0x015f,
  330   0x0161, 0x0161, 0x0163, 0x0163, 0x0165, 0x0165, 0x0167, 0x0167,
  331   0x0169, 0x0169, 0x016b, 0x016b, 0x016d, 0x016d, 0x016f, 0x016f,
  332   0x0171, 0x0171, 0x0173, 0x0173, 0x0175, 0x0175, 0x0177, 0x0177,
  333   0x00ff, 0x017a, 0x017a, 0x017c, 0x017c, 0x017e, 0x017e, 0x0073,
  334   0x0180, 0x0253, 0x0183, 0x0183, 0x0185, 0x0185, 0x0254, 0x0188,
  335   0x0188, 0x0256, 0x0257, 0x018c, 0x018c, 0x018d, 0x01dd, 0x0259,
  336   0x025b, 0x0192, 0x0192, 0x0260, 0x0263, 0x0195, 0x0269, 0x0268,
  337   0x0199, 0x0199, 0x019a, 0x019b, 0x026f, 0x0272, 0x019e, 0x0275,
  338   0x01a1, 0x01a1, 0x01a3, 0x01a3, 0x01a5, 0x01a5, 0x0280, 0x01a8,
  339   0x01a8, 0x0283, 0x01aa, 0x01ab, 0x01ad, 0x01ad, 0x0288, 0x01b0,
  340   0x01b0, 0x028a, 0x028b, 0x01b4, 0x01b4, 0x01b6, 0x01b6, 0x0292,
  341   0x01b9, 0x01b9, 0x01ba, 0x01bb, 0x01bd, 0x01bd, 0x01be, 0x01bf,
  342   0x01c0, 0x01c1, 0x01c2, 0x01c3, 0x01c6, 0x01c6, 0x01c6, 0x01c9,
  343   0x01c9, 0x01c9, 0x01cc, 0x01cc, 0x01cc, 0x01ce, 0x01ce, 0x01d0,
  344   0x01d0, 0x01d2, 0x01d2, 0x01d4, 0x01d4, 0x01d6, 0x01d6, 0x01d8,
  345   0x01d8, 0x01da, 0x01da, 0x01dc, 0x01dc, 0x01dd, 0x01df, 0x01df,
  346   0x01e1, 0x01e1, 0x01e3, 0x01e3, 0x01e5, 0x01e5, 0x01e7, 0x01e7,
  347   0x01e9, 0x01e9, 0x01eb, 0x01eb, 0x01ed, 0x01ed, 0x01ef, 0x01ef,
  348   0x01f0, 0x01f3, 0x01f3, 0x01f3, 0x01f5, 0x01f5, 0x0195, 0x01bf,
  349   0x01f9, 0x01f9, 0x01fb, 0x01fb, 0x01fd, 0x01fd, 0x01ff, 0x01ff
  350 }};
  351 static UnicodeCaseTableVector caseTable02 = {{
  352   0x0201, 0x0201, 0x0203, 0x0203, 0x0205, 0x0205, 0x0207, 0x0207,
  353   0x0209, 0x0209, 0x020b, 0x020b, 0x020d, 0x020d, 0x020f, 0x020f,
  354   0x0211, 0x0211, 0x0213, 0x0213, 0x0215, 0x0215, 0x0217, 0x0217,
  355   0x0219, 0x0219, 0x021b, 0x021b, 0x021d, 0x021d, 0x021f, 0x021f,
  356   0x019e, 0x0221, 0x0223, 0x0223, 0x0225, 0x0225, 0x0227, 0x0227,
  357   0x0229, 0x0229, 0x022b, 0x022b, 0x022d, 0x022d, 0x022f, 0x022f,
  358   0x0231, 0x0231, 0x0233, 0x0233, 0x0234, 0x0235, 0x0236, 0x0237,
  359   0x0238, 0x0239, 0x2c65, 0x023c, 0x023c, 0x019a, 0x2c66, 0x023f,
  360   0x0240, 0x0242, 0x0242, 0x0180, 0x0289, 0x028c, 0x0247, 0x0247,
  361   0x0249, 0x0249, 0x024b, 0x024b, 0x024d, 0x024d, 0x024f, 0x024f,
  362   0x0250, 0x0251, 0x0252, 0x0253, 0x0254, 0x0255, 0x0256, 0x0257,
  363   0x0258, 0x0259, 0x025a, 0x025b, 0x025c, 0x025d, 0x025e, 0x025f,
  364   0x0260, 0x0261, 0x0262, 0x0263, 0x0264, 0x0265, 0x0266, 0x0267,
  365   0x0268, 0x0269, 0x026a, 0x026b, 0x026c, 0x026d, 0x026e, 0x026f,
  366   0x0270, 0x0271, 0x0272, 0x0273, 0x0274, 0x0275, 0x0276, 0x0277,
  367   0x0278, 0x0279, 0x027a, 0x027b, 0x027c, 0x027d, 0x027e, 0x027f,
  368   0x0280, 0x0281, 0x0282, 0x0283, 0x0284, 0x0285, 0x0286, 0x0287,
  369   0x0288, 0x0289, 0x028a, 0x028b, 0x028c, 0x028d, 0x028e, 0x028f,
  370   0x0290, 0x0291, 0x0292, 0x0293, 0x0294, 0x0295, 0x0296, 0x0297,
  371   0x0298, 0x0299, 0x029a, 0x029b, 0x029c, 0x029d, 0x029e, 0x029f,
  372   0x02a0, 0x02a1, 0x02a2, 0x02a3, 0x02a4, 0x02a5, 0x02a6, 0x02a7,
  373   0x02a8, 0x02a9, 0x02aa, 0x02ab, 0x02ac, 0x02ad, 0x02ae, 0x02af,
  374   0x02b0, 0x02b1, 0x02b2, 0x02b3, 0x02b4, 0x02b5, 0x02b6, 0x02b7,
  375   0x02b8, 0x02b9, 0x02ba, 0x02bb, 0x02bc, 0x02bd, 0x02be, 0x02bf,
  376   0x02c0, 0x02c1, 0x02c2, 0x02c3, 0x02c4, 0x02c5, 0x02c6, 0x02c7,
  377   0x02c8, 0x02c9, 0x02ca, 0x02cb, 0x02cc, 0x02cd, 0x02ce, 0x02cf,
  378   0x02d0, 0x02d1, 0x02d2, 0x02d3, 0x02d4, 0x02d5, 0x02d6, 0x02d7,
  379   0x02d8, 0x02d9, 0x02da, 0x02db, 0x02dc, 0x02dd, 0x02de, 0x02df,
  380   0x02e0, 0x02e1, 0x02e2, 0x02e3, 0x02e4, 0x02e5, 0x02e6, 0x02e7,
  381   0x02e8, 0x02e9, 0x02ea, 0x02eb, 0x02ec, 0x02ed, 0x02ee, 0x02ef,
  382   0x02f0, 0x02f1, 0x02f2, 0x02f3, 0x02f4, 0x02f5, 0x02f6, 0x02f7,
  383   0x02f8, 0x02f9, 0x02fa, 0x02fb, 0x02fc, 0x02fd, 0x02fe, 0x02ff
  384 }};
  385 static UnicodeCaseTableVector caseTable03 = {{
  386   0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0305, 0x0306, 0x0307,
  387   0x0308, 0x0309, 0x030a, 0x030b, 0x030c, 0x030d, 0x030e, 0x030f,
  388   0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317,
  389   0x0318, 0x0319, 0x031a, 0x031b, 0x031c, 0x031d, 0x031e, 0x031f,
  390   0x0320, 0x0321, 0x0322, 0x0323, 0x0324, 0x0325, 0x0326, 0x0327,
  391   0x0328, 0x0329, 0x032a, 0x032b, 0x032c, 0x032d, 0x032e, 0x032f,
  392   0x0330, 0x0331, 0x0332, 0x0333, 0x0334, 0x0335, 0x0336, 0x0337,
  393   0x0338, 0x0339, 0x033a, 0x033b, 0x033c, 0x033d, 0x033e, 0x033f,
  394   0x0340, 0x0341, 0x0342, 0x0343, 0x0344, 0x03b9, 0x0346, 0x0347,
  395   0x0348, 0x0349, 0x034a, 0x034b, 0x034c, 0x034d, 0x034e, 0x034f,
  396   0x0350, 0x0351, 0x0352, 0x0353, 0x0354, 0x0355, 0x0356, 0x0357,
  397   0x0358, 0x0359, 0x035a, 0x035b, 0x035c, 0x035d, 0x035e, 0x035f,
  398   0x0360, 0x0361, 0x0362, 0x0363, 0x0364, 0x0365, 0x0366, 0x0367,
  399   0x0368, 0x0369, 0x036a, 0x036b, 0x036c, 0x036d, 0x036e, 0x036f,
  400   0x0371, 0x0371, 0x0373, 0x0373, 0x0374, 0x0375, 0x0377, 0x0377,
  401   0x0378, 0x0379, 0x037a, 0x037b, 0x037c, 0x037d, 0x037e, 0x03f3,
  402   0x0380, 0x0381, 0x0382, 0x0383, 0x0384, 0x0385, 0x03ac, 0x0387,
  403   0x03ad, 0x03ae, 0x03af, 0x038b, 0x03cc, 0x038d, 0x03cd, 0x03ce,
  404   0x0390, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7,
  405   0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf,
  406   0x03c0, 0x03c1, 0x03a2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7,
  407   0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03ac, 0x03ad, 0x03ae, 0x03af,
  408   0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7,
  409   0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf,
  410   0x03c0, 0x03c1, 0x03c3, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7,
  411   0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0x03d7,
  412   0x03b2, 0x03b8, 0x03d2, 0x03d3, 0x03d4, 0x03c6, 0x03c0, 0x03d7,
  413   0x03d9, 0x03d9, 0x03db, 0x03db, 0x03dd, 0x03dd, 0x03df, 0x03df,
  414   0x03e1, 0x03e1, 0x03e3, 0x03e3, 0x03e5, 0x03e5, 0x03e7, 0x03e7,
  415   0x03e9, 0x03e9, 0x03eb, 0x03eb, 0x03ed, 0x03ed, 0x03ef, 0x03ef,
  416   0x03ba, 0x03c1, 0x03f2, 0x03f3, 0x03b8, 0x03b5, 0x03f6, 0x03f8,
  417   0x03f8, 0x03f2, 0x03fb, 0x03fb, 0x03fc, 0x037b, 0x037c, 0x037d
  418 }};
  419 static UnicodeCaseTableVector caseTable04 = {{
  420   0x0450, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
  421   0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x045d, 0x045e, 0x045f,
  422   0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
  423   0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
  424   0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
  425   0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
  426   0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
  427   0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
  428   0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
  429   0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
  430   0x0450, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
  431   0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x045d, 0x045e, 0x045f,
  432   0x0461, 0x0461, 0x0463, 0x0463, 0x0465, 0x0465, 0x0467, 0x0467,
  433   0x0469, 0x0469, 0x046b, 0x046b, 0x046d, 0x046d, 0x046f, 0x046f,
  434   0x0471, 0x0471, 0x0473, 0x0473, 0x0475, 0x0475, 0x0477, 0x0477,
  435   0x0479, 0x0479, 0x047b, 0x047b, 0x047d, 0x047d, 0x047f, 0x047f,
  436   0x0481, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487,
  437   0x0488, 0x0489, 0x048b, 0x048b, 0x048d, 0x048d, 0x048f, 0x048f,
  438   0x0491, 0x0491, 0x0493, 0x0493, 0x0495, 0x0495, 0x0497, 0x0497,
  439   0x0499, 0x0499, 0x049b, 0x049b, 0x049d, 0x049d, 0x049f, 0x049f,
  440   0x04a1, 0x04a1, 0x04a3, 0x04a3, 0x04a5, 0x04a5, 0x04a7, 0x04a7,
  441   0x04a9, 0x04a9, 0x04ab, 0x04ab, 0x04ad, 0x04ad, 0x04af, 0x04af,
  442   0x04b1, 0x04b1, 0x04b3, 0x04b3, 0x04b5, 0x04b5, 0x04b7, 0x04b7,
  443   0x04b9, 0x04b9, 0x04bb, 0x04bb, 0x04bd, 0x04bd, 0x04bf, 0x04bf,
  444   0x04cf, 0x04c2, 0x04c2, 0x04c4, 0x04c4, 0x04c6, 0x04c6, 0x04c8,
  445   0x04c8, 0x04ca, 0x04ca, 0x04cc, 0x04cc, 0x04ce, 0x04ce, 0x04cf,
  446   0x04d1, 0x04d1, 0x04d3, 0x04d3, 0x04d5, 0x04d5, 0x04d7, 0x04d7,
  447   0x04d9, 0x04d9, 0x04db, 0x04db, 0x04dd, 0x04dd, 0x04df, 0x04df,
  448   0x04e1, 0x04e1, 0x04e3, 0x04e3, 0x04e5, 0x04e5, 0x04e7, 0x04e7,
  449   0x04e9, 0x04e9, 0x04eb, 0x04eb, 0x04ed, 0x04ed, 0x04ef, 0x04ef,
  450   0x04f1, 0x04f1, 0x04f3, 0x04f3, 0x04f5, 0x04f5, 0x04f7, 0x04f7,
  451   0x04f9, 0x04f9, 0x04fb, 0x04fb, 0x04fd, 0x04fd, 0x04ff, 0x04ff
  452 }};
  453 static UnicodeCaseTableVector caseTable05 = {{
  454   0x0501, 0x0501, 0x0503, 0x0503, 0x0505, 0x0505, 0x0507, 0x0507,
  455   0x0509, 0x0509, 0x050b, 0x050b, 0x050d, 0x050d, 0x050f, 0x050f,
  456   0x0511, 0x0511, 0x0513, 0x0513, 0x0515, 0x0515, 0x0517, 0x0517,
  457   0x0519, 0x0519, 0x051b, 0x051b, 0x051d, 0x051d, 0x051f, 0x051f,
  458   0x0521, 0x0521, 0x0523, 0x0523, 0x0525, 0x0525, 0x0527, 0x0527,
  459   0x0529, 0x0529, 0x052b, 0x052b, 0x052d, 0x052d, 0x052f, 0x052f,
  460   0x0530, 0x0561, 0x0562, 0x0563, 0x0564, 0x0565, 0x0566, 0x0567,
  461   0x0568, 0x0569, 0x056a, 0x056b, 0x056c, 0x056d, 0x056e, 0x056f,
  462   0x0570, 0x0571, 0x0572, 0x0573, 0x0574, 0x0575, 0x0576, 0x0577,
  463   0x0578, 0x0579, 0x057a, 0x057b, 0x057c, 0x057d, 0x057e, 0x057f,
  464   0x0580, 0x0581, 0x0582, 0x0583, 0x0584, 0x0585, 0x0586, 0x0557,
  465   0x0558, 0x0559, 0x055a, 0x055b, 0x055c, 0x055d, 0x055e, 0x055f,
  466   0x0560, 0x0561, 0x0562, 0x0563, 0x0564, 0x0565, 0x0566, 0x0567,
  467   0x0568, 0x0569, 0x056a, 0x056b, 0x056c, 0x056d, 0x056e, 0x056f,
  468   0x0570, 0x0571, 0x0572, 0x0573, 0x0574, 0x0575, 0x0576, 0x0577,
  469   0x0578, 0x0579, 0x057a, 0x057b, 0x057c, 0x057d, 0x057e, 0x057f,
  470   0x0580, 0x0581, 0x0582, 0x0583, 0x0584, 0x0585, 0x0586, 0x0587,
  471   0x0588, 0x0589, 0x058a, 0x058b, 0x058c, 0x058d, 0x058e, 0x058f,
  472   0x0590, 0x0591, 0x0592, 0x0593, 0x0594, 0x0595, 0x0596, 0x0597,
  473   0x0598, 0x0599, 0x059a, 0x059b, 0x059c, 0x059d, 0x059e, 0x059f,
  474   0x05a0, 0x05a1, 0x05a2, 0x05a3, 0x05a4, 0x05a5, 0x05a6, 0x05a7,
  475   0x05a8, 0x05a9, 0x05aa, 0x05ab, 0x05ac, 0x05ad, 0x05ae, 0x05af,
  476   0x05b0, 0x05b1, 0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7,
  477   0x05b8, 0x05b9, 0x05ba, 0x05bb, 0x05bc, 0x05bd, 0x05be, 0x05bf,
  478   0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05c4, 0x05c5, 0x05c6, 0x05c7,
  479   0x05c8, 0x05c9, 0x05ca, 0x05cb, 0x05cc, 0x05cd, 0x05ce, 0x05cf,
  480   0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
  481   0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
  482   0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
  483   0x05e8, 0x05e9, 0x05ea, 0x05eb, 0x05ec, 0x05ed, 0x05ee, 0x05ef,
  484   0x05f0, 0x05f1, 0x05f2, 0x05f3, 0x05f4, 0x05f5, 0x05f6, 0x05f7,
  485   0x05f8, 0x05f9, 0x05fa, 0x05fb, 0x05fc, 0x05fd, 0x05fe, 0x05ff
  486 }};
  487 static UnicodeCaseTableVector caseTable10 = {{
  488   0x1000, 0x1001, 0x1002, 0x1003, 0x1004, 0x1005, 0x1006, 0x1007,
  489   0x1008, 0x1009, 0x100a, 0x100b, 0x100c, 0x100d, 0x100e, 0x100f,
  490   0x1010, 0x1011, 0x1012, 0x1013, 0x1014, 0x1015, 0x1016, 0x1017,
  491   0x1018, 0x1019, 0x101a, 0x101b, 0x101c, 0x101d, 0x101e, 0x101f,
  492   0x1020, 0x1021, 0x1022, 0x1023, 0x1024, 0x1025, 0x1026, 0x1027,
  493   0x1028, 0x1029, 0x102a, 0x102b, 0x102c, 0x102d, 0x102e, 0x102f,
  494   0x1030, 0x1031, 0x1032, 0x1033, 0x1034, 0x1035, 0x1036, 0x1037,
  495   0x1038, 0x1039, 0x103a, 0x103b, 0x103c, 0x103d, 0x103e, 0x103f,
  496   0x1040, 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047,
  497   0x1048, 0x1049, 0x104a, 0x104b, 0x104c, 0x104d, 0x104e, 0x104f,
  498   0x1050, 0x1051, 0x1052, 0x1053, 0x1054, 0x1055, 0x1056, 0x1057,
  499   0x1058, 0x1059, 0x105a, 0x105b, 0x105c, 0x105d, 0x105e, 0x105f,
  500   0x1060, 0x1061, 0x1062, 0x1063, 0x1064, 0x1065, 0x1066, 0x1067,
  501   0x1068, 0x1069, 0x106a, 0x106b, 0x106c, 0x106d, 0x106e, 0x106f,
  502   0x1070, 0x1071, 0x1072, 0x1073, 0x1074, 0x1075, 0x1076, 0x1077,
  503   0x1078, 0x1079, 0x107a, 0x107b, 0x107c, 0x107d, 0x107e, 0x107f,
  504   0x1080, 0x1081, 0x1082, 0x1083, 0x1084, 0x1085, 0x1086, 0x1087,
  505   0x1088, 0x1089, 0x108a, 0x108b, 0x108c, 0x108d, 0x108e, 0x108f,
  506   0x1090, 0x1091, 0x1092, 0x1093, 0x1094, 0x1095, 0x1096, 0x1097,
  507   0x1098, 0x1099, 0x109a, 0x109b, 0x109c, 0x109d, 0x109e, 0x109f,
  508   0x2d00, 0x2d01, 0x2d02, 0x2d03, 0x2d04, 0x2d05, 0x2d06, 0x2d07,
  509   0x2d08, 0x2d09, 0x2d0a, 0x2d0b, 0x2d0c, 0x2d0d, 0x2d0e, 0x2d0f,
  510   0x2d10, 0x2d11, 0x2d12, 0x2d13, 0x2d14, 0x2d15, 0x2d16, 0x2d17,
  511   0x2d18, 0x2d19, 0x2d1a, 0x2d1b, 0x2d1c, 0x2d1d, 0x2d1e, 0x2d1f,
  512   0x2d20, 0x2d21, 0x2d22, 0x2d23, 0x2d24, 0x2d25, 0x10c6, 0x2d27,
  513   0x10c8, 0x10c9, 0x10ca, 0x10cb, 0x10cc, 0x2d2d, 0x10ce, 0x10cf,
  514   0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10d7,
  515   0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10dd, 0x10de, 0x10df,
  516   0x10e0, 0x10e1, 0x10e2, 0x10e3, 0x10e4, 0x10e5, 0x10e6, 0x10e7,
  517   0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x10ee, 0x10ef,
  518   0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6, 0x10f7,
  519   0x10f8, 0x10f9, 0x10fa, 0x10fb, 0x10fc, 0x10fd, 0x10fe, 0x10ff
  520 }};
  521 static UnicodeCaseTableVector caseTable13 = {{
  522   0x1300, 0x1301, 0x1302, 0x1303, 0x1304, 0x1305, 0x1306, 0x1307,
  523   0x1308, 0x1309, 0x130a, 0x130b, 0x130c, 0x130d, 0x130e, 0x130f,
  524   0x1310, 0x1311, 0x1312, 0x1313, 0x1314, 0x1315, 0x1316, 0x1317,
  525   0x1318, 0x1319, 0x131a, 0x131b, 0x131c, 0x131d, 0x131e, 0x131f,
  526   0x1320, 0x1321, 0x1322, 0x1323, 0x1324, 0x1325, 0x1326, 0x1327,
  527   0x1328, 0x1329, 0x132a, 0x132b, 0x132c, 0x132d, 0x132e, 0x132f,
  528   0x1330, 0x1331, 0x1332, 0x1333, 0x1334, 0x1335, 0x1336, 0x1337,
  529   0x1338, 0x1339, 0x133a, 0x133b, 0x133c, 0x133d, 0x133e, 0x133f,
  530   0x1340, 0x1341, 0x1342, 0x1343, 0x1344, 0x1345, 0x1346, 0x1347,
  531   0x1348, 0x1349, 0x134a, 0x134b, 0x134c, 0x134d, 0x134e, 0x134f,
  532   0x1350, 0x1351, 0x1352, 0x1353, 0x1354, 0x1355, 0x1356, 0x1357,
  533   0x1358, 0x1359, 0x135a, 0x135b, 0x135c, 0x135d, 0x135e, 0x135f,
  534   0x1360, 0x1361, 0x1362, 0x1363, 0x1364, 0x1365, 0x1366, 0x1367,
  535   0x1368, 0x1369, 0x136a, 0x136b, 0x136c, 0x136d, 0x136e, 0x136f,
  536   0x1370, 0x1371, 0x1372, 0x1373, 0x1374, 0x1375, 0x1376, 0x1377,
  537   0x1378, 0x1379, 0x137a, 0x137b, 0x137c, 0x137d, 0x137e, 0x137f,
  538   0x1380, 0x1381, 0x1382, 0x1383, 0x1384, 0x1385, 0x1386, 0x1387,
  539   0x1388, 0x1389, 0x138a, 0x138b, 0x138c, 0x138d, 0x138e, 0x138f,
  540   0x1390, 0x1391, 0x1392, 0x1393, 0x1394, 0x1395, 0x1396, 0x1397,
  541   0x1398, 0x1399, 0x139a, 0x139b, 0x139c, 0x139d, 0x139e, 0x139f,
  542   0x13a0, 0x13a1, 0x13a2, 0x13a3, 0x13a4, 0x13a5, 0x13a6, 0x13a7,
  543   0x13a8, 0x13a9, 0x13aa, 0x13ab, 0x13ac, 0x13ad, 0x13ae, 0x13af,
  544   0x13b0, 0x13b1, 0x13b2, 0x13b3, 0x13b4, 0x13b5, 0x13b6, 0x13b7,
  545   0x13b8, 0x13b9, 0x13ba, 0x13bb, 0x13bc, 0x13bd, 0x13be, 0x13bf,
  546   0x13c0, 0x13c1, 0x13c2, 0x13c3, 0x13c4, 0x13c5, 0x13c6, 0x13c7,
  547   0x13c8, 0x13c9, 0x13ca, 0x13cb, 0x13cc, 0x13cd, 0x13ce, 0x13cf,
  548   0x13d0, 0x13d1, 0x13d2, 0x13d3, 0x13d4, 0x13d5, 0x13d6, 0x13d7,
  549   0x13d8, 0x13d9, 0x13da, 0x13db, 0x13dc, 0x13dd, 0x13de, 0x13df,
  550   0x13e0, 0x13e1, 0x13e2, 0x13e3, 0x13e4, 0x13e5, 0x13e6, 0x13e7,
  551   0x13e8, 0x13e9, 0x13ea, 0x13eb, 0x13ec, 0x13ed, 0x13ee, 0x13ef,
  552   0x13f0, 0x13f1, 0x13f2, 0x13f3, 0x13f4, 0x13f5, 0x13f6, 0x13f7,
  553   0x13f0, 0x13f1, 0x13f2, 0x13f3, 0x13f4, 0x13f5, 0x13fe, 0x13ff
  554 }};
  555 static UnicodeCaseTableVector caseTable1c = {{
  556   0x1c00, 0x1c01, 0x1c02, 0x1c03, 0x1c04, 0x1c05, 0x1c06, 0x1c07,
  557   0x1c08, 0x1c09, 0x1c0a, 0x1c0b, 0x1c0c, 0x1c0d, 0x1c0e, 0x1c0f,
  558   0x1c10, 0x1c11, 0x1c12, 0x1c13, 0x1c14, 0x1c15, 0x1c16, 0x1c17,
  559   0x1c18, 0x1c19, 0x1c1a, 0x1c1b, 0x1c1c, 0x1c1d, 0x1c1e, 0x1c1f,
  560   0x1c20, 0x1c21, 0x1c22, 0x1c23, 0x1c24, 0x1c25, 0x1c26, 0x1c27,
  561   0x1c28, 0x1c29, 0x1c2a, 0x1c2b, 0x1c2c, 0x1c2d, 0x1c2e, 0x1c2f,
  562   0x1c30, 0x1c31, 0x1c32, 0x1c33, 0x1c34, 0x1c35, 0x1c36, 0x1c37,
  563   0x1c38, 0x1c39, 0x1c3a, 0x1c3b, 0x1c3c, 0x1c3d, 0x1c3e, 0x1c3f,
  564   0x1c40, 0x1c41, 0x1c42, 0x1c43, 0x1c44, 0x1c45, 0x1c46, 0x1c47,
  565   0x1c48, 0x1c49, 0x1c4a, 0x1c4b, 0x1c4c, 0x1c4d, 0x1c4e, 0x1c4f,
  566   0x1c50, 0x1c51, 0x1c52, 0x1c53, 0x1c54, 0x1c55, 0x1c56, 0x1c57,
  567   0x1c58, 0x1c59, 0x1c5a, 0x1c5b, 0x1c5c, 0x1c5d, 0x1c5e, 0x1c5f,
  568   0x1c60, 0x1c61, 0x1c62, 0x1c63, 0x1c64, 0x1c65, 0x1c66, 0x1c67,
  569   0x1c68, 0x1c69, 0x1c6a, 0x1c6b, 0x1c6c, 0x1c6d, 0x1c6e, 0x1c6f,
  570   0x1c70, 0x1c71, 0x1c72, 0x1c73, 0x1c74, 0x1c75, 0x1c76, 0x1c77,
  571   0x1c78, 0x1c79, 0x1c7a, 0x1c7b, 0x1c7c, 0x1c7d, 0x1c7e, 0x1c7f,
  572   0x0432, 0x0434, 0x043e, 0x0441, 0x0442, 0x0442, 0x044a, 0x0463,
  573   0xa64b, 0x1c89, 0x1c8a, 0x1c8b, 0x1c8c, 0x1c8d, 0x1c8e, 0x1c8f,
  574   0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10d7,
  575   0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10dd, 0x10de, 0x10df,
  576   0x10e0, 0x10e1, 0x10e2, 0x10e3, 0x10e4, 0x10e5, 0x10e6, 0x10e7,
  577   0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x10ee, 0x10ef,
  578   0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6, 0x10f7,
  579   0x10f8, 0x10f9, 0x10fa, 0x1cbb, 0x1cbc, 0x10fd, 0x10fe, 0x10ff,
  580   0x1cc0, 0x1cc1, 0x1cc2, 0x1cc3, 0x1cc4, 0x1cc5, 0x1cc6, 0x1cc7,
  581   0x1cc8, 0x1cc9, 0x1cca, 0x1ccb, 0x1ccc, 0x1ccd, 0x1cce, 0x1ccf,
  582   0x1cd0, 0x1cd1, 0x1cd2, 0x1cd3, 0x1cd4, 0x1cd5, 0x1cd6, 0x1cd7,
  583   0x1cd8, 0x1cd9, 0x1cda, 0x1cdb, 0x1cdc, 0x1cdd, 0x1cde, 0x1cdf,
  584   0x1ce0, 0x1ce1, 0x1ce2, 0x1ce3, 0x1ce4, 0x1ce5, 0x1ce6, 0x1ce7,
  585   0x1ce8, 0x1ce9, 0x1cea, 0x1ceb, 0x1cec, 0x1ced, 0x1cee, 0x1cef,
  586   0x1cf0, 0x1cf1, 0x1cf2, 0x1cf3, 0x1cf4, 0x1cf5, 0x1cf6, 0x1cf7,
  587   0x1cf8, 0x1cf9, 0x1cfa, 0x1cfb, 0x1cfc, 0x1cfd, 0x1cfe, 0x1cff
  588 }};
  589 static UnicodeCaseTableVector caseTable1e = {{
  590   0x1e01, 0x1e01, 0x1e03, 0x1e03, 0x1e05, 0x1e05, 0x1e07, 0x1e07,
  591   0x1e09, 0x1e09, 0x1e0b, 0x1e0b, 0x1e0d, 0x1e0d, 0x1e0f, 0x1e0f,
  592   0x1e11, 0x1e11, 0x1e13, 0x1e13, 0x1e15, 0x1e15, 0x1e17, 0x1e17,
  593   0x1e19, 0x1e19, 0x1e1b, 0x1e1b, 0x1e1d, 0x1e1d, 0x1e1f, 0x1e1f,
  594   0x1e21, 0x1e21, 0x1e23, 0x1e23, 0x1e25, 0x1e25, 0x1e27, 0x1e27,
  595   0x1e29, 0x1e29, 0x1e2b, 0x1e2b, 0x1e2d, 0x1e2d, 0x1e2f, 0x1e2f,
  596   0x1e31, 0x1e31, 0x1e33, 0x1e33, 0x1e35, 0x1e35, 0x1e37, 0x1e37,
  597   0x1e39, 0x1e39, 0x1e3b, 0x1e3b, 0x1e3d, 0x1e3d, 0x1e3f, 0x1e3f,
  598   0x1e41, 0x1e41, 0x1e43, 0x1e43, 0x1e45, 0x1e45, 0x1e47, 0x1e47,
  599   0x1e49, 0x1e49, 0x1e4b, 0x1e4b, 0x1e4d, 0x1e4d, 0x1e4f, 0x1e4f,
  600   0x1e51, 0x1e51, 0x1e53, 0x1e53, 0x1e55, 0x1e55, 0x1e57, 0x1e57,
  601   0x1e59, 0x1e59, 0x1e5b, 0x1e5b, 0x1e5d, 0x1e5d, 0x1e5f, 0x1e5f,
  602   0x1e61, 0x1e61, 0x1e63, 0x1e63, 0x1e65, 0x1e65, 0x1e67, 0x1e67,
  603   0x1e69, 0x1e69, 0x1e6b, 0x1e6b, 0x1e6d, 0x1e6d, 0x1e6f, 0x1e6f,
  604   0x1e71, 0x1e71, 0x1e73, 0x1e73, 0x1e75, 0x1e75, 0x1e77, 0x1e77,
  605   0x1e79, 0x1e79, 0x1e7b, 0x1e7b, 0x1e7d, 0x1e7d, 0x1e7f, 0x1e7f,
  606   0x1e81, 0x1e81, 0x1e83, 0x1e83, 0x1e85, 0x1e85, 0x1e87, 0x1e87,
  607   0x1e89, 0x1e89, 0x1e8b, 0x1e8b, 0x1e8d, 0x1e8d, 0x1e8f, 0x1e8f,
  608   0x1e91, 0x1e91, 0x1e93, 0x1e93, 0x1e95, 0x1e95, 0x1e96, 0x1e97,
  609   0x1e98, 0x1e99, 0x1e9a, 0x1e61, 0x1e9c, 0x1e9d, 0x00df, 0x1e9f,
  610   0x1ea1, 0x1ea1, 0x1ea3, 0x1ea3, 0x1ea5, 0x1ea5, 0x1ea7, 0x1ea7,
  611   0x1ea9, 0x1ea9, 0x1eab, 0x1eab, 0x1ead, 0x1ead, 0x1eaf, 0x1eaf,
  612   0x1eb1, 0x1eb1, 0x1eb3, 0x1eb3, 0x1eb5, 0x1eb5, 0x1eb7, 0x1eb7,
  613   0x1eb9, 0x1eb9, 0x1ebb, 0x1ebb, 0x1ebd, 0x1ebd, 0x1ebf, 0x1ebf,
  614   0x1ec1, 0x1ec1, 0x1ec3, 0x1ec3, 0x1ec5, 0x1ec5, 0x1ec7, 0x1ec7,
  615   0x1ec9, 0x1ec9, 0x1ecb, 0x1ecb, 0x1ecd, 0x1ecd, 0x1ecf, 0x1ecf,
  616   0x1ed1, 0x1ed1, 0x1ed3, 0x1ed3, 0x1ed5, 0x1ed5, 0x1ed7, 0x1ed7,
  617   0x1ed9, 0x1ed9, 0x1edb, 0x1edb, 0x1edd, 0x1edd, 0x1edf, 0x1edf,
  618   0x1ee1, 0x1ee1, 0x1ee3, 0x1ee3, 0x1ee5, 0x1ee5, 0x1ee7, 0x1ee7,
  619   0x1ee9, 0x1ee9, 0x1eeb, 0x1eeb, 0x1eed, 0x1eed, 0x1eef, 0x1eef,
  620   0x1ef1, 0x1ef1, 0x1ef3, 0x1ef3, 0x1ef5, 0x1ef5, 0x1ef7, 0x1ef7,
  621   0x1ef9, 0x1ef9, 0x1efb, 0x1efb, 0x1efd, 0x1efd, 0x1eff, 0x1eff
  622 }};
  623 static UnicodeCaseTableVector caseTable1f = {{
  624   0x1f00, 0x1f01, 0x1f02, 0x1f03, 0x1f04, 0x1f05, 0x1f06, 0x1f07,
  625   0x1f00, 0x1f01, 0x1f02, 0x1f03, 0x1f04, 0x1f05, 0x1f06, 0x1f07,
  626   0x1f10, 0x1f11, 0x1f12, 0x1f13, 0x1f14, 0x1f15, 0x1f16, 0x1f17,
  627   0x1f10, 0x1f11, 0x1f12, 0x1f13, 0x1f14, 0x1f15, 0x1f1e, 0x1f1f,
  628   0x1f20, 0x1f21, 0x1f22, 0x1f23, 0x1f24, 0x1f25, 0x1f26, 0x1f27,
  629   0x1f20, 0x1f21, 0x1f22, 0x1f23, 0x1f24, 0x1f25, 0x1f26, 0x1f27,
  630   0x1f30, 0x1f31, 0x1f32, 0x1f33, 0x1f34, 0x1f35, 0x1f36, 0x1f37,
  631   0x1f30, 0x1f31, 0x1f32, 0x1f33, 0x1f34, 0x1f35, 0x1f36, 0x1f37,
  632   0x1f40, 0x1f41, 0x1f42, 0x1f43, 0x1f44, 0x1f45, 0x1f46, 0x1f47,
  633   0x1f40, 0x1f41, 0x1f42, 0x1f43, 0x1f44, 0x1f45, 0x1f4e, 0x1f4f,
  634   0x1f50, 0x1f51, 0x1f52, 0x1f53, 0x1f54, 0x1f55, 0x1f56, 0x1f57,
  635   0x1f58, 0x1f51, 0x1f5a, 0x1f53, 0x1f5c, 0x1f55, 0x1f5e, 0x1f57,
  636   0x1f60, 0x1f61, 0x1f62, 0x1f63, 0x1f64, 0x1f65, 0x1f66, 0x1f67,
  637   0x1f60, 0x1f61, 0x1f62, 0x1f63, 0x1f64, 0x1f65, 0x1f66, 0x1f67,
  638   0x1f70, 0x1f71, 0x1f72, 0x1f73, 0x1f74, 0x1f75, 0x1f76, 0x1f77,
  639   0x1f78, 0x1f79, 0x1f7a, 0x1f7b, 0x1f7c, 0x1f7d, 0x1f7e, 0x1f7f,
  640   0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
  641   0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
  642   0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
  643   0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
  644   0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
  645   0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
  646   0x1fb0, 0x1fb1, 0x1fb2, 0x1fb3, 0x1fb4, 0x1fb5, 0x1fb6, 0x1fb7,
  647   0x1fb0, 0x1fb1, 0x1f70, 0x1f71, 0x1fb3, 0x1fbd, 0x03b9, 0x1fbf,
  648   0x1fc0, 0x1fc1, 0x1fc2, 0x1fc3, 0x1fc4, 0x1fc5, 0x1fc6, 0x1fc7,
  649   0x1f72, 0x1f73, 0x1f74, 0x1f75, 0x1fc3, 0x1fcd, 0x1fce, 0x1fcf,
  650   0x1fd0, 0x1fd1, 0x1fd2, 0x1fd3, 0x1fd4, 0x1fd5, 0x1fd6, 0x1fd7,
  651   0x1fd0, 0x1fd1, 0x1f76, 0x1f77, 0x1fdc, 0x1fdd, 0x1fde, 0x1fdf,
  652   0x1fe0, 0x1fe1, 0x1fe2, 0x1fe3, 0x1fe4, 0x1fe5, 0x1fe6, 0x1fe7,
  653   0x1fe0, 0x1fe1, 0x1f7a, 0x1f7b, 0x1fe5, 0x1fed, 0x1fee, 0x1fef,
  654   0x1ff0, 0x1ff1, 0x1ff2, 0x1ff3, 0x1ff4, 0x1ff5, 0x1ff6, 0x1ff7,
  655   0x1f78, 0x1f79, 0x1f7c, 0x1f7d, 0x1ff3, 0x1ffd, 0x1ffe, 0x1fff
  656 }};
  657 static UnicodeCaseTableVector caseTable21 = {{
  658   0x2100, 0x2101, 0x2102, 0x2103, 0x2104, 0x2105, 0x2106, 0x2107,
  659   0x2108, 0x2109, 0x210a, 0x210b, 0x210c, 0x210d, 0x210e, 0x210f,
  660   0x2110, 0x2111, 0x2112, 0x2113, 0x2114, 0x2115, 0x2116, 0x2117,
  661   0x2118, 0x2119, 0x211a, 0x211b, 0x211c, 0x211d, 0x211e, 0x211f,
  662   0x2120, 0x2121, 0x2122, 0x2123, 0x2124, 0x2125, 0x03c9, 0x2127,
  663   0x2128, 0x2129, 0x006b, 0x00e5, 0x212c, 0x212d, 0x212e, 0x212f,
  664   0x2130, 0x2131, 0x214e, 0x2133, 0x2134, 0x2135, 0x2136, 0x2137,
  665   0x2138, 0x2139, 0x213a, 0x213b, 0x213c, 0x213d, 0x213e, 0x213f,
  666   0x2140, 0x2141, 0x2142, 0x2143, 0x2144, 0x2145, 0x2146, 0x2147,
  667   0x2148, 0x2149, 0x214a, 0x214b, 0x214c, 0x214d, 0x214e, 0x214f,
  668   0x2150, 0x2151, 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157,
  669   0x2158, 0x2159, 0x215a, 0x215b, 0x215c, 0x215d, 0x215e, 0x215f,
  670   0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,
  671   0x2178, 0x2179, 0x217a, 0x217b, 0x217c, 0x217d, 0x217e, 0x217f,
  672   0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,
  673   0x2178, 0x2179, 0x217a, 0x217b, 0x217c, 0x217d, 0x217e, 0x217f,
  674   0x2180, 0x2181, 0x2182, 0x2184, 0x2184, 0x2185, 0x2186, 0x2187,
  675   0x2188, 0x2189, 0x218a, 0x218b, 0x218c, 0x218d, 0x218e, 0x218f,
  676   0x2190, 0x2191, 0x2192, 0x2193, 0x2194, 0x2195, 0x2196, 0x2197,
  677   0x2198, 0x2199, 0x219a, 0x219b, 0x219c, 0x219d, 0x219e, 0x219f,
  678   0x21a0, 0x21a1, 0x21a2, 0x21a3, 0x21a4, 0x21a5, 0x21a6, 0x21a7,
  679   0x21a8, 0x21a9, 0x21aa, 0x21ab, 0x21ac, 0x21ad, 0x21ae, 0x21af,
  680   0x21b0, 0x21b1, 0x21b2, 0x21b3, 0x21b4, 0x21b5, 0x21b6, 0x21b7,
  681   0x21b8, 0x21b9, 0x21ba, 0x21bb, 0x21bc, 0x21bd, 0x21be, 0x21bf,
  682   0x21c0, 0x21c1, 0x21c2, 0x21c3, 0x21c4, 0x21c5, 0x21c6, 0x21c7,
  683   0x21c8, 0x21c9, 0x21ca, 0x21cb, 0x21cc, 0x21cd, 0x21ce, 0x21cf,
  684   0x21d0, 0x21d1, 0x21d2, 0x21d3, 0x21d4, 0x21d5, 0x21d6, 0x21d7,
  685   0x21d8, 0x21d9, 0x21da, 0x21db, 0x21dc, 0x21dd, 0x21de, 0x21df,
  686   0x21e0, 0x21e1, 0x21e2, 0x21e3, 0x21e4, 0x21e5, 0x21e6, 0x21e7,
  687   0x21e8, 0x21e9, 0x21ea, 0x21eb, 0x21ec, 0x21ed, 0x21ee, 0x21ef,
  688   0x21f0, 0x21f1, 0x21f2, 0x21f3, 0x21f4, 0x21f5, 0x21f6, 0x21f7,
  689   0x21f8, 0x21f9, 0x21fa, 0x21fb, 0x21fc, 0x21fd, 0x21fe, 0x21ff
  690 }};
  691 static UnicodeCaseTableVector caseTable24 = {{
  692   0x2400, 0x2401, 0x2402, 0x2403, 0x2404, 0x2405, 0x2406, 0x2407,
  693   0x2408, 0x2409, 0x240a, 0x240b, 0x240c, 0x240d, 0x240e, 0x240f,
  694   0x2410, 0x2411, 0x2412, 0x2413, 0x2414, 0x2415, 0x2416, 0x2417,
  695   0x2418, 0x2419, 0x241a, 0x241b, 0x241c, 0x241d, 0x241e, 0x241f,
  696   0x2420, 0x2421, 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427,
  697   0x2428, 0x2429, 0x242a, 0x242b, 0x242c, 0x242d, 0x242e, 0x242f,
  698   0x2430, 0x2431, 0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437,
  699   0x2438, 0x2439, 0x243a, 0x243b, 0x243c, 0x243d, 0x243e, 0x243f,
  700   0x2440, 0x2441, 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447,
  701   0x2448, 0x2449, 0x244a, 0x244b, 0x244c, 0x244d, 0x244e, 0x244f,
  702   0x2450, 0x2451, 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457,
  703   0x2458, 0x2459, 0x245a, 0x245b, 0x245c, 0x245d, 0x245e, 0x245f,
  704   0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467,
  705   0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f,
  706   0x2470, 0x2471, 0x2472, 0x2473, 0x2474, 0x2475, 0x2476, 0x2477,
  707   0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f,
  708   0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487,
  709   0x2488, 0x2489, 0x248a, 0x248b, 0x248c, 0x248d, 0x248e, 0x248f,
  710   0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497,
  711   0x2498, 0x2499, 0x249a, 0x249b, 0x249c, 0x249d, 0x249e, 0x249f,
  712   0x24a0, 0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7,
  713   0x24a8, 0x24a9, 0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af,
  714   0x24b0, 0x24b1, 0x24b2, 0x24b3, 0x24b4, 0x24b5, 0x24d0, 0x24d1,
  715   0x24d2, 0x24d3, 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 0x24d9,
  716   0x24da, 0x24db, 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1,
  717   0x24e2, 0x24e3, 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9,
  718   0x24d0, 0x24d1, 0x24d2, 0x24d3, 0x24d4, 0x24d5, 0x24d6, 0x24d7,
  719   0x24d8, 0x24d9, 0x24da, 0x24db, 0x24dc, 0x24dd, 0x24de, 0x24df,
  720   0x24e0, 0x24e1, 0x24e2, 0x24e3, 0x24e4, 0x24e5, 0x24e6, 0x24e7,
  721   0x24e8, 0x24e9, 0x24ea, 0x24eb, 0x24ec, 0x24ed, 0x24ee, 0x24ef,
  722   0x24f0, 0x24f1, 0x24f2, 0x24f3, 0x24f4, 0x24f5, 0x24f6, 0x24f7,
  723   0x24f8, 0x24f9, 0x24fa, 0x24fb, 0x24fc, 0x24fd, 0x24fe, 0x24ff
  724 }};
  725 static UnicodeCaseTableVector caseTable2c = {{
  726   0x2c30, 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x2c35, 0x2c36, 0x2c37,
  727   0x2c38, 0x2c39, 0x2c3a, 0x2c3b, 0x2c3c, 0x2c3d, 0x2c3e, 0x2c3f,
  728   0x2c40, 0x2c41, 0x2c42, 0x2c43, 0x2c44, 0x2c45, 0x2c46, 0x2c47,
  729   0x2c48, 0x2c49, 0x2c4a, 0x2c4b, 0x2c4c, 0x2c4d, 0x2c4e, 0x2c4f,
  730   0x2c50, 0x2c51, 0x2c52, 0x2c53, 0x2c54, 0x2c55, 0x2c56, 0x2c57,
  731   0x2c58, 0x2c59, 0x2c5a, 0x2c5b, 0x2c5c, 0x2c5d, 0x2c5e, 0x2c2f,
  732   0x2c30, 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x2c35, 0x2c36, 0x2c37,
  733   0x2c38, 0x2c39, 0x2c3a, 0x2c3b, 0x2c3c, 0x2c3d, 0x2c3e, 0x2c3f,
  734   0x2c40, 0x2c41, 0x2c42, 0x2c43, 0x2c44, 0x2c45, 0x2c46, 0x2c47,
  735   0x2c48, 0x2c49, 0x2c4a, 0x2c4b, 0x2c4c, 0x2c4d, 0x2c4e, 0x2c4f,
  736   0x2c50, 0x2c51, 0x2c52, 0x2c53, 0x2c54, 0x2c55, 0x2c56, 0x2c57,
  737   0x2c58, 0x2c59, 0x2c5a, 0x2c5b, 0x2c5c, 0x2c5d, 0x2c5e, 0x2c5f,
  738   0x2c61, 0x2c61, 0x026b, 0x1d7d, 0x027d, 0x2c65, 0x2c66, 0x2c68,
  739   0x2c68, 0x2c6a, 0x2c6a, 0x2c6c, 0x2c6c, 0x0251, 0x0271, 0x0250,
  740   0x0252, 0x2c71, 0x2c73, 0x2c73, 0x2c74, 0x2c76, 0x2c76, 0x2c77,
  741   0x2c78, 0x2c79, 0x2c7a, 0x2c7b, 0x2c7c, 0x2c7d, 0x023f, 0x0240,
  742   0x2c81, 0x2c81, 0x2c83, 0x2c83, 0x2c85, 0x2c85, 0x2c87, 0x2c87,
  743   0x2c89, 0x2c89, 0x2c8b, 0x2c8b, 0x2c8d, 0x2c8d, 0x2c8f, 0x2c8f,
  744   0x2c91, 0x2c91, 0x2c93, 0x2c93, 0x2c95, 0x2c95, 0x2c97, 0x2c97,
  745   0x2c99, 0x2c99, 0x2c9b, 0x2c9b, 0x2c9d, 0x2c9d, 0x2c9f, 0x2c9f,
  746   0x2ca1, 0x2ca1, 0x2ca3, 0x2ca3, 0x2ca5, 0x2ca5, 0x2ca7, 0x2ca7,
  747   0x2ca9, 0x2ca9, 0x2cab, 0x2cab, 0x2cad, 0x2cad, 0x2caf, 0x2caf,
  748   0x2cb1, 0x2cb1, 0x2cb3, 0x2cb3, 0x2cb5, 0x2cb5, 0x2cb7, 0x2cb7,
  749   0x2cb9, 0x2cb9, 0x2cbb, 0x2cbb, 0x2cbd, 0x2cbd, 0x2cbf, 0x2cbf,
  750   0x2cc1, 0x2cc1, 0x2cc3, 0x2cc3, 0x2cc5, 0x2cc5, 0x2cc7, 0x2cc7,
  751   0x2cc9, 0x2cc9, 0x2ccb, 0x2ccb, 0x2ccd, 0x2ccd, 0x2ccf, 0x2ccf,
  752   0x2cd1, 0x2cd1, 0x2cd3, 0x2cd3, 0x2cd5, 0x2cd5, 0x2cd7, 0x2cd7,
  753   0x2cd9, 0x2cd9, 0x2cdb, 0x2cdb, 0x2cdd, 0x2cdd, 0x2cdf, 0x2cdf,
  754   0x2ce1, 0x2ce1, 0x2ce3, 0x2ce3, 0x2ce4, 0x2ce5, 0x2ce6, 0x2ce7,
  755   0x2ce8, 0x2ce9, 0x2cea, 0x2cec, 0x2cec, 0x2cee, 0x2cee, 0x2cef,
  756   0x2cf0, 0x2cf1, 0x2cf3, 0x2cf3, 0x2cf4, 0x2cf5, 0x2cf6, 0x2cf7,
  757   0x2cf8, 0x2cf9, 0x2cfa, 0x2cfb, 0x2cfc, 0x2cfd, 0x2cfe, 0x2cff
  758 }};
  759 static UnicodeCaseTableVector caseTablea6 = {{
  760   0xa600, 0xa601, 0xa602, 0xa603, 0xa604, 0xa605, 0xa606, 0xa607,
  761   0xa608, 0xa609, 0xa60a, 0xa60b, 0xa60c, 0xa60d, 0xa60e, 0xa60f,
  762   0xa610, 0xa611, 0xa612, 0xa613, 0xa614, 0xa615, 0xa616, 0xa617,
  763   0xa618, 0xa619, 0xa61a, 0xa61b, 0xa61c, 0xa61d, 0xa61e, 0xa61f,
  764   0xa620, 0xa621, 0xa622, 0xa623, 0xa624, 0xa625, 0xa626, 0xa627,
  765   0xa628, 0xa629, 0xa62a, 0xa62b, 0xa62c, 0xa62d, 0xa62e, 0xa62f,
  766   0xa630, 0xa631, 0xa632, 0xa633, 0xa634, 0xa635, 0xa636, 0xa637,
  767   0xa638, 0xa639, 0xa63a, 0xa63b, 0xa63c, 0xa63d, 0xa63e, 0xa63f,
  768   0xa641, 0xa641, 0xa643, 0xa643, 0xa645, 0xa645, 0xa647, 0xa647,
  769   0xa649, 0xa649, 0xa64b, 0xa64b, 0xa64d, 0xa64d, 0xa64f, 0xa64f,
  770   0xa651, 0xa651, 0xa653, 0xa653, 0xa655, 0xa655, 0xa657, 0xa657,
  771   0xa659, 0xa659, 0xa65b, 0xa65b, 0xa65d, 0xa65d, 0xa65f, 0xa65f,
  772   0xa661, 0xa661, 0xa663, 0xa663, 0xa665, 0xa665, 0xa667, 0xa667,
  773   0xa669, 0xa669, 0xa66b, 0xa66b, 0xa66d, 0xa66d, 0xa66e, 0xa66f,
  774   0xa670, 0xa671, 0xa672, 0xa673, 0xa674, 0xa675, 0xa676, 0xa677,
  775   0xa678, 0xa679, 0xa67a, 0xa67b, 0xa67c, 0xa67d, 0xa67e, 0xa67f,
  776   0xa681, 0xa681, 0xa683, 0xa683, 0xa685, 0xa685, 0xa687, 0xa687,
  777   0xa689, 0xa689, 0xa68b, 0xa68b, 0xa68d, 0xa68d, 0xa68f, 0xa68f,
  778   0xa691, 0xa691, 0xa693, 0xa693, 0xa695, 0xa695, 0xa697, 0xa697,
  779   0xa699, 0xa699, 0xa69b, 0xa69b, 0xa69c, 0xa69d, 0xa69e, 0xa69f,
  780   0xa6a0, 0xa6a1, 0xa6a2, 0xa6a3, 0xa6a4, 0xa6a5, 0xa6a6, 0xa6a7,
  781   0xa6a8, 0xa6a9, 0xa6aa, 0xa6ab, 0xa6ac, 0xa6ad, 0xa6ae, 0xa6af,
  782   0xa6b0, 0xa6b1, 0xa6b2, 0xa6b3, 0xa6b4, 0xa6b5, 0xa6b6, 0xa6b7,
  783   0xa6b8, 0xa6b9, 0xa6ba, 0xa6bb, 0xa6bc, 0xa6bd, 0xa6be, 0xa6bf,
  784   0xa6c0, 0xa6c1, 0xa6c2, 0xa6c3, 0xa6c4, 0xa6c5, 0xa6c6, 0xa6c7,
  785   0xa6c8, 0xa6c9, 0xa6ca, 0xa6cb, 0xa6cc, 0xa6cd, 0xa6ce, 0xa6cf,
  786   0xa6d0, 0xa6d1, 0xa6d2, 0xa6d3, 0xa6d4, 0xa6d5, 0xa6d6, 0xa6d7,
  787   0xa6d8, 0xa6d9, 0xa6da, 0xa6db, 0xa6dc, 0xa6dd, 0xa6de, 0xa6df,
  788   0xa6e0, 0xa6e1, 0xa6e2, 0xa6e3, 0xa6e4, 0xa6e5, 0xa6e6, 0xa6e7,
  789   0xa6e8, 0xa6e9, 0xa6ea, 0xa6eb, 0xa6ec, 0xa6ed, 0xa6ee, 0xa6ef,
  790   0xa6f0, 0xa6f1, 0xa6f2, 0xa6f3, 0xa6f4, 0xa6f5, 0xa6f6, 0xa6f7,
  791   0xa6f8, 0xa6f9, 0xa6fa, 0xa6fb, 0xa6fc, 0xa6fd, 0xa6fe, 0xa6ff
  792 }};
  793 static UnicodeCaseTableVector caseTablea7 = {{
  794   0xa700, 0xa701, 0xa702, 0xa703, 0xa704, 0xa705, 0xa706, 0xa707,
  795   0xa708, 0xa709, 0xa70a, 0xa70b, 0xa70c, 0xa70d, 0xa70e, 0xa70f,
  796   0xa710, 0xa711, 0xa712, 0xa713, 0xa714, 0xa715, 0xa716, 0xa717,
  797   0xa718, 0xa719, 0xa71a, 0xa71b, 0xa71c, 0xa71d, 0xa71e, 0xa71f,
  798   0xa720, 0xa721, 0xa723, 0xa723, 0xa725, 0xa725, 0xa727, 0xa727,
  799   0xa729, 0xa729, 0xa72b, 0xa72b, 0xa72d, 0xa72d, 0xa72f, 0xa72f,
  800   0xa730, 0xa731, 0xa733, 0xa733, 0xa735, 0xa735, 0xa737, 0xa737,
  801   0xa739, 0xa739, 0xa73b, 0xa73b, 0xa73d, 0xa73d, 0xa73f, 0xa73f,
  802   0xa741, 0xa741, 0xa743, 0xa743, 0xa745, 0xa745, 0xa747, 0xa747,
  803   0xa749, 0xa749, 0xa74b, 0xa74b, 0xa74d, 0xa74d, 0xa74f, 0xa74f,
  804   0xa751, 0xa751, 0xa753, 0xa753, 0xa755, 0xa755, 0xa757, 0xa757,
  805   0xa759, 0xa759, 0xa75b, 0xa75b, 0xa75d, 0xa75d, 0xa75f, 0xa75f,
  806   0xa761, 0xa761, 0xa763, 0xa763, 0xa765, 0xa765, 0xa767, 0xa767,
  807   0xa769, 0xa769, 0xa76b, 0xa76b, 0xa76d, 0xa76d, 0xa76f, 0xa76f,
  808   0xa770, 0xa771, 0xa772, 0xa773, 0xa774, 0xa775, 0xa776, 0xa777,
  809   0xa778, 0xa77a, 0xa77a, 0xa77c, 0xa77c, 0x1d79, 0xa77f, 0xa77f,
  810   0xa781, 0xa781, 0xa783, 0xa783, 0xa785, 0xa785, 0xa787, 0xa787,
  811   0xa788, 0xa789, 0xa78a, 0xa78c, 0xa78c, 0x0265, 0xa78e, 0xa78f,
  812   0xa791, 0xa791, 0xa793, 0xa793, 0xa794, 0xa795, 0xa797, 0xa797,
  813   0xa799, 0xa799, 0xa79b, 0xa79b, 0xa79d, 0xa79d, 0xa79f, 0xa79f,
  814   0xa7a1, 0xa7a1, 0xa7a3, 0xa7a3, 0xa7a5, 0xa7a5, 0xa7a7, 0xa7a7,
  815   0xa7a9, 0xa7a9, 0x0266, 0x025c, 0x0261, 0x026c, 0x026a, 0xa7af,
  816   0x029e, 0x0287, 0x029d, 0xab53, 0xa7b5, 0xa7b5, 0xa7b7, 0xa7b7,
  817   0xa7b9, 0xa7b9, 0xa7bb, 0xa7bb, 0xa7bd, 0xa7bd, 0xa7bf, 0xa7bf,
  818   0xa7c0, 0xa7c1, 0xa7c3, 0xa7c3, 0xa794, 0x0282, 0x1d8e, 0xa7c8,
  819   0xa7c8, 0xa7ca, 0xa7ca, 0xa7cb, 0xa7cc, 0xa7cd, 0xa7ce, 0xa7cf,
  820   0xa7d0, 0xa7d1, 0xa7d2, 0xa7d3, 0xa7d4, 0xa7d5, 0xa7d6, 0xa7d7,
  821   0xa7d8, 0xa7d9, 0xa7da, 0xa7db, 0xa7dc, 0xa7dd, 0xa7de, 0xa7df,
  822   0xa7e0, 0xa7e1, 0xa7e2, 0xa7e3, 0xa7e4, 0xa7e5, 0xa7e6, 0xa7e7,
  823   0xa7e8, 0xa7e9, 0xa7ea, 0xa7eb, 0xa7ec, 0xa7ed, 0xa7ee, 0xa7ef,
  824   0xa7f0, 0xa7f1, 0xa7f2, 0xa7f3, 0xa7f4, 0xa7f6, 0xa7f6, 0xa7f7,
  825   0xa7f8, 0xa7f9, 0xa7fa, 0xa7fb, 0xa7fc, 0xa7fd, 0xa7fe, 0xa7ff
  826 }};
  827 static UnicodeCaseTableVector caseTableab = {{
  828   0xab00, 0xab01, 0xab02, 0xab03, 0xab04, 0xab05, 0xab06, 0xab07,
  829   0xab08, 0xab09, 0xab0a, 0xab0b, 0xab0c, 0xab0d, 0xab0e, 0xab0f,
  830   0xab10, 0xab11, 0xab12, 0xab13, 0xab14, 0xab15, 0xab16, 0xab17,
  831   0xab18, 0xab19, 0xab1a, 0xab1b, 0xab1c, 0xab1d, 0xab1e, 0xab1f,
  832   0xab20, 0xab21, 0xab22, 0xab23, 0xab24, 0xab25, 0xab26, 0xab27,
  833   0xab28, 0xab29, 0xab2a, 0xab2b, 0xab2c, 0xab2d, 0xab2e, 0xab2f,
  834   0xab30, 0xab31, 0xab32, 0xab33, 0xab34, 0xab35, 0xab36, 0xab37,
  835   0xab38, 0xab39, 0xab3a, 0xab3b, 0xab3c, 0xab3d, 0xab3e, 0xab3f,
  836   0xab40, 0xab41, 0xab42, 0xab43, 0xab44, 0xab45, 0xab46, 0xab47,
  837   0xab48, 0xab49, 0xab4a, 0xab4b, 0xab4c, 0xab4d, 0xab4e, 0xab4f,
  838   0xab50, 0xab51, 0xab52, 0xab53, 0xab54, 0xab55, 0xab56, 0xab57,
  839   0xab58, 0xab59, 0xab5a, 0xab5b, 0xab5c, 0xab5d, 0xab5e, 0xab5f,
  840   0xab60, 0xab61, 0xab62, 0xab63, 0xab64, 0xab65, 0xab66, 0xab67,
  841   0xab68, 0xab69, 0xab6a, 0xab6b, 0xab6c, 0xab6d, 0xab6e, 0xab6f,
  842   0x13a0, 0x13a1, 0x13a2, 0x13a3, 0x13a4, 0x13a5, 0x13a6, 0x13a7,
  843   0x13a8, 0x13a9, 0x13aa, 0x13ab, 0x13ac, 0x13ad, 0x13ae, 0x13af,
  844   0x13b0, 0x13b1, 0x13b2, 0x13b3, 0x13b4, 0x13b5, 0x13b6, 0x13b7,
  845   0x13b8, 0x13b9, 0x13ba, 0x13bb, 0x13bc, 0x13bd, 0x13be, 0x13bf,
  846   0x13c0, 0x13c1, 0x13c2, 0x13c3, 0x13c4, 0x13c5, 0x13c6, 0x13c7,
  847   0x13c8, 0x13c9, 0x13ca, 0x13cb, 0x13cc, 0x13cd, 0x13ce, 0x13cf,
  848   0x13d0, 0x13d1, 0x13d2, 0x13d3, 0x13d4, 0x13d5, 0x13d6, 0x13d7,
  849   0x13d8, 0x13d9, 0x13da, 0x13db, 0x13dc, 0x13dd, 0x13de, 0x13df,
  850   0x13e0, 0x13e1, 0x13e2, 0x13e3, 0x13e4, 0x13e5, 0x13e6, 0x13e7,
  851   0x13e8, 0x13e9, 0x13ea, 0x13eb, 0x13ec, 0x13ed, 0x13ee, 0x13ef,
  852   0xabc0, 0xabc1, 0xabc2, 0xabc3, 0xabc4, 0xabc5, 0xabc6, 0xabc7,
  853   0xabc8, 0xabc9, 0xabca, 0xabcb, 0xabcc, 0xabcd, 0xabce, 0xabcf,
  854   0xabd0, 0xabd1, 0xabd2, 0xabd3, 0xabd4, 0xabd5, 0xabd6, 0xabd7,
  855   0xabd8, 0xabd9, 0xabda, 0xabdb, 0xabdc, 0xabdd, 0xabde, 0xabdf,
  856   0xabe0, 0xabe1, 0xabe2, 0xabe3, 0xabe4, 0xabe5, 0xabe6, 0xabe7,
  857   0xabe8, 0xabe9, 0xabea, 0xabeb, 0xabec, 0xabed, 0xabee, 0xabef,
  858   0xabf0, 0xabf1, 0xabf2, 0xabf3, 0xabf4, 0xabf5, 0xabf6, 0xabf7,
  859   0xabf8, 0xabf9, 0xabfa, 0xabfb, 0xabfc, 0xabfd, 0xabfe, 0xabff
  860 }};
  861 static UnicodeCaseTableVector caseTableff = {{
  862   0xff00, 0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07,
  863   0xff08, 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f,
  864   0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17,
  865   0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f,
  866   0xff20, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47,
  867   0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f,
  868   0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57,
  869   0xff58, 0xff59, 0xff5a, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff3f,
  870   0xff40, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47,
  871   0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f,
  872   0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57,
  873   0xff58, 0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xff5e, 0xff5f,
  874   0xff60, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67,
  875   0xff68, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f,
  876   0xff70, 0xff71, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77,
  877   0xff78, 0xff79, 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f,
  878   0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87,
  879   0xff88, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, 0xff8f,
  880   0xff90, 0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97,
  881   0xff98, 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f,
  882   0xffa0, 0xffa1, 0xffa2, 0xffa3, 0xffa4, 0xffa5, 0xffa6, 0xffa7,
  883   0xffa8, 0xffa9, 0xffaa, 0xffab, 0xffac, 0xffad, 0xffae, 0xffaf,
  884   0xffb0, 0xffb1, 0xffb2, 0xffb3, 0xffb4, 0xffb5, 0xffb6, 0xffb7,
  885   0xffb8, 0xffb9, 0xffba, 0xffbb, 0xffbc, 0xffbd, 0xffbe, 0xffbf,
  886   0xffc0, 0xffc1, 0xffc2, 0xffc3, 0xffc4, 0xffc5, 0xffc6, 0xffc7,
  887   0xffc8, 0xffc9, 0xffca, 0xffcb, 0xffcc, 0xffcd, 0xffce, 0xffcf,
  888   0xffd0, 0xffd1, 0xffd2, 0xffd3, 0xffd4, 0xffd5, 0xffd6, 0xffd7,
  889   0xffd8, 0xffd9, 0xffda, 0xffdb, 0xffdc, 0xffdd, 0xffde, 0xffdf,
  890   0xffe0, 0xffe1, 0xffe2, 0xffe3, 0xffe4, 0xffe5, 0xffe6, 0xffe7,
  891   0xffe8, 0xffe9, 0xffea, 0xffeb, 0xffec, 0xffed, 0xffee, 0xffef,
  892   0xfff0, 0xfff1, 0xfff2, 0xfff3, 0xfff4, 0xfff5, 0xfff6, 0xfff7,
  893   0xfff8, 0xfff9, 0xfffa, 0xfffb, 0xfffc, 0xfffd, 0xfffe, 0xffff
  894 }};
  895 static UnicodeCaseTableVector *caseTable[256] = {
  896   &caseTable00,
  897   &caseTable01,
  898   &caseTable02,
  899   &caseTable03,
  900   &caseTable04,
  901   &caseTable05,
  902   NULL,
  903   NULL,
  904   NULL,
  905   NULL,
  906   NULL,
  907   NULL,
  908   NULL,
  909   NULL,
  910   NULL,
  911   NULL,
  912   &caseTable10,
  913   NULL,
  914   NULL,
  915   &caseTable13,
  916   NULL,
  917   NULL,
  918   NULL,
  919   NULL,
  920   NULL,
  921   NULL,
  922   NULL,
  923   NULL,
  924   &caseTable1c,
  925   NULL,
  926   &caseTable1e,
  927   &caseTable1f,
  928   NULL,
  929   &caseTable21,
  930   NULL,
  931   NULL,
  932   &caseTable24,
  933   NULL,
  934   NULL,
  935   NULL,
  936   NULL,
  937   NULL,
  938   NULL,
  939   NULL,
  940   &caseTable2c,
  941   NULL,
  942   NULL,
  943   NULL,
  944   NULL,
  945   NULL,
  946   NULL,
  947   NULL,
  948   NULL,
  949   NULL,
  950   NULL,
  951   NULL,
  952   NULL,
  953   NULL,
  954   NULL,
  955   NULL,
  956   NULL,
  957   NULL,
  958   NULL,
  959   NULL,
  960   NULL,
  961   NULL,
  962   NULL,
  963   NULL,
  964   NULL,
  965   NULL,
  966   NULL,
  967   NULL,
  968   NULL,
  969   NULL,
  970   NULL,
  971   NULL,
  972   NULL,
  973   NULL,
  974   NULL,
  975   NULL,
  976   NULL,
  977   NULL,
  978   NULL,
  979   NULL,
  980   NULL,
  981   NULL,
  982   NULL,
  983   NULL,
  984   NULL,
  985   NULL,
  986   NULL,
  987   NULL,
  988   NULL,
  989   NULL,
  990   NULL,
  991   NULL,
  992   NULL,
  993   NULL,
  994   NULL,
  995   NULL,
  996   NULL,
  997   NULL,
  998   NULL,
  999   NULL,
 1000   NULL,
 1001   NULL,
 1002   NULL,
 1003   NULL,
 1004   NULL,
 1005   NULL,
 1006   NULL,
 1007   NULL,
 1008   NULL,
 1009   NULL,
 1010   NULL,
 1011   NULL,
 1012   NULL,
 1013   NULL,
 1014   NULL,
 1015   NULL,
 1016   NULL,
 1017   NULL,
 1018   NULL,
 1019   NULL,
 1020   NULL,
 1021   NULL,
 1022   NULL,
 1023   NULL,
 1024   NULL,
 1025   NULL,
 1026   NULL,
 1027   NULL,
 1028   NULL,
 1029   NULL,
 1030   NULL,
 1031   NULL,
 1032   NULL,
 1033   NULL,
 1034   NULL,
 1035   NULL,
 1036   NULL,
 1037   NULL,
 1038   NULL,
 1039   NULL,
 1040   NULL,
 1041   NULL,
 1042   NULL,
 1043   NULL,
 1044   NULL,
 1045   NULL,
 1046   NULL,
 1047   NULL,
 1048   NULL,
 1049   NULL,
 1050   NULL,
 1051   NULL,
 1052   NULL,
 1053   NULL,
 1054   NULL,
 1055   NULL,
 1056   NULL,
 1057   NULL,
 1058   NULL,
 1059   NULL,
 1060   NULL,
 1061   NULL,
 1062   &caseTablea6,
 1063   &caseTablea7,
 1064   NULL,
 1065   NULL,
 1066   NULL,
 1067   &caseTableab,
 1068   NULL,
 1069   NULL,
 1070   NULL,
 1071   NULL,
 1072   NULL,
 1073   NULL,
 1074   NULL,
 1075   NULL,
 1076   NULL,
 1077   NULL,
 1078   NULL,
 1079   NULL,
 1080   NULL,
 1081   NULL,
 1082   NULL,
 1083   NULL,
 1084   NULL,
 1085   NULL,
 1086   NULL,
 1087   NULL,
 1088   NULL,
 1089   NULL,
 1090   NULL,
 1091   NULL,
 1092   NULL,
 1093   NULL,
 1094   NULL,
 1095   NULL,
 1096   NULL,
 1097   NULL,
 1098   NULL,
 1099   NULL,
 1100   NULL,
 1101   NULL,
 1102   NULL,
 1103   NULL,
 1104   NULL,
 1105   NULL,
 1106   NULL,
 1107   NULL,
 1108   NULL,
 1109   NULL,
 1110   NULL,
 1111   NULL,
 1112   NULL,
 1113   NULL,
 1114   NULL,
 1115   NULL,
 1116   NULL,
 1117   NULL,
 1118   NULL,
 1119   NULL,
 1120   NULL,
 1121   NULL,
 1122   NULL,
 1123   NULL,
 1124   NULL,
 1125   NULL,
 1126   NULL,
 1127   NULL,
 1128   NULL,
 1129   NULL,
 1130   NULL,
 1131   NULL,
 1132   NULL,
 1133   NULL,
 1134   NULL,
 1135   NULL,
 1136   NULL,
 1137   NULL,
 1138   NULL,
 1139   NULL,
 1140   NULL,
 1141   NULL,
 1142   NULL,
 1143   NULL,
 1144   NULL,
 1145   NULL,
 1146   NULL,
 1147   NULL,
 1148   NULL,
 1149   NULL,
 1150   NULL,
 1151   &caseTableff
 1152 };
 1153 
 1154 static Unicode bracketTable00[256] = {
 1155   0, 0, 0, 0, 0, 0, 0, 0,
 1156   0, 0, 0, 0, 0, 0, 0, 0,
 1157   0, 0, 0, 0, 0, 0, 0, 0,
 1158   0, 0, 0, 0, 0, 0, 0, 0,
 1159   0, 0, 0, 0, 0, 0, 0, 0,
 1160   0x80000029, 0x0028, 0, 0, 0, 0, 0, 0,
 1161   0, 0, 0, 0, 0, 0, 0, 0,
 1162   0, 0, 0, 0, 0, 0, 0, 0,
 1163   0, 0, 0, 0, 0, 0, 0, 0,
 1164   0, 0, 0, 0, 0, 0, 0, 0,
 1165   0, 0, 0, 0, 0, 0, 0, 0,
 1166   0, 0, 0, 0x8000005d, 0, 0x005b, 0, 0,
 1167   0, 0, 0, 0, 0, 0, 0, 0,
 1168   0, 0, 0, 0, 0, 0, 0, 0,
 1169   0, 0, 0, 0, 0, 0, 0, 0,
 1170   0, 0, 0, 0x8000007d, 0, 0x007b, 0, 0,
 1171   0, 0, 0, 0, 0, 0, 0, 0,
 1172   0, 0, 0, 0, 0, 0, 0, 0,
 1173   0, 0, 0, 0, 0, 0, 0, 0,
 1174   0, 0, 0, 0, 0, 0, 0, 0,
 1175   0, 0, 0, 0, 0, 0, 0, 0,
 1176   0, 0, 0, 0, 0, 0, 0, 0,
 1177   0, 0, 0, 0, 0, 0, 0, 0,
 1178   0, 0, 0, 0, 0, 0, 0, 0,
 1179   0, 0, 0, 0, 0, 0, 0, 0,
 1180   0, 0, 0, 0, 0, 0, 0, 0,
 1181   0, 0, 0, 0, 0, 0, 0, 0,
 1182   0, 0, 0, 0, 0, 0, 0, 0,
 1183   0, 0, 0, 0, 0, 0, 0, 0,
 1184   0, 0, 0, 0, 0, 0, 0, 0,
 1185   0, 0, 0, 0, 0, 0, 0, 0,
 1186   0, 0, 0, 0, 0, 0, 0, 0
 1187 };
 1188 static Unicode bracketTable0f[256] = {
 1189   0, 0, 0, 0, 0, 0, 0, 0,
 1190   0, 0, 0, 0, 0, 0, 0, 0,
 1191   0, 0, 0, 0, 0, 0, 0, 0,
 1192   0, 0, 0, 0, 0, 0, 0, 0,
 1193   0, 0, 0, 0, 0, 0, 0, 0,
 1194   0, 0, 0, 0, 0, 0, 0, 0,
 1195   0, 0, 0, 0, 0, 0, 0, 0,
 1196   0, 0, 0x80000f3b, 0x0f3a, 0x80000f3d, 0x0f3c, 0, 0,
 1197   0, 0, 0, 0, 0, 0, 0, 0,
 1198   0, 0, 0, 0, 0, 0, 0, 0,
 1199   0, 0, 0, 0, 0, 0, 0, 0,
 1200   0, 0, 0, 0, 0, 0, 0, 0,
 1201   0, 0, 0, 0, 0, 0, 0, 0,
 1202   0, 0, 0, 0, 0, 0, 0, 0,
 1203   0, 0, 0, 0, 0, 0, 0, 0,
 1204   0, 0, 0, 0, 0, 0, 0, 0,
 1205   0, 0, 0, 0, 0, 0, 0, 0,
 1206   0, 0, 0, 0, 0, 0, 0, 0,
 1207   0, 0, 0, 0, 0, 0, 0, 0,
 1208   0, 0, 0, 0, 0, 0, 0, 0,
 1209   0, 0, 0, 0, 0, 0, 0, 0,
 1210   0, 0, 0, 0, 0, 0, 0, 0,
 1211   0, 0, 0, 0, 0, 0, 0, 0,
 1212   0, 0, 0, 0, 0, 0, 0, 0,
 1213   0, 0, 0, 0, 0, 0, 0, 0,
 1214   0, 0, 0, 0, 0, 0, 0, 0,
 1215   0, 0, 0, 0, 0, 0, 0, 0,
 1216   0, 0, 0, 0, 0, 0, 0, 0,
 1217   0, 0, 0, 0, 0, 0, 0, 0,
 1218   0, 0, 0, 0, 0, 0, 0, 0,
 1219   0, 0, 0, 0, 0, 0, 0, 0,
 1220   0, 0, 0, 0, 0, 0, 0, 0
 1221 };
 1222 static Unicode bracketTable16[256] = {
 1223   0, 0, 0, 0, 0, 0, 0, 0,
 1224   0, 0, 0, 0, 0, 0, 0, 0,
 1225   0, 0, 0, 0, 0, 0, 0, 0,
 1226   0, 0, 0, 0, 0, 0, 0, 0,
 1227   0, 0, 0, 0, 0, 0, 0, 0,
 1228   0, 0, 0, 0, 0, 0, 0, 0,
 1229   0, 0, 0, 0, 0, 0, 0, 0,
 1230   0, 0, 0, 0, 0, 0, 0, 0,
 1231   0, 0, 0, 0, 0, 0, 0, 0,
 1232   0, 0, 0, 0, 0, 0, 0, 0,
 1233   0, 0, 0, 0, 0, 0, 0, 0,
 1234   0, 0, 0, 0, 0, 0, 0, 0,
 1235   0, 0, 0, 0, 0, 0, 0, 0,
 1236   0, 0, 0, 0, 0, 0, 0, 0,
 1237   0, 0, 0, 0, 0, 0, 0, 0,
 1238   0, 0, 0, 0, 0, 0, 0, 0,
 1239   0, 0, 0, 0, 0, 0, 0, 0,
 1240   0, 0, 0, 0, 0, 0, 0, 0,
 1241   0, 0, 0, 0, 0, 0, 0, 0,
 1242   0, 0, 0, 0x8000169c, 0x169b, 0, 0, 0,
 1243   0, 0, 0, 0, 0, 0, 0, 0,
 1244   0, 0, 0, 0, 0, 0, 0, 0,
 1245   0, 0, 0, 0, 0, 0, 0, 0,
 1246   0, 0, 0, 0, 0, 0, 0, 0,
 1247   0, 0, 0, 0, 0, 0, 0, 0,
 1248   0, 0, 0, 0, 0, 0, 0, 0,
 1249   0, 0, 0, 0, 0, 0, 0, 0,
 1250   0, 0, 0, 0, 0, 0, 0, 0,
 1251   0, 0, 0, 0, 0, 0, 0, 0,
 1252   0, 0, 0, 0, 0, 0, 0, 0,
 1253   0, 0, 0, 0, 0, 0, 0, 0,
 1254   0, 0, 0, 0, 0, 0, 0, 0
 1255 };
 1256 static Unicode bracketTable20[256] = {
 1257   0, 0, 0, 0, 0, 0, 0, 0,
 1258   0, 0, 0, 0, 0, 0, 0, 0,
 1259   0, 0, 0, 0, 0, 0, 0, 0,
 1260   0, 0, 0, 0, 0, 0, 0, 0,
 1261   0, 0, 0, 0, 0, 0, 0, 0,
 1262   0, 0, 0, 0, 0, 0, 0, 0,
 1263   0, 0, 0, 0, 0, 0, 0, 0,
 1264   0, 0, 0, 0, 0, 0, 0, 0,
 1265   0, 0, 0, 0, 0, 0x80002046, 0x2045, 0,
 1266   0, 0, 0, 0, 0, 0, 0, 0,
 1267   0, 0, 0, 0, 0, 0, 0, 0,
 1268   0, 0, 0, 0, 0, 0, 0, 0,
 1269   0, 0, 0, 0, 0, 0, 0, 0,
 1270   0, 0, 0, 0, 0, 0, 0, 0,
 1271   0, 0, 0, 0, 0, 0, 0, 0,
 1272   0, 0, 0, 0, 0, 0x8000207e, 0x207d, 0,
 1273   0, 0, 0, 0, 0, 0, 0, 0,
 1274   0, 0, 0, 0, 0, 0x8000208e, 0x208d, 0,
 1275   0, 0, 0, 0, 0, 0, 0, 0,
 1276   0, 0, 0, 0, 0, 0, 0, 0,
 1277   0, 0, 0, 0, 0, 0, 0, 0,
 1278   0, 0, 0, 0, 0, 0, 0, 0,
 1279   0, 0, 0, 0, 0, 0, 0, 0,
 1280   0, 0, 0, 0, 0, 0, 0, 0,
 1281   0, 0, 0, 0, 0, 0, 0, 0,
 1282   0, 0, 0, 0, 0, 0, 0, 0,
 1283   0, 0, 0, 0, 0, 0, 0, 0,
 1284   0, 0, 0, 0, 0, 0, 0, 0,
 1285   0, 0, 0, 0, 0, 0, 0, 0,
 1286   0, 0, 0, 0, 0, 0, 0, 0,
 1287   0, 0, 0, 0, 0, 0, 0, 0,
 1288   0, 0, 0, 0, 0, 0, 0, 0
 1289 };
 1290 static Unicode bracketTable23[256] = {
 1291   0, 0, 0, 0, 0, 0, 0, 0,
 1292   0x80002309, 0x2308, 0x8000230b, 0x230a, 0, 0, 0, 0,
 1293   0, 0, 0, 0, 0, 0, 0, 0,
 1294   0, 0, 0, 0, 0, 0, 0, 0,
 1295   0, 0, 0, 0, 0, 0, 0, 0,
 1296   0, 0x8000232a, 0x2329, 0, 0, 0, 0, 0,
 1297   0, 0, 0, 0, 0, 0, 0, 0,
 1298   0, 0, 0, 0, 0, 0, 0, 0,
 1299   0, 0, 0, 0, 0, 0, 0, 0,
 1300   0, 0, 0, 0, 0, 0, 0, 0,
 1301   0, 0, 0, 0, 0, 0, 0, 0,
 1302   0, 0, 0, 0, 0, 0, 0, 0,
 1303   0, 0, 0, 0, 0, 0, 0, 0,
 1304   0, 0, 0, 0, 0, 0, 0, 0,
 1305   0, 0, 0, 0, 0, 0, 0, 0,
 1306   0, 0, 0, 0, 0, 0, 0, 0,
 1307   0, 0, 0, 0, 0, 0, 0, 0,
 1308   0, 0, 0, 0, 0, 0, 0, 0,
 1309   0, 0, 0, 0, 0, 0, 0, 0,
 1310   0, 0, 0, 0, 0, 0, 0, 0,
 1311   0, 0, 0, 0, 0, 0, 0, 0,
 1312   0, 0, 0, 0, 0, 0, 0, 0,
 1313   0, 0, 0, 0, 0, 0, 0, 0,
 1314   0, 0, 0, 0, 0, 0, 0, 0,
 1315   0, 0, 0, 0, 0, 0, 0, 0,
 1316   0, 0, 0, 0, 0, 0, 0, 0,
 1317   0, 0, 0, 0, 0, 0, 0, 0,
 1318   0, 0, 0, 0, 0, 0, 0, 0,
 1319   0, 0, 0, 0, 0, 0, 0, 0,
 1320   0, 0, 0, 0, 0, 0, 0, 0,
 1321   0, 0, 0, 0, 0, 0, 0, 0,
 1322   0, 0, 0, 0, 0, 0, 0, 0
 1323 };
 1324 static Unicode bracketTable27[256] = {
 1325   0, 0, 0, 0, 0, 0, 0, 0,
 1326   0, 0, 0, 0, 0, 0, 0, 0,
 1327   0, 0, 0, 0, 0, 0, 0, 0,
 1328   0, 0, 0, 0, 0, 0, 0, 0,
 1329   0, 0, 0, 0, 0, 0, 0, 0,
 1330   0, 0, 0, 0, 0, 0, 0, 0,
 1331   0, 0, 0, 0, 0, 0, 0, 0,
 1332   0, 0, 0, 0, 0, 0, 0, 0,
 1333   0, 0, 0, 0, 0, 0, 0, 0,
 1334   0, 0, 0, 0, 0, 0, 0, 0,
 1335   0, 0, 0, 0, 0, 0, 0, 0,
 1336   0, 0, 0, 0, 0, 0, 0, 0,
 1337   0, 0, 0, 0, 0, 0, 0, 0,
 1338   0x80002769, 0x2768, 0x8000276b, 0x276a, 0x8000276d, 0x276c, 0x8000276f, 0x276e,
 1339   0x80002771, 0x2770, 0x80002773, 0x2772, 0x80002775, 0x2774, 0, 0,
 1340   0, 0, 0, 0, 0, 0, 0, 0,
 1341   0, 0, 0, 0, 0, 0, 0, 0,
 1342   0, 0, 0, 0, 0, 0, 0, 0,
 1343   0, 0, 0, 0, 0, 0, 0, 0,
 1344   0, 0, 0, 0, 0, 0, 0, 0,
 1345   0, 0, 0, 0, 0, 0, 0, 0,
 1346   0, 0, 0, 0, 0, 0, 0, 0,
 1347   0, 0, 0, 0, 0, 0, 0, 0,
 1348   0, 0, 0, 0, 0, 0, 0, 0,
 1349   0, 0, 0, 0, 0, 0x800027c6, 0x27c5, 0,
 1350   0, 0, 0, 0, 0, 0, 0, 0,
 1351   0, 0, 0, 0, 0, 0, 0, 0,
 1352   0, 0, 0, 0, 0, 0, 0, 0,
 1353   0, 0, 0, 0, 0, 0, 0x800027e7, 0x27e6,
 1354   0x800027e9, 0x27e8, 0x800027eb, 0x27ea, 0x800027ed, 0x27ec, 0x800027ef, 0x27ee,
 1355   0, 0, 0, 0, 0, 0, 0, 0,
 1356   0, 0, 0, 0, 0, 0, 0, 0
 1357 };
 1358 static Unicode bracketTable29[256] = {
 1359   0, 0, 0, 0, 0, 0, 0, 0,
 1360   0, 0, 0, 0, 0, 0, 0, 0,
 1361   0, 0, 0, 0, 0, 0, 0, 0,
 1362   0, 0, 0, 0, 0, 0, 0, 0,
 1363   0, 0, 0, 0, 0, 0, 0, 0,
 1364   0, 0, 0, 0, 0, 0, 0, 0,
 1365   0, 0, 0, 0, 0, 0, 0, 0,
 1366   0, 0, 0, 0, 0, 0, 0, 0,
 1367   0, 0, 0, 0, 0, 0, 0, 0,
 1368   0, 0, 0, 0, 0, 0, 0, 0,
 1369   0, 0, 0, 0, 0, 0, 0, 0,
 1370   0, 0, 0, 0, 0, 0, 0, 0,
 1371   0, 0, 0, 0, 0, 0, 0, 0,
 1372   0, 0, 0, 0, 0, 0, 0, 0,
 1373   0, 0, 0, 0, 0, 0, 0, 0,
 1374   0, 0, 0, 0, 0, 0, 0, 0,
 1375   0, 0, 0, 0x80002984, 0x2983, 0x80002986, 0x2985, 0x80002988,
 1376   0x2987, 0x8000298a, 0x2989, 0x8000298c, 0x298b, 0x80002990, 0x298f, 0x8000298e,
 1377   0x298d, 0x80002992, 0x2991, 0x80002994, 0x2993, 0x80002996, 0x2995, 0x80002998,
 1378   0x2997, 0, 0, 0, 0, 0, 0, 0,
 1379   0, 0, 0, 0, 0, 0, 0, 0,
 1380   0, 0, 0, 0, 0, 0, 0, 0,
 1381   0, 0, 0, 0, 0, 0, 0, 0,
 1382   0, 0, 0, 0, 0, 0, 0, 0,
 1383   0, 0, 0, 0, 0, 0, 0, 0,
 1384   0, 0, 0, 0, 0, 0, 0, 0,
 1385   0, 0, 0, 0, 0, 0, 0, 0,
 1386   0x800029d9, 0x29d8, 0x800029db, 0x29da, 0, 0, 0, 0,
 1387   0, 0, 0, 0, 0, 0, 0, 0,
 1388   0, 0, 0, 0, 0, 0, 0, 0,
 1389   0, 0, 0, 0, 0, 0, 0, 0,
 1390   0, 0, 0, 0, 0x800029fd, 0x29fc, 0, 0
 1391 };
 1392 static Unicode bracketTable2e[256] = {
 1393   0, 0, 0, 0, 0, 0, 0, 0,
 1394   0, 0, 0, 0, 0, 0, 0, 0,
 1395   0, 0, 0, 0, 0, 0, 0, 0,
 1396   0, 0, 0, 0, 0, 0, 0, 0,
 1397   0, 0, 0x80002e23, 0x2e22, 0x80002e25, 0x2e24, 0x80002e27, 0x2e26,
 1398   0x80002e29, 0x2e28, 0, 0, 0, 0, 0, 0,
 1399   0, 0, 0, 0, 0, 0, 0, 0,
 1400   0, 0, 0, 0, 0, 0, 0, 0,
 1401   0, 0, 0, 0, 0, 0, 0, 0,
 1402   0, 0, 0, 0, 0, 0, 0, 0,
 1403   0, 0, 0, 0, 0, 0, 0, 0,
 1404   0, 0, 0, 0, 0, 0, 0, 0,
 1405   0, 0, 0, 0, 0, 0, 0, 0,
 1406   0, 0, 0, 0, 0, 0, 0, 0,
 1407   0, 0, 0, 0, 0, 0, 0, 0,
 1408   0, 0, 0, 0, 0, 0, 0, 0,
 1409   0, 0, 0, 0, 0, 0, 0, 0,
 1410   0, 0, 0, 0, 0, 0, 0, 0,
 1411   0, 0, 0, 0, 0, 0, 0, 0,
 1412   0, 0, 0, 0, 0, 0, 0, 0,
 1413   0, 0, 0, 0, 0, 0, 0, 0,
 1414   0, 0, 0, 0, 0, 0, 0, 0,
 1415   0, 0, 0, 0, 0, 0, 0, 0,
 1416   0, 0, 0, 0, 0, 0, 0, 0,
 1417   0, 0, 0, 0, 0, 0, 0, 0,
 1418   0, 0, 0, 0, 0, 0, 0, 0,
 1419   0, 0, 0, 0, 0, 0, 0, 0,
 1420   0, 0, 0, 0, 0, 0, 0, 0,
 1421   0, 0, 0, 0, 0, 0, 0, 0,
 1422   0, 0, 0, 0, 0, 0, 0, 0,
 1423   0, 0, 0, 0, 0, 0, 0, 0,
 1424   0, 0, 0, 0, 0, 0, 0, 0
 1425 };
 1426 static Unicode bracketTable30[256] = {
 1427   0, 0, 0, 0, 0, 0, 0, 0,
 1428   0x80003009, 0x3008, 0x8000300b, 0x300a, 0x8000300d, 0x300c, 0x8000300f, 0x300e,
 1429   0x80003011, 0x3010, 0, 0, 0x80003015, 0x3014, 0x80003017, 0x3016,
 1430   0x80003019, 0x3018, 0x8000301b, 0x301a, 0, 0, 0, 0,
 1431   0, 0, 0, 0, 0, 0, 0, 0,
 1432   0, 0, 0, 0, 0, 0, 0, 0,
 1433   0, 0, 0, 0, 0, 0, 0, 0,
 1434   0, 0, 0, 0, 0, 0, 0, 0,
 1435   0, 0, 0, 0, 0, 0, 0, 0,
 1436   0, 0, 0, 0, 0, 0, 0, 0,
 1437   0, 0, 0, 0, 0, 0, 0, 0,
 1438   0, 0, 0, 0, 0, 0, 0, 0,
 1439   0, 0, 0, 0, 0, 0, 0, 0,
 1440   0, 0, 0, 0, 0, 0, 0, 0,
 1441   0, 0, 0, 0, 0, 0, 0, 0,
 1442   0, 0, 0, 0, 0, 0, 0, 0,
 1443   0, 0, 0, 0, 0, 0, 0, 0,
 1444   0, 0, 0, 0, 0, 0, 0, 0,
 1445   0, 0, 0, 0, 0, 0, 0, 0,
 1446   0, 0, 0, 0, 0, 0, 0, 0,
 1447   0, 0, 0, 0, 0, 0, 0, 0,
 1448   0, 0, 0, 0, 0, 0, 0, 0,
 1449   0, 0, 0, 0, 0, 0, 0, 0,
 1450   0, 0, 0, 0, 0, 0, 0, 0,
 1451   0, 0, 0, 0, 0, 0, 0, 0,
 1452   0, 0, 0, 0, 0, 0, 0, 0,
 1453   0, 0, 0, 0, 0, 0, 0, 0,
 1454   0, 0, 0, 0, 0, 0, 0, 0,
 1455   0, 0, 0, 0, 0, 0, 0, 0,
 1456   0, 0, 0, 0, 0, 0, 0, 0,
 1457   0, 0, 0, 0, 0, 0, 0, 0,
 1458   0, 0, 0, 0, 0, 0, 0, 0
 1459 };
 1460 static Unicode bracketTablefe[256] = {
 1461   0, 0, 0, 0, 0, 0, 0, 0,
 1462   0, 0, 0, 0, 0, 0, 0, 0,
 1463   0, 0, 0, 0, 0, 0, 0, 0,
 1464   0, 0, 0, 0, 0, 0, 0, 0,
 1465   0, 0, 0, 0, 0, 0, 0, 0,
 1466   0, 0, 0, 0, 0, 0, 0, 0,
 1467   0, 0, 0, 0, 0, 0, 0, 0,
 1468   0, 0, 0, 0, 0, 0, 0, 0,
 1469   0, 0, 0, 0, 0, 0, 0, 0,
 1470   0, 0, 0, 0, 0, 0, 0, 0,
 1471   0, 0, 0, 0, 0, 0, 0, 0,
 1472   0, 0x8000fe5a, 0xfe59, 0x8000fe5c, 0xfe5b, 0x8000fe5e, 0xfe5d, 0,
 1473   0, 0, 0, 0, 0, 0, 0, 0,
 1474   0, 0, 0, 0, 0, 0, 0, 0,
 1475   0, 0, 0, 0, 0, 0, 0, 0,
 1476   0, 0, 0, 0, 0, 0, 0, 0,
 1477   0, 0, 0, 0, 0, 0, 0, 0,
 1478   0, 0, 0, 0, 0, 0, 0, 0,
 1479   0, 0, 0, 0, 0, 0, 0, 0,
 1480   0, 0, 0, 0, 0, 0, 0, 0,
 1481   0, 0, 0, 0, 0, 0, 0, 0,
 1482   0, 0, 0, 0, 0, 0, 0, 0,
 1483   0, 0, 0, 0, 0, 0, 0, 0,
 1484   0, 0, 0, 0, 0, 0, 0, 0,
 1485   0, 0, 0, 0, 0, 0, 0, 0,
 1486   0, 0, 0, 0, 0, 0, 0, 0,
 1487   0, 0, 0, 0, 0, 0, 0, 0,
 1488   0, 0, 0, 0, 0, 0, 0, 0,
 1489   0, 0, 0, 0, 0, 0, 0, 0,
 1490   0, 0, 0, 0, 0, 0, 0, 0,
 1491   0, 0, 0, 0, 0, 0, 0, 0,
 1492   0, 0, 0, 0, 0, 0, 0, 0
 1493 };
 1494 static Unicode bracketTableff[256] = {
 1495   0, 0, 0, 0, 0, 0, 0, 0,
 1496   0x8000ff09, 0xff08, 0, 0, 0, 0, 0, 0,
 1497   0, 0, 0, 0, 0, 0, 0, 0,
 1498   0, 0, 0, 0, 0, 0, 0, 0,
 1499   0, 0, 0, 0, 0, 0, 0, 0,
 1500   0, 0, 0, 0, 0, 0, 0, 0,
 1501   0, 0, 0, 0, 0, 0, 0, 0,
 1502   0, 0, 0, 0x8000ff3d, 0, 0xff3b, 0, 0,
 1503   0, 0, 0, 0, 0, 0, 0, 0,
 1504   0, 0, 0, 0, 0, 0, 0, 0,
 1505   0, 0, 0, 0, 0, 0, 0, 0,
 1506   0, 0, 0, 0x8000ff5d, 0, 0xff5b, 0, 0x8000ff60,
 1507   0xff5f, 0, 0x8000ff63, 0xff62, 0, 0, 0, 0,
 1508   0, 0, 0, 0, 0, 0, 0, 0,
 1509   0, 0, 0, 0, 0, 0, 0, 0,
 1510   0, 0, 0, 0, 0, 0, 0, 0,
 1511   0, 0, 0, 0, 0, 0, 0, 0,
 1512   0, 0, 0, 0, 0, 0, 0, 0,
 1513   0, 0, 0, 0, 0, 0, 0, 0,
 1514   0, 0, 0, 0, 0, 0, 0, 0,
 1515   0, 0, 0, 0, 0, 0, 0, 0,
 1516   0, 0, 0, 0, 0, 0, 0, 0,
 1517   0, 0, 0, 0, 0, 0, 0, 0,
 1518   0, 0, 0, 0, 0, 0, 0, 0,
 1519   0, 0, 0, 0, 0, 0, 0, 0,
 1520   0, 0, 0, 0, 0, 0, 0, 0,
 1521   0, 0, 0, 0, 0, 0, 0, 0,
 1522   0, 0, 0, 0, 0, 0, 0, 0,
 1523   0, 0, 0, 0, 0, 0, 0, 0,
 1524   0, 0, 0, 0, 0, 0, 0, 0,
 1525   0, 0, 0, 0, 0, 0, 0, 0,
 1526   0, 0, 0, 0, 0, 0, 0, 0
 1527 };
 1528 static Unicode *bracketTable[256] = {
 1529   bracketTable00,
 1530   NULL,
 1531   NULL,
 1532   NULL,
 1533   NULL,
 1534   NULL,
 1535   NULL,
 1536   NULL,
 1537   NULL,
 1538   NULL,
 1539   NULL,
 1540   NULL,
 1541   NULL,
 1542   NULL,
 1543   NULL,
 1544   bracketTable0f,
 1545   NULL,
 1546   NULL,
 1547   NULL,
 1548   NULL,
 1549   NULL,
 1550   NULL,
 1551   bracketTable16,
 1552   NULL,
 1553   NULL,
 1554   NULL,
 1555   NULL,
 1556   NULL,
 1557   NULL,
 1558   NULL,
 1559   NULL,
 1560   NULL,
 1561   bracketTable20,
 1562   NULL,
 1563   NULL,
 1564   bracketTable23,
 1565   NULL,
 1566   NULL,
 1567   NULL,
 1568   bracketTable27,
 1569   NULL,
 1570   bracketTable29,
 1571   NULL,
 1572   NULL,
 1573   NULL,
 1574   NULL,
 1575   bracketTable2e,
 1576   NULL,
 1577   bracketTable30,
 1578   NULL,
 1579   NULL,
 1580   NULL,
 1581   NULL,
 1582   NULL,
 1583   NULL,
 1584   NULL,
 1585   NULL,
 1586   NULL,
 1587   NULL,
 1588   NULL,
 1589   NULL,
 1590   NULL,
 1591   NULL,
 1592   NULL,
 1593   NULL,
 1594   NULL,
 1595   NULL,
 1596   NULL,
 1597   NULL,
 1598   NULL,
 1599   NULL,
 1600   NULL,
 1601   NULL,
 1602   NULL,
 1603   NULL,
 1604   NULL,
 1605   NULL,
 1606   NULL,
 1607   NULL,
 1608   NULL,
 1609   NULL,
 1610   NULL,
 1611   NULL,
 1612   NULL,
 1613   NULL,
 1614   NULL,
 1615   NULL,
 1616   NULL,
 1617   NULL,
 1618   NULL,
 1619   NULL,
 1620   NULL,
 1621   NULL,
 1622   NULL,
 1623   NULL,
 1624   NULL,
 1625   NULL,
 1626   NULL,
 1627   NULL,
 1628   NULL,
 1629   NULL,
 1630   NULL,
 1631   NULL,
 1632   NULL,
 1633   NULL,
 1634   NULL,
 1635   NULL,
 1636   NULL,
 1637   NULL,
 1638   NULL,
 1639   NULL,
 1640   NULL,
 1641   NULL,
 1642   NULL,
 1643   NULL,
 1644   NULL,
 1645   NULL,
 1646   NULL,
 1647   NULL,
 1648   NULL,
 1649   NULL,
 1650   NULL,
 1651   NULL,
 1652   NULL,
 1653   NULL,
 1654   NULL,
 1655   NULL,
 1656   NULL,
 1657   NULL,
 1658   NULL,
 1659   NULL,
 1660   NULL,
 1661   NULL,
 1662   NULL,
 1663   NULL,
 1664   NULL,
 1665   NULL,
 1666   NULL,
 1667   NULL,
 1668   NULL,
 1669   NULL,
 1670   NULL,
 1671   NULL,
 1672   NULL,
 1673   NULL,
 1674   NULL,
 1675   NULL,
 1676   NULL,
 1677   NULL,
 1678   NULL,
 1679   NULL,
 1680   NULL,
 1681   NULL,
 1682   NULL,
 1683   NULL,
 1684   NULL,
 1685   NULL,
 1686   NULL,
 1687   NULL,
 1688   NULL,
 1689   NULL,
 1690   NULL,
 1691   NULL,
 1692   NULL,
 1693   NULL,
 1694   NULL,
 1695   NULL,
 1696   NULL,
 1697   NULL,
 1698   NULL,
 1699   NULL,
 1700   NULL,
 1701   NULL,
 1702   NULL,
 1703   NULL,
 1704   NULL,
 1705   NULL,
 1706   NULL,
 1707   NULL,
 1708   NULL,
 1709   NULL,
 1710   NULL,
 1711   NULL,
 1712   NULL,
 1713   NULL,
 1714   NULL,
 1715   NULL,
 1716   NULL,
 1717   NULL,
 1718   NULL,
 1719   NULL,
 1720   NULL,
 1721   NULL,
 1722   NULL,
 1723   NULL,
 1724   NULL,
 1725   NULL,
 1726   NULL,
 1727   NULL,
 1728   NULL,
 1729   NULL,
 1730   NULL,
 1731   NULL,
 1732   NULL,
 1733   NULL,
 1734   NULL,
 1735   NULL,
 1736   NULL,
 1737   NULL,
 1738   NULL,
 1739   NULL,
 1740   NULL,
 1741   NULL,
 1742   NULL,
 1743   NULL,
 1744   NULL,
 1745   NULL,
 1746   NULL,
 1747   NULL,
 1748   NULL,
 1749   NULL,
 1750   NULL,
 1751   NULL,
 1752   NULL,
 1753   NULL,
 1754   NULL,
 1755   NULL,
 1756   NULL,
 1757   NULL,
 1758   NULL,
 1759   NULL,
 1760   NULL,
 1761   NULL,
 1762   NULL,
 1763   NULL,
 1764   NULL,
 1765   NULL,
 1766   NULL,
 1767   NULL,
 1768   NULL,
 1769   NULL,
 1770   NULL,
 1771   NULL,
 1772   NULL,
 1773   NULL,
 1774   NULL,
 1775   NULL,
 1776   NULL,
 1777   NULL,
 1778   NULL,
 1779   NULL,
 1780   NULL,
 1781   NULL,
 1782   NULL,
 1783   bracketTablefe,
 1784   bracketTableff
 1785 };
 1786 
 1787 static inline char getType(Unicode c) {
 1788   int i;
 1789   char type;
 1790 
 1791   if (c > 0xffff) {
 1792     type = 'X';
 1793   } else {
 1794     i = (c >> 8) & 0xff;
 1795     if ((type = typeTable[i].type) == 'X') {
 1796       type = typeTable[i].vector[c & 0xff];
 1797     }
 1798   }
 1799   return type;
 1800 }
 1801 
 1802 GBool unicodeTypeL(Unicode c) {
 1803   return getType(c) == 'L';
 1804 }
 1805 
 1806 GBool unicodeTypeR(Unicode c) {
 1807   return getType(c) == 'R';
 1808 }
 1809 
 1810 GBool unicodeTypeDigit(Unicode c) {
 1811   return getType(c) == '#';
 1812 }
 1813 
 1814 GBool unicodeTypeNumSep(Unicode c) {
 1815   return getType(c) == '.';
 1816 }
 1817 
 1818 GBool unicodeTypeNum(Unicode c) {
 1819   char t;
 1820 
 1821   t = getType(c);
 1822   return t == '#' || t == '.';
 1823 }
 1824 
 1825 GBool unicodeTypeAlphaNum(Unicode c) {
 1826   char t;
 1827 
 1828   t = getType(c);
 1829   return t == 'L' || t == 'R' || t == '#' || t == '.';
 1830 }
 1831 
 1832 GBool unicodeTypeWord(Unicode c) {
 1833   char t;
 1834 
 1835   t = getType(c);
 1836   return t == 'L' || t == 'R' || t == '#';
 1837 }
 1838 
 1839 Unicode unicodeToLower(Unicode c) {
 1840   int i;
 1841 
 1842   if (c > 0xffff) {
 1843     return c;
 1844   }
 1845   i = (c >> 8) & 0xff;
 1846   if (caseTable[i]) {
 1847     return caseTable[i]->codes[c & 0xff];
 1848   }
 1849   return c;
 1850 }
 1851 
 1852 GBool unicodeBracketInfo(Unicode c, GBool *open, Unicode *opposite) {
 1853   int i;
 1854   Unicode bracket;
 1855 
 1856   if (c > 0xffff) {
 1857     return gFalse;
 1858   }
 1859   i = (c >> 8) & 0xff;
 1860   if (!bracketTable[i]) {
 1861     return gFalse;
 1862   }
 1863   bracket = bracketTable[i][c & 0xff];
 1864   if (!bracket) {
 1865     return gFalse;
 1866   }
 1867   if (bracket & 0x80000000) {
 1868     *open = gTrue;
 1869     *opposite = bracket & 0x7fffffff;
 1870   } else {
 1871     *open = gFalse;
 1872     *opposite = bracket;
 1873   }
 1874   return gTrue;
 1875 }
 1876