Difference for common/loader.c from version 1.25 to 1.26


version 1.25 version 1.26
Line 1
 
Line 1
 /* A lexical scanner generated by flex */  /* A lexical scanner generated by flex */
   
 /* Scanner skeleton version:  /* Scanner skeleton version:
  * $Header: /cvsroot/crossfire/crossfire/common/loader.c,v 1.25 2002/06/09 07:59:30 mwedel Exp $   * $Header: /cvsroot/crossfire/crossfire/common/loader.c,v 1.26 2002/07/15 04:57:11 mwedel Exp $
  */   */
   
 #define FLEX_SCANNER  #define FLEX_SCANNER
Line 285
 
Line 285
  *yy_cp = '\0'; \   *yy_cp = '\0'; \
  yy_c_buf_p = yy_cp;   yy_c_buf_p = yy_cp;
   
 #define YY_NUM_RULES 261  #define YY_NUM_RULES 266
 #define YY_END_OF_BUFFER 262  #define YY_END_OF_BUFFER 267
 static yyconst short int yy_accept[2309] =  static yyconst short int yy_accept[2352] =
     {   0,      {   0,
       260,  260,    3,    3,    0,    0,  262,  260,  258,  260,        265,  265,    3,    3,    0,    0,  267,  265,  263,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,    3,    3,    3,  261,  261,  260,        265,  265,  265,  265,    3,    3,    3,  266,  266,  265,
       260,  259,  260,  258,  260,  260,  260,  260,  260,  260,        265,  264,  265,  263,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
   
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,    3,    3,    3,    3,    0,  258,  260,  260,  260,        265,  265,  265,    3,    3,    3,    3,    0,  263,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
   
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,   41,   41,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,   42,   42,    3,   40,   40,  260,  260,  260,  260,        265,  265,  265,   42,   42,  265,   43,   43,    3,   41,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,         41,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,   14,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,   30,   30,        265,   14,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,   31,   31,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
   
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
         1,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,    1,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
        32,   32,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,   33,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,         33,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,   39,   39,  260,  260,  260,  260,  260,  260,    3,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,         40,   40,  265,  265,  265,  265,  265,  265,    3,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,   27,   27,  260,  260,   25,   25,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
   
       260,  260,  260,   38,   38,  260,   24,   24,  260,  260,        265,  265,   28,   28,  265,  265,   26,   26,  265,  265,
       260,  260,   36,   36,  260,  260,  260,  260,  260,  260,        265,  265,  265,   39,   39,  265,   25,   25,  265,  265,
       260,  260,  260,  260,  260,  260,  260,   28,   28,  260,        265,  265,   37,   37,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,   29,   29,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,   13,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,   13,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,   29,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
        29,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,   23,         30,   30,  265,  265,  265,  265,  265,  265,  265,  265,
   
        23,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,   26,   26,   99,   99,         24,   24,  265,  265,  265,  265,  265,  265,  265,  265,
       260,    3,  260,  260,  260,  260,  260,   10,   10,  260,        265,  265,  265,  265,  265,  265,  265,   27,   27,   99,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,         99,  265,    3,  265,  265,  265,  265,   10,   10,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  207,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,   22,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
        22,  260,  260,  260,   37,   37,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,   23,   23,  265,  265,  265,   38,   38,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  103,  103,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
   
       260,  260,  260,  260,    5,    5,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  103,  103,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,    5,    5,
       260,   43,   43,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,    7,    7,  260,  260,  260,  260,  260,        265,  265,  265,  265,   44,   44,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,    7,    7,  265,  265,
       260,  260,  260,  260,  260,   46,   46,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,    3,        265,  265,  265,  265,  265,  265,  265,  265,   47,   47,
        58,   58,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,    3,   59,   59,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
   
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,   34,   34,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,   35,   35,  265,  265,
       260,  260,  260,  260,  260,  260,  260,   44,   44,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
        56,   56,  260,  260,  260,   31,   31,   33,   33,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,   45,   45,  265,   57,   57,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,         32,   32,   34,   34,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  128,  128,  260,   19,   19,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
   
       260,  260,  260,  260,   57,   57,  260,  260,  172,  172,        265,  265,  265,  265,  265,  265,  265,  265,  265,  129,
       260,  260,  260,  260,  260,   48,   48,  260,  260,  260,        129,  265,   19,   19,  265,  265,  265,  265,   58,   58,
       260,  260,  260,  260,  124,  124,    3,    2,  260,  260,        265,  265,   22,   22,  265,  265,  265,  265,  265,   49,
       260,  260,  132,  132,  260,  260,  260,  260,  260,  260,         49,  265,  265,  265,  265,  265,  265,  265,  125,  125,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,          3,    2,  265,  265,  265,  133,  133,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  165,  165,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       166,  166,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  170,  170,  171,  171,  265,  265,  265,  265,
       260,  177,  177,  260,   67,   67,   70,   70,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  157,  157,  260,  260,  260,  260,        265,  265,  265,  265,  265,  180,  180,  265,   69,   69,
   
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,         71,   71,  265,  265,  265,  265,  265,  265,  265,  158,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        158,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,    4,    4,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,    4,    4,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,   94,   94,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
        93,   93,  178,  178,   60,   60,  260,  260,  260,  260,        265,   94,   94,  265,  265,  265,  265,  265,  265,  265,
       260,   49,   49,  260,  260,  260,   59,   59,  260,  260,        265,  265,  265,  265,  265,   93,   93,  181,  181,   61,
   
       260,  260,  260,  260,  260,  260,  197,  197,  260,  260,         61,  265,  265,  265,  265,  265,   50,   50,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,   60,   60,  265,  265,  265,  265,  197,  197,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  201,  201,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,   68,   68,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,   89,   89,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  191,  191,  260,  260,  260,  260,  260,        265,  265,  265,  265,   70,   70,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,   16,   16,  260,  260,        265,   89,   89,  265,  265,  265,  265,  265,  265,  265,
       260,  260,   71,   71,  260,    6,    6,   61,   61,   62,        194,  194,  265,  265,  265,  265,  265,  265,  265,  265,
        62,   72,   72,  260,  260,  110,  110,  260,  260,   64,        265,  265,  265,  265,   16,   16,  265,  265,  265,  265,
   
        64,   63,   63,  260,  260,  260,  260,  193,  193,  260,         72,   72,  265,    6,    6,   62,   62,   63,   63,   73,
       260,  260,  260,  260,  260,  107,  107,  260,  260,  260,         73,  265,  265,  112,  112,  265,  265,   65,   65,   64,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,         64,  265,  265,  265,  196,  196,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  107,  107,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,    8,    8,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  163,  163,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,   65,   65,  100,  100,  260,  260,  260,  260,  260,        265,  265,  265,  265,    8,    8,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  168,  168,  265,  265,  265,  265,  265,   67,   67,
       260,  260,   82,   82,  260,  260,  260,  260,  260,  260,        100,  100,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,   50,   50,  260,   87,   87,  260,        265,  265,  265,  265,  265,  265,  265,  265,   82,   82,
   
       162,  162,  260,  260,  260,  260,   92,   92,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,   51,   51,  265,   87,   87,  265,  167,  167,
       260,  260,  260,  260,  260,  260,  260,   75,   75,  260,        265,  265,  265,  265,   92,   92,  265,  265,  265,  265,
       260,  260,  260,  260,  260,    9,  260,  260,  187,  187,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  125,  125,  182,  182,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,   76,   76,  265,  265,  265,
       260,   18,   18,  260,  260,  126,  126,  260,   47,   47,        265,  265,  265,  265,    9,  265,  265,  190,  190,  265,
        35,   35,  260,  260,  260,  260,   98,   98,  260,  260,        126,  126,  185,  185,  265,  265,  265,  265,  265,  265,
       192,  192,  260,  260,  260,  260,  260,  260,  260,  260,        265,   18,   18,  265,  265,  127,  127,  265,   48,   48,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,         36,   36,  265,  265,  265,  265,   98,   98,  265,  195,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        195,  265,  265,  265,  265,  265,  265,  265,  265,  265,
   
       260,  260,  260,  260,  260,  260,  260,  260,  260,  104,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       104,  260,  260,  260,  260,  260,  260,  260,  260,   79,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
        79,  260,  260,   66,   66,  260,  260,  260,   12,   12,        265,  265,  265,  265,  265,  265,  265,  265,  104,  104,
       260,  260,  260,  260,  260,  260,  114,  114,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,   80,   80,
       260,  260,  195,  195,  260,  260,  260,  260,  260,  260,        265,  265,   68,   68,  265,  265,  265,   12,   12,  265,
       260,  260,  260,  260,  260,  260,  260,  164,  164,  109,        265,  265,  265,  265,  115,  115,  265,  265,  265,  265,
       109,  260,   45,   45,  201,  201,  260,  260,  260,  260,        199,  199,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  233,        265,  265,  265,  265,  265,  265,  265,  169,  169,  111,
       233,  260,  260,  260,  260,  260,  260,  260,  260,  260,        111,  265,   46,   46,  205,  205,  265,  265,  265,  265,
       260,   76,   76,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  238,
   
       260,   55,   55,  260,  260,   77,   77,  260,  260,  181,        238,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       181,  260,  260,  260,   15,   15,  260,  260,   73,   73,        265,  265,   77,   77,  265,  265,  265,  265,  265,  265,
        74,   74,  260,  260,  260,  260,  260,  260,  105,  105,        265,  265,   56,   56,  265,  265,   78,   78,  265,  265,
       260,  260,  260,  158,  158,  260,  260,  260,  260,  260,        184,  184,  265,  265,  265,  265,   15,   15,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,         74,   74,   75,   75,  265,  265,  265,  265,  265,  105,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        105,  265,  265,  265,  159,  159,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,   21,   21,  260,   88,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
        88,  260,  260,  102,  102,  260,  260,  260,  260,  108,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       108,   80,   80,  260,   51,   51,   78,   78,  260,   91,        265,  265,  265,  265,  265,  265,  265,   21,   21,  265,
        91,  260,  260,  196,  196,  260,  260,  260,  260,  260,         88,   88,  265,  265,  102,  102,  265,  265,  265,  265,
   
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        110,  110,  265,   52,   52,   79,   79,  265,   91,   91,
       260,  260,  260,  209,  209,  260,  260,  260,  260,  260,        265,  265,  200,  200,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  218,  218,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  239,  239,  260,  260,        265,  265,  265,  265,  214,  214,  265,  265,  265,  265,
       260,  260,  242,  242,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  223,  223,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,   85,   85,  180,  180,        265,  265,  265,  265,  265,  265,  265,  244,  244,  265,
       260,  260,  260,   84,   84,  260,  260,   17,   17,  260,        265,  265,  265,  247,  247,  265,  265,  265,  265,  265,
       161,  161,  260,  111,  111,  260,  260,  260,   11,   11,        265,  265,  265,  265,  265,  265,  265,  265,  265,   85,
       260,  260,  260,  260,  260,  260,  260,  260,   86,   86,         85,  183,  183,  265,  265,  265,   84,   84,  108,  108,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,   17,   17,  265,  166,  166,  265,  265,  265,
   
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,   11,   11,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,   20,   20,  260,   90,        265,   86,   86,  265,  265,  265,  265,  265,  265,  265,
        90,  260,  159,  159,  199,  199,  112,  112,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  118,  118,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,   20,
       174,  174,  260,  260,  260,  260,  260,  202,  202,  260,         20,  265,   90,   90,  265,  160,  160,  203,  203,  113,
       203,  203,  260,  260,  260,  260,  260,  260,  254,  254,        113,  265,  265,  265,  265,  265,  265,  265,  265,  120,
       260,  260,  212,  212,  260,  260,  215,  215,  260,  260,        120,  265,  265,  265,  178,  178,  265,  265,  265,  265,
       260,  260,  221,  221,  260,  260,  260,  260,  260,  260,        265,  265,  206,  206,  265,  208,  208,  265,  265,  265,
       260,  260,  260,  260,  236,  236,  260,  260,  260,  260,        265,  265,  265,  259,  259,  265,  265,  217,  217,  265,
       248,  248,  260,  260,  260,  260,  245,  245,  260,  260,        265,  220,  220,  265,  265,  265,  265,  226,  226,  265,
   
       260,  186,  186,  260,  260,  260,  260,  260,  260,   69,        265,  265,  265,  265,  265,  265,  265,  265,  265,  241,
        69,  189,  189,   83,   83,  260,  260,  260,  260,  260,        241,  265,  265,  265,  265,  253,  253,  265,  265,  265,
       127,  127,  131,  131,  260,   54,   54,  260,  130,  130,        265,  250,  250,  265,  265,  265,  265,  189,  189,  265,
       260,  190,  190,  260,  260,  139,  139,  260,  260,  260,        265,  265,  265,  265,  265,  265,   66,   66,  192,  192,
       137,  137,  260,  260,  260,  260,  260,  260,  147,  147,         83,   83,  265,  265,  265,  265,  265,  128,  128,  132,
       135,  135,  260,  260,  260,  260,  260,  260,  260,  260,        132,  265,   55,   55,  265,  131,  131,  265,  193,  193,
       144,  144,  260,  260,  260,  260,  129,  129,  260,  260,        265,  265,  140,  140,  265,  265,  265,  138,  138,  265,
       171,  171,  260,  260,  260,  260,  260,  260,  176,  176,        265,  265,  265,  265,  265,  148,  148,  136,  136,  265,
       121,  121,  260,  260,  117,  117,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  145,  145,  265,
       260,  206,  206,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  130,  130,  265,  265,  176,  176,  265,
   
       260,  260,  260,  260,  260,  260,  260,  224,  224,  260,        265,  265,  265,  265,  265,  179,  179,  265,  123,  123,
       260,  227,  227,  260,  260,  230,  230,  260,  260,  260,        265,  265,  265,  164,  164,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        211,  211,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  169,        265,  265,  265,  265,  265,  265,  229,  229,  265,  265,
       169,  260,  260,  260,  260,   52,   52,  260,  260,  260,        232,  232,  265,  265,  235,  235,  265,  265,  265,  265,
       260,  155,  155,  260,  151,  151,  260,  260,  150,  150,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  140,  140,  260,  260,  260,  260,  260,  134,  134,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  167,  167,  260,   95,   95,        174,  174,  265,  265,  265,  265,   53,   53,  265,  265,
       260,  260,  260,  194,  194,  106,  106,  260,  260,  260,        265,  265,  156,  156,  265,  152,  152,  265,  265,  151,
       170,  170,  260,  200,  200,  260,  260,  260,  260,  260,        151,  265,  141,  141,  265,  265,  265,  265,  265,  135,
   
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        135,  265,  265,  265,  265,  265,  172,  172,  265,   95,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,         95,  265,  265,  265,  198,  198,  106,  106,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        119,  119,  265,  265,  175,  175,  265,  204,  204,  265,
       251,  251,  260,  260,  123,  123,  260,  173,  173,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  168,  168,  260,  101,  101,  260,   53,   53,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,   97,   97,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  143,  143,  260,  260,   81,        265,  265,  265,  265,  256,  256,  265,  265,  109,  109,
        81,  260,  115,  115,  198,  198,  260,  119,  119,  116,        124,  124,  265,  161,  161,  265,  265,  265,  265,  173,
       116,  120,  120,  260,  260,  260,  260,  260,  260,  260,        173,  265,  101,  101,  265,   54,   54,  265,  265,   97,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,         97,  265,  265,  265,  265,  265,  265,  265,  265,  265,
   
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  144,  144,  265,  265,   81,   81,  265,  117,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        117,  202,  202,  265,  121,  121,  118,  118,  116,  116,
       175,  175,  260,  122,  122,  260,  179,  179,  185,  185,        122,  122,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  149,  149,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  160,  160,  188,  188,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  162,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        162,  265,  265,  163,  163,  265,  182,  182,  188,  188,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  150,  150,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  183,  183,  260,        265,  265,  265,  265,  265,  265,  165,  165,  191,  191,
       113,  113,   96,   96,  260,  260,  260,  260,  142,  142,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
   
       153,  153,  154,  154,  156,  156,  145,  145,  133,  133,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  186,  186,
       260,  260,  260,  260,  260,  260,  234,  234,  260,  260,        265,  114,  114,   96,   96,  265,  265,  265,  265,  143,
       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,        143,  154,  154,  155,  155,  157,  157,  146,  146,  134,
       184,  184,  260,  138,  138,  260,  260,  260,  260,  260,        134,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  260,  210,  210,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       260,  260,  260,  260,  219,  219,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  239,  239,  265,
       260,  260,  260,  260,  235,  235,  260,  260,  260,  240,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       240,  260,  260,  260,  243,  243,  260,  260,  260,  260,        265,  177,  177,  187,  187,  265,  139,  139,  265,  265,
   
       260,  260,  260,  260,  260,  260,  260,  204,  204,  260,        265,  265,  265,  265,  265,  265,  265,  265,  215,  215,
       260,  211,  211,  260,  255,  255,  260,  213,  213,  260,        265,  265,  265,  265,  265,  265,  265,  224,  224,  265,
       216,  216,  220,  220,  260,  222,  222,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  240,  240,  265,
       260,  260,  260,  260,  237,  237,  241,  241,  260,  249,        265,  265,  245,  245,  265,  265,  265,  248,  248,  265,
       249,  244,  244,  260,  246,  246,  260,  260,  260,  260,        265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
       136,  136,  146,  146,  141,  141,  260,  205,  205,  260,        209,  209,  265,  265,  216,  216,  265,  260,  260,  265,
       207,  207,  256,  256,  214,  214,  217,  217,  223,  223,        218,  218,  265,  221,  221,  225,  225,  265,  227,  227,
       260,  225,  225,  260,  228,  228,  260,  231,  231,  238,        265,  265,  265,  265,  265,  265,  265,  242,  242,  246,
       238,  250,  250,  247,  247,  260,  260,  148,  148,  152,        246,  265,  254,  254,  249,  249,  265,  251,  251,  265,
       152,  260,  208,  208,  226,  226,  229,  229,  232,  232,        265,  265,  265,  137,  137,  147,  147,  142,  142,  265,
   
       260,  252,  252,  257,  257,  253,  253,    0        210,  210,  265,  212,  212,  261,  261,  219,  219,  222,
         222,  228,  228,  265,  230,  230,  265,  233,  233,  265,
         236,  236,  243,  243,  255,  255,  252,  252,  265,  265,
         149,  149,  153,  153,  265,  213,  213,  231,  231,  234,
         234,  237,  237,  265,  257,  257,  262,  262,  258,  258,
           0
     } ;      } ;
   
 static yyconst int yy_ec[256] =  static yyconst int yy_ec[256] =
Line 585
 
