needed for applet search
[jalview.git] / src / com / stevesoft / pat / Bits.java
diff --git a/src/com/stevesoft/pat/Bits.java b/src/com/stevesoft/pat/Bits.java
new file mode 100755 (executable)
index 0000000..244889f
--- /dev/null
@@ -0,0 +1,3072 @@
+package//\r
+// This software is now distributed according to\r
+// the Lesser Gnu Public License.  Please see\r
+// http://www.gnu.org/copyleft/lesser.txt for\r
+// the details.\r
+//    -- Happy Computing!\r
+//\r
+com.stevesoft.pat;\r
+\r
+import java.io.*;\r
+\r
+public class Bits {\r
+  char[] carray;\r
+  Bits(char[] carray) {\r
+    this.carray = carray;\r
+  }\r
+  public boolean get(int i) {\r
+    return ((carray[i>>4]) & (1<<(i&15))) != 0;\r
+  }\r
+  public void set(int i,boolean b) {\r
+    if(b) {\r
+      carray[i>>4] |= (char) 1<<(i&15);\r
+    } else {\r
+      carray[i>>4] &= (char)~(1<<(i&15));\r
+    }\r
+  }\r
+\r
+  /*\r
+  public static String n4(char c) {\r
+    String s = Integer.toHexString(c);\r
+    while(s.length()<4)\r
+      s = "0"+s;\r
+    return s;\r
+  }\r
+  static abstract class Tester {\r
+    abstract boolean test(char c);\r
+  }\r
+  public static void main(String[] args) throws Exception {\r
+    //pw_s.println("  static {");\r
+    FileWriter fw = new FileWriter("x.out");\r
+    fw.close();\r
+    test("upper",new Tester() {\r
+      boolean test(char c) {\r
+        return Character.isUpperCase(c);\r
+      }\r
+    });\r
+    test("lower",new Tester() {\r
+      boolean test(char c) {\r
+        return Character.isLowerCase(c);\r
+      }\r
+    });\r
+    test("title",new Tester() {\r
+      boolean test(char c) {\r
+        return Character.isLowerCase(c);\r
+      }\r
+    });\r
+    test("currency",new Tester() {\r
+      boolean test(char c) {\r
+        return Character.getType(c)==Character.CURRENCY_SYMBOL;\r
+      }\r
+    });\r
+    test("decimal_digit",new Tester() {\r
+      boolean test(char c) {\r
+        return Character.getType(c)==Character.DECIMAL_DIGIT_NUMBER;\r
+      }\r
+    });\r
+    test("math",new Tester() {\r
+      boolean test(char c) {\r
+        return Character.getType(c)==Character.MATH_SYMBOL;\r
+      }\r
+    });\r
+    test("letter",new Tester() {\r
+      boolean test(char c) {\r
+        return Character.isLetter(c);\r
+      }\r
+    });\r
+    test("white",new Tester() {\r
+      boolean test(char c) {\r
+        return Character.isWhitespace(c);\r
+      }\r
+    });\r
+    test("punct",new Tester() {\r
+      boolean test(char c) {\r
+       boolean r = false;\r
+        switch(Character.getType(c)) {\r
+        case Character.DASH_PUNCTUATION:\r
+        case Character.START_PUNCTUATION:\r
+        case Character.END_PUNCTUATION:\r
+        case Character.CONNECTOR_PUNCTUATION:\r
+        case Character.OTHER_PUNCTUATION:\r
+         r = true;\r
+         break;\r
+       default:\r
+         r = false;\r
+         break;\r
+       }\r
+       return r;\r
+      }\r
+    });\r
+    //pw_s.println("  }");\r
+    fw = new FileWriter("x.out",true);\r
+    fw.write(sw.toString());\r
+    fw.close();\r
+  }\r
+  static StringWriter sw = new StringWriter();\r
+  static PrintWriter pw_s = new PrintWriter(sw,true);\r
+  public static void test(String var,Tester t) throws Exception {\r
+\r
+    char[] ca = new char[(66536 >> 4)+1];\r
+    Bits b = new Bits(ca);\r
+    FileWriter fw = new FileWriter("x.out",true);\r
+    PrintWriter pw = new PrintWriter(fw);\r
+\r
+    //pw_s.println("    "+var+"_f();");\r
+    pw.println("  public static Bits "+var+";");\r
+    pw.println("  static void "+var+"_f() {");\r
+    pw.println("    char[] data = new char["+ca.length+"];");\r
+    pw.println("    "+var+" = new Bits(data);");\r
+    for(int i=0;i<66536;i++) {\r
+      char c = (char)i;\r
+      //b.set(i,Character.getType(c)==Character.CURRENCY_SYMBOL);\r
+      b.set(i,t.test(c));\r
+    }\r
+    for(int i=0;i<ca.length;i++) {\r
+      if(ca[i] != 0) {\r
+        pw.println("    data["+i+"]=(char)0x"+n4(ca[i])+";");\r
+      }\r
+    }\r
+    pw.println();\r
+    pw.println("  }");\r
+\r
+    pw.close();\r
+  }\r
+  */\r
+  public static Bits upper;\r
+  static void upper_f() {\r
+    char[] data = new char[4159];\r
+    upper = new Bits(data);\r
+    data[4]=(char)0xfffe;\r
+    data[5]=(char)0x07ff;\r
+    data[12]=(char)0xffff;\r
+    data[13]=(char)0x7f7f;\r
+    data[16]=(char)0x5555;\r
+    data[17]=(char)0x5555;\r
+    data[18]=(char)0x5555;\r
+    data[19]=(char)0xaa55;\r
+    data[20]=(char)0x54aa;\r
+    data[21]=(char)0x5555;\r
+    data[22]=(char)0x5555;\r
+    data[23]=(char)0x2b55;\r
+    data[24]=(char)0xced6;\r
+    data[25]=(char)0xb1db;\r
+    data[26]=(char)0xd2d5;\r
+    data[27]=(char)0x11ae;\r
+    data[28]=(char)0xa490;\r
+    data[29]=(char)0x4aaa;\r
+    data[30]=(char)0x5555;\r
+    data[31]=(char)0x5412;\r
+    data[32]=(char)0x5555;\r
+    data[33]=(char)0x0055;\r
+    data[56]=(char)0xd740;\r
+    data[57]=(char)0xfffe;\r
+    data[58]=(char)0x0ffb;\r
+    data[61]=(char)0x541c;\r
+    data[62]=(char)0x5555;\r
+    data[64]=(char)0xdffe;\r
+    data[65]=(char)0xffff;\r
+    data[66]=(char)0xffff;\r
+    data[70]=(char)0x5555;\r
+    data[71]=(char)0x5555;\r
+    data[72]=(char)0x0001;\r
+    data[73]=(char)0x5555;\r
+    data[74]=(char)0x5555;\r
+    data[75]=(char)0x5555;\r
+    data[76]=(char)0x088a;\r
+    data[77]=(char)0x5555;\r
+    data[78]=(char)0x4555;\r
+    data[79]=(char)0x0115;\r
+    data[83]=(char)0xfffe;\r
+    data[84]=(char)0xffff;\r
+    data[85]=(char)0x007f;\r
+    data[266]=(char)0xffff;\r
+    data[267]=(char)0xffff;\r
+    data[268]=(char)0x003f;\r
+    data[480]=(char)0x5555;\r
+    data[481]=(char)0x5555;\r
+    data[482]=(char)0x5555;\r
+    data[483]=(char)0x5555;\r
+    data[484]=(char)0x5555;\r
+    data[485]=(char)0x5555;\r
+    data[486]=(char)0x5555;\r
+    data[487]=(char)0x5555;\r
+    data[488]=(char)0x5555;\r
+    data[489]=(char)0x0015;\r
+    data[490]=(char)0x5555;\r
+    data[491]=(char)0x5555;\r
+    data[492]=(char)0x5555;\r
+    data[493]=(char)0x5555;\r
+    data[494]=(char)0x5555;\r
+    data[495]=(char)0x0155;\r
+    data[496]=(char)0xff00;\r
+    data[497]=(char)0x3f00;\r
+    data[498]=(char)0xff00;\r
+    data[499]=(char)0xff00;\r
+    data[500]=(char)0x3f00;\r
+    data[501]=(char)0xaa00;\r
+    data[502]=(char)0xff00;\r
+    data[504]=(char)0xff00;\r
+    data[505]=(char)0xff00;\r
+    data[506]=(char)0xff00;\r
+    data[507]=(char)0x5f00;\r
+    data[508]=(char)0x1f00;\r
+    data[509]=(char)0x0f00;\r
+    data[510]=(char)0x1f00;\r
+    data[511]=(char)0x1f00;\r
+    data[528]=(char)0x3884;\r
+    data[529]=(char)0x3f27;\r
+    data[530]=(char)0x3d50;\r
+    data[531]=(char)0x000b;\r
+    data[4082]=(char)0xfffe;\r
+    data[4083]=(char)0x07ff;\r
+    data[4100]=(char)0xfffe;\r
+    data[4101]=(char)0x07ff;\r
+    data[4108]=(char)0xffff;\r
+    data[4109]=(char)0x7f7f;\r
+    data[4112]=(char)0x5555;\r
+    data[4113]=(char)0x5555;\r
+    data[4114]=(char)0x5555;\r
+    data[4115]=(char)0xaa55;\r
+    data[4116]=(char)0x54aa;\r
+    data[4117]=(char)0x5555;\r
+    data[4118]=(char)0x5555;\r
+    data[4119]=(char)0x2b55;\r
+    data[4120]=(char)0xced6;\r
+    data[4121]=(char)0xb1db;\r
+    data[4122]=(char)0xd2d5;\r
+    data[4123]=(char)0x11ae;\r
+    data[4124]=(char)0xa490;\r
+    data[4125]=(char)0x4aaa;\r
+    data[4126]=(char)0x5555;\r
+    data[4127]=(char)0x5412;\r
+    data[4128]=(char)0x5555;\r
+    data[4129]=(char)0x0055;\r
+    data[4152]=(char)0xd740;\r
+    data[4153]=(char)0xfffe;\r
+    data[4154]=(char)0x0ffb;\r
+    data[4157]=(char)0x541c;\r
+    data[4158]=(char)0x0055;\r
+\r
+  }\r
+  public static Bits lower;\r
+  static void lower_f() {\r
+    char[] data = new char[4159];\r
+    lower = new Bits(data);\r
+    data[6]=(char)0xfffe;\r
+    data[7]=(char)0x07ff;\r
+    data[10]=(char)0x0400;\r
+    data[11]=(char)0x0420;\r
+    data[13]=(char)0x8000;\r
+    data[14]=(char)0xffff;\r
+    data[15]=(char)0xff7f;\r
+    data[16]=(char)0xaaaa;\r
+    data[17]=(char)0xaaaa;\r
+    data[18]=(char)0xaaaa;\r
+    data[19]=(char)0x55aa;\r
+    data[20]=(char)0xab55;\r
+    data[21]=(char)0xaaaa;\r
+    data[22]=(char)0xaaaa;\r
+    data[23]=(char)0xd4aa;\r
+    data[24]=(char)0x3129;\r
+    data[25]=(char)0x4e24;\r
+    data[26]=(char)0x292a;\r
+    data[27]=(char)0x2651;\r
+    data[28]=(char)0x5240;\r
+    data[29]=(char)0xb555;\r
+    data[30]=(char)0xaaaa;\r
+    data[31]=(char)0xa829;\r
+    data[32]=(char)0xaaaa;\r
+    data[33]=(char)0x00aa;\r
+    data[37]=(char)0xffff;\r
+    data[38]=(char)0xffff;\r
+    data[39]=(char)0xffff;\r
+    data[40]=(char)0xffff;\r
+    data[41]=(char)0xffff;\r
+    data[42]=(char)0x01ff;\r
+    data[57]=(char)0x0001;\r
+    data[58]=(char)0xf000;\r
+    data[59]=(char)0xffff;\r
+    data[60]=(char)0x7fff;\r
+    data[61]=(char)0x0063;\r
+    data[62]=(char)0xaaa8;\r
+    data[63]=(char)0x0007;\r
+    data[67]=(char)0xffff;\r
+    data[68]=(char)0xffff;\r
+    data[69]=(char)0xdffe;\r
+    data[70]=(char)0xaaaa;\r
+    data[71]=(char)0xaaaa;\r
+    data[72]=(char)0x0002;\r
+    data[73]=(char)0xaaaa;\r
+    data[74]=(char)0xaaaa;\r
+    data[75]=(char)0xaaaa;\r
+    data[76]=(char)0x1114;\r
+    data[77]=(char)0xaaaa;\r
+    data[78]=(char)0x8aaa;\r
+    data[79]=(char)0x022a;\r
+    data[86]=(char)0xfffe;\r
+    data[87]=(char)0xffff;\r
+    data[88]=(char)0x00ff;\r
+    data[269]=(char)0xffff;\r
+    data[270]=(char)0xffff;\r
+    data[271]=(char)0x007f;\r
+    data[480]=(char)0xaaaa;\r
+    data[481]=(char)0xaaaa;\r
+    data[482]=(char)0xaaaa;\r
+    data[483]=(char)0xaaaa;\r
+    data[484]=(char)0xaaaa;\r
+    data[485]=(char)0xaaaa;\r
+    data[486]=(char)0xaaaa;\r
+    data[487]=(char)0xaaaa;\r
+    data[488]=(char)0xaaaa;\r
+    data[489]=(char)0x0fea;\r
+    data[490]=(char)0xaaaa;\r
+    data[491]=(char)0xaaaa;\r
+    data[492]=(char)0xaaaa;\r
+    data[493]=(char)0xaaaa;\r
+    data[494]=(char)0xaaaa;\r
+    data[495]=(char)0x02aa;\r
+    data[496]=(char)0x00ff;\r
+    data[497]=(char)0x003f;\r
+    data[498]=(char)0x00ff;\r
+    data[499]=(char)0x00ff;\r
+    data[500]=(char)0x003f;\r
+    data[501]=(char)0x00ff;\r
+    data[502]=(char)0x00ff;\r
+    data[503]=(char)0x3fff;\r
+    data[504]=(char)0x00ff;\r
+    data[505]=(char)0x00ff;\r
+    data[506]=(char)0x00ff;\r
+    data[507]=(char)0x00df;\r
+    data[508]=(char)0x00dc;\r
+    data[509]=(char)0x00cf;\r
+    data[510]=(char)0x00ff;\r
+    data[511]=(char)0x00dc;\r
+    data[519]=(char)0x8000;\r
+    data[528]=(char)0xc400;\r
+    data[529]=(char)0x0008;\r
+    data[530]=(char)0xc000;\r
+    data[531]=(char)0x0010;\r
+    data[4016]=(char)0x007f;\r
+    data[4017]=(char)0x00f8;\r
+    data[4084]=(char)0xfffe;\r
+    data[4085]=(char)0x07ff;\r
+    data[4102]=(char)0xfffe;\r
+    data[4103]=(char)0x07ff;\r
+    data[4106]=(char)0x0400;\r
+    data[4107]=(char)0x0420;\r
+    data[4109]=(char)0x8000;\r
+    data[4110]=(char)0xffff;\r
+    data[4111]=(char)0xff7f;\r
+    data[4112]=(char)0xaaaa;\r
+    data[4113]=(char)0xaaaa;\r
+    data[4114]=(char)0xaaaa;\r
+    data[4115]=(char)0x55aa;\r
+    data[4116]=(char)0xab55;\r
+    data[4117]=(char)0xaaaa;\r
+    data[4118]=(char)0xaaaa;\r
+    data[4119]=(char)0xd4aa;\r
+    data[4120]=(char)0x3129;\r
+    data[4121]=(char)0x4e24;\r
+    data[4122]=(char)0x292a;\r
+    data[4123]=(char)0x2651;\r
+    data[4124]=(char)0x5240;\r
+    data[4125]=(char)0xb555;\r
+    data[4126]=(char)0xaaaa;\r
+    data[4127]=(char)0xa829;\r
+    data[4128]=(char)0xaaaa;\r
+    data[4129]=(char)0x00aa;\r
+    data[4133]=(char)0xffff;\r
+    data[4134]=(char)0xffff;\r
+    data[4135]=(char)0xffff;\r
+    data[4136]=(char)0xffff;\r
+    data[4137]=(char)0xffff;\r
+    data[4138]=(char)0x01ff;\r
+    data[4153]=(char)0x0001;\r
+    data[4154]=(char)0xf000;\r
+    data[4155]=(char)0xffff;\r
+    data[4156]=(char)0x7fff;\r
+    data[4157]=(char)0x0063;\r
+    data[4158]=(char)0x00a8;\r
+\r
+  }\r
+  public static Bits title;\r
+  static void title_f() {\r
+    char[] data = new char[4159];\r
+    title = new Bits(data);\r
+    data[6]=(char)0xfffe;\r
+    data[7]=(char)0x07ff;\r
+    data[10]=(char)0x0400;\r
+    data[11]=(char)0x0420;\r
+    data[13]=(char)0x8000;\r
+    data[14]=(char)0xffff;\r
+    data[15]=(char)0xff7f;\r
+    data[16]=(char)0xaaaa;\r
+    data[17]=(char)0xaaaa;\r
+    data[18]=(char)0xaaaa;\r
+    data[19]=(char)0x55aa;\r
+    data[20]=(char)0xab55;\r
+    data[21]=(char)0xaaaa;\r
+    data[22]=(char)0xaaaa;\r
+    data[23]=(char)0xd4aa;\r
+    data[24]=(char)0x3129;\r
+    data[25]=(char)0x4e24;\r
+    data[26]=(char)0x292a;\r
+    data[27]=(char)0x2651;\r
+    data[28]=(char)0x5240;\r
+    data[29]=(char)0xb555;\r
+    data[30]=(char)0xaaaa;\r
+    data[31]=(char)0xa829;\r
+    data[32]=(char)0xaaaa;\r
+    data[33]=(char)0x00aa;\r
+    data[37]=(char)0xffff;\r
+    data[38]=(char)0xffff;\r
+    data[39]=(char)0xffff;\r
+    data[40]=(char)0xffff;\r
+    data[41]=(char)0xffff;\r
+    data[42]=(char)0x01ff;\r
+    data[57]=(char)0x0001;\r
+    data[58]=(char)0xf000;\r
+    data[59]=(char)0xffff;\r
+    data[60]=(char)0x7fff;\r
+    data[61]=(char)0x0063;\r
+    data[62]=(char)0xaaa8;\r
+    data[63]=(char)0x0007;\r
+    data[67]=(char)0xffff;\r
+    data[68]=(char)0xffff;\r
+    data[69]=(char)0xdffe;\r
+    data[70]=(char)0xaaaa;\r
+    data[71]=(char)0xaaaa;\r
+    data[72]=(char)0x0002;\r
+    data[73]=(char)0xaaaa;\r
+    data[74]=(char)0xaaaa;\r
+    data[75]=(char)0xaaaa;\r
+    data[76]=(char)0x1114;\r
+    data[77]=(char)0xaaaa;\r
+    data[78]=(char)0x8aaa;\r
+    data[79]=(char)0x022a;\r
+    data[86]=(char)0xfffe;\r
+    data[87]=(char)0xffff;\r
+    data[88]=(char)0x00ff;\r
+    data[269]=(char)0xffff;\r
+    data[270]=(char)0xffff;\r
+    data[271]=(char)0x007f;\r
+    data[480]=(char)0xaaaa;\r
+    data[481]=(char)0xaaaa;\r
+    data[482]=(char)0xaaaa;\r
+    data[483]=(char)0xaaaa;\r
+    data[484]=(char)0xaaaa;\r
+    data[485]=(char)0xaaaa;\r
+    data[486]=(char)0xaaaa;\r
+    data[487]=(char)0xaaaa;\r
+    data[488]=(char)0xaaaa;\r
+    data[489]=(char)0x0fea;\r
+    data[490]=(char)0xaaaa;\r
+    data[491]=(char)0xaaaa;\r
+    data[492]=(char)0xaaaa;\r
+    data[493]=(char)0xaaaa;\r
+    data[494]=(char)0xaaaa;\r
+    data[495]=(char)0x02aa;\r
+    data[496]=(char)0x00ff;\r
+    data[497]=(char)0x003f;\r
+    data[498]=(char)0x00ff;\r
+    data[499]=(char)0x00ff;\r
+    data[500]=(char)0x003f;\r
+    data[501]=(char)0x00ff;\r
+    data[502]=(char)0x00ff;\r
+    data[503]=(char)0x3fff;\r
+    data[504]=(char)0x00ff;\r
+    data[505]=(char)0x00ff;\r
+    data[506]=(char)0x00ff;\r
+    data[507]=(char)0x00df;\r
+    data[508]=(char)0x00dc;\r
+    data[509]=(char)0x00cf;\r
+    data[510]=(char)0x00ff;\r
+    data[511]=(char)0x00dc;\r
+    data[519]=(char)0x8000;\r
+    data[528]=(char)0xc400;\r
+    data[529]=(char)0x0008;\r
+    data[530]=(char)0xc000;\r
+    data[531]=(char)0x0010;\r
+    data[4016]=(char)0x007f;\r
+    data[4017]=(char)0x00f8;\r
+    data[4084]=(char)0xfffe;\r
+    data[4085]=(char)0x07ff;\r
+    data[4102]=(char)0xfffe;\r
+    data[4103]=(char)0x07ff;\r
+    data[4106]=(char)0x0400;\r
+    data[4107]=(char)0x0420;\r
+    data[4109]=(char)0x8000;\r
+    data[4110]=(char)0xffff;\r
+    data[4111]=(char)0xff7f;\r
+    data[4112]=(char)0xaaaa;\r
+    data[4113]=(char)0xaaaa;\r
+    data[4114]=(char)0xaaaa;\r
+    data[4115]=(char)0x55aa;\r
+    data[4116]=(char)0xab55;\r
+    data[4117]=(char)0xaaaa;\r
+    data[4118]=(char)0xaaaa;\r
+    data[4119]=(char)0xd4aa;\r
+    data[4120]=(char)0x3129;\r
+    data[4121]=(char)0x4e24;\r
+    data[4122]=(char)0x292a;\r
+    data[4123]=(char)0x2651;\r
+    data[4124]=(char)0x5240;\r
+    data[4125]=(char)0xb555;\r
+    data[4126]=(char)0xaaaa;\r
+    data[4127]=(char)0xa829;\r
+    data[4128]=(char)0xaaaa;\r
+    data[4129]=(char)0x00aa;\r
+    data[4133]=(char)0xffff;\r
+    data[4134]=(char)0xffff;\r
+    data[4135]=(char)0xffff;\r
+    data[4136]=(char)0xffff;\r
+    data[4137]=(char)0xffff;\r
+    data[4138]=(char)0x01ff;\r
+    data[4153]=(char)0x0001;\r
+    data[4154]=(char)0xf000;\r
+    data[4155]=(char)0xffff;\r
+    data[4156]=(char)0x7fff;\r
+    data[4157]=(char)0x0063;\r
+    data[4158]=(char)0x00a8;\r
+\r
+  }\r
+  public static Bits currency;\r
+  static void currency_f() {\r
+    char[] data = new char[4159];\r
+    currency = new Bits(data);\r
+    data[2]=(char)0x0010;\r
+    data[10]=(char)0x003c;\r
+    data[159]=(char)0x000c;\r
+    data[227]=(char)0x8000;\r
+    data[522]=(char)0x1fff;\r
+    data[4070]=(char)0x0200;\r
+    data[4080]=(char)0x0010;\r
+    data[4094]=(char)0x0063;\r
+    data[4098]=(char)0x0010;\r
+    data[4106]=(char)0x003c;\r
+\r
+  }\r
+  public static Bits decimal_digit;\r
+  static void decimal_digit_f() {\r
+    char[] data = new char[4159];\r
+    decimal_digit = new Bits(data);\r
+    data[3]=(char)0x03ff;\r
+    data[102]=(char)0x03ff;\r
+    data[111]=(char)0x03ff;\r
+    data[150]=(char)0xffc0;\r
+    data[158]=(char)0xffc0;\r
+    data[166]=(char)0xffc0;\r
+    data[174]=(char)0xffc0;\r
+    data[182]=(char)0xffc0;\r
+    data[190]=(char)0xff80;\r
+    data[198]=(char)0xffc0;\r
+    data[206]=(char)0xffc0;\r
+    data[214]=(char)0xffc0;\r
+    data[229]=(char)0x03ff;\r
+    data[237]=(char)0x03ff;\r
+    data[242]=(char)0x03ff;\r
+    data[4081]=(char)0x03ff;\r
+    data[4099]=(char)0x03ff;\r
+\r
+  }\r
+  public static Bits math;\r
+  static void math_f() {\r
+    char[] data = new char[4159];\r
+    math = new Bits(data);\r
+    data[2]=(char)0x0800;\r
+    data[3]=(char)0x7000;\r
+    data[7]=(char)0x5000;\r
+    data[10]=(char)0x1000;\r
+    data[11]=(char)0x0002;\r
+    data[13]=(char)0x0080;\r
+    data[15]=(char)0x0080;\r
+    data[516]=(char)0x0010;\r
+    data[519]=(char)0x1c00;\r
+    data[520]=(char)0x1c00;\r
+    data[537]=(char)0x001f;\r
+    data[541]=(char)0x0014;\r
+    data[544]=(char)0xffff;\r
+    data[545]=(char)0xffff;\r
+    data[546]=(char)0xffff;\r
+    data[547]=(char)0xffff;\r
+    data[548]=(char)0xffff;\r
+    data[549]=(char)0xffff;\r
+    data[550]=(char)0xffff;\r
+    data[551]=(char)0xffff;\r
+    data[552]=(char)0xffff;\r
+    data[553]=(char)0xffff;\r
+    data[554]=(char)0xffff;\r
+    data[555]=(char)0xffff;\r
+    data[556]=(char)0xffff;\r
+    data[557]=(char)0xffff;\r
+    data[558]=(char)0xffff;\r
+    data[559]=(char)0x0003;\r
+    data[560]=(char)0x0f00;\r
+    data[562]=(char)0x0003;\r
+    data[4018]=(char)0x0200;\r
+    data[4070]=(char)0x0074;\r
+    data[4080]=(char)0x0800;\r
+    data[4081]=(char)0x7000;\r
+    data[4085]=(char)0x5000;\r
+    data[4094]=(char)0x1f04;\r
+    data[4098]=(char)0x0800;\r
+    data[4099]=(char)0x7000;\r
+    data[4103]=(char)0x5000;\r
+    data[4106]=(char)0x1000;\r
+    data[4107]=(char)0x0002;\r
+    data[4109]=(char)0x0080;\r
+    data[4111]=(char)0x0080;\r
+\r
+  }\r
+  public static Bits letter;\r
+  static void letter_f() {\r
+    char[] data = new char[4159];\r
+    letter = new Bits(data);\r
+    data[4]=(char)0xfffe;\r
+    data[5]=(char)0x07ff;\r
+    data[6]=(char)0xfffe;\r
+    data[7]=(char)0x07ff;\r
+    data[10]=(char)0x0400;\r
+    data[11]=(char)0x0420;\r
+    data[12]=(char)0xffff;\r
+    data[13]=(char)0xff7f;\r
+    data[14]=(char)0xffff;\r
+    data[15]=(char)0xff7f;\r
+    data[16]=(char)0xffff;\r
+    data[17]=(char)0xffff;\r
+    data[18]=(char)0xffff;\r
+    data[19]=(char)0xffff;\r
+    data[20]=(char)0xffff;\r
+    data[21]=(char)0xffff;\r
+    data[22]=(char)0xffff;\r
+    data[23]=(char)0xffff;\r
+    data[24]=(char)0xffff;\r
+    data[25]=(char)0xffff;\r
+    data[26]=(char)0xffff;\r
+    data[27]=(char)0xffff;\r
+    data[28]=(char)0xffff;\r
+    data[29]=(char)0xffff;\r
+    data[30]=(char)0xffff;\r
+    data[31]=(char)0xfc3f;\r
+    data[32]=(char)0xffff;\r
+    data[33]=(char)0x00ff;\r
+    data[37]=(char)0xffff;\r
+    data[38]=(char)0xffff;\r
+    data[39]=(char)0xffff;\r
+    data[40]=(char)0xffff;\r
+    data[41]=(char)0xffff;\r
+    data[42]=(char)0x01ff;\r
+    data[43]=(char)0xf9ff;\r
+    data[44]=(char)0x0003;\r
+    data[45]=(char)0x0003;\r
+    data[46]=(char)0x001f;\r
+    data[55]=(char)0x0400;\r
+    data[56]=(char)0xd740;\r
+    data[57]=(char)0xffff;\r
+    data[58]=(char)0xfffb;\r
+    data[59]=(char)0xffff;\r
+    data[60]=(char)0x7fff;\r
+    data[61]=(char)0x547f;\r
+    data[62]=(char)0xfffd;\r
+    data[63]=(char)0x000f;\r
+    data[64]=(char)0xdffe;\r
+    data[65]=(char)0xffff;\r
+    data[66]=(char)0xffff;\r
+    data[67]=(char)0xffff;\r
+    data[68]=(char)0xffff;\r
+    data[69]=(char)0xdffe;\r
+    data[70]=(char)0xffff;\r
+    data[71]=(char)0xffff;\r
+    data[72]=(char)0x0003;\r
+    data[73]=(char)0xffff;\r
+    data[74]=(char)0xffff;\r
+    data[75]=(char)0xffff;\r
+    data[76]=(char)0x199f;\r
+    data[77]=(char)0xffff;\r
+    data[78]=(char)0xcfff;\r
+    data[79]=(char)0x033f;\r
+    data[83]=(char)0xfffe;\r
+    data[84]=(char)0xffff;\r
+    data[85]=(char)0x027f;\r
+    data[86]=(char)0xfffe;\r
+    data[87]=(char)0xffff;\r
+    data[88]=(char)0x00ff;\r
+    data[93]=(char)0xffff;\r
+    data[94]=(char)0x07ff;\r
+    data[95]=(char)0x0007;\r
+    data[98]=(char)0xfffe;\r
+    data[99]=(char)0x07ff;\r
+    data[100]=(char)0x07ff;\r
+    data[103]=(char)0xfffe;\r
+    data[104]=(char)0xffff;\r
+    data[105]=(char)0xffff;\r
+    data[106]=(char)0xffff;\r
+    data[107]=(char)0x7cff;\r
+    data[108]=(char)0x7fff;\r
+    data[109]=(char)0x002f;\r
+    data[110]=(char)0x0060;\r
+    data[144]=(char)0xffe0;\r
+    data[145]=(char)0xffff;\r
+    data[146]=(char)0xffff;\r
+    data[147]=(char)0x23ff;\r
+    data[149]=(char)0xff00;\r
+    data[150]=(char)0x0003;\r
+    data[152]=(char)0x9fe0;\r
+    data[153]=(char)0xfff9;\r
+    data[154]=(char)0xfdff;\r
+    data[155]=(char)0x03c5;\r
+    data[157]=(char)0xb000;\r
+    data[158]=(char)0x0003;\r
+    data[159]=(char)0x0003;\r
+    data[160]=(char)0x87e0;\r
+    data[161]=(char)0xfff9;\r
+    data[162]=(char)0xfdff;\r
+    data[163]=(char)0x036d;\r
+    data[165]=(char)0x5e00;\r
+    data[167]=(char)0x001c;\r
+    data[168]=(char)0xafe0;\r
+    data[169]=(char)0xfffb;\r
+    data[170]=(char)0xfdff;\r
+    data[171]=(char)0x23ed;\r
+    data[174]=(char)0x0001;\r
+    data[176]=(char)0x9fe0;\r
+    data[177]=(char)0xfff9;\r
+    data[178]=(char)0xfdff;\r
+    data[179]=(char)0x23cd;\r
+    data[181]=(char)0xb000;\r
+    data[182]=(char)0x0003;\r
+    data[184]=(char)0xc7e0;\r
+    data[185]=(char)0xd63d;\r
+    data[186]=(char)0xc718;\r
+    data[187]=(char)0x03bf;\r
+    data[192]=(char)0xdfe0;\r
+    data[193]=(char)0xfffd;\r
+    data[194]=(char)0xfdff;\r
+    data[195]=(char)0x03ef;\r
+    data[198]=(char)0x0003;\r
+    data[200]=(char)0xdfe0;\r
+    data[201]=(char)0xfffd;\r
+    data[202]=(char)0xfdff;\r
+    data[203]=(char)0x03ef;\r
+    data[205]=(char)0x4000;\r
+    data[206]=(char)0x0003;\r
+    data[208]=(char)0xdfe0;\r
+    data[209]=(char)0xfffd;\r
+    data[210]=(char)0xfdff;\r
+    data[211]=(char)0x03ff;\r
+    data[214]=(char)0x0003;\r
+    data[224]=(char)0xfffe;\r
+    data[225]=(char)0xffff;\r
+    data[226]=(char)0x7fff;\r
+    data[227]=(char)0x000d;\r
+    data[228]=(char)0x007f;\r
+    data[232]=(char)0x2596;\r
+    data[233]=(char)0xfef0;\r
+    data[234]=(char)0x6cae;\r
+    data[235]=(char)0x200d;\r
+    data[236]=(char)0x005f;\r
+    data[237]=(char)0x3000;\r
+    data[244]=(char)0xfeff;\r
+    data[245]=(char)0xffff;\r
+    data[246]=(char)0x03ff;\r
+    data[266]=(char)0xffff;\r
+    data[267]=(char)0xffff;\r
+    data[268]=(char)0x003f;\r
+    data[269]=(char)0xffff;\r
+    data[270]=(char)0xffff;\r
+    data[271]=(char)0x007f;\r
+    data[272]=(char)0xffff;\r
+    data[273]=(char)0xffff;\r
+    data[274]=(char)0xffff;\r
+    data[275]=(char)0xffff;\r
+    data[276]=(char)0xffff;\r
+    data[277]=(char)0x83ff;\r
+    data[278]=(char)0xffff;\r
+    data[279]=(char)0xffff;\r
+    data[280]=(char)0xffff;\r
+    data[281]=(char)0xffff;\r
+    data[282]=(char)0xff07;\r
+    data[283]=(char)0xffff;\r
+    data[284]=(char)0xffff;\r
+    data[285]=(char)0xffff;\r
+    data[286]=(char)0xffff;\r
+    data[287]=(char)0x03ff;\r
+    data[480]=(char)0xffff;\r
+    data[481]=(char)0xffff;\r
+    data[482]=(char)0xffff;\r
+    data[483]=(char)0xffff;\r
+    data[484]=(char)0xffff;\r
+    data[485]=(char)0xffff;\r
+    data[486]=(char)0xffff;\r
+    data[487]=(char)0xffff;\r
+    data[488]=(char)0xffff;\r
+    data[489]=(char)0x0fff;\r
+    data[490]=(char)0xffff;\r
+    data[491]=(char)0xffff;\r
+    data[492]=(char)0xffff;\r
+    data[493]=(char)0xffff;\r
+    data[494]=(char)0xffff;\r
+    data[495]=(char)0x03ff;\r
+    data[496]=(char)0xffff;\r
+    data[497]=(char)0x3f3f;\r
+    data[498]=(char)0xffff;\r
+    data[499]=(char)0xffff;\r
+    data[500]=(char)0x3f3f;\r
+    data[501]=(char)0xaaff;\r
+    data[502]=(char)0xffff;\r
+    data[503]=(char)0x3fff;\r
+    data[504]=(char)0xffff;\r
+    data[505]=(char)0xffff;\r
+    data[506]=(char)0xffff;\r
+    data[507]=(char)0x5fdf;\r
+    data[508]=(char)0x1fdc;\r
+    data[509]=(char)0x0fcf;\r
+    data[510]=(char)0x1fff;\r
+    data[511]=(char)0x1fdc;\r
+    data[519]=(char)0x8000;\r
+    data[528]=(char)0xfc84;\r
+    data[529]=(char)0x3f2f;\r
+    data[530]=(char)0xfd50;\r
+    data[531]=(char)0x01fb;\r
+    data[768]=(char)0x0020;\r
+    data[771]=(char)0x003e;\r
+    data[772]=(char)0xfffe;\r
+    data[773]=(char)0xffff;\r
+    data[774]=(char)0xffff;\r
+    data[775]=(char)0xffff;\r
+    data[776]=(char)0xffff;\r
+    data[777]=(char)0x781f;\r
+    data[778]=(char)0xfffe;\r
+    data[779]=(char)0xffff;\r
+    data[780]=(char)0xffff;\r
+    data[781]=(char)0xffff;\r
+    data[782]=(char)0xffff;\r
+    data[783]=(char)0x77ff;\r
+    data[784]=(char)0xffe0;\r
+    data[785]=(char)0xffff;\r
+    data[786]=(char)0x1fff;\r
+    data[787]=(char)0xfffe;\r
+    data[788]=(char)0xffff;\r
+    data[789]=(char)0xffff;\r
+    data[790]=(char)0xffff;\r
+    data[791]=(char)0xffff;\r
+    data[792]=(char)0x7fff;\r
+    data[1248]=(char)0xffff;\r
+    data[1249]=(char)0xffff;\r
+    data[1250]=(char)0xffff;\r
+    data[1251]=(char)0xffff;\r
+    data[1252]=(char)0xffff;\r
+    data[1253]=(char)0xffff;\r
+    data[1254]=(char)0xffff;\r
+    data[1255]=(char)0xffff;\r
+    data[1256]=(char)0xffff;\r
+    data[1257]=(char)0xffff;\r
+    data[1258]=(char)0xffff;\r
+    data[1259]=(char)0xffff;\r
+    data[1260]=(char)0xffff;\r
+    data[1261]=(char)0xffff;\r
+    data[1262]=(char)0xffff;\r
+    data[1263]=(char)0xffff;\r
+    data[1264]=(char)0xffff;\r
+    data[1265]=(char)0xffff;\r
+    data[1266]=(char)0xffff;\r
+    data[1267]=(char)0xffff;\r
+    data[1268]=(char)0xffff;\r
+    data[1269]=(char)0xffff;\r
+    data[1270]=(char)0xffff;\r
+    data[1271]=(char)0xffff;\r
+    data[1272]=(char)0xffff;\r
+    data[1273]=(char)0xffff;\r
+    data[1274]=(char)0xffff;\r
+    data[1275]=(char)0xffff;\r
+    data[1276]=(char)0xffff;\r
+    data[1277]=(char)0xffff;\r
+    data[1278]=(char)0xffff;\r
+    data[1279]=(char)0xffff;\r
+    data[1280]=(char)0xffff;\r
+    data[1281]=(char)0xffff;\r
+    data[1282]=(char)0xffff;\r
+    data[1283]=(char)0xffff;\r
+    data[1284]=(char)0xffff;\r
+    data[1285]=(char)0xffff;\r
+    data[1286]=(char)0xffff;\r
+    data[1287]=(char)0xffff;\r
+    data[1288]=(char)0xffff;\r
+    data[1289]=(char)0xffff;\r
+    data[1290]=(char)0xffff;\r
+    data[1291]=(char)0xffff;\r
+    data[1292]=(char)0xffff;\r
+    data[1293]=(char)0xffff;\r
+    data[1294]=(char)0xffff;\r
+    data[1295]=(char)0xffff;\r
+    data[1296]=(char)0xffff;\r
+    data[1297]=(char)0xffff;\r
+    data[1298]=(char)0xffff;\r
+    data[1299]=(char)0xffff;\r
+    data[1300]=(char)0xffff;\r
+    data[1301]=(char)0xffff;\r
+    data[1302]=(char)0xffff;\r
+    data[1303]=(char)0xffff;\r
+    data[1304]=(char)0xffff;\r
+    data[1305]=(char)0xffff;\r
+    data[1306]=(char)0xffff;\r
+    data[1307]=(char)0xffff;\r
+    data[1308]=(char)0xffff;\r
+    data[1309]=(char)0xffff;\r
+    data[1310]=(char)0xffff;\r
+    data[1311]=(char)0xffff;\r
+    data[1312]=(char)0xffff;\r
+    data[1313]=(char)0xffff;\r
+    data[1314]=(char)0xffff;\r
+    data[1315]=(char)0xffff;\r
+    data[1316]=(char)0xffff;\r
+    data[1317]=(char)0xffff;\r
+    data[1318]=(char)0xffff;\r
+    data[1319]=(char)0xffff;\r
+    data[1320]=(char)0xffff;\r
+    data[1321]=(char)0xffff;\r
+    data[1322]=(char)0xffff;\r
+    data[1323]=(char)0xffff;\r
+    data[1324]=(char)0xffff;\r
+    data[1325]=(char)0xffff;\r
+    data[1326]=(char)0xffff;\r
+    data[1327]=(char)0xffff;\r
+    data[1328]=(char)0xffff;\r
+    data[1329]=(char)0xffff;\r
+    data[1330]=(char)0xffff;\r
+    data[1331]=(char)0xffff;\r
+    data[1332]=(char)0xffff;\r
+    data[1333]=(char)0xffff;\r
+    data[1334]=(char)0xffff;\r
+    data[1335]=(char)0xffff;\r
+    data[1336]=(char)0xffff;\r
+    data[1337]=(char)0xffff;\r
+    data[1338]=(char)0xffff;\r
+    data[1339]=(char)0xffff;\r
+    data[1340]=(char)0xffff;\r
+    data[1341]=(char)0xffff;\r
+    data[1342]=(char)0xffff;\r
+    data[1343]=(char)0xffff;\r
+    data[1344]=(char)0xffff;\r
+    data[1345]=(char)0xffff;\r
+    data[1346]=(char)0xffff;\r
+    data[1347]=(char)0xffff;\r
+    data[1348]=(char)0xffff;\r
+    data[1349]=(char)0xffff;\r
+    data[1350]=(char)0xffff;\r
+    data[1351]=(char)0xffff;\r
+    data[1352]=(char)0xffff;\r
+    data[1353]=(char)0xffff;\r
+    data[1354]=(char)0xffff;\r
+    data[1355]=(char)0xffff;\r
+    data[1356]=(char)0xffff;\r
+    data[1357]=(char)0xffff;\r
+    data[1358]=(char)0xffff;\r
+    data[1359]=(char)0xffff;\r
+    data[1360]=(char)0xffff;\r
+    data[1361]=(char)0xffff;\r
+    data[1362]=(char)0xffff;\r
+    data[1363]=(char)0xffff;\r
+    data[1364]=(char)0xffff;\r
+    data[1365]=(char)0xffff;\r
+    data[1366]=(char)0xffff;\r
+    data[1367]=(char)0xffff;\r
+    data[1368]=(char)0xffff;\r
+    data[1369]=(char)0xffff;\r
+    data[1370]=(char)0xffff;\r
+    data[1371]=(char)0xffff;\r
+    data[1372]=(char)0xffff;\r
+    data[1373]=(char)0xffff;\r
+    data[1374]=(char)0xffff;\r
+    data[1375]=(char)0xffff;\r
+    data[1376]=(char)0xffff;\r
+    data[1377]=(char)0xffff;\r
+    data[1378]=(char)0xffff;\r
+    data[1379]=(char)0xffff;\r
+    data[1380]=(char)0xffff;\r
+    data[1381]=(char)0xffff;\r
+    data[1382]=(char)0xffff;\r
+    data[1383]=(char)0xffff;\r
+    data[1384]=(char)0xffff;\r
+    data[1385]=(char)0xffff;\r
+    data[1386]=(char)0xffff;\r
+    data[1387]=(char)0xffff;\r
+    data[1388]=(char)0xffff;\r
+    data[1389]=(char)0xffff;\r
+    data[1390]=(char)0xffff;\r
+    data[1391]=(char)0xffff;\r
+    data[1392]=(char)0xffff;\r
+    data[1393]=(char)0xffff;\r
+    data[1394]=(char)0xffff;\r
+    data[1395]=(char)0xffff;\r
+    data[1396]=(char)0xffff;\r
+    data[1397]=(char)0xffff;\r
+    data[1398]=(char)0xffff;\r
+    data[1399]=(char)0xffff;\r
+    data[1400]=(char)0xffff;\r
+    data[1401]=(char)0xffff;\r
+    data[1402]=(char)0xffff;\r
+    data[1403]=(char)0xffff;\r
+    data[1404]=(char)0xffff;\r
+    data[1405]=(char)0xffff;\r
+    data[1406]=(char)0xffff;\r
+    data[1407]=(char)0xffff;\r
+    data[1408]=(char)0xffff;\r
+    data[1409]=(char)0xffff;\r
+    data[1410]=(char)0xffff;\r
+    data[1411]=(char)0xffff;\r
+    data[1412]=(char)0xffff;\r
+    data[1413]=(char)0xffff;\r
+    data[1414]=(char)0xffff;\r
+    data[1415]=(char)0xffff;\r
+    data[1416]=(char)0xffff;\r
+    data[1417]=(char)0xffff;\r
+    data[1418]=(char)0xffff;\r
+    data[1419]=(char)0xffff;\r
+    data[1420]=(char)0xffff;\r
+    data[1421]=(char)0xffff;\r
+    data[1422]=(char)0xffff;\r
+    data[1423]=(char)0xffff;\r
+    data[1424]=(char)0xffff;\r
+    data[1425]=(char)0xffff;\r
+    data[1426]=(char)0xffff;\r
+    data[1427]=(char)0xffff;\r
+    data[1428]=(char)0xffff;\r
+    data[1429]=(char)0xffff;\r
+    data[1430]=(char)0xffff;\r
+    data[1431]=(char)0xffff;\r
+    data[1432]=(char)0xffff;\r
+    data[1433]=(char)0xffff;\r
+    data[1434]=(char)0xffff;\r
+    data[1435]=(char)0xffff;\r
+    data[1436]=(char)0xffff;\r
+    data[1437]=(char)0xffff;\r
+    data[1438]=(char)0xffff;\r
+    data[1439]=(char)0xffff;\r
+    data[1440]=(char)0xffff;\r
+    data[1441]=(char)0xffff;\r
+    data[1442]=(char)0xffff;\r
+    data[1443]=(char)0xffff;\r
+    data[1444]=(char)0xffff;\r
+    data[1445]=(char)0xffff;\r
+    data[1446]=(char)0xffff;\r
+    data[1447]=(char)0xffff;\r
+    data[1448]=(char)0xffff;\r
+    data[1449]=(char)0xffff;\r
+    data[1450]=(char)0xffff;\r
+    data[1451]=(char)0xffff;\r
+    data[1452]=(char)0xffff;\r
+    data[1453]=(char)0xffff;\r
+    data[1454]=(char)0xffff;\r
+    data[1455]=(char)0xffff;\r
+    data[1456]=(char)0xffff;\r
+    data[1457]=(char)0xffff;\r
+    data[1458]=(char)0xffff;\r
+    data[1459]=(char)0xffff;\r
+    data[1460]=(char)0xffff;\r
+    data[1461]=(char)0xffff;\r
+    data[1462]=(char)0xffff;\r
+    data[1463]=(char)0xffff;\r
+    data[1464]=(char)0xffff;\r
+    data[1465]=(char)0xffff;\r
+    data[1466]=(char)0xffff;\r
+    data[1467]=(char)0xffff;\r
+    data[1468]=(char)0xffff;\r
+    data[1469]=(char)0xffff;\r
+    data[1470]=(char)0xffff;\r
+    data[1471]=(char)0xffff;\r
+    data[1472]=(char)0xffff;\r
+    data[1473]=(char)0xffff;\r
+    data[1474]=(char)0xffff;\r
+    data[1475]=(char)0xffff;\r
+    data[1476]=(char)0xffff;\r
+    data[1477]=(char)0xffff;\r
+    data[1478]=(char)0xffff;\r
+    data[1479]=(char)0xffff;\r
+    data[1480]=(char)0xffff;\r
+    data[1481]=(char)0xffff;\r
+    data[1482]=(char)0xffff;\r
+    data[1483]=(char)0xffff;\r
+    data[1484]=(char)0xffff;\r
+    data[1485]=(char)0xffff;\r
+    data[1486]=(char)0xffff;\r
+    data[1487]=(char)0xffff;\r
+    data[1488]=(char)0xffff;\r
+    data[1489]=(char)0xffff;\r
+    data[1490]=(char)0xffff;\r
+    data[1491]=(char)0xffff;\r
+    data[1492]=(char)0xffff;\r
+    data[1493]=(char)0xffff;\r
+    data[1494]=(char)0xffff;\r
+    data[1495]=(char)0xffff;\r
+    data[1496]=(char)0xffff;\r
+    data[1497]=(char)0xffff;\r
+    data[1498]=(char)0xffff;\r
+    data[1499]=(char)0xffff;\r
+    data[1500]=(char)0xffff;\r
+    data[1501]=(char)0xffff;\r
+    data[1502]=(char)0xffff;\r
+    data[1503]=(char)0xffff;\r
+    data[1504]=(char)0xffff;\r
+    data[1505]=(char)0xffff;\r
+    data[1506]=(char)0xffff;\r
+    data[1507]=(char)0xffff;\r
+    data[1508]=(char)0xffff;\r
+    data[1509]=(char)0xffff;\r
+    data[1510]=(char)0xffff;\r
+    data[1511]=(char)0xffff;\r
+    data[1512]=(char)0xffff;\r
+    data[1513]=(char)0xffff;\r
+    data[1514]=(char)0xffff;\r
+    data[1515]=(char)0xffff;\r
+    data[1516]=(char)0xffff;\r
+    data[1517]=(char)0xffff;\r
+    data[1518]=(char)0xffff;\r
+    data[1519]=(char)0xffff;\r
+    data[1520]=(char)0xffff;\r
+    data[1521]=(char)0xffff;\r
+    data[1522]=(char)0xffff;\r
+    data[1523]=(char)0xffff;\r
+    data[1524]=(char)0xffff;\r
+    data[1525]=(char)0xffff;\r
+    data[1526]=(char)0xffff;\r
+    data[1527]=(char)0xffff;\r
+    data[1528]=(char)0xffff;\r
+    data[1529]=(char)0xffff;\r
+    data[1530]=(char)0xffff;\r
+    data[1531]=(char)0xffff;\r
+    data[1532]=(char)0xffff;\r
+    data[1533]=(char)0xffff;\r
+    data[1534]=(char)0xffff;\r
+    data[1535]=(char)0xffff;\r
+    data[1536]=(char)0xffff;\r
+    data[1537]=(char)0xffff;\r
+    data[1538]=(char)0xffff;\r
+    data[1539]=(char)0xffff;\r
+    data[1540]=(char)0xffff;\r
+    data[1541]=(char)0xffff;\r
+    data[1542]=(char)0xffff;\r
+    data[1543]=(char)0xffff;\r
+    data[1544]=(char)0xffff;\r
+    data[1545]=(char)0xffff;\r
+    data[1546]=(char)0xffff;\r
+    data[1547]=(char)0xffff;\r
+    data[1548]=(char)0xffff;\r
+    data[1549]=(char)0xffff;\r
+    data[1550]=(char)0xffff;\r
+    data[1551]=(char)0xffff;\r
+    data[1552]=(char)0xffff;\r
+    data[1553]=(char)0xffff;\r
+    data[1554]=(char)0xffff;\r
+    data[1555]=(char)0xffff;\r
+    data[1556]=(char)0xffff;\r
+    data[1557]=(char)0xffff;\r
+    data[1558]=(char)0xffff;\r
+    data[1559]=(char)0xffff;\r
+    data[1560]=(char)0xffff;\r
+    data[1561]=(char)0xffff;\r
+    data[1562]=(char)0xffff;\r
+    data[1563]=(char)0xffff;\r
+    data[1564]=(char)0xffff;\r
+    data[1565]=(char)0xffff;\r
+    data[1566]=(char)0xffff;\r
+    data[1567]=(char)0xffff;\r
+    data[1568]=(char)0xffff;\r
+    data[1569]=(char)0xffff;\r
+    data[1570]=(char)0xffff;\r
+    data[1571]=(char)0xffff;\r
+    data[1572]=(char)0xffff;\r
+    data[1573]=(char)0xffff;\r
+    data[1574]=(char)0xffff;\r
+    data[1575]=(char)0xffff;\r
+    data[1576]=(char)0xffff;\r
+    data[1577]=(char)0xffff;\r
+    data[1578]=(char)0xffff;\r
+    data[1579]=(char)0xffff;\r
+    data[1580]=(char)0xffff;\r
+    data[1581]=(char)0xffff;\r
+    data[1582]=(char)0xffff;\r
+    data[1583]=(char)0xffff;\r
+    data[1584]=(char)0xffff;\r
+    data[1585]=(char)0xffff;\r
+    data[1586]=(char)0xffff;\r
+    data[1587]=(char)0xffff;\r
+    data[1588]=(char)0xffff;\r
+    data[1589]=(char)0xffff;\r
+    data[1590]=(char)0xffff;\r
+    data[1591]=(char)0xffff;\r
+    data[1592]=(char)0xffff;\r
+    data[1593]=(char)0xffff;\r
+    data[1594]=(char)0xffff;\r
+    data[1595]=(char)0xffff;\r
+    data[1596]=(char)0xffff;\r
+    data[1597]=(char)0xffff;\r
+    data[1598]=(char)0xffff;\r
+    data[1599]=(char)0xffff;\r
+    data[1600]=(char)0xffff;\r
+    data[1601]=(char)0xffff;\r
+    data[1602]=(char)0xffff;\r
+    data[1603]=(char)0xffff;\r
+    data[1604]=(char)0xffff;\r
+    data[1605]=(char)0xffff;\r
+    data[1606]=(char)0xffff;\r
+    data[1607]=(char)0xffff;\r
+    data[1608]=(char)0xffff;\r
+    data[1609]=(char)0xffff;\r
+    data[1610]=(char)0xffff;\r
+    data[1611]=(char)0xffff;\r
+    data[1612]=(char)0xffff;\r
+    data[1613]=(char)0xffff;\r
+    data[1614]=(char)0xffff;\r
+    data[1615]=(char)0xffff;\r
+    data[1616]=(char)0xffff;\r
+    data[1617]=(char)0xffff;\r
+    data[1618]=(char)0xffff;\r
+    data[1619]=(char)0xffff;\r
+    data[1620]=(char)0xffff;\r
+    data[1621]=(char)0xffff;\r
+    data[1622]=(char)0xffff;\r
+    data[1623]=(char)0xffff;\r
+    data[1624]=(char)0xffff;\r
+    data[1625]=(char)0xffff;\r
+    data[1626]=(char)0xffff;\r
+    data[1627]=(char)0xffff;\r
+    data[1628]=(char)0xffff;\r
+    data[1629]=(char)0xffff;\r
+    data[1630]=(char)0xffff;\r
+    data[1631]=(char)0xffff;\r
+    data[1632]=(char)0xffff;\r
+    data[1633]=(char)0xffff;\r
+    data[1634]=(char)0xffff;\r
+    data[1635]=(char)0xffff;\r
+    data[1636]=(char)0xffff;\r
+    data[1637]=(char)0xffff;\r
+    data[1638]=(char)0xffff;\r
+    data[1639]=(char)0xffff;\r
+    data[1640]=(char)0xffff;\r
+    data[1641]=(char)0xffff;\r
+    data[1642]=(char)0xffff;\r
+    data[1643]=(char)0xffff;\r
+    data[1644]=(char)0xffff;\r
+    data[1645]=(char)0xffff;\r
+    data[1646]=(char)0xffff;\r
+    data[1647]=(char)0xffff;\r
+    data[1648]=(char)0xffff;\r
+    data[1649]=(char)0xffff;\r
+    data[1650]=(char)0xffff;\r
+    data[1651]=(char)0xffff;\r
+    data[1652]=(char)0xffff;\r
+    data[1653]=(char)0xffff;\r
+    data[1654]=(char)0xffff;\r
+    data[1655]=(char)0xffff;\r
+    data[1656]=(char)0xffff;\r
+    data[1657]=(char)0xffff;\r
+    data[1658]=(char)0xffff;\r
+    data[1659]=(char)0xffff;\r
+    data[1660]=(char)0xffff;\r
+    data[1661]=(char)0xffff;\r
+    data[1662]=(char)0xffff;\r
+    data[1663]=(char)0xffff;\r
+    data[1664]=(char)0xffff;\r
+    data[1665]=(char)0xffff;\r
+    data[1666]=(char)0xffff;\r
+    data[1667]=(char)0xffff;\r
+    data[1668]=(char)0xffff;\r
+    data[1669]=(char)0xffff;\r
+    data[1670]=(char)0xffff;\r
+    data[1671]=(char)0xffff;\r
+    data[1672]=(char)0xffff;\r
+    data[1673]=(char)0xffff;\r
+    data[1674]=(char)0xffff;\r
+    data[1675]=(char)0xffff;\r
+    data[1676]=(char)0xffff;\r
+    data[1677]=(char)0xffff;\r
+    data[1678]=(char)0xffff;\r
+    data[1679]=(char)0xffff;\r
+    data[1680]=(char)0xffff;\r
+    data[1681]=(char)0xffff;\r
+    data[1682]=(char)0xffff;\r
+    data[1683]=(char)0xffff;\r
+    data[1684]=(char)0xffff;\r
+    data[1685]=(char)0xffff;\r
+    data[1686]=(char)0xffff;\r
+    data[1687]=(char)0xffff;\r
+    data[1688]=(char)0xffff;\r
+    data[1689]=(char)0xffff;\r
+    data[1690]=(char)0xffff;\r
+    data[1691]=(char)0xffff;\r
+    data[1692]=(char)0xffff;\r
+    data[1693]=(char)0xffff;\r
+    data[1694]=(char)0xffff;\r
+    data[1695]=(char)0xffff;\r
+    data[1696]=(char)0xffff;\r
+    data[1697]=(char)0xffff;\r
+    data[1698]=(char)0xffff;\r
+    data[1699]=(char)0xffff;\r
+    data[1700]=(char)0xffff;\r
+    data[1701]=(char)0xffff;\r
+    data[1702]=(char)0xffff;\r
+    data[1703]=(char)0xffff;\r
+    data[1704]=(char)0xffff;\r
+    data[1705]=(char)0xffff;\r
+    data[1706]=(char)0xffff;\r
+    data[1707]=(char)0xffff;\r
+    data[1708]=(char)0xffff;\r
+    data[1709]=(char)0xffff;\r
+    data[1710]=(char)0xffff;\r
+    data[1711]=(char)0xffff;\r
+    data[1712]=(char)0xffff;\r
+    data[1713]=(char)0xffff;\r
+    data[1714]=(char)0xffff;\r
+    data[1715]=(char)0xffff;\r
+    data[1716]=(char)0xffff;\r
+    data[1717]=(char)0xffff;\r
+    data[1718]=(char)0xffff;\r
+    data[1719]=(char)0xffff;\r
+    data[1720]=(char)0xffff;\r
+    data[1721]=(char)0xffff;\r
+    data[1722]=(char)0xffff;\r
+    data[1723]=(char)0xffff;\r
+    data[1724]=(char)0xffff;\r
+    data[1725]=(char)0xffff;\r
+    data[1726]=(char)0xffff;\r
+    data[1727]=(char)0xffff;\r
+    data[1728]=(char)0xffff;\r
+    data[1729]=(char)0xffff;\r
+    data[1730]=(char)0xffff;\r
+    data[1731]=(char)0xffff;\r
+    data[1732]=(char)0xffff;\r
+    data[1733]=(char)0xffff;\r
+    data[1734]=(char)0xffff;\r
+    data[1735]=(char)0xffff;\r
+    data[1736]=(char)0xffff;\r
+    data[1737]=(char)0xffff;\r
+    data[1738]=(char)0xffff;\r
+    data[1739]=(char)0xffff;\r
+    data[1740]=(char)0xffff;\r
+    data[1741]=(char)0xffff;\r
+    data[1742]=(char)0xffff;\r
+    data[1743]=(char)0xffff;\r
+    data[1744]=(char)0xffff;\r
+    data[1745]=(char)0xffff;\r
+    data[1746]=(char)0xffff;\r
+    data[1747]=(char)0xffff;\r
+    data[1748]=(char)0xffff;\r
+    data[1749]=(char)0xffff;\r
+    data[1750]=(char)0xffff;\r
+    data[1751]=(char)0xffff;\r
+    data[1752]=(char)0xffff;\r
+    data[1753]=(char)0xffff;\r
+    data[1754]=(char)0xffff;\r
+    data[1755]=(char)0xffff;\r
+    data[1756]=(char)0xffff;\r
+    data[1757]=(char)0xffff;\r
+    data[1758]=(char)0xffff;\r
+    data[1759]=(char)0xffff;\r
+    data[1760]=(char)0xffff;\r
+    data[1761]=(char)0xffff;\r
+    data[1762]=(char)0xffff;\r
+    data[1763]=(char)0xffff;\r
+    data[1764]=(char)0xffff;\r
+    data[1765]=(char)0xffff;\r
+    data[1766]=(char)0xffff;\r
+    data[1767]=(char)0xffff;\r
+    data[1768]=(char)0xffff;\r
+    data[1769]=(char)0xffff;\r
+    data[1770]=(char)0xffff;\r
+    data[1771]=(char)0xffff;\r
+    data[1772]=(char)0xffff;\r
+    data[1773]=(char)0xffff;\r
+    data[1774]=(char)0xffff;\r
+    data[1775]=(char)0xffff;\r
+    data[1776]=(char)0xffff;\r
+    data[1777]=(char)0xffff;\r
+    data[1778]=(char)0xffff;\r
+    data[1779]=(char)0xffff;\r
+    data[1780]=(char)0xffff;\r
+    data[1781]=(char)0xffff;\r
+    data[1782]=(char)0xffff;\r
+    data[1783]=(char)0xffff;\r
+    data[1784]=(char)0xffff;\r
+    data[1785]=(char)0xffff;\r
+    data[1786]=(char)0xffff;\r
+    data[1787]=(char)0xffff;\r
+    data[1788]=(char)0xffff;\r
+    data[1789]=(char)0xffff;\r
+    data[1790]=(char)0xffff;\r
+    data[1791]=(char)0xffff;\r
+    data[1792]=(char)0xffff;\r
+    data[1793]=(char)0xffff;\r
+    data[1794]=(char)0xffff;\r
+    data[1795]=(char)0xffff;\r
+    data[1796]=(char)0xffff;\r
+    data[1797]=(char)0xffff;\r
+    data[1798]=(char)0xffff;\r
+    data[1799]=(char)0xffff;\r
+    data[1800]=(char)0xffff;\r
+    data[1801]=(char)0xffff;\r
+    data[1802]=(char)0xffff;\r
+    data[1803]=(char)0xffff;\r
+    data[1804]=(char)0xffff;\r
+    data[1805]=(char)0xffff;\r
+    data[1806]=(char)0xffff;\r
+    data[1807]=(char)0xffff;\r
+    data[1808]=(char)0xffff;\r
+    data[1809]=(char)0xffff;\r
+    data[1810]=(char)0xffff;\r
+    data[1811]=(char)0xffff;\r
+    data[1812]=(char)0xffff;\r
+    data[1813]=(char)0xffff;\r
+    data[1814]=(char)0xffff;\r
+    data[1815]=(char)0xffff;\r
+    data[1816]=(char)0xffff;\r
+    data[1817]=(char)0xffff;\r
+    data[1818]=(char)0xffff;\r
+    data[1819]=(char)0xffff;\r
+    data[1820]=(char)0xffff;\r
+    data[1821]=(char)0xffff;\r
+    data[1822]=(char)0xffff;\r
+    data[1823]=(char)0xffff;\r
+    data[1824]=(char)0xffff;\r
+    data[1825]=(char)0xffff;\r
+    data[1826]=(char)0xffff;\r
+    data[1827]=(char)0xffff;\r
+    data[1828]=(char)0xffff;\r
+    data[1829]=(char)0xffff;\r
+    data[1830]=(char)0xffff;\r
+    data[1831]=(char)0xffff;\r
+    data[1832]=(char)0xffff;\r
+    data[1833]=(char)0xffff;\r
+    data[1834]=(char)0xffff;\r
+    data[1835]=(char)0xffff;\r
+    data[1836]=(char)0xffff;\r
+    data[1837]=(char)0xffff;\r
+    data[1838]=(char)0xffff;\r
+    data[1839]=(char)0xffff;\r
+    data[1840]=(char)0xffff;\r
+    data[1841]=(char)0xffff;\r
+    data[1842]=(char)0xffff;\r
+    data[1843]=(char)0xffff;\r
+    data[1844]=(char)0xffff;\r
+    data[1845]=(char)0xffff;\r
+    data[1846]=(char)0xffff;\r
+    data[1847]=(char)0xffff;\r
+    data[1848]=(char)0xffff;\r
+    data[1849]=(char)0xffff;\r
+    data[1850]=(char)0xffff;\r
+    data[1851]=(char)0xffff;\r
+    data[1852]=(char)0xffff;\r
+    data[1853]=(char)0xffff;\r
+    data[1854]=(char)0xffff;\r
+    data[1855]=(char)0xffff;\r
+    data[1856]=(char)0xffff;\r
+    data[1857]=(char)0xffff;\r
+    data[1858]=(char)0xffff;\r
+    data[1859]=(char)0xffff;\r
+    data[1860]=(char)0xffff;\r
+    data[1861]=(char)0xffff;\r
+    data[1862]=(char)0xffff;\r
+    data[1863]=(char)0xffff;\r
+    data[1864]=(char)0xffff;\r
+    data[1865]=(char)0xffff;\r
+    data[1866]=(char)0xffff;\r
+    data[1867]=(char)0xffff;\r
+    data[1868]=(char)0xffff;\r
+    data[1869]=(char)0xffff;\r
+    data[1870]=(char)0xffff;\r
+    data[1871]=(char)0xffff;\r
+    data[1872]=(char)0xffff;\r
+    data[1873]=(char)0xffff;\r
+    data[1874]=(char)0xffff;\r
+    data[1875]=(char)0xffff;\r
+    data[1876]=(char)0xffff;\r
+    data[1877]=(char)0xffff;\r
+    data[1878]=(char)0xffff;\r
+    data[1879]=(char)0xffff;\r
+    data[1880]=(char)0xffff;\r
+    data[1881]=(char)0xffff;\r
+    data[1882]=(char)0xffff;\r
+    data[1883]=(char)0xffff;\r
+    data[1884]=(char)0xffff;\r
+    data[1885]=(char)0xffff;\r
+    data[1886]=(char)0xffff;\r
+    data[1887]=(char)0xffff;\r
+    data[1888]=(char)0xffff;\r
+    data[1889]=(char)0xffff;\r
+    data[1890]=(char)0xffff;\r
+    data[1891]=(char)0xffff;\r
+    data[1892]=(char)0xffff;\r
+    data[1893]=(char)0xffff;\r
+    data[1894]=(char)0xffff;\r
+    data[1895]=(char)0xffff;\r
+    data[1896]=(char)0xffff;\r
+    data[1897]=(char)0xffff;\r
+    data[1898]=(char)0xffff;\r
+    data[1899]=(char)0xffff;\r
+    data[1900]=(char)0xffff;\r
+    data[1901]=(char)0xffff;\r
+    data[1902]=(char)0xffff;\r
+    data[1903]=(char)0xffff;\r
+    data[1904]=(char)0xffff;\r
+    data[1905]=(char)0xffff;\r
+    data[1906]=(char)0xffff;\r
+    data[1907]=(char)0xffff;\r
+    data[1908]=(char)0xffff;\r
+    data[1909]=(char)0xffff;\r
+    data[1910]=(char)0xffff;\r
+    data[1911]=(char)0xffff;\r
+    data[1912]=(char)0xffff;\r
+    data[1913]=(char)0xffff;\r
+    data[1914]=(char)0xffff;\r
+    data[1915]=(char)0xffff;\r
+    data[1916]=(char)0xffff;\r
+    data[1917]=(char)0xffff;\r
+    data[1918]=(char)0xffff;\r
+    data[1919]=(char)0xffff;\r
+    data[1920]=(char)0xffff;\r
+    data[1921]=(char)0xffff;\r
+    data[1922]=(char)0xffff;\r
+    data[1923]=(char)0xffff;\r
+    data[1924]=(char)0xffff;\r
+    data[1925]=(char)0xffff;\r
+    data[1926]=(char)0xffff;\r
+    data[1927]=(char)0xffff;\r
+    data[1928]=(char)0xffff;\r
+    data[1929]=(char)0xffff;\r
+    data[1930]=(char)0xffff;\r
+    data[1931]=(char)0xffff;\r
+    data[1932]=(char)0xffff;\r
+    data[1933]=(char)0xffff;\r
+    data[1934]=(char)0xffff;\r
+    data[1935]=(char)0xffff;\r
+    data[1936]=(char)0xffff;\r
+    data[1937]=(char)0xffff;\r
+    data[1938]=(char)0xffff;\r
+    data[1939]=(char)0xffff;\r
+    data[1940]=(char)0xffff;\r
+    data[1941]=(char)0xffff;\r
+    data[1942]=(char)0xffff;\r
+    data[1943]=(char)0xffff;\r
+    data[1944]=(char)0xffff;\r
+    data[1945]=(char)0xffff;\r
+    data[1946]=(char)0xffff;\r
+    data[1947]=(char)0xffff;\r
+    data[1948]=(char)0xffff;\r
+    data[1949]=(char)0xffff;\r
+    data[1950]=(char)0xffff;\r
+    data[1951]=(char)0xffff;\r
+    data[1952]=(char)0xffff;\r
+    data[1953]=(char)0xffff;\r
+    data[1954]=(char)0xffff;\r
+    data[1955]=(char)0xffff;\r
+    data[1956]=(char)0xffff;\r
+    data[1957]=(char)0xffff;\r
+    data[1958]=(char)0xffff;\r
+    data[1959]=(char)0xffff;\r
+    data[1960]=(char)0xffff;\r
+    data[1961]=(char)0xffff;\r
+    data[1962]=(char)0xffff;\r
+    data[1963]=(char)0xffff;\r
+    data[1964]=(char)0xffff;\r
+    data[1965]=(char)0xffff;\r
+    data[1966]=(char)0xffff;\r
+    data[1967]=(char)0xffff;\r
+    data[1968]=(char)0xffff;\r
+    data[1969]=(char)0xffff;\r
+    data[1970]=(char)0xffff;\r
+    data[1971]=(char)0xffff;\r
+    data[1972]=(char)0xffff;\r
+    data[1973]=(char)0xffff;\r
+    data[1974]=(char)0xffff;\r
+    data[1975]=(char)0xffff;\r
+    data[1976]=(char)0xffff;\r
+    data[1977]=(char)0xffff;\r
+    data[1978]=(char)0xffff;\r
+    data[1979]=(char)0xffff;\r
+    data[1980]=(char)0xffff;\r
+    data[1981]=(char)0xffff;\r
+    data[1982]=(char)0xffff;\r
+    data[1983]=(char)0xffff;\r
+    data[1984]=(char)0xffff;\r
+    data[1985]=(char)0xffff;\r
+    data[1986]=(char)0xffff;\r
+    data[1987]=(char)0xffff;\r
+    data[1988]=(char)0xffff;\r
+    data[1989]=(char)0xffff;\r
+    data[1990]=(char)0xffff;\r
+    data[1991]=(char)0xffff;\r
+    data[1992]=(char)0xffff;\r
+    data[1993]=(char)0xffff;\r
+    data[1994]=(char)0xffff;\r
+    data[1995]=(char)0xffff;\r
+    data[1996]=(char)0xffff;\r
+    data[1997]=(char)0xffff;\r
+    data[1998]=(char)0xffff;\r
+    data[1999]=(char)0xffff;\r
+    data[2000]=(char)0xffff;\r
+    data[2001]=(char)0xffff;\r
+    data[2002]=(char)0xffff;\r
+    data[2003]=(char)0xffff;\r
+    data[2004]=(char)0xffff;\r
+    data[2005]=(char)0xffff;\r
+    data[2006]=(char)0xffff;\r
+    data[2007]=(char)0xffff;\r
+    data[2008]=(char)0xffff;\r
+    data[2009]=(char)0xffff;\r
+    data[2010]=(char)0xffff;\r
+    data[2011]=(char)0xffff;\r
+    data[2012]=(char)0xffff;\r
+    data[2013]=(char)0xffff;\r
+    data[2014]=(char)0xffff;\r
+    data[2015]=(char)0xffff;\r
+    data[2016]=(char)0xffff;\r
+    data[2017]=(char)0xffff;\r
+    data[2018]=(char)0xffff;\r
+    data[2019]=(char)0xffff;\r
+    data[2020]=(char)0xffff;\r
+    data[2021]=(char)0xffff;\r
+    data[2022]=(char)0xffff;\r
+    data[2023]=(char)0xffff;\r
+    data[2024]=(char)0xffff;\r
+    data[2025]=(char)0xffff;\r
+    data[2026]=(char)0xffff;\r
+    data[2027]=(char)0xffff;\r
+    data[2028]=(char)0xffff;\r
+    data[2029]=(char)0xffff;\r
+    data[2030]=(char)0xffff;\r
+    data[2031]=(char)0xffff;\r
+    data[2032]=(char)0xffff;\r
+    data[2033]=(char)0xffff;\r
+    data[2034]=(char)0xffff;\r
+    data[2035]=(char)0xffff;\r
+    data[2036]=(char)0xffff;\r
+    data[2037]=(char)0xffff;\r
+    data[2038]=(char)0xffff;\r
+    data[2039]=(char)0xffff;\r
+    data[2040]=(char)0xffff;\r
+    data[2041]=(char)0xffff;\r
+    data[2042]=(char)0xffff;\r
+    data[2043]=(char)0xffff;\r
+    data[2044]=(char)0xffff;\r
+    data[2045]=(char)0xffff;\r
+    data[2046]=(char)0xffff;\r
+    data[2047]=(char)0xffff;\r
+    data[2048]=(char)0xffff;\r
+    data[2049]=(char)0xffff;\r
+    data[2050]=(char)0xffff;\r
+    data[2051]=(char)0xffff;\r
+    data[2052]=(char)0xffff;\r
+    data[2053]=(char)0xffff;\r
+    data[2054]=(char)0xffff;\r
+    data[2055]=(char)0xffff;\r
+    data[2056]=(char)0xffff;\r
+    data[2057]=(char)0xffff;\r
+    data[2058]=(char)0xffff;\r
+    data[2059]=(char)0xffff;\r
+    data[2060]=(char)0xffff;\r
+    data[2061]=(char)0xffff;\r
+    data[2062]=(char)0xffff;\r
+    data[2063]=(char)0xffff;\r
+    data[2064]=(char)0xffff;\r
+    data[2065]=(char)0xffff;\r
+    data[2066]=(char)0xffff;\r
+    data[2067]=(char)0xffff;\r
+    data[2068]=(char)0xffff;\r
+    data[2069]=(char)0xffff;\r
+    data[2070]=(char)0xffff;\r
+    data[2071]=(char)0xffff;\r
+    data[2072]=(char)0xffff;\r
+    data[2073]=(char)0xffff;\r
+    data[2074]=(char)0xffff;\r
+    data[2075]=(char)0xffff;\r
+    data[2076]=(char)0xffff;\r
+    data[2077]=(char)0xffff;\r
+    data[2078]=(char)0xffff;\r
+    data[2079]=(char)0xffff;\r
+    data[2080]=(char)0xffff;\r
+    data[2081]=(char)0xffff;\r
+    data[2082]=(char)0xffff;\r
+    data[2083]=(char)0xffff;\r
+    data[2084]=(char)0xffff;\r
+    data[2085]=(char)0xffff;\r
+    data[2086]=(char)0xffff;\r
+    data[2087]=(char)0xffff;\r
+    data[2088]=(char)0xffff;\r
+    data[2089]=(char)0xffff;\r
+    data[2090]=(char)0xffff;\r
+    data[2091]=(char)0xffff;\r
+    data[2092]=(char)0xffff;\r
+    data[2093]=(char)0xffff;\r
+    data[2094]=(char)0xffff;\r
+    data[2095]=(char)0xffff;\r
+    data[2096]=(char)0xffff;\r
+    data[2097]=(char)0xffff;\r
+    data[2098]=(char)0xffff;\r
+    data[2099]=(char)0xffff;\r
+    data[2100]=(char)0xffff;\r
+    data[2101]=(char)0xffff;\r
+    data[2102]=(char)0xffff;\r
+    data[2103]=(char)0xffff;\r
+    data[2104]=(char)0xffff;\r
+    data[2105]=(char)0xffff;\r
+    data[2106]=(char)0xffff;\r
+    data[2107]=(char)0xffff;\r
+    data[2108]=(char)0xffff;\r
+    data[2109]=(char)0xffff;\r
+    data[2110]=(char)0xffff;\r
+    data[2111]=(char)0xffff;\r
+    data[2112]=(char)0xffff;\r
+    data[2113]=(char)0xffff;\r
+    data[2114]=(char)0xffff;\r
+    data[2115]=(char)0xffff;\r
+    data[2116]=(char)0xffff;\r
+    data[2117]=(char)0xffff;\r
+    data[2118]=(char)0xffff;\r
+    data[2119]=(char)0xffff;\r
+    data[2120]=(char)0xffff;\r
+    data[2121]=(char)0xffff;\r
+    data[2122]=(char)0xffff;\r
+    data[2123]=(char)0xffff;\r
+    data[2124]=(char)0xffff;\r
+    data[2125]=(char)0xffff;\r
+    data[2126]=(char)0xffff;\r
+    data[2127]=(char)0xffff;\r
+    data[2128]=(char)0xffff;\r
+    data[2129]=(char)0xffff;\r
+    data[2130]=(char)0xffff;\r
+    data[2131]=(char)0xffff;\r
+    data[2132]=(char)0xffff;\r
+    data[2133]=(char)0xffff;\r
+    data[2134]=(char)0xffff;\r
+    data[2135]=(char)0xffff;\r
+    data[2136]=(char)0xffff;\r
+    data[2137]=(char)0xffff;\r
+    data[2138]=(char)0xffff;\r
+    data[2139]=(char)0xffff;\r
+    data[2140]=(char)0xffff;\r
+    data[2141]=(char)0xffff;\r
+    data[2142]=(char)0xffff;\r
+    data[2143]=(char)0xffff;\r
+    data[2144]=(char)0xffff;\r
+    data[2145]=(char)0xffff;\r
+    data[2146]=(char)0xffff;\r
+    data[2147]=(char)0xffff;\r
+    data[2148]=(char)0xffff;\r
+    data[2149]=(char)0xffff;\r
+    data[2150]=(char)0xffff;\r
+    data[2151]=(char)0xffff;\r
+    data[2152]=(char)0xffff;\r
+    data[2153]=(char)0xffff;\r
+    data[2154]=(char)0xffff;\r
+    data[2155]=(char)0xffff;\r
+    data[2156]=(char)0xffff;\r
+    data[2157]=(char)0xffff;\r
+    data[2158]=(char)0xffff;\r
+    data[2159]=(char)0xffff;\r
+    data[2160]=(char)0xffff;\r
+    data[2161]=(char)0xffff;\r
+    data[2162]=(char)0xffff;\r
+    data[2163]=(char)0xffff;\r
+    data[2164]=(char)0xffff;\r
+    data[2165]=(char)0xffff;\r
+    data[2166]=(char)0xffff;\r
+    data[2167]=(char)0xffff;\r
+    data[2168]=(char)0xffff;\r
+    data[2169]=(char)0xffff;\r
+    data[2170]=(char)0xffff;\r
+    data[2171]=(char)0xffff;\r
+    data[2172]=(char)0xffff;\r
+    data[2173]=(char)0xffff;\r
+    data[2174]=(char)0xffff;\r
+    data[2175]=(char)0xffff;\r
+    data[2176]=(char)0xffff;\r
+    data[2177]=(char)0xffff;\r
+    data[2178]=(char)0xffff;\r
+    data[2179]=(char)0xffff;\r
+    data[2180]=(char)0xffff;\r
+    data[2181]=(char)0xffff;\r
+    data[2182]=(char)0xffff;\r
+    data[2183]=(char)0xffff;\r
+    data[2184]=(char)0xffff;\r
+    data[2185]=(char)0xffff;\r
+    data[2186]=(char)0xffff;\r
+    data[2187]=(char)0xffff;\r
+    data[2188]=(char)0xffff;\r
+    data[2189]=(char)0xffff;\r
+    data[2190]=(char)0xffff;\r
+    data[2191]=(char)0xffff;\r
+    data[2192]=(char)0xffff;\r
+    data[2193]=(char)0xffff;\r
+    data[2194]=(char)0xffff;\r
+    data[2195]=(char)0xffff;\r
+    data[2196]=(char)0xffff;\r
+    data[2197]=(char)0xffff;\r
+    data[2198]=(char)0xffff;\r
+    data[2199]=(char)0xffff;\r
+    data[2200]=(char)0xffff;\r
+    data[2201]=(char)0xffff;\r
+    data[2202]=(char)0xffff;\r
+    data[2203]=(char)0xffff;\r
+    data[2204]=(char)0xffff;\r
+    data[2205]=(char)0xffff;\r
+    data[2206]=(char)0xffff;\r
+    data[2207]=(char)0xffff;\r
+    data[2208]=(char)0xffff;\r
+    data[2209]=(char)0xffff;\r
+    data[2210]=(char)0xffff;\r
+    data[2211]=(char)0xffff;\r
+    data[2212]=(char)0xffff;\r
+    data[2213]=(char)0xffff;\r
+    data[2214]=(char)0xffff;\r
+    data[2215]=(char)0xffff;\r
+    data[2216]=(char)0xffff;\r
+    data[2217]=(char)0xffff;\r
+    data[2218]=(char)0xffff;\r
+    data[2219]=(char)0xffff;\r
+    data[2220]=(char)0xffff;\r
+    data[2221]=(char)0xffff;\r
+    data[2222]=(char)0xffff;\r
+    data[2223]=(char)0xffff;\r
+    data[2224]=(char)0xffff;\r
+    data[2225]=(char)0xffff;\r
+    data[2226]=(char)0xffff;\r
+    data[2227]=(char)0xffff;\r
+    data[2228]=(char)0xffff;\r
+    data[2229]=(char)0xffff;\r
+    data[2230]=(char)0xffff;\r
+    data[2231]=(char)0xffff;\r
+    data[2232]=(char)0xffff;\r
+    data[2233]=(char)0xffff;\r
+    data[2234]=(char)0xffff;\r
+    data[2235]=(char)0xffff;\r
+    data[2236]=(char)0xffff;\r
+    data[2237]=(char)0xffff;\r
+    data[2238]=(char)0xffff;\r
+    data[2239]=(char)0xffff;\r
+    data[2240]=(char)0xffff;\r
+    data[2241]=(char)0xffff;\r
+    data[2242]=(char)0xffff;\r
+    data[2243]=(char)0xffff;\r
+    data[2244]=(char)0xffff;\r
+    data[2245]=(char)0xffff;\r
+    data[2246]=(char)0xffff;\r
+    data[2247]=(char)0xffff;\r
+    data[2248]=(char)0xffff;\r
+    data[2249]=(char)0xffff;\r
+    data[2250]=(char)0xffff;\r
+    data[2251]=(char)0xffff;\r
+    data[2252]=(char)0xffff;\r
+    data[2253]=(char)0xffff;\r
+    data[2254]=(char)0xffff;\r
+    data[2255]=(char)0xffff;\r
+    data[2256]=(char)0xffff;\r
+    data[2257]=(char)0xffff;\r
+    data[2258]=(char)0xffff;\r
+    data[2259]=(char)0xffff;\r
+    data[2260]=(char)0xffff;\r
+    data[2261]=(char)0xffff;\r
+    data[2262]=(char)0xffff;\r
+    data[2263]=(char)0xffff;\r
+    data[2264]=(char)0xffff;\r
+    data[2265]=(char)0xffff;\r
+    data[2266]=(char)0xffff;\r
+    data[2267]=(char)0xffff;\r
+    data[2268]=(char)0xffff;\r
+    data[2269]=(char)0xffff;\r
+    data[2270]=(char)0xffff;\r
+    data[2271]=(char)0xffff;\r
+    data[2272]=(char)0xffff;\r
+    data[2273]=(char)0xffff;\r
+    data[2274]=(char)0xffff;\r
+    data[2275]=(char)0xffff;\r
+    data[2276]=(char)0xffff;\r
+    data[2277]=(char)0xffff;\r
+    data[2278]=(char)0xffff;\r
+    data[2279]=(char)0xffff;\r
+    data[2280]=(char)0xffff;\r
+    data[2281]=(char)0xffff;\r
+    data[2282]=(char)0xffff;\r
+    data[2283]=(char)0xffff;\r
+    data[2284]=(char)0xffff;\r
+    data[2285]=(char)0xffff;\r
+    data[2286]=(char)0xffff;\r
+    data[2287]=(char)0xffff;\r
+    data[2288]=(char)0xffff;\r
+    data[2289]=(char)0xffff;\r
+    data[2290]=(char)0xffff;\r
+    data[2291]=(char)0xffff;\r
+    data[2292]=(char)0xffff;\r
+    data[2293]=(char)0xffff;\r
+    data[2294]=(char)0xffff;\r
+    data[2295]=(char)0xffff;\r
+    data[2296]=(char)0xffff;\r
+    data[2297]=(char)0xffff;\r
+    data[2298]=(char)0xffff;\r
+    data[2299]=(char)0xffff;\r
+    data[2300]=(char)0xffff;\r
+    data[2301]=(char)0xffff;\r
+    data[2302]=(char)0xffff;\r
+    data[2303]=(char)0xffff;\r
+    data[2304]=(char)0xffff;\r
+    data[2305]=(char)0xffff;\r
+    data[2306]=(char)0xffff;\r
+    data[2307]=(char)0xffff;\r
+    data[2308]=(char)0xffff;\r
+    data[2309]=(char)0xffff;\r
+    data[2310]=(char)0xffff;\r
+    data[2311]=(char)0xffff;\r
+    data[2312]=(char)0xffff;\r
+    data[2313]=(char)0xffff;\r
+    data[2314]=(char)0xffff;\r
+    data[2315]=(char)0xffff;\r
+    data[2316]=(char)0xffff;\r
+    data[2317]=(char)0xffff;\r
+    data[2318]=(char)0xffff;\r
+    data[2319]=(char)0xffff;\r
+    data[2320]=(char)0xffff;\r
+    data[2321]=(char)0xffff;\r
+    data[2322]=(char)0xffff;\r
+    data[2323]=(char)0xffff;\r
+    data[2324]=(char)0xffff;\r
+    data[2325]=(char)0xffff;\r
+    data[2326]=(char)0xffff;\r
+    data[2327]=(char)0xffff;\r
+    data[2328]=(char)0xffff;\r
+    data[2329]=(char)0xffff;\r
+    data[2330]=(char)0xffff;\r
+    data[2331]=(char)0xffff;\r
+    data[2332]=(char)0xffff;\r
+    data[2333]=(char)0xffff;\r
+    data[2334]=(char)0xffff;\r
+    data[2335]=(char)0xffff;\r
+    data[2336]=(char)0xffff;\r
+    data[2337]=(char)0xffff;\r
+    data[2338]=(char)0xffff;\r
+    data[2339]=(char)0xffff;\r
+    data[2340]=(char)0xffff;\r
+    data[2341]=(char)0xffff;\r
+    data[2342]=(char)0xffff;\r
+    data[2343]=(char)0xffff;\r
+    data[2344]=(char)0xffff;\r
+    data[2345]=(char)0xffff;\r
+    data[2346]=(char)0xffff;\r
+    data[2347]=(char)0xffff;\r
+    data[2348]=(char)0xffff;\r
+    data[2349]=(char)0xffff;\r
+    data[2350]=(char)0xffff;\r
+    data[2351]=(char)0xffff;\r
+    data[2352]=(char)0xffff;\r
+    data[2353]=(char)0xffff;\r
+    data[2354]=(char)0xffff;\r
+    data[2355]=(char)0xffff;\r
+    data[2356]=(char)0xffff;\r
+    data[2357]=(char)0xffff;\r
+    data[2358]=(char)0xffff;\r
+    data[2359]=(char)0xffff;\r
+    data[2360]=(char)0xffff;\r
+    data[2361]=(char)0xffff;\r
+    data[2362]=(char)0xffff;\r
+    data[2363]=(char)0xffff;\r
+    data[2364]=(char)0xffff;\r
+    data[2365]=(char)0xffff;\r
+    data[2366]=(char)0xffff;\r
+    data[2367]=(char)0xffff;\r
+    data[2368]=(char)0xffff;\r
+    data[2369]=(char)0xffff;\r
+    data[2370]=(char)0xffff;\r
+    data[2371]=(char)0xffff;\r
+    data[2372]=(char)0xffff;\r
+    data[2373]=(char)0xffff;\r
+    data[2374]=(char)0xffff;\r
+    data[2375]=(char)0xffff;\r
+    data[2376]=(char)0xffff;\r
+    data[2377]=(char)0xffff;\r
+    data[2378]=(char)0xffff;\r
+    data[2379]=(char)0xffff;\r
+    data[2380]=(char)0xffff;\r
+    data[2381]=(char)0xffff;\r
+    data[2382]=(char)0xffff;\r
+    data[2383]=(char)0xffff;\r
+    data[2384]=(char)0xffff;\r
+    data[2385]=(char)0xffff;\r
+    data[2386]=(char)0xffff;\r
+    data[2387]=(char)0xffff;\r
+    data[2388]=(char)0xffff;\r
+    data[2389]=(char)0xffff;\r
+    data[2390]=(char)0xffff;\r
+    data[2391]=(char)0xffff;\r
+    data[2392]=(char)0xffff;\r
+    data[2393]=(char)0xffff;\r
+    data[2394]=(char)0xffff;\r
+    data[2395]=(char)0xffff;\r
+    data[2396]=(char)0xffff;\r
+    data[2397]=(char)0xffff;\r
+    data[2398]=(char)0xffff;\r
+    data[2399]=(char)0xffff;\r
+    data[2400]=(char)0xffff;\r
+    data[2401]=(char)0xffff;\r
+    data[2402]=(char)0xffff;\r
+    data[2403]=(char)0xffff;\r
+    data[2404]=(char)0xffff;\r
+    data[2405]=(char)0xffff;\r
+    data[2406]=(char)0xffff;\r
+    data[2407]=(char)0xffff;\r
+    data[2408]=(char)0xffff;\r
+    data[2409]=(char)0xffff;\r
+    data[2410]=(char)0xffff;\r
+    data[2411]=(char)0xffff;\r
+    data[2412]=(char)0xffff;\r
+    data[2413]=(char)0xffff;\r
+    data[2414]=(char)0xffff;\r
+    data[2415]=(char)0xffff;\r
+    data[2416]=(char)0xffff;\r
+    data[2417]=(char)0xffff;\r
+    data[2418]=(char)0xffff;\r
+    data[2419]=(char)0xffff;\r
+    data[2420]=(char)0xffff;\r
+    data[2421]=(char)0xffff;\r
+    data[2422]=(char)0xffff;\r
+    data[2423]=(char)0xffff;\r
+    data[2424]=(char)0xffff;\r
+    data[2425]=(char)0xffff;\r
+    data[2426]=(char)0xffff;\r
+    data[2427]=(char)0xffff;\r
+    data[2428]=(char)0xffff;\r
+    data[2429]=(char)0xffff;\r
+    data[2430]=(char)0xffff;\r
+    data[2431]=(char)0xffff;\r
+    data[2432]=(char)0xffff;\r
+    data[2433]=(char)0xffff;\r
+    data[2434]=(char)0xffff;\r
+    data[2435]=(char)0xffff;\r
+    data[2436]=(char)0xffff;\r
+    data[2437]=(char)0xffff;\r
+    data[2438]=(char)0xffff;\r
+    data[2439]=(char)0xffff;\r
+    data[2440]=(char)0xffff;\r
+    data[2441]=(char)0xffff;\r
+    data[2442]=(char)0xffff;\r
+    data[2443]=(char)0xffff;\r
+    data[2444]=(char)0xffff;\r
+    data[2445]=(char)0xffff;\r
+    data[2446]=(char)0xffff;\r
+    data[2447]=(char)0xffff;\r
+    data[2448]=(char)0xffff;\r
+    data[2449]=(char)0xffff;\r
+    data[2450]=(char)0xffff;\r
+    data[2451]=(char)0xffff;\r
+    data[2452]=(char)0xffff;\r
+    data[2453]=(char)0xffff;\r
+    data[2454]=(char)0xffff;\r
+    data[2455]=(char)0xffff;\r
+    data[2456]=(char)0xffff;\r
+    data[2457]=(char)0xffff;\r
+    data[2458]=(char)0xffff;\r
+    data[2459]=(char)0xffff;\r
+    data[2460]=(char)0xffff;\r
+    data[2461]=(char)0xffff;\r
+    data[2462]=(char)0xffff;\r
+    data[2463]=(char)0xffff;\r
+    data[2464]=(char)0xffff;\r
+    data[2465]=(char)0xffff;\r
+    data[2466]=(char)0xffff;\r
+    data[2467]=(char)0xffff;\r
+    data[2468]=(char)0xffff;\r
+    data[2469]=(char)0xffff;\r
+    data[2470]=(char)0xffff;\r
+    data[2471]=(char)0xffff;\r
+    data[2472]=(char)0xffff;\r
+    data[2473]=(char)0xffff;\r
+    data[2474]=(char)0xffff;\r
+    data[2475]=(char)0xffff;\r
+    data[2476]=(char)0xffff;\r
+    data[2477]=(char)0xffff;\r
+    data[2478]=(char)0xffff;\r
+    data[2479]=(char)0xffff;\r
+    data[2480]=(char)0xffff;\r
+    data[2481]=(char)0xffff;\r
+    data[2482]=(char)0xffff;\r
+    data[2483]=(char)0xffff;\r
+    data[2484]=(char)0xffff;\r
+    data[2485]=(char)0xffff;\r
+    data[2486]=(char)0xffff;\r
+    data[2487]=(char)0xffff;\r
+    data[2488]=(char)0xffff;\r
+    data[2489]=(char)0xffff;\r
+    data[2490]=(char)0xffff;\r
+    data[2491]=(char)0xffff;\r
+    data[2492]=(char)0xffff;\r
+    data[2493]=(char)0xffff;\r
+    data[2494]=(char)0xffff;\r
+    data[2495]=(char)0xffff;\r
+    data[2496]=(char)0xffff;\r
+    data[2497]=(char)0xffff;\r
+    data[2498]=(char)0xffff;\r
+    data[2499]=(char)0xffff;\r
+    data[2500]=(char)0xffff;\r
+    data[2501]=(char)0xffff;\r
+    data[2502]=(char)0xffff;\r
+    data[2503]=(char)0xffff;\r
+    data[2504]=(char)0xffff;\r
+    data[2505]=(char)0xffff;\r
+    data[2506]=(char)0xffff;\r
+    data[2507]=(char)0xffff;\r
+    data[2508]=(char)0xffff;\r
+    data[2509]=(char)0xffff;\r
+    data[2510]=(char)0xffff;\r
+    data[2511]=(char)0xffff;\r
+    data[2512]=(char)0xffff;\r
+    data[2513]=(char)0xffff;\r
+    data[2514]=(char)0xffff;\r
+    data[2515]=(char)0xffff;\r
+    data[2516]=(char)0xffff;\r
+    data[2517]=(char)0xffff;\r
+    data[2518]=(char)0xffff;\r
+    data[2519]=(char)0xffff;\r
+    data[2520]=(char)0xffff;\r
+    data[2521]=(char)0xffff;\r
+    data[2522]=(char)0xffff;\r
+    data[2523]=(char)0xffff;\r
+    data[2524]=(char)0xffff;\r
+    data[2525]=(char)0xffff;\r
+    data[2526]=(char)0xffff;\r
+    data[2527]=(char)0xffff;\r
+    data[2528]=(char)0xffff;\r
+    data[2529]=(char)0xffff;\r
+    data[2530]=(char)0xffff;\r
+    data[2531]=(char)0xffff;\r
+    data[2532]=(char)0xffff;\r
+    data[2533]=(char)0xffff;\r
+    data[2534]=(char)0xffff;\r
+    data[2535]=(char)0xffff;\r
+    data[2536]=(char)0xffff;\r
+    data[2537]=(char)0xffff;\r
+    data[2538]=(char)0xffff;\r
+    data[2539]=(char)0xffff;\r
+    data[2540]=(char)0xffff;\r
+    data[2541]=(char)0xffff;\r
+    data[2542]=(char)0xffff;\r
+    data[2543]=(char)0xffff;\r
+    data[2544]=(char)0xffff;\r
+    data[2545]=(char)0xffff;\r
+    data[2546]=(char)0xffff;\r
+    data[2547]=(char)0xffff;\r
+    data[2548]=(char)0xffff;\r
+    data[2549]=(char)0xffff;\r
+    data[2550]=(char)0xffff;\r
+    data[2551]=(char)0xffff;\r
+    data[2552]=(char)0xffff;\r
+    data[2553]=(char)0xffff;\r
+    data[2554]=(char)0x003f;\r
+    data[2752]=(char)0xffff;\r
+    data[2753]=(char)0xffff;\r
+    data[2754]=(char)0xffff;\r
+    data[2755]=(char)0xffff;\r
+    data[2756]=(char)0xffff;\r
+    data[2757]=(char)0xffff;\r
+    data[2758]=(char)0xffff;\r
+    data[2759]=(char)0xffff;\r
+    data[2760]=(char)0xffff;\r
+    data[2761]=(char)0xffff;\r
+    data[2762]=(char)0xffff;\r
+    data[2763]=(char)0xffff;\r
+    data[2764]=(char)0xffff;\r
+    data[2765]=(char)0xffff;\r
+    data[2766]=(char)0xffff;\r
+    data[2767]=(char)0xffff;\r
+    data[2768]=(char)0xffff;\r
+    data[2769]=(char)0xffff;\r
+    data[2770]=(char)0xffff;\r
+    data[2771]=(char)0xffff;\r
+    data[2772]=(char)0xffff;\r
+    data[2773]=(char)0xffff;\r
+    data[2774]=(char)0xffff;\r
+    data[2775]=(char)0xffff;\r
+    data[2776]=(char)0xffff;\r
+    data[2777]=(char)0xffff;\r
+    data[2778]=(char)0xffff;\r
+    data[2779]=(char)0xffff;\r
+    data[2780]=(char)0xffff;\r
+    data[2781]=(char)0xffff;\r
+    data[2782]=(char)0xffff;\r
+    data[2783]=(char)0xffff;\r
+    data[2784]=(char)0xffff;\r
+    data[2785]=(char)0xffff;\r
+    data[2786]=(char)0xffff;\r
+    data[2787]=(char)0xffff;\r
+    data[2788]=(char)0xffff;\r
+    data[2789]=(char)0xffff;\r
+    data[2790]=(char)0xffff;\r
+    data[2791]=(char)0xffff;\r
+    data[2792]=(char)0xffff;\r
+    data[2793]=(char)0xffff;\r
+    data[2794]=(char)0xffff;\r
+    data[2795]=(char)0xffff;\r
+    data[2796]=(char)0xffff;\r
+    data[2797]=(char)0xffff;\r
+    data[2798]=(char)0xffff;\r
+    data[2799]=(char)0xffff;\r
+    data[2800]=(char)0xffff;\r
+    data[2801]=(char)0xffff;\r
+    data[2802]=(char)0xffff;\r
+    data[2803]=(char)0xffff;\r
+    data[2804]=(char)0xffff;\r
+    data[2805]=(char)0xffff;\r
+    data[2806]=(char)0xffff;\r
+    data[2807]=(char)0xffff;\r
+    data[2808]=(char)0xffff;\r
+    data[2809]=(char)0xffff;\r
+    data[2810]=(char)0xffff;\r
+    data[2811]=(char)0xffff;\r
+    data[2812]=(char)0xffff;\r
+    data[2813]=(char)0xffff;\r
+    data[2814]=(char)0xffff;\r
+    data[2815]=(char)0xffff;\r
+    data[2816]=(char)0xffff;\r
+    data[2817]=(char)0xffff;\r
+    data[2818]=(char)0xffff;\r
+    data[2819]=(char)0xffff;\r
+    data[2820]=(char)0xffff;\r
+    data[2821]=(char)0xffff;\r
+    data[2822]=(char)0xffff;\r
+    data[2823]=(char)0xffff;\r
+    data[2824]=(char)0xffff;\r
+    data[2825]=(char)0xffff;\r
+    data[2826]=(char)0xffff;\r
+    data[2827]=(char)0xffff;\r
+    data[2828]=(char)0xffff;\r
+    data[2829]=(char)0xffff;\r
+    data[2830]=(char)0xffff;\r
+    data[2831]=(char)0xffff;\r
+    data[2832]=(char)0xffff;\r
+    data[2833]=(char)0xffff;\r
+    data[2834]=(char)0xffff;\r
+    data[2835]=(char)0xffff;\r
+    data[2836]=(char)0xffff;\r
+    data[2837]=(char)0xffff;\r
+    data[2838]=(char)0xffff;\r
+    data[2839]=(char)0xffff;\r
+    data[2840]=(char)0xffff;\r
+    data[2841]=(char)0xffff;\r
+    data[2842]=(char)0xffff;\r
+    data[2843]=(char)0xffff;\r
+    data[2844]=(char)0xffff;\r
+    data[2845]=(char)0xffff;\r
+    data[2846]=(char)0xffff;\r
+    data[2847]=(char)0xffff;\r
+    data[2848]=(char)0xffff;\r
+    data[2849]=(char)0xffff;\r
+    data[2850]=(char)0xffff;\r
+    data[2851]=(char)0xffff;\r
+    data[2852]=(char)0xffff;\r
+    data[2853]=(char)0xffff;\r
+    data[2854]=(char)0xffff;\r
+    data[2855]=(char)0xffff;\r
+    data[2856]=(char)0xffff;\r
+    data[2857]=(char)0xffff;\r
+    data[2858]=(char)0xffff;\r
+    data[2859]=(char)0xffff;\r
+    data[2860]=(char)0xffff;\r
+    data[2861]=(char)0xffff;\r
+    data[2862]=(char)0xffff;\r
+    data[2863]=(char)0xffff;\r
+    data[2864]=(char)0xffff;\r
+    data[2865]=(char)0xffff;\r
+    data[2866]=(char)0xffff;\r
+    data[2867]=(char)0xffff;\r
+    data[2868]=(char)0xffff;\r
+    data[2869]=(char)0xffff;\r
+    data[2870]=(char)0xffff;\r
+    data[2871]=(char)0xffff;\r
+    data[2872]=(char)0xffff;\r
+    data[2873]=(char)0xffff;\r
+    data[2874]=(char)0xffff;\r
+    data[2875]=(char)0xffff;\r
+    data[2876]=(char)0xffff;\r
+    data[2877]=(char)0xffff;\r
+    data[2878]=(char)0xffff;\r
+    data[2879]=(char)0xffff;\r
+    data[2880]=(char)0xffff;\r
+    data[2881]=(char)0xffff;\r
+    data[2882]=(char)0xffff;\r
+    data[2883]=(char)0xffff;\r
+    data[2884]=(char)0xffff;\r
+    data[2885]=(char)0xffff;\r
+    data[2886]=(char)0xffff;\r
+    data[2887]=(char)0xffff;\r
+    data[2888]=(char)0xffff;\r
+    data[2889]=(char)0xffff;\r
+    data[2890]=(char)0xffff;\r
+    data[2891]=(char)0xffff;\r
+    data[2892]=(char)0xffff;\r
+    data[2893]=(char)0xffff;\r
+    data[2894]=(char)0xffff;\r
+    data[2895]=(char)0xffff;\r
+    data[2896]=(char)0xffff;\r
+    data[2897]=(char)0xffff;\r
+    data[2898]=(char)0xffff;\r
+    data[2899]=(char)0xffff;\r
+    data[2900]=(char)0xffff;\r
+    data[2901]=(char)0xffff;\r
+    data[2902]=(char)0xffff;\r
+    data[2903]=(char)0xffff;\r
+    data[2904]=(char)0xffff;\r
+    data[2905]=(char)0xffff;\r
+    data[2906]=(char)0xffff;\r
+    data[2907]=(char)0xffff;\r
+    data[2908]=(char)0xffff;\r
+    data[2909]=(char)0xffff;\r
+    data[2910]=(char)0xffff;\r
+    data[2911]=(char)0xffff;\r
+    data[2912]=(char)0xffff;\r
+    data[2913]=(char)0xffff;\r
+    data[2914]=(char)0xffff;\r
+    data[2915]=(char)0xffff;\r
+    data[2916]=(char)0xffff;\r
+    data[2917]=(char)0xffff;\r
+    data[2918]=(char)0xffff;\r
+    data[2919]=(char)0xffff;\r
+    data[2920]=(char)0xffff;\r
+    data[2921]=(char)0xffff;\r
+    data[2922]=(char)0xffff;\r
+    data[2923]=(char)0xffff;\r
+    data[2924]=(char)0xffff;\r
+    data[2925]=(char)0xffff;\r
+    data[2926]=(char)0xffff;\r
+    data[2927]=(char)0xffff;\r
+    data[2928]=(char)0xffff;\r
+    data[2929]=(char)0xffff;\r
+    data[2930]=(char)0xffff;\r
+    data[2931]=(char)0xffff;\r
+    data[2932]=(char)0xffff;\r
+    data[2933]=(char)0xffff;\r
+    data[2934]=(char)0xffff;\r
+    data[2935]=(char)0xffff;\r
+    data[2936]=(char)0xffff;\r
+    data[2937]=(char)0xffff;\r
+    data[2938]=(char)0xffff;\r
+    data[2939]=(char)0xffff;\r
+    data[2940]=(char)0xffff;\r
+    data[2941]=(char)0xffff;\r
+    data[2942]=(char)0xffff;\r
+    data[2943]=(char)0xffff;\r
+    data[2944]=(char)0xffff;\r
+    data[2945]=(char)0xffff;\r
+    data[2946]=(char)0xffff;\r
+    data[2947]=(char)0xffff;\r
+    data[2948]=(char)0xffff;\r
+    data[2949]=(char)0xffff;\r
+    data[2950]=(char)0xffff;\r
+    data[2951]=(char)0xffff;\r
+    data[2952]=(char)0xffff;\r
+    data[2953]=(char)0xffff;\r
+    data[2954]=(char)0xffff;\r
+    data[2955]=(char)0xffff;\r
+    data[2956]=(char)0xffff;\r
+    data[2957]=(char)0xffff;\r
+    data[2958]=(char)0xffff;\r
+    data[2959]=(char)0xffff;\r
+    data[2960]=(char)0xffff;\r
+    data[2961]=(char)0xffff;\r
+    data[2962]=(char)0xffff;\r
+    data[2963]=(char)0xffff;\r
+    data[2964]=(char)0xffff;\r
+    data[2965]=(char)0xffff;\r
+    data[2966]=(char)0xffff;\r
+    data[2967]=(char)0xffff;\r
+    data[2968]=(char)0xffff;\r
+    data[2969]=(char)0xffff;\r
+    data[2970]=(char)0xffff;\r
+    data[2971]=(char)0xffff;\r
+    data[2972]=(char)0xffff;\r
+    data[2973]=(char)0xffff;\r
+    data[2974]=(char)0xffff;\r
+    data[2975]=(char)0xffff;\r
+    data[2976]=(char)0xffff;\r
+    data[2977]=(char)0xffff;\r
+    data[2978]=(char)0xffff;\r
+    data[2979]=(char)0xffff;\r
+    data[2980]=(char)0xffff;\r
+    data[2981]=(char)0xffff;\r
+    data[2982]=(char)0xffff;\r
+    data[2983]=(char)0xffff;\r
+    data[2984]=(char)0xffff;\r
+    data[2985]=(char)0xffff;\r
+    data[2986]=(char)0xffff;\r
+    data[2987]=(char)0xffff;\r
+    data[2988]=(char)0xffff;\r
+    data[2989]=(char)0xffff;\r
+    data[2990]=(char)0xffff;\r
+    data[2991]=(char)0xffff;\r
+    data[2992]=(char)0xffff;\r
+    data[2993]=(char)0xffff;\r
+    data[2994]=(char)0xffff;\r
+    data[2995]=(char)0xffff;\r
+    data[2996]=(char)0xffff;\r
+    data[2997]=(char)0xffff;\r
+    data[2998]=(char)0xffff;\r
+    data[2999]=(char)0xffff;\r
+    data[3000]=(char)0xffff;\r
+    data[3001]=(char)0xffff;\r
+    data[3002]=(char)0xffff;\r
+    data[3003]=(char)0xffff;\r
+    data[3004]=(char)0xffff;\r
+    data[3005]=(char)0xffff;\r
+    data[3006]=(char)0xffff;\r
+    data[3007]=(char)0xffff;\r
+    data[3008]=(char)0xffff;\r
+    data[3009]=(char)0xffff;\r
+    data[3010]=(char)0xffff;\r
+    data[3011]=(char)0xffff;\r
+    data[3012]=(char)0xffff;\r
+    data[3013]=(char)0xffff;\r
+    data[3014]=(char)0xffff;\r
+    data[3015]=(char)0xffff;\r
+    data[3016]=(char)0xffff;\r
+    data[3017]=(char)0xffff;\r
+    data[3018]=(char)0xffff;\r
+    data[3019]=(char)0xffff;\r
+    data[3020]=(char)0xffff;\r
+    data[3021]=(char)0xffff;\r
+    data[3022]=(char)0xffff;\r
+    data[3023]=(char)0xffff;\r
+    data[3024]=(char)0xffff;\r
+    data[3025]=(char)0xffff;\r
+    data[3026]=(char)0xffff;\r
+    data[3027]=(char)0xffff;\r
+    data[3028]=(char)0xffff;\r
+    data[3029]=(char)0xffff;\r
+    data[3030]=(char)0xffff;\r
+    data[3031]=(char)0xffff;\r
+    data[3032]=(char)0xffff;\r
+    data[3033]=(char)0xffff;\r
+    data[3034]=(char)0xffff;\r
+    data[3035]=(char)0xffff;\r
+    data[3036]=(char)0xffff;\r
+    data[3037]=(char)0xffff;\r
+    data[3038]=(char)0xffff;\r
+    data[3039]=(char)0xffff;\r
+    data[3040]=(char)0xffff;\r
+    data[3041]=(char)0xffff;\r
+    data[3042]=(char)0xffff;\r
+    data[3043]=(char)0xffff;\r
+    data[3044]=(char)0xffff;\r
+    data[3045]=(char)0xffff;\r
+    data[3046]=(char)0xffff;\r
+    data[3047]=(char)0xffff;\r
+    data[3048]=(char)0xffff;\r
+    data[3049]=(char)0xffff;\r
+    data[3050]=(char)0xffff;\r
+    data[3051]=(char)0xffff;\r
+    data[3052]=(char)0xffff;\r
+    data[3053]=(char)0xffff;\r
+    data[3054]=(char)0xffff;\r
+    data[3055]=(char)0xffff;\r
+    data[3056]=(char)0xffff;\r
+    data[3057]=(char)0xffff;\r
+    data[3058]=(char)0xffff;\r
+    data[3059]=(char)0xffff;\r
+    data[3060]=(char)0xffff;\r
+    data[3061]=(char)0xffff;\r
+    data[3062]=(char)0xffff;\r
+    data[3063]=(char)0xffff;\r
+    data[3064]=(char)0xffff;\r
+    data[3065]=(char)0xffff;\r
+    data[3066]=(char)0xffff;\r
+    data[3067]=(char)0xffff;\r
+    data[3068]=(char)0xffff;\r
+    data[3069]=(char)0xffff;\r
+    data[3070]=(char)0xffff;\r
+    data[3071]=(char)0xffff;\r
+    data[3072]=(char)0xffff;\r
+    data[3073]=(char)0xffff;\r
+    data[3074]=(char)0xffff;\r
+    data[3075]=(char)0xffff;\r
+    data[3076]=(char)0xffff;\r
+    data[3077]=(char)0xffff;\r
+    data[3078]=(char)0xffff;\r
+    data[3079]=(char)0xffff;\r
+    data[3080]=(char)0xffff;\r
+    data[3081]=(char)0xffff;\r
+    data[3082]=(char)0xffff;\r
+    data[3083]=(char)0xffff;\r
+    data[3084]=(char)0xffff;\r
+    data[3085]=(char)0xffff;\r
+    data[3086]=(char)0xffff;\r
+    data[3087]=(char)0xffff;\r
+    data[3088]=(char)0xffff;\r
+    data[3089]=(char)0xffff;\r
+    data[3090]=(char)0xffff;\r
+    data[3091]=(char)0xffff;\r
+    data[3092]=(char)0xffff;\r
+    data[3093]=(char)0xffff;\r
+    data[3094]=(char)0xffff;\r
+    data[3095]=(char)0xffff;\r
+    data[3096]=(char)0xffff;\r
+    data[3097]=(char)0xffff;\r
+    data[3098]=(char)0xffff;\r
+    data[3099]=(char)0xffff;\r
+    data[3100]=(char)0xffff;\r
+    data[3101]=(char)0xffff;\r
+    data[3102]=(char)0xffff;\r
+    data[3103]=(char)0xffff;\r
+    data[3104]=(char)0xffff;\r
+    data[3105]=(char)0xffff;\r
+    data[3106]=(char)0xffff;\r
+    data[3107]=(char)0xffff;\r
+    data[3108]=(char)0xffff;\r
+    data[3109]=(char)0xffff;\r
+    data[3110]=(char)0xffff;\r
+    data[3111]=(char)0xffff;\r
+    data[3112]=(char)0xffff;\r
+    data[3113]=(char)0xffff;\r
+    data[3114]=(char)0xffff;\r
+    data[3115]=(char)0xffff;\r
+    data[3116]=(char)0xffff;\r
+    data[3117]=(char)0xffff;\r
+    data[3118]=(char)0xffff;\r
+    data[3119]=(char)0xffff;\r
+    data[3120]=(char)0xffff;\r
+    data[3121]=(char)0xffff;\r
+    data[3122]=(char)0xffff;\r
+    data[3123]=(char)0xffff;\r
+    data[3124]=(char)0xffff;\r
+    data[3125]=(char)0xffff;\r
+    data[3126]=(char)0xffff;\r
+    data[3127]=(char)0xffff;\r
+    data[3128]=(char)0xffff;\r
+    data[3129]=(char)0xffff;\r
+    data[3130]=(char)0xffff;\r
+    data[3131]=(char)0xffff;\r
+    data[3132]=(char)0xffff;\r
+    data[3133]=(char)0xffff;\r
+    data[3134]=(char)0xffff;\r
+    data[3135]=(char)0xffff;\r
+    data[3136]=(char)0xffff;\r
+    data[3137]=(char)0xffff;\r
+    data[3138]=(char)0xffff;\r
+    data[3139]=(char)0xffff;\r
+    data[3140]=(char)0xffff;\r
+    data[3141]=(char)0xffff;\r
+    data[3142]=(char)0xffff;\r
+    data[3143]=(char)0xffff;\r
+    data[3144]=(char)0xffff;\r
+    data[3145]=(char)0xffff;\r
+    data[3146]=(char)0xffff;\r
+    data[3147]=(char)0xffff;\r
+    data[3148]=(char)0xffff;\r
+    data[3149]=(char)0xffff;\r
+    data[3150]=(char)0xffff;\r
+    data[3151]=(char)0xffff;\r
+    data[3152]=(char)0xffff;\r
+    data[3153]=(char)0xffff;\r
+    data[3154]=(char)0xffff;\r
+    data[3155]=(char)0xffff;\r
+    data[3156]=(char)0xffff;\r
+    data[3157]=(char)0xffff;\r
+    data[3158]=(char)0xffff;\r
+    data[3159]=(char)0xffff;\r
+    data[3160]=(char)0xffff;\r
+    data[3161]=(char)0xffff;\r
+    data[3162]=(char)0xffff;\r
+    data[3163]=(char)0xffff;\r
+    data[3164]=(char)0xffff;\r
+    data[3165]=(char)0xffff;\r
+    data[3166]=(char)0xffff;\r
+    data[3167]=(char)0xffff;\r
+    data[3168]=(char)0xffff;\r
+    data[3169]=(char)0xffff;\r
+    data[3170]=(char)0xffff;\r
+    data[3171]=(char)0xffff;\r
+    data[3172]=(char)0xffff;\r
+    data[3173]=(char)0xffff;\r
+    data[3174]=(char)0xffff;\r
+    data[3175]=(char)0xffff;\r
+    data[3176]=(char)0xffff;\r
+    data[3177]=(char)0xffff;\r
+    data[3178]=(char)0xffff;\r
+    data[3179]=(char)0xffff;\r
+    data[3180]=(char)0xffff;\r
+    data[3181]=(char)0xffff;\r
+    data[3182]=(char)0xffff;\r
+    data[3183]=(char)0xffff;\r
+    data[3184]=(char)0xffff;\r
+    data[3185]=(char)0xffff;\r
+    data[3186]=(char)0xffff;\r
+    data[3187]=(char)0xffff;\r
+    data[3188]=(char)0xffff;\r
+    data[3189]=(char)0xffff;\r
+    data[3190]=(char)0xffff;\r
+    data[3191]=(char)0xffff;\r
+    data[3192]=(char)0xffff;\r
+    data[3193]=(char)0xffff;\r
+    data[3194]=(char)0xffff;\r
+    data[3195]=(char)0xffff;\r
+    data[3196]=(char)0xffff;\r
+    data[3197]=(char)0xffff;\r
+    data[3198]=(char)0xffff;\r
+    data[3199]=(char)0xffff;\r
+    data[3200]=(char)0xffff;\r
+    data[3201]=(char)0xffff;\r
+    data[3202]=(char)0xffff;\r
+    data[3203]=(char)0xffff;\r
+    data[3204]=(char)0xffff;\r
+    data[3205]=(char)0xffff;\r
+    data[3206]=(char)0xffff;\r
+    data[3207]=(char)0xffff;\r
+    data[3208]=(char)0xffff;\r
+    data[3209]=(char)0xffff;\r
+    data[3210]=(char)0xffff;\r
+    data[3211]=(char)0xffff;\r
+    data[3212]=(char)0xffff;\r
+    data[3213]=(char)0xffff;\r
+    data[3214]=(char)0xffff;\r
+    data[3215]=(char)0xffff;\r
+    data[3216]=(char)0xffff;\r
+    data[3217]=(char)0xffff;\r
+    data[3218]=(char)0xffff;\r
+    data[3219]=(char)0xffff;\r
+    data[3220]=(char)0xffff;\r
+    data[3221]=(char)0xffff;\r
+    data[3222]=(char)0xffff;\r
+    data[3223]=(char)0xffff;\r
+    data[3224]=(char)0xffff;\r
+    data[3225]=(char)0xffff;\r
+    data[3226]=(char)0xffff;\r
+    data[3227]=(char)0xffff;\r
+    data[3228]=(char)0xffff;\r
+    data[3229]=(char)0xffff;\r
+    data[3230]=(char)0xffff;\r
+    data[3231]=(char)0xffff;\r
+    data[3232]=(char)0xffff;\r
+    data[3233]=(char)0xffff;\r
+    data[3234]=(char)0xffff;\r
+    data[3235]=(char)0xffff;\r
+    data[3236]=(char)0xffff;\r
+    data[3237]=(char)0xffff;\r
+    data[3238]=(char)0xffff;\r
+    data[3239]=(char)0xffff;\r
+    data[3240]=(char)0xffff;\r
+    data[3241]=(char)0xffff;\r
+    data[3242]=(char)0xffff;\r
+    data[3243]=(char)0xffff;\r
+    data[3244]=(char)0xffff;\r
+    data[3245]=(char)0xffff;\r
+    data[3246]=(char)0xffff;\r
+    data[3247]=(char)0xffff;\r
+    data[3248]=(char)0xffff;\r
+    data[3249]=(char)0xffff;\r
+    data[3250]=(char)0xffff;\r
+    data[3251]=(char)0xffff;\r
+    data[3252]=(char)0xffff;\r
+    data[3253]=(char)0xffff;\r
+    data[3254]=(char)0xffff;\r
+    data[3255]=(char)0xffff;\r
+    data[3256]=(char)0xffff;\r
+    data[3257]=(char)0xffff;\r
+    data[3258]=(char)0xffff;\r
+    data[3259]=(char)0xffff;\r
+    data[3260]=(char)0xffff;\r
+    data[3261]=(char)0xffff;\r
+    data[3262]=(char)0xffff;\r
+    data[3263]=(char)0xffff;\r
+    data[3264]=(char)0xffff;\r
+    data[3265]=(char)0xffff;\r
+    data[3266]=(char)0xffff;\r
+    data[3267]=(char)0xffff;\r
+    data[3268]=(char)0xffff;\r
+    data[3269]=(char)0xffff;\r
+    data[3270]=(char)0xffff;\r
+    data[3271]=(char)0xffff;\r
+    data[3272]=(char)0xffff;\r
+    data[3273]=(char)0xffff;\r
+    data[3274]=(char)0xffff;\r
+    data[3275]=(char)0xffff;\r
+    data[3276]=(char)0xffff;\r
+    data[3277]=(char)0xffff;\r
+    data[3278]=(char)0xffff;\r
+    data[3279]=(char)0xffff;\r
+    data[3280]=(char)0xffff;\r
+    data[3281]=(char)0xffff;\r
+    data[3282]=(char)0xffff;\r
+    data[3283]=(char)0xffff;\r
+    data[3284]=(char)0xffff;\r
+    data[3285]=(char)0xffff;\r
+    data[3286]=(char)0xffff;\r
+    data[3287]=(char)0xffff;\r
+    data[3288]=(char)0xffff;\r
+    data[3289]=(char)0xffff;\r
+    data[3290]=(char)0xffff;\r
+    data[3291]=(char)0xffff;\r
+    data[3292]=(char)0xffff;\r
+    data[3293]=(char)0xffff;\r
+    data[3294]=(char)0xffff;\r
+    data[3295]=(char)0xffff;\r
+    data[3296]=(char)0xffff;\r
+    data[3297]=(char)0xffff;\r
+    data[3298]=(char)0xffff;\r
+    data[3299]=(char)0xffff;\r
+    data[3300]=(char)0xffff;\r
+    data[3301]=(char)0xffff;\r
+    data[3302]=(char)0xffff;\r
+    data[3303]=(char)0xffff;\r
+    data[3304]=(char)0xffff;\r
+    data[3305]=(char)0xffff;\r
+    data[3306]=(char)0xffff;\r
+    data[3307]=(char)0xffff;\r
+    data[3308]=(char)0xffff;\r
+    data[3309]=(char)0xffff;\r
+    data[3310]=(char)0xffff;\r
+    data[3311]=(char)0xffff;\r
+    data[3312]=(char)0xffff;\r
+    data[3313]=(char)0xffff;\r
+    data[3314]=(char)0xffff;\r
+    data[3315]=(char)0xffff;\r
+    data[3316]=(char)0xffff;\r
+    data[3317]=(char)0xffff;\r
+    data[3318]=(char)0xffff;\r
+    data[3319]=(char)0xffff;\r
+    data[3320]=(char)0xffff;\r
+    data[3321]=(char)0xffff;\r
+    data[3322]=(char)0xffff;\r
+    data[3323]=(char)0xffff;\r
+    data[3324]=(char)0xffff;\r
+    data[3325]=(char)0xffff;\r
+    data[3326]=(char)0xffff;\r
+    data[3327]=(char)0xffff;\r
+    data[3328]=(char)0xffff;\r
+    data[3329]=(char)0xffff;\r
+    data[3330]=(char)0xffff;\r
+    data[3331]=(char)0xffff;\r
+    data[3332]=(char)0xffff;\r
+    data[3333]=(char)0xffff;\r
+    data[3334]=(char)0xffff;\r
+    data[3335]=(char)0xffff;\r
+    data[3336]=(char)0xffff;\r
+    data[3337]=(char)0xffff;\r
+    data[3338]=(char)0xffff;\r
+    data[3339]=(char)0xffff;\r
+    data[3340]=(char)0xffff;\r
+    data[3341]=(char)0xffff;\r
+    data[3342]=(char)0xffff;\r
+    data[3343]=(char)0xffff;\r
+    data[3344]=(char)0xffff;\r
+    data[3345]=(char)0xffff;\r
+    data[3346]=(char)0xffff;\r
+    data[3347]=(char)0xffff;\r
+    data[3348]=(char)0xffff;\r
+    data[3349]=(char)0xffff;\r
+    data[3350]=(char)0xffff;\r
+    data[3351]=(char)0xffff;\r
+    data[3352]=(char)0xffff;\r
+    data[3353]=(char)0xffff;\r
+    data[3354]=(char)0xffff;\r
+    data[3355]=(char)0xffff;\r
+    data[3356]=(char)0xffff;\r
+    data[3357]=(char)0xffff;\r
+    data[3358]=(char)0xffff;\r
+    data[3359]=(char)0xffff;\r
+    data[3360]=(char)0xffff;\r
+    data[3361]=(char)0xffff;\r
+    data[3362]=(char)0xffff;\r
+    data[3363]=(char)0xffff;\r
+    data[3364]=(char)0xffff;\r
+    data[3365]=(char)0xffff;\r
+    data[3366]=(char)0xffff;\r
+    data[3367]=(char)0xffff;\r
+    data[3368]=(char)0xffff;\r
+    data[3369]=(char)0xffff;\r
+    data[3370]=(char)0xffff;\r
+    data[3371]=(char)0xffff;\r
+    data[3372]=(char)0xffff;\r
+    data[3373]=(char)0xffff;\r
+    data[3374]=(char)0xffff;\r
+    data[3375]=(char)0xffff;\r
+    data[3376]=(char)0xffff;\r
+    data[3377]=(char)0xffff;\r
+    data[3378]=(char)0xffff;\r
+    data[3379]=(char)0xffff;\r
+    data[3380]=(char)0xffff;\r
+    data[3381]=(char)0xffff;\r
+    data[3382]=(char)0xffff;\r
+    data[3383]=(char)0xffff;\r
+    data[3384]=(char)0xffff;\r
+    data[3385]=(char)0xffff;\r
+    data[3386]=(char)0xffff;\r
+    data[3387]=(char)0xffff;\r
+    data[3388]=(char)0xffff;\r
+    data[3389]=(char)0xffff;\r
+    data[3390]=(char)0xffff;\r
+    data[3391]=(char)0xffff;\r
+    data[3392]=(char)0xffff;\r
+    data[3393]=(char)0xffff;\r
+    data[3394]=(char)0xffff;\r
+    data[3395]=(char)0xffff;\r
+    data[3396]=(char)0xffff;\r
+    data[3397]=(char)0xffff;\r
+    data[3398]=(char)0xffff;\r
+    data[3399]=(char)0xffff;\r
+    data[3400]=(char)0xffff;\r
+    data[3401]=(char)0xffff;\r
+    data[3402]=(char)0xffff;\r
+    data[3403]=(char)0xffff;\r
+    data[3404]=(char)0xffff;\r
+    data[3405]=(char)0xffff;\r
+    data[3406]=(char)0xffff;\r
+    data[3407]=(char)0xffff;\r
+    data[3408]=(char)0xffff;\r
+    data[3409]=(char)0xffff;\r
+    data[3410]=(char)0xffff;\r
+    data[3411]=(char)0xffff;\r
+    data[3412]=(char)0xffff;\r
+    data[3413]=(char)0xffff;\r
+    data[3414]=(char)0xffff;\r
+    data[3415]=(char)0xffff;\r
+    data[3416]=(char)0xffff;\r
+    data[3417]=(char)0xffff;\r
+    data[3418]=(char)0xffff;\r
+    data[3419]=(char)0xffff;\r
+    data[3420]=(char)0xffff;\r
+    data[3421]=(char)0xffff;\r
+    data[3422]=(char)0xffff;\r
+    data[3423]=(char)0xffff;\r
+    data[3424]=(char)0xffff;\r
+    data[3425]=(char)0xffff;\r
+    data[3426]=(char)0xffff;\r
+    data[3427]=(char)0xffff;\r
+    data[3428]=(char)0xffff;\r
+    data[3429]=(char)0xffff;\r
+    data[3430]=(char)0xffff;\r
+    data[3431]=(char)0xffff;\r
+    data[3432]=(char)0xffff;\r
+    data[3433]=(char)0xffff;\r
+    data[3434]=(char)0xffff;\r
+    data[3435]=(char)0xffff;\r
+    data[3436]=(char)0xffff;\r
+    data[3437]=(char)0xffff;\r
+    data[3438]=(char)0xffff;\r
+    data[3439]=(char)0xffff;\r
+    data[3440]=(char)0xffff;\r
+    data[3441]=(char)0xffff;\r
+    data[3442]=(char)0xffff;\r
+    data[3443]=(char)0xffff;\r
+    data[3444]=(char)0xffff;\r
+    data[3445]=(char)0xffff;\r
+    data[3446]=(char)0xffff;\r
+    data[3447]=(char)0xffff;\r
+    data[3448]=(char)0xffff;\r
+    data[3449]=(char)0xffff;\r
+    data[3450]=(char)0x000f;\r
+    data[3984]=(char)0xffff;\r
+    data[3985]=(char)0xffff;\r
+    data[3986]=(char)0xffff;\r
+    data[3987]=(char)0xffff;\r
+    data[3988]=(char)0xffff;\r
+    data[3989]=(char)0xffff;\r
+    data[3990]=(char)0xffff;\r
+    data[3991]=(char)0xffff;\r
+    data[3992]=(char)0xffff;\r
+    data[3993]=(char)0xffff;\r
+    data[3994]=(char)0xffff;\r
+    data[3995]=(char)0xffff;\r
+    data[3996]=(char)0xffff;\r
+    data[3997]=(char)0xffff;\r
+    data[3998]=(char)0xffff;\r
+    data[3999]=(char)0xffff;\r
+    data[4000]=(char)0xffff;\r
+    data[4001]=(char)0xffff;\r
+    data[4002]=(char)0x3fff;\r
+    data[4016]=(char)0x007f;\r
+    data[4017]=(char)0x80f8;\r
+    data[4018]=(char)0xfdff;\r
+    data[4019]=(char)0x5f7f;\r
+    data[4020]=(char)0xffdb;\r
+    data[4021]=(char)0xffff;\r
+    data[4022]=(char)0xffff;\r
+    data[4023]=(char)0xffff;\r
+    data[4024]=(char)0xffff;\r
+    data[4025]=(char)0xffff;\r
+    data[4026]=(char)0xffff;\r
+    data[4027]=(char)0x0003;\r
+    data[4029]=(char)0xfff8;\r
+    data[4030]=(char)0xffff;\r
+    data[4031]=(char)0xffff;\r
+    data[4032]=(char)0xffff;\r
+    data[4033]=(char)0xffff;\r
+    data[4034]=(char)0xffff;\r
+    data[4035]=(char)0xffff;\r
+    data[4036]=(char)0xffff;\r
+    data[4037]=(char)0xffff;\r
+    data[4038]=(char)0xffff;\r
+    data[4039]=(char)0xffff;\r
+    data[4040]=(char)0xffff;\r
+    data[4041]=(char)0xffff;\r
+    data[4042]=(char)0xffff;\r
+    data[4043]=(char)0xffff;\r
+    data[4044]=(char)0xffff;\r
+    data[4045]=(char)0xffff;\r
+    data[4046]=(char)0xffff;\r
+    data[4047]=(char)0xffff;\r
+    data[4048]=(char)0xffff;\r
+    data[4049]=(char)0xffff;\r
+    data[4050]=(char)0xffff;\r
+    data[4051]=(char)0x3fff;\r
+    data[4053]=(char)0xffff;\r
+    data[4054]=(char)0xffff;\r
+    data[4055]=(char)0xffff;\r
+    data[4056]=(char)0xffff;\r
+    data[4057]=(char)0xfffc;\r
+    data[4058]=(char)0xffff;\r
+    data[4059]=(char)0xffff;\r
+    data[4060]=(char)0x00ff;\r
+    data[4063]=(char)0x0fff;\r
+    data[4071]=(char)0xffd7;\r
+    data[4072]=(char)0xffff;\r
+    data[4073]=(char)0xffff;\r
+    data[4074]=(char)0xffff;\r
+    data[4075]=(char)0xffff;\r
+    data[4076]=(char)0xffff;\r
+    data[4077]=(char)0xffff;\r
+    data[4078]=(char)0xffff;\r
+    data[4079]=(char)0x1fff;\r
+    data[4082]=(char)0xfffe;\r
+    data[4083]=(char)0x07ff;\r
+    data[4084]=(char)0xfffe;\r
+    data[4085]=(char)0x07ff;\r
+    data[4086]=(char)0xffc0;\r
+    data[4087]=(char)0xffff;\r
+    data[4088]=(char)0xffff;\r
+    data[4089]=(char)0xffff;\r
+    data[4090]=(char)0xffff;\r
+    data[4091]=(char)0x7fff;\r
+    data[4092]=(char)0xfcfc;\r
+    data[4093]=(char)0x1cfc;\r
+    data[4100]=(char)0xfffe;\r
+    data[4101]=(char)0x07ff;\r
+    data[4102]=(char)0xfffe;\r
+    data[4103]=(char)0x07ff;\r
+    data[4106]=(char)0x0400;\r
+    data[4107]=(char)0x0420;\r
+    data[4108]=(char)0xffff;\r
+    data[4109]=(char)0xff7f;\r
+    data[4110]=(char)0xffff;\r
+    data[4111]=(char)0xff7f;\r
+    data[4112]=(char)0xffff;\r
+    data[4113]=(char)0xffff;\r
+    data[4114]=(char)0xffff;\r
+    data[4115]=(char)0xffff;\r
+    data[4116]=(char)0xffff;\r
+    data[4117]=(char)0xffff;\r
+    data[4118]=(char)0xffff;\r
+    data[4119]=(char)0xffff;\r
+    data[4120]=(char)0xffff;\r
+    data[4121]=(char)0xffff;\r
+    data[4122]=(char)0xffff;\r
+    data[4123]=(char)0xffff;\r
+    data[4124]=(char)0xffff;\r
+    data[4125]=(char)0xffff;\r
+    data[4126]=(char)0xffff;\r
+    data[4127]=(char)0xfc3f;\r
+    data[4128]=(char)0xffff;\r
+    data[4129]=(char)0x00ff;\r
+    data[4133]=(char)0xffff;\r
+    data[4134]=(char)0xffff;\r
+    data[4135]=(char)0xffff;\r
+    data[4136]=(char)0xffff;\r
+    data[4137]=(char)0xffff;\r
+    data[4138]=(char)0x01ff;\r
+    data[4139]=(char)0xf9ff;\r
+    data[4140]=(char)0x0003;\r
+    data[4141]=(char)0x0003;\r
+    data[4142]=(char)0x001f;\r
+    data[4151]=(char)0x0400;\r
+    data[4152]=(char)0xd740;\r
+    data[4153]=(char)0xffff;\r
+    data[4154]=(char)0xfffb;\r
+    data[4155]=(char)0xffff;\r
+    data[4156]=(char)0x7fff;\r
+    data[4157]=(char)0x547f;\r
+    data[4158]=(char)0x00fd;\r
+\r
+  }\r
+  public static Bits white;\r
+  static void white_f() {\r
+    char[] data = new char[4159];\r
+    white = new Bits(data);\r
+    data[0]=(char)0x3e00;\r
+    data[1]=(char)0xf000;\r
+    data[2]=(char)0x0001;\r
+    data[512]=(char)0x0fff;\r
+    data[514]=(char)0x0300;\r
+    data[768]=(char)0x0001;\r
+    data[4096]=(char)0x3e00;\r
+    data[4097]=(char)0xf000;\r
+    data[4098]=(char)0x0001;\r
+\r
+  }\r
+  public static Bits punct;\r
+  static void punct_f() {\r
+    char[] data = new char[4159];\r
+    punct = new Bits(data);\r
+    data[2]=(char)0xf7ee;\r
+    data[3]=(char)0x8c00;\r
+    data[4]=(char)0x0001;\r
+    data[5]=(char)0xb800;\r
+    data[7]=(char)0x2800;\r
+    data[10]=(char)0x2802;\r
+    data[11]=(char)0x8880;\r
+    data[55]=(char)0x4030;\r
+    data[56]=(char)0x0080;\r
+    data[85]=(char)0xfc00;\r
+    data[88]=(char)0x0200;\r
+    data[91]=(char)0x4000;\r
+    data[92]=(char)0x0009;\r
+    data[95]=(char)0x0018;\r
+    data[96]=(char)0x1000;\r
+    data[97]=(char)0x8800;\r
+    data[102]=(char)0x3c00;\r
+    data[109]=(char)0x0010;\r
+    data[150]=(char)0x0030;\r
+    data[151]=(char)0x0001;\r
+    data[226]=(char)0x8000;\r
+    data[229]=(char)0x0c00;\r
+    data[234]=(char)0x8000;\r
+    data[240]=(char)0xfff0;\r
+    data[241]=(char)0x0007;\r
+    data[243]=(char)0x3c00;\r
+    data[248]=(char)0x0020;\r
+    data[271]=(char)0x0800;\r
+    data[513]=(char)0xffff;\r
+    data[514]=(char)0x00ff;\r
+    data[515]=(char)0xffff;\r
+    data[516]=(char)0x006f;\r
+    data[519]=(char)0x6000;\r
+    data[520]=(char)0x6000;\r
+    data[562]=(char)0x0600;\r
+    data[768]=(char)0xff4e;\r
+    data[769]=(char)0xfff3;\r
+    data[771]=(char)0x0001;\r
+    data[783]=(char)0x0800;\r
+    data[4051]=(char)0xc000;\r
+    data[4067]=(char)0xffff;\r
+    data[4068]=(char)0xfe1f;\r
+    data[4069]=(char)0xfff7;\r
+    data[4070]=(char)0x0d0b;\r
+    data[4080]=(char)0xf7ee;\r
+    data[4081]=(char)0x8c00;\r
+    data[4082]=(char)0x0001;\r
+    data[4083]=(char)0xb800;\r
+    data[4085]=(char)0x2800;\r
+    data[4086]=(char)0x003e;\r
+    data[4098]=(char)0xf7ee;\r
+    data[4099]=(char)0x8c00;\r
+    data[4100]=(char)0x0001;\r
+    data[4101]=(char)0xb800;\r
+    data[4103]=(char)0x2800;\r
+    data[4106]=(char)0x2802;\r
+    data[4107]=(char)0x8880;\r
+    data[4151]=(char)0x4030;\r
+    data[4152]=(char)0x0080;\r
+\r
+  }\r
+}\r