teleport control from the C++ code into the vault .des files. This is done with the additions of two things:
Changeable, persistent per-level and per-branch flags which affect game play.
Dungeon events for the killing of monsters, picking up of objects and changing of features.
The current level and branch flags are for teleport control prevention, making a level unmappable (like the Abyss or a Labyrinth), and preventing magic mapping from working (like the Abyss or a Labyrinth).
Some related changes:
The new .des header KMASK allows for dungeon grid masks like no_monster_gen to be applied to specific symbols rather than the entire vault.
If the wizard mapping command (&{) is used in a place which is unmappable, it will ask if you wish to force the area to be mappable (so you can see what an entire Labyrinth or Abyss level looks like without having to hack the source).
A new wizard-mode level-map command, 'T', will teleport the player to wherever the cursor is pointing.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2146 c06c8d41-db1a-0410-9941-cceddc491573
ED62QWGKBPORWVKDFOQRKJXEIWZVNGR3O4KWQBDSRNPT36AYOQYAC 3SAXELKUWVP3KWQCANMGQONEOSMRSQPSNDUSN43XRRYOMEGHULNAC H6N5JENCC6GSO75VDOBRZCAE3ORIN3IJUAVZPPYYRVBY2DVGD3ZAC GZMPIDNMBXZ4B2ZWKREHBPAVN53J6WRVY5W5KY52KEBHKU6IW4IQC JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC PL6I2CMSTHY5ZHWVMIQE5YTM5S5VPKBNZM6QJVHZSSKOJGIJ5W4AC AJJ6D6JRV6ZAZOAUHYUM2IQG42V6PBALOD4KEMNKSVVAOJXAUCPQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC AMFTO4UE74UYQBU3R2EYUU6BJ7SC4O4NOAFICRTLMT3MIFRQ6AKAC OYTCBRC7LE44EUVRZVYTOOVKQWJ6P6YE3FXTOGUTNKEMLNWPHKSQC JDM27QE4HR52AYFSQE763BFF57ANOTF5MXKMO377PP5EXMN7SAOAC IVVTHLTTLOP5TSULXJWUSSXHOKYWVU3OWKYVK45A7RIB6V34MYQAC TLO257LZSB6ZO36STDUEWJBO2LETXFKTFGXELA6Y4BZBVAEIIINAC W52PCSHX72WAMWKG6L4BPUBVMO6E72KYYBNKAA7554KNOTY6V7WQC AUYQDKLMOG4FGH2T3LACX4TH632DPKVXBNV5VU6PIVUEWSIO4LQQC 7Y5HSDFKA5TPLS2TWTRFMQVX6UXUDHXU5MUMXQSDFAIY4THQ3BIQC SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC 5UVDIVD4NSXA52U4QMQIVST3GSZJ2A2YZK3RUEXKPM43YVQ7LI5AC LCCGXSFIDQFIRXHGRJWOELNPQOHHCXCWXS366GOULDFPQVOKAIJAC GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC W5VEC2PBIM5DMU5233HOWAZUEPTGWJRZZIA3H35YYQQW6BTP6XUAC WDOHDLADQOGV2FLDBHIWT2HOB7KWS5ZUQ5OOS7TSQLZIMXSYP5KQC 2XF6FUND5LXCDDQOTSYRNFZADI5RH3UG4D2Y77Z3XQVQ5VBC7TOAC E46S7KO37G3QK6LA3ZGGJ6BZYQCP4SNV3575UDWO76O7KFRHCKNQC YIWOMNWKM56MNSLEKYHUJTPQAEIVZ3E3XUR5VXO32Z72ITNCXD2QC 7D5YTNCPSR44S7KQ67IOCWXNVE4INO4GE2F47PMKV3SMCRAMNVVQC LGJDZUQ4NG7WCHRMQ4ACJABLION2BMDHFUZGWN3KVTB52M56TBJAC RYLDKET2N42S4UM2NRF3KIOTRHJ57A2KZAVJFGM7BWWRCHQJINTAC MSQI3TH6T62JAXQGLL52QZCWAMC372TGB6ZNNRDGUGMJKBNNV2VAC ANJ4QWXY2LDCFJRUSYFOR56CYBNCFZOVYYXWCZIQIBOEHYLUDM3QC 6226X6PUUL464V2CNMPPNZ7UDXFTRAS76Y3MKVHXWNQ37XK5JYCQC KE25RXTJ46F64GNWJAY4DN4HJU7A4WGF6M6JXGRUDK3TPGRW4UUAC WKTZHLOJ65WSK6FR5MF7RWGSMZ22T2D6LHB66FV3IPGXIBLYHHNAC 34C4U6EQWERY75GZJKUCM5KVGU2OUICETS5LGZF6RMKMZT4R5SQAC 3SHZYGGZHYROZ7QXGY5I4ZIVBJHUIMI5EYMXGI7F26FNPDY3KQSAC L6O4LGZRKBURVWEY7XRVCSQLJ5RULNBEWMQJ6I2UYVWWB66FM3MQC XHJRRN6K2ZYGIL6G27G2TNDSNKTTPCA5EUYXRIT242YMKPJQ3YZAC TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC WT66JDIRTLLP37SHTV4GI3V64JFJ4D25LNRLGCHFG6CLEFKJ3QGQC QS3ZRS3E6KL3YJHPKYEWCWJYRBJSXD5OOYF6Y25HZVECGPJRDB5QC UZ6N6HOUPGVSPC5NQROEEDWMEGJA5XUWUY2AKH5QG65AZ25PVXDAC PJ7HBIWAV3H23LXGZAAD2QYJ7HMOFOIR5ZJ4U2UTHI766LOTRRWQC ILN2K6ASDZSMEHOPJ22IZLZJUO6DDGZTKAKXM3YXG6JZZHJNLX4AC 442VGKMARB6LTQUEBIB5P447EI34BRJL6JALZKXLWPDHWCM6KKCQC KXUQB3WNWC5IFL6VFWADEPQMMU3VV3NDI5FLA666PGOEWFYUHCLQC WTGKEI4F7WINPHW4UMWFADYQH7VK7TNV5V7RUORBVXGFSO5SNP5AC AUXHSGS4EFOPZ6TVZYWNVOUDO7NYKUKE3HBKGQQWTALSVFOE3HAAC RGHXFBNIULRVRYLBGG5JZDMYVM2E2JJ2Y5KQPMU6PUS3V26G6ZXQC JK3HFJG76OOQHJMXJUSZRTR5CX5ZMS52LRVBLOR7E2NBI6PRSHHAC L4RYVF46EQKMVOEADGRG4WMPVTQ6NNFGYMU4SHAH6XJIKWVHT77QC 52W74WXL5XIH6YFJBQRVAO47YHCS3CPMUUZS4Q3AZ3HAPDWMT54AC 3C2VE43SHCSBY4LTRTFYFLIPRWFUN6DXU6D34QVWDQTSNRBUFG7AC FSD7GIK3YLZXWLEH37BU6KV3IUCFGXPQL6IZ7H65YWNRBEKDBX5AC C22455VGUQOSUX2OORA32LROFQ7NNYDMD2ZDTTUZSAQLXK4AD6QAC KCHX2F3JFEWOZT3WMJVZAAQUU2QSZ5Q7RDCD7WUJ7VE65J52JFUQC H3552BCIAVBLKAYKE4DHFLBLFW5RGRMYBMRRYHYEB5IPIJRUVU5QC 5V47S4NNTHWTSAHV3YLO2VGH7JTUIYJ3GBPDN5ZM4UQALT2ZEXDQC HNXKX6ZDQJV33E7UKZOLBYWJMRZ4QLEMXVXJZNRCTOIG2KVRTIEAC JNB3PBPBJHDUHH47ZICB25QENPTMLYK7CXC5BXRVWZ3J3ZZPKCUAC TZ55IZNANEJO2WDTKYWVLY2W2VV6BR7WKIN7XLNISAMMFT6LG2WQC WWR4IDWLXP4XLBWDZBA5GFG7CRKUJQNRK7FFUFOISK6OJTMYQPFQC R6XS2HO5QX2FJUGL5UQQRNETKCMYWTUFPHPPS5SYWK3OQA4UDUQQC WE3JT43OR4L6675GINGU4B3YDBMURJZHDDYY3VLHUJEBAKH2HYEAC static bool monster_on_level(int monster){for (int i = 0; i < MAX_MONSTERS; i++){if (menv[i].type == monster)return true;}return false;} // end monster_on_level()// XXX: Relies on RUNE_xxx == BRANCH_xxx. See rune_type in enum.h.static bool player_has_rune(branch_type branch){for (int i = 0; i < ENDOFPACK; i++)if (is_valid_item( you.inv[i] )&& you.inv[i].base_type == OBJ_MISCELLANY&& you.inv[i].sub_type == MISC_RUNE_OF_ZOT&& you.inv[i].plus == branch){return (true);}return (false);}
switch (you.where_are_you){case BRANCH_TOMB:ret = player_has_rune(you.where_are_you);break;case BRANCH_COCYTUS:case BRANCH_DIS:case BRANCH_TARTARUS:case BRANCH_GEHENNA:if (player_branch_depth() == branches[you.where_are_you].depth)ret = player_has_rune(you.where_are_you);break;case BRANCH_SLIME_PITS:// Cannot teleport into the slime pit vaults until// royal jelly is gone.if (monster_on_level(MONS_ROYAL_JELLY))ret = false;break;case BRANCH_ELVEN_HALLS:// Cannot raid the elven halls vaults until fountain drainedif (player_branch_depth() == branches[BRANCH_ELVEN_HALLS].depth){for (int x = 5; x < GXM - 5; x++){for (int y = 5; y < GYM - 5; y++){if (grd[x][y] == DNGN_SPARKLING_FOUNTAIN)ret = false;}}}break;case BRANCH_HALL_OF_ZOT:// Cannot control teleport until the Orb is picked upif (player_branch_depth() == branches[BRANCH_HALL_OF_ZOT].depth&& you.char_direction != GDT_ASCENDING){ret = false;}break;default:break;}
ret = false;
/* As a special exception, you may create a larger work that containspart or all of the Bison parser skeleton and distribute that workunder terms of your choice, so long as that work isn't itself aparser generator using the skeleton or a modified version thereofas a parser skeleton. Alternatively, if you modify or redistributethe parser skeleton itself, you may (at your option) remove thisspecial exception, which will cause the skeleton and the resultingBison output files to be licensed under the GNU General PublicLicense without this special exception.
/* As a special exception, when this file is copied by Bison into aBison output file, you may use that output file without restriction.This special exception was added by the Free Software Foundationin version 1.24 of Bison. */
NAME = 265,DEPTH = 266,ORIENT = 267,PLACE = 268,CHANCE = 269,MONS = 270,ITEM = 271,MARKER = 272,PRELUDE = 273,MAIN = 274,VALIDATE = 275,VETO = 276,NSUBST = 277,WELCOME = 278,COMMA = 279,INTEGER = 280,CHARACTER = 281,STRING = 282,MAP_LINE = 283,MONSTER_NAME = 284,ITEM_INFO = 285,LUA_LINE = 286
KMASK = 265,NAME = 266,DEPTH = 267,ORIENT = 268,PLACE = 269,CHANCE = 270,MONS = 271,ITEM = 272,MARKER = 273,PRELUDE = 274,MAIN = 275,VALIDATE = 276,VETO = 277,NSUBST = 278,WELCOME = 279,LFLAGS = 280,BFLAGS = 281,COMMA = 282,INTEGER = 283,CHARACTER = 284,STRING = 285,MAP_LINE = 286,MONSTER_NAME = 287,ITEM_INFO = 288,LUA_LINE = 289
#define NAME 265#define DEPTH 266#define ORIENT 267#define PLACE 268#define CHANCE 269#define MONS 270#define ITEM 271#define MARKER 272#define PRELUDE 273#define MAIN 274#define VALIDATE 275#define VETO 276#define NSUBST 277#define WELCOME 278#define COMMA 279#define INTEGER 280#define CHARACTER 281#define STRING 282#define MAP_LINE 283#define MONSTER_NAME 284#define ITEM_INFO 285#define LUA_LINE 286
#define KMASK 265#define NAME 266#define DEPTH 267#define ORIENT 268#define PLACE 269#define CHANCE 270#define MONS 271#define ITEM 272#define MARKER 273#define PRELUDE 274#define MAIN 275#define VALIDATE 276#define VETO 277#define NSUBST 278#define WELCOME 279#define LFLAGS 280#define BFLAGS 281#define COMMA 282#define INTEGER 283#define CHARACTER 284#define STRING 285#define MAP_LINE 286#define MONSTER_NAME 287#define ITEM_INFO 288#define LUA_LINE 289
{
typedef union YYSTYPE {
}/* Line 1529 of yacc.c. */#line 117 "levcomp.tab.h"YYSTYPE;
} YYSTYPE;/* Line 1274 of yacc.c. */#line 111 "levcomp.tab.h"
/* As a special exception, you may create a larger work that containspart or all of the Bison parser skeleton and distribute that workunder terms of your choice, so long as that work isn't itself aparser generator using the skeleton or a modified version thereofas a parser skeleton. Alternatively, if you modify or redistributethe parser skeleton itself, you may (at your option) remove thisspecial exception, which will cause the skeleton and the resultingBison output files to be licensed under the GNU General PublicLicense without this special exception.
/* As a special exception, when this file is copied by Bison into aBison output file, you may use that output file without restriction.This special exception was added by the Free Software Foundationin version 1.24 of Bison. */
NAME = 265,DEPTH = 266,ORIENT = 267,PLACE = 268,CHANCE = 269,MONS = 270,ITEM = 271,MARKER = 272,PRELUDE = 273,MAIN = 274,VALIDATE = 275,VETO = 276,NSUBST = 277,WELCOME = 278,COMMA = 279,INTEGER = 280,CHARACTER = 281,STRING = 282,MAP_LINE = 283,MONSTER_NAME = 284,ITEM_INFO = 285,LUA_LINE = 286
KMASK = 265,NAME = 266,DEPTH = 267,ORIENT = 268,PLACE = 269,CHANCE = 270,MONS = 271,ITEM = 272,MARKER = 273,PRELUDE = 274,MAIN = 275,VALIDATE = 276,VETO = 277,NSUBST = 278,WELCOME = 279,LFLAGS = 280,BFLAGS = 281,COMMA = 282,INTEGER = 283,CHARACTER = 284,STRING = 285,MAP_LINE = 286,MONSTER_NAME = 287,ITEM_INFO = 288,LUA_LINE = 289
#define NAME 265#define DEPTH 266#define ORIENT 267#define PLACE 268#define CHANCE 269#define MONS 270#define ITEM 271#define MARKER 272#define PRELUDE 273#define MAIN 274#define VALIDATE 275#define VETO 276#define NSUBST 277#define WELCOME 278#define COMMA 279#define INTEGER 280#define CHARACTER 281#define STRING 282#define MAP_LINE 283#define MONSTER_NAME 284#define ITEM_INFO 285#define LUA_LINE 286
#define KMASK 265#define NAME 266#define DEPTH 267#define ORIENT 268#define PLACE 269#define CHANCE 270#define MONS 271#define ITEM 272#define MARKER 273#define PRELUDE 274#define MAIN 275#define VALIDATE 276#define VETO 277#define NSUBST 278#define WELCOME 279#define LFLAGS 280#define BFLAGS 281#define COMMA 282#define INTEGER 283#define CHARACTER 284#define STRING 285#define MAP_LINE 286#define MONSTER_NAME 287#define ITEM_INFO 288#define LUA_LINE 289
{
typedef union YYSTYPE {
}/* Line 193 of yacc.c. */#line 208 "levcomp.tab.c"YYSTYPE;
} YYSTYPE;/* Line 185 of yacc.c. */#line 194 "levcomp.tab.c"
/* Line 216 of yacc.c. */#line 221 "levcomp.tab.c"#ifdef short# undef short#endif
#ifdef YYTYPE_INT8typedef YYTYPE_INT8 yytype_int8;#elif (defined __STDC__ || defined __C99__FUNC__ \|| defined __cplusplus || defined _MSC_VER)typedef signed char yytype_int8;#elsetypedef short int yytype_int8;#endif
/* Line 213 of yacc.c. */#line 206 "levcomp.tab.c"
#ifdef YYTYPE_INT16typedef YYTYPE_INT16 yytype_int16;#elsetypedef short int yytype_int16;#endif#ifndef YYSIZE_T# ifdef __SIZE_TYPE__# define YYSIZE_T __SIZE_TYPE__# elif defined size_t# define YYSIZE_T size_t# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \|| defined __cplusplus || defined _MSC_VER)# include <stddef.h> /* INFRINGES ON USER NAME SPACE */# define YYSIZE_T size_t# else# define YYSIZE_T unsigned int
# ifndef YYFREE# define YYFREE free
#endif#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)#ifndef YY_# if YYENABLE_NLS# if ENABLE_NLS# include <libintl.h> /* INFRINGES ON USER NAME SPACE */# define YY_(msgid) dgettext ("bison-runtime", msgid)# endif
# ifndef YYMALLOC# define YYMALLOC malloc
# ifndef YY_# define YY_(msgid) msgid# endif#endif/* Suppress unused-variable warnings by "using" E. */#if ! defined lint || defined __GNUC__# define YYUSE(e) ((void) (e))#else# define YYUSE(e) /* empty */#endif
/* Identity function, used to suppress warnings about constant conditions. */#ifndef lint# define YYID(n) (n)#else#if (defined __STDC__ || defined __C99__FUNC__ \|| defined __cplusplus || defined _MSC_VER)static intYYID (int i)#elsestatic intYYID (i)int i;#endif{return i;}#endif#if ! defined yyoverflow || YYERROR_VERBOSE
/* Pacify GCC's `empty if-body' warning. */# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))# ifndef YYSTACK_ALLOC_MAXIMUM/* The OS might guarantee only one guard page at the bottom of the stack,and a page size can be as small as 4096 bytes. So we cannot safelyinvoke alloca (N) if N exceeds 4096. Use a slightly smaller numberto allow for a few compiler-allocated temporary stack slots. */# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */# endif
/* Pacify GCC's `empty if-body' warning. */# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# define YYSTACK_ALLOC YYMALLOC# define YYSTACK_FREE YYFREE# ifndef YYSTACK_ALLOC_MAXIMUM# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM# endif# if (defined __cplusplus && ! defined _STDLIB_H \&& ! ((defined YYMALLOC || defined malloc) \&& (defined YYFREE || defined free)))
# if defined (__STDC__) || defined (__cplusplus)
# ifndef YYMALLOC# define YYMALLOC malloc# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \|| defined __cplusplus || defined _MSC_VER)void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */# endif# endif# ifndef YYFREE# define YYFREE free# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \|| defined __cplusplus || defined _MSC_VER)void free (void *); /* INFRINGES ON USER NAME SPACE */# endif# endif
# define YYSTACK_ALLOC YYMALLOC# define YYSTACK_FREE YYFREE
/* YYNTOKENS -- Number of terminals. */#define YYNTOKENS 32/* YYNNTS -- Number of nonterminals. */#define YYNNTS 61/* YYNRULES -- Number of rules. */#define YYNRULES 105/* YYNRULES -- Number of states. */#define YYNSTATES 119
/* YYNTOKENS -- Number of terminals. */#define YYNTOKENS 35/* YYNNTS -- Number of nonterminals. */#define YYNNTS 64/* YYNRULES -- Number of rules. */#define YYNRULES 112/* YYNRULES -- Number of states. */#define YYNSTATES 128
62, 64, 66, 68, 70, 72, 74, 76, 79, 80,83, 85, 88, 89, 92, 94, 97, 98, 101, 103,106, 107, 110, 112, 115, 116, 119, 121, 123, 126,128, 131, 133, 136, 139, 141, 145, 147, 150, 151,154, 156, 157, 161, 163, 164, 167, 169, 172, 174,178, 180, 183, 185, 189, 191, 193, 196, 200, 202,204, 206, 209, 213, 215, 217, 220, 222, 225, 228,230, 233, 236, 238, 241, 243
62, 64, 66, 68, 70, 72, 74, 76, 78, 80,82, 85, 86, 89, 91, 94, 95, 98, 100, 103,104, 107, 109, 112, 113, 116, 118, 121, 122, 125,127, 129, 132, 134, 137, 139, 142, 144, 147, 150,152, 156, 158, 161, 162, 165, 167, 170, 173, 174,178, 180, 181, 184, 186, 189, 191, 195, 197, 200,202, 206, 208, 210, 213, 217, 219, 221, 223, 226,230, 232, 234, 237, 239, 242, 245, 247, 250, 253,255, 258, 260
33, 0, -1, 34, -1, -1, 34, 35, -1, 37,-1, 39, -1, 26, -1, 38, -1, 44, -1, 3,27, -1, 42, 40, -1, -1, 40, 41, -1, 43,-1, 90, -1, 10, 27, -1, 85, -1, 86, -1,87, -1, 88, -1, 89, -1, 82, -1, 79, -1,68, -1, 76, -1, 73, -1, 62, -1, 65, -1,59, -1, 61, -1, 60, -1, 47, -1, 56, -1,50, -1, 53, -1, 36, -1, 19, 45, -1, -1,45, 46, -1, 31, -1, 19, 48, -1, -1, 48,49, -1, 31, -1, 20, 51, -1, -1, 51, 52,-1, 31, -1, 21, 54, -1, -1, 54, 55, -1,31, -1, 18, 57, -1, -1, 57, 58, -1, 31,-1, 7, -1, 7, 27, -1, 9, -1, 9, 27,-1, 8, -1, 8, 27, -1, 4, 63, -1, 64,-1, 63, 24, 64, -1, 30, -1, 6, 66, -1,-1, 66, 67, -1, 27, -1, -1, 17, 69, 70,-1, 71, -1, -1, 71, 72, -1, 27, -1, 22,74, -1, 75, -1, 74, 24, 75, -1, 30, -1,5, 77, -1, 78, -1, 78, 24, 77, -1, 30,-1, 16, -1, 16, 80, -1, 80, 24, 81, -1,81, -1, 30, -1, 15, -1, 15, 83, -1, 84,24, 83, -1, 84, -1, 29, -1, 13, 27, -1,11, -1, 11, 27, -1, 14, 25, -1, 12, -1,12, 27, -1, 23, 27, -1, 91, -1, 91, 92,-1, 92, -1, 28, -1
36, 0, -1, 37, -1, -1, 37, 38, -1, 40,-1, 42, -1, 29, -1, 41, -1, 47, -1, 3,30, -1, 45, 43, -1, -1, 43, 44, -1, 46,-1, 96, -1, 11, 30, -1, 91, -1, 92, -1,93, -1, 94, -1, 95, -1, 88, -1, 85, -1,74, -1, 82, -1, 79, -1, 66, -1, 69, -1,72, -1, 73, -1, 62, -1, 64, -1, 63, -1,65, -1, 50, -1, 59, -1, 53, -1, 56, -1,39, -1, 20, 48, -1, -1, 48, 49, -1, 34,-1, 20, 51, -1, -1, 51, 52, -1, 34, -1,21, 54, -1, -1, 54, 55, -1, 34, -1, 22,57, -1, -1, 57, 58, -1, 34, -1, 19, 60,-1, -1, 60, 61, -1, 34, -1, 7, -1, 7,30, -1, 9, -1, 9, 30, -1, 8, -1, 8,30, -1, 10, -1, 10, 30, -1, 4, 67, -1,68, -1, 67, 27, 68, -1, 33, -1, 6, 70,-1, -1, 70, 71, -1, 30, -1, 25, 30, -1,26, 30, -1, -1, 18, 75, 76, -1, 77, -1,-1, 77, 78, -1, 30, -1, 23, 80, -1, 81,-1, 80, 27, 81, -1, 33, -1, 5, 83, -1,84, -1, 84, 27, 83, -1, 33, -1, 17, -1,17, 86, -1, 86, 27, 87, -1, 87, -1, 33,-1, 16, -1, 16, 89, -1, 90, 27, 89, -1,90, -1, 32, -1, 14, 30, -1, 12, -1, 12,30, -1, 15, 28, -1, 13, -1, 13, 30, -1,24, 30, -1, 97, -1, 97, 98, -1, 98, -1,31, -1
164, 165, 166, 167, 168, 169, 170, 173, 175, 176,179, 184, 186, 187, 190, 195, 197, 198, 201, 206,208, 209, 212, 217, 219, 220, 223, 228, 229, 237,238, 246, 247, 255, 258, 259, 262, 270, 273, 274,277, 287, 286, 297, 299, 300, 303, 315, 318, 319,322, 331, 334, 335, 338, 347, 348, 351, 352, 355,363, 364, 367, 368, 371, 380, 389, 390, 399, 407,408, 417, 426, 429, 430, 433
164, 165, 166, 167, 168, 169, 170, 171, 172, 173,176, 178, 179, 182, 187, 189, 190, 193, 198, 200,201, 204, 209, 211, 212, 215, 220, 222, 223, 226,231, 232, 240, 241, 249, 250, 258, 259, 267, 270,271, 274, 282, 285, 286, 289, 298, 307, 317, 316,327, 329, 330, 333, 345, 348, 349, 352, 361, 364,365, 368, 377, 378, 381, 382, 385, 393, 394, 397,398, 401, 410, 419, 420, 429, 437, 438, 447, 456,459, 460, 463
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.First, the terminals, then, starting at YYNTOKENS, nonterminals. */
#if YYDEBUG || YYERROR_VERBOSE/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.First, the terminals, then, starting at YYNTOKENS, nonterminals. */
"TAGS", "KFEAT", "KITEM", "KMONS", "NAME", "DEPTH", "ORIENT", "PLACE","CHANCE", "MONS", "ITEM", "MARKER", "PRELUDE", "MAIN", "VALIDATE","VETO", "NSUBST", "WELCOME", "COMMA", "INTEGER", "CHARACTER", "STRING","MAP_LINE", "MONSTER_NAME", "ITEM_INFO", "LUA_LINE", "$accept", "file","definitions", "definition", "error_seq", "def", "defdepth", "level","map_specs", "map_spec", "name", "metaline", "global_lua","global_lua_lines", "global_lua_line", "main_lua", "main_lua_lines","main_lua_line", "validate_lua", "validate_lua_lines","validate_lua_line", "veto_lua", "veto_lua_lines", "veto_lua_line","prelude_lua", "prelude_lua_lines", "prelude_lua_line", "kfeat", "kmons","kitem", "shuffle", "shuffle_specifiers", "shuffle_spec", "tags","tagstrings", "tagstring", "marker", "@1", "marker_spec","mspec_segments", "mspec_segment", "nsubst", "nsubst_specifiers","nsubst_spec", "subst", "subst_specifiers", "subst_spec", "items","item_specifiers", "item_specifier", "mons", "mnames", "mname", "place","depth", "chance", "orientation", "welcome", "map_def", "map_lines","map_line", 0
"TAGS", "KFEAT", "KITEM", "KMONS", "KMASK", "NAME", "DEPTH", "ORIENT","PLACE", "CHANCE", "MONS", "ITEM", "MARKER", "PRELUDE", "MAIN","VALIDATE", "VETO", "NSUBST", "WELCOME", "LFLAGS", "BFLAGS", "COMMA","INTEGER", "CHARACTER", "STRING", "MAP_LINE", "MONSTER_NAME","ITEM_INFO", "LUA_LINE", "$accept", "file", "definitions", "definition","error_seq", "def", "defdepth", "level", "map_specs", "map_spec", "name","metaline", "global_lua", "global_lua_lines", "global_lua_line","main_lua", "main_lua_lines", "main_lua_line", "validate_lua","validate_lua_lines", "validate_lua_line", "veto_lua", "veto_lua_lines","veto_lua_line", "prelude_lua", "prelude_lua_lines", "prelude_lua_line","kfeat", "kmons", "kitem", "kmask", "shuffle", "shuffle_specifiers","shuffle_spec", "tags", "tagstrings", "tagstring", "lflags", "bflags","marker", "@1", "marker_spec", "mspec_segments", "mspec_segment","nsubst", "nsubst_specifiers", "nsubst_spec", "subst","subst_specifiers", "subst_spec", "items", "item_specifiers","item_specifier", "mons", "mnames", "mname", "place", "depth", "chance","orientation", "welcome", "map_def", "map_lines", "map_line", 0
0, 32, 33, 34, 34, 35, 35, 36, 37, 37,38, 39, 40, 40, 41, 41, 42, 43, 43, 43,43, 43, 43, 43, 43, 43, 43, 43, 43, 43,43, 43, 43, 43, 43, 43, 43, 44, 45, 45,46, 47, 48, 48, 49, 50, 51, 51, 52, 53,54, 54, 55, 56, 57, 57, 58, 59, 59, 60,60, 61, 61, 62, 63, 63, 64, 65, 66, 66,67, 69, 68, 70, 71, 71, 72, 73, 74, 74,75, 76, 77, 77, 78, 79, 79, 80, 80, 81,82, 82, 83, 83, 84, 85, 86, 86, 87, 88,88, 89, 90, 91, 91, 92
0, 35, 36, 37, 37, 38, 38, 39, 40, 40,41, 42, 43, 43, 44, 44, 45, 46, 46, 46,46, 46, 46, 46, 46, 46, 46, 46, 46, 46,46, 46, 46, 46, 46, 46, 46, 46, 46, 46,47, 48, 48, 49, 50, 51, 51, 52, 53, 54,54, 55, 56, 57, 57, 58, 59, 60, 60, 61,62, 62, 63, 63, 64, 64, 65, 65, 66, 67,67, 68, 69, 70, 70, 71, 72, 73, 75, 74,76, 77, 77, 78, 79, 80, 80, 81, 82, 83,83, 84, 85, 85, 86, 86, 87, 88, 88, 89,89, 90, 91, 92, 92, 93, 94, 94, 95, 96,97, 97, 98
1, 1, 1, 1, 1, 1, 1, 2, 0, 2,1, 2, 0, 2, 1, 2, 0, 2, 1, 2,0, 2, 1, 2, 0, 2, 1, 1, 2, 1,2, 1, 2, 2, 1, 3, 1, 2, 0, 2,1, 0, 3, 1, 0, 2, 1, 2, 1, 3,1, 2, 1, 3, 1, 1, 2, 3, 1, 1,1, 2, 3, 1, 1, 2, 1, 2, 2, 1,2, 2, 1, 2, 1, 1
2, 0, 2, 1, 2, 0, 2, 1, 2, 0,2, 1, 2, 0, 2, 1, 2, 0, 2, 1,1, 2, 1, 2, 1, 2, 1, 2, 2, 1,3, 1, 2, 0, 2, 1, 2, 2, 0, 3,1, 0, 2, 1, 2, 1, 3, 1, 2, 1,3, 1, 1, 2, 3, 1, 1, 1, 2, 3,1, 1, 2, 1, 2, 2, 1, 2, 2, 1,2, 1, 1
3, 0, 2, 1, 0, 0, 38, 4, 5, 8,6, 12, 9, 10, 16, 37, 11, 40, 39, 0,0, 68, 57, 61, 59, 96, 99, 0, 0, 90,85, 71, 54, 42, 46, 50, 0, 0, 7, 105,36, 13, 14, 32, 34, 35, 33, 29, 31, 30,27, 28, 24, 26, 25, 23, 22, 17, 18, 19,20, 21, 15, 102, 104, 66, 63, 64, 84, 81,82, 67, 58, 62, 60, 97, 100, 95, 98, 94,91, 93, 89, 86, 88, 74, 53, 41, 45, 49,80, 77, 78, 101, 103, 0, 0, 70, 69, 0,0, 72, 73, 56, 55, 44, 43, 48, 47, 52,51, 0, 65, 83, 92, 87, 76, 75, 79
3, 0, 2, 1, 0, 0, 41, 4, 5, 8,6, 12, 9, 10, 16, 40, 11, 43, 42, 0,0, 73, 60, 64, 62, 66, 103, 106, 0, 0,97, 92, 78, 57, 45, 49, 53, 0, 0, 0,0, 7, 112, 39, 13, 14, 35, 37, 38, 36,31, 33, 32, 34, 27, 28, 29, 30, 24, 26,25, 23, 22, 17, 18, 19, 20, 21, 15, 109,111, 71, 68, 69, 91, 88, 89, 72, 61, 65,63, 67, 104, 107, 102, 105, 101, 98, 100, 96,93, 95, 81, 56, 44, 48, 52, 87, 84, 85,108, 76, 77, 110, 0, 0, 75, 74, 0, 0,79, 80, 59, 58, 47, 46, 51, 50, 55, 54,0, 70, 90, 99, 94, 83, 82, 86
-1, 1, 2, 7, 40, 8, 9, 10, 16, 41,11, 42, 12, 15, 18, 43, 87, 106, 44, 88,108, 45, 89, 110, 46, 86, 104, 47, 48, 49,50, 66, 67, 51, 71, 98, 52, 85, 101, 102,117, 53, 91, 92, 54, 69, 70, 55, 83, 84,56, 80, 81, 57, 58, 59, 60, 61, 62, 63,64
-1, 1, 2, 7, 43, 8, 9, 10, 16, 44,11, 45, 12, 15, 18, 46, 94, 115, 47, 95,117, 48, 96, 119, 49, 93, 113, 50, 51, 52,53, 54, 72, 73, 55, 77, 107, 56, 57, 58,92, 110, 111, 126, 59, 98, 99, 60, 75, 76,61, 90, 91, 62, 87, 88, 63, 64, 65, 66,67, 68, 69, 70
#define YYPACT_NINF -64static const yytype_int8 yypact[] =
#define YYPACT_NINF -68static const yysigned_char yypact[] =
-64, 6, 17, -64, -6, -2, -64, -64, -64, -64,-64, -64, -64, -64, -64, -8, -4, -64, -64, -1,0, -64, 1, 4, 5, 7, 8, 10, 13, -3,3, -64, -64, -64, -64, -64, 9, 14, -64, -64,-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,-64, -64, -64, 12, -64, -64, 18, -64, -64, -64,19, 20, -64, -64, -64, -64, -64, -64, -64, -64,-64, 21, -64, 22, -64, -64, 23, 24, 25, 26,-64, 27, -64, -64, -64, -1, 0, -64, -64, -3,3, -64, 31, -64, -64, -64, -64, -64, -64, -64,-64, 9, -64, -64, -64, -64, -64, -64, -64
-68, 7, 20, -68, -6, -2, -68, -68, -68, -68,-68, -68, -68, -68, -68, -8, -4, -68, -68, -3,-1, -68, 3, 4, 5, 6, 8, 9, 11, 1,10, 12, -68, -68, -68, -68, -68, 13, 14, 17,18, -68, -68, -68, -68, -68, -68, -68, -68, -68,-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,-68, -68, -68, -68, -68, -68, -68, -68, -68, 19,-68, -68, 16, -68, -68, -68, 22, 21, -68, -68,-68, -68, -68, -68, -68, -68, -68, -68, 25, -68,26, -68, -68, 23, 24, 27, 28, -68, 29, -68,-68, -68, -68, -68, -3, -1, -68, -68, 10, 12,-68, 30, -68, -68, -68, -68, -68, -68, -68, -68,13, -68, -68, -68, -68, -68, -68, -68
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,-64, -64, -51, -64, -64, -64, -64, -64, -64, -64,-64, -64, -64, -63, -64, -47, -64, -64, -64, -50,-64, -46, -64, -64, -64, -64, -64, -64, -64, -64,-11
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,-68, -68, -68, -67, -68, -68, -68, -68, -68, -68,-68, -68, -68, -68, -68, -68, -66, -68, -50, -68,-68, -68, -46, -68, -49, -68, -68, -68, -68, -68,-68, -68, -68, -5
4, 13, 38, 17, 39, 14, 79, 5, 72, 65,68, 73, 74, 82, 75, 76, 6, 77, 78, 90,39, 93, 95, 96, 112, 99, 100, 97, 118, 113,115, 111, 94, 114, 103, 105, 107, 109, 116
38, 39, 40, 4, 13, 41, 17, 42, 14, 85,71, 5, 74, 78, 79, 80, 81, 121, 82, 83,6, 84, 86, 104, 100, 89, 97, 101, 102, 105,42, 106, 108, 109, 127, 122, 120, 112, 114, 123,125, 116, 118, 124, 103
3, 27, 26, 31, 28, 27, 29, 10, 27, 30,30, 27, 27, 30, 27, 27, 19, 27, 25, 30,28, 27, 24, 24, 95, 24, 24, 27, 111, 96,100, 24, 63, 99, 31, 31, 31, 31, 27
24, 25, 26, 3, 30, 29, 34, 31, 30, 28,33, 11, 33, 30, 30, 30, 30, 104, 30, 30,20, 30, 32, 27, 30, 33, 33, 30, 30, 27,31, 30, 27, 27, 120, 105, 27, 34, 34, 108,30, 34, 34, 109, 69
0, 33, 34, 0, 3, 10, 19, 35, 37, 38,39, 42, 44, 27, 27, 45, 40, 31, 46, 4,5, 6, 7, 8, 9, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 26, 28,36, 41, 43, 47, 50, 53, 56, 59, 60, 61,62, 65, 68, 73, 76, 79, 82, 85, 86, 87,88, 89, 90, 91, 92, 30, 63, 64, 30, 77,78, 66, 27, 27, 27, 27, 27, 27, 25, 29,83, 84, 30, 80, 81, 69, 57, 48, 51, 54,30, 74, 75, 27, 92, 24, 24, 27, 67, 24,24, 70, 71, 31, 58, 31, 49, 31, 52, 31,55, 24, 64, 77, 83, 81, 27, 72, 75
0, 36, 37, 0, 3, 11, 20, 38, 40, 41,42, 45, 47, 30, 30, 48, 43, 34, 49, 4,5, 6, 7, 8, 9, 10, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25,26, 29, 31, 39, 44, 46, 50, 53, 56, 59,62, 63, 64, 65, 66, 69, 72, 73, 74, 79,82, 85, 88, 91, 92, 93, 94, 95, 96, 97,98, 33, 67, 68, 33, 83, 84, 70, 30, 30,30, 30, 30, 30, 30, 28, 32, 89, 90, 33,86, 87, 75, 60, 51, 54, 57, 33, 80, 81,30, 30, 30, 98, 27, 27, 30, 71, 27, 27,76, 77, 34, 61, 34, 52, 34, 55, 34, 58,27, 68, 83, 89, 87, 30, 78, 81
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)# define YYSIZE_T __SIZE_TYPE__#endif#if ! defined (YYSIZE_T) && defined (size_t)# define YYSIZE_T size_t#endif#if ! defined (YYSIZE_T)# if defined (__STDC__) || defined (__cplusplus)# include <stddef.h> /* INFRINGES ON USER NAME SPACE */# define YYSIZE_T size_t# endif#endif#if ! defined (YYSIZE_T)# define YYSIZE_T unsigned int#endif
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \do { \if (yydebug) \{ \YYFPRINTF (stderr, "%s ", Title); \yy_symbol_print (stderr, \Type, Value); \YYFPRINTF (stderr, "\n"); \} \} while (YYID (0))/*--------------------------------.| Print this symbol on YYOUTPUT. |`--------------------------------*/
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \do { \if (yydebug) \{ \YYFPRINTF (stderr, "%s ", Title); \yysymprint (stderr, \Type, Value); \YYFPRINTF (stderr, "\n"); \} \} while (0)
/*ARGSUSED*/#if (defined __STDC__ || defined __C99__FUNC__ \|| defined __cplusplus || defined _MSC_VER)static voidyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)#elsestatic voidyy_symbol_value_print (yyoutput, yytype, yyvaluep)FILE *yyoutput;int yytype;YYSTYPE const * const yyvaluep;#endif{if (!yyvaluep)return;# ifdef YYPRINTif (yytype < YYNTOKENS)YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);# elseYYUSE (yyoutput);# endifswitch (yytype){default:break;}}/*--------------------------------.| Print this symbol on YYOUTPUT. |`--------------------------------*/#if (defined __STDC__ || defined __C99__FUNC__ \|| defined __cplusplus || defined _MSC_VER)static voidyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)#elsestatic voidyy_symbol_print (yyoutput, yytype, yyvaluep)FILE *yyoutput;int yytype;YYSTYPE const * const yyvaluep;#endif{if (yytype < YYNTOKENS)YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);elseYYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);yy_symbol_value_print (yyoutput, yytype, yyvaluep);YYFPRINTF (yyoutput, ")");}
unsigned long int yylno = yyrline[yyrule];YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",yyrule - 1, yylno);/* The symbols being reduced. */for (yyi = 0; yyi < yynrhs; yyi++){fprintf (stderr, " $%d = ", yyi + 1);yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],&(yyvsp[(yyi + 1) - (yynrhs)]));fprintf (stderr, "\n");}
unsigned int yylno = yyrline[yyrule];YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",yyrule - 1, yylno);/* Print the symbols being reduced, and their result. */for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
# ifndef yytnamerr/* Copy to YYRES the contents of YYSTR after stripping away unnecessaryquotes and backslashes, so that it's suitable for yyerror. Theheuristic is that double-quoting is unnecessary unless the stringcontains an apostrophe, a comma, or backslash (other thanbackslash-backslash). YYSTR is taken from yytname. If YYRES isnull, do not copy; instead, return the length of what the resultwould have been. */static YYSIZE_Tyytnamerr (char *yyres, const char *yystr){if (*yystr == '"'){YYSIZE_T yyn = 0;char const *yyp = yystr;
#endif /* !YYERROR_VERBOSE */
case '\\':if (*++yyp != '\\')goto do_not_strip_quotes;/* Fall through. */default:if (yyres)yyres[yyn] = *yyp;yyn++;break;case '"':if (yyres)yyres[yyn] = '\0';return yyn;}do_not_strip_quotes: ;}if (! yyres)return yystrlen (yystr);return yystpcpy (yyres, yystr) - yyres;}# endif
#if YYDEBUG/*--------------------------------.| Print this symbol on YYOUTPUT. |`--------------------------------*/
/* Copy into YYRESULT an error message about the unexpected tokenYYCHAR while in state YYSTATE. Return the number of bytes copied,including the terminating null byte. If YYRESULT is null, do notcopy anything; just return the number of bytes that would becopied. As a special case, return 0 if an ordinary "syntax error"message will do. Return YYSIZE_MAXIMUM if overflow occurs duringsize calculation. */static YYSIZE_Tyysyntax_error (char *yyresult, int yystate, int yychar)
#if defined (__STDC__) || defined (__cplusplus)static voidyysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)#elsestatic voidyysymprint (yyoutput, yytype, yyvaluep)FILE *yyoutput;int yytype;YYSTYPE *yyvaluep;#endif
{int yytype = YYTRANSLATE (yychar);YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);YYSIZE_T yysize = yysize0;YYSIZE_T yysize1;int yysize_overflow = 0;enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];int yyx;# if 0/* This is so xgettext sees the translatable formats that areconstructed on the fly. */YY_("syntax error, unexpected %s");YY_("syntax error, unexpected %s, expecting %s");YY_("syntax error, unexpected %s, expecting %s or %s");YY_("syntax error, unexpected %s, expecting %s or %s or %s");YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");# endifchar *yyfmt;char const *yyf;static char const yyunexpected[] = "syntax error, unexpected %s";static char const yyexpecting[] = ", expecting %s";static char const yyor[] = " or %s";char yyformat[sizeof yyunexpected+ sizeof yyexpecting - 1+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)* (sizeof yyor - 1))];char const *yyprefix = yyexpecting;/* Start YYX at -YYN if negative to avoid negative indexes inYYCHECK. */int yyxbegin = yyn < 0 ? -yyn : 0;
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
yyarg[0] = yytname[yytype];yyfmt = yystpcpy (yyformat, yyunexpected);for (yyx = yyxbegin; yyx < yyxend; ++yyx)if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR){if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM){yycount = 1;yysize = yysize0;yyformat[sizeof yyunexpected - 1] = '\0';break;}yyarg[yycount++] = yytname[yyx];yysize1 = yysize + yytnamerr (0, yytname[yyx]);yysize_overflow |= (yysize1 < yysize);yysize = yysize1;yyfmt = yystpcpy (yyfmt, yyprefix);yyprefix = yyor;}yyf = YY_(yyformat);yysize1 = yysize + yystrlen (yyf);yysize_overflow |= (yysize1 < yysize);yysize = yysize1;if (yysize_overflow)return YYSIZE_MAXIMUM;if (yyresult){/* Avoid sprintf, as that infringes on the user's name space.Don't have undefined behavior even if the translationproduced a string with the wrong number of "%s"s. */char *yyp = yyresult;int yyi = 0;while ((*yyp = *yyf) != '\0'){if (*yyp == '%' && yyf[1] == 's' && yyi < yycount){yyp += yytnamerr (yyp, yyarg[yyi++]);yyf += 2;}else{yyp++;yyf++;}}}return yysize;
# ifdef YYPRINTif (yytype < YYNTOKENS)YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);# endifswitch (yytype){default:break;
#if (defined __STDC__ || defined __C99__FUNC__ \|| defined __cplusplus || defined _MSC_VER)intyyparse (void *YYPARSE_PARAM)#elseintyyparse (YYPARSE_PARAM)void *YYPARSE_PARAM;#endif
# if defined (__STDC__) || defined (__cplusplus)int yyparse (void *YYPARSE_PARAM)# elseint yyparse (YYPARSE_PARAM)void *YYPARSE_PARAM;# endif
/* Do appropriate processing given the current state. Read alook-ahead token if we need one and don't already have one. */
/* Do appropriate processing given the current state. *//* Read a look-ahead token if we need one and don't already have one. *//* yyresume: */
/* Count tokens shifted since error; after three, turn off errorstatus. */if (yyerrstatus)yyerrstatus--;
quote_lua_string((yyvsp[(2) - (2)].text)).c_str()));
quote_lua_string((yyvsp[0].text)).c_str()));}break;case 66:#line 258 "levcomp.ypp"{ }break;case 67:#line 260 "levcomp.ypp"{lc_map.main.add(yylineno,make_stringf("kmask(\"%s\")",quote_lua_string((yyvsp[0].text)).c_str()));
/* Line 1267 of yacc.c. */#line 2019 "levcomp.tab.c"default: break;
#if ! YYERROR_VERBOSEyyerror (YY_("syntax error"));#else{YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM){YYSIZE_T yyalloc = 2 * yysize;if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))yyalloc = YYSTACK_ALLOC_MAXIMUM;if (yymsg != yymsgbuf)YYSTACK_FREE (yymsg);yymsg = (char *) YYSTACK_ALLOC (yyalloc);if (yymsg)yymsg_alloc = yyalloc;else
#if YYERROR_VERBOSEyyn = yypact[yystate];if (YYPACT_NINF < yyn && yyn < YYLAST){YYSIZE_T yysize = 0;int yytype = YYTRANSLATE (yychar);const char* yyprefix;char *yymsg;int yyx;/* Start YYX at -YYN if negative to avoid negative indexes inYYCHECK. */int yyxbegin = yyn < 0 ? -yyn : 0;/* Stay within bounds of both yycheck and yytname. */int yychecklim = YYLAST - yyn;int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;int yycount = 0;yyprefix = ", expecting ";for (yyx = yyxbegin; yyx < yyxend; ++yyx)if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
if (0 < yysize && yysize <= yymsg_alloc){(void) yysyntax_error (yymsg, yystate, yychar);yyerror (yymsg);}else{yyerror (YY_("syntax error"));if (yysize != 0)goto yyexhaustedlab;}}#endif
if (yycount < 5){yyprefix = ", expecting ";for (yyx = yyxbegin; yyx < yyxend; ++yyx)if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR){yyp = yystpcpy (yyp, yyprefix);yyp = yystpcpy (yyp, yytname[yyx]);yyprefix = " or ";}}yyerror (yymsg);YYSTACK_FREE (yymsg);}elseyyerror ("syntax error; also virtual memory exhausted");}else#endif /* YYERROR_VERBOSE */yyerror ("syntax error");
/* Pacify compilers like GCC when the user code never invokesYYERROR and the label yyerrorlab therefore never appears in usercode. */if (/*CONSTCOND*/ 0)
#ifdef __GNUC__/* Pacify GCC when the user code never invokes YYERROR and the labelyyerrorlab therefore never appears in user code. */if (0)
/*-------------------------------------------------.| yyexhaustedlab -- memory exhaustion comes here. |`-------------------------------------------------*/yyexhaustedlab:yyerror (YY_("memory exhausted"));
/*----------------------------------------------.| yyoverflowlab -- parser overflow comes here. |`----------------------------------------------*/yyoverflowlab:yyerror ("parser stack overflow");
if (yychar != YYEOF && yychar != YYEMPTY)yydestruct ("Cleanup: discarding lookahead",yytoken, &yylval);/* Do not reclaim the symbols of the rule which action triggeredthis YYABORT or YYACCEPT. */YYPOPSTACK (yylen);YY_STACK_PRINT (yyss, yyssp);while (yyssp != yyss){yydestruct ("Cleanup: popping",yystos[*yyssp], yyvsp);YYPOPSTACK (1);}
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,* if you want the limit (max/min) macros for int types.*/#ifndef __STDC_LIMIT_MACROS#define __STDC_LIMIT_MACROS 1
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */#ifdef c_plusplus#ifndef __cplusplus#define __cplusplus#endif
#include <inttypes.h>typedef int8_t flex_int8_t;typedef uint8_t flex_uint8_t;typedef int16_t flex_int16_t;typedef uint16_t flex_uint16_t;typedef int32_t flex_int32_t;typedef uint32_t flex_uint32_t;#elsetypedef signed char flex_int8_t;typedef short int flex_int16_t;typedef int flex_int32_t;typedef unsigned char flex_uint8_t;typedef unsigned short int flex_uint16_t;typedef unsigned int flex_uint32_t;#endif /* ! C99 */
/* Limits of integral types. */#ifndef INT8_MIN#define INT8_MIN (-128)#endif#ifndef INT16_MIN#define INT16_MIN (-32767-1)#endif#ifndef INT32_MIN#define INT32_MIN (-2147483647-1)#endif#ifndef INT8_MAX#define INT8_MAX (127)#endif#ifndef INT16_MAX#define INT16_MAX (32767)#endif#ifndef INT32_MAX#define INT32_MAX (2147483647)#endif#ifndef UINT8_MAX#define UINT8_MAX (255U)#endif#ifndef UINT16_MAX#define UINT16_MAX (65535U)#endif#ifndef UINT32_MAX#define UINT32_MAX (4294967295U)#endif
#ifdef __cplusplus
#endif/* The state buf must be large enough to hold one state per character in the main buffer.*/#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
/* Note: We specifically omit the test for yy_rule_can_match_eol because it requires* access to the local variable yy_act. Since yyless() is a macro, it would break* existing scanners that call yyless() from OUTSIDE yylex.* One obvious solution it to make yy_act a global. I tried that, and saw* a 5% performance hit in a non-yylineno scanner, because yy_act is* normally declared as a register variable-- so it is not worth it.*/#define YY_LESS_LINENO(n) \do { \int yyl;\for ( yyl = n; yyl < yyleng; ++yyl )\if ( yytext[yyl] == '\n' )\--yylineno;\}while(0)/* Return all but the first "n" matched characters back to the input stream. */
/* The funky do-while in the following #define is used to turn the definition* int a single C statement (which needs a semi-colon terminator). This* avoids problems with code like:** if ( condition_holds )* yyless( 5 );* else* do_something_else();** Prior to using the do-while the compiler would get upset at the* "else" because it interpreted the "if" statement as being all* done when it reached the ';' after the yyless() call.*//* Return all but the first 'n' matched characters back to the input stream. */
/* Stack of input buffers. */static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
static YY_BUFFER_STATE yy_current_buffer = 0;
void yyrestart (FILE *input_file );void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );void yy_delete_buffer (YY_BUFFER_STATE b );void yy_flush_buffer (YY_BUFFER_STATE b );void yypush_buffer_state (YY_BUFFER_STATE new_buffer );void yypop_buffer_state (void );
#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));void yy_load_buffer_state YY_PROTO(( void ));YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
if ( ! YY_CURRENT_BUFFER ){ \yyensure_buffer_stack (); \YY_CURRENT_BUFFER_LVALUE = \yy_create_buffer(yyin,YY_BUF_SIZE ); \} \YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
if ( ! yy_current_buffer ) \yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \yy_current_buffer->yy_is_interactive = is_interactive; \
if ( ! YY_CURRENT_BUFFER ){\yyensure_buffer_stack (); \YY_CURRENT_BUFFER_LVALUE = \yy_create_buffer(yyin,YY_BUF_SIZE ); \} \YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
if ( ! yy_current_buffer ) \yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \yy_current_buffer->yy_at_bol = at_bol; \
static yy_state_type yy_get_previous_state (void );static yy_state_type yy_try_NUL_trans (yy_state_type current_state );static int yy_get_next_buffer (void );static void yy_fatal_error (yyconst char msg[] );
static yy_state_type yy_get_previous_state YY_PROTO(( void ));static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));static int yy_get_next_buffer YY_PROTO(( void ));static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
#define YY_NUM_RULES 62#define YY_END_OF_BUFFER 63/* This struct is not used in this scanner,but its presence is necessary. */struct yy_trans_info{flex_int32_t yy_verify;flex_int32_t yy_nxt;};static yyconst flex_int16_t yy_accept[782] =
#define YY_NUM_RULES 65#define YY_END_OF_BUFFER 66static yyconst short int yy_acclist[902] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 63, 61,59, 60, 61, 57, 58, 61, 61, 61, 61, 61,61, 61, 61, 61, 61, 61, 61, 61, 59, 30,32, 61, 61, 61, 61, 61, 61, 62, 6, 62,62, 4, 2, 3, 62, 2, 2, 2, 2, 9,10, 62, 9, 9, 62, 12, 62, 61, 26, 61,57, 58, 61, 61, 61, 61, 61, 61, 61, 61,61, 61, 61, 61, 61, 30, 32, 61, 61, 61,61, 61, 61, 61, 24, 21, 24, 23, 58, 61,
66, 64, 65, 62, 64, 65, 63, 65, 64, 65,60, 64, 65, 61, 64, 65, 64, 65, 64, 65,64, 65, 64, 65, 64, 65, 64, 65, 64, 65,64, 65, 64, 65, 64, 65, 64, 65, 64, 65,64, 65, 64, 65, 64, 65, 62, 64, 65, 30,64, 65, 32, 64, 65, 64, 65, 64, 65, 64,65, 64, 65, 64, 65, 64, 65, 65, 6, 65,65, 65, 4, 65, 2, 65, 3, 6, 65, 65,2, 65, 2, 4, 65, 2, 65, 2, 65, 9,65, 10, 65, 65, 9, 65, 9, 65, 65, 12,
61, 61, 61, 61, 61, 61, 61, 61, 61, 61,61, 61, 24, 30, 32, 61, 61, 61, 61, 61,61, 14, 15, 61, 13, 13, 13, 13, 13, 13,13, 13, 13, 13, 13, 13, 13, 13, 13, 14,13, 13, 13, 13, 13, 17, 19, 20, 62, 18,62, 29, 62, 62, 59, 60, 58, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 59, 30, 32, 0, 0,0, 0, 30, 0, 0, 0, 0, 0, 0, 0,35, 6, 5, 0, 0, 2, 3, 2, 0, 2,
65, 65, 64, 65, 26, 63, 65, 64, 65, 60,64, 65, 61, 64, 65, 64, 65, 64, 65, 64,65, 64, 65, 64, 65, 64, 65, 64, 65, 64,65, 64, 65, 64, 65, 64, 65, 64, 65, 64,65, 64, 65, 64, 65, 30, 64, 65, 32, 64,65, 64, 65, 64, 65, 64, 65, 64, 65, 64,65, 64, 65, 64, 65, 24, 62, 64, 65, 21,63, 65, 24, 64, 65, 23, 60, 64, 65, 61,64, 65, 64, 65, 64, 65, 64, 65, 64, 65,64, 65, 64, 65, 64, 65, 64, 65, 64, 65,
2, 2, 2, 9, 9, 10, 9, 9, 9, 0,11, 12, 25, 0, 26, 25, 25, 25, 25, 25,
64, 65, 64, 65, 64, 65, 64, 65, 64, 65,64, 65, 24, 62, 64, 65, 30, 64, 65, 32,64, 65, 64, 65, 64, 65, 64, 65, 64, 65,64, 65, 64, 65, 14, 62, 64, 65, 15, 63,65, 64, 65, 13, 64, 65, 13, 61, 64, 65,13, 64, 65, 13, 64, 65, 13, 64, 65, 13,64, 65, 13, 64, 65, 13, 64, 65, 13, 64,65, 13, 64, 65, 13, 64, 65, 13, 64, 65,13, 64, 65, 13, 64, 65, 13, 64, 65, 13,64, 65, 13, 64, 65, 14, 62, 64, 65, 13,64, 65, 13, 64, 65, 13, 64, 65, 13, 64,65, 13, 64, 65, 17, 65, 19, 65, 20, 65,65, 18, 65, 65, 29, 65, 65, 65, 62, 63,61, 62, 30, 32, 30, 35, 6, 5, 2, 3,6, 2, 5, 2, 2, 2, 2, 9, 9, 10,9, 9, 9, 11, 12, 25, 26, 63, 25, 61,
25, 25, 25, 25, 25, 30, 25, 25, 25, 25,25, 25, 25, 25, 0, 24, 21, 24, 21, 58,0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 24, 30,0, 0, 0, 0, 0, 0, 0, 35, 14, 15,0, 15, 13, 13, 13, 13, 13, 13, 13, 13,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,25, 30, 30, 25, 25, 25, 25, 25, 25, 25,25, 35, 24, 62, 21, 24, 21, 63, 61, 24,62, 30, 35, 14, 62, 15, 15, 63, 13, 13,61, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 14, 13, 13, 13, 13, 13, 13, 13,16, 0, 19, 20, 0, 0, 28, 0, 28, 0,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 2, 9, 9, 9,7, 25, 25, 25, 25, 25, 25, 25, 25, 25,
13, 14, 62, 13, 13, 13, 13, 13, 13, 13,16, 19, 20, 28, 28, 29, 27, 28, 2, 9,9, 9, 7, 25, 25, 25, 25, 25, 25, 25,25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
13, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 31, 0, 0, 0, 0, 0, 2, 9, 8,9, 7, 25, 25, 25, 25, 25, 25, 25, 25,
13, 13, 13, 13, 31, 2, 9, 8, 9, 7,8, 25, 25, 25, 25, 25, 25, 25, 25, 25,
13, 13, 13, 13, 0, 0, 0, 51, 0, 0,0, 0, 50, 38, 0, 0, 0, 0, 0, 47,0, 0, 0, 34, 0, 0, 0, 0, 2, 25,25, 25, 25, 25, 25, 25, 25, 25, 25, 25,25, 25, 25, 25, 25, 25, 25, 25, 25, 25,25, 0, 25, 22, 22, 22, 22, 22, 22, 22,22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
13, 13, 13, 13, 13, 13, 13, 13, 53, 52,38, 47, 34, 2, 25, 25, 25, 25, 25, 53,25, 25, 25, 25, 25, 25, 25, 52, 25, 38,25, 25, 25, 25, 25, 25, 47, 25, 25, 25,25, 34, 25, 25, 25, 22, 22, 22, 22, 22,53, 22, 22, 22, 22, 22, 22, 22, 52, 22,38, 22, 22, 22, 22, 22, 22, 47, 22, 22,22, 22, 34, 22, 22, 22, 13, 13, 13, 13,
13, 13, 13, 13, 0, 40, 46, 54, 55, 56,0, 0, 0, 42, 0, 48, 0, 0, 0, 0,0, 37, 1, 25, 25, 25, 25, 25, 25, 25,25, 25, 25, 25, 25, 25, 25, 25, 25, 25,25, 22, 22, 22, 22, 22, 22, 22, 22, 22,22, 22, 22, 22, 22, 22, 22, 22, 22, 13,13, 13, 13, 13, 13, 13, 13, 13, 13, 44,52, 49, 41, 0, 45, 0, 0, 0, 0, 1,
13, 13, 13, 13, 13, 13, 40, 46, 56, 57,59, 58, 42, 50, 37, 1, 2, 25, 25, 25,40, 25, 46, 25, 56, 25, 57, 25, 59, 25,58, 25, 25, 25, 25, 25, 42, 25, 25, 50,25, 25, 25, 25, 25, 25, 37, 22, 22, 22,40, 22, 46, 22, 56, 22, 57, 22, 59, 22,58, 22, 22, 22, 22, 22, 42, 22, 22, 50,22, 22, 22, 22, 22, 22, 37, 13, 13, 13,13, 13, 13, 13, 13, 13, 13, 13, 13, 49,44, 48, 54, 51, 41, 45, 1, 2, 25, 49,25, 44, 25, 48, 25, 54, 25, 51, 25, 41,25, 25, 45, 25, 25, 25, 25, 22, 49, 22,44, 22, 48, 22, 54, 22, 51, 22, 41, 22,22, 45, 22, 22, 22, 22, 13, 13, 13, 13,13, 55, 43, 25, 55, 25, 43, 25, 25, 25,22, 55, 22, 43, 22, 22, 22, 13, 13, 33,25, 25, 33, 25, 22, 22, 33, 22, 13, 36,25, 25, 36, 22, 22, 36, 13, 25, 22, 13,25, 22, 13, 25, 22, 13, 39, 25, 39, 22,39} ;static yyconst short int yy_accept[852] ={ 0,1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 2,4, 7, 9, 11, 14, 17, 19, 21, 23, 25,27, 29, 31, 33, 35, 37, 39, 41, 43, 45,47, 50, 53, 56, 58, 60, 62, 64, 66, 68,69, 71, 72, 73, 75, 77, 80, 81, 83, 86,88, 90, 92, 94, 95, 97, 99, 100, 102, 103,105, 108, 110, 113, 116, 118, 120, 122, 124, 126,128, 130, 132, 134, 136, 138, 140, 142, 144, 146,149, 152, 154, 156, 158, 160, 162, 164, 166, 170,173, 176, 180, 183, 185, 187, 189, 191, 193, 195,197, 199, 201, 203, 205, 207, 209, 211, 213, 217,220, 223, 225, 227, 229, 231, 233, 235, 239, 242,244, 247, 251, 254, 257, 260, 263, 266, 269, 272,275, 278, 281, 284, 287, 290, 293, 296, 300, 303,306, 309, 312, 315, 317, 319, 321, 322, 324, 325,327, 328, 329, 330, 331, 332, 332, 332, 332, 332,332, 332, 332, 332, 332, 332, 332, 332, 332, 332,332, 332, 332, 332, 332, 332, 333, 334, 335, 335,335, 335, 335, 336, 336, 336, 336, 336, 336, 336,336, 337, 338, 339, 339, 339, 340, 342, 344, 344,345, 346, 347, 348, 349, 350, 351, 352, 353, 354,354, 355, 356, 357, 357, 359, 361, 362, 363, 364,365, 366, 367, 368, 369, 370, 371, 372, 373, 374,375, 376, 377, 378, 379, 380, 381, 383, 384, 385,386, 387, 388, 389, 390, 391, 393, 393, 395, 396,397, 399, 400, 400, 400, 400, 400, 400, 400, 400,400, 400, 400, 400, 400, 400, 400, 400, 400, 400,400, 400, 400, 402, 403, 403, 403, 403, 403, 403,403, 403, 404, 406, 407, 407, 409, 410, 412, 413,414, 415, 416, 417, 418, 419, 420, 421, 422, 423,424, 425, 426, 427, 428, 429, 430, 431, 432, 434,435, 436, 437, 438, 439, 440, 441, 442, 442, 443,444, 444, 444, 445, 445, 447, 447, 449, 449, 449,449, 449, 449, 449, 449, 449, 449, 449, 449, 449,449, 449, 449, 449, 449, 449, 449, 449, 449, 449,449, 449, 449, 449, 449, 449, 450, 451, 452, 453,454, 455, 456, 457, 458, 459, 460, 461, 462, 463,464, 465, 466, 467, 468, 469, 470, 471, 472, 473,474, 475, 476, 477, 478, 479, 480, 481, 482, 483,485, 486, 487, 488, 489, 490, 491, 492, 493, 494,495, 496, 497, 498, 499, 500, 501, 502, 503, 504,505, 506, 507, 509, 510, 511, 512, 513, 514, 515,516, 517, 518, 519, 520, 521, 522, 523, 524, 525,526, 527, 528, 529, 530, 531, 532, 533, 534, 535,536, 537, 538, 539, 540, 541, 542, 543, 544, 545,545, 545, 545, 545, 545, 545, 545, 545, 545, 545,545, 545, 545, 545, 545, 545, 545, 545, 545, 545,545, 545, 545, 546, 546, 546, 546, 546, 546, 547,548, 549, 550, 552, 553, 554, 555, 556, 557, 558,559, 560, 561, 562, 563, 564, 565, 566, 567, 568,569, 570, 571, 572, 573, 574, 574, 574, 575, 576,577, 578, 579, 580, 581, 582, 583, 584, 585, 586,587, 588, 589, 590, 591, 592, 593, 594, 595, 596,597, 598, 599, 600, 600, 600, 601, 602, 603, 604,605, 606, 607, 608, 609, 610, 611, 612, 613, 614,615, 616, 617, 618, 619, 620, 621, 622, 623, 624,625, 626, 627, 628, 629, 629, 629, 629, 629, 630,630, 630, 630, 630, 630, 630, 631, 632, 632, 632,632, 632, 632, 633, 633, 633, 633, 634, 634, 634,634, 634, 635, 636, 637, 638, 639, 641, 642, 643,644, 645, 646, 647, 649, 651, 652, 653, 654, 655,656, 658, 659, 660, 661, 663, 664, 665, 665, 666,667, 668, 669, 670, 672, 673, 674, 675, 676, 677,678, 680, 682, 683, 684, 685, 686, 687, 689, 690,691, 692, 694, 695, 696, 696, 697, 698, 699, 700,701, 702, 703, 704, 705, 706, 707, 708, 709, 710,711, 712, 713, 714, 715, 716, 717, 717, 717, 718,719, 720, 721, 722, 723, 723, 723, 723, 723, 724,724, 725, 725, 725, 725, 725, 725, 726, 728, 729,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,22, 22, 22, 22, 22, 22, 22, 22, 22, 22,13, 13, 13, 13, 13, 53, 43, 0, 0, 0,0, 25, 25, 25, 0, 25, 25, 22, 22, 22,0, 22, 22, 13, 13, 0, 33, 0, 0, 25,25, 0, 25, 22, 22, 0, 22, 13, 0, 36,25, 25, 22, 22, 13, 0, 25, 22, 13, 0,25, 22, 13, 0, 25, 22, 13, 39, 25, 22,0
730, 732, 734, 736, 738, 740, 742, 743, 744, 745,746, 748, 749, 751, 752, 753, 754, 755, 756, 758,759, 760, 762, 764, 766, 768, 770, 772, 773, 774,775, 776, 778, 779, 781, 782, 783, 784, 785, 786,788, 789, 790, 791, 792, 793, 794, 795, 796, 797,798, 799, 800, 801, 802, 803, 804, 805, 806, 806,807, 807, 807, 807, 807, 809, 811, 813, 815, 817,819, 821, 822, 824, 825, 826, 827, 828, 830, 832,834, 836, 838, 840, 841, 843, 844, 845, 846, 847,848, 849, 850, 851, 852, 853, 854, 854, 854, 854,854, 856, 858, 859, 859, 860, 861, 863, 865, 866,866, 867, 868, 869, 870, 870, 871, 871, 871, 872,874, 874, 875, 876, 878, 878, 879, 880, 880, 881,882, 884, 885, 887, 888, 888, 889, 890, 891, 891,892, 893, 894, 894, 895, 896, 897, 898, 900, 902,902
0, 34, 80, 85, 89, 91, 7, 14, 138, 172,219, 253, 301, 348, 94, 100, 106, 112, 2034, 2035,10, 2035, 2030, 2035, 2023, 2013, 2015, 2007, 1999, 95,95, 97, 2000, 2004, 2, 2014, 2009, 1988, 394, 0,2035, 101, 1977, 1979, 90, 84, 1973, 2035, 2035, 2016,118, 2035, 0, 2035, 2015, 357, 0, 1993, 112, 1968,2035, 2012, 81, 1966, 2010, 2035, 2009, 144, 2035, 2008,166, 225, 361, 365, 370, 379, 401, 405, 410, 421,427, 432, 440, 450, 454, 247, 459, 465, 469, 473,477, 483, 489, 0, 493, 2035, 499, 2035, 2001, 1991,
0, 47, 55, 60, 52, 64, 47, 68, 112, 159,206, 253, 300, 347, 74, 80, 70, 159, 2137, 2138,87, 2138, 2133, 2138, 2126, 2118, 2115, 2117, 2109, 2101,82, 2113, 85, 69, 2101, 2105, 81, 2115, 2110, 2089,393, 0, 2138, 155, 2078, 2080, 144, 71, 2074, 2138,2138, 2117, 167, 2138, 0, 2138, 2116, 171, 0, 2094,153, 2069, 2138, 2113, 135, 2067, 2111, 2138, 2110, 184,2138, 2109, 188, 260, 266, 270, 275, 354, 358, 362,279, 400, 369, 387, 404, 411, 416, 431, 426, 199,440, 445, 449, 453, 458, 463, 467, 0, 471, 2138,
1993, 1985, 1977, 137, 125, 340, 1978, 1982, 207, 1992,1987, 1966, 503, 23, 0, 353, 1955, 1957, 333, 206,1951, 507, 2035, 1994, 0, 1987, 1977, 1979, 1971, 1963,374, 377, 390, 1964, 1968, 355, 1978, 1973, 1952, 519,402, 1941, 1943, 334, 433, 350, 523, 2035, 1981, 2035,379, 2035, 425, 481, 417, 2035, 1974, 1971, 1955, 1969,1964, 1963, 1948, 1951, 1945, 1944, 1944, 1936, 1937, 1944,1924, 1936, 1927, 424, 1907, 0, 0, 2035, 1897, 1894,484, 1883, 0, 104, 1892, 1884, 1907, 437, 1868, 1862,2035, 2035, 2035, 1902, 526, 0, 2035, 0, 1891, 529,
475, 2138, 2102, 2094, 2091, 2093, 2085, 2077, 270, 2089,170, 80, 2077, 2081, 167, 2091, 2086, 2065, 480, 253,0, 262, 2054, 2056, 156, 342, 2050, 484, 2138, 2093,0, 2086, 2078, 2075, 2077, 2069, 2061, 349, 2073, 344,166, 2061, 2062, 248, 2069, 2064, 2043, 488, 371, 2023,2025, 394, 377, 349, 500, 2138, 2063, 2138, 253, 2138,347, 504, 417, 2138, 2051, 2034, 2044, 2028, 2037, 2027,2022, 2002, 413, 2008, 1992, 1994, 1994, 1976, 1945, 1951,1931, 1948, 1942, 478, 1920, 0, 0, 2138, 1909, 1904,431, 1895, 0, 271, 1908, 1905, 1923, 400, 1881, 1868,
1819, 1808, 520, 1783, 1782, 2035, 188, 1781, 535, 1824,2035, 2035, 537, 541, 2035, 545, 551, 555, 562, 567,572, 584, 589, 593, 597, 601, 605, 613, 623, 634,638, 642, 647, 651, 656, 663, 668, 672, 676, 680,684, 694, 688, 698, 546, 710, 2035, 714, 2035, 556,573, 628, 699, 614, 719, 718, 606, 621, 704, 720,724, 733, 734, 735, 739, 744, 748, 753, 0, 755,761, 766, 767, 771, 772, 773, 778, 779, 788, 2035,1823, 2035, 0, 1814, 1806, 1785, 1795, 1790, 1776, 1750,1753, 1750, 1734, 1725, 1706, 1716, 1720, 1700, 1712, 1699,
2138, 2138, 2138, 1905, 507, 0, 2138, 0, 1884, 512,1868, 1854, 484, 1828, 1818, 2138, 465, 1814, 516, 1857,2138, 2138, 518, 524, 2138, 528, 536, 540, 544, 548,552, 558, 564, 570, 574, 578, 582, 586, 595, 599,606, 610, 617, 622, 626, 630, 639, 645, 649, 653,657, 663, 667, 675, 679, 683, 529, 691, 2138, 695,2138, 611, 699, 587, 700, 631, 658, 701, 706, 707,715, 717, 722, 726, 728, 734, 736, 738, 740, 746,752, 754, 0, 760, 767, 768, 773, 774, 775, 781,779, 786, 800, 2138, 1842, 2138, 0, 1832, 1815, 1820,
775, 1676, 0, 553, 1675, 1660, 1683, 449, 1642, 1631,796, 798, 802, 2035, 1660, 609, 2035, 806, 2035, 811,2035, 1631, 1613, 1623, 1609, 1617, 1609, 1596, 1595, 1582,1576, 1572, 1568, 1559, 1547, 1530, 1526, 1528, 1528, 1504,815, 819, 1493, 1499, 1479, 1473, 1486, 823, 827, 831,2035, 835, 840, 844, 849, 853, 858, 863, 872, 876,880, 884, 895, 901, 907, 911, 915, 920, 925, 929,942, 946, 950, 954, 959, 963, 845, 889, 916, 955,964, 930, 968, 970, 972, 981, 985, 986, 993, 1002,1006, 1004, 1010, 1016, 1020, 1021, 1022, 1026, 1037, 1027,
1804, 1811, 1795, 1772, 1753, 514, 1759, 1750, 1746, 1729,1718, 1725, 1729, 1706, 1718, 1707, 770, 1672, 0, 357,1669, 1663, 1670, 512, 1633, 1623, 794, 795, 807, 2138,1660, 562, 2138, 811, 2138, 819, 2138, 1643, 1626, 1617,1623, 1616, 1624, 1614, 1600, 1600, 1609, 1594, 1582, 1591,1590, 1579, 1580, 1572, 1559, 1555, 1547, 1545, 1513, 823,825, 1505, 1507, 1494, 1486, 1493, 829, 833, 837, 2138,842, 850, 854, 858, 863, 885, 889, 874, 893, 901,905, 909, 914, 918, 923, 929, 939, 943, 947, 952,957, 961, 974, 978, 982, 986, 991, 995, 843, 864,
1041, 1043, 1045, 1047, 1049, 1055, 1480, 1467, 1474, 1457,1457, 1449, 1434, 1435, 1422, 1423, 1416, 1407, 1390, 1383,1367, 1363, 1361, 1364, 1338, 1056, 1060, 1327, 1339, 1323,1317, 1340, 1331, 1317, 1330, 1307, 1309, 1302, 1309, 1300,1299, 1276, 1275, 1280, 1260, 1233, 1245, 1227, 1211, 1180,1061, 2035, 1066, 1174, 1171, 1178, 1070, 1197, 1074, 2035,1079, 2035, 1081, 1087, 1095, 1099, 1106, 1110, 1114, 1124,1136, 1143, 1132, 1147, 1152, 1157, 1161, 1170, 1174, 1179,1183, 1191, 1195, 1201, 1205, 1209, 1213, 1119, 1184, 1196,1217, 1091, 1218, 1224, 1153, 1228, 1229, 1230, 1235, 1242,
859, 934, 987, 996, 930, 962, 1000, 1002, 1004, 1006,919, 1017, 1018, 1022, 1034, 1035, 1036, 1041, 1042, 1048,1049, 1053, 1059, 1054, 1066, 1070, 1071, 1072, 1076, 1077,1082, 1499, 1463, 1454, 1462, 1441, 1443, 1438, 1412, 1412,1421, 1407, 1394, 1406, 1405, 1396, 1397, 1390, 1372, 1371,1378, 1380, 1354, 1086, 1088, 1347, 1353, 1337, 1334, 1352,1352, 1345, 1330, 1335, 1312, 1304, 1305, 1286, 1291, 1289,1292, 1286, 1267, 1270, 1270, 1263, 1240, 1249, 1230, 1218,1189, 1093, 2138, 1098, 1183, 1179, 1189, 1099, 1208, 1103,2138, 1109, 2138, 1116, 1121, 1125, 1134, 1145, 1154, 1159,
1249, 1244, 1251, 1261, 1262, 1266, 1267, 1272, 1273, 1278,1279, 1280, 1178, 1164, 1149, 1160, 1140, 1141, 1122, 1129,1133, 1121, 1102, 1101, 1091, 1086, 1069, 1078, 1060, 1048,1022, 1008, 1007, 1284, 1021, 1025, 1006, 2035, 1004, 1000,990, 972, 2035, 2035, 965, 963, 972, 956, 966, 2035,942, 926, 903, 2035, 907, 903, 1286, 881, 900, 1288,1292, 1296, 1303, 1312, 1324, 1333, 1337, 1342, 1346, 1350,1354, 1358, 1365, 1370, 1380, 1384, 1388, 1392, 1396, 1400,1404, 1410, 1414, 1310, 1371, 1415, 1316, 1419, 1425, 1431,1405, 1421, 1437, 1438, 1442, 1443, 1444, 1449, 1450, 1458,
1163, 1167, 1171, 1175, 1187, 1194, 1198, 1203, 1207, 1212,1216, 1227, 1231, 1236, 1242, 1248, 1252, 1258, 1262, 1266,1270, 1135, 1271, 1126, 1237, 1176, 1253, 1275, 1276, 1281,1208, 1286, 1301, 1308, 1287, 1288, 1314, 1318, 1319, 1320,1326, 1330, 1331, 1335, 1337, 1341, 1345, 1347, 1349, 1198,1193, 1183, 1166, 1183, 1158, 1162, 1153, 1142, 1149, 1145,1144, 1143, 1120, 1118, 1126, 1116, 1095, 1107, 1098, 1077,1049, 1047, 1051, 1351, 1052, 1052, 1050, 1032, 2138, 1022,1021, 1016, 1008, 986, 983, 2138, 2138, 974, 956, 971,952, 962, 2138, 939, 937, 911, 2138, 912, 882, 1355,
1460, 1467, 1468, 1473, 1472, 1474, 1479, 893, 897, 892,891, 882, 880, 856, 841, 827, 842, 819, 825, 802,804, 784, 785, 777, 786, 2035, 2035, 2035, 2035, 2035,776, 775, 769, 2035, 749, 2035, 746, 733, 698, 696,686, 2035, 703, 1484, 1488, 1493, 1497, 1506, 1510, 1514,1518, 1525, 1529, 1534, 1538, 1542, 1546, 1551, 1555, 1560,1564, 1565, 1480, 1498, 1569, 1571, 1575, 1576, 1577, 1583,1587, 1592, 1594, 1596, 1598, 1600, 1606, 1607, 1612, 687,673, 669, 665, 656, 653, 647, 613, 610, 593, 2035,2035, 2035, 2035, 612, 2035, 594, 592, 1613, 561, 587,
861, 875, 1357, 1362, 1368, 1387, 1378, 1399, 1403, 1410,1414, 1421, 1425, 1429, 1433, 1437, 1441, 1446, 1453, 1457,1467, 1472, 1476, 1480, 1484, 1488, 1492, 1498, 1502, 1366,1458, 1503, 1507, 1105, 1513, 1519, 1525, 1526, 1463, 1493,1442, 1509, 1532, 1536, 1537, 1538, 1546, 1548, 1550, 1552,1557, 1561, 1565, 1567, 1566, 1571, 872, 884, 882, 878,874, 872, 870, 861, 829, 823, 820, 812, 827, 811,819, 790, 794, 776, 773, 773, 785, 777, 2138, 2138,2138, 2138, 2138, 2138, 772, 756, 751, 750, 2138, 740,2138, 740, 719, 685, 690, 671, 2138, 708, 1576, 1580,
1617, 1621, 1625, 1629, 1633, 1643, 1648, 1657, 1652, 1662,1634, 1644, 1666, 1667, 1668, 1672, 1674, 1678, 1680, 1685,580, 575, 562, 1686, 533, 2035, 2035, 518, 1687, 497,1691, 1696, 1700, 1705, 1709, 1713, 1717, 1701, 1721, 1723,1727, 1735, 1739, 465, 1740, 418, 2035, 1741, 400, 1745,1749, 1757, 1761, 1750, 1765, 1766, 1767, 404, 357, 2035,1771, 1779, 1787, 1788, 345, 202, 1792, 1793, 121, 121,1797, 1798, 98, 23, 1805, 1814, 12, 2035, 1816, 1820,2035, 1837, 1843, 1849, 1855, 1861, 1867, 1873, 1879, 1885,1891, 1897, 1903, 1909, 1915, 1921, 1927, 1933, 1939, 1945,
1587, 1593, 1599, 1603, 1607, 1612, 1617, 1621, 1628, 1632,1639, 1643, 1647, 1651, 1655, 1660, 1664, 1669, 1673, 1674,1678, 1572, 1680, 1684, 1685, 1689, 1690, 1691, 1695, 1701,1705, 1707, 1712, 1714, 1716, 1718, 1720, 1726, 1727, 1732,697, 681, 679, 672, 668, 660, 649, 646, 637, 602,603, 593, 2138, 2138, 2138, 2138, 2138, 2138, 613, 2138,597, 594, 1733, 550, 572, 1737, 1741, 1745, 1749, 1753,1758, 1763, 1770, 1774, 1781, 1786, 1790, 1754, 1764, 1791,1795, 1796, 1797, 1801, 1802, 1803, 1807, 1812, 1814, 561,551, 539, 1816, 508, 2138, 2138, 490, 1818, 412, 1822,
0, 1951, 1957, 1963, 1969
1824, 1830, 1834, 1838, 1842, 1846, 1850, 1851, 1852, 1856,1862, 1868, 418, 1869, 413, 2138, 1870, 360, 1875, 1879,1886, 1890, 1894, 1895, 1896, 1900, 366, 359, 2138, 1909,1902, 1916, 1917, 320, 247, 1921, 1922, 223, 224, 1926,1930, 147, 99, 1934, 1943, 59, 2138, 1947, 1953, 2138,1967, 1973, 1979, 1985, 1991, 1997, 2003, 2009, 2015, 2021,2027, 2033, 2039, 2045, 2051, 2057, 48, 2063, 2069, 2075,2081
782, 781, 783, 784, 785, 785, 786, 786, 787, 781,788, 781, 781, 13, 789, 789, 790, 790, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 791,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,792, 781, 793, 781, 781, 794, 793, 793, 793, 795,781, 781, 795, 795, 796, 781, 781, 797, 781, 781,797, 797, 797, 797, 797, 797, 797, 797, 797, 797,797, 797, 797, 797, 797, 798, 797, 797, 797, 797,797, 797, 797, 799, 781, 781, 781, 781, 799, 799,
850, 1, 851, 852, 853, 853, 854, 854, 850, 9,850, 11, 850, 13, 855, 855, 856, 856, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 857, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 858, 850, 859, 850, 850, 860, 859, 859,859, 861, 850, 850, 861, 861, 862, 850, 850, 863,850, 850, 863, 863, 863, 863, 863, 863, 863, 863,863, 863, 863, 863, 863, 863, 863, 863, 863, 864,863, 863, 863, 863, 863, 863, 863, 865, 850, 850,
799, 799, 799, 799, 799, 799, 799, 799, 799, 799,799, 799, 39, 800, 799, 799, 799, 799, 799, 799,799, 781, 781, 781, 801, 801, 801, 801, 801, 801,801, 801, 801, 801, 801, 801, 801, 801, 801, 39,801, 801, 801, 801, 801, 802, 781, 781, 781, 781,803, 781, 803, 803, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 39, 791, 781, 781, 781,781, 781, 791, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 793, 781, 793, 781, 793,
850, 850, 865, 865, 865, 865, 865, 865, 865, 865,865, 865, 865, 865, 865, 865, 865, 865, 41, 866,865, 865, 865, 865, 865, 865, 865, 850, 850, 850,867, 867, 867, 867, 867, 867, 867, 867, 867, 867,867, 867, 867, 867, 867, 867, 867, 41, 867, 867,867, 867, 867, 868, 850, 850, 850, 850, 869, 850,869, 869, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 41, 857, 850, 850, 850,850, 850, 857, 850, 850, 850, 850, 850, 850, 850,
793, 793, 793, 795, 795, 781, 795, 795, 795, 796,781, 781, 797, 797, 781, 797, 797, 797, 797, 797,797, 797, 797, 797, 797, 797, 797, 797, 797, 797,797, 797, 797, 797, 798, 798, 797, 797, 797, 797,797, 797, 797, 797, 804, 781, 781, 781, 781, 804,804, 804, 804, 804, 804, 804, 804, 804, 804, 804,804, 804, 804, 804, 804, 804, 804, 804, 113, 805,804, 804, 804, 804, 804, 804, 804, 804, 781, 781,781, 781, 801, 801, 801, 801, 801, 801, 801, 801,801, 801, 801, 801, 801, 801, 801, 801, 801, 801,
850, 850, 850, 850, 850, 859, 850, 859, 850, 859,859, 859, 859, 861, 861, 850, 861, 861, 861, 862,850, 850, 863, 863, 850, 863, 863, 863, 863, 863,863, 863, 863, 863, 863, 863, 863, 863, 863, 863,863, 863, 863, 863, 863, 863, 864, 864, 863, 863,863, 863, 863, 863, 863, 863, 870, 850, 850, 850,850, 870, 870, 870, 870, 870, 870, 870, 870, 870,870, 870, 870, 870, 870, 870, 870, 870, 870, 870,870, 870, 119, 871, 870, 870, 870, 870, 870, 870,870, 870, 850, 850, 850, 850, 867, 867, 867, 867,
801, 801, 140, 801, 801, 801, 801, 801, 801, 801,802, 802, 781, 781, 781, 803, 781, 803, 781, 803,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 793, 795, 795, 795,781, 797, 797, 797, 797, 797, 797, 797, 797, 797,797, 797, 797, 797, 797, 797, 797, 797, 797, 797,797, 797, 797, 797, 797, 797, 804, 804, 804, 804,804, 804, 804, 804, 804, 804, 804, 804, 804, 804,804, 804, 804, 804, 804, 804, 804, 805, 804, 804,
867, 867, 867, 867, 867, 867, 867, 867, 867, 867,867, 867, 867, 867, 867, 867, 867, 867, 148, 867,867, 867, 867, 867, 867, 867, 868, 868, 850, 850,850, 869, 850, 869, 850, 869, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 859, 861, 861, 861, 850,863, 863, 863, 863, 863, 863, 863, 863, 863, 863,863, 863, 863, 863, 863, 863, 863, 863, 863, 863,863, 863, 863, 863, 863, 863, 863, 863, 870, 870,
804, 804, 804, 804, 804, 804, 801, 801, 801, 801,801, 801, 801, 801, 801, 801, 801, 801, 801, 801,801, 801, 801, 801, 801, 801, 801, 801, 801, 801,801, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 793, 795, 781,795, 781, 797, 797, 797, 797, 797, 797, 797, 797,797, 797, 797, 797, 797, 797, 797, 797, 797, 797,797, 797, 797, 797, 797, 797, 797, 804, 804, 804,804, 804, 804, 804, 804, 804, 804, 804, 804, 804,
870, 870, 870, 870, 870, 870, 870, 870, 870, 870,870, 870, 870, 870, 870, 870, 870, 870, 870, 870,870, 870, 871, 870, 870, 870, 870, 870, 870, 870,870, 867, 867, 867, 867, 867, 867, 867, 867, 867,867, 867, 867, 867, 867, 867, 867, 867, 867, 867,867, 867, 867, 867, 867, 867, 867, 867, 867, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 859, 861,850, 861, 850, 863, 863, 863, 863, 863, 863, 863,
804, 804, 804, 804, 804, 804, 804, 804, 804, 804,804, 804, 801, 801, 801, 801, 801, 801, 801, 801,801, 801, 801, 801, 801, 801, 801, 801, 801, 801,801, 801, 801, 801, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 793, 797,797, 797, 797, 797, 797, 797, 797, 797, 797, 797,797, 797, 797, 797, 797, 797, 797, 797, 797, 797,797, 797, 797, 804, 804, 804, 804, 804, 804, 804,804, 804, 804, 804, 804, 804, 804, 804, 804, 804,
863, 863, 863, 863, 863, 863, 863, 863, 863, 863,863, 863, 863, 863, 863, 863, 863, 863, 863, 863,863, 870, 870, 870, 870, 870, 870, 870, 870, 870,870, 870, 870, 870, 870, 870, 870, 870, 870, 870,870, 870, 870, 870, 870, 870, 870, 870, 870, 867,867, 867, 867, 867, 867, 867, 867, 867, 867, 867,867, 867, 867, 867, 867, 867, 867, 867, 867, 867,867, 867, 867, 867, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
804, 804, 804, 804, 804, 804, 804, 801, 801, 801,801, 801, 801, 801, 801, 801, 801, 801, 801, 801,801, 801, 801, 801, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 793, 797, 797, 797, 797, 797, 797, 797,797, 797, 797, 797, 797, 797, 797, 797, 797, 797,797, 804, 804, 804, 804, 804, 804, 804, 804, 804,804, 804, 804, 804, 804, 804, 804, 804, 804, 801,801, 801, 801, 801, 801, 801, 801, 801, 801, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 793,
850, 859, 863, 863, 863, 863, 863, 863, 863, 863,863, 863, 863, 863, 863, 863, 863, 863, 863, 863,863, 863, 863, 863, 863, 863, 863, 863, 863, 870,870, 870, 870, 870, 870, 870, 870, 870, 870, 870,870, 870, 870, 870, 870, 870, 870, 870, 870, 870,870, 870, 870, 870, 870, 870, 867, 867, 867, 867,867, 867, 867, 867, 867, 867, 867, 867, 867, 867,867, 867, 867, 867, 867, 867, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 859, 863, 863,
797, 797, 797, 797, 797, 797, 797, 797, 797, 797,804, 804, 804, 804, 804, 804, 804, 804, 804, 804,801, 801, 801, 801, 801, 781, 781, 781, 781, 781,781, 797, 797, 797, 797, 797, 797, 804, 804, 804,804, 804, 804, 801, 801, 781, 781, 781, 781, 797,797, 797, 797, 804, 804, 804, 804, 801, 781, 781,797, 797, 804, 804, 801, 781, 797, 804, 801, 781,797, 804, 801, 781, 797, 804, 801, 781, 797, 804,0, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
863, 863, 863, 863, 863, 863, 863, 863, 863, 863,863, 863, 863, 863, 863, 863, 863, 863, 863, 870,870, 870, 870, 870, 870, 870, 870, 870, 870, 870,870, 870, 870, 870, 870, 870, 870, 870, 870, 870,867, 867, 867, 867, 867, 867, 867, 867, 867, 867,867, 867, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 859, 863, 863, 863, 863, 863,863, 863, 863, 863, 863, 863, 863, 870, 870, 870,870, 870, 870, 870, 870, 870, 870, 870, 870, 867,867, 867, 867, 867, 850, 850, 850, 850, 850, 850,
781, 781, 781, 781, 781
863, 863, 863, 863, 863, 863, 870, 870, 870, 870,870, 870, 867, 867, 850, 850, 850, 850, 863, 863,863, 863, 870, 870, 870, 870, 867, 850, 850, 863,863, 870, 870, 867, 850, 863, 870, 867, 850, 863,870, 867, 850, 863, 870, 867, 850, 863, 870, 0,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850
781, 21, 22, 23, 21, 283, 24, 781, 25, 66,67, 155, 26, 27, 155, 28, 66, 67, 29, 171,30, 778, 31, 32, 33, 34, 183, 35, 36, 183,37, 172, 778, 38, 20, 39, 22, 23, 39, 40,24, 20, 25, 41, 20, 20, 26, 27, 20, 28,20, 20, 29, 20, 30, 20, 42, 32, 33, 34,20, 35, 36, 20, 37, 20, 20, 38, 20, 20,20, 20, 43, 20, 44, 20, 45, 20, 20, 46,47, 20, 49, 50, 51, 52, 48, 54, 55, 56,57, 61, 62, 61, 62, 147, 148, 149, 147, 58,
20, 21, 22, 23, 21, 20, 24, 20, 25, 20,20, 26, 27, 28, 20, 29, 20, 20, 30, 20,31, 32, 33, 34, 35, 36, 20, 37, 38, 20,39, 20, 20, 40, 20, 20, 20, 20, 20, 20,20, 20, 20, 20, 20, 20, 20, 20, 41, 68,69, 41, 42, 297, 63, 64, 43, 51, 52, 53,54, 50, 56, 57, 58, 59, 63, 64, 847, 44,68, 69, 160, 161, 60, 155, 156, 157, 155, 177,158, 155, 156, 157, 155, 45, 158, 46, 163, 47,274, 163, 48, 49, 65, 175, 178, 171, 181, 66,
150, 147, 148, 149, 147, 165, 150, 167, 152, 153,162, 184, 187, 163, 152, 153, 189, 164, 190, 166,192, 194, 195, 207, 168, 166, 202, 59, 208, 341,329, 63, 188, 63, 777, 258, 64, 154, 64, 21,69, 70, 21, 154, 71, 214, 72, 214, 214, 259,73, 74, 255, 75, 203, 256, 76, 774, 77, 257,78, 79, 80, 81, 773, 82, 83, 214, 84, 214,214, 85, 68, 39, 69, 70, 39, 86, 71, 68,72, 87, 68, 68, 73, 74, 68, 75, 68, 68,76, 68, 77, 68, 88, 79, 80, 81, 68, 82,
172, 162, 61, 199, 173, 200, 65, 275, 847, 176,182, 66, 70, 21, 71, 72, 21, 70, 73, 70,74, 70, 70, 75, 76, 77, 70, 78, 70, 70,79, 70, 80, 81, 82, 83, 84, 85, 70, 86,87, 70, 88, 70, 70, 89, 70, 70, 70, 70,70, 70, 70, 70, 70, 70, 70, 70, 70, 70,41, 160, 161, 41, 90, 194, 197, 212, 91, 202,204, 205, 203, 207, 209, 210, 310, 217, 288, 176,272, 92, 218, 846, 278, 224, 198, 224, 224, 224,162, 224, 224, 311, 273, 213, 279, 93, 289, 94,
83, 68, 84, 68, 68, 85, 68, 68, 68, 68,89, 68, 90, 68, 91, 68, 68, 92, 93, 68,95, 96, 97, 95, 264, 98, 214, 99, 214, 214,207, 100, 101, 216, 102, 208, 265, 103, 276, 104,277, 105, 106, 107, 108, 770, 109, 110, 236, 111,236, 236, 112, 94, 113, 96, 97, 113, 114, 98,94, 99, 115, 94, 94, 100, 101, 94, 102, 94,94, 103, 94, 104, 94, 116, 106, 107, 108, 94,109, 110, 94, 111, 94, 94, 112, 94, 94, 94,94, 117, 94, 118, 94, 119, 94, 94, 120, 121,
248, 95, 248, 248, 96, 97, 98, 99, 100, 101,99, 98, 102, 98, 103, 98, 98, 104, 105, 106,98, 107, 98, 98, 108, 98, 109, 110, 111, 112,113, 114, 98, 115, 116, 98, 117, 98, 98, 118,98, 98, 98, 98, 98, 98, 98, 98, 98, 98,98, 98, 98, 98, 119, 333, 193, 119, 120, 193,843, 224, 121, 224, 224, 314, 842, 224, 226, 224,224, 224, 285, 224, 224, 122, 224, 315, 224, 224,224, 227, 224, 224, 334, 268, 273, 228, 269, 229,839, 123, 270, 124, 235, 125, 360, 348, 126, 127,
94, 20, 122, 123, 124, 122, 20, 24, 125, 126,20, 125, 125, 127, 128, 125, 129, 125, 125, 130,125, 131, 125, 132, 133, 134, 135, 125, 136, 137,125, 138, 20, 125, 139, 125, 125, 125, 125, 125,125, 125, 125, 125, 125, 125, 125, 20, 20, 140,260, 312, 140, 40, 312, 274, 307, 41, 193, 197,199, 200, 214, 271, 214, 214, 214, 261, 214, 214,141, 214, 298, 214, 214, 275, 308, 259, 217, 218,214, 317, 214, 214, 299, 769, 142, 292, 143, 289,144, 219, 290, 145, 47, 176, 291, 766, 176, 177,
20, 128, 129, 130, 128, 20, 24, 131, 132, 20,131, 133, 134, 135, 131, 136, 131, 131, 137, 131,138, 139, 140, 141, 142, 143, 131, 144, 145, 131,146, 20, 131, 147, 131, 131, 131, 131, 131, 131,131, 131, 131, 131, 131, 131, 20, 20, 148, 335,328, 148, 42, 328, 308, 224, 43, 224, 224, 224,838, 224, 224, 224, 304, 224, 224, 305, 309, 149,224, 306, 224, 224, 290, 230, 291, 232, 334, 238,233, 320, 454, 442, 234, 150, 231, 151, 224, 152,224, 224, 153, 49, 186, 309, 239, 186, 187, 835,
294, 293, 214, 178, 214, 214, 214, 220, 214, 214,318, 214, 304, 214, 214, 224, 221, 295, 155, 222,226, 155, 214, 223, 214, 214, 293, 319, 214, 225,214, 214, 179, 214, 180, 214, 214, 227, 765, 181,182, 214, 338, 214, 214, 339, 760, 228, 229, 230,232, 214, 759, 214, 214, 214, 318, 214, 214, 187,214, 231, 214, 214, 233, 309, 214, 310, 214, 214,214, 307, 214, 214, 214, 237, 214, 214, 214, 188,214, 214, 320, 321, 214, 320, 214, 214, 234, 225,214, 308, 214, 214, 246, 247, 248, 246, 758, 240,
834, 224, 188, 224, 224, 224, 829, 224, 224, 325,236, 326, 224, 240, 224, 224, 323, 224, 163, 224,224, 163, 197, 345, 237, 241, 244, 224, 242, 224,224, 189, 224, 190, 224, 224, 324, 346, 191, 192,243, 224, 198, 224, 224, 245, 224, 828, 224, 224,224, 827, 224, 224, 224, 249, 224, 224, 816, 224,246, 224, 224, 199, 224, 200, 224, 224, 224, 237,224, 224, 258, 259, 260, 258, 260, 261, 260, 260,252, 283, 259, 260, 283, 293, 294, 295, 293, 319,294, 295, 319, 250, 251, 254, 357, 255, 212, 358,253, 329, 330, 331, 329, 336, 337, 217, 336, 202,204, 205, 218, 256, 207, 209, 210, 369, 370, 224,369, 224, 224, 815, 439, 224, 213, 224, 224, 224,257, 224, 224, 257, 323, 334, 226, 224, 440, 224,224, 224, 814, 224, 224, 224, 813, 224, 224, 224,372, 224, 224, 224, 324, 224, 224, 371, 374, 224,796, 224, 224, 367, 333, 224, 375, 224, 224, 373,795, 224, 376, 224, 224, 224, 765, 224, 224, 224,378, 224, 224, 224, 800, 224, 224, 224, 257, 224,224, 257, 377, 334, 379, 380, 224, 402, 224, 224,
248, 249, 248, 248, 269, 247, 248, 269, 279, 280,281, 279, 318, 238, 239, 242, 189, 243, 190, 241,303, 280, 281, 303, 313, 314, 315, 313, 192, 194,195, 197, 199, 200, 202, 244, 350, 351, 214, 350,214, 214, 214, 747, 214, 214, 214, 245, 214, 214,245, 746, 214, 216, 214, 214, 214, 245, 214, 214,245, 352, 203, 214, 378, 214, 214, 745, 214, 744,214, 214, 354, 214, 245, 214, 214, 245, 426, 414,353, 355, 348, 379, 727, 214, 356, 214, 214, 726,214, 700, 214, 214, 214, 731, 214, 214, 214, 728,
224, 797, 224, 224, 381, 382, 796, 224, 383, 224,224, 224, 257, 224, 224, 257, 386, 385, 224, 400,224, 224, 795, 224, 384, 224, 224, 224, 388, 224,224, 224, 257, 224, 224, 257, 794, 793, 389, 387,248, 404, 248, 248, 390, 792, 248, 391, 248, 248,224, 791, 224, 224, 224, 760, 224, 224, 224, 257,224, 224, 257, 790, 224, 392, 224, 224, 224, 758,224, 224, 405, 396, 393, 381, 224, 757, 224, 224,224, 756, 224, 224, 224, 394, 224, 224, 755, 252,754, 395, 258, 259, 260, 258, 260, 259, 260, 260,
214, 214, 214, 727, 214, 214, 214, 245, 214, 214,245, 317, 357, 358, 214, 245, 214, 214, 245, 359,360, 726, 245, 361, 214, 245, 214, 214, 382, 245,385, 363, 245, 364, 362, 214, 725, 214, 214, 214,318, 214, 214, 214, 724, 214, 214, 386, 214, 366,214, 214, 214, 380, 214, 214, 723, 236, 367, 236,236, 722, 695, 365, 236, 368, 236, 236, 369, 214,721, 214, 214, 214, 693, 214, 214, 214, 692, 214,214, 214, 691, 214, 214, 214, 370, 214, 214, 214,374, 214, 214, 371, 359, 214, 690, 214, 214, 214,
257, 257, 257, 257, 257, 257, 753, 257, 257, 253,257, 257, 765, 397, 764, 406, 257, 408, 257, 257,401, 257, 398, 257, 763, 403, 257, 257, 762, 257,257, 409, 257, 761, 407, 257, 410, 257, 257, 257,257, 257, 257, 411, 257, 412, 416, 257, 413, 760,257, 418, 415, 257, 759, 257, 257, 414, 257, 758,757, 284, 419, 193, 284, 756, 193, 417, 257, 257,420, 257, 257, 421, 257, 257, 257, 257, 257, 257,257, 755, 257, 257, 427, 257, 754, 257, 451, 422,257, 452, 424, 411, 753, 328, 328, 428, 328, 328,
245, 214, 214, 245, 372, 245, 240, 700, 245, 381,373, 246, 247, 248, 246, 248, 247, 248, 248, 245,245, 245, 245, 245, 245, 245, 241, 387, 245, 699,698, 376, 375, 383, 245, 245, 245, 245, 245, 245,245, 697, 388, 245, 391, 245, 384, 696, 245, 245,393, 390, 245, 389, 245, 695, 270, 245, 183, 270,394, 183, 245, 694, 392, 245, 395, 245, 245, 396,245, 245, 245, 245, 245, 245, 245, 245, 693, 245,245, 402, 245, 245, 692, 691, 399, 386, 397, 279,280, 281, 279, 423, 403, 690, 424, 312, 400, 312,
425, 293, 294, 295, 293, 752, 751, 426, 329, 330,331, 329, 336, 337, 750, 336, 749, 429, 748, 430,336, 337, 431, 336, 482, 483, 484, 482, 691, 484,490, 491, 747, 490, 492, 493, 689, 492, 369, 370,746, 369, 334, 224, 257, 224, 224, 257, 745, 744,334, 224, 494, 224, 224, 224, 743, 224, 224, 224,257, 224, 224, 257, 224, 257, 224, 224, 257, 522,684, 485, 400, 495, 497, 224, 367, 224, 224, 683,367, 682, 496, 681, 215, 498, 224, 680, 224, 224,224, 679, 224, 224, 224, 499, 224, 224, 742, 741,
312, 401, 312, 313, 314, 315, 313, 320, 321, 689,320, 405, 320, 321, 404, 320, 451, 452, 688, 451,453, 406, 687, 453, 459, 460, 686, 459, 461, 462,685, 461, 350, 351, 636, 350, 214, 318, 214, 214,684, 214, 318, 214, 214, 214, 245, 214, 214, 245,214, 634, 214, 214, 214, 683, 214, 214, 463, 214,465, 214, 214, 467, 214, 454, 214, 214, 464, 682,348, 466, 468, 214, 348, 214, 214, 214, 205, 214,214, 214, 681, 214, 214, 214, 469, 214, 214, 630,245, 629, 470, 245, 472, 473, 214, 378, 214, 214,
698, 501, 224, 500, 224, 224, 224, 697, 224, 224,224, 503, 224, 224, 696, 224, 502, 224, 224, 224,257, 224, 224, 257, 224, 504, 224, 224, 506, 507,224, 257, 224, 224, 257, 257, 505, 508, 257, 532,224, 509, 224, 224, 224, 695, 224, 224, 224, 694,224, 224, 526, 224, 510, 224, 224, 523, 224, 693,224, 224, 224, 257, 224, 224, 257, 692, 513, 514,511, 691, 527, 690, 512, 516, 483, 224, 516, 517,689, 224, 517, 224, 688, 224, 224, 224, 257, 224,224, 257, 224, 515, 224, 224, 224, 257, 224, 224,
628, 627, 214, 471, 214, 214, 626, 680, 214, 474,214, 214, 214, 475, 214, 214, 214, 245, 214, 214,245, 214, 476, 214, 214, 643, 214, 642, 214, 214,214, 245, 214, 214, 245, 641, 479, 480, 477, 488,640, 639, 478, 482, 452, 214, 482, 483, 638, 214,483, 214, 491, 214, 214, 214, 245, 214, 214, 245,214, 481, 214, 214, 214, 245, 214, 214, 245, 245,637, 245, 245, 245, 245, 636, 245, 635, 492, 371,490, 634, 245, 489, 493, 245, 245, 245, 485, 245,245, 633, 484, 632, 245, 494, 486, 245, 631, 630,
257, 257, 687, 257, 257, 257, 257, 257, 257, 686,257, 393, 525, 685, 528, 524, 531, 684, 257, 257,519, 257, 257, 257, 518, 683, 257, 530, 520, 529,682, 681, 534, 535, 521, 257, 257, 257, 257, 257,257, 680, 257, 257, 533, 257, 257, 537, 536, 257,257, 538, 257, 257, 257, 544, 483, 257, 544, 679,284, 542, 193, 284, 541, 193, 678, 545, 539, 540,545, 257, 257, 257, 257, 257, 257, 257, 257, 677,257, 257, 427, 257, 676, 543, 257, 482, 483, 484,482, 675, 484, 674, 482, 483, 424, 482, 428, 484,
497, 495, 487, 245, 498, 245, 245, 245, 245, 629,245, 245, 496, 628, 245, 627, 499, 245, 500, 501,245, 245, 245, 245, 245, 245, 245, 270, 508, 183,270, 508, 183, 505, 626, 625, 504, 502, 507, 452,624, 507, 245, 503, 245, 245, 245, 245, 245, 245,245, 245, 623, 245, 506, 402, 245, 451, 452, 245,451, 453, 451, 452, 453, 451, 622, 453, 399, 403,453, 557, 621, 509, 557, 459, 460, 620, 459, 510,461, 462, 214, 461, 214, 214, 511, 550, 214, 404,214, 214, 245, 560, 512, 245, 214, 619, 214, 214,
600, 673, 484, 600, 490, 491, 257, 490, 547, 257,492, 493, 546, 492, 548, 672, 593, 224, 429, 224,224, 549, 224, 671, 224, 224, 224, 257, 224, 224,257, 670, 603, 604, 485, 224, 257, 224, 224, 257,669, 668, 605, 632, 485, 601, 224, 667, 224, 224,215, 630, 587, 586, 607, 224, 215, 224, 224, 666,224, 606, 224, 224, 224, 665, 224, 224, 224, 664,224, 224, 224, 663, 224, 224, 224, 257, 224, 224,257, 609, 608, 610, 662, 634, 661, 612, 224, 613,224, 224, 579, 660, 611, 224, 614, 224, 224, 224,
214, 618, 214, 214, 561, 617, 454, 214, 563, 214,214, 214, 454, 214, 214, 214, 558, 214, 214, 588,245, 205, 562, 245, 616, 214, 205, 214, 214, 615,544, 584, 565, 214, 564, 214, 214, 214, 567, 214,214, 566, 543, 614, 214, 568, 214, 214, 214, 613,214, 214, 569, 214, 245, 214, 214, 245, 214, 570,214, 214, 214, 612, 214, 214, 572, 591, 611, 538,571, 214, 573, 214, 214, 214, 610, 214, 214, 575,214, 609, 214, 214, 214, 245, 214, 214, 245, 574,608, 576, 482, 452, 214, 482, 483, 245, 214, 483,
659, 224, 224, 615, 224, 658, 224, 224, 224, 257,224, 224, 257, 224, 657, 224, 224, 224, 602, 224,224, 618, 599, 598, 639, 616, 617, 619, 224, 597,224, 224, 224, 596, 224, 224, 621, 224, 257, 224,224, 257, 595, 224, 620, 224, 224, 594, 622, 516,483, 224, 516, 517, 257, 224, 517, 257, 593, 224,623, 224, 224, 224, 633, 224, 224, 224, 592, 224,224, 628, 257, 224, 628, 257, 257, 257, 591, 257,257, 635, 257, 631, 590, 257, 624, 257, 257, 257,257, 257, 257, 589, 588, 587, 637, 636, 518, 627,
245, 585, 214, 577, 214, 214, 214, 559, 214, 214,214, 556, 214, 214, 582, 555, 214, 582, 245, 245,554, 245, 245, 586, 553, 245, 587, 578, 245, 245,245, 245, 245, 245, 245, 552, 245, 592, 593, 245,589, 484, 581, 245, 551, 245, 245, 579, 245, 580,245, 590, 245, 245, 550, 245, 596, 594, 595, 583,599, 549, 245, 245, 597, 245, 245, 245, 507, 452,245, 507, 598, 508, 245, 548, 508, 245, 600, 245,245, 606, 245, 245, 606, 557, 601, 557, 557, 214,557, 214, 214, 214, 547, 214, 214, 214, 546, 214,
640, 586, 257, 585, 625, 257, 626, 584, 638, 257,641, 644, 257, 583, 643, 257, 629, 642, 257, 257,257, 257, 257, 257, 257, 582, 581, 257, 645, 648,257, 257, 257, 646, 257, 257, 544, 483, 545, 544,580, 545, 257, 649, 579, 257, 257, 647, 257, 257,655, 257, 600, 655, 650, 600, 600, 578, 224, 600,224, 224, 577, 224, 576, 224, 224, 257, 575, 224,257, 224, 224, 574, 573, 651, 700, 701, 454, 224,654, 224, 224, 546, 699, 572, 571, 652, 224, 653,224, 224, 570, 720, 569, 656, 702, 601, 568, 567,
214, 645, 644, 545, 214, 646, 214, 214, 544, 543,602, 245, 605, 214, 245, 214, 214, 245, 509, 603,245, 647, 604, 542, 662, 214, 607, 214, 214, 541,558, 540, 558, 648, 214, 539, 214, 214, 214, 538,214, 214, 649, 214, 537, 214, 214, 214, 536, 214,214, 214, 535, 214, 214, 214, 534, 214, 214, 214,533, 214, 214, 650, 426, 532, 214, 653, 214, 214,531, 214, 245, 214, 214, 245, 530, 529, 651, 655,663, 214, 652, 214, 214, 214, 654, 214, 214, 214,528, 214, 214, 214, 527, 214, 214, 214, 526, 214,
224, 601, 224, 224, 224, 566, 224, 224, 703, 565,564, 224, 704, 224, 224, 224, 563, 224, 224, 705,562, 561, 224, 706, 224, 224, 224, 560, 224, 224,224, 559, 224, 224, 224, 558, 224, 224, 224, 557,224, 224, 224, 257, 224, 224, 257, 224, 707, 224,224, 708, 556, 555, 224, 711, 224, 224, 224, 257,224, 224, 257, 554, 257, 709, 713, 257, 224, 710,224, 224, 721, 224, 712, 224, 224, 224, 553, 224,224, 224, 552, 224, 224, 224, 551, 224, 224, 224,728, 224, 224, 224, 257, 224, 224, 257, 715, 628,
214, 214, 525, 214, 214, 214, 245, 214, 214, 245,657, 582, 656, 214, 582, 214, 245, 214, 214, 245,245, 524, 245, 245, 664, 245, 245, 523, 665, 245,658, 668, 245, 659, 666, 245, 660, 522, 245, 245,667, 245, 245, 245, 245, 245, 245, 245, 245, 521,245, 245, 671, 245, 245, 520, 583, 519, 673, 245,661, 245, 245, 518, 245, 672, 669, 517, 245, 245,670, 245, 245, 245, 245, 606, 245, 245, 606, 516,245, 245, 675, 245, 245, 214, 674, 214, 214, 214,515, 214, 214, 701, 214, 514, 214, 214, 214, 245,
714, 224, 628, 224, 257, 224, 224, 257, 257, 550,257, 257, 722, 257, 257, 489, 723, 257, 716, 729,257, 717, 724, 257, 718, 488, 257, 257, 725, 257,257, 487, 360, 257, 726, 727, 257, 257, 257, 257,257, 257, 257, 486, 629, 481, 732, 257, 719, 257,257, 257, 257, 257, 257, 734, 257, 480, 257, 733,730, 257, 257, 479, 731, 257, 257, 655, 257, 257,655, 257, 257, 257, 736, 257, 257, 224, 735, 224,224, 224, 478, 224, 224, 766, 477, 476, 224, 767,224, 224, 475, 474, 224, 737, 224, 224, 738, 739,
214, 214, 245, 513, 678, 676, 677, 214, 458, 214,214, 214, 457, 214, 214, 214, 456, 214, 214, 214,607, 214, 214, 702, 341, 679, 214, 703, 214, 214,214, 455, 214, 214, 704, 214, 450, 214, 214, 214,449, 214, 214, 214, 448, 214, 214, 214, 705, 214,214, 706, 214, 447, 214, 214, 214, 446, 214, 214,707, 214, 445, 214, 214, 214, 245, 214, 214, 245,245, 444, 245, 245, 711, 245, 245, 245, 245, 245,245, 245, 443, 442, 245, 712, 713, 245, 245, 709,441, 245, 714, 245, 708, 245, 245, 245, 245, 245,
224, 473, 224, 224, 224, 472, 224, 224, 224, 471,224, 224, 656, 224, 470, 224, 224, 740, 224, 469,224, 224, 224, 468, 224, 224, 768, 467, 466, 224,769, 224, 224, 224, 465, 224, 224, 770, 464, 463,224, 771, 224, 224, 224, 462, 224, 224, 224, 461,224, 224, 224, 460, 224, 224, 224, 772, 224, 224,773, 224, 330, 224, 224, 224, 459, 224, 224, 774,224, 458, 224, 224, 224, 257, 224, 224, 257, 257,457, 257, 257, 778, 257, 257, 257, 779, 257, 257,257, 257, 257, 257, 257, 257, 257, 456, 776, 257,
245, 245, 245, 710, 245, 716, 715, 245, 245, 440,245, 245, 717, 245, 729, 439, 245, 729, 214, 438,214, 214, 214, 437, 214, 214, 214, 436, 214, 214,214, 435, 214, 214, 214, 245, 214, 214, 245, 434,719, 433, 732, 718, 214, 245, 214, 214, 245, 214,720, 214, 214, 735, 432, 214, 735, 733, 214, 730,214, 214, 314, 214, 734, 214, 214, 245, 245, 245,245, 245, 245, 245, 431, 245, 245, 738, 245, 245,430, 741, 245, 739, 741, 740, 245, 729, 729, 245,729, 729, 748, 429, 428, 748, 737, 214, 736, 214,
780, 455, 257, 775, 781, 257, 257, 453, 257, 257,782, 257, 777, 257, 783, 257, 257, 257, 257, 257,257, 257, 257, 450, 257, 785, 784, 257, 257, 449,257, 257, 786, 257, 798, 448, 257, 798, 224, 447,224, 224, 224, 446, 224, 224, 224, 445, 224, 224,224, 444, 224, 224, 224, 257, 224, 224, 257, 224,788, 224, 224, 787, 224, 257, 224, 224, 257, 443,789, 224, 801, 224, 224, 224, 442, 224, 224, 799,441, 438, 224, 802, 224, 224, 437, 804, 803, 224,804, 224, 257, 224, 224, 257, 257, 257, 257, 257,
214, 214, 245, 214, 214, 245, 214, 427, 214, 214,735, 425, 214, 735, 214, 422, 214, 214, 752, 743,214, 752, 245, 421, 245, 245, 742, 245, 741, 420,419, 741, 730, 730, 418, 417, 245, 749, 750, 245,756, 748, 748, 756, 748, 748, 214, 416, 214, 214,214, 245, 214, 214, 245, 736, 754, 415, 752, 751,214, 752, 214, 753, 214, 214, 245, 756, 245, 245,756, 245, 214, 742, 214, 214, 414, 413, 412, 761,214, 755, 214, 214, 763, 757, 749, 749, 245, 245,411, 245, 245, 214, 245, 214, 214, 245, 214, 245,
257, 257, 257, 257, 257, 257, 257, 257, 257, 436,807, 257, 808, 810, 809, 257, 810, 798, 257, 798,798, 435, 798, 817, 806, 224, 817, 224, 224, 434,433, 224, 805, 224, 224, 224, 432, 224, 224, 804,298, 224, 804, 224, 294, 224, 224, 821, 812, 224,821, 257, 257, 257, 257, 257, 257, 810, 811, 221,810, 368, 799, 257, 799, 367, 257, 819, 818, 825,817, 817, 825, 817, 817, 215, 224, 211, 224, 224,224, 366, 224, 224, 805, 823, 207, 821, 820, 224,821, 224, 822, 224, 224, 257, 257, 825, 257, 257,
214, 214, 245, 753, 410, 409, 214, 762, 214, 214,408, 767, 757, 764, 779, 245, 407, 214, 245, 214,214, 245, 284, 780, 245, 280, 211, 768, 349, 348,205, 201, 347, 775, 776, 771, 772, 20, 20, 20,20, 20, 20, 48, 48, 48, 48, 48, 48, 53,53, 53, 53, 53, 53, 60, 60, 60, 60, 60,60, 65, 65, 65, 65, 65, 65, 68, 68, 68,68, 68, 68, 94, 94, 94, 94, 94, 94, 146,146, 146, 146, 146, 146, 151, 151, 151, 151, 151,151, 183, 183, 197, 183, 183, 183, 193, 193, 193,
825, 257, 811, 224, 257, 224, 224, 202, 824, 830,224, 365, 224, 224, 826, 818, 818, 257, 257, 364,257, 257, 224, 257, 224, 224, 257, 224, 832, 224,224, 257, 822, 363, 257, 224, 831, 224, 224, 362,361, 201, 826, 848, 257, 196, 833, 257, 224, 836,224, 224, 849, 195, 257, 359, 837, 257, 356, 355,354, 353, 844, 352, 840, 841, 845, 50, 50, 50,50, 50, 50, 55, 55, 55, 55, 55, 55, 62,62, 62, 62, 62, 62, 67, 67, 67, 67, 67,67, 154, 154, 154, 154, 154, 154, 159, 159, 159,
193, 193, 193, 196, 192, 346, 345, 196, 196, 198,198, 198, 198, 198, 198, 204, 204, 344, 343, 204,204, 210, 210, 210, 342, 210, 210, 213, 213, 191,213, 213, 213, 235, 235, 186, 235, 235, 235, 245,245, 185, 340, 337, 245, 270, 270, 336, 270, 270,270, 311, 311, 335, 334, 333, 311, 316, 316, 316,316, 316, 316, 377, 377, 332, 331, 330, 377, 398,398, 329, 398, 398, 398, 328, 327, 326, 325, 324,323, 322, 157, 314, 306, 305, 302, 301, 300, 297,296, 288, 287, 286, 285, 284, 282, 278, 273, 272,
159, 159, 159, 193, 193, 351, 193, 193, 193, 203,203, 203, 203, 203, 203, 206, 350, 349, 348, 206,206, 208, 208, 208, 208, 208, 208, 214, 214, 347,344, 214, 214, 220, 220, 220, 343, 220, 220, 223,223, 342, 223, 223, 223, 247, 247, 341, 247, 247,247, 257, 257, 340, 339, 338, 257, 284, 284, 165,284, 284, 284, 327, 327, 330, 322, 321, 327, 332,332, 332, 332, 332, 332, 399, 399, 318, 317, 316,399, 423, 423, 313, 423, 423, 423, 312, 307, 303,302, 301, 300, 299, 298, 296, 292, 287, 286, 282,
268, 267, 266, 263, 262, 254, 253, 252, 251, 250,215, 212, 211, 209, 206, 205, 201, 197, 192, 191,186, 185, 175, 174, 173, 170, 169, 161, 160, 159,158, 157, 156, 781, 19, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781
281, 280, 277, 276, 271, 267, 266, 265, 264, 263,262, 225, 222, 221, 219, 216, 215, 211, 207, 202,201, 196, 195, 185, 184, 183, 180, 179, 174, 170,169, 168, 167, 166, 165, 164, 850, 19, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850
0, 1, 1, 1, 1, 801, 1, 0, 1, 7,7, 21, 1, 1, 21, 1, 8, 8, 1, 35,1, 777, 1, 1, 1, 1, 114, 1, 1, 114,1, 35, 774, 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, 3, 3, 3, 3, 4, 4, 4, 4,4, 5, 5, 6, 6, 15, 15, 15, 15, 4,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 2, 7,7, 2, 2, 867, 5, 5, 2, 3, 3, 3,3, 4, 4, 4, 4, 4, 6, 6, 846, 2,8, 8, 17, 17, 4, 15, 15, 15, 15, 34,15, 16, 16, 16, 16, 2, 16, 2, 21, 2,112, 21, 2, 2, 5, 33, 34, 31, 37, 5,
15, 16, 16, 16, 16, 31, 16, 32, 17, 17,30, 42, 45, 30, 18, 18, 46, 30, 46, 31,51, 51, 51, 63, 32, 42, 59, 4, 63, 184,184, 5, 45, 6, 773, 105, 5, 17, 6, 9,9, 9, 9, 18, 9, 68, 9, 68, 68, 105,9, 9, 104, 9, 59, 104, 9, 770, 9, 104,9, 9, 9, 9, 769, 9, 9, 71, 9, 71,71, 9, 10, 10, 10, 10, 10, 10, 10, 10,10, 10, 10, 10, 10, 10, 10, 10, 10, 10,10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
31, 17, 4, 48, 31, 48, 6, 112, 843, 33,37, 6, 9, 9, 9, 9, 9, 9, 9, 9,9, 9, 9, 9, 9, 9, 9, 9, 9, 9,9, 9, 9, 9, 9, 9, 9, 9, 9, 9,9, 9, 9, 9, 9, 9, 9, 9, 9, 9,9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 18, 18, 10, 10, 44, 47, 61, 10, 53,53, 53, 58, 58, 58, 58, 141, 65, 125, 44,111, 10, 65, 842, 115, 70, 47, 70, 70, 73,18, 73, 73, 141, 111, 61, 115, 10, 125, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,10, 10, 10, 10, 10, 10, 10, 10, 10, 10,11, 11, 11, 11, 109, 11, 72, 11, 72, 72,207, 11, 11, 72, 11, 207, 109, 11, 120, 11,120, 11, 11, 11, 11, 766, 11, 11, 86, 11,86, 86, 11, 12, 12, 12, 12, 12, 12, 12,12, 12, 12, 12, 12, 12, 12, 12, 12, 12,12, 12, 12, 12, 12, 12, 12, 12, 12, 12,12, 12, 12, 12, 12, 12, 12, 12, 12, 12,12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
90, 10, 90, 90, 10, 10, 11, 11, 11, 11,11, 11, 11, 11, 11, 11, 11, 11, 11, 11,11, 11, 11, 11, 11, 11, 11, 11, 11, 11,11, 11, 11, 11, 11, 11, 11, 11, 11, 11,11, 11, 11, 11, 11, 11, 11, 11, 11, 11,11, 11, 11, 11, 12, 159, 120, 12, 12, 120,839, 74, 12, 74, 74, 144, 838, 75, 74, 75,75, 76, 122, 76, 76, 12, 77, 144, 77, 77,81, 75, 81, 81, 159, 109, 122, 76, 109, 77,835, 12, 109, 12, 81, 12, 194, 194, 12, 12,
13, 13, 13, 13, 13, 13, 13, 13, 13, 14,106, 146, 14, 14, 146, 119, 144, 14, 56, 56,56, 56, 73, 116, 73, 73, 74, 106, 74, 74,14, 75, 136, 75, 75, 119, 144, 116, 73, 74,76, 151, 76, 76, 136, 765, 14, 132, 14, 131,14, 75, 131, 14, 14, 39, 131, 759, 39, 39,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,13, 13, 13, 13, 13, 13, 13, 13, 14, 161,154, 14, 14, 154, 140, 78, 14, 78, 78, 79,834, 79, 79, 80, 138, 80, 80, 138, 140, 14,83, 138, 83, 83, 126, 78, 126, 80, 161, 83,80, 149, 320, 320, 80, 14, 79, 14, 84, 14,84, 84, 14, 14, 41, 149, 83, 41, 41, 828,
133, 132, 77, 39, 77, 77, 78, 76, 78, 78,151, 79, 141, 79, 79, 78, 77, 133, 155, 77,79, 155, 80, 77, 80, 80, 141, 153, 81, 78,81, 81, 39, 82, 39, 82, 82, 79, 758, 39,39, 83, 174, 83, 83, 174, 749, 80, 81, 82,83, 84, 746, 84, 84, 85, 153, 85, 85, 188,87, 82, 87, 87, 84, 145, 88, 145, 88, 88,89, 308, 89, 89, 90, 88, 90, 90, 91, 188,91, 91, 154, 154, 92, 154, 92, 92, 85, 88,93, 308, 93, 93, 95, 95, 95, 95, 744, 91,
827, 82, 41, 82, 82, 85, 818, 85, 85, 153,82, 153, 86, 84, 86, 86, 152, 87, 163, 87,87, 163, 198, 173, 82, 85, 87, 89, 86, 89,89, 41, 88, 41, 88, 88, 152, 173, 41, 41,86, 91, 198, 91, 91, 88, 92, 815, 92, 92,93, 813, 93, 93, 94, 92, 94, 94, 799, 95,89, 95, 95, 191, 96, 191, 96, 96, 97, 92,97, 97, 99, 99, 99, 99, 101, 101, 101, 101,95, 119, 119, 119, 119, 128, 128, 128, 128, 148,148, 148, 148, 93, 94, 96, 184, 96, 213, 184,
97, 97, 97, 97, 113, 113, 113, 113, 122, 122,122, 122, 154, 89, 90, 92, 181, 92, 181, 91,140, 140, 140, 140, 147, 147, 147, 147, 195, 195,195, 200, 200, 200, 203, 93, 209, 209, 213, 209,213, 213, 214, 730, 214, 214, 216, 245, 216, 216,245, 728, 217, 216, 217, 217, 218, 250, 218, 218,250, 217, 203, 219, 250, 219, 219, 725, 220, 723,220, 220, 219, 221, 251, 221, 221, 251, 304, 304,218, 220, 209, 251, 722, 222, 221, 222, 222, 721,223, 700, 223, 223, 224, 699, 224, 224, 225, 697,
95, 155, 155, 155, 155, 162, 162, 217, 162, 205,205, 205, 217, 97, 210, 210, 210, 219, 219, 223,219, 223, 223, 797, 306, 224, 213, 224, 224, 226,257, 226, 226, 257, 324, 162, 226, 227, 306, 227,227, 228, 794, 228, 228, 229, 792, 229, 229, 230,228, 230, 230, 231, 324, 231, 231, 227, 230, 232,791, 232, 232, 219, 332, 233, 231, 233, 233, 229,790, 234, 232, 234, 234, 235, 765, 235, 235, 236,234, 236, 236, 237, 764, 237, 237, 238, 264, 238,238, 264, 233, 332, 234, 235, 239, 264, 239, 239,
225, 225, 226, 696, 226, 226, 227, 257, 227, 227,257, 316, 222, 223, 228, 254, 228, 228, 254, 224,225, 694, 258, 226, 229, 258, 229, 229, 254, 252,257, 228, 252, 229, 227, 230, 689, 230, 230, 231,316, 231, 231, 232, 688, 232, 232, 258, 233, 231,233, 233, 234, 252, 234, 234, 687, 235, 232, 235,235, 686, 685, 230, 236, 233, 236, 236, 233, 237,684, 237, 237, 238, 683, 238, 238, 239, 682, 239,239, 240, 681, 240, 240, 241, 234, 241, 241, 243,240, 243, 243, 237, 237, 242, 680, 242, 242, 244,
240, 762, 240, 240, 236, 237, 761, 241, 238, 241,241, 242, 262, 242, 242, 262, 241, 240, 243, 262,243, 243, 759, 244, 239, 244, 244, 245, 243, 245,245, 246, 266, 246, 246, 266, 752, 751, 244, 242,247, 266, 247, 247, 245, 750, 248, 245, 248, 248,249, 749, 249, 249, 250, 748, 250, 250, 251, 267,251, 251, 267, 747, 252, 246, 252, 252, 253, 746,253, 253, 267, 252, 249, 249, 254, 745, 254, 254,255, 744, 255, 255, 256, 250, 256, 256, 743, 253,742, 251, 258, 258, 258, 258, 260, 260, 260, 260,
253, 244, 244, 253, 238, 259, 241, 643, 259, 253,239, 246, 246, 246, 246, 248, 248, 248, 248, 256,255, 260, 256, 255, 260, 261, 241, 259, 261, 641,640, 243, 242, 255, 262, 263, 264, 262, 263, 264,265, 639, 260, 265, 263, 266, 256, 638, 266, 267,265, 262, 267, 261, 268, 637, 270, 268, 270, 270,266, 270, 271, 635, 264, 271, 267, 272, 273, 267,272, 273, 274, 275, 276, 274, 275, 276, 633, 277,278, 274, 277, 278, 632, 631, 271, 271, 268, 279,279, 279, 279, 301, 275, 625, 301, 311, 272, 312,
263, 265, 268, 263, 265, 268, 741, 269, 270, 253,269, 270, 698, 254, 696, 268, 271, 270, 272, 271,263, 272, 255, 273, 695, 265, 273, 274, 694, 275,274, 270, 275, 693, 269, 276, 271, 277, 276, 278,277, 279, 278, 272, 279, 273, 277, 280, 274, 692,280, 279, 276, 281, 690, 282, 281, 275, 282, 688,687, 284, 280, 284, 284, 686, 284, 278, 285, 286,281, 285, 286, 281, 287, 288, 289, 287, 288, 289,291, 685, 290, 291, 288, 290, 678, 292, 317, 282,292, 317, 285, 285, 677, 327, 328, 289, 327, 328,286, 293, 293, 293, 293, 676, 675, 287, 329, 329,329, 329, 334, 334, 674, 334, 673, 289, 672, 290,336, 336, 291, 336, 360, 360, 361, 360, 671, 361,367, 367, 670, 367, 368, 368, 669, 368, 369, 369,668, 369, 334, 371, 399, 371, 371, 399, 667, 666,336, 372, 371, 372, 372, 373, 665, 373, 373, 374,401, 374, 374, 401, 375, 400, 375, 375, 400, 401,664, 361, 400, 372, 374, 378, 367, 378, 378, 663,368, 662, 373, 661, 369, 375, 376, 660, 376, 376,377, 659, 377, 377, 379, 376, 379, 379, 658, 657,
311, 273, 312, 313, 313, 313, 313, 318, 318, 624,318, 276, 320, 320, 275, 320, 341, 341, 623, 341,342, 277, 622, 342, 348, 348, 621, 348, 349, 349,620, 349, 350, 350, 619, 350, 352, 318, 352, 352,618, 353, 320, 353, 353, 354, 377, 354, 354, 377,355, 617, 355, 355, 356, 616, 356, 356, 352, 357,354, 357, 357, 356, 358, 342, 358, 358, 353, 615,348, 355, 357, 359, 349, 359, 359, 360, 350, 360,360, 361, 614, 361, 361, 362, 358, 362, 362, 613,378, 612, 359, 378, 361, 362, 363, 378, 363, 363,
602, 378, 380, 377, 380, 380, 381, 601, 381, 381,382, 380, 382, 382, 599, 383, 379, 383, 383, 384,411, 384, 384, 411, 385, 381, 385, 385, 383, 384,386, 405, 386, 386, 405, 402, 382, 385, 402, 411,387, 386, 387, 387, 388, 598, 388, 388, 389, 596,389, 389, 405, 390, 387, 390, 390, 402, 391, 595,391, 391, 392, 406, 392, 392, 406, 594, 390, 391,388, 592, 406, 591, 389, 393, 393, 393, 393, 394,590, 394, 394, 395, 589, 395, 395, 396, 403, 396,396, 403, 397, 392, 397, 397, 398, 404, 398, 398,
611, 610, 364, 360, 364, 364, 609, 608, 365, 363,365, 365, 366, 364, 366, 366, 367, 379, 367, 367,379, 368, 365, 368, 368, 559, 369, 558, 369, 369,370, 382, 370, 370, 382, 556, 368, 369, 366, 379,555, 553, 367, 371, 371, 371, 371, 372, 552, 372,372, 373, 382, 373, 373, 374, 380, 374, 374, 380,375, 370, 375, 375, 376, 381, 376, 376, 381, 383,551, 384, 383, 385, 384, 549, 385, 548, 383, 374,381, 547, 386, 380, 384, 386, 387, 388, 373, 387,388, 546, 372, 545, 389, 385, 375, 389, 542, 541,
404, 407, 588, 408, 407, 409, 408, 410, 409, 585,410, 396, 404, 584, 407, 403, 410, 583, 412, 413,395, 412, 413, 414, 394, 582, 414, 409, 397, 408,581, 580, 413, 414, 398, 415, 416, 417, 415, 416,417, 578, 418, 419, 412, 418, 419, 416, 415, 420,421, 417, 420, 421, 422, 424, 424, 422, 424, 577,423, 421, 423, 423, 420, 423, 576, 425, 418, 419,425, 426, 427, 428, 426, 427, 428, 429, 430, 575,429, 430, 428, 431, 573, 422, 431, 454, 454, 455,454, 572, 455, 571, 482, 482, 427, 482, 429, 484,
388, 386, 376, 390, 389, 392, 390, 391, 392, 540,391, 393, 387, 539, 393, 537, 390, 394, 391, 392,394, 395, 396, 397, 395, 396, 397, 398, 400, 398,398, 400, 398, 396, 536, 535, 395, 393, 399, 399,533, 399, 401, 394, 402, 401, 403, 402, 404, 403,405, 404, 532, 405, 397, 403, 406, 426, 426, 406,426, 427, 451, 451, 427, 451, 531, 453, 402, 404,453, 457, 530, 400, 457, 459, 459, 529, 459, 401,461, 461, 463, 461, 463, 463, 405, 528, 464, 404,464, 464, 492, 463, 406, 492, 465, 527, 465, 465,
488, 570, 484, 488, 490, 490, 634, 490, 426, 634,492, 492, 425, 492, 430, 569, 568, 494, 429, 494,494, 431, 495, 567, 495, 495, 496, 524, 496, 496,524, 566, 494, 495, 455, 497, 522, 497, 497, 522,565, 564, 496, 524, 484, 488, 498, 563, 498, 498,490, 522, 562, 561, 498, 499, 492, 499, 499, 560,500, 497, 500, 500, 501, 559, 501, 501, 502, 558,502, 502, 503, 557, 503, 503, 504, 526, 504, 504,526, 500, 499, 501, 556, 526, 555, 503, 505, 504,505, 505, 554, 553, 502, 506, 505, 506, 506, 507,
466, 526, 466, 466, 464, 525, 427, 467, 466, 467,467, 468, 453, 468, 468, 469, 457, 469, 469, 492,488, 459, 465, 488, 524, 470, 461, 470, 470, 523,522, 488, 468, 473, 467, 473, 473, 471, 470, 471,471, 469, 521, 520, 472, 471, 472, 472, 474, 519,474, 474, 472, 475, 495, 475, 475, 495, 476, 473,476, 476, 477, 518, 477, 477, 475, 495, 517, 516,474, 478, 476, 478, 478, 479, 515, 479, 479, 478,480, 514, 480, 480, 481, 489, 481, 481, 489, 477,513, 479, 482, 482, 482, 482, 483, 490, 483, 483,
552, 507, 507, 506, 508, 551, 508, 508, 509, 531,509, 509, 531, 510, 550, 510, 510, 511, 489, 511,511, 509, 487, 486, 531, 507, 508, 510, 512, 485,512, 512, 513, 481, 513, 513, 512, 514, 525, 514,514, 525, 480, 515, 511, 515, 515, 479, 513, 516,516, 516, 516, 517, 527, 517, 517, 527, 478, 518,514, 518, 518, 519, 525, 519, 519, 520, 477, 520,520, 521, 523, 521, 521, 523, 528, 529, 476, 528,529, 527, 530, 523, 475, 530, 515, 532, 535, 536,532, 535, 536, 474, 473, 472, 529, 528, 517, 520,
490, 489, 484, 480, 484, 484, 485, 458, 485, 485,486, 456, 486, 486, 487, 455, 487, 487, 491, 493,454, 491, 493, 490, 450, 494, 491, 481, 494, 496,497, 498, 496, 497, 498, 449, 499, 496, 497, 499,493, 483, 486, 500, 448, 502, 500, 484, 502, 485,501, 494, 503, 501, 447, 503, 500, 498, 499, 487,503, 446, 504, 505, 501, 504, 505, 506, 507, 507,506, 507, 502, 508, 509, 445, 508, 509, 504, 510,511, 512, 510, 511, 512, 534, 505, 557, 534, 560,557, 560, 560, 561, 444, 561, 561, 562, 443, 562,
532, 471, 533, 470, 518, 533, 519, 469, 530, 534,533, 536, 534, 468, 535, 537, 521, 534, 537, 538,539, 540, 538, 539, 540, 467, 466, 541, 537, 540,541, 542, 543, 538, 542, 543, 544, 544, 545, 544,465, 545, 546, 541, 464, 546, 547, 539, 548, 547,549, 548, 574, 549, 542, 574, 600, 463, 603, 600,603, 603, 462, 604, 461, 604, 604, 630, 460, 605,630, 605, 605, 459, 458, 543, 604, 605, 457, 607,548, 607, 607, 545, 603, 456, 453, 546, 606, 547,606, 606, 452, 630, 451, 549, 606, 574, 450, 449,
562, 561, 560, 442, 563, 562, 563, 563, 441, 440,506, 584, 511, 564, 584, 564, 564, 587, 508, 509,587, 564, 510, 439, 584, 565, 512, 565, 565, 438,534, 437, 557, 565, 566, 436, 566, 566, 567, 435,567, 567, 566, 568, 434, 568, 568, 569, 433, 569,569, 570, 432, 570, 570, 571, 431, 571, 571, 572,430, 572, 572, 567, 429, 428, 573, 572, 573, 573,425, 574, 585, 574, 574, 585, 424, 423, 570, 574,585, 575, 571, 575, 575, 576, 573, 576, 576, 577,422, 577, 577, 578, 421, 578, 578, 579, 420, 579,
608, 600, 608, 608, 609, 448, 609, 609, 608, 447,446, 610, 609, 610, 610, 611, 445, 611, 611, 610,444, 443, 612, 611, 612, 612, 613, 442, 613, 613,614, 441, 614, 614, 615, 440, 615, 615, 616, 439,616, 616, 617, 641, 617, 617, 641, 618, 612, 618,618, 613, 438, 437, 619, 618, 619, 619, 620, 631,620, 620, 631, 436, 639, 616, 620, 639, 621, 617,621, 621, 631, 622, 619, 622, 622, 623, 435, 623,623, 624, 434, 624, 624, 625, 433, 625, 625, 626,639, 626, 626, 627, 640, 627, 627, 640, 623, 628,
579, 580, 419, 580, 580, 581, 591, 581, 581, 591,577, 582, 576, 582, 582, 583, 586, 583, 583, 586,588, 418, 592, 588, 586, 592, 589, 417, 588, 589,578, 591, 590, 580, 589, 590, 581, 416, 593, 594,590, 593, 594, 595, 596, 597, 595, 596, 597, 415,598, 599, 596, 598, 599, 414, 582, 413, 598, 600,583, 601, 600, 412, 601, 597, 594, 411, 602, 603,595, 602, 603, 605, 604, 606, 605, 604, 606, 410,607, 663, 601, 607, 663, 644, 600, 644, 644, 645,409, 645, 645, 644, 646, 408, 646, 646, 647, 664,
622, 628, 628, 629, 632, 629, 629, 632, 633, 432,642, 633, 632, 642, 635, 366, 633, 635, 624, 640,636, 626, 635, 636, 627, 365, 637, 638, 636, 637,638, 364, 363, 643, 637, 638, 643, 644, 645, 646,644, 645, 646, 362, 628, 359, 645, 647, 629, 648,647, 649, 648, 650, 649, 647, 650, 358, 651, 646,643, 651, 652, 357, 644, 652, 653, 655, 654, 653,655, 654, 656, 722, 650, 656, 722, 699, 649, 699,699, 700, 356, 700, 700, 699, 355, 354, 701, 700,701, 701, 353, 352, 702, 651, 702, 702, 653, 654,
647, 647, 664, 407, 605, 602, 604, 648, 347, 648,648, 649, 346, 649, 649, 650, 345, 650, 650, 651,606, 651, 651, 650, 344, 607, 652, 651, 652, 652,653, 343, 653, 653, 652, 654, 340, 654, 654, 655,339, 655, 655, 656, 338, 656, 656, 657, 654, 657,657, 656, 658, 337, 658, 658, 659, 336, 659, 659,657, 660, 335, 660, 660, 661, 662, 661, 661, 662,665, 334, 666, 665, 662, 666, 667, 668, 669, 667,668, 669, 333, 332, 670, 668, 669, 670, 671, 659,331, 671, 670, 672, 658, 673, 672, 674, 673, 675,
703, 351, 703, 703, 704, 350, 704, 704, 705, 349,705, 705, 655, 706, 348, 706, 706, 656, 707, 347,707, 707, 708, 346, 708, 708, 707, 345, 344, 709,708, 709, 709, 710, 343, 710, 710, 709, 342, 341,711, 710, 711, 711, 712, 340, 712, 712, 713, 339,713, 713, 714, 338, 714, 714, 715, 712, 715, 715,714, 716, 331, 716, 716, 717, 326, 717, 717, 715,718, 325, 718, 718, 719, 720, 719, 719, 720, 721,323, 723, 721, 720, 723, 724, 725, 721, 724, 725,726, 727, 728, 726, 727, 728, 729, 322, 717, 729,
674, 676, 675, 660, 676, 674, 672, 677, 678, 330,677, 678, 675, 679, 698, 329, 679, 698, 701, 328,701, 701, 702, 327, 702, 702, 703, 326, 703, 703,704, 325, 704, 704, 705, 711, 705, 705, 711, 324,677, 323, 705, 676, 706, 712, 706, 706, 712, 707,678, 707, 707, 709, 322, 709, 709, 707, 708, 698,708, 708, 315, 710, 708, 710, 710, 713, 714, 715,713, 714, 715, 716, 310, 717, 716, 715, 717, 718,309, 719, 718, 717, 719, 718, 720, 724, 729, 720,724, 729, 731, 307, 306, 731, 710, 732, 709, 732,
728, 321, 730, 716, 729, 730, 731, 318, 732, 731,730, 732, 718, 733, 731, 734, 733, 735, 734, 736,735, 737, 736, 316, 737, 735, 733, 738, 739, 315,738, 739, 736, 740, 763, 314, 740, 763, 766, 313,766, 766, 767, 312, 767, 767, 768, 311, 768, 768,769, 310, 769, 769, 770, 778, 770, 770, 778, 771,738, 771, 771, 737, 772, 779, 772, 772, 779, 309,739, 773, 772, 773, 773, 774, 308, 774, 774, 763,307, 305, 775, 774, 775, 775, 304, 776, 775, 776,776, 777, 780, 777, 777, 780, 781, 782, 783, 781,
732, 733, 738, 733, 733, 738, 734, 305, 734, 734,735, 302, 735, 735, 736, 300, 736, 736, 737, 720,737, 737, 739, 299, 740, 739, 719, 740, 741, 298,297, 741, 724, 729, 296, 295, 742, 731, 734, 742,743, 745, 748, 743, 745, 748, 750, 294, 750, 750,751, 754, 751, 751, 754, 735, 740, 293, 752, 736,752, 752, 753, 737, 753, 753, 755, 756, 757, 755,756, 757, 761, 741, 761, 761, 292, 291, 290, 750,762, 742, 762, 762, 754, 743, 745, 748, 763, 764,289, 763, 764, 767, 768, 767, 767, 768, 771, 772,
782, 783, 784, 785, 786, 784, 785, 786, 787, 303,784, 787, 786, 788, 787, 789, 788, 793, 789, 798,793, 302, 798, 800, 777, 801, 800, 801, 801, 301,300, 802, 776, 802, 802, 803, 299, 803, 803, 804,298, 804, 804, 805, 295, 805, 805, 806, 789, 806,806, 807, 808, 809, 807, 808, 809, 810, 788, 220,810, 218, 793, 811, 798, 215, 811, 803, 800, 812,814, 817, 812, 814, 817, 214, 819, 212, 819, 819,820, 211, 820, 820, 804, 809, 209, 821, 805, 821,821, 822, 806, 822, 822, 823, 824, 825, 823, 824,
771, 771, 772, 752, 288, 287, 775, 753, 775, 775,286, 761, 756, 757, 775, 776, 285, 779, 776, 779,779, 780, 284, 776, 780, 281, 210, 763, 208, 205,204, 202, 201, 771, 772, 767, 768, 782, 782, 782,782, 782, 782, 783, 783, 783, 783, 783, 783, 784,784, 784, 784, 784, 784, 785, 785, 785, 785, 785,785, 786, 786, 786, 786, 786, 786, 787, 787, 787,787, 787, 787, 788, 788, 788, 788, 788, 788, 789,789, 789, 789, 789, 789, 790, 790, 790, 790, 790,790, 791, 791, 199, 791, 791, 791, 792, 792, 792,
825, 826, 810, 831, 826, 831, 831, 204, 811, 819,830, 200, 830, 830, 812, 814, 817, 832, 833, 199,832, 833, 836, 837, 836, 836, 837, 840, 823, 840,840, 841, 821, 197, 841, 844, 822, 844, 844, 196,195, 192, 825, 844, 845, 190, 826, 845, 848, 830,848, 848, 845, 189, 849, 185, 832, 849, 183, 182,181, 180, 840, 179, 836, 837, 841, 851, 851, 851,851, 851, 851, 852, 852, 852, 852, 852, 852, 853,853, 853, 853, 853, 853, 854, 854, 854, 854, 854,854, 855, 855, 855, 855, 855, 855, 856, 856, 856,
792, 792, 792, 793, 194, 190, 189, 793, 793, 794,794, 794, 794, 794, 794, 795, 795, 187, 186, 795,795, 796, 796, 796, 185, 796, 796, 797, 797, 182,797, 797, 797, 798, 798, 180, 798, 798, 798, 799,799, 179, 175, 173, 799, 800, 800, 172, 800, 800,800, 802, 802, 171, 170, 169, 802, 803, 803, 803,803, 803, 803, 804, 804, 168, 167, 166, 804, 805,805, 165, 805, 805, 805, 164, 163, 162, 161, 160,159, 158, 157, 149, 143, 142, 139, 138, 137, 135,134, 130, 129, 128, 127, 126, 124, 121, 118, 117,
856, 856, 856, 857, 857, 178, 857, 857, 857, 858,858, 858, 858, 858, 858, 859, 177, 176, 175, 859,859, 860, 860, 860, 860, 860, 860, 861, 861, 174,172, 861, 861, 862, 862, 862, 171, 862, 862, 863,863, 170, 863, 863, 863, 864, 864, 169, 864, 864,864, 865, 865, 168, 167, 166, 865, 866, 866, 165,866, 866, 866, 868, 868, 157, 151, 150, 868, 869,869, 869, 869, 869, 869, 870, 870, 147, 146, 145,870, 871, 871, 143, 871, 871, 871, 142, 139, 137,136, 135, 134, 133, 132, 130, 127, 124, 123, 118,
112, 111, 110, 108, 107, 103, 102, 101, 100, 99,70, 67, 65, 64, 62, 60, 58, 55, 50, 47,44, 43, 38, 37, 36, 34, 33, 29, 28, 27,26, 25, 23, 19, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781, 781, 781, 781, 781, 781, 781, 781,781, 781, 781
117, 116, 114, 113, 110, 108, 107, 106, 105, 104,103, 72, 69, 67, 66, 64, 62, 60, 57, 52,49, 46, 45, 40, 39, 38, 36, 35, 32, 30,29, 28, 27, 26, 25, 23, 19, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850, 850, 850, 850, 850,850, 850, 850, 850, 850, 850
/* Table of booleans, true if rule could match eol. */static yyconst flex_int32_t yy_rule_can_match_eol[63] ={ 0,0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0,1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1, 0, 0, };static yy_state_type yy_last_accepting_state;static char *yy_last_accepting_cpos;extern int yy_flex_debug;int yy_flex_debug = 0;/* The intent behind this definition is that it'll catch* any uses of REJECT which flex missed.*/#define REJECT reject_used_but_not_detected
static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;static char *yy_full_match;static int yy_lp;#define REJECT \{ \*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \yy_cp = yy_full_match; /* restore poss. backed-over text */ \++yy_lp; \goto find_rule; \}
#line 1276 "levcomp.lex.cc"#define INITIAL 0#define MAPDEF 1#define LUA 2#define LUA_ONELINER 3#define ARGUMENT 4#define MNAME 5#define KEYWORDS 6#define ITEM_LIST 7
#ifndef YY_NO_UNISTD_H/* Special case for "unistd.h", since it is non-ANSI. We include it way* down here because we want the user's section 1 to have been scanned first.* The user has a chance to override it with an option.*/#include <unistd.h>#endif
#define YY_NEVER_INTERACTIVE 1#line 1329 "levcomp.lex.cc"
#ifndef YY_EXTRA_TYPE#define YY_EXTRA_TYPE void *#endifstatic int yy_init_globals (void );
#ifdef __cplusplusstatic int yyinput (void );
#if YY_STACK_USEDstatic int yy_start_stack_ptr = 0;static int yy_start_stack_depth = 0;static int *yy_start_stack = 0;#ifndef YY_NO_PUSH_STATEstatic void yy_push_state YY_PROTO(( int new_state ));#endif#ifndef YY_NO_POP_STATEstatic void yy_pop_state YY_PROTO(( void ));#endif#ifndef YY_NO_TOP_STATEstatic int yy_top_state YY_PROTO(( void ));#endif
#ifdef YY_MALLOC_DECLYY_MALLOC_DECL#else#if __STDC__#ifndef __cplusplus#include <stdlib.h>#endif#else/* Just try to get by without declaring the routines. This will fail* miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)* or sizeof(void*) != sizeof(int).*/#endif
else \{ \errno=0; \while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \{ \if( errno != EINTR) \{ \YY_FATAL_ERROR( "input in flex scanner failed" ); \break; \} \errno=0; \clearerr(yyin); \} \}\\
else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \&& ferror( yyin ) ) \YY_FATAL_ERROR( "input in flex scanner failed" );
while ( yy_current_state != 781 );yy_cp = (yy_last_accepting_cpos);yy_current_state = (yy_last_accepting_state);
while ( yy_base[yy_current_state] != 2138 );
yy_act = yy_accept[yy_current_state];
yy_current_state = *--yy_state_ptr;yy_lp = yy_accept[yy_current_state];find_rule: /* we branch to this label when backing up */for ( ; ; ) /* until we find what rule we matched */{if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] ){yy_act = yy_acclist[yy_lp];{yy_full_match = yy_cp;break;}}--yy_cp;yy_current_state = *--yy_state_ptr;yy_lp = yy_accept[yy_current_state];}
#line 1911 "levcomp.lex.cc"case YY_STATE_EOF(INITIAL):case YY_STATE_EOF(MAPDEF):case YY_STATE_EOF(LUA):case YY_STATE_EOF(LUA_ONELINER):case YY_STATE_EOF(ARGUMENT):case YY_STATE_EOF(MNAME):case YY_STATE_EOF(KEYWORDS):case YY_STATE_EOF(ITEM_LIST):case YY_STATE_EOF(TOEOL):yyterminate();
#line 1961 "levcomp.lex.cc"case YY_STATE_EOF(INITIAL):case YY_STATE_EOF(MAPDEF):case YY_STATE_EOF(LUA):case YY_STATE_EOF(LUA_ONELINER):case YY_STATE_EOF(ARGUMENT):case YY_STATE_EOF(MNAME):case YY_STATE_EOF(KEYWORDS):case YY_STATE_EOF(ITEM_LIST):case YY_STATE_EOF(TOEOL):yyterminate();
(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
yy_n_chars = yy_current_buffer->yy_n_chars;yy_current_buffer->yy_input_file = yyin;yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
static int yy_get_next_buffer (void){register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;register char *source = (yytext_ptr);
static int yy_get_next_buffer(){register char *dest = yy_current_buffer->yy_ch_buf;register char *source = yytext_ptr;
(yy_n_chars) += number_to_move;YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
yy_n_chars += number_to_move;yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ){
#ifdef YY_USE_PROTOSstatic yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )#elsestatic yy_state_type yy_try_NUL_trans( yy_current_state )yy_state_type yy_current_state;#endif{
static void yyunput (int c, register char * yy_bp ){register char *yy_cp;yy_cp = (yy_c_buf_p);
#ifndef YY_NO_UNPUT#ifdef YY_USE_PROTOSstatic void yyunput( int c, register char *yy_bp )#elsestatic void yyunput( c, yy_bp )int c;register char *yy_bp;#endif{register char *yy_cp = yy_c_buf_p;
register int number_to_move = (yy_n_chars) + 2;register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
register int number_to_move = yy_n_chars + 2;register char *dest = &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2];
c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */*(yy_c_buf_p) = '\0'; /* preserve yytext */(yy_hold_char) = *++(yy_c_buf_p);
c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */*yy_c_buf_p = '\0'; /* preserve yytext */yy_hold_char = *++yy_c_buf_p;
/** Immediately switch to a different input stream.* @param input_file A readable stream.** @note This function does not reset the start condition to @c INITIAL .*/void yyrestart (FILE * input_file ){if ( ! YY_CURRENT_BUFFER ){yyensure_buffer_stack ();YY_CURRENT_BUFFER_LVALUE =yy_create_buffer(yyin,YY_BUF_SIZE );
yy_init_buffer( yy_current_buffer, input_file );yy_load_buffer_state();
/** Switch to a different input buffer.* @param new_buffer The new input buffer.**/void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ){/* TODO. We should be able to replace this entire function body* with* yypop_buffer_state();* yypush_buffer_state(new_buffer);*/yyensure_buffer_stack ();if ( YY_CURRENT_BUFFER == new_buffer )
#ifdef YY_USE_PROTOSvoid yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )#elsevoid yy_switch_to_buffer( new_buffer )YY_BUFFER_STATE new_buffer;#endif{if ( yy_current_buffer == new_buffer )
*(yy_c_buf_p) = (yy_hold_char);YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
*yy_c_buf_p = yy_hold_char;yy_current_buffer->yy_buf_pos = yy_c_buf_p;yy_current_buffer->yy_n_chars = yy_n_chars;
(yy_did_buffer_switch_on_eof) = 1;}
yy_did_buffer_switch_on_eof = 1;}#ifdef YY_USE_PROTOSvoid yy_load_buffer_state( void )#elsevoid yy_load_buffer_state()#endif{yy_n_chars = yy_current_buffer->yy_n_chars;yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;yyin = yy_current_buffer->yy_input_file;yy_hold_char = *yy_c_buf_p;}
/** Allocate and initialize an input buffer state.* @param file A readable stream.* @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.** @return the allocated buffer state.*/YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ){
#ifdef YY_USE_PROTOSYY_BUFFER_STATE yy_create_buffer( FILE *file, int size )#elseYY_BUFFER_STATE yy_create_buffer( file, size )FILE *file;int size;#endif{
{int oerrno = errno;yy_flush_buffer(b );
#ifndef YY_ALWAYS_INTERACTIVE#ifndef YY_NEVER_INTERACTIVEextern int isatty YY_PROTO(( int ));#endif#endif#ifdef YY_USE_PROTOSvoid yy_init_buffer( YY_BUFFER_STATE b, FILE *file )#elsevoid yy_init_buffer( b, file )YY_BUFFER_STATE b;FILE *file;#endif{yy_flush_buffer( b );
/* If b is the current buffer, then yy_init_buffer was _probably_* called from yyrestart() or through yy_get_next_buffer.* In that case, we don't want to reset the lineno or column.*/if (b != YY_CURRENT_BUFFER){b->yy_bs_lineno = 1;b->yy_bs_column = 0;}
#if YY_ALWAYS_INTERACTIVEb->yy_is_interactive = 1;#else#if YY_NEVER_INTERACTIVEb->yy_is_interactive = 0;#elseb->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;#endif#endif}
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.* @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.**/void yy_flush_buffer (YY_BUFFER_STATE b ){if ( ! b )
#ifdef YY_USE_PROTOSvoid yy_flush_buffer( YY_BUFFER_STATE b )#elsevoid yy_flush_buffer( b )YY_BUFFER_STATE b;#endif{if ( ! b )
if ( b == YY_CURRENT_BUFFER )yy_load_buffer_state( );}/** Pushes the new state onto the stack. The new state becomes* the current state. This function will allocate the stack* if necessary.* @param new_buffer The new state.**/void yypush_buffer_state (YY_BUFFER_STATE new_buffer ){if (new_buffer == NULL)return;yyensure_buffer_stack();/* This block is copied from yy_switch_to_buffer. */if ( YY_CURRENT_BUFFER ){/* Flush out information for old buffer. */*(yy_c_buf_p) = (yy_hold_char);YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);}/* Only push if top exists. Otherwise, replace top. */if (YY_CURRENT_BUFFER)(yy_buffer_stack_top)++;YY_CURRENT_BUFFER_LVALUE = new_buffer;/* copied from yy_switch_to_buffer. */yy_load_buffer_state( );(yy_did_buffer_switch_on_eof) = 1;}/** Removes and deletes the top of the stack, if present.* The next element becomes the new top.**/void yypop_buffer_state (void){if (!YY_CURRENT_BUFFER)return;yy_delete_buffer(YY_CURRENT_BUFFER );YY_CURRENT_BUFFER_LVALUE = NULL;if ((yy_buffer_stack_top) > 0)--(yy_buffer_stack_top);
}/* Allocates the stack if it does not exist.* Guarantees space for at least one push.*/static void yyensure_buffer_stack (void){int num_to_alloc;if (!(yy_buffer_stack)) {/* First allocation is just for 2 elements, since we don't know if this* scanner will even need a stack. We use 2 instead of 1 to avoid an* immediate realloc on the next call.*/num_to_alloc = 1;(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc(num_to_alloc * sizeof(struct yy_buffer_state*));memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));(yy_buffer_stack_max) = num_to_alloc;(yy_buffer_stack_top) = 0;return;}if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){/* Increase the buffer to prepare for a possible push. */int grow_size = 8 /* arbitrary grow size */;num_to_alloc = (yy_buffer_stack_max) + grow_size;(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc((yy_buffer_stack),num_to_alloc * sizeof(struct yy_buffer_state*));
/** Setup the input buffer state to scan directly from a user-specified character buffer.* @param base the character buffer* @param size the size in bytes of the character buffer** @return the newly allocated buffer state object.*/YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ){
#ifndef YY_NO_SCAN_BUFFER#ifdef YY_USE_PROTOSYY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )#elseYY_BUFFER_STATE yy_scan_buffer( base, size )char *base;yy_size_t size;#endif{
}
}#endif#ifndef YY_NO_SCAN_STRING#ifdef YY_USE_PROTOSYY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )#elseYY_BUFFER_STATE yy_scan_string( yy_str )yyconst char *yy_str;#endif{int len;for ( len = 0; yy_str[len]; ++len );return yy_scan_bytes( yy_str, len );}#endif
/** Setup the input buffer state to scan a string. The next call to yylex() will* scan from a @e copy of @a str.* @param yystr a NUL-terminated string to scan** @return the newly allocated buffer state object.* @note If you want to scan bytes that may contain NUL values, then use* yy_scan_bytes() instead.*/YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ){return yy_scan_bytes(yystr,strlen(yystr) );}
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will* scan from a @e copy of @a bytes.* @param bytes the byte buffer to scan* @param len the number of bytes in the buffer pointed to by @a bytes.** @return the newly allocated buffer state object.*/YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ){
#ifndef YY_NO_SCAN_BYTES#ifdef YY_USE_PROTOSYY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )#elseYY_BUFFER_STATE yy_scan_bytes( bytes, len )yyconst char *bytes;int len;#endif{
/* Redefine yyless() so it works in section 3 code. */
#ifndef YY_NO_PUSH_STATE#ifdef YY_USE_PROTOSstatic void yy_push_state( int new_state )#elsestatic void yy_push_state( new_state )int new_state;#endif{if ( yy_start_stack_ptr >= yy_start_stack_depth ){yy_size_t new_size;
#undef yyless#define yyless(n) \do \{ \/* Undo effects of setting up yytext. */ \int yyless_macro_arg = (n); \YY_LESS_LINENO(yyless_macro_arg);\yytext[yyleng] = (yy_hold_char); \(yy_c_buf_p) = yytext + yyless_macro_arg; \(yy_hold_char) = *(yy_c_buf_p); \*(yy_c_buf_p) = '\0'; \yyleng = yyless_macro_arg; \} \while ( 0 )
yy_start_stack_depth += YY_START_STACK_INCR;new_size = yy_start_stack_depth * sizeof( int );
void yyset_out (FILE * out_str ){yyout = out_str ;}int yyget_debug (void){return yy_flex_debug;}void yyset_debug (int bdebug ){yy_flex_debug = bdebug ;}static int yy_init_globals (void){/* Initialization is the same as for the non-reentrant scanner.* This function is called from yylex_destroy(), so don't allocate here.*/
#ifndef YY_NO_TOP_STATEstatic int yy_top_state(){return yy_start_stack[yy_start_stack_ptr - 1];}#endif
/* We do not touch yylineno unless the option is enabled. */yylineno = 1;(yy_buffer_stack) = 0;(yy_buffer_stack_top) = 0;(yy_buffer_stack_max) = 0;(yy_c_buf_p) = (char *) 0;(yy_init) = 0;(yy_start) = 0;
#ifndef YY_EXIT_FAILURE#define YY_EXIT_FAILURE 2#endif
/* yylex_destroy is for both reentrant and non-reentrant scanners. */int yylex_destroy (void){/* Pop the buffer stack, destroying each element. */while(YY_CURRENT_BUFFER){yy_delete_buffer(YY_CURRENT_BUFFER );YY_CURRENT_BUFFER_LVALUE = NULL;yypop_buffer_state();}
/* Reset the globals. This is important in a non-reentrant scanner so the next time* yylex() is called, initialization will occur. */yy_init_globals( );
#undef yyless#define yyless(n) \do \{ \/* Undo effects of setting up yytext. */ \yytext[yyleng] = yy_hold_char; \yy_c_buf_p = yytext + n; \yy_hold_char = *yy_c_buf_p; \*yy_c_buf_p = '\0'; \yyleng = n; \} \while ( 0 )
}return (rmarkers);}std::vector<map_marker*> map_markers::get_all(const std::string &key,const std::string &val){std::vector<map_marker*> rmarkers;for (dgn_marker_map::const_iterator i = markers.begin();i != markers.end(); ++i){map_marker* marker = i->second;const std::string prop = marker->property(key);if ((val == "" && !prop.empty()) || (val != "" && val == prop))rmarkers.push_back(marker);
}//////////////////////////////////////////////////////////////////////////// map_flagsmap_flags::map_flags(): flags_set(0), flags_unset(0){}typedef std::map<std::string, unsigned long> flag_map;map_flags map_flags::parse(const std::string flag_list[],const std::string &s) throw(std::string){map_flags mf;const std::vector<std::string> segs = split_string("/", s);flag_map flag_vals;for (int i = 0; flag_list[i] != ""; i++)flag_vals[flag_list[i]] = 1 << i;for (int i = 0, size = segs.size(); i < size; i++){std::string flag = segs[i];bool negate = false;if (flag[0] == '!'){flag = flag.substr(1);negate = true;}flag_map::const_iterator val = flag_vals.find(flag);if (val == flag_vals.end())throw make_stringf("Unknown flag: '%s'", flag.c_str());if (negate)mf.flags_unset |= val->second;elsemf.flags_set |= val->second;}return mf;
}static const std::string level_flag_names[] ={"no_tele_control", "not_mappable", "no_magic_map", ""};static int dgn_lflags(lua_State *ls){MAP(ls, 1, map);try {map->level_flags = map_flags::parse(level_flag_names,luaL_checkstring(ls, 2));}catch (const std::string &error){luaL_argerror(ls, 2, error.c_str());}return (0);}static int dgn_change_level_flags(lua_State *ls){map_flags flags;try {flags = map_flags::parse(level_flag_names,luaL_checkstring(ls, 1));}catch (const std::string &error){luaL_argerror(ls, 2, error.c_str());lua_pushboolean(ls, false);return (1);}bool silent = lua_toboolean(ls, 2);bool changed1 = set_level_flags(flags.flags_set, silent);bool changed2 = unset_level_flags(flags.flags_unset, silent);lua_pushboolean(ls, changed1 || changed2);return (1);}static const std::string branch_flag_names[] ={"no_tele_control", "not_mappable", "no_magic_map", ""};static int dgn_bflags(lua_State *ls){MAP(ls, 1, map);try {map->branch_flags = map_flags::parse(branch_flag_names,luaL_checkstring(ls, 2));}catch (const std::string &error){luaL_argerror(ls, 2, error.c_str());}return (0);
static int dgn_change_branch_flags(lua_State *ls){map_flags flags;try {flags = map_flags::parse(branch_flag_names,luaL_checkstring(ls, 1));}catch (const std::string &error){luaL_argerror(ls, 2, error.c_str());lua_pushboolean(ls, false);return (1);}bool silent = lua_toboolean(ls, 2);bool changed1 = set_branch_flags(flags.flags_set, silent);bool changed2 = unset_branch_flags(flags.flags_unset, silent);lua_pushboolean(ls, changed1 || changed2);return (1);}
static int dgn_num_matching_markers(lua_State *ls){const char* key = luaL_checkstring(ls, 1);const char* val_ptr = lua_tostring(ls, 2);const char* val;if (val_ptr == NULL)val = "";elseval = val_ptr;std::vector<map_marker*> markers = env.markers.get_all(key, val);PLUARET(number, markers.size());}
static int dgn_item_from_index(lua_State *ls){const int index = luaL_checkint(ls, 1);item_def *item = &mitm[index];if (is_valid_item(*item))lua_pushlightuserdata(ls, item);elselua_pushnil(ls);return (1);}static int dgn_mons_from_index(lua_State *ls){const int index = luaL_checkint(ls, 1);monsters *mons = &menv[index];if (mons->type != -1)push_monster(ls, mons);elselua_pushnil(ls);return (1);}
}bool set_level_flags(unsigned long flags, bool silent){bool could_control = allow_control_teleport(true);bool could_map = player_in_mappable_area();unsigned long old_flags = env.level_flags;env.level_flags |= flags;bool can_control = allow_control_teleport(true);bool can_map = player_in_mappable_area();if (you.skills[SK_TRANSLOCATIONS] > 0&& could_control && !can_control && !silent){mpr("You sense the appearence of a powerful magical force ""which warps space.", MSGCH_WARN);}if (could_map && !can_map && !silent){mpr("A powerful force appears that prevents you from ""remembering where you've been.", MSGCH_WARN);}return (old_flags != env.level_flags);}bool unset_level_flags(unsigned long flags, bool silent){bool could_control = allow_control_teleport(true);bool could_map = player_in_mappable_area();unsigned long old_flags = env.level_flags;env.level_flags &= ~flags;bool can_control = allow_control_teleport(true);bool can_map = player_in_mappable_area();if (you.skills[SK_TRANSLOCATIONS] > 0&& !could_control && can_control && !silent){// Isn't really a "recovery", but I couldn't think of where// else to send it.mpr("You sense the disappearence of a powerful magical force ""which warped space.", MSGCH_RECOVERY);}if (!could_map && can_map && !silent){// Isn't really a "recovery", but I couldn't think of where// else to send it.mpr("You sense the disappearence the force that prevented you ""from remembering where you've been.", MSGCH_RECOVERY);}return (old_flags != env.level_flags);
// Now do per-square by-symbol maskingfor (int y = place.y + place.height - 1; y >= place.y; --y)for (int x = place.x + place.width - 1; x >= place.x; --x)if (place.map.in_map(coord_def(x - place.x, y - place.y))){int key = place.map.map.glyph(x - place.x, y - place.y);const keyed_mapspec* spec = place.map.mapspec_for_key(key);if (spec != NULL){dgn_map_mask[x][y] |= (short)spec->map_mask.flags_set;dgn_map_mask[x][y] &= ~((short)spec->map_mask.flags_unset);}}set_branch_flags(place.map.branch_flags.flags_set, true);unset_branch_flags(place.map.branch_flags.flags_unset, true);set_level_flags(place.map.level_flags.flags_set, true);unset_level_flags(place.map.level_flags.flags_unset, true);
// Set default level flagsif (you.level_type == LEVEL_DUNGEON)env.level_flags = branches[you.where_are_you].default_level_flags;else if (you.level_type == LEVEL_LABYRINTH ||you.level_type == LEVEL_ABYSS){env.level_flags = LFLAG_NO_TELE_CONTROL | LFLAG_NOT_MAPPABLE;if (!(you.level_type == LEVEL_LABYRINTH&& you.species != SP_MINOTAUR)){env.level_flags |= LFLAG_NO_MAGIC_MAP;}}elseenv.level_flags = 0;
DET_TURN_ELAPSED = 0x0001,DET_MONSTER_MOVED = 0x0002,DET_PLAYER_MOVED = 0x0004,DET_LEAVING_LEVEL = 0x0008,DET_ENTERING_LEVEL = 0x0010,DET_PLAYER_IN_LOS = 0x0020, // Player just entered LOS.DET_PLAYER_CLIMBS = 0x0040 // Player climbing stairs.
DET_TURN_ELAPSED = 0x0001,DET_MONSTER_MOVED = 0x0002,DET_PLAYER_MOVED = 0x0004,DET_LEAVING_LEVEL = 0x0008,DET_ENTERING_LEVEL = 0x0010,DET_PLAYER_IN_LOS = 0x0020, // Player just entered LOS.DET_PLAYER_CLIMBS = 0x0040, // Player climbing stairs.DET_MONSTER_DIED = 0x0080,DET_ITEM_PICKUP = 0x0100,DET_FEAT_CHANGE = 0x0200
----------------------------------------------------------------------------- lm_flags.lua-- Changing level flags and branch flags------------------------------------------------------------------------------------------------------------------------------------------------------ There are three different types of pre-packaged "change level and-- branch flags" marker types. All three share the following parameters:---- * level_flags: A space separated list of level flag names to set or unset.-- To unset a flag, prefix the name with "!".---- * branch_flags: Like level_flags, but for branch flags to set or unset.---- * group: Different flag change markers on the same level can be put-- into the same group by giving them the same group name.-- Of all of the markers in the same group, only the last one-- to have its conditions met will cause the flags to change.-- This is useful if, for example, there are two magical fountains,-- and you only want the flags to change when both dry up.---- * msg: A message to give the user when the flags are changed; suppress-- any messages Crawl would normally give for the changes effected.-- The message is not given if nothing is changed (i.e., if all-- the flags to be set were already set and all the flags to be-- unset were already unset).---- The three different marker types can be created with the following-- functions:---- * mons_dies_change_flags(): Creates a marker which changes the flags-- when a named monster dies. Accepts the parameter "mon_name"-- as the name of the monster to watch. The marker can be-- placed anywhere on the level, and doesn't have to be near the-- monster when it dies.---- * feat_change_change_flags(): Creates a marker which acts when the-- feature of its grid changes. Accepts the optional string-- parameter "final_feat", which will cause the change to only-- take place when the changed feature contains final_feat as-- a substring. For example, a sparkling fountain can dry up-- either by turning directly into a dry_fountain_ii feature,-- or by first turning into a blue_fountain feature, and then-- into a dry_fountain_i feature. Without final_feat, the-- flags will change if the sparkling fountain changes into-- a blue fountain. However, if "final_feat" is set to-- "dry_fountain", the marker will ignore the feature turning-- into blue_fountain, and will only act when it changes into-- dry_fountain_i or dry_fountain_ii---- * item_pickup_change_flags(): Creates a marker which acts when-- an item on its grid gets picked up. Accepts the parameter-- "item", which is the plain name of the item its watching-- (i.e., "Orb of Zot" and "golden rune" rather than "the Orb of Zot"-- or "a golden rune").--------------------------------------------------------------------------ChangeFlags = { }ChangeFlags.__index = ChangeFlagsfunction ChangeFlags:_new()local cf = { }setmetatable(cf, self)self.__index = selfreturn cfendfunction ChangeFlags:new(pars)pars = pars or { }pars.level_flags = pars.level_flags or ""pars.branch_flags = pars.branch_flags or ""pars.msg = pars.msg or ""if not (pars.level_flags ~= "" or pars.branch_flags ~= "") thenerror("Must provide at least one of level_flags or branch_flags.")endlocal cf = self:_new()cf.level_flags = pars.level_flagscf.branch_flags = pars.branch_flagscf.msg = pars.msgcf.props = { flag_group = pars.group }return cfendfunction ChangeFlags:do_change(marker)local did_change1 = falselocal did_change2 = falselocal silent = self.msg and self.msg ~= ""if self.props.flag_group and self.props.flag_group ~= "" thenlocal num_markers = dgn.num_matching_markers("flag_group",self.props.group)if num_markers > 1 thenreturn false, falseendendif self.level_flags and self.level_flags ~= "" thendid_change1 = dgn.change_level_flags(self.level_flags, silent)endif self.branch_flags and self.branch_flags ~= "" thendid_change2 = dgn.change_branch_flags(self.branch_flags, silent)endif did_change1 or did_change2 thenif self.msg and self.msg ~= "" thencrawl.mpr(self.smg)endreturn true, trueendreturn true, falseendfunction ChangeFlags:property(marker, pname)return self.props[pname] or ''endfunction ChangeFlags:write(marker, th)file.marshall(th, self.level_flags)file.marshall(th, self.branch_flags)file.marshall(th, self.msg)lmark.marshall_table(th, self.props)endfunction ChangeFlags:read(marker, th)self.level_flags = file.unmarshall_string(th)self.branch_flags = file.unmarshall_string(th)self.msg = file.unmarshall_string(th)self.props = lmark.unmarshall_table(th)setmetatable(self, ChangeFlags)return selfend----------------------------------------------------------------------------------------------------------------------------------------------------MonDiesChangeFlags = ChangeFlags:_new()MonDiesChangeFlags.__index = MonDiesChangeFlagsfunction MonDiesChangeFlags:_new(pars)local mdcfif pars thenmdcf = ChangeFlags:new(pars)elsemdcf = ChangeFlags:_new()endsetmetatable(mdcf, self)self.__index = selfreturn mdcfendfunction MonDiesChangeFlags:new(pars)pars = pars or { }if not pars.mon_name thenerror("No monster name provided.")endlocal mdcf = self:_new(pars)mdcf.mon_name = pars.mon_namereturn mdcfendfunction MonDiesChangeFlags:activate(marker)dgn.register_listener(dgn.dgn_event_type('monster_dies'), marker)endfunction MonDiesChangeFlags:event(marker, ev)local midx = ev:arg1()local mons = dgn.mons_from_index(midx)if not mons thenerror("MonDiesChangeFlags:event() didn't get a valid monster index")endif mons.name == self.mon_name thenChangeFlags.do_change(self, marker)dgn.remove_listener(marker)dgn.remove_marker(marker)endendfunction MonDiesChangeFlags:write(marker, th)ChangeFlags.write(self, marker, th)file.marshall(th, self.mon_name)endfunction MonDiesChangeFlags:read(marker, th)ChangeFlags.read(self, marker, th)self.mon_name = file.unmarshall_string(th)setmetatable(self, MonDiesChangeFlags)return selfendfunction mons_dies_change_flags(pars)return MonDiesChangeFlags:new(pars)end----------------------------------------------------------------------------------------------------------------------------------------------------------FeatChangeChangeFlags = ChangeFlags:_new()FeatChangeChangeFlags.__index = FeatChangeChangeFlagsfunction FeatChangeChangeFlags:_new(pars)local fccfif pars thenfccf = ChangeFlags:new(pars)elsefccf = ChangeFlags:_new()endsetmetatable(fccf, self)self.__index = selfreturn fccfendfunction FeatChangeChangeFlags:new(pars)pars = pars or { }local fccf = self:_new(pars)fccf.final_feat = pars.final_featreturn fccfendfunction FeatChangeChangeFlags:activate(marker)dgn.register_listener(dgn.dgn_event_type('feat_change'), marker,marker:pos())endfunction FeatChangeChangeFlags:event(marker, ev)if self.final_feat and self.final_feat ~= "" thenlocal feat = dgn.feature_name(dgn.grid(ev:pos()))if not string.find(feat, self.final_feat) thenreturnendendChangeFlags.do_change(self, marker)dgn.remove_listener(marker, marker:pos())dgn.remove_marker(marker)endfunction FeatChangeChangeFlags:write(marker, th)ChangeFlags.write(self, marker, th)file.marshall(th, self.final_feat)endfunction FeatChangeChangeFlags:read(marker, th)ChangeFlags.read(self, marker, th)self.final_feat = file.unmarshall_string(th)setmetatable(self, FeatChangeChangeFlags)return selfendfunction feat_change_change_flags(pars)return FeatChangeChangeFlags:new(pars)end----------------------------------------------------------------------------------------------------------------------------------------------------ItemPickupChangeFlags = ChangeFlags:_new()ItemPickupChangeFlags.__index = ItemPickupChangeFlagsfunction ItemPickupChangeFlags:_new(pars)local ipcfif pars thenipcf = ChangeFlags:new(pars)elseipcf = ChangeFlags:_new()endsetmetatable(ipcf, self)self.__index = selfreturn ipcfendfunction ItemPickupChangeFlags:new(pars)pars = pars or { }if not pars.item thenerror("No item name provided.")endlocal ipcf = self:_new(pars)ipcf.item = pars.itemreturn ipcfendfunction ItemPickupChangeFlags:activate(marker)dgn.register_listener(dgn.dgn_event_type('item_pickup'), marker,marker:pos())endfunction ItemPickupChangeFlags:event(marker, ev)local obj_idx = ev:arg1()local it = dgn.item_from_index(obj_idx)if not it thenerror("ItemPickupChangeFlags:event() didn't get a valid item index")endif item.name(it) == self.item thenChangeFlags.do_change(self, marker)dgn.remove_listener(marker, marker:pos())dgn.remove_marker(marker)endendfunction ItemPickupChangeFlags:write(marker, th)ChangeFlags.write(self, marker, th)file.marshall(th, self.item)endfunction ItemPickupChangeFlags:read(marker, th)ChangeFlags.read(self, marker, th)self.item = file.unmarshall_string(th)setmetatable(self, ItemPickupChangeFlags)return selfendfunction item_pickup_change_flags(pars)return ItemPickupChangeFlags:new(pars)end
}bool set_branch_flags(unsigned long flags, bool silent,branch_type branch){if (branch == NUM_BRANCHES)branch = you.where_are_you;bool could_control = allow_control_teleport(true);bool could_map = player_in_mappable_area();unsigned long old_flags = branches[static_cast<int>(branch)].branch_flags;branches[static_cast<int>(branch)].branch_flags |= flags;bool can_control = allow_control_teleport(true);bool can_map = player_in_mappable_area();if (you.level_type == LEVEL_DUNGEON && branch == you.where_are_you&& you.skills[SK_TRANSLOCATIONS] > 0&& could_control && !can_control && !silent){mpr("You sense the appearence of a powerful magical force ""which warps space.", MSGCH_WARN);}if (you.level_type == LEVEL_DUNGEON && branch == you.where_are_you&& could_map && !can_map && !silent){mpr("A powerful force appears that prevents you from ""remembering where you've been.", MSGCH_WARN);}return (old_flags != branches[static_cast<int>(branch)].branch_flags);
bool unset_branch_flags(unsigned long flags, bool silent,branch_type branch){if (branch == NUM_BRANCHES)branch = you.where_are_you;bool could_control = allow_control_teleport(true);bool could_map = player_in_mappable_area();unsigned long old_flags = branches[static_cast<int>(branch)].branch_flags;branches[static_cast<int>(branch)].branch_flags &= ~flags;bool can_control = allow_control_teleport(true);bool can_map = player_in_mappable_area();if (you.level_type == LEVEL_DUNGEON && branch == you.where_are_you&& you.skills[SK_TRANSLOCATIONS] > 0&& !could_control && can_control && !silent){// Isn't really a "recovery", but I couldn't think of where// else to send it.mpr("You sense the disappearence of a powerful magical force ""which warped space.", MSGCH_RECOVERY);}if (you.level_type == LEVEL_DUNGEON && branch == you.where_are_you&& !could_map && can_map && !silent){// Isn't really a "recovery", but I couldn't think of where// else to send it.mpr("You sense the disappearence the force that prevented you ""from remembering where you've been.", MSGCH_RECOVERY);}return (old_flags != branches[static_cast<int>(branch)].branch_flags);}unsigned long get_branch_flags(branch_type branch){if (branch == NUM_BRANCHES){if (you.level_type != LEVEL_DUNGEON)return (0);branch = you.where_are_you;}return branches[static_cast<int>(branch)].branch_flags;}
if (testbits(env.level_flags, LFLAG_NOT_MAPPABLE)|| testbits(get_branch_flags(), BFLAG_NOT_MAPPABLE)){if (!yesno("Force level to be mappable? ")){canned_msg( MSG_OK );return;}unset_level_flags(LFLAG_NOT_MAPPABLE | LFLAG_NO_MAGIC_MAP);unset_branch_flags(BFLAG_NOT_MAPPABLE | BFLAG_NO_MAGIC_MAP);}
vaults, avoid this with the no_monster_gen TAG.l - lava - again, use the no_monster_gen TAG for entry vaults!
vaults, avoid this with the no_monster_gen TAG or KMASK.l - lava - again, use the no_monster_gen TAG or KMASK for entry vaults!
LFLAGS: Persistent, changeable per-level flags which affect gamebehavior (FLAGS just controls how the vault is placed); shouldonly be used for vaults with ORIENT encompass or with PLACE.This causes a level's flags to be set when the level is firstcreated. These flags can later be altered using Lua markers;see the slime pit vault in lair.des, and the vaults in hell.desand elf.des for examples.Valid flags are: no_tele_control, which prevents the playerfrom using teleport control; not_mappable, which preventsthe player from remembering where they've been (like inthe Abyss), and no_magic_map, which prevents magic mappingfrom working.BFLAGS: Persistent, changeable per-*branch* flags which affect gamebehavior; should only be used for vaults which go on the fistlevel of a particular branch. These flags can later be alteredusing Lua markers; see the Tomb vaults in vaults.lua for anexample.Valid flags are: no_tele_control, which prevents the playerfrom using teleport control; not_mappable, which preventsthe player from remembering where they've been (like inthe Abyss), and no_magic_map, which prevents magic mappingfrom working.
KMASK: Z = no_monster_genKMASK allows you set or unset various masks for particularsymbols, rather than for the entire vault like if you did itwith TAGS. Valid masks are* "no_item_gen": Prevents random item on that symbol. Itemsexplicitly placed on that symbol aren't affected.* "no_monster_gen": Prevents random monster generation on thatsymbol. MUST-HAVE for those with water/lava symbols inentry vaults.* "no_pool_fixup": prevents a water square next to land from beingrandomly converted from deep water (the default) to shallow.* "no_secret_doors": prevents a door from randomly being turnedinto a secret door.For exampleKMASK: W = no_monster_genwill prevent monsters from randomly being generated on shallowwater squares. Note that if shuffling and substitutions causeW to end up as water 10% of the time and floor 90% of the time,then those floor squares will still have no_monster_gen set, butthat's still a higher degree of control than you get with TAGS.If TAGS has been used to set a mask for the entire vault, youcan use KMASK to remove that mask from particular symbols.For instance:TAGS: no_monster_genKMASK: W = !no_monster_genwould make it so that monsters are only randomly generatedon shallow water squares.
orig_gly_points.
orig_gly_points, load_des_file, feature_number, feature_name,dgn_event_type, register_listener, remove_listener, remove_marker,num_matching_markers, feature_desc, feature_desc_at, item_from_index,mons_from_index, change_level_flags, change_branch_flags