Line 590
         1,    1,    1          1,    1,    1
     } ;      } ;
   
 static yyconst short int yy_base[2573] =  static yyconst short int yy_base[2618] =
     {   0,      {   0,
         0,    6,   37,   38,   39,   43, 2596,    0, 2597, 2592,          0,    6,   37,   38,   39,   43, 2640,    0, 2641, 2636,
         0,   41,   35,   62,   40,   80,   53,   46,   51,   62,          0,   41,   35,   62,   40,   80,   53,   46,   51,  101,
      2573,   77,   72,   88,   93,   96,   95,  114,  103, 2572,       2617,   77,   72,   75,   83,   98,   74,  119,  101, 2616,
        78,  122,   51, 2590,    0,   90, 2570, 2597,  120,    0,         45,  124,   93, 2634,    0,   74, 2614, 2641,  114,    0,
      2587, 2597,  134,    0, 2587, 2572, 2571, 2563,   77, 2558,       2631, 2641,  139,    0, 2631, 2616, 2615, 2607,  105, 2602,
      2557, 2571, 2560,  119, 2573, 2564, 2558, 2553, 2557, 2545,       2601,  112, 2605, 2615,   82, 2617, 2608, 2602, 2597, 2601,
      2550, 2558, 2561, 2561, 2559, 2547, 2559, 2536, 2545, 2550,       2589, 2594, 2602, 2605, 2605, 2603, 2591, 2603, 2580, 2589,
      2544, 2542, 2555, 2536, 2534, 2558, 2547, 2538,   28, 2550,       2594, 2588, 2586, 2599, 2580, 2578, 2602, 2591, 2582,  116,
      2534, 2529, 2525, 2540, 2542,  128,  122, 2537, 2530,   51,       2594, 2588, 2577, 2572, 2568, 2583, 2585,  121,  126, 2580,
      2542, 2526, 2530,  137, 2531,   90, 2535, 2514, 2521,  140,       2573,  137, 2585, 2569, 2573,  138, 2574,  127, 2578, 2557,
   
       139, 2521, 2533, 2528,  145,  152,  150, 2531, 2511, 2525,       2564,  146,  145, 2564, 2576, 2571,  151,  158,  154, 2574,
      2513,  158, 2516, 2515,  144, 2531,  152,  153, 2530, 2523,       2554, 2568, 2556,  153, 2559, 2558,  149, 2574,   47,  155,
      2528,    0,  171,    0, 2518,  175, 2597, 2526, 2498, 2506,       2573, 2566, 2571,    0,  178,    0, 2561,  180, 2641, 2569,
      2506, 2509, 2501, 2514, 2499, 2499, 2509, 2511, 2492, 2489,       2541, 2549, 2549, 2552, 2544, 2557, 2542, 2542, 2536, 2551,
       106, 2503,  176,  157,  127, 2512, 2501, 2485, 2482,  182,       2528, 2552, 2533, 2530,  170, 2544,  176,  161,  188, 2553,
      2489,  185, 2497,  183, 2497, 2495, 2494, 2475, 2494, 2496,       2542, 2526, 2523,  190, 2530,  182, 2538,  188, 2538, 2536,
      2493, 2499, 2479, 2471, 2496,  184,  198, 2467, 2469, 2483,        187, 2517, 2536, 2538, 2535, 2541, 2521, 2513, 2538,  189,
      2482, 2475, 2476, 2479, 2478,  178, 2463, 2476, 2475,  192,        202, 2519, 2508, 2510, 2524, 2523, 2516, 2517, 2520, 2519,
      2474, 2474, 2457,  221, 2470, 2470, 2474, 2448, 2467, 2452,        192, 2504, 2517, 2516,  217, 2515, 2515, 2498,  225, 2511,
      2462, 2458, 2473, 2447, 2461, 2461, 2452, 2454, 2462, 2443,       2511, 2515, 2489, 2508, 2493, 2503, 2499, 2514, 2488, 2502,
   
      2460, 2434, 2453, 2434, 2461, 2450, 2445,  189, 2452, 2457,       2502, 2493, 2495, 2503, 2484, 2501, 2475, 2494, 2475, 2502,
      2433, 2438, 2448, 2443, 2440, 2441, 2428, 2443, 2422, 2428,       2491, 2486,  200, 2493, 2498, 2474, 2479, 2489, 2484, 2481,
      2430, 2440, 2444, 2422, 2430, 2424, 2440, 2439,    0, 2438,       2482, 2469, 2484, 2463, 2469, 2471, 2481, 2485, 2463, 2471,
      2407,    0, 2436, 2417,    0, 2434, 2423,  194,  199, 2432,       2465, 2481, 2480,    0, 2479, 2448,    0, 2477, 2458,    0,
      2405, 2422, 2424, 2423, 2411,  240, 2396, 2411, 2424, 2411,       2475, 2464,  215, 2459, 2472, 2445, 2462, 2464, 2463, 2457,
      2403, 2421, 2394, 2409, 2412, 2407, 2406, 2415, 2404, 2413,       2450, 2460,  244, 2434, 2449, 2462, 2449, 2441, 2459, 2432,
      2404, 2405, 2404,  215, 2597, 2384, 2408, 2381, 2406, 2385,       2447, 2450, 2445, 2444, 2453, 2442, 2451, 2442, 2443, 2442,
      2385, 2403, 2383, 2378, 2395, 2389, 2375, 2391,    0, 2396,        232, 2641, 2422, 2446, 2419, 2444, 2423, 2423, 2441, 2421,
      2370, 2375, 2393, 2375, 2372, 2366, 2370, 2371, 2381, 2360,       2415, 2415, 2432, 2426, 2412, 2428,    0, 2433, 2407, 2412,
      2368, 2370,  205, 2359, 2362, 2362, 2375, 2362, 2354, 2377,       2430, 2412, 2409, 2403, 2407, 2408, 2418, 2397, 2405, 2407,
   
      2368, 2370, 2351, 2350, 2351, 2350, 2345,  219, 2364,  221,        209, 2396, 2399, 2413, 2398, 2411, 2398, 2390, 2413, 2404,
      2597,  228, 2363, 2344, 2341,  211, 2351, 2358,  229,  222,       2406, 2387, 2386, 2387, 2386, 2381,  237, 2400,  239, 2641,
      2363, 2354, 2348, 2355, 2336, 2353, 2352, 2351, 2355, 2344,        224, 2399, 2380, 2377,  236, 2387, 2394,   80,  229, 2399,
      2353, 2332, 2341, 2326, 2343, 2338,  230, 2333, 2325, 2340,       2390, 2384, 2391, 2372, 2389, 2388, 2387, 2391, 2380, 2389,
         0, 2344, 2334, 2317, 2332, 2315, 2329, 2321, 2337, 2331,       2368, 2377, 2362, 2379, 2374,  192, 2369, 2361, 2376,    0,
      2325, 2310, 2333, 2320, 2325, 2304, 2315, 2318, 2317, 2321,       2380, 2370, 2353, 2368, 2351, 2365, 2357, 2373, 2367, 2361,
      2297,    0, 2324, 2303, 2309, 2316, 2320, 2319, 2294, 2293,       2346, 2369, 2356, 2361, 2340, 2351, 2354, 2353, 2357, 2333,
      2316, 2291, 2289, 2303, 2307, 2311, 2287, 2293, 2302, 2301,          0, 2360, 2339, 2345, 2352, 2356, 2355, 2330, 2329, 2352,
      2282, 2284,  231, 2298, 2285, 2283, 2295, 2280, 2289, 2274,       2327, 2325, 2339, 2348, 2324, 2330, 2339, 2338, 2320, 2318,
      2283, 2277,    0, 2295, 2280, 2268,    0, 2292, 2267, 2282,          0, 2320,  235, 2334, 2321, 2319, 2331, 2316, 2325, 2310,
   
      2275, 2269, 2278,    0, 2286, 2276,    0, 2284, 2258, 2275,       2319, 2313,    0, 2331, 2316, 2304,    0, 2328, 2303, 2318,
      2256, 2275,    0, 2279, 2261, 2277,  239, 2264, 2275, 2265,       2311, 2305, 2314,    0, 2322, 2312,    0, 2320, 2294, 2311,
      2267, 2249, 2271, 2260, 2261, 2254, 2257,    0, 2266, 2245,       2292, 2311,    0, 2315, 2297, 2313,  236, 2300, 2311, 2301,
      2239, 2249, 2248, 2247, 2234, 2235, 2238, 2240, 2233, 2232,       2288, 2302, 2284, 2306, 2295, 2296, 2289, 2292,    0, 2301,
      2244, 2233, 2247,  255, 2251, 2244, 2249, 2248, 2233, 2232,       2280, 2274, 2284, 2283, 2282, 2269, 2270, 2273, 2275, 2268,
      2239, 2244, 2243, 2232,  240, 2597, 2217, 2240, 2218,  245,       2267, 2279, 2268, 2266, 2281,  259, 2285, 2278, 2283, 2282,
      2232, 2212, 2218, 2215, 2205, 2221, 2208, 2223, 2220, 2215,       2267, 2266, 2273, 2278, 2277, 2266,  256, 2641, 2251, 2274,
       250, 2228, 2202, 2212, 2219, 2219, 2198,  263, 2196,    0,       2252,  260, 2266, 2246, 2252, 2249, 2239, 2255, 2242, 2257,
      2221, 2212, 2219, 2200, 2209, 2191, 2187, 2205, 2194, 2193,       2250,  241, 2263, 2237, 2247, 2254, 2254, 2233,  267, 2231,
      2192, 2210, 2191,  270, 2183, 2202, 2196, 2205, 2179,    0,          0, 2256, 2247, 2254, 2235, 2244, 2226, 2222, 2240, 2229,
   
      2203, 2193, 2201, 2174, 2199, 2175, 2188, 2186, 2186, 2194,       2228, 2227, 2245, 2226,  275, 2218, 2237, 2231, 2240, 2214,
      2170, 2172, 2177, 2171, 2164, 2182,    0, 2187,    0, 2186,          0, 2238, 2228, 2236, 2209, 2234, 2210, 2223, 2221, 2221,
      2185, 2172, 2183, 2161, 2167, 2171, 2159,    0, 2178, 2177,       2229, 2205, 2207, 2212, 2206, 2199, 2217,    0, 2222,    0,
       257, 2155, 2154, 2147, 2152, 2148, 2146, 2152, 2148, 2148,       2221, 2220, 2207, 2218, 2196, 2202, 2206,    0, 2214, 2213,
       253, 2150, 2156, 2155, 2145, 2151, 2143, 2156, 2150, 2134,        257, 2191, 2190, 2194, 2182,    0, 2187, 2183, 2181, 2187,
      2139, 2132, 2156, 2155, 2140, 2136, 2138,  281, 2151,    0,       2183, 2183,  254, 2185, 2191, 2190, 2180, 2186, 2178, 2191,
      2150, 2138, 2148, 2147,    0, 2146, 2128, 2119, 2137, 2142,       2185, 2169, 2174, 2167, 2191, 2190, 2175, 2171, 2173,  285,
      2135, 2124, 2128, 2138, 2129, 2116, 2128, 2116, 2114, 2115,       2186,    0, 2185, 2173, 2183, 2182,    0, 2181, 2163, 2174,
      2106, 2110, 2112, 2108, 2108, 2117, 2116,  178, 2118, 2100,       2153, 2171, 2176, 2169, 2158, 2162, 2172, 2163, 2150, 2162,
      2112, 2100, 2120, 2092,    0, 2118, 2117, 2097, 2109, 2106,       2150, 2148, 2149, 2140, 2144, 2146, 2142, 2142, 2151, 2150,
   
      2113, 2112, 2088, 2085,    0, 2109, 2091, 2088, 2096, 2088,       2138,  271, 2151, 2133, 2145, 2133, 2153, 2125,    0, 2151,
      2098, 2097, 2081, 2096, 2086, 2075, 2082, 2072, 2079,  123,       2150, 2130, 2142, 2139, 2146, 2145, 2121, 2118,    0, 2142,
       200,    0,  225,  253,  230,  246,  268,  265,  255,  271,       2124, 2121,  118,  179,  206,  208,  205,  239,  234,  239,
       273,  263,  260,    0,  291,  287,  268,  289,  289,  296,        265,  267,  279,  276,    0,  287,  288,  270,  271,  291,
       267,  272,  288,  303,  287,  308,  292,  296,  287,  290,        285,  274,  290,  291,  282,  279,    0,  305,  302,  286,
       313,  301,  295,  316,  294,    0,  318,  309,  320,  321,        307,  307,  314,  285,  290,  306,  319,  300,  321,  305,
       322,  323,  318,  314,  295,  302,  328,  308,  330,  331,        309,  300,  303,  326,  314,  308,  329,  307,    0,  331,
         0,  334,  325,  316,  337,  319,  339,  322,  311,  321,        322,  333,  334,  335,  336,  331,  327,  308,  315,  341,
       322,  330,  328,  321,  347,  343,  343,  342,  328,  328,        321,  343,  344,    0,  347,  338,  329,  350,  351,  334,
       336,  349,  350,  344,  352,  346,  334,  351,  351,  352,        323,  333,  334,  356,  343,  341,  334,  360,  356,  356,
   
       358,  364,  365,  346,  357,  348,  348,  350,  354,  362,        355,  341,  341,  349,  362,  363,  357,  365,  359,  347,
       354,  361,  366,  373,  368,  380,  383,  384,  387,  358,        364,  364,  365,  371,  377,  378,  359,  370,  361,  361,
       369,  381,    0,  392,  384,  394,  381,  396,  381,  375,        363,  367,  375,  367,  374,  379,  386,  381,  393,  396,
       382,  394,  392,  393,  403,  381,  375,  378,  401,  403,        397,  400,  371,  396,  383,  396,    0,  406,  398,  408,
       399,  384,  405,  387,  407,  408,  415,    0,  416,  407,        395,  410,  395,  389,  396,  408,  406,  407,  417,  395,
         0,  418,  392,  403,  411,    0,  422,    0,  423,  424,        389,  392,  415,  417,  413,  396,  399,  420,  402,  422,
       419,  426,  427,  428,  429,  422,  419,  432,  412,  426,        423,  430,    0,  431,  422,    0,  433,  407,  418,  426,
       435,  436,  427,  421,  422,  421,  441,  442,  418,  421,          0,  437,    0,  438,  439,  434,  441,  442,  443,  444,
       422,  421,  428,  427,  449,  440,  433,  427,  448,  457,        437,  434,  447,  427,  441,  450,  451,  435,  436,  435,
       424,  455,  428,  443,  458,    0,  459,  433,    0,  461,        455,  456,  432,  435,  436,  435,  442,  441,  463,  454,
   
       462,  454,  449,  450,    0,  477,  479,  452,    0,  483,        447,  441,  462,  471,  438,  469,  442,  457,  472,    0,
       474,  462,  487,  488,  489,    0,  490,  484,  481,  493,        473,  447,    0,  475,  476,  468,  463,  464,    0,  491,
       494,  465,  496,  476,    0,  498,  499, 2597,  491,  483,        493,  466,    0,  497,  488,  476,  501,  502,  503,    0,
       503,  496,    0,  505,  486,  486,  491,  492,  500,  481,        504,  498,  495,  507,  508,  479,  510,  490,    0,  512,
       507,  513,  508,  498,  500,  487,  513,  519,  506,  515,        513, 2641,  505,  497,  517,    0,  518,  499,  499,  504,
       523,  500,  525,  496,  527,  520,  507,  503,    0,  532,        505,  523,  514,  495,  521,  527,  522,  512,  514,  501,
         0,  533,  515,  535,  517,  516,  515,  518,  522,  538,        527,  533,  520,  529,  537,  514,  539,  510,  541,  534,
       539,  526,  535,  540,  531,  520,  531,  535,  530,  536,        521,  517,    0,  546,    0,  547,  529,  549,  531,  530,
       541,    0,  556,  557,    0,  558,    0,  559,  560,  538,        529,  532,  536,  552,  553,  540,  549,  554,  545,  534,
       548,  533,  564,  555,    0,  566,  557,  538,  559,  545,        545,  549,  544,  550,  555,    0,  570,  571,    0,  572,
   
       571,  549,  573,  574,  575,  557,  570,  552,  570,  557,          0,  573,  574,  552,  553,  563,  548,  579,  570,    0,
       569,  582,  575,  567,  585,  586,  573,  588,  589,  590,        581,  572,  553,  574,  560,  586,  564,  588,  589,  590,
       566,  592,  593,  594,  595,  580,  587,  598,  582,  600,        572,  585,  567,  585,  585,  573,  585,  598,  591,  583,
       601,  602,  574,  599,  605,  594,    0,  607,  608,  603,        601,  602,  589,  604,  605,  606,  582,  608,  609,  610,
       602,  585,  586,  599,  604,  615,  607,  597,  608,  601,        611,  596,  603,  614,  598,  616,  617,  618,  614,  620,
       601,  613,  605,  617,  616,  607,  617,  615,  609,  613,        609,    0,  622,  623,  618,  617,  600,  601,  614,  619,
       627,  628,  619,  612,  630,  642,    0,  643,  631,  621,        630,  622,  612,  623,  616,  616,  628,  620,  632,  631,
       646,  637,  638,  638,  637,  638,  653,  635,  655,  632,        622,  632,  630,  624,  628,  642,  643,  634,  627,  645,
         0,  657,    0,  658,    0,  659,  643,  661,  662,  663,        657,    0,  658,  646,  636,  661,  652,  653,  653,  652,
       643,    0,  665,  649,  658,  668,    0,  669,  660,  644,        653,  668,  650,  670,  647,    0,  672,    0,  673,    0,
   
       662,  643,  660,  647,  676,  653,    0,  678,  656,  670,        674,  658,  676,  677,  678,  658,    0,  680,  664,  673,
       674,  682,  658,  684,  666,  663,  667,  668,  675,  682,        683,    0,  684,  658,  676,  657,  674,    0,  689,  662,
       686,  691,  672,  694,  676,  699,  700,  701,  692,  703,        691,  668,    0,  693,  671,  685,  689,  697,  673,  699,
       704,  705,  689,  701,  689,  685,  686,  686,  691,  699,        681,  678,  682,  683,  698,  697,  701,  706,  687,  709,
       698,  695,  716,  691,  701,  700,  712,  711,    0,  724,        693,  715,  716,  717,  709,  720,  721,  722,  706,  718,
       725,  726,  701,  723,    0,  729,  721,  722,  731,  733,        706,  702,  703,  703,  708,  716,  715,  712,  733,  708,
       724,  735,  716,    0,  737,  738,  739,  740,  724,  721,        718,  717,  729,  728,    0,  741,  742,  725,  744,  719,
       743,  720,  731,  746,  737,  748,    0,  749,  750,  727,        741,    0,  747,  739,  740,  749,  751,  742,  753,  734,
       752,  753,    0,  754,  745,    0,  756,    0,  757,    0,          0,  755,  756,  757,  758,  742,  739,  761,  739,  739,
       758,    0,  759,  760,  761,    0,  762,  757,  764,    0,        750,  765,  756,  767,    0,  768,  769,  746,  771,  772,
   
       765,    0,  766,  742,  754,  769,  745,    0,  771,  764,          0,  773,  764,    0,  775,    0,  776,    0,  777,    0,
       760,  774,  756,  766,  760,    0,  778,  779,  753,  763,        778,  779,  780,    0,  781,  776,  783,    0,  784,    0,
       768,  762,  772,  771,  772,  768,  782,  772,  784,  786,        785,  772,  787,  763,    0,  789,  782,  778,  792,  774,
       783,  788,  772,  776,  788,  782,  775,  789,  779,  773,        784,  778,    0,  796,  797,  771,  781,  786,  780,  790,
       790,  786,  784,  802,  809,  800,  797,    0,  812,  813,        789,  790,  786,  800,  790,  802,  804,  801,  806,  790,
       789,  815,  799,  796,    0,  818,  819,  820,  807,  812,        794,  806,  800,  793,  807,  797,  791,  808,  804,  802,
       823,    0,  824,    0,  825,  816,  797,  828,  829,  830,        820,  827,  818,  815,    0,  830,  831,  807,  833,  817,
       821,  832,  833,  824,  835,  836,  816,  820,  839,  834,        814,    0,  836,  837,  838,  825,  830,  841,    0,  842,
       841,  829,    0,  843,  839,  827,  818,  824,  829,  840,          0,  843,  834,  815,  846,  847,  838,  849,  850,  841,
       827,  837,  833,  847,    0,  854,  845,    0,  856,  847,        852,  853,  833,  837,  856,  851,  858,  846,    0,  860,
   
         0,  858,  859,  860,  855,  862,    0,  863,  864,  835,        856,  844,  835,  841,  846,  847,  858,  845,  855,  856,
       858,  867,  858,  856,  857,  871,  854,  848,  849,  850,        852,  866,    0,  873,  864,    0,  875,  866,    0,  877,
       878,  859,  856,  882,  855,  884,  873,    0,  886,  888,        878,  879,  874,  881,    0,  882,  883,  854,  877,  886,
       866,  901,  891,  892,  892, 2597,  894,  886,    0,  896,        877,  875,  876,  890,  873,  867,  868,  869,  897,  878,
       878,    0,  898,    0,  899,  900,  891,  902,  903,  894,        875,  901,  874,  903,  892,    0,  905,  887,  909,  886,
       897,    0,  906,  909,  910,    0,  911,  898,    0,  913,        920,  911,  912,  912, 2641,  914,  906,    0,  916,  898,
         0,  915,  916,  917,  918,  889,    0,  920,  921,  913,          0,  918,    0,  919,  920,  911,  922,  923,  924,  915,
         0,  923,  913,  911,  928,  930,  921,  923,  916,  934,        920,    0,  929,  930,  931,    0,  932,  920,    0,  935,
       925,  912,  913,  928,  939,  931,  922,  934,  923,  935,          0,  936,  937,  938,  939,  910,    0,  941,  933,    0,
       934,  927,  922,  931,  935,  942,  928,  942,  929,  933,        945,  933,  931,  949,  950,  941,  943,  936,  954,  945,
   
       925,  946,  943,  952,  935,  936,  933,  943,  942,    0,        932,  933,  948,  959,  951,  942,  954,  943,  955,  954,
       964,  942,  959,  967,  968,  969,  953,  971,  972,    0,        947,  942,  951,  955,  962,  948,  962,  949,  953,  945,
       973,  947,  975,    0,  976,  977,  978,  979,    0,  980,        966,  963,  972,  955,  956,  953,  963,  962,    0,  984,
       981,  964,  983,  984,  976,  986,    0,  987,  978,  969,        962,  979,  987,  988,  989,  973,  991,  992,    0,  993,
       990,  983,    0,  992,  970,  985,  975,  996,  978,  986,        967,  995,    0,  996,  997,  998,  999,    0, 1000,  983,
       999,  980,  984,  993,  982,  994, 1005,    0, 1006,    0,       1002, 1003,  995, 1005,    0, 1006,  997,  988, 1009, 1002,
      1007,  987,    0, 1009,    0, 1010, 1011,  996, 1013,  994,          0, 1011,  989, 1004,  994, 1015,  997, 1005, 1006, 1019,
      1017, 1018, 1019, 1020, 1005, 1027,  996, 1007, 1019,    0,       1000, 1011, 1005, 1014, 1003, 1015, 1026,    0, 1027,    0,
      1030, 1010, 1016, 1034, 1035, 1016, 1038, 1040, 1021, 1044,       1028, 1008,    0, 1030,    0, 1031, 1032, 1017, 1034, 1015,
      1035,    0, 1046, 1047, 1028, 1030, 1031, 1036, 1047, 1054,       1038, 1039, 1040, 1041, 1026, 1048, 1017, 1028, 1040,    0,
   
      1055,    0, 1056, 1058, 1059,    0, 1060, 1061, 1062,    0,       1051, 1031, 1037, 1055, 1056, 1037, 1059, 1061, 1042, 1065,
      1063, 1055, 1059, 1066,    0, 1067, 1061, 1069,    0, 1070,       1056, 1041,    0, 1068, 1069, 1051, 1052, 1053, 1066, 1069,
         0, 1071, 1062, 1073, 1064, 1075, 1076, 1077,    0, 1078,       1076, 1077,    0, 1078, 1080, 1081,    0, 1083, 1084, 1085,
      1070, 1080, 1071,    0, 1082, 1083, 1084, 1061, 1069, 1087,          0, 1086, 1087, 1079, 1083, 1090,    0, 1091, 1085, 1093,
      1088, 1080, 1080, 1067, 1092, 1067, 1069, 1082, 1086, 1078,          0, 1094,    0, 1095, 1086, 1087, 1098, 1099, 1100,    0,
      1073, 1099, 1100, 1077, 1083, 1076, 1082, 1098, 1090, 1094,       1101, 1093, 1103, 1094,    0, 1105, 1106, 1107, 1084, 1092,
      1089, 1110, 1106, 1092, 1103, 1097,    0, 1115, 1116,    0,       1110, 1111, 1103, 1103, 1090, 1115, 1090, 1092, 1105, 1109,
      1117, 1118, 1119,    0, 1120, 1111, 1122, 1123, 1124,    0,       1101, 1096, 1122, 1123, 1100, 1106, 1099, 1105, 1121, 1113,
      1125,    0, 1126, 1117,    0, 1128,    0, 1129, 1130,    0,       1117, 1112, 1133, 1129, 1115, 1126, 1120,    0, 1138, 1139,
      1131, 1115, 1107,    0, 1134, 1119, 1110, 1131, 1112, 1139,          0, 1140, 1141, 1142,    0, 1143, 1134, 1145, 1146, 1147,
   
      1140, 1141, 1142, 1126, 1127, 1145, 1126, 1138, 1148, 1129,          0, 1148, 1139,    0, 1150,    0, 1151, 1152,    0, 1153,
      1150, 1131, 1153,    0, 1154, 1134, 1139, 1157, 1139, 1161,       1137, 1129,    0, 1156, 1141, 1132, 1153, 1134, 1161, 1162,
      1142, 1164, 1145,    0, 1167, 1147, 1152, 1170, 1151, 1173,       1153, 1164, 1165, 1149, 1150, 1151, 1169, 1150, 1162, 1172,
      1174, 1175, 1151, 1151, 1181, 1162,    0, 1184, 1164, 1169,       1153, 1174, 1155, 1177,    0, 1178, 1158, 1163, 1181, 1163,
      1187, 1168,    0, 1190, 1170, 1175, 1193, 1174, 1173, 1197,       1185, 1166, 1188, 1169,    0, 1191, 1171, 1176, 1194, 1175,
      1170, 1176, 1191, 1187, 1183, 1197,    0, 1204,    0, 1205,       1197, 1198, 1199, 1175, 1175, 1205, 1186,    0, 1208, 1188,
      1206, 1207, 1208,    0, 1209, 1210, 1194,    0, 1212, 1196,       1193, 1211, 1192,    0, 1214, 1194, 1199, 1217, 1198, 1197,
         0, 1214, 1192,    0, 1216, 1198, 1218, 1219,    0, 1220,       1198, 1222, 1195, 1201, 1216, 1203, 1213, 1209, 1223,    0,
      1221, 1222, 1214, 1224, 1215, 1226, 1213, 1211,    0, 1229,       1230,    0, 1231, 1232, 1233, 1234,    0, 1235,    0, 1236,
      1230, 1231, 1215, 1233, 1234, 1211, 1226, 1237, 1213, 1239,       1237, 1221,    0, 1239, 1223,    0, 1241, 1219, 1224, 1244,
   
      1217, 1241, 1242, 1230, 1216, 1225, 1227, 1247, 1218, 1241,       1245,    0, 1246, 1247, 1248, 1240, 1250, 1241, 1252, 1239,
      1231, 1251, 1226, 1234, 1254, 1245,    0, 1256, 1257,    0,       1237,    0, 1255, 1256, 1257, 1241, 1259, 1260, 1237, 1252,
      1258, 1259,    0, 1260,    0, 1261,    0, 1262, 1244, 1264,       1263, 1239, 1265, 1243, 1267, 1268, 1256, 1242, 1251, 1253,
      1248, 1243, 1267, 1268, 1246, 1247,    0, 1271, 1272, 1273,       1273, 1244, 1267, 1257, 1277, 1252, 1260, 1280, 1271,    0,
         0, 1274, 1258, 1276, 1277, 1259, 1279,    0, 1280, 1262,       1282, 1283,    0, 1284, 1285,    0, 1286,    0, 1287,    0,
         0, 1282, 1262, 1267, 1285, 1266, 1263, 1263,    0, 1290,       1288, 1270, 1290, 1274, 1269, 1293, 1294, 1272, 1273,    0,
      1270, 1275,    0, 1293, 1273, 1278,    0, 1296, 1276, 1281,       1297, 1298, 1299, 1300,    0, 1301, 1285, 1294, 1304, 1305,
      1274, 1274,    0, 1301, 1281, 1286, 1304, 1285, 1307, 1288,       1287, 1307,    0, 1308, 1290,    0, 1310, 1290, 1295, 1313,
      1310, 1291, 1299, 1302,    0, 1315, 1295, 1300, 1293, 1293,       1294, 1291, 1291,    0, 1318, 1298, 1303,    0, 1321, 1301,
         0, 1320, 1300, 1305, 1298, 1298,    0, 1325, 1305, 1310,       1306,    0, 1324, 1304, 1309, 1302, 1302,    0, 1329, 1309,
   
      1328,    0, 1329, 1330, 1312, 1332, 1317, 1326, 1315,    0,       1314, 1332, 1313, 1335, 1316, 1338, 1319, 1327, 1330,    0,
      1337,    0, 1338,    0, 1339, 1340, 1341, 1332, 1343, 1319,       1343, 1323, 1328, 1321, 1321,    0, 1348, 1328, 1333, 1326,
         0, 1345,    0, 1346, 1347,    0, 1348, 1349,    0, 1350,       1326,    0, 1353, 1333, 1338, 1356, 1357,    0, 1358, 1359,
      1332,    0, 1352, 1336, 1354,    0, 1355, 1356, 1340, 1358,       1341, 1362, 1343, 1347, 1356, 1345,    0, 1367,    0, 1368,
         0, 1359, 1346, 1338, 1362, 1353, 1364, 1351,    0, 1366,          0, 1369, 1370, 1371, 1362, 1373, 1349,    0, 1375,    0,
         0, 1367, 1354, 1359, 1347, 1365, 1372, 1342, 1368, 1375,       1376, 1377,    0, 1378, 1379,    0, 1380, 1362,    0, 1382,
         0, 1376, 1358, 1360, 1379, 1380,    0, 1381, 1382, 1358,       1366, 1384,    0, 1385, 1386, 1370, 1388,    0, 1389, 1376,
         0, 1384, 1385, 1386, 1387, 1388, 1373, 1390,    0, 1391,       1368, 1392, 1383, 1394, 1381,    0, 1396,    0, 1397, 1384,
         0, 1392, 1393, 1394,    0, 1395, 1396, 1397, 1393, 1374,       1389, 1377, 1395, 1402, 1372, 1398, 1405,    0, 1406, 1388,
      1374,    0, 1401, 1381, 1386, 1390, 1393, 1381, 1381, 1383,       1390, 1409, 1410,    0, 1411, 1412, 1388,    0, 1414, 1415,
   
      1383, 1385, 1385, 1398, 1401, 1389, 1389,    0, 1416, 1396,       1416, 1417, 1418, 1403, 1420,    0, 1421, 1422,    0, 1423,
      1401,    0, 1419, 1399, 1404,    0, 1422, 1402, 1407, 1405,       1424, 1425, 1426,    0, 1427, 1428, 1429, 1425, 1406, 1406,
      1412, 1402, 1402, 1415, 1418, 1406, 1406, 1419, 1422, 1410,          0, 1433, 1413, 1418, 1422, 1425, 1413, 1413, 1415, 1415,
      1410, 1437, 1418, 1440, 1441, 1442, 1426, 1444, 1425,    0,       1417, 1417, 1430, 1433, 1421, 1421,    0, 1448, 1428, 1433,
      1446, 1447, 1448, 1449, 1450,    0, 1451, 1452, 1428, 1444,          0, 1451, 1431, 1436,    0, 1454, 1434, 1439, 1437, 1444,
      1455,    0, 1456, 1451,    0, 1458, 1439, 1436,    0, 1461,       1434, 1434, 1447, 1450, 1438, 1438, 1451, 1454, 1442, 1442,
      1462,    0, 1463, 1456, 1440, 1443, 1458, 1451,    0, 1469,       1469, 1450, 1472, 1473, 1474, 1475, 1459, 1460, 1478, 1459,
      1460, 1454, 1472, 1464, 1468,    0, 1475, 1476,    0, 1477,          0, 1480, 1481, 1482, 1483, 1484,    0, 1485, 1486, 1462,
      1478, 1479, 1480,    0, 1481,    0, 1482, 1483, 1484, 1485,       1478, 1489,    0, 1490, 1485,    0, 1492, 1473, 1470,    0,
         0, 1486, 1487,    0, 1488, 1465, 1476, 1479, 1467, 1467,       1495, 1496,    0, 1497, 1490, 1474, 1477, 1492, 1485,    0,
   
      1474, 1481, 1482, 1485, 1484, 1487, 1486, 1489, 1482, 1489,       1503, 1494, 1488, 1506, 1498, 1502,    0, 1509, 1510,    0,
      1490, 1493, 1481, 1481, 1483, 1483, 1485, 1485, 1493, 1494,       1511, 1512, 1513, 1514,    0, 1515,    0, 1516, 1517, 1518,
      1500, 1503, 1496, 1503, 1504, 1507, 1500, 1507, 1508, 1511,          0, 1519, 1520, 1521,    0, 1522, 1523,    0, 1524, 1501,
         0, 1524, 1504, 1509,    0, 1527, 1528,    0, 1529, 1530,       1512, 1515, 1503, 1503, 1510, 1517, 1518, 1521, 1520, 1523,
      1531, 1513,    0, 1533, 1534,    0, 1535, 1536,    0, 1537,       1522, 1525, 1518, 1525, 1526, 1529, 1517, 1517, 1519, 1519,
      1538, 1539,    0, 1540, 1516, 1523, 1522, 1544, 1531, 1546,       1521, 1521, 1529, 1530, 1536, 1539, 1532, 1539, 1540, 1543,
      1547, 1548, 1549, 1550, 1551,    0, 1552, 1543, 1542,    0,       1536, 1543, 1544, 1547,    0, 1560, 1540, 1545,    0, 1563,
      1555, 1556,    0, 1557,    0, 1558, 1559,    0, 1560,    0,          0, 1564, 1565,    0, 1566, 1550, 1568, 1569, 1551,    0,
      1561,    0, 1562, 1555, 1544, 1551, 1552, 1555, 1549, 1550,       1571, 1572,    0, 1573, 1574,    0, 1575, 1576, 1577,    0,
      1550, 1557, 1552, 1559, 1554, 1561, 1557, 1558, 1558, 1565,       1578, 1554, 1561, 1560, 1582, 1569, 1584, 1585, 1586, 1587,
   
      1566, 1569, 1568, 1571, 1570, 1573, 1562, 1587, 1568, 1575,       1588, 1589,    0, 1590, 1581, 1580,    0, 1593, 1594,    0,
      1571, 1572, 1572, 1579, 1575, 1576, 1576, 1583, 1573, 1573,       1595,    0, 1596, 1597,    0, 1598,    0, 1599,    0, 1600,
         0, 1600, 1601,    0, 1602, 1603,    0, 1604,    0, 1605,          0, 1601, 1594, 1583, 1590, 1591, 1594, 1588, 1589, 1589,
      1606, 1607, 1594, 1609, 1600,    0, 1611, 1587, 1613, 1614,       1596, 1591, 1598, 1593, 1600, 1596, 1597, 1597, 1604, 1605,
      1615, 1616, 1617, 1618, 1613, 1606,    0, 1621,    0, 1622,       1608, 1607, 1610, 1609, 1612, 1601, 1626, 1607, 1614, 1610,
      1600, 1605, 1606, 1606, 1613, 1604, 1629, 1611, 1612, 1613,       1611, 1611, 1618, 1614, 1615, 1615, 1622, 1612, 1612,    0,
      1614, 1615, 1616, 1612, 1637, 1619, 1620, 1620, 1627, 1622,       1639, 1640, 1641,    0, 1642, 1643,    0, 1644,    0, 1645,
      1629, 1624, 1631, 1646, 1647, 1629, 1630, 1626, 1651, 1633,       1646, 1647, 1634, 1649, 1640,    0, 1651, 1627, 1653, 1654,
      1634, 1630, 1655, 1637, 1638, 1644, 1647,    0, 1660, 1661,       1655, 1656, 1657, 1658, 1653, 1646,    0, 1661,    0, 1662,
         0, 1662,    0, 1663, 1644, 1665, 1649, 1637,    0, 1668,       1640, 1645, 1646, 1646, 1653, 1644, 1669, 1651, 1652, 1653,
   
         0, 1669,    0, 1670,    0, 1671,    0, 1672,    0, 1673,       1654, 1655, 1656, 1652, 1677, 1659, 1660, 1660, 1667, 1662,
      1665, 1667, 1662, 1653, 1678, 1660, 1661, 1681, 1682, 1659,       1669, 1664, 1671, 1686, 1687, 1669, 1670, 1666, 1691, 1673,
      1684, 1661, 1686, 1663, 1688, 1689, 1690, 1667, 1692, 1674,       1674, 1670, 1695, 1677, 1678, 1684, 1687, 1700,    0, 1701,
      1675, 1676, 1677, 1678, 1679, 1699,    0, 1700, 1677, 1702,       1702,    0, 1703,    0, 1704, 1685, 1706, 1690, 1678,    0,
      1703, 1704, 1681, 1706, 1707, 1708, 1685, 1710, 1691, 1698,       1709,    0, 1710,    0, 1711,    0, 1712,    0, 1713,    0,
         0, 1713, 1695,    0, 1715, 1699, 1717, 1718, 1719, 1699,       1714, 1706, 1708, 1703, 1694, 1719, 1701, 1702, 1722, 1723,
      1721, 1722, 1699, 1724, 1725,    0, 1726, 1727, 1728, 1729,       1700, 1725, 1702, 1727, 1704, 1729, 1730, 1731, 1708, 1733,
      1730, 1731, 1732, 1733,    0, 1734, 1735, 1736, 1713, 1738,       1715, 1716, 1717, 1718, 1719, 1720, 1740,    0, 1741, 1718,
      1715, 1740, 1717, 1742,    0, 1743, 1744, 1745, 1746,    0,       1743, 1744, 1745, 1722, 1747, 1748, 1749, 1726, 1751, 1732,
      1747, 1748, 1749, 1750,    0, 1751, 1752, 1753, 1735, 1736,       1739,    0, 1754,    0, 1755, 1737,    0, 1757, 1741, 1759,
   
      1756, 1757, 1758, 1759, 1760, 1736, 1762,    0, 1763, 1764,       1760, 1761, 1741, 1763, 1764, 1741, 1766, 1767,    0, 1768,
      1765,    0, 1766, 1767,    0, 1768, 1769,    0, 1770, 1771,       1769, 1770, 1771, 1772, 1773, 1774, 1775,    0, 1776, 1777,
         0, 1772,    0, 1773, 1774,    0, 1775, 1776, 1777, 1778,       1778, 1755, 1780, 1757, 1782, 1759, 1784,    0, 1785, 1786,
      1779, 1780, 1781, 1782,    0, 1783,    0, 1784, 1785,    0,       1787, 1788,    0, 1789, 1790, 1791, 1792,    0, 1793, 1794,
      1786,    0, 1787, 1788,    0, 1789, 1766, 1791, 1792, 1793,       1795, 1777, 1778, 1798, 1799, 1800, 1801, 1802, 1778, 1804,
         0, 1794,    0, 1795,    0, 1796, 1797,    0, 1798, 1799,          0, 1805, 1806, 1807,    0, 1808, 1809,    0, 1810, 1811,
         0, 1800,    0, 1801,    0, 1802,    0, 1803,    0, 1804,          0, 1812, 1813,    0, 1814,    0, 1815, 1816,    0, 1817,
      1805,    0, 1806, 1807,    0, 1808, 1809,    0, 1810,    0,       1818, 1819, 1820, 1821, 1822, 1823, 1824,    0, 1825,    0,
      1811,    0, 1812,    0, 1813, 1814, 1815,    0, 1816,    0,       1826, 1827,    0, 1828,    0, 1829, 1830,    0, 1831, 1808,
      1817, 1818,    0, 1819,    0, 1820,    0, 1821,    0, 1822,       1833, 1834, 1835,    0, 1836,    0, 1837,    0, 1838, 1839,
   
      1823,    0, 1824,    0, 1825,    0, 1826, 2597, 1828, 1830,          0, 1840, 1841,    0, 1842,    0, 1843,    0, 1844,    0,
      1832, 1834, 1835, 1837, 1838, 1839, 1840, 1841, 1842, 1843,       1845,    0, 1846, 1847,    0, 1848, 1849,    0, 1850, 1851,
      1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853,          0, 1852,    0, 1853,    0, 1854,    0, 1855, 1856, 1857,
      1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863,          0, 1858,    0, 1859, 1860,    0, 1861,    0, 1862,    0,
      1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873,       1863,    0, 1864, 1865,    0, 1866,    0, 1867,    0, 1868,
      1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883,       2641, 1870, 1872, 1874, 1876, 1877, 1879, 1880, 1881, 1882,
      1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893,       1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892,
      1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903,       1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902,
      1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,       1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912,
      1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924,       1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922,
   
      1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934,       1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932,
      1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944,       1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942,
      1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954,       1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952,
      1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964,       1953, 1954, 1955, 1956, 1957, 1959, 1960, 1961, 1962, 1963,
      1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974,       1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973,
      1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984,       1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983,
      1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,       1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993,
      1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,       1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
      2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,       2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
      2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024,       2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
   
      2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034,       2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033,
      2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044,       2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043,
      2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054,       2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053,
      2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064,       2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063,
      2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074,       2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073,
      2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084,       2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083,
      2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094,       2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093,
      2095, 2096       2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103,
        2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113,
        2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123,
   
        2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133,
        2134, 2135, 2136, 2137, 2138, 2139, 2140
     } ;      } ;
   
 static yyconst short int yy_def[2573] =  static yyconst short int yy_def[2618] =
     {   0,      {   0,
      2309, 2308, 2310, 2310, 2311, 2311, 2308, 2312, 2308, 2313,       2352, 2351, 2353, 2353, 2354, 2354, 2351, 2355, 2351, 2356,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2314, 2314, 2314, 2308, 2308, 2312,       2355, 2355, 2355, 2355, 2357, 2357, 2357, 2351, 2351, 2355,
      2313, 2308, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2356, 2351, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
   
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2315, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2316, 2314, 2314, 2314, 2314, 2308, 2308, 2317, 2312, 2312,       2358, 2355, 2359, 2357, 2357, 2357, 2357, 2351, 2351, 2360,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2318, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2361, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
   
      2312, 2312, 2312, 2312, 2319, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2362,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2320, 2312, 2312, 2312, 2312, 2312, 2315, 2315,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2363, 2355, 2355,
      2312, 2316, 2316, 2314, 2317, 2317, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2358, 2358, 2355, 2359, 2359, 2357, 2360,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2321, 2312,       2360, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2322, 2312, 2312, 2312, 2312, 2312, 2323, 2312, 2324,       2355, 2355, 2355, 2355, 2355, 2364, 2355, 2355, 2365, 2355,
      2312, 2312, 2312, 2312, 2308, 2312, 2325, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2366, 2355, 2367, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2318, 2318,       2355, 2351, 2355, 2368, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2326, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2361, 2361, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2369, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
   
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2308, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2351,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2327, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2370, 2355, 2355,
      2319, 2319, 2312, 2312, 2312, 2312, 2312, 2312, 2328, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2362,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2362, 2355, 2355, 2355, 2355, 2355, 2355, 2371, 2355, 2355,
      2312, 2320, 2320, 2312, 2312, 2312, 2329, 2330, 2312, 2314,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2331, 2312, 2312, 2312, 2312,       2363, 2363, 2355, 2355, 2355, 2372, 2373, 2355, 2357, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2374, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2321, 2321, 2312, 2312, 2322, 2322, 2312, 2312,       2375, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
   
      2312, 2312, 2312, 2323, 2323, 2312, 2324, 2324, 2312, 2312,       2355, 2355, 2364, 2364, 2355, 2355, 2365, 2365, 2355, 2355,
      2312, 2312, 2325, 2325, 2312, 2332, 2312, 2312, 2333, 2312,       2355, 2355, 2355, 2366, 2366, 2355, 2367, 2367, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2326, 2326, 2312,       2355, 2355, 2368, 2368, 2355, 2376, 2355, 2355, 2377, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2369, 2369,
      2312, 2312, 2312, 2312, 2312, 2312, 2334, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2308, 2312, 2335, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2378, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2351, 2355, 2379,
      2312, 2336, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2327,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2327, 2312, 2337, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2380, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2328,       2370, 2370, 2355, 2381, 2355, 2355, 2355, 2355, 2355, 2355,
   
      2328, 2312, 2312, 2312, 2338, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2329, 2329, 2330, 2330,       2371, 2371, 2355, 2355, 2355, 2382, 2355, 2355, 2355, 2355,
      2312, 2314, 2339, 2312, 2312, 2312, 2312, 2331, 2331, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2372, 2372, 2373,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2373, 2355, 2357, 2383, 2355, 2355, 2355, 2374, 2374, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2375, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2332,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2332, 2312, 2312, 2312, 2333, 2333, 2312, 2312, 2312, 2340,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2376, 2376, 2355, 2355, 2355, 2377, 2377, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2384, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2341, 2312, 2334, 2334, 2342, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
   
      2343, 2344, 2312, 2312, 2335, 2335, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2385, 2355, 2378, 2378,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2386, 2355, 2355, 2355, 2387, 2388, 2355, 2355, 2379, 2379,
      2312, 2336, 2336, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2337, 2337, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2380, 2380, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2345, 2312, 2346, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2381, 2381, 2355, 2355,
      2347, 2312, 2312, 2348, 2312, 2338, 2338, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2389, 2355, 2390, 2355,
      2312, 2349, 2312, 2312, 2312, 2312, 2312, 2312, 2350, 2314,       2355, 2355, 2355, 2391, 2355, 2355, 2392, 2355, 2382, 2382,
      2339, 2339, 2312, 2312, 2312, 2312, 2351, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2393, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2394, 2357, 2383, 2383, 2355, 2355, 2355, 2395, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
   
      2312, 2352, 2353, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2354, 2312, 2355, 2356, 2312,       2355, 2355, 2355, 2355, 2396, 2397, 2355, 2355, 2355, 2355,
      2312, 2312, 2340, 2340, 2312, 2312, 2312, 2357, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2398, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2399, 2400, 2355, 2355, 2355, 2355, 2384, 2384, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2341, 2341, 2312,       2355, 2401, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2342, 2342, 2312, 2312, 2312, 2343, 2343, 2344, 2344, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2385, 2385, 2355, 2386, 2386, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2358, 2312, 2312, 2312,       2387, 2387, 2388, 2388, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2359, 2312, 2312, 2312, 2345, 2345, 2312, 2346, 2346,       2402, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
   
      2312, 2312, 2312, 2312, 2347, 2347, 2312, 2312, 2348, 2348,       2355, 2355, 2355, 2355, 2355, 2403, 2355, 2355, 2355, 2389,
      2312, 2312, 2360, 2361, 2362, 2349, 2349, 2312, 2312, 2312,       2389, 2355, 2390, 2390, 2355, 2355, 2355, 2355, 2391, 2391,
      2312, 2312, 2363, 2312, 2350, 2350, 2314, 2308, 2312, 2312,       2355, 2355, 2392, 2392, 2355, 2355, 2404, 2405, 2406, 2393,
      2364, 2312, 2351, 2351, 2312, 2312, 2312, 2312, 2312, 2312,       2393, 2355, 2355, 2355, 2355, 2355, 2407, 2355, 2394, 2394,
      2312, 2365, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2357, 2351, 2355, 2355, 2408, 2395, 2395, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2352, 2352,       2355, 2409, 2355, 2355, 2355, 2410, 2355, 2355, 2355, 2355,
      2353, 2353, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2396, 2396, 2397, 2397, 2355, 2355, 2355, 2355,
      2312, 2354, 2354, 2366, 2355, 2355, 2356, 2356, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2367, 2312, 2357, 2357, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2398, 2398, 2411, 2399, 2399,
   
      2312, 2312, 2368, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2400, 2400, 2355, 2355, 2355, 2355, 2355, 2412, 2355, 2401,
      2312, 2312, 2312, 2312, 2369, 2312, 2312, 2312, 2312, 2370,       2401, 2355, 2355, 2355, 2355, 2355, 2355, 2413, 2355, 2355,
      2312, 2371, 2372, 2373, 2374, 2312, 2312, 2375, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2376, 2377, 2312, 2312, 2312, 2312, 2358, 2358, 2378, 2312,       2414, 2355, 2355, 2355, 2355, 2415, 2355, 2416, 2417, 2418,
      2312, 2312, 2312, 2312, 2312, 2379, 2312, 2312, 2312, 2312,       2419, 2355, 2355, 2420, 2355, 2355, 2421, 2422, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2402, 2402, 2423, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2359, 2359, 2312, 2312,       2424, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2380, 2312, 2312, 2312, 2312, 2312, 2381, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2360, 2360, 2361, 2361, 2362, 2362, 2312, 2312, 2382, 2383,       2355, 2403, 2403, 2355, 2355, 2425, 2355, 2355, 2355, 2355,
      2312, 2363, 2363, 2312, 2312, 2312, 2364, 2364, 2312, 2312,       2355, 2426, 2355, 2355, 2355, 2404, 2404, 2405, 2405, 2406,
   
      2312, 2312, 2312, 2312, 2312, 2312, 2365, 2365, 2312, 2312,       2406, 2355, 2355, 2427, 2428, 2355, 2407, 2407, 2355, 2355,
      2312, 2312, 2312, 2384, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2408, 2408, 2355, 2355, 2355, 2355, 2409, 2409, 2355,
      2312, 2385, 2312, 2386, 2312, 2387, 2312, 2312, 2312, 2312,       2355, 2355, 2410, 2410, 2355, 2355, 2355, 2355, 2355, 2429,
      2388, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2430, 2355, 2431,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2366, 2366,       2355, 2432, 2355, 2355, 2355, 2355, 2433, 2355, 2355, 2355,
      2389, 2312, 2312, 2312, 2367, 2367, 2312, 2312, 2390, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2391, 2312, 2368, 2368, 2392, 2393, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2411, 2411, 2434, 2355, 2355, 2355,
      2312, 2312, 2312, 2394, 2312, 2312, 2369, 2369, 2395, 2312,       2355, 2412, 2412, 2355, 2355, 2435, 2355, 2355, 2436, 2355,
      2396, 2397, 2370, 2370, 2312, 2371, 2371, 2372, 2372, 2373,       2413, 2413, 2437, 2438, 2355, 2355, 2355, 2355, 2355, 2355,
      2373, 2374, 2374, 2312, 2312, 2375, 2375, 2312, 2398, 2376,       2355, 2439, 2355, 2355, 2414, 2414, 2440, 2355, 2441, 2442,
   
      2376, 2377, 2377, 2312, 2312, 2399, 2312, 2378, 2378, 2312,       2415, 2415, 2355, 2416, 2416, 2417, 2417, 2418, 2418, 2419,
      2312, 2312, 2312, 2312, 2312, 2379, 2379, 2312, 2312, 2312,       2419, 2355, 2355, 2420, 2420, 2355, 2443, 2421, 2421, 2422,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2422, 2355, 2444, 2355, 2423, 2423, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2424, 2424, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2400, 2312, 2312, 2380, 2380, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2381, 2381, 2312, 2401, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2402, 2382, 2382, 2383, 2383, 2312, 2312, 2312, 2403, 2312,       2355, 2445, 2355, 2355, 2425, 2425, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2404, 2312, 2312, 2312, 2312,       2355, 2426, 2426, 2355, 2446, 2355, 2355, 2447, 2427, 2427,
      2405, 2312, 2384, 2384, 2312, 2312, 2312, 2312, 2312, 2312,       2428, 2428, 2355, 2355, 2355, 2448, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2385, 2385, 2312, 2386, 2386, 2312,       2355, 2449, 2355, 2355, 2355, 2355, 2450, 2355, 2429, 2429,
   
      2387, 2387, 2406, 2407, 2312, 2408, 2388, 2388, 2409, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2430, 2430, 2355, 2431, 2431, 2355, 2432, 2432,
      2410, 2312, 2312, 2312, 2312, 2312, 2312, 2389, 2389, 2411,       2451, 2452, 2355, 2453, 2433, 2433, 2454, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2390, 2308, 2412, 2312, 2391, 2391,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2455, 2355,
      2312, 2392, 2392, 2393, 2393, 2413, 2312, 2312, 2414, 2312,       2355, 2355, 2355, 2355, 2355, 2434, 2434, 2355, 2456, 2355,
      2312, 2394, 2394, 2312, 2415, 2395, 2395, 2312, 2396, 2396,       2355, 2355, 2355, 2435, 2351, 2457, 2355, 2436, 2436, 2355,
      2397, 2397, 2312, 2416, 2417, 2312, 2398, 2398, 2312, 2312,       2437, 2437, 2438, 2438, 2458, 2355, 2355, 2459, 2355, 2355,
      2399, 2399, 2312, 2312, 2312, 2418, 2312, 2312, 2312, 2419,       2355, 2439, 2439, 2355, 2460, 2440, 2440, 2355, 2441, 2441,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2442, 2442, 2355, 2461, 2462, 2355, 2443, 2443, 2355, 2444,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2444, 2355, 2355, 2355, 2463, 2355, 2355, 2355, 2464, 2355,
   
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2400,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2400, 2312, 2312, 2420, 2312, 2421, 2312, 2312, 2422, 2401,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2401, 2312, 2312, 2402, 2402, 2312, 2312, 2423, 2403, 2403,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2445, 2445,
      2424, 2312, 2425, 2426, 2312, 2427, 2404, 2404, 2312, 2312,       2355, 2355, 2465, 2355, 2466, 2355, 2355, 2467, 2446, 2446,
      2428, 2312, 2405, 2405, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2447, 2447, 2355, 2355, 2468, 2448, 2448, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2406, 2406, 2407,       2469, 2470, 2355, 2471, 2449, 2449, 2355, 2355, 2472, 2355,
      2407, 2312, 2408, 2408, 2409, 2409, 2312, 2312, 2429, 2312,       2450, 2450, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2430, 2312, 2312, 2312, 2312, 2312, 2410,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2451, 2451, 2452,
      2410, 2312, 2312, 2312, 2431, 2312, 2312, 2432, 2312, 2312,       2452, 2355, 2453, 2453, 2454, 2454, 2355, 2355, 2473, 2355,
      2312, 2411, 2411, 2312, 2312, 2312, 2312, 2312, 2312, 2433,       2355, 2355, 2355, 2474, 2355, 2355, 2355, 2355, 2355, 2455,
   
      2434, 2412, 2412, 2312, 2312, 2413, 2413, 2312, 2435, 2414,       2455, 2355, 2355, 2355, 2475, 2355, 2355, 2476, 2355, 2355,
      2414, 2312, 2312, 2436, 2415, 2415, 2312, 2437, 2416, 2416,       2355, 2355, 2456, 2456, 2355, 2355, 2355, 2355, 2355, 2355,
      2417, 2417, 2312, 2438, 2312, 2312, 2312, 2439, 2418, 2418,       2477, 2478, 2457, 2457, 2355, 2355, 2458, 2458, 2355, 2479,
      2312, 2312, 2312, 2419, 2419, 2312, 2312, 2312, 2312, 2440,       2459, 2459, 2480, 2355, 2355, 2481, 2460, 2460, 2355, 2482,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2461, 2461, 2462, 2462, 2355, 2355, 2355, 2355, 2483, 2463,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2463, 2355, 2355, 2355, 2464, 2464, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2420, 2420, 2441, 2421,       2484, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2421, 2312, 2442, 2422, 2422, 2312, 2443, 2444, 2445, 2423,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2423, 2424, 2424, 2312, 2425, 2425, 2426, 2426, 2312, 2427,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2465, 2465, 2485,
      2427, 2312, 2312, 2428, 2428, 2312, 2312, 2312, 2312, 2446,       2466, 2466, 2355, 2486, 2467, 2467, 2355, 2487, 2488, 2489,
   
      2312, 2312, 2447, 2312, 2312, 2312, 2312, 2312, 2448, 2312,       2468, 2468, 2355, 2469, 2469, 2470, 2470, 2355, 2471, 2471,
      2449, 2312, 2312, 2429, 2429, 2312, 2312, 2450, 2312, 2451,       2355, 2355, 2472, 2472, 2355, 2355, 2355, 2355, 2490, 2355,
      2312, 2452, 2312, 2430, 2430, 2312, 2312, 2453, 2312, 2312,       2355, 2355, 2491, 2355, 2355, 2355, 2355, 2355, 2355, 2492,
      2312, 2312, 2312, 2312, 2454, 2312, 2431, 2431, 2312, 2312,       2355, 2493, 2355, 2355, 2473, 2473, 2355, 2355, 2494, 2355,
      2455, 2312, 2432, 2432, 2312, 2312, 2456, 2312, 2312, 2457,       2495, 2355, 2496, 2355, 2474, 2474, 2355, 2355, 2497, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2433, 2433, 2434, 2434,       2355, 2355, 2355, 2355, 2355, 2498, 2355, 2475, 2475, 2355,
      2458, 2459, 2460, 2435, 2435, 2312, 2312, 2436, 2436, 2312,       2355, 2499, 2355, 2476, 2476, 2355, 2355, 2500, 2355, 2355,
      2437, 2437, 2312, 2438, 2438, 2312, 2461, 2462, 2439, 2439,       2355, 2501, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2477,
      2312, 2463, 2312, 2464, 2312, 2465, 2312, 2312, 2440, 2440,       2477, 2478, 2478, 2502, 2503, 2504, 2479, 2479, 2480, 2480,
      2466, 2312, 2312, 2312, 2467, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2481, 2481, 2355, 2482, 2482, 2355, 2355, 2505,
   
      2312, 2468, 2469, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2506, 2483, 2483, 2355, 2507, 2355, 2508, 2355, 2509, 2355,
      2312, 2470, 2312, 2312, 2312, 2312, 2471, 2471, 2472, 2473,       2355, 2484, 2484, 2510, 2355, 2355, 2355, 2511, 2355, 2355,
      2473, 2312, 2474, 2474, 2475, 2475, 2476, 2476, 2312, 2477,       2355, 2355, 2355, 2355, 2512, 2513, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2446, 2446, 2478, 2479,       2355, 2355, 2355, 2355, 2514, 2355, 2355, 2355, 2355, 2515,
      2447, 2447, 2312, 2312, 2480, 2312, 2312, 2448, 2448, 2312,       2515, 2516, 2517, 2517, 2355, 2487, 2487, 2488, 2488, 2489,
      2449, 2449, 2312, 2312, 2481, 2312, 2312, 2312, 2450, 2450,       2489, 2355, 2518, 2355, 2355, 2355, 2355, 2355, 2355, 2490,
      2312, 2312, 2451, 2451, 2312, 2312, 2452, 2452, 2312, 2312,       2490, 2519, 2355, 2520, 2491, 2491, 2355, 2355, 2355, 2521,
      2312, 2312, 2453, 2453, 2312, 2312, 2482, 2312, 2483, 2312,       2355, 2355, 2492, 2492, 2355, 2493, 2493, 2355, 2355, 2522,
      2484, 2312, 2312, 2312, 2485, 2485, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2494, 2494, 2355, 2355, 2495, 2495, 2355,
      2455, 2455, 2312, 2312, 2312, 2312, 2456, 2456, 2312, 2312,       2355, 2496, 2496, 2355, 2355, 2355, 2355, 2497, 2497, 2355,
   
      2312, 2457, 2457, 2312, 2312, 2312, 2312, 2312, 2312, 2458,       2355, 2523, 2355, 2524, 2355, 2525, 2355, 2355, 2355, 2526,
      2458, 2459, 2459, 2460, 2460, 2486, 2312, 2312, 2312, 2312,       2526, 2355, 2355, 2355, 2355, 2499, 2499, 2355, 2355, 2355,
      2461, 2461, 2462, 2462, 2487, 2463, 2463, 2312, 2464, 2464,       2355, 2500, 2500, 2355, 2355, 2355, 2355, 2501, 2501, 2355,
      2312, 2465, 2465, 2312, 2312, 2466, 2466, 2488, 2312, 2489,       2355, 2355, 2355, 2355, 2355, 2355, 2502, 2502, 2503, 2503,
      2467, 2467, 2312, 2312, 2490, 2312, 2491, 2312, 2468, 2468,       2504, 2504, 2527, 2355, 2355, 2355, 2355, 2505, 2505, 2506,
      2469, 2469, 2312, 2312, 2312, 2312, 2492, 2312, 2312, 2312,       2506, 2528, 2507, 2507, 2355, 2508, 2508, 2355, 2509, 2509,
      2470, 2470, 2312, 2312, 2493, 2312, 2472, 2472, 2494, 2312,       2355, 2355, 2510, 2510, 2529, 2355, 2530, 2511, 2511, 2355,
      2477, 2477, 2312, 2312, 2495, 2496, 2312, 2312, 2478, 2478,       2355, 2531, 2355, 2532, 2355, 2512, 2512, 2513, 2513, 2355,
      2479, 2479, 2312, 2497, 2480, 2480, 2312, 2498, 2312, 2312,       2355, 2355, 2355, 2533, 2355, 2355, 2355, 2514, 2514, 2355,
      2312, 2481, 2481, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2534, 2355, 2516, 2516, 2535, 2355, 2518, 2518, 2355,
   
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2482, 2482, 2312,       2355, 2536, 2537, 2355, 2355, 2519, 2519, 2538, 2520, 2520,
      2312, 2483, 2483, 2312, 2312, 2484, 2484, 2312, 2312, 2312,       2355, 2355, 2539, 2521, 2521, 2355, 2540, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2522, 2522, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2499, 2312, 2500, 2312, 2501, 2312, 2312, 2312, 2486,       2355, 2355, 2355, 2355, 2355, 2355, 2523, 2523, 2355, 2355,
      2486, 2502, 2312, 2503, 2312, 2487, 2487, 2504, 2312, 2312,       2524, 2524, 2355, 2355, 2525, 2525, 2355, 2355, 2355, 2355,
      2505, 2488, 2488, 2312, 2489, 2489, 2312, 2312, 2490, 2490,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2491, 2491, 2312, 2312, 2312, 2312, 2312, 2492, 2492,       2541, 2355, 2542, 2543, 2355, 2544, 2355, 2355, 2355, 2355,
      2312, 2312, 2506, 2312, 2312, 2493, 2493, 2507, 2494, 2494,       2527, 2527, 2545, 2355, 2546, 2355, 2528, 2528, 2547, 2355,
      2312, 2508, 2509, 2495, 2495, 2496, 2496, 2312, 2510, 2511,       2355, 2548, 2529, 2529, 2355, 2530, 2530, 2355, 2355, 2531,
      2497, 2497, 2512, 2498, 2498, 2312, 2312, 2312, 2312, 2312,       2531, 2355, 2532, 2532, 2355, 2355, 2355, 2355, 2355, 2533,
   
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2533, 2355, 2355, 2549, 2355, 2355, 2534, 2534, 2550, 2535,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2535, 2355, 2551, 2552, 2536, 2536, 2537, 2537, 2355, 2553,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2538, 2538, 2554, 2555, 2539, 2539, 2556, 2540, 2540, 2355,
      2499, 2499, 2312, 2312, 2500, 2500, 2513, 2501, 2501, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2514, 2312, 2502, 2502, 2515, 2503, 2503, 2516, 2504, 2504,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2505, 2505, 2312, 2312, 2312, 2517, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2506, 2506, 2312, 2312, 2507,       2355, 2355, 2355, 2355, 2541, 2541, 2355, 2355, 2542, 2542,
      2507, 2518, 2508, 2508, 2509, 2509, 2519, 2510, 2510, 2511,       2543, 2543, 2557, 2544, 2544, 2355, 2355, 2558, 2355, 2545,
      2511, 2512, 2512, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2545, 2559, 2546, 2546, 2560, 2547, 2547, 2355, 2355, 2548,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2548, 2355, 2355, 2355, 2561, 2355, 2355, 2355, 2355, 2355,
   
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2549, 2549, 2355, 2355, 2550, 2550, 2562, 2551,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2551, 2552, 2552, 2563, 2553, 2553, 2554, 2554, 2555, 2555,
      2513, 2513, 2520, 2514, 2514, 2312, 2515, 2515, 2516, 2516,       2556, 2556, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2521, 2522, 2312, 2312, 2312, 2517, 2517, 2312, 2523, 2524,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2525, 2526, 2527, 2528, 2312, 2312, 2518, 2518, 2519, 2519,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2557,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,       2557, 2355, 2564, 2558, 2558, 2355, 2559, 2559, 2560, 2560,
      2312, 2312, 2312, 2312, 2529, 2312, 2312, 2312, 2312, 2312,       2565, 2566, 2355, 2355, 2355, 2561, 2561, 2355, 2567, 2568,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2520, 2520, 2530,       2569, 2570, 2571, 2572, 2355, 2355, 2562, 2562, 2563, 2563,
      2521, 2521, 2522, 2522, 2312, 2531, 2312, 2312, 2523, 2523,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
   
      2524, 2524, 2525, 2525, 2526, 2526, 2527, 2527, 2528, 2528,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2532, 2312,       2355, 2355, 2355, 2355, 2573, 2355, 2355, 2355, 2355, 2355,
      2312, 2312, 2312, 2312, 2312, 2312, 2533, 2312, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2574, 2564, 2564,
      2312, 2312, 2312, 2312, 2312, 2534, 2529, 2529, 2312, 2312,       2575, 2565, 2565, 2566, 2566, 2355, 2576, 2355, 2355, 2567,
      2312, 2535, 2312, 2312, 2312, 2536, 2312, 2312, 2312, 2312,       2567, 2568, 2568, 2569, 2569, 2570, 2570, 2571, 2571, 2572,
      2530, 2530, 2312, 2531, 2531, 2312, 2312, 2312, 2312, 2312,       2572, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2577,
      2312, 2537, 2312, 2312, 2538, 2532, 2532, 2312, 2539, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2355, 2578, 2355, 2355,
      2540, 2312, 2541, 2542, 2533, 2533, 2312, 2543, 2312, 2312,       2355, 2355, 2355, 2355, 2355, 2355, 2579, 2573, 2573, 2355,
      2312, 2312, 2312, 2312, 2534, 2534, 2312, 2544, 2545, 2535,       2355, 2355, 2580, 2355, 2355, 2355, 2581, 2355, 2355, 2355,
      2535, 2312, 2546, 2547, 2536, 2536, 2312, 2548, 2312, 2312,       2355, 2574, 2574, 2575, 2575, 2355, 2576, 2576, 2355, 2355,
   
      2312, 2312, 2549, 2550, 2551, 2312, 2552, 2537, 2537, 2312,       2355, 2355, 2355, 2355, 2582, 2355, 2355, 2583, 2577, 2577,
      2553, 2538, 2538, 2554, 2539, 2539, 2555, 2540, 2540, 2556,       2355, 2584, 2355, 2585, 2355, 2586, 2587, 2578, 2578, 2355,
      2541, 2541, 2542, 2542, 2557, 2543, 2543, 2312, 2558, 2312,       2588, 2355, 2355, 2355, 2355, 2355, 2355, 2579, 2579, 2355,
      2559, 2312, 2560, 2561, 2544, 2544, 2545, 2545, 2562, 2546,       2589, 2590, 2580, 2580, 2355, 2591, 2592, 2581, 2581, 2355,
      2546, 2547, 2547, 2563, 2548, 2548, 2312, 2312, 2564, 2565,       2593, 2355, 2355, 2355, 2355, 2594, 2595, 2596, 2355, 2597,
      2549, 2549, 2550, 2550, 2551, 2551, 2312, 2552, 2552, 2566,       2582, 2582, 2355, 2598, 2583, 2583, 2599, 2584, 2584, 2600,
      2553, 2553, 2554, 2554, 2555, 2555, 2556, 2556, 2557, 2557,       2585, 2585, 2601, 2586, 2586, 2587, 2587, 2602, 2588, 2588,
      2567, 2558, 2558, 2568, 2559, 2559, 2569, 2560, 2560, 2561,       2355, 2603, 2355, 2604, 2355, 2605, 2606, 2589, 2589, 2590,
      2561, 2562, 2562, 2563, 2563, 2312, 2570, 2564, 2564, 2565,       2590, 2607, 2591, 2591, 2592, 2592, 2608, 2593, 2593, 2355,
      2565, 2571, 2566, 2566, 2567, 2567, 2568, 2568, 2569, 2569,       2355, 2609, 2610, 2594, 2594, 2595, 2595, 2596, 2596, 2355,
   
      2572, 2570, 2570, 2571, 2571, 2572, 2572,    0, 2308, 2308,       2597, 2597, 2611, 2598, 2598, 2599, 2599, 2600, 2600, 2601,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2601, 2602, 2602, 2612, 2603, 2603, 2613, 2604, 2604, 2614,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2605, 2605, 2606, 2606, 2607, 2607, 2608, 2608, 2355, 2615,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2609, 2609, 2610, 2610, 2616, 2611, 2611, 2612, 2612, 2613,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2613, 2614, 2614, 2617, 2615, 2615, 2616, 2616, 2617, 2617,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,          0, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
   
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
   
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
      2308, 2308       2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
        2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
        2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
   
        2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
        2351, 2351, 2351, 2351, 2351, 2351, 2351
     } ;      } ;
   
 static yyconst short int yy_nxt[2631] =  static yyconst short int yy_nxt[2675] =
     {   0,      {   0,
      2308,   43,    9,   10,   44,   11,    8,    8,    9,   10,       2351,   43,    9,   10,   44,   11,    8,    8,    9,   10,
         8,   11,    8,   12,   13,   14,   15,   16,   17,   18,          8,   11,    8,   12,   13,   14,   15,   16,   17,   18,
        19,   20,    8,   21,   22,   23,   24,   25,   26,    8,         19,   20,    8,   21,   22,   23,   24,   25,   26,    8,
        27,   28,   29,   30,   31,   32,   33,   34,    8,    9,         27,   28,   29,   30,   31,   32,   33,   34,    8,    9,
         9,    9,   36,   36,   39,    9,   52,   59,   39,   37,          9,    9,   36,   36,   39,    9,   52,   60,   39,   37,
        45,   60,  119,   53,  165,   61,  166,   71,   74,   46,         45,   61,  115,   53,  229,   62,   54,   72,   75,   46,
        67,   47,  182,   48,   72,   49,   75,   50,   51,   54,         68,   47,  230,   48,   73,   49,   76,   50,   51,   55,
        73,   68,   77,   76,   69,  120,   55,   70,  183,   86,         74,   69,  116,   77,   70,  125,   56,   71,  126,   88,
        56,   78,   79,   57,   82,  113,  132,   80,   83,   58,         57,  102,   91,   58,   84,  103,   92,  479,   85,   59,
        62,  123,   84,   87,  124,   89,  133,   88,   63,   90,         63,   95,   86,   89,  121,  480,   93,   90,   64,   94,
   
        64,   93,  100,   96,   85,  114,  101,  249,   65,   91,         65,  104,  142,   96,   87,   98,  143,  144,   66,   97,
        66,   97,   92,   94,  108,  190,  191,   98,  109,   95,         67,   78,  110,   99,  134,  128,  111,  122,  129,  100,
        99,  126,  102,  103,  127,  104,  250,  110,  258,  115,         79,   80,  101,  138,  135,  112,   81,   82,  105,  779,
       775,  116,  105,  117,  111,   43,  106,  118,   44,  138,        106,  117,  113,  118,  178,  119,  139,  107,  179,  120,
       107,  173,  177,  139,  140,  174,  178,  259,  187,  195,         43,  108,  169,   44,  170,  109,  182,  180,  187,  192,
       179,  197,  202,  205,  175,  188,  203,  208,  176,  224,        183,  181,  195,  196,  184,  200,  193,  202,  207,  210,
       196,  209,  221,  206,  198,  215,  204,  225,  216,  222,        220,  213,  208,  221,  188,  214,  201,  226,  222,  211,
       207,  226,  123,  217,  210,  124,  126,  252,  227,  127,        203,  256,  209,  231,  227,  223,  212,  259,  215,  125,
       218,  256,  257,  264,  265,  228,  267,  742,  253,  270,        232,  128,  126,  274,  129,  263,  264,  233,  260,  265,
       284,  304,  305,  310,  311,  285,  254,  743,  271,  286,        257,  271,  272,  281,  277,  292,  261,  780,  282,  500,
   
       372,  373,  255,  306,  268,  287,  288,  289,  290,  345,        293,  275,  262,  278,  294,  313,  314,  501,  266,  295,
       291,  776,  292,  346,  374,  347,  264,  265,  463,  439,        296,  297,  298,  781,  299,  782,  300,  315,  319,  320,
       455,  456,  310,  311,  293,  294,  623,  295,  315,  458,        354,  381,  382,  450,  355,  470,  356,  783,  301,  302,
       375,  316,  440,  317,  459,  464,  467,  489,  536,  470,        471,  303,  324,  271,  272,  325,  451,  326,  467,  468,
       318,  455,  456,  319,  468,  490,  320,  382,  471,  383,        319,  320,  548,  475,  327,  784,  481,  328,  574,  785,
       384,  562,  608,  469,  777,  385,  778,  386,  537,  563,        329,  392,  633,  393,  394,  482,  575,  467,  468,  395,
       609,  620,  387,  678,  388,  389,  589,  390,  590,  591,        476,  396,  549,  690,  786,  634,  397,  622,  398,  399,
       629,  646,  779,  630,  621,  780,  647,  689,  690,  781,        603,  400,  604,  605,  642,  623,  659,  643,  702,  703,
       592,  782,  783,  679,  784,  785,  786,  631,  707,  708,        757,  660,  787,  691,  606,  788,  789,  790,  636,  791,
       709,  710,  635,  787,  789,  790,  791,  792,  793,  711,        758,  644,  720,  721,  722,  723,  792,  793,  794,  795,
   
       794,  795,  788,  712,  797,  713,  714,  715,  798,  800,        796,  797,  798,  724,  799,  800,  648,  725,  801,  726,
       801,  802,  803,  804,  806,  807,  808,  810,  811,  657,        727,  728,  803,  804,  805,  806,  807,  802,  808,  809,
       812,  813,  814,  815,  817,  818,  819,  821,  822,  823,        811,  812,  814,  815,  816,  817,  818,  820,  821,  822,
       824,  826,  827,  828,  820,  672,  829,  830,  831,  832,        824,  825,  670,  826,  827,  828,  829,  831,  832,  833,
       834,  835,  836,  837,  838,  839,  840,  841,  842,  843,        835,  836,  837,  838,  840,  841,  842,  834,  685,  843,
       844,  845,  846,  847,  848,  849,  850,  851,  852,  853,        844,  845,  847,  848,  849,  850,  851,  852,  853,  854,
       854,  855,  856,  857,  858,  860,  862,  863,  864,  865,        855,  856,  857,  858,  859,  860,  861,  862,  863,  864,
       866,  868,  869,  871,  867,  873,  874,  875,  870,  878,        865,  866,  867,  868,  869,  870,  871,  872,  874,  876,
       876,  883,  879,  880,  884,  886,  872,  877,  888,  889,        877,  878,  879,  880,  882,  883,  885,  881,  887,  888,
       890,  891,  881,  724,  892,  893,  894,  896,  897,  898,        889,  884,  892,  890,  897,  893,  894,  898,  900,  886,
   
       899,  900,  901,  902,  903,  904,  905,  906,  907,  908,        891,  902,  903,  904,  905,  895,  906,  738,  907,  908,
       909,  910,  911,  912,  913,  914,  915,  749,  916,  752,        909,  911,  912,  913,  914,  915,  916,  917,  918,  919,
       917,  918,  919,  757,  759,  920,  921,  922,  923,  924,        920,  921,  922,  923,  924,  925,  926,  927,  928,  929,
       925,  926,  927,  928,  929,  930,  931,  932,  933,  934,        930,  931,  764,  932,  767,  933,  934,  935,  772,  774,
       935,  936,  938,  939,  940,  941,  942,  943,  944,  945,        936,  937,  938,  939,  940,  941,  942,  943,  944,  945,
       946,  947,  948,  949,  950,  966,  968,  969,  970,  971,        946,  947,  948,  949,  950,  951,  953,  954,  955,  956,
       797,  972,  800,  951,  952,  953,  954,  955,  956,  957,        957,  958,  959,  960,  961,  962,  963,  964,  965,  981,
       958,  959,  960,  973,  974,  975,  961,  976,  806,  962,        983,  984,  985,  986,  811,  987,  814,  966,  967,  968,
       977,  978,  963,  964,  810,  979,  965,  980,  982,  984,        969,  970,  971,  972,  973,  974,  975,  988,  989,  990,
       986,  817,  987,  988,  989,  990,  991,  993,  994,  826,        976,  991,  820,  977,  992,  993,  978,  979,  824,  994,
   
       827,  828,  995,  996,  998,  999,  834, 1000, 1001, 1002,        980,  995,  997,  999, 1001,  831, 1002, 1003, 1004, 1005,
      1003, 1004, 1005, 1006, 1008, 1009, 1010, 1011, 1012, 1013,       1006, 1008, 1009,  840,  841,  842, 1010, 1011, 1013,  847,
      1014, 1015, 1016, 1017, 1022, 1023, 1024, 1025, 1026, 1018,       1014, 1015, 1016, 1017, 1019, 1020, 1021, 1022, 1024, 1025,
      1027, 1028, 1029,  860,  862, 1030, 1031, 1032, 1033, 1019,       1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1038, 1039,
      1020, 1034, 1035, 1036, 1021, 1037, 1038, 1039, 1040, 1041,       1040, 1041, 1042, 1034, 1043, 1044, 1045,  874,  876, 1046,
      1042, 1043, 1044, 1045, 1046, 1047, 1048,  883, 1050,  886,       1047, 1048, 1049, 1035, 1036, 1050, 1051, 1052, 1037, 1053,
       888, 1051, 1052, 1053, 1054, 1056, 1057,  896, 1058, 1059,       1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
      1060, 1061, 1062, 1063, 1065, 1066, 1067, 1068, 1069, 1070,       1064,  897, 1066,  900,  902, 1067, 1068, 1069, 1070, 1071,
      1071, 1072, 1073, 1074, 1075, 1076, 1078, 1079, 1080, 1081,       1073, 1074,  911, 1075, 1076, 1077, 1078, 1079, 1080, 1082,
      1082, 1084, 1085, 1087, 1089, 1091, 1093, 1094, 1095, 1097,       1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092,
   
      1098, 1099, 1101, 1103, 1104, 1105, 1106, 1107,  938, 1109,       1093, 1094, 1096, 1097, 1098, 1099, 1100, 1102, 1103, 1105,
      1110, 1111, 1112, 1113, 1114, 1115, 1117, 1118, 1119, 1120,       1107, 1109, 1111, 1112, 1113, 1115, 1116, 1117, 1119, 1121,
      1121, 1123, 1124, 1125, 1126, 1131, 1122, 1129, 1132, 1134,       1122, 1123, 1124,  953, 1126, 1127, 1128, 1129, 1130, 1131,
      1136, 1127, 1133, 1137, 1138, 1139, 1135, 1142, 1128, 1143,       1132, 1134, 1135, 1136, 1137, 1138, 1140, 1141, 1142, 1143,
      1130, 1144, 1140, 1145,  968, 1146, 1147, 1149, 1150, 1141,       1148, 1139, 1146, 1149, 1151, 1153, 1144, 1150, 1154, 1155,
      1151, 1152, 1153, 1154, 1156, 1157, 1158, 1159,  982,  984,       1156, 1152, 1159, 1145, 1160, 1147, 1161, 1157, 1162,  983,
       986, 1160, 1161, 1163, 1165, 1166,  993, 1167, 1168, 1169,       1163, 1164, 1166, 1167, 1158, 1168, 1169, 1170, 1171, 1173,
       998, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1008,       1174, 1175, 1176,  997,  999, 1001, 1177, 1178, 1180, 1182,
      1178, 1179, 1180, 1181, 1182, 1184, 1185, 1186, 1187, 1188,       1183, 1008, 1184, 1185, 1186, 1013, 1187, 1188, 1189, 1190,
      1189, 1191, 1196, 1193, 1197, 1199, 1190, 1194, 1200, 1192,       1019, 1191, 1192, 1193, 1024, 1194, 1195, 1196, 1197, 1198,
   
      1202, 1203, 1204, 1205, 1206, 1208, 1209, 1210, 1211, 1212,       1200, 1201, 1202, 1203, 1204, 1205, 1208, 1214, 1211, 1215,
      1213, 1214, 1215, 1216, 1217, 1219, 1220, 1221, 1223, 1224,       1217, 1209, 1212, 1206, 1210, 1218, 1220, 1221, 1222, 1207,
      1218, 1225, 1222, 1226, 1227, 1050, 1229, 1230, 1231, 1232,       1223, 1224, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233,
      1056, 1233, 1234, 1236, 1237, 1238, 1240, 1241, 1065, 1243,       1234, 1235, 1237, 1238, 1239, 1241, 1242, 1236, 1243, 1240,
      1245, 1246, 1247, 1248, 1249, 1250, 1251, 1253, 1254, 1255,       1244, 1245, 1066, 1247, 1248, 1249, 1250, 1251, 1073, 1252,
      1078, 1257, 1258, 1260, 1262, 1084, 1263, 1087, 1089, 1091,       1253, 1255, 1256, 1257, 1259, 1260, 1082, 1262, 1264, 1265,
      1093, 1264, 1265, 1097, 1266, 1268, 1101, 1103, 1269, 1270,       1266, 1267, 1268, 1269, 1270, 1271, 1273, 1274, 1275, 1096,
      1272, 1273, 1109, 1274, 1275, 1276, 1277, 1278, 1279, 1117,       1277, 1278, 1280, 1282, 1102, 1283, 1105, 1107, 1109, 1111,
      1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289,       1284, 1285, 1115, 1286, 1288, 1119, 1121, 1289, 1291, 1292,
      1290, 1293, 1291, 1295, 1296, 1297, 1298, 1299, 1300, 1292,       1126, 1293, 1294, 1295, 1296, 1297, 1298, 1134, 1299, 1300,
   
      1301, 1302, 1303, 1304, 1305, 1306, 1294, 1307, 1308, 1309,       1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1312,
      1311, 1312, 1313, 1149, 1314, 1315, 1316, 1317, 1318, 1156,       1310, 1314, 1315, 1316, 1317, 1318, 1319, 1311, 1320, 1321,
      1319, 1321, 1322, 1323, 1325, 1163, 1165, 1326, 1327, 1328,       1322, 1323, 1324, 1325, 1313, 1326, 1327, 1328, 1330, 1331,
      1330, 1331, 1332, 1333, 1334, 1335, 1336, 1338, 1339, 1340,       1332, 1166, 1333, 1334, 1335, 1336, 1337, 1173, 1338, 1340,
      1341, 1342, 1344, 1345, 1184, 1346, 1347, 1348, 1349, 1350,       1341, 1342, 1344, 1180, 1182, 1345, 1346, 1347, 1349, 1350,
      1351, 1352, 1353, 1354, 1355, 1196, 1356, 1199, 1357, 1202,       1351, 1352, 1353, 1354, 1356, 1357, 1358, 1359, 1360, 1362,
      1359, 1361, 1362, 1364, 1208, 1366, 1367, 1368, 1369, 1371,       1363, 1200, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371,
      1372, 1373, 1374, 1370, 1376, 1377, 1378, 1375, 1379, 1381,       1372, 1373, 1374, 1375, 1214, 1376, 1217, 1377, 1220, 1379,
      1382, 1383, 1384, 1385, 1387, 1388, 1391, 1229, 1386, 1393,       1381, 1382, 1384, 1226, 1386, 1387, 1388, 1389, 1391, 1392,
      1389, 1394, 1400, 1401, 1236, 1403, 1404, 1240, 1405, 1243,       1393, 1394, 1390, 1396, 1397, 1398, 1395, 1399, 1401, 1402,
   
      1245, 1407, 1408, 1409, 1411, 1412, 1413, 1253, 1390, 1395,       1403, 1404, 1405, 1407, 1408, 1411, 1247, 1406, 1412, 1409,
      1414, 1416, 1257, 1417, 1260, 1396, 1262, 1418, 1420, 1422,       1414, 1415, 1421, 1422, 1255, 1424, 1425, 1259, 1426, 1262,
      1423, 1268, 1424, 1425, 1272, 1397, 1398, 1426, 1427, 1428,       1264, 1428, 1429, 1430, 1432, 1433, 1434, 1410, 1416, 1435,
      1399, 1430, 1431, 1432, 1433, 1435, 1436, 1437, 1438, 1439,       1273, 1436, 1438, 1277, 1417, 1439, 1280, 1282, 1440, 1442,
      1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449,       1444, 1445, 1288, 1446, 1418, 1419, 1291, 1447, 1448, 1420,
      1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459,       1449, 1451, 1452, 1453, 1454, 1456, 1457, 1458, 1459, 1460,
      1460, 1461, 1462, 1463, 1464, 1311, 1465, 1466, 1468, 1469,       1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470,
      1471, 1472, 1473, 1475, 1321, 1476, 1477, 1325, 1478, 1479,       1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480,
      1481, 1330, 1483, 1484, 1486, 1488, 1489, 1491, 1338, 1492,       1481, 1482, 1483, 1484, 1485, 1330, 1486, 1487, 1489, 1490,
      1493, 1495, 1496, 1344, 1497, 1498, 1499, 1500, 1501, 1502,       1492, 1493, 1494, 1496, 1340, 1497, 1498, 1344, 1499, 1500,
   
      1503, 1504, 1505, 1506, 1507, 1508, 1509, 1359, 1361, 1510,       1502, 1349, 1503, 1505, 1507, 1508, 1510, 1356, 1511, 1512,
      1364, 1366, 1511, 1513, 1515, 1516, 1517, 1512, 1518, 1520,       1514, 1515, 1362, 1516, 1517, 1518, 1519, 1520, 1521, 1522,
      1522, 1525, 1530, 1519, 1521, 1523, 1526, 1527, 1528, 1531,       1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1379, 1381,
      1532, 1381, 1533, 1529, 1534, 1535, 1538, 1539, 1540, 1541,       1531, 1384, 1386, 1532, 1534, 1536, 1537, 1538, 1533, 1539,
      1536, 1544, 1545, 1546, 1542, 1547, 1549, 1393, 1550, 1551,       1541, 1543, 1546, 1551, 1540, 1542, 1544, 1547, 1548, 1549,
      1548, 1552, 1553, 1554, 1555, 1558, 1560, 1403, 1556, 1561,       1552, 1553, 1401, 1554, 1550, 1555, 1556, 1559, 1560, 1561,
      1562, 1407, 1563, 1565, 1411, 1566, 1567, 1569, 1416, 1570,       1562, 1557, 1565, 1566, 1567, 1563, 1568, 1570, 1571, 1414,
      1572, 1420, 1422, 1573, 1575, 1576, 1577, 1578, 1580, 1430,       1572, 1569, 1573, 1574, 1575, 1576, 1578, 1581, 1583, 1424,
      1581, 1582, 1583, 1435, 1584, 1586, 1587, 1588, 1590, 1591,       1579, 1584, 1585, 1577, 1428, 1586, 1588, 1432, 1590, 1591,
      1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601,       1592, 1594, 1438, 1595, 1597, 1442, 1444, 1598, 1599, 1600,
   
      1602, 1603, 1585, 1604, 1605, 1606, 1607, 1608, 1609, 1610,       1601, 1603, 1451, 1604, 1605, 1606, 1456, 1607, 1609, 1610,
      1611, 1612, 1613, 1614, 1615, 1616, 1468, 1618, 1471, 1619,       1611, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621,
      1621, 1475, 1622, 1624, 1626, 1628, 1481, 1483, 1629, 1486,       1622, 1623, 1624, 1625, 1626, 1608, 1627, 1628, 1629, 1630,
      1488, 1630, 1491, 1631, 1632, 1495, 1633, 1634, 1635, 1636,       1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1489,
      1638, 1639, 1640, 1642, 1643, 1644, 1645, 1646, 1647, 1649,       1641, 1492, 1642, 1644, 1496, 1645, 1647, 1649, 1651, 1502,
      1650, 1652, 1653, 1654, 1655, 1515, 1657, 1658, 1660, 1656,       1652, 1505, 1507, 1653, 1510, 1654, 1655, 1514, 1656, 1657,
      1661, 1662, 1664, 1665, 1666, 1668, 1669, 1670, 1525, 1671,       1658, 1659, 1661, 1662, 1663, 1664, 1666, 1667, 1668, 1669,
      1672, 1674, 1675, 1676, 1677, 1679, 1681, 1683, 1684, 1678,       1670, 1671, 1672, 1674, 1675, 1677, 1678, 1679, 1680, 1536,
      1680, 1682, 1686, 1687, 1688, 1538, 1689, 1690, 1692, 1693,       1682, 1683, 1685, 1681, 1686, 1687, 1689, 1690, 1691, 1693,
      1694, 1544, 1695, 1696, 1698, 1699, 1700, 1701, 1703, 1704,       1694, 1695, 1546, 1696, 1697, 1699, 1700, 1701, 1702, 1704,
   
      1705, 1706, 1707, 1708, 1709, 1558, 1560, 1711, 1713, 1715,       1706, 1708, 1709, 1703, 1705, 1707, 1711, 1712, 1713, 1559,
      1565, 1716, 1717, 1569, 1718, 1572, 1719, 1575, 1720, 1722,       1714, 1715, 1717, 1718, 1719, 1565, 1720, 1721, 1723, 1724,
      1724, 1580, 1725, 1727, 1728, 1730, 1731, 1733, 1734, 1735,       1725, 1726, 1727, 1729, 1730, 1731, 1732, 1733, 1734, 1735,
      1590, 1737, 1738, 1739, 1740, 1742, 1743, 1744, 1745, 1746,       1736, 1581, 1583, 1738, 1740, 1742, 1588, 1590, 1743, 1744,
      1747, 1748, 1750, 1752, 1753, 1754, 1755, 1756, 1757, 1758,       1594, 1745, 1597, 1746, 1747, 1749, 1751, 1603, 1752, 1754,
      1759, 1760, 1762, 1763, 1764, 1765, 1766, 1618, 1768, 1621,       1755, 1757, 1758, 1760, 1761, 1762, 1613, 1764, 1765, 1766,
      1769, 1624, 1626, 1628, 1770, 1772, 1773, 1774, 1775, 1776,       1767, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1777, 1779,
      1777, 1778, 1638, 1780, 1782, 1642, 1783, 1784, 1786, 1787,       1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1789, 1790,
      1788, 1649, 1789, 1652, 1790, 1791, 1793, 1794, 1795, 1796,       1791, 1792, 1793, 1641, 1795, 1644, 1796, 1647, 1649, 1651,
      1797, 1660, 1798, 1799, 1664, 1800, 1801, 1668, 1802, 1803,       1797, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1661, 1807,
   
      1804, 1805, 1674, 1806, 1807, 1809, 1810, 1811, 1813, 1814,       1808, 1810, 1666, 1811, 1812, 1813, 1815, 1816, 1817, 1674,
      1815, 1817, 1818, 1819, 1820, 1821, 1686, 1822, 1823, 1824,       1818, 1677, 1819, 1820, 1822, 1823, 1824, 1825, 1826, 1685,
      1825, 1692, 1826, 1827, 1828, 1829, 1698, 1830, 1831, 1832,       1827, 1828, 1689, 1829, 1830, 1693, 1831, 1832, 1833, 1834,
      1703, 1834, 1835, 1836, 1833, 1837, 1838, 1839, 1711, 1713,       1699, 1835, 1836, 1838, 1839, 1840, 1842, 1843, 1844, 1846,
      1715, 1841, 1842, 1843, 1844, 1845, 1722, 1724, 1847, 1727,       1847, 1848, 1849, 1850, 1711, 1851, 1852, 1853, 1854, 1717,
      1848, 1730, 1849, 1733, 1850, 1851, 1737, 1853, 1854, 1856,       1855, 1856, 1857, 1858, 1723, 1859, 1860, 1861, 1863, 1729,
      1742, 1857, 1858, 1860, 1861, 1863, 1864, 1750, 1752, 1865,       1864, 1865, 1862, 1866, 1867, 1868, 1869, 1870, 1738, 1740,
      1866, 1867, 1868, 1870, 1871, 1872, 1873, 1762, 1874, 1875,       1742, 1872, 1873, 1874, 1875, 1876, 1749, 1751, 1878, 1754,
      1877, 1878, 1768, 1880, 1881, 1772, 1882, 1883, 1885, 1887,       1879, 1757, 1880, 1760, 1881, 1882, 1764, 1884, 1885, 1887,
      1888, 1889, 1780, 1782, 1890, 1892, 1786, 1893, 1895, 1896,       1769, 1888, 1889, 1891, 1892, 1894, 1895, 1777, 1779, 1896,
   
      1897, 1898, 1793, 1899, 1900, 1901, 1902, 1903, 1904, 1905,       1897, 1898, 1899, 1901, 1902, 1903, 1904, 1789, 1905, 1906,
      1906, 1907, 1908, 1909, 1910, 1911, 1912, 1809, 1913, 1914,       1908, 1909, 1795, 1911, 1912, 1799, 1913, 1914, 1916, 1918,
      1813, 1915, 1916, 1817, 1917, 1918, 1919, 1920, 1921, 1922,       1919, 1920, 1807, 1922, 1810, 1923, 1924, 1926, 1815, 1927,
      1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1932, 1933,       1929, 1930, 1931, 1932, 1822, 1933, 1934, 1935, 1936, 1937,
      1934, 1936, 1937, 1939, 1940, 1941, 1942, 1841, 1944, 1945,       1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1838,
      1947, 1948, 1847, 1950, 1951, 1952, 1954, 1853, 1955, 1856,       1947, 1948, 1842, 1949, 1950, 1846, 1951, 1952, 1953, 1954,
      1956, 1957, 1860, 1958, 1863, 1959, 1960, 1961, 1962, 1963,       1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964,
      1870, 1964, 1965, 1967, 1968, 1969, 1877, 1971, 1880, 1972,       1966, 1967, 1968, 1970, 1972, 1973, 1975, 1976, 1977, 1978,
      1974, 1976, 1885, 1887, 1977, 1979, 1981, 1892, 1983, 1895,       1979, 1872, 1981, 1982, 1984, 1985, 1878, 1987, 1988, 1989,
      1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993,       1991, 1884, 1992, 1887, 1993, 1994, 1891, 1995, 1894, 1996,
   
      1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,       1997, 1998, 1999, 2000, 1901, 2001, 2002, 2004, 2005, 2006,
      2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,       1908, 2008, 1911, 2009, 2011, 2013, 1916, 1918, 2014, 2016,
      2014, 2015, 2016, 2017, 2018, 1932, 2019, 2020, 1936, 2022,       1922, 2018, 2020, 1926, 2022, 1929, 2023, 2024, 2025, 2026,
      1939, 2023, 2025, 2026, 1944, 2028, 1947, 2030, 1950, 2031,       2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036,
      2032, 1954, 2033, 2034, 2035, 2037, 2038, 2039, 2040, 2041,       2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046,
      2042, 2043, 2044, 1967, 2045, 2046, 1971, 2048, 1974, 1976,       2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056,
      2050, 1979, 1981, 1983, 2051, 2052, 2053, 2054, 2055, 2056,       2057, 1966, 2058, 2059, 1970, 1972, 2061, 1975, 2062, 2063,
      2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066,       2065, 2066, 1981, 2068, 1984, 2070, 1987, 2071, 2072, 1991,
      2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076,       2073, 2074, 2075, 2077, 2078, 2079, 2080, 2081, 2082, 2083,
      2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086,       2084, 2004, 2085, 2086, 2008, 2088, 2011, 2013, 2090, 2016,
   
      2087, 2022, 2089, 2025, 2090, 2028, 2030, 2092, 2094, 2095,       2018, 2020, 2022, 2091, 2092, 2093, 2094, 2095, 2096, 2097,
      2096, 2097, 2037, 2098, 2100, 2102, 2104, 2106, 2108, 2110,       2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107,
      2111, 2112, 2048, 2050, 2113, 2114, 2115, 2116, 2117, 2118,       2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117,
      2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128,       2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127,
      2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2138, 2139,       2061, 2128, 2130, 2065, 2131, 2068, 2070, 2133, 2135, 2136,
      2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149,       2137, 2138, 2077, 2139, 2141, 2143, 2145, 2147, 2149, 2151,
      2150, 2089, 2152, 2092, 2094, 2153, 2155, 2156, 2157, 2100,       2152, 2153, 2088, 2090, 2154, 2155, 2156, 2157, 2158, 2159,
      2102, 2104, 2106, 2108, 2110, 2158, 2159, 2160, 2161, 2162,       2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169,
      2163, 2164, 2165, 2167, 2168, 2169, 2170, 2171, 2172, 2173,       2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2179, 2180,
      2174, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184,       2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190,
   
      2186, 2138, 2187, 2188, 2189, 2191, 2192, 2193, 2194, 2196,       2191, 2193, 2130, 2195, 2133, 2135, 2196, 2198, 2199, 2200,
      2197, 2198, 2199, 2200, 2152, 2201, 2155, 2202, 2203, 2204,       2141, 2143, 2145, 2147, 2149, 2151, 2201, 2202, 2203, 2204,
      2205, 2206, 2207, 2209, 2210, 2211, 2213, 2167, 2214, 2216,       2205, 2206, 2207, 2208, 2210, 2211, 2212, 2213, 2214, 2215,
      2217, 2219, 2220, 2222, 2224, 2176, 2225, 2227, 2228, 2229,       2216, 2217, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226,
      2230, 2231, 2232, 2233, 2186, 2234, 2236, 2238, 2191, 2239,       2227, 2229, 2179, 2230, 2231, 2232, 2234, 2235, 2236, 2237,
      2241, 2243, 2196, 2244, 2246, 2247, 2248, 2249, 2250, 2252,       2239, 2240, 2241, 2242, 2243, 2193, 2195, 2244, 2198, 2245,
      2254, 2256, 2257, 2259, 2209, 2260, 2262, 2213, 2264, 2216,       2246, 2247, 2248, 2249, 2250, 2252, 2253, 2254, 2256, 2210,
      2266, 2219, 2268, 2222, 2224, 2270, 2227, 2271, 2273, 2274,       2257, 2259, 2260, 2262, 2263, 2265, 2267, 2219, 2268, 2270,
      2276, 2277, 2279, 2281, 2236, 2238, 2283, 2241, 2243, 2285,       2271, 2272, 2273, 2274, 2275, 2276, 2229, 2277, 2279, 2281,
      2246, 2286, 2287, 2289, 2291, 2252, 2254, 2256, 2292, 2259,       2234, 2282, 2284, 2286, 2239, 2287, 2289, 2290, 2291, 2292,
   
      2294, 2262, 2264, 2266, 2268, 2270, 2296, 2273, 2298, 2276,       2293, 2295, 2297, 2299, 2300, 2302, 2252, 2303, 2305, 2256,
      2300, 2279, 2281, 2283, 2285, 2301, 2303, 2289, 2291, 2305,       2307, 2259, 2309, 2262, 2311, 2265, 2267, 2313, 2270, 2314,
      2294, 2296, 2298, 2300, 2307, 2303, 2305, 2307,    8,    8,       2316, 2317, 2319, 2320, 2322, 2324, 2279, 2281, 2326, 2284,
        35,   35,   38,   38,   40,   41,   41,  122,  229,  232,       2286, 2328, 2289, 2329, 2330, 2332, 2334, 2295, 2297, 2299,
       235,  279,  341,  362,  393,  397,  404,  407,  413,  428,       2335, 2302, 2337, 2305, 2307, 2309, 2311, 2313, 2339, 2316,
       480,  500,  517,  519,  528,  560,  565,  595,  605,  622,       2341, 2319, 2343, 2322, 2324, 2326, 2328, 2344, 2346, 2332,
       634,  656,  671,  723,  748,  751,  756,  758,  796,  799,       2334, 2348, 2337, 2339, 2341, 2343, 2350, 2346, 2348, 2350,
       805,  809,  816,  825,  833,  859,  861,  882,  885,  887,          8,    8,   35,   35,   38,   38,   40,   41,   41,  124,
       895,  937,  967,  981,  983,  985,  992,  997, 1007, 1049,        234,  237,  240,  287,  350,  371,  403,  407,  414,  417,
      1055, 1064, 1077, 1083, 1086, 1088, 1090, 1092, 1096, 1100,        423,  439,  491,  511,  528,  530,  538,  546,  572,  577,
   
      1102, 1108, 1116, 1148, 1155, 1162, 1164, 1183, 1195, 1198,        609,  619,  635,  647,  669,  684,  737,  763,  766,  771,
      1201, 1207, 1228, 1235, 1235, 1239, 1242, 1244, 1252, 1256,        773,  810,  813,  819,  823,  830,  839,  846,  873,  875,
      1259, 1261, 1267, 1271, 1310, 1320, 1324, 1329, 1337, 1343,        896,  899,  901,  910,  952,  982,  996,  998, 1000, 1007,
      1358, 1360, 1363, 1365, 1380, 1392, 1402, 1406, 1410, 1415,       1012, 1018, 1023, 1065, 1072, 1081, 1095, 1101, 1104, 1106,
      1419, 1421, 1429, 1434, 1467, 1470, 1474, 1480, 1482, 1485,       1108, 1110, 1114, 1118, 1120, 1125, 1133, 1165, 1172, 1179,
      1487, 1490, 1494, 1514, 1524, 1537, 1543, 1557, 1559, 1564,       1181, 1199, 1213, 1216, 1219, 1225, 1246, 1254, 1254, 1258,
      1568, 1571, 1574, 1579, 1589, 1617, 1620, 1623, 1625, 1627,       1261, 1263, 1272, 1276, 1279, 1281, 1287, 1290, 1329, 1339,
      1637, 1641, 1648, 1651, 1659, 1663, 1667, 1673, 1685, 1691,       1343, 1348, 1355, 1361, 1378, 1380, 1383, 1385, 1400, 1413,
      1697, 1702, 1710, 1712, 1714, 1721, 1723, 1726, 1729, 1732,       1423, 1427, 1431, 1437, 1441, 1443, 1450, 1455, 1488, 1491,
      1736, 1741, 1749, 1751, 1761, 1617, 1767, 1620, 1623, 1625,       1495, 1501, 1504, 1506, 1509, 1513, 1535, 1545, 1558, 1564,
   
      1627, 1771, 1779, 1781, 1785, 1792, 1808, 1812, 1816, 1685,       1580, 1582, 1587, 1589, 1593, 1596, 1602, 1612, 1640, 1643,
      1840, 1846, 1852, 1855, 1859, 1862, 1869, 1876, 1879, 1884,       1646, 1648, 1650, 1660, 1665, 1673, 1676, 1684, 1688, 1692,
      1886, 1891, 1894, 1931, 1935, 1938, 1943, 1946, 1949, 1953,       1698, 1710, 1716, 1722, 1728, 1737, 1739, 1741, 1748, 1750,
      1966, 1970, 1973, 1975, 1978, 1980, 1982, 2021, 2024, 2027,       1753, 1756, 1759, 1763, 1768, 1776, 1778, 1788, 1640, 1794,
      2029, 2036, 2047, 2049, 2088, 2091, 2093, 2099, 2101, 2103,       1643, 1798, 1806, 1809, 1814, 1821, 1837, 1841, 1845, 1710,
      2105, 2107, 2109, 2137, 2151, 2154, 2166, 2175, 2185, 2190,       1871, 1877, 1883, 1886, 1890, 1893, 1900, 1907, 1910, 1915,
      2195, 2208, 2212, 2215, 2218, 2221, 2223, 2226, 2235, 2237,       1917, 1921, 1925, 1928, 1965, 1969, 1971, 1974, 1980, 1983,
      2240, 2242, 2245, 2251, 2253, 2255, 2258, 2261, 2263, 2265,       1986, 1990, 2003, 2007, 2010, 2012, 2015, 2017, 2019, 2021,
      2267, 2269, 2272, 2275, 2278, 2280, 2282, 2284, 2288, 2290,       2060, 2064, 2067, 2069, 2076, 2087, 2089, 2129, 2132, 2134,
      2293, 2295, 2297, 2299, 2302, 2304, 2306,  774,  773,  772,       2140, 2142, 2144, 2146, 2148, 2150, 2178, 2192, 2194, 2197,
   
       771,  770,  769,  768,  767,  766,  765,  764,  763,  762,       2209, 2218, 2228, 2233, 2238, 2251, 2255, 2258, 2261, 2264,
       606,  761,  760,  759,  757,  755,  754,  753,  752,  596,       2266, 2269, 2278, 2280, 2283, 2285, 2288, 2294, 2296, 2298,
       750,  749,  747,  746,  745,  744,  741,  740,  739,  738,       2301, 2304, 2306, 2308, 2310, 2312, 2315, 2318, 2321, 2323,
       737,  736,  735,  734,  733,  732,  731,  730,  729,  728,       2325, 2327, 2331, 2333, 2336, 2338, 2340, 2342, 2345, 2347,
       727,  726,  725,  724,  722,  721,  720,  566,  719,  718,       2349,  778,  777,  620,  776,  775,  774,  772,  770,  769,
       717,  561,  716,  706,  705,  704,  703,  702,  701,  700,        768,  767,  610,  765,  764,  762,  761,  760,  759,  756,
       699,  698,  697,  696,  695,  694,  693,  692,  691,  688,        755,  754,  753,  752,  751,  750,  749,  748,  747,  746,
       687,  686,  685,  684,  683,  682,  681,  680,  677,  529,        745,  744,  743,  742,  741,  740,  739,  738,  736,  735,
       676,  675,  674,  673,  672,  670,  669,  520,  518,  668,        734,  733,  578,  732,  731,  730,  573,  729,  719,  718,
       667,  666,  665,  664,  663,  662,  661,  660,  659,  658,        717,  716,  715,  714,  713,  712,  711,  710,  709,  708,
   
       657,  655,  654,  653,  501,  652,  651,  650,  649,  648,        707,  706,  705,  704,  701,  700,  699,  698,  697,  696,
       645,  644,  643,  642,  641,  640,  639,  638,  637,  636,        695,  694,  693,  692,  689,  539,  688,  687,  686,  685,
       635,  633,  481,  632,  628,  627,  626,  625,  624,  623,        683,  682,  531,  529,  681,  680,  679,  678,  677,  676,
       619,  618,  617,  616,  615,  614,  613,  612,  611,  610,        675,  674,  673,  672,  671,  670,  668,  667,  666,  512,
       607,  606,  604,  603,  602,  601,  600,  599,  598,  597,        665,  664,  663,  662,  661,  658,  657,  656,  655,  654,
       596,  594,  593,  588,  587,  586,  585,  584,  583,  582,        653,  652,  651,  650,  649,  648,  646,  492,  645,  641,
       581,  580,  579,  578,  577,  576,  575,  429,  574,  573,        640,  639,  638,  637,  636,  632,  631,  630,  629,  628,
       572,  571,  570,  569,  568,  567,  566,  564,  561,  559,        627,  626,  625,  624,  621,  620,  618,  617,  616,  615,
       414,  558,  557,  556,  555,  408,  554,  405,  553,  552,        614,  613,  612,  611,  610,  608,  607,  602,  601,  600,
       551,  550,  549,  398,  548,  547,  394,  546,  545,  544,        599,  598,  597,  596,  595,  594,  593,  592,  591,  590,
   
       543,  542,  541,  540,  539,  538,  535,  534,  533,  532,        589,  588,  440,  587,  586,  585,  584,  583,  582,  581,
       531,  530,  529,  527,  526,  525,  524,  523,  522,  521,        580,  579,  578,  576,  573,  571,  424,  570,  569,  568,
       520,  518,  516,  515,  514,  363,  513,  512,  511,  510,        567,  418,  566,  415,  565,  564,  563,  562,  561,  408,
       509,  508,  507,  506,  505,  504,  503,  502,  501,  499,        560,  559,  404,  558,  557,  556,  555,  554,  553,  552,
       498,  497,  496,  495,  494,  342,  493,  492,  491,  488,        551,  550,  547,  545,  544,  543,  542,  541,  540,  539,
       487,  486,  485,  484,  483,  482,  481,  479,  478,  477,        537,  536,  535,  534,  533,  532,  531,  529,  527,  526,
       476,  475,  474,  473,  472,  466,  465,  462,  461,  460,        525,  372,  524,  523,  522,  521,  520,  519,  518,  517,
       457,  454,  453,  452,  451,  450,  449,  448,  447,  446,        516,  515,  514,  513,  512,  510,  509,  508,  507,  506,
       445,  444,  443,  442,  441,  438,  437,  436,  435,  434,        505,  351,  504,  503,  502,  499,  498,  497,  496,  495,
       433,  432,  431,  430,  429,  427,  426,  280,  425,  424,        494,  493,  492,  490,  489,  488,  487,  486,  485,  484,
   
       423,  422,  421,  420,  419,  418,  417,  416,  415,  414,        483,  478,  477,  474,  473,  472,  469,  466,  465,  464,
       412,  411,  410,  409,  408,  406,  405,  403,  402,  401,        463,  462,  461,  460,  459,  458,  457,  456,  455,  454,
       400,  399,  398,  396,  395,  394,  392,  391,  381,  380,        453,  452,  449,  448,  447,  446,  445,  444,  443,  442,
       379,  378,  377,  376,  371,  236,  370,  233,  369,  230,        441,  440,  438,  437,  288,  436,  435,  434,  433,  432,
       368,  367,  366,  365,  364,  363,  361,  360,  359,  358,        431,  430,  429,  428,  427,  426,  425,  424,  422,  421,
       357,  356,  355,  354,  353,  352,  351,  350,  349,  348,        420,  419,  418,  416,  415,  413,  412,  411,  410,  409,
       344,  343,  342,  340,  339,  338,  337,  336,  335,  334,        408,  406,  405,  404,  402,  401,  391,  390,  389,  388,
       333,  332,  331,  330,  329,  328,  327,  326,  325,  324,        387,  386,  385,  384,  383,  380,  241,  379,  238,  378,
       323,  322,  321,  314,  313,  312,  309,  308,  307,  303,        235,  377,  376,  375,  374,  373,  372,  370,  369,  368,
       302,  301,  300,  299,  298,  297,  296,  283,  282,  281,        367,  366,  365,  364,  363,  362,  361,  360,  359,  358,
   
       280,  278,  277,  276,  275,  274,  273,  272,  269,  266,        357,  353,  352,  351,  349,  348,  347,  346,  345,  344,
       263,  262,  261,  260,  251,  248,  247,  246,  245,  244,        343,  342,  341,  340,  339,  338,  337,  336,  335,  334,
       243,  242,  241,  240,  239,  238,  237,  236,  234,  233,        333,  332,  331,  330,  323,  322,  321,  318,  317,  316,
       231,  230,  223,  220,  219,  214,  213,  212,  211,  201,        312,  311,  310,  309,  308,  307,  306,  305,  304,  291,
       200,  199,  194,  193,  192,  189,  186,  185,  184,  181,        290,  289,  288,  286,  285,  284,  283,  280,  279,  276,
       180,  172,  171,  170,  169,  168,  167,  164,  163,  162,        273,  270,  269,  268,  267,  258,  255,  254,  253,  252,
       161,  160,  159,  158,  157,  156,  155,  154,  153,  152,        251,  250,  249,  248,  247,  246,  245,  244,  243,  242,
       151,  150,  149,  148,  147,  146,  145,  144,  143,  142,        241,  239,  238,  236,  235,  228,  225,  224,  219,  218,
       141,  137,  136,  135,  134,  131,  130,  129,  128,   42,        217,  216,  206,  205,  204,  199,  198,  197,  194,  191,
       125,  121,  112,   81,   42, 2308,    7, 2308, 2308, 2308,        190,  189,  186,  185,  177,  176,  175,  174,  173,  172,
   
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,        171,  168,  167,  166,  165,  164,  163,  162,  161,  160,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,        159,  158,  157,  156,  155,  154,  153,  152,  151,  150,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308        149,  148,  147,  146,  145,  141,  140,  137,  136,  133,
         132,  131,  130,   42,  127,  123,  114,   83,   42, 2351,
           7, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
        2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
        2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
        2351, 2351, 2351, 2351
     } ;      } ;
   
 static yyconst short int yy_chk[2631] =  static yyconst short int yy_chk[2675] =
     {   0,      {   0,
         0,   11,    1,    1,   11,    1,    2,    2,    2,    2,          0,   11,    1,    1,   11,    1,    2,    2,    2,    2,
         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,          2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,          2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
         2,    2,    2,    2,    2,    2,    2,    2,    2,    3,          2,    2,    2,    2,    2,    2,    2,    2,    2,    3,
         4,    5,    3,    4,    5,    6,   13,   15,    6,    4,          4,    5,    3,    4,    5,    6,   13,   15,    6,    4,
        12,   15,   33,   13,   79,   15,   79,   18,   19,   12,         12,   15,   31,   13,  119,   15,   13,   18,   19,   12,
        17,   12,   90,   12,   18,   12,   19,   12,   12,   14,         17,   12,  119,   12,   18,   12,   19,   12,   12,   14,
        18,   17,   20,   19,   17,   33,   14,   17,   90,   23,         18,   17,   31,   19,   17,   36,   14,   17,   36,   23,
        14,   20,   20,   14,   22,   31,   49,   20,   22,   14,         14,   27,   24,   14,   22,   27,   24,  328,   22,   14,
        16,   36,   22,   23,   36,   24,   49,   23,   16,   24,         16,   25,   22,   23,   33,  328,   24,   23,   16,   24,
   
        16,   25,   27,   26,   22,   31,   27,  141,   16,   24,         16,   27,   55,   25,   22,   26,   55,   55,   16,   25,
        16,   26,   24,   25,   29,   96,   96,   26,   29,   25,         16,   20,   29,   26,   49,   39,   29,   33,   39,   26,
        26,   39,   27,   28,   39,   28,  141,   29,  145,   32,         20,   20,   26,   52,   49,   29,   20,   20,   28,  623,
       620,   32,   28,   32,   29,   43,   28,   32,   43,   54,         28,   32,   29,   32,   88,   32,   52,   28,   88,   32,
        28,   86,   87,   54,   54,   86,   87,  145,   94,  100,         43,   28,   80,   43,   80,   28,   89,   88,   92,   96,
        87,  101,  105,  106,   86,   94,  105,  107,   86,  117,         89,   88,   98,   98,   89,  102,   96,  103,  107,  108,
       100,  107,  115,  106,  101,  112,  105,  117,  112,  115,        114,  109,  107,  114,   92,  109,  102,  117,  114,  108,
       106,  118,  123,  112,  107,  123,  126,  143,  118,  126,        103,  145,  107,  120,  117,  114,  108,  147,  109,  125,
       112,  144,  144,  150,  150,  118,  152,  588,  143,  154,        120,  128,  125,  156,  128,  148,  148,  120,  147,  149,
       166,  176,  176,  180,  180,  166,  143,  588,  154,  166,        145,  154,  154,  161,  158,  170,  147,  624,  161,  346,
   
       238,  238,  143,  176,  152,  167,  167,  167,  167,  208,        170,  156,  147,  158,  170,  181,  181,  346,  149,  171,
       167,  621,  167,  208,  239,  208,  264,  264,  316,  293,        171,  171,  171,  625,  171,  626,  171,  181,  185,  185,
       308,  308,  310,  310,  167,  167,  623,  167,  184,  312,        213,  243,  243,  301,  213,  321,  213,  627,  171,  171,
       239,  184,  293,  184,  312,  316,  319,  337,  383,  320,        321,  171,  189,  271,  271,  189,  301,  189,  317,  317,
       184,  455,  455,  184,  319,  337,  184,  246,  320,  246,        319,  319,  393,  325,  189,  628,  329,  189,  427,  629,
       246,  417,  460,  319,  624,  246,  625,  246,  383,  417,        189,  253,  482,  253,  253,  329,  427,  467,  467,  253,
       460,  471,  246,  531,  246,  246,  444,  246,  444,  444,        325,  253,  393,  541,  630,  482,  253,  472,  253,  253,
       478,  494,  626,  478,  471,  627,  494,  541,  541,  628,        456,  253,  456,  456,  489,  472,  505,  489,  553,  553,
       444,  629,  630,  531,  631,  632,  633,  478,  558,  558,        602,  505,  631,  541,  456,  632,  633,  634,  636,  637,
       558,  558,  635,  636,  637,  638,  639,  640,  641,  558,        602,  489,  570,  570,  570,  570,  638,  639,  640,  641,
   
       642,  643,  636,  558,  644,  558,  558,  558,  645,  646,        642,  643,  644,  570,  645,  646,  648,  570,  649,  570,
       647,  648,  649,  650,  651,  652,  653,  654,  655,  657,        570,  570,  650,  651,  652,  653,  654,  649,  655,  656,
       658,  659,  660,  661,  662,  663,  664,  665,  666,  667,        657,  658,  659,  660,  661,  662,  663,  664,  665,  666,
       668,  669,  670,  670,  664,  672,  673,  674,  675,  676,        667,  668,  670,  671,  672,  673,  674,  675,  676,  677,
       677,  678,  679,  680,  681,  682,  683,  684,  685,  686,        678,  679,  680,  681,  682,  683,  683,  677,  685,  686,
       687,  688,  689,  690,  691,  692,  693,  694,  695,  696,        687,  688,  689,  690,  691,  692,  693,  694,  695,  696,
       697,  698,  699,  700,  701,  702,  703,  704,  705,  706,        697,  698,  699,  700,  701,  702,  703,  704,  705,  706,
       707,  708,  709,  710,  707,  711,  712,  713,  709,  715,        707,  708,  709,  710,  711,  712,  713,  714,  715,  716,
       714,  716,  715,  715,  717,  718,  710,  714,  719,  720,        717,  718,  719,  720,  721,  722,  723,  720,  724,  725,
       721,  722,  715,  724,  725,  726,  727,  728,  729,  730,        726,  722,  728,  727,  729,  728,  728,  730,  731,  723,
   
       731,  732,  733,  734,  735,  736,  737,  738,  739,  740,        727,  732,  733,  734,  735,  728,  736,  738,  739,  740,
       741,  742,  743,  744,  745,  746,  747,  749,  750,  752,        741,  742,  743,  744,  745,  746,  747,  748,  749,  750,
       753,  754,  755,  757,  759,  760,  761,  762,  763,  764,        751,  752,  753,  754,  755,  756,  757,  758,  759,  760,
       765,  766,  767,  768,  769,  770,  771,  772,  773,  774,        761,  762,  764,  765,  767,  768,  769,  770,  772,  774,
       775,  776,  777,  778,  779,  780,  781,  782,  783,  784,        775,  776,  777,  778,  779,  780,  781,  782,  783,  784,
       785,  786,  787,  788,  789,  791,  792,  793,  794,  795,        785,  786,  787,  788,  789,  790,  791,  792,  793,  794,
       797,  798,  800,  789,  790,  790,  790,  790,  790,  790,        795,  796,  797,  798,  799,  800,  801,  802,  803,  805,
       790,  790,  790,  801,  802,  803,  790,  804,  806,  790,        806,  807,  808,  809,  811,  812,  814,  803,  804,  804,
       807,  808,  790,  790,  810,  811,  790,  812,  813,  814,        804,  804,  804,  804,  804,  804,  804,  815,  816,  817,
       815,  817,  818,  819,  820,  821,  822,  823,  824,  826,        804,  818,  820,  804,  821,  822,  804,  804,  824,  825,
   
       827,  827,  829,  830,  831,  832,  834,  835,  836,  837,        804,  826,  827,  828,  829,  831,  832,  833,  834,  835,
       838,  839,  840,  841,  842,  843,  844,  845,  846,  847,        836,  837,  838,  840,  841,  841,  843,  844,  845,  847,
       848,  849,  850,  850,  851,  852,  853,  854,  855,  850,        848,  849,  850,  851,  852,  853,  854,  855,  856,  857,
       856,  857,  858,  860,  862,  863,  864,  865,  866,  850,        858,  859,  860,  861,  862,  863,  864,  864,  865,  866,
       850,  867,  868,  869,  850,  870,  871,  872,  873,  874,        867,  868,  869,  864,  870,  871,  872,  874,  876,  877,
       875,  876,  877,  878,  879,  880,  881,  883,  884,  886,        878,  879,  880,  864,  864,  881,  882,  883,  864,  884,
       888,  889,  890,  891,  892,  893,  894,  896,  897,  898,        885,  886,  887,  888,  889,  890,  891,  892,  893,  894,
       899,  900,  901,  902,  903,  904,  905,  906,  907,  908,        895,  897,  898,  900,  902,  903,  904,  905,  906,  907,
       909,  910,  911,  912,  913,  914,  915,  916,  917,  918,        908,  909,  911,  912,  913,  914,  915,  916,  917,  918,
       919,  920,  921,  922,  923,  924,  925,  926,  927,  928,        919,  920,  921,  922,  923,  924,  925,  926,  927,  928,
   
       929,  930,  931,  932,  933,  934,  935,  936,  938,  939,        929,  930,  931,  932,  933,  934,  935,  936,  937,  938,
       940,  941,  942,  943,  944,  945,  946,  947,  948,  949,        939,  940,  941,  942,  943,  944,  945,  946,  947,  948,
       950,  951,  952,  953,  954,  956,  950,  955,  957,  958,        949,  950,  951,  953,  954,  955,  956,  957,  958,  959,
       959,  954,  957,  960,  961,  962,  958,  963,  954,  964,        960,  961,  962,  963,  964,  965,  966,  967,  968,  969,
       955,  965,  962,  966,  968,  969,  970,  971,  972,  962,        971,  965,  970,  972,  973,  974,  969,  972,  975,  976,
       973,  974,  975,  976,  977,  978,  979,  980,  982,  984,        977,  973,  978,  969,  979,  970,  980,  977,  981,  983,
       986,  987,  988,  989,  990,  991,  993,  994,  995,  996,        984,  985,  986,  987,  977,  988,  989,  990,  991,  992,
       998,  999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1008,        993,  994,  995,  997,  999, 1001, 1002, 1003, 1004, 1005,
      1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,       1006, 1008, 1009, 1010, 1011, 1013, 1014, 1015, 1016, 1017,
      1019, 1020, 1022, 1021, 1023, 1024, 1019, 1021, 1025, 1020,       1019, 1020, 1021, 1022, 1024, 1025, 1026, 1027, 1028, 1029,
   
      1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,       1030, 1031, 1032, 1033, 1034, 1035, 1036, 1038, 1037, 1039,
      1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045,       1040, 1036, 1037, 1035, 1036, 1041, 1042, 1043, 1044, 1035,
      1040, 1046, 1043, 1047, 1048, 1050, 1051, 1052, 1053, 1054,       1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054,
      1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1065, 1066,       1055, 1056, 1057, 1058, 1059, 1060, 1061, 1056, 1062, 1059,
      1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076,       1063, 1064, 1066, 1067, 1068, 1069, 1070, 1071, 1073, 1074,
      1078, 1079, 1080, 1081, 1082, 1084, 1085, 1087, 1089, 1091,       1075, 1076, 1077, 1078, 1079, 1080, 1082, 1083, 1084, 1085,
      1093, 1094, 1095, 1097, 1098, 1099, 1101, 1103, 1104, 1105,       1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1096,
      1106, 1107, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1117,       1097, 1098, 1099, 1100, 1102, 1103, 1105, 1107, 1109, 1111,
      1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127,       1112, 1113, 1115, 1116, 1117, 1119, 1121, 1122, 1123, 1124,
      1128, 1129, 1128, 1130, 1131, 1132, 1133, 1134, 1135, 1128,       1126, 1127, 1128, 1129, 1130, 1131, 1132, 1134, 1135, 1136,
   
      1136, 1137, 1138, 1139, 1140, 1141, 1129, 1142, 1143, 1144,       1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146,
      1145, 1146, 1147, 1149, 1150, 1151, 1152, 1153, 1154, 1156,       1145, 1147, 1148, 1149, 1150, 1151, 1152, 1145, 1153, 1154,
      1157, 1158, 1159, 1160, 1161, 1163, 1165, 1166, 1167, 1168,       1155, 1156, 1157, 1158, 1146, 1159, 1160, 1161, 1162, 1163,
      1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178,       1164, 1166, 1167, 1168, 1169, 1170, 1171, 1173, 1174, 1175,
      1179, 1180, 1181, 1182, 1184, 1185, 1186, 1187, 1188, 1189,       1176, 1177, 1178, 1180, 1182, 1183, 1184, 1185, 1186, 1187,
      1190, 1191, 1192, 1193, 1194, 1196, 1197, 1199, 1200, 1202,       1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197,
      1203, 1204, 1205, 1206, 1208, 1209, 1210, 1211, 1212, 1213,       1198, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
      1214, 1215, 1216, 1212, 1217, 1218, 1219, 1216, 1220, 1221,       1209, 1210, 1211, 1212, 1214, 1215, 1217, 1218, 1220, 1221,
      1222, 1222, 1223, 1224, 1225, 1226, 1227, 1229, 1224, 1230,       1222, 1223, 1224, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
      1226, 1231, 1233, 1234, 1235, 1237, 1238, 1240, 1241, 1243,       1233, 1234, 1230, 1235, 1236, 1237, 1234, 1238, 1239, 1240,
   
      1245, 1246, 1247, 1248, 1249, 1250, 1251, 1253, 1226, 1232,       1240, 1241, 1242, 1243, 1244, 1245, 1247, 1242, 1248, 1244,
      1254, 1255, 1257, 1258, 1260, 1232, 1262, 1263, 1264, 1265,       1249, 1250, 1252, 1253, 1254, 1256, 1257, 1259, 1260, 1262,
      1266, 1268, 1269, 1270, 1272, 1232, 1232, 1273, 1274, 1275,       1264, 1265, 1266, 1267, 1268, 1269, 1270, 1244, 1251, 1271,
      1232, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284,       1273, 1274, 1275, 1277, 1251, 1278, 1280, 1282, 1283, 1284,
      1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294,       1285, 1286, 1288, 1289, 1251, 1251, 1291, 1292, 1293, 1251,
      1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304,       1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303,
      1305, 1306, 1307, 1308, 1309, 1311, 1312, 1313, 1314, 1315,       1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
      1316, 1317, 1318, 1319, 1321, 1322, 1323, 1325, 1326, 1327,       1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323,
      1328, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1338, 1339,       1324, 1325, 1326, 1327, 1328, 1330, 1331, 1332, 1333, 1334,
      1340, 1341, 1342, 1344, 1345, 1346, 1347, 1348, 1349, 1350,       1335, 1336, 1337, 1338, 1340, 1341, 1342, 1344, 1345, 1346,
   
      1351, 1352, 1353, 1354, 1355, 1356, 1357, 1359, 1361, 1362,       1347, 1349, 1350, 1351, 1352, 1353, 1354, 1356, 1357, 1358,
      1364, 1366, 1367, 1368, 1369, 1370, 1370, 1367, 1371, 1372,       1359, 1360, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369,
      1373, 1374, 1377, 1371, 1372, 1373, 1375, 1375, 1376, 1378,       1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1379, 1381,
      1379, 1381, 1382, 1376, 1383, 1384, 1385, 1386, 1386, 1387,       1382, 1384, 1386, 1387, 1388, 1389, 1390, 1390, 1387, 1391,
      1384, 1388, 1389, 1389, 1387, 1390, 1391, 1393, 1394, 1395,       1392, 1393, 1394, 1397, 1391, 1392, 1393, 1395, 1395, 1396,
      1390, 1396, 1397, 1398, 1399, 1400, 1401, 1403, 1399, 1404,       1398, 1399, 1401, 1402, 1396, 1403, 1404, 1405, 1406, 1406,
      1405, 1407, 1408, 1409, 1411, 1412, 1413, 1414, 1416, 1417,       1407, 1404, 1408, 1409, 1409, 1407, 1410, 1411, 1412, 1414,
      1418, 1420, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1430,       1415, 1410, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1424,
      1431, 1432, 1433, 1435, 1436, 1437, 1438, 1439, 1440, 1441,       1420, 1425, 1426, 1419, 1428, 1429, 1430, 1432, 1433, 1434,
      1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,       1435, 1436, 1438, 1439, 1440, 1442, 1444, 1445, 1446, 1447,
   
      1452, 1453, 1436, 1454, 1455, 1456, 1457, 1458, 1459, 1460,       1448, 1449, 1451, 1452, 1453, 1454, 1456, 1457, 1458, 1459,
      1461, 1462, 1463, 1464, 1465, 1466, 1468, 1469, 1471, 1472,       1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469,
      1473, 1475, 1476, 1477, 1478, 1479, 1481, 1483, 1484, 1486,       1470, 1471, 1472, 1473, 1474, 1457, 1475, 1476, 1477, 1478,
      1488, 1489, 1491, 1492, 1493, 1495, 1496, 1497, 1498, 1499,       1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1489,
      1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509,       1490, 1492, 1493, 1494, 1496, 1497, 1498, 1499, 1500, 1502,
      1510, 1511, 1512, 1512, 1513, 1515, 1516, 1517, 1518, 1513,       1503, 1505, 1507, 1508, 1510, 1511, 1512, 1514, 1515, 1516,
      1519, 1519, 1520, 1521, 1521, 1522, 1523, 1523, 1525, 1526,       1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526,
      1527, 1528, 1529, 1529, 1530, 1531, 1532, 1533, 1534, 1530,       1527, 1528, 1529, 1530, 1531, 1532, 1533, 1533, 1534, 1536,
      1531, 1532, 1535, 1536, 1536, 1538, 1539, 1540, 1541, 1542,       1537, 1538, 1539, 1534, 1540, 1540, 1541, 1542, 1542, 1543,
      1542, 1544, 1545, 1546, 1547, 1548, 1548, 1549, 1550, 1551,       1544, 1544, 1546, 1547, 1548, 1549, 1550, 1550, 1551, 1552,
   
      1552, 1553, 1554, 1555, 1556, 1558, 1560, 1561, 1562, 1563,       1553, 1554, 1555, 1551, 1552, 1553, 1556, 1557, 1557, 1559,
      1565, 1566, 1567, 1569, 1570, 1572, 1573, 1575, 1576, 1577,       1560, 1561, 1562, 1563, 1563, 1565, 1566, 1567, 1568, 1569,
      1578, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588,       1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578,
      1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599,       1579, 1581, 1583, 1584, 1585, 1586, 1588, 1590, 1591, 1592,
      1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609,       1594, 1595, 1597, 1598, 1599, 1600, 1601, 1603, 1604, 1605,
      1610, 1611, 1612, 1613, 1614, 1615, 1616, 1618, 1619, 1621,       1606, 1607, 1608, 1609, 1610, 1611, 1613, 1614, 1615, 1616,
      1622, 1624, 1626, 1628, 1629, 1630, 1631, 1632, 1633, 1634,       1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626,
      1635, 1636, 1638, 1639, 1640, 1642, 1643, 1644, 1645, 1646,       1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636,
      1647, 1649, 1650, 1652, 1653, 1654, 1655, 1656, 1656, 1657,       1637, 1638, 1639, 1641, 1642, 1644, 1645, 1647, 1649, 1651,
      1658, 1660, 1661, 1662, 1664, 1665, 1666, 1668, 1669, 1670,       1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1661, 1662,
   
      1671, 1672, 1674, 1675, 1676, 1677, 1678, 1678, 1679, 1680,       1663, 1664, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1674,
      1680, 1681, 1682, 1682, 1683, 1684, 1686, 1687, 1688, 1689,       1675, 1677, 1678, 1679, 1680, 1681, 1681, 1682, 1683, 1685,
      1690, 1692, 1693, 1694, 1695, 1696, 1698, 1699, 1700, 1701,       1686, 1687, 1689, 1690, 1691, 1693, 1694, 1695, 1696, 1697,
      1703, 1704, 1705, 1706, 1701, 1707, 1708, 1709, 1711, 1713,       1699, 1700, 1701, 1702, 1703, 1703, 1704, 1705, 1705, 1706,
      1715, 1716, 1717, 1718, 1719, 1720, 1722, 1724, 1725, 1727,       1707, 1707, 1708, 1709, 1711, 1712, 1713, 1714, 1715, 1717,
      1728, 1730, 1731, 1733, 1734, 1735, 1737, 1738, 1739, 1740,       1718, 1719, 1720, 1721, 1723, 1724, 1725, 1726, 1727, 1729,
      1742, 1743, 1744, 1745, 1746, 1747, 1748, 1750, 1752, 1753,       1730, 1731, 1726, 1732, 1733, 1734, 1735, 1736, 1738, 1740,
      1754, 1755, 1756, 1757, 1758, 1759, 1760, 1762, 1763, 1764,       1742, 1743, 1744, 1745, 1746, 1747, 1749, 1751, 1752, 1754,
      1765, 1766, 1768, 1769, 1770, 1772, 1773, 1774, 1775, 1776,       1755, 1757, 1758, 1760, 1761, 1762, 1764, 1765, 1766, 1767,
      1777, 1778, 1780, 1782, 1783, 1784, 1786, 1787, 1788, 1789,       1769, 1770, 1771, 1772, 1773, 1774, 1775, 1777, 1779, 1780,
   
      1790, 1791, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800,       1781, 1782, 1783, 1784, 1785, 1786, 1787, 1789, 1790, 1791,
      1801, 1802, 1803, 1804, 1805, 1806, 1807, 1809, 1810, 1811,       1792, 1793, 1795, 1796, 1797, 1799, 1800, 1801, 1802, 1803,
      1813, 1814, 1815, 1817, 1818, 1819, 1820, 1821, 1822, 1823,       1804, 1805, 1807, 1808, 1810, 1811, 1812, 1813, 1815, 1816,
      1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833,       1817, 1818, 1819, 1820, 1822, 1823, 1824, 1825, 1826, 1827,
      1833, 1834, 1835, 1836, 1837, 1838, 1839, 1841, 1842, 1843,       1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1838,
      1844, 1845, 1847, 1848, 1849, 1850, 1851, 1853, 1854, 1856,       1839, 1840, 1842, 1843, 1844, 1846, 1847, 1848, 1849, 1850,
      1857, 1858, 1860, 1861, 1863, 1864, 1865, 1866, 1867, 1868,       1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860,
      1870, 1871, 1872, 1873, 1874, 1875, 1877, 1878, 1880, 1881,       1861, 1862, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869,
      1882, 1883, 1885, 1887, 1888, 1889, 1890, 1892, 1893, 1895,       1870, 1872, 1873, 1874, 1875, 1876, 1878, 1879, 1880, 1881,
      1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905,       1882, 1884, 1885, 1887, 1888, 1889, 1891, 1892, 1894, 1895,
   
      1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915,       1896, 1897, 1898, 1899, 1901, 1902, 1903, 1904, 1905, 1906,
      1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925,       1908, 1909, 1911, 1912, 1913, 1914, 1916, 1918, 1919, 1920,
      1926, 1927, 1928, 1929, 1930, 1932, 1933, 1934, 1936, 1937,       1922, 1923, 1924, 1926, 1927, 1929, 1930, 1931, 1932, 1933,
      1939, 1940, 1941, 1942, 1944, 1945, 1947, 1948, 1950, 1951,       1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943,
      1952, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962,       1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953,
      1963, 1964, 1965, 1967, 1968, 1969, 1971, 1972, 1974, 1976,       1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963,
      1977, 1979, 1981, 1983, 1984, 1985, 1986, 1987, 1988, 1989,       1964, 1966, 1967, 1968, 1970, 1972, 1973, 1975, 1976, 1977,
      1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,       1978, 1979, 1981, 1982, 1984, 1985, 1987, 1988, 1989, 1991,
      2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,       1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
      2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,       2002, 2004, 2005, 2006, 2008, 2009, 2011, 2013, 2014, 2016,
   
      2020, 2022, 2023, 2025, 2026, 2028, 2030, 2031, 2032, 2033,       2018, 2020, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029,
      2034, 2035, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044,       2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039,
      2045, 2046, 2048, 2050, 2051, 2052, 2053, 2054, 2055, 2056,       2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049,
      2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066,       2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059,
      2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076,       2061, 2062, 2063, 2065, 2066, 2068, 2070, 2071, 2072, 2073,
      2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086,       2074, 2075, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084,
      2087, 2089, 2090, 2092, 2094, 2095, 2096, 2097, 2098, 2100,       2085, 2086, 2088, 2090, 2091, 2092, 2093, 2094, 2095, 2096,
      2102, 2104, 2106, 2108, 2110, 2111, 2112, 2113, 2114, 2115,       2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106,
      2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125,       2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116,
      2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135,       2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126,
   
      2136, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146,       2127, 2128, 2130, 2131, 2133, 2135, 2136, 2137, 2138, 2139,
      2147, 2148, 2149, 2150, 2152, 2153, 2155, 2156, 2157, 2158,       2141, 2143, 2145, 2147, 2149, 2151, 2152, 2153, 2154, 2155,
      2159, 2160, 2161, 2162, 2163, 2164, 2165, 2167, 2168, 2169,       2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165,
      2170, 2171, 2172, 2173, 2174, 2176, 2177, 2178, 2179, 2180,       2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175,
      2181, 2182, 2183, 2184, 2186, 2187, 2188, 2189, 2191, 2192,       2176, 2177, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186,
      2193, 2194, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203,       2187, 2188, 2189, 2190, 2191, 2193, 2195, 2196, 2198, 2199,
      2204, 2205, 2206, 2207, 2209, 2210, 2211, 2213, 2214, 2216,       2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2210,
      2217, 2219, 2220, 2222, 2224, 2225, 2227, 2228, 2229, 2230,       2211, 2212, 2213, 2214, 2215, 2216, 2217, 2219, 2220, 2221,
      2231, 2232, 2233, 2234, 2236, 2238, 2239, 2241, 2243, 2244,       2222, 2223, 2224, 2225, 2226, 2227, 2229, 2230, 2231, 2232,
      2246, 2247, 2248, 2249, 2250, 2252, 2254, 2256, 2257, 2259,       2234, 2235, 2236, 2237, 2239, 2240, 2241, 2242, 2243, 2244,
   
      2260, 2262, 2264, 2266, 2268, 2270, 2271, 2273, 2274, 2276,       2245, 2246, 2247, 2248, 2249, 2250, 2252, 2253, 2254, 2256,
      2277, 2279, 2281, 2283, 2285, 2286, 2287, 2289, 2291, 2292,       2257, 2259, 2260, 2262, 2263, 2265, 2267, 2268, 2270, 2271,
      2294, 2296, 2298, 2300, 2301, 2303, 2305, 2307, 2309, 2309,       2272, 2273, 2274, 2275, 2276, 2277, 2279, 2281, 2282, 2284,
      2310, 2310, 2311, 2311, 2312, 2313, 2313, 2314, 2315, 2316,       2286, 2287, 2289, 2290, 2291, 2292, 2293, 2295, 2297, 2299,
      2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326,       2300, 2302, 2303, 2305, 2307, 2309, 2311, 2313, 2314, 2316,
      2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336,       2317, 2319, 2320, 2322, 2324, 2326, 2328, 2329, 2330, 2332,
      2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346,       2334, 2335, 2337, 2339, 2341, 2343, 2344, 2346, 2348, 2350,
      2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356,       2352, 2352, 2353, 2353, 2354, 2354, 2355, 2356, 2356, 2357,
      2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366,       2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367,
      2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376,       2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377,
   
      2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386,       2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387,
      2387, 2388, 2389, 2390, 2390, 2391, 2392, 2393, 2394, 2395,       2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397,
      2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405,       2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407,
      2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415,       2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417,
      2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425,       2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427,
      2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435,       2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2435, 2436,
      2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445,       2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446,
      2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455,       2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456,
      2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465,       2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466,
      2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475,       2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476,
   
      2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485,       2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486,
      2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495,       2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496,
      2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505,       2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506,
      2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515,       2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516,
      2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525,       2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526,
      2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535,       2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536,
      2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545,       2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546,
      2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555,       2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556,
      2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565,       2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566,
      2566, 2567, 2568, 2569, 2570, 2571, 2572,  619,  618,  617,       2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576,
   
       616,  615,  614,  613,  612,  611,  610,  609,  608,  607,       2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586,
       606,  604,  603,  602,  601,  600,  599,  598,  597,  596,       2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596,
       594,  593,  592,  591,  590,  589,  587,  586,  585,  584,       2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606,
       583,  582,  581,  580,  579,  578,  577,  576,  575,  574,       2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616,
       573,  572,  571,  570,  569,  568,  567,  566,  564,  563,       2617,  622,  621,  620,  618,  617,  616,  615,  614,  613,
       562,  561,  559,  557,  556,  555,  554,  553,  552,  551,        612,  611,  610,  608,  607,  606,  605,  604,  603,  601,
       550,  549,  548,  547,  546,  545,  544,  543,  542,  540,        600,  599,  598,  597,  596,  595,  594,  593,  592,  591,
       539,  538,  537,  536,  535,  534,  533,  532,  530,  529,        590,  589,  588,  587,  586,  585,  584,  583,  582,  581,
       527,  526,  525,  524,  523,  522,  521,  520,  518,  516,        580,  579,  578,  576,  575,  574,  573,  571,  569,  568,
       515,  514,  513,  512,  511,  510,  509,  508,  507,  506,        567,  566,  565,  564,  563,  562,  561,  560,  559,  558,
   
       505,  504,  503,  502,  501,  499,  498,  497,  496,  495,        557,  556,  555,  554,  552,  551,  550,  549,  548,  547,
       493,  492,  491,  490,  489,  488,  487,  486,  485,  484,        545,  544,  543,  542,  540,  539,  537,  536,  535,  534,
       483,  482,  481,  479,  477,  476,  475,  474,  473,  472,        533,  532,  531,  529,  527,  526,  525,  524,  523,  522,
       470,  469,  468,  467,  466,  465,  464,  463,  462,  461,        521,  520,  519,  518,  517,  516,  515,  514,  513,  512,
       459,  458,  457,  454,  453,  452,  451,  450,  449,  448,        510,  509,  508,  507,  506,  504,  503,  502,  501,  500,
       447,  446,  445,  443,  442,  441,  440,  439,  438,  437,        499,  498,  497,  496,  495,  494,  493,  492,  490,  488,
       436,  435,  434,  433,  432,  431,  430,  429,  427,  426,        487,  486,  485,  484,  483,  481,  480,  479,  478,  477,
       425,  424,  423,  422,  421,  420,  419,  418,  416,  415,        476,  475,  474,  473,  471,  470,  469,  466,  465,  464,
       414,  412,  411,  410,  409,  408,  406,  405,  403,  402,        463,  462,  461,  460,  459,  458,  457,  455,  454,  453,
       401,  400,  399,  398,  396,  395,  394,  392,  391,  390,        452,  451,  450,  449,  448,  447,  446,  445,  444,  443,
   
       389,  388,  387,  386,  385,  384,  382,  381,  380,  379,        442,  441,  440,  438,  437,  436,  435,  434,  433,  432,
       378,  377,  376,  375,  374,  373,  372,  371,  370,  369,        431,  430,  429,  428,  426,  425,  424,  422,  421,  420,
       368,  367,  366,  365,  364,  363,  361,  360,  359,  358,        419,  418,  416,  415,  413,  412,  411,  410,  409,  408,
       357,  356,  355,  354,  353,  352,  351,  350,  349,  348,        406,  405,  404,  402,  401,  400,  399,  398,  397,  396,
       347,  346,  345,  344,  343,  342,  340,  339,  338,  336,        395,  394,  392,  390,  389,  388,  387,  386,  385,  384,
       335,  334,  333,  332,  331,  330,  329,  328,  327,  326,        383,  382,  381,  380,  379,  378,  377,  376,  375,  374,
       325,  324,  323,  322,  321,  318,  317,  315,  314,  313,        373,  372,  370,  369,  368,  367,  366,  365,  364,  363,
       309,  307,  306,  305,  304,  303,  302,  301,  300,  299,        362,  361,  360,  359,  358,  357,  356,  355,  354,  353,
       298,  297,  296,  295,  294,  292,  291,  290,  289,  288,        352,  351,  349,  348,  347,  345,  344,  343,  342,  341,
       287,  286,  285,  284,  283,  282,  281,  280,  278,  277,        340,  339,  338,  337,  336,  335,  334,  333,  332,  331,
   
       276,  275,  274,  273,  272,  271,  270,  269,  268,  267,        330,  327,  326,  324,  323,  322,  318,  316,  315,  314,
       266,  263,  262,  261,  260,  259,  258,  257,  256,  255,        313,  312,  311,  310,  309,  308,  307,  306,  305,  304,
       254,  253,  252,  251,  250,  249,  248,  247,  245,  244,        303,  302,  300,  299,  298,  297,  296,  295,  294,  293,
       243,  242,  241,  240,  237,  236,  234,  233,  231,  230,        292,  291,  290,  289,  288,  286,  285,  284,  283,  282,
       228,  227,  226,  225,  224,  223,  222,  221,  220,  219,        281,  280,  279,  278,  277,  276,  275,  274,  273,  270,
       218,  217,  216,  215,  214,  213,  212,  211,  210,  209,        269,  268,  267,  266,  265,  264,  263,  262,  261,  260,
       207,  206,  205,  204,  203,  202,  201,  200,  199,  198,        259,  258,  257,  256,  255,  254,  252,  251,  250,  249,
       197,  196,  195,  194,  193,  192,  191,  190,  189,  188,        248,  247,  246,  245,  244,  242,  241,  239,  238,  236,
       187,  186,  185,  183,  182,  181,  179,  178,  177,  175,        235,  233,  232,  231,  230,  229,  228,  227,  226,  225,
       174,  173,  172,  171,  170,  169,  168,  165,  164,  163,        224,  223,  222,  221,  220,  219,  218,  217,  216,  215,
   
       162,  161,  160,  159,  158,  157,  156,  155,  153,  151,        214,  212,  211,  210,  209,  208,  207,  206,  205,  204,
       149,  148,  147,  146,  142,  140,  139,  138,  137,  136,        203,  202,  201,  200,  199,  198,  197,  196,  195,  194,
       135,  134,  133,  132,  131,  130,  129,  128,  125,  121,        193,  192,  191,  190,  188,  187,  186,  184,  183,  182,
       120,  119,  116,  114,  113,  111,  110,  109,  108,  104,        180,  179,  178,  177,  176,  175,  174,  173,  172,  169,
       103,  102,   99,   98,   97,   95,   93,   92,   91,   89,        168,  167,  166,  165,  164,  163,  162,  160,  159,  157,
        88,   85,   84,   83,   82,   81,   80,   78,   77,   76,        155,  153,  152,  151,  150,  146,  144,  143,  142,  141,
        75,   74,   73,   72,   71,   70,   69,   68,   67,   66,        140,  139,  138,  137,  136,  135,  134,  133,  132,  131,
        65,   64,   63,   62,   61,   60,   59,   58,   57,   56,        130,  127,  123,  122,  121,  118,  116,  115,  113,  112,
        55,   53,   52,   51,   50,   48,   47,   46,   45,   41,        111,  110,  106,  105,  104,  101,  100,   99,   97,   95,
        37,   34,   30,   21,   10,    7, 2308, 2308, 2308, 2308,         94,   93,   91,   90,   87,   86,   85,   84,   83,   82,
   
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,         81,   79,   78,   77,   76,   75,   74,   73,   72,   71,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308,         70,   69,   68,   67,   66,   65,   64,   63,   62,   61,
      2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308         60,   59,   58,   57,   56,   54,   53,   51,   50,   48,
          47,   46,   45,   41,   37,   34,   30,   21,   10,    7,
        2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
        2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
        2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2351,
        2351, 2351, 2351, 2351
     } ;      } ;
   
 static yy_state_type yy_last_accepting_state;  static yy_state_type yy_last_accepting_state;
