ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
(Generate patch)

Comparing:
ircd-hybrid-8/src/ircd_parser.c (file contents), Revision 1306 by michael, Sat Mar 24 07:43:04 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1992 by michael, Fri May 10 18:32:26 2013 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.  */
1 > /* A Bison parser, made by GNU Bison 2.7.12-4996.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4    
5 <      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
5 >      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6    
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.5"
47 > #define YYBISON_VERSION "2.7.12-4996"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 58 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
61 /* Using locations.  */
62 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
66 < /* Line 268 of yacc.c  */
69 < #line 25 "ircd_parser.y"
65 > /* Line 371 of yacc.c  */
66 > #line 25 "conf_parser.y"
67  
68  
69   #define YY_NO_UNPUT
# Line 77 | Line 74
74   #include "stdinc.h"
75   #include "ircd.h"
76   #include "list.h"
77 < #include "s_conf.h"
77 > #include "conf.h"
78 > #include "conf_class.h"
79   #include "event.h"
80 < #include "s_log.h"
80 > #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
82   #include "irc_string.h"
85 #include "sprintf_irc.h"
83   #include "memory.h"
84   #include "modules.h"
85   #include "s_serv.h"
# Line 100 | Line 97
97   #include <openssl/dh.h>
98   #endif
99  
100 < static char *class_name = NULL;
104 < static struct ConfItem *yy_conf = NULL;
105 < static struct AccessItem *yy_aconf = NULL;
106 < static struct MatchItem *yy_match_item = NULL;
107 < static struct ClassItem *yy_class = NULL;
108 < static char *yy_class_name = NULL;
109 <
110 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
111 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
112 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
113 < static unsigned int listener_flags = 0;
114 < static unsigned int regex_ban = 0;
115 < static char userbuf[IRCD_BUFSIZE];
116 < static char hostbuf[IRCD_BUFSIZE];
117 < static char reasonbuf[REASONLEN + 1];
118 < static char gecos_name[REALLEN * 4];
119 < static char lfile[IRCD_BUFSIZE];
120 < static unsigned int ltype = 0;
121 < static unsigned int lsize = 0;
122 < static char *resv_reason = NULL;
123 < static char *listener_address = NULL;
100 > #include "rsa.h"
101  
102 < struct CollectItem
126 < {
127 <  dlink_node node;
128 <  char *name;
129 <  char *user;
130 <  char *host;
131 <  char *passwd;
132 <  int  port;
133 <  int  flags;
134 < #ifdef HAVE_LIBCRYPTO
135 <  char *rsa_public_key_file;
136 <  RSA *rsa_public_key;
137 < #endif
138 < };
102 > int yylex(void);
103  
104 < static void
141 < free_collect_item(struct CollectItem *item)
104 > static struct
105   {
106 <  MyFree(item->name);
107 <  MyFree(item->user);
108 <  MyFree(item->host);
109 <  MyFree(item->passwd);
110 < #ifdef HAVE_LIBCRYPTO
111 <  MyFree(item->rsa_public_key_file);
112 < #endif
113 <  MyFree(item);
114 < }
106 >  struct {
107 >    dlink_list list;
108 >  } mask,
109 >    leaf,
110 >    hub;
111 >
112 >  struct {
113 >    char buf[IRCD_BUFSIZE];
114 >  } name,
115 >    user,
116 >    host,
117 >    addr,
118 >    bind,
119 >    file,
120 >    ciph,
121 >    rpass,
122 >    spass,
123 >    class;
124 >
125 >  struct {
126 >    unsigned int value;
127 >  } flags,
128 >    modes,
129 >    size,
130 >    type,
131 >    port,
132 >    aftype,
133 >    ping_freq,
134 >    max_perip,
135 >    con_freq,
136 >    min_idle,
137 >    max_idle,
138 >    max_total,
139 >    max_global,
140 >    max_local,
141 >    max_ident,
142 >    max_sendq,
143 >    max_recvq,
144 >    cidr_bitlen_ipv4,
145 >    cidr_bitlen_ipv6,
146 >    number_per_cidr;
147 > } block_state;
148  
149   static void
150 < unhook_hub_leaf_confs(void)
150 > reset_block_state(void)
151   {
152 <  dlink_node *ptr;
157 <  dlink_node *next_ptr;
158 <  struct CollectItem *yy_hconf;
159 <  struct CollectItem *yy_lconf;
152 >  dlink_node *ptr = NULL, *ptr_next = NULL;
153  
154 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
154 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
155    {
156 <    yy_hconf = ptr->data;
157 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
158 <    free_collect_item(yy_hconf);
156 >    MyFree(ptr->data);
157 >    dlinkDelete(ptr, &block_state.mask.list);
158 >    free_dlink_node(ptr);
159    }
160  
161 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
161 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
162    {
163 <    yy_lconf = ptr->data;
164 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
165 <    free_collect_item(yy_lconf);
163 >    MyFree(ptr->data);
164 >    dlinkDelete(ptr, &block_state.leaf.list);
165 >    free_dlink_node(ptr);
166 >  }
167 >
168 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
169 >  {
170 >    MyFree(ptr->data);
171 >    dlinkDelete(ptr, &block_state.hub.list);
172 >    free_dlink_node(ptr);
173    }
174 }
174  
175 +  memset(&block_state, 0, sizeof(block_state));
176 + }
177  
178  
179 < /* Line 268 of yacc.c  */
180 < #line 180 "ircd_parser.c"
179 > /* Line 371 of yacc.c  */
180 > #line 181 "conf_parser.c"
181  
182 < /* Enabling traces.  */
183 < #ifndef YYDEBUG
184 < # define YYDEBUG 0
185 < #endif
182 > # ifndef YY_NULL
183 > #  if defined __cplusplus && 201103L <= __cplusplus
184 > #   define YY_NULL nullptr
185 > #  else
186 > #   define YY_NULL 0
187 > #  endif
188 > # endif
189  
190   /* Enabling verbose error messages.  */
191   #ifdef YYERROR_VERBOSE
# Line 191 | Line 195 | unhook_hub_leaf_confs(void)
195   # define YYERROR_VERBOSE 0
196   #endif
197  
198 < /* Enabling the token table.  */
199 < #ifndef YYTOKEN_TABLE
200 < # define YYTOKEN_TABLE 0
198 > /* In a future release of Bison, this section will be replaced
199 >   by #include "y.tab.h".  */
200 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
201 > # define YY_YY_CONF_PARSER_H_INCLUDED
202 > /* Enabling traces.  */
203 > #ifndef YYDEBUG
204 > # define YYDEBUG 0
205 > #endif
206 > #if YYDEBUG
207 > extern int yydebug;
208   #endif
198
209  
210   /* Tokens.  */
211   #ifndef YYTOKENTYPE
# Line 204 | Line 214 | unhook_hub_leaf_confs(void)
214        know about them.  */
215     enum yytokentype {
216       ACCEPT_PASSWORD = 258,
217 <     ACTION = 259,
218 <     ADMIN = 260,
219 <     AFTYPE = 261,
220 <     T_ALLOW = 262,
221 <     ANTI_NICK_FLOOD = 263,
222 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
223 <     AUTOCONN = 265,
224 <     T_BLOCK = 266,
225 <     BURST_AWAY = 267,
226 <     BURST_TOPICWHO = 268,
227 <     BYTES = 269,
228 <     KBYTES = 270,
229 <     MBYTES = 271,
230 <     GBYTES = 272,
231 <     TBYTES = 273,
232 <     CALLER_ID_WAIT = 274,
233 <     CAN_FLOOD = 275,
234 <     CHANNEL = 276,
235 <     CIDR_BITLEN_IPV4 = 277,
236 <     CIDR_BITLEN_IPV6 = 278,
237 <     CLASS = 279,
238 <     CONNECT = 280,
239 <     CONNECTFREQ = 281,
240 <     DEFAULT_FLOODCOUNT = 282,
241 <     DEFAULT_SPLIT_SERVER_COUNT = 283,
242 <     DEFAULT_SPLIT_USER_COUNT = 284,
243 <     DENY = 285,
244 <     DESCRIPTION = 286,
245 <     DIE = 287,
246 <     DISABLE_AUTH = 288,
247 <     DISABLE_FAKE_CHANNELS = 289,
248 <     DISABLE_HIDDEN = 290,
249 <     DISABLE_LOCAL_CHANNELS = 291,
250 <     DISABLE_REMOTE_COMMANDS = 292,
251 <     DOTS_IN_IDENT = 293,
252 <     DURATION = 294,
253 <     EGDPOOL_PATH = 295,
254 <     EMAIL = 296,
255 <     ENABLE = 297,
256 <     ENCRYPTED = 298,
257 <     EXCEED_LIMIT = 299,
258 <     EXEMPT = 300,
259 <     FAILED_OPER_NOTICE = 301,
260 <     IRCD_FLAGS = 302,
261 <     FLATTEN_LINKS = 303,
262 <     GECOS = 304,
263 <     GENERAL = 305,
264 <     GLINE = 306,
265 <     GLINES = 307,
266 <     GLINE_EXEMPT = 308,
267 <     GLINE_TIME = 309,
268 <     GLINE_MIN_CIDR = 310,
269 <     GLINE_MIN_CIDR6 = 311,
270 <     GLOBAL_KILL = 312,
271 <     IRCD_AUTH = 313,
272 <     NEED_IDENT = 314,
273 <     HAVENT_READ_CONF = 315,
274 <     HIDDEN = 316,
275 <     HIDDEN_NAME = 317,
276 <     HIDE_SERVER_IPS = 318,
277 <     HIDE_SERVERS = 319,
278 <     HIDE_SPOOF_IPS = 320,
279 <     HOST = 321,
280 <     HUB = 322,
281 <     HUB_MASK = 323,
282 <     IGNORE_BOGUS_TS = 324,
283 <     INVISIBLE_ON_CONNECT = 325,
284 <     IP = 326,
285 <     KILL = 327,
286 <     KILL_CHASE_TIME_LIMIT = 328,
287 <     KLINE = 329,
288 <     KLINE_EXEMPT = 330,
289 <     KLINE_REASON = 331,
290 <     KLINE_WITH_REASON = 332,
291 <     KNOCK_DELAY = 333,
292 <     KNOCK_DELAY_CHANNEL = 334,
293 <     LEAF_MASK = 335,
294 <     LINKS_DELAY = 336,
295 <     LISTEN = 337,
296 <     T_LOG = 338,
297 <     MAX_ACCEPT = 339,
298 <     MAX_BANS = 340,
299 <     MAX_CHANS_PER_USER = 341,
300 <     MAX_GLOBAL = 342,
301 <     MAX_IDENT = 343,
302 <     MAX_LOCAL = 344,
303 <     MAX_NICK_CHANGES = 345,
304 <     MAX_NICK_TIME = 346,
305 <     MAX_NUMBER = 347,
306 <     MAX_TARGETS = 348,
307 <     MAX_WATCH = 349,
308 <     MESSAGE_LOCALE = 350,
309 <     MIN_NONWILDCARD = 351,
310 <     MIN_NONWILDCARD_SIMPLE = 352,
311 <     MODULE = 353,
312 <     MODULES = 354,
313 <     NAME = 355,
314 <     NEED_PASSWORD = 356,
315 <     NETWORK_DESC = 357,
316 <     NETWORK_NAME = 358,
317 <     NICK = 359,
318 <     NICK_CHANGES = 360,
319 <     NO_CREATE_ON_SPLIT = 361,
320 <     NO_JOIN_ON_SPLIT = 362,
321 <     NO_OPER_FLOOD = 363,
322 <     NO_TILDE = 364,
323 <     NUMBER = 365,
324 <     NUMBER_PER_IDENT = 366,
325 <     NUMBER_PER_CIDR = 367,
326 <     NUMBER_PER_IP = 368,
327 <     NUMBER_PER_IP_GLOBAL = 369,
328 <     OPERATOR = 370,
329 <     OPERS_BYPASS_CALLERID = 371,
330 <     OPER_ONLY_UMODES = 372,
331 <     OPER_PASS_RESV = 373,
332 <     OPER_SPY_T = 374,
333 <     OPER_UMODES = 375,
334 <     JOIN_FLOOD_COUNT = 376,
335 <     JOIN_FLOOD_TIME = 377,
336 <     PACE_WAIT = 378,
337 <     PACE_WAIT_SIMPLE = 379,
338 <     PASSWORD = 380,
339 <     PATH = 381,
340 <     PING_COOKIE = 382,
341 <     PING_TIME = 383,
342 <     PING_WARNING = 384,
343 <     PORT = 385,
344 <     QSTRING = 386,
345 <     QUIET_ON_BAN = 387,
346 <     REASON = 388,
347 <     REDIRPORT = 389,
348 <     REDIRSERV = 390,
349 <     REGEX_T = 391,
350 <     REHASH = 392,
351 <     TREJECT_HOLD_TIME = 393,
352 <     REMOTE = 394,
353 <     REMOTEBAN = 395,
354 <     RESTRICT_CHANNELS = 396,
355 <     RESTRICTED = 397,
356 <     RSA_PRIVATE_KEY_FILE = 398,
357 <     RSA_PUBLIC_KEY_FILE = 399,
358 <     SSL_CERTIFICATE_FILE = 400,
359 <     SSL_DH_PARAM_FILE = 401,
360 <     T_SSL_CONNECTION_METHOD = 402,
361 <     T_SSLV3 = 403,
362 <     T_TLSV1 = 404,
363 <     RESV = 405,
364 <     RESV_EXEMPT = 406,
365 <     SECONDS = 407,
366 <     MINUTES = 408,
367 <     HOURS = 409,
368 <     DAYS = 410,
369 <     WEEKS = 411,
370 <     SENDQ = 412,
371 <     SEND_PASSWORD = 413,
372 <     SERVERHIDE = 414,
373 <     SERVERINFO = 415,
374 <     IRCD_SID = 416,
375 <     TKLINE_EXPIRE_NOTICES = 417,
376 <     T_SHARED = 418,
377 <     T_CLUSTER = 419,
378 <     TYPE = 420,
379 <     SHORT_MOTD = 421,
380 <     SILENT = 422,
381 <     SPOOF = 423,
382 <     SPOOF_NOTICE = 424,
383 <     STATS_E_DISABLED = 425,
384 <     STATS_I_OPER_ONLY = 426,
385 <     STATS_K_OPER_ONLY = 427,
386 <     STATS_O_OPER_ONLY = 428,
387 <     STATS_P_OPER_ONLY = 429,
388 <     TBOOL = 430,
389 <     TMASKED = 431,
390 <     T_REJECT = 432,
391 <     TS_MAX_DELTA = 433,
392 <     TS_WARN_DELTA = 434,
393 <     TWODOTS = 435,
394 <     T_ALL = 436,
395 <     T_BOTS = 437,
396 <     T_SOFTCALLERID = 438,
397 <     T_CALLERID = 439,
398 <     T_CCONN = 440,
399 <     T_CCONN_FULL = 441,
400 <     T_SSL_CIPHER_LIST = 442,
401 <     T_CLIENT_FLOOD = 443,
402 <     T_DEAF = 444,
403 <     T_DEBUG = 445,
404 <     T_DLINE = 446,
405 <     T_DRONE = 447,
406 <     T_EXTERNAL = 448,
407 <     T_FULL = 449,
408 <     T_INVISIBLE = 450,
409 <     T_IPV4 = 451,
410 <     T_IPV6 = 452,
411 <     T_LOCOPS = 453,
412 <     T_MAX_CLIENTS = 454,
413 <     T_NCHANGE = 455,
414 <     T_OPERWALL = 456,
415 <     T_REJ = 457,
416 <     T_SERVER = 458,
417 <     T_SERVNOTICE = 459,
418 <     T_SKILL = 460,
419 <     T_SPY = 461,
420 <     T_SSL = 462,
421 <     T_UMODES = 463,
422 <     T_UNAUTH = 464,
423 <     T_UNDLINE = 465,
424 <     T_UNLIMITED = 466,
425 <     T_UNRESV = 467,
426 <     T_UNXLINE = 468,
427 <     T_GLOBOPS = 469,
428 <     T_WALLOP = 470,
429 <     T_RESTART = 471,
430 <     T_SERVICE = 472,
431 <     T_SERVICES_NAME = 473,
432 <     T_TIMESTAMP = 474,
433 <     THROTTLE_TIME = 475,
424 <     TOPICBURST = 476,
425 <     TRUE_NO_OPER_FLOOD = 477,
426 <     TKLINE = 478,
427 <     TXLINE = 479,
428 <     TRESV = 480,
429 <     UNKLINE = 481,
430 <     USER = 482,
431 <     USE_EGD = 483,
432 <     USE_EXCEPT = 484,
433 <     USE_INVEX = 485,
434 <     USE_KNOCK = 486,
435 <     USE_LOGGING = 487,
436 <     USE_WHOIS_ACTUALLY = 488,
437 <     VHOST = 489,
438 <     VHOST6 = 490,
439 <     XLINE = 491,
440 <     WARN = 492,
441 <     WARN_NO_NLINE = 493,
442 <     T_SIZE = 494,
443 <     T_FILE = 495
217 >     ADMIN = 259,
218 >     AFTYPE = 260,
219 >     ANTI_NICK_FLOOD = 261,
220 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
221 >     AUTOCONN = 263,
222 >     BYTES = 264,
223 >     KBYTES = 265,
224 >     MBYTES = 266,
225 >     CALLER_ID_WAIT = 267,
226 >     CAN_FLOOD = 268,
227 >     CHANNEL = 269,
228 >     CIDR_BITLEN_IPV4 = 270,
229 >     CIDR_BITLEN_IPV6 = 271,
230 >     CLASS = 272,
231 >     CONNECT = 273,
232 >     CONNECTFREQ = 274,
233 >     DEFAULT_FLOODCOUNT = 275,
234 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
235 >     DEFAULT_SPLIT_USER_COUNT = 277,
236 >     DENY = 278,
237 >     DESCRIPTION = 279,
238 >     DIE = 280,
239 >     DISABLE_AUTH = 281,
240 >     DISABLE_FAKE_CHANNELS = 282,
241 >     DISABLE_REMOTE_COMMANDS = 283,
242 >     DOTS_IN_IDENT = 284,
243 >     EGDPOOL_PATH = 285,
244 >     EMAIL = 286,
245 >     ENCRYPTED = 287,
246 >     EXCEED_LIMIT = 288,
247 >     EXEMPT = 289,
248 >     FAILED_OPER_NOTICE = 290,
249 >     IRCD_FLAGS = 291,
250 >     FLATTEN_LINKS = 292,
251 >     GECOS = 293,
252 >     GENERAL = 294,
253 >     GLINE = 295,
254 >     GLINE_DURATION = 296,
255 >     GLINE_ENABLE = 297,
256 >     GLINE_EXEMPT = 298,
257 >     GLINE_REQUEST_DURATION = 299,
258 >     GLINE_MIN_CIDR = 300,
259 >     GLINE_MIN_CIDR6 = 301,
260 >     GLOBAL_KILL = 302,
261 >     IRCD_AUTH = 303,
262 >     NEED_IDENT = 304,
263 >     HAVENT_READ_CONF = 305,
264 >     HIDDEN = 306,
265 >     HIDDEN_NAME = 307,
266 >     HIDE_SERVER_IPS = 308,
267 >     HIDE_SERVERS = 309,
268 >     HIDE_SERVICES = 310,
269 >     HIDE_SPOOF_IPS = 311,
270 >     HOST = 312,
271 >     HUB = 313,
272 >     HUB_MASK = 314,
273 >     IGNORE_BOGUS_TS = 315,
274 >     INVISIBLE_ON_CONNECT = 316,
275 >     IP = 317,
276 >     KILL = 318,
277 >     KILL_CHASE_TIME_LIMIT = 319,
278 >     KLINE = 320,
279 >     KLINE_EXEMPT = 321,
280 >     KNOCK_DELAY = 322,
281 >     KNOCK_DELAY_CHANNEL = 323,
282 >     LEAF_MASK = 324,
283 >     LINKS_DELAY = 325,
284 >     LISTEN = 326,
285 >     T_LOG = 327,
286 >     MASK = 328,
287 >     MAX_ACCEPT = 329,
288 >     MAX_BANS = 330,
289 >     MAX_CHANS_PER_OPER = 331,
290 >     MAX_CHANS_PER_USER = 332,
291 >     MAX_GLOBAL = 333,
292 >     MAX_IDENT = 334,
293 >     MAX_LOCAL = 335,
294 >     MAX_NICK_CHANGES = 336,
295 >     MAX_NICK_LENGTH = 337,
296 >     MAX_NICK_TIME = 338,
297 >     MAX_NUMBER = 339,
298 >     MAX_TARGETS = 340,
299 >     MAX_TOPIC_LENGTH = 341,
300 >     MAX_WATCH = 342,
301 >     MIN_NONWILDCARD = 343,
302 >     MIN_NONWILDCARD_SIMPLE = 344,
303 >     MIN_IDLE = 345,
304 >     MAX_IDLE = 346,
305 >     RANDOM_IDLE = 347,
306 >     HIDE_IDLE_FROM_OPERS = 348,
307 >     MODULE = 349,
308 >     MODULES = 350,
309 >     NAME = 351,
310 >     NEED_PASSWORD = 352,
311 >     NETWORK_DESC = 353,
312 >     NETWORK_NAME = 354,
313 >     NICK = 355,
314 >     NO_CREATE_ON_SPLIT = 356,
315 >     NO_JOIN_ON_SPLIT = 357,
316 >     NO_OPER_FLOOD = 358,
317 >     NO_TILDE = 359,
318 >     NUMBER = 360,
319 >     NUMBER_PER_CIDR = 361,
320 >     NUMBER_PER_IP = 362,
321 >     OPERATOR = 363,
322 >     OPERS_BYPASS_CALLERID = 364,
323 >     OPER_ONLY_UMODES = 365,
324 >     OPER_PASS_RESV = 366,
325 >     OPER_UMODES = 367,
326 >     JOIN_FLOOD_COUNT = 368,
327 >     JOIN_FLOOD_TIME = 369,
328 >     PACE_WAIT = 370,
329 >     PACE_WAIT_SIMPLE = 371,
330 >     PASSWORD = 372,
331 >     PATH = 373,
332 >     PING_COOKIE = 374,
333 >     PING_TIME = 375,
334 >     PORT = 376,
335 >     QSTRING = 377,
336 >     REASON = 378,
337 >     REDIRPORT = 379,
338 >     REDIRSERV = 380,
339 >     REHASH = 381,
340 >     REMOTE = 382,
341 >     REMOTEBAN = 383,
342 >     RSA_PRIVATE_KEY_FILE = 384,
343 >     RSA_PUBLIC_KEY_FILE = 385,
344 >     SSL_CERTIFICATE_FILE = 386,
345 >     SSL_DH_PARAM_FILE = 387,
346 >     T_SSL_CLIENT_METHOD = 388,
347 >     T_SSL_SERVER_METHOD = 389,
348 >     T_SSLV3 = 390,
349 >     T_TLSV1 = 391,
350 >     RESV = 392,
351 >     RESV_EXEMPT = 393,
352 >     SECONDS = 394,
353 >     MINUTES = 395,
354 >     HOURS = 396,
355 >     DAYS = 397,
356 >     WEEKS = 398,
357 >     MONTHS = 399,
358 >     YEARS = 400,
359 >     SENDQ = 401,
360 >     SEND_PASSWORD = 402,
361 >     SERVERHIDE = 403,
362 >     SERVERINFO = 404,
363 >     IRCD_SID = 405,
364 >     TKLINE_EXPIRE_NOTICES = 406,
365 >     T_SHARED = 407,
366 >     T_CLUSTER = 408,
367 >     TYPE = 409,
368 >     SHORT_MOTD = 410,
369 >     SPOOF = 411,
370 >     SPOOF_NOTICE = 412,
371 >     STATS_E_DISABLED = 413,
372 >     STATS_I_OPER_ONLY = 414,
373 >     STATS_K_OPER_ONLY = 415,
374 >     STATS_O_OPER_ONLY = 416,
375 >     STATS_P_OPER_ONLY = 417,
376 >     TBOOL = 418,
377 >     TMASKED = 419,
378 >     TS_MAX_DELTA = 420,
379 >     TS_WARN_DELTA = 421,
380 >     TWODOTS = 422,
381 >     T_ALL = 423,
382 >     T_BOTS = 424,
383 >     T_SOFTCALLERID = 425,
384 >     T_CALLERID = 426,
385 >     T_CCONN = 427,
386 >     T_CCONN_FULL = 428,
387 >     T_SSL_CIPHER_LIST = 429,
388 >     T_DEAF = 430,
389 >     T_DEBUG = 431,
390 >     T_DLINE = 432,
391 >     T_EXTERNAL = 433,
392 >     T_FARCONNECT = 434,
393 >     T_FULL = 435,
394 >     T_INVISIBLE = 436,
395 >     T_IPV4 = 437,
396 >     T_IPV6 = 438,
397 >     T_LOCOPS = 439,
398 >     T_MAX_CLIENTS = 440,
399 >     T_NCHANGE = 441,
400 >     T_NONONREG = 442,
401 >     T_OPERWALL = 443,
402 >     T_RECVQ = 444,
403 >     T_REJ = 445,
404 >     T_SERVER = 446,
405 >     T_SERVNOTICE = 447,
406 >     T_SET = 448,
407 >     T_SKILL = 449,
408 >     T_SPY = 450,
409 >     T_SSL = 451,
410 >     T_UMODES = 452,
411 >     T_UNAUTH = 453,
412 >     T_UNDLINE = 454,
413 >     T_UNLIMITED = 455,
414 >     T_UNRESV = 456,
415 >     T_UNXLINE = 457,
416 >     T_GLOBOPS = 458,
417 >     T_WALLOP = 459,
418 >     T_WEBIRC = 460,
419 >     T_RESTART = 461,
420 >     T_SERVICE = 462,
421 >     T_SERVICES_NAME = 463,
422 >     THROTTLE_TIME = 464,
423 >     TRUE_NO_OPER_FLOOD = 465,
424 >     UNKLINE = 466,
425 >     USER = 467,
426 >     USE_EGD = 468,
427 >     USE_LOGGING = 469,
428 >     VHOST = 470,
429 >     VHOST6 = 471,
430 >     XLINE = 472,
431 >     WARN_NO_NLINE = 473,
432 >     T_SIZE = 474,
433 >     T_FILE = 475
434     };
435   #endif
436   /* Tokens.  */
437   #define ACCEPT_PASSWORD 258
438 < #define ACTION 259
439 < #define ADMIN 260
440 < #define AFTYPE 261
441 < #define T_ALLOW 262
442 < #define ANTI_NICK_FLOOD 263
443 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
444 < #define AUTOCONN 265
445 < #define T_BLOCK 266
446 < #define BURST_AWAY 267
447 < #define BURST_TOPICWHO 268
448 < #define BYTES 269
449 < #define KBYTES 270
450 < #define MBYTES 271
451 < #define GBYTES 272
452 < #define TBYTES 273
453 < #define CALLER_ID_WAIT 274
454 < #define CAN_FLOOD 275
455 < #define CHANNEL 276
456 < #define CIDR_BITLEN_IPV4 277
457 < #define CIDR_BITLEN_IPV6 278
458 < #define CLASS 279
459 < #define CONNECT 280
460 < #define CONNECTFREQ 281
461 < #define DEFAULT_FLOODCOUNT 282
462 < #define DEFAULT_SPLIT_SERVER_COUNT 283
463 < #define DEFAULT_SPLIT_USER_COUNT 284
464 < #define DENY 285
465 < #define DESCRIPTION 286
466 < #define DIE 287
467 < #define DISABLE_AUTH 288
468 < #define DISABLE_FAKE_CHANNELS 289
469 < #define DISABLE_HIDDEN 290
470 < #define DISABLE_LOCAL_CHANNELS 291
471 < #define DISABLE_REMOTE_COMMANDS 292
472 < #define DOTS_IN_IDENT 293
473 < #define DURATION 294
474 < #define EGDPOOL_PATH 295
475 < #define EMAIL 296
476 < #define ENABLE 297
477 < #define ENCRYPTED 298
478 < #define EXCEED_LIMIT 299
479 < #define EXEMPT 300
480 < #define FAILED_OPER_NOTICE 301
481 < #define IRCD_FLAGS 302
482 < #define FLATTEN_LINKS 303
483 < #define GECOS 304
484 < #define GENERAL 305
485 < #define GLINE 306
486 < #define GLINES 307
487 < #define GLINE_EXEMPT 308
488 < #define GLINE_TIME 309
489 < #define GLINE_MIN_CIDR 310
490 < #define GLINE_MIN_CIDR6 311
491 < #define GLOBAL_KILL 312
492 < #define IRCD_AUTH 313
493 < #define NEED_IDENT 314
494 < #define HAVENT_READ_CONF 315
495 < #define HIDDEN 316
496 < #define HIDDEN_NAME 317
497 < #define HIDE_SERVER_IPS 318
498 < #define HIDE_SERVERS 319
499 < #define HIDE_SPOOF_IPS 320
500 < #define HOST 321
501 < #define HUB 322
502 < #define HUB_MASK 323
503 < #define IGNORE_BOGUS_TS 324
504 < #define INVISIBLE_ON_CONNECT 325
505 < #define IP 326
506 < #define KILL 327
507 < #define KILL_CHASE_TIME_LIMIT 328
508 < #define KLINE 329
509 < #define KLINE_EXEMPT 330
510 < #define KLINE_REASON 331
511 < #define KLINE_WITH_REASON 332
512 < #define KNOCK_DELAY 333
513 < #define KNOCK_DELAY_CHANNEL 334
514 < #define LEAF_MASK 335
515 < #define LINKS_DELAY 336
516 < #define LISTEN 337
517 < #define T_LOG 338
518 < #define MAX_ACCEPT 339
519 < #define MAX_BANS 340
520 < #define MAX_CHANS_PER_USER 341
521 < #define MAX_GLOBAL 342
522 < #define MAX_IDENT 343
523 < #define MAX_LOCAL 344
524 < #define MAX_NICK_CHANGES 345
525 < #define MAX_NICK_TIME 346
526 < #define MAX_NUMBER 347
527 < #define MAX_TARGETS 348
528 < #define MAX_WATCH 349
529 < #define MESSAGE_LOCALE 350
530 < #define MIN_NONWILDCARD 351
531 < #define MIN_NONWILDCARD_SIMPLE 352
532 < #define MODULE 353
533 < #define MODULES 354
534 < #define NAME 355
535 < #define NEED_PASSWORD 356
536 < #define NETWORK_DESC 357
537 < #define NETWORK_NAME 358
538 < #define NICK 359
539 < #define NICK_CHANGES 360
540 < #define NO_CREATE_ON_SPLIT 361
541 < #define NO_JOIN_ON_SPLIT 362
542 < #define NO_OPER_FLOOD 363
543 < #define NO_TILDE 364
544 < #define NUMBER 365
545 < #define NUMBER_PER_IDENT 366
546 < #define NUMBER_PER_CIDR 367
547 < #define NUMBER_PER_IP 368
548 < #define NUMBER_PER_IP_GLOBAL 369
549 < #define OPERATOR 370
550 < #define OPERS_BYPASS_CALLERID 371
551 < #define OPER_ONLY_UMODES 372
552 < #define OPER_PASS_RESV 373
553 < #define OPER_SPY_T 374
554 < #define OPER_UMODES 375
555 < #define JOIN_FLOOD_COUNT 376
556 < #define JOIN_FLOOD_TIME 377
557 < #define PACE_WAIT 378
558 < #define PACE_WAIT_SIMPLE 379
559 < #define PASSWORD 380
560 < #define PATH 381
561 < #define PING_COOKIE 382
562 < #define PING_TIME 383
563 < #define PING_WARNING 384
564 < #define PORT 385
565 < #define QSTRING 386
566 < #define QUIET_ON_BAN 387
567 < #define REASON 388
568 < #define REDIRPORT 389
569 < #define REDIRSERV 390
570 < #define REGEX_T 391
571 < #define REHASH 392
572 < #define TREJECT_HOLD_TIME 393
573 < #define REMOTE 394
574 < #define REMOTEBAN 395
575 < #define RESTRICT_CHANNELS 396
576 < #define RESTRICTED 397
577 < #define RSA_PRIVATE_KEY_FILE 398
578 < #define RSA_PUBLIC_KEY_FILE 399
579 < #define SSL_CERTIFICATE_FILE 400
580 < #define SSL_DH_PARAM_FILE 401
581 < #define T_SSL_CONNECTION_METHOD 402
582 < #define T_SSLV3 403
583 < #define T_TLSV1 404
584 < #define RESV 405
585 < #define RESV_EXEMPT 406
586 < #define SECONDS 407
587 < #define MINUTES 408
588 < #define HOURS 409
589 < #define DAYS 410
590 < #define WEEKS 411
591 < #define SENDQ 412
592 < #define SEND_PASSWORD 413
593 < #define SERVERHIDE 414
594 < #define SERVERINFO 415
595 < #define IRCD_SID 416
596 < #define TKLINE_EXPIRE_NOTICES 417
597 < #define T_SHARED 418
598 < #define T_CLUSTER 419
599 < #define TYPE 420
600 < #define SHORT_MOTD 421
601 < #define SILENT 422
602 < #define SPOOF 423
603 < #define SPOOF_NOTICE 424
604 < #define STATS_E_DISABLED 425
605 < #define STATS_I_OPER_ONLY 426
606 < #define STATS_K_OPER_ONLY 427
607 < #define STATS_O_OPER_ONLY 428
608 < #define STATS_P_OPER_ONLY 429
609 < #define TBOOL 430
610 < #define TMASKED 431
611 < #define T_REJECT 432
612 < #define TS_MAX_DELTA 433
613 < #define TS_WARN_DELTA 434
614 < #define TWODOTS 435
615 < #define T_ALL 436
616 < #define T_BOTS 437
617 < #define T_SOFTCALLERID 438
618 < #define T_CALLERID 439
619 < #define T_CCONN 440
620 < #define T_CCONN_FULL 441
621 < #define T_SSL_CIPHER_LIST 442
622 < #define T_CLIENT_FLOOD 443
623 < #define T_DEAF 444
624 < #define T_DEBUG 445
625 < #define T_DLINE 446
626 < #define T_DRONE 447
627 < #define T_EXTERNAL 448
628 < #define T_FULL 449
629 < #define T_INVISIBLE 450
630 < #define T_IPV4 451
631 < #define T_IPV6 452
632 < #define T_LOCOPS 453
633 < #define T_MAX_CLIENTS 454
634 < #define T_NCHANGE 455
635 < #define T_OPERWALL 456
636 < #define T_REJ 457
637 < #define T_SERVER 458
638 < #define T_SERVNOTICE 459
639 < #define T_SKILL 460
640 < #define T_SPY 461
641 < #define T_SSL 462
642 < #define T_UMODES 463
643 < #define T_UNAUTH 464
644 < #define T_UNDLINE 465
645 < #define T_UNLIMITED 466
646 < #define T_UNRESV 467
647 < #define T_UNXLINE 468
648 < #define T_GLOBOPS 469
649 < #define T_WALLOP 470
650 < #define T_RESTART 471
651 < #define T_SERVICE 472
652 < #define T_SERVICES_NAME 473
653 < #define T_TIMESTAMP 474
654 < #define THROTTLE_TIME 475
665 < #define TOPICBURST 476
666 < #define TRUE_NO_OPER_FLOOD 477
667 < #define TKLINE 478
668 < #define TXLINE 479
669 < #define TRESV 480
670 < #define UNKLINE 481
671 < #define USER 482
672 < #define USE_EGD 483
673 < #define USE_EXCEPT 484
674 < #define USE_INVEX 485
675 < #define USE_KNOCK 486
676 < #define USE_LOGGING 487
677 < #define USE_WHOIS_ACTUALLY 488
678 < #define VHOST 489
679 < #define VHOST6 490
680 < #define XLINE 491
681 < #define WARN 492
682 < #define WARN_NO_NLINE 493
683 < #define T_SIZE 494
684 < #define T_FILE 495
685 <
438 > #define ADMIN 259
439 > #define AFTYPE 260
440 > #define ANTI_NICK_FLOOD 261
441 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
442 > #define AUTOCONN 263
443 > #define BYTES 264
444 > #define KBYTES 265
445 > #define MBYTES 266
446 > #define CALLER_ID_WAIT 267
447 > #define CAN_FLOOD 268
448 > #define CHANNEL 269
449 > #define CIDR_BITLEN_IPV4 270
450 > #define CIDR_BITLEN_IPV6 271
451 > #define CLASS 272
452 > #define CONNECT 273
453 > #define CONNECTFREQ 274
454 > #define DEFAULT_FLOODCOUNT 275
455 > #define DEFAULT_SPLIT_SERVER_COUNT 276
456 > #define DEFAULT_SPLIT_USER_COUNT 277
457 > #define DENY 278
458 > #define DESCRIPTION 279
459 > #define DIE 280
460 > #define DISABLE_AUTH 281
461 > #define DISABLE_FAKE_CHANNELS 282
462 > #define DISABLE_REMOTE_COMMANDS 283
463 > #define DOTS_IN_IDENT 284
464 > #define EGDPOOL_PATH 285
465 > #define EMAIL 286
466 > #define ENCRYPTED 287
467 > #define EXCEED_LIMIT 288
468 > #define EXEMPT 289
469 > #define FAILED_OPER_NOTICE 290
470 > #define IRCD_FLAGS 291
471 > #define FLATTEN_LINKS 292
472 > #define GECOS 293
473 > #define GENERAL 294
474 > #define GLINE 295
475 > #define GLINE_DURATION 296
476 > #define GLINE_ENABLE 297
477 > #define GLINE_EXEMPT 298
478 > #define GLINE_REQUEST_DURATION 299
479 > #define GLINE_MIN_CIDR 300
480 > #define GLINE_MIN_CIDR6 301
481 > #define GLOBAL_KILL 302
482 > #define IRCD_AUTH 303
483 > #define NEED_IDENT 304
484 > #define HAVENT_READ_CONF 305
485 > #define HIDDEN 306
486 > #define HIDDEN_NAME 307
487 > #define HIDE_SERVER_IPS 308
488 > #define HIDE_SERVERS 309
489 > #define HIDE_SERVICES 310
490 > #define HIDE_SPOOF_IPS 311
491 > #define HOST 312
492 > #define HUB 313
493 > #define HUB_MASK 314
494 > #define IGNORE_BOGUS_TS 315
495 > #define INVISIBLE_ON_CONNECT 316
496 > #define IP 317
497 > #define KILL 318
498 > #define KILL_CHASE_TIME_LIMIT 319
499 > #define KLINE 320
500 > #define KLINE_EXEMPT 321
501 > #define KNOCK_DELAY 322
502 > #define KNOCK_DELAY_CHANNEL 323
503 > #define LEAF_MASK 324
504 > #define LINKS_DELAY 325
505 > #define LISTEN 326
506 > #define T_LOG 327
507 > #define MASK 328
508 > #define MAX_ACCEPT 329
509 > #define MAX_BANS 330
510 > #define MAX_CHANS_PER_OPER 331
511 > #define MAX_CHANS_PER_USER 332
512 > #define MAX_GLOBAL 333
513 > #define MAX_IDENT 334
514 > #define MAX_LOCAL 335
515 > #define MAX_NICK_CHANGES 336
516 > #define MAX_NICK_LENGTH 337
517 > #define MAX_NICK_TIME 338
518 > #define MAX_NUMBER 339
519 > #define MAX_TARGETS 340
520 > #define MAX_TOPIC_LENGTH 341
521 > #define MAX_WATCH 342
522 > #define MIN_NONWILDCARD 343
523 > #define MIN_NONWILDCARD_SIMPLE 344
524 > #define MIN_IDLE 345
525 > #define MAX_IDLE 346
526 > #define RANDOM_IDLE 347
527 > #define HIDE_IDLE_FROM_OPERS 348
528 > #define MODULE 349
529 > #define MODULES 350
530 > #define NAME 351
531 > #define NEED_PASSWORD 352
532 > #define NETWORK_DESC 353
533 > #define NETWORK_NAME 354
534 > #define NICK 355
535 > #define NO_CREATE_ON_SPLIT 356
536 > #define NO_JOIN_ON_SPLIT 357
537 > #define NO_OPER_FLOOD 358
538 > #define NO_TILDE 359
539 > #define NUMBER 360
540 > #define NUMBER_PER_CIDR 361
541 > #define NUMBER_PER_IP 362
542 > #define OPERATOR 363
543 > #define OPERS_BYPASS_CALLERID 364
544 > #define OPER_ONLY_UMODES 365
545 > #define OPER_PASS_RESV 366
546 > #define OPER_UMODES 367
547 > #define JOIN_FLOOD_COUNT 368
548 > #define JOIN_FLOOD_TIME 369
549 > #define PACE_WAIT 370
550 > #define PACE_WAIT_SIMPLE 371
551 > #define PASSWORD 372
552 > #define PATH 373
553 > #define PING_COOKIE 374
554 > #define PING_TIME 375
555 > #define PORT 376
556 > #define QSTRING 377
557 > #define REASON 378
558 > #define REDIRPORT 379
559 > #define REDIRSERV 380
560 > #define REHASH 381
561 > #define REMOTE 382
562 > #define REMOTEBAN 383
563 > #define RSA_PRIVATE_KEY_FILE 384
564 > #define RSA_PUBLIC_KEY_FILE 385
565 > #define SSL_CERTIFICATE_FILE 386
566 > #define SSL_DH_PARAM_FILE 387
567 > #define T_SSL_CLIENT_METHOD 388
568 > #define T_SSL_SERVER_METHOD 389
569 > #define T_SSLV3 390
570 > #define T_TLSV1 391
571 > #define RESV 392
572 > #define RESV_EXEMPT 393
573 > #define SECONDS 394
574 > #define MINUTES 395
575 > #define HOURS 396
576 > #define DAYS 397
577 > #define WEEKS 398
578 > #define MONTHS 399
579 > #define YEARS 400
580 > #define SENDQ 401
581 > #define SEND_PASSWORD 402
582 > #define SERVERHIDE 403
583 > #define SERVERINFO 404
584 > #define IRCD_SID 405
585 > #define TKLINE_EXPIRE_NOTICES 406
586 > #define T_SHARED 407
587 > #define T_CLUSTER 408
588 > #define TYPE 409
589 > #define SHORT_MOTD 410
590 > #define SPOOF 411
591 > #define SPOOF_NOTICE 412
592 > #define STATS_E_DISABLED 413
593 > #define STATS_I_OPER_ONLY 414
594 > #define STATS_K_OPER_ONLY 415
595 > #define STATS_O_OPER_ONLY 416
596 > #define STATS_P_OPER_ONLY 417
597 > #define TBOOL 418
598 > #define TMASKED 419
599 > #define TS_MAX_DELTA 420
600 > #define TS_WARN_DELTA 421
601 > #define TWODOTS 422
602 > #define T_ALL 423
603 > #define T_BOTS 424
604 > #define T_SOFTCALLERID 425
605 > #define T_CALLERID 426
606 > #define T_CCONN 427
607 > #define T_CCONN_FULL 428
608 > #define T_SSL_CIPHER_LIST 429
609 > #define T_DEAF 430
610 > #define T_DEBUG 431
611 > #define T_DLINE 432
612 > #define T_EXTERNAL 433
613 > #define T_FARCONNECT 434
614 > #define T_FULL 435
615 > #define T_INVISIBLE 436
616 > #define T_IPV4 437
617 > #define T_IPV6 438
618 > #define T_LOCOPS 439
619 > #define T_MAX_CLIENTS 440
620 > #define T_NCHANGE 441
621 > #define T_NONONREG 442
622 > #define T_OPERWALL 443
623 > #define T_RECVQ 444
624 > #define T_REJ 445
625 > #define T_SERVER 446
626 > #define T_SERVNOTICE 447
627 > #define T_SET 448
628 > #define T_SKILL 449
629 > #define T_SPY 450
630 > #define T_SSL 451
631 > #define T_UMODES 452
632 > #define T_UNAUTH 453
633 > #define T_UNDLINE 454
634 > #define T_UNLIMITED 455
635 > #define T_UNRESV 456
636 > #define T_UNXLINE 457
637 > #define T_GLOBOPS 458
638 > #define T_WALLOP 459
639 > #define T_WEBIRC 460
640 > #define T_RESTART 461
641 > #define T_SERVICE 462
642 > #define T_SERVICES_NAME 463
643 > #define THROTTLE_TIME 464
644 > #define TRUE_NO_OPER_FLOOD 465
645 > #define UNKLINE 466
646 > #define USER 467
647 > #define USE_EGD 468
648 > #define USE_LOGGING 469
649 > #define VHOST 470
650 > #define VHOST6 471
651 > #define XLINE 472
652 > #define WARN_NO_NLINE 473
653 > #define T_SIZE 474
654 > #define T_FILE 475
655  
656  
657  
658   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
659   typedef union YYSTYPE
660   {
661 <
662 < /* Line 293 of yacc.c  */
694 < #line 133 "ircd_parser.y"
661 > /* Line 387 of yacc.c  */
662 > #line 138 "conf_parser.y"
663  
664    int number;
665    char *string;
666  
667  
668 <
669 < /* Line 293 of yacc.c  */
702 < #line 703 "ircd_parser.c"
668 > /* Line 387 of yacc.c  */
669 > #line 670 "conf_parser.c"
670   } YYSTYPE;
671   # define YYSTYPE_IS_TRIVIAL 1
672   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
673   # define YYSTYPE_IS_DECLARED 1
674   #endif
675  
676 + extern YYSTYPE yylval;
677  
678 < /* Copy the second part of user declarations.  */
678 > #ifdef YYPARSE_PARAM
679 > #if defined __STDC__ || defined __cplusplus
680 > int yyparse (void *YYPARSE_PARAM);
681 > #else
682 > int yyparse ();
683 > #endif
684 > #else /* ! YYPARSE_PARAM */
685 > #if defined __STDC__ || defined __cplusplus
686 > int yyparse (void);
687 > #else
688 > int yyparse ();
689 > #endif
690 > #endif /* ! YYPARSE_PARAM */
691  
692 + #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
693  
694 < /* Line 343 of yacc.c  */
695 < #line 715 "ircd_parser.c"
694 > /* Copy the second part of user declarations.  */
695 >
696 > /* Line 390 of yacc.c  */
697 > #line 698 "conf_parser.c"
698  
699   #ifdef short
700   # undef short
# Line 764 | Line 747 | typedef short int yytype_int16;
747   # if defined YYENABLE_NLS && YYENABLE_NLS
748   #  if ENABLE_NLS
749   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
750 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
750 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
751   #  endif
752   # endif
753   # ifndef YY_
754 < #  define YY_(msgid) msgid
754 > #  define YY_(Msgid) Msgid
755 > # endif
756 > #endif
757 >
758 > #ifndef __attribute__
759 > /* This feature is available in gcc versions 2.5 and later.  */
760 > # if (! defined __GNUC__ || __GNUC__ < 2 \
761 >      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
762 > #  define __attribute__(Spec) /* empty */
763   # endif
764   #endif
765  
766   /* Suppress unused-variable warnings by "using" E.  */
767   #if ! defined lint || defined __GNUC__
768 < # define YYUSE(e) ((void) (e))
768 > # define YYUSE(E) ((void) (E))
769   #else
770 < # define YYUSE(e) /* empty */
770 > # define YYUSE(E) /* empty */
771   #endif
772  
773 +
774   /* Identity function, used to suppress warnings about constant conditions.  */
775   #ifndef lint
776 < # define YYID(n) (n)
776 > # define YYID(N) (N)
777   #else
778   #if (defined __STDC__ || defined __C99__FUNC__ \
779       || defined __cplusplus || defined _MSC_VER)
# Line 817 | Line 809 | YYID (yyi)
809   #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
810       || defined __cplusplus || defined _MSC_VER)
811   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
812 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
813   #     ifndef EXIT_SUCCESS
814   #      define EXIT_SUCCESS 0
815   #     endif
# Line 908 | Line 901 | union yyalloc
901   #endif
902  
903   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
904 < /* Copy COUNT objects from FROM to TO.  The source and destination do
904 > /* Copy COUNT objects from SRC to DST.  The source and destination do
905     not overlap.  */
906   # ifndef YYCOPY
907   #  if defined __GNUC__ && 1 < __GNUC__
908 < #   define YYCOPY(To, From, Count) \
909 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
908 > #   define YYCOPY(Dst, Src, Count) \
909 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
910   #  else
911 < #   define YYCOPY(To, From, Count)              \
912 <      do                                        \
913 <        {                                       \
914 <          YYSIZE_T yyi;                         \
915 <          for (yyi = 0; yyi < (Count); yyi++)   \
916 <            (To)[yyi] = (From)[yyi];            \
917 <        }                                       \
911 > #   define YYCOPY(Dst, Src, Count)              \
912 >      do                                        \
913 >        {                                       \
914 >          YYSIZE_T yyi;                         \
915 >          for (yyi = 0; yyi < (Count); yyi++)   \
916 >            (Dst)[yyi] = (Src)[yyi];            \
917 >        }                                       \
918        while (YYID (0))
919   #  endif
920   # endif
# Line 930 | Line 923 | union yyalloc
923   /* YYFINAL -- State number of the termination state.  */
924   #define YYFINAL  2
925   /* YYLAST -- Last index in YYTABLE.  */
926 < #define YYLAST   1228
926 > #define YYLAST   1206
927  
928   /* YYNTOKENS -- Number of terminals.  */
929 < #define YYNTOKENS  246
929 > #define YYNTOKENS  226
930   /* YYNNTS -- Number of nonterminals.  */
931 < #define YYNNTS  304
931 > #define YYNNTS  280
932   /* YYNRULES -- Number of rules.  */
933 < #define YYNRULES  665
933 > #define YYNRULES  631
934   /* YYNRULES -- Number of states.  */
935 < #define YYNSTATES  1307
935 > #define YYNSTATES  1233
936  
937   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
938   #define YYUNDEFTOK  2
939 < #define YYMAXUTOK   495
939 > #define YYMAXUTOK   475
940  
941   #define YYTRANSLATE(YYX)                                                \
942    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 955 | Line 948 | static const yytype_uint8 yytranslate[]
948         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
949         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
950         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
951 <       2,     2,     2,     2,   245,     2,     2,     2,     2,     2,
952 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   241,
953 <       2,   244,     2,     2,     2,     2,     2,     2,     2,     2,
951 >       2,     2,     2,     2,   225,     2,     2,     2,     2,     2,
952 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   221,
953 >       2,   224,     2,     2,     2,     2,     2,     2,     2,     2,
954         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
955         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
956         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
957         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
958         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
959 <       2,     2,     2,   243,     2,   242,     2,     2,     2,     2,
959 >       2,     2,     2,   223,     2,   222,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 998 | Line 991 | static const yytype_uint8 yytranslate[]
991       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
992       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
993       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
994 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1002 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1003 <     235,   236,   237,   238,   239,   240
994 >     215,   216,   217,   218,   219,   220
995   };
996  
997   #if YYDEBUG
# Line 1010 | Line 1001 | static const yytype_uint16 yyprhs[] =
1001   {
1002         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1003        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1004 <      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
1005 <      61,    65,    69,    73,    77,    81,    82,    84,    87,    91,
1006 <      95,    99,   105,   108,   110,   112,   114,   117,   122,   127,
1007 <     133,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1008 <     154,   156,   158,   160,   162,   164,   166,   169,   170,   176,
1009 <     180,   182,   184,   186,   191,   196,   201,   206,   211,   216,
1010 <     221,   226,   231,   236,   241,   246,   251,   257,   260,   262,
1011 <     264,   266,   268,   271,   276,   281,   286,   292,   295,   297,
1012 <     299,   301,   303,   306,   311,   316,   317,   324,   327,   329,
1013 <     331,   333,   335,   338,   343,   348,   353,   354,   360,   364,
1014 <     366,   368,   370,   372,   374,   376,   378,   380,   381,   388,
1015 <     391,   393,   395,   397,   399,   401,   403,   405,   407,   409,
1016 <     412,   417,   422,   427,   432,   437,   442,   443,   449,   453,
1017 <     455,   457,   459,   461,   463,   465,   467,   469,   471,   473,
1018 <     475,   477,   479,   481,   483,   485,   487,   489,   491,   493,
1019 <     495,   496,   502,   506,   508,   510,   512,   514,   516,   518,
1020 <     520,   522,   524,   526,   528,   530,   532,   534,   536,   538,
1021 <     540,   542,   544,   545,   552,   555,   557,   559,   561,   563,
1022 <     565,   567,   569,   571,   573,   575,   577,   579,   581,   583,
1023 <     586,   591,   596,   601,   606,   611,   616,   621,   626,   631,
1024 <     636,   641,   646,   651,   652,   659,   660,   666,   670,   672,
1025 <     674,   676,   678,   681,   683,   685,   687,   689,   691,   694,
1026 <     695,   701,   705,   707,   709,   713,   718,   723,   724,   731,
1027 <     734,   736,   738,   740,   742,   744,   746,   748,   750,   752,
1028 <     755,   760,   765,   770,   775,   776,   782,   786,   788,   790,
1029 <     792,   794,   796,   798,   800,   802,   804,   806,   811,   816,
1030 <     821,   822,   829,   832,   834,   836,   838,   840,   843,   848,
1031 <     853,   858,   864,   867,   869,   871,   873,   878,   879,   886,
1032 <     889,   891,   893,   895,   897,   900,   905,   910,   911,   917,
1033 <     921,   923,   925,   927,   929,   931,   933,   935,   937,   939,
1034 <     941,   943,   944,   951,   954,   956,   958,   960,   963,   968,
1035 <     969,   975,   979,   981,   983,   985,   987,   989,   991,   993,
1036 <     995,   997,   999,  1001,  1002,  1009,  1012,  1014,  1016,  1018,
1037 <    1020,  1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,
1038 <    1040,  1043,  1048,  1053,  1058,  1063,  1068,  1073,  1078,  1083,
1039 <    1084,  1090,  1094,  1096,  1098,  1100,  1102,  1104,  1109,  1114,
1040 <    1119,  1124,  1129,  1130,  1137,  1138,  1144,  1148,  1150,  1152,
1041 <    1155,  1157,  1159,  1161,  1163,  1165,  1170,  1175,  1176,  1183,
1042 <    1186,  1188,  1190,  1192,  1194,  1199,  1204,  1210,  1213,  1215,
1043 <    1217,  1219,  1224,  1225,  1232,  1233,  1239,  1243,  1245,  1247,
1044 <    1250,  1252,  1254,  1256,  1258,  1260,  1265,  1270,  1276,  1279,
1045 <    1281,  1283,  1285,  1287,  1289,  1291,  1293,  1295,  1297,  1299,
1046 <    1301,  1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,
1047 <    1321,  1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,
1048 <    1341,  1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,
1049 <    1361,  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,
1050 <    1381,  1383,  1385,  1390,  1395,  1400,  1405,  1410,  1415,  1420,
1051 <    1425,  1430,  1435,  1440,  1445,  1450,  1455,  1460,  1465,  1470,
1052 <    1475,  1480,  1485,  1490,  1495,  1500,  1505,  1510,  1515,  1520,
1053 <    1525,  1530,  1535,  1540,  1545,  1550,  1555,  1560,  1565,  1570,
1054 <    1575,  1580,  1585,  1590,  1595,  1600,  1605,  1610,  1615,  1620,
1055 <    1621,  1627,  1631,  1633,  1635,  1637,  1639,  1641,  1643,  1645,
1056 <    1647,  1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,
1057 <    1667,  1669,  1671,  1673,  1674,  1680,  1684,  1686,  1688,  1690,
1058 <    1692,  1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,
1059 <    1712,  1714,  1716,  1718,  1720,  1722,  1724,  1726,  1731,  1736,
1060 <    1741,  1746,  1747,  1754,  1757,  1759,  1761,  1763,  1765,  1767,
1061 <    1769,  1771,  1773,  1778,  1783,  1784,  1790,  1794,  1796,  1798,
1062 <    1800,  1805,  1810,  1811,  1817,  1821,  1823,  1825,  1827,  1833,
1063 <    1836,  1838,  1840,  1842,  1844,  1846,  1848,  1850,  1852,  1854,
1064 <    1856,  1858,  1860,  1862,  1864,  1866,  1868,  1870,  1872,  1874,
1065 <    1876,  1881,  1886,  1891,  1896,  1901,  1906,  1911,  1916,  1921,
1075 <    1926,  1931,  1936,  1941,  1946,  1951,  1956,  1961,  1966,  1972,
1076 <    1975,  1977,  1979,  1981,  1983,  1985,  1987,  1989,  1991,  1993,
1077 <    1998,  2003,  2008,  2013,  2018,  2023
1004 >      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1005 >      63,    67,    71,    75,    79,    83,    87,    88,    90,    93,
1006 >      97,   101,   105,   111,   114,   116,   118,   120,   123,   128,
1007 >     133,   139,   142,   144,   146,   148,   150,   152,   154,   156,
1008 >     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1009 >     178,   181,   186,   191,   195,   197,   199,   201,   205,   207,
1010 >     209,   211,   216,   221,   226,   231,   236,   241,   246,   251,
1011 >     256,   261,   266,   271,   276,   281,   286,   292,   295,   297,
1012 >     299,   301,   303,   306,   311,   316,   321,   327,   330,   332,
1013 >     334,   336,   339,   344,   345,   352,   355,   357,   359,   361,
1014 >     363,   366,   371,   376,   381,   382,   388,   392,   394,   396,
1015 >     398,   400,   402,   404,   406,   408,   409,   416,   419,   421,
1016 >     423,   425,   427,   429,   431,   433,   435,   437,   440,   445,
1017 >     450,   455,   460,   465,   470,   471,   477,   481,   483,   485,
1018 >     487,   489,   491,   493,   495,   497,   499,   501,   503,   505,
1019 >     507,   509,   511,   513,   515,   517,   519,   521,   523,   525,
1020 >     527,   528,   534,   538,   540,   542,   544,   546,   548,   550,
1021 >     552,   554,   556,   558,   560,   562,   564,   566,   568,   570,
1022 >     572,   574,   575,   582,   585,   587,   589,   591,   593,   595,
1023 >     597,   599,   601,   603,   605,   607,   609,   611,   613,   615,
1024 >     617,   619,   622,   627,   632,   637,   642,   647,   652,   657,
1025 >     662,   667,   672,   677,   682,   687,   692,   697,   698,   704,
1026 >     708,   710,   712,   714,   715,   722,   723,   729,   733,   735,
1027 >     737,   739,   741,   744,   746,   748,   750,   752,   754,   757,
1028 >     758,   764,   768,   770,   772,   776,   781,   786,   787,   794,
1029 >     797,   799,   801,   803,   805,   807,   809,   811,   813,   815,
1030 >     818,   823,   828,   833,   838,   839,   845,   849,   851,   853,
1031 >     855,   857,   859,   861,   863,   865,   867,   869,   871,   876,
1032 >     881,   886,   887,   894,   897,   899,   901,   903,   905,   908,
1033 >     913,   918,   923,   929,   932,   934,   936,   938,   943,   944,
1034 >     951,   954,   956,   958,   960,   962,   965,   970,   975,   976,
1035 >     982,   986,   988,   990,   992,   994,   996,   998,  1000,  1002,
1036 >    1004,  1006,  1008,  1009,  1016,  1019,  1021,  1023,  1025,  1028,
1037 >    1033,  1034,  1040,  1044,  1046,  1048,  1050,  1052,  1054,  1056,
1038 >    1058,  1060,  1062,  1064,  1066,  1067,  1074,  1077,  1079,  1081,
1039 >    1083,  1085,  1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,
1040 >    1103,  1105,  1108,  1113,  1118,  1123,  1128,  1133,  1138,  1143,
1041 >    1148,  1149,  1155,  1159,  1161,  1163,  1165,  1170,  1175,  1180,
1042 >    1185,  1190,  1191,  1198,  1201,  1203,  1205,  1207,  1209,  1214,
1043 >    1219,  1220,  1227,  1230,  1232,  1234,  1236,  1238,  1243,  1248,
1044 >    1254,  1257,  1259,  1261,  1263,  1268,  1269,  1276,  1279,  1281,
1045 >    1283,  1285,  1287,  1292,  1297,  1303,  1306,  1308,  1310,  1312,
1046 >    1314,  1316,  1318,  1320,  1322,  1324,  1326,  1328,  1330,  1332,
1047 >    1334,  1336,  1338,  1340,  1342,  1344,  1346,  1348,  1350,  1352,
1048 >    1354,  1356,  1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,
1049 >    1374,  1376,  1378,  1380,  1382,  1384,  1386,  1388,  1390,  1392,
1050 >    1394,  1396,  1398,  1400,  1402,  1404,  1406,  1411,  1416,  1421,
1051 >    1426,  1431,  1436,  1441,  1446,  1451,  1456,  1461,  1466,  1471,
1052 >    1476,  1481,  1486,  1491,  1496,  1501,  1506,  1511,  1516,  1521,
1053 >    1526,  1531,  1536,  1541,  1546,  1551,  1556,  1561,  1566,  1571,
1054 >    1576,  1581,  1586,  1591,  1596,  1601,  1606,  1611,  1616,  1621,
1055 >    1626,  1631,  1632,  1638,  1642,  1644,  1646,  1648,  1650,  1652,
1056 >    1654,  1656,  1658,  1660,  1662,  1664,  1666,  1668,  1670,  1672,
1057 >    1674,  1676,  1678,  1680,  1682,  1684,  1686,  1688,  1689,  1695,
1058 >    1699,  1701,  1703,  1705,  1707,  1709,  1711,  1713,  1715,  1717,
1059 >    1719,  1721,  1723,  1725,  1727,  1729,  1731,  1733,  1735,  1737,
1060 >    1739,  1741,  1743,  1745,  1750,  1755,  1760,  1766,  1769,  1771,
1061 >    1773,  1775,  1777,  1779,  1781,  1783,  1785,  1787,  1789,  1791,
1062 >    1793,  1795,  1797,  1802,  1807,  1812,  1817,  1822,  1827,  1832,
1063 >    1837,  1842,  1847,  1852,  1857,  1863,  1866,  1868,  1870,  1872,
1064 >    1874,  1876,  1878,  1880,  1882,  1884,  1889,  1894,  1899,  1904,
1065 >    1909,  1914
1066   };
1067  
1068   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1069   static const yytype_int16 yyrhs[] =
1070   {
1071 <     247,     0,    -1,    -1,   247,   248,    -1,   278,    -1,   284,
1072 <      -1,   299,    -1,   519,    -1,   317,    -1,   334,    -1,   348,
1073 <      -1,   258,    -1,   540,    -1,   363,    -1,   370,    -1,   374,
1074 <      -1,   384,    -1,   393,    -1,   413,    -1,   423,    -1,   429,
1075 <      -1,   443,    -1,   503,    -1,   433,    -1,   253,    -1,     1,
1076 <     241,    -1,     1,   242,    -1,    -1,   250,    -1,   110,   249,
1077 <      -1,   110,   152,   249,    -1,   110,   153,   249,    -1,   110,
1078 <     154,   249,    -1,   110,   155,   249,    -1,   110,   156,   249,
1079 <      -1,    -1,   252,    -1,   110,   251,    -1,   110,    14,   251,
1080 <      -1,   110,    15,   251,    -1,   110,    16,   251,    -1,    99,
1081 <     243,   254,   242,   241,    -1,   254,   255,    -1,   255,    -1,
1082 <     256,    -1,   257,    -1,     1,   241,    -1,    98,   244,   131,
1083 <     241,    -1,   126,   244,   131,   241,    -1,   160,   243,   259,
1084 <     242,   241,    -1,   259,   260,    -1,   260,    -1,   269,    -1,
1085 <     274,    -1,   277,    -1,   271,    -1,   272,    -1,   273,    -1,
1086 <     276,    -1,   267,    -1,   266,    -1,   275,    -1,   270,    -1,
1087 <     265,    -1,   261,    -1,   268,    -1,     1,   241,    -1,    -1,
1088 <     147,   262,   244,   263,   241,    -1,   263,   245,   264,    -1,
1089 <     264,    -1,   148,    -1,   149,    -1,   145,   244,   131,   241,
1090 <      -1,   143,   244,   131,   241,    -1,   146,   244,   131,   241,
1091 <      -1,   187,   244,   131,   241,    -1,   100,   244,   131,   241,
1092 <      -1,   161,   244,   131,   241,    -1,    31,   244,   131,   241,
1093 <      -1,   103,   244,   131,   241,    -1,   102,   244,   131,   241,
1094 <      -1,   234,   244,   131,   241,    -1,   235,   244,   131,   241,
1095 <      -1,   199,   244,   110,   241,    -1,    67,   244,   175,   241,
1096 <      -1,     5,   243,   279,   242,   241,    -1,   279,   280,    -1,
1097 <     280,    -1,   281,    -1,   283,    -1,   282,    -1,     1,   241,
1098 <      -1,   100,   244,   131,   241,    -1,    41,   244,   131,   241,
1099 <      -1,    31,   244,   131,   241,    -1,    83,   243,   285,   242,
1100 <     241,    -1,   285,   286,    -1,   286,    -1,   287,    -1,   288,
1101 <      -1,   289,    -1,     1,   241,    -1,   232,   244,   175,   241,
1102 <      -1,   219,   244,   175,   241,    -1,    -1,   290,   240,   243,
1103 <     291,   242,   241,    -1,   291,   292,    -1,   292,    -1,   293,
1104 <      -1,   295,    -1,   294,    -1,     1,   241,    -1,   100,   244,
1105 <     131,   241,    -1,   239,   244,   252,   241,    -1,   239,   244,
1106 <     211,   241,    -1,    -1,   165,   296,   244,   297,   241,    -1,
1107 <     297,   245,   298,    -1,   298,    -1,   227,    -1,   115,    -1,
1108 <      51,    -1,   191,    -1,    74,    -1,    72,    -1,   190,    -1,
1109 <      -1,   115,   300,   243,   301,   242,   241,    -1,   301,   302,
1110 <      -1,   302,    -1,   303,    -1,   304,    -1,   305,    -1,   309,
1111 <      -1,   308,    -1,   306,    -1,   307,    -1,   313,    -1,     1,
1112 <     241,    -1,   100,   244,   131,   241,    -1,   227,   244,   131,
1113 <     241,    -1,   125,   244,   131,   241,    -1,    43,   244,   175,
1114 <     241,    -1,   144,   244,   131,   241,    -1,    24,   244,   131,
1115 <     241,    -1,    -1,   208,   310,   244,   311,   241,    -1,   311,
1116 <     245,   312,    -1,   312,    -1,   182,    -1,   185,    -1,   186,
1117 <      -1,   189,    -1,   190,    -1,   194,    -1,    61,    -1,   205,
1118 <      -1,   200,    -1,   202,    -1,   209,    -1,   206,    -1,   193,
1119 <      -1,   201,    -1,   204,    -1,   195,    -1,   215,    -1,   183,
1120 <      -1,   184,    -1,   198,    -1,    -1,    47,   314,   244,   315,
1121 <     241,    -1,   315,   245,   316,    -1,   316,    -1,    57,    -1,
1122 <     139,    -1,    74,    -1,   226,    -1,   191,    -1,   210,    -1,
1123 <     236,    -1,    51,    -1,    32,    -1,   216,    -1,   137,    -1,
1124 <       5,    -1,   105,    -1,   201,    -1,   214,    -1,   119,    -1,
1125 <     140,    -1,    98,    -1,    -1,    24,   318,   243,   319,   242,
1126 <     241,    -1,   319,   320,    -1,   320,    -1,   321,    -1,   331,
1127 <      -1,   332,    -1,   322,    -1,   323,    -1,   333,    -1,   324,
1128 <      -1,   325,    -1,   326,    -1,   327,    -1,   328,    -1,   329,
1129 <      -1,   330,    -1,     1,   241,    -1,   100,   244,   131,   241,
1130 <      -1,   128,   244,   250,   241,    -1,   129,   244,   250,   241,
1131 <      -1,   113,   244,   110,   241,    -1,    26,   244,   250,   241,
1132 <      -1,    92,   244,   110,   241,    -1,    87,   244,   110,   241,
1133 <      -1,    89,   244,   110,   241,    -1,    88,   244,   110,   241,
1134 <      -1,   157,   244,   252,   241,    -1,    22,   244,   110,   241,
1135 <      -1,    23,   244,   110,   241,    -1,   112,   244,   110,   241,
1136 <      -1,    -1,    82,   335,   243,   340,   242,   241,    -1,    -1,
1137 <      47,   337,   244,   338,   241,    -1,   338,   245,   339,    -1,
1138 <     339,    -1,   207,    -1,    61,    -1,   203,    -1,   340,   341,
1139 <      -1,   341,    -1,   342,    -1,   336,    -1,   346,    -1,   347,
1140 <      -1,     1,   241,    -1,    -1,   130,   244,   344,   343,   241,
1141 <      -1,   344,   245,   345,    -1,   345,    -1,   110,    -1,   110,
1142 <     180,   110,    -1,    71,   244,   131,   241,    -1,    66,   244,
1143 <     131,   241,    -1,    -1,    58,   349,   243,   350,   242,   241,
1144 <      -1,   350,   351,    -1,   351,    -1,   352,    -1,   353,    -1,
1145 <     354,    -1,   356,    -1,   360,    -1,   361,    -1,   362,    -1,
1146 <     355,    -1,     1,   241,    -1,   227,   244,   131,   241,    -1,
1147 <     125,   244,   131,   241,    -1,    24,   244,   131,   241,    -1,
1148 <      43,   244,   175,   241,    -1,    -1,    47,   357,   244,   358,
1149 <     241,    -1,   358,   245,   359,    -1,   359,    -1,   169,    -1,
1150 <      44,    -1,    75,    -1,    59,    -1,    20,    -1,   109,    -1,
1151 <      53,    -1,   151,    -1,   101,    -1,   168,   244,   131,   241,
1152 <      -1,   135,   244,   131,   241,    -1,   134,   244,   110,   241,
1153 <      -1,    -1,   150,   364,   243,   365,   242,   241,    -1,   365,
1154 <     366,    -1,   366,    -1,   367,    -1,   368,    -1,   369,    -1,
1155 <       1,   241,    -1,   133,   244,   131,   241,    -1,    21,   244,
1156 <     131,   241,    -1,   104,   244,   131,   241,    -1,   217,   243,
1157 <     371,   242,   241,    -1,   371,   372,    -1,   372,    -1,   373,
1158 <      -1,     1,    -1,   100,   244,   131,   241,    -1,    -1,   163,
1159 <     375,   243,   376,   242,   241,    -1,   376,   377,    -1,   377,
1160 <      -1,   378,    -1,   379,    -1,   380,    -1,     1,   241,    -1,
1161 <     100,   244,   131,   241,    -1,   227,   244,   131,   241,    -1,
1162 <      -1,   165,   381,   244,   382,   241,    -1,   382,   245,   383,
1163 <      -1,   383,    -1,    74,    -1,   226,    -1,   191,    -1,   210,
1164 <      -1,   236,    -1,   213,    -1,   150,    -1,   212,    -1,   198,
1165 <      -1,   181,    -1,    -1,   164,   385,   243,   386,   242,   241,
1166 <      -1,   386,   387,    -1,   387,    -1,   388,    -1,   389,    -1,
1167 <       1,   241,    -1,   100,   244,   131,   241,    -1,    -1,   165,
1168 <     390,   244,   391,   241,    -1,   391,   245,   392,    -1,   392,
1169 <      -1,    74,    -1,   226,    -1,   191,    -1,   210,    -1,   236,
1170 <      -1,   213,    -1,   150,    -1,   212,    -1,   198,    -1,   181,
1171 <      -1,    -1,    25,   394,   243,   395,   242,   241,    -1,   395,
1172 <     396,    -1,   396,    -1,   397,    -1,   398,    -1,   399,    -1,
1173 <     400,    -1,   401,    -1,   403,    -1,   402,    -1,   412,    -1,
1174 <     404,    -1,   409,    -1,   410,    -1,   411,    -1,   408,    -1,
1175 <       1,   241,    -1,   100,   244,   131,   241,    -1,    66,   244,
1176 <     131,   241,    -1,   234,   244,   131,   241,    -1,   158,   244,
1177 <     131,   241,    -1,     3,   244,   131,   241,    -1,   130,   244,
1178 <     110,   241,    -1,     6,   244,   196,   241,    -1,     6,   244,
1179 <     197,   241,    -1,    -1,    47,   405,   244,   406,   241,    -1,
1180 <     406,   245,   407,    -1,   407,    -1,    10,    -1,    12,    -1,
1181 <     221,    -1,   207,    -1,    43,   244,   175,   241,    -1,    68,
1182 <     244,   131,   241,    -1,    80,   244,   131,   241,    -1,    24,
1183 <     244,   131,   241,    -1,   187,   244,   131,   241,    -1,    -1,
1184 <      72,   414,   243,   419,   242,   241,    -1,    -1,   165,   416,
1185 <     244,   417,   241,    -1,   417,   245,   418,    -1,   418,    -1,
1186 <     136,    -1,   419,   420,    -1,   420,    -1,   421,    -1,   422,
1187 <      -1,   415,    -1,     1,    -1,   227,   244,   131,   241,    -1,
1188 <     133,   244,   131,   241,    -1,    -1,    30,   424,   243,   425,
1189 <     242,   241,    -1,   425,   426,    -1,   426,    -1,   427,    -1,
1190 <     428,    -1,     1,    -1,    71,   244,   131,   241,    -1,   133,
1191 <     244,   131,   241,    -1,    45,   243,   430,   242,   241,    -1,
1192 <     430,   431,    -1,   431,    -1,   432,    -1,     1,    -1,    71,
1193 <     244,   131,   241,    -1,    -1,    49,   434,   243,   439,   242,
1194 <     241,    -1,    -1,   165,   436,   244,   437,   241,    -1,   437,
1195 <     245,   438,    -1,   438,    -1,   136,    -1,   439,   440,    -1,
1196 <     440,    -1,   441,    -1,   442,    -1,   435,    -1,     1,    -1,
1197 <     100,   244,   131,   241,    -1,   133,   244,   131,   241,    -1,
1198 <      50,   243,   444,   242,   241,    -1,   444,   445,    -1,   445,
1199 <      -1,   453,    -1,   454,    -1,   456,    -1,   457,    -1,   458,
1200 <      -1,   459,    -1,   460,    -1,   461,    -1,   462,    -1,   463,
1201 <      -1,   452,    -1,   465,    -1,   466,    -1,   467,    -1,   468,
1202 <      -1,   483,    -1,   470,    -1,   472,    -1,   474,    -1,   473,
1203 <      -1,   477,    -1,   471,    -1,   478,    -1,   479,    -1,   480,
1204 <      -1,   481,    -1,   482,    -1,   495,    -1,   484,    -1,   485,
1205 <      -1,   486,    -1,   491,    -1,   475,    -1,   476,    -1,   501,
1206 <      -1,   499,    -1,   500,    -1,   455,    -1,   502,    -1,   490,
1207 <      -1,   464,    -1,   488,    -1,   489,    -1,   451,    -1,   447,
1208 <      -1,   448,    -1,   449,    -1,   450,    -1,   469,    -1,   446,
1209 <      -1,   487,    -1,     1,    -1,    94,   244,   110,   241,    -1,
1210 <      55,   244,   110,   241,    -1,    56,   244,   110,   241,    -1,
1211 <     233,   244,   175,   241,    -1,   138,   244,   250,   241,    -1,
1212 <     162,   244,   175,   241,    -1,    73,   244,   250,   241,    -1,
1213 <      65,   244,   175,   241,    -1,    69,   244,   175,   241,    -1,
1214 <      37,   244,   175,   241,    -1,    46,   244,   175,   241,    -1,
1215 <       8,   244,   175,   241,    -1,    91,   244,   250,   241,    -1,
1216 <      90,   244,   110,   241,    -1,    84,   244,   110,   241,    -1,
1217 <       9,   244,   250,   241,    -1,   179,   244,   250,   241,    -1,
1218 <     178,   244,   250,   241,    -1,    60,   244,   110,   241,    -1,
1219 <      77,   244,   175,   241,    -1,    76,   244,   131,   241,    -1,
1220 <      70,   244,   175,   241,    -1,   238,   244,   175,   241,    -1,
1221 <     170,   244,   175,   241,    -1,   173,   244,   175,   241,    -1,
1222 <     174,   244,   175,   241,    -1,   172,   244,   175,   241,    -1,
1223 <     172,   244,   176,   241,    -1,   171,   244,   175,   241,    -1,
1224 <     171,   244,   176,   241,    -1,   123,   244,   250,   241,    -1,
1225 <      19,   244,   250,   241,    -1,   116,   244,   175,   241,    -1,
1226 <     124,   244,   250,   241,    -1,   166,   244,   175,   241,    -1,
1227 <     108,   244,   175,   241,    -1,   222,   244,   175,   241,    -1,
1228 <     118,   244,   175,   241,    -1,    95,   244,   131,   241,    -1,
1229 <      38,   244,   110,   241,    -1,    93,   244,   110,   241,    -1,
1230 <     228,   244,   175,   241,    -1,    40,   244,   131,   241,    -1,
1231 <     218,   244,   131,   241,    -1,   127,   244,   175,   241,    -1,
1232 <      33,   244,   175,   241,    -1,   220,   244,   250,   241,    -1,
1233 <      -1,   120,   492,   244,   493,   241,    -1,   493,   245,   494,
1234 <      -1,   494,    -1,   182,    -1,   185,    -1,   186,    -1,   189,
1235 <      -1,   190,    -1,   194,    -1,    61,    -1,   205,    -1,   200,
1236 <      -1,   202,    -1,   209,    -1,   206,    -1,   193,    -1,   201,
1237 <      -1,   204,    -1,   195,    -1,   215,    -1,   183,    -1,   184,
1238 <      -1,   198,    -1,    -1,   117,   496,   244,   497,   241,    -1,
1239 <     497,   245,   498,    -1,   498,    -1,   182,    -1,   185,    -1,
1240 <     186,    -1,   189,    -1,   190,    -1,   194,    -1,   205,    -1,
1241 <      61,    -1,   200,    -1,   202,    -1,   209,    -1,   206,    -1,
1242 <     193,    -1,   201,    -1,   204,    -1,   195,    -1,   215,    -1,
1243 <     183,    -1,   184,    -1,   198,    -1,    96,   244,   110,   241,
1244 <      -1,    97,   244,   110,   241,    -1,    27,   244,   110,   241,
1245 <      -1,   188,   244,   252,   241,    -1,    -1,    52,   504,   243,
1246 <     505,   242,   241,    -1,   505,   506,    -1,   506,    -1,   507,
1247 <      -1,   508,    -1,   509,    -1,   513,    -1,   514,    -1,   515,
1248 <      -1,     1,    -1,    42,   244,   175,   241,    -1,    39,   244,
1249 <     250,   241,    -1,    -1,    83,   510,   244,   511,   241,    -1,
1250 <     511,   245,   512,    -1,   512,    -1,   177,    -1,    11,    -1,
1251 <     227,   244,   131,   241,    -1,   100,   244,   131,   241,    -1,
1252 <      -1,     4,   516,   244,   517,   241,    -1,   517,   245,   518,
1253 <      -1,   518,    -1,   177,    -1,    11,    -1,    21,   243,   520,
1254 <     242,   241,    -1,   520,   521,    -1,   521,    -1,   524,    -1,
1255 <     525,    -1,   526,    -1,   527,    -1,   532,    -1,   528,    -1,
1256 <     529,    -1,   530,    -1,   531,    -1,   533,    -1,   534,    -1,
1257 <     535,    -1,   523,    -1,   536,    -1,   537,    -1,   538,    -1,
1258 <     539,    -1,   522,    -1,     1,    -1,    34,   244,   175,   241,
1259 <      -1,   141,   244,   175,   241,    -1,    36,   244,   175,   241,
1260 <      -1,   229,   244,   175,   241,    -1,   230,   244,   175,   241,
1261 <      -1,   231,   244,   175,   241,    -1,    78,   244,   250,   241,
1262 <      -1,    79,   244,   250,   241,    -1,    86,   244,   110,   241,
1275 <      -1,   132,   244,   175,   241,    -1,    85,   244,   110,   241,
1276 <      -1,    29,   244,   110,   241,    -1,    28,   244,   110,   241,
1277 <      -1,   106,   244,   175,   241,    -1,   107,   244,   175,   241,
1278 <      -1,    13,   244,   175,   241,    -1,   121,   244,   110,   241,
1279 <      -1,   122,   244,   250,   241,    -1,   159,   243,   541,   242,
1280 <     241,    -1,   541,   542,    -1,   542,    -1,   543,    -1,   544,
1281 <      -1,   546,    -1,   548,    -1,   547,    -1,   545,    -1,   549,
1282 <      -1,     1,    -1,    48,   244,   175,   241,    -1,    64,   244,
1283 <     175,   241,    -1,    62,   244,   131,   241,    -1,    81,   244,
1284 <     250,   241,    -1,    61,   244,   175,   241,    -1,    35,   244,
1285 <     175,   241,    -1,    63,   244,   175,   241,    -1
1071 >     227,     0,    -1,    -1,   227,   228,    -1,   262,    -1,   268,
1072 >      -1,   282,    -1,   481,    -1,   300,    -1,   323,    -1,   337,
1073 >      -1,   238,    -1,   496,    -1,   352,    -1,   359,    -1,   363,
1074 >      -1,   373,    -1,   382,    -1,   402,    -1,   408,    -1,   414,
1075 >      -1,   424,    -1,   418,    -1,   233,    -1,     1,   221,    -1,
1076 >       1,   222,    -1,    -1,   230,    -1,   105,   229,    -1,   105,
1077 >     139,   229,    -1,   105,   140,   229,    -1,   105,   141,   229,
1078 >      -1,   105,   142,   229,    -1,   105,   143,   229,    -1,   105,
1079 >     144,   229,    -1,   105,   145,   229,    -1,    -1,   232,    -1,
1080 >     105,   231,    -1,   105,     9,   231,    -1,   105,    10,   231,
1081 >      -1,   105,    11,   231,    -1,    95,   223,   234,   222,   221,
1082 >      -1,   234,   235,    -1,   235,    -1,   236,    -1,   237,    -1,
1083 >       1,   221,    -1,    94,   224,   122,   221,    -1,   118,   224,
1084 >     122,   221,    -1,   149,   223,   239,   222,   221,    -1,   239,
1085 >     240,    -1,   240,    -1,   251,    -1,   256,    -1,   261,    -1,
1086 >     253,    -1,   254,    -1,   255,    -1,   258,    -1,   259,    -1,
1087 >     260,    -1,   249,    -1,   248,    -1,   257,    -1,   252,    -1,
1088 >     247,    -1,   241,    -1,   242,    -1,   250,    -1,     1,   221,
1089 >      -1,   133,   224,   243,   221,    -1,   134,   224,   245,   221,
1090 >      -1,   243,   225,   244,    -1,   244,    -1,   135,    -1,   136,
1091 >      -1,   245,   225,   246,    -1,   246,    -1,   135,    -1,   136,
1092 >      -1,   131,   224,   122,   221,    -1,   129,   224,   122,   221,
1093 >      -1,   132,   224,   122,   221,    -1,   174,   224,   122,   221,
1094 >      -1,    96,   224,   122,   221,    -1,   150,   224,   122,   221,
1095 >      -1,    24,   224,   122,   221,    -1,    99,   224,   122,   221,
1096 >      -1,    98,   224,   122,   221,    -1,   215,   224,   122,   221,
1097 >      -1,   216,   224,   122,   221,    -1,   185,   224,   105,   221,
1098 >      -1,    82,   224,   105,   221,    -1,    86,   224,   105,   221,
1099 >      -1,    58,   224,   163,   221,    -1,     4,   223,   263,   222,
1100 >     221,    -1,   263,   264,    -1,   264,    -1,   265,    -1,   267,
1101 >      -1,   266,    -1,     1,   221,    -1,    96,   224,   122,   221,
1102 >      -1,    31,   224,   122,   221,    -1,    24,   224,   122,   221,
1103 >      -1,    72,   223,   269,   222,   221,    -1,   269,   270,    -1,
1104 >     270,    -1,   271,    -1,   272,    -1,     1,   221,    -1,   214,
1105 >     224,   163,   221,    -1,    -1,   273,   220,   223,   274,   222,
1106 >     221,    -1,   274,   275,    -1,   275,    -1,   276,    -1,   278,
1107 >      -1,   277,    -1,     1,   221,    -1,    96,   224,   122,   221,
1108 >      -1,   219,   224,   232,   221,    -1,   219,   224,   200,   221,
1109 >      -1,    -1,   154,   279,   224,   280,   221,    -1,   280,   225,
1110 >     281,    -1,   281,    -1,   212,    -1,   108,    -1,    40,    -1,
1111 >     177,    -1,    65,    -1,    63,    -1,   176,    -1,    -1,   108,
1112 >     283,   223,   284,   222,   221,    -1,   284,   285,    -1,   285,
1113 >      -1,   286,    -1,   287,    -1,   288,    -1,   292,    -1,   291,
1114 >      -1,   289,    -1,   290,    -1,   296,    -1,     1,   221,    -1,
1115 >      96,   224,   122,   221,    -1,   212,   224,   122,   221,    -1,
1116 >     117,   224,   122,   221,    -1,    32,   224,   163,   221,    -1,
1117 >     130,   224,   122,   221,    -1,    17,   224,   122,   221,    -1,
1118 >      -1,   197,   293,   224,   294,   221,    -1,   294,   225,   295,
1119 >      -1,   295,    -1,   169,    -1,   172,    -1,   173,    -1,   175,
1120 >      -1,   176,    -1,   180,    -1,    51,    -1,   194,    -1,   186,
1121 >      -1,   190,    -1,   198,    -1,   195,    -1,   178,    -1,   188,
1122 >      -1,   192,    -1,   181,    -1,   204,    -1,   170,    -1,   171,
1123 >      -1,   184,    -1,   187,    -1,   179,    -1,    -1,    36,   297,
1124 >     224,   298,   221,    -1,   298,   225,   299,    -1,   299,    -1,
1125 >      47,    -1,   127,    -1,    65,    -1,   211,    -1,   177,    -1,
1126 >     199,    -1,   217,    -1,    40,    -1,    25,    -1,   206,    -1,
1127 >     126,    -1,     4,    -1,   188,    -1,   203,    -1,   128,    -1,
1128 >     193,    -1,    94,    -1,    -1,    17,   301,   223,   302,   222,
1129 >     221,    -1,   302,   303,    -1,   303,    -1,   304,    -1,   314,
1130 >      -1,   315,    -1,   305,    -1,   316,    -1,   306,    -1,   307,
1131 >      -1,   308,    -1,   309,    -1,   310,    -1,   311,    -1,   312,
1132 >      -1,   313,    -1,   317,    -1,   318,    -1,   319,    -1,     1,
1133 >     221,    -1,    96,   224,   122,   221,    -1,   120,   224,   230,
1134 >     221,    -1,   107,   224,   105,   221,    -1,    19,   224,   230,
1135 >     221,    -1,    84,   224,   105,   221,    -1,    78,   224,   105,
1136 >     221,    -1,    80,   224,   105,   221,    -1,    79,   224,   105,
1137 >     221,    -1,   146,   224,   232,   221,    -1,   189,   224,   232,
1138 >     221,    -1,    15,   224,   105,   221,    -1,    16,   224,   105,
1139 >     221,    -1,   106,   224,   105,   221,    -1,    90,   224,   230,
1140 >     221,    -1,    91,   224,   230,   221,    -1,    -1,    36,   320,
1141 >     224,   321,   221,    -1,   321,   225,   322,    -1,   322,    -1,
1142 >      92,    -1,    93,    -1,    -1,    71,   324,   223,   329,   222,
1143 >     221,    -1,    -1,    36,   326,   224,   327,   221,    -1,   327,
1144 >     225,   328,    -1,   328,    -1,   196,    -1,    51,    -1,   191,
1145 >      -1,   329,   330,    -1,   330,    -1,   331,    -1,   325,    -1,
1146 >     335,    -1,   336,    -1,     1,   221,    -1,    -1,   121,   224,
1147 >     333,   332,   221,    -1,   333,   225,   334,    -1,   334,    -1,
1148 >     105,    -1,   105,   167,   105,    -1,    62,   224,   122,   221,
1149 >      -1,    57,   224,   122,   221,    -1,    -1,    48,   338,   223,
1150 >     339,   222,   221,    -1,   339,   340,    -1,   340,    -1,   341,
1151 >      -1,   342,    -1,   343,    -1,   345,    -1,   349,    -1,   350,
1152 >      -1,   351,    -1,   344,    -1,     1,   221,    -1,   212,   224,
1153 >     122,   221,    -1,   117,   224,   122,   221,    -1,    17,   224,
1154 >     122,   221,    -1,    32,   224,   163,   221,    -1,    -1,    36,
1155 >     346,   224,   347,   221,    -1,   347,   225,   348,    -1,   348,
1156 >      -1,   157,    -1,    33,    -1,    66,    -1,    49,    -1,    13,
1157 >      -1,   104,    -1,    43,    -1,   138,    -1,   205,    -1,    97,
1158 >      -1,   156,   224,   122,   221,    -1,   125,   224,   122,   221,
1159 >      -1,   124,   224,   105,   221,    -1,    -1,   137,   353,   223,
1160 >     354,   222,   221,    -1,   354,   355,    -1,   355,    -1,   356,
1161 >      -1,   357,    -1,   358,    -1,     1,   221,    -1,    73,   224,
1162 >     122,   221,    -1,   123,   224,   122,   221,    -1,    34,   224,
1163 >     122,   221,    -1,   207,   223,   360,   222,   221,    -1,   360,
1164 >     361,    -1,   361,    -1,   362,    -1,     1,    -1,    96,   224,
1165 >     122,   221,    -1,    -1,   152,   364,   223,   365,   222,   221,
1166 >      -1,   365,   366,    -1,   366,    -1,   367,    -1,   368,    -1,
1167 >     369,    -1,     1,   221,    -1,    96,   224,   122,   221,    -1,
1168 >     212,   224,   122,   221,    -1,    -1,   154,   370,   224,   371,
1169 >     221,    -1,   371,   225,   372,    -1,   372,    -1,    65,    -1,
1170 >     211,    -1,   177,    -1,   199,    -1,   217,    -1,   202,    -1,
1171 >     137,    -1,   201,    -1,   184,    -1,   168,    -1,    -1,   153,
1172 >     374,   223,   375,   222,   221,    -1,   375,   376,    -1,   376,
1173 >      -1,   377,    -1,   378,    -1,     1,   221,    -1,    96,   224,
1174 >     122,   221,    -1,    -1,   154,   379,   224,   380,   221,    -1,
1175 >     380,   225,   381,    -1,   381,    -1,    65,    -1,   211,    -1,
1176 >     177,    -1,   199,    -1,   217,    -1,   202,    -1,   137,    -1,
1177 >     201,    -1,   184,    -1,   168,    -1,    -1,    18,   383,   223,
1178 >     384,   222,   221,    -1,   384,   385,    -1,   385,    -1,   386,
1179 >      -1,   387,    -1,   388,    -1,   389,    -1,   390,    -1,   392,
1180 >      -1,   391,    -1,   401,    -1,   393,    -1,   398,    -1,   399,
1181 >      -1,   400,    -1,   397,    -1,     1,   221,    -1,    96,   224,
1182 >     122,   221,    -1,    57,   224,   122,   221,    -1,   215,   224,
1183 >     122,   221,    -1,   147,   224,   122,   221,    -1,     3,   224,
1184 >     122,   221,    -1,   121,   224,   105,   221,    -1,     5,   224,
1185 >     182,   221,    -1,     5,   224,   183,   221,    -1,    -1,    36,
1186 >     394,   224,   395,   221,    -1,   395,   225,   396,    -1,   396,
1187 >      -1,     8,    -1,   196,    -1,    32,   224,   163,   221,    -1,
1188 >      59,   224,   122,   221,    -1,    69,   224,   122,   221,    -1,
1189 >      17,   224,   122,   221,    -1,   174,   224,   122,   221,    -1,
1190 >      -1,    63,   403,   223,   404,   222,   221,    -1,   404,   405,
1191 >      -1,   405,    -1,   406,    -1,   407,    -1,     1,    -1,   212,
1192 >     224,   122,   221,    -1,   123,   224,   122,   221,    -1,    -1,
1193 >      23,   409,   223,   410,   222,   221,    -1,   410,   411,    -1,
1194 >     411,    -1,   412,    -1,   413,    -1,     1,    -1,    62,   224,
1195 >     122,   221,    -1,   123,   224,   122,   221,    -1,    34,   223,
1196 >     415,   222,   221,    -1,   415,   416,    -1,   416,    -1,   417,
1197 >      -1,     1,    -1,    62,   224,   122,   221,    -1,    -1,    38,
1198 >     419,   223,   420,   222,   221,    -1,   420,   421,    -1,   421,
1199 >      -1,   422,    -1,   423,    -1,     1,    -1,    96,   224,   122,
1200 >     221,    -1,   123,   224,   122,   221,    -1,    39,   223,   425,
1201 >     222,   221,    -1,   425,   426,    -1,   426,    -1,   435,    -1,
1202 >     436,    -1,   438,    -1,   439,    -1,   440,    -1,   441,    -1,
1203 >     442,    -1,   443,    -1,   444,    -1,   445,    -1,   434,    -1,
1204 >     447,    -1,   448,    -1,   462,    -1,   450,    -1,   452,    -1,
1205 >     454,    -1,   453,    -1,   457,    -1,   451,    -1,   458,    -1,
1206 >     459,    -1,   460,    -1,   461,    -1,   474,    -1,   463,    -1,
1207 >     464,    -1,   465,    -1,   470,    -1,   455,    -1,   456,    -1,
1208 >     480,    -1,   478,    -1,   479,    -1,   437,    -1,   469,    -1,
1209 >     446,    -1,   467,    -1,   468,    -1,   433,    -1,   428,    -1,
1210 >     429,    -1,   430,    -1,   431,    -1,   432,    -1,   449,    -1,
1211 >     427,    -1,   466,    -1,     1,    -1,    87,   224,   105,   221,
1212 >      -1,    42,   224,   163,   221,    -1,    41,   224,   230,   221,
1213 >      -1,    44,   224,   230,   221,    -1,    45,   224,   105,   221,
1214 >      -1,    46,   224,   105,   221,    -1,   151,   224,   163,   221,
1215 >      -1,    64,   224,   230,   221,    -1,    56,   224,   163,   221,
1216 >      -1,    60,   224,   163,   221,    -1,    28,   224,   163,   221,
1217 >      -1,    35,   224,   163,   221,    -1,     6,   224,   163,   221,
1218 >      -1,    83,   224,   230,   221,    -1,    81,   224,   105,   221,
1219 >      -1,    74,   224,   105,   221,    -1,     7,   224,   230,   221,
1220 >      -1,   166,   224,   230,   221,    -1,   165,   224,   230,   221,
1221 >      -1,    50,   224,   105,   221,    -1,    61,   224,   163,   221,
1222 >      -1,   218,   224,   163,   221,    -1,   158,   224,   163,   221,
1223 >      -1,   161,   224,   163,   221,    -1,   162,   224,   163,   221,
1224 >      -1,   160,   224,   163,   221,    -1,   160,   224,   164,   221,
1225 >      -1,   159,   224,   163,   221,    -1,   159,   224,   164,   221,
1226 >      -1,   115,   224,   230,   221,    -1,    12,   224,   230,   221,
1227 >      -1,   109,   224,   163,   221,    -1,   116,   224,   230,   221,
1228 >      -1,   155,   224,   163,   221,    -1,   103,   224,   163,   221,
1229 >      -1,   210,   224,   163,   221,    -1,   111,   224,   163,   221,
1230 >      -1,    29,   224,   105,   221,    -1,    85,   224,   105,   221,
1231 >      -1,   213,   224,   163,   221,    -1,    30,   224,   122,   221,
1232 >      -1,   208,   224,   122,   221,    -1,   119,   224,   163,   221,
1233 >      -1,    26,   224,   163,   221,    -1,   209,   224,   230,   221,
1234 >      -1,    -1,   112,   471,   224,   472,   221,    -1,   472,   225,
1235 >     473,    -1,   473,    -1,   169,    -1,   172,    -1,   173,    -1,
1236 >     175,    -1,   176,    -1,   180,    -1,    51,    -1,   194,    -1,
1237 >     186,    -1,   190,    -1,   198,    -1,   195,    -1,   178,    -1,
1238 >     188,    -1,   192,    -1,   181,    -1,   204,    -1,   170,    -1,
1239 >     171,    -1,   184,    -1,   187,    -1,   179,    -1,    -1,   110,
1240 >     475,   224,   476,   221,    -1,   476,   225,   477,    -1,   477,
1241 >      -1,   169,    -1,   172,    -1,   173,    -1,   175,    -1,   176,
1242 >      -1,   180,    -1,   194,    -1,    51,    -1,   186,    -1,   190,
1243 >      -1,   198,    -1,   195,    -1,   178,    -1,   188,    -1,   192,
1244 >      -1,   181,    -1,   204,    -1,   170,    -1,   171,    -1,   184,
1245 >      -1,   187,    -1,   179,    -1,    88,   224,   105,   221,    -1,
1246 >      89,   224,   105,   221,    -1,    20,   224,   105,   221,    -1,
1247 >      14,   223,   482,   222,   221,    -1,   482,   483,    -1,   483,
1248 >      -1,   489,    -1,   485,    -1,   486,    -1,   487,    -1,   488,
1249 >      -1,   490,    -1,   491,    -1,   492,    -1,   493,    -1,   494,
1250 >      -1,   495,    -1,   484,    -1,     1,    -1,    27,   224,   163,
1251 >     221,    -1,    67,   224,   230,   221,    -1,    68,   224,   230,
1252 >     221,    -1,    77,   224,   105,   221,    -1,    76,   224,   105,
1253 >     221,    -1,    75,   224,   105,   221,    -1,    22,   224,   105,
1254 >     221,    -1,    21,   224,   105,   221,    -1,   101,   224,   163,
1255 >     221,    -1,   102,   224,   163,   221,    -1,   113,   224,   105,
1256 >     221,    -1,   114,   224,   230,   221,    -1,   148,   223,   497,
1257 >     222,   221,    -1,   497,   498,    -1,   498,    -1,   499,    -1,
1258 >     500,    -1,   501,    -1,   503,    -1,   504,    -1,   502,    -1,
1259 >     505,    -1,     1,    -1,    37,   224,   163,   221,    -1,    54,
1260 >     224,   163,   221,    -1,    55,   224,   163,   221,    -1,    52,
1261 >     224,   122,   221,    -1,    70,   224,   230,   221,    -1,    51,
1262 >     224,   163,   221,    -1,    53,   224,   163,   221,    -1
1263   };
1264  
1265   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1266   static const yytype_uint16 yyrline[] =
1267   {
1268 <       0,   377,   377,   378,   381,   382,   383,   384,   385,   386,
1269 <     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
1270 <     397,   398,   399,   400,   401,   402,   403,   407,   407,   408,
1271 <     412,   416,   420,   424,   428,   434,   434,   435,   436,   437,
1272 <     438,   445,   448,   448,   449,   449,   449,   451,   457,   464,
1273 <     466,   466,   467,   467,   468,   468,   469,   469,   470,   470,
1274 <     471,   471,   472,   472,   473,   473,   474,   478,   477,   503,
1275 <     503,   504,   510,   518,   557,   616,   640,   650,   665,   680,
1276 <     689,   703,   712,   740,   770,   793,   802,   804,   804,   805,
1277 <     805,   806,   806,   808,   817,   826,   838,   839,   839,   841,
1278 <     841,   841,   842,   844,   850,   857,   857,   867,   868,   870,
1279 <     870,   871,   871,   873,   878,   881,   887,   886,   892,   892,
1280 <     893,   897,   901,   905,   909,   913,   917,   928,   927,  1025,
1281 <    1025,  1026,  1026,  1026,  1027,  1027,  1027,  1028,  1028,  1028,
1282 <    1030,  1042,  1079,  1091,  1102,  1144,  1154,  1153,  1159,  1159,
1283 <    1160,  1164,  1168,  1172,  1176,  1180,  1184,  1188,  1192,  1196,
1284 <    1200,  1204,  1208,  1212,  1216,  1220,  1224,  1228,  1232,  1236,
1285 <    1243,  1242,  1248,  1248,  1249,  1253,  1257,  1261,  1265,  1269,
1286 <    1273,  1277,  1281,  1285,  1289,  1293,  1297,  1301,  1305,  1309,
1287 <    1313,  1317,  1328,  1327,  1377,  1377,  1378,  1379,  1379,  1380,
1288 <    1381,  1382,  1383,  1384,  1385,  1386,  1387,  1388,  1389,  1390,
1289 <    1392,  1401,  1407,  1413,  1419,  1425,  1431,  1437,  1443,  1449,
1290 <    1455,  1461,  1467,  1477,  1476,  1493,  1492,  1497,  1497,  1498,
1291 <    1502,  1506,  1514,  1514,  1515,  1515,  1515,  1515,  1515,  1517,
1292 <    1517,  1519,  1519,  1521,  1535,  1555,  1564,  1577,  1576,  1645,
1293 <    1645,  1646,  1646,  1646,  1646,  1647,  1647,  1647,  1648,  1648,
1294 <    1650,  1687,  1700,  1709,  1721,  1720,  1724,  1724,  1725,  1729,
1295 <    1733,  1737,  1741,  1745,  1749,  1753,  1757,  1764,  1783,  1793,
1296 <    1807,  1806,  1822,  1822,  1823,  1823,  1823,  1823,  1825,  1834,
1297 <    1849,  1862,  1864,  1864,  1865,  1865,  1867,  1883,  1882,  1898,
1298 <    1898,  1899,  1899,  1899,  1899,  1901,  1910,  1933,  1932,  1938,
1299 <    1938,  1939,  1943,  1947,  1951,  1955,  1959,  1963,  1967,  1971,
1300 <    1975,  1985,  1984,  2001,  2001,  2002,  2002,  2002,  2004,  2011,
1301 <    2010,  2016,  2016,  2017,  2021,  2025,  2029,  2033,  2037,  2041,
1302 <    2045,  2049,  2053,  2063,  2062,  2191,  2191,  2192,  2192,  2192,
1303 <    2193,  2193,  2194,  2194,  2194,  2195,  2195,  2195,  2196,  2196,
1304 <    2197,  2199,  2211,  2220,  2246,  2264,  2282,  2288,  2292,  2301,
1305 <    2300,  2304,  2304,  2305,  2309,  2313,  2317,  2323,  2334,  2347,
1306 <    2360,  2369,  2388,  2387,  2451,  2450,  2454,  2454,  2455,  2461,
1307 <    2461,  2462,  2462,  2462,  2462,  2464,  2483,  2493,  2492,  2515,
1308 <    2515,  2516,  2516,  2516,  2518,  2524,  2533,  2535,  2535,  2536,
1309 <    2536,  2538,  2557,  2556,  2604,  2603,  2607,  2607,  2608,  2614,
1310 <    2614,  2615,  2615,  2615,  2615,  2617,  2623,  2632,  2635,  2635,
1311 <    2636,  2636,  2637,  2637,  2638,  2638,  2639,  2639,  2640,  2640,
1312 <    2641,  2641,  2642,  2642,  2643,  2643,  2644,  2644,  2645,  2645,
1313 <    2646,  2646,  2647,  2647,  2648,  2648,  2649,  2650,  2650,  2651,
1314 <    2651,  2652,  2652,  2653,  2653,  2654,  2654,  2655,  2656,  2657,
1315 <    2657,  2658,  2659,  2660,  2660,  2661,  2661,  2662,  2662,  2663,
1316 <    2663,  2664,  2667,  2672,  2677,  2682,  2687,  2692,  2697,  2702,
1317 <    2707,  2712,  2717,  2722,  2727,  2732,  2737,  2742,  2747,  2752,
1318 <    2758,  2769,  2774,  2783,  2788,  2793,  2798,  2803,  2808,  2811,
1319 <    2816,  2819,  2824,  2829,  2834,  2839,  2844,  2849,  2854,  2859,
1320 <    2864,  2875,  2880,  2885,  2890,  2899,  2908,  2913,  2918,  2924,
1321 <    2923,  2928,  2928,  2929,  2932,  2935,  2938,  2941,  2944,  2947,
1322 <    2950,  2953,  2956,  2959,  2962,  2965,  2968,  2971,  2974,  2977,
1323 <    2980,  2983,  2986,  2992,  2991,  2996,  2996,  2997,  3000,  3003,
1324 <    3006,  3009,  3012,  3015,  3018,  3021,  3024,  3027,  3030,  3033,
1325 <    3036,  3039,  3042,  3045,  3048,  3051,  3054,  3059,  3064,  3069,
1326 <    3074,  3084,  3083,  3107,  3107,  3108,  3109,  3110,  3111,  3112,
1327 <    3113,  3114,  3116,  3122,  3129,  3128,  3133,  3133,  3134,  3138,
1328 <    3144,  3178,  3188,  3187,  3237,  3237,  3238,  3242,  3251,  3254,
1329 <    3254,  3255,  3255,  3256,  3256,  3257,  3257,  3258,  3258,  3259,
1330 <    3259,  3260,  3261,  3261,  3262,  3262,  3263,  3263,  3264,  3264,
1331 <    3266,  3271,  3276,  3281,  3286,  3291,  3296,  3301,  3306,  3311,
1355 <    3316,  3321,  3326,  3331,  3336,  3341,  3346,  3351,  3359,  3362,
1356 <    3362,  3363,  3363,  3364,  3365,  3366,  3366,  3367,  3368,  3370,
1357 <    3376,  3382,  3391,  3405,  3411,  3417
1268 >       0,   362,   362,   363,   366,   367,   368,   369,   370,   371,
1269 >     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
1270 >     382,   383,   384,   385,   386,   387,   391,   391,   392,   396,
1271 >     400,   404,   408,   412,   416,   420,   426,   426,   427,   428,
1272 >     429,   430,   437,   440,   440,   441,   441,   441,   443,   449,
1273 >     456,   458,   458,   459,   459,   460,   460,   461,   461,   462,
1274 >     462,   463,   463,   464,   464,   465,   465,   466,   466,   467,
1275 >     468,   471,   472,   474,   474,   475,   481,   489,   489,   490,
1276 >     496,   504,   546,   605,   633,   641,   656,   671,   680,   694,
1277 >     703,   731,   761,   786,   808,   830,   839,   841,   841,   842,
1278 >     842,   843,   843,   845,   854,   863,   875,   876,   876,   878,
1279 >     878,   879,   881,   888,   888,   901,   902,   904,   904,   905,
1280 >     905,   907,   915,   918,   924,   923,   929,   929,   930,   934,
1281 >     938,   942,   946,   950,   954,   965,   964,  1041,  1041,  1042,
1282 >    1042,  1042,  1043,  1043,  1043,  1044,  1044,  1044,  1046,  1052,
1283 >    1058,  1064,  1075,  1081,  1088,  1087,  1093,  1093,  1094,  1098,
1284 >    1102,  1106,  1110,  1114,  1118,  1122,  1126,  1130,  1134,  1138,
1285 >    1142,  1146,  1150,  1154,  1158,  1162,  1166,  1170,  1174,  1178,
1286 >    1185,  1184,  1190,  1190,  1191,  1195,  1199,  1203,  1207,  1211,
1287 >    1215,  1219,  1223,  1227,  1231,  1235,  1239,  1243,  1247,  1251,
1288 >    1255,  1266,  1265,  1326,  1326,  1327,  1328,  1328,  1329,  1330,
1289 >    1331,  1332,  1333,  1334,  1335,  1336,  1337,  1337,  1338,  1339,
1290 >    1340,  1341,  1343,  1349,  1355,  1361,  1367,  1373,  1379,  1385,
1291 >    1391,  1397,  1404,  1410,  1416,  1422,  1431,  1441,  1440,  1446,
1292 >    1446,  1447,  1451,  1462,  1461,  1468,  1467,  1472,  1472,  1473,
1293 >    1477,  1481,  1487,  1487,  1488,  1488,  1488,  1488,  1488,  1490,
1294 >    1490,  1492,  1492,  1494,  1508,  1528,  1534,  1544,  1543,  1585,
1295 >    1585,  1586,  1586,  1586,  1586,  1587,  1587,  1587,  1588,  1588,
1296 >    1590,  1596,  1602,  1608,  1620,  1619,  1625,  1625,  1626,  1630,
1297 >    1634,  1638,  1642,  1646,  1650,  1654,  1658,  1662,  1668,  1682,
1298 >    1691,  1705,  1704,  1719,  1719,  1720,  1720,  1720,  1720,  1722,
1299 >    1728,  1734,  1744,  1746,  1746,  1747,  1747,  1749,  1765,  1764,
1300 >    1789,  1789,  1790,  1790,  1790,  1790,  1792,  1798,  1818,  1817,
1301 >    1823,  1823,  1824,  1828,  1832,  1836,  1840,  1844,  1848,  1852,
1302 >    1856,  1860,  1870,  1869,  1890,  1890,  1891,  1891,  1891,  1893,
1303 >    1900,  1899,  1905,  1905,  1906,  1910,  1914,  1918,  1922,  1926,
1304 >    1930,  1934,  1938,  1942,  1952,  1951,  2017,  2017,  2018,  2018,
1305 >    2018,  2019,  2019,  2020,  2020,  2020,  2021,  2021,  2021,  2022,
1306 >    2022,  2023,  2025,  2031,  2037,  2043,  2056,  2069,  2075,  2079,
1307 >    2088,  2087,  2092,  2092,  2093,  2097,  2103,  2114,  2120,  2126,
1308 >    2132,  2148,  2147,  2173,  2173,  2174,  2174,  2174,  2176,  2196,
1309 >    2206,  2205,  2232,  2232,  2233,  2233,  2233,  2235,  2241,  2250,
1310 >    2252,  2252,  2253,  2253,  2255,  2273,  2272,  2295,  2295,  2296,
1311 >    2296,  2296,  2298,  2304,  2313,  2316,  2316,  2317,  2317,  2318,
1312 >    2318,  2319,  2319,  2320,  2320,  2321,  2321,  2322,  2323,  2324,
1313 >    2324,  2325,  2325,  2326,  2326,  2327,  2327,  2328,  2328,  2329,
1314 >    2329,  2330,  2330,  2331,  2331,  2332,  2332,  2333,  2333,  2334,
1315 >    2334,  2335,  2336,  2336,  2337,  2338,  2339,  2339,  2340,  2340,
1316 >    2341,  2342,  2343,  2344,  2344,  2345,  2348,  2353,  2359,  2365,
1317 >    2371,  2376,  2381,  2386,  2391,  2396,  2401,  2406,  2411,  2416,
1318 >    2421,  2426,  2431,  2436,  2441,  2447,  2458,  2463,  2468,  2473,
1319 >    2478,  2483,  2486,  2491,  2494,  2499,  2504,  2509,  2514,  2519,
1320 >    2524,  2529,  2534,  2539,  2544,  2549,  2554,  2563,  2572,  2577,
1321 >    2582,  2588,  2587,  2592,  2592,  2593,  2596,  2599,  2602,  2605,
1322 >    2608,  2611,  2614,  2617,  2620,  2623,  2626,  2629,  2632,  2635,
1323 >    2638,  2641,  2644,  2647,  2650,  2653,  2656,  2662,  2661,  2666,
1324 >    2666,  2667,  2670,  2673,  2676,  2679,  2682,  2685,  2688,  2691,
1325 >    2694,  2697,  2700,  2703,  2706,  2709,  2712,  2715,  2718,  2721,
1326 >    2724,  2727,  2730,  2735,  2740,  2745,  2754,  2757,  2757,  2758,
1327 >    2759,  2759,  2760,  2760,  2761,  2762,  2763,  2764,  2765,  2765,
1328 >    2766,  2766,  2768,  2773,  2778,  2783,  2788,  2793,  2798,  2803,
1329 >    2808,  2813,  2818,  2823,  2831,  2834,  2834,  2835,  2835,  2836,
1330 >    2837,  2838,  2838,  2839,  2840,  2842,  2848,  2854,  2860,  2869,
1331 >    2883,  2889
1332   };
1333   #endif
1334  
1335 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1335 > #if YYDEBUG || YYERROR_VERBOSE || 0
1336   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1337     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1338   static const char *const yytname[] =
1339   {
1340 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1341 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1342 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1369 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1340 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1341 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1342 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1343    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1344    "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1345    "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1346 <  "DISABLE_FAKE_CHANNELS", "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS",
1347 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH",
1375 <  "EMAIL", "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1346 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1347 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1348    "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1349 <  "GLINE", "GLINES", "GLINE_EXEMPT", "GLINE_TIME", "GLINE_MIN_CIDR",
1350 <  "GLINE_MIN_CIDR6", "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT",
1351 <  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_SERVER_IPS",
1352 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1353 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1354 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1355 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1356 <  "LINKS_DELAY", "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS",
1357 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1358 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1359 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1360 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1361 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1349 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1350 >  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1351 >  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1352 >  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES",
1353 >  "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS",
1354 >  "INVISIBLE_ON_CONNECT", "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1355 >  "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1356 >  "LINKS_DELAY", "LISTEN", "T_LOG", "MASK", "MAX_ACCEPT", "MAX_BANS",
1357 >  "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1358 >  "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME",
1359 >  "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH",
1360 >  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE",
1361 >  "RANDOM_IDLE", "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME",
1362 >  "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1363    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1364 <  "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1365 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID",
1366 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1367 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1368 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1369 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1370 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1371 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1372 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE",
1373 <  "T_SSL_CONNECTION_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1374 <  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1375 <  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1403 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1404 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1364 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1365 >  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1366 >  "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT",
1367 >  "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1368 >  "PORT", "QSTRING", "REASON", "REDIRPORT", "REDIRSERV", "REHASH",
1369 >  "REMOTE", "REMOTEBAN", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1370 >  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1371 >  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1372 >  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS",
1373 >  "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO", "IRCD_SID",
1374 >  "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD",
1375 >  "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1376    "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1377 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1378 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1379 <  "T_CCONN_FULL", "T_SSL_CIPHER_LIST", "T_CLIENT_FLOOD", "T_DEAF",
1380 <  "T_DEBUG", "T_DLINE", "T_DRONE", "T_EXTERNAL", "T_FULL", "T_INVISIBLE",
1381 <  "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS", "T_NCHANGE",
1382 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1377 >  "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1378 >  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1379 >  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1380 >  "T_FARCONNECT", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1381 >  "T_MAX_CLIENTS", "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ",
1382 >  "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY",
1383    "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1384 <  "T_UNXLINE", "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE",
1385 <  "T_SERVICES_NAME", "T_TIMESTAMP", "THROTTLE_TIME", "TOPICBURST",
1386 <  "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE", "TRESV", "UNKLINE", "USER",
1416 <  "USE_EGD", "USE_EXCEPT", "USE_INVEX", "USE_KNOCK", "USE_LOGGING",
1417 <  "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6", "XLINE", "WARN",
1384 >  "T_UNXLINE", "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART",
1385 >  "T_SERVICE", "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD",
1386 >  "UNKLINE", "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1387    "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1388    "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1389    "sizespec", "modules_entry", "modules_items", "modules_item",
1390    "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1391 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1392 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1391 >  "serverinfo_item", "serverinfo_ssl_client_method",
1392 >  "serverinfo_ssl_server_method", "client_method_types",
1393 >  "client_method_type_item", "server_method_types",
1394 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1395    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1396    "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1397    "serverinfo_description", "serverinfo_network_name",
1398    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1399 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1400 <  "admin_item", "admin_name", "admin_email", "admin_description",
1401 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1402 <  "logging_timestamp", "logging_file_entry", "$@2", "logging_file_items",
1399 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1400 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1401 >  "admin_items", "admin_item", "admin_name", "admin_email",
1402 >  "admin_description", "logging_entry", "logging_items", "logging_item",
1403 >  "logging_use_logging", "logging_file_entry", "$@1", "logging_file_items",
1404    "logging_file_item", "logging_file_name", "logging_file_size",
1405 <  "logging_file_type", "$@3", "logging_file_type_items",
1406 <  "logging_file_type_item", "oper_entry", "$@4", "oper_items", "oper_item",
1405 >  "logging_file_type", "$@2", "logging_file_type_items",
1406 >  "logging_file_type_item", "oper_entry", "$@3", "oper_items", "oper_item",
1407    "oper_name", "oper_user", "oper_password", "oper_encrypted",
1408 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@5",
1409 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@6",
1410 <  "oper_flags_items", "oper_flags_item", "class_entry", "$@7",
1408 >  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@4",
1409 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@5",
1410 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@6",
1411    "class_items", "class_item", "class_name", "class_ping_time",
1412 <  "class_ping_warning", "class_number_per_ip", "class_connectfreq",
1413 <  "class_max_number", "class_max_global", "class_max_local",
1414 <  "class_max_ident", "class_sendq", "class_cidr_bitlen_ipv4",
1415 <  "class_cidr_bitlen_ipv6", "class_number_per_cidr", "listen_entry", "$@8",
1416 <  "listen_flags", "$@9", "listen_flags_items", "listen_flags_item",
1417 <  "listen_items", "listen_item", "listen_port", "$@10", "port_items",
1418 <  "port_item", "listen_address", "listen_host", "auth_entry", "$@11",
1419 <  "auth_items", "auth_item", "auth_user", "auth_passwd", "auth_class",
1420 <  "auth_encrypted", "auth_flags", "$@12", "auth_flags_items",
1421 <  "auth_flags_item", "auth_spoof", "auth_redir_serv", "auth_redir_port",
1422 <  "resv_entry", "$@13", "resv_items", "resv_item", "resv_creason",
1423 <  "resv_channel", "resv_nick", "service_entry", "service_items",
1424 <  "service_item", "service_name", "shared_entry", "$@14", "shared_items",
1425 <  "shared_item", "shared_name", "shared_user", "shared_type", "$@15",
1426 <  "shared_types", "shared_type_item", "cluster_entry", "$@16",
1427 <  "cluster_items", "cluster_item", "cluster_name", "cluster_type", "$@17",
1428 <  "cluster_types", "cluster_type_item", "connect_entry", "$@18",
1429 <  "connect_items", "connect_item", "connect_name", "connect_host",
1430 <  "connect_vhost", "connect_send_password", "connect_accept_password",
1431 <  "connect_port", "connect_aftype", "connect_flags", "$@19",
1432 <  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1433 <  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1434 <  "connect_ssl_cipher_list", "kill_entry", "$@20", "kill_type", "$@21",
1435 <  "kill_type_items", "kill_type_item", "kill_items", "kill_item",
1436 <  "kill_user", "kill_reason", "deny_entry", "$@22", "deny_items",
1437 <  "deny_item", "deny_ip", "deny_reason", "exempt_entry", "exempt_items",
1438 <  "exempt_item", "exempt_ip", "gecos_entry", "$@23", "gecos_flags", "$@24",
1439 <  "gecos_flags_items", "gecos_flags_item", "gecos_items", "gecos_item",
1440 <  "gecos_name", "gecos_reason", "general_entry", "general_items",
1441 <  "general_item", "general_max_watch", "general_gline_min_cidr",
1442 <  "general_gline_min_cidr6", "general_use_whois_actually",
1443 <  "general_reject_hold_time", "general_tkline_expire_notices",
1412 >  "class_number_per_ip", "class_connectfreq", "class_max_number",
1413 >  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1414 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1415 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1416 >  "class_flags", "$@7", "class_flags_items", "class_flags_item",
1417 >  "listen_entry", "$@8", "listen_flags", "$@9", "listen_flags_items",
1418 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1419 >  "$@10", "port_items", "port_item", "listen_address", "listen_host",
1420 >  "auth_entry", "$@11", "auth_items", "auth_item", "auth_user",
1421 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@12",
1422 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1423 >  "auth_redir_port", "resv_entry", "$@13", "resv_items", "resv_item",
1424 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1425 >  "service_items", "service_item", "service_name", "shared_entry", "$@14",
1426 >  "shared_items", "shared_item", "shared_name", "shared_user",
1427 >  "shared_type", "$@15", "shared_types", "shared_type_item",
1428 >  "cluster_entry", "$@16", "cluster_items", "cluster_item", "cluster_name",
1429 >  "cluster_type", "$@17", "cluster_types", "cluster_type_item",
1430 >  "connect_entry", "$@18", "connect_items", "connect_item", "connect_name",
1431 >  "connect_host", "connect_vhost", "connect_send_password",
1432 >  "connect_accept_password", "connect_port", "connect_aftype",
1433 >  "connect_flags", "$@19", "connect_flags_items", "connect_flags_item",
1434 >  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1435 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@20",
1436 >  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1437 >  "$@21", "deny_items", "deny_item", "deny_ip", "deny_reason",
1438 >  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1439 >  "gecos_entry", "$@22", "gecos_items", "gecos_item", "gecos_name",
1440 >  "gecos_reason", "general_entry", "general_items", "general_item",
1441 >  "general_max_watch", "general_gline_enable", "general_gline_duration",
1442 >  "general_gline_request_duration", "general_gline_min_cidr",
1443 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1444    "general_kill_chase_time_limit", "general_hide_spoof_ips",
1445    "general_ignore_bogus_ts", "general_disable_remote_commands",
1446    "general_failed_oper_notice", "general_anti_nick_flood",
1447    "general_max_nick_time", "general_max_nick_changes",
1448    "general_max_accept", "general_anti_spam_exit_message_time",
1449    "general_ts_warn_delta", "general_ts_max_delta",
1450 <  "general_havent_read_conf", "general_kline_with_reason",
1479 <  "general_kline_reason", "general_invisible_on_connect",
1450 >  "general_havent_read_conf", "general_invisible_on_connect",
1451    "general_warn_no_nline", "general_stats_e_disabled",
1452    "general_stats_o_oper_only", "general_stats_P_oper_only",
1453    "general_stats_k_oper_only", "general_stats_i_oper_only",
# Line 1484 | Line 1455 | static const char *const yytname[] =
1455    "general_opers_bypass_callerid", "general_pace_wait_simple",
1456    "general_short_motd", "general_no_oper_flood",
1457    "general_true_no_oper_flood", "general_oper_pass_resv",
1458 <  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1459 <  "general_use_egd", "general_egdpool_path", "general_services_name",
1460 <  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1461 <  "general_oper_umodes", "$@25", "umode_oitems", "umode_oitem",
1462 <  "general_oper_only_umodes", "$@26", "umode_items", "umode_item",
1463 <  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1464 <  "general_default_floodcount", "general_client_flood", "gline_entry",
1465 <  "$@27", "gline_items", "gline_item", "gline_enable", "gline_duration",
1466 <  "gline_logging", "$@28", "gline_logging_types",
1467 <  "gline_logging_type_item", "gline_user", "gline_server", "gline_action",
1497 <  "$@29", "gdeny_types", "gdeny_type_item", "channel_entry",
1498 <  "channel_items", "channel_item", "channel_disable_fake_channels",
1499 <  "channel_restrict_channels", "channel_disable_local_channels",
1500 <  "channel_use_except", "channel_use_invex", "channel_use_knock",
1501 <  "channel_knock_delay", "channel_knock_delay_channel",
1502 <  "channel_max_chans_per_user", "channel_quiet_on_ban", "channel_max_bans",
1458 >  "general_dots_in_ident", "general_max_targets", "general_use_egd",
1459 >  "general_egdpool_path", "general_services_name", "general_ping_cookie",
1460 >  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1461 >  "$@23", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1462 >  "$@24", "umode_items", "umode_item", "general_min_nonwildcard",
1463 >  "general_min_nonwildcard_simple", "general_default_floodcount",
1464 >  "channel_entry", "channel_items", "channel_item",
1465 >  "channel_disable_fake_channels", "channel_knock_delay",
1466 >  "channel_knock_delay_channel", "channel_max_chans_per_user",
1467 >  "channel_max_chans_per_oper", "channel_max_bans",
1468    "channel_default_split_user_count", "channel_default_split_server_count",
1469    "channel_no_create_on_split", "channel_no_join_on_split",
1470 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1471 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1472 <  "serverhide_flatten_links", "serverhide_hide_servers",
1470 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1471 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1472 >  "serverhide_hide_servers", "serverhide_hide_services",
1473    "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1474 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1474 >  "serverhide_hide_server_ips", YY_NULL
1475   };
1476   #endif
1477  
# Line 1537 | Line 1502 | static const yytype_uint16 yytoknum[] =
1502       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1503       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1504       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1505 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1541 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1542 <     495,    59,   125,   123,    61,    44
1505 >     475,    59,   125,   123,    61,    44
1506   };
1507   # endif
1508  
1509   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1510   static const yytype_uint16 yyr1[] =
1511   {
1512 <       0,   246,   247,   247,   248,   248,   248,   248,   248,   248,
1513 <     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
1514 <     248,   248,   248,   248,   248,   248,   248,   249,   249,   250,
1515 <     250,   250,   250,   250,   250,   251,   251,   252,   252,   252,
1516 <     252,   253,   254,   254,   255,   255,   255,   256,   257,   258,
1517 <     259,   259,   260,   260,   260,   260,   260,   260,   260,   260,
1518 <     260,   260,   260,   260,   260,   260,   260,   262,   261,   263,
1519 <     263,   264,   264,   265,   266,   267,   268,   269,   270,   271,
1520 <     272,   273,   274,   275,   276,   277,   278,   279,   279,   280,
1521 <     280,   280,   280,   281,   282,   283,   284,   285,   285,   286,
1522 <     286,   286,   286,   287,   288,   290,   289,   291,   291,   292,
1523 <     292,   292,   292,   293,   294,   294,   296,   295,   297,   297,
1524 <     298,   298,   298,   298,   298,   298,   298,   300,   299,   301,
1525 <     301,   302,   302,   302,   302,   302,   302,   302,   302,   302,
1526 <     303,   304,   305,   306,   307,   308,   310,   309,   311,   311,
1527 <     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
1528 <     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
1529 <     314,   313,   315,   315,   316,   316,   316,   316,   316,   316,
1530 <     316,   316,   316,   316,   316,   316,   316,   316,   316,   316,
1531 <     316,   316,   318,   317,   319,   319,   320,   320,   320,   320,
1532 <     320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
1533 <     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
1534 <     331,   332,   333,   335,   334,   337,   336,   338,   338,   339,
1535 <     339,   339,   340,   340,   341,   341,   341,   341,   341,   343,
1536 <     342,   344,   344,   345,   345,   346,   347,   349,   348,   350,
1537 <     350,   351,   351,   351,   351,   351,   351,   351,   351,   351,
1538 <     352,   353,   354,   355,   357,   356,   358,   358,   359,   359,
1539 <     359,   359,   359,   359,   359,   359,   359,   360,   361,   362,
1540 <     364,   363,   365,   365,   366,   366,   366,   366,   367,   368,
1541 <     369,   370,   371,   371,   372,   372,   373,   375,   374,   376,
1542 <     376,   377,   377,   377,   377,   378,   379,   381,   380,   382,
1543 <     382,   383,   383,   383,   383,   383,   383,   383,   383,   383,
1544 <     383,   385,   384,   386,   386,   387,   387,   387,   388,   390,
1545 <     389,   391,   391,   392,   392,   392,   392,   392,   392,   392,
1546 <     392,   392,   392,   394,   393,   395,   395,   396,   396,   396,
1547 <     396,   396,   396,   396,   396,   396,   396,   396,   396,   396,
1548 <     396,   397,   398,   399,   400,   401,   402,   403,   403,   405,
1549 <     404,   406,   406,   407,   407,   407,   407,   408,   409,   410,
1550 <     411,   412,   414,   413,   416,   415,   417,   417,   418,   419,
1551 <     419,   420,   420,   420,   420,   421,   422,   424,   423,   425,
1552 <     425,   426,   426,   426,   427,   428,   429,   430,   430,   431,
1553 <     431,   432,   434,   433,   436,   435,   437,   437,   438,   439,
1554 <     439,   440,   440,   440,   440,   441,   442,   443,   444,   444,
1555 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1556 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1557 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1558 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1559 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1560 <     445,   445,   446,   447,   448,   449,   450,   451,   452,   453,
1561 <     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
1562 <     464,   465,   466,   467,   468,   469,   470,   471,   472,   472,
1563 <     473,   473,   474,   475,   476,   477,   478,   479,   480,   481,
1564 <     482,   483,   484,   485,   486,   487,   488,   489,   490,   492,
1565 <     491,   493,   493,   494,   494,   494,   494,   494,   494,   494,
1566 <     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
1567 <     494,   494,   494,   496,   495,   497,   497,   498,   498,   498,
1568 <     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
1569 <     498,   498,   498,   498,   498,   498,   498,   499,   500,   501,
1570 <     502,   504,   503,   505,   505,   506,   506,   506,   506,   506,
1571 <     506,   506,   507,   508,   510,   509,   511,   511,   512,   512,
1572 <     513,   514,   516,   515,   517,   517,   518,   518,   519,   520,
1573 <     520,   521,   521,   521,   521,   521,   521,   521,   521,   521,
1574 <     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
1575 <     522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
1613 <     532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
1614 <     541,   542,   542,   542,   542,   542,   542,   542,   542,   543,
1615 <     544,   545,   546,   547,   548,   549
1512 >       0,   226,   227,   227,   228,   228,   228,   228,   228,   228,
1513 >     228,   228,   228,   228,   228,   228,   228,   228,   228,   228,
1514 >     228,   228,   228,   228,   228,   228,   229,   229,   230,   230,
1515 >     230,   230,   230,   230,   230,   230,   231,   231,   232,   232,
1516 >     232,   232,   233,   234,   234,   235,   235,   235,   236,   237,
1517 >     238,   239,   239,   240,   240,   240,   240,   240,   240,   240,
1518 >     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
1519 >     240,   241,   242,   243,   243,   244,   244,   245,   245,   246,
1520 >     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1521 >     256,   257,   258,   259,   260,   261,   262,   263,   263,   264,
1522 >     264,   264,   264,   265,   266,   267,   268,   269,   269,   270,
1523 >     270,   270,   271,   273,   272,   274,   274,   275,   275,   275,
1524 >     275,   276,   277,   277,   279,   278,   280,   280,   281,   281,
1525 >     281,   281,   281,   281,   281,   283,   282,   284,   284,   285,
1526 >     285,   285,   285,   285,   285,   285,   285,   285,   286,   287,
1527 >     288,   289,   290,   291,   293,   292,   294,   294,   295,   295,
1528 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1529 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1530 >     297,   296,   298,   298,   299,   299,   299,   299,   299,   299,
1531 >     299,   299,   299,   299,   299,   299,   299,   299,   299,   299,
1532 >     299,   301,   300,   302,   302,   303,   303,   303,   303,   303,
1533 >     303,   303,   303,   303,   303,   303,   303,   303,   303,   303,
1534 >     303,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1535 >     312,   313,   314,   315,   316,   317,   318,   320,   319,   321,
1536 >     321,   322,   322,   324,   323,   326,   325,   327,   327,   328,
1537 >     328,   328,   329,   329,   330,   330,   330,   330,   330,   332,
1538 >     331,   333,   333,   334,   334,   335,   336,   338,   337,   339,
1539 >     339,   340,   340,   340,   340,   340,   340,   340,   340,   340,
1540 >     341,   342,   343,   344,   346,   345,   347,   347,   348,   348,
1541 >     348,   348,   348,   348,   348,   348,   348,   348,   349,   350,
1542 >     351,   353,   352,   354,   354,   355,   355,   355,   355,   356,
1543 >     357,   358,   359,   360,   360,   361,   361,   362,   364,   363,
1544 >     365,   365,   366,   366,   366,   366,   367,   368,   370,   369,
1545 >     371,   371,   372,   372,   372,   372,   372,   372,   372,   372,
1546 >     372,   372,   374,   373,   375,   375,   376,   376,   376,   377,
1547 >     379,   378,   380,   380,   381,   381,   381,   381,   381,   381,
1548 >     381,   381,   381,   381,   383,   382,   384,   384,   385,   385,
1549 >     385,   385,   385,   385,   385,   385,   385,   385,   385,   385,
1550 >     385,   385,   386,   387,   388,   389,   390,   391,   392,   392,
1551 >     394,   393,   395,   395,   396,   396,   397,   398,   399,   400,
1552 >     401,   403,   402,   404,   404,   405,   405,   405,   406,   407,
1553 >     409,   408,   410,   410,   411,   411,   411,   412,   413,   414,
1554 >     415,   415,   416,   416,   417,   419,   418,   420,   420,   421,
1555 >     421,   421,   422,   423,   424,   425,   425,   426,   426,   426,
1556 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1557 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1558 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1559 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1560 >     426,   426,   426,   426,   426,   426,   427,   428,   429,   430,
1561 >     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
1562 >     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
1563 >     451,   452,   452,   453,   453,   454,   455,   456,   457,   458,
1564 >     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1565 >     469,   471,   470,   472,   472,   473,   473,   473,   473,   473,
1566 >     473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
1567 >     473,   473,   473,   473,   473,   473,   473,   475,   474,   476,
1568 >     476,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1569 >     477,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1570 >     477,   477,   477,   478,   479,   480,   481,   482,   482,   483,
1571 >     483,   483,   483,   483,   483,   483,   483,   483,   483,   483,
1572 >     483,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1573 >     492,   493,   494,   495,   496,   497,   497,   498,   498,   498,
1574 >     498,   498,   498,   498,   498,   499,   500,   501,   502,   503,
1575 >     504,   505
1576   };
1577  
1578   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1620 | Line 1580 | static const yytype_uint8 yyr2[] =
1580   {
1581         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1582         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1583 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1584 <       3,     3,     3,     3,     3,     0,     1,     2,     3,     3,
1585 <       3,     5,     2,     1,     1,     1,     2,     4,     4,     5,
1586 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1587 <       1,     1,     1,     1,     1,     1,     2,     0,     5,     3,
1588 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1583 >       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1584 >       3,     3,     3,     3,     3,     3,     0,     1,     2,     3,
1585 >       3,     3,     5,     2,     1,     1,     1,     2,     4,     4,
1586 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1587 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1588 >       2,     4,     4,     3,     1,     1,     1,     3,     1,     1,
1589 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1590         4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1591         1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1592 <       1,     1,     2,     4,     4,     0,     6,     2,     1,     1,
1593 <       1,     1,     2,     4,     4,     4,     0,     5,     3,     1,
1594 <       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
1595 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1596 <       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1592 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1593 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1594 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1595 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1596 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1597         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1598         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1599         0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1600         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1601 <       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
1602 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1603 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1604 <       4,     4,     4,     0,     6,     0,     5,     3,     1,     1,
1601 >       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
1602 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1603 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1604 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1605 >       1,     1,     1,     0,     6,     0,     5,     3,     1,     1,
1606         1,     1,     2,     1,     1,     1,     1,     1,     2,     0,
1607         5,     3,     1,     1,     3,     4,     4,     0,     6,     2,
1608         1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1609         4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1610 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1611 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1612 <       4,     5,     2,     1,     1,     1,     4,     0,     6,     2,
1613 <       1,     1,     1,     1,     2,     4,     4,     0,     5,     3,
1614 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1615 <       1,     0,     6,     2,     1,     1,     1,     2,     4,     0,
1616 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1617 <       1,     1,     1,     0,     6,     2,     1,     1,     1,     1,
1656 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1657 <       2,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1658 <       5,     3,     1,     1,     1,     1,     1,     4,     4,     4,
1659 <       4,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1660 <       1,     1,     1,     1,     1,     4,     4,     0,     6,     2,
1661 <       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1662 <       1,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1663 <       1,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1610 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1611 >       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1612 >       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1613 >       2,     1,     1,     1,     1,     2,     4,     4,     0,     5,
1614 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1615 >       1,     1,     0,     6,     2,     1,     1,     1,     2,     4,
1616 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1617 >       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1618         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1619 +       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1620 +       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
1621 +       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
1622 +       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1623 +       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
1624 +       1,     1,     4,     4,     5,     2,     1,     1,     1,     1,
1625         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1626         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1627         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1628         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1629 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1629 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1630 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1631         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1632         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1633         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1634 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1674 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1634 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1635         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1636 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1636 >       1,     1,     1,     1,     1,     1,     1,     0,     5,     3,
1637         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1678       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1679       4,     0,     6,     2,     1,     1,     1,     1,     1,     1,
1680       1,     1,     4,     4,     0,     5,     3,     1,     1,     1,
1681       4,     4,     0,     5,     3,     1,     1,     1,     5,     2,
1638         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1639 +       1,     1,     1,     4,     4,     4,     5,     2,     1,     1,
1640         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1641 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1642 <       4,     4,     4,     4,     4,     4,     4,     4,     5,     2,
1643 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1644 <       4,     4,     4,     4,     4,     4
1641 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1642 >       4,     4,     4,     4,     5,     2,     1,     1,     1,     1,
1643 >       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1644 >       4,     4
1645   };
1646  
1647   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1692 | Line 1649 | static const yytype_uint8 yyr2[] =
1649     means the default is an error.  */
1650   static const yytype_uint16 yydefact[] =
1651   {
1652 <       2,     0,     1,     0,     0,     0,   192,   343,   397,     0,
1653 <     412,     0,   581,   247,   382,   223,     0,     0,   127,   280,
1654 <       0,     0,   297,   321,     0,     3,    24,    11,     4,     5,
1655 <       6,     8,     9,    10,    13,    14,    15,    16,    17,    18,
1656 <      19,    20,    23,    21,    22,     7,    12,    25,    26,     0,
1700 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1652 >       2,     0,     1,     0,     0,     0,   201,   364,   410,     0,
1653 >     425,     0,   267,   401,   243,     0,     0,   135,   301,     0,
1654 >       0,   318,   342,     0,     3,    23,    11,     4,     5,     6,
1655 >       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1656 >      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1657         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1702       0,     0,     0,     0,     0,    88,    89,    91,    90,   629,
1658         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1659 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   610,
1705 <     628,   623,   611,   612,   613,   614,   616,   617,   618,   619,
1706 <     615,   620,   621,   622,   624,   625,   626,   627,     0,     0,
1707 <       0,   410,     0,     0,   408,   409,     0,   481,     0,     0,
1659 >       0,     0,    98,    99,   101,   100,   601,     0,     0,     0,
1660         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661 +     588,   600,   590,   591,   592,   593,   589,   594,   595,   596,
1662 +     597,   598,   599,     0,     0,     0,   423,     0,     0,   421,
1663 +     422,     0,   485,     0,     0,     0,     0,     0,     0,     0,
1664         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1710       0,     0,     0,     0,     0,     0,   553,     0,   529,     0,
1665         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1666 +       0,   557,     0,   531,     0,     0,     0,     0,     0,     0,
1667         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1668 <     429,   479,   474,   475,   476,   477,   473,   440,   430,   431,
1669 <     467,   432,   433,   434,   435,   436,   437,   438,   439,   470,
1670 <     441,   442,   443,   444,   478,   446,   451,   447,   449,   448,
1671 <     462,   463,   450,   452,   453,   454,   455,   456,   445,   458,
1672 <     459,   460,   480,   471,   472,   469,   461,   457,   465,   466,
1673 <     464,   468,     0,     0,     0,     0,     0,     0,     0,     0,
1674 <      98,    99,   100,   101,     0,     0,     0,     0,     0,    43,
1675 <      44,    45,     0,     0,   658,     0,     0,     0,     0,     0,
1676 <       0,     0,     0,   650,   651,   652,   656,   653,   655,   654,
1722 <     657,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1723 <      67,     0,     0,     0,     0,     0,     0,    51,    64,    63,
1724 <      60,    59,    65,    52,    62,    55,    56,    57,    53,    61,
1725 <      58,    54,     0,     0,   295,     0,     0,   293,   294,    92,
1726 <       0,     0,     0,     0,    87,     0,     0,     0,     0,     0,
1668 >       0,     0,   436,   483,   477,   478,   479,   480,   481,   476,
1669 >     447,   437,   438,   471,   439,   440,   441,   442,   443,   444,
1670 >     445,   446,   473,   448,   449,   482,   451,   456,   452,   454,
1671 >     453,   466,   467,   455,   457,   458,   459,   460,   450,   462,
1672 >     463,   464,   484,   474,   475,   472,   465,   461,   469,   470,
1673 >     468,     0,     0,     0,     0,     0,     0,   108,   109,   110,
1674 >       0,     0,     0,     0,     0,    44,    45,    46,     0,     0,
1675 >     624,     0,     0,     0,     0,     0,     0,     0,     0,   616,
1676 >     617,   618,   619,   622,   620,   621,   623,     0,     0,     0,
1677         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1678 <       0,     0,     0,     0,   609,     0,     0,     0,     0,     0,
1678 >       0,     0,     0,     0,     0,     0,    52,    67,    68,    66,
1679 >      63,    62,    69,    53,    65,    56,    57,    58,    54,    64,
1680 >      59,    60,    61,    55,     0,     0,   316,     0,     0,   314,
1681 >     315,   102,     0,     0,     0,     0,    97,     0,     0,     0,
1682         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1683 <     195,   196,   199,   200,   202,   203,   204,   205,   206,   207,
1684 <     208,   197,   198,   201,     0,     0,     0,     0,     0,   369,
1685 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   346,
1686 <     347,   348,   349,   350,   351,   353,   352,   355,   359,   356,
1687 <     357,   358,   354,   403,     0,     0,     0,   400,   401,   402,
1688 <       0,     0,   407,   424,     0,     0,   414,   423,     0,   420,
1689 <     421,   422,     0,     0,     0,     0,     0,     0,     0,     0,
1683 >     587,     0,     0,     0,     0,   237,     0,     0,     0,     0,
1684 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   204,
1685 >     205,   208,   210,   211,   212,   213,   214,   215,   216,   217,
1686 >     206,   207,   209,   218,   219,   220,     0,     0,     0,     0,
1687 >       0,   390,     0,     0,     0,     0,     0,     0,     0,     0,
1688 >       0,   367,   368,   369,   370,   371,   372,   374,   373,   376,
1689 >     380,   377,   378,   379,   375,   416,     0,     0,     0,   413,
1690 >     414,   415,     0,     0,   420,   431,     0,     0,     0,   428,
1691 >     429,   430,     0,     0,     0,     0,     0,     0,     0,     0,
1692         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1693         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1694         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1695         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1696 <       0,     0,     0,     0,   428,   591,   602,     0,     0,   594,
1697 <       0,     0,     0,   584,   585,   586,   587,   588,   589,   590,
1698 <       0,     0,     0,   264,     0,     0,     0,     0,     0,     0,
1699 <     250,   251,   252,   253,   258,   254,   255,   256,   257,   394,
1700 <       0,   384,     0,   393,     0,   390,   391,   392,     0,   225,
1701 <       0,     0,     0,   235,     0,   233,   234,   236,   237,   102,
1702 <       0,     0,     0,    97,     0,    46,     0,     0,     0,    42,
1703 <       0,     0,     0,   170,     0,     0,     0,   146,     0,     0,
1704 <     130,   131,   132,   133,   136,   137,   135,   134,   138,     0,
1750 <       0,     0,     0,     0,   283,   284,   285,   286,     0,     0,
1751 <       0,     0,     0,     0,     0,     0,   649,    66,     0,     0,
1696 >       0,   435,     0,     0,     0,   284,     0,     0,     0,     0,
1697 >       0,     0,   270,   271,   272,   273,   278,   274,   275,   276,
1698 >     277,   407,     0,     0,     0,   404,   405,   406,     0,   245,
1699 >       0,     0,     0,   255,     0,   253,   254,   256,   257,   111,
1700 >       0,     0,   107,     0,    47,     0,     0,     0,    43,     0,
1701 >       0,     0,   180,     0,     0,     0,   154,     0,     0,   138,
1702 >     139,   140,   141,   144,   145,   143,   142,   146,     0,     0,
1703 >       0,     0,     0,   304,   305,   306,   307,     0,     0,     0,
1704 >       0,     0,     0,     0,     0,   615,    70,     0,     0,     0,
1705         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1706 <       0,     0,     0,    50,     0,     0,   307,     0,     0,   300,
1707 <     301,   302,   303,     0,     0,   329,     0,   324,   325,   326,
1708 <       0,     0,   292,     0,     0,     0,    86,     0,     0,     0,
1709 <       0,     0,    27,     0,     0,     0,     0,     0,     0,     0,
1710 <       0,     0,     0,     0,     0,     0,   608,   209,     0,     0,
1706 >       0,     0,     0,     0,     0,    51,     0,     0,   328,     0,
1707 >       0,   321,   322,   323,   324,     0,     0,   350,     0,   345,
1708 >     346,   347,     0,     0,   313,     0,     0,     0,    96,     0,
1709 >       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1710 >       0,     0,   586,   221,     0,     0,     0,     0,     0,     0,
1711         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1712 <       0,     0,   194,   360,     0,     0,     0,     0,     0,     0,
1713 <       0,     0,     0,     0,     0,     0,     0,     0,   345,     0,
1714 <       0,     0,   399,     0,   406,     0,     0,     0,     0,   419,
1712 >       0,   203,   381,     0,     0,     0,     0,     0,     0,     0,
1713 >       0,     0,     0,     0,     0,     0,     0,   366,     0,     0,
1714 >       0,   412,     0,   419,     0,     0,     0,   427,     0,     0,
1715         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1716         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1717         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1718         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1719 <       0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
1720 <       0,     0,     0,     0,   427,     0,     0,     0,     0,     0,
1721 <       0,     0,   583,   259,     0,     0,     0,     0,     0,     0,
1722 <       0,     0,     0,   249,     0,     0,     0,     0,   389,   238,
1723 <       0,     0,     0,     0,     0,   232,     0,     0,    96,     0,
1724 <       0,     0,    41,   139,     0,     0,     0,     0,     0,     0,
1725 <       0,     0,     0,   129,   287,     0,     0,     0,     0,   282,
1726 <       0,     0,     0,     0,     0,     0,     0,   648,     0,     0,
1727 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1728 <       0,     0,    49,   304,     0,     0,     0,     0,   299,   327,
1729 <       0,     0,     0,   323,     0,   291,    95,    94,    93,   645,
1730 <     642,   641,   630,   632,    27,    27,    27,    27,    27,    29,
1731 <      28,   636,   637,   640,   638,   643,   644,   646,   647,   639,
1732 <     631,   633,   634,   635,     0,     0,     0,     0,     0,     0,
1733 <       0,     0,     0,     0,     0,     0,     0,   193,     0,     0,
1734 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1735 <       0,     0,   344,     0,     0,   398,   411,     0,     0,     0,
1736 <     413,   493,   497,   513,   579,   527,   491,   521,   524,   492,
1737 <     483,   484,   500,   489,   490,   503,   488,   502,   501,   496,
1738 <     495,   494,   522,   482,   520,   577,   578,   517,   514,   564,
1739 <     557,   574,   575,   558,   559,   560,   561,   569,   562,   572,
1740 <     576,   565,   570,   566,   571,   563,   568,   567,   573,     0,
1741 <     556,   519,   539,   533,   550,   551,   534,   535,   536,   537,
1742 <     545,   538,   548,   552,   541,   546,   542,   547,   540,   544,
1743 <     543,   549,     0,   532,   512,   515,   526,   486,   487,   516,
1744 <     505,   510,   511,   508,   509,   506,   507,   499,   498,    35,
1745 <      35,    35,    37,    36,   580,   525,   528,   518,   523,   485,
1746 <     504,     0,     0,     0,     0,     0,     0,   582,     0,     0,
1747 <       0,     0,     0,     0,     0,     0,   248,     0,     0,     0,
1748 <     383,     0,     0,     0,   243,   239,   242,   224,   104,   103,
1749 <       0,     0,   116,     0,     0,   108,   109,   111,   110,    47,
1750 <      48,     0,     0,     0,     0,     0,     0,     0,     0,   128,
1751 <       0,     0,     0,   281,   664,   659,   663,   661,   665,   660,
1752 <     662,    79,    85,    77,    81,    80,    74,    73,    75,    71,
1753 <      72,     0,    70,    78,    76,    84,    82,    83,     0,     0,
1754 <       0,   298,     0,     0,   322,   296,    30,    31,    32,    33,
1755 <      34,   220,   221,   214,   216,   218,   217,   215,   210,   222,
1756 <     213,   211,   212,   219,   365,   367,   368,   380,   377,   373,
1757 <     374,   376,   375,     0,   372,   362,   378,   379,   361,   366,
1758 <     364,   381,   363,   404,   405,   425,   426,   418,     0,   417,
1759 <     554,     0,   530,     0,    38,    39,    40,   607,   606,     0,
1760 <     605,   593,   592,   599,   598,     0,   597,   601,   600,   262,
1761 <     263,   272,   269,   274,   271,   270,   276,   273,   275,   268,
1762 <       0,   267,   261,   279,   278,   277,   260,   396,   388,     0,
1763 <     387,   395,   230,   231,   229,     0,   228,   246,   245,     0,
1764 <       0,     0,   112,     0,     0,     0,     0,   107,   145,   143,
1765 <     185,   182,   181,   174,   176,   191,   186,   189,   184,   175,
1766 <     190,   178,   187,   179,   188,   183,   177,   180,     0,   173,
1767 <     140,   142,   144,   156,   150,   167,   168,   151,   152,   153,
1768 <     154,   162,   155,   165,   169,   158,   163,   159,   164,   157,
1769 <     161,   160,   166,     0,   149,   141,   289,   290,   288,    68,
1770 <       0,   305,   311,   317,   320,   313,   319,   314,   318,   316,
1771 <     312,   315,     0,   310,   306,   328,   333,   339,   342,   335,
1772 <     341,   336,   340,   338,   334,   337,     0,   332,   370,     0,
1773 <     415,     0,   555,   531,   603,     0,   595,     0,   265,     0,
1774 <     385,     0,   226,     0,   244,   241,   240,     0,     0,     0,
1775 <       0,   106,   171,     0,   147,     0,    69,   308,     0,   330,
1823 <       0,   371,   416,   604,   596,   266,   386,   227,   113,   122,
1824 <     125,   124,   121,   126,   123,   120,     0,   119,   115,   114,
1825 <     172,   148,   309,   331,   117,     0,   118
1719 >       0,     0,     0,     0,     0,     0,     0,     0,   434,   279,
1720 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   269,
1721 >       0,     0,     0,   403,   258,     0,     0,     0,     0,     0,
1722 >     252,     0,   106,     0,     0,     0,    42,   147,     0,     0,
1723 >       0,     0,     0,     0,     0,     0,     0,   137,   308,     0,
1724 >       0,     0,     0,   303,     0,     0,     0,     0,     0,     0,
1725 >       0,   614,     0,     0,     0,     0,     0,     0,     0,     0,
1726 >       0,     0,    75,    76,     0,    74,    79,    80,     0,    78,
1727 >       0,     0,     0,     0,     0,    50,   325,     0,     0,     0,
1728 >       0,   320,   348,     0,     0,     0,   344,     0,   312,   105,
1729 >     104,   103,   609,   608,   602,    26,    26,    26,    26,    26,
1730 >      26,    26,    28,    27,   603,   604,   607,   606,   605,   610,
1731 >     611,   612,   613,     0,     0,     0,     0,     0,     0,     0,
1732 >       0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
1733 >     202,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1734 >       0,     0,     0,     0,     0,   365,     0,     0,   411,   424,
1735 >       0,     0,   426,   498,   502,   516,   585,   529,   496,   523,
1736 >     526,   497,   488,   487,   489,   490,   491,   505,   494,   495,
1737 >     506,   493,   501,   500,   499,   524,   486,   583,   584,   520,
1738 >     517,   568,   561,   578,   579,   562,   563,   564,   565,   573,
1739 >     582,   566,   576,   580,   569,   581,   574,   570,   575,   567,
1740 >     572,   571,   577,     0,   560,   522,   541,   535,   552,   553,
1741 >     536,   537,   538,   539,   547,   556,   540,   550,   554,   543,
1742 >     555,   548,   544,   549,   542,   546,   545,   551,     0,   534,
1743 >     515,   518,   528,   492,   519,   508,   513,   514,   511,   512,
1744 >     509,   510,   504,   503,   527,   530,   521,   525,   507,     0,
1745 >       0,     0,     0,     0,     0,     0,     0,   268,     0,     0,
1746 >     402,     0,     0,     0,   263,   259,   262,   244,   112,     0,
1747 >       0,   124,     0,     0,   116,   117,   119,   118,    48,    49,
1748 >       0,     0,     0,     0,     0,     0,     0,     0,   136,     0,
1749 >       0,     0,   302,   625,   630,   628,   631,   626,   627,   629,
1750 >      87,    95,    93,    94,    85,    89,    88,    82,    81,    83,
1751 >      71,     0,    72,     0,    86,    84,    92,    90,    91,     0,
1752 >       0,     0,   319,     0,     0,   343,   317,    29,    30,    31,
1753 >      32,    33,    34,    35,   232,   233,   225,   241,   242,     0,
1754 >     240,   227,   229,   228,   226,   235,   236,   222,   234,   224,
1755 >     223,    36,    36,    36,    38,    37,   230,   231,   386,   388,
1756 >     389,   399,   396,   394,   395,     0,   393,   383,   397,   398,
1757 >     382,   387,   385,   400,   384,   417,   418,   432,   433,   558,
1758 >       0,   532,     0,   282,   283,   292,   289,   294,   291,   290,
1759 >     297,   293,   295,   288,   296,     0,   287,   281,   300,   299,
1760 >     298,   280,   409,   408,   250,   251,   249,     0,   248,   266,
1761 >     265,     0,     0,     0,   120,     0,     0,     0,     0,   115,
1762 >     153,   151,   195,   192,   191,   184,   186,   200,   194,   185,
1763 >     198,   188,   196,   199,   189,   197,   193,   187,   190,     0,
1764 >     183,   148,   150,   152,   164,   158,   175,   176,   159,   160,
1765 >     161,   162,   170,   179,   163,   173,   177,   166,   178,   171,
1766 >     167,   172,   165,   169,   168,   174,     0,   157,   149,   311,
1767 >     309,   310,    73,    77,   326,   332,   338,   341,   334,   340,
1768 >     335,   339,   337,   333,   336,     0,   331,   327,   349,   354,
1769 >     360,   363,   356,   362,   357,   361,   359,   355,   358,     0,
1770 >     353,   238,     0,    39,    40,    41,   391,     0,   559,   533,
1771 >     285,     0,   246,     0,   264,   261,   260,     0,     0,     0,
1772 >       0,   114,   181,     0,   155,     0,   329,     0,   351,     0,
1773 >     239,   392,   286,   247,   121,   130,   133,   132,   129,   134,
1774 >     131,   128,     0,   127,   123,   122,   182,   156,   330,   352,
1775 >     125,     0,   126
1776   };
1777  
1778   /* YYDEFGOTO[NTERM-NUM].  */
1779   static const yytype_int16 yydefgoto[] =
1780   {
1781 <      -1,     1,    25,   829,   830,   972,   973,    26,   248,   249,
1782 <     250,   251,    27,   286,   287,   288,   576,  1051,  1052,   289,
1783 <     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1784 <     300,   301,    28,    74,    75,    76,    77,    78,    29,   239,
1785 <     240,   241,   242,   243,   244,  1014,  1015,  1016,  1017,  1018,
1786 <    1164,  1296,  1297,    30,    63,   539,   540,   541,   542,   543,
1787 <     544,   545,   546,   547,   770,  1213,  1214,   548,   766,  1188,
1788 <    1189,    31,    51,   349,   350,   351,   352,   353,   354,   355,
1789 <     356,   357,   358,   359,   360,   361,   362,   363,    32,    60,
1790 <     513,   750,  1155,  1156,   514,   515,   516,  1161,  1005,  1006,
1791 <     517,   518,    33,    58,   489,   490,   491,   492,   493,   494,
1792 <     495,   736,  1140,  1141,   496,   497,   498,    34,    64,   553,
1793 <     554,   555,   556,   557,    35,   306,   307,   308,    36,    67,
1794 <     588,   589,   590,   591,   592,   805,  1232,  1233,    37,    68,
1795 <     596,   597,   598,   599,   811,  1246,  1247,    38,    52,   378,
1796 <     379,   380,   381,   382,   383,   384,   385,   386,   387,   648,
1797 <    1093,  1094,   388,   389,   390,   391,   392,    39,    59,   503,
1798 <     745,  1149,  1150,   504,   505,   506,   507,    40,    53,   396,
1799 <     397,   398,   399,    41,   123,   124,   125,    42,    55,   407,
1800 <     667,  1108,  1109,   408,   409,   410,   411,    43,   179,   180,
1801 <     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1802 <     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1803 <     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1804 <     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1805 <     221,   222,   223,   224,   225,   226,   442,   952,   953,   227,
1806 <     440,   929,   930,   228,   229,   230,   231,    44,    57,   472,
1807 <     473,   474,   475,   476,   728,  1125,  1126,   477,   478,   479,
1808 <     725,  1119,  1120,    45,    98,    99,   100,   101,   102,   103,
1859 <     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1860 <     114,   115,   116,   117,    46,   262,   263,   264,   265,   266,
1861 <     267,   268,   269,   270
1781 >      -1,     1,    24,   782,   783,  1034,  1035,    25,   224,   225,
1782 >     226,   227,    26,   265,   266,   267,   268,   744,   745,   748,
1783 >     749,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1784 >     278,   279,   280,   281,   282,   283,    27,    71,    72,    73,
1785 >      74,    75,    28,   216,   217,   218,   219,   220,   953,   954,
1786 >     955,   956,   957,  1096,  1222,  1223,    29,    60,   498,   499,
1787 >     500,   501,   502,   503,   504,   505,   506,   714,  1146,  1147,
1788 >     507,   710,  1119,  1120,    30,    49,   328,   329,   330,   331,
1789 >     332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
1790 >     342,   343,   344,   345,   587,  1019,  1020,    31,    57,   473,
1791 >     695,  1087,  1088,   474,   475,   476,  1093,   945,   946,   477,
1792 >     478,    32,    55,   451,   452,   453,   454,   455,   456,   457,
1793 >     682,  1075,  1076,   458,   459,   460,    33,    61,   512,   513,
1794 >     514,   515,   516,    34,   288,   289,   290,    35,    64,   550,
1795 >     551,   552,   553,   554,   758,  1165,  1166,    36,    65,   558,
1796 >     559,   560,   561,   764,  1179,  1180,    37,    50,   360,   361,
1797 >     362,   363,   364,   365,   366,   367,   368,   369,   607,  1045,
1798 >    1046,   370,   371,   372,   373,   374,    38,    56,   464,   465,
1799 >     466,   467,    39,    51,   378,   379,   380,   381,    40,   108,
1800 >     109,   110,    41,    53,   388,   389,   390,   391,    42,   161,
1801 >     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1802 >     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1803 >     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1804 >     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1805 >     202,   203,   204,   205,   206,   422,   908,   909,   207,   420,
1806 >     883,   884,   208,   209,   210,    43,    89,    90,    91,    92,
1807 >      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1808 >      44,   238,   239,   240,   241,   242,   243,   244,   245,   246
1809   };
1810  
1811   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1812     STATE-NUM.  */
1813 < #define YYPACT_NINF -925
1813 > #define YYPACT_NINF -736
1814   static const yytype_int16 yypact[] =
1815   {
1816 <    -925,   650,  -925,  -171,  -239,  -236,  -925,  -925,  -925,  -233,
1817 <    -925,  -225,  -925,  -925,  -925,  -925,  -218,  -204,  -925,  -925,
1818 <    -170,  -165,  -925,  -925,  -159,  -925,  -925,  -925,  -925,  -925,
1819 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1820 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,   298,
1821 <     486,  -139,  -122,   -83,    27,   -76,   368,   -66,   -33,   -31,
1822 <     -28,    76,   115,   -21,   -12,   549,   332,    50,    57,    74,
1823 <    -208,     7,    30,    59,    20,  -925,  -925,  -925,  -925,  -925,
1824 <      63,    65,    80,    87,    90,    92,   106,   117,   118,   120,
1825 <     121,   122,   123,   129,   130,   131,   134,   138,   180,  -925,
1826 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1827 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,   736,   502,
1828 <      16,  -925,   140,    21,  -925,  -925,   218,  -925,   141,   142,
1829 <     144,   146,   147,   148,   156,   158,   169,   172,   174,   175,
1830 <     176,   182,   183,   185,   186,   187,   195,   198,   199,   203,
1831 <     204,   207,   211,   212,   213,   222,  -925,   223,  -925,   225,
1832 <     226,   228,   236,   238,   245,   252,   253,   256,   257,   258,
1833 <     260,   265,   272,   273,   277,   279,   281,   292,   293,   110,
1834 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1835 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1836 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1837 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1838 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1839 <    -925,  -925,   411,   393,   152,   402,    85,   299,   300,    73,
1840 <    -925,  -925,  -925,  -925,    17,   105,   304,   307,     8,  -925,
1841 <    -925,  -925,   346,    28,  -925,   308,   309,   313,   314,   315,
1842 <     316,   325,    19,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1843 <    -925,   271,   330,   336,   339,   341,   347,   350,   351,   354,
1844 <    -925,   359,   365,   370,   371,   372,    12,  -925,  -925,  -925,
1845 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1846 <    -925,  -925,   177,    23,  -925,   373,    10,  -925,  -925,  -925,
1847 <     241,   290,   323,   378,  -925,   446,   512,   514,   450,   451,
1848 <     519,   519,   523,   524,   462,   464,   531,   519,   465,   467,
1849 <     468,   469,   470,   405,  -925,   406,   404,   408,   410,   412,
1850 <     413,   414,   415,   417,   418,   419,   420,   422,   424,   268,
1851 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1852 <    -925,  -925,  -925,  -925,   431,   429,   432,   433,   434,  -925,
1853 <     435,   437,   438,   439,   440,   441,   442,   443,    62,  -925,
1854 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1855 <    -925,  -925,  -925,  -925,   444,   447,    36,  -925,  -925,  -925,
1856 <     522,   449,  -925,  -925,   448,   453,  -925,  -925,   102,  -925,
1857 <    -925,  -925,   518,   519,   519,   584,   526,   528,   588,   573,
1858 <     535,   595,   601,   602,   539,   544,   545,   519,   592,   551,
1859 <     614,   619,   519,   620,   624,   604,   629,   632,   568,   570,
1860 <     503,   575,   508,   519,   519,   578,   519,   579,   585,   586,
1861 <      14,    49,   589,   593,   519,   519,   653,   640,   519,   597,
1862 <     598,   599,   600,   536,  -925,  -925,  -925,   532,   534,  -925,
1863 <     537,   538,     2,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1864 <     543,   542,   546,  -925,   547,   548,   550,   552,   553,    29,
1865 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1866 <     554,  -925,   555,  -925,    11,  -925,  -925,  -925,   560,  -925,
1867 <     558,   559,   561,  -925,    22,  -925,  -925,  -925,  -925,  -925,
1868 <     605,   612,   563,  -925,   564,  -925,   648,   658,   565,  -925,
1869 <     567,   571,   572,  -925,   574,   576,   577,  -925,   582,    98,
1870 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,   581,
1871 <     583,   587,   590,    13,  -925,  -925,  -925,  -925,   613,   636,
1872 <     637,   664,   642,   644,   519,   591,  -925,  -925,   698,   655,
1873 <     702,   704,   706,   707,   713,   714,   609,   723,   725,   750,
1874 <     737,   738,   630,  -925,   633,   626,  -925,   631,    95,  -925,
1875 <    -925,  -925,  -925,   635,   639,  -925,    26,  -925,  -925,  -925,
1876 <     742,   643,  -925,   646,   647,   651,  -925,   654,   662,   663,
1877 <     671,   674,   423,   675,   679,   680,   682,   686,   690,   691,
1878 <     693,   694,   695,   697,   699,   700,  -925,  -925,   767,   789,
1879 <     519,   827,   832,   833,   834,   814,   836,   837,   519,   519,
1880 <     653,   708,  -925,  -925,   817,   157,   819,   776,   709,   821,
1881 <     823,   824,   825,   847,   828,   829,   830,   717,  -925,   831,
1882 <     835,   722,  -925,   726,  -925,   838,   839,   720,   727,  -925,
1883 <     730,   731,   732,   733,   734,   735,   739,   740,   741,   743,
1884 <     744,   745,   746,   747,   748,   749,   751,   752,   753,   754,
1885 <     755,   756,   757,   758,   759,   760,   761,   762,   657,   763,
1886 <     696,   764,   765,   766,   768,   769,   770,   771,   772,   773,
1887 <     774,   775,   777,   778,   779,   780,    75,   781,   782,   783,
1888 <     784,   785,   786,   787,  -925,   721,   519,   802,   788,   848,
1889 <     852,   790,  -925,  -925,   860,   803,   791,   877,   907,   898,
1890 <     899,   902,   793,  -925,   905,   794,   906,   798,  -925,  -925,
1891 <     796,   910,   911,   933,   804,  -925,   805,   806,  -925,   132,
1892 <     807,   808,  -925,  -925,   913,   875,   809,   920,   921,   923,
1893 <     811,   925,   816,  -925,  -925,   927,   928,   929,   820,  -925,
1894 <     822,   826,   840,   841,   842,   843,   844,  -925,   845,   846,
1895 <     849,   850,   851,   853,   854,   855,   210,   856,   857,   858,
1896 <     859,   861,  -925,  -925,   931,   862,   934,   863,  -925,  -925,
1897 <     935,   864,   866,  -925,   868,  -925,  -925,  -925,  -925,  -925,
1898 <    -925,  -925,  -925,  -925,   519,   519,   519,   519,   519,  -925,
1899 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1900 <    -925,  -925,  -925,  -925,   869,   870,   871,   872,   873,   874,
1901 <     876,   878,   879,   880,   881,   882,   883,  -925,   884,   885,
1902 <     886,   887,   888,   128,   889,   890,   891,   892,   893,   894,
1903 <     895,   896,  -925,   897,   900,  -925,  -925,   901,   903,   932,
1904 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1905 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1906 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1907 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1908 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -226,
1909 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1910 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1911 <    -925,  -925,  -210,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1912 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,   653,
1913 <     653,   653,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1914 <    -925,    -6,   904,   908,     5,   909,   912,  -925,   914,   915,
1915 <     454,   916,   917,   918,   919,   922,  -925,   924,   936,   926,
1916 <    -925,   -35,   930,   937,   938,   939,  -925,  -925,  -925,  -925,
1917 <     940,   941,  -925,   942,    31,  -925,  -925,  -925,  -925,  -925,
1918 <    -925,   946,   947,   530,   948,   949,   950,   724,   951,  -925,
1919 <     952,   953,   954,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1920 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1921 <    -925,  -205,  -925,  -925,  -925,  -925,  -925,  -925,   955,   515,
1922 <     956,  -925,   957,   557,  -925,  -925,  -925,  -925,  -925,  -925,
1923 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1924 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1925 <    -925,  -925,  -925,  -203,  -925,  -925,  -925,  -925,  -925,  -925,
1926 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -193,  -925,
1927 <    -925,   657,  -925,   696,  -925,  -925,  -925,  -925,  -925,  -181,
1928 <    -925,  -925,  -925,  -925,  -925,  -179,  -925,  -925,  -925,  -925,
1929 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1930 <    -144,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,   -24,
1931 <    -925,  -925,  -925,  -925,  -925,    -5,  -925,  -925,  -925,   959,
1932 <     933,   958,  -925,   943,   960,   -60,   961,  -925,  -925,  -925,
1933 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1934 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,    -2,  -925,
1935 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1936 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1937 <    -925,  -925,  -925,    34,  -925,  -925,  -925,  -925,  -925,  -925,
1938 <     210,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1939 <    -925,  -925,    69,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1993 <    -925,  -925,  -925,  -925,  -925,  -925,    82,  -925,  -925,   128,
1994 <    -925,   932,  -925,  -925,  -925,    -6,  -925,     5,  -925,   454,
1995 <    -925,   936,  -925,   -35,  -925,  -925,  -925,   962,   409,   964,
1996 <     965,  -925,  -925,   530,  -925,   724,  -925,  -925,   515,  -925,
1997 <     557,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1998 <    -925,  -925,  -925,  -925,  -925,  -925,   100,  -925,  -925,  -925,
1999 <    -925,  -925,  -925,  -925,  -925,   409,  -925
1816 >    -736,   555,  -736,  -199,  -215,  -209,  -736,  -736,  -736,  -172,
1817 >    -736,  -170,  -736,  -736,  -736,  -157,  -146,  -736,  -736,  -135,
1818 >    -133,  -736,  -736,  -122,  -736,  -736,  -736,  -736,  -736,  -736,
1819 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1820 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,   310,   847,  -104,
1821 >     -93,   -82,    24,   -33,   352,   -30,   -27,   -22,    49,    14,
1822 >     -20,   -16,   825,   390,    -8,    -6,    10,  -158,   -39,    -5,
1823 >      -3,    18,  -736,  -736,  -736,  -736,  -736,     7,    37,    61,
1824 >      68,    83,    84,    86,    90,    91,    92,    99,   109,     8,
1825 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1826 >    -736,  -736,  -736,   651,   433,    11,  -736,   113,    38,  -736,
1827 >    -736,    53,  -736,   126,   127,   130,   131,   132,   133,   145,
1828 >     146,   150,   152,   153,   155,   159,   160,   162,   164,   165,
1829 >     166,   168,   171,   175,   176,   177,   181,   185,   191,   193,
1830 >     194,  -736,   196,  -736,   197,   198,   199,   200,   203,   218,
1831 >     219,   221,   223,   225,   227,   229,   230,   232,   233,   234,
1832 >     242,   117,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1833 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1834 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1835 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1836 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1837 >    -736,   335,     4,   304,    50,   246,    31,  -736,  -736,  -736,
1838 >     208,    52,   250,   253,    26,  -736,  -736,  -736,   503,   141,
1839 >    -736,   261,   263,   269,   271,   272,   273,   274,    27,  -736,
1840 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,   144,   276,   277,
1841 >     281,   282,   284,   291,   301,   302,   303,   306,   307,   308,
1842 >     309,   312,   314,   317,   318,   188,  -736,  -736,  -736,  -736,
1843 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1844 >    -736,  -736,  -736,  -736,     6,    15,  -736,   321,    44,  -736,
1845 >    -736,  -736,   324,   406,   424,   210,  -736,   443,   444,    72,
1846 >     445,   445,   447,   448,   452,   395,   403,   462,   445,   347,
1847 >    -736,   353,   359,   360,   361,  -736,   362,   364,   366,   368,
1848 >     374,   376,   377,   378,   384,   386,   387,   388,   222,  -736,
1849 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1850 >    -736,  -736,  -736,  -736,  -736,  -736,   355,   389,   391,   392,
1851 >     393,  -736,   397,   398,   399,   400,   401,   404,   405,   407,
1852 >      35,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1853 >    -736,  -736,  -736,  -736,  -736,  -736,   408,   410,    45,  -736,
1854 >    -736,  -736,   455,   370,  -736,  -736,   412,   413,    69,  -736,
1855 >    -736,  -736,   451,   445,   445,   514,   467,   475,   534,   519,
1856 >     480,   445,   481,   445,   542,   546,   548,   492,   495,   496,
1857 >     445,   556,   559,   445,   560,   564,   572,   573,   497,   516,
1858 >     458,   521,   464,   445,   445,   527,   528,   530,   533,   -47,
1859 >      47,   535,   536,   445,   445,   575,   445,   539,   543,   547,
1860 >     484,  -736,   488,   487,   489,  -736,   490,   498,   499,   500,
1861 >     501,   207,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1862 >    -736,  -736,   502,   508,    30,  -736,  -736,  -736,   491,  -736,
1863 >     509,   512,   513,  -736,    12,  -736,  -736,  -736,  -736,  -736,
1864 >     557,   506,  -736,   515,  -736,   599,   617,   523,  -736,   524,
1865 >     522,   525,  -736,   526,   529,   531,  -736,   532,   163,  -736,
1866 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   540,   544,
1867 >     552,   553,    25,  -736,  -736,  -736,  -736,   577,   585,   629,
1868 >     589,   591,   596,   445,   558,  -736,  -736,   638,   620,   680,
1869 >     682,   668,   669,   671,   672,   673,   674,    36,   120,   685,
1870 >     690,   699,   691,   693,   598,  -736,   600,   603,  -736,   605,
1871 >      32,  -736,  -736,  -736,  -736,   602,   606,  -736,    59,  -736,
1872 >    -736,  -736,   709,   611,  -736,   612,   622,   628,  -736,   634,
1873 >     636,   642,   204,   644,   645,   646,   650,   652,   654,   660,
1874 >     661,   662,  -736,  -736,   746,   754,   445,   648,   779,   780,
1875 >     781,   782,   445,   445,   766,   784,   785,   445,   786,   786,
1876 >     675,  -736,  -736,   770,   107,   771,   731,   676,   775,   776,
1877 >     777,   783,   796,   787,   788,   789,   681,  -736,   790,   791,
1878 >     683,  -736,   686,  -736,   794,   795,   687,  -736,   697,   698,
1879 >     700,   704,   705,   706,   707,   708,   710,   711,   712,   713,
1880 >     714,   715,   716,   717,   718,   719,   720,   721,   722,   723,
1881 >     724,   725,   726,   729,   730,   732,   594,   733,   630,   734,
1882 >     735,   736,   737,   738,   741,   742,   743,   744,   745,   747,
1883 >     748,   749,   750,   751,   752,   753,   755,   756,  -736,  -736,
1884 >     798,   740,   728,   808,   801,   845,   853,   856,   758,  -736,
1885 >     858,   859,   761,  -736,  -736,   759,   862,   863,   881,   767,
1886 >    -736,   768,  -736,     3,   769,   772,  -736,  -736,   865,   828,
1887 >     773,   870,   872,   873,   774,   874,   778,  -736,  -736,   878,
1888 >     879,   880,   792,  -736,   793,   797,   799,   800,   802,   803,
1889 >     804,  -736,   805,   806,   807,   809,   810,   811,   812,   813,
1890 >     814,   815,  -736,  -736,  -204,  -736,  -736,  -736,  -201,  -736,
1891 >     816,   817,   818,   819,   820,  -736,  -736,   882,   821,   883,
1892 >     822,  -736,  -736,   884,   823,   827,  -736,   829,  -736,  -736,
1893 >    -736,  -736,  -736,  -736,  -736,   445,   445,   445,   445,   445,
1894 >     445,   445,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1895 >    -736,  -736,  -736,   830,   831,   832,   211,   833,   834,   835,
1896 >     836,   837,   838,   839,   840,   841,   842,    46,   843,   844,
1897 >    -736,   846,   848,   849,   850,   851,    -2,   852,   854,   855,
1898 >     857,   860,   861,   864,   866,  -736,   867,   868,  -736,  -736,
1899 >     869,   871,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1900 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1901 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1902 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1903 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1904 >    -736,  -736,  -736,  -184,  -736,  -736,  -736,  -736,  -736,  -736,
1905 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1906 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -178,  -736,
1907 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1908 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   875,
1909 >     876,   538,   877,   885,   886,   887,   888,  -736,   889,   890,
1910 >    -736,   -17,   891,   892,   899,   824,  -736,  -736,  -736,   893,
1911 >     894,  -736,   895,    43,  -736,  -736,  -736,  -736,  -736,  -736,
1912 >     896,   900,   469,   901,   902,   903,   666,   904,  -736,   905,
1913 >     906,   907,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1914 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1915 >    -736,    36,  -736,   120,  -736,  -736,  -736,  -736,  -736,   908,
1916 >     472,   909,  -736,   910,   517,  -736,  -736,  -736,  -736,  -736,
1917 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -163,
1918 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1919 >    -736,   786,   786,   786,  -736,  -736,  -736,  -736,  -736,  -736,
1920 >    -736,  -736,  -736,  -736,  -736,  -160,  -736,  -736,  -736,  -736,
1921 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1922 >     594,  -736,   630,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1923 >    -736,  -736,  -736,  -736,  -736,  -153,  -736,  -736,  -736,  -736,
1924 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -134,  -736,  -736,
1925 >    -736,   898,   881,   911,  -736,   897,   912,   -87,   913,  -736,
1926 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1927 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -132,
1928 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1929 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1930 >    -736,  -736,  -736,  -736,  -736,  -736,   -71,  -736,  -736,  -736,
1931 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1932 >    -736,  -736,  -736,  -736,  -736,   -55,  -736,  -736,  -736,  -736,
1933 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   -38,
1934 >    -736,  -736,   211,  -736,  -736,  -736,  -736,    -2,  -736,  -736,
1935 >    -736,   538,  -736,   -17,  -736,  -736,  -736,   914,   367,   916,
1936 >     917,  -736,  -736,   469,  -736,   666,  -736,   472,  -736,   517,
1937 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1938 >    -736,  -736,   -37,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1939 >    -736,   367,  -736
1940   };
1941  
1942   /* YYPGOTO[NTERM-NUM].  */
1943   static const yytype_int16 yypgoto[] =
1944   {
1945 <    -925,  -925,  -925,  -769,  -319,  -924,  -456,  -925,  -925,   963,
1946 <    -925,  -925,  -925,  -925,   792,  -925,  -925,  -925,  -156,  -925,
1947 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1948 <    -925,  -925,  -925,  -925,   996,  -925,  -925,  -925,  -925,  -925,
1949 <     944,  -925,  -925,  -925,  -925,  -925,    61,  -925,  -925,  -925,
1950 <    -925,  -925,  -234,  -925,  -925,  -925,   540,  -925,  -925,  -925,
1951 <    -925,  -925,  -925,  -925,  -925,  -925,  -202,  -925,  -925,  -925,
1952 <    -197,  -925,  -925,  -925,   728,  -925,  -925,  -925,  -925,  -925,
1953 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1954 <    -925,  -925,  -925,  -183,  -925,   625,  -925,  -925,  -925,   -72,
1955 <    -925,  -925,  -925,  -925,  -925,   616,  -925,  -925,  -925,  -925,
1956 <    -925,  -925,  -925,  -166,  -925,  -925,  -925,  -925,  -925,  -925,
1957 <     594,  -925,  -925,  -925,  -925,  -925,   795,  -925,  -925,  -925,
1958 <    -925,   501,  -925,  -925,  -925,  -925,  -925,  -175,  -925,  -925,
1959 <    -925,   520,  -925,  -925,  -925,  -925,  -140,  -925,  -925,  -925,
1960 <     797,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1961 <    -925,  -106,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1962 <    -925,  -925,  -115,  -925,   660,  -925,  -925,  -925,  -925,  -925,
1963 <     812,  -925,  -925,  -925,  -925,  1025,  -925,  -925,  -925,  -925,
1964 <    -925,  -925,  -100,  -925,   799,  -925,  -925,  -925,  -925,   973,
1965 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1966 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1967 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1968 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1969 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,    41,  -925,
1970 <    -925,  -925,    51,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1971 <     689,  -925,  -925,  -925,  -925,  -925,   -91,  -925,  -925,  -925,
1972 <    -925,  -925,   -87,  -925,  -925,  1071,  -925,  -925,  -925,  -925,
2033 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
2034 <    -925,  -925,  -925,  -925,  -925,  -925,   966,  -925,  -925,  -925,
2035 <    -925,  -925,  -925,  -925
1945 >    -736,  -736,  -736,  -297,  -298,  -735,  -598,  -736,  -736,   915,
1946 >    -736,  -736,  -736,  -736,   757,  -736,  -736,  -736,    16,  -736,
1947 >      17,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1948 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   937,  -736,
1949 >    -736,  -736,  -736,  -736,   826,  -736,  -736,  -736,  -736,    56,
1950 >    -736,  -736,  -736,  -736,  -736,  -220,  -736,  -736,  -736,   518,
1951 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -193,
1952 >    -736,  -736,  -736,  -188,  -736,  -736,  -736,   689,  -736,  -736,
1953 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1954 >    -736,  -736,  -736,  -736,  -736,  -736,  -138,  -736,  -736,  -736,
1955 >    -736,  -736,  -164,  -736,   609,  -736,  -736,  -736,   -46,  -736,
1956 >    -736,  -736,  -736,  -736,   623,  -736,  -736,  -736,  -736,  -736,
1957 >    -736,  -736,  -123,  -736,  -736,  -736,  -736,  -736,  -736,   565,
1958 >    -736,  -736,  -736,  -736,  -736,   918,  -736,  -736,  -736,  -736,
1959 >     541,  -736,  -736,  -736,  -736,  -736,  -128,  -736,  -736,  -736,
1960 >     537,  -736,  -736,  -736,  -736,  -129,  -736,  -736,  -736,   739,
1961 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1962 >    -103,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   637,
1963 >    -736,  -736,  -736,  -736,  -736,   727,  -736,  -736,  -736,  -736,
1964 >     978,  -736,  -736,  -736,  -736,   760,  -736,  -736,  -736,  -736,
1965 >     932,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1966 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1967 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1968 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1969 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,    40,  -736,  -736,
1970 >    -736,    34,  -736,  -736,  -736,  -736,  -736,  1011,  -736,  -736,
1971 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1972 >    -736,  -736,   919,  -736,  -736,  -736,  -736,  -736,  -736,  -736
1973   };
1974  
1975   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1976     positive, shift that token.  If negative, reduce the rule which
1977     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1978 < #define YYTABLE_NINF -106
1978 > #define YYTABLE_NINF -114
1979   static const yytype_int16 yytable[] =
1980   {
1981 <     717,   613,   614,   465,    49,  1117,   466,    50,   620,   245,
1982 <      54,   304,   499,   271,   549,  1110,  1123,   393,    56,  1111,
1983 <     254,    70,   121,   508,   593,    61,  1152,   593,   121,   549,
1984 <     480,  1112,  1010,   309,   550,  1113,  1219,   393,  1248,    62,
1985 <    1220,   467,  1249,   272,   468,  1114,  1115,  1116,  1250,   550,
1986 <     716,    71,  1251,   481,   255,  1066,  1067,  1068,  1069,  1070,
1987 <    1254,    72,  1256,   364,  1255,   365,  1257,   256,   366,   509,
1988 <      47,    48,   482,    65,   236,   304,   483,   236,    66,   273,
1989 <     257,   258,   259,   260,    69,   469,   367,   394,   510,   969,
1990 <     970,   971,   122,   511,   671,   672,   584,  1258,   122,   530,
1991 <     261,  1259,   470,   403,   118,   368,   246,   394,   685,   369,
1992 <     305,   127,   274,   690,   275,   276,   245,   551,   128,   129,
1993 <      73,   119,   531,   594,   701,   702,   594,   704,   370,   130,
1994 <     371,  1011,   551,  1010,   247,   714,   715,   131,  1089,   719,
1995 <    1090,   532,   372,   132,   500,   533,   552,   133,   134,   395,
1996 <     135,  1269,   512,   499,   484,   277,   136,   278,   279,   280,
1997 <     120,   552,   373,   485,   486,   137,   138,   126,  1153,   395,
1998 <     139,  1118,  1154,   281,   305,   140,   501,   232,   584,   141,
1999 <     142,    79,  1124,   143,   856,   716,   144,   145,   595,   708,
2000 <     709,   595,   374,    80,   146,   585,  1012,   487,   534,   282,
2001 <     147,   148,   404,   149,   150,   151,   152,   153,    81,    82,
2002 <     233,   283,   234,   246,    83,   235,    84,  1260,   154,   403,
2003 <     375,  1261,   252,   535,   710,   711,   155,   156,   157,   471,
2004 <     158,   253,  1011,   159,   160,   405,  1262,   161,   502,  1272,
2005 <    1263,   247,   536,  1273,   731,   786,   284,   285,   162,   376,
2006 <     528,   310,   601,   747,   582,   778,   488,   524,    85,    86,
2007 <     586,   565,   313,   401,   754,    87,    88,   406,   812,   335,
2008 <    1013,   742,   163,  1166,   311,  1274,   164,   585,   661,  1275,
2009 <     165,   166,   167,   168,   169,   500,    89,    90,   170,   171,
2010 <     336,   337,   237,   302,   338,   237,   377,  1012,   172,    70,
2011 <     303,    91,    92,   312,   657,   238,   537,   315,   238,   316,
2012 <    1277,   846,    93,  -105,  1278,   522,  -105,   501,   404,   854,
2013 <     855,    94,   587,  1279,   317,   538,   519,  1280,   173,    71,
2014 <     174,   318,   175,   271,   319,  1091,   320,   807,   176,    72,
2015 <     772,  1304,   586,   177,   668,  1305,   525,   530,   178,  1092,
2016 <     321,   405,   463,   859,   860,   339,   340,   341,  1049,  1050,
2017 <     342,   322,   323,   272,   324,   325,   326,   327,   343,   127,
2018 <     531,  1013,   603,   328,   329,   330,   128,   129,   331,   502,
2019 <     344,   345,   332,   406,   400,   412,   413,   130,   414,   532,
2020 <     415,   416,   417,   533,   480,   131,   346,   347,    73,   273,
2021 <     418,   132,   419,   508,   587,   133,   134,   982,   135,    95,
2022 <      96,    97,   465,   420,   136,   466,   421,   481,   422,   423,
2023 <     424,   604,   333,   137,   138,   348,   425,   426,   139,   427,
2024 <     428,   429,   274,   140,   275,   276,   482,   141,   142,   430,
2025 <     483,   143,   431,   432,   144,   145,   534,   433,   434,   509,
2026 <     467,   435,   146,   468,   605,   436,   437,   438,   147,   148,
2027 <    1289,   149,   150,   151,   152,   153,   439,   441,   510,   443,
2028 <     444,   535,   445,   511,  1131,   277,   154,   278,   279,   280,
2029 <     446,  1290,   447,  1291,   155,   156,   157,    79,   158,   448,
2030 <     536,   159,   160,   281,   469,   161,   449,   450,  1132,    80,
2031 <     451,   452,   453,   364,   454,   365,   162,  1133,   366,   455,
2032 <     641,   470,   567,  1134,    81,    82,   456,   457,   484,   282,
2033 <      83,   458,    84,   459,  1292,   460,   367,   485,   486,  1135,
2034 <     163,   283,   512,   612,   164,  1170,   461,   462,   165,   166,
2035 <     167,   168,   169,   520,   521,   368,   170,   171,   526,   369,
2036 <     254,   527,   558,   559,   537,  1136,   172,   560,   561,   562,
2037 <     563,   487,  1171,  1137,    85,    86,   284,   285,   370,   564,
2038 <     371,    87,    88,   538,   568,   824,   825,   826,   827,   828,
2039 <     569,  1172,   372,   570,   255,   571,   173,  1173,   174,  1222,
2040 <     175,   572,    89,    90,   573,   574,   176,   256,   575,  1293,
2041 <    1294,   177,   373,   577,  1174,  1138,   178,    91,    92,   578,
2042 <     257,   258,   259,   260,   579,   580,   581,   600,    93,   606,
2043 <     488,   607,   608,  1139,   609,   610,   611,    94,  1175,   612,
2044 <     261,  1236,   374,   615,   616,  1176,  1295,   617,   471,   618,
2045 <     621,   619,   622,   623,   624,   625,   626,   627,   628,  1177,
2046 <       2,     3,   629,   663,   630,     4,   631,   632,   633,   634,
2047 <     375,   635,   636,   637,   638,  1223,   639,  1178,   640,  1179,
2048 <    1180,     5,   643,   644,     6,     7,   645,   646,   647,   649,
2049 <       8,   650,   651,   652,   653,   654,   655,   656,   659,   376,
2050 <     664,   660,   665,   670,   673,     9,  1224,   666,   676,    10,
2051 <      11,   674,    12,   675,   677,   679,  1225,  1237,    13,  1270,
2052 <     678,   680,   681,  1226,   682,    95,    96,    97,   909,   683,
2053 <     684,  1181,    14,   686,   688,  1227,   687,  1228,  1229,   689,
2054 <     691,  1182,    15,    16,   692,   693,   377,   335,  1238,   694,
2055 <    1183,  1230,   695,   696,  1184,   697,  1185,   698,  1239,    17,
2056 <     699,  1231,   700,   703,   705,  1240,  1186,   932,   336,   337,
2057 <     706,   707,   338,   716,   712,    18,  1187,  1241,   713,  1242,
2058 <    1243,   718,   720,   721,   722,   723,   726,   724,   727,   760,
2059 <     756,   729,   730,  1244,   733,  1193,   734,   757,   780,   761,
2060 <     735,   737,   738,  1245,   739,   783,   740,   741,   744,   746,
2061 <      19,   749,   751,   752,   758,   753,   762,   759,   763,    20,
2062 <      21,   781,   782,    22,    23,   764,   765,   784,   767,   785,
2063 <     768,   769,   774,   339,   340,   341,   771,   775,   342,   788,
2064 <     789,   776,   787,   790,   777,   791,   343,   792,   793,   910,
2065 <     911,   912,   913,   914,   794,   795,   915,   916,   344,   345,
2066 <     917,   918,   919,   796,   797,   920,   798,   921,   922,   923,
2067 <     799,   924,   925,   926,   346,   347,   927,    24,   800,   801,
2068 <     804,   802,   928,   814,   803,   806,   809,   844,   933,   934,
2069 <     935,   936,   937,   810,   815,   938,   939,   816,   817,   940,
2070 <     941,   942,   818,   348,   943,   819,   944,   945,   946,   845,
2071 <     947,   948,   949,   820,   821,   950,  1194,  1195,  1196,  1197,
2072 <    1198,   951,   822,  1199,  1200,   823,   831,  1201,  1202,  1203,
2073 <     832,   833,  1204,   834,  1205,  1206,  1207,   835,  1208,  1209,
2074 <    1210,   836,   837,  1211,   838,   839,   840,   847,   841,  1212,
2075 <     842,   843,   848,   849,   850,   851,   852,   853,   858,   857,
2076 <     861,   862,   864,   863,   865,   866,   867,   868,   872,   869,
2077 <     870,   871,   873,   875,   879,   981,   874,   876,   880,   877,
2078 <     878,   881,   882,   883,   884,   885,   886,   983,   989,   985,
2079 <     887,   888,   889,   986,   890,   891,   892,   893,   894,   895,
2080 <     896,   988,   897,   898,   899,   900,   901,   902,   903,   904,
2081 <     905,   906,   907,   908,   931,   954,   955,   956,   991,   957,
2082 <     958,   959,   960,   961,   962,   963,   964,   992,   965,   966,
2083 <     967,   968,   974,   975,   976,   977,   978,   979,   980,   993,
2084 <     994,   987,   984,   995,   996,   990,   997,   999,   998,  1000,
2085 <    1001,  1002,  1003,  1004,  1021,  1007,  1008,  1009,  1019,  1020,
2086 <    1022,  1024,  1025,  1023,  1026,  1027,  1028,  1029,  1030,  1031,
2087 <    1032,  1033,  1058,  1034,  1276,  1060,  1062,  1035,  1107,  1264,
2088 <     314,  1306,  1148,  1301,  1267,  1167,  1300,   642,   583,   773,
2089 <    1287,  1036,  1037,  1038,  1039,  1040,  1041,  1042,  1265,   808,
2090 <    1043,  1044,  1045,  1285,  1046,  1047,  1048,  1053,  1054,  1055,
2091 <    1056,   602,  1057,  1302,  1061,   743,  1059,  1064,  1063,  1065,
2092 <    1071,  1072,  1073,  1074,  1075,  1076,   813,  1077,  1159,  1078,
2093 <    1079,  1080,  1081,  1082,  1083,  1084,  1085,  1086,  1087,  1088,
2094 <    1095,  1096,  1097,  1098,  1099,  1100,  1101,  1102,  1103,   755,
2095 <    1303,  1104,  1105,  1281,  1106,  1121,  1286,   779,   402,  1122,
2096 <    1127,  1282,   464,  1128,  1253,  1129,  1130,  1142,  1143,  1144,
2097 <    1145,   732,  1252,  1146,   748,  1147,  1284,  1151,  1283,   334,
2098 <       0,  1157,     0,     0,     0,   658,     0,     0,  1158,     0,
2099 <       0,  1162,     0,   523,  1160,  1163,  1165,  1168,  1169,  1190,
2100 <    1191,  1192,  1215,  1216,  1217,  1218,  1221,  1234,  1235,  1266,
2101 <       0,     0,  1271,  1288,  1268,  1298,  1299,   669,   662,     0,
2165 <       0,   529,     0,     0,     0,     0,     0,     0,     0,     0,
2166 <       0,     0,     0,     0,     0,     0,     0,     0,   566
1981 >     808,   809,   573,   574,   949,   461,  1043,   546,    47,    76,
1982 >     581,   286,   375,   468,    48,   221,   555,   990,   807,    67,
1983 >     992,   991,    45,    46,   993,   106,   508,   221,   230,    77,
1984 >      78,   461,   214,   546,  1084,    79,   346,  1059,   347,   106,
1985 >     348,  1060,    68,  1061,   949,   286,   375,  1062,   469,    69,
1986 >     214,    52,   349,    54,   385,  1031,  1032,  1033,  1181,   509,
1987 >     555,  1186,  1182,   291,   231,  1187,    58,   350,  1190,   470,
1988 >     385,   351,  1191,   376,   471,    80,    81,    59,   232,   233,
1989 >     234,   235,   236,    82,    83,    84,   107,  1192,    62,  1202,
1990 >      63,  1193,   352,  1203,   353,   629,   630,   237,   510,   950,
1991 >     107,    66,   547,   637,   354,   639,   287,   376,   222,    85,
1992 >      86,   556,   646,  1199,    70,   649,   665,   666,   112,   103,
1993 >     222,    87,    88,   113,   114,   659,   660,   462,   547,   115,
1994 >     104,   355,   223,   472,   377,   671,   672,   116,   674,   950,
1995 >     287,   105,   508,   117,   223,   118,   119,   120,   511,   386,
1996 >    1204,   807,   121,   462,  1205,   556,   356,   951,   122,   123,
1997 >     548,   124,   125,   126,   489,   386,  1206,   127,   377,   557,
1998 >    1207,   742,   743,   128,  1085,   509,   387,   129,   130,  1086,
1999 >     490,   131,   357,  1208,  1230,   292,   548,  1209,  1231,   247,
2000 >     111,   132,   387,   211,  1044,   491,   212,   951,   133,   492,
2001 >     134,   213,   135,   228,   136,   137,   138,   229,   442,   358,
2002 >     667,   668,   248,   557,   510,   284,   463,   285,   549,   293,
2003 >     139,   294,   952,   311,   443,   730,   140,   141,   142,   143,
2004 >     309,   297,   144,   145,   699,   571,   146,   312,   313,   444,
2005 >     295,   314,   463,   445,   549,   215,   249,   722,   487,   524,
2006 >     359,  -113,   692,   481,   760,   746,   747,   616,   315,   493,
2007 >     383,   298,   952,   215,   511,  1098,   563,   620,   147,  -113,
2008 >     250,   479,   148,   484,   251,   149,   150,   151,   152,   153,
2009 >     494,   765,   154,   155,   252,   299,   253,   254,   795,   812,
2010 >     813,   626,   300,   495,   801,   802,  1183,  1184,  1185,   806,
2011 >     316,   317,   318,  1017,  1018,   468,   319,   301,   302,   572,
2012 >     303,    67,   320,   321,   304,   305,   306,   255,   322,   256,
2013 >     257,   258,   259,   307,   446,   156,   157,   158,   323,   324,
2014 >     159,   447,   448,   308,    68,   160,   442,   382,   260,   440,
2015 >     469,    69,   325,   775,   776,   777,   778,   779,   780,   781,
2016 >     392,   393,   443,   112,   394,   395,   396,   397,   113,   114,
2017 >     496,   470,   261,   449,   115,   526,   471,   444,   326,   398,
2018 >     399,   445,   116,   262,   400,   497,   401,   402,   117,   403,
2019 >     118,   119,   120,   404,   405,   716,   406,   121,   407,   408,
2020 >     409,   247,   410,   122,   123,   411,   124,   125,   126,   412,
2021 >     413,   414,   127,   263,   264,   415,    70,  1215,   128,   416,
2022 >     544,   327,   129,   130,   248,   417,   131,   418,   419,   450,
2023 >     421,   423,   424,   425,   426,   472,   132,   427,   483,   688,
2024 >    1216,   568,  1217,   133,   346,   134,   347,   135,   348,   136,
2025 >     137,   138,   428,   429,   600,   430,   565,   431,   249,   432,
2026 >     349,   433,   446,   434,   435,   139,   436,   437,   438,   447,
2027 >     448,   140,   141,   142,   143,   350,   439,   144,   145,   351,
2028 >     480,   146,   250,  1102,   485,  1218,   251,   486,  1007,  1008,
2029 >    1009,  1010,  1011,  1012,  1013,   517,   252,   518,   253,   254,
2030 >     352,   449,   353,   519,  1103,   520,   521,   522,   523,  1200,
2031 >     527,   528,   354,   147,   489,   529,   530,   148,   531,  1104,
2032 >     149,   150,   151,   152,   153,   532,  1105,   154,   155,   255,
2033 >     490,   256,   257,   258,   259,   533,   534,   535,   566,   355,
2034 >     536,   537,   538,   539,  1106,   491,   540,  1155,   541,   492,
2035 >     260,   542,   543,  1219,  1220,   562,   567,   450,   569,   570,
2036 >     572,  1065,   575,   576,   356,     2,     3,   577,   578,     4,
2037 >     156,   157,   158,  1107,   261,   159,   579,   580,   582,     5,
2038 >     160,  1066,     6,     7,   583,   262,   602,   622,     8,  1221,
2039 >     357,  1067,  1169,   584,   585,   586,   588,  1068,   589,     9,
2040 >     590,   623,   591,    10,    11,  1108,  1109,  1110,   592,   493,
2041 >     593,   594,   595,    12,  1069,   263,   264,   358,   596,  1156,
2042 >     597,   598,   599,   603,   628,   604,   605,   606,    13,   631,
2043 >     494,   608,   609,   610,   611,   612,    14,    15,   613,   614,
2044 >     632,   615,   618,   495,   619,  1070,   624,   625,   633,   634,
2045 >    1157,   635,  1071,   636,   638,   861,  1111,   640,   359,  1158,
2046 >      16,   641,   311,   642,  1170,   643,  1159,  1112,   644,   645,
2047 >     654,   647,  1113,    17,   648,   650,   312,   313,  1114,   651,
2048 >     314,  1160,  1115,  1161,  1162,  1116,  1072,   652,   653,   655,
2049 >    1117,   886,   656,  1163,   657,  1171,  1118,   315,   658,  1164,
2050 >     661,   662,    18,   663,  1172,  1073,   664,   673,   669,   670,
2051 >     496,  1173,   675,    19,    20,   678,   676,    21,    22,   679,
2052 >     677,   680,   694,   681,   683,   497,  1174,  1124,  1175,  1176,
2053 >     701,   704,   684,   685,   686,   687,   690,   702,  1177,   316,
2054 >     317,   318,   691,   696,  1178,   319,   697,   698,   703,   705,
2055 >     724,   320,   321,  1074,   706,   707,   708,   322,   725,   709,
2056 >     711,   726,   727,   712,   728,   713,   715,   323,   324,   729,
2057 >     732,   718,    23,   862,   863,   864,   865,   866,   719,   867,
2058 >     868,   325,   869,   870,   871,   872,   720,   721,   873,   731,
2059 >     874,   875,   876,   733,   877,   734,   878,   735,   879,   880,
2060 >     736,   737,   881,   738,   739,   740,   741,   326,   882,   887,
2061 >     888,   889,   890,   891,   752,   892,   893,   750,   894,   895,
2062 >     896,   897,   751,   753,   898,   754,   899,   900,   901,   755,
2063 >     902,   756,   903,   762,   904,   905,   230,   757,   906,   759,
2064 >     763,   767,   768,   769,   907,  1125,  1126,  1127,  1128,  1129,
2065 >     327,  1130,  1131,   770,  1132,  1133,  1134,  1135,    76,   771,
2066 >    1136,   793,  1137,  1138,  1139,   772,  1140,   773,  1141,   794,
2067 >    1142,  1143,   231,   774,  1144,   784,   785,   786,    77,    78,
2068 >    1145,   787,   796,   788,    79,   789,   232,   233,   234,   235,
2069 >     236,   790,   791,   792,   797,   798,   799,   800,   803,   804,
2070 >     805,   807,   811,   814,   815,   237,   810,   817,   818,   819,
2071 >     816,   821,   825,   930,   828,   820,   933,   829,   832,   822,
2072 >     823,   824,   826,   827,    80,    81,   830,   831,   833,   834,
2073 >     929,   835,    82,    83,    84,   836,   837,   838,   839,   840,
2074 >     932,   841,   842,   843,   844,   845,   846,   847,   848,   849,
2075 >     850,   851,   852,   853,   854,   855,   856,   857,    85,    86,
2076 >     858,   859,   931,   860,   885,   910,   911,   912,   913,   914,
2077 >      87,    88,   915,   916,   917,   918,   919,   934,   920,   921,
2078 >     922,   923,   924,   925,   926,   935,   927,   928,   936,   937,
2079 >     938,   939,   940,   941,   942,   943,   944,   960,   947,   948,
2080 >     958,   961,   963,   959,   964,   965,   967,   962,   966,   968,
2081 >     969,   970,   971,  1194,   999,  1001,  1003,  1152,   296,  1099,
2082 >    1153,  1232,  1227,   972,   973,  1226,   717,   601,   974,  1197,
2083 >     975,   976,   545,   977,   978,   979,   980,   981,   982,  1213,
2084 >     983,   984,   985,   986,   987,   988,   989,   994,   995,   996,
2085 >     997,   998,   482,  1002,  1210,  1000,  1195,  1004,  1005,  1092,
2086 >    1006,  1014,  1015,  1016,  1021,  1022,  1023,  1024,  1025,  1026,
2087 >    1027,  1028,  1029,  1030,  1036,  1037,  1091,  1038,  1212,  1039,
2088 >    1040,  1041,  1042,  1047,   689,  1048,  1049,   723,  1050,  1228,
2089 >    1229,  1051,  1052,   700,  1211,  1053,   384,  1054,  1055,  1056,
2090 >    1057,   761,  1058,   441,  1188,   766,  1063,  1064,  1077,   617,
2091 >     310,   693,  1189,     0,     0,   621,  1078,  1079,  1080,  1081,
2092 >    1082,  1083,  1089,  1090,  1094,     0,     0,  1100,  1095,  1097,
2093 >       0,  1101,  1121,  1122,  1123,  1148,  1149,  1150,  1151,  1154,
2094 >    1167,  1168,  1196,     0,  1201,  1214,  1198,  1224,  1225,   488,
2095 >       0,     0,     0,     0,     0,     0,     0,     0,   627,     0,
2096 >       0,     0,     0,     0,     0,     0,     0,   525,     0,     0,
2097 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2098 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2099 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2100 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2101 >       0,     0,     0,     0,     0,     0,   564
2102   };
2103  
2104 < #define yypact_value_is_default(yystate) \
2105 <  ((yystate) == (-925))
2104 > #define yypact_value_is_default(Yystate) \
2105 >  (!!((Yystate) == (-736)))
2106  
2107 < #define yytable_value_is_error(yytable_value) \
2107 > #define yytable_value_is_error(Yytable_value) \
2108    YYID (0)
2109  
2110   static const yytype_int16 yycheck[] =
2111   {
2112 <     456,   320,   321,     1,   243,    11,     4,   243,   327,     1,
2113 <     243,     1,     1,     1,     1,   241,    11,     1,   243,   245,
2114 <       1,     1,     1,     1,     1,   243,    61,     1,     1,     1,
2115 <       1,   241,     1,   241,    21,   245,   241,     1,   241,   243,
2116 <     245,    39,   245,    31,    42,   969,   970,   971,   241,    21,
2117 <     110,    31,   245,    24,    35,   824,   825,   826,   827,   828,
2118 <     241,    41,   241,     1,   245,     3,   245,    48,     6,    47,
2119 <     241,   242,    43,   243,     1,     1,    47,     1,   243,    67,
2120 <      61,    62,    63,    64,   243,    83,    24,    71,    66,    14,
2121 <      15,    16,    71,    71,   413,   414,     1,   241,    71,     1,
2122 <      81,   245,   100,     1,   243,    43,    98,    71,   427,    47,
2123 <     100,     1,   100,   432,   102,   103,     1,   104,     8,     9,
2124 <     100,   243,    24,   100,   443,   444,   100,   446,    66,    19,
2125 <      68,   100,   104,     1,   126,   454,   455,    27,    10,   458,
2126 <      12,    43,    80,    33,   133,    47,   133,    37,    38,   133,
2127 <      40,   211,   130,     1,   125,   143,    46,   145,   146,   147,
2128 <     243,   133,   100,   134,   135,    55,    56,   243,   203,   133,
2129 <      60,   177,   207,   161,   100,    65,   165,   243,     1,    69,
2130 <      70,     1,   177,    73,   640,   110,    76,    77,   165,   175,
2131 <     176,   165,   130,    13,    84,   100,   165,   168,   100,   187,
2132 <      90,    91,   100,    93,    94,    95,    96,    97,    28,    29,
2133 <     243,   199,   243,    98,    34,   243,    36,   241,   108,     1,
2134 <     158,   245,   243,   125,   175,   176,   116,   117,   118,   227,
2135 <     120,   243,   100,   123,   124,   133,   241,   127,   227,   241,
2136 <     245,   126,   144,   245,   242,   564,   234,   235,   138,   187,
2137 <     242,   244,   242,   242,   242,   242,   227,   240,    78,    79,
2138 <     165,   242,   242,   242,   242,    85,    86,   165,   242,     1,
2139 <     239,   242,   162,   242,   244,   241,   166,   100,   242,   245,
2140 <     170,   171,   172,   173,   174,   133,   106,   107,   178,   179,
2141 <      22,    23,   219,   243,    26,   219,   234,   165,   188,     1,
2142 <     243,   121,   122,   244,   242,   232,   208,   244,   232,   244,
2143 <     241,   630,   132,   240,   245,   242,   240,   165,   100,   638,
2144 <     639,   141,   227,   241,   244,   227,   241,   245,   218,    31,
2145 <     220,   244,   222,     1,   244,   207,   244,   242,   228,    41,
2146 <     242,   241,   165,   233,   242,   245,   241,     1,   238,   221,
2147 <     244,   133,   242,   196,   197,    87,    88,    89,   148,   149,
2148 <      92,   244,   244,    31,   244,   244,   244,   244,   100,     1,
2149 <      24,   239,   131,   244,   244,   244,     8,     9,   244,   227,
2150 <     112,   113,   244,   165,   244,   244,   244,    19,   244,    43,
2151 <     244,   244,   244,    47,     1,    27,   128,   129,   100,    67,
2152 <     244,    33,   244,     1,   227,    37,    38,   726,    40,   229,
2153 <     230,   231,     1,   244,    46,     4,   244,    24,   244,   244,
2154 <     244,   131,   242,    55,    56,   157,   244,   244,    60,   244,
2155 <     244,   244,   100,    65,   102,   103,    43,    69,    70,   244,
2156 <      47,    73,   244,   244,    76,    77,   100,   244,   244,    47,
2157 <      39,   244,    84,    42,   131,   244,   244,   244,    90,    91,
2158 <      51,    93,    94,    95,    96,    97,   244,   244,    66,   244,
2159 <     244,   125,   244,    71,    20,   143,   108,   145,   146,   147,
2160 <     244,    72,   244,    74,   116,   117,   118,     1,   120,   244,
2161 <     144,   123,   124,   161,    83,   127,   244,   244,    44,    13,
2162 <     244,   244,   244,     1,   244,     3,   138,    53,     6,   244,
2163 <     242,   100,   241,    59,    28,    29,   244,   244,   125,   187,
2164 <      34,   244,    36,   244,   115,   244,    24,   134,   135,    75,
2165 <     162,   199,   130,   110,   166,     5,   244,   244,   170,   171,
2166 <     172,   173,   174,   244,   244,    43,   178,   179,   244,    47,
2167 <       1,   244,   244,   244,   208,   101,   188,   244,   244,   244,
2168 <     244,   168,    32,   109,    78,    79,   234,   235,    66,   244,
2169 <      68,    85,    86,   227,   244,   152,   153,   154,   155,   156,
2170 <     244,    51,    80,   244,    35,   244,   218,    57,   220,    74,
2171 <     222,   244,   106,   107,   244,   244,   228,    48,   244,   190,
2172 <     191,   233,   100,   244,    74,   151,   238,   121,   122,   244,
2173 <      61,    62,    63,    64,   244,   244,   244,   244,   132,   241,
2174 <     227,   175,   110,   169,   110,   175,   175,   141,    98,   110,
2175 <      81,    74,   130,   110,   110,   105,   227,   175,   227,   175,
2176 <     175,   110,   175,   175,   175,   175,   241,   241,   244,   119,
2177 <       0,     1,   244,   131,   244,     5,   244,   244,   244,   244,
2178 <     158,   244,   244,   244,   244,   150,   244,   137,   244,   139,
2179 <     140,    21,   241,   244,    24,    25,   244,   244,   244,   244,
2180 <      30,   244,   244,   244,   244,   244,   244,   244,   244,   187,
2181 <     241,   244,   244,   175,   110,    45,   181,   244,   110,    49,
2182 <      50,   175,    52,   175,   131,   110,   191,   150,    58,  1165,
2183 <     175,   110,   110,   198,   175,   229,   230,   231,    61,   175,
2184 <     175,   191,    72,   131,   110,   210,   175,   212,   213,   110,
2185 <     110,   201,    82,    83,   110,   131,   234,     1,   181,   110,
2186 <     210,   226,   110,   175,   214,   175,   216,   244,   191,    99,
2187 <     175,   236,   244,   175,   175,   198,   226,    61,    22,    23,
2188 <     175,   175,    26,   110,   175,   115,   236,   210,   175,   212,
2189 <     213,   131,   175,   175,   175,   175,   244,   241,   244,   131,
2190 <     175,   244,   244,   226,   241,    61,   244,   175,   175,   131,
2191 <     244,   244,   244,   236,   244,   131,   244,   244,   244,   244,
2192 <     150,   241,   244,   244,   241,   244,   241,   243,   241,   159,
2193 <     160,   175,   175,   163,   164,   244,   244,   175,   244,   175,
2194 <     244,   244,   241,    87,    88,    89,   244,   244,    92,   131,
2195 <     175,   244,   241,   131,   244,   131,   100,   131,   131,   182,
2196 <     183,   184,   185,   186,   131,   131,   189,   190,   112,   113,
2197 <     193,   194,   195,   244,   131,   198,   131,   200,   201,   202,
2198 <     110,   204,   205,   206,   128,   129,   209,   217,   131,   131,
2199 <     244,   241,   215,   131,   241,   244,   241,   110,   182,   183,
2200 <     184,   185,   186,   244,   241,   189,   190,   241,   241,   193,
2201 <     194,   195,   241,   157,   198,   241,   200,   201,   202,   110,
2202 <     204,   205,   206,   241,   241,   209,   182,   183,   184,   185,
2203 <     186,   215,   241,   189,   190,   241,   241,   193,   194,   195,
2204 <     241,   241,   198,   241,   200,   201,   202,   241,   204,   205,
2205 <     206,   241,   241,   209,   241,   241,   241,   110,   241,   215,
2206 <     241,   241,   110,   110,   110,   131,   110,   110,   131,   241,
2207 <     131,   175,   131,   244,   131,   131,   131,   110,   241,   131,
2208 <     131,   131,   131,   241,   244,   244,   131,   241,   241,   131,
2209 <     131,   241,   241,   241,   241,   241,   241,   175,   175,   131,
2210 <     241,   241,   241,   131,   241,   241,   241,   241,   241,   241,
2211 <     241,   131,   241,   241,   241,   241,   241,   241,   241,   241,
2212 <     241,   241,   241,   241,   241,   241,   241,   241,   131,   241,
2213 <     241,   241,   241,   241,   241,   241,   241,   110,   241,   241,
2214 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   131,
2215 <     131,   241,   244,   131,   241,   244,   131,   131,   244,   241,
2216 <     244,   131,   131,   110,   131,   241,   241,   241,   241,   241,
2217 <     175,   131,   131,   244,   131,   244,   131,   241,   131,   131,
2218 <     131,   241,   131,   241,  1220,   131,   131,   241,   136,   110,
2219 <      74,  1305,   136,  1275,   131,  1014,  1273,   349,   286,   539,
2220 <    1263,   241,   241,   241,   241,   241,   241,   241,  1160,   588,
2221 <     241,   241,   241,  1259,   241,   241,   241,   241,   241,   241,
2222 <     241,   306,   241,  1278,   241,   489,   244,   241,   244,   241,
2223 <     241,   241,   241,   241,   241,   241,   596,   241,   180,   241,
2224 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2225 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   514,
2226 <    1280,   241,   241,  1249,   241,   241,  1261,   553,   123,   241,
2227 <     241,  1251,   179,   241,  1113,   241,   241,   241,   241,   241,
2228 <     241,   472,  1111,   241,   504,   241,  1257,   241,  1255,    98,
2229 <      -1,   241,    -1,    -1,    -1,   378,    -1,    -1,   241,    -1,
2230 <      -1,   241,    -1,   239,   245,   244,   244,   241,   241,   241,
2231 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2232 <      -1,    -1,   241,   241,   244,   241,   241,   408,   396,    -1,
2298 <      -1,   248,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2299 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   262
2112 >     598,   599,   300,   301,     1,     1,     8,     1,   223,     1,
2113 >     308,     1,     1,     1,   223,     1,     1,   221,   105,     1,
2114 >     221,   225,   221,   222,   225,     1,     1,     1,     1,    21,
2115 >      22,     1,     1,     1,    51,    27,     1,   221,     3,     1,
2116 >       5,   225,    24,   221,     1,     1,     1,   225,    36,    31,
2117 >       1,   223,    17,   223,     1,     9,    10,    11,   221,    34,
2118 >       1,   221,   225,   221,    37,   225,   223,    32,   221,    57,
2119 >       1,    36,   225,    62,    62,    67,    68,   223,    51,    52,
2120 >      53,    54,    55,    75,    76,    77,    62,   221,   223,   221,
2121 >     223,   225,    57,   225,    59,   393,   394,    70,    73,    96,
2122 >      62,   223,    96,   401,    69,   403,    96,    62,    94,   101,
2123 >     102,    96,   410,   200,    96,   413,   163,   164,     1,   223,
2124 >      94,   113,   114,     6,     7,   423,   424,   123,    96,    12,
2125 >     223,    96,   118,   121,   123,   433,   434,    20,   436,    96,
2126 >      96,   223,     1,    26,   118,    28,    29,    30,   123,    96,
2127 >     221,   105,    35,   123,   225,    96,   121,   154,    41,    42,
2128 >     154,    44,    45,    46,     1,    96,   221,    50,   123,   154,
2129 >     225,   135,   136,    56,   191,    34,   123,    60,    61,   196,
2130 >      17,    64,   147,   221,   221,   224,   154,   225,   225,     1,
2131 >     223,    74,   123,   223,   196,    32,   223,   154,    81,    36,
2132 >      83,   223,    85,   223,    87,    88,    89,   223,     1,   174,
2133 >     163,   164,    24,   154,    73,   223,   212,   223,   212,   224,
2134 >     103,   224,   219,     1,    17,   523,   109,   110,   111,   112,
2135 >     222,   224,   115,   116,   222,   163,   119,    15,    16,    32,
2136 >     222,    19,   212,    36,   212,   214,    58,   222,   222,   222,
2137 >     215,   220,   222,   222,   222,   135,   136,   222,    36,    96,
2138 >     222,   224,   219,   214,   123,   222,   222,   222,   151,   220,
2139 >      82,   221,   155,   221,    86,   158,   159,   160,   161,   162,
2140 >     117,   222,   165,   166,    96,   224,    98,    99,   586,   182,
2141 >     183,   222,   224,   130,   592,   593,  1031,  1032,  1033,   597,
2142 >      78,    79,    80,    92,    93,     1,    84,   224,   224,   105,
2143 >     224,     1,    90,    91,   224,   224,   224,   129,    96,   131,
2144 >     132,   133,   134,   224,   117,   208,   209,   210,   106,   107,
2145 >     213,   124,   125,   224,    24,   218,     1,   224,   150,   222,
2146 >      36,    31,   120,   139,   140,   141,   142,   143,   144,   145,
2147 >     224,   224,    17,     1,   224,   224,   224,   224,     6,     7,
2148 >     197,    57,   174,   156,    12,   221,    62,    32,   146,   224,
2149 >     224,    36,    20,   185,   224,   212,   224,   224,    26,   224,
2150 >      28,    29,    30,   224,   224,   222,   224,    35,   224,   224,
2151 >     224,     1,   224,    41,    42,   224,    44,    45,    46,   224,
2152 >     224,   224,    50,   215,   216,   224,    96,    40,    56,   224,
2153 >     222,   189,    60,    61,    24,   224,    64,   224,   224,   212,
2154 >     224,   224,   224,   224,   224,   121,    74,   224,   220,   222,
2155 >      63,   221,    65,    81,     1,    83,     3,    85,     5,    87,
2156 >      88,    89,   224,   224,   222,   224,   122,   224,    58,   224,
2157 >      17,   224,   117,   224,   224,   103,   224,   224,   224,   124,
2158 >     125,   109,   110,   111,   112,    32,   224,   115,   116,    36,
2159 >     224,   119,    82,     4,   224,   108,    86,   224,   775,   776,
2160 >     777,   778,   779,   780,   781,   224,    96,   224,    98,    99,
2161 >      57,   156,    59,   224,    25,   224,   224,   224,   224,  1097,
2162 >     224,   224,    69,   151,     1,   224,   224,   155,   224,    40,
2163 >     158,   159,   160,   161,   162,   224,    47,   165,   166,   129,
2164 >      17,   131,   132,   133,   134,   224,   224,   224,   122,    96,
2165 >     224,   224,   224,   224,    65,    32,   224,    65,   224,    36,
2166 >     150,   224,   224,   176,   177,   224,   122,   212,   105,   105,
2167 >     105,    13,   105,   105,   121,     0,     1,   105,   163,     4,
2168 >     208,   209,   210,    94,   174,   213,   163,   105,   221,    14,
2169 >     218,    33,    17,    18,   221,   185,   221,   122,    23,   212,
2170 >     147,    43,    65,   224,   224,   224,   224,    49,   224,    34,
2171 >     224,   221,   224,    38,    39,   126,   127,   128,   224,    96,
2172 >     224,   224,   224,    48,    66,   215,   216,   174,   224,   137,
2173 >     224,   224,   224,   224,   163,   224,   224,   224,    63,   105,
2174 >     117,   224,   224,   224,   224,   224,    71,    72,   224,   224,
2175 >     163,   224,   224,   130,   224,    97,   224,   224,   163,   105,
2176 >     168,   122,   104,   163,   163,    51,   177,   105,   215,   177,
2177 >      95,   105,     1,   105,   137,   163,   184,   188,   163,   163,
2178 >     163,   105,   193,   108,   105,   105,    15,    16,   199,   105,
2179 >      19,   199,   203,   201,   202,   206,   138,   105,   105,   163,
2180 >     211,    51,   224,   211,   163,   168,   217,    36,   224,   217,
2181 >     163,   163,   137,   163,   177,   157,   163,   122,   163,   163,
2182 >     197,   184,   163,   148,   149,   221,   163,   152,   153,   221,
2183 >     163,   224,   221,   224,   224,   212,   199,    51,   201,   202,
2184 >     163,   122,   224,   224,   224,   224,   224,   221,   211,    78,
2185 >      79,    80,   224,   224,   217,    84,   224,   224,   223,   122,
2186 >     163,    90,    91,   205,   221,   221,   224,    96,   163,   224,
2187 >     224,   122,   163,   224,   163,   224,   224,   106,   107,   163,
2188 >     122,   221,   207,   169,   170,   171,   172,   173,   224,   175,
2189 >     176,   120,   178,   179,   180,   181,   224,   224,   184,   221,
2190 >     186,   187,   188,   163,   190,   105,   192,   105,   194,   195,
2191 >     122,   122,   198,   122,   122,   122,   122,   146,   204,   169,
2192 >     170,   171,   172,   173,   105,   175,   176,   122,   178,   179,
2193 >     180,   181,   122,   122,   184,   122,   186,   187,   188,   221,
2194 >     190,   221,   192,   221,   194,   195,     1,   224,   198,   224,
2195 >     224,   122,   221,   221,   204,   169,   170,   171,   172,   173,
2196 >     189,   175,   176,   221,   178,   179,   180,   181,     1,   221,
2197 >     184,   105,   186,   187,   188,   221,   190,   221,   192,   105,
2198 >     194,   195,    37,   221,   198,   221,   221,   221,    21,    22,
2199 >     204,   221,   224,   221,    27,   221,    51,    52,    53,    54,
2200 >      55,   221,   221,   221,   105,   105,   105,   105,   122,   105,
2201 >     105,   105,   122,   122,   163,    70,   221,   122,   122,   122,
2202 >     224,   105,   221,   163,   221,   122,   105,   221,   221,   122,
2203 >     122,   122,   122,   122,    67,    68,   122,   122,   221,   221,
2204 >     122,   221,    75,    76,    77,   221,   221,   221,   221,   221,
2205 >     122,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2206 >     221,   221,   221,   221,   221,   221,   221,   221,   101,   102,
2207 >     221,   221,   224,   221,   221,   221,   221,   221,   221,   221,
2208 >     113,   114,   221,   221,   221,   221,   221,   122,   221,   221,
2209 >     221,   221,   221,   221,   221,   122,   221,   221,   122,   221,
2210 >     122,   122,   221,   224,   122,   122,   105,   122,   221,   221,
2211 >     221,   163,   122,   221,   122,   122,   122,   224,   224,   221,
2212 >     122,   122,   122,   105,   122,   122,   122,   991,    71,   953,
2213 >     993,  1231,  1205,   221,   221,  1203,   498,   328,   221,   122,
2214 >     221,   221,   265,   221,   221,   221,   221,   221,   221,  1193,
2215 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2216 >     221,   221,   216,   221,  1182,   224,  1092,   224,   221,   225,
2217 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2218 >     221,   221,   221,   221,   221,   221,   167,   221,  1191,   221,
2219 >     221,   221,   221,   221,   451,   221,   221,   512,   221,  1207,
2220 >    1209,   221,   221,   474,  1187,   221,   108,   221,   221,   221,
2221 >     221,   550,   221,   161,  1060,   558,   221,   221,   221,   360,
2222 >      89,   464,  1062,    -1,    -1,   378,   221,   221,   221,   221,
2223 >     221,   221,   221,   221,   221,    -1,    -1,   221,   224,   224,
2224 >      -1,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2225 >     221,   221,   221,    -1,   221,   221,   224,   221,   221,   224,
2226 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   388,    -1,
2227 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   238,    -1,    -1,
2228 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2229 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2230 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2231 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2232 >      -1,    -1,    -1,    -1,    -1,    -1,   288
2233   };
2234  
2235   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2236     symbol of state STATE-NUM.  */
2237   static const yytype_uint16 yystos[] =
2238   {
2239 <       0,   247,     0,     1,     5,    21,    24,    25,    30,    45,
2240 <      49,    50,    52,    58,    72,    82,    83,    99,   115,   150,
2241 <     159,   160,   163,   164,   217,   248,   253,   258,   278,   284,
2242 <     299,   317,   334,   348,   363,   370,   374,   384,   393,   413,
2243 <     423,   429,   433,   443,   503,   519,   540,   241,   242,   243,
2244 <     243,   318,   394,   424,   243,   434,   243,   504,   349,   414,
2245 <     335,   243,   243,   300,   364,   243,   243,   375,   385,   243,
2246 <       1,    31,    41,   100,   279,   280,   281,   282,   283,     1,
2247 <      13,    28,    29,    34,    36,    78,    79,    85,    86,   106,
2248 <     107,   121,   122,   132,   141,   229,   230,   231,   520,   521,
2249 <     522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
2250 <     532,   533,   534,   535,   536,   537,   538,   539,   243,   243,
2251 <     243,     1,    71,   430,   431,   432,   243,     1,     8,     9,
2252 <      19,    27,    33,    37,    38,    40,    46,    55,    56,    60,
2253 <      65,    69,    70,    73,    76,    77,    84,    90,    91,    93,
2254 <      94,    95,    96,    97,   108,   116,   117,   118,   120,   123,
2255 <     124,   127,   138,   162,   166,   170,   171,   172,   173,   174,
2256 <     178,   179,   188,   218,   220,   222,   228,   233,   238,   444,
2257 <     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
2258 <     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
2259 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
2260 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
2261 <     485,   486,   487,   488,   489,   490,   491,   495,   499,   500,
2262 <     501,   502,   243,   243,   243,   243,     1,   219,   232,   285,
2263 <     286,   287,   288,   289,   290,     1,    98,   126,   254,   255,
2264 <     256,   257,   243,   243,     1,    35,    48,    61,    62,    63,
2265 <      64,    81,   541,   542,   543,   544,   545,   546,   547,   548,
2266 <     549,     1,    31,    67,   100,   102,   103,   143,   145,   146,
2267 <     147,   161,   187,   199,   234,   235,   259,   260,   261,   265,
2268 <     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2269 <     276,   277,   243,   243,     1,   100,   371,   372,   373,   241,
2270 <     244,   244,   244,   242,   280,   244,   244,   244,   244,   244,
2271 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2272 <     244,   244,   244,   242,   521,     1,    22,    23,    26,    87,
2273 <      88,    89,    92,   100,   112,   113,   128,   129,   157,   319,
2274 <     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
2275 <     330,   331,   332,   333,     1,     3,     6,    24,    43,    47,
2276 <      66,    68,    80,   100,   130,   158,   187,   234,   395,   396,
2277 <     397,   398,   399,   400,   401,   402,   403,   404,   408,   409,
2278 <     410,   411,   412,     1,    71,   133,   425,   426,   427,   428,
2279 <     244,   242,   431,     1,   100,   133,   165,   435,   439,   440,
2280 <     441,   442,   244,   244,   244,   244,   244,   244,   244,   244,
2281 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2282 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2283 <     496,   244,   492,   244,   244,   244,   244,   244,   244,   244,
2284 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2285 <     244,   244,   244,   242,   445,     1,     4,    39,    42,    83,
2286 <     100,   227,   505,   506,   507,   508,   509,   513,   514,   515,
2287 <       1,    24,    43,    47,   125,   134,   135,   168,   227,   350,
2288 <     351,   352,   353,   354,   355,   356,   360,   361,   362,     1,
2289 <     133,   165,   227,   415,   419,   420,   421,   422,     1,    47,
2290 <      66,    71,   130,   336,   340,   341,   342,   346,   347,   241,
2291 <     244,   244,   242,   286,   240,   241,   244,   244,   242,   255,
2292 <       1,    24,    43,    47,   100,   125,   144,   208,   227,   301,
2293 <     302,   303,   304,   305,   306,   307,   308,   309,   313,     1,
2294 <      21,   104,   133,   365,   366,   367,   368,   369,   244,   244,
2295 <     244,   244,   244,   244,   244,   242,   542,   241,   244,   244,
2296 <     244,   244,   244,   244,   244,   244,   262,   244,   244,   244,
2297 <     244,   244,   242,   260,     1,   100,   165,   227,   376,   377,
2298 <     378,   379,   380,     1,   100,   165,   386,   387,   388,   389,
2299 <     244,   242,   372,   131,   131,   131,   241,   175,   110,   110,
2300 <     175,   175,   110,   250,   250,   110,   110,   175,   175,   110,
2301 <     250,   175,   175,   175,   175,   175,   241,   241,   244,   244,
2302 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2303 <     244,   242,   320,   241,   244,   244,   244,   244,   405,   244,
2304 <     244,   244,   244,   244,   244,   244,   244,   242,   396,   244,
2305 <     244,   242,   426,   131,   241,   244,   244,   436,   242,   440,
2306 <     175,   250,   250,   110,   175,   175,   110,   131,   175,   110,
2307 <     110,   110,   175,   175,   175,   250,   131,   175,   110,   110,
2308 <     250,   110,   110,   131,   110,   110,   175,   175,   244,   175,
2309 <     244,   250,   250,   175,   250,   175,   175,   175,   175,   176,
2310 <     175,   176,   175,   175,   250,   250,   110,   252,   131,   250,
2311 <     175,   175,   175,   175,   241,   516,   244,   244,   510,   244,
2312 <     244,   242,   506,   241,   244,   244,   357,   244,   244,   244,
2313 <     244,   244,   242,   351,   244,   416,   244,   242,   420,   241,
2314 <     337,   244,   244,   244,   242,   341,   175,   175,   241,   243,
2315 <     131,   131,   241,   241,   244,   244,   314,   244,   244,   244,
2316 <     310,   244,   242,   302,   241,   244,   244,   244,   242,   366,
2317 <     175,   175,   175,   131,   175,   175,   250,   241,   131,   175,
2318 <     131,   131,   131,   131,   131,   131,   244,   131,   131,   110,
2319 <     131,   131,   241,   241,   244,   381,   244,   242,   377,   241,
2320 <     244,   390,   242,   387,   131,   241,   241,   241,   241,   241,
2321 <     241,   241,   241,   241,   152,   153,   154,   155,   156,   249,
2322 <     250,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2323 <     241,   241,   241,   241,   110,   110,   250,   110,   110,   110,
2324 <     110,   131,   110,   110,   250,   250,   252,   241,   131,   196,
2325 <     197,   131,   175,   244,   131,   131,   131,   131,   110,   131,
2326 <     131,   131,   241,   131,   131,   241,   241,   131,   131,   244,
2327 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2328 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2329 <     241,   241,   241,   241,   241,   241,   241,   241,   241,    61,
2330 <     182,   183,   184,   185,   186,   189,   190,   193,   194,   195,
2331 <     198,   200,   201,   202,   204,   205,   206,   209,   215,   497,
2332 <     498,   241,    61,   182,   183,   184,   185,   186,   189,   190,
2333 <     193,   194,   195,   198,   200,   201,   202,   204,   205,   206,
2334 <     209,   215,   493,   494,   241,   241,   241,   241,   241,   241,
2335 <     241,   241,   241,   241,   241,   241,   241,   241,   241,    14,
2336 <      15,    16,   251,   252,   241,   241,   241,   241,   241,   241,
2337 <     241,   244,   250,   175,   244,   131,   131,   241,   131,   175,
2338 <     244,   131,   110,   131,   131,   131,   241,   131,   244,   131,
2339 <     241,   244,   131,   131,   110,   344,   345,   241,   241,   241,
2340 <       1,   100,   165,   239,   291,   292,   293,   294,   295,   241,
2341 <     241,   131,   175,   244,   131,   131,   131,   244,   131,   241,
2342 <     131,   131,   131,   241,   241,   241,   241,   241,   241,   241,
2343 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   148,
2344 <     149,   263,   264,   241,   241,   241,   241,   241,   131,   244,
2345 <     131,   241,   131,   244,   241,   241,   249,   249,   249,   249,
2346 <     249,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2347 <     241,   241,   241,   241,   241,   241,   241,   241,   241,    10,
2348 <      12,   207,   221,   406,   407,   241,   241,   241,   241,   241,
2349 <     241,   241,   241,   241,   241,   241,   241,   136,   437,   438,
2350 <     241,   245,   241,   245,   251,   251,   251,    11,   177,   517,
2351 <     518,   241,   241,    11,   177,   511,   512,   241,   241,   241,
2352 <     241,    20,    44,    53,    59,    75,   101,   109,   151,   169,
2353 <     358,   359,   241,   241,   241,   241,   241,   241,   136,   417,
2354 <     418,   241,    61,   203,   207,   338,   339,   241,   241,   180,
2355 <     245,   343,   241,   244,   296,   244,   242,   292,   241,   241,
2356 <       5,    32,    51,    57,    74,    98,   105,   119,   137,   139,
2357 <     140,   191,   201,   210,   214,   216,   226,   236,   315,   316,
2358 <     241,   241,   241,    61,   182,   183,   184,   185,   186,   189,
2359 <     190,   193,   194,   195,   198,   200,   201,   202,   204,   205,
2360 <     206,   209,   215,   311,   312,   241,   241,   241,   241,   241,
2361 <     245,   241,    74,   150,   181,   191,   198,   210,   212,   213,
2362 <     226,   236,   382,   383,   241,   241,    74,   150,   181,   191,
2430 <     198,   210,   212,   213,   226,   236,   391,   392,   241,   245,
2431 <     241,   245,   498,   494,   241,   245,   241,   245,   241,   245,
2432 <     241,   245,   241,   245,   110,   345,   241,   131,   244,   211,
2433 <     252,   241,   241,   245,   241,   245,   264,   241,   245,   241,
2434 <     245,   407,   438,   518,   512,   359,   418,   339,   241,    51,
2435 <      72,    74,   115,   190,   191,   227,   297,   298,   241,   241,
2436 <     316,   312,   383,   392,   241,   245,   298
2239 >       0,   227,     0,     1,     4,    14,    17,    18,    23,    34,
2240 >      38,    39,    48,    63,    71,    72,    95,   108,   137,   148,
2241 >     149,   152,   153,   207,   228,   233,   238,   262,   268,   282,
2242 >     300,   323,   337,   352,   359,   363,   373,   382,   402,   408,
2243 >     414,   418,   424,   481,   496,   221,   222,   223,   223,   301,
2244 >     383,   409,   223,   419,   223,   338,   403,   324,   223,   223,
2245 >     283,   353,   223,   223,   364,   374,   223,     1,    24,    31,
2246 >      96,   263,   264,   265,   266,   267,     1,    21,    22,    27,
2247 >      67,    68,    75,    76,    77,   101,   102,   113,   114,   482,
2248 >     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
2249 >     493,   494,   495,   223,   223,   223,     1,    62,   415,   416,
2250 >     417,   223,     1,     6,     7,    12,    20,    26,    28,    29,
2251 >      30,    35,    41,    42,    44,    45,    46,    50,    56,    60,
2252 >      61,    64,    74,    81,    83,    85,    87,    88,    89,   103,
2253 >     109,   110,   111,   112,   115,   116,   119,   151,   155,   158,
2254 >     159,   160,   161,   162,   165,   166,   208,   209,   210,   213,
2255 >     218,   425,   426,   427,   428,   429,   430,   431,   432,   433,
2256 >     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
2257 >     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
2258 >     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2259 >     464,   465,   466,   467,   468,   469,   470,   474,   478,   479,
2260 >     480,   223,   223,   223,     1,   214,   269,   270,   271,   272,
2261 >     273,     1,    94,   118,   234,   235,   236,   237,   223,   223,
2262 >       1,    37,    51,    52,    53,    54,    55,    70,   497,   498,
2263 >     499,   500,   501,   502,   503,   504,   505,     1,    24,    58,
2264 >      82,    86,    96,    98,    99,   129,   131,   132,   133,   134,
2265 >     150,   174,   185,   215,   216,   239,   240,   241,   242,   247,
2266 >     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2267 >     258,   259,   260,   261,   223,   223,     1,    96,   360,   361,
2268 >     362,   221,   224,   224,   224,   222,   264,   224,   224,   224,
2269 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   222,
2270 >     483,     1,    15,    16,    19,    36,    78,    79,    80,    84,
2271 >      90,    91,    96,   106,   107,   120,   146,   189,   302,   303,
2272 >     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2273 >     314,   315,   316,   317,   318,   319,     1,     3,     5,    17,
2274 >      32,    36,    57,    59,    69,    96,   121,   147,   174,   215,
2275 >     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
2276 >     397,   398,   399,   400,   401,     1,    62,   123,   410,   411,
2277 >     412,   413,   224,   222,   416,     1,    96,   123,   420,   421,
2278 >     422,   423,   224,   224,   224,   224,   224,   224,   224,   224,
2279 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2280 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2281 >     475,   224,   471,   224,   224,   224,   224,   224,   224,   224,
2282 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2283 >     222,   426,     1,    17,    32,    36,   117,   124,   125,   156,
2284 >     212,   339,   340,   341,   342,   343,   344,   345,   349,   350,
2285 >     351,     1,   123,   212,   404,   405,   406,   407,     1,    36,
2286 >      57,    62,   121,   325,   329,   330,   331,   335,   336,   221,
2287 >     224,   222,   270,   220,   221,   224,   224,   222,   235,     1,
2288 >      17,    32,    36,    96,   117,   130,   197,   212,   284,   285,
2289 >     286,   287,   288,   289,   290,   291,   292,   296,     1,    34,
2290 >      73,   123,   354,   355,   356,   357,   358,   224,   224,   224,
2291 >     224,   224,   224,   224,   222,   498,   221,   224,   224,   224,
2292 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2293 >     224,   224,   224,   224,   222,   240,     1,    96,   154,   212,
2294 >     365,   366,   367,   368,   369,     1,    96,   154,   375,   376,
2295 >     377,   378,   224,   222,   361,   122,   122,   122,   221,   105,
2296 >     105,   163,   105,   230,   230,   105,   105,   105,   163,   163,
2297 >     105,   230,   221,   221,   224,   224,   224,   320,   224,   224,
2298 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2299 >     222,   303,   221,   224,   224,   224,   224,   394,   224,   224,
2300 >     224,   224,   224,   224,   224,   224,   222,   385,   224,   224,
2301 >     222,   411,   122,   221,   224,   224,   222,   421,   163,   230,
2302 >     230,   105,   163,   163,   105,   122,   163,   230,   163,   230,
2303 >     105,   105,   105,   163,   163,   163,   230,   105,   105,   230,
2304 >     105,   105,   105,   105,   163,   163,   224,   163,   224,   230,
2305 >     230,   163,   163,   163,   163,   163,   164,   163,   164,   163,
2306 >     163,   230,   230,   122,   230,   163,   163,   163,   221,   221,
2307 >     224,   224,   346,   224,   224,   224,   224,   224,   222,   340,
2308 >     224,   224,   222,   405,   221,   326,   224,   224,   224,   222,
2309 >     330,   163,   221,   223,   122,   122,   221,   221,   224,   224,
2310 >     297,   224,   224,   224,   293,   224,   222,   285,   221,   224,
2311 >     224,   224,   222,   355,   163,   163,   122,   163,   163,   163,
2312 >     230,   221,   122,   163,   105,   105,   122,   122,   122,   122,
2313 >     122,   122,   135,   136,   243,   244,   135,   136,   245,   246,
2314 >     122,   122,   105,   122,   122,   221,   221,   224,   370,   224,
2315 >     222,   366,   221,   224,   379,   222,   376,   122,   221,   221,
2316 >     221,   221,   221,   221,   221,   139,   140,   141,   142,   143,
2317 >     144,   145,   229,   230,   221,   221,   221,   221,   221,   221,
2318 >     221,   221,   221,   105,   105,   230,   224,   105,   105,   105,
2319 >     105,   230,   230,   122,   105,   105,   230,   105,   232,   232,
2320 >     221,   122,   182,   183,   122,   163,   224,   122,   122,   122,
2321 >     122,   105,   122,   122,   122,   221,   122,   122,   221,   221,
2322 >     122,   122,   221,   221,   221,   221,   221,   221,   221,   221,
2323 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2324 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2325 >     221,    51,   169,   170,   171,   172,   173,   175,   176,   178,
2326 >     179,   180,   181,   184,   186,   187,   188,   190,   192,   194,
2327 >     195,   198,   204,   476,   477,   221,    51,   169,   170,   171,
2328 >     172,   173,   175,   176,   178,   179,   180,   181,   184,   186,
2329 >     187,   188,   190,   192,   194,   195,   198,   204,   472,   473,
2330 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2331 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   122,
2332 >     163,   224,   122,   105,   122,   122,   122,   221,   122,   122,
2333 >     221,   224,   122,   122,   105,   333,   334,   221,   221,     1,
2334 >      96,   154,   219,   274,   275,   276,   277,   278,   221,   221,
2335 >     122,   163,   224,   122,   122,   122,   224,   122,   221,   122,
2336 >     122,   122,   221,   221,   221,   221,   221,   221,   221,   221,
2337 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2338 >     221,   225,   221,   225,   221,   221,   221,   221,   221,   122,
2339 >     224,   122,   221,   122,   224,   221,   221,   229,   229,   229,
2340 >     229,   229,   229,   229,   221,   221,   221,    92,    93,   321,
2341 >     322,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2342 >     221,     9,    10,    11,   231,   232,   221,   221,   221,   221,
2343 >     221,   221,   221,     8,   196,   395,   396,   221,   221,   221,
2344 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2345 >     225,   221,   225,   221,   221,    13,    33,    43,    49,    66,
2346 >      97,   104,   138,   157,   205,   347,   348,   221,   221,   221,
2347 >     221,   221,   221,   221,    51,   191,   196,   327,   328,   221,
2348 >     221,   167,   225,   332,   221,   224,   279,   224,   222,   275,
2349 >     221,   221,     4,    25,    40,    47,    65,    94,   126,   127,
2350 >     128,   177,   188,   193,   199,   203,   206,   211,   217,   298,
2351 >     299,   221,   221,   221,    51,   169,   170,   171,   172,   173,
2352 >     175,   176,   178,   179,   180,   181,   184,   186,   187,   188,
2353 >     190,   192,   194,   195,   198,   204,   294,   295,   221,   221,
2354 >     221,   221,   244,   246,   221,    65,   137,   168,   177,   184,
2355 >     199,   201,   202,   211,   217,   371,   372,   221,   221,    65,
2356 >     137,   168,   177,   184,   199,   201,   202,   211,   217,   380,
2357 >     381,   221,   225,   231,   231,   231,   221,   225,   477,   473,
2358 >     221,   225,   221,   225,   105,   334,   221,   122,   224,   200,
2359 >     232,   221,   221,   225,   221,   225,   221,   225,   221,   225,
2360 >     322,   396,   348,   328,   221,    40,    63,    65,   108,   176,
2361 >     177,   212,   280,   281,   221,   221,   299,   295,   372,   381,
2362 >     221,   225,   281
2363   };
2364  
2365   #define yyerrok         (yyerrstatus = 0)
# Line 2463 | Line 2389 | static const yytype_uint16 yystos[] =
2389  
2390   #define YYRECOVERING()  (!!yyerrstatus)
2391  
2392 < #define YYBACKUP(Token, Value)                                  \
2393 < do                                                              \
2394 <  if (yychar == YYEMPTY && yylen == 1)                          \
2395 <    {                                                           \
2396 <      yychar = (Token);                                         \
2397 <      yylval = (Value);                                         \
2398 <      YYPOPSTACK (1);                                           \
2399 <      goto yybackup;                                            \
2400 <    }                                                           \
2401 <  else                                                          \
2402 <    {                                                           \
2392 > #define YYBACKUP(Token, Value)                                  \
2393 > do                                                              \
2394 >  if (yychar == YYEMPTY)                                        \
2395 >    {                                                           \
2396 >      yychar = (Token);                                         \
2397 >      yylval = (Value);                                         \
2398 >      YYPOPSTACK (yylen);                                       \
2399 >      yystate = *yyssp;                                         \
2400 >      goto yybackup;                                            \
2401 >    }                                                           \
2402 >  else                                                          \
2403 >    {                                                           \
2404        yyerror (YY_("syntax error: cannot back up")); \
2405        YYERROR;                                                  \
2406      }                                                           \
2407   while (YYID (0))
2408  
2409 <
2409 > /* Error token number */
2410   #define YYTERROR        1
2411   #define YYERRCODE       256
2412  
2413  
2487 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2488   If N is 0, then set CURRENT to the empty location which ends
2489   the previous symbol: RHS[0] (always defined).  */
2490
2491 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2492 #ifndef YYLLOC_DEFAULT
2493 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2494    do                                                                  \
2495      if (YYID (N))                                                    \
2496        {                                                               \
2497          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2498          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2499          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2500          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2501        }                                                               \
2502      else                                                              \
2503        {                                                               \
2504          (Current).first_line   = (Current).last_line   =              \
2505            YYRHSLOC (Rhs, 0).last_line;                                \
2506          (Current).first_column = (Current).last_column =              \
2507            YYRHSLOC (Rhs, 0).last_column;                              \
2508        }                                                               \
2509    while (YYID (0))
2510 #endif
2511
2512
2414   /* This macro is provided for backward compatibility. */
2514
2415   #ifndef YY_LOCATION_PRINT
2416   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2417   #endif
2418  
2419  
2420   /* YYLEX -- calling `yylex' with the right arguments.  */
2521
2421   #ifdef YYLEX_PARAM
2422   # define YYLEX yylex (YYLEX_PARAM)
2423   #else
# Line 2568 | Line 2467 | yy_symbol_value_print (yyoutput, yytype,
2467      YYSTYPE const * const yyvaluep;
2468   #endif
2469   {
2470 +  FILE *yyo = yyoutput;
2471 +  YYUSE (yyo);
2472    if (!yyvaluep)
2473      return;
2474   # ifdef YYPRINT
# Line 2576 | Line 2477 | yy_symbol_value_print (yyoutput, yytype,
2477   # else
2478    YYUSE (yyoutput);
2479   # endif
2480 <  switch (yytype)
2580 <    {
2581 <      default:
2582 <        break;
2583 <    }
2480 >  YYUSE (yytype);
2481   }
2482  
2483  
# Line 2819 | Line 2716 | static int
2716   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2717                  yytype_int16 *yyssp, int yytoken)
2718   {
2719 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2719 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2720    YYSIZE_T yysize = yysize0;
2824  YYSIZE_T yysize1;
2721    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2722    /* Internationalized format string. */
2723 <  const char *yyformat = 0;
2723 >  const char *yyformat = YY_NULL;
2724    /* Arguments of yyformat. */
2725    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2726    /* Number of reported tokens (one for the "unexpected", one per
# Line 2884 | Line 2780 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2780                      break;
2781                    }
2782                  yyarg[yycount++] = yytname[yyx];
2783 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2784 <                if (! (yysize <= yysize1
2785 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2786 <                  return 2;
2787 <                yysize = yysize1;
2783 >                {
2784 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2785 >                  if (! (yysize <= yysize1
2786 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2787 >                    return 2;
2788 >                  yysize = yysize1;
2789 >                }
2790                }
2791          }
2792      }
# Line 2908 | Line 2806 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2806   # undef YYCASE_
2807      }
2808  
2809 <  yysize1 = yysize + yystrlen (yyformat);
2810 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2811 <    return 2;
2812 <  yysize = yysize1;
2809 >  {
2810 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2811 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2812 >      return 2;
2813 >    yysize = yysize1;
2814 >  }
2815  
2816    if (*yymsg_alloc < yysize)
2817      {
# Line 2967 | Line 2867 | yydestruct (yymsg, yytype, yyvaluep)
2867      yymsg = "Deleting";
2868    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2869  
2870 <  switch (yytype)
2971 <    {
2972 <
2973 <      default:
2974 <        break;
2975 <    }
2870 >  YYUSE (yytype);
2871   }
2872  
2873  
2979 /* Prevent warnings from -Wmissing-prototypes.  */
2980 #ifdef YYPARSE_PARAM
2981 #if defined __STDC__ || defined __cplusplus
2982 int yyparse (void *YYPARSE_PARAM);
2983 #else
2984 int yyparse ();
2985 #endif
2986 #else /* ! YYPARSE_PARAM */
2987 #if defined __STDC__ || defined __cplusplus
2988 int yyparse (void);
2989 #else
2990 int yyparse ();
2991 #endif
2992 #endif /* ! YYPARSE_PARAM */
2874  
2875  
2876   /* The lookahead symbol.  */
2877   int yychar;
2878  
2879 +
2880 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2881 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2882 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2883 + #endif
2884 + #ifndef YY_INITIAL_VALUE
2885 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2886 + #endif
2887 +
2888   /* The semantic value of the lookahead symbol.  */
2889 < YYSTYPE yylval;
2889 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2890  
2891   /* Number of syntax errors so far.  */
2892   int yynerrs;
# Line 3036 | Line 2926 | yyparse ()
2926         `yyss': related to states.
2927         `yyvs': related to semantic values.
2928  
2929 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2929 >       Refer to the stacks through separate pointers, to allow yyoverflow
2930         to reallocate them elsewhere.  */
2931  
2932      /* The state stack.  */
# Line 3054 | Line 2944 | yyparse ()
2944    int yyn;
2945    int yyresult;
2946    /* Lookahead token as an internal (translated) token number.  */
2947 <  int yytoken;
2947 >  int yytoken = 0;
2948    /* The variables used to return semantic value and location from the
2949       action routines.  */
2950    YYSTYPE yyval;
# Line 3072 | Line 2962 | yyparse ()
2962       Keep to zero when no symbol should be popped.  */
2963    int yylen = 0;
2964  
2965 <  yytoken = 0;
2966 <  yyss = yyssa;
3077 <  yyvs = yyvsa;
2965 >  yyssp = yyss = yyssa;
2966 >  yyvsp = yyvs = yyvsa;
2967    yystacksize = YYINITDEPTH;
2968  
2969    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3083 | Line 2972 | yyparse ()
2972    yyerrstatus = 0;
2973    yynerrs = 0;
2974    yychar = YYEMPTY; /* Cause a token to be read.  */
3086
3087  /* Initialize stack pointers.
3088     Waste one element of value and location stack
3089     so that they stay on the same level as the state stack.
3090     The wasted elements are never initialized.  */
3091  yyssp = yyss;
3092  yyvsp = yyvs;
3093
2975    goto yysetstate;
2976  
2977   /*------------------------------------------------------------.
# Line 3231 | Line 3112 | yybackup:
3112    yychar = YYEMPTY;
3113  
3114    yystate = yyn;
3115 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3116    *++yyvsp = yylval;
3117 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3118  
3119    goto yynewstate;
3120  
# Line 3267 | Line 3150 | yyreduce:
3150    YY_REDUCE_PRINT (yyn);
3151    switch (yyn)
3152      {
3153 <        case 27:
3154 <
3155 < /* Line 1806 of yacc.c  */
3273 < #line 407 "ircd_parser.y"
3153 >        case 26:
3154 > /* Line 1787 of yacc.c  */
3155 > #line 391 "conf_parser.y"
3156      { (yyval.number) = 0; }
3157      break;
3158  
3159 <  case 29:
3160 <
3161 < /* Line 1806 of yacc.c  */
3280 < #line 409 "ircd_parser.y"
3159 >  case 28:
3160 > /* Line 1787 of yacc.c  */
3161 > #line 393 "conf_parser.y"
3162      {
3163                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3164                  }
3165      break;
3166  
3167 <  case 30:
3168 <
3169 < /* Line 1806 of yacc.c  */
3289 < #line 413 "ircd_parser.y"
3167 >  case 29:
3168 > /* Line 1787 of yacc.c  */
3169 > #line 397 "conf_parser.y"
3170      {
3171                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3172                  }
3173      break;
3174  
3175 <  case 31:
3176 <
3177 < /* Line 1806 of yacc.c  */
3298 < #line 417 "ircd_parser.y"
3175 >  case 30:
3176 > /* Line 1787 of yacc.c  */
3177 > #line 401 "conf_parser.y"
3178      {
3179                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3180                  }
3181      break;
3182  
3183 <  case 32:
3184 <
3185 < /* Line 1806 of yacc.c  */
3307 < #line 421 "ircd_parser.y"
3183 >  case 31:
3184 > /* Line 1787 of yacc.c  */
3185 > #line 405 "conf_parser.y"
3186      {
3187                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3188                  }
3189      break;
3190  
3191 <  case 33:
3192 <
3193 < /* Line 1806 of yacc.c  */
3316 < #line 425 "ircd_parser.y"
3191 >  case 32:
3192 > /* Line 1787 of yacc.c  */
3193 > #line 409 "conf_parser.y"
3194      {
3195                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3196                  }
3197      break;
3198  
3199 <  case 34:
3200 <
3201 < /* Line 1806 of yacc.c  */
3325 < #line 429 "ircd_parser.y"
3199 >  case 33:
3200 > /* Line 1787 of yacc.c  */
3201 > #line 413 "conf_parser.y"
3202      {
3203                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3204                  }
3205      break;
3206  
3207 +  case 34:
3208 + /* Line 1787 of yacc.c  */
3209 + #line 417 "conf_parser.y"
3210 +    {
3211 +                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3212 +                }
3213 +    break;
3214 +
3215    case 35:
3216 + /* Line 1787 of yacc.c  */
3217 + #line 421 "conf_parser.y"
3218 +    {
3219 +                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3220 +                }
3221 +    break;
3222  
3223 < /* Line 1806 of yacc.c  */
3224 < #line 434 "ircd_parser.y"
3223 >  case 36:
3224 > /* Line 1787 of yacc.c  */
3225 > #line 426 "conf_parser.y"
3226      { (yyval.number) = 0; }
3227      break;
3228  
3229 <  case 37:
3230 <
3231 < /* Line 1806 of yacc.c  */
3341 < #line 435 "ircd_parser.y"
3229 >  case 38:
3230 > /* Line 1787 of yacc.c  */
3231 > #line 427 "conf_parser.y"
3232      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3233      break;
3234  
3235 <  case 38:
3236 <
3237 < /* Line 1806 of yacc.c  */
3348 < #line 436 "ircd_parser.y"
3235 >  case 39:
3236 > /* Line 1787 of yacc.c  */
3237 > #line 428 "conf_parser.y"
3238      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3239      break;
3240  
3241 <  case 39:
3242 <
3243 < /* Line 1806 of yacc.c  */
3355 < #line 437 "ircd_parser.y"
3241 >  case 40:
3242 > /* Line 1787 of yacc.c  */
3243 > #line 429 "conf_parser.y"
3244      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3245      break;
3246  
3247 <  case 40:
3248 <
3249 < /* Line 1806 of yacc.c  */
3362 < #line 438 "ircd_parser.y"
3247 >  case 41:
3248 > /* Line 1787 of yacc.c  */
3249 > #line 430 "conf_parser.y"
3250      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3251      break;
3252  
3253 <  case 47:
3254 <
3255 < /* Line 1806 of yacc.c  */
3369 < #line 452 "ircd_parser.y"
3253 >  case 48:
3254 > /* Line 1787 of yacc.c  */
3255 > #line 444 "conf_parser.y"
3256      {
3257    if (conf_parser_ctx.pass == 2)
3258      add_conf_module(libio_basename(yylval.string));
3259   }
3260      break;
3261  
3262 <  case 48:
3263 <
3264 < /* Line 1806 of yacc.c  */
3379 < #line 458 "ircd_parser.y"
3262 >  case 49:
3263 > /* Line 1787 of yacc.c  */
3264 > #line 450 "conf_parser.y"
3265      {
3266    if (conf_parser_ctx.pass == 2)
3267      mod_add_path(yylval.string);
3268   }
3269      break;
3270  
3271 <  case 67:
3272 <
3273 < /* Line 1806 of yacc.c  */
3389 < #line 478 "ircd_parser.y"
3271 >  case 75:
3272 > /* Line 1787 of yacc.c  */
3273 > #line 476 "conf_parser.y"
3274      {
3275   #ifdef HAVE_LIBCRYPTO
3276 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3277 <    ServerInfo.tls_version = 0;
3276 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3277 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3278   #endif
3279   }
3280      break;
3281  
3282 <  case 68:
3283 <
3284 < /* Line 1806 of yacc.c  */
3401 < #line 484 "ircd_parser.y"
3282 >  case 76:
3283 > /* Line 1787 of yacc.c  */
3284 > #line 482 "conf_parser.y"
3285      {
3286   #ifdef HAVE_LIBCRYPTO
3287 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3288 <  {
3406 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3407 <    {
3408 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3409 <      SSL_CTX_set_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3410 <    }
3411 <
3412 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3413 <    {
3414 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3415 <      SSL_CTX_set_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3416 <    }
3417 <  }
3287 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3288 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3289   #endif
3290   }
3291      break;
3292  
3293 <  case 71:
3294 <
3295 < /* Line 1806 of yacc.c  */
3425 < #line 505 "ircd_parser.y"
3293 >  case 79:
3294 > /* Line 1787 of yacc.c  */
3295 > #line 491 "conf_parser.y"
3296      {
3297   #ifdef HAVE_LIBCRYPTO
3298 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3299 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3298 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3299 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3300   #endif
3301   }
3302      break;
3303  
3304 <  case 72:
3305 <
3306 < /* Line 1806 of yacc.c  */
3437 < #line 511 "ircd_parser.y"
3304 >  case 80:
3305 > /* Line 1787 of yacc.c  */
3306 > #line 497 "conf_parser.y"
3307      {
3308   #ifdef HAVE_LIBCRYPTO
3309 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3310 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3309 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3310 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3311   #endif
3312   }
3313      break;
3314  
3315 <  case 73:
3316 <
3317 < /* Line 1806 of yacc.c  */
3449 < #line 519 "ircd_parser.y"
3315 >  case 81:
3316 > /* Line 1787 of yacc.c  */
3317 > #line 505 "conf_parser.y"
3318      {
3319   #ifdef HAVE_LIBCRYPTO
3320    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3321    {
3322      if (!ServerInfo.rsa_private_key_file)
3323      {
3324 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3324 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3325        break;
3326      }
3327  
# Line 3462 | Line 3330 | yyreduce:
3330          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3331                                       SSL_FILETYPE_PEM) <= 0)
3332      {
3333 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3333 >      report_crypto_errors();
3334 >      conf_error_report("Could not open/read certificate file");
3335        break;
3336      }
3337  
# Line 3471 | Line 3340 | yyreduce:
3340          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3341                                      SSL_FILETYPE_PEM) <= 0)
3342      {
3343 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3343 >      report_crypto_errors();
3344 >      conf_error_report("Could not read RSA private key");
3345        break;
3346      }
3347  
3348      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3349          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3350      {
3351 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3351 >      report_crypto_errors();
3352 >      conf_error_report("Could not read RSA private key");
3353        break;
3354      }
3355    }
# Line 3486 | Line 3357 | yyreduce:
3357   }
3358      break;
3359  
3360 <  case 74:
3361 <
3362 < /* Line 1806 of yacc.c  */
3492 < #line 558 "ircd_parser.y"
3360 >  case 82:
3361 > /* Line 1787 of yacc.c  */
3362 > #line 547 "conf_parser.y"
3363      {
3364   #ifdef HAVE_LIBCRYPTO
3365    if (conf_parser_ctx.pass == 1)
# Line 3508 | Line 3378 | yyreduce:
3378        ServerInfo.rsa_private_key_file = NULL;
3379      }
3380  
3381 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3381 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3382  
3383      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3384      {
3385 <      yyerror("File open failed, ignoring");
3385 >      conf_error_report("File open failed, ignoring");
3386        break;
3387      }
3388  
# Line 3523 | Line 3393 | yyreduce:
3393  
3394      if (ServerInfo.rsa_private_key == NULL)
3395      {
3396 <      yyerror("Couldn't extract key, ignoring");
3396 >      conf_error_report("Couldn't extract key, ignoring");
3397        break;
3398      }
3399  
# Line 3532 | Line 3402 | yyreduce:
3402        RSA_free(ServerInfo.rsa_private_key);
3403        ServerInfo.rsa_private_key = NULL;
3404  
3405 <      yyerror("Invalid key, ignoring");
3405 >      conf_error_report("Invalid key, ignoring");
3406        break;
3407      }
3408  
# Line 3542 | Line 3412 | yyreduce:
3412        RSA_free(ServerInfo.rsa_private_key);
3413        ServerInfo.rsa_private_key = NULL;
3414  
3415 <      yyerror("Not a 2048 bit key, ignoring");
3415 >      conf_error_report("Not a 2048 bit key, ignoring");
3416      }
3417    }
3418   #endif
3419   }
3420      break;
3421  
3422 <  case 75:
3423 <
3424 < /* Line 1806 of yacc.c  */
3555 < #line 617 "ircd_parser.y"
3422 >  case 83:
3423 > /* Line 1787 of yacc.c  */
3424 > #line 606 "conf_parser.y"
3425      {
3426   /* TBD - XXX: error reporting */
3427   #ifdef HAVE_LIBCRYPTO
# Line 3568 | Line 3437 | yyreduce:
3437  
3438        if (dh)
3439        {
3440 <        SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3440 >        if (DH_size(dh) < 128)
3441 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3442 >        else
3443 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3444 >
3445          DH_free(dh);
3446        }
3447      }
# Line 3577 | Line 3450 | yyreduce:
3450   }
3451      break;
3452  
3453 <  case 76:
3454 <
3455 < /* Line 1806 of yacc.c  */
3583 < #line 641 "ircd_parser.y"
3453 >  case 84:
3454 > /* Line 1787 of yacc.c  */
3455 > #line 634 "conf_parser.y"
3456      {
3457   #ifdef HAVE_LIBCRYPTO
3458    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3587  {
3459      SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3589  }
3460   #endif
3461   }
3462      break;
3463  
3464 <  case 77:
3465 <
3466 < /* Line 1806 of yacc.c  */
3597 < #line 651 "ircd_parser.y"
3464 >  case 85:
3465 > /* Line 1787 of yacc.c  */
3466 > #line 642 "conf_parser.y"
3467      {
3468    /* this isn't rehashable */
3469    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3470    {
3471      if (valid_servname(yylval.string))
3472 <      DupString(ServerInfo.name, yylval.string);
3472 >      ServerInfo.name = xstrdup(yylval.string);
3473      else
3474      {
3475 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3475 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3476        exit(0);
3477      }
3478    }
3479   }
3480      break;
3481  
3482 <  case 78:
3483 <
3484 < /* Line 1806 of yacc.c  */
3616 < #line 666 "ircd_parser.y"
3482 >  case 86:
3483 > /* Line 1787 of yacc.c  */
3484 > #line 657 "conf_parser.y"
3485      {
3486    /* this isn't rehashable */
3487    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3488    {
3489      if (valid_sid(yylval.string))
3490 <      DupString(ServerInfo.sid, yylval.string);
3490 >      ServerInfo.sid = xstrdup(yylval.string);
3491      else
3492      {
3493 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3493 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3494        exit(0);
3495      }
3496    }
3497   }
3498      break;
3499  
3500 <  case 79:
3501 <
3502 < /* Line 1806 of yacc.c  */
3635 < #line 681 "ircd_parser.y"
3500 >  case 87:
3501 > /* Line 1787 of yacc.c  */
3502 > #line 672 "conf_parser.y"
3503      {
3504    if (conf_parser_ctx.pass == 2)
3505    {
3506      MyFree(ServerInfo.description);
3507 <    DupString(ServerInfo.description,yylval.string);
3507 >    ServerInfo.description = xstrdup(yylval.string);
3508    }
3509   }
3510      break;
3511  
3512 <  case 80:
3513 <
3514 < /* Line 1806 of yacc.c  */
3648 < #line 690 "ircd_parser.y"
3512 >  case 88:
3513 > /* Line 1787 of yacc.c  */
3514 > #line 681 "conf_parser.y"
3515      {
3516    if (conf_parser_ctx.pass == 2)
3517    {
# Line 3655 | Line 3521 | yyreduce:
3521        p = '\0';
3522  
3523      MyFree(ServerInfo.network_name);
3524 <    DupString(ServerInfo.network_name, yylval.string);
3524 >    ServerInfo.network_name = xstrdup(yylval.string);
3525    }
3526   }
3527      break;
3528  
3529 <  case 81:
3530 <
3531 < /* Line 1806 of yacc.c  */
3666 < #line 704 "ircd_parser.y"
3529 >  case 89:
3530 > /* Line 1787 of yacc.c  */
3531 > #line 695 "conf_parser.y"
3532      {
3533    if (conf_parser_ctx.pass == 2)
3534    {
3535      MyFree(ServerInfo.network_desc);
3536 <    DupString(ServerInfo.network_desc, yylval.string);
3536 >    ServerInfo.network_desc = xstrdup(yylval.string);
3537    }
3538   }
3539      break;
3540  
3541 <  case 82:
3542 <
3543 < /* Line 1806 of yacc.c  */
3679 < #line 713 "ircd_parser.y"
3541 >  case 90:
3542 > /* Line 1787 of yacc.c  */
3543 > #line 704 "conf_parser.y"
3544      {
3545    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3546    {
# Line 3705 | Line 3569 | yyreduce:
3569   }
3570      break;
3571  
3572 <  case 83:
3573 <
3574 < /* Line 1806 of yacc.c  */
3711 < #line 741 "ircd_parser.y"
3572 >  case 91:
3573 > /* Line 1787 of yacc.c  */
3574 > #line 732 "conf_parser.y"
3575      {
3576   #ifdef IPV6
3577    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3739 | Line 3602 | yyreduce:
3602   }
3603      break;
3604  
3605 <  case 84:
3606 <
3607 < /* Line 1806 of yacc.c  */
3745 < #line 771 "ircd_parser.y"
3605 >  case 92:
3606 > /* Line 1787 of yacc.c  */
3607 > #line 762 "conf_parser.y"
3608      {
3609 <  if (conf_parser_ctx.pass == 2)
3609 >  if (conf_parser_ctx.pass != 2)
3610 >    break;
3611 >
3612 >  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3613    {
3614 <    recalc_fdlimit(NULL);
3614 >    char buf[IRCD_BUFSIZE];
3615  
3616 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3617 <    {
3618 <      char buf[IRCD_BUFSIZE];
3619 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3620 <      yyerror(buf);
3621 <    }
3622 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3616 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3617 >    conf_error_report(buf);
3618 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3619 >  }
3620 >  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3621 >  {
3622 >    char buf[IRCD_BUFSIZE];
3623 >
3624 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3625 >    conf_error_report(buf);
3626 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3627 >  }
3628 >  else
3629 >    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3630 > }
3631 >    break;
3632 >
3633 >  case 93:
3634 > /* Line 1787 of yacc.c  */
3635 > #line 787 "conf_parser.y"
3636      {
3637 <      char buf[IRCD_BUFSIZE];
3638 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3639 <      yyerror(buf);
3640 <    }
3641 <    else
3642 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3637 >  if (conf_parser_ctx.pass != 2)
3638 >    break;
3639 >
3640 >  if ((yyvsp[(3) - (4)].number) < 9)
3641 >  {
3642 >    conf_error_report("max_nick_length too low, setting to 9");
3643 >    ServerInfo.max_nick_length = 9;
3644 >  }
3645 >  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3646 >  {
3647 >    char buf[IRCD_BUFSIZE];
3648 >
3649 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3650 >    conf_error_report(buf);
3651 >    ServerInfo.max_nick_length = NICKLEN;
3652    }
3653 +  else
3654 +    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3655   }
3656      break;
3657  
3658 <  case 85:
3658 >  case 94:
3659 > /* Line 1787 of yacc.c  */
3660 > #line 809 "conf_parser.y"
3661 >    {
3662 >  if (conf_parser_ctx.pass != 2)
3663 >    break;
3664  
3665 < /* Line 1806 of yacc.c  */
3666 < #line 794 "ircd_parser.y"
3665 >  if ((yyvsp[(3) - (4)].number) < 80)
3666 >  {
3667 >    conf_error_report("max_topic_length too low, setting to 80");
3668 >    ServerInfo.max_topic_length = 80;
3669 >  }
3670 >  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3671 >  {
3672 >    char buf[IRCD_BUFSIZE];
3673 >
3674 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3675 >    conf_error_report(buf);
3676 >    ServerInfo.max_topic_length = TOPICLEN;
3677 >  }
3678 >  else
3679 >    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3680 > }
3681 >    break;
3682 >
3683 >  case 95:
3684 > /* Line 1787 of yacc.c  */
3685 > #line 831 "conf_parser.y"
3686      {
3687    if (conf_parser_ctx.pass == 2)
3688      ServerInfo.hub = yylval.number;
3689   }
3690      break;
3691  
3692 <  case 93:
3693 <
3694 < /* Line 1806 of yacc.c  */
3782 < #line 809 "ircd_parser.y"
3692 >  case 103:
3693 > /* Line 1787 of yacc.c  */
3694 > #line 846 "conf_parser.y"
3695      {
3696    if (conf_parser_ctx.pass == 2)
3697    {
3698      MyFree(AdminInfo.name);
3699 <    DupString(AdminInfo.name, yylval.string);
3699 >    AdminInfo.name = xstrdup(yylval.string);
3700    }
3701   }
3702      break;
3703  
3704 <  case 94:
3705 <
3706 < /* Line 1806 of yacc.c  */
3795 < #line 818 "ircd_parser.y"
3704 >  case 104:
3705 > /* Line 1787 of yacc.c  */
3706 > #line 855 "conf_parser.y"
3707      {
3708    if (conf_parser_ctx.pass == 2)
3709    {
3710      MyFree(AdminInfo.email);
3711 <    DupString(AdminInfo.email, yylval.string);
3711 >    AdminInfo.email = xstrdup(yylval.string);
3712    }
3713   }
3714      break;
3715  
3716 <  case 95:
3717 <
3718 < /* Line 1806 of yacc.c  */
3808 < #line 827 "ircd_parser.y"
3716 >  case 105:
3717 > /* Line 1787 of yacc.c  */
3718 > #line 864 "conf_parser.y"
3719      {
3720    if (conf_parser_ctx.pass == 2)
3721    {
3722      MyFree(AdminInfo.description);
3723 <    DupString(AdminInfo.description, yylval.string);
3723 >    AdminInfo.description = xstrdup(yylval.string);
3724    }
3725   }
3726      break;
3727  
3728 <  case 103:
3729 <
3730 < /* Line 1806 of yacc.c  */
3821 < #line 845 "ircd_parser.y"
3728 >  case 112:
3729 > /* Line 1787 of yacc.c  */
3730 > #line 882 "conf_parser.y"
3731      {
3732    if (conf_parser_ctx.pass == 2)
3733      ConfigLoggingEntry.use_logging = yylval.number;
3734   }
3735      break;
3736  
3737 <  case 104:
3738 <
3739 < /* Line 1806 of yacc.c  */
3831 < #line 851 "ircd_parser.y"
3737 >  case 113:
3738 > /* Line 1787 of yacc.c  */
3739 > #line 888 "conf_parser.y"
3740      {
3741    if (conf_parser_ctx.pass == 2)
3742 <    ConfigLoggingEntry.timestamp = yylval.number;
3742 >    reset_block_state();
3743   }
3744      break;
3745  
3746 <  case 105:
3747 <
3748 < /* Line 1806 of yacc.c  */
3841 < #line 857 "ircd_parser.y"
3746 >  case 114:
3747 > /* Line 1787 of yacc.c  */
3748 > #line 892 "conf_parser.y"
3749      {
3750 <  lfile[0] = '\0';
3844 <  ltype = 0;
3845 <  lsize = 0;
3846 < }
3750 >  if (conf_parser_ctx.pass != 2)
3751      break;
3752  
3753 <  case 106:
3754 <
3755 < /* Line 1806 of yacc.c  */
3852 < #line 862 "ircd_parser.y"
3853 <    {
3854 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3855 <    log_add_file(ltype, lsize, lfile);
3753 >  if (block_state.type.value && block_state.file.buf[0])
3754 >    log_set_file(block_state.type.value, block_state.size.value,
3755 >                 block_state.file.buf);
3756   }
3757      break;
3758  
3759 <  case 113:
3760 <
3761 < /* Line 1806 of yacc.c  */
3862 < #line 874 "ircd_parser.y"
3759 >  case 121:
3760 > /* Line 1787 of yacc.c  */
3761 > #line 908 "conf_parser.y"
3762      {
3763 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3865 < }
3763 >  if (conf_parser_ctx.pass != 2)
3764      break;
3765  
3766 <  case 114:
3869 <
3870 < /* Line 1806 of yacc.c  */
3871 < #line 879 "ircd_parser.y"
3872 <    {
3873 <  lsize = (yyvsp[(3) - (4)].number);
3766 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3767   }
3768      break;
3769  
3770 <  case 115:
3771 <
3772 < /* Line 1806 of yacc.c  */
3880 < #line 882 "ircd_parser.y"
3770 >  case 122:
3771 > /* Line 1787 of yacc.c  */
3772 > #line 916 "conf_parser.y"
3773      {
3774 <  lsize = 0;
3774 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3775   }
3776      break;
3777  
3778 <  case 116:
3779 <
3780 < /* Line 1806 of yacc.c  */
3889 < #line 887 "ircd_parser.y"
3778 >  case 123:
3779 > /* Line 1787 of yacc.c  */
3780 > #line 919 "conf_parser.y"
3781      {
3782 <  if (conf_parser_ctx.pass == 2)
3892 <    ltype = 0;
3782 >  block_state.size.value = 0;
3783   }
3784      break;
3785  
3786 <  case 120:
3787 <
3788 < /* Line 1806 of yacc.c  */
3899 < #line 894 "ircd_parser.y"
3786 >  case 124:
3787 > /* Line 1787 of yacc.c  */
3788 > #line 924 "conf_parser.y"
3789      {
3790    if (conf_parser_ctx.pass == 2)
3791 <    ltype = LOG_TYPE_USER;
3791 >    block_state.type.value = 0;
3792   }
3793      break;
3794  
3795 <  case 121:
3796 <
3797 < /* Line 1806 of yacc.c  */
3909 < #line 898 "ircd_parser.y"
3795 >  case 128:
3796 > /* Line 1787 of yacc.c  */
3797 > #line 931 "conf_parser.y"
3798      {
3799    if (conf_parser_ctx.pass == 2)
3800 <    ltype = LOG_TYPE_OPER;
3800 >    block_state.type.value = LOG_TYPE_USER;
3801   }
3802      break;
3803  
3804 <  case 122:
3805 <
3806 < /* Line 1806 of yacc.c  */
3919 < #line 902 "ircd_parser.y"
3804 >  case 129:
3805 > /* Line 1787 of yacc.c  */
3806 > #line 935 "conf_parser.y"
3807      {
3808    if (conf_parser_ctx.pass == 2)
3809 <    ltype = LOG_TYPE_GLINE;
3809 >    block_state.type.value = LOG_TYPE_OPER;
3810   }
3811      break;
3812  
3813 <  case 123:
3814 <
3815 < /* Line 1806 of yacc.c  */
3929 < #line 906 "ircd_parser.y"
3813 >  case 130:
3814 > /* Line 1787 of yacc.c  */
3815 > #line 939 "conf_parser.y"
3816      {
3817    if (conf_parser_ctx.pass == 2)
3818 <    ltype = LOG_TYPE_DLINE;
3818 >    block_state.type.value = LOG_TYPE_GLINE;
3819   }
3820      break;
3821  
3822 <  case 124:
3823 <
3824 < /* Line 1806 of yacc.c  */
3939 < #line 910 "ircd_parser.y"
3822 >  case 131:
3823 > /* Line 1787 of yacc.c  */
3824 > #line 943 "conf_parser.y"
3825      {
3826    if (conf_parser_ctx.pass == 2)
3827 <    ltype = LOG_TYPE_KLINE;
3827 >    block_state.type.value = LOG_TYPE_DLINE;
3828   }
3829      break;
3830  
3831 <  case 125:
3832 <
3833 < /* Line 1806 of yacc.c  */
3949 < #line 914 "ircd_parser.y"
3831 >  case 132:
3832 > /* Line 1787 of yacc.c  */
3833 > #line 947 "conf_parser.y"
3834      {
3835    if (conf_parser_ctx.pass == 2)
3836 <    ltype = LOG_TYPE_KILL;
3836 >    block_state.type.value = LOG_TYPE_KLINE;
3837   }
3838      break;
3839  
3840 <  case 126:
3841 <
3842 < /* Line 1806 of yacc.c  */
3959 < #line 918 "ircd_parser.y"
3840 >  case 133:
3841 > /* Line 1787 of yacc.c  */
3842 > #line 951 "conf_parser.y"
3843      {
3844    if (conf_parser_ctx.pass == 2)
3845 <    ltype = LOG_TYPE_DEBUG;
3845 >    block_state.type.value = LOG_TYPE_KILL;
3846   }
3847      break;
3848  
3849 <  case 127:
3850 <
3851 < /* Line 1806 of yacc.c  */
3969 < #line 928 "ircd_parser.y"
3849 >  case 134:
3850 > /* Line 1787 of yacc.c  */
3851 > #line 955 "conf_parser.y"
3852      {
3853    if (conf_parser_ctx.pass == 2)
3854 <  {
3973 <    yy_conf = make_conf_item(OPER_TYPE);
3974 <    yy_aconf = map_to_conf(yy_conf);
3975 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3976 <  }
3977 <  else
3978 <  {
3979 <    MyFree(class_name);
3980 <    class_name = NULL;
3981 <  }
3854 >    block_state.type.value = LOG_TYPE_DEBUG;
3855   }
3856      break;
3857  
3858 <  case 128:
3859 <
3860 < /* Line 1806 of yacc.c  */
3988 < #line 941 "ircd_parser.y"
3858 >  case 135:
3859 > /* Line 1787 of yacc.c  */
3860 > #line 965 "conf_parser.y"
3861      {
3862 <  if (conf_parser_ctx.pass == 2)
3863 <  {
3992 <    struct CollectItem *yy_tmp;
3993 <    dlink_node *ptr;
3994 <    dlink_node *next_ptr;
3995 <
3996 <    conf_add_class_to_conf(yy_conf, class_name);
3862 >  if (conf_parser_ctx.pass != 2)
3863 >    break;
3864  
3865 <    /* Now, make sure there is a copy of the "base" given oper
3866 <     * block in each of the collected copies
3867 <     */
3865 >  reset_block_state();
3866 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3867 > }
3868 >    break;
3869  
3870 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3870 >  case 136:
3871 > /* Line 1787 of yacc.c  */
3872 > #line 972 "conf_parser.y"
3873      {
3874 <      struct AccessItem *new_aconf;
4005 <      struct ConfItem *new_conf;
4006 <      yy_tmp = ptr->data;
4007 <
4008 <      new_conf = make_conf_item(OPER_TYPE);
4009 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4010 <
4011 <      new_aconf->flags = yy_aconf->flags;
3874 >  dlink_node *ptr = NULL;
3875  
3876 <      if (yy_conf->name != NULL)
3877 <        DupString(new_conf->name, yy_conf->name);
4015 <      if (yy_tmp->user != NULL)
4016 <        DupString(new_aconf->user, yy_tmp->user);
4017 <      else
4018 <        DupString(new_aconf->user, "*");
4019 <      if (yy_tmp->host != NULL)
4020 <        DupString(new_aconf->host, yy_tmp->host);
4021 <      else
4022 <        DupString(new_aconf->host, "*");
3876 >  if (conf_parser_ctx.pass != 2)
3877 >    break;
3878  
3879 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->ipnum,
3880 <                                     &new_aconf->bits);
3879 >  if (!block_state.name.buf[0])
3880 >    break;
3881 > #ifdef HAVE_LIBCRYPTO
3882 >  if (!(block_state.file.buf[0] ||
3883 >        block_state.rpass.buf[0]))
3884 >    break;
3885 > #else
3886 >  if (!block_state.rpass.buf[0])
3887 >    break;
3888 > #endif
3889  
3890 <      conf_add_class_to_conf(new_conf, class_name);
3891 <      if (yy_aconf->passwd != NULL)
3892 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3890 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3891 >  {
3892 >    struct MaskItem *conf = NULL;
3893 >    struct split_nuh_item nuh;
3894  
3895 <      new_aconf->port = yy_aconf->port;
3896 < #ifdef HAVE_LIBCRYPTO
3897 <      if (yy_aconf->rsa_public_key_file != NULL)
3898 <      {
3899 <        BIO *file;
3895 >    nuh.nuhmask  = ptr->data;
3896 >    nuh.nickptr  = NULL;
3897 >    nuh.userptr  = block_state.user.buf;
3898 >    nuh.hostptr  = block_state.host.buf;
3899 >    nuh.nicksize = 0;
3900 >    nuh.usersize = sizeof(block_state.user.buf);
3901 >    nuh.hostsize = sizeof(block_state.host.buf);
3902 >    split_nuh(&nuh);
3903  
3904 <        DupString(new_aconf->rsa_public_key_file,
3905 <                  yy_aconf->rsa_public_key_file);
3904 >    conf        = conf_make(CONF_OPER);
3905 >    conf->name  = xstrdup(block_state.name.buf);
3906 >    conf->user  = xstrdup(block_state.user.buf);
3907 >    conf->host  = xstrdup(block_state.host.buf);
3908 >
3909 >    if (block_state.rpass.buf[0])
3910 >      conf->passwd = xstrdup(block_state.rpass.buf);
3911 >
3912 >    conf->flags = block_state.flags.value;
3913 >    conf->modes = block_state.modes.value;
3914 >    conf->port  = block_state.port.value;
3915 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3916  
3917 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4041 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4042 <                                                           NULL, 0, NULL);
4043 <        BIO_set_close(file, BIO_CLOSE);
4044 <        BIO_free(file);
4045 <      }
4046 < #endif
3917 >    conf_add_class_to_conf(conf, block_state.class.buf);
3918  
3919   #ifdef HAVE_LIBCRYPTO
3920 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3921 <          && yy_tmp->host)
3922 < #else
3923 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3924 < #endif
3920 >    if (block_state.file.buf[0])
3921 >    {
3922 >      BIO *file = NULL;
3923 >      RSA *pkey = NULL;
3924 >
3925 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3926        {
3927 <        conf_add_class_to_conf(new_conf, class_name);
3928 <        if (yy_tmp->name != NULL)
4057 <          DupString(new_conf->name, yy_tmp->name);
3927 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3928 >        break;
3929        }
3930  
3931 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3932 <      free_collect_item(yy_tmp);
4062 <    }
3931 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3932 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3933  
3934 <    yy_conf = NULL;
3935 <    yy_aconf = NULL;
3936 <
3937 <
3938 <    MyFree(class_name);
4069 <    class_name = NULL;
3934 >      conf->rsa_public_key = pkey;
3935 >      BIO_set_close(file, BIO_CLOSE);
3936 >      BIO_free(file);
3937 >    }
3938 > #endif /* HAVE_LIBCRYPTO */
3939    }
3940   }
3941      break;
3942  
3943 <  case 140:
3944 <
3945 < /* Line 1806 of yacc.c  */
4077 < #line 1031 "ircd_parser.y"
3943 >  case 148:
3944 > /* Line 1787 of yacc.c  */
3945 > #line 1047 "conf_parser.y"
3946      {
3947    if (conf_parser_ctx.pass == 2)
3948 <  {
4081 <    if (strlen(yylval.string) > OPERNICKLEN)
4082 <      yylval.string[OPERNICKLEN] = '\0';
4083 <
4084 <    MyFree(yy_conf->name);
4085 <    DupString(yy_conf->name, yylval.string);
4086 <  }
3948 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3949   }
3950      break;
3951  
3952 <  case 141:
3953 <
3954 < /* Line 1806 of yacc.c  */
4093 < #line 1043 "ircd_parser.y"
3952 >  case 149:
3953 > /* Line 1787 of yacc.c  */
3954 > #line 1053 "conf_parser.y"
3955      {
3956    if (conf_parser_ctx.pass == 2)
3957 <  {
4097 <    struct split_nuh_item nuh;
4098 <
4099 <    nuh.nuhmask  = yylval.string;
4100 <    nuh.nickptr  = NULL;
4101 <    nuh.userptr  = userbuf;
4102 <    nuh.hostptr  = hostbuf;
4103 <
4104 <    nuh.nicksize = 0;
4105 <    nuh.usersize = sizeof(userbuf);
4106 <    nuh.hostsize = sizeof(hostbuf);
4107 <
4108 <    split_nuh(&nuh);
4109 <
4110 <    if (yy_aconf->user == NULL)
4111 <    {
4112 <      DupString(yy_aconf->user, userbuf);
4113 <      DupString(yy_aconf->host, hostbuf);
4114 <
4115 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->ipnum,
4116 <                                    &yy_aconf->bits);
4117 <    }
4118 <    else
4119 <    {
4120 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
4121 <
4122 <      DupString(yy_tmp->user, userbuf);
4123 <      DupString(yy_tmp->host, hostbuf);
4124 <
4125 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4126 <    }
4127 <  }
3957 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3958   }
3959      break;
3960  
3961 <  case 142:
3962 <
3963 < /* Line 1806 of yacc.c  */
4134 < #line 1080 "ircd_parser.y"
3961 >  case 150:
3962 > /* Line 1787 of yacc.c  */
3963 > #line 1059 "conf_parser.y"
3964      {
3965    if (conf_parser_ctx.pass == 2)
3966 <  {
4138 <    if (yy_aconf->passwd != NULL)
4139 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4140 <
4141 <    MyFree(yy_aconf->passwd);
4142 <    DupString(yy_aconf->passwd, yylval.string);
4143 <  }
3966 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3967   }
3968      break;
3969  
3970 <  case 143:
3971 <
3972 < /* Line 1806 of yacc.c  */
4150 < #line 1092 "ircd_parser.y"
3970 >  case 151:
3971 > /* Line 1787 of yacc.c  */
3972 > #line 1065 "conf_parser.y"
3973      {
3974    if (conf_parser_ctx.pass == 2)
3975    {
3976      if (yylval.number)
3977 <      SetConfEncrypted(yy_aconf);
3977 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3978      else
3979 <      ClearConfEncrypted(yy_aconf);
3979 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3980    }
3981   }
3982      break;
3983  
3984 <  case 144:
3985 <
3986 < /* Line 1806 of yacc.c  */
4165 < #line 1103 "ircd_parser.y"
3984 >  case 152:
3985 > /* Line 1787 of yacc.c  */
3986 > #line 1076 "conf_parser.y"
3987      {
4167 #ifdef HAVE_LIBCRYPTO
3988    if (conf_parser_ctx.pass == 2)
3989 <  {
3990 <    BIO *file;
3991 <
4172 <    if (yy_aconf->rsa_public_key != NULL)
4173 <    {
4174 <      RSA_free(yy_aconf->rsa_public_key);
4175 <      yy_aconf->rsa_public_key = NULL;
4176 <    }
4177 <
4178 <    if (yy_aconf->rsa_public_key_file != NULL)
4179 <    {
4180 <      MyFree(yy_aconf->rsa_public_key_file);
4181 <      yy_aconf->rsa_public_key_file = NULL;
4182 <    }
4183 <
4184 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4185 <    file = BIO_new_file(yylval.string, "r");
4186 <
4187 <    if (file == NULL)
4188 <    {
4189 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4190 <      break;
4191 <    }
4192 <
4193 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3989 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3990 > }
3991 >    break;
3992  
3993 <    if (yy_aconf->rsa_public_key == NULL)
3993 >  case 153:
3994 > /* Line 1787 of yacc.c  */
3995 > #line 1082 "conf_parser.y"
3996      {
3997 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3998 <      break;
4199 <    }
4200 <
4201 <    BIO_set_close(file, BIO_CLOSE);
4202 <    BIO_free(file);
4203 <  }
4204 < #endif /* HAVE_LIBCRYPTO */
3997 >  if (conf_parser_ctx.pass == 2)
3998 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3999   }
4000      break;
4001  
4002 <  case 145:
4003 <
4004 < /* Line 1806 of yacc.c  */
4211 < #line 1145 "ircd_parser.y"
4002 >  case 154:
4003 > /* Line 1787 of yacc.c  */
4004 > #line 1088 "conf_parser.y"
4005      {
4006    if (conf_parser_ctx.pass == 2)
4007 <  {
4215 <    MyFree(class_name);
4216 <    DupString(class_name, yylval.string);
4217 <  }
4007 >    block_state.modes.value = 0;
4008   }
4009      break;
4010  
4011 <  case 146:
4012 <
4013 < /* Line 1806 of yacc.c  */
4224 < #line 1154 "ircd_parser.y"
4011 >  case 158:
4012 > /* Line 1787 of yacc.c  */
4013 > #line 1095 "conf_parser.y"
4014      {
4015    if (conf_parser_ctx.pass == 2)
4016 <    yy_aconf->modes = 0;
4016 >    block_state.modes.value |= UMODE_BOTS;
4017   }
4018      break;
4019  
4020 <  case 150:
4021 <
4022 < /* Line 1806 of yacc.c  */
4234 < #line 1161 "ircd_parser.y"
4020 >  case 159:
4021 > /* Line 1787 of yacc.c  */
4022 > #line 1099 "conf_parser.y"
4023      {
4024    if (conf_parser_ctx.pass == 2)
4025 <    yy_aconf->modes |= UMODE_BOTS;
4025 >    block_state.modes.value |= UMODE_CCONN;
4026   }
4027      break;
4028  
4029 <  case 151:
4030 <
4031 < /* Line 1806 of yacc.c  */
4244 < #line 1165 "ircd_parser.y"
4029 >  case 160:
4030 > /* Line 1787 of yacc.c  */
4031 > #line 1103 "conf_parser.y"
4032      {
4033    if (conf_parser_ctx.pass == 2)
4034 <    yy_aconf->modes |= UMODE_CCONN;
4034 >    block_state.modes.value |= UMODE_CCONN_FULL;
4035   }
4036      break;
4037  
4038 <  case 152:
4039 <
4040 < /* Line 1806 of yacc.c  */
4254 < #line 1169 "ircd_parser.y"
4038 >  case 161:
4039 > /* Line 1787 of yacc.c  */
4040 > #line 1107 "conf_parser.y"
4041      {
4042    if (conf_parser_ctx.pass == 2)
4043 <    yy_aconf->modes |= UMODE_CCONN_FULL;
4043 >    block_state.modes.value |= UMODE_DEAF;
4044   }
4045      break;
4046  
4047 <  case 153:
4048 <
4049 < /* Line 1806 of yacc.c  */
4264 < #line 1173 "ircd_parser.y"
4047 >  case 162:
4048 > /* Line 1787 of yacc.c  */
4049 > #line 1111 "conf_parser.y"
4050      {
4051    if (conf_parser_ctx.pass == 2)
4052 <    yy_aconf->modes |= UMODE_DEAF;
4052 >    block_state.modes.value |= UMODE_DEBUG;
4053   }
4054      break;
4055  
4056 <  case 154:
4057 <
4058 < /* Line 1806 of yacc.c  */
4274 < #line 1177 "ircd_parser.y"
4056 >  case 163:
4057 > /* Line 1787 of yacc.c  */
4058 > #line 1115 "conf_parser.y"
4059      {
4060    if (conf_parser_ctx.pass == 2)
4061 <    yy_aconf->modes |= UMODE_DEBUG;
4061 >    block_state.modes.value |= UMODE_FULL;
4062   }
4063      break;
4064  
4065 <  case 155:
4066 <
4067 < /* Line 1806 of yacc.c  */
4284 < #line 1181 "ircd_parser.y"
4065 >  case 164:
4066 > /* Line 1787 of yacc.c  */
4067 > #line 1119 "conf_parser.y"
4068      {
4069    if (conf_parser_ctx.pass == 2)
4070 <    yy_aconf->modes |= UMODE_FULL;
4070 >    block_state.modes.value |= UMODE_HIDDEN;
4071   }
4072      break;
4073  
4074 <  case 156:
4075 <
4076 < /* Line 1806 of yacc.c  */
4294 < #line 1185 "ircd_parser.y"
4074 >  case 165:
4075 > /* Line 1787 of yacc.c  */
4076 > #line 1123 "conf_parser.y"
4077      {
4078    if (conf_parser_ctx.pass == 2)
4079 <    yy_aconf->modes |= UMODE_HIDDEN;
4079 >    block_state.modes.value |= UMODE_SKILL;
4080   }
4081      break;
4082  
4083 <  case 157:
4084 <
4085 < /* Line 1806 of yacc.c  */
4304 < #line 1189 "ircd_parser.y"
4083 >  case 166:
4084 > /* Line 1787 of yacc.c  */
4085 > #line 1127 "conf_parser.y"
4086      {
4087    if (conf_parser_ctx.pass == 2)
4088 <    yy_aconf->modes |= UMODE_SKILL;
4088 >    block_state.modes.value |= UMODE_NCHANGE;
4089   }
4090      break;
4091  
4092 <  case 158:
4093 <
4094 < /* Line 1806 of yacc.c  */
4314 < #line 1193 "ircd_parser.y"
4092 >  case 167:
4093 > /* Line 1787 of yacc.c  */
4094 > #line 1131 "conf_parser.y"
4095      {
4096    if (conf_parser_ctx.pass == 2)
4097 <    yy_aconf->modes |= UMODE_NCHANGE;
4097 >    block_state.modes.value |= UMODE_REJ;
4098   }
4099      break;
4100  
4101 <  case 159:
4102 <
4103 < /* Line 1806 of yacc.c  */
4324 < #line 1197 "ircd_parser.y"
4101 >  case 168:
4102 > /* Line 1787 of yacc.c  */
4103 > #line 1135 "conf_parser.y"
4104      {
4105    if (conf_parser_ctx.pass == 2)
4106 <    yy_aconf->modes |= UMODE_REJ;
4106 >    block_state.modes.value |= UMODE_UNAUTH;
4107   }
4108      break;
4109  
4110 <  case 160:
4111 <
4112 < /* Line 1806 of yacc.c  */
4334 < #line 1201 "ircd_parser.y"
4110 >  case 169:
4111 > /* Line 1787 of yacc.c  */
4112 > #line 1139 "conf_parser.y"
4113      {
4114    if (conf_parser_ctx.pass == 2)
4115 <    yy_aconf->modes |= UMODE_UNAUTH;
4115 >    block_state.modes.value |= UMODE_SPY;
4116   }
4117      break;
4118  
4119 <  case 161:
4120 <
4121 < /* Line 1806 of yacc.c  */
4344 < #line 1205 "ircd_parser.y"
4119 >  case 170:
4120 > /* Line 1787 of yacc.c  */
4121 > #line 1143 "conf_parser.y"
4122      {
4123    if (conf_parser_ctx.pass == 2)
4124 <    yy_aconf->modes |= UMODE_SPY;
4124 >    block_state.modes.value |= UMODE_EXTERNAL;
4125   }
4126      break;
4127  
4128 <  case 162:
4129 <
4130 < /* Line 1806 of yacc.c  */
4354 < #line 1209 "ircd_parser.y"
4128 >  case 171:
4129 > /* Line 1787 of yacc.c  */
4130 > #line 1147 "conf_parser.y"
4131      {
4132    if (conf_parser_ctx.pass == 2)
4133 <    yy_aconf->modes |= UMODE_EXTERNAL;
4133 >    block_state.modes.value |= UMODE_OPERWALL;
4134   }
4135      break;
4136  
4137 <  case 163:
4138 <
4139 < /* Line 1806 of yacc.c  */
4364 < #line 1213 "ircd_parser.y"
4137 >  case 172:
4138 > /* Line 1787 of yacc.c  */
4139 > #line 1151 "conf_parser.y"
4140      {
4141    if (conf_parser_ctx.pass == 2)
4142 <    yy_aconf->modes |= UMODE_OPERWALL;
4142 >    block_state.modes.value |= UMODE_SERVNOTICE;
4143   }
4144      break;
4145  
4146 <  case 164:
4147 <
4148 < /* Line 1806 of yacc.c  */
4374 < #line 1217 "ircd_parser.y"
4146 >  case 173:
4147 > /* Line 1787 of yacc.c  */
4148 > #line 1155 "conf_parser.y"
4149      {
4150    if (conf_parser_ctx.pass == 2)
4151 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4151 >    block_state.modes.value |= UMODE_INVISIBLE;
4152   }
4153      break;
4154  
4155 <  case 165:
4156 <
4157 < /* Line 1806 of yacc.c  */
4384 < #line 1221 "ircd_parser.y"
4155 >  case 174:
4156 > /* Line 1787 of yacc.c  */
4157 > #line 1159 "conf_parser.y"
4158      {
4159    if (conf_parser_ctx.pass == 2)
4160 <    yy_aconf->modes |= UMODE_INVISIBLE;
4160 >    block_state.modes.value |= UMODE_WALLOP;
4161   }
4162      break;
4163  
4164 <  case 166:
4165 <
4166 < /* Line 1806 of yacc.c  */
4394 < #line 1225 "ircd_parser.y"
4164 >  case 175:
4165 > /* Line 1787 of yacc.c  */
4166 > #line 1163 "conf_parser.y"
4167      {
4168    if (conf_parser_ctx.pass == 2)
4169 <    yy_aconf->modes |= UMODE_WALLOP;
4169 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4170   }
4171      break;
4172  
4173 <  case 167:
4174 <
4175 < /* Line 1806 of yacc.c  */
4404 < #line 1229 "ircd_parser.y"
4173 >  case 176:
4174 > /* Line 1787 of yacc.c  */
4175 > #line 1167 "conf_parser.y"
4176      {
4177    if (conf_parser_ctx.pass == 2)
4178 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4178 >    block_state.modes.value |= UMODE_CALLERID;
4179   }
4180      break;
4181  
4182 <  case 168:
4183 <
4184 < /* Line 1806 of yacc.c  */
4414 < #line 1233 "ircd_parser.y"
4182 >  case 177:
4183 > /* Line 1787 of yacc.c  */
4184 > #line 1171 "conf_parser.y"
4185      {
4186    if (conf_parser_ctx.pass == 2)
4187 <    yy_aconf->modes |= UMODE_CALLERID;
4187 >    block_state.modes.value |= UMODE_LOCOPS;
4188   }
4189      break;
4190  
4191 <  case 169:
4192 <
4193 < /* Line 1806 of yacc.c  */
4424 < #line 1237 "ircd_parser.y"
4191 >  case 178:
4192 > /* Line 1787 of yacc.c  */
4193 > #line 1175 "conf_parser.y"
4194      {
4195    if (conf_parser_ctx.pass == 2)
4196 <    yy_aconf->modes |= UMODE_LOCOPS;
4196 >    block_state.modes.value |= UMODE_REGONLY;
4197   }
4198      break;
4199  
4200 <  case 170:
4201 <
4202 < /* Line 1806 of yacc.c  */
4434 < #line 1243 "ircd_parser.y"
4200 >  case 179:
4201 > /* Line 1787 of yacc.c  */
4202 > #line 1179 "conf_parser.y"
4203      {
4204    if (conf_parser_ctx.pass == 2)
4205 <    yy_aconf->port = 0;
4205 >    block_state.modes.value |= UMODE_FARCONNECT;
4206   }
4207      break;
4208  
4209 <  case 174:
4210 <
4211 < /* Line 1806 of yacc.c  */
4444 < #line 1250 "ircd_parser.y"
4209 >  case 180:
4210 > /* Line 1787 of yacc.c  */
4211 > #line 1185 "conf_parser.y"
4212      {
4213    if (conf_parser_ctx.pass == 2)
4214 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4214 >    block_state.port.value = 0;
4215   }
4216      break;
4217  
4218 <  case 175:
4219 <
4220 < /* Line 1806 of yacc.c  */
4454 < #line 1254 "ircd_parser.y"
4218 >  case 184:
4219 > /* Line 1787 of yacc.c  */
4220 > #line 1192 "conf_parser.y"
4221      {
4222    if (conf_parser_ctx.pass == 2)
4223 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4223 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4224   }
4225      break;
4226  
4227 <  case 176:
4228 <
4229 < /* Line 1806 of yacc.c  */
4464 < #line 1258 "ircd_parser.y"
4227 >  case 185:
4228 > /* Line 1787 of yacc.c  */
4229 > #line 1196 "conf_parser.y"
4230      {
4231    if (conf_parser_ctx.pass == 2)
4232 <    yy_aconf->port |= OPER_FLAG_K;
4232 >    block_state.port.value |= OPER_FLAG_REMOTE;
4233   }
4234      break;
4235  
4236 <  case 177:
4237 <
4238 < /* Line 1806 of yacc.c  */
4474 < #line 1262 "ircd_parser.y"
4236 >  case 186:
4237 > /* Line 1787 of yacc.c  */
4238 > #line 1200 "conf_parser.y"
4239      {
4240    if (conf_parser_ctx.pass == 2)
4241 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4241 >    block_state.port.value |= OPER_FLAG_K;
4242   }
4243      break;
4244  
4245 <  case 178:
4246 <
4247 < /* Line 1806 of yacc.c  */
4484 < #line 1266 "ircd_parser.y"
4245 >  case 187:
4246 > /* Line 1787 of yacc.c  */
4247 > #line 1204 "conf_parser.y"
4248      {
4249    if (conf_parser_ctx.pass == 2)
4250 <    yy_aconf->port |= OPER_FLAG_DLINE;
4250 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4251   }
4252      break;
4253  
4254 <  case 179:
4255 <
4256 < /* Line 1806 of yacc.c  */
4494 < #line 1270 "ircd_parser.y"
4254 >  case 188:
4255 > /* Line 1787 of yacc.c  */
4256 > #line 1208 "conf_parser.y"
4257      {
4258    if (conf_parser_ctx.pass == 2)
4259 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4259 >    block_state.port.value |= OPER_FLAG_DLINE;
4260   }
4261      break;
4262  
4263 <  case 180:
4264 <
4265 < /* Line 1806 of yacc.c  */
4504 < #line 1274 "ircd_parser.y"
4263 >  case 189:
4264 > /* Line 1787 of yacc.c  */
4265 > #line 1212 "conf_parser.y"
4266      {
4267    if (conf_parser_ctx.pass == 2)
4268 <    yy_aconf->port |= OPER_FLAG_X;
4268 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4269   }
4270      break;
4271  
4272 <  case 181:
4273 <
4274 < /* Line 1806 of yacc.c  */
4514 < #line 1278 "ircd_parser.y"
4272 >  case 190:
4273 > /* Line 1787 of yacc.c  */
4274 > #line 1216 "conf_parser.y"
4275      {
4276    if (conf_parser_ctx.pass == 2)
4277 <    yy_aconf->port |= OPER_FLAG_GLINE;
4277 >    block_state.port.value |= OPER_FLAG_X;
4278   }
4279      break;
4280  
4281 <  case 182:
4282 <
4283 < /* Line 1806 of yacc.c  */
4524 < #line 1282 "ircd_parser.y"
4281 >  case 191:
4282 > /* Line 1787 of yacc.c  */
4283 > #line 1220 "conf_parser.y"
4284      {
4285    if (conf_parser_ctx.pass == 2)
4286 <    yy_aconf->port |= OPER_FLAG_DIE;
4286 >    block_state.port.value |= OPER_FLAG_GLINE;
4287   }
4288      break;
4289  
4290 <  case 183:
4291 <
4292 < /* Line 1806 of yacc.c  */
4534 < #line 1286 "ircd_parser.y"
4290 >  case 192:
4291 > /* Line 1787 of yacc.c  */
4292 > #line 1224 "conf_parser.y"
4293      {
4294    if (conf_parser_ctx.pass == 2)
4295 <    yy_aconf->port |= OPER_FLAG_RESTART;
4295 >    block_state.port.value |= OPER_FLAG_DIE;
4296   }
4297      break;
4298  
4299 <  case 184:
4300 <
4301 < /* Line 1806 of yacc.c  */
4544 < #line 1290 "ircd_parser.y"
4299 >  case 193:
4300 > /* Line 1787 of yacc.c  */
4301 > #line 1228 "conf_parser.y"
4302      {
4303    if (conf_parser_ctx.pass == 2)
4304 <    yy_aconf->port |= OPER_FLAG_REHASH;
4304 >    block_state.port.value |= OPER_FLAG_RESTART;
4305   }
4306      break;
4307  
4308 <  case 185:
4309 <
4310 < /* Line 1806 of yacc.c  */
4554 < #line 1294 "ircd_parser.y"
4308 >  case 194:
4309 > /* Line 1787 of yacc.c  */
4310 > #line 1232 "conf_parser.y"
4311      {
4312    if (conf_parser_ctx.pass == 2)
4313 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4313 >    block_state.port.value |= OPER_FLAG_REHASH;
4314   }
4315      break;
4316  
4317 <  case 186:
4318 <
4319 < /* Line 1806 of yacc.c  */
4564 < #line 1298 "ircd_parser.y"
4317 >  case 195:
4318 > /* Line 1787 of yacc.c  */
4319 > #line 1236 "conf_parser.y"
4320      {
4321    if (conf_parser_ctx.pass == 2)
4322 <    yy_aconf->port |= OPER_FLAG_N;
4322 >    block_state.port.value |= OPER_FLAG_ADMIN;
4323   }
4324      break;
4325  
4326 <  case 187:
4327 <
4328 < /* Line 1806 of yacc.c  */
4574 < #line 1302 "ircd_parser.y"
4326 >  case 196:
4327 > /* Line 1787 of yacc.c  */
4328 > #line 1240 "conf_parser.y"
4329      {
4330    if (conf_parser_ctx.pass == 2)
4331 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4331 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4332   }
4333      break;
4334  
4335 <  case 188:
4336 <
4337 < /* Line 1806 of yacc.c  */
4584 < #line 1306 "ircd_parser.y"
4335 >  case 197:
4336 > /* Line 1787 of yacc.c  */
4337 > #line 1244 "conf_parser.y"
4338      {
4339    if (conf_parser_ctx.pass == 2)
4340 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4340 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4341   }
4342      break;
4343  
4344 <  case 189:
4345 <
4346 < /* Line 1806 of yacc.c  */
4594 < #line 1310 "ircd_parser.y"
4344 >  case 198:
4345 > /* Line 1787 of yacc.c  */
4346 > #line 1248 "conf_parser.y"
4347      {
4348    if (conf_parser_ctx.pass == 2)
4349 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4349 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4350   }
4351      break;
4352  
4353 <  case 190:
4354 <
4355 < /* Line 1806 of yacc.c  */
4604 < #line 1314 "ircd_parser.y"
4353 >  case 199:
4354 > /* Line 1787 of yacc.c  */
4355 > #line 1252 "conf_parser.y"
4356      {
4357    if (conf_parser_ctx.pass == 2)
4358 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4358 >    block_state.port.value |= OPER_FLAG_SET;
4359   }
4360      break;
4361  
4362 <  case 191:
4363 <
4364 < /* Line 1806 of yacc.c  */
4614 < #line 1318 "ircd_parser.y"
4362 >  case 200:
4363 > /* Line 1787 of yacc.c  */
4364 > #line 1256 "conf_parser.y"
4365      {
4366    if (conf_parser_ctx.pass == 2)
4367 <    yy_aconf->port |= OPER_FLAG_MODULE;
4367 >    block_state.port.value |= OPER_FLAG_MODULE;
4368   }
4369      break;
4370  
4371 <  case 192:
4372 <
4373 < /* Line 1806 of yacc.c  */
4624 < #line 1328 "ircd_parser.y"
4371 >  case 201:
4372 > /* Line 1787 of yacc.c  */
4373 > #line 1266 "conf_parser.y"
4374      {
4375 <  if (conf_parser_ctx.pass == 1)
4627 <  {
4628 <    yy_conf = make_conf_item(CLASS_TYPE);
4629 <    yy_class = map_to_conf(yy_conf);
4630 <  }
4631 < }
4375 >  if (conf_parser_ctx.pass != 1)
4376      break;
4377  
4378 <  case 193:
4378 >  reset_block_state();
4379  
4380 < /* Line 1806 of yacc.c  */
4381 < #line 1335 "ircd_parser.y"
4382 <    {
4383 <  if (conf_parser_ctx.pass == 1)
4384 <  {
4385 <    struct ConfItem *cconf = NULL;
4386 <    struct ClassItem *class = NULL;
4380 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4381 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4382 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4383 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4384 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4385 > }
4386 >    break;
4387  
4388 <    if (yy_class_name == NULL)
4389 <      delete_conf_item(yy_conf);
4390 <    else
4388 >  case 202:
4389 > /* Line 1787 of yacc.c  */
4390 > #line 1278 "conf_parser.y"
4391      {
4392 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4392 >  struct ClassItem *class = NULL;
4393  
4394 <      if (cconf != NULL)                /* The class existed already */
4395 <      {
4652 <        int user_count = 0;
4394 >  if (conf_parser_ctx.pass != 1)
4395 >    break;
4396  
4397 <        rebuild_cidr_class(cconf, yy_class);
4397 >  if (!block_state.class.buf[0])
4398 >    break;
4399  
4400 <        class = map_to_conf(cconf);
4400 >  if (!(class = class_find(block_state.class.buf, 0)))
4401 >    class = class_make();
4402  
4403 <        user_count = class->curr_user_count;
4404 <        memcpy(class, yy_class, sizeof(*class));
4405 <        class->curr_user_count = user_count;
4406 <        class->active = 1;
4403 >  class->active = 1;
4404 >  MyFree(class->name);
4405 >  class->name = xstrdup(block_state.class.buf);
4406 >  class->ping_freq = block_state.ping_freq.value;
4407 >  class->max_perip = block_state.max_perip.value;
4408 >  class->con_freq = block_state.con_freq.value;
4409 >  class->max_total = block_state.max_total.value;
4410 >  class->max_global = block_state.max_global.value;
4411 >  class->max_local = block_state.max_local.value;
4412 >  class->max_ident = block_state.max_ident.value;
4413 >  class->max_sendq = block_state.max_sendq.value;
4414 >  class->max_recvq = block_state.max_recvq.value;
4415  
4416 <        delete_conf_item(yy_conf);
4416 >  if (block_state.min_idle.value > block_state.max_idle.value)
4417 >  {
4418 >    block_state.min_idle.value = 0;
4419 >    block_state.max_idle.value = 0;
4420 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4421 >  }
4422  
4423 <        MyFree(cconf->name);            /* Allows case change of class name */
4424 <        cconf->name = yy_class_name;
4425 <      }
4668 <      else      /* Brand new class */
4669 <      {
4670 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4671 <        yy_conf->name = yy_class_name;
4672 <        yy_class->active = 1;
4673 <      }
4674 <    }
4423 >  class->flags = block_state.flags.value;
4424 >  class->min_idle = block_state.min_idle.value;
4425 >  class->max_idle = block_state.max_idle.value;
4426  
4427 <    yy_class_name = NULL;
4428 <  }
4427 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4428 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4429 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4430 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4431 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4432 >        rebuild_cidr_list(class);
4433 >
4434 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4435 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4436 >  class->number_per_cidr = block_state.number_per_cidr.value;
4437   }
4438      break;
4439  
4440 <  case 210:
4441 <
4442 < /* Line 1806 of yacc.c  */
4684 < #line 1393 "ircd_parser.y"
4440 >  case 222:
4441 > /* Line 1787 of yacc.c  */
4442 > #line 1344 "conf_parser.y"
4443      {
4444    if (conf_parser_ctx.pass == 1)
4445 <  {
4688 <    MyFree(yy_class_name);
4689 <    DupString(yy_class_name, yylval.string);
4690 <  }
4445 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4446   }
4447      break;
4448  
4449 <  case 211:
4450 <
4451 < /* Line 1806 of yacc.c  */
4697 < #line 1402 "ircd_parser.y"
4449 >  case 223:
4450 > /* Line 1787 of yacc.c  */
4451 > #line 1350 "conf_parser.y"
4452      {
4453    if (conf_parser_ctx.pass == 1)
4454 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4454 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4455   }
4456      break;
4457  
4458 <  case 212:
4459 <
4460 < /* Line 1806 of yacc.c  */
4707 < #line 1408 "ircd_parser.y"
4458 >  case 224:
4459 > /* Line 1787 of yacc.c  */
4460 > #line 1356 "conf_parser.y"
4461      {
4462    if (conf_parser_ctx.pass == 1)
4463 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4463 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4464   }
4465      break;
4466  
4467 <  case 213:
4468 <
4469 < /* Line 1806 of yacc.c  */
4717 < #line 1414 "ircd_parser.y"
4467 >  case 225:
4468 > /* Line 1787 of yacc.c  */
4469 > #line 1362 "conf_parser.y"
4470      {
4471    if (conf_parser_ctx.pass == 1)
4472 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4472 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4473   }
4474      break;
4475  
4476 <  case 214:
4477 <
4478 < /* Line 1806 of yacc.c  */
4727 < #line 1420 "ircd_parser.y"
4476 >  case 226:
4477 > /* Line 1787 of yacc.c  */
4478 > #line 1368 "conf_parser.y"
4479      {
4480    if (conf_parser_ctx.pass == 1)
4481 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4481 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4482   }
4483      break;
4484  
4485 <  case 215:
4486 <
4487 < /* Line 1806 of yacc.c  */
4737 < #line 1426 "ircd_parser.y"
4485 >  case 227:
4486 > /* Line 1787 of yacc.c  */
4487 > #line 1374 "conf_parser.y"
4488      {
4489    if (conf_parser_ctx.pass == 1)
4490 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4490 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4491   }
4492      break;
4493  
4494 <  case 216:
4495 <
4496 < /* Line 1806 of yacc.c  */
4747 < #line 1432 "ircd_parser.y"
4494 >  case 228:
4495 > /* Line 1787 of yacc.c  */
4496 > #line 1380 "conf_parser.y"
4497      {
4498    if (conf_parser_ctx.pass == 1)
4499 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4499 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4500   }
4501      break;
4502  
4503 <  case 217:
4504 <
4505 < /* Line 1806 of yacc.c  */
4757 < #line 1438 "ircd_parser.y"
4503 >  case 229:
4504 > /* Line 1787 of yacc.c  */
4505 > #line 1386 "conf_parser.y"
4506      {
4507    if (conf_parser_ctx.pass == 1)
4508 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4508 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4509   }
4510      break;
4511  
4512 <  case 218:
4513 <
4514 < /* Line 1806 of yacc.c  */
4767 < #line 1444 "ircd_parser.y"
4512 >  case 230:
4513 > /* Line 1787 of yacc.c  */
4514 > #line 1392 "conf_parser.y"
4515      {
4516    if (conf_parser_ctx.pass == 1)
4517 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4517 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4518   }
4519      break;
4520  
4521 <  case 219:
4522 <
4523 < /* Line 1806 of yacc.c  */
4777 < #line 1450 "ircd_parser.y"
4521 >  case 231:
4522 > /* Line 1787 of yacc.c  */
4523 > #line 1398 "conf_parser.y"
4524      {
4525    if (conf_parser_ctx.pass == 1)
4526 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4526 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4527 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4528   }
4529      break;
4530  
4531 <  case 220:
4532 <
4533 < /* Line 1806 of yacc.c  */
4787 < #line 1456 "ircd_parser.y"
4531 >  case 232:
4532 > /* Line 1787 of yacc.c  */
4533 > #line 1405 "conf_parser.y"
4534      {
4535    if (conf_parser_ctx.pass == 1)
4536 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4536 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4537   }
4538      break;
4539  
4540 <  case 221:
4541 <
4542 < /* Line 1806 of yacc.c  */
4797 < #line 1462 "ircd_parser.y"
4540 >  case 233:
4541 > /* Line 1787 of yacc.c  */
4542 > #line 1411 "conf_parser.y"
4543      {
4544    if (conf_parser_ctx.pass == 1)
4545 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4545 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4546   }
4547      break;
4548  
4549 <  case 222:
4550 <
4551 < /* Line 1806 of yacc.c  */
4807 < #line 1468 "ircd_parser.y"
4549 >  case 234:
4550 > /* Line 1787 of yacc.c  */
4551 > #line 1417 "conf_parser.y"
4552      {
4553    if (conf_parser_ctx.pass == 1)
4554 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4554 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4555   }
4556      break;
4557  
4558 <  case 223:
4559 <
4560 < /* Line 1806 of yacc.c  */
4817 < #line 1477 "ircd_parser.y"
4558 >  case 235:
4559 > /* Line 1787 of yacc.c  */
4560 > #line 1423 "conf_parser.y"
4561      {
4562 <  if (conf_parser_ctx.pass == 2)
4820 <  {
4821 <    listener_address = NULL;
4822 <    listener_flags = 0;
4823 <  }
4824 < }
4562 >  if (conf_parser_ctx.pass != 1)
4563      break;
4564  
4565 <  case 224:
4565 >  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4566 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4567 > }
4568 >    break;
4569  
4570 < /* Line 1806 of yacc.c  */
4571 < #line 1484 "ircd_parser.y"
4570 >  case 236:
4571 > /* Line 1787 of yacc.c  */
4572 > #line 1432 "conf_parser.y"
4573      {
4574 <  if (conf_parser_ctx.pass == 2)
4575 <  {
4576 <    MyFree(listener_address);
4577 <    listener_address = NULL;
4578 <  }
4574 >  if (conf_parser_ctx.pass != 1)
4575 >    break;
4576 >
4577 >  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4578 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4579   }
4580      break;
4581  
4582 <  case 225:
4582 >  case 237:
4583 > /* Line 1787 of yacc.c  */
4584 > #line 1441 "conf_parser.y"
4585 >    {
4586 >  if (conf_parser_ctx.pass == 1)
4587 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4588 > }
4589 >    break;
4590  
4591 < /* Line 1806 of yacc.c  */
4592 < #line 1493 "ircd_parser.y"
4591 >  case 241:
4592 > /* Line 1787 of yacc.c  */
4593 > #line 1448 "conf_parser.y"
4594      {
4595 <  listener_flags = 0;
4595 >  if (conf_parser_ctx.pass == 1)
4596 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4597   }
4598      break;
4599  
4600 <  case 229:
4600 >  case 242:
4601 > /* Line 1787 of yacc.c  */
4602 > #line 1452 "conf_parser.y"
4603 >    {
4604 >  if (conf_parser_ctx.pass == 1)
4605 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4606 > }
4607 >    break;
4608  
4609 < /* Line 1806 of yacc.c  */
4610 < #line 1499 "ircd_parser.y"
4609 >  case 243:
4610 > /* Line 1787 of yacc.c  */
4611 > #line 1462 "conf_parser.y"
4612      {
4613    if (conf_parser_ctx.pass == 2)
4614 <    listener_flags |= LISTENER_SSL;
4614 >    reset_block_state();
4615   }
4616      break;
4617  
4618 <  case 230:
4618 >  case 245:
4619 > /* Line 1787 of yacc.c  */
4620 > #line 1468 "conf_parser.y"
4621 >    {
4622 >  block_state.flags.value = 0;
4623 > }
4624 >    break;
4625  
4626 < /* Line 1806 of yacc.c  */
4627 < #line 1503 "ircd_parser.y"
4626 >  case 249:
4627 > /* Line 1787 of yacc.c  */
4628 > #line 1474 "conf_parser.y"
4629      {
4630    if (conf_parser_ctx.pass == 2)
4631 <    listener_flags |= LISTENER_HIDDEN;
4631 >    block_state.flags.value |= LISTENER_SSL;
4632   }
4633      break;
4634  
4635 <  case 231:
4636 <
4637 < /* Line 1806 of yacc.c  */
4872 < #line 1507 "ircd_parser.y"
4635 >  case 250:
4636 > /* Line 1787 of yacc.c  */
4637 > #line 1478 "conf_parser.y"
4638      {
4639    if (conf_parser_ctx.pass == 2)
4640 <    listener_flags |= LISTENER_SERVER;
4640 >    block_state.flags.value |= LISTENER_HIDDEN;
4641   }
4642      break;
4643  
4644 <  case 239:
4645 <
4646 < /* Line 1806 of yacc.c  */
4647 < #line 1517 "ircd_parser.y"
4648 <    { listener_flags = 0; }
4644 >  case 251:
4645 > /* Line 1787 of yacc.c  */
4646 > #line 1482 "conf_parser.y"
4647 >    {
4648 >  if (conf_parser_ctx.pass == 2)
4649 >   block_state.flags.value |= LISTENER_SERVER;
4650 > }
4651      break;
4652  
4653 <  case 243:
4653 >  case 259:
4654 > /* Line 1787 of yacc.c  */
4655 > #line 1490 "conf_parser.y"
4656 >    { block_state.flags.value = 0; }
4657 >    break;
4658  
4659 < /* Line 1806 of yacc.c  */
4660 < #line 1522 "ircd_parser.y"
4659 >  case 263:
4660 > /* Line 1787 of yacc.c  */
4661 > #line 1495 "conf_parser.y"
4662      {
4663    if (conf_parser_ctx.pass == 2)
4664    {
4665 <    if ((listener_flags & LISTENER_SSL))
4665 >    if (block_state.flags.value & LISTENER_SSL)
4666   #ifdef HAVE_LIBCRYPTO
4667        if (!ServerInfo.server_ctx)
4668   #endif
4669        {
4670 <        yyerror("SSL not available - port closed");
4670 >        conf_error_report("SSL not available - port closed");
4671          break;
4672        }
4673 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4673 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4674    }
4675   }
4676      break;
4677  
4678 <  case 244:
4679 <
4680 < /* Line 1806 of yacc.c  */
4909 < #line 1536 "ircd_parser.y"
4678 >  case 264:
4679 > /* Line 1787 of yacc.c  */
4680 > #line 1509 "conf_parser.y"
4681      {
4682    if (conf_parser_ctx.pass == 2)
4683    {
4684      int i;
4685  
4686 <    if ((listener_flags & LISTENER_SSL))
4686 >    if (block_state.flags.value & LISTENER_SSL)
4687   #ifdef HAVE_LIBCRYPTO
4688        if (!ServerInfo.server_ctx)
4689   #endif
4690        {
4691 <        yyerror("SSL not available - port closed");
4691 >        conf_error_report("SSL not available - port closed");
4692          break;
4693        }
4694  
4695      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4696 <      add_listener(i, listener_address, listener_flags);
4696 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4697    }
4698   }
4699      break;
4700  
4701 <  case 245:
4702 <
4703 < /* Line 1806 of yacc.c  */
4933 < #line 1556 "ircd_parser.y"
4701 >  case 265:
4702 > /* Line 1787 of yacc.c  */
4703 > #line 1529 "conf_parser.y"
4704      {
4705    if (conf_parser_ctx.pass == 2)
4706 <  {
4937 <    MyFree(listener_address);
4938 <    DupString(listener_address, yylval.string);
4939 <  }
4706 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4707   }
4708      break;
4709  
4710 <  case 246:
4711 <
4712 < /* Line 1806 of yacc.c  */
4946 < #line 1565 "ircd_parser.y"
4710 >  case 266:
4711 > /* Line 1787 of yacc.c  */
4712 > #line 1535 "conf_parser.y"
4713      {
4714    if (conf_parser_ctx.pass == 2)
4715 <  {
4950 <    MyFree(listener_address);
4951 <    DupString(listener_address, yylval.string);
4952 <  }
4715 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4716   }
4717      break;
4718  
4719 <  case 247:
4720 <
4721 < /* Line 1806 of yacc.c  */
4959 < #line 1577 "ircd_parser.y"
4719 >  case 267:
4720 > /* Line 1787 of yacc.c  */
4721 > #line 1544 "conf_parser.y"
4722      {
4723    if (conf_parser_ctx.pass == 2)
4724 <  {
4963 <    yy_conf = make_conf_item(CLIENT_TYPE);
4964 <    yy_aconf = map_to_conf(yy_conf);
4965 <  }
4966 <  else
4967 <  {
4968 <    MyFree(class_name);
4969 <    class_name = NULL;
4970 <  }
4724 >    reset_block_state();
4725   }
4726      break;
4727  
4728 <  case 248:
4729 <
4730 < /* Line 1806 of yacc.c  */
4977 < #line 1589 "ircd_parser.y"
4978 <    {
4979 <  if (conf_parser_ctx.pass == 2)
4980 <  {
4981 <    struct CollectItem *yy_tmp = NULL;
4982 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4983 <
4984 <    if (yy_aconf->user && yy_aconf->host)
4985 <    {
4986 <      conf_add_class_to_conf(yy_conf, class_name);
4987 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4988 <    }
4989 <    else
4990 <      delete_conf_item(yy_conf);
4991 <
4992 <    /* copy over settings from first struct */
4993 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4728 >  case 268:
4729 > /* Line 1787 of yacc.c  */
4730 > #line 1548 "conf_parser.y"
4731      {
4732 <      struct AccessItem *new_aconf;
4996 <      struct ConfItem *new_conf;
4997 <
4998 <      new_conf = make_conf_item(CLIENT_TYPE);
4999 <      new_aconf = map_to_conf(new_conf);
5000 <
5001 <      yy_tmp = ptr->data;
5002 <
5003 <      assert(yy_tmp->user && yy_tmp->host);
5004 <
5005 <      if (yy_aconf->passwd != NULL)
5006 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5007 <      if (yy_conf->name != NULL)
5008 <        DupString(new_conf->name, yy_conf->name);
5009 <      if (yy_aconf->passwd != NULL)
5010 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5011 <
5012 <      new_aconf->flags = yy_aconf->flags;
5013 <      new_aconf->port  = yy_aconf->port;
5014 <
5015 <      DupString(new_aconf->user, yy_tmp->user);
5016 <      collapse(new_aconf->user);
5017 <
5018 <      DupString(new_aconf->host, yy_tmp->host);
5019 <      collapse(new_aconf->host);
5020 <
5021 <      conf_add_class_to_conf(new_conf, class_name);
5022 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5023 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5024 <      free_collect_item(yy_tmp);
5025 <    }
4732 >  dlink_node *ptr = NULL;
4733  
4734 <    MyFree(class_name);
5028 <    class_name = NULL;
5029 <    yy_conf = NULL;
5030 <    yy_aconf = NULL;
5031 <  }
5032 < }
4734 >  if (conf_parser_ctx.pass != 2)
4735      break;
4736  
4737 <  case 260:
5036 <
5037 < /* Line 1806 of yacc.c  */
5038 < #line 1651 "ircd_parser.y"
5039 <    {
5040 <  if (conf_parser_ctx.pass == 2)
4737 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4738    {
4739 <    struct CollectItem *yy_tmp = NULL;
4739 >    struct MaskItem *conf = NULL;
4740      struct split_nuh_item nuh;
4741  
4742 <    nuh.nuhmask  = yylval.string;
4742 >    nuh.nuhmask  = ptr->data;
4743      nuh.nickptr  = NULL;
4744 <    nuh.userptr  = userbuf;
4745 <    nuh.hostptr  = hostbuf;
5049 <
4744 >    nuh.userptr  = block_state.user.buf;
4745 >    nuh.hostptr  = block_state.host.buf;
4746      nuh.nicksize = 0;
4747 <    nuh.usersize = sizeof(userbuf);
4748 <    nuh.hostsize = sizeof(hostbuf);
5053 <
4747 >    nuh.usersize = sizeof(block_state.user.buf);
4748 >    nuh.hostsize = sizeof(block_state.host.buf);
4749      split_nuh(&nuh);
4750  
4751 <    if (yy_aconf->user == NULL)
4752 <    {
4753 <      DupString(yy_aconf->user, userbuf);
4754 <      DupString(yy_aconf->host, hostbuf);
4755 <    }
4756 <    else
4757 <    {
4758 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4751 >    conf        = conf_make(CONF_CLIENT);
4752 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4753 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4754 >
4755 >    if (block_state.rpass.buf[0])
4756 >      conf->passwd = xstrdup(block_state.rpass.buf);
4757 >    if (block_state.name.buf[0])
4758 >      conf->name = xstrdup(block_state.name.buf);
4759  
4760 <      DupString(yy_tmp->user, userbuf);
4761 <      DupString(yy_tmp->host, hostbuf);
4760 >    conf->flags = block_state.flags.value;
4761 >    conf->port  = block_state.port.value;
4762  
4763 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4764 <    }
4763 >    conf_add_class_to_conf(conf, block_state.class.buf);
4764 >    add_conf_by_address(CONF_CLIENT, conf);
4765    }
4766   }
4767      break;
4768  
4769 <  case 261:
4770 <
4771 < /* Line 1806 of yacc.c  */
5077 < #line 1688 "ircd_parser.y"
4769 >  case 280:
4770 > /* Line 1787 of yacc.c  */
4771 > #line 1591 "conf_parser.y"
4772      {
4773    if (conf_parser_ctx.pass == 2)
4774 <  {
5081 <    /* be paranoid */
5082 <    if (yy_aconf->passwd != NULL)
5083 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5084 <
5085 <    MyFree(yy_aconf->passwd);
5086 <    DupString(yy_aconf->passwd, yylval.string);
5087 <  }
4774 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4775   }
4776      break;
4777  
4778 <  case 262:
4779 <
4780 < /* Line 1806 of yacc.c  */
5094 < #line 1701 "ircd_parser.y"
4778 >  case 281:
4779 > /* Line 1787 of yacc.c  */
4780 > #line 1597 "conf_parser.y"
4781      {
4782    if (conf_parser_ctx.pass == 2)
4783 <  {
5098 <    MyFree(class_name);
5099 <    DupString(class_name, yylval.string);
5100 <  }
4783 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4784   }
4785      break;
4786  
4787 <  case 263:
4787 >  case 282:
4788 > /* Line 1787 of yacc.c  */
4789 > #line 1603 "conf_parser.y"
4790 >    {
4791 >  if (conf_parser_ctx.pass == 2)
4792 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4793 > }
4794 >    break;
4795  
4796 < /* Line 1806 of yacc.c  */
4797 < #line 1710 "ircd_parser.y"
4796 >  case 283:
4797 > /* Line 1787 of yacc.c  */
4798 > #line 1609 "conf_parser.y"
4799      {
4800    if (conf_parser_ctx.pass == 2)
4801    {
4802      if (yylval.number)
4803 <      SetConfEncrypted(yy_aconf);
4803 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4804      else
4805 <      ClearConfEncrypted(yy_aconf);
4805 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4806    }
4807   }
4808      break;
4809  
4810 <  case 264:
4811 <
4812 < /* Line 1806 of yacc.c  */
5122 < #line 1721 "ircd_parser.y"
4810 >  case 284:
4811 > /* Line 1787 of yacc.c  */
4812 > #line 1620 "conf_parser.y"
4813      {
4814 +  if (conf_parser_ctx.pass == 2)
4815 +    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4816   }
4817      break;
4818  
4819 <  case 268:
4820 <
4821 < /* Line 1806 of yacc.c  */
5130 < #line 1726 "ircd_parser.y"
4819 >  case 288:
4820 > /* Line 1787 of yacc.c  */
4821 > #line 1627 "conf_parser.y"
4822      {
4823    if (conf_parser_ctx.pass == 2)
4824 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4824 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4825   }
4826      break;
4827  
4828 <  case 269:
4829 <
4830 < /* Line 1806 of yacc.c  */
5140 < #line 1730 "ircd_parser.y"
4828 >  case 289:
4829 > /* Line 1787 of yacc.c  */
4830 > #line 1631 "conf_parser.y"
4831      {
4832    if (conf_parser_ctx.pass == 2)
4833 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4833 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4834   }
4835      break;
4836  
4837 <  case 270:
4838 <
4839 < /* Line 1806 of yacc.c  */
5150 < #line 1734 "ircd_parser.y"
4837 >  case 290:
4838 > /* Line 1787 of yacc.c  */
4839 > #line 1635 "conf_parser.y"
4840      {
4841    if (conf_parser_ctx.pass == 2)
4842 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4842 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4843   }
4844      break;
4845  
4846 <  case 271:
4847 <
4848 < /* Line 1806 of yacc.c  */
5160 < #line 1738 "ircd_parser.y"
4846 >  case 291:
4847 > /* Line 1787 of yacc.c  */
4848 > #line 1639 "conf_parser.y"
4849      {
4850    if (conf_parser_ctx.pass == 2)
4851 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4851 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4852   }
4853      break;
4854  
4855 <  case 272:
4856 <
4857 < /* Line 1806 of yacc.c  */
5170 < #line 1742 "ircd_parser.y"
4855 >  case 292:
4856 > /* Line 1787 of yacc.c  */
4857 > #line 1643 "conf_parser.y"
4858      {
4859    if (conf_parser_ctx.pass == 2)
4860 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4860 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4861   }
4862      break;
4863  
4864 <  case 273:
4865 <
4866 < /* Line 1806 of yacc.c  */
5180 < #line 1746 "ircd_parser.y"
4864 >  case 293:
4865 > /* Line 1787 of yacc.c  */
4866 > #line 1647 "conf_parser.y"
4867      {
4868    if (conf_parser_ctx.pass == 2)
4869 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4869 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4870   }
4871      break;
4872  
4873 <  case 274:
4874 <
4875 < /* Line 1806 of yacc.c  */
5190 < #line 1750 "ircd_parser.y"
4873 >  case 294:
4874 > /* Line 1787 of yacc.c  */
4875 > #line 1651 "conf_parser.y"
4876      {
4877    if (conf_parser_ctx.pass == 2)
4878 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4878 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4879   }
4880      break;
4881  
4882 <  case 275:
4883 <
4884 < /* Line 1806 of yacc.c  */
5200 < #line 1754 "ircd_parser.y"
4882 >  case 295:
4883 > /* Line 1787 of yacc.c  */
4884 > #line 1655 "conf_parser.y"
4885      {
4886    if (conf_parser_ctx.pass == 2)
4887 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4887 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4888   }
4889      break;
4890  
4891 <  case 276:
4892 <
4893 < /* Line 1806 of yacc.c  */
5210 < #line 1758 "ircd_parser.y"
4891 >  case 296:
4892 > /* Line 1787 of yacc.c  */
4893 > #line 1659 "conf_parser.y"
4894      {
4895    if (conf_parser_ctx.pass == 2)
4896 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4896 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4897   }
4898      break;
4899  
4900 <  case 277:
4901 <
4902 < /* Line 1806 of yacc.c  */
5220 < #line 1765 "ircd_parser.y"
4900 >  case 297:
4901 > /* Line 1787 of yacc.c  */
4902 > #line 1663 "conf_parser.y"
4903      {
4904    if (conf_parser_ctx.pass == 2)
4905 <  {
5224 <    MyFree(yy_conf->name);
5225 <
5226 <    if (strlen(yylval.string) < HOSTLEN)
5227 <    {    
5228 <      DupString(yy_conf->name, yylval.string);
5229 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5230 <    }
5231 <    else
5232 <    {
5233 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5234 <      yy_conf->name = NULL;
5235 <    }
5236 <  }
4905 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4906   }
4907      break;
4908  
4909 <  case 278:
4910 <
4911 < /* Line 1806 of yacc.c  */
5243 < #line 1784 "ircd_parser.y"
4909 >  case 298:
4910 > /* Line 1787 of yacc.c  */
4911 > #line 1669 "conf_parser.y"
4912      {
4913 <  if (conf_parser_ctx.pass == 2)
4913 >  if (conf_parser_ctx.pass != 2)
4914 >    break;
4915 >
4916 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4917    {
4918 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4919 <    MyFree(yy_conf->name);
5249 <    DupString(yy_conf->name, yylval.string);
4918 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4919 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4920    }
4921 +  else
4922 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4923   }
4924      break;
4925  
4926 <  case 279:
4927 <
4928 < /* Line 1806 of yacc.c  */
5257 < #line 1794 "ircd_parser.y"
4926 >  case 299:
4927 > /* Line 1787 of yacc.c  */
4928 > #line 1683 "conf_parser.y"
4929      {
4930 <  if (conf_parser_ctx.pass == 2)
5260 <  {
5261 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5262 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5263 <  }
5264 < }
4930 >  if (conf_parser_ctx.pass != 2)
4931      break;
4932  
4933 <  case 280:
4933 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4934 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4935 > }
4936 >    break;
4937  
4938 < /* Line 1806 of yacc.c  */
4939 < #line 1807 "ircd_parser.y"
4938 >  case 300:
4939 > /* Line 1787 of yacc.c  */
4940 > #line 1692 "conf_parser.y"
4941      {
4942 <  if (conf_parser_ctx.pass == 2)
5273 <  {
5274 <    MyFree(resv_reason);
5275 <    resv_reason = NULL;
5276 <  }
5277 < }
4942 >  if (conf_parser_ctx.pass != 2)
4943      break;
4944  
4945 <  case 281:
4945 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4946 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4947 > }
4948 >    break;
4949  
4950 < /* Line 1806 of yacc.c  */
4951 < #line 1814 "ircd_parser.y"
4950 >  case 301:
4951 > /* Line 1787 of yacc.c  */
4952 > #line 1705 "conf_parser.y"
4953      {
4954 <  if (conf_parser_ctx.pass == 2)
4955 <  {
4956 <    MyFree(resv_reason);
4957 <    resv_reason = NULL;
4958 <  }
4954 >  if (conf_parser_ctx.pass != 2)
4955 >    break;
4956 >
4957 >  reset_block_state();
4958 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4959   }
4960      break;
4961  
4962 <  case 288:
4962 >  case 302:
4963 > /* Line 1787 of yacc.c  */
4964 > #line 1712 "conf_parser.y"
4965 >    {
4966 >  if (conf_parser_ctx.pass != 2)
4967 >    break;
4968  
4969 < /* Line 1806 of yacc.c  */
4970 < #line 1826 "ircd_parser.y"
4969 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4970 > }
4971 >    break;
4972 >
4973 >  case 309:
4974 > /* Line 1787 of yacc.c  */
4975 > #line 1723 "conf_parser.y"
4976      {
4977    if (conf_parser_ctx.pass == 2)
4978 <  {
5300 <    MyFree(resv_reason);
5301 <    DupString(resv_reason, yylval.string);
5302 <  }
4978 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4979   }
4980      break;
4981  
4982 <  case 289:
4983 <
4984 < /* Line 1806 of yacc.c  */
5309 < #line 1835 "ircd_parser.y"
4982 >  case 310:
4983 > /* Line 1787 of yacc.c  */
4984 > #line 1729 "conf_parser.y"
4985      {
4986    if (conf_parser_ctx.pass == 2)
4987 <  {
5313 <    if (IsChanPrefix(*yylval.string))
5314 <    {
5315 <      char def_reason[] = "No reason";
5316 <
5317 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5318 <    }
5319 <  }
5320 <  /* ignore it for now.. but we really should make a warning if
5321 <   * its an erroneous name --fl_ */
4987 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4988   }
4989      break;
4990  
4991 <  case 290:
4992 <
4993 < /* Line 1806 of yacc.c  */
5328 < #line 1850 "ircd_parser.y"
4991 >  case 311:
4992 > /* Line 1787 of yacc.c  */
4993 > #line 1735 "conf_parser.y"
4994      {
4995    if (conf_parser_ctx.pass == 2)
4996 <  {
5332 <    char def_reason[] = "No reason";
5333 <
5334 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5335 <  }
4996 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4997   }
4998      break;
4999  
5000 <  case 296:
5001 <
5002 < /* Line 1806 of yacc.c  */
5342 < #line 1868 "ircd_parser.y"
5000 >  case 317:
5001 > /* Line 1787 of yacc.c  */
5002 > #line 1750 "conf_parser.y"
5003      {
5004    if (conf_parser_ctx.pass == 2)
5005    {
5006      if (valid_servname(yylval.string))
5007      {
5008 <      yy_conf = make_conf_item(SERVICE_TYPE);
5009 <      DupString(yy_conf->name, yylval.string);
5008 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
5009 >      conf->name = xstrdup(yylval.string);
5010      }
5011    }
5012   }
5013      break;
5014  
5015 <  case 297:
5016 <
5017 < /* Line 1806 of yacc.c  */
5358 < #line 1883 "ircd_parser.y"
5015 >  case 318:
5016 > /* Line 1787 of yacc.c  */
5017 > #line 1765 "conf_parser.y"
5018      {
5019 <  if (conf_parser_ctx.pass == 2)
5361 <  {
5362 <    yy_conf = make_conf_item(ULINE_TYPE);
5363 <    yy_match_item = map_to_conf(yy_conf);
5364 <    yy_match_item->action = SHARED_ALL;
5365 <  }
5366 < }
5019 >  if (conf_parser_ctx.pass != 2)
5020      break;
5021  
5022 <  case 298:
5022 >  reset_block_state();
5023  
5024 < /* Line 1806 of yacc.c  */
5025 < #line 1891 "ircd_parser.y"
5026 <    {
5027 <  if (conf_parser_ctx.pass == 2)
5375 <  {
5376 <    yy_conf = NULL;
5377 <  }
5024 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5025 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5026 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5027 >  block_state.flags.value = SHARED_ALL;
5028   }
5029      break;
5030  
5031 <  case 305:
5031 >  case 319:
5032 > /* Line 1787 of yacc.c  */
5033 > #line 1776 "conf_parser.y"
5034 >    {
5035 >  struct MaskItem *conf = NULL;
5036 >
5037 >  if (conf_parser_ctx.pass != 2)
5038 >    break;
5039 >
5040 >  conf = conf_make(CONF_ULINE);
5041 >  conf->flags = block_state.flags.value;
5042 >  conf->name = xstrdup(block_state.name.buf);
5043 >  conf->user = xstrdup(block_state.user.buf);
5044 >  conf->host = xstrdup(block_state.host.buf);
5045 > }
5046 >    break;
5047  
5048 < /* Line 1806 of yacc.c  */
5049 < #line 1902 "ircd_parser.y"
5048 >  case 326:
5049 > /* Line 1787 of yacc.c  */
5050 > #line 1793 "conf_parser.y"
5051      {
5052    if (conf_parser_ctx.pass == 2)
5053 <  {
5388 <    MyFree(yy_conf->name);
5389 <    DupString(yy_conf->name, yylval.string);
5390 <  }
5053 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5054   }
5055      break;
5056  
5057 <  case 306:
5058 <
5059 < /* Line 1806 of yacc.c  */
5397 < #line 1911 "ircd_parser.y"
5057 >  case 327:
5058 > /* Line 1787 of yacc.c  */
5059 > #line 1799 "conf_parser.y"
5060      {
5061    if (conf_parser_ctx.pass == 2)
5062    {
# Line 5402 | Line 5064 | yyreduce:
5064  
5065      nuh.nuhmask  = yylval.string;
5066      nuh.nickptr  = NULL;
5067 <    nuh.userptr  = userbuf;
5068 <    nuh.hostptr  = hostbuf;
5067 >    nuh.userptr  = block_state.user.buf;
5068 >    nuh.hostptr  = block_state.host.buf;
5069  
5070      nuh.nicksize = 0;
5071 <    nuh.usersize = sizeof(userbuf);
5072 <    nuh.hostsize = sizeof(hostbuf);
5071 >    nuh.usersize = sizeof(block_state.user.buf);
5072 >    nuh.hostsize = sizeof(block_state.host.buf);
5073  
5074      split_nuh(&nuh);
5413
5414    DupString(yy_match_item->user, userbuf);
5415    DupString(yy_match_item->host, hostbuf);
5075    }
5076   }
5077      break;
5078  
5079 <  case 307:
5080 <
5081 < /* Line 1806 of yacc.c  */
5423 < #line 1933 "ircd_parser.y"
5079 >  case 328:
5080 > /* Line 1787 of yacc.c  */
5081 > #line 1818 "conf_parser.y"
5082      {
5083    if (conf_parser_ctx.pass == 2)
5084 <    yy_match_item->action = 0;
5084 >    block_state.flags.value = 0;
5085   }
5086      break;
5087  
5088 <  case 311:
5089 <
5090 < /* Line 1806 of yacc.c  */
5433 < #line 1940 "ircd_parser.y"
5088 >  case 332:
5089 > /* Line 1787 of yacc.c  */
5090 > #line 1825 "conf_parser.y"
5091      {
5092    if (conf_parser_ctx.pass == 2)
5093 <    yy_match_item->action |= SHARED_KLINE;
5093 >    block_state.flags.value |= SHARED_KLINE;
5094   }
5095      break;
5096  
5097 <  case 312:
5098 <
5099 < /* Line 1806 of yacc.c  */
5443 < #line 1944 "ircd_parser.y"
5097 >  case 333:
5098 > /* Line 1787 of yacc.c  */
5099 > #line 1829 "conf_parser.y"
5100      {
5101    if (conf_parser_ctx.pass == 2)
5102 <    yy_match_item->action |= SHARED_UNKLINE;
5102 >    block_state.flags.value |= SHARED_UNKLINE;
5103   }
5104      break;
5105  
5106 <  case 313:
5107 <
5108 < /* Line 1806 of yacc.c  */
5453 < #line 1948 "ircd_parser.y"
5106 >  case 334:
5107 > /* Line 1787 of yacc.c  */
5108 > #line 1833 "conf_parser.y"
5109      {
5110    if (conf_parser_ctx.pass == 2)
5111 <    yy_match_item->action |= SHARED_DLINE;
5111 >    block_state.flags.value |= SHARED_DLINE;
5112   }
5113      break;
5114  
5115 <  case 314:
5116 <
5117 < /* Line 1806 of yacc.c  */
5463 < #line 1952 "ircd_parser.y"
5115 >  case 335:
5116 > /* Line 1787 of yacc.c  */
5117 > #line 1837 "conf_parser.y"
5118      {
5119    if (conf_parser_ctx.pass == 2)
5120 <    yy_match_item->action |= SHARED_UNDLINE;
5120 >    block_state.flags.value |= SHARED_UNDLINE;
5121   }
5122      break;
5123  
5124 <  case 315:
5125 <
5126 < /* Line 1806 of yacc.c  */
5473 < #line 1956 "ircd_parser.y"
5124 >  case 336:
5125 > /* Line 1787 of yacc.c  */
5126 > #line 1841 "conf_parser.y"
5127      {
5128    if (conf_parser_ctx.pass == 2)
5129 <    yy_match_item->action |= SHARED_XLINE;
5129 >    block_state.flags.value |= SHARED_XLINE;
5130   }
5131      break;
5132  
5133 <  case 316:
5134 <
5135 < /* Line 1806 of yacc.c  */
5483 < #line 1960 "ircd_parser.y"
5133 >  case 337:
5134 > /* Line 1787 of yacc.c  */
5135 > #line 1845 "conf_parser.y"
5136      {
5137    if (conf_parser_ctx.pass == 2)
5138 <    yy_match_item->action |= SHARED_UNXLINE;
5138 >    block_state.flags.value |= SHARED_UNXLINE;
5139   }
5140      break;
5141  
5142 <  case 317:
5143 <
5144 < /* Line 1806 of yacc.c  */
5493 < #line 1964 "ircd_parser.y"
5142 >  case 338:
5143 > /* Line 1787 of yacc.c  */
5144 > #line 1849 "conf_parser.y"
5145      {
5146    if (conf_parser_ctx.pass == 2)
5147 <    yy_match_item->action |= SHARED_RESV;
5147 >    block_state.flags.value |= SHARED_RESV;
5148   }
5149      break;
5150  
5151 <  case 318:
5152 <
5153 < /* Line 1806 of yacc.c  */
5503 < #line 1968 "ircd_parser.y"
5151 >  case 339:
5152 > /* Line 1787 of yacc.c  */
5153 > #line 1853 "conf_parser.y"
5154      {
5155    if (conf_parser_ctx.pass == 2)
5156 <    yy_match_item->action |= SHARED_UNRESV;
5156 >    block_state.flags.value |= SHARED_UNRESV;
5157   }
5158      break;
5159  
5160 <  case 319:
5161 <
5162 < /* Line 1806 of yacc.c  */
5513 < #line 1972 "ircd_parser.y"
5160 >  case 340:
5161 > /* Line 1787 of yacc.c  */
5162 > #line 1857 "conf_parser.y"
5163      {
5164    if (conf_parser_ctx.pass == 2)
5165 <    yy_match_item->action |= SHARED_LOCOPS;
5165 >    block_state.flags.value |= SHARED_LOCOPS;
5166   }
5167      break;
5168  
5169 <  case 320:
5170 <
5171 < /* Line 1806 of yacc.c  */
5523 < #line 1976 "ircd_parser.y"
5169 >  case 341:
5170 > /* Line 1787 of yacc.c  */
5171 > #line 1861 "conf_parser.y"
5172      {
5173    if (conf_parser_ctx.pass == 2)
5174 <    yy_match_item->action = SHARED_ALL;
5174 >    block_state.flags.value = SHARED_ALL;
5175   }
5176      break;
5177  
5178 <  case 321:
5179 <
5180 < /* Line 1806 of yacc.c  */
5533 < #line 1985 "ircd_parser.y"
5178 >  case 342:
5179 > /* Line 1787 of yacc.c  */
5180 > #line 1870 "conf_parser.y"
5181      {
5182 <  if (conf_parser_ctx.pass == 2)
5536 <  {
5537 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5538 <    yy_conf->flags = SHARED_ALL;
5539 <  }
5540 < }
5182 >  if (conf_parser_ctx.pass != 2)
5183      break;
5184  
5185 <  case 322:
5185 >  reset_block_state();
5186  
5187 < /* Line 1806 of yacc.c  */
5188 < #line 1992 "ircd_parser.y"
5547 <    {
5548 <  if (conf_parser_ctx.pass == 2)
5549 <  {
5550 <    if (yy_conf->name == NULL)
5551 <      DupString(yy_conf->name, "*");
5552 <    yy_conf = NULL;
5553 <  }
5187 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5188 >  block_state.flags.value = SHARED_ALL;
5189   }
5190      break;
5191  
5192 <  case 328:
5193 <
5194 < /* Line 1806 of yacc.c  */
5560 < #line 2005 "ircd_parser.y"
5192 >  case 343:
5193 > /* Line 1787 of yacc.c  */
5194 > #line 1879 "conf_parser.y"
5195      {
5196 <  if (conf_parser_ctx.pass == 2)
5563 <    DupString(yy_conf->name, yylval.string);
5564 < }
5565 <    break;
5196 >  struct MaskItem *conf = NULL;
5197  
5198 <  case 329:
5198 >  if (conf_parser_ctx.pass != 2)
5199 >    break;
5200  
5201 < /* Line 1806 of yacc.c  */
5202 < #line 2011 "ircd_parser.y"
5203 <    {
5572 <  if (conf_parser_ctx.pass == 2)
5573 <    yy_conf->flags = 0;
5201 >  conf = conf_make(CONF_CLUSTER);
5202 >  conf->flags = block_state.flags.value;
5203 >  conf->name = xstrdup(block_state.name.buf);
5204   }
5205      break;
5206  
5207 <  case 333:
5208 <
5209 < /* Line 1806 of yacc.c  */
5580 < #line 2018 "ircd_parser.y"
5207 >  case 349:
5208 > /* Line 1787 of yacc.c  */
5209 > #line 1894 "conf_parser.y"
5210      {
5211    if (conf_parser_ctx.pass == 2)
5212 <    yy_conf->flags |= SHARED_KLINE;
5212 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5213   }
5214      break;
5215  
5216 <  case 334:
5217 <
5218 < /* Line 1806 of yacc.c  */
5590 < #line 2022 "ircd_parser.y"
5216 >  case 350:
5217 > /* Line 1787 of yacc.c  */
5218 > #line 1900 "conf_parser.y"
5219      {
5220    if (conf_parser_ctx.pass == 2)
5221 <    yy_conf->flags |= SHARED_UNKLINE;
5221 >    block_state.flags.value = 0;
5222   }
5223      break;
5224  
5225 <  case 335:
5226 <
5227 < /* Line 1806 of yacc.c  */
5600 < #line 2026 "ircd_parser.y"
5225 >  case 354:
5226 > /* Line 1787 of yacc.c  */
5227 > #line 1907 "conf_parser.y"
5228      {
5229    if (conf_parser_ctx.pass == 2)
5230 <    yy_conf->flags |= SHARED_DLINE;
5230 >    block_state.flags.value |= SHARED_KLINE;
5231   }
5232      break;
5233  
5234 <  case 336:
5235 <
5236 < /* Line 1806 of yacc.c  */
5610 < #line 2030 "ircd_parser.y"
5234 >  case 355:
5235 > /* Line 1787 of yacc.c  */
5236 > #line 1911 "conf_parser.y"
5237      {
5238    if (conf_parser_ctx.pass == 2)
5239 <    yy_conf->flags |= SHARED_UNDLINE;
5239 >    block_state.flags.value |= SHARED_UNKLINE;
5240   }
5241      break;
5242  
5243 <  case 337:
5244 <
5245 < /* Line 1806 of yacc.c  */
5620 < #line 2034 "ircd_parser.y"
5243 >  case 356:
5244 > /* Line 1787 of yacc.c  */
5245 > #line 1915 "conf_parser.y"
5246      {
5247    if (conf_parser_ctx.pass == 2)
5248 <    yy_conf->flags |= SHARED_XLINE;
5248 >    block_state.flags.value |= SHARED_DLINE;
5249   }
5250      break;
5251  
5252 <  case 338:
5253 <
5254 < /* Line 1806 of yacc.c  */
5630 < #line 2038 "ircd_parser.y"
5252 >  case 357:
5253 > /* Line 1787 of yacc.c  */
5254 > #line 1919 "conf_parser.y"
5255      {
5256    if (conf_parser_ctx.pass == 2)
5257 <    yy_conf->flags |= SHARED_UNXLINE;
5257 >    block_state.flags.value |= SHARED_UNDLINE;
5258   }
5259      break;
5260  
5261 <  case 339:
5262 <
5263 < /* Line 1806 of yacc.c  */
5640 < #line 2042 "ircd_parser.y"
5261 >  case 358:
5262 > /* Line 1787 of yacc.c  */
5263 > #line 1923 "conf_parser.y"
5264      {
5265    if (conf_parser_ctx.pass == 2)
5266 <    yy_conf->flags |= SHARED_RESV;
5266 >    block_state.flags.value |= SHARED_XLINE;
5267   }
5268      break;
5269  
5270 <  case 340:
5271 <
5272 < /* Line 1806 of yacc.c  */
5650 < #line 2046 "ircd_parser.y"
5270 >  case 359:
5271 > /* Line 1787 of yacc.c  */
5272 > #line 1927 "conf_parser.y"
5273      {
5274    if (conf_parser_ctx.pass == 2)
5275 <    yy_conf->flags |= SHARED_UNRESV;
5275 >    block_state.flags.value |= SHARED_UNXLINE;
5276   }
5277      break;
5278  
5279 <  case 341:
5280 <
5281 < /* Line 1806 of yacc.c  */
5660 < #line 2050 "ircd_parser.y"
5279 >  case 360:
5280 > /* Line 1787 of yacc.c  */
5281 > #line 1931 "conf_parser.y"
5282      {
5283    if (conf_parser_ctx.pass == 2)
5284 <    yy_conf->flags |= SHARED_LOCOPS;
5284 >    block_state.flags.value |= SHARED_RESV;
5285   }
5286      break;
5287  
5288 <  case 342:
5289 <
5290 < /* Line 1806 of yacc.c  */
5670 < #line 2054 "ircd_parser.y"
5288 >  case 361:
5289 > /* Line 1787 of yacc.c  */
5290 > #line 1935 "conf_parser.y"
5291      {
5292    if (conf_parser_ctx.pass == 2)
5293 <    yy_conf->flags = SHARED_ALL;
5293 >    block_state.flags.value |= SHARED_UNRESV;
5294   }
5295      break;
5296  
5297 <  case 343:
5298 <
5299 < /* Line 1806 of yacc.c  */
5680 < #line 2063 "ircd_parser.y"
5297 >  case 362:
5298 > /* Line 1787 of yacc.c  */
5299 > #line 1939 "conf_parser.y"
5300      {
5301    if (conf_parser_ctx.pass == 2)
5302 <  {
5684 <    yy_conf = make_conf_item(SERVER_TYPE);
5685 <    yy_aconf = map_to_conf(yy_conf);
5686 <
5687 <    /* defaults */
5688 <    yy_aconf->port = PORTNUM;
5689 <  }
5690 <  else
5691 <  {
5692 <    MyFree(class_name);
5693 <    class_name = NULL;
5694 <  }
5302 >    block_state.flags.value |= SHARED_LOCOPS;
5303   }
5304      break;
5305  
5306 <  case 344:
5307 <
5308 < /* Line 1806 of yacc.c  */
5701 < #line 2078 "ircd_parser.y"
5306 >  case 363:
5307 > /* Line 1787 of yacc.c  */
5308 > #line 1943 "conf_parser.y"
5309      {
5310    if (conf_parser_ctx.pass == 2)
5311 <  {
5312 <    struct CollectItem *yy_hconf=NULL;
5313 <    struct CollectItem *yy_lconf=NULL;
5707 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5311 >    block_state.flags.value = SHARED_ALL;
5312 > }
5313 >    break;
5314  
5315 <    if (yy_aconf->host &&
5316 <        yy_aconf->passwd && yy_aconf->spasswd)
5317 <    {
5712 <      if (conf_add_server(yy_conf, class_name) == -1)
5713 <      {
5714 <        delete_conf_item(yy_conf);
5715 <        yy_conf = NULL;
5716 <        yy_aconf = NULL;
5717 <      }
5718 <    }
5719 <    else
5315 >  case 364:
5316 > /* Line 1787 of yacc.c  */
5317 > #line 1952 "conf_parser.y"
5318      {
5721      /* Even if yy_conf ->name is NULL
5722       * should still unhook any hub/leaf confs still pending
5723       */
5724      unhook_hub_leaf_confs();
5319  
5320 <      if (yy_conf->name != NULL)
5321 <      {
5728 <        if (yy_aconf->host == NULL)
5729 <          yyerror("Ignoring connect block -- missing host");
5730 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5731 <          yyerror("Ignoring connect block -- missing password");
5732 <      }
5733 <
5734 <
5735 <      /* XXX
5736 <       * This fixes a try_connections() core (caused by invalid class_ptr
5737 <       * pointers) reported by metalrock. That's an ugly fix, but there
5738 <       * is currently no better way. The entire config subsystem needs an
5739 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5740 <       * a doubly linked list immediately without any sanity checks!  -Michael
5741 <       */
5742 <      delete_conf_item(yy_conf);
5743 <
5744 <      yy_aconf = NULL;
5745 <      yy_conf = NULL;
5746 <    }
5747 <
5748 <      /*
5749 <       * yy_conf is still pointing at the server that is having
5750 <       * a connect block built for it. This means, y_aconf->name
5751 <       * points to the actual irc name this server will be known as.
5752 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5753 <       * given in the link list at yy_hconf. Fill in the HUB confs
5754 <       * from this link list now.
5755 <       */        
5756 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5757 <      {
5758 <        struct ConfItem *new_hub_conf;
5759 <        struct MatchItem *match_item;
5760 <
5761 <        yy_hconf = ptr->data;
5762 <
5763 <        /* yy_conf == NULL is a fatal error for this connect block! */
5764 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5765 <        {
5766 <          new_hub_conf = make_conf_item(HUB_TYPE);
5767 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5768 <          DupString(new_hub_conf->name, yy_conf->name);
5769 <          if (yy_hconf->user != NULL)
5770 <            DupString(match_item->user, yy_hconf->user);
5771 <          else
5772 <            DupString(match_item->user, "*");
5773 <          if (yy_hconf->host != NULL)
5774 <            DupString(match_item->host, yy_hconf->host);
5775 <          else
5776 <            DupString(match_item->host, "*");
5777 <        }
5778 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5779 <        free_collect_item(yy_hconf);
5780 <      }
5781 <
5782 <      /* Ditto for the LEAF confs */
5783 <
5784 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5785 <      {
5786 <        struct ConfItem *new_leaf_conf;
5787 <        struct MatchItem *match_item;
5788 <
5789 <        yy_lconf = ptr->data;
5320 >  if (conf_parser_ctx.pass != 2)
5321 >    break;
5322  
5323 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5324 <        {
5793 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5794 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5795 <          DupString(new_leaf_conf->name, yy_conf->name);
5796 <          if (yy_lconf->user != NULL)
5797 <            DupString(match_item->user, yy_lconf->user);
5798 <          else
5799 <            DupString(match_item->user, "*");
5800 <          if (yy_lconf->host != NULL)
5801 <            DupString(match_item->host, yy_lconf->host);
5802 <          else
5803 <            DupString(match_item->host, "*");
5804 <        }
5805 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
5806 <        free_collect_item(yy_lconf);
5807 <      }
5808 <      MyFree(class_name);
5809 <      class_name = NULL;
5810 <      yy_conf = NULL;
5811 <      yy_aconf = NULL;
5812 <  }
5323 >  reset_block_state();
5324 >  block_state.port.value = PORTNUM;
5325   }
5326      break;
5327  
5328 <  case 361:
5329 <
5330 < /* Line 1806 of yacc.c  */
5819 < #line 2200 "ircd_parser.y"
5328 >  case 365:
5329 > /* Line 1787 of yacc.c  */
5330 > #line 1960 "conf_parser.y"
5331      {
5332 <  if (conf_parser_ctx.pass == 2)
5333 <  {
5823 <    if (yy_conf->name != NULL)
5824 <      yyerror("Multiple connect name entry");
5332 >  struct MaskItem *conf = NULL;
5333 >  struct addrinfo hints, *res;
5334  
5335 <    MyFree(yy_conf->name);
5827 <    DupString(yy_conf->name, yylval.string);
5828 <  }
5829 < }
5335 >  if (conf_parser_ctx.pass != 2)
5336      break;
5337  
5338 <  case 362:
5338 >  if (!block_state.name.buf[0] ||
5339 >      !block_state.host.buf[0])
5340 >    break;
5341  
5342 < /* Line 1806 of yacc.c  */
5343 < #line 2212 "ircd_parser.y"
5836 <    {
5837 <  if (conf_parser_ctx.pass == 2)
5838 <  {
5839 <    MyFree(yy_aconf->host);
5840 <    DupString(yy_aconf->host, yylval.string);
5841 <  }
5842 < }
5342 >  if (!(block_state.rpass.buf[0] ||
5343 >        block_state.spass.buf[0]))
5344      break;
5345  
5346 <  case 363:
5346 >  if (has_wildcards(block_state.name.buf) ||
5347 >      has_wildcards(block_state.host.buf))
5348 >    break;
5349  
5350 < /* Line 1806 of yacc.c  */
5351 < #line 2221 "ircd_parser.y"
5352 <    {
5353 <  if (conf_parser_ctx.pass == 2)
5354 <  {
5355 <    struct addrinfo hints, *res;
5350 >  conf = conf_make(CONF_SERVER);
5351 >  conf->port = block_state.port.value;
5352 >  conf->flags = block_state.flags.value;
5353 >  conf->aftype = block_state.aftype.value;
5354 >  conf->host = xstrdup(block_state.host.buf);
5355 >  conf->name = xstrdup(block_state.name.buf);
5356 >  conf->passwd = xstrdup(block_state.rpass.buf);
5357 >  conf->spasswd = xstrdup(block_state.spass.buf);
5358 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5359 >
5360 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5361 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5362  
5363 +  if (block_state.bind.buf[0])
5364 +  {
5365      memset(&hints, 0, sizeof(hints));
5366  
5367      hints.ai_family   = AF_UNSPEC;
5368      hints.ai_socktype = SOCK_STREAM;
5369      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5370  
5371 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5372 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5371 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5372 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5373      else
5374      {
5375        assert(res != NULL);
5376  
5377 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5378 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5379 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5377 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5378 >      conf->bind.ss.ss_family = res->ai_family;
5379 >      conf->bind.ss_len = res->ai_addrlen;
5380        freeaddrinfo(res);
5381      }
5382    }
5383 +
5384 +  conf_add_class_to_conf(conf, block_state.class.buf);
5385 +  lookup_confhost(conf);
5386   }
5387      break;
5388  
5389 <  case 364:
5390 <
5391 < /* Line 1806 of yacc.c  */
5878 < #line 2247 "ircd_parser.y"
5389 >  case 382:
5390 > /* Line 1787 of yacc.c  */
5391 > #line 2026 "conf_parser.y"
5392      {
5393    if (conf_parser_ctx.pass == 2)
5394 <  {
5882 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5883 <      yyerror("Server passwords cannot begin with a colon");
5884 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5885 <      yyerror("Server passwords cannot contain spaces");
5886 <    else {
5887 <      if (yy_aconf->spasswd != NULL)
5888 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5889 <
5890 <      MyFree(yy_aconf->spasswd);
5891 <      DupString(yy_aconf->spasswd, yylval.string);
5892 <    }
5893 <  }
5394 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5395   }
5396      break;
5397  
5398 <  case 365:
5399 <
5400 < /* Line 1806 of yacc.c  */
5900 < #line 2265 "ircd_parser.y"
5398 >  case 383:
5399 > /* Line 1787 of yacc.c  */
5400 > #line 2032 "conf_parser.y"
5401      {
5402    if (conf_parser_ctx.pass == 2)
5403 <  {
5904 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5905 <      yyerror("Server passwords cannot begin with a colon");
5906 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5907 <      yyerror("Server passwords cannot contain spaces");
5908 <    else {
5909 <      if (yy_aconf->passwd != NULL)
5910 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5911 <
5912 <      MyFree(yy_aconf->passwd);
5913 <      DupString(yy_aconf->passwd, yylval.string);
5914 <    }
5915 <  }
5403 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5404   }
5405      break;
5406  
5407 <  case 366:
5408 <
5409 < /* Line 1806 of yacc.c  */
5922 < #line 2283 "ircd_parser.y"
5407 >  case 384:
5408 > /* Line 1787 of yacc.c  */
5409 > #line 2038 "conf_parser.y"
5410      {
5411    if (conf_parser_ctx.pass == 2)
5412 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5412 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5413   }
5414      break;
5415  
5416 <  case 367:
5417 <
5418 < /* Line 1806 of yacc.c  */
5932 < #line 2289 "ircd_parser.y"
5416 >  case 385:
5417 > /* Line 1787 of yacc.c  */
5418 > #line 2044 "conf_parser.y"
5419      {
5420 <  if (conf_parser_ctx.pass == 2)
5935 <    yy_aconf->aftype = AF_INET;
5936 < }
5420 >  if (conf_parser_ctx.pass != 2)
5421      break;
5422  
5423 <  case 368:
5423 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5424 >    conf_error_report("Server passwords cannot begin with a colon");
5425 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5426 >    conf_error_report("Server passwords cannot contain spaces");
5427 >  else
5428 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5429 > }
5430 >    break;
5431  
5432 < /* Line 1806 of yacc.c  */
5433 < #line 2293 "ircd_parser.y"
5432 >  case 386:
5433 > /* Line 1787 of yacc.c  */
5434 > #line 2057 "conf_parser.y"
5435      {
5436 < #ifdef IPV6
5945 <  if (conf_parser_ctx.pass == 2)
5946 <    yy_aconf->aftype = AF_INET6;
5947 < #endif
5948 < }
5436 >  if (conf_parser_ctx.pass != 2)
5437      break;
5438  
5439 <  case 369:
5439 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5440 >    conf_error_report("Server passwords cannot begin with a colon");
5441 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5442 >    conf_error_report("Server passwords cannot contain spaces");
5443 >  else
5444 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5445 > }
5446 >    break;
5447  
5448 < /* Line 1806 of yacc.c  */
5449 < #line 2301 "ircd_parser.y"
5448 >  case 387:
5449 > /* Line 1787 of yacc.c  */
5450 > #line 2070 "conf_parser.y"
5451      {
5452 +  if (conf_parser_ctx.pass == 2)
5453 +    block_state.port.value = (yyvsp[(3) - (4)].number);
5454   }
5455      break;
5456  
5457 <  case 373:
5458 <
5459 < /* Line 1806 of yacc.c  */
5962 < #line 2306 "ircd_parser.y"
5457 >  case 388:
5458 > /* Line 1787 of yacc.c  */
5459 > #line 2076 "conf_parser.y"
5460      {
5461    if (conf_parser_ctx.pass == 2)
5462 <    SetConfAllowAutoConn(yy_aconf);
5462 >    block_state.aftype.value = AF_INET;
5463   }
5464      break;
5465  
5466 <  case 374:
5467 <
5468 < /* Line 1806 of yacc.c  */
5972 < #line 2310 "ircd_parser.y"
5466 >  case 389:
5467 > /* Line 1787 of yacc.c  */
5468 > #line 2080 "conf_parser.y"
5469      {
5470 + #ifdef IPV6
5471    if (conf_parser_ctx.pass == 2)
5472 <    SetConfAwayBurst(yy_aconf);
5472 >    block_state.aftype.value = AF_INET6;
5473 > #endif
5474   }
5475      break;
5476  
5477 <  case 375:
5477 >  case 390:
5478 > /* Line 1787 of yacc.c  */
5479 > #line 2088 "conf_parser.y"
5480 >    {
5481 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5482 > }
5483 >    break;
5484  
5485 < /* Line 1806 of yacc.c  */
5486 < #line 2314 "ircd_parser.y"
5485 >  case 394:
5486 > /* Line 1787 of yacc.c  */
5487 > #line 2094 "conf_parser.y"
5488      {
5489    if (conf_parser_ctx.pass == 2)
5490 <    SetConfTopicBurst(yy_aconf);
5490 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5491   }
5492      break;
5493  
5494 <  case 376:
5495 <
5496 < /* Line 1806 of yacc.c  */
5992 < #line 2318 "ircd_parser.y"
5494 >  case 395:
5495 > /* Line 1787 of yacc.c  */
5496 > #line 2098 "conf_parser.y"
5497      {
5498    if (conf_parser_ctx.pass == 2)
5499 <    SetConfSSL(yy_aconf);
5499 >    block_state.flags.value |= CONF_FLAGS_SSL;
5500   }
5501      break;
5502  
5503 <  case 377:
5504 <
5505 < /* Line 1806 of yacc.c  */
6002 < #line 2324 "ircd_parser.y"
5503 >  case 396:
5504 > /* Line 1787 of yacc.c  */
5505 > #line 2104 "conf_parser.y"
5506      {
5507    if (conf_parser_ctx.pass == 2)
5508    {
5509      if (yylval.number)
5510 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5510 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5511      else
5512 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5512 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5513    }
5514   }
5515      break;
5516  
5517 <  case 378:
5518 <
5519 < /* Line 1806 of yacc.c  */
6017 < #line 2335 "ircd_parser.y"
5517 >  case 397:
5518 > /* Line 1787 of yacc.c  */
5519 > #line 2115 "conf_parser.y"
5520      {
5521    if (conf_parser_ctx.pass == 2)
5522 <  {
6021 <    struct CollectItem *yy_tmp;
6022 <
6023 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6024 <    DupString(yy_tmp->host, yylval.string);
6025 <    DupString(yy_tmp->user, "*");
6026 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6027 <  }
5522 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5523   }
5524      break;
5525  
5526 <  case 379:
5527 <
5528 < /* Line 1806 of yacc.c  */
6034 < #line 2348 "ircd_parser.y"
5526 >  case 398:
5527 > /* Line 1787 of yacc.c  */
5528 > #line 2121 "conf_parser.y"
5529      {
5530    if (conf_parser_ctx.pass == 2)
5531 <  {
6038 <    struct CollectItem *yy_tmp;
6039 <
6040 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6041 <    DupString(yy_tmp->host, yylval.string);
6042 <    DupString(yy_tmp->user, "*");
6043 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6044 <  }
5531 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5532   }
5533      break;
5534  
5535 <  case 380:
5536 <
5537 < /* Line 1806 of yacc.c  */
6051 < #line 2361 "ircd_parser.y"
5535 >  case 399:
5536 > /* Line 1787 of yacc.c  */
5537 > #line 2127 "conf_parser.y"
5538      {
5539    if (conf_parser_ctx.pass == 2)
5540 <  {
6055 <    MyFree(class_name);
6056 <    DupString(class_name, yylval.string);
6057 <  }
5540 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5541   }
5542      break;
5543  
5544 <  case 381:
5545 <
5546 < /* Line 1806 of yacc.c  */
6064 < #line 2370 "ircd_parser.y"
5544 >  case 400:
5545 > /* Line 1787 of yacc.c  */
5546 > #line 2133 "conf_parser.y"
5547      {
5548   #ifdef HAVE_LIBCRYPTO
5549    if (conf_parser_ctx.pass == 2)
5550 <  {
6069 <    MyFree(yy_aconf->cipher_list);
6070 <    DupString(yy_aconf->cipher_list, yylval.string);
6071 <  }
5550 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5551   #else
5552    if (conf_parser_ctx.pass == 2)
5553 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5553 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5554   #endif
5555   }
5556      break;
5557  
5558 <  case 382:
5559 <
5560 < /* Line 1806 of yacc.c  */
6082 < #line 2388 "ircd_parser.y"
5558 >  case 401:
5559 > /* Line 1787 of yacc.c  */
5560 > #line 2148 "conf_parser.y"
5561      {
5562    if (conf_parser_ctx.pass == 2)
5563 <  {
6086 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6087 <    regex_ban = 0;
6088 <  }
5563 >    reset_block_state();
5564   }
5565      break;
5566  
5567 <  case 383:
5568 <
5569 < /* Line 1806 of yacc.c  */
6095 < #line 2395 "ircd_parser.y"
5567 >  case 402:
5568 > /* Line 1787 of yacc.c  */
5569 > #line 2152 "conf_parser.y"
5570      {
5571 <  if (conf_parser_ctx.pass == 2)
6098 <  {
6099 <    if (userbuf[0] && hostbuf[0])
6100 <    {
6101 <      if (regex_ban)
6102 <      {
6103 < #ifdef HAVE_LIBPCRE
6104 <        void *exp_user = NULL;
6105 <        void *exp_host = NULL;
6106 <        const char *errptr = NULL;
5571 >  struct MaskItem *conf = NULL;
5572  
5573 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6109 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6110 <        {
6111 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
6112 <               errptr);
6113 <          break;
6114 <        }
6115 <
6116 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6117 <        yy_aconf->regexuser = exp_user;
6118 <        yy_aconf->regexhost = exp_host;
6119 <
6120 <        DupString(yy_aconf->user, userbuf);
6121 <        DupString(yy_aconf->host, hostbuf);
6122 <
6123 <        if (reasonbuf[0])
6124 <          DupString(yy_aconf->reason, reasonbuf);
6125 <        else
6126 <          DupString(yy_aconf->reason, "No reason");
6127 < #else
6128 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
6129 <        break;
6130 < #endif
6131 <      }
6132 <      else
6133 <      {
6134 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6135 <
6136 <        DupString(yy_aconf->user, userbuf);
6137 <        DupString(yy_aconf->host, hostbuf);
6138 <
6139 <        if (reasonbuf[0])
6140 <          DupString(yy_aconf->reason, reasonbuf);
6141 <        else
6142 <          DupString(yy_aconf->reason, "No reason");
6143 <        add_conf_by_address(CONF_KILL, yy_aconf);
6144 <      }
6145 <    }
6146 <
6147 <    yy_aconf = NULL;
6148 <  }
6149 < }
5573 >  if (conf_parser_ctx.pass != 2)
5574      break;
5575  
5576 <  case 384:
5577 <
6154 < /* Line 1806 of yacc.c  */
6155 < #line 2451 "ircd_parser.y"
6156 <    {
6157 < }
5576 >  if (!block_state.user.buf[0] ||
5577 >      !block_state.host.buf[0])
5578      break;
5579  
5580 <  case 388:
5580 >  conf = conf_make(CONF_KLINE);
5581 >  conf->user = xstrdup(block_state.user.buf);
5582 >  conf->host = xstrdup(block_state.host.buf);
5583  
5584 < /* Line 1806 of yacc.c  */
5585 < #line 2456 "ircd_parser.y"
5586 <    {
5587 <  if (conf_parser_ctx.pass == 2)
5588 <    regex_ban = 1;
5584 >  if (block_state.rpass.buf[0])
5585 >    conf->reason = xstrdup(block_state.rpass.buf);
5586 >  else
5587 >    conf->reason = xstrdup(CONF_NOREASON);
5588 >  add_conf_by_address(CONF_KLINE, conf);
5589   }
5590      break;
5591  
5592 <  case 395:
5593 <
5594 < /* Line 1806 of yacc.c  */
6173 < #line 2465 "ircd_parser.y"
5592 >  case 408:
5593 > /* Line 1787 of yacc.c  */
5594 > #line 2177 "conf_parser.y"
5595      {
5596 +
5597    if (conf_parser_ctx.pass == 2)
5598    {
5599      struct split_nuh_item nuh;
5600  
5601      nuh.nuhmask  = yylval.string;
5602      nuh.nickptr  = NULL;
5603 <    nuh.userptr  = userbuf;
5604 <    nuh.hostptr  = hostbuf;
5603 >    nuh.userptr  = block_state.user.buf;
5604 >    nuh.hostptr  = block_state.host.buf;
5605  
5606      nuh.nicksize = 0;
5607 <    nuh.usersize = sizeof(userbuf);
5608 <    nuh.hostsize = sizeof(hostbuf);
5607 >    nuh.usersize = sizeof(block_state.user.buf);
5608 >    nuh.hostsize = sizeof(block_state.host.buf);
5609  
5610      split_nuh(&nuh);
5611    }
5612   }
5613      break;
5614  
5615 <  case 396:
5616 <
5617 < /* Line 1806 of yacc.c  */
6196 < #line 2484 "ircd_parser.y"
5615 >  case 409:
5616 > /* Line 1787 of yacc.c  */
5617 > #line 2197 "conf_parser.y"
5618      {
5619    if (conf_parser_ctx.pass == 2)
5620 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5620 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5621   }
5622      break;
5623  
5624 <  case 397:
5625 <
5626 < /* Line 1806 of yacc.c  */
6206 < #line 2493 "ircd_parser.y"
5624 >  case 410:
5625 > /* Line 1787 of yacc.c  */
5626 > #line 2206 "conf_parser.y"
5627      {
5628    if (conf_parser_ctx.pass == 2)
5629 <    hostbuf[0] = reasonbuf[0] = '\0';
5629 >    reset_block_state();
5630   }
5631      break;
5632  
5633 <  case 398:
5634 <
5635 < /* Line 1806 of yacc.c  */
6216 < #line 2497 "ircd_parser.y"
5633 >  case 411:
5634 > /* Line 1787 of yacc.c  */
5635 > #line 2210 "conf_parser.y"
5636      {
5637 <  if (conf_parser_ctx.pass == 2)
5637 >  struct MaskItem *conf = NULL;
5638 >
5639 >  if (conf_parser_ctx.pass != 2)
5640 >    break;
5641 >
5642 >  if (!block_state.addr.buf[0])
5643 >    break;
5644 >
5645 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5646    {
5647 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5648 <    {
6222 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6223 <      DupString(yy_aconf->host, hostbuf);
5647 >    conf = conf_make(CONF_DLINE);
5648 >    conf->host = xstrdup(block_state.addr.buf);
5649  
5650 <      if (reasonbuf[0])
5651 <        DupString(yy_aconf->reason, reasonbuf);
5652 <      else
5653 <        DupString(yy_aconf->reason, "No reason");
5654 <      add_conf_by_address(CONF_DLINE, yy_aconf);
6230 <      yy_aconf = NULL;
6231 <    }
5650 >    if (block_state.rpass.buf[0])
5651 >      conf->reason = xstrdup(block_state.rpass.buf);
5652 >    else
5653 >      conf->reason = xstrdup(CONF_NOREASON);
5654 >    add_conf_by_address(CONF_DLINE, conf);
5655    }
5656   }
5657      break;
5658  
5659 <  case 404:
5660 <
5661 < /* Line 1806 of yacc.c  */
6239 < #line 2519 "ircd_parser.y"
5659 >  case 417:
5660 > /* Line 1787 of yacc.c  */
5661 > #line 2236 "conf_parser.y"
5662      {
5663    if (conf_parser_ctx.pass == 2)
5664 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5664 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5665   }
5666      break;
5667  
5668 <  case 405:
5669 <
5670 < /* Line 1806 of yacc.c  */
6249 < #line 2525 "ircd_parser.y"
5668 >  case 418:
5669 > /* Line 1787 of yacc.c  */
5670 > #line 2242 "conf_parser.y"
5671      {
5672    if (conf_parser_ctx.pass == 2)
5673 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5673 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5674   }
5675      break;
5676  
5677 <  case 411:
5678 <
5679 < /* Line 1806 of yacc.c  */
6259 < #line 2539 "ircd_parser.y"
5677 >  case 424:
5678 > /* Line 1787 of yacc.c  */
5679 > #line 2256 "conf_parser.y"
5680      {
5681    if (conf_parser_ctx.pass == 2)
5682    {
5683      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5684      {
5685 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5686 <      DupString(yy_aconf->host, yylval.string);
5685 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5686 >      conf->host = xstrdup(yylval.string);
5687  
5688 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6269 <      yy_aconf = NULL;
5688 >      add_conf_by_address(CONF_EXEMPT, conf);
5689      }
5690    }
5691   }
5692      break;
5693  
5694 <  case 412:
5695 <
5696 < /* Line 1806 of yacc.c  */
6278 < #line 2557 "ircd_parser.y"
5694 >  case 425:
5695 > /* Line 1787 of yacc.c  */
5696 > #line 2273 "conf_parser.y"
5697      {
5698    if (conf_parser_ctx.pass == 2)
5699 <  {
6282 <    regex_ban = 0;
6283 <    reasonbuf[0] = gecos_name[0] = '\0';
6284 <  }
5699 >    reset_block_state();
5700   }
5701      break;
5702  
5703 <  case 413:
5704 <
5705 < /* Line 1806 of yacc.c  */
6291 < #line 2564 "ircd_parser.y"
6292 <    {
6293 <  if (conf_parser_ctx.pass == 2)
6294 <  {
6295 <    if (gecos_name[0])
5703 >  case 426:
5704 > /* Line 1787 of yacc.c  */
5705 > #line 2277 "conf_parser.y"
5706      {
5707 <      if (regex_ban)
6298 <      {
6299 < #ifdef HAVE_LIBPCRE
6300 <        void *exp_p = NULL;
6301 <        const char *errptr = NULL;
6302 <
6303 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
6304 <        {
6305 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
6306 <               errptr);
6307 <          break;
6308 <        }
6309 <
6310 <        yy_conf = make_conf_item(RXLINE_TYPE);
6311 <        yy_conf->regexpname = exp_p;
6312 < #else
6313 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
6314 <        break;
6315 < #endif
6316 <      }
6317 <      else
6318 <        yy_conf = make_conf_item(XLINE_TYPE);
5707 >  struct MaskItem *conf = NULL;
5708  
5709 <      yy_match_item = map_to_conf(yy_conf);
5710 <      DupString(yy_conf->name, gecos_name);
5709 >  if (conf_parser_ctx.pass != 2)
5710 >    break;
5711  
5712 <      if (reasonbuf[0])
6324 <        DupString(yy_match_item->reason, reasonbuf);
6325 <      else
6326 <        DupString(yy_match_item->reason, "No reason");
6327 <    }
6328 <  }
6329 < }
5712 >  if (!block_state.name.buf[0])
5713      break;
5714  
5715 <  case 414:
5715 >  conf = conf_make(CONF_XLINE);
5716 >  conf->name = xstrdup(block_state.name.buf);
5717  
5718 < /* Line 1806 of yacc.c  */
5719 < #line 2604 "ircd_parser.y"
5720 <    {
5718 >  if (block_state.rpass.buf[0])
5719 >    conf->reason = xstrdup(block_state.rpass.buf);
5720 >  else
5721 >    conf->reason = xstrdup(CONF_NOREASON);
5722   }
5723      break;
5724  
5725 <  case 418:
5726 <
5727 < /* Line 1806 of yacc.c  */
6343 < #line 2609 "ircd_parser.y"
5725 >  case 432:
5726 > /* Line 1787 of yacc.c  */
5727 > #line 2299 "conf_parser.y"
5728      {
5729    if (conf_parser_ctx.pass == 2)
5730 <    regex_ban = 1;
5730 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5731   }
5732      break;
5733  
5734 <  case 425:
5735 <
5736 < /* Line 1806 of yacc.c  */
6353 < #line 2618 "ircd_parser.y"
5734 >  case 433:
5735 > /* Line 1787 of yacc.c  */
5736 > #line 2305 "conf_parser.y"
5737      {
5738    if (conf_parser_ctx.pass == 2)
5739 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5739 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5740   }
5741      break;
5742  
5743 <  case 426:
5744 <
5745 < /* Line 1806 of yacc.c  */
6363 < #line 2624 "ircd_parser.y"
5743 >  case 486:
5744 > /* Line 1787 of yacc.c  */
5745 > #line 2349 "conf_parser.y"
5746      {
5747 <  if (conf_parser_ctx.pass == 2)
6366 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5747 >  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5748   }
5749      break;
5750  
5751 <  case 482:
5752 <
5753 < /* Line 1806 of yacc.c  */
6373 < #line 2668 "ircd_parser.y"
5751 >  case 487:
5752 > /* Line 1787 of yacc.c  */
5753 > #line 2354 "conf_parser.y"
5754      {
5755 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5755 >  if (conf_parser_ctx.pass == 2)
5756 >    ConfigFileEntry.glines = yylval.number;
5757   }
5758      break;
5759  
5760 <  case 483:
5761 <
5762 < /* Line 1806 of yacc.c  */
6382 < #line 2673 "ircd_parser.y"
5760 >  case 488:
5761 > /* Line 1787 of yacc.c  */
5762 > #line 2360 "conf_parser.y"
5763      {
5764 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5764 >  if (conf_parser_ctx.pass == 2)
5765 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5766   }
5767      break;
5768  
5769 <  case 484:
5770 <
5771 < /* Line 1806 of yacc.c  */
6391 < #line 2678 "ircd_parser.y"
5769 >  case 489:
5770 > /* Line 1787 of yacc.c  */
5771 > #line 2366 "conf_parser.y"
5772      {
5773 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5773 >  if (conf_parser_ctx.pass == 2)
5774 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5775   }
5776      break;
5777  
5778 <  case 485:
5779 <
5780 < /* Line 1806 of yacc.c  */
6400 < #line 2683 "ircd_parser.y"
5778 >  case 490:
5779 > /* Line 1787 of yacc.c  */
5780 > #line 2372 "conf_parser.y"
5781      {
5782 <  ConfigFileEntry.use_whois_actually = yylval.number;
5782 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5783   }
5784      break;
5785  
5786 <  case 486:
5787 <
5788 < /* Line 1806 of yacc.c  */
6409 < #line 2688 "ircd_parser.y"
5786 >  case 491:
5787 > /* Line 1787 of yacc.c  */
5788 > #line 2377 "conf_parser.y"
5789      {
5790 <  GlobalSetOptions.rejecttime = yylval.number;
5790 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5791   }
5792      break;
5793  
5794 <  case 487:
5795 <
5796 < /* Line 1806 of yacc.c  */
6418 < #line 2693 "ircd_parser.y"
5794 >  case 492:
5795 > /* Line 1787 of yacc.c  */
5796 > #line 2382 "conf_parser.y"
5797      {
5798    ConfigFileEntry.tkline_expire_notices = yylval.number;
5799   }
5800      break;
5801  
5802 <  case 488:
5803 <
5804 < /* Line 1806 of yacc.c  */
6427 < #line 2698 "ircd_parser.y"
5802 >  case 493:
5803 > /* Line 1787 of yacc.c  */
5804 > #line 2387 "conf_parser.y"
5805      {
5806    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5807   }
5808      break;
5809  
5810 <  case 489:
5811 <
5812 < /* Line 1806 of yacc.c  */
6436 < #line 2703 "ircd_parser.y"
5810 >  case 494:
5811 > /* Line 1787 of yacc.c  */
5812 > #line 2392 "conf_parser.y"
5813      {
5814    ConfigFileEntry.hide_spoof_ips = yylval.number;
5815   }
5816      break;
5817  
5818 <  case 490:
5819 <
5820 < /* Line 1806 of yacc.c  */
6445 < #line 2708 "ircd_parser.y"
5818 >  case 495:
5819 > /* Line 1787 of yacc.c  */
5820 > #line 2397 "conf_parser.y"
5821      {
5822    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5823   }
5824      break;
5825  
5826 <  case 491:
5827 <
5828 < /* Line 1806 of yacc.c  */
6454 < #line 2713 "ircd_parser.y"
5826 >  case 496:
5827 > /* Line 1787 of yacc.c  */
5828 > #line 2402 "conf_parser.y"
5829      {
5830    ConfigFileEntry.disable_remote = yylval.number;
5831   }
5832      break;
5833  
5834 <  case 492:
5835 <
5836 < /* Line 1806 of yacc.c  */
6463 < #line 2718 "ircd_parser.y"
5834 >  case 497:
5835 > /* Line 1787 of yacc.c  */
5836 > #line 2407 "conf_parser.y"
5837      {
5838    ConfigFileEntry.failed_oper_notice = yylval.number;
5839   }
5840      break;
5841  
5842 <  case 493:
5843 <
5844 < /* Line 1806 of yacc.c  */
6472 < #line 2723 "ircd_parser.y"
5842 >  case 498:
5843 > /* Line 1787 of yacc.c  */
5844 > #line 2412 "conf_parser.y"
5845      {
5846    ConfigFileEntry.anti_nick_flood = yylval.number;
5847   }
5848      break;
5849  
5850 <  case 494:
5851 <
5852 < /* Line 1806 of yacc.c  */
6481 < #line 2728 "ircd_parser.y"
5850 >  case 499:
5851 > /* Line 1787 of yacc.c  */
5852 > #line 2417 "conf_parser.y"
5853      {
5854    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5855   }
5856      break;
5857  
5858 <  case 495:
5859 <
5860 < /* Line 1806 of yacc.c  */
6490 < #line 2733 "ircd_parser.y"
5858 >  case 500:
5859 > /* Line 1787 of yacc.c  */
5860 > #line 2422 "conf_parser.y"
5861      {
5862    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5863   }
5864      break;
5865  
5866 <  case 496:
5867 <
5868 < /* Line 1806 of yacc.c  */
6499 < #line 2738 "ircd_parser.y"
5866 >  case 501:
5867 > /* Line 1787 of yacc.c  */
5868 > #line 2427 "conf_parser.y"
5869      {
5870    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5871   }
5872      break;
5873  
5874 <  case 497:
5875 <
5876 < /* Line 1806 of yacc.c  */
6508 < #line 2743 "ircd_parser.y"
5874 >  case 502:
5875 > /* Line 1787 of yacc.c  */
5876 > #line 2432 "conf_parser.y"
5877      {
5878    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5879   }
5880      break;
5881  
5882 <  case 498:
5883 <
5884 < /* Line 1806 of yacc.c  */
6517 < #line 2748 "ircd_parser.y"
5882 >  case 503:
5883 > /* Line 1787 of yacc.c  */
5884 > #line 2437 "conf_parser.y"
5885      {
5886    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5887   }
5888      break;
5889  
5890 <  case 499:
5891 <
5892 < /* Line 1806 of yacc.c  */
6526 < #line 2753 "ircd_parser.y"
5890 >  case 504:
5891 > /* Line 1787 of yacc.c  */
5892 > #line 2442 "conf_parser.y"
5893      {
5894    if (conf_parser_ctx.pass == 2)
5895      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5896   }
5897      break;
5898  
5899 <  case 500:
5900 <
5901 < /* Line 1806 of yacc.c  */
6536 < #line 2759 "ircd_parser.y"
5899 >  case 505:
5900 > /* Line 1787 of yacc.c  */
5901 > #line 2448 "conf_parser.y"
5902      {
5903    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5904    {
# Line 6545 | Line 5910 | yyreduce:
5910   }
5911      break;
5912  
5913 <  case 501:
5914 <
5915 < /* Line 1806 of yacc.c  */
6551 < #line 2770 "ircd_parser.y"
6552 <    {
6553 <  ConfigFileEntry.kline_with_reason = yylval.number;
6554 < }
6555 <    break;
6556 <
6557 <  case 502:
6558 <
6559 < /* Line 1806 of yacc.c  */
6560 < #line 2775 "ircd_parser.y"
6561 <    {
6562 <  if (conf_parser_ctx.pass == 2)
6563 <  {
6564 <    MyFree(ConfigFileEntry.kline_reason);
6565 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6566 <  }
6567 < }
6568 <    break;
6569 <
6570 <  case 503:
6571 <
6572 < /* Line 1806 of yacc.c  */
6573 < #line 2784 "ircd_parser.y"
5913 >  case 506:
5914 > /* Line 1787 of yacc.c  */
5915 > #line 2459 "conf_parser.y"
5916      {
5917    ConfigFileEntry.invisible_on_connect = yylval.number;
5918   }
5919      break;
5920  
5921 <  case 504:
5922 <
5923 < /* Line 1806 of yacc.c  */
6582 < #line 2789 "ircd_parser.y"
5921 >  case 507:
5922 > /* Line 1787 of yacc.c  */
5923 > #line 2464 "conf_parser.y"
5924      {
5925    ConfigFileEntry.warn_no_nline = yylval.number;
5926   }
5927      break;
5928  
5929 <  case 505:
5930 <
5931 < /* Line 1806 of yacc.c  */
6591 < #line 2794 "ircd_parser.y"
5929 >  case 508:
5930 > /* Line 1787 of yacc.c  */
5931 > #line 2469 "conf_parser.y"
5932      {
5933    ConfigFileEntry.stats_e_disabled = yylval.number;
5934   }
5935      break;
5936  
5937 <  case 506:
5938 <
5939 < /* Line 1806 of yacc.c  */
6600 < #line 2799 "ircd_parser.y"
5937 >  case 509:
5938 > /* Line 1787 of yacc.c  */
5939 > #line 2474 "conf_parser.y"
5940      {
5941    ConfigFileEntry.stats_o_oper_only = yylval.number;
5942   }
5943      break;
5944  
5945 <  case 507:
5946 <
5947 < /* Line 1806 of yacc.c  */
6609 < #line 2804 "ircd_parser.y"
5945 >  case 510:
5946 > /* Line 1787 of yacc.c  */
5947 > #line 2479 "conf_parser.y"
5948      {
5949    ConfigFileEntry.stats_P_oper_only = yylval.number;
5950   }
5951      break;
5952  
5953 <  case 508:
5954 <
5955 < /* Line 1806 of yacc.c  */
6618 < #line 2809 "ircd_parser.y"
5953 >  case 511:
5954 > /* Line 1787 of yacc.c  */
5955 > #line 2484 "conf_parser.y"
5956      {
5957    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5958   }
5959      break;
5960  
5961 <  case 509:
5962 <
5963 < /* Line 1806 of yacc.c  */
6627 < #line 2812 "ircd_parser.y"
5961 >  case 512:
5962 > /* Line 1787 of yacc.c  */
5963 > #line 2487 "conf_parser.y"
5964      {
5965    ConfigFileEntry.stats_k_oper_only = 1;
5966   }
5967      break;
5968  
5969 <  case 510:
5970 <
5971 < /* Line 1806 of yacc.c  */
6636 < #line 2817 "ircd_parser.y"
5969 >  case 513:
5970 > /* Line 1787 of yacc.c  */
5971 > #line 2492 "conf_parser.y"
5972      {
5973    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5974   }
5975      break;
5976  
5977 <  case 511:
5978 <
5979 < /* Line 1806 of yacc.c  */
6645 < #line 2820 "ircd_parser.y"
5977 >  case 514:
5978 > /* Line 1787 of yacc.c  */
5979 > #line 2495 "conf_parser.y"
5980      {
5981    ConfigFileEntry.stats_i_oper_only = 1;
5982   }
5983      break;
5984  
5985 <  case 512:
5986 <
5987 < /* Line 1806 of yacc.c  */
6654 < #line 2825 "ircd_parser.y"
5985 >  case 515:
5986 > /* Line 1787 of yacc.c  */
5987 > #line 2500 "conf_parser.y"
5988      {
5989    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5990   }
5991      break;
5992  
5993 <  case 513:
5994 <
5995 < /* Line 1806 of yacc.c  */
6663 < #line 2830 "ircd_parser.y"
5993 >  case 516:
5994 > /* Line 1787 of yacc.c  */
5995 > #line 2505 "conf_parser.y"
5996      {
5997    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5998   }
5999      break;
6000  
6001 <  case 514:
6002 <
6003 < /* Line 1806 of yacc.c  */
6672 < #line 2835 "ircd_parser.y"
6001 >  case 517:
6002 > /* Line 1787 of yacc.c  */
6003 > #line 2510 "conf_parser.y"
6004      {
6005    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6006   }
6007      break;
6008  
6009 <  case 515:
6010 <
6011 < /* Line 1806 of yacc.c  */
6681 < #line 2840 "ircd_parser.y"
6009 >  case 518:
6010 > /* Line 1787 of yacc.c  */
6011 > #line 2515 "conf_parser.y"
6012      {
6013    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6014   }
6015      break;
6016  
6017 <  case 516:
6018 <
6019 < /* Line 1806 of yacc.c  */
6690 < #line 2845 "ircd_parser.y"
6017 >  case 519:
6018 > /* Line 1787 of yacc.c  */
6019 > #line 2520 "conf_parser.y"
6020      {
6021    ConfigFileEntry.short_motd = yylval.number;
6022   }
6023      break;
6024  
6025 <  case 517:
6026 <
6027 < /* Line 1806 of yacc.c  */
6699 < #line 2850 "ircd_parser.y"
6025 >  case 520:
6026 > /* Line 1787 of yacc.c  */
6027 > #line 2525 "conf_parser.y"
6028      {
6029    ConfigFileEntry.no_oper_flood = yylval.number;
6030   }
6031      break;
6032  
6033 <  case 518:
6034 <
6035 < /* Line 1806 of yacc.c  */
6708 < #line 2855 "ircd_parser.y"
6033 >  case 521:
6034 > /* Line 1787 of yacc.c  */
6035 > #line 2530 "conf_parser.y"
6036      {
6037    ConfigFileEntry.true_no_oper_flood = yylval.number;
6038   }
6039      break;
6040  
6041 <  case 519:
6042 <
6043 < /* Line 1806 of yacc.c  */
6717 < #line 2860 "ircd_parser.y"
6041 >  case 522:
6042 > /* Line 1787 of yacc.c  */
6043 > #line 2535 "conf_parser.y"
6044      {
6045    ConfigFileEntry.oper_pass_resv = yylval.number;
6046   }
6047      break;
6048  
6049 <  case 520:
6050 <
6051 < /* Line 1806 of yacc.c  */
6726 < #line 2865 "ircd_parser.y"
6727 <    {
6728 <  if (conf_parser_ctx.pass == 2)
6729 <  {
6730 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6731 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6732 <
6733 <    set_locale(yylval.string);
6734 <  }
6735 < }
6736 <    break;
6737 <
6738 <  case 521:
6739 <
6740 < /* Line 1806 of yacc.c  */
6741 < #line 2876 "ircd_parser.y"
6049 >  case 523:
6050 > /* Line 1787 of yacc.c  */
6051 > #line 2540 "conf_parser.y"
6052      {
6053    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6054   }
6055      break;
6056  
6057 <  case 522:
6058 <
6059 < /* Line 1806 of yacc.c  */
6750 < #line 2881 "ircd_parser.y"
6057 >  case 524:
6058 > /* Line 1787 of yacc.c  */
6059 > #line 2545 "conf_parser.y"
6060      {
6061    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6062   }
6063      break;
6064  
6065 <  case 523:
6066 <
6067 < /* Line 1806 of yacc.c  */
6759 < #line 2886 "ircd_parser.y"
6065 >  case 525:
6066 > /* Line 1787 of yacc.c  */
6067 > #line 2550 "conf_parser.y"
6068      {
6069    ConfigFileEntry.use_egd = yylval.number;
6070   }
6071      break;
6072  
6073 <  case 524:
6074 <
6075 < /* Line 1806 of yacc.c  */
6768 < #line 2891 "ircd_parser.y"
6073 >  case 526:
6074 > /* Line 1787 of yacc.c  */
6075 > #line 2555 "conf_parser.y"
6076      {
6077    if (conf_parser_ctx.pass == 2)
6078    {
6079      MyFree(ConfigFileEntry.egdpool_path);
6080 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6080 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6081    }
6082   }
6083      break;
6084  
6085 <  case 525:
6086 <
6087 < /* Line 1806 of yacc.c  */
6781 < #line 2900 "ircd_parser.y"
6085 >  case 527:
6086 > /* Line 1787 of yacc.c  */
6087 > #line 2564 "conf_parser.y"
6088      {
6089    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6090    {
6091      MyFree(ConfigFileEntry.service_name);
6092 <    DupString(ConfigFileEntry.service_name, yylval.string);
6092 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6093    }
6094   }
6095      break;
6096  
6097 <  case 526:
6098 <
6099 < /* Line 1806 of yacc.c  */
6794 < #line 2909 "ircd_parser.y"
6097 >  case 528:
6098 > /* Line 1787 of yacc.c  */
6099 > #line 2573 "conf_parser.y"
6100      {
6101    ConfigFileEntry.ping_cookie = yylval.number;
6102   }
6103      break;
6104  
6105 <  case 527:
6106 <
6107 < /* Line 1806 of yacc.c  */
6803 < #line 2914 "ircd_parser.y"
6105 >  case 529:
6106 > /* Line 1787 of yacc.c  */
6107 > #line 2578 "conf_parser.y"
6108      {
6109    ConfigFileEntry.disable_auth = yylval.number;
6110   }
6111      break;
6112  
6113 <  case 528:
6114 <
6115 < /* Line 1806 of yacc.c  */
6812 < #line 2919 "ircd_parser.y"
6113 >  case 530:
6114 > /* Line 1787 of yacc.c  */
6115 > #line 2583 "conf_parser.y"
6116      {
6117    ConfigFileEntry.throttle_time = yylval.number;
6118   }
6119      break;
6120  
6121 <  case 529:
6122 <
6123 < /* Line 1806 of yacc.c  */
6821 < #line 2924 "ircd_parser.y"
6121 >  case 531:
6122 > /* Line 1787 of yacc.c  */
6123 > #line 2588 "conf_parser.y"
6124      {
6125    ConfigFileEntry.oper_umodes = 0;
6126   }
6127      break;
6128  
6129 <  case 533:
6130 <
6131 < /* Line 1806 of yacc.c  */
6830 < #line 2930 "ircd_parser.y"
6129 >  case 535:
6130 > /* Line 1787 of yacc.c  */
6131 > #line 2594 "conf_parser.y"
6132      {
6133    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6134   }
6135      break;
6136  
6137 <  case 534:
6138 <
6139 < /* Line 1806 of yacc.c  */
6839 < #line 2933 "ircd_parser.y"
6137 >  case 536:
6138 > /* Line 1787 of yacc.c  */
6139 > #line 2597 "conf_parser.y"
6140      {
6141    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6142   }
6143      break;
6144  
6145 <  case 535:
6146 <
6147 < /* Line 1806 of yacc.c  */
6848 < #line 2936 "ircd_parser.y"
6145 >  case 537:
6146 > /* Line 1787 of yacc.c  */
6147 > #line 2600 "conf_parser.y"
6148      {
6149    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6150   }
6151      break;
6152  
6153 <  case 536:
6154 <
6155 < /* Line 1806 of yacc.c  */
6857 < #line 2939 "ircd_parser.y"
6153 >  case 538:
6154 > /* Line 1787 of yacc.c  */
6155 > #line 2603 "conf_parser.y"
6156      {
6157    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6158   }
6159      break;
6160  
6161 <  case 537:
6162 <
6163 < /* Line 1806 of yacc.c  */
6866 < #line 2942 "ircd_parser.y"
6161 >  case 539:
6162 > /* Line 1787 of yacc.c  */
6163 > #line 2606 "conf_parser.y"
6164      {
6165    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6166   }
6167      break;
6168  
6169 <  case 538:
6170 <
6171 < /* Line 1806 of yacc.c  */
6875 < #line 2945 "ircd_parser.y"
6169 >  case 540:
6170 > /* Line 1787 of yacc.c  */
6171 > #line 2609 "conf_parser.y"
6172      {
6173    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6174   }
6175      break;
6176  
6177 <  case 539:
6178 <
6179 < /* Line 1806 of yacc.c  */
6884 < #line 2948 "ircd_parser.y"
6177 >  case 541:
6178 > /* Line 1787 of yacc.c  */
6179 > #line 2612 "conf_parser.y"
6180      {
6181    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6182   }
6183      break;
6184  
6185 <  case 540:
6186 <
6187 < /* Line 1806 of yacc.c  */
6893 < #line 2951 "ircd_parser.y"
6185 >  case 542:
6186 > /* Line 1787 of yacc.c  */
6187 > #line 2615 "conf_parser.y"
6188      {
6189    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6190   }
6191      break;
6192  
6193 <  case 541:
6194 <
6195 < /* Line 1806 of yacc.c  */
6902 < #line 2954 "ircd_parser.y"
6193 >  case 543:
6194 > /* Line 1787 of yacc.c  */
6195 > #line 2618 "conf_parser.y"
6196      {
6197    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6198   }
6199      break;
6200  
6201 <  case 542:
6202 <
6203 < /* Line 1806 of yacc.c  */
6911 < #line 2957 "ircd_parser.y"
6201 >  case 544:
6202 > /* Line 1787 of yacc.c  */
6203 > #line 2621 "conf_parser.y"
6204      {
6205    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6206   }
6207      break;
6208  
6209 <  case 543:
6210 <
6211 < /* Line 1806 of yacc.c  */
6920 < #line 2960 "ircd_parser.y"
6209 >  case 545:
6210 > /* Line 1787 of yacc.c  */
6211 > #line 2624 "conf_parser.y"
6212      {
6213    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6214   }
6215      break;
6216  
6217 <  case 544:
6218 <
6219 < /* Line 1806 of yacc.c  */
6929 < #line 2963 "ircd_parser.y"
6217 >  case 546:
6218 > /* Line 1787 of yacc.c  */
6219 > #line 2627 "conf_parser.y"
6220      {
6221    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6222   }
6223      break;
6224  
6225 <  case 545:
6226 <
6227 < /* Line 1806 of yacc.c  */
6938 < #line 2966 "ircd_parser.y"
6225 >  case 547:
6226 > /* Line 1787 of yacc.c  */
6227 > #line 2630 "conf_parser.y"
6228      {
6229    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6230   }
6231      break;
6232  
6233 <  case 546:
6234 <
6235 < /* Line 1806 of yacc.c  */
6947 < #line 2969 "ircd_parser.y"
6233 >  case 548:
6234 > /* Line 1787 of yacc.c  */
6235 > #line 2633 "conf_parser.y"
6236      {
6237    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6238   }
6239      break;
6240  
6241 <  case 547:
6242 <
6243 < /* Line 1806 of yacc.c  */
6956 < #line 2972 "ircd_parser.y"
6241 >  case 549:
6242 > /* Line 1787 of yacc.c  */
6243 > #line 2636 "conf_parser.y"
6244      {
6245    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6246   }
6247      break;
6248  
6249 <  case 548:
6250 <
6251 < /* Line 1806 of yacc.c  */
6965 < #line 2975 "ircd_parser.y"
6249 >  case 550:
6250 > /* Line 1787 of yacc.c  */
6251 > #line 2639 "conf_parser.y"
6252      {
6253    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6254   }
6255      break;
6256  
6257 <  case 549:
6258 <
6259 < /* Line 1806 of yacc.c  */
6974 < #line 2978 "ircd_parser.y"
6257 >  case 551:
6258 > /* Line 1787 of yacc.c  */
6259 > #line 2642 "conf_parser.y"
6260      {
6261    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6262   }
6263      break;
6264  
6265 <  case 550:
6266 <
6267 < /* Line 1806 of yacc.c  */
6983 < #line 2981 "ircd_parser.y"
6265 >  case 552:
6266 > /* Line 1787 of yacc.c  */
6267 > #line 2645 "conf_parser.y"
6268      {
6269    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6270   }
6271      break;
6272  
6273 <  case 551:
6274 <
6275 < /* Line 1806 of yacc.c  */
6992 < #line 2984 "ircd_parser.y"
6273 >  case 553:
6274 > /* Line 1787 of yacc.c  */
6275 > #line 2648 "conf_parser.y"
6276      {
6277    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6278   }
6279      break;
6280  
6281 <  case 552:
6282 <
6283 < /* Line 1806 of yacc.c  */
7001 < #line 2987 "ircd_parser.y"
6281 >  case 554:
6282 > /* Line 1787 of yacc.c  */
6283 > #line 2651 "conf_parser.y"
6284      {
6285    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6286   }
6287      break;
6288  
6289 <  case 553:
6290 <
6291 < /* Line 1806 of yacc.c  */
7010 < #line 2992 "ircd_parser.y"
6289 >  case 555:
6290 > /* Line 1787 of yacc.c  */
6291 > #line 2654 "conf_parser.y"
6292      {
6293 <  ConfigFileEntry.oper_only_umodes = 0;
6293 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6294   }
6295      break;
6296  
6297 <  case 557:
6298 <
6299 < /* Line 1806 of yacc.c  */
7019 < #line 2998 "ircd_parser.y"
6297 >  case 556:
6298 > /* Line 1787 of yacc.c  */
6299 > #line 2657 "conf_parser.y"
6300      {
6301 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6301 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6302   }
6303      break;
6304  
6305 <  case 558:
6306 <
6307 < /* Line 1806 of yacc.c  */
7028 < #line 3001 "ircd_parser.y"
7029 <    {
7030 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
7031 < }
7032 <    break;
7033 <
7034 <  case 559:
7035 <
7036 < /* Line 1806 of yacc.c  */
7037 < #line 3004 "ircd_parser.y"
7038 <    {
7039 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
7040 < }
7041 <    break;
7042 <
7043 <  case 560:
7044 <
7045 < /* Line 1806 of yacc.c  */
7046 < #line 3007 "ircd_parser.y"
6305 >  case 557:
6306 > /* Line 1787 of yacc.c  */
6307 > #line 2662 "conf_parser.y"
6308      {
6309 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6309 >  ConfigFileEntry.oper_only_umodes = 0;
6310   }
6311      break;
6312  
6313    case 561:
6314 <
6315 < /* Line 1806 of yacc.c  */
7055 < #line 3010 "ircd_parser.y"
6314 > /* Line 1787 of yacc.c  */
6315 > #line 2668 "conf_parser.y"
6316      {
6317 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6317 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6318   }
6319      break;
6320  
6321    case 562:
6322 <
6323 < /* Line 1806 of yacc.c  */
6324 < #line 3013 "ircd_parser.y"
6325 <    {
7066 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6322 > /* Line 1787 of yacc.c  */
6323 > #line 2671 "conf_parser.y"
6324 >    {
6325 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6326   }
6327      break;
6328  
6329    case 563:
6330 <
6331 < /* Line 1806 of yacc.c  */
7073 < #line 3016 "ircd_parser.y"
6330 > /* Line 1787 of yacc.c  */
6331 > #line 2674 "conf_parser.y"
6332      {
6333 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6333 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6334   }
6335      break;
6336  
6337    case 564:
6338 <
6339 < /* Line 1806 of yacc.c  */
7082 < #line 3019 "ircd_parser.y"
6338 > /* Line 1787 of yacc.c  */
6339 > #line 2677 "conf_parser.y"
6340      {
6341 <  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6341 >  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6342   }
6343      break;
6344  
6345    case 565:
6346 <
6347 < /* Line 1806 of yacc.c  */
7091 < #line 3022 "ircd_parser.y"
6346 > /* Line 1787 of yacc.c  */
6347 > #line 2680 "conf_parser.y"
6348      {
6349 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6349 >  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6350   }
6351      break;
6352  
6353    case 566:
6354 <
6355 < /* Line 1806 of yacc.c  */
6356 < #line 3025 "ircd_parser.y"
6357 <    {
7102 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6354 > /* Line 1787 of yacc.c  */
6355 > #line 2683 "conf_parser.y"
6356 >    {
6357 >  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6358   }
6359      break;
6360  
6361    case 567:
6362 <
6363 < /* Line 1806 of yacc.c  */
7109 < #line 3028 "ircd_parser.y"
6362 > /* Line 1787 of yacc.c  */
6363 > #line 2686 "conf_parser.y"
6364      {
6365 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6365 >  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6366   }
6367      break;
6368  
6369    case 568:
6370 <
6371 < /* Line 1806 of yacc.c  */
7118 < #line 3031 "ircd_parser.y"
6370 > /* Line 1787 of yacc.c  */
6371 > #line 2689 "conf_parser.y"
6372      {
6373 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6373 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6374   }
6375      break;
6376  
6377    case 569:
6378 <
6379 < /* Line 1806 of yacc.c  */
7127 < #line 3034 "ircd_parser.y"
6378 > /* Line 1787 of yacc.c  */
6379 > #line 2692 "conf_parser.y"
6380      {
6381 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6381 >  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6382   }
6383      break;
6384  
6385    case 570:
6386 <
6387 < /* Line 1806 of yacc.c  */
7136 < #line 3037 "ircd_parser.y"
6386 > /* Line 1787 of yacc.c  */
6387 > #line 2695 "conf_parser.y"
6388      {
6389 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6389 >  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6390   }
6391      break;
6392  
6393    case 571:
6394 <
6395 < /* Line 1806 of yacc.c  */
7145 < #line 3040 "ircd_parser.y"
6394 > /* Line 1787 of yacc.c  */
6395 > #line 2698 "conf_parser.y"
6396      {
6397 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6397 >  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6398   }
6399      break;
6400  
6401    case 572:
6402 <
6403 < /* Line 1806 of yacc.c  */
7154 < #line 3043 "ircd_parser.y"
6402 > /* Line 1787 of yacc.c  */
6403 > #line 2701 "conf_parser.y"
6404      {
6405 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6405 >  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6406   }
6407      break;
6408  
6409    case 573:
6410 <
6411 < /* Line 1806 of yacc.c  */
7163 < #line 3046 "ircd_parser.y"
6410 > /* Line 1787 of yacc.c  */
6411 > #line 2704 "conf_parser.y"
6412      {
6413 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6413 >  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6414   }
6415      break;
6416  
6417    case 574:
6418 <
6419 < /* Line 1806 of yacc.c  */
7172 < #line 3049 "ircd_parser.y"
6418 > /* Line 1787 of yacc.c  */
6419 > #line 2707 "conf_parser.y"
6420      {
6421 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6421 >  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6422   }
6423      break;
6424  
6425    case 575:
6426 <
6427 < /* Line 1806 of yacc.c  */
7181 < #line 3052 "ircd_parser.y"
6426 > /* Line 1787 of yacc.c  */
6427 > #line 2710 "conf_parser.y"
6428      {
6429 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6429 >  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6430   }
6431      break;
6432  
6433    case 576:
6434 <
6435 < /* Line 1806 of yacc.c  */
7190 < #line 3055 "ircd_parser.y"
6434 > /* Line 1787 of yacc.c  */
6435 > #line 2713 "conf_parser.y"
6436      {
6437 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6437 >  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6438   }
6439      break;
6440  
6441    case 577:
6442 <
6443 < /* Line 1806 of yacc.c  */
7199 < #line 3060 "ircd_parser.y"
6442 > /* Line 1787 of yacc.c  */
6443 > #line 2716 "conf_parser.y"
6444      {
6445 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6445 >  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6446   }
6447      break;
6448  
6449    case 578:
6450 <
6451 < /* Line 1806 of yacc.c  */
7208 < #line 3065 "ircd_parser.y"
6450 > /* Line 1787 of yacc.c  */
6451 > #line 2719 "conf_parser.y"
6452      {
6453 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6453 >  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6454   }
6455      break;
6456  
6457    case 579:
6458 <
6459 < /* Line 1806 of yacc.c  */
7217 < #line 3070 "ircd_parser.y"
6458 > /* Line 1787 of yacc.c  */
6459 > #line 2722 "conf_parser.y"
6460      {
6461 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6461 >  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6462   }
6463      break;
6464  
6465    case 580:
6466 <
6467 < /* Line 1806 of yacc.c  */
7226 < #line 3075 "ircd_parser.y"
6466 > /* Line 1787 of yacc.c  */
6467 > #line 2725 "conf_parser.y"
6468      {
6469 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
6469 >  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6470   }
6471      break;
6472  
6473    case 581:
6474 <
6475 < /* Line 1806 of yacc.c  */
7235 < #line 3084 "ircd_parser.y"
6474 > /* Line 1787 of yacc.c  */
6475 > #line 2728 "conf_parser.y"
6476      {
6477 <  if (conf_parser_ctx.pass == 2)
7238 <  {
7239 <    yy_conf = make_conf_item(GDENY_TYPE);
7240 <    yy_aconf = map_to_conf(yy_conf);
7241 <  }
6477 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6478   }
6479      break;
6480  
6481    case 582:
6482 <
6483 < /* Line 1806 of yacc.c  */
7248 < #line 3091 "ircd_parser.y"
7249 <    {
7250 <  if (conf_parser_ctx.pass == 2)
7251 <  {
7252 <    /*
7253 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7254 <     * end we will have one extra, so we should free it.
7255 <     */
7256 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7257 <    {
7258 <      delete_conf_item(yy_conf);
7259 <      yy_conf = NULL;
7260 <      yy_aconf = NULL;
7261 <    }
7262 <  }
7263 < }
7264 <    break;
7265 <
7266 <  case 592:
7267 <
7268 < /* Line 1806 of yacc.c  */
7269 < #line 3117 "ircd_parser.y"
7270 <    {
7271 <  if (conf_parser_ctx.pass == 2)
7272 <    ConfigFileEntry.glines = yylval.number;
7273 < }
7274 <    break;
7275 <
7276 <  case 593:
7277 <
7278 < /* Line 1806 of yacc.c  */
7279 < #line 3123 "ircd_parser.y"
7280 <    {
7281 <  if (conf_parser_ctx.pass == 2)
7282 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
7283 < }
7284 <    break;
7285 <
7286 <  case 594:
7287 <
7288 < /* Line 1806 of yacc.c  */
7289 < #line 3129 "ircd_parser.y"
7290 <    {
7291 <  if (conf_parser_ctx.pass == 2)
7292 <    ConfigFileEntry.gline_logging = 0;
7293 < }
7294 <    break;
7295 <
7296 <  case 598:
7297 <
7298 < /* Line 1806 of yacc.c  */
7299 < #line 3135 "ircd_parser.y"
6482 > /* Line 1787 of yacc.c  */
6483 > #line 2731 "conf_parser.y"
6484      {
6485 <  if (conf_parser_ctx.pass == 2)
7302 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
6485 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6486   }
6487      break;
6488  
6489 <  case 599:
6490 <
6491 < /* Line 1806 of yacc.c  */
7309 < #line 3139 "ircd_parser.y"
6489 >  case 583:
6490 > /* Line 1787 of yacc.c  */
6491 > #line 2736 "conf_parser.y"
6492      {
6493 <  if (conf_parser_ctx.pass == 2)
7312 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
6493 >  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6494   }
6495      break;
6496  
6497 <  case 600:
6498 <
6499 < /* Line 1806 of yacc.c  */
7319 < #line 3145 "ircd_parser.y"
7320 <    {
7321 <  if (conf_parser_ctx.pass == 2)
7322 <  {
7323 <    struct split_nuh_item nuh;
7324 <
7325 <    nuh.nuhmask  = yylval.string;
7326 <    nuh.nickptr  = NULL;
7327 <    nuh.userptr  = userbuf;
7328 <    nuh.hostptr  = hostbuf;
7329 <
7330 <    nuh.nicksize = 0;
7331 <    nuh.usersize = sizeof(userbuf);
7332 <    nuh.hostsize = sizeof(hostbuf);
7333 <
7334 <    split_nuh(&nuh);
7335 <
7336 <    if (yy_aconf->user == NULL)
6497 >  case 584:
6498 > /* Line 1787 of yacc.c  */
6499 > #line 2741 "conf_parser.y"
6500      {
6501 <      DupString(yy_aconf->user, userbuf);
7339 <      DupString(yy_aconf->host, hostbuf);
7340 <    }
7341 <    else
7342 <    {
7343 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7344 <
7345 <      DupString(yy_tmp->user, userbuf);
7346 <      DupString(yy_tmp->host, hostbuf);
7347 <
7348 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7349 <    }
7350 <  }
6501 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6502   }
6503      break;
6504  
6505 <  case 601:
6506 <
6507 < /* Line 1806 of yacc.c  */
7357 < #line 3179 "ircd_parser.y"
6505 >  case 585:
6506 > /* Line 1787 of yacc.c  */
6507 > #line 2746 "conf_parser.y"
6508      {
6509 <  if (conf_parser_ctx.pass == 2)  
7360 <  {
7361 <    MyFree(yy_conf->name);
7362 <    DupString(yy_conf->name, yylval.string);
7363 <  }
6509 >  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6510   }
6511      break;
6512  
6513    case 602:
6514 <
6515 < /* Line 1806 of yacc.c  */
7370 < #line 3188 "ircd_parser.y"
7371 <    {
7372 <  if (conf_parser_ctx.pass == 2)
7373 <    yy_aconf->flags = 0;
7374 < }
7375 <    break;
7376 <
7377 <  case 603:
7378 <
7379 < /* Line 1806 of yacc.c  */
7380 < #line 3192 "ircd_parser.y"
7381 <    {
7382 <  if (conf_parser_ctx.pass == 2)
7383 <  {
7384 <    struct CollectItem *yy_tmp = NULL;
7385 <    dlink_node *ptr, *next_ptr;
7386 <
7387 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7388 <    {
7389 <      struct AccessItem *new_aconf;
7390 <      struct ConfItem *new_conf;
7391 <
7392 <      yy_tmp = ptr->data;
7393 <      new_conf = make_conf_item(GDENY_TYPE);
7394 <      new_aconf = map_to_conf(new_conf);
7395 <
7396 <      new_aconf->flags = yy_aconf->flags;
7397 <
7398 <      if (yy_conf->name != NULL)
7399 <        DupString(new_conf->name, yy_conf->name);
7400 <      else
7401 <        DupString(new_conf->name, "*");
7402 <      if (yy_aconf->user != NULL)
7403 <         DupString(new_aconf->user, yy_tmp->user);
7404 <      else  
7405 <        DupString(new_aconf->user, "*");
7406 <      if (yy_aconf->host != NULL)
7407 <        DupString(new_aconf->host, yy_tmp->host);
7408 <      else
7409 <        DupString(new_aconf->host, "*");
7410 <
7411 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7412 <    }
7413 <
7414 <    /*
7415 <     * In case someone has fed us with more than one action= after user/name
7416 <     * which would leak memory  -Michael
7417 <     */
7418 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7419 <      delete_conf_item(yy_conf);
7420 <
7421 <    yy_conf = make_conf_item(GDENY_TYPE);
7422 <    yy_aconf = map_to_conf(yy_conf);
7423 <  }
7424 < }
7425 <    break;
7426 <
7427 <  case 606:
7428 <
7429 < /* Line 1806 of yacc.c  */
7430 < #line 3239 "ircd_parser.y"
7431 <    {
7432 <  if (conf_parser_ctx.pass == 2)
7433 <    yy_aconf->flags |= GDENY_REJECT;
7434 < }
7435 <    break;
7436 <
7437 <  case 607:
7438 <
7439 < /* Line 1806 of yacc.c  */
7440 < #line 3243 "ircd_parser.y"
7441 <    {
7442 <  if (conf_parser_ctx.pass == 2)
7443 <    yy_aconf->flags |= GDENY_BLOCK;
7444 < }
7445 <    break;
7446 <
7447 <  case 630:
7448 <
7449 < /* Line 1806 of yacc.c  */
7450 < #line 3267 "ircd_parser.y"
6514 > /* Line 1787 of yacc.c  */
6515 > #line 2769 "conf_parser.y"
6516      {
6517    ConfigChannel.disable_fake_channels = yylval.number;
6518   }
6519      break;
6520  
6521 <  case 631:
6522 <
6523 < /* Line 1806 of yacc.c  */
7459 < #line 3272 "ircd_parser.y"
7460 <    {
7461 <  ConfigChannel.restrict_channels = yylval.number;
7462 < }
7463 <    break;
7464 <
7465 <  case 632:
7466 <
7467 < /* Line 1806 of yacc.c  */
7468 < #line 3277 "ircd_parser.y"
7469 <    {
7470 <  ConfigChannel.disable_local_channels = yylval.number;
7471 < }
7472 <    break;
7473 <
7474 <  case 633:
7475 <
7476 < /* Line 1806 of yacc.c  */
7477 < #line 3282 "ircd_parser.y"
7478 <    {
7479 <  ConfigChannel.use_except = yylval.number;
7480 < }
7481 <    break;
7482 <
7483 <  case 634:
7484 <
7485 < /* Line 1806 of yacc.c  */
7486 < #line 3287 "ircd_parser.y"
7487 <    {
7488 <  ConfigChannel.use_invex = yylval.number;
7489 < }
7490 <    break;
7491 <
7492 <  case 635:
7493 <
7494 < /* Line 1806 of yacc.c  */
7495 < #line 3292 "ircd_parser.y"
7496 <    {
7497 <  ConfigChannel.use_knock = yylval.number;
7498 < }
7499 <    break;
7500 <
7501 <  case 636:
7502 <
7503 < /* Line 1806 of yacc.c  */
7504 < #line 3297 "ircd_parser.y"
6521 >  case 603:
6522 > /* Line 1787 of yacc.c  */
6523 > #line 2774 "conf_parser.y"
6524      {
6525    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6526   }
6527      break;
6528  
6529 <  case 637:
6530 <
6531 < /* Line 1806 of yacc.c  */
7513 < #line 3302 "ircd_parser.y"
6529 >  case 604:
6530 > /* Line 1787 of yacc.c  */
6531 > #line 2779 "conf_parser.y"
6532      {
6533    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6534   }
6535      break;
6536  
6537 <  case 638:
6538 <
6539 < /* Line 1806 of yacc.c  */
7522 < #line 3307 "ircd_parser.y"
6537 >  case 605:
6538 > /* Line 1787 of yacc.c  */
6539 > #line 2784 "conf_parser.y"
6540      {
6541    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6542   }
6543      break;
6544  
6545 <  case 639:
6546 <
6547 < /* Line 1806 of yacc.c  */
7531 < #line 3312 "ircd_parser.y"
6545 >  case 606:
6546 > /* Line 1787 of yacc.c  */
6547 > #line 2789 "conf_parser.y"
6548      {
6549 <  ConfigChannel.quiet_on_ban = yylval.number;
6549 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6550   }
6551      break;
6552  
6553 <  case 640:
6554 <
6555 < /* Line 1806 of yacc.c  */
7540 < #line 3317 "ircd_parser.y"
6553 >  case 607:
6554 > /* Line 1787 of yacc.c  */
6555 > #line 2794 "conf_parser.y"
6556      {
6557    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6558   }
6559      break;
6560  
6561 <  case 641:
6562 <
6563 < /* Line 1806 of yacc.c  */
7549 < #line 3322 "ircd_parser.y"
6561 >  case 608:
6562 > /* Line 1787 of yacc.c  */
6563 > #line 2799 "conf_parser.y"
6564      {
6565    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6566   }
6567      break;
6568  
6569 <  case 642:
6570 <
6571 < /* Line 1806 of yacc.c  */
7558 < #line 3327 "ircd_parser.y"
6569 >  case 609:
6570 > /* Line 1787 of yacc.c  */
6571 > #line 2804 "conf_parser.y"
6572      {
6573    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6574   }
6575      break;
6576  
6577 <  case 643:
6578 <
6579 < /* Line 1806 of yacc.c  */
7567 < #line 3332 "ircd_parser.y"
6577 >  case 610:
6578 > /* Line 1787 of yacc.c  */
6579 > #line 2809 "conf_parser.y"
6580      {
6581    ConfigChannel.no_create_on_split = yylval.number;
6582   }
6583      break;
6584  
6585 <  case 644:
6586 <
6587 < /* Line 1806 of yacc.c  */
7576 < #line 3337 "ircd_parser.y"
6585 >  case 611:
6586 > /* Line 1787 of yacc.c  */
6587 > #line 2814 "conf_parser.y"
6588      {
6589    ConfigChannel.no_join_on_split = yylval.number;
6590   }
6591      break;
6592  
6593 <  case 645:
6594 <
6595 < /* Line 1806 of yacc.c  */
7585 < #line 3342 "ircd_parser.y"
7586 <    {
7587 <  ConfigChannel.burst_topicwho = yylval.number;
7588 < }
7589 <    break;
7590 <
7591 <  case 646:
7592 <
7593 < /* Line 1806 of yacc.c  */
7594 < #line 3347 "ircd_parser.y"
6593 >  case 612:
6594 > /* Line 1787 of yacc.c  */
6595 > #line 2819 "conf_parser.y"
6596      {
6597    GlobalSetOptions.joinfloodcount = yylval.number;
6598   }
6599      break;
6600  
6601 <  case 647:
6602 <
6603 < /* Line 1806 of yacc.c  */
7603 < #line 3352 "ircd_parser.y"
6601 >  case 613:
6602 > /* Line 1787 of yacc.c  */
6603 > #line 2824 "conf_parser.y"
6604      {
6605    GlobalSetOptions.joinfloodtime = yylval.number;
6606   }
6607      break;
6608  
6609 <  case 659:
6610 <
6611 < /* Line 1806 of yacc.c  */
7612 < #line 3371 "ircd_parser.y"
6609 >  case 625:
6610 > /* Line 1787 of yacc.c  */
6611 > #line 2843 "conf_parser.y"
6612      {
6613    if (conf_parser_ctx.pass == 2)
6614      ConfigServerHide.flatten_links = yylval.number;
6615   }
6616      break;
6617  
6618 <  case 660:
6619 <
6620 < /* Line 1806 of yacc.c  */
7622 < #line 3377 "ircd_parser.y"
6618 >  case 626:
6619 > /* Line 1787 of yacc.c  */
6620 > #line 2849 "conf_parser.y"
6621      {
6622    if (conf_parser_ctx.pass == 2)
6623      ConfigServerHide.hide_servers = yylval.number;
6624   }
6625      break;
6626  
6627 <  case 661:
6627 >  case 627:
6628 > /* Line 1787 of yacc.c  */
6629 > #line 2855 "conf_parser.y"
6630 >    {
6631 >  if (conf_parser_ctx.pass == 2)
6632 >    ConfigServerHide.hide_services = yylval.number;
6633 > }
6634 >    break;
6635  
6636 < /* Line 1806 of yacc.c  */
6637 < #line 3383 "ircd_parser.y"
6636 >  case 628:
6637 > /* Line 1787 of yacc.c  */
6638 > #line 2861 "conf_parser.y"
6639      {
6640    if (conf_parser_ctx.pass == 2)
6641    {
6642      MyFree(ConfigServerHide.hidden_name);
6643 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6643 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6644    }
6645   }
6646      break;
6647  
6648 <  case 662:
6649 <
6650 < /* Line 1806 of yacc.c  */
7645 < #line 3392 "ircd_parser.y"
6648 >  case 629:
6649 > /* Line 1787 of yacc.c  */
6650 > #line 2870 "conf_parser.y"
6651      {
6652    if (conf_parser_ctx.pass == 2)
6653    {
# Line 7657 | Line 6662 | yyreduce:
6662   }
6663      break;
6664  
6665 <  case 663:
6666 <
6667 < /* Line 1806 of yacc.c  */
7663 < #line 3406 "ircd_parser.y"
6665 >  case 630:
6666 > /* Line 1787 of yacc.c  */
6667 > #line 2884 "conf_parser.y"
6668      {
6669    if (conf_parser_ctx.pass == 2)
6670      ConfigServerHide.hidden = yylval.number;
6671   }
6672      break;
6673  
6674 <  case 664:
6675 <
6676 < /* Line 1806 of yacc.c  */
7673 < #line 3412 "ircd_parser.y"
7674 <    {
7675 <  if (conf_parser_ctx.pass == 2)
7676 <    ConfigServerHide.disable_hidden = yylval.number;
7677 < }
7678 <    break;
7679 <
7680 <  case 665:
7681 <
7682 < /* Line 1806 of yacc.c  */
7683 < #line 3418 "ircd_parser.y"
6674 >  case 631:
6675 > /* Line 1787 of yacc.c  */
6676 > #line 2890 "conf_parser.y"
6677      {
6678    if (conf_parser_ctx.pass == 2)
6679      ConfigServerHide.hide_server_ips = yylval.number;
# Line 7688 | Line 6681 | yyreduce:
6681      break;
6682  
6683  
6684 <
6685 < /* Line 1806 of yacc.c  */
7693 < #line 7694 "ircd_parser.c"
6684 > /* Line 1787 of yacc.c  */
6685 > #line 6686 "conf_parser.c"
6686        default: break;
6687      }
6688    /* User semantic actions sometimes alter yychar, and that requires
# Line 7853 | Line 6845 | yyerrlab1:
6845        YY_STACK_PRINT (yyss, yyssp);
6846      }
6847  
6848 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6849    *++yyvsp = yylval;
6850 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6851  
6852  
6853    /* Shift the error token.  */
# Line 7877 | Line 6871 | yyabortlab:
6871    yyresult = 1;
6872    goto yyreturn;
6873  
6874 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6874 > #if !defined yyoverflow || YYERROR_VERBOSE
6875   /*-------------------------------------------------.
6876   | yyexhaustedlab -- memory exhaustion comes here.  |
6877   `-------------------------------------------------*/
# Line 7919 | Line 6913 | yyreturn:
6913   }
6914  
6915  
7922

Comparing:
ircd-hybrid-8/src/ircd_parser.c (property svn:keywords), Revision 1306 by michael, Sat Mar 24 07:43:04 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 1992 by michael, Fri May 10 18:32:26 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)