javap/src/main/java/org/apidesign/javap/RuntimeConstants.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 12 Dec 2012 18:18:07 +0100
branchbenchmarks
changeset 311 84c05018e079
parent 144 b06660b614db
permissions -rw-r--r--
Copying the test resources next to built classes and js file. Modifying the test to properly use the new bck2brwsr calling scheme.
     1 /*
     2  * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    25 
    26 
    27 package org.apidesign.javap;
    28 
    29 public interface RuntimeConstants {
    30 
    31     /* Signature Characters */
    32     public static final char   SIGC_VOID                  = 'V';
    33     public static final String SIG_VOID                   = "V";
    34     public static final char   SIGC_BOOLEAN               = 'Z';
    35     public static final String SIG_BOOLEAN                = "Z";
    36     public static final char   SIGC_BYTE                  = 'B';
    37     public static final String SIG_BYTE                   = "B";
    38     public static final char   SIGC_CHAR                  = 'C';
    39     public static final String SIG_CHAR                   = "C";
    40     public static final char   SIGC_SHORT                 = 'S';
    41     public static final String SIG_SHORT                  = "S";
    42     public static final char   SIGC_INT                   = 'I';
    43     public static final String SIG_INT                    = "I";
    44     public static final char   SIGC_LONG                  = 'J';
    45     public static final String SIG_LONG                   = "J";
    46     public static final char   SIGC_FLOAT                 = 'F';
    47     public static final String SIG_FLOAT                  = "F";
    48     public static final char   SIGC_DOUBLE                = 'D';
    49     public static final String SIG_DOUBLE                 = "D";
    50     public static final char   SIGC_ARRAY                 = '[';
    51     public static final String SIG_ARRAY                  = "[";
    52     public static final char   SIGC_CLASS                 = 'L';
    53     public static final String SIG_CLASS                  = "L";
    54     public static final char   SIGC_METHOD                = '(';
    55     public static final String SIG_METHOD                 = "(";
    56     public static final char   SIGC_ENDCLASS              = ';';
    57     public static final String SIG_ENDCLASS               = ";";
    58     public static final char   SIGC_ENDMETHOD             = ')';
    59     public static final String SIG_ENDMETHOD              = ")";
    60     public static final char   SIGC_PACKAGE               = '/';
    61     public static final String SIG_PACKAGE                = "/";
    62 
    63     /* Class File Constants */
    64     public static final int JAVA_MAGIC                   = 0xcafebabe;
    65     public static final int JAVA_VERSION                 = 45;
    66     public static final int JAVA_MINOR_VERSION           = 3;
    67 
    68     /* Constant table */
    69     public static final int CONSTANT_UTF8                = 1;
    70     public static final int CONSTANT_UNICODE             = 2;
    71     public static final int CONSTANT_INTEGER             = 3;
    72     public static final int CONSTANT_FLOAT               = 4;
    73     public static final int CONSTANT_LONG                = 5;
    74     public static final int CONSTANT_DOUBLE              = 6;
    75     public static final int CONSTANT_CLASS               = 7;
    76     public static final int CONSTANT_STRING              = 8;
    77     public static final int CONSTANT_FIELD               = 9;
    78     public static final int CONSTANT_METHOD              = 10;
    79     public static final int CONSTANT_INTERFACEMETHOD     = 11;
    80     public static final int CONSTANT_NAMEANDTYPE         = 12;
    81 
    82     /* Access Flags */
    83     public static final int ACC_PUBLIC                   = 0x00000001;
    84     public static final int ACC_PRIVATE                  = 0x00000002;
    85     public static final int ACC_PROTECTED                = 0x00000004;
    86     public static final int ACC_STATIC                   = 0x00000008;
    87     public static final int ACC_FINAL                    = 0x00000010;
    88     public static final int ACC_SYNCHRONIZED             = 0x00000020;
    89     public static final int ACC_SUPER                        = 0x00000020;
    90     public static final int ACC_VOLATILE                 = 0x00000040;
    91     public static final int ACC_TRANSIENT                = 0x00000080;
    92     public static final int ACC_NATIVE                   = 0x00000100;
    93     public static final int ACC_INTERFACE                = 0x00000200;
    94     public static final int ACC_ABSTRACT                 = 0x00000400;
    95     public static final int ACC_STRICT                   = 0x00000800;
    96     public static final int ACC_EXPLICIT                 = 0x00001000;
    97     public static final int ACC_SYNTHETIC                = 0x00010000; // actually, this is an attribute
    98 
    99     /* Type codes */
   100     public static final int T_CLASS                      = 0x00000002;
   101     public static final int T_BOOLEAN                    = 0x00000004;
   102     public static final int T_CHAR                       = 0x00000005;
   103     public static final int T_FLOAT                      = 0x00000006;
   104     public static final int T_DOUBLE                     = 0x00000007;
   105     public static final int T_BYTE                       = 0x00000008;
   106     public static final int T_SHORT                      = 0x00000009;
   107     public static final int T_INT                        = 0x0000000a;
   108     public static final int T_LONG                       = 0x0000000b;
   109 
   110     /* Type codes for StackMap attribute */
   111     public static final int ITEM_Bogus      =0; // an unknown or uninitialized value
   112     public static final int ITEM_Integer    =1; // a 32-bit integer
   113     public static final int ITEM_Float      =2; // not used
   114     public static final int ITEM_Double     =3; // not used
   115     public static final int ITEM_Long       =4; // a 64-bit integer
   116     public static final int ITEM_Null       =5; // the type of null
   117     public static final int ITEM_InitObject =6; // "this" in constructor
   118     public static final int ITEM_Object     =7; // followed by 2-byte index of class name
   119     public static final int ITEM_NewObject  =8; // followed by 2-byte ref to "new"
   120 
   121     /* Constants used in StackMapTable attribute */
   122     public static final int SAME_FRAME_BOUND                  = 64;
   123     public static final int SAME_LOCALS_1_STACK_ITEM_BOUND    = 128;
   124     public static final int SAME_LOCALS_1_STACK_ITEM_EXTENDED = 247;
   125     public static final int SAME_FRAME_EXTENDED               = 251;
   126     public static final int FULL_FRAME                        = 255;
   127 
   128     /* Opcodes */
   129     public static final int opc_dead                     = -2;
   130     public static final int opc_label                    = -1;
   131     public static final int opc_nop                      = 0;
   132     public static final int opc_aconst_null              = 1;
   133     public static final int opc_iconst_m1                = 2;
   134     public static final int opc_iconst_0                 = 3;
   135     public static final int opc_iconst_1                 = 4;
   136     public static final int opc_iconst_2                 = 5;
   137     public static final int opc_iconst_3                 = 6;
   138     public static final int opc_iconst_4                 = 7;
   139     public static final int opc_iconst_5                 = 8;
   140     public static final int opc_lconst_0                 = 9;
   141     public static final int opc_lconst_1                 = 10;
   142     public static final int opc_fconst_0                 = 11;
   143     public static final int opc_fconst_1                 = 12;
   144     public static final int opc_fconst_2                 = 13;
   145     public static final int opc_dconst_0                 = 14;
   146     public static final int opc_dconst_1                 = 15;
   147     public static final int opc_bipush                   = 16;
   148     public static final int opc_sipush                   = 17;
   149     public static final int opc_ldc                      = 18;
   150     public static final int opc_ldc_w                    = 19;
   151     public static final int opc_ldc2_w                   = 20;
   152     public static final int opc_iload                    = 21;
   153     public static final int opc_lload                    = 22;
   154     public static final int opc_fload                    = 23;
   155     public static final int opc_dload                    = 24;
   156     public static final int opc_aload                    = 25;
   157     public static final int opc_iload_0                  = 26;
   158     public static final int opc_iload_1                  = 27;
   159     public static final int opc_iload_2                  = 28;
   160     public static final int opc_iload_3                  = 29;
   161     public static final int opc_lload_0                  = 30;
   162     public static final int opc_lload_1                  = 31;
   163     public static final int opc_lload_2                  = 32;
   164     public static final int opc_lload_3                  = 33;
   165     public static final int opc_fload_0                  = 34;
   166     public static final int opc_fload_1                  = 35;
   167     public static final int opc_fload_2                  = 36;
   168     public static final int opc_fload_3                  = 37;
   169     public static final int opc_dload_0                  = 38;
   170     public static final int opc_dload_1                  = 39;
   171     public static final int opc_dload_2                  = 40;
   172     public static final int opc_dload_3                  = 41;
   173     public static final int opc_aload_0                  = 42;
   174     public static final int opc_aload_1                  = 43;
   175     public static final int opc_aload_2                  = 44;
   176     public static final int opc_aload_3                  = 45;
   177     public static final int opc_iaload                   = 46;
   178     public static final int opc_laload                   = 47;
   179     public static final int opc_faload                   = 48;
   180     public static final int opc_daload                   = 49;
   181     public static final int opc_aaload                   = 50;
   182     public static final int opc_baload                   = 51;
   183     public static final int opc_caload                   = 52;
   184     public static final int opc_saload                   = 53;
   185     public static final int opc_istore                   = 54;
   186     public static final int opc_lstore                   = 55;
   187     public static final int opc_fstore                   = 56;
   188     public static final int opc_dstore                   = 57;
   189     public static final int opc_astore                   = 58;
   190     public static final int opc_istore_0                 = 59;
   191     public static final int opc_istore_1                 = 60;
   192     public static final int opc_istore_2                 = 61;
   193     public static final int opc_istore_3                 = 62;
   194     public static final int opc_lstore_0                 = 63;
   195     public static final int opc_lstore_1                 = 64;
   196     public static final int opc_lstore_2                 = 65;
   197     public static final int opc_lstore_3                 = 66;
   198     public static final int opc_fstore_0                 = 67;
   199     public static final int opc_fstore_1                 = 68;
   200     public static final int opc_fstore_2                 = 69;
   201     public static final int opc_fstore_3                 = 70;
   202     public static final int opc_dstore_0                 = 71;
   203     public static final int opc_dstore_1                 = 72;
   204     public static final int opc_dstore_2                 = 73;
   205     public static final int opc_dstore_3                 = 74;
   206     public static final int opc_astore_0                 = 75;
   207     public static final int opc_astore_1                 = 76;
   208     public static final int opc_astore_2                 = 77;
   209     public static final int opc_astore_3                 = 78;
   210     public static final int opc_iastore                  = 79;
   211     public static final int opc_lastore                  = 80;
   212     public static final int opc_fastore                  = 81;
   213     public static final int opc_dastore                  = 82;
   214     public static final int opc_aastore                  = 83;
   215     public static final int opc_bastore                  = 84;
   216     public static final int opc_castore                  = 85;
   217     public static final int opc_sastore                  = 86;
   218     public static final int opc_pop                      = 87;
   219     public static final int opc_pop2                     = 88;
   220     public static final int opc_dup                      = 89;
   221     public static final int opc_dup_x1                   = 90;
   222     public static final int opc_dup_x2                   = 91;
   223     public static final int opc_dup2                     = 92;
   224     public static final int opc_dup2_x1                  = 93;
   225     public static final int opc_dup2_x2                  = 94;
   226     public static final int opc_swap                     = 95;
   227     public static final int opc_iadd                     = 96;
   228     public static final int opc_ladd                     = 97;
   229     public static final int opc_fadd                     = 98;
   230     public static final int opc_dadd                     = 99;
   231     public static final int opc_isub                     = 100;
   232     public static final int opc_lsub                     = 101;
   233     public static final int opc_fsub                     = 102;
   234     public static final int opc_dsub                     = 103;
   235     public static final int opc_imul                     = 104;
   236     public static final int opc_lmul                     = 105;
   237     public static final int opc_fmul                     = 106;
   238     public static final int opc_dmul                     = 107;
   239     public static final int opc_idiv                     = 108;
   240     public static final int opc_ldiv                     = 109;
   241     public static final int opc_fdiv                     = 110;
   242     public static final int opc_ddiv                     = 111;
   243     public static final int opc_irem                     = 112;
   244     public static final int opc_lrem                     = 113;
   245     public static final int opc_frem                     = 114;
   246     public static final int opc_drem                     = 115;
   247     public static final int opc_ineg                     = 116;
   248     public static final int opc_lneg                     = 117;
   249     public static final int opc_fneg                     = 118;
   250     public static final int opc_dneg                     = 119;
   251     public static final int opc_ishl                     = 120;
   252     public static final int opc_lshl                     = 121;
   253     public static final int opc_ishr                     = 122;
   254     public static final int opc_lshr                     = 123;
   255     public static final int opc_iushr                    = 124;
   256     public static final int opc_lushr                    = 125;
   257     public static final int opc_iand                     = 126;
   258     public static final int opc_land                     = 127;
   259     public static final int opc_ior                      = 128;
   260     public static final int opc_lor                      = 129;
   261     public static final int opc_ixor                     = 130;
   262     public static final int opc_lxor                     = 131;
   263     public static final int opc_iinc                     = 132;
   264     public static final int opc_i2l                      = 133;
   265     public static final int opc_i2f                      = 134;
   266     public static final int opc_i2d                      = 135;
   267     public static final int opc_l2i                      = 136;
   268     public static final int opc_l2f                      = 137;
   269     public static final int opc_l2d                      = 138;
   270     public static final int opc_f2i                      = 139;
   271     public static final int opc_f2l                      = 140;
   272     public static final int opc_f2d                      = 141;
   273     public static final int opc_d2i                      = 142;
   274     public static final int opc_d2l                      = 143;
   275     public static final int opc_d2f                      = 144;
   276     public static final int opc_i2b                      = 145;
   277     public static final int opc_int2byte                 = 145;
   278     public static final int opc_i2c                      = 146;
   279     public static final int opc_int2char                 = 146;
   280     public static final int opc_i2s                      = 147;
   281     public static final int opc_int2short                = 147;
   282     public static final int opc_lcmp                     = 148;
   283     public static final int opc_fcmpl                    = 149;
   284     public static final int opc_fcmpg                    = 150;
   285     public static final int opc_dcmpl                    = 151;
   286     public static final int opc_dcmpg                    = 152;
   287     public static final int opc_ifeq                     = 153;
   288     public static final int opc_ifne                     = 154;
   289     public static final int opc_iflt                     = 155;
   290     public static final int opc_ifge                     = 156;
   291     public static final int opc_ifgt                     = 157;
   292     public static final int opc_ifle                     = 158;
   293     public static final int opc_if_icmpeq                = 159;
   294     public static final int opc_if_icmpne                = 160;
   295     public static final int opc_if_icmplt                = 161;
   296     public static final int opc_if_icmpge                = 162;
   297     public static final int opc_if_icmpgt                = 163;
   298     public static final int opc_if_icmple                = 164;
   299     public static final int opc_if_acmpeq                = 165;
   300     public static final int opc_if_acmpne                = 166;
   301     public static final int opc_goto                     = 167;
   302     public static final int opc_jsr                      = 168;
   303     public static final int opc_ret                      = 169;
   304     public static final int opc_tableswitch              = 170;
   305     public static final int opc_lookupswitch             = 171;
   306     public static final int opc_ireturn                  = 172;
   307     public static final int opc_lreturn                  = 173;
   308     public static final int opc_freturn                  = 174;
   309     public static final int opc_dreturn                  = 175;
   310     public static final int opc_areturn                  = 176;
   311     public static final int opc_return                   = 177;
   312     public static final int opc_getstatic                = 178;
   313     public static final int opc_putstatic                = 179;
   314     public static final int opc_getfield                 = 180;
   315     public static final int opc_putfield                 = 181;
   316     public static final int opc_invokevirtual            = 182;
   317     public static final int opc_invokenonvirtual         = 183;
   318     public static final int opc_invokespecial            = 183;
   319     public static final int opc_invokestatic             = 184;
   320     public static final int opc_invokeinterface          = 185;
   321 //    public static final int opc_xxxunusedxxx             = 186;
   322     public static final int opc_new                      = 187;
   323     public static final int opc_newarray                 = 188;
   324     public static final int opc_anewarray                = 189;
   325     public static final int opc_arraylength              = 190;
   326     public static final int opc_athrow                   = 191;
   327     public static final int opc_checkcast                = 192;
   328     public static final int opc_instanceof               = 193;
   329     public static final int opc_monitorenter             = 194;
   330     public static final int opc_monitorexit              = 195;
   331     public static final int opc_wide                     = 196;
   332     public static final int opc_multianewarray           = 197;
   333     public static final int opc_ifnull                   = 198;
   334     public static final int opc_ifnonnull                = 199;
   335     public static final int opc_goto_w                   = 200;
   336     public static final int opc_jsr_w                    = 201;
   337         /* Pseudo-instructions */
   338     public static final int opc_bytecode                 = 203;
   339     public static final int opc_try                      = 204;
   340     public static final int opc_endtry                   = 205;
   341     public static final int opc_catch                    = 206;
   342     public static final int opc_var                      = 207;
   343     public static final int opc_endvar                   = 208;
   344     public static final int opc_localsmap                = 209;
   345     public static final int opc_stackmap                 = 210;
   346         /* PicoJava prefixes */
   347     public static final int opc_nonpriv                  = 254;
   348     public static final int opc_priv                     = 255;
   349 
   350         /* Wide instructions */
   351     public static final int opc_iload_w         = (opc_wide<<8)|opc_iload;
   352     public static final int opc_lload_w         = (opc_wide<<8)|opc_lload;
   353     public static final int opc_fload_w         = (opc_wide<<8)|opc_fload;
   354     public static final int opc_dload_w         = (opc_wide<<8)|opc_dload;
   355     public static final int opc_aload_w         = (opc_wide<<8)|opc_aload;
   356     public static final int opc_istore_w        = (opc_wide<<8)|opc_istore;
   357     public static final int opc_lstore_w        = (opc_wide<<8)|opc_lstore;
   358     public static final int opc_fstore_w        = (opc_wide<<8)|opc_fstore;
   359     public static final int opc_dstore_w        = (opc_wide<<8)|opc_dstore;
   360     public static final int opc_astore_w        = (opc_wide<<8)|opc_astore;
   361     public static final int opc_ret_w           = (opc_wide<<8)|opc_ret;
   362     public static final int opc_iinc_w          = (opc_wide<<8)|opc_iinc;
   363 
   364     /* Opcode Names */
   365   public static final String opcNamesTab[] = {
   366         "nop",
   367         "aconst_null",
   368         "iconst_m1",
   369         "iconst_0",
   370         "iconst_1",
   371         "iconst_2",
   372         "iconst_3",
   373         "iconst_4",
   374         "iconst_5",
   375         "lconst_0",
   376         "lconst_1",
   377         "fconst_0",
   378         "fconst_1",
   379         "fconst_2",
   380         "dconst_0",
   381         "dconst_1",
   382         "bipush",
   383         "sipush",
   384         "ldc",
   385         "ldc_w",
   386         "ldc2_w",
   387         "iload",
   388         "lload",
   389         "fload",
   390         "dload",
   391         "aload",
   392         "iload_0",
   393         "iload_1",
   394         "iload_2",
   395         "iload_3",
   396         "lload_0",
   397         "lload_1",
   398         "lload_2",
   399         "lload_3",
   400         "fload_0",
   401         "fload_1",
   402         "fload_2",
   403         "fload_3",
   404         "dload_0",
   405         "dload_1",
   406         "dload_2",
   407         "dload_3",
   408         "aload_0",
   409         "aload_1",
   410         "aload_2",
   411         "aload_3",
   412         "iaload",
   413         "laload",
   414         "faload",
   415         "daload",
   416         "aaload",
   417         "baload",
   418         "caload",
   419         "saload",
   420         "istore",
   421         "lstore",
   422         "fstore",
   423         "dstore",
   424         "astore",
   425         "istore_0",
   426         "istore_1",
   427         "istore_2",
   428         "istore_3",
   429         "lstore_0",
   430         "lstore_1",
   431         "lstore_2",
   432         "lstore_3",
   433         "fstore_0",
   434         "fstore_1",
   435         "fstore_2",
   436         "fstore_3",
   437         "dstore_0",
   438         "dstore_1",
   439         "dstore_2",
   440         "dstore_3",
   441         "astore_0",
   442         "astore_1",
   443         "astore_2",
   444         "astore_3",
   445         "iastore",
   446         "lastore",
   447         "fastore",
   448         "dastore",
   449         "aastore",
   450         "bastore",
   451         "castore",
   452         "sastore",
   453         "pop",
   454         "pop2",
   455         "dup",
   456         "dup_x1",
   457         "dup_x2",
   458         "dup2",
   459         "dup2_x1",
   460         "dup2_x2",
   461         "swap",
   462         "iadd",
   463         "ladd",
   464         "fadd",
   465         "dadd",
   466         "isub",
   467         "lsub",
   468         "fsub",
   469         "dsub",
   470         "imul",
   471         "lmul",
   472         "fmul",
   473         "dmul",
   474         "idiv",
   475         "ldiv",
   476         "fdiv",
   477         "ddiv",
   478         "irem",
   479         "lrem",
   480         "frem",
   481         "drem",
   482         "ineg",
   483         "lneg",
   484         "fneg",
   485         "dneg",
   486         "ishl",
   487         "lshl",
   488         "ishr",
   489         "lshr",
   490         "iushr",
   491         "lushr",
   492         "iand",
   493         "land",
   494         "ior",
   495         "lor",
   496         "ixor",
   497         "lxor",
   498         "iinc",
   499         "i2l",
   500         "i2f",
   501         "i2d",
   502         "l2i",
   503         "l2f",
   504         "l2d",
   505         "f2i",
   506         "f2l",
   507         "f2d",
   508         "d2i",
   509         "d2l",
   510         "d2f",
   511         "i2b",
   512         "i2c",
   513         "i2s",
   514         "lcmp",
   515         "fcmpl",
   516         "fcmpg",
   517         "dcmpl",
   518         "dcmpg",
   519         "ifeq",
   520         "ifne",
   521         "iflt",
   522         "ifge",
   523         "ifgt",
   524         "ifle",
   525         "if_icmpeq",
   526         "if_icmpne",
   527         "if_icmplt",
   528         "if_icmpge",
   529         "if_icmpgt",
   530         "if_icmple",
   531         "if_acmpeq",
   532         "if_acmpne",
   533         "goto",
   534         "jsr",
   535         "ret",
   536         "tableswitch",
   537         "lookupswitch",
   538         "ireturn",
   539         "lreturn",
   540         "freturn",
   541         "dreturn",
   542         "areturn",
   543         "return",
   544         "getstatic",
   545         "putstatic",
   546         "getfield",
   547         "putfield",
   548         "invokevirtual",
   549         "invokespecial", //     was "invokenonvirtual",
   550         "invokestatic",
   551         "invokeinterface",
   552         "bytecode 186", //"xxxunusedxxx",
   553         "new",
   554         "newarray",
   555         "anewarray",
   556         "arraylength",
   557         "athrow",
   558         "checkcast",
   559         "instanceof",
   560         "monitorenter",
   561         "monitorexit",
   562          null, // "wide",
   563         "multianewarray",
   564         "ifnull",
   565         "ifnonnull",
   566         "goto_w",
   567         "jsr_w",
   568         "bytecode 202", // "breakpoint",
   569         "bytecode",
   570         "try",
   571         "endtry",
   572         "catch",
   573         "var",
   574         "endvar",
   575         "locals_map",
   576         "stack_map"
   577   };
   578 
   579     /* Opcode Lengths */
   580   public static final int opcLengthsTab[] = {
   581         1,
   582         1,
   583         1,
   584         1,
   585         1,
   586         1,
   587         1,
   588         1,
   589         1,
   590         1,
   591         1,
   592         1,
   593         1,
   594         1,
   595         1,
   596         1,
   597         2,
   598         3,
   599         2,
   600         3,
   601         3,
   602         2,
   603         2,
   604         2,
   605         2,
   606         2,
   607         1,
   608         1,
   609         1,
   610         1,
   611         1,
   612         1,
   613         1,
   614         1,
   615         1,
   616         1,
   617         1,
   618         1,
   619         1,
   620         1,
   621         1,
   622         1,
   623         1,
   624         1,
   625         1,
   626         1,
   627         1,
   628         1,
   629         1,
   630         1,
   631         1,
   632         1,
   633         1,
   634         1,
   635         2,
   636         2,
   637         2,
   638         2,
   639         2,
   640         1,
   641         1,
   642         1,
   643         1,
   644         1,
   645         1,
   646         1,
   647         1,
   648         1,
   649         1,
   650         1,
   651         1,
   652         1,
   653         1,
   654         1,
   655         1,
   656         1,
   657         1,
   658         1,
   659         1,
   660         1,
   661         1,
   662         1,
   663         1,
   664         1,
   665         1,
   666         1,
   667         1,
   668         1,
   669         1,
   670         1,
   671         1,
   672         1,
   673         1,
   674         1,
   675         1,
   676         1,
   677         1,
   678         1,
   679         1,
   680         1,
   681         1,
   682         1,
   683         1,
   684         1,
   685         1,
   686         1,
   687         1,
   688         1,
   689         1,
   690         1,
   691         1,
   692         1,
   693         1,
   694         1,
   695         1,
   696         1,
   697         1,
   698         1,
   699         1,
   700         1,
   701         1,
   702         1,
   703         1,
   704         1,
   705         1,
   706         1,
   707         1,
   708         1,
   709         1,
   710         1,
   711         1,
   712         1,
   713         3,
   714         1,
   715         1,
   716         1,
   717         1,
   718         1,
   719         1,
   720         1,
   721         1,
   722         1,
   723         1,
   724         1,
   725         1,
   726         1,
   727         1,
   728         1,
   729         1,
   730         1,
   731         1,
   732         1,
   733         1,
   734         3,
   735         3,
   736         3,
   737         3,
   738         3,
   739         3,
   740         3,
   741         3,
   742         3,
   743         3,
   744         3,
   745         3,
   746         3,
   747         3,
   748         3,
   749         3,
   750         2,
   751         99,
   752         99,
   753         1,
   754         1,
   755         1,
   756         1,
   757         1,
   758         1,
   759         3,
   760         3,
   761         3,
   762         3,
   763         3,
   764         3,
   765         3,
   766         5,
   767         0,
   768         3,
   769         2,
   770         3,
   771         1,
   772         1,
   773         3,
   774         3,
   775         1,
   776         1,
   777         0, // wide
   778         4,
   779         3,
   780         3,
   781         5,
   782         5,
   783         1,
   784         1, 0, 0, 0, 0, 0 // pseudo
   785   };
   786 
   787 }