Line 1761
 
Line 1786
 #line 2 "loader.l"  #line 2 "loader.l"
 /*  /*
  * static char *rcsid_object_c =   * static char *rcsid_object_c =
  *   "$Id: loader.c,v 1.25 2002/06/09 07:59:30 mwedel Exp $";   *   "$Id: loader.c,v 1.26 2002/07/15 04:57:11 mwedel Exp $";
  */   */
   
 /*  /*
     CrossFire, A Multiplayer game for X-windows      CrossFire, A Multiplayer game for X-windows
   
     Copyright (C) 2000 Mark Wedel      Copyright (C) 2002 Mark Wedel & Crossfire Development Team
     Copyright (C) 1992 Frank Tore Johansen      Copyright (C) 1992 Frank Tore Johansen
   
     This program is free software; you can redistribute it and/or modify      This program is free software; you can redistribute it and/or modify
Line 1784
 
Line 1809
     along with this program; if not, write to the Free Software      along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   
     The author can be reached via e-mail to mwedel@scruz.net      The authors can be reached via e-mail at crossfire-devel@real-time.com
 */  */
   
 /* Eneq(@csd.uu.se): Added weight-modifiers in environment of objects.  /* Eneq(@csd.uu.se): Added weight-modifiers in environment of objects.
Line 1797
 
Line 1822
 #include <newserver.h>  #include <newserver.h>
 #include <sproto.h>  #include <sproto.h>
   
 /* All the variable names.  Each entry should correspond to the  
  * V_ vlaue in loader.h (that is, the 20'th value in this array should  
  * correspond to the 20'th V_(value) in loader.h)  The V_??? get  
  * used as indexes into this array.  
  */  
   
 /* If you change this list (add/delete/rename), also update the list  
  * in crossedit/Attr.c, around line 360.  That list is the variables  
  * that can be set in crossedit for various objects.  
  * Realistically, these are not needed anymore - they were perhaps useful  
  * at one point when both the loader and saver might have used them.  
  * The only thing they are used for at all right now is some of the  
  * get_ob_diff code uses these and indexes with the V_.. fields.  
  * Most of the more recent changes just put the names write in the  
  * get_ob_diff, which then also means you don't really need to worry  
  * about the V_ flags.  
  */  
 static char *variable_const[NR_OF_VARIABLES] = {  
   "Object","name","race","slaying","msg","endmsg",  
   "Inventory","arch","other_arch","More",  
   "animation","end","last_heal","last_sp","last_grace","last_eat",  
   "speed","speed_left","slow_move",  
   "face","Str","Dex","Con","Wis","Cha","Int","Pow","hp","maxhp","sp","maxsp",  
   "grace","maxgrace",  
   "exp","food","dam","wc","ac","x","y","nrof","level","direction",  
   "type","material","value", "weight","carrying",  
   "immune","protected","attacktype","vulnerable",  
   "path_attuned","path_repelled","path_denied",  
   "invisible","magic","state","alive","applied","unpaid","need_an","need_ie",  
   "no_pick","no_pass","walk_on","walk_off","fly_on","fly_off","is_animated",  
   "flying","monster","neutral", "no_attack", "no_damage",  
   "friendly","generator","is_thrown","auto_apply","treasure",  
   "apply_once","see_invisible","can_roll","is_turnable",  
   "is_used_up","identified","reflecting","changing","splitting","hitback",  
   "startequip","blocksview","editable","undead","scared","unaggressive",  
   "reflect_missile","reflect_spell","no_magic",  
   "wiz","was_wiz","no_fix_player","tear_down", "luck",  
   "run_away","pass_thru",  
   "can_pass_thru","pick_up","anim_speed","container","no_drop",  
   "no_pretext","will_apply","random_movement", "can_apply",  
   "can_cast_spell","can_use_scroll","can_use_wand","can_use_bow",  
   "can_use_armour","can_use_weapon","can_use_ring","has_ready_wand",  
   "has_ready_bow","xrays","is_floor","lifesave","no_strength",  
   "sleep","stand_still","random_move","only_attack","armour",  
   "attack_movement","move_state","confused","stealth","connected",  
   "cursed","damned","see_anywhere","known_magical","known_cursed",  
   "can_use_skill","been_applied","title","has_ready_rod","can_use_rod",  
   "has_ready_horn","can_use_horn","expmul",  
   "unique","make_invisible","inv_locked",  
   "is_wooded","is_hilly","has_ready_skill","has_ready_weapon",  
   "no_skill_ident","glow_radius","is_blind","can_see_in_dark",  
   "is_cauldron","randomitems","is_dust", "no_steal", "one_hit","berserk",  
   "weapontype","sub_type", "sub_type2","casting_speed",  
   "elevation",  
 /* GROS - And those are for the new plugin system */  
   "event_apply",    "event_apply_plugin",   "event_apply_options",  
   "event_attack",   "event_attack_plugin",  "event_attack_options",  
   "event_born",     "event_born_plugin",    "event_born_options",  
   "event_crash",    "event_crash_plugin",   "event_crash_options",  
   "event_death",    "event_death_plugin",   "event_death_options",  
   "event_drop",     "event_drop_plugin",    "event_drop_options",  
   "event_login",    "event_login_plugin",   "event_login_options",  
   "event_logout",   "event_logout_plugin",  "event_logout_options",  
   "event_pickup",   "event_pickup_plugin",  "event_pickup_options",  
   "event_remove",   "event_remove_plugin",  "event_remove_options",  
   "event_say",      "event_say_plugin",     "event_say_options",  
   "event_shout",    "event_shout_plugin",   "event_shout_options",  
   "event_tell",     "event_tell_plugin",    "event_tell_options",  
   "event_time",     "event_time_plugin",    "event_time_options",  
   "event_throw",    "event_throw_plugin",   "event_throw_options",  
   "event_trigger",  "event_trigger_plugin", "event_trigger_options",  
   "event_close", "event_close_plugin", "event_close_options",  
   "event_timer",    "event_timer_plugin",   "event_timer_options",  
 #ifdef NPC_PROG  
   "npc_status","npc_program",  
 #endif  
 };  
   
   
 #define YY_DECL int lex_load(object *op, int map_flags)  #define YY_DECL int lex_load(object *op, int map_flags)
   
 static char *yval();  static char *yval();
Line 1922
 
Line 1868
     }      }
 }  }
   
   
   static void set_body_info(object *op, char *params) {
       int i;
       char *cp;
   
       /* go to first space character */
       for (cp=params; !isspace(*cp); cp++) ;
   
       *cp++ = 0; /* null it out */
   
       for (i=0; i<NUM_BODY_LOCATIONS; i++) {
    if (!strcmp(params, body_locations[i].save_name)) {
        op->body_info[i] = atoi(cp);
        return; /* Only one line passed in params */
    }
       }
       LOG(llevError,"set_body_info called with bogus params: %s\n", params);
   }
   
   
   /* This function checks the object after it has been loaded (when we
    * get the 'end' in the input stream).  This function can be used to
    * deal with legacy objects where fields may have changed.  It can also be used
    * to check for objects to make sure there are no common errors.
    */
   static void check_loaded_object(object *op) {
       int ip;
   
       /* We do some specialized handling to handle legacy cases of name_pl.
        * If the object doesn't have a name_pl, we just use the object name -
        * this isn't perfect (things won't be properly pluralized), but works to
        * that degree (5 heart is still quite understandable).  But the case we
        * also have to catch is if this object is not using the normal name for
        * the object.  In that case, we also want to use the loaded name.
        * Otherwise, what happens is that the the plural name will lose
        * information (appear as just 'hearts' and not 'goblins heart')
        */
       if (op->arch && op->name != op->arch->clone.name && op->name_pl == op->arch->clone.name_pl) {
    if (op->name_pl) free_string(op->name_pl);
        op->name_pl = NULL;
       }
       if (!op->name_pl) op->name_pl = add_string(op->name);
   
       /* We changed last_heal to gen_sp_armour, which is what it
        * really does for many objects.  Need to catch any in maps
        * that may have an old value.
        */
       if ((op->type == WEAPON) ||
           (op->type == ARMOUR)   || (op->type == HELMET) ||
           (op->type == SHIELD)   || (op->type == RING) ||
           (op->type == BOOTS)    || (op->type == GLOVES) ||
           (op->type == AMULET )  || (op->type == GIRDLE) ||
           (op->type == BRACERS ) || (op->type == CLOAK)) {
    if (op->last_heal) {
        LOG(llevDebug,"Object %s still has last_heal set, not gen_sp_armour\n",
    op->name?op->name:"NULL");
        op->gen_sp_armour = op->last_heal;
        op->last_heal = 0;
    }
    ip = calc_item_power(op, 0);
    /* Legacy objects from before item power was in the game */
    if (!op->item_power && ip) {
        if (ip > 3) {
    LOG(llevDebug,"Object %s had no item power, using %d\n",
        op->name?op->name:"NULL", ip);
        }
        op->item_power = ip;
    }
    /* Check for possibly bogus values.  Has to meet both these criteria -
    * something that has item_power 1 is probably just fine if our calculated
    * value is 1 or 2 - these values are small enough that hard to be precise.
    * similarly, it item_power is 0, the first check will always pass,
    * but not the second one.
    */
    if (ip > 2 *op->item_power && ip > (op->item_power + 3)) {
        LOG(llevDebug,"Object %s seems to have too low item power? %d > %d\n",
    op->name?op->name:"NULL", ip, op->item_power);
    }
   
       }
   
   }
   
   
 #define MESSAGE 1  #define MESSAGE 1
   
 #define SCRIPT 2  #define SCRIPT 2
Line 2082
 
Line 2112
  register char *yy_cp = NULL, *yy_bp = NULL;   register char *yy_cp = NULL, *yy_bp = NULL;
  register int yy_act;   register int yy_act;
   
 #line 182 "loader.l"  #line 188 "loader.l"
   
   
   
Line 2144
 
Line 2174
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )   while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  {   {
  yy_current_state = (int) yy_def[yy_current_state];   yy_current_state = (int) yy_def[yy_current_state];
  if ( yy_current_state >= 2309 )   if ( yy_current_state >= 2352 )
  yy_c = yy_meta[(unsigned int) yy_c];   yy_c = yy_meta[(unsigned int) yy_c];
  }   }
  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];   yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  ++yy_cp;   ++yy_cp;
  }   }
  while ( yy_base[yy_current_state] != 2597 );   while ( yy_base[yy_current_state] != 2641 );
   
 yy_find_action:  yy_find_action:
  yy_act = yy_accept[yy_current_state];   yy_act = yy_accept[yy_current_state];
Line 2181
 
Line 2211
 yy_c_buf_p = yy_cp -= 1;  yy_c_buf_p = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */  YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 192 "loader.l"  #line 198 "loader.l"
 { BEGIN( MESSAGE ); msgbuf[0]='\0'; }  { BEGIN( MESSAGE ); msgbuf[0]='\0'; }
  YY_BREAK   YY_BREAK
 case 2:  case 2:
Line 2189
 
Line 2219
 yy_c_buf_p = yy_cp -= 1;  yy_c_buf_p = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */  YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 193 "loader.l"  #line 199 "loader.l"
 { BEGIN( INITIAL );  { BEGIN( INITIAL );
  op->msg=add_string(msgbuf);   op->msg=add_string(msgbuf);
  /* Just print a warning so we can be reasonably safe   /* Just print a warning so we can be reasonably safe
Line 2202
 
Line 2232
  YY_BREAK   YY_BREAK
 case 3:  case 3:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 202 "loader.l"  #line 208 "loader.l"
 {strcat(msgbuf, yytext); strcat(msgbuf,"\n"); }  {strcat(msgbuf, yytext); strcat(msgbuf,"\n"); }
  YY_BREAK   YY_BREAK
 case 4:  case 4:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 203 "loader.l"  #line 209 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') {   if (*yv=='\0') {
Line 2224
 
Line 2254
  YY_BREAK   YY_BREAK
 case 5:  case 5:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 217 "loader.l"  #line 223 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Name without val\n");   if (*yv=='\0') LOG(llevError,"Name without val\n");
Line 2233
 
Line 2263
  YY_BREAK   YY_BREAK
 case 6:  case 6:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 222 "loader.l"  #line 228 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Name without val\n");   if (*yv=='\0') LOG(llevError,"Name without val\n");
Line 2242
 
Line 2272
  YY_BREAK   YY_BREAK
 case 7:  case 7:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 227 "loader.l"  #line 233 "loader.l"
 FREE_AND_COPY(op->race,yval());  FREE_AND_COPY(op->race,yval());
  YY_BREAK   YY_BREAK
 case 8:  case 8:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 228 "loader.l"  #line 234 "loader.l"
 FREE_AND_COPY(op->slaying, yval());  FREE_AND_COPY(op->slaying, yval());
  YY_BREAK   YY_BREAK
 case 9:  case 9:
Line 2255
 
Line 2285
 yy_c_buf_p = yy_cp -= 1;  yy_c_buf_p = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */  YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 229 "loader.l"  #line 235 "loader.l"
 LOG(llevError,"Got depreciated Inventory command?\n");  LOG(llevError,"Got depreciated Inventory command?\n");
  YY_BREAK   YY_BREAK
 case 10:  case 10:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 232 "loader.l"  #line 238 "loader.l"
 { /* If op->arch has been set, then this new object  { /* If op->arch has been set, then this new object
  * must be part of the inventory.  So process   * must be part of the inventory.  So process
  * appropriately.   * appropriately.
Line 2285
 
Line 2315
  YY_BREAK   YY_BREAK
 case 11:  case 11:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 254 "loader.l"  #line 260 "loader.l"
 op->other_arch=find_archetype(yval());  op->other_arch=find_archetype(yval());
  YY_BREAK   YY_BREAK
 case 12:  case 12:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 255 "loader.l"  #line 261 "loader.l"
 {  {
  if (strcmp (yval(), "NONE") == 0) {   if (strcmp (yval(), "NONE") == 0) {
      op->animation_id = 0;       op->animation_id = 0;
Line 2306
 
Line 2336
 yy_c_buf_p = yy_cp -= 1;  yy_c_buf_p = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */  YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 265 "loader.l"  #line 271 "loader.l"
 { /* We need to record that this is a multipart object,  { /* We need to record that this is a multipart object,
         * so the calling function can glue things back together          * so the calling function can glue things back together
         */          */
Line 2318
 
Line 2348
 yy_c_buf_p = yy_cp -= 1;  yy_c_buf_p = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */  YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 271 "loader.l"  #line 277 "loader.l"
 { /* We do some specialized handling to handle legacy cases of  { check_loaded_object(op);
  * name_pl.  If the object doesn't have a name_pl, we just  
  * use the object name - this isn't perfect (things won't be  
  * properly pluralized), but works to that degree (5 heart is still  
  * quite understandable).  But the case we also have to catch is  
  * if this object is not using the normal name for the object.  In that  
  * case, we also want to use the loaded name.  Otherwise, what happens  
  * is that the the plural name will lose information (appear as  
  * just 'hearts' and not 'goblins heart')  
  */  
  if (op->arch && op->name != op->arch->clone.name && op->name_pl == op->arch->clone.name_pl) {  
      if (op->name_pl) free_string(op->name_pl);  
      op->name_pl = NULL;  
  }  
  if (!op->name_pl) op->name_pl = add_string(op->name);  
   
  if (ismore) return LL_MORE;    if (ismore) return LL_MORE;
  else return LL_NORMAL;   else return LL_NORMAL;
      }       }
  YY_BREAK   YY_BREAK
 case 15:  case 15:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 290 "loader.l"  #line 281 "loader.l"
 op->last_heal = IVAL;  op->last_heal = IVAL;
  YY_BREAK   YY_BREAK
 case 16:  case 16:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 291 "loader.l"  #line 282 "loader.l"
 op->last_sp = IVAL;  op->last_sp = IVAL;
  YY_BREAK   YY_BREAK
 case 17:  case 17:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 292 "loader.l"  #line 283 "loader.l"
 op->last_grace = IVAL;  op->last_grace = IVAL;
  YY_BREAK   YY_BREAK
 case 18:  case 18:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 293 "loader.l"  #line 284 "loader.l"
 op->last_eat = IVAL;  op->last_eat = IVAL;
  YY_BREAK   YY_BREAK
 case 19:  case 19:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 294 "loader.l"  #line 285 "loader.l"
 { op->speed = FVAL;  { op->speed = FVAL;
  if (op->speed<0) op->speed_left = op->speed_left-RANDOM()%100/100.0;   if (op->speed<0) op->speed_left = op->speed_left-RANDOM()%100/100.0;
  if (!(map_flags & MAP_STYLE)) update_ob_speed(op);   if (!(map_flags & MAP_STYLE)) update_ob_speed(op);
Line 2370
 
Line 2385
  YY_BREAK   YY_BREAK
 case 20:  case 20:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 299 "loader.l"  #line 290 "loader.l"
 op->speed_left = FVAL;  op->speed_left = FVAL;
  YY_BREAK   YY_BREAK
 case 21:  case 21:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 300 "loader.l"  #line 291 "loader.l"
 { SET_SLOW_PENALTY(op,FVAL);  { SET_SLOW_PENALTY(op,FVAL);
  SET_FLAG(op, FLAG_SLOW_MOVE);   SET_FLAG(op, FLAG_SLOW_MOVE);
      }       }
  YY_BREAK   YY_BREAK
 case 22:  case 22:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 303 "loader.l"  #line 294 "loader.l"
 op->face = &new_faces[FindFace(yval(), 0)];  { char *y=yval();
    if (*y=='\0') LOG(llevError,"Title without value.\n");
    else FREE_AND_COPY(op->title, y);
        }
  YY_BREAK   YY_BREAK
 case 23:  case 23:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 304 "loader.l"  #line 299 "loader.l"
 op->stats.Str = IVAL;  op->face = &new_faces[FindFace(yval(), 0)];
  YY_BREAK   YY_BREAK
 case 24:  case 24:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 305 "loader.l"  #line 300 "loader.l"
 op->stats.Dex = IVAL;  op->stats.Str = IVAL;
  YY_BREAK   YY_BREAK
 case 25:  case 25:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 306 "loader.l"  #line 301 "loader.l"
 op->stats.Con = IVAL;  op->stats.Dex = IVAL;
  YY_BREAK   YY_BREAK
 case 26:  case 26:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 307 "loader.l"  #line 302 "loader.l"
 op->stats.Wis = IVAL;  op->stats.Con = IVAL;
  YY_BREAK   YY_BREAK
 case 27:  case 27:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 308 "loader.l"  #line 303 "loader.l"
 op->stats.Cha = IVAL;  op->stats.Wis = IVAL;
  YY_BREAK   YY_BREAK
 case 28:  case 28:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 309 "loader.l"  #line 304 "loader.l"
 op->stats.Int = IVAL;  op->stats.Cha = IVAL;
  YY_BREAK   YY_BREAK
 case 29:  case 29:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 310 "loader.l"  #line 305 "loader.l"
 op->stats.Pow = IVAL;  op->stats.Int = IVAL;
  YY_BREAK   YY_BREAK
 case 30:  case 30:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 311 "loader.l"  #line 306 "loader.l"
 op->stats.hp = IVAL;  op->stats.Pow = IVAL;
  YY_BREAK   YY_BREAK
 case 31:  case 31:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 312 "loader.l"  #line 307 "loader.l"
 op->stats.maxhp = IVAL;  op->stats.hp = IVAL;
  YY_BREAK   YY_BREAK
 case 32:  case 32:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 313 "loader.l"  #line 308 "loader.l"
 op->stats.sp = IVAL;  op->stats.maxhp = IVAL;
  YY_BREAK   YY_BREAK
 case 33:  case 33:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 314 "loader.l"  #line 309 "loader.l"
 op->stats.maxsp = IVAL;  op->stats.sp = IVAL;
  YY_BREAK   YY_BREAK
 case 34:  case 34:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 315 "loader.l"  #line 310 "loader.l"
 op->stats.grace = IVAL;  op->stats.maxsp = IVAL;
  YY_BREAK   YY_BREAK
 case 35:  case 35:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 316 "loader.l"  #line 311 "loader.l"
 op->stats.maxgrace = IVAL;  op->stats.grace = IVAL;
  YY_BREAK   YY_BREAK
 case 36:  case 36:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 317 "loader.l"  #line 312 "loader.l"
 op->stats.exp = atol(yval());  op->stats.maxgrace = IVAL;
  YY_BREAK   YY_BREAK
 case 37:  case 37:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 318 "loader.l"  #line 313 "loader.l"
 op->stats.food = IVAL;  op->stats.exp = atol(yval());
  YY_BREAK   YY_BREAK
 case 38:  case 38:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 319 "loader.l"  #line 314 "loader.l"
 op->stats.dam = IVAL;  op->stats.food = IVAL;
  YY_BREAK   YY_BREAK
 case 39:  case 39:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 320 "loader.l"  #line 315 "loader.l"
 op->stats.wc = IVAL;  op->stats.dam = IVAL;
  YY_BREAK   YY_BREAK
 case 40:  case 40:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 321 "loader.l"  #line 316 "loader.l"
 op->stats.ac = IVAL;  op->stats.wc = IVAL;
  YY_BREAK   YY_BREAK
 case 41:  case 41:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 322 "loader.l"  #line 317 "loader.l"
 {op->x = IVAL; op->ox= op->x; }  op->stats.ac = IVAL;
  YY_BREAK   YY_BREAK
 case 42:  case 42:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 323 "loader.l"  #line 318 "loader.l"
 {op->y = IVAL; op->oy= op->y; }  {op->x = IVAL; op->ox= op->x; }
  YY_BREAK   YY_BREAK
 case 43:  case 43:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 324 "loader.l"  #line 319 "loader.l"
 op->nrof= atol(yval());  {op->y = IVAL; op->oy= op->y; }
  YY_BREAK   YY_BREAK
 case 44:  case 44:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 325 "loader.l"  #line 320 "loader.l"
 op->level = IVAL;  op->nrof= atol(yval());
  YY_BREAK   YY_BREAK
 case 45:  case 45:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 326 "loader.l"  #line 321 "loader.l"
 op->direction = IVAL;  op->level = IVAL;
  YY_BREAK   YY_BREAK
 case 46:  case 46:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 327 "loader.l"  #line 322 "loader.l"
 op->type = IVAL;  op->direction = IVAL;
  YY_BREAK   YY_BREAK
 case 47:  case 47:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 328 "loader.l"  #line 323 "loader.l"
 op->material = IVAL;  op->type = IVAL;
  YY_BREAK   YY_BREAK
 case 48:  case 48:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 329 "loader.l"  #line 324 "loader.l"
 op->value = IVAL;  op->material = IVAL;
  YY_BREAK   YY_BREAK
 case 49:  case 49:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 330 "loader.l"  #line 325 "loader.l"
 op->weight = atol(yval());  op->value = IVAL;
  YY_BREAK   YY_BREAK
 case 50:  case 50:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 331 "loader.l"  #line 326 "loader.l"
 op->carrying = atol(yval());  op->weight = atol(yval());
  YY_BREAK   YY_BREAK
 case 51:  case 51:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 332 "loader.l"  #line 327 "loader.l"
 op->attacktype = IVAL;  op->carrying = atol(yval());
  YY_BREAK   YY_BREAK
 case 52:  case 52:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 333 "loader.l"  #line 328 "loader.l"
 op->path_attuned = IVAL;  op->attacktype = IVAL;
  YY_BREAK   YY_BREAK
 case 53:  case 53:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 334 "loader.l"  #line 329 "loader.l"
 op->path_repelled = IVAL;  op->path_attuned = IVAL;
  YY_BREAK   YY_BREAK
 case 54:  case 54:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 335 "loader.l"  #line 330 "loader.l"
 op->path_denied = IVAL;  op->path_repelled = IVAL;
  YY_BREAK   YY_BREAK
 case 55:  case 55:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 336 "loader.l"  #line 331 "loader.l"
 op->invisible = IVAL;  op->path_denied = IVAL;
  YY_BREAK   YY_BREAK
 case 56:  case 56:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 337 "loader.l"  #line 332 "loader.l"
 op->magic = IVAL;  op->invisible = IVAL;
  YY_BREAK   YY_BREAK
 case 57:  case 57:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 338 "loader.l"  #line 333 "loader.l"
 op->state = IVAL;  op->magic = IVAL;
  YY_BREAK   YY_BREAK
 case 58:  case 58:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 339 "loader.l"  #line 334 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_ALIVE, IVAL);  op->state = IVAL;
  YY_BREAK   YY_BREAK
 case 59:  case 59:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 340 "loader.l"  #line 335 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_APPLIED, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_ALIVE, IVAL);
  YY_BREAK   YY_BREAK
 case 60:  case 60:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 341 "loader.l"  #line 336 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_UNPAID, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_APPLIED, IVAL);
  YY_BREAK   YY_BREAK
 case 61:  case 61:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 342 "loader.l"  #line 337 "loader.l"
 { /* not used - just ignore */ }  SET_OR_CLEAR_FLAG(op, FLAG_UNPAID, IVAL);
  YY_BREAK   YY_BREAK
 case 62:  case 62:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 343 "loader.l"  #line 338 "loader.l"
 { /* not used - jsut ignore */ }  { /* not used - just ignore */ }
  YY_BREAK   YY_BREAK
 case 63:  case 63:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 344 "loader.l"  #line 339 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NO_PICK, IVAL);  { /* not used - jsut ignore */ }
  YY_BREAK   YY_BREAK
 case 64:  case 64:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 345 "loader.l"  #line 340 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NO_PASS, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_NO_PICK, IVAL);
  YY_BREAK   YY_BREAK
 case 65:  case 65:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 346 "loader.l"  #line 341 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_WALK_ON, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_NO_PASS, IVAL);
  YY_BREAK   YY_BREAK
 case 66:  case 66:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 347 "loader.l"  #line 342 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_WALK_OFF, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_ANIMATE, IVAL);
  YY_BREAK   YY_BREAK
 case 67:  case 67:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 348 "loader.l"  #line 343 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_FLY_ON, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_WALK_ON, IVAL);
  YY_BREAK   YY_BREAK
 case 68:  case 68:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 349 "loader.l"  #line 344 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_FLY_OFF, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_WALK_OFF, IVAL);
  YY_BREAK   YY_BREAK
 case 69:  case 69:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 350 "loader.l"  #line 345 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_ANIMATE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_FLY_ON, IVAL);
  YY_BREAK   YY_BREAK
 case 70:  case 70:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 351 "loader.l"  #line 346 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_FLYING, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_FLY_OFF, IVAL);
  YY_BREAK   YY_BREAK
 case 71:  case 71:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 352 "loader.l"  #line 347 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_MONSTER, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_FLYING, IVAL);
  YY_BREAK   YY_BREAK
 case 72:  case 72:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 353 "loader.l"  #line 348 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NEUTRAL, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_MONSTER, IVAL);
  YY_BREAK   YY_BREAK
 case 73:  case 73:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 354 "loader.l"  #line 349 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NO_ATTACK, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_NEUTRAL, IVAL);
  YY_BREAK   YY_BREAK
 case 74:  case 74:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 355 "loader.l"  #line 350 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NO_DAMAGE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_NO_ATTACK, IVAL);
  YY_BREAK   YY_BREAK
 case 75:  case 75:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 356 "loader.l"  #line 351 "loader.l"
   SET_OR_CLEAR_FLAG(op, FLAG_NO_DAMAGE, IVAL);
    YY_BREAK
   case 76:
   YY_RULE_SETUP
   #line 352 "loader.l"
 { if (IVAL) {  { if (IVAL) {
      SET_FLAG(op, FLAG_FRIENDLY);       SET_FLAG(op, FLAG_FRIENDLY);
      if (op->type != PLAYER) {       if (op->type != PLAYER) {
Line 2658
 
Line 2681
  else CLEAR_FLAG(op, FLAG_FRIENDLY);   else CLEAR_FLAG(op, FLAG_FRIENDLY);
      }       }
  YY_BREAK   YY_BREAK
 case 76:  
 YY_RULE_SETUP  
 #line 365 "loader.l"  
 SET_OR_CLEAR_FLAG(op, FLAG_GENERATOR, IVAL);  
  YY_BREAK  
 case 77:  case 77:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 366 "loader.l"  #line 361 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_IS_THROWN, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_GENERATOR, IVAL);
  YY_BREAK   YY_BREAK
 case 78:  case 78:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 367 "loader.l"  #line 362 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_AUTO_APPLY, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_IS_THROWN, IVAL);
  YY_BREAK   YY_BREAK
 case 79:  case 79:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 368 "loader.l"  #line 363 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_TREASURE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_AUTO_APPLY, IVAL);
  YY_BREAK   YY_BREAK
 case 80:  case 80:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 369 "loader.l"  #line 364 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_APPLY_ONCE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_TREASURE, IVAL);
  YY_BREAK   YY_BREAK
 case 81:  case 81:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 370 "loader.l"  #line 365 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_SEE_INVISIBLE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_SEE_INVISIBLE, IVAL);
  YY_BREAK   YY_BREAK
 case 82:  case 82:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 371 "loader.l"  #line 366 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_CAN_ROLL, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_CAN_ROLL, IVAL);
  YY_BREAK   YY_BREAK
 case 83:  case 83:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 372 "loader.l"  #line 367 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_IS_TURNABLE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_IS_TURNABLE, IVAL);
  YY_BREAK   YY_BREAK
 case 84:  case 84:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 373 "loader.l"  #line 368 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_IS_USED_UP, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_IS_USED_UP, IVAL);
  YY_BREAK   YY_BREAK
 case 85:  case 85:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 374 "loader.l"  #line 369 "loader.l"
 { if (IVAL) {  { if (IVAL) {
      SET_FLAG(op, FLAG_IDENTIFIED);       SET_FLAG(op, FLAG_IDENTIFIED);
      CLEAR_FLAG(op, FLAG_KNOWN_MAGICAL);       CLEAR_FLAG(op, FLAG_KNOWN_MAGICAL);
Line 2715
 
Line 2733
  YY_BREAK   YY_BREAK
 case 86:  case 86:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 380 "loader.l"  #line 375 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_REFLECTING, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_REFLECTING, IVAL);
  YY_BREAK   YY_BREAK
 case 87:  case 87:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 381 "loader.l"  #line 376 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_CHANGING, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_CHANGING, IVAL);
  YY_BREAK   YY_BREAK
 case 88:  case 88:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 382 "loader.l"  #line 377 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_SPLITTING, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_SPLITTING, IVAL);
  YY_BREAK   YY_BREAK
 case 89:  case 89:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 383 "loader.l"  #line 378 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_HITBACK, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_HITBACK, IVAL);
  YY_BREAK   YY_BREAK
 case 90:  case 90:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 384 "loader.l"  #line 379 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_STARTEQUIP, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_STARTEQUIP, IVAL);
  YY_BREAK   YY_BREAK
 case 91:  case 91:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 385 "loader.l"  #line 380 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_BLOCKSVIEW, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_BLOCKSVIEW, IVAL);
  YY_BREAK   YY_BREAK
 case 92:  case 92:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 386 "loader.l"  #line 381 "loader.l"
 op->arch->editable = IVAL;  op->arch->editable = IVAL;
  YY_BREAK   YY_BREAK
 case 93:  case 93:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 387 "loader.l"  #line 382 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_UNDEAD, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_UNDEAD, IVAL);
  YY_BREAK   YY_BREAK
 case 94:  case 94:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 388 "loader.l"  #line 383 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_SCARED, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_SCARED, IVAL);
  YY_BREAK   YY_BREAK
 case 95:  case 95:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 389 "loader.l"  #line 384 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_UNAGGRESSIVE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_UNAGGRESSIVE, IVAL);
  YY_BREAK   YY_BREAK
 case 96:  case 96:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 390 "loader.l"  #line 385 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_REFL_MISSILE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_REFL_MISSILE, IVAL);
  YY_BREAK   YY_BREAK
 case 97:  case 97:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 391 "loader.l"  #line 386 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_REFL_SPELL, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_REFL_SPELL, IVAL);
  YY_BREAK   YY_BREAK
 case 98:  case 98:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 392 "loader.l"  #line 387 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NO_MAGIC, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_NO_MAGIC, IVAL);
  YY_BREAK   YY_BREAK
 case 99:  case 99:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 393 "loader.l"  #line 388 "loader.l"
 { if (IVAL) {  { if (IVAL) {
      SET_FLAG(op, FLAG_WIZ);       SET_FLAG(op, FLAG_WIZ);
      SET_FLAG(op, FLAG_WAS_WIZ);       SET_FLAG(op, FLAG_WAS_WIZ);
Line 2794
 
Line 2812
  YY_BREAK   YY_BREAK
 case 100:  case 100:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 403 "loader.l"  #line 398 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_WAS_WIZ, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_WAS_WIZ, IVAL);
  YY_BREAK   YY_BREAK
 case 101:  case 101:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 404 "loader.l"  #line 399 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NO_FIX_PLAYER, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_NO_FIX_PLAYER, IVAL);
  YY_BREAK   YY_BREAK
 case 102:  case 102:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 405 "loader.l"  #line 400 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_TEAR_DOWN, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_TEAR_DOWN, IVAL);
  YY_BREAK   YY_BREAK
 case 103:  case 103:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 406 "loader.l"  #line 401 "loader.l"
 op->stats.luck = IVAL;  op->stats.luck = IVAL;
  YY_BREAK   YY_BREAK
 case 104:  case 104:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 407 "loader.l"  #line 402 "loader.l"
 op->run_away = IVAL;  op->run_away = IVAL;
  YY_BREAK   YY_BREAK
 case 105:  case 105:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 408 "loader.l"  #line 403 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_PASS_THRU, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_PASS_THRU, IVAL);
  YY_BREAK   YY_BREAK
 case 106:  case 106:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 409 "loader.l"  #line 404 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_CAN_PASS_THRU, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_CAN_PASS_THRU, IVAL);
  YY_BREAK   YY_BREAK
 case 107:  case 107:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 410 "loader.l"  #line 405 "loader.l"
 op->pick_up = IVAL;  op->pick_up = IVAL;
  YY_BREAK   YY_BREAK
 case 108:  case 108:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 411 "loader.l"  #line 406 "loader.l"
 op->anim_speed = IVAL;  op->item_power = IVAL;
  YY_BREAK   YY_BREAK
 case 109:  case 109:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 412 "loader.l"  #line 407 "loader.l"
 op->weight_limit = IVAL;  op->gen_sp_armour = IVAL;
  YY_BREAK   YY_BREAK
 case 110:  case 110:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 413 "loader.l"  #line 408 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NO_DROP, IVAL);  op->anim_speed = IVAL;
  YY_BREAK   YY_BREAK
 case 111:  case 111:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 414 "loader.l"  #line 409 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NO_PRETEXT, IVAL);  op->weight_limit = IVAL;
  YY_BREAK   YY_BREAK
 case 112:  case 112:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 415 "loader.l"  #line 410 "loader.l"
 op->will_apply = IVAL;  SET_OR_CLEAR_FLAG(op, FLAG_NO_DROP, IVAL);
  YY_BREAK   YY_BREAK
 case 113:  case 113:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 416 "loader.l"  #line 411 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_RANDOM_MOVE, IVAL);  op->will_apply = IVAL;
  YY_BREAK   YY_BREAK
 case 114:  case 114:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 417 "loader.l"  #line 412 "loader.l"
 op->can_apply = IVAL;  SET_OR_CLEAR_FLAG(op, FLAG_RANDOM_MOVE, IVAL);
  YY_BREAK   YY_BREAK
 case 115:  case 115:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 418 "loader.l"  #line 413 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_CAST_SPELL, IVAL);  { }
  YY_BREAK   YY_BREAK
 case 116:  case 116:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 419 "loader.l"  #line 414 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_USE_SCROLL, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_USE_SHIELD, IVAL);
  YY_BREAK   YY_BREAK
 case 117:  case 117:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 420 "loader.l"  #line 415 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_USE_WAND, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_CAST_SPELL, IVAL);
  YY_BREAK   YY_BREAK
 case 118:  case 118:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 421 "loader.l"  #line 416 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_USE_BOW, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_USE_SCROLL, IVAL);
  YY_BREAK   YY_BREAK
 case 119:  case 119:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 422 "loader.l"  #line 417 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_USE_ARMOUR, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_USE_RANGE, IVAL);
  YY_BREAK   YY_BREAK
 case 120:  case 120:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 423 "loader.l"  #line 418 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_USE_WEAPON, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_USE_BOW, IVAL);
  YY_BREAK   YY_BREAK
 case 121:  case 121:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 424 "loader.l"  #line 419 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_USE_RING, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_USE_ARMOUR, IVAL);
  YY_BREAK   YY_BREAK
 case 122:  case 122:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 425 "loader.l"  #line 420 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_READY_WAND, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_USE_WEAPON, IVAL);
  YY_BREAK   YY_BREAK
 case 123:  case 123:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 426 "loader.l"  #line 421 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_READY_BOW, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_USE_RING, IVAL);
  YY_BREAK   YY_BREAK
 case 124:  case 124:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 427 "loader.l"  #line 422 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_XRAYS, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_READY_BOW, IVAL);
  YY_BREAK   YY_BREAK
 case 125:  case 125:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 428 "loader.l"  #line 423 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_IS_FLOOR, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_XRAYS, IVAL);
  YY_BREAK   YY_BREAK
 case 126:  case 126:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 429 "loader.l"  #line 424 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_LIFESAVE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_IS_FLOOR, IVAL);
  YY_BREAK   YY_BREAK
 case 127:  case 127:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 430 "loader.l"  #line 425 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NO_STRENGTH, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_LIFESAVE, IVAL);
  YY_BREAK   YY_BREAK
 case 128:  case 128:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 431 "loader.l"  #line 426 "loader.l"
   SET_OR_CLEAR_FLAG(op, FLAG_NO_STRENGTH, IVAL);
    YY_BREAK
   case 129:
   YY_RULE_SETUP
   #line 427 "loader.l"
 {  {
  SET_OR_CLEAR_FLAG(op, FLAG_SLEEP, IVAL);   SET_OR_CLEAR_FLAG(op, FLAG_SLEEP, IVAL);
  /*(LOG(llevDebug," Warning: Object %s has sleep set in arch.\n",op->name);*/   /*(LOG(llevDebug," Warning: Object %s has sleep set in arch.\n",op->name);*/
      }       }
  YY_BREAK   YY_BREAK
 case 129:  case 130:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 435 "loader.l"  #line 431 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_STAND_STILL, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_STAND_STILL, IVAL);
  YY_BREAK   YY_BREAK
 case 130:  case 131:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 436 "loader.l"  #line 432 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_RANDOM_MOVE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_RANDOM_MOVE, IVAL);
  YY_BREAK   YY_BREAK
 case 131:  case 132:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 437 "loader.l"  #line 433 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_ONLY_ATTACK, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_ONLY_ATTACK, IVAL);
  YY_BREAK   YY_BREAK
 /* armour is loaded for compatiblity reasons */  /* armour is loaded for compatiblity reasons */
 case 132:  case 133:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 440 "loader.l"  #line 436 "loader.l"
 SET_RESIST(op, ATNR_PHYSICAL, IVAL);  SET_RESIST(op, ATNR_PHYSICAL, IVAL);
  YY_BREAK   YY_BREAK
 /* Start of various attacktypes */  /* Start of various attacktypes */
 case 133:  case 134:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 442 "loader.l"  #line 438 "loader.l"
 SET_RESIST(op, ATNR_PHYSICAL, IVAL);  SET_RESIST(op, ATNR_PHYSICAL, IVAL);
  YY_BREAK   YY_BREAK
 case 134:  case 135:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 443 "loader.l"  #line 439 "loader.l"
 SET_RESIST(op, ATNR_MAGIC, IVAL);  SET_RESIST(op, ATNR_MAGIC, IVAL);
  YY_BREAK   YY_BREAK
 case 135:  case 136:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 444 "loader.l"  #line 440 "loader.l"
 SET_RESIST(op, ATNR_FIRE, IVAL);  SET_RESIST(op, ATNR_FIRE, IVAL);
  YY_BREAK   YY_BREAK
 case 136:  case 137:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 445 "loader.l"  #line 441 "loader.l"
 SET_RESIST(op, ATNR_ELECTRICITY, IVAL);  SET_RESIST(op, ATNR_ELECTRICITY, IVAL);
  YY_BREAK   YY_BREAK
 case 137:  case 138:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 446 "loader.l"  #line 442 "loader.l"
 SET_RESIST(op, ATNR_COLD, IVAL);  SET_RESIST(op, ATNR_COLD, IVAL);
  YY_BREAK   YY_BREAK
 case 138:  case 139:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 447 "loader.l"  #line 443 "loader.l"
 SET_RESIST(op, ATNR_CONFUSION, IVAL);  SET_RESIST(op, ATNR_CONFUSION, IVAL);
  YY_BREAK   YY_BREAK
 case 139:  case 140:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 448 "loader.l"  #line 444 "loader.l"
 SET_RESIST(op, ATNR_ACID, IVAL);  SET_RESIST(op, ATNR_ACID, IVAL);
  YY_BREAK   YY_BREAK
 case 140:  case 141:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 449 "loader.l"  #line 445 "loader.l"
 SET_RESIST(op, ATNR_DRAIN, IVAL);  SET_RESIST(op, ATNR_DRAIN, IVAL);
  YY_BREAK   YY_BREAK
 case 141:  case 142:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 450 "loader.l"  #line 446 "loader.l"
 SET_RESIST(op, ATNR_WEAPONMAGIC, IVAL);  SET_RESIST(op, ATNR_WEAPONMAGIC, IVAL);
  YY_BREAK   YY_BREAK
 case 142:  case 143:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 451 "loader.l"  #line 447 "loader.l"
 SET_RESIST(op, ATNR_GHOSTHIT, IVAL);  SET_RESIST(op, ATNR_GHOSTHIT, IVAL);
  YY_BREAK   YY_BREAK
 case 143:  case 144:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 452 "loader.l"  #line 448 "loader.l"
 SET_RESIST(op, ATNR_POISON, IVAL);  SET_RESIST(op, ATNR_POISON, IVAL);
  YY_BREAK   YY_BREAK
 case 144:  case 145:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 453 "loader.l"  #line 449 "loader.l"
 SET_RESIST(op, ATNR_SLOW, IVAL);  SET_RESIST(op, ATNR_SLOW, IVAL);
  YY_BREAK   YY_BREAK
 case 145:  case 146:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 454 "loader.l"  #line 450 "loader.l"
 SET_RESIST(op, ATNR_PARALYZE, IVAL);  SET_RESIST(op, ATNR_PARALYZE, IVAL);
  YY_BREAK   YY_BREAK
 case 146:  case 147:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 455 "loader.l"  #line 451 "loader.l"
 SET_RESIST(op, ATNR_TURN_UNDEAD, IVAL);  SET_RESIST(op, ATNR_TURN_UNDEAD, IVAL);
  YY_BREAK   YY_BREAK
 case 147:  case 148:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 456 "loader.l"  #line 452 "loader.l"
 SET_RESIST(op, ATNR_FEAR, IVAL);  SET_RESIST(op, ATNR_FEAR, IVAL);
  YY_BREAK   YY_BREAK
 case 148:  case 149:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 457 "loader.l"  #line 453 "loader.l"
 SET_RESIST(op, ATNR_CANCELLATION, IVAL);  SET_RESIST(op, ATNR_CANCELLATION, IVAL);
  YY_BREAK   YY_BREAK
 case 149:  case 150:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 458 "loader.l"  #line 454 "loader.l"
 SET_RESIST(op, ATNR_DEPLETE, IVAL);  SET_RESIST(op, ATNR_DEPLETE, IVAL);
  YY_BREAK   YY_BREAK
 case 150:  case 151:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 459 "loader.l"  #line 455 "loader.l"
 SET_RESIST(op, ATNR_DEATH, IVAL);  SET_RESIST(op, ATNR_DEATH, IVAL);
  YY_BREAK   YY_BREAK
 case 151:  case 152:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 460 "loader.l"  #line 456 "loader.l"
 SET_RESIST(op, ATNR_CHAOS, IVAL);  SET_RESIST(op, ATNR_CHAOS, IVAL);
  YY_BREAK   YY_BREAK
 case 152:  case 153:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 461 "loader.l"  #line 457 "loader.l"
 SET_RESIST(op, ATNR_COUNTERSPELL, IVAL);  SET_RESIST(op, ATNR_COUNTERSPELL, IVAL);
  YY_BREAK   YY_BREAK
 case 153:  case 154:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 462 "loader.l"  #line 458 "loader.l"
 SET_RESIST(op, ATNR_GODPOWER, IVAL);  SET_RESIST(op, ATNR_GODPOWER, IVAL);
  YY_BREAK   YY_BREAK
 case 154:  case 155:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 463 "loader.l"  #line 459 "loader.l"
 SET_RESIST(op, ATNR_HOLYWORD, IVAL);  SET_RESIST(op, ATNR_HOLYWORD, IVAL);
  YY_BREAK   YY_BREAK
 case 155:  case 156:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 464 "loader.l"  #line 460 "loader.l"
 SET_RESIST(op, ATNR_BLIND, IVAL);  SET_RESIST(op, ATNR_BLIND, IVAL);
  YY_BREAK   YY_BREAK
 case 156:  case 157:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 465 "loader.l"  #line 461 "loader.l"
 SET_RESIST(op, ATNR_INTERNAL, IVAL);  SET_RESIST(op, ATNR_INTERNAL, IVAL);
  YY_BREAK   YY_BREAK
 /* Old style resistances */  /* Old style resistances */
 case 157:  case 158:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 468 "loader.l"  #line 464 "loader.l"
 set_protection(op, IVAL, RESIST_IMMUNE);  set_protection(op, IVAL, RESIST_IMMUNE);
  YY_BREAK   YY_BREAK
 case 158:  case 159:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 469 "loader.l"  #line 465 "loader.l"
 set_protection(op, IVAL, RESIST_PROT);  set_protection(op, IVAL, RESIST_PROT);
  YY_BREAK   YY_BREAK
 case 159:  case 160:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 470 "loader.l"  #line 466 "loader.l"
 set_protection(op, IVAL, RESIST_VULN);  set_protection(op, IVAL, RESIST_VULN);
  YY_BREAK   YY_BREAK
 case 160:  /* old values - keep them around for now, but they should be removed at some point */
   case 161:
   YY_RULE_SETUP
   #line 469 "loader.l"
   SET_OR_CLEAR_FLAG(op, FLAG_READY_RANGE, IVAL);
    YY_BREAK
   case 162:
   YY_RULE_SETUP
   #line 470 "loader.l"
   SET_OR_CLEAR_FLAG(op, FLAG_READY_RANGE, IVAL);
    YY_BREAK
   case 163:
   YY_RULE_SETUP
   #line 471 "loader.l"
   SET_OR_CLEAR_FLAG(op, FLAG_READY_RANGE, IVAL);
    YY_BREAK
   case 164:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 472 "loader.l"  #line 472 "loader.l"
   SET_OR_CLEAR_FLAG(op, FLAG_USE_RANGE, IVAL);
    YY_BREAK
   case 165:
   YY_RULE_SETUP
   #line 474 "loader.l"
 op->move_type = IVAL;  op->move_type = IVAL;
  YY_BREAK   YY_BREAK
 case 161:  case 166:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 473 "loader.l"  #line 475 "loader.l"
 op->move_status = IVAL;  op->move_status = IVAL;
  YY_BREAK   YY_BREAK
 case 162:  case 167:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 474 "loader.l"  #line 476 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_CONFUSED, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_CONFUSED, IVAL);
  YY_BREAK   YY_BREAK
 case 163:  case 168:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 475 "loader.l"  #line 477 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_STEALTH, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_STEALTH, IVAL);
  YY_BREAK   YY_BREAK
 case 164:  case 169:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 476 "loader.l"  #line 478 "loader.l"
 add_button_link(op, op->map, IVAL);  add_button_link(op, op->map, IVAL);
  YY_BREAK   YY_BREAK
 case 165:  case 170:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 477 "loader.l"  #line 479 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_CURSED, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_CURSED, IVAL);
  YY_BREAK   YY_BREAK
 case 166:  case 171:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 478 "loader.l"  #line 480 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_DAMNED, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_DAMNED, IVAL);
  YY_BREAK   YY_BREAK
 case 167:  case 172:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 479 "loader.l"  #line 481 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_SEE_ANYWHERE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_SEE_ANYWHERE, IVAL);
  YY_BREAK   YY_BREAK
 case 168:  case 173:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 480 "loader.l"  #line 482 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_MAGICAL, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_MAGICAL, IVAL);
  YY_BREAK   YY_BREAK
 case 169:  case 174:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 481 "loader.l"  #line 483 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_CURSED, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_CURSED, IVAL);
  YY_BREAK   YY_BREAK
 case 170:  case 175:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 482 "loader.l"  #line 484 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_CAN_USE_SKILL, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_CAN_USE_SKILL, IVAL);
  YY_BREAK   YY_BREAK
 case 171:  case 176:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 483 "loader.l"  #line 485 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_BEEN_APPLIED, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_BEEN_APPLIED, IVAL);
  YY_BREAK   YY_BREAK
 case 172:  case 177:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 484 "loader.l"  #line 486 "loader.l"
 { char *y=yval();  SET_OR_CLEAR_FLAG(op, FLAG_READY_SCROLL, IVAL);
  if (*y=='\0') LOG(llevError,"Title without value.\n");  
  else FREE_AND_COPY(op->title, y);  
      }  
  YY_BREAK   YY_BREAK
 case 173:  case 178:
   YY_RULE_SETUP
   #line 487 "loader.l"
   SET_OR_CLEAR_FLAG(op, FLAG_USE_ROD, IVAL);
    YY_BREAK
   case 179:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 488 "loader.l"  #line 488 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_READY_ROD, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_USE_HORN, IVAL);
  YY_BREAK   YY_BREAK
 case 174:  case 180:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 489 "loader.l"  #line 489 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_USE_ROD, IVAL);  op->expmul = FVAL;
  YY_BREAK   YY_BREAK
 case 175:  case 181:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 490 "loader.l"  #line 490 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_READY_HORN, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_UNIQUE, IVAL);
  YY_BREAK   YY_BREAK
 case 176:  case 182:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 491 "loader.l"  #line 491 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_USE_HORN, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_MAKE_INVIS, IVAL);
  YY_BREAK   YY_BREAK
 case 177:  case 183:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 492 "loader.l"  #line 492 "loader.l"
 op->expmul = FVAL;  SET_OR_CLEAR_FLAG(op, FLAG_INV_LOCKED, IVAL);
  YY_BREAK   YY_BREAK
 case 178:  case 184:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 493 "loader.l"  #line 493 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_UNIQUE, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_IS_WOODED, IVAL);
  YY_BREAK   YY_BREAK
 case 179:  case 185:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 494 "loader.l"  #line 494 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_MAKE_INVIS, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_IS_HILLY, IVAL);
  YY_BREAK   YY_BREAK
 case 180:  case 186:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 495 "loader.l"  #line 495 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_INV_LOCKED, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_READY_SKILL, IVAL);
  YY_BREAK   YY_BREAK
 case 181:  case 187:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 496 "loader.l"  #line 496 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_IS_WOODED, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_READY_WEAPON, IVAL);
  YY_BREAK   YY_BREAK
 case 182:  case 188:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 497 "loader.l"  #line 497 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_IS_HILLY, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_NO_SKILL_IDENT, IVAL);
  YY_BREAK   YY_BREAK
 case 183:  case 189:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 498 "loader.l"  #line 498 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_READY_SKILL, IVAL);  op->glow_radius = IVAL;
  YY_BREAK   YY_BREAK
 case 184:  case 190:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 499 "loader.l"  #line 499 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_READY_WEAPON, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_BLIND, IVAL);
  YY_BREAK   YY_BREAK
 case 185:  case 191:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 500 "loader.l"  #line 500 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NO_SKILL_IDENT, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_SEE_IN_DARK, IVAL);
  YY_BREAK   YY_BREAK
 case 186:  case 192:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 501 "loader.l"  #line 501 "loader.l"
 op->glow_radius = IVAL;  SET_OR_CLEAR_FLAG(op, FLAG_IS_CAULDRON, IVAL);
  YY_BREAK   YY_BREAK
 case 187:  case 193:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 502 "loader.l"  #line 502 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_BLIND, IVAL);  op->randomitems = find_treasurelist(yval());
  YY_BREAK   YY_BREAK
 case 188:  case 194:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 503 "loader.l"  #line 503 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_SEE_IN_DARK, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_DUST, IVAL);
  YY_BREAK   YY_BREAK
 case 189:  case 195:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 504 "loader.l"  #line 504 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_IS_CAULDRON, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_NO_STEAL, IVAL);
  YY_BREAK   YY_BREAK
 case 190:  case 196:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 505 "loader.l"  #line 505 "loader.l"
 op->randomitems = find_treasurelist(yval());  SET_OR_CLEAR_FLAG(op, FLAG_ONE_HIT, IVAL);
  YY_BREAK   YY_BREAK
 case 191:  case 197:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 506 "loader.l"  #line 506 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_DUST, IVAL);  SET_OR_CLEAR_FLAG(op, FLAG_BERSERK, IVAL);
  YY_BREAK   YY_BREAK
 case 192:  case 198:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 507 "loader.l"  #line 508 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_NO_STEAL, IVAL);  { /* Some archetypes have these values in them */ }
  YY_BREAK   YY_BREAK
 case 193:  case 199:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 508 "loader.l"  #line 509 "loader.l"
 SET_OR_CLEAR_FLAG(op, FLAG_ONE_HIT, IVAL);  { /* Probably the pupland archetypes - I imagined */ }
  YY_BREAK   YY_BREAK
 case 194:  case 200:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 510 "loader.l"  #line 510 "loader.l"
 { /* Some archetypes have these values in them */ }  { /* That these are for the new combat code */ }
  YY_BREAK   YY_BREAK
 case 195:  case 201:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 511 "loader.l"  #line 511 "loader.l"
 { /* Probably the pupland archetypes - I imagined */ }  { /* just ignore for now */ }
  YY_BREAK   YY_BREAK
 case 196:  case 202:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 512 "loader.l"  #line 512 "loader.l"
 { /* That these are for the new combat code */ }  { }
  YY_BREAK   YY_BREAK
 case 197:  case 203:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 513 "loader.l"  #line 513 "loader.l"
 { /* just ignore for now */ }  op->weapontype = IVAL;
  YY_BREAK   YY_BREAK
 case 198:  case 204:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 514 "loader.l"  #line 514 "loader.l"
 { }  op->casting_speed = FVAL;
  YY_BREAK   YY_BREAK
 case 199:  case 205:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 515 "loader.l"  #line 515 "loader.l"
 op->weapontype = FVAL;  op->elevation = IVAL;
  YY_BREAK   YY_BREAK
 case 200:  case 206:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 516 "loader.l"  #line 516 "loader.l"
 op->casting_speed = FVAL;  op->client_type = IVAL;
  YY_BREAK   YY_BREAK
 case 201:  case 207:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 517 "loader.l"  #line 517 "loader.l"
 op->elevation = IVAL;  set_body_info(op, yytext);
  YY_BREAK  
 case 202:  
 YY_RULE_SETUP  
 #line 518 "loader.l"  
 op->client_type = IVAL;  
  YY_BREAK   YY_BREAK
 case 203:  case 208:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 520 "loader.l"  #line 519 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (apply) without val\n");   if (*yv=='\0') LOG(llevError,"Event (apply) without val\n");
Line 3328
 
Line 3369
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 204:  case 209:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 528 "loader.l"  #line 527 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (apply) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (apply) without plugin\n");
Line 3340
 
Line 3381
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 205:  case 210:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 536 "loader.l"  #line 535 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (apply) without options\n");   if (*yv=='\0') LOG(llevError,"Event (apply) without options\n");
Line 3352
 
Line 3393
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 206:  case 211:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 544 "loader.l"  #line 543 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (attack) without val\n");   if (*yv=='\0') LOG(llevError,"Event (attack) without val\n");
Line 3364
 
Line 3405
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 207:  case 212:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 552 "loader.l"  #line 551 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (attack) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (attack) without plugin\n");
Line 3376
 
Line 3417
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 208:  case 213:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 560 "loader.l"  #line 559 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (attack) without options\n");   if (*yv=='\0') LOG(llevError,"Event (attack) without options\n");
Line 3388
 
Line 3429
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 209:  case 214:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 568 "loader.l"  #line 567 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (born) without val\n");   if (*yv=='\0') LOG(llevError,"Event (born) without val\n");
Line 3400
 
Line 3441
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 210:  case 215:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 576 "loader.l"  #line 575 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (born) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (born) without plugin\n");
Line 3412
 
Line 3453
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 211:  case 216:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 584 "loader.l"  #line 583 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (born) without options\n");   if (*yv=='\0') LOG(llevError,"Event (born) without options\n");
Line 3424
 
Line 3465
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 212:  case 217:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 592 "loader.l"  #line 591 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (crash) without val\n");   if (*yv=='\0') LOG(llevError,"Event (crash) without val\n");
Line 3436
 
Line 3477
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 213:  case 218:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 600 "loader.l"  #line 599 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (crash) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (crash) without plugin\n");
Line 3448
 
Line 3489
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 214:  case 219:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 608 "loader.l"  #line 607 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (crash) without options\n");   if (*yv=='\0') LOG(llevError,"Event (crash) without options\n");
Line 3460
 
Line 3501
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 215:  case 220:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 616 "loader.l"  #line 615 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (death) without val\n");   if (*yv=='\0') LOG(llevError,"Event (death) without val\n");
Line 3472
 
Line 3513
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 216:  case 221:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 624 "loader.l"  #line 623 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (death) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (death) without plugin\n");
Line 3484
 
Line 3525
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 217:  case 222:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 632 "loader.l"  #line 631 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (death) without options\n");   if (*yv=='\0') LOG(llevError,"Event (death) without options\n");
Line 3496
 
Line 3537
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 218:  case 223:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 640 "loader.l"  #line 639 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (drop) without val\n");   if (*yv=='\0') LOG(llevError,"Event (drop) without val\n");
Line 3508
 
Line 3549
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 219:  case 224:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 648 "loader.l"  #line 647 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (drop) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (drop) without plugin\n");
Line 3520
 
Line 3561
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 220:  case 225:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 656 "loader.l"  #line 655 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (drop) without options\n");   if (*yv=='\0') LOG(llevError,"Event (drop) without options\n");
Line 3532
 
Line 3573
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 221:  case 226:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 664 "loader.l"  #line 663 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (login) without val\n");   if (*yv=='\0') LOG(llevError,"Event (login) without val\n");
Line 3544
 
Line 3585
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 222:  case 227:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 672 "loader.l"  #line 671 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (login) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (login) without plugin\n");
Line 3556
 
Line 3597
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 223:  case 228:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 680 "loader.l"  #line 679 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (login) without options\n");   if (*yv=='\0') LOG(llevError,"Event (login) without options\n");
Line 3568
 
Line 3609
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 224:  case 229:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 688 "loader.l"  #line 687 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (logout) without val\n");   if (*yv=='\0') LOG(llevError,"Event (logout) without val\n");
Line 3580
 
Line 3621
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 225:  case 230:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 696 "loader.l"  #line 695 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (logout) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (logout) without plugin\n");
Line 3592
 
Line 3633
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 226:  case 231:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 704 "loader.l"  #line 703 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (logout) without options\n");   if (*yv=='\0') LOG(llevError,"Event (logout) without options\n");
Line 3604
 
Line 3645
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 227:  case 232:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 712 "loader.l"  #line 711 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (pickup) without val\n");   if (*yv=='\0') LOG(llevError,"Event (pickup) without val\n");
Line 3616
 
Line 3657
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 228:  case 233:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 720 "loader.l"  #line 719 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (pickup) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (pickup) without plugin\n");
Line 3628
 
Line 3669
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 229:  case 234:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 728 "loader.l"  #line 727 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (pickup) without options\n");   if (*yv=='\0') LOG(llevError,"Event (pickup) without options\n");
Line 3640
 
Line 3681
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 230:  case 235:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 736 "loader.l"  #line 735 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (remove) without val\n");   if (*yv=='\0') LOG(llevError,"Event (remove) without val\n");
Line 3652
 
Line 3693
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 231:  case 236:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 744 "loader.l"  #line 743 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (remove) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (remove) without plugin\n");
Line 3664
 
Line 3705
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 232:  case 237:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 752 "loader.l"  #line 751 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (remove) without options\n");   if (*yv=='\0') LOG(llevError,"Event (remove) without options\n");
Line 3676
 
Line 3717
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 233:  case 238:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 760 "loader.l"  #line 759 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (say) without val\n");   if (*yv=='\0') LOG(llevError,"Event (say) without val\n");
Line 3688
 
Line 3729
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 234:  case 239:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 768 "loader.l"  #line 767 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (say) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (say) without plugin\n");
Line 3700
 
Line 3741
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 235:  case 240:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 776 "loader.l"  #line 775 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (say) without options\n");   if (*yv=='\0') LOG(llevError,"Event (say) without options\n");
Line 3712
 
Line 3753
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 236:  case 241:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 784 "loader.l"  #line 783 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (shout) without val\n");   if (*yv=='\0') LOG(llevError,"Event (shout) without val\n");
Line 3724
 
Line 3765
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 237:  case 242:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 792 "loader.l"  #line 791 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (shout) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (shout) without plugin\n");
Line 3736
 
Line 3777
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 238:  case 243:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 800 "loader.l"  #line 799 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (shout) without options\n");   if (*yv=='\0') LOG(llevError,"Event (shout) without options\n");
Line 3748
 
Line 3789
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 239:  case 244:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 808 "loader.l"  #line 807 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (tell) without val\n");   if (*yv=='\0') LOG(llevError,"Event (tell) without val\n");
Line 3760
 
Line 3801
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 240:  case 245:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 816 "loader.l"  #line 815 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (tell) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (tell) without plugin\n");
Line 3772
 
Line 3813
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 241:  case 246:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 824 "loader.l"  #line 823 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (tell) without options\n");   if (*yv=='\0') LOG(llevError,"Event (tell) without options\n");
Line 3784
 
Line 3825
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 242:  case 247:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 832 "loader.l"  #line 831 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (time) without val\n");   if (*yv=='\0') LOG(llevError,"Event (time) without val\n");
Line 3796
 
Line 3837
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 243:  case 248:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 840 "loader.l"  #line 839 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (time) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (time) without plugin\n");
Line 3808
 
Line 3849
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 244:  case 249:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 848 "loader.l"  #line 847 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (time) without options\n");   if (*yv=='\0') LOG(llevError,"Event (time) without options\n");
Line 3820
 
Line 3861
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 245:  case 250:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 856 "loader.l"  #line 855 "loader.l"
 { char *yv=yval();  { char *yv=yval();
  if (*yv=='\0') LOG(llevError,"Event (timer) without val\n");   if (*yv=='\0') LOG(llevError,"Event (timer) without val\n");
  else   else
Line 3831
 
Line 3872
  };   };
  }   }
  YY_BREAK   YY_BREAK
 case 246:  case 251:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 863 "loader.l"  #line 862 "loader.l"
 { char *yv=yval();  { char *yv=yval();
  if (*yv=='\0') LOG(llevError,"Event (timer) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (timer) without plugin\n");
  else   else
Line 3842
 
Line 3883
  };   };
  }   }
  YY_BREAK   YY_BREAK
 case 247:  case 252:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 870 "loader.l"  #line 869 "loader.l"
 { char *yv=yval();  { char *yv=yval();
  if (*yv=='\0') LOG(llevError,"Event (timer) without options\n");   if (*yv=='\0') LOG(llevError,"Event (timer) without options\n");
  else   else
Line 3853
 
Line 3894
  };   };
  }   }
  YY_BREAK   YY_BREAK
 case 248:  case 253:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 878 "loader.l"  #line 877 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (throw) without val\n");   if (*yv=='\0') LOG(llevError,"Event (throw) without val\n");
Line 3865
 
Line 3906
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 249:  case 254:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 886 "loader.l"  #line 885 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (throw) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (throw) without plugin\n");
Line 3877
 
Line 3918
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 250:  case 255:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 894 "loader.l"  #line 893 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (throw) without options\n");   if (*yv=='\0') LOG(llevError,"Event (throw) without options\n");
Line 3889
 
Line 3930
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 251:  case 256:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 902 "loader.l"  #line 901 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (trigger) without val\n");   if (*yv=='\0') LOG(llevError,"Event (trigger) without val\n");
Line 3901
 
Line 3942
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 252:  case 257:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 910 "loader.l"  #line 909 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (trigger) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (trigger) without plugin\n");
Line 3913
 
Line 3954
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 253:  case 258:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 918 "loader.l"  #line 917 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (trigger) without options\n");   if (*yv=='\0') LOG(llevError,"Event (trigger) without options\n");
Line 3925
 
Line 3966
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 254:  case 259:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 926 "loader.l"  #line 925 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (close) without val\n");   if (*yv=='\0') LOG(llevError,"Event (close) without val\n");
Line 3937
 
Line 3978
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 255:  case 260:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 934 "loader.l"  #line 933 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (close) without plugin\n");   if (*yv=='\0') LOG(llevError,"Event (close) without plugin\n");
Line 3949
 
Line 3990
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 256:  case 261:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 942 "loader.l"  #line 941 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Event (close) without options\n");   if (*yv=='\0') LOG(llevError,"Event (close) without options\n");
Line 3961
 
Line 4002
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 257:  case 262:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 950 "loader.l"  #line 949 "loader.l"
 { char *yv=yval();  { char *yv=yval();
   
  if (*yv=='\0') LOG(llevError,"Script (current weapon) without val\n");   if (*yv=='\0') LOG(llevError,"Script (current weapon) without val\n");
Line 3973
 
Line 4014
                                                 };                                                  };
      }       }
  YY_BREAK   YY_BREAK
 case 258:  case 263:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 959 "loader.l"  #line 958 "loader.l"
 {/* ignore empty lines, newlines we don't do above */}  {/* ignore empty lines, newlines we don't do above */}
  YY_BREAK   YY_BREAK
 case 259:  case 264:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 960 "loader.l"  #line 959 "loader.l"
 {}  {}
  YY_BREAK   YY_BREAK
 case YY_STATE_EOF(INITIAL):  case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(MESSAGE):  case YY_STATE_EOF(MESSAGE):
 case YY_STATE_EOF(SCRIPT):  case YY_STATE_EOF(SCRIPT):
 #line 962 "loader.l"  #line 961 "loader.l"
 {/* If we got an error, return the error.  Otherwise, return that we got EOF */  {/* If we got an error, return the error.  Otherwise, return that we got EOF */
      if (lex_error!=0) return lex_error; else return LL_EOF;}       if (lex_error!=0) return lex_error; else return LL_EOF;}
  YY_BREAK   YY_BREAK
 case 260:  case 265:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 964 "loader.l"  #line 963 "loader.l"
 { yyerror( "Unrecognized string"); lex_error= -1; }  { yyerror( "Unrecognized string"); lex_error= -1; }
  YY_BREAK   YY_BREAK
 case 261:  case 266:
 YY_RULE_SETUP  YY_RULE_SETUP
 #line 965 "loader.l"  #line 964 "loader.l"
 ECHO;  ECHO;
  YY_BREAK   YY_BREAK
   
Line 4290
 
Line 4331
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )   while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  {   {
  yy_current_state = (int) yy_def[yy_current_state];   yy_current_state = (int) yy_def[yy_current_state];
  if ( yy_current_state >= 2309 )   if ( yy_current_state >= 2352 )
  yy_c = yy_meta[(unsigned int) yy_c];   yy_c = yy_meta[(unsigned int) yy_c];
  }   }
  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];   yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Line 4325
 
Line 4366
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )   while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  {   {
  yy_current_state = (int) yy_def[yy_current_state];   yy_current_state = (int) yy_def[yy_current_state];
  if ( yy_current_state >= 2309 )   if ( yy_current_state >= 2352 )
  yy_c = yy_meta[(unsigned int) yy_c];   yy_c = yy_meta[(unsigned int) yy_c];
  }   }
  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];   yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  yy_is_jam = (yy_current_state == 2308);   yy_is_jam = (yy_current_state == 2351);
   
  return yy_is_jam ? 0 : yy_current_state;   return yy_is_jam ? 0 : yy_current_state;
  }   }
Line 4885
 
Line 4926
  return 0;   return 0;
  }   }
 #endif  #endif
 #line 965 "loader.l"  #line 964 "loader.l"
   
   
   
Line 5007
 
Line 5048
  * put gaps in the array that should not be processed.   * put gaps in the array that should not be processed.
  * The order matches the order of the define values in 'define.h'.   * The order matches the order of the define values in 'define.h'.
  */   */
   /* This is a list of pointers taht correspond to the FLAG_.. values.
 int flag_links[NUM_FLAGS+1][2] ={   * This is a simple 1:1 mapping - if FLAG_FRIENDLY is 15, then
 {FLAG_ALIVE, V_ALIVE}, {FLAG_WIZ, V_WIZ},   * the 15'th element of this array should match that name.
 {-1, -1}, {-1, -1}, /* REMOVED and FREED flags */   * If an entry is NULL, that is a flag not to loaded/saved.
 {FLAG_WAS_WIZ, V_WAS_WIZ}, {FLAG_APPLIED, V_APPLIED},   */
 {FLAG_UNPAID, V_UNPAID}, {-1, -1}, /* was need_an flag */  static char *flag_names[NUM_FLAGS+1] = {
 {FLAG_NO_PICK, V_NO_PICK}, {FLAG_WALK_ON, V_WALK_ON},  "alive", "wiz", NULL, NULL, "was_wiz", "applied", "unpaid",
 {FLAG_NO_PASS, V_NO_PASS},{FLAG_ANIMATE, V_IS_ANIMATED},  "can_use_shield", "no_pick", "walk_on", "no_pass", /* 10 */
 {FLAG_SLOW_MOVE, -1}, {FLAG_FLYING, V_FLYING},  "is_animated", NULL, "flying", "monster", "friendly", "generator",
 {FLAG_MONSTER, V_MONSTER}, {FLAG_FRIENDLY, V_FRIENDLY},  "is_thrown", "auto_apply", "treasure", NULL, /* 20 */
 {FLAG_GENERATOR, V_GENERATOR}, {FLAG_IS_THROWN, V_IS_THROWN},  "see_invisible", "can_roll", NULL, "is_turnable", "walk_off",
 {FLAG_AUTO_APPLY, V_AUTO_APPLY}, {FLAG_TREASURE, V_TREASURE},  "fly_on", "fly_off", "is_used_up", "identified", "reflecting", /* 30 */
 {FLAG_APPLY_ONCE, V_APPLY_ONCE},{FLAG_SEE_INVISIBLE, V_SEE_INVISIBLE},  "changing", "splitting", "hitback", "startequip",
 {FLAG_CAN_ROLL, V_CAN_ROLL}, {-1, -1}, /*paralyze is only a effect flag */  "blocksview", "undead", "scared", "unaggressive",
 {FLAG_IS_TURNABLE, V_IS_TURNABLE},{FLAG_WALK_OFF, V_WALK_OFF},  "reflect_missile", "reflect_spell", /* 40 */
 {FLAG_FLY_ON, V_FLY_ON},{FLAG_FLY_OFF, V_FLY_OFF},   "no_magic", "no_fix_player", NULL, "tear_down", "run_away",
 {FLAG_IS_USED_UP, V_IS_USED_UP}, {FLAG_IDENTIFIED, V_IDENTIFIED},  "pass_thru", "can_pass_thru", "pick_up", "unique", "no_drop", /* 50 */
 {FLAG_REFLECTING, V_REFLECTING}, {FLAG_CHANGING, V_CHANGING},   NULL, "can_cast_spell", "can_use_scroll", "can_use_range",
 {FLAG_SPLITTING, V_SPLITTING}, {FLAG_HITBACK, V_HITBACK},  "can_use_bow",  "can_use_armour", "can_use_weapon",
 {FLAG_STARTEQUIP, V_STARTEQUIP}, {FLAG_BLOCKSVIEW, V_BLOCKSVIEW},  "can_use_ring", "has_ready_range", "has_ready_bow", /* 60 */
 {FLAG_UNDEAD, V_UNDEAD}, {FLAG_SCARED, V_SCARED},  "xrays", NULL, "is_floor", "lifesave", "no_strength", "sleep",
 {FLAG_UNAGGRESSIVE, V_UNAGGRESSIVE}, {FLAG_REFL_MISSILE, V_REFLECT_MISSILE},  "stand_still", "random_move", "only_attack", "confused", /* 70 */
 {FLAG_REFL_SPELL, V_REFLECT_SPELL}, {FLAG_NO_MAGIC, V_NO_MAGIC},   "stealth", NULL, NULL, "cursed", "damned",
 {FLAG_NO_FIX_PLAYER, V_NO_FIX_PLAYER}, {-1, -1}, /* need_ie */  "see_anywhere", "known_magical", "known_cursed",
 {FLAG_TEAR_DOWN, V_TEAR_DOWN}, {FLAG_RUN_AWAY, V_RUN_AWAY},  "can_use_skill", "been_applied", /* 80 */
 {FLAG_PASS_THRU, V_PASS_THRU}, {FLAG_CAN_PASS_THRU, V_CAN_PASS_THRU},  "has_ready_scroll", "can_use_rod", NULL,
 {FLAG_PICK_UP, V_PICK_UP}, {FLAG_UNIQUE, V_UNIQUE},  "can_use_horn", "make_invisible",  "inv_locked", "is_wooded",
 {FLAG_NO_DROP, V_NO_DROP}, {FLAG_NO_PRETEXT, V_NO_PRETEXT},  "is_hilly", "has_ready_skill", "has_ready_weapon", /* 90 */
 {FLAG_CAST_SPELL, V_CAN_CAST_SPELL}, {FLAG_USE_SCROLL, V_CAN_USE_SCROLL},  "no_skill_ident", "is_blind", "can_see_in_dark", "is_cauldron",
 {FLAG_USE_WAND, V_CAN_USE_WAND},{FLAG_USE_BOW, V_CAN_USE_BOW},  "is_dust", "no_steal", "one_hit", NULL, "berserk", "neutral", /* 100 */
 {FLAG_USE_ARMOUR, V_CAN_USE_ARMOUR},{FLAG_USE_WEAPON, V_CAN_USE_WEAPON},  "no_attack", "no_damage", NULL, NULL /* 104 */
 {FLAG_USE_RING, V_CAN_USE_RING}, {FLAG_READY_WAND, V_HAS_READY_WAND},  
 {FLAG_READY_BOW, V_HAS_READY_BOW}, {FLAG_XRAYS, V_XRAYS},  
 {-1, -1 /*NO_APPLY*/},  {FLAG_IS_FLOOR, V_IS_FLOOR},  
 {FLAG_LIFESAVE, V_LIFESAVE}, {FLAG_NO_STRENGTH, V_NO_STRENGTH},  
 {FLAG_SLEEP, V_SLEEP}, {FLAG_STAND_STILL, V_STAND_STILL},  
 {FLAG_RANDOM_MOVE, V_RANDOM_MOVEMENT}, {FLAG_ONLY_ATTACK, V_ONLY_ATTACK},  
 {FLAG_CONFUSED, V_CONFUSED}, {FLAG_STEALTH, V_STEALTH},  
 {-1, -1 /*WIZPASS*/}, {-1, -1 /*IS_LINKED */},  
 {FLAG_CURSED, V_CURSED}, {FLAG_DAMNED, V_DAMNED},  
 {FLAG_SEE_ANYWHERE, V_SEE_ANYWHERE}, {FLAG_KNOWN_MAGICAL, V_KNOWN_MAGICAL},  
 {FLAG_KNOWN_CURSED, V_KNOWN_CURSED}, {FLAG_CAN_USE_SKILL, V_CAN_USE_SKILL},  
 {FLAG_BEEN_APPLIED, V_BEEN_APPLIED},  {FLAG_READY_ROD, V_HAS_READY_ROD},  
 {FLAG_USE_ROD, V_CAN_USE_ROD}, {FLAG_READY_HORN, V_HAS_READY_HORN},   
 {FLAG_USE_HORN, V_CAN_USE_HORN},{FLAG_MAKE_INVIS,V_MAKE_INVIS},  
 {FLAG_INV_LOCKED,V_INV_LOCKED},{FLAG_IS_WOODED,V_IS_WOODED},  
 {FLAG_IS_HILLY,V_IS_HILLY},{FLAG_READY_SKILL,V_HAS_READY_SKILL},  
 {FLAG_READY_WEAPON,V_HAS_READY_WEAPON},{FLAG_NO_SKILL_IDENT,V_NO_SKILL_IDENT},  
 {FLAG_BLIND,V_BLIND},{FLAG_SEE_IN_DARK,V_SEE_IN_DARK},  
 {FLAG_IS_CAULDRON,V_IS_CAULDRON},{FLAG_DUST,V_DUST},{FLAG_NO_STEAL,V_NO_STEAL},  
 {FLAG_ONE_HIT, V_ONE_HIT},  
 {-1, -1 /* Client send debug flag (FLAG_CLIENT_SENT)*/},  
 {FLAG_BERSERK, V_BERSERK},   
 {FLAG_NEUTRAL, V_NEUTRAL}, {FLAG_NO_ATTACK, V_NO_ATTACK},  
 {FLAG_NO_DAMAGE, V_NO_DAMAGE},  
 {-1, -1 /* FLAG_OBJ_ORIGINAL */ },  
 {-1, -1 /* FLAG_OBJ_SAVE_ON_OVL */ },  
 };  };
   
   
Line 5128
 
Line 5143
     strcat(buf,buf2);      strcat(buf,buf2);
   }    }
   if(op->face!=op2->face) {    if(op->face!=op2->face) {
       sprintf(buf2,"%s %s\n",variable_const[V_FACE],        sprintf(buf2,"face %s\n", op->face->name);
  op->face->name);  
       strcat(buf,buf2);        strcat(buf,buf2);
   }    }
   for(i=1;i<=NR_EVENTS;i++)    for(i=1;i<=NR_EVENTS;i++)
Line 5328
 
Line 5342
     strcat (buf, buf2);      strcat (buf, buf2);
   }    }
   if(op->stats.Str!=op2->stats.Str)    if(op->stats.Str!=op2->stats.Str)
     save_long(buf,variable_const[V_STR],op->stats.Str);      save_long(buf, "Str", op->stats.Str);
   if(op->stats.Dex!=op2->stats.Dex)    if(op->stats.Dex!=op2->stats.Dex)
     save_long(buf,variable_const[V_DEX],op->stats.Dex);      save_long(buf, "Dex", op->stats.Dex);
   if(op->stats.Con!=op2->stats.Con)    if(op->stats.Con!=op2->stats.Con)
     save_long(buf,variable_const[V_CON],op->stats.Con);      save_long(buf, "Con", op->stats.Con);
   if(op->stats.Wis!=op2->stats.Wis)    if(op->stats.Wis!=op2->stats.Wis)
     save_long(buf,variable_const[V_WIS],op->stats.Wis);      save_long(buf, "Wis", op->stats.Wis);
   if(op->stats.Pow!=op2->stats.Pow)    if(op->stats.Pow!=op2->stats.Pow)
     save_long(buf,variable_const[V_POW],op->stats.Pow);      save_long(buf, "Pow", op->stats.Pow);
   if(op->stats.Cha!=op2->stats.Cha)    if(op->stats.Cha!=op2->stats.Cha)
     save_long(buf,variable_const[V_CHA],op->stats.Cha);      save_long(buf, "Cha", op->stats.Cha);
   if(op->stats.Int!=op2->stats.Int)    if(op->stats.Int!=op2->stats.Int)
     save_long(buf,variable_const[V_INT],op->stats.Int);      save_long(buf, "Int", op->stats.Int);
   if(op->stats.hp!=op2->stats.hp)    if(op->stats.hp!=op2->stats.hp)
     save_long(buf,variable_const[V_HP],op->stats.hp);      save_long(buf, "hp", op->stats.hp);
   if(op->stats.maxhp!=op2->stats.maxhp)    if(op->stats.maxhp!=op2->stats.maxhp)
     save_long(buf,variable_const[V_MAXHP],op->stats.maxhp);      save_long(buf, "maxhp", op->stats.maxhp);
   if(op->stats.sp!=op2->stats.sp)    if(op->stats.sp!=op2->stats.sp)
     save_long(buf,variable_const[V_SP],op->stats.sp);      save_long(buf, "sp", op->stats.sp);
   if(op->stats.maxsp!=op2->stats.maxsp)    if(op->stats.maxsp!=op2->stats.maxsp)
     save_long(buf,variable_const[V_MAXSP],op->stats.maxsp);      save_long(buf, "maxsp", op->stats.maxsp);
   if(op->stats.grace!=op2->stats.grace)    if(op->stats.grace!=op2->stats.grace)
     save_long(buf,variable_const[V_GRACE],op->stats.grace);      save_long(buf, "grace", op->stats.grace);
   if(op->stats.maxgrace!=op2->stats.maxgrace)    if(op->stats.maxgrace!=op2->stats.maxgrace)
     save_long(buf,variable_const[V_MAXGRACE],op->stats.maxgrace);      save_long(buf, "maxgrace", op->stats.maxgrace);
   if(op->stats.exp!=op2->stats.exp)    if(op->stats.exp!=op2->stats.exp)
     save_long(buf,variable_const[V_EXP],op->stats.exp);      save_long(buf, "exp", op->stats.exp);
   if(op->expmul!=op2->expmul)     if(op->expmul!=op2->expmul)
     save_double(buf,variable_const[V_EXPMUL],op->expmul);      save_double(buf, "expmul", op->expmul);
   if(op->stats.food!=op2->stats.food)    if(op->stats.food!=op2->stats.food)
     save_long(buf,variable_const[V_FOOD],op->stats.food);      save_long(buf, "food", op->stats.food);
   if(op->stats.dam!=op2->stats.dam)    if(op->stats.dam!=op2->stats.dam)
     save_long(buf,variable_const[V_DAM],op->stats.dam);      save_long(buf, "dam", op->stats.dam);
   if(op->stats.luck!=op2->stats.luck)    if(op->stats.luck!=op2->stats.luck)
     save_long(buf,variable_const[V_LUCK],op->stats.luck);      save_long(buf, "luck", op->stats.luck);
   if(op->stats.wc!=op2->stats.wc)    if(op->stats.wc!=op2->stats.wc)
     save_long(buf,variable_const[V_WC],op->stats.wc);      save_long(buf, "wc", op->stats.wc);
   if(op->stats.ac!=op2->stats.ac)    if(op->stats.ac!=op2->stats.ac)
     save_long(buf,variable_const[V_AC],op->stats.ac);      save_long(buf, "ac", op->stats.ac);
   if(op->x!=op2->x)    if(op->x!=op2->x)
     save_long(buf,variable_const[V_X],op->x);      save_long(buf, "x", op->x);
   if(op->y!=op2->y)    if(op->y!=op2->y)
     save_long(buf,variable_const[V_Y],op->y);      save_long(buf, "y", op->y);
   if(op->speed!=op2->speed) {    if(op->speed!=op2->speed) {
     sprintf(buf2,"speed %f\n",op->speed);      sprintf(buf2,"speed %f\n",op->speed);
     strcat(buf,buf2);      strcat(buf,buf2);
Line 5380
 
Line 5394
     strcat(buf,buf2);      strcat(buf,buf2);
   }    }
   if(op->move_status != op2->move_status)    if(op->move_status != op2->move_status)
     save_long(buf,variable_const[V_MOVE_STATUS],op->move_status);      save_long(buf, "move_state", op->move_status);
   if(op->move_type != op2->move_type)    if(op->move_type != op2->move_type)
     save_long(buf,variable_const[V_ATT_MOVE],op->move_type);      save_long(buf, "attack_movement", op->move_type);
   if(op->nrof!=op2->nrof)    if(op->nrof!=op2->nrof)
     save_long(buf,variable_const[V_NROF],op->nrof);      save_long(buf, "nrof", op->nrof);
   if(op->level!=op2->level)    if(op->level!=op2->level)
     save_long(buf,variable_const[V_LEVEL],op->level);      save_long(buf, "level", op->level);
   if(op->direction!=op2->direction)    if(op->direction!=op2->direction)
     save_long(buf,variable_const[V_DIRECTION],op->direction);      save_long(buf, "direction", op->direction);
   if(op->type!=op2->type)    if(op->type!=op2->type)
     save_long(buf,variable_const[V_TYPE],op->type);      save_long(buf, "type", op->type);
   if(op->attacktype!=op2->attacktype)    if(op->attacktype!=op2->attacktype)
     save_long(buf,variable_const[V_ATTACKTYPE],op->attacktype);      save_long(buf, "attacktype", op->attacktype);
   
   for (tmp=0; tmp < NROFATTACKS; tmp++) {    for (tmp=0; tmp < NROFATTACKS; tmp++) {
    if (op->resist[tmp] != op2->resist[tmp]) {     if (op->resist[tmp] != op2->resist[tmp]) {
Line 5402
 
Line 5416
   }    }
   
   if(op->path_attuned!=op2->path_attuned)    if(op->path_attuned!=op2->path_attuned)
     save_long(buf,variable_const[V_PATH_ATTUNED],op->path_attuned);      save_long(buf, "path_attuned", op->path_attuned);
   if(op->path_repelled!=op2->path_repelled)    if(op->path_repelled!=op2->path_repelled)
     save_long(buf,variable_const[V_PATH_REPELLED],op->path_repelled);      save_long(buf, "path_repelled", op->path_repelled);
   if(op->path_denied!=op2->path_denied)    if(op->path_denied!=op2->path_denied)
     save_long(buf,variable_const[V_PATH_DENIED],op->path_denied);      save_long(buf, "path_denied", op->path_denied);
   if(op->material!=op2->material)    if(op->material!=op2->material)
     save_long(buf,variable_const[V_MATERIAL],op->material);      save_long(buf, "material", op->material);
   if(op->value!=op2->value)    if(op->value!=op2->value)
     save_long(buf,variable_const[V_VALUE],op->value);      save_long(buf, "value", op->value);
   if(op->carrying!=op2->carrying)    if(op->carrying!=op2->carrying)
     save_long(buf,variable_const[V_CARRYING],op->carrying);      save_long(buf, "carrying", op->carrying);
   if(op->weight!=op2->weight)    if(op->weight!=op2->weight)
     save_long(buf,variable_const[V_WEIGHT],op->weight);      save_long(buf, "weight", op->weight);
   if(op->invisible!=op2->invisible)    if(op->invisible!=op2->invisible)
     save_long(buf,variable_const[V_INVISIBLE],op->invisible);      save_long(buf, "invisible", op->invisible);
   if(op->state!=op2->state)    if(op->state!=op2->state)
     save_long(buf,variable_const[V_STATE],op->state);      save_long(buf, "state", op->state);
   if(op->magic!=op2->magic)    if(op->magic!=op2->magic)
     save_long(buf,variable_const[V_MAGIC],op->magic);      save_long(buf, "magic", op->magic);
   if(op->last_heal!=op2->last_heal)    if(op->last_heal!=op2->last_heal)
     save_long(buf,variable_const[V_LAST_HEAL],op->last_heal);      save_long(buf, "last_heal", op->last_heal);
   if(op->last_sp!=op2->last_sp)    if(op->last_sp!=op2->last_sp)
     save_long(buf,variable_const[V_LAST_SP],op->last_sp);      save_long(buf, "last_sp", op->last_sp);
   if(op->last_grace!=op2->last_grace)    if(op->last_grace!=op2->last_grace)
     save_long(buf,variable_const[V_LAST_GRACE],op->last_grace);      save_long(buf, "last_grace", op->last_grace);
   if(op->last_eat!=op2->last_eat)    if(op->last_eat!=op2->last_eat)
     save_long(buf,variable_const[V_LAST_EAT],op->last_eat);      save_long(buf, "last_eat", op->last_eat);
   if(QUERY_FLAG(op,FLAG_IS_LINKED) && (tmp = get_button_value(op)))    if(QUERY_FLAG(op,FLAG_IS_LINKED) && (tmp = get_button_value(op)))
     save_long(buf,variable_const[V_CONNECTED],tmp);      save_long(buf, "connected", tmp);
   if(op->glow_radius!=op2->glow_radius)    if(op->glow_radius!=op2->glow_radius)
     save_long(buf,variable_const[V_GLOW_RADIUS],op->glow_radius);      save_long(buf, "glow_radius", op->glow_radius);
   if (op->randomitems!=op2->randomitems) {    if (op->randomitems!=op2->randomitems) {
     sprintf(buf2,"randomitems %s\n",(op->randomitems?op->randomitems->name:"none"));      sprintf(buf2,"randomitems %s\n",(op->randomitems?op->randomitems->name:"none"));
     strcat(buf,buf2);      strcat(buf,buf2);
   }    }
 #ifdef NPC_PROG  #ifdef NPC_PROG
   if(op->npc_status!=op2->npc_status)    if(op->npc_status!=op2->npc_status)
     save_long(buf,variable_const[V_NPC_STATUS],op->npc_status);      save_long(buf, "npc_status", op->npc_status);
   if(op->npc_program!=op2->npc_program)    if(op->npc_program!=op2->npc_program)
     save_long(buf,variable_const[V_NPC_PROGRAM],op->npc_program);      save_long(buf, "npc_program", op->npc_program);
 #endif  #endif
   
   
 /* Eneq(@csd.uu.se): Handles run_away and pick_up */  
   if(op->run_away!=op2->run_away)    if(op->run_away!=op2->run_away)
     save_long(buf,variable_const[V_RUN_AWAY],op->run_away);      save_long(buf, "run_away", op->run_away);
   if(op->pick_up!=op2->pick_up)    if(op->pick_up!=op2->pick_up)
     save_long(buf,variable_const[V_PICK_UP],op->pick_up);      save_long(buf, "pick_up", op->pick_up);
   if(op->weight_limit!=op2->weight_limit)    if(op->weight_limit!=op2->weight_limit)
     save_long(buf,variable_const[V_CONTAINER],op->weight_limit);      save_long(buf, "container", op->weight_limit);
   
   
 /* Vick (@bern.docs.uu.se) @921107 -> Handle 'will_apply' &  
    'random_movement.*/  
   
   if (op->will_apply!=op2->will_apply)    if (op->will_apply!=op2->will_apply)
     save_long(buf,variable_const[V_WILL_APPLY],op->will_apply);      save_long(buf, "will_apply", op->will_apply);
   
   if (op->current_weapon_script!=op2->current_weapon_script){    if (op->current_weapon_script!=op2->current_weapon_script){
     sprintf(buf2,"current_weapon_script %s\n",(op->current_weapon_script));      sprintf(buf2,"current_weapon_script %s\n",(op->current_weapon_script));
     strcat(buf,buf2);      strcat(buf,buf2);
   };    };
   
 /* Mol(@meryl.csd.uu.se) 921108  Handle can_apply */  
   if (op->can_apply!=op2->can_apply)  
     save_long(buf,variable_const[V_CAN_APPLY],op->can_apply);  
   
   if(op->weapontype && op->weapontype!=op2->weapontype) {    if(op->weapontype && op->weapontype!=op2->weapontype) {
     sprintf(buf2,"weapontype %d\n",op->weapontype);      sprintf(buf2,"weapontype %d\n",op->weapontype);
     strcat(buf,buf2);      strcat(buf,buf2);
Line 5482
 
Line 5486
     strcat(buf,buf2);      strcat(buf,buf2);
   }    }
   
     if (op->item_power != op2->item_power) {
       sprintf(buf2,"item_power %d\n", op->item_power);
       strcat(buf,buf2);
     }
   
     if (op->gen_sp_armour != op2->gen_sp_armour) {
       sprintf(buf2,"gen_sp_armour %d\n", op->gen_sp_armour);
       strcat(buf,buf2);
     }
   
   for (tmp=0; tmp <= NUM_FLAGS; tmp++) {    for (tmp=0; tmp <= NUM_FLAGS; tmp++) {
     if ((flag_links[tmp][0]!=-1) && (QUERY_FLAG(op, flag_links[tmp][0]) !=      if (flag_names[tmp] && (QUERY_FLAG(op, tmp) != QUERY_FLAG(op2, tmp))) {
  QUERY_FLAG(op2, flag_links[tmp][0]))) {   sprintf(buf2, "%s %d\n", flag_names[tmp], QUERY_FLAG(op, tmp));
      if (flag_links[tmp][0]==FLAG_SLOW_MOVE) {  
  sprintf(buf2,"%s %f\n",variable_const[V_SLOW_MOVE],SLOW_PENALTY(op));  
  strcat(buf,buf2);   strcat(buf,buf2);
      }       }
      else    }
          BUFADD(QUERY_FLAG(op, flag_links[tmp][0]), flag_links[tmp][1]);    /* The old code was buggy - it would lose custom SLOW_PENALTY if the archetype
      * had a different slow_penalty (eg, when saving, it would also reset to the
      * archetype value.
      */
     if (QUERY_FLAG(op, FLAG_SLOW_MOVE)) {
       if (!QUERY_FLAG(op2, FLAG_SLOW_MOVE) || SLOW_PENALTY(op) != SLOW_PENALTY(op2)) {
    sprintf(buf2,"slow_move %f\n",SLOW_PENALTY(op));
    strcat(buf,buf2);
       }
     }
   
     /* Save body locations */
     for (i=0; i<NUM_BODY_LOCATIONS; i++) {
       if (op->body_info[i] != op2->body_info[i]) {
    sprintf(buf2, "%s %d\n", body_locations[i].save_name, op->body_info[i]);
    strcat(buf, buf2);
  }   }
   }    }
   if(buf[0]=='\0')    if(buf[0]=='\0')


Legend:
line(s) removed in v.1.25 
line(s) changed
 line(s) added in v.1.26

File made using version 1.98 of cvs2html by leaf at 2011-07-21 17:10