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/trunk/src/conf_parser.c (file contents):
Revision 1622 by michael, Thu Nov 1 13:16:37 2012 UTC vs.
Revision 1921 by michael, Tue Apr 30 14:54:20 2013 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.6.2.33-cc5a9.  */
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-2012 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.6.2.33-cc5a9"
47 > #define YYBISON_VERSION "2.7.12-4996"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 62 | Line 62
62  
63  
64   /* Copy the first part of user declarations.  */
65 < /* Line 358 of yacc.c  */
65 > /* Line 371 of yacc.c  */
66   #line 25 "conf_parser.y"
67  
68  
# Line 75 | Line 75
75   #include "ircd.h"
76   #include "list.h"
77   #include "conf.h"
78 + #include "conf_class.h"
79   #include "event.h"
80   #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
82   #include "irc_string.h"
82 #include "sprintf_irc.h"
83   #include "memory.h"
84   #include "modules.h"
85   #include "s_serv.h"
# Line 97 | Line 97
97   #include <openssl/dh.h>
98   #endif
99  
100 < int yylex(void);
100 > #include "rsa.h"
101  
102 < static char *class_name = NULL;
103 < static struct ConfItem *yy_conf = NULL;
104 < static struct AccessItem *yy_aconf = NULL;
105 < static struct MatchItem *yy_match_item = NULL;
106 < static struct ClassItem *yy_class = NULL;
107 < static char *yy_class_name = NULL;
108 <
109 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
110 < static unsigned int listener_flags = 0;
111 < static unsigned int regex_ban = 0;
112 < static char userbuf[IRCD_BUFSIZE];
113 < static char hostbuf[IRCD_BUFSIZE];
114 < static char reasonbuf[REASONLEN + 1];
115 < static char gecos_name[REALLEN * 4];
116 < static char lfile[IRCD_BUFSIZE];
117 < static unsigned int ltype = 0;
118 < static unsigned int lsize = 0;
119 < static char *resv_reason = NULL;
120 < static char *listener_address = NULL;
102 > int yylex(void);
103  
104 < struct CollectItem
104 > static struct
105   {
106 <  dlink_node node;
107 <  char *name;
108 <  char *user;
109 <  char *host;
110 <  char *passwd;
111 <  int  port;
112 <  int  flags;
113 < #ifdef HAVE_LIBCRYPTO
114 <  char *rsa_public_key_file;
115 <  RSA *rsa_public_key;
116 < #endif
117 < };
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 < free_collect_item(struct CollectItem *item)
150 > reset_block_state(void)
151   {
152 <  MyFree(item->name);
153 <  MyFree(item->user);
154 <  MyFree(item->host);
155 <  MyFree(item->passwd);
156 < #ifdef HAVE_LIBCRYPTO
157 <  MyFree(item->rsa_public_key_file);
158 < #endif
159 <  MyFree(item);
152 >  dlink_node *ptr = NULL, *ptr_next = NULL;
153 >
154 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
155 >  {
156 >    MyFree(ptr->data);
157 >    dlinkDelete(ptr, &block_state.mask.list);
158 >    free_dlink_node(ptr);
159 >  }
160 >
161 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
162 >  {
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 >
175 >  memset(&block_state, 0, sizeof(block_state));
176   }
177  
178  
179 < /* Line 358 of yacc.c  */
180 < #line 153 "conf_parser.c"
179 > /* Line 371 of yacc.c  */
180 > #line 181 "conf_parser.c"
181  
182   # ifndef YY_NULL
183   #  if defined __cplusplus && 201103L <= __cplusplus
# Line 169 | Line 197 | free_collect_item(struct CollectItem *it
197  
198   /* In a future release of Bison, this section will be replaced
199     by #include "y.tab.h".  */
200 < #ifndef YY_YY_Y_TAB_H_INCLUDED
201 < # define YY_YY_Y_TAB_H_INCLUDED
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
# Line 237 | Line 265 | extern int yydebug;
265       HIDDEN_NAME = 307,
266       HIDE_SERVER_IPS = 308,
267       HIDE_SERVERS = 309,
268 <     HIDE_SPOOF_IPS = 310,
269 <     HOST = 311,
270 <     HUB = 312,
271 <     HUB_MASK = 313,
272 <     IGNORE_BOGUS_TS = 314,
273 <     INVISIBLE_ON_CONNECT = 315,
274 <     IP = 316,
275 <     KILL = 317,
276 <     KILL_CHASE_TIME_LIMIT = 318,
277 <     KLINE = 319,
278 <     KLINE_EXEMPT = 320,
279 <     KNOCK_DELAY = 321,
280 <     KNOCK_DELAY_CHANNEL = 322,
281 <     LEAF_MASK = 323,
282 <     LINKS_DELAY = 324,
283 <     LISTEN = 325,
284 <     T_LOG = 326,
285 <     MAX_ACCEPT = 327,
286 <     MAX_BANS = 328,
287 <     MAX_CHANS_PER_OPER = 329,
288 <     MAX_CHANS_PER_USER = 330,
289 <     MAX_GLOBAL = 331,
290 <     MAX_IDENT = 332,
291 <     MAX_LOCAL = 333,
292 <     MAX_NICK_CHANGES = 334,
293 <     MAX_NICK_TIME = 335,
294 <     MAX_NUMBER = 336,
295 <     MAX_TARGETS = 337,
296 <     MAX_WATCH = 338,
297 <     MESSAGE_LOCALE = 339,
298 <     MIN_NONWILDCARD = 340,
299 <     MIN_NONWILDCARD_SIMPLE = 341,
300 <     MODULE = 342,
301 <     MODULES = 343,
302 <     NAME = 344,
303 <     NEED_PASSWORD = 345,
304 <     NETWORK_DESC = 346,
305 <     NETWORK_NAME = 347,
306 <     NICK = 348,
307 <     NICK_CHANGES = 349,
308 <     NO_CREATE_ON_SPLIT = 350,
309 <     NO_JOIN_ON_SPLIT = 351,
310 <     NO_OPER_FLOOD = 352,
311 <     NO_TILDE = 353,
312 <     NUMBER = 354,
313 <     NUMBER_PER_CIDR = 355,
314 <     NUMBER_PER_IP = 356,
315 <     OPERATOR = 357,
316 <     OPERS_BYPASS_CALLERID = 358,
317 <     OPER_ONLY_UMODES = 359,
318 <     OPER_PASS_RESV = 360,
319 <     OPER_SPY_T = 361,
320 <     OPER_UMODES = 362,
321 <     JOIN_FLOOD_COUNT = 363,
322 <     JOIN_FLOOD_TIME = 364,
323 <     PACE_WAIT = 365,
324 <     PACE_WAIT_SIMPLE = 366,
325 <     PASSWORD = 367,
326 <     PATH = 368,
327 <     PING_COOKIE = 369,
328 <     PING_TIME = 370,
329 <     PING_WARNING = 371,
330 <     PORT = 372,
331 <     QSTRING = 373,
332 <     QUIET_ON_BAN = 374,
333 <     REASON = 375,
334 <     REDIRPORT = 376,
335 <     REDIRSERV = 377,
336 <     REGEX_T = 378,
337 <     REHASH = 379,
338 <     REMOTE = 380,
339 <     REMOTEBAN = 381,
340 <     RESTRICT_CHANNELS = 382,
341 <     RSA_PRIVATE_KEY_FILE = 383,
342 <     RSA_PUBLIC_KEY_FILE = 384,
343 <     SSL_CERTIFICATE_FILE = 385,
344 <     SSL_DH_PARAM_FILE = 386,
345 <     T_SSL_CLIENT_METHOD = 387,
346 <     T_SSL_SERVER_METHOD = 388,
347 <     T_SSLV3 = 389,
348 <     T_TLSV1 = 390,
349 <     RESV = 391,
350 <     RESV_EXEMPT = 392,
351 <     SECONDS = 393,
352 <     MINUTES = 394,
353 <     HOURS = 395,
354 <     DAYS = 396,
355 <     WEEKS = 397,
356 <     SENDQ = 398,
357 <     SEND_PASSWORD = 399,
358 <     SERVERHIDE = 400,
359 <     SERVERINFO = 401,
360 <     IRCD_SID = 402,
361 <     TKLINE_EXPIRE_NOTICES = 403,
362 <     T_SHARED = 404,
363 <     T_CLUSTER = 405,
364 <     TYPE = 406,
365 <     SHORT_MOTD = 407,
366 <     SPOOF = 408,
367 <     SPOOF_NOTICE = 409,
368 <     STATS_E_DISABLED = 410,
369 <     STATS_I_OPER_ONLY = 411,
370 <     STATS_K_OPER_ONLY = 412,
371 <     STATS_O_OPER_ONLY = 413,
372 <     STATS_P_OPER_ONLY = 414,
373 <     TBOOL = 415,
374 <     TMASKED = 416,
375 <     TS_MAX_DELTA = 417,
376 <     TS_WARN_DELTA = 418,
377 <     TWODOTS = 419,
378 <     T_ALL = 420,
379 <     T_BOTS = 421,
380 <     T_SOFTCALLERID = 422,
381 <     T_CALLERID = 423,
382 <     T_CCONN = 424,
383 <     T_CCONN_FULL = 425,
384 <     T_SSL_CIPHER_LIST = 426,
385 <     T_DEAF = 427,
386 <     T_DEBUG = 428,
387 <     T_DLINE = 429,
388 <     T_EXTERNAL = 430,
389 <     T_FULL = 431,
390 <     T_INVISIBLE = 432,
391 <     T_IPV4 = 433,
392 <     T_IPV6 = 434,
393 <     T_LOCOPS = 435,
394 <     T_MAX_CLIENTS = 436,
395 <     T_NCHANGE = 437,
396 <     T_OPERWALL = 438,
397 <     T_RECVQ = 439,
398 <     T_REJ = 440,
399 <     T_SERVER = 441,
400 <     T_SERVNOTICE = 442,
401 <     T_SET = 443,
402 <     T_SKILL = 444,
403 <     T_SPY = 445,
404 <     T_SSL = 446,
405 <     T_UMODES = 447,
406 <     T_UNAUTH = 448,
407 <     T_UNDLINE = 449,
408 <     T_UNLIMITED = 450,
409 <     T_UNRESV = 451,
410 <     T_UNXLINE = 452,
411 <     T_GLOBOPS = 453,
412 <     T_WALLOP = 454,
413 <     T_RESTART = 455,
414 <     T_SERVICE = 456,
415 <     T_SERVICES_NAME = 457,
416 <     THROTTLE_TIME = 458,
417 <     TRUE_NO_OPER_FLOOD = 459,
418 <     UNKLINE = 460,
419 <     USER = 461,
420 <     USE_EGD = 462,
421 <     USE_LOGGING = 463,
422 <     VHOST = 464,
423 <     VHOST6 = 465,
424 <     XLINE = 466,
425 <     WARN_NO_NLINE = 467,
426 <     T_SIZE = 468,
427 <     T_FILE = 469
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_SPY_T = 367,
326 >     OPER_UMODES = 368,
327 >     JOIN_FLOOD_COUNT = 369,
328 >     JOIN_FLOOD_TIME = 370,
329 >     PACE_WAIT = 371,
330 >     PACE_WAIT_SIMPLE = 372,
331 >     PASSWORD = 373,
332 >     PATH = 374,
333 >     PING_COOKIE = 375,
334 >     PING_TIME = 376,
335 >     PORT = 377,
336 >     QSTRING = 378,
337 >     QUIET_ON_BAN = 379,
338 >     REASON = 380,
339 >     REDIRPORT = 381,
340 >     REDIRSERV = 382,
341 >     REHASH = 383,
342 >     REMOTE = 384,
343 >     REMOTEBAN = 385,
344 >     RSA_PRIVATE_KEY_FILE = 386,
345 >     RSA_PUBLIC_KEY_FILE = 387,
346 >     SSL_CERTIFICATE_FILE = 388,
347 >     SSL_DH_PARAM_FILE = 389,
348 >     T_SSL_CLIENT_METHOD = 390,
349 >     T_SSL_SERVER_METHOD = 391,
350 >     T_SSLV3 = 392,
351 >     T_TLSV1 = 393,
352 >     RESV = 394,
353 >     RESV_EXEMPT = 395,
354 >     SECONDS = 396,
355 >     MINUTES = 397,
356 >     HOURS = 398,
357 >     DAYS = 399,
358 >     WEEKS = 400,
359 >     MONTHS = 401,
360 >     YEARS = 402,
361 >     SENDQ = 403,
362 >     SEND_PASSWORD = 404,
363 >     SERVERHIDE = 405,
364 >     SERVERINFO = 406,
365 >     IRCD_SID = 407,
366 >     TKLINE_EXPIRE_NOTICES = 408,
367 >     T_SHARED = 409,
368 >     T_CLUSTER = 410,
369 >     TYPE = 411,
370 >     SHORT_MOTD = 412,
371 >     SPOOF = 413,
372 >     SPOOF_NOTICE = 414,
373 >     STATS_E_DISABLED = 415,
374 >     STATS_I_OPER_ONLY = 416,
375 >     STATS_K_OPER_ONLY = 417,
376 >     STATS_O_OPER_ONLY = 418,
377 >     STATS_P_OPER_ONLY = 419,
378 >     TBOOL = 420,
379 >     TMASKED = 421,
380 >     TS_MAX_DELTA = 422,
381 >     TS_WARN_DELTA = 423,
382 >     TWODOTS = 424,
383 >     T_ALL = 425,
384 >     T_BOTS = 426,
385 >     T_SOFTCALLERID = 427,
386 >     T_CALLERID = 428,
387 >     T_CCONN = 429,
388 >     T_CCONN_FULL = 430,
389 >     T_SSL_CIPHER_LIST = 431,
390 >     T_DEAF = 432,
391 >     T_DEBUG = 433,
392 >     T_DLINE = 434,
393 >     T_EXTERNAL = 435,
394 >     T_FULL = 436,
395 >     T_INVISIBLE = 437,
396 >     T_IPV4 = 438,
397 >     T_IPV6 = 439,
398 >     T_LOCOPS = 440,
399 >     T_MAX_CLIENTS = 441,
400 >     T_NCHANGE = 442,
401 >     T_NONONREG = 443,
402 >     T_OPERWALL = 444,
403 >     T_RECVQ = 445,
404 >     T_REJ = 446,
405 >     T_SERVER = 447,
406 >     T_SERVNOTICE = 448,
407 >     T_SET = 449,
408 >     T_SKILL = 450,
409 >     T_SPY = 451,
410 >     T_SSL = 452,
411 >     T_UMODES = 453,
412 >     T_UNAUTH = 454,
413 >     T_UNDLINE = 455,
414 >     T_UNLIMITED = 456,
415 >     T_UNRESV = 457,
416 >     T_UNXLINE = 458,
417 >     T_GLOBOPS = 459,
418 >     T_WALLOP = 460,
419 >     T_WEBIRC = 461,
420 >     T_RESTART = 462,
421 >     T_SERVICE = 463,
422 >     T_SERVICES_NAME = 464,
423 >     THROTTLE_TIME = 465,
424 >     TRUE_NO_OPER_FLOOD = 466,
425 >     UNKLINE = 467,
426 >     USER = 468,
427 >     USE_EGD = 469,
428 >     USE_LOGGING = 470,
429 >     VHOST = 471,
430 >     VHOST6 = 472,
431 >     XLINE = 473,
432 >     WARN_NO_NLINE = 474,
433 >     T_SIZE = 475,
434 >     T_FILE = 476
435     };
436   #endif
437   /* Tokens.  */
# Line 452 | Line 487 | extern int yydebug;
487   #define HIDDEN_NAME 307
488   #define HIDE_SERVER_IPS 308
489   #define HIDE_SERVERS 309
490 < #define HIDE_SPOOF_IPS 310
491 < #define HOST 311
492 < #define HUB 312
493 < #define HUB_MASK 313
494 < #define IGNORE_BOGUS_TS 314
495 < #define INVISIBLE_ON_CONNECT 315
496 < #define IP 316
497 < #define KILL 317
498 < #define KILL_CHASE_TIME_LIMIT 318
499 < #define KLINE 319
500 < #define KLINE_EXEMPT 320
501 < #define KNOCK_DELAY 321
502 < #define KNOCK_DELAY_CHANNEL 322
503 < #define LEAF_MASK 323
504 < #define LINKS_DELAY 324
505 < #define LISTEN 325
506 < #define T_LOG 326
507 < #define MAX_ACCEPT 327
508 < #define MAX_BANS 328
509 < #define MAX_CHANS_PER_OPER 329
510 < #define MAX_CHANS_PER_USER 330
511 < #define MAX_GLOBAL 331
512 < #define MAX_IDENT 332
513 < #define MAX_LOCAL 333
514 < #define MAX_NICK_CHANGES 334
515 < #define MAX_NICK_TIME 335
516 < #define MAX_NUMBER 336
517 < #define MAX_TARGETS 337
518 < #define MAX_WATCH 338
519 < #define MESSAGE_LOCALE 339
520 < #define MIN_NONWILDCARD 340
521 < #define MIN_NONWILDCARD_SIMPLE 341
522 < #define MODULE 342
523 < #define MODULES 343
524 < #define NAME 344
525 < #define NEED_PASSWORD 345
526 < #define NETWORK_DESC 346
527 < #define NETWORK_NAME 347
528 < #define NICK 348
529 < #define NICK_CHANGES 349
530 < #define NO_CREATE_ON_SPLIT 350
531 < #define NO_JOIN_ON_SPLIT 351
532 < #define NO_OPER_FLOOD 352
533 < #define NO_TILDE 353
534 < #define NUMBER 354
535 < #define NUMBER_PER_CIDR 355
536 < #define NUMBER_PER_IP 356
537 < #define OPERATOR 357
538 < #define OPERS_BYPASS_CALLERID 358
539 < #define OPER_ONLY_UMODES 359
540 < #define OPER_PASS_RESV 360
541 < #define OPER_SPY_T 361
542 < #define OPER_UMODES 362
543 < #define JOIN_FLOOD_COUNT 363
544 < #define JOIN_FLOOD_TIME 364
545 < #define PACE_WAIT 365
546 < #define PACE_WAIT_SIMPLE 366
547 < #define PASSWORD 367
548 < #define PATH 368
549 < #define PING_COOKIE 369
550 < #define PING_TIME 370
551 < #define PING_WARNING 371
552 < #define PORT 372
553 < #define QSTRING 373
554 < #define QUIET_ON_BAN 374
555 < #define REASON 375
556 < #define REDIRPORT 376
557 < #define REDIRSERV 377
558 < #define REGEX_T 378
559 < #define REHASH 379
560 < #define REMOTE 380
561 < #define REMOTEBAN 381
562 < #define RESTRICT_CHANNELS 382
563 < #define RSA_PRIVATE_KEY_FILE 383
564 < #define RSA_PUBLIC_KEY_FILE 384
565 < #define SSL_CERTIFICATE_FILE 385
566 < #define SSL_DH_PARAM_FILE 386
567 < #define T_SSL_CLIENT_METHOD 387
568 < #define T_SSL_SERVER_METHOD 388
569 < #define T_SSLV3 389
570 < #define T_TLSV1 390
571 < #define RESV 391
572 < #define RESV_EXEMPT 392
573 < #define SECONDS 393
574 < #define MINUTES 394
575 < #define HOURS 395
576 < #define DAYS 396
577 < #define WEEKS 397
578 < #define SENDQ 398
579 < #define SEND_PASSWORD 399
580 < #define SERVERHIDE 400
581 < #define SERVERINFO 401
582 < #define IRCD_SID 402
583 < #define TKLINE_EXPIRE_NOTICES 403
584 < #define T_SHARED 404
585 < #define T_CLUSTER 405
586 < #define TYPE 406
587 < #define SHORT_MOTD 407
588 < #define SPOOF 408
589 < #define SPOOF_NOTICE 409
590 < #define STATS_E_DISABLED 410
591 < #define STATS_I_OPER_ONLY 411
592 < #define STATS_K_OPER_ONLY 412
593 < #define STATS_O_OPER_ONLY 413
594 < #define STATS_P_OPER_ONLY 414
595 < #define TBOOL 415
596 < #define TMASKED 416
597 < #define TS_MAX_DELTA 417
598 < #define TS_WARN_DELTA 418
599 < #define TWODOTS 419
600 < #define T_ALL 420
601 < #define T_BOTS 421
602 < #define T_SOFTCALLERID 422
603 < #define T_CALLERID 423
604 < #define T_CCONN 424
605 < #define T_CCONN_FULL 425
606 < #define T_SSL_CIPHER_LIST 426
607 < #define T_DEAF 427
608 < #define T_DEBUG 428
609 < #define T_DLINE 429
610 < #define T_EXTERNAL 430
611 < #define T_FULL 431
612 < #define T_INVISIBLE 432
613 < #define T_IPV4 433
614 < #define T_IPV6 434
615 < #define T_LOCOPS 435
616 < #define T_MAX_CLIENTS 436
617 < #define T_NCHANGE 437
618 < #define T_OPERWALL 438
619 < #define T_RECVQ 439
620 < #define T_REJ 440
621 < #define T_SERVER 441
622 < #define T_SERVNOTICE 442
623 < #define T_SET 443
624 < #define T_SKILL 444
625 < #define T_SPY 445
626 < #define T_SSL 446
627 < #define T_UMODES 447
628 < #define T_UNAUTH 448
629 < #define T_UNDLINE 449
630 < #define T_UNLIMITED 450
631 < #define T_UNRESV 451
632 < #define T_UNXLINE 452
633 < #define T_GLOBOPS 453
634 < #define T_WALLOP 454
635 < #define T_RESTART 455
636 < #define T_SERVICE 456
637 < #define T_SERVICES_NAME 457
638 < #define THROTTLE_TIME 458
639 < #define TRUE_NO_OPER_FLOOD 459
640 < #define UNKLINE 460
641 < #define USER 461
642 < #define USE_EGD 462
643 < #define USE_LOGGING 463
644 < #define VHOST 464
645 < #define VHOST6 465
646 < #define XLINE 466
647 < #define WARN_NO_NLINE 467
648 < #define T_SIZE 468
649 < #define T_FILE 469
490 > #define HIDE_SERVICES 310
491 > #define HIDE_SPOOF_IPS 311
492 > #define HOST 312
493 > #define HUB 313
494 > #define HUB_MASK 314
495 > #define IGNORE_BOGUS_TS 315
496 > #define INVISIBLE_ON_CONNECT 316
497 > #define IP 317
498 > #define KILL 318
499 > #define KILL_CHASE_TIME_LIMIT 319
500 > #define KLINE 320
501 > #define KLINE_EXEMPT 321
502 > #define KNOCK_DELAY 322
503 > #define KNOCK_DELAY_CHANNEL 323
504 > #define LEAF_MASK 324
505 > #define LINKS_DELAY 325
506 > #define LISTEN 326
507 > #define T_LOG 327
508 > #define MASK 328
509 > #define MAX_ACCEPT 329
510 > #define MAX_BANS 330
511 > #define MAX_CHANS_PER_OPER 331
512 > #define MAX_CHANS_PER_USER 332
513 > #define MAX_GLOBAL 333
514 > #define MAX_IDENT 334
515 > #define MAX_LOCAL 335
516 > #define MAX_NICK_CHANGES 336
517 > #define MAX_NICK_LENGTH 337
518 > #define MAX_NICK_TIME 338
519 > #define MAX_NUMBER 339
520 > #define MAX_TARGETS 340
521 > #define MAX_TOPIC_LENGTH 341
522 > #define MAX_WATCH 342
523 > #define MIN_NONWILDCARD 343
524 > #define MIN_NONWILDCARD_SIMPLE 344
525 > #define MIN_IDLE 345
526 > #define MAX_IDLE 346
527 > #define RANDOM_IDLE 347
528 > #define HIDE_IDLE_FROM_OPERS 348
529 > #define MODULE 349
530 > #define MODULES 350
531 > #define NAME 351
532 > #define NEED_PASSWORD 352
533 > #define NETWORK_DESC 353
534 > #define NETWORK_NAME 354
535 > #define NICK 355
536 > #define NO_CREATE_ON_SPLIT 356
537 > #define NO_JOIN_ON_SPLIT 357
538 > #define NO_OPER_FLOOD 358
539 > #define NO_TILDE 359
540 > #define NUMBER 360
541 > #define NUMBER_PER_CIDR 361
542 > #define NUMBER_PER_IP 362
543 > #define OPERATOR 363
544 > #define OPERS_BYPASS_CALLERID 364
545 > #define OPER_ONLY_UMODES 365
546 > #define OPER_PASS_RESV 366
547 > #define OPER_SPY_T 367
548 > #define OPER_UMODES 368
549 > #define JOIN_FLOOD_COUNT 369
550 > #define JOIN_FLOOD_TIME 370
551 > #define PACE_WAIT 371
552 > #define PACE_WAIT_SIMPLE 372
553 > #define PASSWORD 373
554 > #define PATH 374
555 > #define PING_COOKIE 375
556 > #define PING_TIME 376
557 > #define PORT 377
558 > #define QSTRING 378
559 > #define QUIET_ON_BAN 379
560 > #define REASON 380
561 > #define REDIRPORT 381
562 > #define REDIRSERV 382
563 > #define REHASH 383
564 > #define REMOTE 384
565 > #define REMOTEBAN 385
566 > #define RSA_PRIVATE_KEY_FILE 386
567 > #define RSA_PUBLIC_KEY_FILE 387
568 > #define SSL_CERTIFICATE_FILE 388
569 > #define SSL_DH_PARAM_FILE 389
570 > #define T_SSL_CLIENT_METHOD 390
571 > #define T_SSL_SERVER_METHOD 391
572 > #define T_SSLV3 392
573 > #define T_TLSV1 393
574 > #define RESV 394
575 > #define RESV_EXEMPT 395
576 > #define SECONDS 396
577 > #define MINUTES 397
578 > #define HOURS 398
579 > #define DAYS 399
580 > #define WEEKS 400
581 > #define MONTHS 401
582 > #define YEARS 402
583 > #define SENDQ 403
584 > #define SEND_PASSWORD 404
585 > #define SERVERHIDE 405
586 > #define SERVERINFO 406
587 > #define IRCD_SID 407
588 > #define TKLINE_EXPIRE_NOTICES 408
589 > #define T_SHARED 409
590 > #define T_CLUSTER 410
591 > #define TYPE 411
592 > #define SHORT_MOTD 412
593 > #define SPOOF 413
594 > #define SPOOF_NOTICE 414
595 > #define STATS_E_DISABLED 415
596 > #define STATS_I_OPER_ONLY 416
597 > #define STATS_K_OPER_ONLY 417
598 > #define STATS_O_OPER_ONLY 418
599 > #define STATS_P_OPER_ONLY 419
600 > #define TBOOL 420
601 > #define TMASKED 421
602 > #define TS_MAX_DELTA 422
603 > #define TS_WARN_DELTA 423
604 > #define TWODOTS 424
605 > #define T_ALL 425
606 > #define T_BOTS 426
607 > #define T_SOFTCALLERID 427
608 > #define T_CALLERID 428
609 > #define T_CCONN 429
610 > #define T_CCONN_FULL 430
611 > #define T_SSL_CIPHER_LIST 431
612 > #define T_DEAF 432
613 > #define T_DEBUG 433
614 > #define T_DLINE 434
615 > #define T_EXTERNAL 435
616 > #define T_FULL 436
617 > #define T_INVISIBLE 437
618 > #define T_IPV4 438
619 > #define T_IPV6 439
620 > #define T_LOCOPS 440
621 > #define T_MAX_CLIENTS 441
622 > #define T_NCHANGE 442
623 > #define T_NONONREG 443
624 > #define T_OPERWALL 444
625 > #define T_RECVQ 445
626 > #define T_REJ 446
627 > #define T_SERVER 447
628 > #define T_SERVNOTICE 448
629 > #define T_SET 449
630 > #define T_SKILL 450
631 > #define T_SPY 451
632 > #define T_SSL 452
633 > #define T_UMODES 453
634 > #define T_UNAUTH 454
635 > #define T_UNDLINE 455
636 > #define T_UNLIMITED 456
637 > #define T_UNRESV 457
638 > #define T_UNXLINE 458
639 > #define T_GLOBOPS 459
640 > #define T_WALLOP 460
641 > #define T_WEBIRC 461
642 > #define T_RESTART 462
643 > #define T_SERVICE 463
644 > #define T_SERVICES_NAME 464
645 > #define THROTTLE_TIME 465
646 > #define TRUE_NO_OPER_FLOOD 466
647 > #define UNKLINE 467
648 > #define USER 468
649 > #define USE_EGD 469
650 > #define USE_LOGGING 470
651 > #define VHOST 471
652 > #define VHOST6 472
653 > #define XLINE 473
654 > #define WARN_NO_NLINE 474
655 > #define T_SIZE 475
656 > #define T_FILE 476
657  
658  
659  
660   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
661   typedef union YYSTYPE
662   {
663 < /* Line 374 of yacc.c  */
664 < #line 110 "conf_parser.y"
663 > /* Line 387 of yacc.c  */
664 > #line 138 "conf_parser.y"
665  
666    int number;
667    char *string;
668  
669  
670 < /* Line 374 of yacc.c  */
671 < #line 630 "conf_parser.c"
670 > /* Line 387 of yacc.c  */
671 > #line 672 "conf_parser.c"
672   } YYSTYPE;
673   # define YYSTYPE_IS_TRIVIAL 1
674   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
# Line 649 | Line 691 | int yyparse ();
691   #endif
692   #endif /* ! YYPARSE_PARAM */
693  
694 < #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
694 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
695  
696   /* Copy the second part of user declarations.  */
697  
698 < /* Line 377 of yacc.c  */
699 < #line 658 "conf_parser.c"
698 > /* Line 390 of yacc.c  */
699 > #line 700 "conf_parser.c"
700  
701   #ifdef short
702   # undef short
# Line 715 | Line 757 | typedef short int yytype_int16;
757   # endif
758   #endif
759  
760 + #ifndef __attribute__
761 + /* This feature is available in gcc versions 2.5 and later.  */
762 + # if (! defined __GNUC__ || __GNUC__ < 2 \
763 +      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
764 + #  define __attribute__(Spec) /* empty */
765 + # endif
766 + #endif
767 +
768   /* Suppress unused-variable warnings by "using" E.  */
769   #if ! defined lint || defined __GNUC__
770   # define YYUSE(E) ((void) (E))
# Line 722 | Line 772 | typedef short int yytype_int16;
772   # define YYUSE(E) /* empty */
773   #endif
774  
775 +
776   /* Identity function, used to suppress warnings about constant conditions.  */
777   #ifndef lint
778   # define YYID(N) (N)
# Line 874 | Line 925 | union yyalloc
925   /* YYFINAL -- State number of the termination state.  */
926   #define YYFINAL  2
927   /* YYLAST -- Last index in YYTABLE.  */
928 < #define YYLAST   1206
928 > #define YYLAST   1160
929  
930   /* YYNTOKENS -- Number of terminals.  */
931 < #define YYNTOKENS  220
931 > #define YYNTOKENS  227
932   /* YYNNTS -- Number of nonterminals.  */
933 < #define YYNNTS  283
933 > #define YYNNTS  281
934   /* YYNRULES -- Number of rules.  */
935 < #define YYNRULES  627
935 > #define YYNRULES  630
936   /* YYNRULES -- Number of states.  */
937 < #define YYNSTATES  1228
937 > #define YYNSTATES  1235
938  
939   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
940   #define YYUNDEFTOK  2
941 < #define YYMAXUTOK   469
941 > #define YYMAXUTOK   476
942  
943   #define YYTRANSLATE(YYX)                                                \
944    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 899 | Line 950 | static const yytype_uint8 yytranslate[]
950         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
951         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
952         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
953 <       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
954 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
955 <       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
953 >       2,     2,     2,     2,   226,     2,     2,     2,     2,     2,
954 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   222,
955 >       2,   225,     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,     2,     2,     2,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961 <       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
961 >       2,     2,     2,   224,     2,   223,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
963         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
964         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 941 | Line 992 | static const yytype_uint8 yytranslate[]
992       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
993       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
994       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
995 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
995 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
996 >     215,   216,   217,   218,   219,   220,   221
997   };
998  
999   #if YYDEBUG
# Line 952 | Line 1004 | static const yytype_uint16 yyprhs[] =
1004         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1005        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1006        39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1007 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
1008 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
1009 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1010 <     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
1011 <     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
1012 <     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
1013 <     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
1014 <     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
1015 <     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
1016 <     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
1017 <     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
1018 <     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
1019 <     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
1020 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
1021 <     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
1022 <     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
1023 <     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
1024 <     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
1025 <     587,   589,   591,   593,   596,   601,   606,   611,   616,   621,
1026 <     626,   631,   636,   641,   646,   651,   656,   661,   666,   667,
1027 <     674,   675,   681,   685,   687,   689,   691,   693,   696,   698,
1028 <     700,   702,   704,   706,   709,   710,   716,   720,   722,   724,
1029 <     728,   733,   738,   739,   746,   749,   751,   753,   755,   757,
1030 <     759,   761,   763,   765,   767,   770,   775,   780,   785,   790,
1031 <     791,   797,   801,   803,   805,   807,   809,   811,   813,   815,
1032 <     817,   819,   821,   826,   831,   836,   837,   844,   847,   849,
1033 <     851,   853,   855,   858,   863,   868,   873,   879,   882,   884,
1034 <     886,   888,   893,   894,   901,   904,   906,   908,   910,   912,
1035 <     915,   920,   925,   926,   932,   936,   938,   940,   942,   944,
1036 <     946,   948,   950,   952,   954,   956,   958,   959,   966,   969,
1037 <     971,   973,   975,   978,   983,   984,   990,   994,   996,   998,
1038 <    1000,  1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,  1017,
1039 <    1024,  1027,  1029,  1031,  1033,  1035,  1037,  1039,  1041,  1043,
1040 <    1045,  1047,  1049,  1051,  1053,  1055,  1058,  1063,  1068,  1073,
1041 <    1078,  1083,  1088,  1093,  1098,  1099,  1105,  1109,  1111,  1113,
1042 <    1115,  1120,  1125,  1130,  1135,  1140,  1141,  1148,  1149,  1155,
1043 <    1159,  1161,  1163,  1166,  1168,  1170,  1172,  1174,  1176,  1181,
1044 <    1186,  1187,  1194,  1197,  1199,  1201,  1203,  1205,  1210,  1215,
1045 <    1221,  1224,  1226,  1228,  1230,  1235,  1236,  1243,  1244,  1250,
1046 <    1254,  1256,  1258,  1261,  1263,  1265,  1267,  1269,  1271,  1276,
1047 <    1281,  1287,  1290,  1292,  1294,  1296,  1298,  1300,  1302,  1304,
1048 <    1306,  1308,  1310,  1312,  1314,  1316,  1318,  1320,  1322,  1324,
1049 <    1326,  1328,  1330,  1332,  1334,  1336,  1338,  1340,  1342,  1344,
1050 <    1346,  1348,  1350,  1352,  1354,  1356,  1358,  1360,  1362,  1364,
1051 <    1366,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,  1384,
1052 <    1386,  1388,  1390,  1392,  1397,  1402,  1407,  1412,  1417,  1422,
1053 <    1427,  1432,  1437,  1442,  1447,  1452,  1457,  1462,  1467,  1472,
1054 <    1477,  1482,  1487,  1492,  1497,  1502,  1507,  1512,  1517,  1522,
1055 <    1527,  1532,  1537,  1542,  1547,  1552,  1557,  1562,  1567,  1572,
1056 <    1577,  1582,  1587,  1592,  1597,  1602,  1607,  1612,  1617,  1622,
1057 <    1623,  1629,  1633,  1635,  1637,  1639,  1641,  1643,  1645,  1647,
1058 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1059 <    1669,  1671,  1673,  1675,  1676,  1682,  1686,  1688,  1690,  1692,
1060 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1061 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1733,  1738,
1062 <    1743,  1749,  1752,  1754,  1756,  1758,  1760,  1762,  1764,  1766,
1063 <    1768,  1770,  1772,  1774,  1776,  1778,  1780,  1782,  1784,  1789,
1064 <    1794,  1799,  1804,  1809,  1814,  1819,  1824,  1829,  1834,  1839,
1065 <    1844,  1849,  1854,  1860,  1863,  1865,  1867,  1869,  1871,  1873,
1066 <    1875,  1877,  1879,  1884,  1889,  1894,  1899,  1904
1007 >      63,    67,    71,    75,    79,    83,    87,    88,    90,    93,
1008 >      97,   101,   105,   111,   114,   116,   118,   120,   123,   128,
1009 >     133,   139,   142,   144,   146,   148,   150,   152,   154,   156,
1010 >     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1011 >     178,   181,   186,   191,   195,   197,   199,   201,   205,   207,
1012 >     209,   211,   216,   221,   226,   231,   236,   241,   246,   251,
1013 >     256,   261,   266,   271,   276,   281,   286,   292,   295,   297,
1014 >     299,   301,   303,   306,   311,   316,   321,   327,   330,   332,
1015 >     334,   336,   339,   344,   345,   352,   355,   357,   359,   361,
1016 >     363,   366,   371,   376,   381,   382,   388,   392,   394,   396,
1017 >     398,   400,   402,   404,   406,   408,   409,   416,   419,   421,
1018 >     423,   425,   427,   429,   431,   433,   435,   437,   440,   445,
1019 >     450,   455,   460,   465,   470,   471,   477,   481,   483,   485,
1020 >     487,   489,   491,   493,   495,   497,   499,   501,   503,   505,
1021 >     507,   509,   511,   513,   515,   517,   519,   521,   523,   525,
1022 >     526,   532,   536,   538,   540,   542,   544,   546,   548,   550,
1023 >     552,   554,   556,   558,   560,   562,   564,   566,   568,   570,
1024 >     572,   574,   575,   582,   585,   587,   589,   591,   593,   595,
1025 >     597,   599,   601,   603,   605,   607,   609,   611,   613,   615,
1026 >     617,   619,   622,   627,   632,   637,   642,   647,   652,   657,
1027 >     662,   667,   672,   677,   682,   687,   692,   697,   698,   704,
1028 >     708,   710,   712,   714,   715,   722,   723,   729,   733,   735,
1029 >     737,   739,   741,   744,   746,   748,   750,   752,   754,   757,
1030 >     758,   764,   768,   770,   772,   776,   781,   786,   787,   794,
1031 >     797,   799,   801,   803,   805,   807,   809,   811,   813,   815,
1032 >     818,   823,   828,   833,   838,   839,   845,   849,   851,   853,
1033 >     855,   857,   859,   861,   863,   865,   867,   869,   871,   876,
1034 >     881,   886,   887,   894,   897,   899,   901,   903,   905,   908,
1035 >     913,   918,   923,   929,   932,   934,   936,   938,   943,   944,
1036 >     951,   954,   956,   958,   960,   962,   965,   970,   975,   976,
1037 >     982,   986,   988,   990,   992,   994,   996,   998,  1000,  1002,
1038 >    1004,  1006,  1008,  1009,  1016,  1019,  1021,  1023,  1025,  1028,
1039 >    1033,  1034,  1040,  1044,  1046,  1048,  1050,  1052,  1054,  1056,
1040 >    1058,  1060,  1062,  1064,  1066,  1067,  1074,  1077,  1079,  1081,
1041 >    1083,  1085,  1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,
1042 >    1103,  1105,  1108,  1113,  1118,  1123,  1128,  1133,  1138,  1143,
1043 >    1148,  1149,  1155,  1159,  1161,  1163,  1165,  1170,  1175,  1180,
1044 >    1185,  1190,  1191,  1198,  1201,  1203,  1205,  1207,  1209,  1214,
1045 >    1219,  1220,  1227,  1230,  1232,  1234,  1236,  1238,  1243,  1248,
1046 >    1254,  1257,  1259,  1261,  1263,  1268,  1269,  1276,  1279,  1281,
1047 >    1283,  1285,  1287,  1292,  1297,  1303,  1306,  1308,  1310,  1312,
1048 >    1314,  1316,  1318,  1320,  1322,  1324,  1326,  1328,  1330,  1332,
1049 >    1334,  1336,  1338,  1340,  1342,  1344,  1346,  1348,  1350,  1352,
1050 >    1354,  1356,  1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,
1051 >    1374,  1376,  1378,  1380,  1382,  1384,  1386,  1388,  1390,  1392,
1052 >    1394,  1396,  1398,  1400,  1402,  1404,  1406,  1411,  1416,  1421,
1053 >    1426,  1431,  1436,  1441,  1446,  1451,  1456,  1461,  1466,  1471,
1054 >    1476,  1481,  1486,  1491,  1496,  1501,  1506,  1511,  1516,  1521,
1055 >    1526,  1531,  1536,  1541,  1546,  1551,  1556,  1561,  1566,  1571,
1056 >    1576,  1581,  1586,  1591,  1596,  1601,  1606,  1611,  1616,  1621,
1057 >    1626,  1631,  1632,  1638,  1642,  1644,  1646,  1648,  1650,  1652,
1058 >    1654,  1656,  1658,  1660,  1662,  1664,  1666,  1668,  1670,  1672,
1059 >    1674,  1676,  1678,  1680,  1682,  1684,  1685,  1691,  1695,  1697,
1060 >    1699,  1701,  1703,  1705,  1707,  1709,  1711,  1713,  1715,  1717,
1061 >    1719,  1721,  1723,  1725,  1727,  1729,  1731,  1733,  1735,  1737,
1062 >    1739,  1744,  1749,  1754,  1760,  1763,  1765,  1767,  1769,  1771,
1063 >    1773,  1775,  1777,  1779,  1781,  1783,  1785,  1787,  1789,  1791,
1064 >    1793,  1798,  1803,  1808,  1813,  1818,  1823,  1828,  1833,  1838,
1065 >    1843,  1848,  1853,  1858,  1864,  1867,  1869,  1871,  1873,  1875,
1066 >    1877,  1879,  1881,  1883,  1885,  1890,  1895,  1900,  1905,  1910,
1067 >    1915
1068   };
1069  
1070   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1071   static const yytype_int16 yyrhs[] =
1072   {
1073 <     221,     0,    -1,    -1,   221,   222,    -1,   254,    -1,   260,
1074 <      -1,   274,    -1,   477,    -1,   292,    -1,   310,    -1,   324,
1075 <      -1,   232,    -1,   494,    -1,   339,    -1,   346,    -1,   350,
1076 <      -1,   360,    -1,   369,    -1,   389,    -1,   399,    -1,   405,
1077 <      -1,   419,    -1,   409,    -1,   227,    -1,     1,   215,    -1,
1078 <       1,   216,    -1,    -1,   224,    -1,    99,   223,    -1,    99,
1079 <     138,   223,    -1,    99,   139,   223,    -1,    99,   140,   223,
1080 <      -1,    99,   141,   223,    -1,    99,   142,   223,    -1,    -1,
1081 <     226,    -1,    99,   225,    -1,    99,     9,   225,    -1,    99,
1082 <      10,   225,    -1,    99,    11,   225,    -1,    88,   217,   228,
1083 <     216,   215,    -1,   228,   229,    -1,   229,    -1,   230,    -1,
1084 <     231,    -1,     1,   215,    -1,    87,   218,   118,   215,    -1,
1085 <     113,   218,   118,   215,    -1,   146,   217,   233,   216,   215,
1086 <      -1,   233,   234,    -1,   234,    -1,   245,    -1,   250,    -1,
1087 <     253,    -1,   247,    -1,   248,    -1,   249,    -1,   252,    -1,
1088 <     243,    -1,   242,    -1,   251,    -1,   246,    -1,   241,    -1,
1089 <     235,    -1,   236,    -1,   244,    -1,     1,   215,    -1,   132,
1090 <     218,   237,   215,    -1,   133,   218,   239,   215,    -1,   237,
1091 <     219,   238,    -1,   238,    -1,   134,    -1,   135,    -1,   239,
1092 <     219,   240,    -1,   240,    -1,   134,    -1,   135,    -1,   130,
1093 <     218,   118,   215,    -1,   128,   218,   118,   215,    -1,   131,
1094 <     218,   118,   215,    -1,   171,   218,   118,   215,    -1,    89,
1095 <     218,   118,   215,    -1,   147,   218,   118,   215,    -1,    24,
1096 <     218,   118,   215,    -1,    92,   218,   118,   215,    -1,    91,
1097 <     218,   118,   215,    -1,   209,   218,   118,   215,    -1,   210,
1098 <     218,   118,   215,    -1,   181,   218,    99,   215,    -1,    57,
1099 <     218,   160,   215,    -1,     4,   217,   255,   216,   215,    -1,
1100 <     255,   256,    -1,   256,    -1,   257,    -1,   259,    -1,   258,
1101 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,    31,
1102 <     218,   118,   215,    -1,    24,   218,   118,   215,    -1,    71,
1103 <     217,   261,   216,   215,    -1,   261,   262,    -1,   262,    -1,
1104 <     263,    -1,   264,    -1,     1,   215,    -1,   208,   218,   160,
1105 <     215,    -1,    -1,   265,   214,   217,   266,   216,   215,    -1,
1106 <     266,   267,    -1,   267,    -1,   268,    -1,   270,    -1,   269,
1107 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,   213,
1108 <     218,   226,   215,    -1,   213,   218,   195,   215,    -1,    -1,
1109 <     151,   271,   218,   272,   215,    -1,   272,   219,   273,    -1,
1110 <     273,    -1,   206,    -1,   102,    -1,    40,    -1,   174,    -1,
1111 <      64,    -1,    62,    -1,   173,    -1,    -1,   102,   275,   217,
1112 <     276,   216,   215,    -1,   276,   277,    -1,   277,    -1,   278,
1113 <      -1,   279,    -1,   280,    -1,   284,    -1,   283,    -1,   281,
1114 <      -1,   282,    -1,   288,    -1,     1,   215,    -1,    89,   218,
1115 <     118,   215,    -1,   206,   218,   118,   215,    -1,   112,   218,
1116 <     118,   215,    -1,    32,   218,   160,   215,    -1,   129,   218,
1117 <     118,   215,    -1,    17,   218,   118,   215,    -1,    -1,   192,
1118 <     285,   218,   286,   215,    -1,   286,   219,   287,    -1,   287,
1119 <      -1,   166,    -1,   169,    -1,   170,    -1,   172,    -1,   173,
1120 <      -1,   176,    -1,    51,    -1,   189,    -1,   182,    -1,   185,
1121 <      -1,   193,    -1,   190,    -1,   175,    -1,   183,    -1,   187,
1122 <      -1,   177,    -1,   199,    -1,   167,    -1,   168,    -1,   180,
1123 <      -1,    -1,    36,   289,   218,   290,   215,    -1,   290,   219,
1124 <     291,    -1,   291,    -1,    47,    -1,   125,    -1,    64,    -1,
1125 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,    40,    -1,
1126 <      25,    -1,   200,    -1,   124,    -1,     4,    -1,    94,    -1,
1127 <     183,    -1,   198,    -1,   106,    -1,   126,    -1,   188,    -1,
1128 <      87,    -1,    -1,    17,   293,   217,   294,   216,   215,    -1,
1129 <     294,   295,    -1,   295,    -1,   296,    -1,   307,    -1,   308,
1130 <      -1,   297,    -1,   298,    -1,   309,    -1,   299,    -1,   300,
1131 <      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,   305,
1132 <      -1,   306,    -1,     1,   215,    -1,    89,   218,   118,   215,
1133 <      -1,   115,   218,   224,   215,    -1,   116,   218,   224,   215,
1134 <      -1,   101,   218,    99,   215,    -1,    19,   218,   224,   215,
1135 <      -1,    81,   218,    99,   215,    -1,    76,   218,    99,   215,
1136 <      -1,    78,   218,    99,   215,    -1,    77,   218,    99,   215,
1137 <      -1,   143,   218,   226,   215,    -1,   184,   218,   226,   215,
1138 <      -1,    15,   218,    99,   215,    -1,    16,   218,    99,   215,
1139 <      -1,   100,   218,    99,   215,    -1,    -1,    70,   311,   217,
1140 <     316,   216,   215,    -1,    -1,    36,   313,   218,   314,   215,
1141 <      -1,   314,   219,   315,    -1,   315,    -1,   191,    -1,    51,
1142 <      -1,   186,    -1,   316,   317,    -1,   317,    -1,   318,    -1,
1143 <     312,    -1,   322,    -1,   323,    -1,     1,   215,    -1,    -1,
1144 <     117,   218,   320,   319,   215,    -1,   320,   219,   321,    -1,
1145 <     321,    -1,    99,    -1,    99,   164,    99,    -1,    61,   218,
1146 <     118,   215,    -1,    56,   218,   118,   215,    -1,    -1,    48,
1147 <     325,   217,   326,   216,   215,    -1,   326,   327,    -1,   327,
1148 <      -1,   328,    -1,   329,    -1,   330,    -1,   332,    -1,   336,
1149 <      -1,   337,    -1,   338,    -1,   331,    -1,     1,   215,    -1,
1150 <     206,   218,   118,   215,    -1,   112,   218,   118,   215,    -1,
1151 <      17,   218,   118,   215,    -1,    32,   218,   160,   215,    -1,
1152 <      -1,    36,   333,   218,   334,   215,    -1,   334,   219,   335,
1153 <      -1,   335,    -1,   154,    -1,    33,    -1,    65,    -1,    49,
1154 <      -1,    13,    -1,    98,    -1,    43,    -1,   137,    -1,    90,
1155 <      -1,   153,   218,   118,   215,    -1,   122,   218,   118,   215,
1156 <      -1,   121,   218,    99,   215,    -1,    -1,   136,   340,   217,
1157 <     341,   216,   215,    -1,   341,   342,    -1,   342,    -1,   343,
1158 <      -1,   344,    -1,   345,    -1,     1,   215,    -1,   120,   218,
1159 <     118,   215,    -1,    14,   218,   118,   215,    -1,    93,   218,
1160 <     118,   215,    -1,   201,   217,   347,   216,   215,    -1,   347,
1161 <     348,    -1,   348,    -1,   349,    -1,     1,    -1,    89,   218,
1162 <     118,   215,    -1,    -1,   149,   351,   217,   352,   216,   215,
1163 <      -1,   352,   353,    -1,   353,    -1,   354,    -1,   355,    -1,
1164 <     356,    -1,     1,   215,    -1,    89,   218,   118,   215,    -1,
1165 <     206,   218,   118,   215,    -1,    -1,   151,   357,   218,   358,
1166 <     215,    -1,   358,   219,   359,    -1,   359,    -1,    64,    -1,
1167 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,   197,    -1,
1168 <     136,    -1,   196,    -1,   180,    -1,   165,    -1,    -1,   150,
1169 <     361,   217,   362,   216,   215,    -1,   362,   363,    -1,   363,
1170 <      -1,   364,    -1,   365,    -1,     1,   215,    -1,    89,   218,
1171 <     118,   215,    -1,    -1,   151,   366,   218,   367,   215,    -1,
1172 <     367,   219,   368,    -1,   368,    -1,    64,    -1,   205,    -1,
1173 <     174,    -1,   194,    -1,   211,    -1,   197,    -1,   136,    -1,
1174 <     196,    -1,   180,    -1,   165,    -1,    -1,    18,   370,   217,
1175 <     371,   216,   215,    -1,   371,   372,    -1,   372,    -1,   373,
1176 <      -1,   374,    -1,   375,    -1,   376,    -1,   377,    -1,   379,
1177 <      -1,   378,    -1,   388,    -1,   380,    -1,   385,    -1,   386,
1178 <      -1,   387,    -1,   384,    -1,     1,   215,    -1,    89,   218,
1179 <     118,   215,    -1,    56,   218,   118,   215,    -1,   209,   218,
1180 <     118,   215,    -1,   144,   218,   118,   215,    -1,     3,   218,
1181 <     118,   215,    -1,   117,   218,    99,   215,    -1,     5,   218,
1182 <     178,   215,    -1,     5,   218,   179,   215,    -1,    -1,    36,
1183 <     381,   218,   382,   215,    -1,   382,   219,   383,    -1,   383,
1184 <      -1,     8,    -1,   191,    -1,    32,   218,   160,   215,    -1,
1185 <      58,   218,   118,   215,    -1,    68,   218,   118,   215,    -1,
1186 <      17,   218,   118,   215,    -1,   171,   218,   118,   215,    -1,
1187 <      -1,    62,   390,   217,   395,   216,   215,    -1,    -1,   151,
1188 <     392,   218,   393,   215,    -1,   393,   219,   394,    -1,   394,
1189 <      -1,   123,    -1,   395,   396,    -1,   396,    -1,   397,    -1,
1190 <     398,    -1,   391,    -1,     1,    -1,   206,   218,   118,   215,
1191 <      -1,   120,   218,   118,   215,    -1,    -1,    23,   400,   217,
1192 <     401,   216,   215,    -1,   401,   402,    -1,   402,    -1,   403,
1193 <      -1,   404,    -1,     1,    -1,    61,   218,   118,   215,    -1,
1194 <     120,   218,   118,   215,    -1,    34,   217,   406,   216,   215,
1195 <      -1,   406,   407,    -1,   407,    -1,   408,    -1,     1,    -1,
1196 <      61,   218,   118,   215,    -1,    -1,    38,   410,   217,   415,
1197 <     216,   215,    -1,    -1,   151,   412,   218,   413,   215,    -1,
1198 <     413,   219,   414,    -1,   414,    -1,   123,    -1,   415,   416,
1199 <      -1,   416,    -1,   417,    -1,   418,    -1,   411,    -1,     1,
1200 <      -1,    89,   218,   118,   215,    -1,   120,   218,   118,   215,
1201 <      -1,    39,   217,   420,   216,   215,    -1,   420,   421,    -1,
1202 <     421,    -1,   430,    -1,   431,    -1,   433,    -1,   434,    -1,
1203 <     435,    -1,   436,    -1,   437,    -1,   438,    -1,   439,    -1,
1204 <     440,    -1,   429,    -1,   442,    -1,   443,    -1,   458,    -1,
1205 <     445,    -1,   447,    -1,   449,    -1,   448,    -1,   452,    -1,
1206 <     446,    -1,   453,    -1,   454,    -1,   455,    -1,   456,    -1,
1207 <     457,    -1,   470,    -1,   459,    -1,   460,    -1,   461,    -1,
1208 <     466,    -1,   450,    -1,   451,    -1,   476,    -1,   474,    -1,
1209 <     475,    -1,   432,    -1,   465,    -1,   441,    -1,   463,    -1,
1210 <     464,    -1,   428,    -1,   423,    -1,   424,    -1,   425,    -1,
1211 <     426,    -1,   427,    -1,   444,    -1,   422,    -1,   462,    -1,
1212 <       1,    -1,    83,   218,    99,   215,    -1,    42,   218,   160,
1213 <     215,    -1,    41,   218,   224,   215,    -1,    44,   218,   224,
1214 <     215,    -1,    45,   218,    99,   215,    -1,    46,   218,    99,
1215 <     215,    -1,   148,   218,   160,   215,    -1,    63,   218,   224,
1216 <     215,    -1,    55,   218,   160,   215,    -1,    59,   218,   160,
1217 <     215,    -1,    28,   218,   160,   215,    -1,    35,   218,   160,
1218 <     215,    -1,     6,   218,   160,   215,    -1,    80,   218,   224,
1219 <     215,    -1,    79,   218,    99,   215,    -1,    72,   218,    99,
1220 <     215,    -1,     7,   218,   224,   215,    -1,   163,   218,   224,
1221 <     215,    -1,   162,   218,   224,   215,    -1,    50,   218,    99,
1222 <     215,    -1,    60,   218,   160,   215,    -1,   212,   218,   160,
1223 <     215,    -1,   155,   218,   160,   215,    -1,   158,   218,   160,
1224 <     215,    -1,   159,   218,   160,   215,    -1,   157,   218,   160,
1225 <     215,    -1,   157,   218,   161,   215,    -1,   156,   218,   160,
1226 <     215,    -1,   156,   218,   161,   215,    -1,   110,   218,   224,
1227 <     215,    -1,    12,   218,   224,   215,    -1,   103,   218,   160,
1228 <     215,    -1,   111,   218,   224,   215,    -1,   152,   218,   160,
1229 <     215,    -1,    97,   218,   160,   215,    -1,   204,   218,   160,
1230 <     215,    -1,   105,   218,   160,   215,    -1,    84,   218,   118,
1231 <     215,    -1,    29,   218,    99,   215,    -1,    82,   218,    99,
1232 <     215,    -1,   207,   218,   160,   215,    -1,    30,   218,   118,
1233 <     215,    -1,   202,   218,   118,   215,    -1,   114,   218,   160,
1234 <     215,    -1,    26,   218,   160,   215,    -1,   203,   218,   224,
1235 <     215,    -1,    -1,   107,   467,   218,   468,   215,    -1,   468,
1236 <     219,   469,    -1,   469,    -1,   166,    -1,   169,    -1,   170,
1237 <      -1,   172,    -1,   173,    -1,   176,    -1,    51,    -1,   189,
1238 <      -1,   182,    -1,   185,    -1,   193,    -1,   190,    -1,   175,
1239 <      -1,   183,    -1,   187,    -1,   177,    -1,   199,    -1,   167,
1240 <      -1,   168,    -1,   180,    -1,    -1,   104,   471,   218,   472,
1241 <     215,    -1,   472,   219,   473,    -1,   473,    -1,   166,    -1,
1242 <     169,    -1,   170,    -1,   172,    -1,   173,    -1,   176,    -1,
1243 <     189,    -1,    51,    -1,   182,    -1,   185,    -1,   193,    -1,
1244 <     190,    -1,   175,    -1,   183,    -1,   187,    -1,   177,    -1,
1245 <     199,    -1,   167,    -1,   168,    -1,   180,    -1,    85,   218,
1246 <      99,   215,    -1,    86,   218,    99,   215,    -1,    20,   218,
1247 <      99,   215,    -1,    14,   217,   478,   216,   215,    -1,   478,
1248 <     479,    -1,   479,    -1,   487,    -1,   482,    -1,   483,    -1,
1249 <     484,    -1,   485,    -1,   486,    -1,   488,    -1,   489,    -1,
1250 <     490,    -1,   481,    -1,   491,    -1,   492,    -1,   493,    -1,
1251 <     480,    -1,     1,    -1,    27,   218,   160,   215,    -1,   127,
1252 <     218,   160,   215,    -1,    66,   218,   224,   215,    -1,    67,
1253 <     218,   224,   215,    -1,    75,   218,    99,   215,    -1,    74,
1254 <     218,    99,   215,    -1,   119,   218,   160,   215,    -1,    73,
1255 <     218,    99,   215,    -1,    22,   218,    99,   215,    -1,    21,
1256 <     218,    99,   215,    -1,    95,   218,   160,   215,    -1,    96,
1257 <     218,   160,   215,    -1,   108,   218,    99,   215,    -1,   109,
1258 <     218,   224,   215,    -1,   145,   217,   495,   216,   215,    -1,
1259 <     495,   496,    -1,   496,    -1,   497,    -1,   498,    -1,   500,
1260 <      -1,   501,    -1,   499,    -1,   502,    -1,     1,    -1,    37,
1261 <     218,   160,   215,    -1,    54,   218,   160,   215,    -1,    52,
1262 <     218,   118,   215,    -1,    69,   218,   224,   215,    -1,    51,
1263 <     218,   160,   215,    -1,    53,   218,   160,   215,    -1
1073 >     228,     0,    -1,    -1,   228,   229,    -1,   263,    -1,   269,
1074 >      -1,   283,    -1,   482,    -1,   301,    -1,   324,    -1,   338,
1075 >      -1,   239,    -1,   498,    -1,   353,    -1,   360,    -1,   364,
1076 >      -1,   374,    -1,   383,    -1,   403,    -1,   409,    -1,   415,
1077 >      -1,   425,    -1,   419,    -1,   234,    -1,     1,   222,    -1,
1078 >       1,   223,    -1,    -1,   231,    -1,   105,   230,    -1,   105,
1079 >     141,   230,    -1,   105,   142,   230,    -1,   105,   143,   230,
1080 >      -1,   105,   144,   230,    -1,   105,   145,   230,    -1,   105,
1081 >     146,   230,    -1,   105,   147,   230,    -1,    -1,   233,    -1,
1082 >     105,   232,    -1,   105,     9,   232,    -1,   105,    10,   232,
1083 >      -1,   105,    11,   232,    -1,    95,   224,   235,   223,   222,
1084 >      -1,   235,   236,    -1,   236,    -1,   237,    -1,   238,    -1,
1085 >       1,   222,    -1,    94,   225,   123,   222,    -1,   119,   225,
1086 >     123,   222,    -1,   151,   224,   240,   223,   222,    -1,   240,
1087 >     241,    -1,   241,    -1,   252,    -1,   257,    -1,   262,    -1,
1088 >     254,    -1,   255,    -1,   256,    -1,   259,    -1,   260,    -1,
1089 >     261,    -1,   250,    -1,   249,    -1,   258,    -1,   253,    -1,
1090 >     248,    -1,   242,    -1,   243,    -1,   251,    -1,     1,   222,
1091 >      -1,   135,   225,   244,   222,    -1,   136,   225,   246,   222,
1092 >      -1,   244,   226,   245,    -1,   245,    -1,   137,    -1,   138,
1093 >      -1,   246,   226,   247,    -1,   247,    -1,   137,    -1,   138,
1094 >      -1,   133,   225,   123,   222,    -1,   131,   225,   123,   222,
1095 >      -1,   134,   225,   123,   222,    -1,   176,   225,   123,   222,
1096 >      -1,    96,   225,   123,   222,    -1,   152,   225,   123,   222,
1097 >      -1,    24,   225,   123,   222,    -1,    99,   225,   123,   222,
1098 >      -1,    98,   225,   123,   222,    -1,   216,   225,   123,   222,
1099 >      -1,   217,   225,   123,   222,    -1,   186,   225,   105,   222,
1100 >      -1,    82,   225,   105,   222,    -1,    86,   225,   105,   222,
1101 >      -1,    58,   225,   165,   222,    -1,     4,   224,   264,   223,
1102 >     222,    -1,   264,   265,    -1,   265,    -1,   266,    -1,   268,
1103 >      -1,   267,    -1,     1,   222,    -1,    96,   225,   123,   222,
1104 >      -1,    31,   225,   123,   222,    -1,    24,   225,   123,   222,
1105 >      -1,    72,   224,   270,   223,   222,    -1,   270,   271,    -1,
1106 >     271,    -1,   272,    -1,   273,    -1,     1,   222,    -1,   215,
1107 >     225,   165,   222,    -1,    -1,   274,   221,   224,   275,   223,
1108 >     222,    -1,   275,   276,    -1,   276,    -1,   277,    -1,   279,
1109 >      -1,   278,    -1,     1,   222,    -1,    96,   225,   123,   222,
1110 >      -1,   220,   225,   233,   222,    -1,   220,   225,   201,   222,
1111 >      -1,    -1,   156,   280,   225,   281,   222,    -1,   281,   226,
1112 >     282,    -1,   282,    -1,   213,    -1,   108,    -1,    40,    -1,
1113 >     179,    -1,    65,    -1,    63,    -1,   178,    -1,    -1,   108,
1114 >     284,   224,   285,   223,   222,    -1,   285,   286,    -1,   286,
1115 >      -1,   287,    -1,   288,    -1,   289,    -1,   293,    -1,   292,
1116 >      -1,   290,    -1,   291,    -1,   297,    -1,     1,   222,    -1,
1117 >      96,   225,   123,   222,    -1,   213,   225,   123,   222,    -1,
1118 >     118,   225,   123,   222,    -1,    32,   225,   165,   222,    -1,
1119 >     132,   225,   123,   222,    -1,    17,   225,   123,   222,    -1,
1120 >      -1,   198,   294,   225,   295,   222,    -1,   295,   226,   296,
1121 >      -1,   296,    -1,   171,    -1,   174,    -1,   175,    -1,   177,
1122 >      -1,   178,    -1,   181,    -1,    51,    -1,   195,    -1,   187,
1123 >      -1,   191,    -1,   199,    -1,   196,    -1,   180,    -1,   189,
1124 >      -1,   193,    -1,   182,    -1,   205,    -1,   172,    -1,   173,
1125 >      -1,   185,    -1,   188,    -1,    -1,    36,   298,   225,   299,
1126 >     222,    -1,   299,   226,   300,    -1,   300,    -1,    47,    -1,
1127 >     129,    -1,    65,    -1,   212,    -1,   179,    -1,   200,    -1,
1128 >     218,    -1,    40,    -1,    25,    -1,   207,    -1,   128,    -1,
1129 >       4,    -1,   189,    -1,   204,    -1,   112,    -1,   130,    -1,
1130 >     194,    -1,    94,    -1,    -1,    17,   302,   224,   303,   223,
1131 >     222,    -1,   303,   304,    -1,   304,    -1,   305,    -1,   315,
1132 >      -1,   316,    -1,   306,    -1,   317,    -1,   307,    -1,   308,
1133 >      -1,   309,    -1,   310,    -1,   311,    -1,   312,    -1,   313,
1134 >      -1,   314,    -1,   318,    -1,   319,    -1,   320,    -1,     1,
1135 >     222,    -1,    96,   225,   123,   222,    -1,   121,   225,   231,
1136 >     222,    -1,   107,   225,   105,   222,    -1,    19,   225,   231,
1137 >     222,    -1,    84,   225,   105,   222,    -1,    78,   225,   105,
1138 >     222,    -1,    80,   225,   105,   222,    -1,    79,   225,   105,
1139 >     222,    -1,   148,   225,   233,   222,    -1,   190,   225,   233,
1140 >     222,    -1,    15,   225,   105,   222,    -1,    16,   225,   105,
1141 >     222,    -1,   106,   225,   105,   222,    -1,    90,   225,   231,
1142 >     222,    -1,    91,   225,   231,   222,    -1,    -1,    36,   321,
1143 >     225,   322,   222,    -1,   322,   226,   323,    -1,   323,    -1,
1144 >      92,    -1,    93,    -1,    -1,    71,   325,   224,   330,   223,
1145 >     222,    -1,    -1,    36,   327,   225,   328,   222,    -1,   328,
1146 >     226,   329,    -1,   329,    -1,   197,    -1,    51,    -1,   192,
1147 >      -1,   330,   331,    -1,   331,    -1,   332,    -1,   326,    -1,
1148 >     336,    -1,   337,    -1,     1,   222,    -1,    -1,   122,   225,
1149 >     334,   333,   222,    -1,   334,   226,   335,    -1,   335,    -1,
1150 >     105,    -1,   105,   169,   105,    -1,    62,   225,   123,   222,
1151 >      -1,    57,   225,   123,   222,    -1,    -1,    48,   339,   224,
1152 >     340,   223,   222,    -1,   340,   341,    -1,   341,    -1,   342,
1153 >      -1,   343,    -1,   344,    -1,   346,    -1,   350,    -1,   351,
1154 >      -1,   352,    -1,   345,    -1,     1,   222,    -1,   213,   225,
1155 >     123,   222,    -1,   118,   225,   123,   222,    -1,    17,   225,
1156 >     123,   222,    -1,    32,   225,   165,   222,    -1,    -1,    36,
1157 >     347,   225,   348,   222,    -1,   348,   226,   349,    -1,   349,
1158 >      -1,   159,    -1,    33,    -1,    66,    -1,    49,    -1,    13,
1159 >      -1,   104,    -1,    43,    -1,   140,    -1,   206,    -1,    97,
1160 >      -1,   158,   225,   123,   222,    -1,   127,   225,   123,   222,
1161 >      -1,   126,   225,   105,   222,    -1,    -1,   139,   354,   224,
1162 >     355,   223,   222,    -1,   355,   356,    -1,   356,    -1,   357,
1163 >      -1,   358,    -1,   359,    -1,     1,   222,    -1,    73,   225,
1164 >     123,   222,    -1,   125,   225,   123,   222,    -1,    34,   225,
1165 >     123,   222,    -1,   208,   224,   361,   223,   222,    -1,   361,
1166 >     362,    -1,   362,    -1,   363,    -1,     1,    -1,    96,   225,
1167 >     123,   222,    -1,    -1,   154,   365,   224,   366,   223,   222,
1168 >      -1,   366,   367,    -1,   367,    -1,   368,    -1,   369,    -1,
1169 >     370,    -1,     1,   222,    -1,    96,   225,   123,   222,    -1,
1170 >     213,   225,   123,   222,    -1,    -1,   156,   371,   225,   372,
1171 >     222,    -1,   372,   226,   373,    -1,   373,    -1,    65,    -1,
1172 >     212,    -1,   179,    -1,   200,    -1,   218,    -1,   203,    -1,
1173 >     139,    -1,   202,    -1,   185,    -1,   170,    -1,    -1,   155,
1174 >     375,   224,   376,   223,   222,    -1,   376,   377,    -1,   377,
1175 >      -1,   378,    -1,   379,    -1,     1,   222,    -1,    96,   225,
1176 >     123,   222,    -1,    -1,   156,   380,   225,   381,   222,    -1,
1177 >     381,   226,   382,    -1,   382,    -1,    65,    -1,   212,    -1,
1178 >     179,    -1,   200,    -1,   218,    -1,   203,    -1,   139,    -1,
1179 >     202,    -1,   185,    -1,   170,    -1,    -1,    18,   384,   224,
1180 >     385,   223,   222,    -1,   385,   386,    -1,   386,    -1,   387,
1181 >      -1,   388,    -1,   389,    -1,   390,    -1,   391,    -1,   393,
1182 >      -1,   392,    -1,   402,    -1,   394,    -1,   399,    -1,   400,
1183 >      -1,   401,    -1,   398,    -1,     1,   222,    -1,    96,   225,
1184 >     123,   222,    -1,    57,   225,   123,   222,    -1,   216,   225,
1185 >     123,   222,    -1,   149,   225,   123,   222,    -1,     3,   225,
1186 >     123,   222,    -1,   122,   225,   105,   222,    -1,     5,   225,
1187 >     183,   222,    -1,     5,   225,   184,   222,    -1,    -1,    36,
1188 >     395,   225,   396,   222,    -1,   396,   226,   397,    -1,   397,
1189 >      -1,     8,    -1,   197,    -1,    32,   225,   165,   222,    -1,
1190 >      59,   225,   123,   222,    -1,    69,   225,   123,   222,    -1,
1191 >      17,   225,   123,   222,    -1,   176,   225,   123,   222,    -1,
1192 >      -1,    63,   404,   224,   405,   223,   222,    -1,   405,   406,
1193 >      -1,   406,    -1,   407,    -1,   408,    -1,     1,    -1,   213,
1194 >     225,   123,   222,    -1,   125,   225,   123,   222,    -1,    -1,
1195 >      23,   410,   224,   411,   223,   222,    -1,   411,   412,    -1,
1196 >     412,    -1,   413,    -1,   414,    -1,     1,    -1,    62,   225,
1197 >     123,   222,    -1,   125,   225,   123,   222,    -1,    34,   224,
1198 >     416,   223,   222,    -1,   416,   417,    -1,   417,    -1,   418,
1199 >      -1,     1,    -1,    62,   225,   123,   222,    -1,    -1,    38,
1200 >     420,   224,   421,   223,   222,    -1,   421,   422,    -1,   422,
1201 >      -1,   423,    -1,   424,    -1,     1,    -1,    96,   225,   123,
1202 >     222,    -1,   125,   225,   123,   222,    -1,    39,   224,   426,
1203 >     223,   222,    -1,   426,   427,    -1,   427,    -1,   436,    -1,
1204 >     437,    -1,   439,    -1,   440,    -1,   441,    -1,   442,    -1,
1205 >     443,    -1,   444,    -1,   445,    -1,   446,    -1,   435,    -1,
1206 >     448,    -1,   449,    -1,   463,    -1,   451,    -1,   453,    -1,
1207 >     455,    -1,   454,    -1,   458,    -1,   452,    -1,   459,    -1,
1208 >     460,    -1,   461,    -1,   462,    -1,   475,    -1,   464,    -1,
1209 >     465,    -1,   466,    -1,   471,    -1,   456,    -1,   457,    -1,
1210 >     481,    -1,   479,    -1,   480,    -1,   438,    -1,   470,    -1,
1211 >     447,    -1,   468,    -1,   469,    -1,   434,    -1,   429,    -1,
1212 >     430,    -1,   431,    -1,   432,    -1,   433,    -1,   450,    -1,
1213 >     428,    -1,   467,    -1,     1,    -1,    87,   225,   105,   222,
1214 >      -1,    42,   225,   165,   222,    -1,    41,   225,   231,   222,
1215 >      -1,    44,   225,   231,   222,    -1,    45,   225,   105,   222,
1216 >      -1,    46,   225,   105,   222,    -1,   153,   225,   165,   222,
1217 >      -1,    64,   225,   231,   222,    -1,    56,   225,   165,   222,
1218 >      -1,    60,   225,   165,   222,    -1,    28,   225,   165,   222,
1219 >      -1,    35,   225,   165,   222,    -1,     6,   225,   165,   222,
1220 >      -1,    83,   225,   231,   222,    -1,    81,   225,   105,   222,
1221 >      -1,    74,   225,   105,   222,    -1,     7,   225,   231,   222,
1222 >      -1,   168,   225,   231,   222,    -1,   167,   225,   231,   222,
1223 >      -1,    50,   225,   105,   222,    -1,    61,   225,   165,   222,
1224 >      -1,   219,   225,   165,   222,    -1,   160,   225,   165,   222,
1225 >      -1,   163,   225,   165,   222,    -1,   164,   225,   165,   222,
1226 >      -1,   162,   225,   165,   222,    -1,   162,   225,   166,   222,
1227 >      -1,   161,   225,   165,   222,    -1,   161,   225,   166,   222,
1228 >      -1,   116,   225,   231,   222,    -1,    12,   225,   231,   222,
1229 >      -1,   109,   225,   165,   222,    -1,   117,   225,   231,   222,
1230 >      -1,   157,   225,   165,   222,    -1,   103,   225,   165,   222,
1231 >      -1,   211,   225,   165,   222,    -1,   111,   225,   165,   222,
1232 >      -1,    29,   225,   105,   222,    -1,    85,   225,   105,   222,
1233 >      -1,   214,   225,   165,   222,    -1,    30,   225,   123,   222,
1234 >      -1,   209,   225,   123,   222,    -1,   120,   225,   165,   222,
1235 >      -1,    26,   225,   165,   222,    -1,   210,   225,   231,   222,
1236 >      -1,    -1,   113,   472,   225,   473,   222,    -1,   473,   226,
1237 >     474,    -1,   474,    -1,   171,    -1,   174,    -1,   175,    -1,
1238 >     177,    -1,   178,    -1,   181,    -1,    51,    -1,   195,    -1,
1239 >     187,    -1,   191,    -1,   199,    -1,   196,    -1,   180,    -1,
1240 >     189,    -1,   193,    -1,   182,    -1,   205,    -1,   172,    -1,
1241 >     173,    -1,   185,    -1,    -1,   110,   476,   225,   477,   222,
1242 >      -1,   477,   226,   478,    -1,   478,    -1,   171,    -1,   174,
1243 >      -1,   175,    -1,   177,    -1,   178,    -1,   181,    -1,   195,
1244 >      -1,    51,    -1,   187,    -1,   191,    -1,   199,    -1,   196,
1245 >      -1,   180,    -1,   189,    -1,   193,    -1,   182,    -1,   205,
1246 >      -1,   172,    -1,   173,    -1,   185,    -1,   188,    -1,    88,
1247 >     225,   105,   222,    -1,    89,   225,   105,   222,    -1,    20,
1248 >     225,   105,   222,    -1,    14,   224,   483,   223,   222,    -1,
1249 >     483,   484,    -1,   484,    -1,   491,    -1,   486,    -1,   487,
1250 >      -1,   488,    -1,   489,    -1,   490,    -1,   492,    -1,   493,
1251 >      -1,   494,    -1,   495,    -1,   496,    -1,   497,    -1,   485,
1252 >      -1,     1,    -1,    27,   225,   165,   222,    -1,    67,   225,
1253 >     231,   222,    -1,    68,   225,   231,   222,    -1,    77,   225,
1254 >     105,   222,    -1,    76,   225,   105,   222,    -1,   124,   225,
1255 >     165,   222,    -1,    75,   225,   105,   222,    -1,    22,   225,
1256 >     105,   222,    -1,    21,   225,   105,   222,    -1,   101,   225,
1257 >     165,   222,    -1,   102,   225,   165,   222,    -1,   114,   225,
1258 >     105,   222,    -1,   115,   225,   231,   222,    -1,   150,   224,
1259 >     499,   223,   222,    -1,   499,   500,    -1,   500,    -1,   501,
1260 >      -1,   502,    -1,   503,    -1,   505,    -1,   506,    -1,   504,
1261 >      -1,   507,    -1,     1,    -1,    37,   225,   165,   222,    -1,
1262 >      54,   225,   165,   222,    -1,    55,   225,   165,   222,    -1,
1263 >      52,   225,   123,   222,    -1,    70,   225,   231,   222,    -1,
1264 >      51,   225,   165,   222,    -1,    53,   225,   165,   222,    -1
1265   };
1266  
1267   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1268   static const yytype_uint16 yyrline[] =
1269   {
1270 <       0,   330,   330,   331,   334,   335,   336,   337,   338,   339,
1271 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1272 <     350,   351,   352,   353,   354,   355,   359,   359,   360,   364,
1273 <     368,   372,   376,   380,   386,   386,   387,   388,   389,   390,
1274 <     397,   400,   400,   401,   401,   401,   403,   409,   416,   418,
1275 <     418,   419,   419,   420,   420,   421,   421,   422,   422,   423,
1276 <     423,   424,   424,   425,   425,   426,   427,   430,   431,   433,
1277 <     433,   434,   440,   448,   448,   449,   455,   463,   502,   561,
1278 <     589,   597,   612,   627,   636,   650,   659,   687,   717,   740,
1279 <     749,   751,   751,   752,   752,   753,   753,   755,   764,   773,
1280 <     785,   786,   786,   788,   788,   789,   791,   798,   798,   808,
1281 <     809,   811,   811,   812,   812,   814,   819,   822,   828,   827,
1282 <     833,   833,   834,   838,   842,   846,   850,   854,   858,   869,
1283 <     868,   966,   966,   967,   967,   967,   968,   968,   968,   969,
1284 <     969,   969,   971,   980,  1017,  1029,  1040,  1082,  1092,  1091,
1285 <    1097,  1097,  1098,  1102,  1106,  1110,  1114,  1118,  1122,  1126,
1286 <    1130,  1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,
1287 <    1170,  1174,  1181,  1180,  1186,  1186,  1187,  1191,  1195,  1199,
1288 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1289 <    1243,  1247,  1251,  1255,  1259,  1270,  1269,  1319,  1319,  1320,
1290 <    1321,  1321,  1322,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
1291 <    1330,  1331,  1331,  1332,  1334,  1343,  1349,  1355,  1361,  1367,
1292 <    1373,  1379,  1385,  1391,  1397,  1404,  1410,  1416,  1426,  1425,
1293 <    1442,  1441,  1446,  1446,  1447,  1451,  1455,  1463,  1463,  1464,
1294 <    1464,  1464,  1464,  1464,  1466,  1466,  1468,  1468,  1470,  1484,
1295 <    1504,  1513,  1526,  1525,  1594,  1594,  1595,  1595,  1595,  1595,
1296 <    1596,  1596,  1596,  1597,  1597,  1599,  1634,  1647,  1656,  1668,
1297 <    1667,  1671,  1671,  1672,  1676,  1680,  1684,  1688,  1692,  1696,
1298 <    1700,  1704,  1710,  1729,  1739,  1753,  1752,  1768,  1768,  1769,
1299 <    1769,  1769,  1769,  1771,  1780,  1795,  1808,  1810,  1810,  1811,
1300 <    1811,  1813,  1829,  1828,  1844,  1844,  1845,  1845,  1845,  1845,
1301 <    1847,  1856,  1879,  1878,  1884,  1884,  1885,  1889,  1893,  1897,
1302 <    1901,  1905,  1909,  1913,  1917,  1921,  1931,  1930,  1947,  1947,
1303 <    1948,  1948,  1948,  1950,  1957,  1956,  1962,  1962,  1963,  1967,
1304 <    1971,  1975,  1979,  1983,  1987,  1991,  1995,  1999,  2009,  2008,
1305 <    2059,  2059,  2060,  2060,  2060,  2061,  2061,  2062,  2062,  2062,
1306 <    2063,  2063,  2063,  2064,  2064,  2065,  2067,  2076,  2085,  2111,
1307 <    2129,  2147,  2153,  2157,  2166,  2165,  2169,  2169,  2170,  2174,
1308 <    2180,  2191,  2202,  2213,  2222,  2241,  2240,  2308,  2307,  2311,
1309 <    2311,  2312,  2318,  2318,  2319,  2319,  2319,  2319,  2321,  2340,
1310 <    2350,  2349,  2373,  2373,  2374,  2374,  2374,  2376,  2382,  2391,
1311 <    2393,  2393,  2394,  2394,  2396,  2415,  2414,  2463,  2462,  2466,
1312 <    2466,  2467,  2473,  2473,  2474,  2474,  2474,  2474,  2476,  2482,
1313 <    2491,  2494,  2494,  2495,  2495,  2496,  2496,  2497,  2497,  2498,
1314 <    2498,  2499,  2499,  2500,  2501,  2502,  2502,  2503,  2503,  2504,
1315 <    2504,  2505,  2505,  2506,  2506,  2507,  2507,  2508,  2509,  2509,
1316 <    2510,  2510,  2511,  2511,  2512,  2512,  2513,  2513,  2514,  2515,
1317 <    2515,  2516,  2517,  2518,  2518,  2519,  2519,  2520,  2521,  2522,
1318 <    2523,  2523,  2524,  2527,  2532,  2538,  2544,  2550,  2555,  2560,
1319 <    2565,  2570,  2575,  2580,  2585,  2590,  2595,  2600,  2605,  2610,
1320 <    2615,  2620,  2626,  2637,  2642,  2647,  2652,  2657,  2662,  2665,
1321 <    2670,  2673,  2678,  2683,  2688,  2693,  2698,  2703,  2708,  2713,
1322 <    2718,  2729,  2734,  2739,  2744,  2753,  2762,  2767,  2772,  2778,
1323 <    2777,  2782,  2782,  2783,  2786,  2789,  2792,  2795,  2798,  2801,
1324 <    2804,  2807,  2810,  2813,  2816,  2819,  2822,  2825,  2828,  2831,
1325 <    2834,  2837,  2840,  2846,  2845,  2850,  2850,  2851,  2854,  2857,
1326 <    2860,  2863,  2866,  2869,  2872,  2875,  2878,  2881,  2884,  2887,
1327 <    2890,  2893,  2896,  2899,  2902,  2905,  2908,  2913,  2918,  2923,
1328 <    2932,  2935,  2935,  2936,  2937,  2937,  2938,  2938,  2939,  2939,
1329 <    2940,  2941,  2941,  2942,  2943,  2943,  2944,  2944,  2946,  2951,
1330 <    2956,  2961,  2966,  2971,  2976,  2981,  2986,  2991,  2996,  3001,
1331 <    3006,  3011,  3019,  3022,  3022,  3023,  3023,  3024,  3025,  3025,
1332 <    3026,  3027,  3029,  3035,  3041,  3050,  3064,  3070
1270 >       0,   363,   363,   364,   367,   368,   369,   370,   371,   372,
1271 >     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
1272 >     383,   384,   385,   386,   387,   388,   392,   392,   393,   397,
1273 >     401,   405,   409,   413,   417,   421,   427,   427,   428,   429,
1274 >     430,   431,   438,   441,   441,   442,   442,   442,   444,   450,
1275 >     457,   459,   459,   460,   460,   461,   461,   462,   462,   463,
1276 >     463,   464,   464,   465,   465,   466,   466,   467,   467,   468,
1277 >     469,   472,   473,   475,   475,   476,   482,   490,   490,   491,
1278 >     497,   505,   547,   606,   634,   642,   657,   672,   681,   695,
1279 >     704,   732,   762,   787,   809,   831,   840,   842,   842,   843,
1280 >     843,   844,   844,   846,   855,   864,   876,   877,   877,   879,
1281 >     879,   880,   882,   889,   889,   902,   903,   905,   905,   906,
1282 >     906,   908,   916,   919,   925,   924,   930,   930,   931,   935,
1283 >     939,   943,   947,   951,   955,   966,   965,  1042,  1042,  1043,
1284 >    1043,  1043,  1044,  1044,  1044,  1045,  1045,  1045,  1047,  1053,
1285 >    1059,  1065,  1076,  1082,  1089,  1088,  1094,  1094,  1095,  1099,
1286 >    1103,  1107,  1111,  1115,  1119,  1123,  1127,  1131,  1135,  1139,
1287 >    1143,  1147,  1151,  1155,  1159,  1163,  1167,  1171,  1175,  1182,
1288 >    1181,  1187,  1187,  1188,  1192,  1196,  1200,  1204,  1208,  1212,
1289 >    1216,  1220,  1224,  1228,  1232,  1236,  1240,  1244,  1248,  1252,
1290 >    1256,  1267,  1266,  1327,  1327,  1328,  1329,  1329,  1330,  1331,
1291 >    1332,  1333,  1334,  1335,  1336,  1337,  1338,  1338,  1339,  1340,
1292 >    1341,  1342,  1344,  1350,  1356,  1362,  1368,  1374,  1380,  1386,
1293 >    1392,  1398,  1405,  1411,  1417,  1423,  1432,  1442,  1441,  1447,
1294 >    1447,  1448,  1452,  1463,  1462,  1469,  1468,  1473,  1473,  1474,
1295 >    1478,  1482,  1488,  1488,  1489,  1489,  1489,  1489,  1489,  1491,
1296 >    1491,  1493,  1493,  1495,  1509,  1529,  1535,  1545,  1544,  1586,
1297 >    1586,  1587,  1587,  1587,  1587,  1588,  1588,  1588,  1589,  1589,
1298 >    1591,  1597,  1603,  1609,  1621,  1620,  1626,  1626,  1627,  1631,
1299 >    1635,  1639,  1643,  1647,  1651,  1655,  1659,  1663,  1669,  1683,
1300 >    1692,  1706,  1705,  1720,  1720,  1721,  1721,  1721,  1721,  1723,
1301 >    1729,  1735,  1745,  1747,  1747,  1748,  1748,  1750,  1766,  1765,
1302 >    1790,  1790,  1791,  1791,  1791,  1791,  1793,  1799,  1819,  1818,
1303 >    1824,  1824,  1825,  1829,  1833,  1837,  1841,  1845,  1849,  1853,
1304 >    1857,  1861,  1871,  1870,  1891,  1891,  1892,  1892,  1892,  1894,
1305 >    1901,  1900,  1906,  1906,  1907,  1911,  1915,  1919,  1923,  1927,
1306 >    1931,  1935,  1939,  1943,  1953,  1952,  2018,  2018,  2019,  2019,
1307 >    2019,  2020,  2020,  2021,  2021,  2021,  2022,  2022,  2022,  2023,
1308 >    2023,  2024,  2026,  2032,  2038,  2044,  2057,  2070,  2076,  2080,
1309 >    2089,  2088,  2093,  2093,  2094,  2098,  2104,  2115,  2121,  2127,
1310 >    2133,  2149,  2148,  2174,  2174,  2175,  2175,  2175,  2177,  2197,
1311 >    2207,  2206,  2233,  2233,  2234,  2234,  2234,  2236,  2242,  2251,
1312 >    2253,  2253,  2254,  2254,  2256,  2274,  2273,  2296,  2296,  2297,
1313 >    2297,  2297,  2299,  2305,  2314,  2317,  2317,  2318,  2318,  2319,
1314 >    2319,  2320,  2320,  2321,  2321,  2322,  2322,  2323,  2324,  2325,
1315 >    2325,  2326,  2326,  2327,  2327,  2328,  2328,  2329,  2329,  2330,
1316 >    2330,  2331,  2331,  2332,  2332,  2333,  2333,  2334,  2334,  2335,
1317 >    2335,  2336,  2337,  2337,  2338,  2339,  2340,  2340,  2341,  2341,
1318 >    2342,  2343,  2344,  2345,  2345,  2346,  2349,  2354,  2360,  2366,
1319 >    2372,  2377,  2382,  2387,  2392,  2397,  2402,  2407,  2412,  2417,
1320 >    2422,  2427,  2432,  2437,  2442,  2448,  2459,  2464,  2469,  2474,
1321 >    2479,  2484,  2487,  2492,  2495,  2500,  2505,  2510,  2515,  2520,
1322 >    2525,  2530,  2535,  2540,  2545,  2550,  2555,  2564,  2573,  2578,
1323 >    2583,  2589,  2588,  2593,  2593,  2594,  2597,  2600,  2603,  2606,
1324 >    2609,  2612,  2615,  2618,  2621,  2624,  2627,  2630,  2633,  2636,
1325 >    2639,  2642,  2645,  2648,  2651,  2657,  2656,  2661,  2661,  2662,
1326 >    2665,  2668,  2671,  2674,  2677,  2680,  2683,  2686,  2689,  2692,
1327 >    2695,  2698,  2701,  2704,  2707,  2710,  2713,  2716,  2719,  2722,
1328 >    2727,  2732,  2737,  2746,  2749,  2749,  2750,  2751,  2751,  2752,
1329 >    2752,  2753,  2753,  2754,  2755,  2756,  2757,  2757,  2758,  2758,
1330 >    2760,  2765,  2770,  2775,  2780,  2785,  2790,  2795,  2800,  2805,
1331 >    2810,  2815,  2820,  2828,  2831,  2831,  2832,  2832,  2833,  2834,
1332 >    2835,  2835,  2836,  2837,  2839,  2845,  2851,  2857,  2866,  2880,
1333 >    2886
1334   };
1335   #endif
1336  
# Line 1296 | Line 1351 | static const char *const yytname[] =
1351    "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1352    "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1353    "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1354 <  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1355 <  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1356 <  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1357 <  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1358 <  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1359 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1360 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1361 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1362 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1363 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1354 >  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES",
1355 >  "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS",
1356 >  "INVISIBLE_ON_CONNECT", "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1357 >  "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1358 >  "LINKS_DELAY", "LISTEN", "T_LOG", "MASK", "MAX_ACCEPT", "MAX_BANS",
1359 >  "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1360 >  "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME",
1361 >  "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH",
1362 >  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE",
1363 >  "RANDOM_IDLE", "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME",
1364 >  "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1365    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1366    "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1367    "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1368    "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1369    "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1370 <  "PING_TIME", "PING_WARNING", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON",
1371 <  "REDIRPORT", "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1372 <  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1373 <  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1374 <  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1375 <  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1376 <  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1377 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1378 <  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1379 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1380 <  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1381 <  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1382 <  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1383 <  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1384 <  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1385 <  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1386 <  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1387 <  "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1388 <  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1389 <  "USE_LOGGING", "VHOST", "VHOST6", "XLINE", "WARN_NO_NLINE", "T_SIZE",
1390 <  "T_FILE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1391 <  "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1392 <  "modules_entry", "modules_items", "modules_item", "modules_module",
1337 <  "modules_path", "serverinfo_entry", "serverinfo_items",
1370 >  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1371 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RSA_PRIVATE_KEY_FILE",
1372 >  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE",
1373 >  "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1",
1374 >  "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1375 >  "MONTHS", "YEARS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO",
1376 >  "IRCD_SID", "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE",
1377 >  "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED",
1378 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1379 >  "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1380 >  "TWODOTS", "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1381 >  "T_CCONN_FULL", "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE",
1382 >  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1383 >  "T_MAX_CLIENTS", "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ",
1384 >  "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY",
1385 >  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1386 >  "T_UNXLINE", "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART",
1387 >  "T_SERVICE", "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD",
1388 >  "UNKLINE", "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1389 >  "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1390 >  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1391 >  "sizespec", "modules_entry", "modules_items", "modules_item",
1392 >  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1393    "serverinfo_item", "serverinfo_ssl_client_method",
1394    "serverinfo_ssl_server_method", "client_method_types",
1395    "client_method_type_item", "server_method_types",
# Line 1343 | Line 1398 | static const char *const yytname[] =
1398    "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1399    "serverinfo_description", "serverinfo_network_name",
1400    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1401 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1402 <  "admin_item", "admin_name", "admin_email", "admin_description",
1403 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1404 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1405 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1406 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1407 <  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1408 <  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1409 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1410 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1411 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1412 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1413 <  "class_connectfreq", "class_max_number", "class_max_global",
1414 <  "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1415 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1416 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1417 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1418 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1419 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1420 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1421 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1422 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1423 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1424 <  "service_entry", "service_items", "service_item", "service_name",
1425 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1426 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1427 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1428 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1429 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1401 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1402 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1403 >  "admin_items", "admin_item", "admin_name", "admin_email",
1404 >  "admin_description", "logging_entry", "logging_items", "logging_item",
1405 >  "logging_use_logging", "logging_file_entry", "$@1", "logging_file_items",
1406 >  "logging_file_item", "logging_file_name", "logging_file_size",
1407 >  "logging_file_type", "$@2", "logging_file_type_items",
1408 >  "logging_file_type_item", "oper_entry", "$@3", "oper_items", "oper_item",
1409 >  "oper_name", "oper_user", "oper_password", "oper_encrypted",
1410 >  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@4",
1411 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@5",
1412 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@6",
1413 >  "class_items", "class_item", "class_name", "class_ping_time",
1414 >  "class_number_per_ip", "class_connectfreq", "class_max_number",
1415 >  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1416 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1417 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1418 >  "class_flags", "$@7", "class_flags_items", "class_flags_item",
1419 >  "listen_entry", "$@8", "listen_flags", "$@9", "listen_flags_items",
1420 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1421 >  "$@10", "port_items", "port_item", "listen_address", "listen_host",
1422 >  "auth_entry", "$@11", "auth_items", "auth_item", "auth_user",
1423 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@12",
1424 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1425 >  "auth_redir_port", "resv_entry", "$@13", "resv_items", "resv_item",
1426 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1427 >  "service_items", "service_item", "service_name", "shared_entry", "$@14",
1428 >  "shared_items", "shared_item", "shared_name", "shared_user",
1429 >  "shared_type", "$@15", "shared_types", "shared_type_item",
1430 >  "cluster_entry", "$@16", "cluster_items", "cluster_item", "cluster_name",
1431 >  "cluster_type", "$@17", "cluster_types", "cluster_type_item",
1432 >  "connect_entry", "$@18", "connect_items", "connect_item", "connect_name",
1433    "connect_host", "connect_vhost", "connect_send_password",
1434    "connect_accept_password", "connect_port", "connect_aftype",
1435 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1435 >  "connect_flags", "$@19", "connect_flags_items", "connect_flags_item",
1436    "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1437 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1438 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1439 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1440 <  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1441 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1442 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1443 <  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1386 <  "general_entry", "general_items", "general_item", "general_max_watch",
1387 <  "general_gline_enable", "general_gline_duration",
1437 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@20",
1438 >  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1439 >  "$@21", "deny_items", "deny_item", "deny_ip", "deny_reason",
1440 >  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1441 >  "gecos_entry", "$@22", "gecos_items", "gecos_item", "gecos_name",
1442 >  "gecos_reason", "general_entry", "general_items", "general_item",
1443 >  "general_max_watch", "general_gline_enable", "general_gline_duration",
1444    "general_gline_request_duration", "general_gline_min_cidr",
1445    "general_gline_min_cidr6", "general_tkline_expire_notices",
1446    "general_kill_chase_time_limit", "general_hide_spoof_ips",
# Line 1401 | Line 1457 | static const char *const yytname[] =
1457    "general_opers_bypass_callerid", "general_pace_wait_simple",
1458    "general_short_motd", "general_no_oper_flood",
1459    "general_true_no_oper_flood", "general_oper_pass_resv",
1460 <  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1461 <  "general_use_egd", "general_egdpool_path", "general_services_name",
1462 <  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1463 <  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1464 <  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1465 <  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1466 <  "general_default_floodcount", "channel_entry", "channel_items",
1467 <  "channel_item", "channel_disable_fake_channels",
1412 <  "channel_restrict_channels", "channel_knock_delay",
1460 >  "general_dots_in_ident", "general_max_targets", "general_use_egd",
1461 >  "general_egdpool_path", "general_services_name", "general_ping_cookie",
1462 >  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1463 >  "$@23", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1464 >  "$@24", "umode_items", "umode_item", "general_min_nonwildcard",
1465 >  "general_min_nonwildcard_simple", "general_default_floodcount",
1466 >  "channel_entry", "channel_items", "channel_item",
1467 >  "channel_disable_fake_channels", "channel_knock_delay",
1468    "channel_knock_delay_channel", "channel_max_chans_per_user",
1469    "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1470    "channel_default_split_user_count", "channel_default_split_server_count",
1471    "channel_no_create_on_split", "channel_no_join_on_split",
1472    "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1473    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1474 <  "serverhide_hide_servers", "serverhide_hidden_name",
1475 <  "serverhide_links_delay", "serverhide_hidden",
1474 >  "serverhide_hide_servers", "serverhide_hide_services",
1475 >  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1476    "serverhide_hide_server_ips", YY_NULL
1477   };
1478   #endif
# Line 1448 | Line 1503 | static const yytype_uint16 yytoknum[] =
1503       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1504       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1505       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1506 <     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1506 >     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1507 >     475,   476,    59,   125,   123,    61,    44
1508   };
1509   # endif
1510  
1511   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1512   static const yytype_uint16 yyr1[] =
1513   {
1514 <       0,   220,   221,   221,   222,   222,   222,   222,   222,   222,
1515 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1516 <     222,   222,   222,   222,   222,   222,   223,   223,   224,   224,
1517 <     224,   224,   224,   224,   225,   225,   226,   226,   226,   226,
1518 <     227,   228,   228,   229,   229,   229,   230,   231,   232,   233,
1519 <     233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1520 <     234,   234,   234,   234,   234,   234,   234,   235,   236,   237,
1521 <     237,   238,   238,   239,   239,   240,   240,   241,   242,   243,
1522 <     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1523 <     254,   255,   255,   256,   256,   256,   256,   257,   258,   259,
1524 <     260,   261,   261,   262,   262,   262,   263,   265,   264,   266,
1525 <     266,   267,   267,   267,   267,   268,   269,   269,   271,   270,
1526 <     272,   272,   273,   273,   273,   273,   273,   273,   273,   275,
1527 <     274,   276,   276,   277,   277,   277,   277,   277,   277,   277,
1528 <     277,   277,   278,   279,   280,   281,   282,   283,   285,   284,
1529 <     286,   286,   287,   287,   287,   287,   287,   287,   287,   287,
1530 <     287,   287,   287,   287,   287,   287,   287,   287,   287,   287,
1531 <     287,   287,   289,   288,   290,   290,   291,   291,   291,   291,
1532 <     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
1533 <     291,   291,   291,   291,   291,   293,   292,   294,   294,   295,
1534 <     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1535 <     295,   295,   295,   295,   296,   297,   298,   299,   300,   301,
1536 <     302,   303,   304,   305,   306,   307,   308,   309,   311,   310,
1537 <     313,   312,   314,   314,   315,   315,   315,   316,   316,   317,
1538 <     317,   317,   317,   317,   319,   318,   320,   320,   321,   321,
1539 <     322,   323,   325,   324,   326,   326,   327,   327,   327,   327,
1540 <     327,   327,   327,   327,   327,   328,   329,   330,   331,   333,
1541 <     332,   334,   334,   335,   335,   335,   335,   335,   335,   335,
1542 <     335,   335,   336,   337,   338,   340,   339,   341,   341,   342,
1543 <     342,   342,   342,   343,   344,   345,   346,   347,   347,   348,
1544 <     348,   349,   351,   350,   352,   352,   353,   353,   353,   353,
1545 <     354,   355,   357,   356,   358,   358,   359,   359,   359,   359,
1546 <     359,   359,   359,   359,   359,   359,   361,   360,   362,   362,
1547 <     363,   363,   363,   364,   366,   365,   367,   367,   368,   368,
1548 <     368,   368,   368,   368,   368,   368,   368,   368,   370,   369,
1549 <     371,   371,   372,   372,   372,   372,   372,   372,   372,   372,
1550 <     372,   372,   372,   372,   372,   372,   373,   374,   375,   376,
1551 <     377,   378,   379,   379,   381,   380,   382,   382,   383,   383,
1552 <     384,   385,   386,   387,   388,   390,   389,   392,   391,   393,
1553 <     393,   394,   395,   395,   396,   396,   396,   396,   397,   398,
1554 <     400,   399,   401,   401,   402,   402,   402,   403,   404,   405,
1555 <     406,   406,   407,   407,   408,   410,   409,   412,   411,   413,
1556 <     413,   414,   415,   415,   416,   416,   416,   416,   417,   418,
1557 <     419,   420,   420,   421,   421,   421,   421,   421,   421,   421,
1558 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1559 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1560 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1561 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1562 <     421,   421,   421,   422,   423,   424,   425,   426,   427,   428,
1563 <     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1564 <     439,   440,   441,   442,   443,   444,   445,   446,   447,   447,
1565 <     448,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1566 <     457,   458,   459,   460,   461,   462,   463,   464,   465,   467,
1567 <     466,   468,   468,   469,   469,   469,   469,   469,   469,   469,
1568 <     469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
1569 <     469,   469,   469,   471,   470,   472,   472,   473,   473,   473,
1570 <     473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
1571 <     473,   473,   473,   473,   473,   473,   473,   474,   475,   476,
1572 <     477,   478,   478,   479,   479,   479,   479,   479,   479,   479,
1573 <     479,   479,   479,   479,   479,   479,   479,   479,   480,   481,
1574 <     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1575 <     492,   493,   494,   495,   495,   496,   496,   496,   496,   496,
1576 <     496,   496,   497,   498,   499,   500,   501,   502
1514 >       0,   227,   228,   228,   229,   229,   229,   229,   229,   229,
1515 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1516 >     229,   229,   229,   229,   229,   229,   230,   230,   231,   231,
1517 >     231,   231,   231,   231,   231,   231,   232,   232,   233,   233,
1518 >     233,   233,   234,   235,   235,   236,   236,   236,   237,   238,
1519 >     239,   240,   240,   241,   241,   241,   241,   241,   241,   241,
1520 >     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
1521 >     241,   242,   243,   244,   244,   245,   245,   246,   246,   247,
1522 >     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1523 >     257,   258,   259,   260,   261,   262,   263,   264,   264,   265,
1524 >     265,   265,   265,   266,   267,   268,   269,   270,   270,   271,
1525 >     271,   271,   272,   274,   273,   275,   275,   276,   276,   276,
1526 >     276,   277,   278,   278,   280,   279,   281,   281,   282,   282,
1527 >     282,   282,   282,   282,   282,   284,   283,   285,   285,   286,
1528 >     286,   286,   286,   286,   286,   286,   286,   286,   287,   288,
1529 >     289,   290,   291,   292,   294,   293,   295,   295,   296,   296,
1530 >     296,   296,   296,   296,   296,   296,   296,   296,   296,   296,
1531 >     296,   296,   296,   296,   296,   296,   296,   296,   296,   298,
1532 >     297,   299,   299,   300,   300,   300,   300,   300,   300,   300,
1533 >     300,   300,   300,   300,   300,   300,   300,   300,   300,   300,
1534 >     300,   302,   301,   303,   303,   304,   304,   304,   304,   304,
1535 >     304,   304,   304,   304,   304,   304,   304,   304,   304,   304,
1536 >     304,   304,   305,   306,   307,   308,   309,   310,   311,   312,
1537 >     313,   314,   315,   316,   317,   318,   319,   321,   320,   322,
1538 >     322,   323,   323,   325,   324,   327,   326,   328,   328,   329,
1539 >     329,   329,   330,   330,   331,   331,   331,   331,   331,   333,
1540 >     332,   334,   334,   335,   335,   336,   337,   339,   338,   340,
1541 >     340,   341,   341,   341,   341,   341,   341,   341,   341,   341,
1542 >     342,   343,   344,   345,   347,   346,   348,   348,   349,   349,
1543 >     349,   349,   349,   349,   349,   349,   349,   349,   350,   351,
1544 >     352,   354,   353,   355,   355,   356,   356,   356,   356,   357,
1545 >     358,   359,   360,   361,   361,   362,   362,   363,   365,   364,
1546 >     366,   366,   367,   367,   367,   367,   368,   369,   371,   370,
1547 >     372,   372,   373,   373,   373,   373,   373,   373,   373,   373,
1548 >     373,   373,   375,   374,   376,   376,   377,   377,   377,   378,
1549 >     380,   379,   381,   381,   382,   382,   382,   382,   382,   382,
1550 >     382,   382,   382,   382,   384,   383,   385,   385,   386,   386,
1551 >     386,   386,   386,   386,   386,   386,   386,   386,   386,   386,
1552 >     386,   386,   387,   388,   389,   390,   391,   392,   393,   393,
1553 >     395,   394,   396,   396,   397,   397,   398,   399,   400,   401,
1554 >     402,   404,   403,   405,   405,   406,   406,   406,   407,   408,
1555 >     410,   409,   411,   411,   412,   412,   412,   413,   414,   415,
1556 >     416,   416,   417,   417,   418,   420,   419,   421,   421,   422,
1557 >     422,   422,   423,   424,   425,   426,   426,   427,   427,   427,
1558 >     427,   427,   427,   427,   427,   427,   427,   427,   427,   427,
1559 >     427,   427,   427,   427,   427,   427,   427,   427,   427,   427,
1560 >     427,   427,   427,   427,   427,   427,   427,   427,   427,   427,
1561 >     427,   427,   427,   427,   427,   427,   427,   427,   427,   427,
1562 >     427,   427,   427,   427,   427,   427,   428,   429,   430,   431,
1563 >     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
1564 >     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
1565 >     452,   453,   453,   454,   454,   455,   456,   457,   458,   459,
1566 >     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
1567 >     470,   472,   471,   473,   473,   474,   474,   474,   474,   474,
1568 >     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1569 >     474,   474,   474,   474,   474,   476,   475,   477,   477,   478,
1570 >     478,   478,   478,   478,   478,   478,   478,   478,   478,   478,
1571 >     478,   478,   478,   478,   478,   478,   478,   478,   478,   478,
1572 >     479,   480,   481,   482,   483,   483,   484,   484,   484,   484,
1573 >     484,   484,   484,   484,   484,   484,   484,   484,   484,   484,
1574 >     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1575 >     495,   496,   497,   498,   499,   499,   500,   500,   500,   500,
1576 >     500,   500,   500,   500,   501,   502,   503,   504,   505,   506,
1577 >     507
1578   };
1579  
1580   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1526 | Line 1583 | static const yytype_uint8 yyr2[] =
1583         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1584         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1585         1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1586 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1587 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1588 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1532 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1533 <       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1534 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1535 <       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1536 <       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1537 <       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1538 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1539 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1540 <       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1541 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1542 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1543 <       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1586 >       3,     3,     3,     3,     3,     3,     0,     1,     2,     3,
1587 >       3,     3,     5,     2,     1,     1,     1,     2,     4,     4,
1588 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1589         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1590 +       2,     4,     4,     3,     1,     1,     1,     3,     1,     1,
1591 +       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1592 +       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1593 +       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1594 +       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1595 +       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1596         1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1597 +       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1598 +       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1599         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1600 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1548 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1549 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1550 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1551 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1552 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1600 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1601         5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1602 <       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
1603 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1604 <       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
1605 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1606 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1607 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1608 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1609 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1610 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1602 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1603 >       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
1604 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1605 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1606 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1607 >       1,     1,     1,     0,     6,     0,     5,     3,     1,     1,
1608 >       1,     1,     2,     1,     1,     1,     1,     1,     2,     0,
1609 >       5,     3,     1,     1,     3,     4,     4,     0,     6,     2,
1610 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1611         4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1612 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1613 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1612 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1613 >       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1614 >       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1615 >       2,     1,     1,     1,     1,     2,     4,     4,     0,     5,
1616 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1617 >       1,     1,     0,     6,     2,     1,     1,     1,     2,     4,
1618 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1619 >       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1620 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1621 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1622 >       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
1623 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
1624         0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1625 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1626 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1569 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1625 >       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
1626 >       1,     1,     4,     4,     5,     2,     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,     1,     1,     1,     1,     1,     1,     1,     1,
1630         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1631 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1631 >       1,     1,     1,     1,     1,     1,     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,     4,
1635 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1636 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1635 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1636 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1637         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1638 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1638 >       1,     1,     1,     1,     1,     0,     5,     3,     1,     1,
1639 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1640 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1641 >       4,     4,     4,     5,     2,     1,     1,     1,     1,     1,
1642         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1583       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1584       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1585       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1643         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1644 <       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
1645 <       1,     1,     4,     4,     4,     4,     4,     4
1644 >       4,     4,     4,     5,     2,     1,     1,     1,     1,     1,
1645 >       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1646 >       4
1647   };
1648  
1649   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1593 | Line 1651 | static const yytype_uint8 yyr2[] =
1651     means the default is an error.  */
1652   static const yytype_uint16 yydefact[] =
1653   {
1654 <       2,     0,     1,     0,     0,     0,   195,   348,   400,     0,
1655 <     415,     0,   252,   385,   228,     0,     0,   129,   285,     0,
1656 <       0,   302,   326,     0,     3,    23,    11,     4,     5,     6,
1654 >       2,     0,     1,     0,     0,     0,   201,   364,   410,     0,
1655 >     425,     0,   267,   401,   243,     0,     0,   135,   301,     0,
1656 >       0,   318,   342,     0,     3,    23,    11,     4,     5,     6,
1657         8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1658        20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1659         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1660         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661 <       0,     0,    92,    93,    95,    94,   597,     0,     0,     0,
1661 >       0,     0,    98,    99,   101,   100,   599,     0,     0,     0,
1662 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1663 >       0,   585,   598,   587,   588,   589,   590,   591,   586,   592,
1664 >     593,   594,   595,   596,   597,     0,     0,     0,   423,     0,
1665 >       0,   421,   422,     0,   485,     0,     0,     0,     0,     0,
1666 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1667         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1668 <       0,     0,   582,   596,   592,   584,   585,   586,   587,   588,
1606 <     583,   589,   590,   591,   593,   594,   595,     0,     0,     0,
1607 <     413,     0,     0,   411,   412,     0,   482,     0,     0,     0,
1668 >       0,     0,     0,   555,     0,   531,     0,     0,     0,     0,
1669         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1670 +       0,     0,     0,     0,   436,   483,   477,   478,   479,   480,
1671 +     481,   476,   447,   437,   438,   471,   439,   440,   441,   442,
1672 +     443,   444,   445,   446,   473,   448,   449,   482,   451,   456,
1673 +     452,   454,   453,   466,   467,   455,   457,   458,   459,   460,
1674 +     450,   462,   463,   464,   484,   474,   475,   472,   465,   461,
1675 +     469,   470,   468,     0,     0,     0,     0,     0,     0,   108,
1676 +     109,   110,     0,     0,     0,     0,     0,    44,    45,    46,
1677 +       0,     0,   623,     0,     0,     0,     0,     0,     0,     0,
1678 +       0,   615,   616,   617,   618,   621,   619,   620,   622,     0,
1679         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1680 <       0,     0,     0,     0,     0,     0,   553,     0,   529,     0,
1680 >       0,     0,     0,     0,     0,     0,     0,     0,    52,    67,
1681 >      68,    66,    63,    62,    69,    53,    65,    56,    57,    58,
1682 >      54,    64,    59,    60,    61,    55,     0,     0,   316,     0,
1683 >       0,   314,   315,   102,     0,     0,     0,     0,    97,     0,
1684         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1685 <       0,     0,     0,     0,     0,     0,     0,   432,   480,   474,
1613 <     475,   476,   477,   478,   473,   443,   433,   434,   468,   435,
1614 <     436,   437,   438,   439,   440,   441,   442,   470,   444,   445,
1615 <     479,   447,   452,   448,   450,   449,   463,   464,   451,   453,
1616 <     454,   455,   456,   457,   446,   459,   460,   461,   481,   471,
1617 <     472,   469,   462,   458,   466,   467,   465,     0,     0,     0,
1618 <       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1619 <       0,    42,    43,    44,     0,     0,   621,     0,     0,     0,
1620 <       0,     0,     0,     0,   614,   615,   616,   619,   617,   618,
1621 <     620,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1622 <       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1623 <      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1624 <      52,    60,    57,    53,     0,     0,   300,     0,     0,   298,
1625 <     299,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1685 >       0,     0,     0,   584,     0,     0,     0,     0,   237,     0,
1686         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1687 <       0,     0,   581,     0,     0,     0,     0,     0,     0,     0,
1688 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   198,
1689 <     199,   202,   203,   205,   206,   207,   208,   209,   210,   211,
1690 <     212,   200,   201,   204,     0,     0,     0,     0,     0,   374,
1691 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   351,
1692 <     352,   353,   354,   355,   356,   358,   357,   360,   364,   361,
1693 <     362,   363,   359,   406,     0,     0,     0,   403,   404,   405,
1634 <       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1635 <     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1687 >       0,     0,   204,   205,   208,   210,   211,   212,   213,   214,
1688 >     215,   216,   217,   206,   207,   209,   218,   219,   220,     0,
1689 >       0,     0,     0,     0,   390,     0,     0,     0,     0,     0,
1690 >       0,     0,     0,     0,   367,   368,   369,   370,   371,   372,
1691 >     374,   373,   376,   380,   377,   378,   379,   375,   416,     0,
1692 >       0,     0,   413,   414,   415,     0,     0,   420,   431,     0,
1693 >       0,     0,   428,   429,   430,     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,     0,     0,     0,     0,     0,     0,
1697         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1698 <       0,     0,   431,     0,     0,     0,   269,     0,     0,     0,
1699 <       0,     0,     0,   255,   256,   257,   258,   263,   259,   260,
1700 <     261,   262,   397,     0,   387,     0,   396,     0,   393,   394,
1701 <     395,     0,   230,     0,     0,     0,   240,     0,   238,   239,
1702 <     241,   242,   105,     0,     0,   101,     0,    45,     0,     0,
1703 <       0,    41,     0,     0,     0,   172,     0,     0,     0,   148,
1704 <       0,     0,   132,   133,   134,   135,   138,   139,   137,   136,
1705 <     140,     0,     0,     0,     0,     0,   288,   289,   290,   291,
1706 <       0,     0,     0,     0,     0,     0,     0,   613,    66,     0,
1698 >       0,     0,     0,     0,   435,     0,     0,     0,   284,     0,
1699 >       0,     0,     0,     0,     0,   270,   271,   272,   273,   278,
1700 >     274,   275,   276,   277,   407,     0,     0,     0,   404,   405,
1701 >     406,     0,   245,     0,     0,     0,   255,     0,   253,   254,
1702 >     256,   257,   111,     0,     0,   107,     0,    47,     0,     0,
1703 >       0,    43,     0,     0,     0,   179,     0,     0,     0,   154,
1704 >       0,     0,   138,   139,   140,   141,   144,   145,   143,   142,
1705 >     146,     0,     0,     0,     0,     0,   304,   305,   306,   307,
1706 >       0,     0,     0,     0,     0,     0,     0,     0,   614,    70,
1707         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1708 <       0,     0,     0,     0,     0,    49,     0,     0,   312,     0,
1709 <       0,   305,   306,   307,   308,     0,     0,   334,     0,   329,
1710 <     330,   331,     0,     0,   297,     0,     0,     0,    90,     0,
1711 <       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1712 <       0,     0,     0,     0,   580,   213,     0,     0,     0,     0,
1708 >       0,     0,     0,     0,     0,     0,     0,     0,    51,     0,
1709 >       0,   328,     0,     0,   321,   322,   323,   324,     0,     0,
1710 >     350,     0,   345,   346,   347,     0,     0,   313,     0,     0,
1711 >       0,    96,     0,     0,     0,    26,     0,     0,     0,     0,
1712 >       0,     0,     0,     0,     0,     0,   583,   221,     0,     0,
1713         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1714 <       0,   197,   365,     0,     0,     0,     0,     0,     0,     0,
1657 <       0,     0,     0,     0,     0,     0,     0,   350,     0,     0,
1658 <       0,   402,     0,   409,     0,     0,     0,     0,   422,     0,
1714 >       0,     0,     0,     0,     0,   203,   381,     0,     0,     0,
1715         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1716 +       0,   366,     0,     0,     0,   412,     0,   419,     0,     0,
1717 +       0,   427,     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,     0,     0,     0,     0,
1720         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1721         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1722 <     430,   264,     0,     0,     0,     0,     0,     0,     0,     0,
1723 <       0,   254,     0,     0,     0,     0,   392,   243,     0,     0,
1724 <       0,     0,     0,   237,     0,   100,     0,     0,     0,    40,
1725 <     141,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1726 <     131,   292,     0,     0,     0,     0,   287,     0,     0,     0,
1727 <       0,     0,     0,   612,     0,     0,     0,     0,     0,     0,
1728 <       0,     0,    71,    72,     0,    70,    75,    76,     0,    74,
1729 <       0,     0,     0,     0,     0,    48,   309,     0,     0,     0,
1730 <       0,   304,   332,     0,     0,     0,   328,     0,   296,    99,
1731 <      98,    97,   607,   606,   598,    26,    26,    26,    26,    26,
1732 <      28,    27,   600,   601,   605,   603,   602,   608,   609,   610,
1733 <     611,   604,   599,     0,     0,     0,     0,     0,     0,     0,
1676 <       0,     0,     0,     0,     0,    34,     0,     0,   196,     0,
1722 >       0,     0,   434,   279,     0,     0,     0,     0,     0,     0,
1723 >       0,     0,     0,   269,     0,     0,     0,   403,   258,     0,
1724 >       0,     0,     0,     0,   252,     0,   106,     0,     0,     0,
1725 >      42,   147,     0,     0,     0,     0,     0,     0,     0,     0,
1726 >       0,   137,   308,     0,     0,     0,     0,   303,     0,     0,
1727 >       0,     0,     0,     0,     0,   613,     0,     0,     0,     0,
1728 >       0,     0,     0,     0,     0,     0,    75,    76,     0,    74,
1729 >      79,    80,     0,    78,     0,     0,     0,     0,     0,    50,
1730 >     325,     0,     0,     0,     0,   320,   348,     0,     0,     0,
1731 >     344,     0,   312,   105,   104,   103,   608,   607,   600,    26,
1732 >      26,    26,    26,    26,    26,    26,    28,    27,   601,   602,
1733 >     606,   604,   603,   609,   610,   611,   612,   605,     0,     0,
1734         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1735 <       0,     0,     0,   349,     0,     0,   401,   414,     0,     0,
1736 <       0,   416,   495,   499,   513,   579,   527,   493,   521,   524,
1737 <     494,   485,   484,   486,   487,   488,   502,   491,   492,   503,
1738 <     490,   498,   497,   496,   522,   483,   520,   577,   578,   517,
1739 <     514,   564,   557,   574,   575,   558,   559,   560,   561,   569,
1740 <     562,   572,   576,   565,   570,   566,   571,   563,   568,   567,
1741 <     573,     0,   556,   519,   539,   533,   550,   551,   534,   535,
1742 <     536,   537,   545,   538,   548,   552,   541,   546,   542,   547,
1743 <     540,   544,   543,   549,     0,   532,   512,   515,   526,   489,
1744 <     516,   505,   510,   511,   508,   509,   506,   507,   501,   500,
1745 <     525,   528,   518,   523,   504,     0,     0,     0,     0,     0,
1746 <       0,     0,     0,   253,     0,     0,     0,   386,     0,     0,
1747 <       0,   248,   244,   247,   229,   106,     0,     0,   118,     0,
1748 <       0,   110,   111,   113,   112,    46,    47,     0,     0,     0,
1749 <       0,     0,     0,     0,     0,   130,     0,     0,     0,   286,
1750 <     622,   626,   624,   627,   623,   625,    83,    89,    81,    85,
1751 <      84,    78,    77,    79,    67,     0,    68,     0,    82,    80,
1752 <      88,    86,    87,     0,     0,     0,   303,     0,     0,   327,
1753 <     301,    29,    30,    31,    32,    33,   225,   226,   218,   220,
1754 <     222,   221,   219,   214,   227,   217,   215,   216,    34,    34,
1755 <      34,    36,    35,   223,   224,   370,   372,   373,   383,   380,
1756 <     378,   379,     0,   377,   367,   381,   382,   366,   371,   369,
1757 <     384,   368,   407,   408,   428,   429,   421,     0,   420,   554,
1758 <       0,   530,     0,   267,   268,   277,   274,   279,   276,   275,
1759 <     281,   278,   280,   273,     0,   272,   266,   284,   283,   282,
1760 <     265,   399,   391,     0,   390,   398,   235,   236,   234,     0,
1761 <     233,   251,   250,     0,     0,     0,   114,     0,     0,     0,
1762 <       0,   109,   147,   145,   187,   184,   183,   176,   178,   194,
1763 <     188,   191,   186,   177,   192,   180,   189,   193,   181,   190,
1764 <     185,   179,   182,     0,   175,   142,   144,   146,   158,   152,
1765 <     169,   170,   153,   154,   155,   156,   164,   157,   167,   171,
1766 <     160,   165,   161,   166,   159,   163,   162,   168,     0,   151,
1767 <     143,   294,   295,   293,    69,    73,   310,   316,   322,   325,
1768 <     318,   324,   319,   323,   321,   317,   320,     0,   315,   311,
1769 <     333,   338,   344,   347,   340,   346,   341,   345,   343,   339,
1770 <     342,     0,   337,    37,    38,    39,   375,     0,   418,     0,
1771 <     555,   531,   270,     0,   388,     0,   231,     0,   249,   246,
1772 <     245,     0,     0,     0,     0,   108,   173,     0,   149,     0,
1773 <     313,     0,   335,     0,   376,   419,   271,   389,   232,   115,
1774 <     124,   127,   126,   123,   128,   125,   122,     0,   121,   117,
1775 <     116,   174,   150,   314,   336,   119,     0,   120
1735 >       0,     0,    36,     0,     0,   202,     0,     0,     0,     0,
1736 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1737 >     365,     0,     0,   411,   424,     0,     0,   426,   498,   502,
1738 >     516,   582,   529,   496,   523,   526,   497,   488,   487,   489,
1739 >     490,   491,   505,   494,   495,   506,   493,   501,   500,   499,
1740 >     524,   486,   580,   581,   520,   517,   566,   559,   576,   577,
1741 >     560,   561,   562,   563,   571,   564,   574,   578,   567,   579,
1742 >     572,   568,   573,   565,   570,   569,   575,     0,   558,   522,
1743 >     541,   535,   552,   553,   536,   537,   538,   539,   547,   540,
1744 >     550,   554,   543,   548,   544,   549,   542,   546,   545,   551,
1745 >       0,   534,   515,   518,   528,   492,   519,   508,   513,   514,
1746 >     511,   512,   509,   510,   504,   503,   527,   530,   521,   525,
1747 >     507,     0,     0,     0,     0,     0,     0,     0,     0,   268,
1748 >       0,     0,   402,     0,     0,     0,   263,   259,   262,   244,
1749 >     112,     0,     0,   124,     0,     0,   116,   117,   119,   118,
1750 >      48,    49,     0,     0,     0,     0,     0,     0,     0,     0,
1751 >     136,     0,     0,     0,   302,   624,   629,   627,   630,   625,
1752 >     626,   628,    87,    95,    93,    94,    85,    89,    88,    82,
1753 >      81,    83,    71,     0,    72,     0,    86,    84,    92,    90,
1754 >      91,     0,     0,     0,   319,     0,     0,   343,   317,    29,
1755 >      30,    31,    32,    33,    34,    35,   232,   233,   225,   241,
1756 >     242,     0,   240,   227,   229,   228,   226,   235,   236,   222,
1757 >     234,   224,   223,    36,    36,    36,    38,    37,   230,   231,
1758 >     386,   388,   389,   399,   396,   394,   395,     0,   393,   383,
1759 >     397,   398,   382,   387,   385,   400,   384,   417,   418,   432,
1760 >     433,   556,     0,   532,     0,   282,   283,   292,   289,   294,
1761 >     291,   290,   297,   293,   295,   288,   296,     0,   287,   281,
1762 >     300,   299,   298,   280,   409,   408,   250,   251,   249,     0,
1763 >     248,   266,   265,     0,     0,     0,   120,     0,     0,     0,
1764 >       0,   115,   153,   151,   194,   191,   190,   183,   185,   200,
1765 >     197,   193,   184,   198,   187,   195,   199,   188,   196,   192,
1766 >     186,   189,     0,   182,   148,   150,   152,   164,   158,   175,
1767 >     176,   159,   160,   161,   162,   170,   163,   173,   177,   166,
1768 >     178,   171,   167,   172,   165,   169,   168,   174,     0,   157,
1769 >     149,   311,   309,   310,    73,    77,   326,   332,   338,   341,
1770 >     334,   340,   335,   339,   337,   333,   336,     0,   331,   327,
1771 >     349,   354,   360,   363,   356,   362,   357,   361,   359,   355,
1772 >     358,     0,   353,   238,     0,    39,    40,    41,   391,     0,
1773 >     557,   533,   285,     0,   246,     0,   264,   261,   260,     0,
1774 >       0,     0,     0,   114,   180,     0,   155,     0,   329,     0,
1775 >     351,     0,   239,   392,   286,   247,   121,   130,   133,   132,
1776 >     129,   134,   131,   128,     0,   127,   123,   122,   181,   156,
1777 >     330,   352,   125,     0,   126
1778   };
1779  
1780   /* YYDEFGOTO[NTERM-NUM].  */
1781   static const yytype_int16 yydefgoto[] =
1782   {
1783 <      -1,     1,    24,   780,   781,  1021,  1022,    25,   230,   231,
1784 <     232,   233,    26,   267,   268,   269,   270,   744,   745,   748,
1785 <     749,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1786 <     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1787 <      28,   222,   223,   224,   225,   226,   950,   951,   952,   953,
1788 <     954,  1088,  1217,  1218,    29,    60,   501,   502,   503,   504,
1789 <     505,   506,   507,   508,   509,   717,  1138,  1139,   510,   713,
1790 <    1113,  1114,    30,    49,   328,   329,   330,   331,   332,   333,
1791 <     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
1792 <      31,    57,   476,   698,  1079,  1080,   477,   478,   479,  1085,
1793 <     942,   943,   480,   481,    32,    55,   452,   453,   454,   455,
1794 <     456,   457,   458,   684,  1064,  1065,   459,   460,   461,    33,
1795 <      61,   515,   516,   517,   518,   519,    34,   288,   289,   290,
1796 <      35,    64,   550,   551,   552,   553,   554,   758,  1157,  1158,
1797 <      36,    65,   558,   559,   560,   561,   764,  1171,  1172,    37,
1798 <      50,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1799 <     367,   607,  1032,  1033,   368,   369,   370,   371,   372,    38,
1800 <      56,   466,   693,  1073,  1074,   467,   468,   469,   470,    39,
1801 <      51,   376,   377,   378,   379,    40,   112,   113,   114,    41,
1802 <      53,   387,   626,  1047,  1048,   388,   389,   390,   391,    42,
1803 <     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1804 <     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1805 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1806 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1807 <     206,   207,   208,   209,   210,   211,   212,   423,   904,   905,
1808 <     213,   421,   881,   882,   214,   215,   216,    43,    91,    92,
1809 <      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1810 <     103,   104,   105,   106,    44,   243,   244,   245,   246,   247,
1811 <     248,   249,   250
1783 >      -1,     1,    24,   786,   787,  1036,  1037,    25,   226,   227,
1784 >     228,   229,    26,   267,   268,   269,   270,   748,   749,   752,
1785 >     753,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1786 >     280,   281,   282,   283,   284,   285,    27,    71,    72,    73,
1787 >      74,    75,    28,   218,   219,   220,   221,   222,   955,   956,
1788 >     957,   958,   959,  1098,  1224,  1225,    29,    60,   501,   502,
1789 >     503,   504,   505,   506,   507,   508,   509,   718,  1148,  1149,
1790 >     510,   714,  1122,  1123,    30,    49,   331,   332,   333,   334,
1791 >     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1792 >     345,   346,   347,   348,   591,  1021,  1022,    31,    57,   476,
1793 >     699,  1089,  1090,   477,   478,   479,  1095,   947,   948,   480,
1794 >     481,    32,    55,   454,   455,   456,   457,   458,   459,   460,
1795 >     686,  1077,  1078,   461,   462,   463,    33,    61,   515,   516,
1796 >     517,   518,   519,    34,   290,   291,   292,    35,    64,   553,
1797 >     554,   555,   556,   557,   762,  1167,  1168,    36,    65,   561,
1798 >     562,   563,   564,   768,  1181,  1182,    37,    50,   363,   364,
1799 >     365,   366,   367,   368,   369,   370,   371,   372,   611,  1047,
1800 >    1048,   373,   374,   375,   376,   377,    38,    56,   467,   468,
1801 >     469,   470,    39,    51,   381,   382,   383,   384,    40,   110,
1802 >     111,   112,    41,    53,   391,   392,   393,   394,    42,   163,
1803 >     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1804 >     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1805 >     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1806 >     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1807 >     204,   205,   206,   207,   208,   425,   910,   911,   209,   423,
1808 >     887,   888,   210,   211,   212,    43,    90,    91,    92,    93,
1809 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1810 >     104,    44,   240,   241,   242,   243,   244,   245,   246,   247,
1811 >     248
1812   };
1813  
1814   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1815     STATE-NUM.  */
1816 < #define YYPACT_NINF -744
1816 > #define YYPACT_NINF -967
1817   static const yytype_int16 yypact[] =
1818   {
1819 <    -744,   610,  -744,  -209,  -187,  -179,  -744,  -744,  -744,  -176,
1820 <    -744,  -171,  -744,  -744,  -744,  -166,  -164,  -744,  -744,  -139,
1821 <    -136,  -744,  -744,  -131,  -744,  -744,  -744,  -744,  -744,  -744,
1822 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1823 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    61,   807,  -126,
1824 <    -104,   -84,    16,   -79,   382,   -77,   -63,   -60,     7,    21,
1825 <     -49,   -40,   638,   381,   -26,    52,    25,  -152,    62,    85,
1826 <      86,    18,  -744,  -744,  -744,  -744,  -744,    88,    89,    93,
1827 <      94,    96,   101,   108,   112,   118,   119,   125,   127,   132,
1828 <     133,   162,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1829 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   531,   499,   266,
1830 <    -744,   135,    28,  -744,  -744,    11,  -744,   142,   143,   145,
1831 <     147,   148,   150,   153,   163,   166,   167,   169,   173,   174,
1832 <     175,   177,   178,   180,   182,   183,   185,   191,   197,   200,
1833 <     201,   202,   204,   211,   212,   215,  -744,   216,  -744,   217,
1834 <     218,   221,   222,   225,   226,   229,   234,   235,   237,   238,
1835 <     239,   242,   253,   256,   257,   262,    38,  -744,  -744,  -744,
1836 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1837 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1838 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1839 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1840 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   337,    24,   259,
1841 <      73,   263,     4,  -744,  -744,  -744,   126,   131,   264,   270,
1842 <      59,  -744,  -744,  -744,   389,   209,  -744,   276,   279,   280,
1843 <     281,   285,   287,     3,  -744,  -744,  -744,  -744,  -744,  -744,
1844 <    -744,   149,   288,   289,   290,   292,   299,   301,   302,   303,
1845 <     304,   305,   307,   308,   315,   324,   330,    75,  -744,  -744,
1846 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1847 <    -744,  -744,  -744,  -744,   208,    30,  -744,   331,    15,  -744,
1848 <    -744,  -744,   107,   254,   359,   165,  -744,   385,   396,   367,
1849 <     454,   454,   455,   457,   461,   399,   401,   464,   454,   404,
1850 <     405,   351,  -744,   358,   356,   360,   361,   362,   364,   365,
1851 <     369,   374,   375,   379,   383,   386,   388,   395,   232,  -744,
1852 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1853 <    -744,  -744,  -744,  -744,   384,   397,   400,   403,   408,  -744,
1854 <     411,   412,   420,   423,   424,   427,   433,   434,   260,  -744,
1855 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1856 <    -744,  -744,  -744,  -744,   435,   437,     8,  -744,  -744,  -744,
1857 <     458,   407,  -744,  -744,   441,   442,  -744,  -744,    36,  -744,
1858 <    -744,  -744,   417,   454,   454,   501,   443,   459,   524,   543,
1859 <     502,   454,   503,   454,   565,   567,   568,   508,   509,   513,
1860 <     454,   577,   578,   454,   580,   583,   566,   584,   587,   527,
1861 <     528,   475,   535,   478,   454,   454,   537,   540,   541,   542,
1862 <    -146,  -133,   544,   546,   454,   454,   585,   454,   550,   553,
1863 <     554,   510,  -744,   515,   514,   517,  -744,   519,   521,   525,
1864 <     529,   530,    58,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1865 <    -744,  -744,  -744,   533,  -744,   534,  -744,    10,  -744,  -744,
1866 <    -744,   538,  -744,   536,   539,   545,  -744,   115,  -744,  -744,
1867 <    -744,  -744,  -744,   582,   547,  -744,   532,  -744,   640,   643,
1868 <     549,  -744,   555,   559,   560,  -744,   562,   569,   572,  -744,
1869 <     573,    70,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1870 <    -744,   558,   588,   595,   597,   146,  -744,  -744,  -744,  -744,
1871 <     623,   625,   687,   658,   659,   454,   606,  -744,  -744,   704,
1872 <     663,   706,   707,   709,   713,   714,   715,    79,   159,   717,
1873 <     718,   646,   719,   720,   626,  -744,   628,   622,  -744,   624,
1874 <     128,  -744,  -744,  -744,  -744,   629,   630,  -744,    22,  -744,
1875 <    -744,  -744,   728,   632,  -744,   634,   635,   636,  -744,   637,
1876 <     639,   641,   430,   642,   645,   648,   649,   650,   651,   652,
1877 <     653,   654,   656,   657,  -744,  -744,   754,   756,   454,   759,
1878 <     776,   778,   779,   761,   784,   785,   454,   454,   786,   786,
1879 <     671,  -744,  -744,   769,   122,   770,   729,   672,   773,   774,
1880 <     775,   777,   795,   780,   781,   782,   681,  -744,   783,   787,
1881 <     682,  -744,   689,  -744,   788,   789,   690,   694,  -744,   695,
1882 <     696,   697,   698,   699,   702,   703,   705,   708,   710,   712,
1883 <     716,   721,   722,   723,   724,   725,   726,   727,   730,   731,
1884 <     732,   733,   734,   735,   736,   737,   738,   739,   551,   740,
1885 <     599,   741,   742,   743,   744,   745,   746,   747,   748,   749,
1886 <     750,   751,   752,   753,   755,   757,   758,   760,   762,   763,
1887 <    -744,  -744,   801,   764,   711,   803,   823,   810,   812,   814,
1888 <     765,  -744,   815,   766,   817,   767,  -744,  -744,   768,   825,
1889 <     826,   870,   772,  -744,   790,  -744,   184,   791,   792,  -744,
1890 <    -744,   853,   816,   771,   856,   861,   863,   793,   865,   794,
1891 <    -744,  -744,   867,   872,   873,   797,  -744,   798,   799,   800,
1892 <     802,   804,   805,  -744,   806,   808,   809,   811,   813,   818,
1893 <     819,   820,  -744,  -744,  -195,  -744,  -744,  -744,  -172,  -744,
1894 <     821,   822,   824,   827,   828,  -744,  -744,   874,   829,   875,
1895 <     830,  -744,  -744,   876,   831,   833,  -744,   835,  -744,  -744,
1896 <    -744,  -744,  -744,  -744,  -744,   454,   454,   454,   454,   454,
1897 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1898 <    -744,  -744,  -744,   836,   837,   838,   839,   840,   841,   842,
1899 <     843,   844,   845,   846,   847,   314,   848,   849,  -744,   850,
1900 <     851,   852,   854,   855,    13,   857,   858,   859,   860,   862,
1901 <     864,   866,   868,  -744,   869,   871,  -744,  -744,   877,   878,
1902 <     879,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1903 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1904 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1905 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1906 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1907 <    -744,  -167,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1908 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1909 <    -744,  -744,  -744,  -744,  -154,  -744,  -744,  -744,  -744,  -744,
1910 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1911 <    -744,  -744,  -744,  -744,  -744,   880,   881,   309,   882,   883,
1912 <     884,   885,   886,  -744,   887,   893,   888,  -744,   -33,   889,
1913 <     890,   832,   891,  -744,  -744,  -744,   892,   894,  -744,   895,
1914 <     154,  -744,  -744,  -744,  -744,  -744,  -744,   896,   899,   511,
1915 <     900,   901,   902,   627,   903,  -744,   904,   905,   906,  -744,
1916 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1917 <    -744,  -744,  -744,  -744,  -744,    79,  -744,   159,  -744,  -744,
1918 <    -744,  -744,  -744,   907,   460,   908,  -744,   909,   665,  -744,
1919 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1920 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,   786,   786,
1921 <     786,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1922 <    -744,  -744,  -145,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1923 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   -50,  -744,  -744,
1924 <     551,  -744,   599,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1925 <    -744,  -744,  -744,  -744,   -41,  -744,  -744,  -744,  -744,  -744,
1926 <    -744,  -744,  -744,   -27,  -744,  -744,  -744,  -744,  -744,   -17,
1927 <    -744,  -744,  -744,   898,   870,   910,  -744,   911,   912,   -86,
1928 <     913,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1929 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1930 <    -744,  -744,  -744,    34,  -744,  -744,  -744,  -744,  -744,  -744,
1931 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1932 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    40,  -744,
1933 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1934 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    53,  -744,  -744,
1935 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1936 <    -744,    63,  -744,  -744,  -744,  -744,  -744,    13,  -744,   879,
1937 <    -744,  -744,  -744,   309,  -744,   893,  -744,   -33,  -744,  -744,
1938 <    -744,   914,   277,   916,   917,  -744,  -744,   511,  -744,   627,
1939 <    -744,   460,  -744,   665,  -744,  -744,  -744,  -744,  -744,  -744,
1940 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    68,  -744,  -744,
1941 <    -744,  -744,  -744,  -744,  -744,  -744,   277,  -744
1819 >    -967,   584,  -967,  -112,  -215,  -210,  -967,  -967,  -967,  -192,
1820 >    -967,  -189,  -967,  -967,  -967,  -166,  -150,  -967,  -967,  -148,
1821 >    -137,  -967,  -967,  -135,  -967,  -967,  -967,  -967,  -967,  -967,
1822 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1823 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,   282,   863,  -132,
1824 >    -126,  -124,    11,  -104,   361,   -96,   -79,   -66,    42,    92,
1825 >     -51,   -48,   608,   403,   -40,   -37,     6,  -170,   -28,   -25,
1826 >     -21,     7,  -967,  -967,  -967,  -967,  -967,   -17,    -5,    -2,
1827 >      45,    52,    64,    75,    80,    91,    93,    99,   100,   108,
1828 >     197,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1829 >    -967,  -967,  -967,  -967,  -967,   653,   495,    15,  -967,   110,
1830 >      22,  -967,  -967,    70,  -967,   111,   113,   117,   119,   121,
1831 >     123,   126,   127,   128,   130,   131,   132,   135,   136,   138,
1832 >     139,   141,   146,   149,   150,   151,   152,   154,   155,   157,
1833 >     158,   159,   160,  -967,   163,  -967,   167,   169,   172,   173,
1834 >     175,   176,   183,   184,   185,   188,   191,   194,   198,   199,
1835 >     201,   203,   206,   118,  -967,  -967,  -967,  -967,  -967,  -967,
1836 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1837 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1838 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1839 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1840 >    -967,  -967,  -967,   333,     4,    55,    29,   207,    33,  -967,
1841 >    -967,  -967,    40,    88,   208,   211,    14,  -967,  -967,  -967,
1842 >     398,    17,  -967,   212,   216,   218,   220,   227,   228,   230,
1843 >      10,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,    95,
1844 >     231,   232,   233,   237,   238,   240,   242,   243,   244,   248,
1845 >     250,   251,   254,   255,   257,   258,   259,    36,  -967,  -967,
1846 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1847 >    -967,  -967,  -967,  -967,  -967,  -967,   106,     5,  -967,   261,
1848 >      18,  -967,  -967,  -967,   306,   364,   365,   268,  -967,   387,
1849 >     388,   178,   390,   390,   399,   402,   405,   338,   346,   410,
1850 >     390,   352,   297,  -967,   310,   308,   315,   317,  -967,   319,
1851 >     324,   325,   326,   328,   331,   334,   335,   336,   337,   340,
1852 >     342,   224,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1853 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,   341,
1854 >     343,   344,   348,   349,  -967,   351,   353,   356,   357,   358,
1855 >     367,   369,   374,   290,  -967,  -967,  -967,  -967,  -967,  -967,
1856 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,   375,
1857 >     378,    26,  -967,  -967,  -967,   424,   368,  -967,  -967,   379,
1858 >     380,    69,  -967,  -967,  -967,   393,   390,   390,   481,   441,
1859 >     443,   507,   491,   450,   390,   451,   390,   516,   519,   520,
1860 >     461,   462,   463,   390,   535,   538,   390,   541,   545,   546,
1861 >     547,   484,   488,   432,   493,   439,   390,   390,   500,   502,
1862 >     505,   508,   -11,    24,   509,   510,   390,   390,   543,   390,
1863 >     511,   512,   518,   459,  -967,   464,   460,   466,  -967,   468,
1864 >     469,   471,   472,   473,    23,  -967,  -967,  -967,  -967,  -967,
1865 >    -967,  -967,  -967,  -967,  -967,   474,   475,    71,  -967,  -967,
1866 >    -967,   465,  -967,   477,   479,   482,  -967,    21,  -967,  -967,
1867 >    -967,  -967,  -967,   523,   487,  -967,   486,  -967,   583,   589,
1868 >     494,  -967,   498,   489,   490,  -967,   496,   497,   515,  -967,
1869 >     517,   322,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1870 >    -967,   514,   521,   522,   526,    32,  -967,  -967,  -967,  -967,
1871 >     552,   580,   625,   587,   588,   590,   390,   534,  -967,  -967,
1872 >     634,   593,   656,   662,   647,   652,   654,   658,   660,   665,
1873 >      72,   129,   666,   668,   680,   670,   671,   573,  -967,   575,
1874 >     574,  -967,   582,    19,  -967,  -967,  -967,  -967,   576,   585,
1875 >    -967,    35,  -967,  -967,  -967,   677,   592,  -967,   595,   599,
1876 >     601,  -967,   603,   607,   609,   492,   610,   611,   612,   613,
1877 >     615,   628,   629,   635,   643,   645,  -967,  -967,   748,   764,
1878 >     390,   646,   765,   768,   770,   772,   390,   390,   757,   776,
1879 >     777,   390,   778,   778,   664,  -967,  -967,   773,    85,   774,
1880 >     722,   673,   779,   780,   781,   782,   788,   783,   785,   786,
1881 >     678,  -967,   787,   789,   691,  -967,   692,  -967,   792,   793,
1882 >     695,  -967,   696,   697,   698,   699,   700,   701,   702,   703,
1883 >     704,   705,   706,   707,   710,   711,   712,   713,   714,   715,
1884 >     719,   720,   721,   723,   724,   725,   726,   727,   728,   729,
1885 >     591,   730,   667,   731,   732,   733,   734,   735,   736,   737,
1886 >     738,   739,   740,   741,   744,   745,   746,   747,   749,   750,
1887 >     751,   752,  -967,  -967,   821,   805,   674,   852,   790,   853,
1888 >     856,   857,   759,  -967,   859,   860,   762,  -967,  -967,   686,
1889 >     862,   865,   881,   767,  -967,   769,  -967,   120,   771,   775,
1890 >    -967,  -967,   867,   827,   784,   871,   872,   873,   791,   875,
1891 >     795,  -967,  -967,   876,   877,   878,   796,  -967,   797,   798,
1892 >     799,   800,   801,   802,   803,  -967,   804,   806,   807,   808,
1893 >     809,   810,   811,   812,   813,   814,  -967,  -967,  -205,  -967,
1894 >    -967,  -967,  -197,  -967,   815,   816,   817,   818,   819,  -967,
1895 >    -967,   879,   820,   880,   822,  -967,  -967,   882,   823,   824,
1896 >    -967,   825,  -967,  -967,  -967,  -967,  -967,  -967,  -967,   390,
1897 >     390,   390,   390,   390,   390,   390,  -967,  -967,  -967,  -967,
1898 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,   828,   829,
1899 >     830,   195,   831,   832,   833,   834,   835,   836,   837,   838,
1900 >     839,   840,   204,   841,   842,  -967,   843,   844,   845,   846,
1901 >     847,    -4,   848,   849,   850,   851,   854,   855,   858,   861,
1902 >    -967,   864,   866,  -967,  -967,   868,   869,  -967,  -967,  -967,
1903 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1904 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1905 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1906 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1907 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -196,  -967,  -967,
1908 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1909 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1910 >    -181,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1911 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1912 >    -967,   870,   874,   544,   883,   884,   885,   886,   887,  -967,
1913 >     888,   889,  -967,   -12,   890,   891,   905,   892,  -967,  -967,
1914 >    -967,   893,   894,  -967,   895,    27,  -967,  -967,  -967,  -967,
1915 >    -967,  -967,   899,   900,   501,   901,   902,   903,   631,   904,
1916 >    -967,   906,   907,   908,  -967,  -967,  -967,  -967,  -967,  -967,
1917 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1918 >    -967,  -967,  -967,    72,  -967,   129,  -967,  -967,  -967,  -967,
1919 >    -967,   909,   676,   910,  -967,   911,   689,  -967,  -967,  -967,
1920 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1921 >    -967,  -180,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1922 >    -967,  -967,  -967,   778,   778,   778,  -967,  -967,  -967,  -967,
1923 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -178,  -967,  -967,
1924 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1925 >    -967,  -967,   591,  -967,   667,  -967,  -967,  -967,  -967,  -967,
1926 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -173,  -967,  -967,
1927 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -172,
1928 >    -967,  -967,  -967,   922,   881,   912,  -967,   919,   913,   -92,
1929 >     914,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1930 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1931 >    -967,  -967,  -147,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1932 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1933 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -141,  -967,
1934 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1935 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -140,  -967,  -967,
1936 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1937 >    -967,  -127,  -967,  -967,   195,  -967,  -967,  -967,  -967,    -4,
1938 >    -967,  -967,  -967,   544,  -967,   -12,  -967,  -967,  -967,   915,
1939 >     330,   917,   918,  -967,  -967,   501,  -967,   631,  -967,   676,
1940 >    -967,   689,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1941 >    -967,  -967,  -967,  -967,   -70,  -967,  -967,  -967,  -967,  -967,
1942 >    -967,  -967,  -967,   330,  -967
1943   };
1944  
1945   /* YYPGOTO[NTERM-NUM].  */
1946   static const yytype_int16 yypgoto[] =
1947   {
1948 <    -744,  -744,  -744,  -743,  -298,  -663,  -598,  -744,  -744,   897,
1949 <    -744,  -744,  -744,  -744,   915,  -744,  -744,  -744,    14,  -744,
1950 <       1,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1951 <    -744,  -744,  -744,  -744,  -744,  -744,   924,  -744,  -744,  -744,
1952 <    -744,  -744,   796,  -744,  -744,  -744,  -744,    48,  -744,  -744,
1953 <    -744,  -744,  -744,  -226,  -744,  -744,  -744,   500,  -744,  -744,
1954 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -196,  -744,  -744,
1955 <    -744,  -193,  -744,  -744,  -744,   680,  -744,  -744,  -744,  -744,
1956 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1957 <    -744,  -744,  -744,  -744,  -744,  -177,  -744,   548,  -744,  -744,
1958 <    -744,   -62,  -744,  -744,  -744,  -744,  -744,   575,  -744,  -744,
1959 <    -744,  -744,  -744,  -744,  -744,  -153,  -744,  -744,  -744,  -744,
1960 <    -744,  -744,   516,  -744,  -744,  -744,  -744,  -744,   918,  -744,
1961 <    -744,  -744,  -744,   482,  -744,  -744,  -744,  -744,  -744,  -163,
1962 <    -744,  -744,  -744,   483,  -744,  -744,  -744,  -744,  -159,  -744,
1963 <    -744,  -744,   688,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1964 <    -744,  -744,  -744,  -137,  -744,  -744,  -744,  -744,  -744,  -744,
1965 <    -744,  -744,  -744,  -744,  -117,  -744,   604,  -744,  -744,  -744,
1966 <    -744,  -744,   700,  -744,  -744,  -744,  -744,   966,  -744,  -744,
1967 <    -744,  -744,  -744,  -744,   -99,  -744,   701,  -744,  -744,  -744,
1968 <    -744,   919,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1969 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1970 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1971 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1972 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    35,
1973 <    -744,  -744,  -744,    32,  -744,  -744,  -744,  -744,  -744,   997,
1974 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1975 <    -744,  -744,  -744,  -744,  -744,  -744,   920,  -744,  -744,  -744,
1976 <    -744,  -744,  -744
1948 >    -967,  -967,  -967,   -55,  -300,  -966,  -602,  -967,  -967,   916,
1949 >    -967,  -967,  -967,  -967,   743,  -967,  -967,  -967,    13,  -967,
1950 >       9,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1951 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,   936,  -967,
1952 >    -967,  -967,  -967,  -967,   794,  -967,  -967,  -967,  -967,    53,
1953 >    -967,  -967,  -967,  -967,  -967,  -222,  -967,  -967,  -967,   513,
1954 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -194,
1955 >    -967,  -967,  -967,  -190,  -967,  -967,  -967,   718,  -967,  -967,
1956 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1957 >    -967,  -967,  -967,  -967,  -967,  -967,  -109,  -967,  -967,  -967,
1958 >    -967,  -967,  -152,  -967,   602,  -967,  -967,  -967,   -16,  -967,
1959 >    -967,  -967,  -967,  -967,   627,  -967,  -967,  -967,  -967,  -967,
1960 >    -967,  -967,  -111,  -967,  -967,  -967,  -967,  -967,  -967,   569,
1961 >    -967,  -967,  -967,  -967,  -967,   826,  -967,  -967,  -967,  -967,
1962 >     532,  -967,  -967,  -967,  -967,  -967,  -122,  -967,  -967,  -967,
1963 >     528,  -967,  -967,  -967,  -967,  -118,  -967,  -967,  -967,   754,
1964 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1965 >     -95,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,   630,
1966 >    -967,  -967,  -967,  -967,  -967,   717,  -967,  -967,  -967,  -967,
1967 >     985,  -967,  -967,  -967,  -967,   708,  -967,  -967,  -967,  -967,
1968 >     937,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1969 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1970 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1971 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1972 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,    37,  -967,  -967,
1973 >    -967,    41,  -967,  -967,  -967,  -967,  -967,  1012,  -967,  -967,
1974 >    -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
1975 >    -967,  -967,  -967,   920,  -967,  -967,  -967,  -967,  -967,  -967,
1976 >    -967
1977   };
1978  
1979   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1980     positive, shift that token.  If negative, reduce the rule which
1981     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1982 < #define YYTABLE_NINF -108
1982 > #define YYTABLE_NINF -114
1983   static const yytype_int16 yytable[] =
1984   {
1985 <     806,   807,   573,   574,   236,   220,    45,    46,   220,   373,
1986 <     581,   462,   383,   805,   667,   668,   286,   110,  1076,    67,
1987 <     984,  1030,   227,   555,   985,   462,   286,   669,   670,   110,
1988 <      47,   555,  1001,  1002,  1003,  1004,  1005,   383,    48,   116,
1989 <     237,    52,    68,   986,   117,   118,    54,   987,  1049,    69,
1990 <     119,    58,  1050,    59,   238,   239,   240,   241,   120,   443,
1991 <     227,  1051,    67,   291,   121,  1052,   122,   123,   124,   374,
1992 <    1176,   492,   242,   125,  1177,   444,   251,   111,    62,   126,
1993 <     127,    63,   128,   129,   130,    68,    66,   493,   131,   111,
1994 <     445,   107,    69,   132,   446,   630,   631,   133,   134,   252,
1995 <     384,   135,   494,   638,   287,   640,   495,    70,   228,  1193,
1996 <     136,   556,   647,   108,   287,   650,   471,   137,   138,   556,
1997 <     139,   140,   141,   142,   143,   384,   661,   662,   375,   546,
1998 <     463,   385,   253,   109,   229,   144,   673,   674,   115,   676,
1999 <     217,   145,   146,   147,   463,   148,   228,   511,   149,   150,
2000 <      70,   472,   151,  1077,   218,   946,   385,   219,  1078,   496,
2001 <     512,   464,   386,    76,   254,  1178,   255,   256,   234,  1179,
2002 <     447,   473,   229,   557,  1182,   464,   474,   235,  1183,   448,
2003 <     449,   557,   497,    77,    78,   946,   152,   386,  1184,    79,
2004 <     153,   284,  1185,   154,   155,   156,   157,   158,  1186,   498,
2005 <     159,   160,  1187,   257,  1031,   258,   259,   260,   261,   546,
2006 <     511,   450,   221,   742,   743,   221,   465,   547,  -107,   526,
2007 <     484,  -107,   262,   512,   620,   565,   695,   732,    80,    81,
2008 <     465,   563,   475,   313,   295,    82,    83,    84,   765,   513,
2009 <     161,   162,   163,   947,   381,   164,   263,   314,   315,  1196,
2010 <     165,   316,   627,  1197,   441,  1198,   264,    85,    86,  1199,
2011 <     471,   344,   499,   345,   451,   346,   514,   373,  1200,   285,
2012 <      87,    88,  1201,   947,   690,   490,   500,   347,  1202,   548,
2013 <     292,    89,  1203,  1225,   265,   266,   719,  1226,   482,    90,
2014 <     795,   544,   348,   746,   747,   472,   349,   547,   803,   804,
2015 <     810,   811,   513,   293,   294,   948,   297,   298,   317,   318,
2016 <     319,   299,   300,   320,   301,   473,   350,  1210,   351,   302,
2017 <     474,   321,  1055,  1018,  1019,  1020,   303,   374,   352,   514,
2018 <     304,   702,   322,   323,   549,   948,   305,   306,   443,  1211,
2019 <     486,  1212,  1056,   307,   760,   308,   487,   324,   325,   353,
2020 <     309,   310,  1057,   380,   444,  1173,  1174,  1175,  1058,   548,
2021 <     392,   393,   725,   394,   528,   395,   396,   949,   397,   445,
2022 <    1090,   398,   566,   446,  1059,   326,   475,   354,   311,  1213,
2023 <     568,   399,   251,   116,   400,   401,   375,   402,   117,   118,
2024 <     492,   403,   404,   405,   119,   406,   407,   949,   408,  1060,
2025 <     409,   410,   120,   411,   355,   252,   493,  1061,   121,   412,
2026 <     122,   123,   124,   805,   549,   413,   327,   125,   414,   415,
2027 <     416,   494,   417,   126,   127,   495,   128,   129,   130,   418,
2028 <     419,   356,   131,   420,   422,   424,   425,   132,   253,   426,
2029 <     427,   133,   134,   428,   429,   135,  1062,   430,   600,   447,
2030 <    1214,  1215,   431,   432,   136,   433,   434,   435,   448,   449,
2031 <     436,   137,   138,  1063,   139,   140,   141,   142,   143,   357,
2032 <     254,   437,   255,   256,   438,   439,   616,   567,   496,   144,
2033 <     440,   483,   488,  1216,   569,   145,   146,   147,   489,   148,
2034 <     450,  1194,   149,   150,   520,   570,   151,   521,   522,   523,
2035 <     344,   497,   345,   524,   346,   525,   529,   530,   531,   257,
2036 <     532,   258,   259,   260,   261,  1094,   347,   533,   498,   534,
2037 <     535,   536,   537,   538,  1147,   539,   540,   571,   262,   572,
2038 <     152,   348,   313,   541,   153,   349,  1095,   154,   155,   156,
2039 <     157,   158,   542,   451,   159,   160,   314,   315,   543,   562,
2040 <     316,  1096,   263,   572,   575,   350,   576,   351,  1097,   578,
2041 <     577,   579,   264,   580,   582,   583,   584,   352,   775,   776,
2042 <     777,   778,   779,   585,   586,  1098,   622,   629,   587,   588,
2043 <     589,   499,   590,   591,   161,   162,   163,   592,   353,   164,
2044 <     265,   266,   593,   594,   165,   500,  1148,   595,  1099,   602,
2045 <     632,   596,   861,   633,   597,  1100,   598,   317,   318,   319,
2046 <       2,     3,   320,   599,     4,   603,   354,  1101,   604,   634,
2047 <     321,   605,   623,   635,     5,  1149,   606,     6,     7,   608,
2048 <     609,   322,   323,     8,  1150,  1102,  1103,  1104,   610,   236,
2049 <    1151,   611,   612,   355,     9,   613,   324,   325,    10,    11,
2050 <     884,   614,   615,   618,  1152,   619,  1153,  1154,    12,   624,
2051 <     625,   636,   637,   639,   641,  1155,   642,   643,   644,   645,
2052 <     356,  1156,    13,   646,   326,   237,   648,   649,  1118,   651,
2053 <      14,    15,   652,   654,   653,  1105,   655,   656,   657,   238,
2054 <     239,   240,   241,   658,  1106,   659,   660,   663,    16,  1107,
2055 <     664,   665,   666,   675,   671,  1108,   672,   242,   357,  1109,
2056 <     677,  1110,    17,   678,   679,   327,  1111,   862,   863,   864,
2057 <     865,   866,  1112,   867,   868,   680,   869,   870,   871,  1161,
2058 <     681,   872,   682,   873,   874,   683,   875,   685,   876,   686,
2059 <     877,   878,   704,   687,   879,   752,    18,   688,   689,   706,
2060 <     880,   692,   694,   697,   699,    19,    20,   700,   707,    21,
2061 <      22,   708,   705,   701,   709,   885,   886,   887,   888,   889,
2062 <     710,   890,   891,   721,   892,   893,   894,   711,   712,   895,
2063 <     714,   896,   897,   727,   898,   728,   899,   715,   900,   901,
2064 <     716,   718,   902,  1119,  1120,  1121,  1122,  1123,   903,  1124,
2065 <    1125,  1162,  1126,  1127,  1128,   729,   722,  1129,    76,  1130,
2066 <    1131,    23,  1132,   723,  1133,   724,  1134,  1135,   730,   731,
2067 <    1136,   733,   734,   735,   736,   737,  1137,   738,    77,    78,
2068 <    1163,   739,   740,   741,    79,   750,   751,   753,   754,  1164,
2069 <     757,   755,   759,   756,   762,  1165,   767,   768,   763,   769,
2070 <     770,   771,   772,   793,   773,   794,   774,   782,   796,  1166,
2071 <     783,  1167,  1168,   784,   785,   786,   787,   788,   789,   790,
2072 <    1169,   791,   792,    80,    81,   797,  1170,   798,   799,   800,
2073 <      82,    83,    84,   801,   802,   805,   808,   809,   812,   813,
2074 <     814,   815,   816,   817,   819,   818,   823,   826,   820,   821,
2075 <     822,   824,    85,    86,   827,   825,   828,   829,   830,   831,
2076 <     832,   833,   834,   835,   836,    87,    88,   837,   838,   925,
2077 <     839,   928,   929,   840,   926,   841,    89,   842,   930,   927,
2078 <     931,   843,   932,   934,    90,   936,   844,   845,   846,   847,
2079 <     848,   849,   850,   939,   940,   851,   852,   853,   854,   855,
2080 <     856,   857,   858,   859,   860,   883,   906,   907,   908,   909,
2081 <     910,   911,   912,   913,   914,   915,   916,   917,   918,   941,
2082 <     919,   957,   920,   921,   960,   922,   958,   923,   924,   961,
2083 <     933,   962,   937,   964,   935,   966,   938,   944,  1145,   959,
2084 <     967,   968,   993,   995,   997,   296,  1083,  1188,  1091,  1144,
2085 <    1227,   720,  1046,  1222,  1221,   945,   955,   956,   601,   965,
2086 <    1208,   963,   969,   970,   971,   972,  1072,   973,   485,   974,
2087 <     975,   976,  1189,   977,   978,   703,   979,   691,   980,  1191,
2088 <    1206,   726,   761,   981,   982,   983,   988,   989,  1223,   990,
2089 <    1204,   766,   991,   992,  1224,   996,   617,   994,   999,   998,
2090 <    1000,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,  1014,
2091 <    1015,  1016,  1017,  1023,  1024,  1025,  1026,  1027,  1207,  1028,
2092 <    1029,   696,  1034,  1035,  1036,  1037,   621,  1038,   382,  1039,
2093 <    1205,  1040,  1180,  1041,  1042,   442,  1043,  1181,   312,   628,
2094 <       0,     0,  1044,  1045,     0,  1053,  1054,  1066,  1067,  1068,
2095 <    1069,  1070,  1071,  1075,  1081,  1082,     0,  1086,     0,     0,
2096 <    1084,  1092,  1087,  1089,  1093,  1115,  1116,  1117,  1140,  1141,
2097 <    1142,  1143,  1146,  1159,  1160,  1190,     0,   491,  1195,  1209,
2098 <    1192,  1219,  1220,     0,     0,     0,     0,     0,     0,     0,
2099 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2040 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2041 <       0,     0,     0,   527,     0,     0,     0,     0,     0,     0,
1985 >     813,   814,   576,   577,  1045,   464,   558,   288,    67,    47,
1986 >     584,   232,   108,   812,    48,   223,   378,   992,   511,   288,
1987 >     549,   993,   471,   108,   445,   994,  1061,   378,   951,   995,
1988 >    1062,    68,    52,   511,   216,    54,   558,   249,    69,  1086,
1989 >     446,  1063,  1183,   216,  1188,  1064,  1184,   233,  1189,  1192,
1990 >    1194,   512,   293,  1193,  1195,   447,   471,   472,    58,   448,
1991 >     250,   234,   235,   236,   237,   238,   512,  1185,  1186,  1187,
1992 >     388,   388,   464,   109,    59,  1204,    62,   379,   473,  1205,
1993 >     239,  1206,  1208,   474,   109,  1207,  1209,    63,   379,    66,
1994 >     513,   472,   105,   223,   251,  1210,   633,   634,   106,  1211,
1995 >     107,   559,   289,    70,   641,   513,   643,   549,   224,  1201,
1996 >      45,    46,   473,   650,   289,   550,   653,   474,   252,   114,
1997 >     113,   951,   253,   952,   115,   116,   663,   664,   213,   465,
1998 >     117,   559,   254,   225,   255,   256,   675,   676,   118,   678,
1999 >     380,   449,   514,   475,   119,   214,   120,   121,   122,   450,
2000 >     451,   380,  1232,   123,   669,   670,  1233,   514,   215,   124,
2001 >     125,   560,   126,   127,   128,   389,   389,   257,   129,   258,
2002 >     259,   260,   261,   230,   130,   551,   231,   475,   131,   132,
2003 >    1087,   452,   133,   953,   286,  1088,   224,   287,   262,   671,
2004 >     672,   560,   134,  1046,   390,   390,   465,   294,    76,   135,
2005 >     295,   136,   550,   137,   296,   138,   139,   140,   299,   746,
2006 >     747,   225,   263,  1033,  1034,  1035,   952,   466,    77,    78,
2007 >     300,   141,   264,   301,    79,   314,   734,   142,   143,   144,
2008 >     297,   145,   552,   527,   146,   147,   453,   490,   148,   315,
2009 >     316,   566,   764,   317,   703,   386,   692,   954,   217,   624,
2010 >    1100,   482,   265,   266,  -113,   726,   484,   217,   769,   547,
2011 >     318,   486,   551,  -113,    80,    81,   750,   751,   817,   818,
2012 >     302,   149,    82,    83,    84,   150,   953,   303,   151,   152,
2013 >     153,   154,   155,    67,   466,   156,   157,  1019,  1020,   304,
2014 >     800,   349,   630,   350,   696,   351,   806,   807,    85,    86,
2015 >     305,   811,   319,   320,   321,   306,    68,   352,   322,   812,
2016 >     487,    87,    88,    69,   323,   324,   307,   529,   308,   552,
2017 >     325,    89,   353,   492,   309,   310,   354,   158,   159,   160,
2018 >     326,   327,   161,   311,   445,   385,   395,   162,   396,   493,
2019 >     954,   443,   397,   574,   398,   328,   399,   355,   400,   356,
2020 >     446,   401,   402,   403,   494,   404,   405,   406,   495,   357,
2021 >     407,   408,   114,   409,   410,   447,   411,   115,   116,   448,
2022 >    1217,   412,   329,   117,   413,   414,   415,   416,    70,   417,
2023 >     418,   118,   419,   420,   421,   422,   358,   119,   424,   120,
2024 >     121,   122,   426,  1218,   427,  1219,   123,   428,   429,   492,
2025 >     430,   431,   124,   125,   249,   126,   127,   128,   432,   433,
2026 >     434,   129,   359,   435,   330,   493,   436,   130,   496,   437,
2027 >     312,   131,   132,   438,   439,   133,   440,   250,   441,   568,
2028 >     494,   442,   483,   488,   495,   134,   489,   520,  1220,   360,
2029 >     497,   521,   135,   522,   136,   523,   137,   604,   138,   139,
2030 >     140,   449,   524,   525,   498,   526,   530,   531,   532,   450,
2031 >     451,   251,   533,   534,   141,   535,   361,   536,   537,   538,
2032 >     142,   143,   144,   539,   145,   540,   541,   146,   147,   542,
2033 >     543,   148,   544,   545,   546,   252,   565,   569,   570,   253,
2034 >     571,   452,   572,   573,   496,   575,   349,  1202,   350,   254,
2035 >     351,   255,   256,   581,   578,  1104,   362,   579,  1221,  1222,
2036 >     580,   582,   352,   620,   149,   583,   497,   585,   150,   586,
2037 >     499,   151,   152,   153,   154,   155,  1105,   353,   156,   157,
2038 >     498,   354,   587,   588,   257,   500,   258,   259,   260,   261,
2039 >     589,  1106,   590,  1223,   592,   720,   453,   626,  1107,   593,
2040 >     594,   595,   355,   596,   356,   262,   597,  1067,   632,   598,
2041 >     599,   600,   601,   606,   357,   602,  1108,   603,   607,   608,
2042 >     158,   159,   160,   609,   610,   161,   612,  1068,   613,   263,
2043 >     162,   614,   615,   616,     2,     3,   635,  1069,     4,   264,
2044 >     627,   358,   617,  1070,   618,  1109,   499,   575,     5,   619,
2045 >     622,     6,     7,   623,   628,   629,   636,     8,   637,   232,
2046 >    1071,   500,   638,  1110,   639,   640,   642,   359,     9,   265,
2047 >     266,   644,    10,    11,   645,   646,   647,   648,   649,  1111,
2048 >    1112,  1113,    12,   779,   780,   781,   782,   783,   784,   785,
2049 >     651,  1072,   866,   652,   360,   233,   654,    13,  1073,   658,
2050 >     655,   656,   657,   659,   314,    14,    15,   660,   661,   234,
2051 >     235,   236,   237,   238,   662,   665,   677,   666,   315,   316,
2052 >     667,   361,   317,   668,   673,   674,   679,   680,   239,    16,
2053 >    1114,   682,  1127,   681,  1074,   684,   683,   698,   705,   318,
2054 >    1115,   685,    17,   687,   688,  1116,   689,   690,   691,   694,
2055 >     695,  1117,   700,  1075,   701,  1118,   708,   702,  1119,   706,
2056 >     707,   362,   709,  1120,   712,   713,   710,   728,   890,  1121,
2057 >     711,   715,   716,    18,  1009,  1010,  1011,  1012,  1013,  1014,
2058 >    1015,   319,   320,   321,    19,    20,   722,   322,    21,    22,
2059 >     717,  1157,   719,   323,   324,   729,   723,   724,   730,   325,
2060 >    1076,   725,   731,   732,  1171,   733,   735,   736,   737,   326,
2061 >     327,   738,   867,   868,   869,   870,   871,   739,   872,   873,
2062 >     740,   874,   875,   876,   328,   741,   877,   742,   878,   879,
2063 >     880,   743,   881,   744,   882,   756,   883,   884,   745,   754,
2064 >     885,   755,    23,   757,   758,   759,   886,   760,   766,   761,
2065 >     771,   329,  1128,  1129,  1130,  1131,  1132,   763,  1133,  1134,
2066 >     767,  1135,  1136,  1137,   772,  1158,  1138,   773,  1139,  1140,
2067 >    1141,   774,  1142,   775,  1143,   776,  1144,  1145,  1172,   777,
2068 >    1146,   778,   788,   789,   790,   791,  1147,   792,   891,   892,
2069 >     893,   894,   895,   330,   896,   897,  1159,   898,   899,   900,
2070 >     793,   794,   901,   798,   902,  1160,   903,   795,   904,  1173,
2071 >     905,  1161,   906,   907,    76,   796,   908,   797,  1174,   799,
2072 >     802,   801,   909,   803,  1175,   804,  1162,   805,  1163,  1164,
2073 >     808,   809,   810,   812,    77,    78,   815,   820,  1165,  1176,
2074 >      79,  1177,  1178,   826,  1166,   935,   816,   819,   821,   933,
2075 >     830,  1179,   822,   823,   824,   825,   827,  1180,   828,   829,
2076 >     831,   943,   832,   833,   834,   835,   836,   837,   838,   839,
2077 >     840,   841,   842,   843,   844,   845,   846,   847,   848,   849,
2078 >      80,    81,   850,   851,   852,   853,   854,   855,    82,    83,
2079 >      84,   856,   857,   858,   931,   859,   860,   861,   862,   863,
2080 >     864,   865,   889,   912,   913,   914,   915,   916,   917,   918,
2081 >     919,   920,   921,   922,    85,    86,   923,   924,   925,   926,
2082 >     932,   927,   928,   929,   930,   934,   936,    87,    88,   937,
2083 >     938,   939,   940,   941,   942,   944,   946,    89,   945,   949,
2084 >     962,   950,   963,   960,   965,   966,   967,   961,   969,   971,
2085 >     972,   973,  1001,  1003,  1155,  1005,  1154,   298,  1101,   964,
2086 >     548,  1234,   485,  1229,   721,  1228,   968,   970,   974,   975,
2087 >     976,   977,   978,   979,   980,   981,   982,  1196,   983,   984,
2088 >     985,   986,   987,   988,   989,   990,   991,   996,   997,   998,
2089 >     999,  1000,  1199,  1215,  1004,  1002,  1007,  1008,  1006,   605,
2090 >    1016,  1017,  1018,  1023,  1024,  1025,  1026,  1027,  1028,  1029,
2091 >    1030,  1031,  1032,  1038,  1039,  1040,  1041,  1042,  1043,  1044,
2092 >    1049,  1050,  1051,  1052,  1093,  1212,  1053,  1054,  1197,   704,
2093 >    1055,   693,  1214,  1056,   727,   765,  1057,  1230,  1058,   770,
2094 >    1059,  1060,  1065,  1231,  1213,   387,  1066,   697,   625,   631,
2095 >     444,  1191,   313,  1190,     0,  1079,  1080,  1081,  1082,  1083,
2096 >    1084,  1085,  1091,  1092,     0,  1096,   567,   621,  1094,  1097,
2097 >    1099,  1102,  1103,  1124,  1125,  1126,  1150,     0,  1151,  1152,
2098 >    1153,  1156,  1169,  1170,  1198,     0,  1203,  1216,  1200,  1226,
2099 >    1227,     0,   491,     0,     0,     0,     0,     0,     0,     0,
2100         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2101 <       0,     0,   545,     0,     0,     0,     0,     0,     0,     0,
2044 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2045 <       0,     0,     0,     0,     0,     0,   564
2101 >     528
2102   };
2103  
2104   #define yypact_value_is_default(Yystate) \
2105 <  (!!((Yystate) == (-744)))
2105 >  (!!((Yystate) == (-967)))
2106  
2107   #define yytable_value_is_error(Yytable_value) \
2108    YYID (0)
2109  
2110   static const yytype_int16 yycheck[] =
2111   {
2112 <     598,   599,   300,   301,     1,     1,   215,   216,     1,     1,
2113 <     308,     1,     1,    99,   160,   161,     1,     1,    51,     1,
2114 <     215,     8,     1,     1,   219,     1,     1,   160,   161,     1,
2115 <     217,     1,   775,   776,   777,   778,   779,     1,   217,     1,
2116 <      37,   217,    24,   215,     6,     7,   217,   219,   215,    31,
2117 <      12,   217,   219,   217,    51,    52,    53,    54,    20,     1,
2118 <       1,   215,     1,   215,    26,   219,    28,    29,    30,    61,
2119 <     215,     1,    69,    35,   219,    17,     1,    61,   217,    41,
2120 <      42,   217,    44,    45,    46,    24,   217,    17,    50,    61,
2121 <      32,   217,    31,    55,    36,   393,   394,    59,    60,    24,
2122 <      89,    63,    32,   401,    89,   403,    36,    89,    87,   195,
2123 <      72,    89,   410,   217,    89,   413,     1,    79,    80,    89,
2124 <      82,    83,    84,    85,    86,    89,   424,   425,   120,     1,
2125 <     120,   120,    57,   217,   113,    97,   434,   435,   217,   437,
2126 <     217,   103,   104,   105,   120,   107,    87,     1,   110,   111,
2127 <      89,    36,   114,   186,   217,     1,   120,   217,   191,    89,
2128 <      14,   151,   151,     1,    89,   215,    91,    92,   217,   219,
2129 <     112,    56,   113,   151,   215,   151,    61,   217,   219,   121,
2130 <     122,   151,   112,    21,    22,     1,   148,   151,   215,    27,
2131 <     152,   217,   219,   155,   156,   157,   158,   159,   215,   129,
2132 <     162,   163,   219,   128,   191,   130,   131,   132,   133,     1,
2133 <       1,   153,   208,   134,   135,   208,   206,    89,   214,   216,
2134 <     216,   214,   147,    14,   216,   118,   216,   525,    66,    67,
2135 <     206,   216,   117,     1,   216,    73,    74,    75,   216,    93,
2136 <     202,   203,   204,    89,   216,   207,   171,    15,    16,   215,
2137 <     212,    19,   216,   219,   216,   215,   181,    95,    96,   219,
2138 <       1,     1,   192,     3,   206,     5,   120,     1,   215,   217,
2139 <     108,   109,   219,    89,   216,   216,   206,    17,   215,   151,
2140 <     218,   119,   219,   215,   209,   210,   216,   219,   215,   127,
2141 <     588,   216,    32,   134,   135,    36,    36,    89,   596,   597,
2142 <     178,   179,    93,   218,   218,   151,   218,   218,    76,    77,
2143 <      78,   218,   218,    81,   218,    56,    56,    40,    58,   218,
2144 <      61,    89,    13,     9,    10,    11,   218,    61,    68,   120,
2145 <     218,   216,   100,   101,   206,   151,   218,   218,     1,    62,
2146 <     214,    64,    33,   218,   216,   218,   215,   115,   116,    89,
2147 <     218,   218,    43,   218,    17,  1018,  1019,  1020,    49,   151,
2148 <     218,   218,   216,   218,   215,   218,   218,   213,   218,    32,
2149 <     216,   218,   118,    36,    65,   143,   117,   117,   216,   102,
2150 <     215,   218,     1,     1,   218,   218,   120,   218,     6,     7,
2151 <       1,   218,   218,   218,    12,   218,   218,   213,   218,    90,
2152 <     218,   218,    20,   218,   144,    24,    17,    98,    26,   218,
2153 <      28,    29,    30,    99,   206,   218,   184,    35,   218,   218,
2154 <     218,    32,   218,    41,    42,    36,    44,    45,    46,   218,
2155 <     218,   171,    50,   218,   218,   218,   218,    55,    57,   218,
2156 <     218,    59,    60,   218,   218,    63,   137,   218,   216,   112,
2157 <     173,   174,   218,   218,    72,   218,   218,   218,   121,   122,
2158 <     218,    79,    80,   154,    82,    83,    84,    85,    86,   209,
2159 <      89,   218,    91,    92,   218,   218,   216,   118,    89,    97,
2160 <     218,   218,   218,   206,    99,   103,   104,   105,   218,   107,
2161 <     153,  1089,   110,   111,   218,    99,   114,   218,   218,   218,
2162 <       1,   112,     3,   218,     5,   218,   218,   218,   218,   128,
2163 <     218,   130,   131,   132,   133,     4,    17,   218,   129,   218,
2164 <     218,   218,   218,   218,    64,   218,   218,   160,   147,    99,
2165 <     148,    32,     1,   218,   152,    36,    25,   155,   156,   157,
2166 <     158,   159,   218,   206,   162,   163,    15,    16,   218,   218,
2167 <      19,    40,   171,    99,    99,    56,    99,    58,    47,   160,
2168 <      99,   160,   181,    99,   160,   160,   215,    68,   138,   139,
2169 <     140,   141,   142,   215,   218,    64,   118,   160,   218,   218,
2170 <     218,   192,   218,   218,   202,   203,   204,   218,    89,   207,
2171 <     209,   210,   218,   218,   212,   206,   136,   218,    87,   215,
2172 <      99,   218,    51,   160,   218,    94,   218,    76,    77,    78,
2173 <       0,     1,    81,   218,     4,   218,   117,   106,   218,   160,
2174 <      89,   218,   215,    99,    14,   165,   218,    17,    18,   218,
2175 <     218,   100,   101,    23,   174,   124,   125,   126,   218,     1,
2176 <     180,   218,   218,   144,    34,   218,   115,   116,    38,    39,
2177 <      51,   218,   218,   218,   194,   218,   196,   197,    48,   218,
2178 <     218,   118,   160,   160,    99,   205,    99,    99,   160,   160,
2179 <     171,   211,    62,   160,   143,    37,    99,    99,    51,    99,
2180 <      70,    71,    99,    99,   118,   174,    99,   160,   160,    51,
2181 <      52,    53,    54,   218,   183,   160,   218,   160,    88,   188,
2182 <     160,   160,   160,   118,   160,   194,   160,    69,   209,   198,
2183 <     160,   200,   102,   160,   160,   184,   205,   166,   167,   168,
2184 <     169,   170,   211,   172,   173,   215,   175,   176,   177,    64,
2185 <     215,   180,   218,   182,   183,   218,   185,   218,   187,   218,
2186 <     189,   190,   160,   218,   193,    99,   136,   218,   218,   217,
2187 <     199,   218,   218,   215,   218,   145,   146,   218,   118,   149,
2188 <     150,   118,   215,   218,   215,   166,   167,   168,   169,   170,
2189 <     215,   172,   173,   215,   175,   176,   177,   218,   218,   180,
2190 <     218,   182,   183,   160,   185,   160,   187,   218,   189,   190,
2191 <     218,   218,   193,   166,   167,   168,   169,   170,   199,   172,
2192 <     173,   136,   175,   176,   177,   118,   218,   180,     1,   182,
2193 <     183,   201,   185,   218,   187,   218,   189,   190,   160,   160,
2194 <     193,   215,   118,   160,   118,   118,   199,   118,    21,    22,
2195 <     165,   118,   118,   118,    27,   118,   118,   118,   118,   174,
2196 <     218,   215,   218,   215,   215,   180,   118,   215,   218,   215,
2197 <     215,   215,   215,    99,   215,    99,   215,   215,    99,   194,
2198 <     215,   196,   197,   215,   215,   215,   215,   215,   215,   215,
2199 <     205,   215,   215,    66,    67,    99,   211,    99,    99,   118,
2200 <      73,    74,    75,    99,    99,    99,   215,   118,   118,   160,
2201 <     218,   118,   118,   118,    99,   118,   215,   215,   118,   118,
2202 <     118,   118,    95,    96,   215,   118,   118,   118,   218,   215,
2203 <     215,   215,   215,   215,   215,   108,   109,   215,   215,   118,
2204 <     215,   118,    99,   215,   160,   215,   119,   215,   118,   218,
2205 <     118,   215,   118,   118,   127,   118,   215,   215,   215,   215,
2206 <     215,   215,   215,   118,   118,   215,   215,   215,   215,   215,
2207 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2208 <     215,   215,   215,   215,   215,   215,   215,   215,   215,    99,
2209 <     215,   118,   215,   215,   118,   215,   160,   215,   215,   118,
2210 <     215,   118,   215,   118,   218,   118,   218,   215,   987,   218,
2211 <     118,   118,   118,   118,   118,    71,   164,    99,   950,   985,
2212 <    1226,   501,   123,  1199,  1197,   215,   215,   215,   328,   215,
2213 <    1187,   218,   215,   215,   215,   215,   123,   215,   222,   215,
2214 <     215,   215,  1084,   215,   215,   477,   215,   452,   215,   118,
2215 <    1183,   515,   550,   215,   215,   215,   215,   215,  1201,   215,
2216 <    1177,   558,   215,   215,  1203,   215,   358,   218,   215,   218,
2217 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2218 <     215,   215,   215,   215,   215,   215,   215,   215,  1185,   215,
2219 <     215,   467,   215,   215,   215,   215,   376,   215,   112,   215,
2220 <    1179,   215,  1050,   215,   215,   166,   215,  1052,    91,   388,
2221 <      -1,    -1,   215,   215,    -1,   215,   215,   215,   215,   215,
2222 <     215,   215,   215,   215,   215,   215,    -1,   215,    -1,    -1,
2223 <     219,   215,   218,   218,   215,   215,   215,   215,   215,   215,
2224 <     215,   215,   215,   215,   215,   215,    -1,   230,   215,   215,
2225 <     218,   215,   215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2226 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2171 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2172 <      -1,    -1,    -1,   243,    -1,    -1,    -1,    -1,    -1,    -1,
2173 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2174 <      -1,    -1,   267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2112 >     602,   603,   302,   303,     8,     1,     1,     1,     1,   224,
2113 >     310,     1,     1,   105,   224,     1,     1,   222,     1,     1,
2114 >       1,   226,     1,     1,     1,   222,   222,     1,     1,   226,
2115 >     226,    24,   224,     1,     1,   224,     1,     1,    31,    51,
2116 >      17,   222,   222,     1,   222,   226,   226,    37,   226,   222,
2117 >     222,    34,   222,   226,   226,    32,     1,    36,   224,    36,
2118 >      24,    51,    52,    53,    54,    55,    34,  1033,  1034,  1035,
2119 >       1,     1,     1,    62,   224,   222,   224,    62,    57,   226,
2120 >      70,   222,   222,    62,    62,   226,   226,   224,    62,   224,
2121 >      73,    36,   224,     1,    58,   222,   396,   397,   224,   226,
2122 >     224,    96,    96,    96,   404,    73,   406,     1,    94,   201,
2123 >     222,   223,    57,   413,    96,    96,   416,    62,    82,     1,
2124 >     224,     1,    86,    96,     6,     7,   426,   427,   224,   125,
2125 >      12,    96,    96,   119,    98,    99,   436,   437,    20,   439,
2126 >     125,   118,   125,   122,    26,   224,    28,    29,    30,   126,
2127 >     127,   125,   222,    35,   165,   166,   226,   125,   224,    41,
2128 >      42,   156,    44,    45,    46,    96,    96,   131,    50,   133,
2129 >     134,   135,   136,   224,    56,   156,   224,   122,    60,    61,
2130 >     192,   158,    64,   156,   224,   197,    94,   224,   152,   165,
2131 >     166,   156,    74,   197,   125,   125,   125,   225,     1,    81,
2132 >     225,    83,    96,    85,   225,    87,    88,    89,   225,   137,
2133 >     138,   119,   176,     9,    10,    11,    96,   213,    21,    22,
2134 >     225,   103,   186,   225,    27,     1,   526,   109,   110,   111,
2135 >     223,   113,   213,   223,   116,   117,   213,   223,   120,    15,
2136 >      16,   223,   223,    19,   223,   223,   223,   220,   215,   223,
2137 >     223,   222,   216,   217,   221,   223,   223,   215,   223,   223,
2138 >      36,   221,   156,   221,    67,    68,   137,   138,   183,   184,
2139 >     225,   153,    75,    76,    77,   157,   156,   225,   160,   161,
2140 >     162,   163,   164,     1,   213,   167,   168,    92,    93,   225,
2141 >     590,     1,   223,     3,   223,     5,   596,   597,   101,   102,
2142 >     225,   601,    78,    79,    80,   225,    24,    17,    84,   105,
2143 >     222,   114,   115,    31,    90,    91,   225,   222,   225,   213,
2144 >      96,   124,    32,     1,   225,   225,    36,   209,   210,   211,
2145 >     106,   107,   214,   225,     1,   225,   225,   219,   225,    17,
2146 >     220,   223,   225,   165,   225,   121,   225,    57,   225,    59,
2147 >      17,   225,   225,   225,    32,   225,   225,   225,    36,    69,
2148 >     225,   225,     1,   225,   225,    32,   225,     6,     7,    36,
2149 >      40,   225,   148,    12,   225,   225,   225,   225,    96,   225,
2150 >     225,    20,   225,   225,   225,   225,    96,    26,   225,    28,
2151 >      29,    30,   225,    63,   225,    65,    35,   225,   225,     1,
2152 >     225,   225,    41,    42,     1,    44,    45,    46,   225,   225,
2153 >     225,    50,   122,   225,   190,    17,   225,    56,    96,   225,
2154 >     223,    60,    61,   225,   225,    64,   225,    24,   225,   123,
2155 >      32,   225,   225,   225,    36,    74,   225,   225,   108,   149,
2156 >     118,   225,    81,   225,    83,   225,    85,   223,    87,    88,
2157 >      89,   118,   225,   225,   132,   225,   225,   225,   225,   126,
2158 >     127,    58,   225,   225,   103,   225,   176,   225,   225,   225,
2159 >     109,   110,   111,   225,   113,   225,   225,   116,   117,   225,
2160 >     225,   120,   225,   225,   225,    82,   225,   123,   123,    86,
2161 >     222,   158,   105,   105,    96,   105,     1,  1099,     3,    96,
2162 >       5,    98,    99,   165,   105,     4,   216,   105,   178,   179,
2163 >     105,   165,    17,   223,   153,   105,   118,   165,   157,   222,
2164 >     198,   160,   161,   162,   163,   164,    25,    32,   167,   168,
2165 >     132,    36,   222,   225,   131,   213,   133,   134,   135,   136,
2166 >     225,    40,   225,   213,   225,   223,   213,   123,    47,   225,
2167 >     225,   225,    57,   225,    59,   152,   225,    13,   165,   225,
2168 >     225,   225,   225,   222,    69,   225,    65,   225,   225,   225,
2169 >     209,   210,   211,   225,   225,   214,   225,    33,   225,   176,
2170 >     219,   225,   225,   225,     0,     1,   105,    43,     4,   186,
2171 >     222,    96,   225,    49,   225,    94,   198,   105,    14,   225,
2172 >     225,    17,    18,   225,   225,   225,   165,    23,   165,     1,
2173 >      66,   213,   105,   112,   123,   165,   165,   122,    34,   216,
2174 >     217,   105,    38,    39,   105,   105,   165,   165,   165,   128,
2175 >     129,   130,    48,   141,   142,   143,   144,   145,   146,   147,
2176 >     105,    97,    51,   105,   149,    37,   105,    63,   104,   165,
2177 >     105,   105,   105,   165,     1,    71,    72,   225,   165,    51,
2178 >      52,    53,    54,    55,   225,   165,   123,   165,    15,    16,
2179 >     165,   176,    19,   165,   165,   165,   165,   165,    70,    95,
2180 >     179,   222,    51,   165,   140,   225,   222,   222,   165,    36,
2181 >     189,   225,   108,   225,   225,   194,   225,   225,   225,   225,
2182 >     225,   200,   225,   159,   225,   204,   123,   225,   207,   222,
2183 >     224,   216,   123,   212,   225,   225,   222,   165,    51,   218,
2184 >     222,   225,   225,   139,   779,   780,   781,   782,   783,   784,
2185 >     785,    78,    79,    80,   150,   151,   222,    84,   154,   155,
2186 >     225,    65,   225,    90,    91,   165,   225,   225,   123,    96,
2187 >     206,   225,   165,   165,    65,   165,   222,   123,   165,   106,
2188 >     107,   105,   171,   172,   173,   174,   175,   105,   177,   178,
2189 >     123,   180,   181,   182,   121,   123,   185,   123,   187,   188,
2190 >     189,   123,   191,   123,   193,   105,   195,   196,   123,   123,
2191 >     199,   123,   208,   123,   123,   222,   205,   222,   222,   225,
2192 >     123,   148,   171,   172,   173,   174,   175,   225,   177,   178,
2193 >     225,   180,   181,   182,   222,   139,   185,   222,   187,   188,
2194 >     189,   222,   191,   222,   193,   222,   195,   196,   139,   222,
2195 >     199,   222,   222,   222,   222,   222,   205,   222,   171,   172,
2196 >     173,   174,   175,   190,   177,   178,   170,   180,   181,   182,
2197 >     222,   222,   185,   105,   187,   179,   189,   222,   191,   170,
2198 >     193,   185,   195,   196,     1,   222,   199,   222,   179,   105,
2199 >     105,   225,   205,   105,   185,   105,   200,   105,   202,   203,
2200 >     123,   105,   105,   105,    21,    22,   222,   165,   212,   200,
2201 >      27,   202,   203,   105,   218,   105,   123,   123,   225,   225,
2202 >     222,   212,   123,   123,   123,   123,   123,   218,   123,   123,
2203 >     123,   225,   123,   222,   222,   123,   123,   222,   222,   222,
2204 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2205 >      67,    68,   222,   222,   222,   222,   222,   222,    75,    76,
2206 >      77,   222,   222,   222,   123,   222,   222,   222,   222,   222,
2207 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2208 >     222,   222,   222,   222,   101,   102,   222,   222,   222,   222,
2209 >     165,   222,   222,   222,   222,   123,   123,   114,   115,   123,
2210 >     123,   222,   123,   123,   222,   123,   105,   124,   123,   222,
2211 >     123,   222,   165,   222,   123,   123,   123,   222,   123,   123,
2212 >     123,   123,   123,   123,   995,   123,   993,    71,   955,   225,
2213 >     267,  1233,   218,  1207,   501,  1205,   225,   222,   222,   222,
2214 >     222,   222,   222,   222,   222,   222,   222,   105,   222,   222,
2215 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2216 >     222,   222,   123,  1195,   222,   225,   222,   222,   225,   331,
2217 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2218 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2219 >     222,   222,   222,   222,   169,  1184,   222,   222,  1094,   477,
2220 >     222,   454,  1193,   222,   515,   553,   222,  1209,   222,   561,
2221 >     222,   222,   222,  1211,  1189,   110,   222,   467,   381,   391,
2222 >     163,  1064,    90,  1062,    -1,   222,   222,   222,   222,   222,
2223 >     222,   222,   222,   222,    -1,   222,   290,   363,   226,   225,
2224 >     225,   222,   222,   222,   222,   222,   222,    -1,   222,   222,
2225 >     222,   222,   222,   222,   222,    -1,   222,   222,   225,   222,
2226 >     222,    -1,   226,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2227        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2228 <      -1,    -1,    -1,    -1,    -1,    -1,   288
2228 >     240
2229   };
2230  
2231   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2232     symbol of state STATE-NUM.  */
2233   static const yytype_uint16 yystos[] =
2234   {
2235 <       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
2236 <      38,    39,    48,    62,    70,    71,    88,   102,   136,   145,
2237 <     146,   149,   150,   201,   222,   227,   232,   254,   260,   274,
2238 <     292,   310,   324,   339,   346,   350,   360,   369,   389,   399,
2239 <     405,   409,   419,   477,   494,   215,   216,   217,   217,   293,
2240 <     370,   400,   217,   410,   217,   325,   390,   311,   217,   217,
2241 <     275,   340,   217,   217,   351,   361,   217,     1,    24,    31,
2242 <      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
2243 <      66,    67,    73,    74,    75,    95,    96,   108,   109,   119,
2244 <     127,   478,   479,   480,   481,   482,   483,   484,   485,   486,
2245 <     487,   488,   489,   490,   491,   492,   493,   217,   217,   217,
2246 <       1,    61,   406,   407,   408,   217,     1,     6,     7,    12,
2247 <      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
2248 <      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
2249 <      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
2250 <     111,   114,   148,   152,   155,   156,   157,   158,   159,   162,
2251 <     163,   202,   203,   204,   207,   212,   420,   421,   422,   423,
2252 <     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
2253 <     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
2254 <     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
2255 <     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2256 <     464,   465,   466,   470,   474,   475,   476,   217,   217,   217,
2257 <       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
2258 <     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
2259 <      53,    54,    69,   495,   496,   497,   498,   499,   500,   501,
2260 <     502,     1,    24,    57,    89,    91,    92,   128,   130,   131,
2261 <     132,   133,   147,   171,   181,   209,   210,   233,   234,   235,
2262 <     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2263 <     250,   251,   252,   253,   217,   217,     1,    89,   347,   348,
2264 <     349,   215,   218,   218,   218,   216,   256,   218,   218,   218,
2265 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2266 <     218,   216,   479,     1,    15,    16,    19,    76,    77,    78,
2267 <      81,    89,   100,   101,   115,   116,   143,   184,   294,   295,
2268 <     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2269 <     306,   307,   308,   309,     1,     3,     5,    17,    32,    36,
2270 <      56,    58,    68,    89,   117,   144,   171,   209,   371,   372,
2271 <     373,   374,   375,   376,   377,   378,   379,   380,   384,   385,
2272 <     386,   387,   388,     1,    61,   120,   401,   402,   403,   404,
2273 <     218,   216,   407,     1,    89,   120,   151,   411,   415,   416,
2274 <     417,   418,   218,   218,   218,   218,   218,   218,   218,   218,
2275 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2276 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2277 <     218,   471,   218,   467,   218,   218,   218,   218,   218,   218,
2278 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2279 <     218,   216,   421,     1,    17,    32,    36,   112,   121,   122,
2280 <     153,   206,   326,   327,   328,   329,   330,   331,   332,   336,
2281 <     337,   338,     1,   120,   151,   206,   391,   395,   396,   397,
2282 <     398,     1,    36,    56,    61,   117,   312,   316,   317,   318,
2283 <     322,   323,   215,   218,   216,   262,   214,   215,   218,   218,
2284 <     216,   229,     1,    17,    32,    36,    89,   112,   129,   192,
2285 <     206,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2286 <     288,     1,    14,    93,   120,   341,   342,   343,   344,   345,
2287 <     218,   218,   218,   218,   218,   218,   216,   496,   215,   218,
2288 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2289 <     218,   218,   218,   218,   216,   234,     1,    89,   151,   206,
2290 <     352,   353,   354,   355,   356,     1,    89,   151,   362,   363,
2291 <     364,   365,   218,   216,   348,   118,   118,   118,   215,    99,
2292 <      99,   160,    99,   224,   224,    99,    99,    99,   160,   160,
2293 <      99,   224,   160,   160,   215,   215,   218,   218,   218,   218,
2294 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2295 <     216,   295,   215,   218,   218,   218,   218,   381,   218,   218,
2296 <     218,   218,   218,   218,   218,   218,   216,   372,   218,   218,
2297 <     216,   402,   118,   215,   218,   218,   412,   216,   416,   160,
2298 <     224,   224,    99,   160,   160,    99,   118,   160,   224,   160,
2299 <     224,    99,    99,    99,   160,   160,   160,   224,    99,    99,
2300 <     224,    99,    99,   118,    99,    99,   160,   160,   218,   160,
2301 <     218,   224,   224,   160,   160,   160,   160,   160,   161,   160,
2302 <     161,   160,   160,   224,   224,   118,   224,   160,   160,   160,
2303 <     215,   215,   218,   218,   333,   218,   218,   218,   218,   218,
2304 <     216,   327,   218,   392,   218,   216,   396,   215,   313,   218,
2305 <     218,   218,   216,   317,   160,   215,   217,   118,   118,   215,
2306 <     215,   218,   218,   289,   218,   218,   218,   285,   218,   216,
2307 <     277,   215,   218,   218,   218,   216,   342,   160,   160,   118,
2308 <     160,   160,   224,   215,   118,   160,   118,   118,   118,   118,
2309 <     118,   118,   134,   135,   237,   238,   134,   135,   239,   240,
2310 <     118,   118,    99,   118,   118,   215,   215,   218,   357,   218,
2311 <     216,   353,   215,   218,   366,   216,   363,   118,   215,   215,
2312 <     215,   215,   215,   215,   215,   138,   139,   140,   141,   142,
2313 <     223,   224,   215,   215,   215,   215,   215,   215,   215,   215,
2314 <     215,   215,   215,    99,    99,   224,    99,    99,    99,    99,
2315 <     118,    99,    99,   224,   224,    99,   226,   226,   215,   118,
2316 <     178,   179,   118,   160,   218,   118,   118,   118,   118,    99,
2317 <     118,   118,   118,   215,   118,   118,   215,   215,   118,   118,
2318 <     218,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2319 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2320 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2321 <     215,    51,   166,   167,   168,   169,   170,   172,   173,   175,
2322 <     176,   177,   180,   182,   183,   185,   187,   189,   190,   193,
2323 <     199,   472,   473,   215,    51,   166,   167,   168,   169,   170,
2324 <     172,   173,   175,   176,   177,   180,   182,   183,   185,   187,
2325 <     189,   190,   193,   199,   468,   469,   215,   215,   215,   215,
2326 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2327 <     215,   215,   215,   215,   215,   118,   160,   218,   118,    99,
2328 <     118,   118,   118,   215,   118,   218,   118,   215,   218,   118,
2329 <     118,    99,   320,   321,   215,   215,     1,    89,   151,   213,
2330 <     266,   267,   268,   269,   270,   215,   215,   118,   160,   218,
2331 <     118,   118,   118,   218,   118,   215,   118,   118,   118,   215,
2332 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2333 <     215,   215,   215,   215,   215,   219,   215,   219,   215,   215,
2334 <     215,   215,   215,   118,   218,   118,   215,   118,   218,   215,
2335 <     215,   223,   223,   223,   223,   223,   215,   215,   215,   215,
2336 <     215,   215,   215,   215,   215,   215,   215,   215,     9,    10,
2337 <      11,   225,   226,   215,   215,   215,   215,   215,   215,   215,
2338 <       8,   191,   382,   383,   215,   215,   215,   215,   215,   215,
2339 <     215,   215,   215,   215,   215,   215,   123,   413,   414,   215,
2340 <     219,   215,   219,   215,   215,    13,    33,    43,    49,    65,
2341 <      90,    98,   137,   154,   334,   335,   215,   215,   215,   215,
2342 <     215,   215,   123,   393,   394,   215,    51,   186,   191,   314,
2343 <     315,   215,   215,   164,   219,   319,   215,   218,   271,   218,
2344 <     216,   267,   215,   215,     4,    25,    40,    47,    64,    87,
2345 <      94,   106,   124,   125,   126,   174,   183,   188,   194,   198,
2346 <     200,   205,   211,   290,   291,   215,   215,   215,    51,   166,
2347 <     167,   168,   169,   170,   172,   173,   175,   176,   177,   180,
2348 <     182,   183,   185,   187,   189,   190,   193,   199,   286,   287,
2349 <     215,   215,   215,   215,   238,   240,   215,    64,   136,   165,
2350 <     174,   180,   194,   196,   197,   205,   211,   358,   359,   215,
2351 <     215,    64,   136,   165,   174,   180,   194,   196,   197,   205,
2352 <     211,   367,   368,   225,   225,   225,   215,   219,   215,   219,
2353 <     473,   469,   215,   219,   215,   219,   215,   219,    99,   321,
2354 <     215,   118,   218,   195,   226,   215,   215,   219,   215,   219,
2355 <     215,   219,   215,   219,   383,   414,   335,   394,   315,   215,
2356 <      40,    62,    64,   102,   173,   174,   206,   272,   273,   215,
2357 <     215,   291,   287,   359,   368,   215,   219,   273
2235 >       0,   228,     0,     1,     4,    14,    17,    18,    23,    34,
2236 >      38,    39,    48,    63,    71,    72,    95,   108,   139,   150,
2237 >     151,   154,   155,   208,   229,   234,   239,   263,   269,   283,
2238 >     301,   324,   338,   353,   360,   364,   374,   383,   403,   409,
2239 >     415,   419,   425,   482,   498,   222,   223,   224,   224,   302,
2240 >     384,   410,   224,   420,   224,   339,   404,   325,   224,   224,
2241 >     284,   354,   224,   224,   365,   375,   224,     1,    24,    31,
2242 >      96,   264,   265,   266,   267,   268,     1,    21,    22,    27,
2243 >      67,    68,    75,    76,    77,   101,   102,   114,   115,   124,
2244 >     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
2245 >     493,   494,   495,   496,   497,   224,   224,   224,     1,    62,
2246 >     416,   417,   418,   224,     1,     6,     7,    12,    20,    26,
2247 >      28,    29,    30,    35,    41,    42,    44,    45,    46,    50,
2248 >      56,    60,    61,    64,    74,    81,    83,    85,    87,    88,
2249 >      89,   103,   109,   110,   111,   113,   116,   117,   120,   153,
2250 >     157,   160,   161,   162,   163,   164,   167,   168,   209,   210,
2251 >     211,   214,   219,   426,   427,   428,   429,   430,   431,   432,
2252 >     433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
2253 >     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
2254 >     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
2255 >     463,   464,   465,   466,   467,   468,   469,   470,   471,   475,
2256 >     479,   480,   481,   224,   224,   224,     1,   215,   270,   271,
2257 >     272,   273,   274,     1,    94,   119,   235,   236,   237,   238,
2258 >     224,   224,     1,    37,    51,    52,    53,    54,    55,    70,
2259 >     499,   500,   501,   502,   503,   504,   505,   506,   507,     1,
2260 >      24,    58,    82,    86,    96,    98,    99,   131,   133,   134,
2261 >     135,   136,   152,   176,   186,   216,   217,   240,   241,   242,
2262 >     243,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2263 >     257,   258,   259,   260,   261,   262,   224,   224,     1,    96,
2264 >     361,   362,   363,   222,   225,   225,   225,   223,   265,   225,
2265 >     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
2266 >     225,   225,   223,   484,     1,    15,    16,    19,    36,    78,
2267 >      79,    80,    84,    90,    91,    96,   106,   107,   121,   148,
2268 >     190,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2269 >     312,   313,   314,   315,   316,   317,   318,   319,   320,     1,
2270 >       3,     5,    17,    32,    36,    57,    59,    69,    96,   122,
2271 >     149,   176,   216,   385,   386,   387,   388,   389,   390,   391,
2272 >     392,   393,   394,   398,   399,   400,   401,   402,     1,    62,
2273 >     125,   411,   412,   413,   414,   225,   223,   417,     1,    96,
2274 >     125,   421,   422,   423,   424,   225,   225,   225,   225,   225,
2275 >     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
2276 >     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
2277 >     225,   225,   225,   476,   225,   472,   225,   225,   225,   225,
2278 >     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
2279 >     225,   225,   225,   223,   427,     1,    17,    32,    36,   118,
2280 >     126,   127,   158,   213,   340,   341,   342,   343,   344,   345,
2281 >     346,   350,   351,   352,     1,   125,   213,   405,   406,   407,
2282 >     408,     1,    36,    57,    62,   122,   326,   330,   331,   332,
2283 >     336,   337,   222,   225,   223,   271,   221,   222,   225,   225,
2284 >     223,   236,     1,    17,    32,    36,    96,   118,   132,   198,
2285 >     213,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2286 >     297,     1,    34,    73,   125,   355,   356,   357,   358,   359,
2287 >     225,   225,   225,   225,   225,   225,   225,   223,   500,   222,
2288 >     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
2289 >     225,   225,   225,   225,   225,   225,   225,   223,   241,     1,
2290 >      96,   156,   213,   366,   367,   368,   369,   370,     1,    96,
2291 >     156,   376,   377,   378,   379,   225,   223,   362,   123,   123,
2292 >     123,   222,   105,   105,   165,   105,   231,   231,   105,   105,
2293 >     105,   165,   165,   105,   231,   165,   222,   222,   225,   225,
2294 >     225,   321,   225,   225,   225,   225,   225,   225,   225,   225,
2295 >     225,   225,   225,   225,   223,   304,   222,   225,   225,   225,
2296 >     225,   395,   225,   225,   225,   225,   225,   225,   225,   225,
2297 >     223,   386,   225,   225,   223,   412,   123,   222,   225,   225,
2298 >     223,   422,   165,   231,   231,   105,   165,   165,   105,   123,
2299 >     165,   231,   165,   231,   105,   105,   105,   165,   165,   165,
2300 >     231,   105,   105,   231,   105,   105,   105,   105,   165,   165,
2301 >     225,   165,   225,   231,   231,   165,   165,   165,   165,   165,
2302 >     166,   165,   166,   165,   165,   231,   231,   123,   231,   165,
2303 >     165,   165,   222,   222,   225,   225,   347,   225,   225,   225,
2304 >     225,   225,   223,   341,   225,   225,   223,   406,   222,   327,
2305 >     225,   225,   225,   223,   331,   165,   222,   224,   123,   123,
2306 >     222,   222,   225,   225,   298,   225,   225,   225,   294,   225,
2307 >     223,   286,   222,   225,   225,   225,   223,   356,   165,   165,
2308 >     123,   165,   165,   165,   231,   222,   123,   165,   105,   105,
2309 >     123,   123,   123,   123,   123,   123,   137,   138,   244,   245,
2310 >     137,   138,   246,   247,   123,   123,   105,   123,   123,   222,
2311 >     222,   225,   371,   225,   223,   367,   222,   225,   380,   223,
2312 >     377,   123,   222,   222,   222,   222,   222,   222,   222,   141,
2313 >     142,   143,   144,   145,   146,   147,   230,   231,   222,   222,
2314 >     222,   222,   222,   222,   222,   222,   222,   222,   105,   105,
2315 >     231,   225,   105,   105,   105,   105,   231,   231,   123,   105,
2316 >     105,   231,   105,   233,   233,   222,   123,   183,   184,   123,
2317 >     165,   225,   123,   123,   123,   123,   105,   123,   123,   123,
2318 >     222,   123,   123,   222,   222,   123,   123,   222,   222,   222,
2319 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2320 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2321 >     222,   222,   222,   222,   222,   222,    51,   171,   172,   173,
2322 >     174,   175,   177,   178,   180,   181,   182,   185,   187,   188,
2323 >     189,   191,   193,   195,   196,   199,   205,   477,   478,   222,
2324 >      51,   171,   172,   173,   174,   175,   177,   178,   180,   181,
2325 >     182,   185,   187,   189,   191,   193,   195,   196,   199,   205,
2326 >     473,   474,   222,   222,   222,   222,   222,   222,   222,   222,
2327 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2328 >     222,   123,   165,   225,   123,   105,   123,   123,   123,   222,
2329 >     123,   123,   222,   225,   123,   123,   105,   334,   335,   222,
2330 >     222,     1,    96,   156,   220,   275,   276,   277,   278,   279,
2331 >     222,   222,   123,   165,   225,   123,   123,   123,   225,   123,
2332 >     222,   123,   123,   123,   222,   222,   222,   222,   222,   222,
2333 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2334 >     222,   222,   222,   226,   222,   226,   222,   222,   222,   222,
2335 >     222,   123,   225,   123,   222,   123,   225,   222,   222,   230,
2336 >     230,   230,   230,   230,   230,   230,   222,   222,   222,    92,
2337 >      93,   322,   323,   222,   222,   222,   222,   222,   222,   222,
2338 >     222,   222,   222,     9,    10,    11,   232,   233,   222,   222,
2339 >     222,   222,   222,   222,   222,     8,   197,   396,   397,   222,
2340 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2341 >     222,   222,   226,   222,   226,   222,   222,    13,    33,    43,
2342 >      49,    66,    97,   104,   140,   159,   206,   348,   349,   222,
2343 >     222,   222,   222,   222,   222,   222,    51,   192,   197,   328,
2344 >     329,   222,   222,   169,   226,   333,   222,   225,   280,   225,
2345 >     223,   276,   222,   222,     4,    25,    40,    47,    65,    94,
2346 >     112,   128,   129,   130,   179,   189,   194,   200,   204,   207,
2347 >     212,   218,   299,   300,   222,   222,   222,    51,   171,   172,
2348 >     173,   174,   175,   177,   178,   180,   181,   182,   185,   187,
2349 >     188,   189,   191,   193,   195,   196,   199,   205,   295,   296,
2350 >     222,   222,   222,   222,   245,   247,   222,    65,   139,   170,
2351 >     179,   185,   200,   202,   203,   212,   218,   372,   373,   222,
2352 >     222,    65,   139,   170,   179,   185,   200,   202,   203,   212,
2353 >     218,   381,   382,   222,   226,   232,   232,   232,   222,   226,
2354 >     478,   474,   222,   226,   222,   226,   105,   335,   222,   123,
2355 >     225,   201,   233,   222,   222,   226,   222,   226,   222,   226,
2356 >     222,   226,   323,   397,   349,   329,   222,    40,    63,    65,
2357 >     108,   178,   179,   213,   281,   282,   222,   222,   300,   296,
2358 >     373,   382,   222,   226,   282
2359   };
2360  
2361   #define yyerrok         (yyerrstatus = 0)
# Line 2349 | Line 2402 | do
2402      }                                                           \
2403   while (YYID (0))
2404  
2405 <
2405 > /* Error token number */
2406   #define YYTERROR        1
2407   #define YYERRCODE       256
2408  
2356 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2357   If N is 0, then set CURRENT to the empty location which ends
2358   the previous symbol: RHS[0] (always defined).  */
2359
2360 #ifndef YYLLOC_DEFAULT
2361 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2362    do                                                                  \
2363      if (YYID (N))                                                     \
2364        {                                                               \
2365          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2366          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2367          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2368          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2369        }                                                               \
2370      else                                                              \
2371        {                                                               \
2372          (Current).first_line   = (Current).last_line   =              \
2373            YYRHSLOC (Rhs, 0).last_line;                                \
2374          (Current).first_column = (Current).last_column =              \
2375            YYRHSLOC (Rhs, 0).last_column;                              \
2376        }                                                               \
2377    while (YYID (0))
2378 #endif
2379
2380 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2381
2382
2409  
2410   /* This macro is provided for backward compatibility. */
2385
2411   #ifndef YY_LOCATION_PRINT
2412   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2413   #endif
2414  
2415  
2416   /* YYLEX -- calling `yylex' with the right arguments.  */
2392
2417   #ifdef YYLEX_PARAM
2418   # define YYLEX yylex (YYLEX_PARAM)
2419   #else
# Line 2449 | Line 2473 | yy_symbol_value_print (yyoutput, yytype,
2473   # else
2474    YYUSE (yyoutput);
2475   # endif
2476 <  switch (yytype)
2453 <    {
2454 <      default:
2455 <        break;
2456 <    }
2476 >  YYUSE (yytype);
2477   }
2478  
2479  
# Line 2694 | Line 2714 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2714   {
2715    YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2716    YYSIZE_T yysize = yysize0;
2697  YYSIZE_T yysize1;
2717    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2718    /* Internationalized format string. */
2719    const char *yyformat = YY_NULL;
# Line 2757 | Line 2776 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2776                      break;
2777                    }
2778                  yyarg[yycount++] = yytname[yyx];
2779 <                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2780 <                if (! (yysize <= yysize1
2781 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2782 <                  return 2;
2783 <                yysize = yysize1;
2779 >                {
2780 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2781 >                  if (! (yysize <= yysize1
2782 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2783 >                    return 2;
2784 >                  yysize = yysize1;
2785 >                }
2786                }
2787          }
2788      }
# Line 2781 | Line 2802 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2802   # undef YYCASE_
2803      }
2804  
2805 <  yysize1 = yysize + yystrlen (yyformat);
2806 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2807 <    return 2;
2808 <  yysize = yysize1;
2805 >  {
2806 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2807 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2808 >      return 2;
2809 >    yysize = yysize1;
2810 >  }
2811  
2812    if (*yymsg_alloc < yysize)
2813      {
# Line 2840 | Line 2863 | yydestruct (yymsg, yytype, yyvaluep)
2863      yymsg = "Deleting";
2864    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2865  
2866 <  switch (yytype)
2844 <    {
2845 <
2846 <      default:
2847 <        break;
2848 <    }
2866 >  YYUSE (yytype);
2867   }
2868  
2869  
# Line 2855 | Line 2873 | yydestruct (yymsg, yytype, yyvaluep)
2873   int yychar;
2874  
2875  
2858 #ifndef YYLVAL_INITIALIZE
2859 # define YYLVAL_INITIALIZE()
2860 #endif
2876   #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2877   # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2878   # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2879   #endif
2880 + #ifndef YY_INITIAL_VALUE
2881 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2882 + #endif
2883  
2884   /* The semantic value of the lookahead symbol.  */
2885 < YYSTYPE yylval;
2885 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2886  
2887   /* Number of syntax errors so far.  */
2888   int yynerrs;
# Line 2940 | Line 2958 | yyparse ()
2958       Keep to zero when no symbol should be popped.  */
2959    int yylen = 0;
2960  
2961 <  yyss = yyssa;
2962 <  yyvs = yyvsa;
2961 >  yyssp = yyss = yyssa;
2962 >  yyvsp = yyvs = yyvsa;
2963    yystacksize = YYINITDEPTH;
2964  
2965    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 2950 | Line 2968 | yyparse ()
2968    yyerrstatus = 0;
2969    yynerrs = 0;
2970    yychar = YYEMPTY; /* Cause a token to be read.  */
2953
2954  /* Initialize stack pointers.
2955     Waste one element of value and location stack
2956     so that they stay on the same level as the state stack.
2957     The wasted elements are never initialized.  */
2958  yyssp = yyss;
2959  yyvsp = yyvs;
2960
2961  YYLVAL_INITIALIZE ();
2971    goto yysetstate;
2972  
2973   /*------------------------------------------------------------.
# Line 3138 | Line 3147 | yyreduce:
3147    switch (yyn)
3148      {
3149          case 26:
3150 < /* Line 1813 of yacc.c  */
3151 < #line 359 "conf_parser.y"
3150 > /* Line 1787 of yacc.c  */
3151 > #line 392 "conf_parser.y"
3152      { (yyval.number) = 0; }
3153      break;
3154  
3155    case 28:
3156 < /* Line 1813 of yacc.c  */
3157 < #line 361 "conf_parser.y"
3156 > /* Line 1787 of yacc.c  */
3157 > #line 394 "conf_parser.y"
3158      {
3159                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3160                  }
3161      break;
3162  
3163    case 29:
3164 < /* Line 1813 of yacc.c  */
3165 < #line 365 "conf_parser.y"
3164 > /* Line 1787 of yacc.c  */
3165 > #line 398 "conf_parser.y"
3166      {
3167                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3168                  }
3169      break;
3170  
3171    case 30:
3172 < /* Line 1813 of yacc.c  */
3173 < #line 369 "conf_parser.y"
3172 > /* Line 1787 of yacc.c  */
3173 > #line 402 "conf_parser.y"
3174      {
3175                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3176                  }
3177      break;
3178  
3179    case 31:
3180 < /* Line 1813 of yacc.c  */
3181 < #line 373 "conf_parser.y"
3180 > /* Line 1787 of yacc.c  */
3181 > #line 406 "conf_parser.y"
3182      {
3183                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3184                  }
3185      break;
3186  
3187    case 32:
3188 < /* Line 1813 of yacc.c  */
3189 < #line 377 "conf_parser.y"
3188 > /* Line 1787 of yacc.c  */
3189 > #line 410 "conf_parser.y"
3190      {
3191                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3192                  }
3193      break;
3194  
3195    case 33:
3196 < /* Line 1813 of yacc.c  */
3197 < #line 381 "conf_parser.y"
3196 > /* Line 1787 of yacc.c  */
3197 > #line 414 "conf_parser.y"
3198      {
3199                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3200                  }
3201      break;
3202  
3203    case 34:
3204 < /* Line 1813 of yacc.c  */
3205 < #line 386 "conf_parser.y"
3206 <    { (yyval.number) = 0; }
3204 > /* Line 1787 of yacc.c  */
3205 > #line 418 "conf_parser.y"
3206 >    {
3207 >                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3208 >                }
3209 >    break;
3210 >
3211 >  case 35:
3212 > /* Line 1787 of yacc.c  */
3213 > #line 422 "conf_parser.y"
3214 >    {
3215 >                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3216 >                }
3217      break;
3218  
3219    case 36:
3220 < /* Line 1813 of yacc.c  */
3221 < #line 387 "conf_parser.y"
3220 > /* Line 1787 of yacc.c  */
3221 > #line 427 "conf_parser.y"
3222 >    { (yyval.number) = 0; }
3223 >    break;
3224 >
3225 >  case 38:
3226 > /* Line 1787 of yacc.c  */
3227 > #line 428 "conf_parser.y"
3228      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3229      break;
3230  
3231 <  case 37:
3232 < /* Line 1813 of yacc.c  */
3233 < #line 388 "conf_parser.y"
3231 >  case 39:
3232 > /* Line 1787 of yacc.c  */
3233 > #line 429 "conf_parser.y"
3234      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3235      break;
3236  
3237 <  case 38:
3238 < /* Line 1813 of yacc.c  */
3239 < #line 389 "conf_parser.y"
3237 >  case 40:
3238 > /* Line 1787 of yacc.c  */
3239 > #line 430 "conf_parser.y"
3240      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3241      break;
3242  
3243 <  case 39:
3244 < /* Line 1813 of yacc.c  */
3245 < #line 390 "conf_parser.y"
3243 >  case 41:
3244 > /* Line 1787 of yacc.c  */
3245 > #line 431 "conf_parser.y"
3246      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3247      break;
3248  
3249 <  case 46:
3250 < /* Line 1813 of yacc.c  */
3251 < #line 404 "conf_parser.y"
3249 >  case 48:
3250 > /* Line 1787 of yacc.c  */
3251 > #line 445 "conf_parser.y"
3252      {
3253    if (conf_parser_ctx.pass == 2)
3254      add_conf_module(libio_basename(yylval.string));
3255   }
3256      break;
3257  
3258 <  case 47:
3259 < /* Line 1813 of yacc.c  */
3260 < #line 410 "conf_parser.y"
3258 >  case 49:
3259 > /* Line 1787 of yacc.c  */
3260 > #line 451 "conf_parser.y"
3261      {
3262    if (conf_parser_ctx.pass == 2)
3263      mod_add_path(yylval.string);
3264   }
3265      break;
3266  
3267 <  case 71:
3268 < /* Line 1813 of yacc.c  */
3269 < #line 435 "conf_parser.y"
3267 >  case 75:
3268 > /* Line 1787 of yacc.c  */
3269 > #line 477 "conf_parser.y"
3270      {
3271   #ifdef HAVE_LIBCRYPTO
3272    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3250 | Line 3275 | yyreduce:
3275   }
3276      break;
3277  
3278 <  case 72:
3279 < /* Line 1813 of yacc.c  */
3280 < #line 441 "conf_parser.y"
3278 >  case 76:
3279 > /* Line 1787 of yacc.c  */
3280 > #line 483 "conf_parser.y"
3281      {
3282   #ifdef HAVE_LIBCRYPTO
3283    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3261 | Line 3286 | yyreduce:
3286   }
3287      break;
3288  
3289 <  case 75:
3290 < /* Line 1813 of yacc.c  */
3291 < #line 450 "conf_parser.y"
3289 >  case 79:
3290 > /* Line 1787 of yacc.c  */
3291 > #line 492 "conf_parser.y"
3292      {
3293   #ifdef HAVE_LIBCRYPTO
3294    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3272 | Line 3297 | yyreduce:
3297   }
3298      break;
3299  
3300 <  case 76:
3301 < /* Line 1813 of yacc.c  */
3302 < #line 456 "conf_parser.y"
3300 >  case 80:
3301 > /* Line 1787 of yacc.c  */
3302 > #line 498 "conf_parser.y"
3303      {
3304   #ifdef HAVE_LIBCRYPTO
3305    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3283 | Line 3308 | yyreduce:
3308   }
3309      break;
3310  
3311 <  case 77:
3312 < /* Line 1813 of yacc.c  */
3313 < #line 464 "conf_parser.y"
3311 >  case 81:
3312 > /* Line 1787 of yacc.c  */
3313 > #line 506 "conf_parser.y"
3314      {
3315   #ifdef HAVE_LIBCRYPTO
3316    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3317    {
3318      if (!ServerInfo.rsa_private_key_file)
3319      {
3320 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3320 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3321        break;
3322      }
3323  
# Line 3301 | Line 3326 | yyreduce:
3326          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3327                                       SSL_FILETYPE_PEM) <= 0)
3328      {
3329 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3329 >      report_crypto_errors();
3330 >      conf_error_report("Could not open/read certificate file");
3331        break;
3332      }
3333  
# Line 3310 | Line 3336 | yyreduce:
3336          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3337                                      SSL_FILETYPE_PEM) <= 0)
3338      {
3339 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3339 >      report_crypto_errors();
3340 >      conf_error_report("Could not read RSA private key");
3341        break;
3342      }
3343  
3344      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3345          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3346      {
3347 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3347 >      report_crypto_errors();
3348 >      conf_error_report("Could not read RSA private key");
3349        break;
3350      }
3351    }
# Line 3325 | Line 3353 | yyreduce:
3353   }
3354      break;
3355  
3356 <  case 78:
3357 < /* Line 1813 of yacc.c  */
3358 < #line 503 "conf_parser.y"
3356 >  case 82:
3357 > /* Line 1787 of yacc.c  */
3358 > #line 548 "conf_parser.y"
3359      {
3360   #ifdef HAVE_LIBCRYPTO
3361    if (conf_parser_ctx.pass == 1)
# Line 3346 | Line 3374 | yyreduce:
3374        ServerInfo.rsa_private_key_file = NULL;
3375      }
3376  
3377 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3377 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3378  
3379      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3380      {
3381 <      yyerror("File open failed, ignoring");
3381 >      conf_error_report("File open failed, ignoring");
3382        break;
3383      }
3384  
# Line 3361 | Line 3389 | yyreduce:
3389  
3390      if (ServerInfo.rsa_private_key == NULL)
3391      {
3392 <      yyerror("Couldn't extract key, ignoring");
3392 >      conf_error_report("Couldn't extract key, ignoring");
3393        break;
3394      }
3395  
# Line 3370 | Line 3398 | yyreduce:
3398        RSA_free(ServerInfo.rsa_private_key);
3399        ServerInfo.rsa_private_key = NULL;
3400  
3401 <      yyerror("Invalid key, ignoring");
3401 >      conf_error_report("Invalid key, ignoring");
3402        break;
3403      }
3404  
# Line 3380 | Line 3408 | yyreduce:
3408        RSA_free(ServerInfo.rsa_private_key);
3409        ServerInfo.rsa_private_key = NULL;
3410  
3411 <      yyerror("Not a 2048 bit key, ignoring");
3411 >      conf_error_report("Not a 2048 bit key, ignoring");
3412      }
3413    }
3414   #endif
3415   }
3416      break;
3417  
3418 <  case 79:
3419 < /* Line 1813 of yacc.c  */
3420 < #line 562 "conf_parser.y"
3418 >  case 83:
3419 > /* Line 1787 of yacc.c  */
3420 > #line 607 "conf_parser.y"
3421      {
3422   /* TBD - XXX: error reporting */
3423   #ifdef HAVE_LIBCRYPTO
# Line 3406 | Line 3434 | yyreduce:
3434        if (dh)
3435        {
3436          if (DH_size(dh) < 128)
3437 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3437 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3438          else
3439            SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3440  
# Line 3418 | Line 3446 | yyreduce:
3446   }
3447      break;
3448  
3449 <  case 80:
3450 < /* Line 1813 of yacc.c  */
3451 < #line 590 "conf_parser.y"
3449 >  case 84:
3450 > /* Line 1787 of yacc.c  */
3451 > #line 635 "conf_parser.y"
3452      {
3453   #ifdef HAVE_LIBCRYPTO
3454    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3429 | Line 3457 | yyreduce:
3457   }
3458      break;
3459  
3460 <  case 81:
3461 < /* Line 1813 of yacc.c  */
3462 < #line 598 "conf_parser.y"
3460 >  case 85:
3461 > /* Line 1787 of yacc.c  */
3462 > #line 643 "conf_parser.y"
3463      {
3464    /* this isn't rehashable */
3465    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3466    {
3467      if (valid_servname(yylval.string))
3468 <      DupString(ServerInfo.name, yylval.string);
3468 >      ServerInfo.name = xstrdup(yylval.string);
3469      else
3470      {
3471 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3471 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3472        exit(0);
3473      }
3474    }
3475   }
3476      break;
3477  
3478 <  case 82:
3479 < /* Line 1813 of yacc.c  */
3480 < #line 613 "conf_parser.y"
3478 >  case 86:
3479 > /* Line 1787 of yacc.c  */
3480 > #line 658 "conf_parser.y"
3481      {
3482    /* this isn't rehashable */
3483    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3484    {
3485      if (valid_sid(yylval.string))
3486 <      DupString(ServerInfo.sid, yylval.string);
3486 >      ServerInfo.sid = xstrdup(yylval.string);
3487      else
3488      {
3489 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3489 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3490        exit(0);
3491      }
3492    }
3493   }
3494      break;
3495  
3496 <  case 83:
3497 < /* Line 1813 of yacc.c  */
3498 < #line 628 "conf_parser.y"
3496 >  case 87:
3497 > /* Line 1787 of yacc.c  */
3498 > #line 673 "conf_parser.y"
3499      {
3500    if (conf_parser_ctx.pass == 2)
3501    {
3502      MyFree(ServerInfo.description);
3503 <    DupString(ServerInfo.description,yylval.string);
3503 >    ServerInfo.description = xstrdup(yylval.string);
3504    }
3505   }
3506      break;
3507  
3508 <  case 84:
3509 < /* Line 1813 of yacc.c  */
3510 < #line 637 "conf_parser.y"
3508 >  case 88:
3509 > /* Line 1787 of yacc.c  */
3510 > #line 682 "conf_parser.y"
3511      {
3512    if (conf_parser_ctx.pass == 2)
3513    {
# Line 3489 | Line 3517 | yyreduce:
3517        p = '\0';
3518  
3519      MyFree(ServerInfo.network_name);
3520 <    DupString(ServerInfo.network_name, yylval.string);
3520 >    ServerInfo.network_name = xstrdup(yylval.string);
3521    }
3522   }
3523      break;
3524  
3525 <  case 85:
3526 < /* Line 1813 of yacc.c  */
3527 < #line 651 "conf_parser.y"
3525 >  case 89:
3526 > /* Line 1787 of yacc.c  */
3527 > #line 696 "conf_parser.y"
3528      {
3529    if (conf_parser_ctx.pass == 2)
3530    {
3531      MyFree(ServerInfo.network_desc);
3532 <    DupString(ServerInfo.network_desc, yylval.string);
3532 >    ServerInfo.network_desc = xstrdup(yylval.string);
3533    }
3534   }
3535      break;
3536  
3537 <  case 86:
3538 < /* Line 1813 of yacc.c  */
3539 < #line 660 "conf_parser.y"
3537 >  case 90:
3538 > /* Line 1787 of yacc.c  */
3539 > #line 705 "conf_parser.y"
3540      {
3541    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3542    {
# Line 3537 | Line 3565 | yyreduce:
3565   }
3566      break;
3567  
3568 <  case 87:
3569 < /* Line 1813 of yacc.c  */
3570 < #line 688 "conf_parser.y"
3568 >  case 91:
3569 > /* Line 1787 of yacc.c  */
3570 > #line 733 "conf_parser.y"
3571      {
3572   #ifdef IPV6
3573    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3570 | Line 3598 | yyreduce:
3598   }
3599      break;
3600  
3601 <  case 88:
3602 < /* Line 1813 of yacc.c  */
3603 < #line 718 "conf_parser.y"
3601 >  case 92:
3602 > /* Line 1787 of yacc.c  */
3603 > #line 763 "conf_parser.y"
3604      {
3605 <  if (conf_parser_ctx.pass == 2)
3605 >  if (conf_parser_ctx.pass != 2)
3606 >    break;
3607 >
3608 >  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3609    {
3610 <    recalc_fdlimit(NULL);
3610 >    char buf[IRCD_BUFSIZE];
3611  
3612 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3612 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3613 >    conf_error_report(buf);
3614 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3615 >  }
3616 >  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3617 >  {
3618 >    char buf[IRCD_BUFSIZE];
3619 >
3620 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3621 >    conf_error_report(buf);
3622 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3623 >  }
3624 >  else
3625 >    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3626 > }
3627 >    break;
3628 >
3629 >  case 93:
3630 > /* Line 1787 of yacc.c  */
3631 > #line 788 "conf_parser.y"
3632      {
3633 <      char buf[IRCD_BUFSIZE];
3634 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3635 <      yyerror(buf);
3636 <    }
3637 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3633 >  if (conf_parser_ctx.pass != 2)
3634 >    break;
3635 >
3636 >  if ((yyvsp[(3) - (4)].number) < 9)
3637 >  {
3638 >    conf_error_report("max_nick_length too low, setting to 9");
3639 >    ServerInfo.max_nick_length = 9;
3640 >  }
3641 >  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3642 >  {
3643 >    char buf[IRCD_BUFSIZE];
3644 >
3645 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3646 >    conf_error_report(buf);
3647 >    ServerInfo.max_nick_length = NICKLEN;
3648 >  }
3649 >  else
3650 >    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3651 > }
3652 >    break;
3653 >
3654 >  case 94:
3655 > /* Line 1787 of yacc.c  */
3656 > #line 810 "conf_parser.y"
3657      {
3658 <      char buf[IRCD_BUFSIZE];
3659 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3660 <      yyerror(buf);
3661 <    }
3662 <    else
3663 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3658 >  if (conf_parser_ctx.pass != 2)
3659 >    break;
3660 >
3661 >  if ((yyvsp[(3) - (4)].number) < 80)
3662 >  {
3663 >    conf_error_report("max_topic_length too low, setting to 80");
3664 >    ServerInfo.max_topic_length = 80;
3665 >  }
3666 >  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3667 >  {
3668 >    char buf[IRCD_BUFSIZE];
3669 >
3670 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3671 >    conf_error_report(buf);
3672 >    ServerInfo.max_topic_length = TOPICLEN;
3673    }
3674 +  else
3675 +    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3676   }
3677      break;
3678  
3679 <  case 89:
3680 < /* Line 1813 of yacc.c  */
3681 < #line 741 "conf_parser.y"
3679 >  case 95:
3680 > /* Line 1787 of yacc.c  */
3681 > #line 832 "conf_parser.y"
3682      {
3683    if (conf_parser_ctx.pass == 2)
3684      ServerInfo.hub = yylval.number;
3685   }
3686      break;
3687  
3688 <  case 97:
3689 < /* Line 1813 of yacc.c  */
3690 < #line 756 "conf_parser.y"
3688 >  case 103:
3689 > /* Line 1787 of yacc.c  */
3690 > #line 847 "conf_parser.y"
3691      {
3692    if (conf_parser_ctx.pass == 2)
3693    {
3694      MyFree(AdminInfo.name);
3695 <    DupString(AdminInfo.name, yylval.string);
3695 >    AdminInfo.name = xstrdup(yylval.string);
3696    }
3697   }
3698      break;
3699  
3700 <  case 98:
3701 < /* Line 1813 of yacc.c  */
3702 < #line 765 "conf_parser.y"
3700 >  case 104:
3701 > /* Line 1787 of yacc.c  */
3702 > #line 856 "conf_parser.y"
3703      {
3704    if (conf_parser_ctx.pass == 2)
3705    {
3706      MyFree(AdminInfo.email);
3707 <    DupString(AdminInfo.email, yylval.string);
3707 >    AdminInfo.email = xstrdup(yylval.string);
3708    }
3709   }
3710      break;
3711  
3712 <  case 99:
3713 < /* Line 1813 of yacc.c  */
3714 < #line 774 "conf_parser.y"
3712 >  case 105:
3713 > /* Line 1787 of yacc.c  */
3714 > #line 865 "conf_parser.y"
3715      {
3716    if (conf_parser_ctx.pass == 2)
3717    {
3718      MyFree(AdminInfo.description);
3719 <    DupString(AdminInfo.description, yylval.string);
3719 >    AdminInfo.description = xstrdup(yylval.string);
3720    }
3721   }
3722      break;
3723  
3724 <  case 106:
3725 < /* Line 1813 of yacc.c  */
3726 < #line 792 "conf_parser.y"
3724 >  case 112:
3725 > /* Line 1787 of yacc.c  */
3726 > #line 883 "conf_parser.y"
3727      {
3728    if (conf_parser_ctx.pass == 2)
3729      ConfigLoggingEntry.use_logging = yylval.number;
3730   }
3731      break;
3732  
3733 <  case 107:
3734 < /* Line 1813 of yacc.c  */
3735 < #line 798 "conf_parser.y"
3733 >  case 113:
3734 > /* Line 1787 of yacc.c  */
3735 > #line 889 "conf_parser.y"
3736      {
3737 <  lfile[0] = '\0';
3738 <  ltype = 0;
3659 <  lsize = 0;
3660 < }
3661 <    break;
3662 <
3663 <  case 108:
3664 < /* Line 1813 of yacc.c  */
3665 < #line 803 "conf_parser.y"
3666 <    {
3667 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3668 <    log_add_file(ltype, lsize, lfile);
3737 >  if (conf_parser_ctx.pass == 2)
3738 >    reset_block_state();
3739   }
3740      break;
3741  
3742 <  case 115:
3743 < /* Line 1813 of yacc.c  */
3744 < #line 815 "conf_parser.y"
3742 >  case 114:
3743 > /* Line 1787 of yacc.c  */
3744 > #line 893 "conf_parser.y"
3745      {
3746 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3677 < }
3746 >  if (conf_parser_ctx.pass != 2)
3747      break;
3748  
3749 <  case 116:
3750 < /* Line 1813 of yacc.c  */
3751 < #line 820 "conf_parser.y"
3683 <    {
3684 <  lsize = (yyvsp[(3) - (4)].number);
3749 >  if (block_state.type.value && block_state.file.buf[0])
3750 >    log_set_file(block_state.type.value, block_state.size.value,
3751 >                 block_state.file.buf);
3752   }
3753      break;
3754  
3755 <  case 117:
3756 < /* Line 1813 of yacc.c  */
3757 < #line 823 "conf_parser.y"
3755 >  case 121:
3756 > /* Line 1787 of yacc.c  */
3757 > #line 909 "conf_parser.y"
3758      {
3759 <  lsize = 0;
3693 < }
3759 >  if (conf_parser_ctx.pass != 2)
3760      break;
3761  
3762 <  case 118:
3697 < /* Line 1813 of yacc.c  */
3698 < #line 828 "conf_parser.y"
3699 <    {
3700 <  if (conf_parser_ctx.pass == 2)
3701 <    ltype = 0;
3762 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3763   }
3764      break;
3765  
3766    case 122:
3767 < /* Line 1813 of yacc.c  */
3768 < #line 835 "conf_parser.y"
3767 > /* Line 1787 of yacc.c  */
3768 > #line 917 "conf_parser.y"
3769      {
3770 <  if (conf_parser_ctx.pass == 2)
3710 <    ltype = LOG_TYPE_USER;
3770 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3771   }
3772      break;
3773  
3774    case 123:
3775 < /* Line 1813 of yacc.c  */
3776 < #line 839 "conf_parser.y"
3775 > /* Line 1787 of yacc.c  */
3776 > #line 920 "conf_parser.y"
3777      {
3778 <  if (conf_parser_ctx.pass == 2)
3719 <    ltype = LOG_TYPE_OPER;
3778 >  block_state.size.value = 0;
3779   }
3780      break;
3781  
3782    case 124:
3783 < /* Line 1813 of yacc.c  */
3784 < #line 843 "conf_parser.y"
3783 > /* Line 1787 of yacc.c  */
3784 > #line 925 "conf_parser.y"
3785      {
3786    if (conf_parser_ctx.pass == 2)
3787 <    ltype = LOG_TYPE_GLINE;
3787 >    block_state.type.value = 0;
3788   }
3789      break;
3790  
3791 <  case 125:
3792 < /* Line 1813 of yacc.c  */
3793 < #line 847 "conf_parser.y"
3791 >  case 128:
3792 > /* Line 1787 of yacc.c  */
3793 > #line 932 "conf_parser.y"
3794      {
3795    if (conf_parser_ctx.pass == 2)
3796 <    ltype = LOG_TYPE_DLINE;
3796 >    block_state.type.value = LOG_TYPE_USER;
3797   }
3798      break;
3799  
3800 <  case 126:
3801 < /* Line 1813 of yacc.c  */
3802 < #line 851 "conf_parser.y"
3800 >  case 129:
3801 > /* Line 1787 of yacc.c  */
3802 > #line 936 "conf_parser.y"
3803      {
3804    if (conf_parser_ctx.pass == 2)
3805 <    ltype = LOG_TYPE_KLINE;
3805 >    block_state.type.value = LOG_TYPE_OPER;
3806   }
3807      break;
3808  
3809 <  case 127:
3810 < /* Line 1813 of yacc.c  */
3811 < #line 855 "conf_parser.y"
3809 >  case 130:
3810 > /* Line 1787 of yacc.c  */
3811 > #line 940 "conf_parser.y"
3812      {
3813    if (conf_parser_ctx.pass == 2)
3814 <    ltype = LOG_TYPE_KILL;
3814 >    block_state.type.value = LOG_TYPE_GLINE;
3815   }
3816      break;
3817  
3818 <  case 128:
3819 < /* Line 1813 of yacc.c  */
3820 < #line 859 "conf_parser.y"
3818 >  case 131:
3819 > /* Line 1787 of yacc.c  */
3820 > #line 944 "conf_parser.y"
3821      {
3822    if (conf_parser_ctx.pass == 2)
3823 <    ltype = LOG_TYPE_DEBUG;
3823 >    block_state.type.value = LOG_TYPE_DLINE;
3824   }
3825      break;
3826  
3827 <  case 129:
3828 < /* Line 1813 of yacc.c  */
3829 < #line 869 "conf_parser.y"
3827 >  case 132:
3828 > /* Line 1787 of yacc.c  */
3829 > #line 948 "conf_parser.y"
3830      {
3831    if (conf_parser_ctx.pass == 2)
3832 <  {
3774 <    yy_conf = make_conf_item(OPER_TYPE);
3775 <    yy_aconf = map_to_conf(yy_conf);
3776 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3777 <  }
3778 <  else
3779 <  {
3780 <    MyFree(class_name);
3781 <    class_name = NULL;
3782 <  }
3832 >    block_state.type.value = LOG_TYPE_KLINE;
3833   }
3834      break;
3835  
3836 <  case 130:
3837 < /* Line 1813 of yacc.c  */
3838 < #line 882 "conf_parser.y"
3836 >  case 133:
3837 > /* Line 1787 of yacc.c  */
3838 > #line 952 "conf_parser.y"
3839      {
3840    if (conf_parser_ctx.pass == 2)
3841 <  {
3792 <    struct CollectItem *yy_tmp;
3793 <    dlink_node *ptr;
3794 <    dlink_node *next_ptr;
3795 <
3796 <    conf_add_class_to_conf(yy_conf, class_name);
3797 <
3798 <    /* Now, make sure there is a copy of the "base" given oper
3799 <     * block in each of the collected copies
3800 <     */
3801 <
3802 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3803 <    {
3804 <      struct AccessItem *new_aconf;
3805 <      struct ConfItem *new_conf;
3806 <      yy_tmp = ptr->data;
3807 <
3808 <      new_conf = make_conf_item(OPER_TYPE);
3809 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3810 <
3811 <      new_aconf->flags = yy_aconf->flags;
3812 <
3813 <      if (yy_conf->name != NULL)
3814 <        DupString(new_conf->name, yy_conf->name);
3815 <      if (yy_tmp->user != NULL)
3816 <        DupString(new_aconf->user, yy_tmp->user);
3817 <      else
3818 <        DupString(new_aconf->user, "*");
3819 <      if (yy_tmp->host != NULL)
3820 <        DupString(new_aconf->host, yy_tmp->host);
3821 <      else
3822 <        DupString(new_aconf->host, "*");
3823 <
3824 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3825 <                                     &new_aconf->bits);
3826 <
3827 <      conf_add_class_to_conf(new_conf, class_name);
3828 <      if (yy_aconf->passwd != NULL)
3829 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3830 <
3831 <      new_aconf->port = yy_aconf->port;
3832 < #ifdef HAVE_LIBCRYPTO
3833 <      if (yy_aconf->rsa_public_key_file != NULL)
3834 <      {
3835 <        BIO *file;
3836 <
3837 <        DupString(new_aconf->rsa_public_key_file,
3838 <                  yy_aconf->rsa_public_key_file);
3839 <
3840 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3841 <        new_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3842 <                                                           NULL, 0, NULL);
3843 <        BIO_set_close(file, BIO_CLOSE);
3844 <        BIO_free(file);
3845 <      }
3846 < #endif
3847 <
3848 < #ifdef HAVE_LIBCRYPTO
3849 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3850 <          && yy_tmp->host)
3851 < #else
3852 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3853 < #endif
3854 <      {
3855 <        conf_add_class_to_conf(new_conf, class_name);
3856 <        if (yy_tmp->name != NULL)
3857 <          DupString(new_conf->name, yy_tmp->name);
3858 <      }
3859 <
3860 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3861 <      free_collect_item(yy_tmp);
3862 <    }
3863 <
3864 <    yy_conf = NULL;
3865 <    yy_aconf = NULL;
3866 <
3867 <
3868 <    MyFree(class_name);
3869 <    class_name = NULL;
3870 <  }
3841 >    block_state.type.value = LOG_TYPE_KILL;
3842   }
3843      break;
3844  
3845 <  case 142:
3846 < /* Line 1813 of yacc.c  */
3847 < #line 972 "conf_parser.y"
3845 >  case 134:
3846 > /* Line 1787 of yacc.c  */
3847 > #line 956 "conf_parser.y"
3848      {
3849    if (conf_parser_ctx.pass == 2)
3850 <  {
3880 <    MyFree(yy_conf->name);
3881 <    DupString(yy_conf->name, yylval.string);
3882 <  }
3850 >    block_state.type.value = LOG_TYPE_DEBUG;
3851   }
3852      break;
3853  
3854 <  case 143:
3855 < /* Line 1813 of yacc.c  */
3856 < #line 981 "conf_parser.y"
3854 >  case 135:
3855 > /* Line 1787 of yacc.c  */
3856 > #line 966 "conf_parser.y"
3857      {
3858 <  if (conf_parser_ctx.pass == 2)
3859 <  {
3892 <    struct split_nuh_item nuh;
3893 <
3894 <    nuh.nuhmask  = yylval.string;
3895 <    nuh.nickptr  = NULL;
3896 <    nuh.userptr  = userbuf;
3897 <    nuh.hostptr  = hostbuf;
3898 <
3899 <    nuh.nicksize = 0;
3900 <    nuh.usersize = sizeof(userbuf);
3901 <    nuh.hostsize = sizeof(hostbuf);
3902 <
3903 <    split_nuh(&nuh);
3904 <
3905 <    if (yy_aconf->user == NULL)
3906 <    {
3907 <      DupString(yy_aconf->user, userbuf);
3908 <      DupString(yy_aconf->host, hostbuf);
3909 <
3910 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
3911 <                                    &yy_aconf->bits);
3912 <    }
3913 <    else
3914 <    {
3915 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3916 <
3917 <      DupString(yy_tmp->user, userbuf);
3918 <      DupString(yy_tmp->host, hostbuf);
3858 >  if (conf_parser_ctx.pass != 2)
3859 >    break;
3860  
3861 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3862 <    }
3922 <  }
3861 >  reset_block_state();
3862 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3863   }
3864      break;
3865  
3866 <  case 144:
3867 < /* Line 1813 of yacc.c  */
3868 < #line 1018 "conf_parser.y"
3866 >  case 136:
3867 > /* Line 1787 of yacc.c  */
3868 > #line 973 "conf_parser.y"
3869      {
3870 <  if (conf_parser_ctx.pass == 2)
3931 <  {
3932 <    if (yy_aconf->passwd != NULL)
3933 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3870 >  dlink_node *ptr = NULL;
3871  
3872 <    MyFree(yy_aconf->passwd);
3936 <    DupString(yy_aconf->passwd, yylval.string);
3937 <  }
3938 < }
3872 >  if (conf_parser_ctx.pass != 2)
3873      break;
3874  
3875 <  case 145:
3942 < /* Line 1813 of yacc.c  */
3943 < #line 1030 "conf_parser.y"
3944 <    {
3945 <  if (conf_parser_ctx.pass == 2)
3946 <  {
3947 <    if (yylval.number)
3948 <      SetConfEncrypted(yy_aconf);
3949 <    else
3950 <      ClearConfEncrypted(yy_aconf);
3951 <  }
3952 < }
3875 >  if (!block_state.name.buf[0])
3876      break;
3954
3955  case 146:
3956 /* Line 1813 of yacc.c  */
3957 #line 1041 "conf_parser.y"
3958    {
3877   #ifdef HAVE_LIBCRYPTO
3878 <  if (conf_parser_ctx.pass == 2)
3878 >  if (!(block_state.file.buf[0] ||
3879 >        block_state.rpass.buf[0]))
3880 >    break;
3881 > #else
3882 >  if (!block_state.rpass.buf[0])
3883 >    break;
3884 > #endif
3885 >
3886 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3887    {
3888 <    BIO *file;
3888 >    struct MaskItem *conf = NULL;
3889 >    struct split_nuh_item nuh;
3890  
3891 <    if (yy_aconf->rsa_public_key != NULL)
3892 <    {
3893 <      RSA_free(yy_aconf->rsa_public_key);
3894 <      yy_aconf->rsa_public_key = NULL;
3895 <    }
3891 >    nuh.nuhmask  = ptr->data;
3892 >    nuh.nickptr  = NULL;
3893 >    nuh.userptr  = block_state.user.buf;
3894 >    nuh.hostptr  = block_state.host.buf;
3895 >    nuh.nicksize = 0;
3896 >    nuh.usersize = sizeof(block_state.user.buf);
3897 >    nuh.hostsize = sizeof(block_state.host.buf);
3898 >    split_nuh(&nuh);
3899  
3900 <    if (yy_aconf->rsa_public_key_file != NULL)
3901 <    {
3902 <      MyFree(yy_aconf->rsa_public_key_file);
3903 <      yy_aconf->rsa_public_key_file = NULL;
3904 <    }
3900 >    conf        = conf_make(CONF_OPER);
3901 >    conf->name  = xstrdup(block_state.name.buf);
3902 >    conf->user  = xstrdup(block_state.user.buf);
3903 >    conf->host  = xstrdup(block_state.host.buf);
3904 >
3905 >    if (block_state.rpass.buf[0])
3906 >      conf->passwd = xstrdup(block_state.rpass.buf);
3907 >
3908 >    conf->flags = block_state.flags.value;
3909 >    conf->modes = block_state.modes.value;
3910 >    conf->port  = block_state.port.value;
3911 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3912  
3913 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3977 <    file = BIO_new_file(yylval.string, "r");
3913 >    conf_add_class_to_conf(conf, block_state.class.buf);
3914  
3915 <    if (file == NULL)
3915 > #ifdef HAVE_LIBCRYPTO
3916 >    if (block_state.file.buf[0])
3917      {
3918 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3919 <      break;
3983 <    }
3918 >      BIO *file = NULL;
3919 >      RSA *pkey = NULL;
3920  
3921 <    yy_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3921 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3922 >      {
3923 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3924 >        break;
3925 >      }
3926  
3927 <    if (yy_aconf->rsa_public_key == NULL)
3928 <    {
3989 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3990 <      break;
3991 <    }
3927 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3928 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3929  
3930 <    BIO_set_close(file, BIO_CLOSE);
3931 <    BIO_free(file);
3932 <  }
3930 >      conf->rsa_public_key = pkey;
3931 >      BIO_set_close(file, BIO_CLOSE);
3932 >      BIO_free(file);
3933 >    }
3934   #endif /* HAVE_LIBCRYPTO */
3997 }
3998    break;
3999
4000  case 147:
4001 /* Line 1813 of yacc.c  */
4002 #line 1083 "conf_parser.y"
4003    {
4004  if (conf_parser_ctx.pass == 2)
4005  {
4006    MyFree(class_name);
4007    DupString(class_name, yylval.string);
3935    }
3936   }
3937      break;
3938  
3939    case 148:
3940 < /* Line 1813 of yacc.c  */
3941 < #line 1092 "conf_parser.y"
3940 > /* Line 1787 of yacc.c  */
3941 > #line 1048 "conf_parser.y"
3942      {
3943    if (conf_parser_ctx.pass == 2)
3944 <    yy_aconf->modes = 0;
3944 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3945   }
3946      break;
3947  
3948 <  case 152:
3949 < /* Line 1813 of yacc.c  */
3950 < #line 1099 "conf_parser.y"
3948 >  case 149:
3949 > /* Line 1787 of yacc.c  */
3950 > #line 1054 "conf_parser.y"
3951      {
3952    if (conf_parser_ctx.pass == 2)
3953 <    yy_aconf->modes |= UMODE_BOTS;
3953 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3954   }
3955      break;
3956  
3957 <  case 153:
3958 < /* Line 1813 of yacc.c  */
3959 < #line 1103 "conf_parser.y"
3957 >  case 150:
3958 > /* Line 1787 of yacc.c  */
3959 > #line 1060 "conf_parser.y"
3960      {
3961    if (conf_parser_ctx.pass == 2)
3962 <    yy_aconf->modes |= UMODE_CCONN;
3962 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3963   }
3964      break;
3965  
3966 <  case 154:
3967 < /* Line 1813 of yacc.c  */
3968 < #line 1107 "conf_parser.y"
3966 >  case 151:
3967 > /* Line 1787 of yacc.c  */
3968 > #line 1066 "conf_parser.y"
3969      {
3970    if (conf_parser_ctx.pass == 2)
3971 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3971 >  {
3972 >    if (yylval.number)
3973 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3974 >    else
3975 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3976 >  }
3977   }
3978      break;
3979  
3980 <  case 155:
3981 < /* Line 1813 of yacc.c  */
3982 < #line 1111 "conf_parser.y"
3980 >  case 152:
3981 > /* Line 1787 of yacc.c  */
3982 > #line 1077 "conf_parser.y"
3983      {
3984    if (conf_parser_ctx.pass == 2)
3985 <    yy_aconf->modes |= UMODE_DEAF;
3985 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3986   }
3987      break;
3988  
3989 <  case 156:
3990 < /* Line 1813 of yacc.c  */
3991 < #line 1115 "conf_parser.y"
3989 >  case 153:
3990 > /* Line 1787 of yacc.c  */
3991 > #line 1083 "conf_parser.y"
3992      {
3993    if (conf_parser_ctx.pass == 2)
3994 <    yy_aconf->modes |= UMODE_DEBUG;
3994 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3995   }
3996      break;
3997  
3998 <  case 157:
3999 < /* Line 1813 of yacc.c  */
4000 < #line 1119 "conf_parser.y"
3998 >  case 154:
3999 > /* Line 1787 of yacc.c  */
4000 > #line 1089 "conf_parser.y"
4001      {
4002    if (conf_parser_ctx.pass == 2)
4003 <    yy_aconf->modes |= UMODE_FULL;
4003 >    block_state.modes.value = 0;
4004   }
4005      break;
4006  
4007    case 158:
4008 < /* Line 1813 of yacc.c  */
4009 < #line 1123 "conf_parser.y"
4008 > /* Line 1787 of yacc.c  */
4009 > #line 1096 "conf_parser.y"
4010      {
4011    if (conf_parser_ctx.pass == 2)
4012 <    yy_aconf->modes |= UMODE_HIDDEN;
4012 >    block_state.modes.value |= UMODE_BOTS;
4013   }
4014      break;
4015  
4016    case 159:
4017 < /* Line 1813 of yacc.c  */
4018 < #line 1127 "conf_parser.y"
4017 > /* Line 1787 of yacc.c  */
4018 > #line 1100 "conf_parser.y"
4019      {
4020    if (conf_parser_ctx.pass == 2)
4021 <    yy_aconf->modes |= UMODE_SKILL;
4021 >    block_state.modes.value |= UMODE_CCONN;
4022   }
4023      break;
4024  
4025    case 160:
4026 < /* Line 1813 of yacc.c  */
4027 < #line 1131 "conf_parser.y"
4026 > /* Line 1787 of yacc.c  */
4027 > #line 1104 "conf_parser.y"
4028      {
4029    if (conf_parser_ctx.pass == 2)
4030 <    yy_aconf->modes |= UMODE_NCHANGE;
4030 >    block_state.modes.value |= UMODE_CCONN_FULL;
4031   }
4032      break;
4033  
4034    case 161:
4035 < /* Line 1813 of yacc.c  */
4036 < #line 1135 "conf_parser.y"
4035 > /* Line 1787 of yacc.c  */
4036 > #line 1108 "conf_parser.y"
4037      {
4038    if (conf_parser_ctx.pass == 2)
4039 <    yy_aconf->modes |= UMODE_REJ;
4039 >    block_state.modes.value |= UMODE_DEAF;
4040   }
4041      break;
4042  
4043    case 162:
4044 < /* Line 1813 of yacc.c  */
4045 < #line 1139 "conf_parser.y"
4044 > /* Line 1787 of yacc.c  */
4045 > #line 1112 "conf_parser.y"
4046      {
4047    if (conf_parser_ctx.pass == 2)
4048 <    yy_aconf->modes |= UMODE_UNAUTH;
4048 >    block_state.modes.value |= UMODE_DEBUG;
4049   }
4050      break;
4051  
4052    case 163:
4053 < /* Line 1813 of yacc.c  */
4054 < #line 1143 "conf_parser.y"
4053 > /* Line 1787 of yacc.c  */
4054 > #line 1116 "conf_parser.y"
4055      {
4056    if (conf_parser_ctx.pass == 2)
4057 <    yy_aconf->modes |= UMODE_SPY;
4057 >    block_state.modes.value |= UMODE_FULL;
4058   }
4059      break;
4060  
4061    case 164:
4062 < /* Line 1813 of yacc.c  */
4063 < #line 1147 "conf_parser.y"
4062 > /* Line 1787 of yacc.c  */
4063 > #line 1120 "conf_parser.y"
4064      {
4065    if (conf_parser_ctx.pass == 2)
4066 <    yy_aconf->modes |= UMODE_EXTERNAL;
4066 >    block_state.modes.value |= UMODE_HIDDEN;
4067   }
4068      break;
4069  
4070    case 165:
4071 < /* Line 1813 of yacc.c  */
4072 < #line 1151 "conf_parser.y"
4071 > /* Line 1787 of yacc.c  */
4072 > #line 1124 "conf_parser.y"
4073      {
4074    if (conf_parser_ctx.pass == 2)
4075 <    yy_aconf->modes |= UMODE_OPERWALL;
4075 >    block_state.modes.value |= UMODE_SKILL;
4076   }
4077      break;
4078  
4079    case 166:
4080 < /* Line 1813 of yacc.c  */
4081 < #line 1155 "conf_parser.y"
4080 > /* Line 1787 of yacc.c  */
4081 > #line 1128 "conf_parser.y"
4082      {
4083    if (conf_parser_ctx.pass == 2)
4084 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4084 >    block_state.modes.value |= UMODE_NCHANGE;
4085   }
4086      break;
4087  
4088    case 167:
4089 < /* Line 1813 of yacc.c  */
4090 < #line 1159 "conf_parser.y"
4089 > /* Line 1787 of yacc.c  */
4090 > #line 1132 "conf_parser.y"
4091      {
4092    if (conf_parser_ctx.pass == 2)
4093 <    yy_aconf->modes |= UMODE_INVISIBLE;
4093 >    block_state.modes.value |= UMODE_REJ;
4094   }
4095      break;
4096  
4097    case 168:
4098 < /* Line 1813 of yacc.c  */
4099 < #line 1163 "conf_parser.y"
4098 > /* Line 1787 of yacc.c  */
4099 > #line 1136 "conf_parser.y"
4100      {
4101    if (conf_parser_ctx.pass == 2)
4102 <    yy_aconf->modes |= UMODE_WALLOP;
4102 >    block_state.modes.value |= UMODE_UNAUTH;
4103   }
4104      break;
4105  
4106    case 169:
4107 < /* Line 1813 of yacc.c  */
4108 < #line 1167 "conf_parser.y"
4107 > /* Line 1787 of yacc.c  */
4108 > #line 1140 "conf_parser.y"
4109      {
4110    if (conf_parser_ctx.pass == 2)
4111 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4111 >    block_state.modes.value |= UMODE_SPY;
4112   }
4113      break;
4114  
4115    case 170:
4116 < /* Line 1813 of yacc.c  */
4117 < #line 1171 "conf_parser.y"
4116 > /* Line 1787 of yacc.c  */
4117 > #line 1144 "conf_parser.y"
4118      {
4119    if (conf_parser_ctx.pass == 2)
4120 <    yy_aconf->modes |= UMODE_CALLERID;
4120 >    block_state.modes.value |= UMODE_EXTERNAL;
4121   }
4122      break;
4123  
4124    case 171:
4125 < /* Line 1813 of yacc.c  */
4126 < #line 1175 "conf_parser.y"
4125 > /* Line 1787 of yacc.c  */
4126 > #line 1148 "conf_parser.y"
4127      {
4128    if (conf_parser_ctx.pass == 2)
4129 <    yy_aconf->modes |= UMODE_LOCOPS;
4129 >    block_state.modes.value |= UMODE_OPERWALL;
4130   }
4131      break;
4132  
4133    case 172:
4134 < /* Line 1813 of yacc.c  */
4135 < #line 1181 "conf_parser.y"
4134 > /* Line 1787 of yacc.c  */
4135 > #line 1152 "conf_parser.y"
4136      {
4137    if (conf_parser_ctx.pass == 2)
4138 <    yy_aconf->port = 0;
4138 >    block_state.modes.value |= UMODE_SERVNOTICE;
4139   }
4140      break;
4141  
4142 <  case 176:
4143 < /* Line 1813 of yacc.c  */
4144 < #line 1188 "conf_parser.y"
4142 >  case 173:
4143 > /* Line 1787 of yacc.c  */
4144 > #line 1156 "conf_parser.y"
4145      {
4146    if (conf_parser_ctx.pass == 2)
4147 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4147 >    block_state.modes.value |= UMODE_INVISIBLE;
4148   }
4149      break;
4150  
4151 <  case 177:
4152 < /* Line 1813 of yacc.c  */
4153 < #line 1192 "conf_parser.y"
4151 >  case 174:
4152 > /* Line 1787 of yacc.c  */
4153 > #line 1160 "conf_parser.y"
4154      {
4155    if (conf_parser_ctx.pass == 2)
4156 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4156 >    block_state.modes.value |= UMODE_WALLOP;
4157   }
4158      break;
4159  
4160 <  case 178:
4161 < /* Line 1813 of yacc.c  */
4162 < #line 1196 "conf_parser.y"
4160 >  case 175:
4161 > /* Line 1787 of yacc.c  */
4162 > #line 1164 "conf_parser.y"
4163      {
4164    if (conf_parser_ctx.pass == 2)
4165 <    yy_aconf->port |= OPER_FLAG_K;
4165 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4166   }
4167      break;
4168  
4169 <  case 179:
4170 < /* Line 1813 of yacc.c  */
4171 < #line 1200 "conf_parser.y"
4169 >  case 176:
4170 > /* Line 1787 of yacc.c  */
4171 > #line 1168 "conf_parser.y"
4172      {
4173    if (conf_parser_ctx.pass == 2)
4174 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4174 >    block_state.modes.value |= UMODE_CALLERID;
4175   }
4176      break;
4177  
4178 <  case 180:
4179 < /* Line 1813 of yacc.c  */
4180 < #line 1204 "conf_parser.y"
4178 >  case 177:
4179 > /* Line 1787 of yacc.c  */
4180 > #line 1172 "conf_parser.y"
4181      {
4182    if (conf_parser_ctx.pass == 2)
4183 <    yy_aconf->port |= OPER_FLAG_DLINE;
4183 >    block_state.modes.value |= UMODE_LOCOPS;
4184   }
4185      break;
4186  
4187 <  case 181:
4188 < /* Line 1813 of yacc.c  */
4189 < #line 1208 "conf_parser.y"
4187 >  case 178:
4188 > /* Line 1787 of yacc.c  */
4189 > #line 1176 "conf_parser.y"
4190      {
4191    if (conf_parser_ctx.pass == 2)
4192 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4192 >    block_state.modes.value |= UMODE_REGONLY;
4193   }
4194      break;
4195  
4196 <  case 182:
4197 < /* Line 1813 of yacc.c  */
4198 < #line 1212 "conf_parser.y"
4196 >  case 179:
4197 > /* Line 1787 of yacc.c  */
4198 > #line 1182 "conf_parser.y"
4199      {
4200    if (conf_parser_ctx.pass == 2)
4201 <    yy_aconf->port |= OPER_FLAG_X;
4201 >    block_state.port.value = 0;
4202   }
4203      break;
4204  
4205    case 183:
4206 < /* Line 1813 of yacc.c  */
4207 < #line 1216 "conf_parser.y"
4206 > /* Line 1787 of yacc.c  */
4207 > #line 1189 "conf_parser.y"
4208      {
4209    if (conf_parser_ctx.pass == 2)
4210 <    yy_aconf->port |= OPER_FLAG_GLINE;
4210 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4211   }
4212      break;
4213  
4214    case 184:
4215 < /* Line 1813 of yacc.c  */
4216 < #line 1220 "conf_parser.y"
4215 > /* Line 1787 of yacc.c  */
4216 > #line 1193 "conf_parser.y"
4217      {
4218    if (conf_parser_ctx.pass == 2)
4219 <    yy_aconf->port |= OPER_FLAG_DIE;
4219 >    block_state.port.value |= OPER_FLAG_REMOTE;
4220   }
4221      break;
4222  
4223    case 185:
4224 < /* Line 1813 of yacc.c  */
4225 < #line 1224 "conf_parser.y"
4224 > /* Line 1787 of yacc.c  */
4225 > #line 1197 "conf_parser.y"
4226      {
4227    if (conf_parser_ctx.pass == 2)
4228 <    yy_aconf->port |= OPER_FLAG_RESTART;
4228 >    block_state.port.value |= OPER_FLAG_K;
4229   }
4230      break;
4231  
4232    case 186:
4233 < /* Line 1813 of yacc.c  */
4234 < #line 1228 "conf_parser.y"
4233 > /* Line 1787 of yacc.c  */
4234 > #line 1201 "conf_parser.y"
4235      {
4236    if (conf_parser_ctx.pass == 2)
4237 <    yy_aconf->port |= OPER_FLAG_REHASH;
4237 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4238   }
4239      break;
4240  
4241    case 187:
4242 < /* Line 1813 of yacc.c  */
4243 < #line 1232 "conf_parser.y"
4242 > /* Line 1787 of yacc.c  */
4243 > #line 1205 "conf_parser.y"
4244      {
4245    if (conf_parser_ctx.pass == 2)
4246 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4246 >    block_state.port.value |= OPER_FLAG_DLINE;
4247   }
4248      break;
4249  
4250    case 188:
4251 < /* Line 1813 of yacc.c  */
4252 < #line 1236 "conf_parser.y"
4251 > /* Line 1787 of yacc.c  */
4252 > #line 1209 "conf_parser.y"
4253      {
4254    if (conf_parser_ctx.pass == 2)
4255 <    yy_aconf->port |= OPER_FLAG_N;
4255 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4256   }
4257      break;
4258  
4259    case 189:
4260 < /* Line 1813 of yacc.c  */
4261 < #line 1240 "conf_parser.y"
4260 > /* Line 1787 of yacc.c  */
4261 > #line 1213 "conf_parser.y"
4262      {
4263    if (conf_parser_ctx.pass == 2)
4264 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4264 >    block_state.port.value |= OPER_FLAG_X;
4265   }
4266      break;
4267  
4268    case 190:
4269 < /* Line 1813 of yacc.c  */
4270 < #line 1244 "conf_parser.y"
4269 > /* Line 1787 of yacc.c  */
4270 > #line 1217 "conf_parser.y"
4271      {
4272    if (conf_parser_ctx.pass == 2)
4273 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4273 >    block_state.port.value |= OPER_FLAG_GLINE;
4274   }
4275      break;
4276  
4277    case 191:
4278 < /* Line 1813 of yacc.c  */
4279 < #line 1248 "conf_parser.y"
4278 > /* Line 1787 of yacc.c  */
4279 > #line 1221 "conf_parser.y"
4280      {
4281    if (conf_parser_ctx.pass == 2)
4282 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4282 >    block_state.port.value |= OPER_FLAG_DIE;
4283   }
4284      break;
4285  
4286    case 192:
4287 < /* Line 1813 of yacc.c  */
4288 < #line 1252 "conf_parser.y"
4287 > /* Line 1787 of yacc.c  */
4288 > #line 1225 "conf_parser.y"
4289      {
4290    if (conf_parser_ctx.pass == 2)
4291 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4291 >    block_state.port.value |= OPER_FLAG_RESTART;
4292   }
4293      break;
4294  
4295    case 193:
4296 < /* Line 1813 of yacc.c  */
4297 < #line 1256 "conf_parser.y"
4296 > /* Line 1787 of yacc.c  */
4297 > #line 1229 "conf_parser.y"
4298      {
4299    if (conf_parser_ctx.pass == 2)
4300 <    yy_aconf->port |= OPER_FLAG_SET;
4300 >    block_state.port.value |= OPER_FLAG_REHASH;
4301   }
4302      break;
4303  
4304    case 194:
4305 < /* Line 1813 of yacc.c  */
4306 < #line 1260 "conf_parser.y"
4305 > /* Line 1787 of yacc.c  */
4306 > #line 1233 "conf_parser.y"
4307      {
4308    if (conf_parser_ctx.pass == 2)
4309 <    yy_aconf->port |= OPER_FLAG_MODULE;
4309 >    block_state.port.value |= OPER_FLAG_ADMIN;
4310   }
4311      break;
4312  
4313    case 195:
4314 < /* Line 1813 of yacc.c  */
4315 < #line 1270 "conf_parser.y"
4314 > /* Line 1787 of yacc.c  */
4315 > #line 1237 "conf_parser.y"
4316      {
4317 <  if (conf_parser_ctx.pass == 1)
4318 <  {
4387 <    yy_conf = make_conf_item(CLASS_TYPE);
4388 <    yy_class = map_to_conf(yy_conf);
4389 <  }
4317 >  if (conf_parser_ctx.pass == 2)
4318 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4319   }
4320      break;
4321  
4322    case 196:
4323 < /* Line 1813 of yacc.c  */
4324 < #line 1277 "conf_parser.y"
4323 > /* Line 1787 of yacc.c  */
4324 > #line 1241 "conf_parser.y"
4325      {
4326 <  if (conf_parser_ctx.pass == 1)
4327 <  {
4328 <    struct ConfItem *cconf = NULL;
4329 <    struct ClassItem *class = NULL;
4326 >  if (conf_parser_ctx.pass == 2)
4327 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4328 > }
4329 >    break;
4330  
4331 <    if (yy_class_name == NULL)
4332 <      delete_conf_item(yy_conf);
4333 <    else
4331 >  case 197:
4332 > /* Line 1787 of yacc.c  */
4333 > #line 1245 "conf_parser.y"
4334      {
4335 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4336 <
4337 <      if (cconf != NULL)                /* The class existed already */
4338 <      {
4410 <        int user_count = 0;
4335 >  if (conf_parser_ctx.pass == 2)
4336 >    block_state.port.value |= OPER_FLAG_OPER_SPY;
4337 > }
4338 >    break;
4339  
4340 <        rebuild_cidr_class(cconf, yy_class);
4340 >  case 198:
4341 > /* Line 1787 of yacc.c  */
4342 > #line 1249 "conf_parser.y"
4343 >    {
4344 >  if (conf_parser_ctx.pass == 2)
4345 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4346 > }
4347 >    break;
4348  
4349 <        class = map_to_conf(cconf);
4349 >  case 199:
4350 > /* Line 1787 of yacc.c  */
4351 > #line 1253 "conf_parser.y"
4352 >    {
4353 >  if (conf_parser_ctx.pass == 2)
4354 >    block_state.port.value |= OPER_FLAG_SET;
4355 > }
4356 >    break;
4357  
4358 <        user_count = class->curr_user_count;
4359 <        memcpy(class, yy_class, sizeof(*class));
4360 <        class->curr_user_count = user_count;
4361 <        class->active = 1;
4358 >  case 200:
4359 > /* Line 1787 of yacc.c  */
4360 > #line 1257 "conf_parser.y"
4361 >    {
4362 >  if (conf_parser_ctx.pass == 2)
4363 >    block_state.port.value |= OPER_FLAG_MODULE;
4364 > }
4365 >    break;
4366  
4367 <        delete_conf_item(yy_conf);
4367 >  case 201:
4368 > /* Line 1787 of yacc.c  */
4369 > #line 1267 "conf_parser.y"
4370 >    {
4371 >  if (conf_parser_ctx.pass != 1)
4372 >    break;
4373  
4374 <        MyFree(cconf->name);            /* Allows case change of class name */
4424 <        cconf->name = yy_class_name;
4425 <      }
4426 <      else      /* Brand new class */
4427 <      {
4428 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4429 <        yy_conf->name = yy_class_name;
4430 <        yy_class->active = 1;
4431 <      }
4432 <    }
4374 >  reset_block_state();
4375  
4376 <    yy_class_name = NULL;
4377 <  }
4376 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4377 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4378 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4379 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4380 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4381   }
4382      break;
4383  
4384 <  case 214:
4385 < /* Line 1813 of yacc.c  */
4386 < #line 1335 "conf_parser.y"
4384 >  case 202:
4385 > /* Line 1787 of yacc.c  */
4386 > #line 1279 "conf_parser.y"
4387      {
4388 <  if (conf_parser_ctx.pass == 1)
4388 >  struct ClassItem *class = NULL;
4389 >
4390 >  if (conf_parser_ctx.pass != 1)
4391 >    break;
4392 >
4393 >  if (!block_state.class.buf[0])
4394 >    break;
4395 >
4396 >  if (!(class = class_find(block_state.class.buf, 0)))
4397 >    class = class_make();
4398 >
4399 >  class->active = 1;
4400 >  MyFree(class->name);
4401 >  class->name = xstrdup(block_state.class.buf);
4402 >  class->ping_freq = block_state.ping_freq.value;
4403 >  class->max_perip = block_state.max_perip.value;
4404 >  class->con_freq = block_state.con_freq.value;
4405 >  class->max_total = block_state.max_total.value;
4406 >  class->max_global = block_state.max_global.value;
4407 >  class->max_local = block_state.max_local.value;
4408 >  class->max_ident = block_state.max_ident.value;
4409 >  class->max_sendq = block_state.max_sendq.value;
4410 >  class->max_recvq = block_state.max_recvq.value;
4411 >
4412 >  if (block_state.min_idle.value > block_state.max_idle.value)
4413    {
4414 <    MyFree(yy_class_name);
4415 <    DupString(yy_class_name, yylval.string);
4414 >    block_state.min_idle.value = 0;
4415 >    block_state.max_idle.value = 0;
4416 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4417    }
4418 +
4419 +  class->flags = block_state.flags.value;
4420 +  class->min_idle = block_state.min_idle.value;
4421 +  class->max_idle = block_state.max_idle.value;
4422 +
4423 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4424 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4425 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4426 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4427 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4428 +        rebuild_cidr_list(class);
4429 +
4430 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4431 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4432 +  class->number_per_cidr = block_state.number_per_cidr.value;
4433   }
4434      break;
4435  
4436 <  case 215:
4437 < /* Line 1813 of yacc.c  */
4438 < #line 1344 "conf_parser.y"
4436 >  case 222:
4437 > /* Line 1787 of yacc.c  */
4438 > #line 1345 "conf_parser.y"
4439      {
4440    if (conf_parser_ctx.pass == 1)
4441 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4441 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4442   }
4443      break;
4444  
4445 <  case 216:
4446 < /* Line 1813 of yacc.c  */
4447 < #line 1350 "conf_parser.y"
4445 >  case 223:
4446 > /* Line 1787 of yacc.c  */
4447 > #line 1351 "conf_parser.y"
4448      {
4449    if (conf_parser_ctx.pass == 1)
4450 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4450 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4451   }
4452      break;
4453  
4454 <  case 217:
4455 < /* Line 1813 of yacc.c  */
4456 < #line 1356 "conf_parser.y"
4454 >  case 224:
4455 > /* Line 1787 of yacc.c  */
4456 > #line 1357 "conf_parser.y"
4457      {
4458    if (conf_parser_ctx.pass == 1)
4459 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4459 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4460   }
4461      break;
4462  
4463 <  case 218:
4464 < /* Line 1813 of yacc.c  */
4465 < #line 1362 "conf_parser.y"
4463 >  case 225:
4464 > /* Line 1787 of yacc.c  */
4465 > #line 1363 "conf_parser.y"
4466      {
4467    if (conf_parser_ctx.pass == 1)
4468 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4468 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4469   }
4470      break;
4471  
4472 <  case 219:
4473 < /* Line 1813 of yacc.c  */
4474 < #line 1368 "conf_parser.y"
4472 >  case 226:
4473 > /* Line 1787 of yacc.c  */
4474 > #line 1369 "conf_parser.y"
4475      {
4476    if (conf_parser_ctx.pass == 1)
4477 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4477 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4478   }
4479      break;
4480  
4481 <  case 220:
4482 < /* Line 1813 of yacc.c  */
4483 < #line 1374 "conf_parser.y"
4481 >  case 227:
4482 > /* Line 1787 of yacc.c  */
4483 > #line 1375 "conf_parser.y"
4484      {
4485    if (conf_parser_ctx.pass == 1)
4486 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4486 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4487   }
4488      break;
4489  
4490 <  case 221:
4491 < /* Line 1813 of yacc.c  */
4492 < #line 1380 "conf_parser.y"
4490 >  case 228:
4491 > /* Line 1787 of yacc.c  */
4492 > #line 1381 "conf_parser.y"
4493      {
4494    if (conf_parser_ctx.pass == 1)
4495 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4495 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4496   }
4497      break;
4498  
4499 <  case 222:
4500 < /* Line 1813 of yacc.c  */
4501 < #line 1386 "conf_parser.y"
4499 >  case 229:
4500 > /* Line 1787 of yacc.c  */
4501 > #line 1387 "conf_parser.y"
4502      {
4503    if (conf_parser_ctx.pass == 1)
4504 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4504 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4505   }
4506      break;
4507  
4508 <  case 223:
4509 < /* Line 1813 of yacc.c  */
4510 < #line 1392 "conf_parser.y"
4508 >  case 230:
4509 > /* Line 1787 of yacc.c  */
4510 > #line 1393 "conf_parser.y"
4511      {
4512    if (conf_parser_ctx.pass == 1)
4513 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4513 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4514   }
4515      break;
4516  
4517 <  case 224:
4518 < /* Line 1813 of yacc.c  */
4519 < #line 1398 "conf_parser.y"
4517 >  case 231:
4518 > /* Line 1787 of yacc.c  */
4519 > #line 1399 "conf_parser.y"
4520      {
4521    if (conf_parser_ctx.pass == 1)
4522      if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4523 <      yy_class->max_recvq = (yyvsp[(3) - (4)].number);
4523 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4524   }
4525      break;
4526  
4527 <  case 225:
4528 < /* Line 1813 of yacc.c  */
4529 < #line 1405 "conf_parser.y"
4527 >  case 232:
4528 > /* Line 1787 of yacc.c  */
4529 > #line 1406 "conf_parser.y"
4530      {
4531    if (conf_parser_ctx.pass == 1)
4532 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4532 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4533   }
4534      break;
4535  
4536 <  case 226:
4537 < /* Line 1813 of yacc.c  */
4538 < #line 1411 "conf_parser.y"
4536 >  case 233:
4537 > /* Line 1787 of yacc.c  */
4538 > #line 1412 "conf_parser.y"
4539      {
4540    if (conf_parser_ctx.pass == 1)
4541 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4541 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4542   }
4543      break;
4544  
4545 <  case 227:
4546 < /* Line 1813 of yacc.c  */
4547 < #line 1417 "conf_parser.y"
4545 >  case 234:
4546 > /* Line 1787 of yacc.c  */
4547 > #line 1418 "conf_parser.y"
4548      {
4549    if (conf_parser_ctx.pass == 1)
4550 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4550 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4551   }
4552      break;
4553  
4554 <  case 228:
4555 < /* Line 1813 of yacc.c  */
4556 < #line 1426 "conf_parser.y"
4554 >  case 235:
4555 > /* Line 1787 of yacc.c  */
4556 > #line 1424 "conf_parser.y"
4557      {
4558 <  if (conf_parser_ctx.pass == 2)
4559 <  {
4560 <    listener_address = NULL;
4561 <    listener_flags = 0;
4562 <  }
4558 >  if (conf_parser_ctx.pass != 1)
4559 >    break;
4560 >
4561 >  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4562 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4563   }
4564      break;
4565  
4566 <  case 229:
4567 < /* Line 1813 of yacc.c  */
4566 >  case 236:
4567 > /* Line 1787 of yacc.c  */
4568   #line 1433 "conf_parser.y"
4569      {
4570 <  if (conf_parser_ctx.pass == 2)
4571 <  {
4572 <    MyFree(listener_address);
4573 <    listener_address = NULL;
4574 <  }
4570 >  if (conf_parser_ctx.pass != 1)
4571 >    break;
4572 >
4573 >  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4574 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4575   }
4576      break;
4577  
4578 <  case 230:
4579 < /* Line 1813 of yacc.c  */
4578 >  case 237:
4579 > /* Line 1787 of yacc.c  */
4580   #line 1442 "conf_parser.y"
4581      {
4582 <  listener_flags = 0;
4582 >  if (conf_parser_ctx.pass == 1)
4583 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4584   }
4585      break;
4586  
4587 <  case 234:
4588 < /* Line 1813 of yacc.c  */
4589 < #line 1448 "conf_parser.y"
4587 >  case 241:
4588 > /* Line 1787 of yacc.c  */
4589 > #line 1449 "conf_parser.y"
4590 >    {
4591 >  if (conf_parser_ctx.pass == 1)
4592 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4593 > }
4594 >    break;
4595 >
4596 >  case 242:
4597 > /* Line 1787 of yacc.c  */
4598 > #line 1453 "conf_parser.y"
4599 >    {
4600 >  if (conf_parser_ctx.pass == 1)
4601 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4602 > }
4603 >    break;
4604 >
4605 >  case 243:
4606 > /* Line 1787 of yacc.c  */
4607 > #line 1463 "conf_parser.y"
4608      {
4609    if (conf_parser_ctx.pass == 2)
4610 <    listener_flags |= LISTENER_SSL;
4610 >    reset_block_state();
4611   }
4612      break;
4613  
4614 <  case 235:
4615 < /* Line 1813 of yacc.c  */
4616 < #line 1452 "conf_parser.y"
4614 >  case 245:
4615 > /* Line 1787 of yacc.c  */
4616 > #line 1469 "conf_parser.y"
4617 >    {
4618 >  block_state.flags.value = 0;
4619 > }
4620 >    break;
4621 >
4622 >  case 249:
4623 > /* Line 1787 of yacc.c  */
4624 > #line 1475 "conf_parser.y"
4625      {
4626    if (conf_parser_ctx.pass == 2)
4627 <    listener_flags |= LISTENER_HIDDEN;
4627 >    block_state.flags.value |= LISTENER_SSL;
4628   }
4629      break;
4630  
4631 <  case 236:
4632 < /* Line 1813 of yacc.c  */
4633 < #line 1456 "conf_parser.y"
4631 >  case 250:
4632 > /* Line 1787 of yacc.c  */
4633 > #line 1479 "conf_parser.y"
4634 >    {
4635 >  if (conf_parser_ctx.pass == 2)
4636 >    block_state.flags.value |= LISTENER_HIDDEN;
4637 > }
4638 >    break;
4639 >
4640 >  case 251:
4641 > /* Line 1787 of yacc.c  */
4642 > #line 1483 "conf_parser.y"
4643      {
4644    if (conf_parser_ctx.pass == 2)
4645 <    listener_flags |= LISTENER_SERVER;
4645 >   block_state.flags.value |= LISTENER_SERVER;
4646   }
4647      break;
4648  
4649 <  case 244:
4650 < /* Line 1813 of yacc.c  */
4651 < #line 1466 "conf_parser.y"
4652 <    { listener_flags = 0; }
4649 >  case 259:
4650 > /* Line 1787 of yacc.c  */
4651 > #line 1491 "conf_parser.y"
4652 >    { block_state.flags.value = 0; }
4653      break;
4654  
4655 <  case 248:
4656 < /* Line 1813 of yacc.c  */
4657 < #line 1471 "conf_parser.y"
4655 >  case 263:
4656 > /* Line 1787 of yacc.c  */
4657 > #line 1496 "conf_parser.y"
4658      {
4659    if (conf_parser_ctx.pass == 2)
4660    {
4661 <    if ((listener_flags & LISTENER_SSL))
4661 >    if (block_state.flags.value & LISTENER_SSL)
4662   #ifdef HAVE_LIBCRYPTO
4663        if (!ServerInfo.server_ctx)
4664   #endif
4665        {
4666 <        yyerror("SSL not available - port closed");
4666 >        conf_error_report("SSL not available - port closed");
4667          break;
4668        }
4669 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4669 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4670    }
4671   }
4672      break;
4673  
4674 <  case 249:
4675 < /* Line 1813 of yacc.c  */
4676 < #line 1485 "conf_parser.y"
4674 >  case 264:
4675 > /* Line 1787 of yacc.c  */
4676 > #line 1510 "conf_parser.y"
4677      {
4678    if (conf_parser_ctx.pass == 2)
4679    {
4680      int i;
4681  
4682 <    if ((listener_flags & LISTENER_SSL))
4682 >    if (block_state.flags.value & LISTENER_SSL)
4683   #ifdef HAVE_LIBCRYPTO
4684        if (!ServerInfo.server_ctx)
4685   #endif
4686        {
4687 <        yyerror("SSL not available - port closed");
4687 >        conf_error_report("SSL not available - port closed");
4688          break;
4689        }
4690  
4691      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4692 <      add_listener(i, listener_address, listener_flags);
4692 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4693    }
4694   }
4695      break;
4696  
4697 <  case 250:
4698 < /* Line 1813 of yacc.c  */
4699 < #line 1505 "conf_parser.y"
4697 >  case 265:
4698 > /* Line 1787 of yacc.c  */
4699 > #line 1530 "conf_parser.y"
4700      {
4701    if (conf_parser_ctx.pass == 2)
4702 <  {
4682 <    MyFree(listener_address);
4683 <    DupString(listener_address, yylval.string);
4684 <  }
4702 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4703   }
4704      break;
4705  
4706 <  case 251:
4707 < /* Line 1813 of yacc.c  */
4708 < #line 1514 "conf_parser.y"
4706 >  case 266:
4707 > /* Line 1787 of yacc.c  */
4708 > #line 1536 "conf_parser.y"
4709      {
4710    if (conf_parser_ctx.pass == 2)
4711 <  {
4694 <    MyFree(listener_address);
4695 <    DupString(listener_address, yylval.string);
4696 <  }
4711 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4712   }
4713      break;
4714  
4715 <  case 252:
4716 < /* Line 1813 of yacc.c  */
4717 < #line 1526 "conf_parser.y"
4715 >  case 267:
4716 > /* Line 1787 of yacc.c  */
4717 > #line 1545 "conf_parser.y"
4718      {
4719    if (conf_parser_ctx.pass == 2)
4720 <  {
4706 <    yy_conf = make_conf_item(CLIENT_TYPE);
4707 <    yy_aconf = map_to_conf(yy_conf);
4708 <  }
4709 <  else
4710 <  {
4711 <    MyFree(class_name);
4712 <    class_name = NULL;
4713 <  }
4720 >    reset_block_state();
4721   }
4722      break;
4723  
4724 <  case 253:
4725 < /* Line 1813 of yacc.c  */
4726 < #line 1538 "conf_parser.y"
4720 <    {
4721 <  if (conf_parser_ctx.pass == 2)
4722 <  {
4723 <    struct CollectItem *yy_tmp = NULL;
4724 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4725 <
4726 <    if (yy_aconf->user && yy_aconf->host)
4727 <    {
4728 <      conf_add_class_to_conf(yy_conf, class_name);
4729 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4730 <    }
4731 <    else
4732 <      delete_conf_item(yy_conf);
4733 <
4734 <    /* copy over settings from first struct */
4735 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4724 >  case 268:
4725 > /* Line 1787 of yacc.c  */
4726 > #line 1549 "conf_parser.y"
4727      {
4728 <      struct AccessItem *new_aconf;
4738 <      struct ConfItem *new_conf;
4739 <
4740 <      new_conf = make_conf_item(CLIENT_TYPE);
4741 <      new_aconf = map_to_conf(new_conf);
4728 >  dlink_node *ptr = NULL;
4729  
4730 <      yy_tmp = ptr->data;
4744 <
4745 <      assert(yy_tmp->user && yy_tmp->host);
4746 <
4747 <      if (yy_aconf->passwd != NULL)
4748 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4749 <      if (yy_conf->name != NULL)
4750 <        DupString(new_conf->name, yy_conf->name);
4751 <      if (yy_aconf->passwd != NULL)
4752 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4753 <
4754 <      new_aconf->flags = yy_aconf->flags;
4755 <      new_aconf->port  = yy_aconf->port;
4756 <
4757 <      DupString(new_aconf->user, yy_tmp->user);
4758 <      collapse(new_aconf->user);
4759 <
4760 <      DupString(new_aconf->host, yy_tmp->host);
4761 <      collapse(new_aconf->host);
4762 <
4763 <      conf_add_class_to_conf(new_conf, class_name);
4764 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4765 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4766 <      free_collect_item(yy_tmp);
4767 <    }
4768 <
4769 <    MyFree(class_name);
4770 <    class_name = NULL;
4771 <    yy_conf = NULL;
4772 <    yy_aconf = NULL;
4773 <  }
4774 < }
4730 >  if (conf_parser_ctx.pass != 2)
4731      break;
4732  
4733 <  case 265:
4778 < /* Line 1813 of yacc.c  */
4779 < #line 1600 "conf_parser.y"
4780 <    {
4781 <  if (conf_parser_ctx.pass == 2)
4733 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4734    {
4735 <    struct CollectItem *yy_tmp = NULL;
4735 >    struct MaskItem *conf = NULL;
4736      struct split_nuh_item nuh;
4737  
4738 <    nuh.nuhmask  = yylval.string;
4738 >    nuh.nuhmask  = ptr->data;
4739      nuh.nickptr  = NULL;
4740 <    nuh.userptr  = userbuf;
4741 <    nuh.hostptr  = hostbuf;
4790 <
4740 >    nuh.userptr  = block_state.user.buf;
4741 >    nuh.hostptr  = block_state.host.buf;
4742      nuh.nicksize = 0;
4743 <    nuh.usersize = sizeof(userbuf);
4744 <    nuh.hostsize = sizeof(hostbuf);
4794 <
4743 >    nuh.usersize = sizeof(block_state.user.buf);
4744 >    nuh.hostsize = sizeof(block_state.host.buf);
4745      split_nuh(&nuh);
4746  
4747 <    if (yy_aconf->user == NULL)
4748 <    {
4749 <      DupString(yy_aconf->user, userbuf);
4750 <      DupString(yy_aconf->host, hostbuf);
4751 <    }
4752 <    else
4753 <    {
4754 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4747 >    conf        = conf_make(CONF_CLIENT);
4748 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4749 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4750 >
4751 >    if (block_state.rpass.buf[0])
4752 >      conf->passwd = xstrdup(block_state.rpass.buf);
4753 >    if (block_state.name.buf[0])
4754 >      conf->name = xstrdup(block_state.name.buf);
4755  
4756 <      DupString(yy_tmp->user, userbuf);
4757 <      DupString(yy_tmp->host, hostbuf);
4756 >    conf->flags = block_state.flags.value;
4757 >    conf->port  = block_state.port.value;
4758  
4759 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4760 <    }
4759 >    conf_add_class_to_conf(conf, block_state.class.buf);
4760 >    add_conf_by_address(CONF_CLIENT, conf);
4761    }
4762   }
4763      break;
4764  
4765 <  case 266:
4766 < /* Line 1813 of yacc.c  */
4767 < #line 1635 "conf_parser.y"
4765 >  case 280:
4766 > /* Line 1787 of yacc.c  */
4767 > #line 1592 "conf_parser.y"
4768      {
4769    if (conf_parser_ctx.pass == 2)
4770 <  {
4771 <    /* be paranoid */
4772 <    if (yy_aconf->passwd != NULL)
4823 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4770 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4771 > }
4772 >    break;
4773  
4774 <    MyFree(yy_aconf->passwd);
4775 <    DupString(yy_aconf->passwd, yylval.string);
4776 <  }
4774 >  case 281:
4775 > /* Line 1787 of yacc.c  */
4776 > #line 1598 "conf_parser.y"
4777 >    {
4778 >  if (conf_parser_ctx.pass == 2)
4779 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4780   }
4781      break;
4782  
4783 <  case 267:
4784 < /* Line 1813 of yacc.c  */
4785 < #line 1648 "conf_parser.y"
4783 >  case 282:
4784 > /* Line 1787 of yacc.c  */
4785 > #line 1604 "conf_parser.y"
4786      {
4787    if (conf_parser_ctx.pass == 2)
4788 <  {
4837 <    MyFree(class_name);
4838 <    DupString(class_name, yylval.string);
4839 <  }
4788 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4789   }
4790      break;
4791  
4792 <  case 268:
4793 < /* Line 1813 of yacc.c  */
4794 < #line 1657 "conf_parser.y"
4792 >  case 283:
4793 > /* Line 1787 of yacc.c  */
4794 > #line 1610 "conf_parser.y"
4795      {
4796    if (conf_parser_ctx.pass == 2)
4797    {
4798      if (yylval.number)
4799 <      SetConfEncrypted(yy_aconf);
4799 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4800      else
4801 <      ClearConfEncrypted(yy_aconf);
4801 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4802    }
4803   }
4804      break;
4805  
4806 <  case 269:
4807 < /* Line 1813 of yacc.c  */
4808 < #line 1668 "conf_parser.y"
4806 >  case 284:
4807 > /* Line 1787 of yacc.c  */
4808 > #line 1621 "conf_parser.y"
4809      {
4810 +  if (conf_parser_ctx.pass == 2)
4811 +    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4812   }
4813      break;
4814  
4815 <  case 273:
4816 < /* Line 1813 of yacc.c  */
4817 < #line 1673 "conf_parser.y"
4815 >  case 288:
4816 > /* Line 1787 of yacc.c  */
4817 > #line 1628 "conf_parser.y"
4818      {
4819    if (conf_parser_ctx.pass == 2)
4820 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4820 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4821   }
4822      break;
4823  
4824 <  case 274:
4825 < /* Line 1813 of yacc.c  */
4826 < #line 1677 "conf_parser.y"
4824 >  case 289:
4825 > /* Line 1787 of yacc.c  */
4826 > #line 1632 "conf_parser.y"
4827      {
4828    if (conf_parser_ctx.pass == 2)
4829 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4829 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4830   }
4831      break;
4832  
4833 <  case 275:
4834 < /* Line 1813 of yacc.c  */
4835 < #line 1681 "conf_parser.y"
4833 >  case 290:
4834 > /* Line 1787 of yacc.c  */
4835 > #line 1636 "conf_parser.y"
4836      {
4837    if (conf_parser_ctx.pass == 2)
4838 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4838 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4839   }
4840      break;
4841  
4842 <  case 276:
4843 < /* Line 1813 of yacc.c  */
4844 < #line 1685 "conf_parser.y"
4842 >  case 291:
4843 > /* Line 1787 of yacc.c  */
4844 > #line 1640 "conf_parser.y"
4845      {
4846    if (conf_parser_ctx.pass == 2)
4847 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4847 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4848   }
4849      break;
4850  
4851 <  case 277:
4852 < /* Line 1813 of yacc.c  */
4853 < #line 1689 "conf_parser.y"
4851 >  case 292:
4852 > /* Line 1787 of yacc.c  */
4853 > #line 1644 "conf_parser.y"
4854      {
4855    if (conf_parser_ctx.pass == 2)
4856 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4856 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4857   }
4858      break;
4859  
4860 <  case 278:
4861 < /* Line 1813 of yacc.c  */
4862 < #line 1693 "conf_parser.y"
4860 >  case 293:
4861 > /* Line 1787 of yacc.c  */
4862 > #line 1648 "conf_parser.y"
4863      {
4864    if (conf_parser_ctx.pass == 2)
4865 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4865 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4866   }
4867      break;
4868  
4869 <  case 279:
4870 < /* Line 1813 of yacc.c  */
4871 < #line 1697 "conf_parser.y"
4869 >  case 294:
4870 > /* Line 1787 of yacc.c  */
4871 > #line 1652 "conf_parser.y"
4872      {
4873    if (conf_parser_ctx.pass == 2)
4874 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4874 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4875   }
4876      break;
4877  
4878 <  case 280:
4879 < /* Line 1813 of yacc.c  */
4880 < #line 1701 "conf_parser.y"
4878 >  case 295:
4879 > /* Line 1787 of yacc.c  */
4880 > #line 1656 "conf_parser.y"
4881      {
4882    if (conf_parser_ctx.pass == 2)
4883 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4883 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4884   }
4885      break;
4886  
4887 <  case 281:
4888 < /* Line 1813 of yacc.c  */
4889 < #line 1705 "conf_parser.y"
4887 >  case 296:
4888 > /* Line 1787 of yacc.c  */
4889 > #line 1660 "conf_parser.y"
4890      {
4891    if (conf_parser_ctx.pass == 2)
4892 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4892 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4893   }
4894      break;
4895  
4896 <  case 282:
4897 < /* Line 1813 of yacc.c  */
4898 < #line 1711 "conf_parser.y"
4896 >  case 297:
4897 > /* Line 1787 of yacc.c  */
4898 > #line 1664 "conf_parser.y"
4899      {
4900    if (conf_parser_ctx.pass == 2)
4901 <  {
4902 <    MyFree(yy_conf->name);
4901 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4902 > }
4903 >    break;
4904  
4905 <    if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4906 <    {    
4907 <      DupString(yy_conf->name, yylval.string);
4956 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4957 <    }
4958 <    else
4905 >  case 298:
4906 > /* Line 1787 of yacc.c  */
4907 > #line 1670 "conf_parser.y"
4908      {
4909 <      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4910 <      yy_conf->name = NULL;
4911 <    }
4909 >  if (conf_parser_ctx.pass != 2)
4910 >    break;
4911 >
4912 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4913 >  {
4914 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4915 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4916    }
4917 +  else
4918 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4919   }
4920      break;
4921  
4922 <  case 283:
4923 < /* Line 1813 of yacc.c  */
4924 < #line 1730 "conf_parser.y"
4922 >  case 299:
4923 > /* Line 1787 of yacc.c  */
4924 > #line 1684 "conf_parser.y"
4925      {
4926 <  if (conf_parser_ctx.pass == 2)
4927 <  {
4928 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4929 <    MyFree(yy_conf->name);
4930 <    DupString(yy_conf->name, yylval.string);
4976 <  }
4926 >  if (conf_parser_ctx.pass != 2)
4927 >    break;
4928 >
4929 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4930 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4931   }
4932      break;
4933  
4934 <  case 284:
4935 < /* Line 1813 of yacc.c  */
4936 < #line 1740 "conf_parser.y"
4934 >  case 300:
4935 > /* Line 1787 of yacc.c  */
4936 > #line 1693 "conf_parser.y"
4937      {
4938 <  if (conf_parser_ctx.pass == 2)
4939 <  {
4940 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4941 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4942 <  }
4938 >  if (conf_parser_ctx.pass != 2)
4939 >    break;
4940 >
4941 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4942 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4943   }
4944      break;
4945  
4946 <  case 285:
4947 < /* Line 1813 of yacc.c  */
4948 < #line 1753 "conf_parser.y"
4946 >  case 301:
4947 > /* Line 1787 of yacc.c  */
4948 > #line 1706 "conf_parser.y"
4949      {
4950 <  if (conf_parser_ctx.pass == 2)
4951 <  {
4952 <    MyFree(resv_reason);
4953 <    resv_reason = NULL;
4954 <  }
4950 >  if (conf_parser_ctx.pass != 2)
4951 >    break;
4952 >
4953 >  reset_block_state();
4954 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4955   }
4956      break;
4957  
4958 <  case 286:
4959 < /* Line 1813 of yacc.c  */
4960 < #line 1760 "conf_parser.y"
4958 >  case 302:
4959 > /* Line 1787 of yacc.c  */
4960 > #line 1713 "conf_parser.y"
4961      {
4962 <  if (conf_parser_ctx.pass == 2)
4963 <  {
4964 <    MyFree(resv_reason);
4965 <    resv_reason = NULL;
5012 <  }
4962 >  if (conf_parser_ctx.pass != 2)
4963 >    break;
4964 >
4965 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4966   }
4967      break;
4968  
4969 <  case 293:
4970 < /* Line 1813 of yacc.c  */
4971 < #line 1772 "conf_parser.y"
4969 >  case 309:
4970 > /* Line 1787 of yacc.c  */
4971 > #line 1724 "conf_parser.y"
4972      {
4973    if (conf_parser_ctx.pass == 2)
4974 <  {
5022 <    MyFree(resv_reason);
5023 <    DupString(resv_reason, yylval.string);
5024 <  }
4974 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4975   }
4976      break;
4977  
4978 <  case 294:
4979 < /* Line 1813 of yacc.c  */
4980 < #line 1781 "conf_parser.y"
4978 >  case 310:
4979 > /* Line 1787 of yacc.c  */
4980 > #line 1730 "conf_parser.y"
4981      {
4982    if (conf_parser_ctx.pass == 2)
4983 <  {
5034 <    if (IsChanPrefix(*yylval.string))
5035 <    {
5036 <      char def_reason[] = "No reason";
5037 <
5038 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5039 <    }
5040 <  }
5041 <  /* ignore it for now.. but we really should make a warning if
5042 <   * its an erroneous name --fl_ */
4983 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4984   }
4985      break;
4986  
4987 <  case 295:
4988 < /* Line 1813 of yacc.c  */
4989 < #line 1796 "conf_parser.y"
4987 >  case 311:
4988 > /* Line 1787 of yacc.c  */
4989 > #line 1736 "conf_parser.y"
4990      {
4991    if (conf_parser_ctx.pass == 2)
4992 <  {
5052 <    char def_reason[] = "No reason";
5053 <
5054 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5055 <  }
4992 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4993   }
4994      break;
4995  
4996 <  case 301:
4997 < /* Line 1813 of yacc.c  */
4998 < #line 1814 "conf_parser.y"
4996 >  case 317:
4997 > /* Line 1787 of yacc.c  */
4998 > #line 1751 "conf_parser.y"
4999      {
5000    if (conf_parser_ctx.pass == 2)
5001    {
5002      if (valid_servname(yylval.string))
5003      {
5004 <      yy_conf = make_conf_item(SERVICE_TYPE);
5005 <      DupString(yy_conf->name, yylval.string);
5004 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
5005 >      conf->name = xstrdup(yylval.string);
5006      }
5007    }
5008   }
5009      break;
5010  
5011 <  case 302:
5012 < /* Line 1813 of yacc.c  */
5013 < #line 1829 "conf_parser.y"
5011 >  case 318:
5012 > /* Line 1787 of yacc.c  */
5013 > #line 1766 "conf_parser.y"
5014      {
5015 <  if (conf_parser_ctx.pass == 2)
5016 <  {
5017 <    yy_conf = make_conf_item(ULINE_TYPE);
5018 <    yy_match_item = map_to_conf(yy_conf);
5019 <    yy_match_item->action = SHARED_ALL;
5020 <  }
5015 >  if (conf_parser_ctx.pass != 2)
5016 >    break;
5017 >
5018 >  reset_block_state();
5019 >
5020 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5021 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5022 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5023 >  block_state.flags.value = SHARED_ALL;
5024   }
5025      break;
5026  
5027 <  case 303:
5028 < /* Line 1813 of yacc.c  */
5029 < #line 1837 "conf_parser.y"
5027 >  case 319:
5028 > /* Line 1787 of yacc.c  */
5029 > #line 1777 "conf_parser.y"
5030      {
5031 <  if (conf_parser_ctx.pass == 2)
5032 <  {
5033 <    yy_conf = NULL;
5034 <  }
5031 >  struct MaskItem *conf = NULL;
5032 >
5033 >  if (conf_parser_ctx.pass != 2)
5034 >    break;
5035 >
5036 >  conf = conf_make(CONF_ULINE);
5037 >  conf->flags = block_state.flags.value;
5038 >  conf->name = xstrdup(block_state.name.buf);
5039 >  conf->user = xstrdup(block_state.user.buf);
5040 >  conf->host = xstrdup(block_state.host.buf);
5041   }
5042      break;
5043  
5044 <  case 310:
5045 < /* Line 1813 of yacc.c  */
5046 < #line 1848 "conf_parser.y"
5044 >  case 326:
5045 > /* Line 1787 of yacc.c  */
5046 > #line 1794 "conf_parser.y"
5047      {
5048    if (conf_parser_ctx.pass == 2)
5049 <  {
5104 <    MyFree(yy_conf->name);
5105 <    DupString(yy_conf->name, yylval.string);
5106 <  }
5049 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5050   }
5051      break;
5052  
5053 <  case 311:
5054 < /* Line 1813 of yacc.c  */
5055 < #line 1857 "conf_parser.y"
5053 >  case 327:
5054 > /* Line 1787 of yacc.c  */
5055 > #line 1800 "conf_parser.y"
5056      {
5057    if (conf_parser_ctx.pass == 2)
5058    {
# Line 5117 | Line 5060 | yyreduce:
5060  
5061      nuh.nuhmask  = yylval.string;
5062      nuh.nickptr  = NULL;
5063 <    nuh.userptr  = userbuf;
5064 <    nuh.hostptr  = hostbuf;
5063 >    nuh.userptr  = block_state.user.buf;
5064 >    nuh.hostptr  = block_state.host.buf;
5065  
5066      nuh.nicksize = 0;
5067 <    nuh.usersize = sizeof(userbuf);
5068 <    nuh.hostsize = sizeof(hostbuf);
5067 >    nuh.usersize = sizeof(block_state.user.buf);
5068 >    nuh.hostsize = sizeof(block_state.host.buf);
5069  
5070      split_nuh(&nuh);
5128
5129    DupString(yy_match_item->user, userbuf);
5130    DupString(yy_match_item->host, hostbuf);
5071    }
5072   }
5073      break;
5074  
5075 <  case 312:
5076 < /* Line 1813 of yacc.c  */
5077 < #line 1879 "conf_parser.y"
5075 >  case 328:
5076 > /* Line 1787 of yacc.c  */
5077 > #line 1819 "conf_parser.y"
5078      {
5079    if (conf_parser_ctx.pass == 2)
5080 <    yy_match_item->action = 0;
5080 >    block_state.flags.value = 0;
5081   }
5082      break;
5083  
5084 <  case 316:
5085 < /* Line 1813 of yacc.c  */
5086 < #line 1886 "conf_parser.y"
5084 >  case 332:
5085 > /* Line 1787 of yacc.c  */
5086 > #line 1826 "conf_parser.y"
5087      {
5088    if (conf_parser_ctx.pass == 2)
5089 <    yy_match_item->action |= SHARED_KLINE;
5089 >    block_state.flags.value |= SHARED_KLINE;
5090   }
5091      break;
5092  
5093 <  case 317:
5094 < /* Line 1813 of yacc.c  */
5095 < #line 1890 "conf_parser.y"
5093 >  case 333:
5094 > /* Line 1787 of yacc.c  */
5095 > #line 1830 "conf_parser.y"
5096      {
5097    if (conf_parser_ctx.pass == 2)
5098 <    yy_match_item->action |= SHARED_UNKLINE;
5098 >    block_state.flags.value |= SHARED_UNKLINE;
5099   }
5100      break;
5101  
5102 <  case 318:
5103 < /* Line 1813 of yacc.c  */
5104 < #line 1894 "conf_parser.y"
5102 >  case 334:
5103 > /* Line 1787 of yacc.c  */
5104 > #line 1834 "conf_parser.y"
5105      {
5106    if (conf_parser_ctx.pass == 2)
5107 <    yy_match_item->action |= SHARED_DLINE;
5107 >    block_state.flags.value |= SHARED_DLINE;
5108   }
5109      break;
5110  
5111 <  case 319:
5112 < /* Line 1813 of yacc.c  */
5113 < #line 1898 "conf_parser.y"
5111 >  case 335:
5112 > /* Line 1787 of yacc.c  */
5113 > #line 1838 "conf_parser.y"
5114      {
5115    if (conf_parser_ctx.pass == 2)
5116 <    yy_match_item->action |= SHARED_UNDLINE;
5116 >    block_state.flags.value |= SHARED_UNDLINE;
5117   }
5118      break;
5119  
5120 <  case 320:
5121 < /* Line 1813 of yacc.c  */
5122 < #line 1902 "conf_parser.y"
5120 >  case 336:
5121 > /* Line 1787 of yacc.c  */
5122 > #line 1842 "conf_parser.y"
5123      {
5124    if (conf_parser_ctx.pass == 2)
5125 <    yy_match_item->action |= SHARED_XLINE;
5125 >    block_state.flags.value |= SHARED_XLINE;
5126   }
5127      break;
5128  
5129 <  case 321:
5130 < /* Line 1813 of yacc.c  */
5131 < #line 1906 "conf_parser.y"
5129 >  case 337:
5130 > /* Line 1787 of yacc.c  */
5131 > #line 1846 "conf_parser.y"
5132      {
5133    if (conf_parser_ctx.pass == 2)
5134 <    yy_match_item->action |= SHARED_UNXLINE;
5134 >    block_state.flags.value |= SHARED_UNXLINE;
5135   }
5136      break;
5137  
5138 <  case 322:
5139 < /* Line 1813 of yacc.c  */
5140 < #line 1910 "conf_parser.y"
5138 >  case 338:
5139 > /* Line 1787 of yacc.c  */
5140 > #line 1850 "conf_parser.y"
5141      {
5142    if (conf_parser_ctx.pass == 2)
5143 <    yy_match_item->action |= SHARED_RESV;
5143 >    block_state.flags.value |= SHARED_RESV;
5144   }
5145      break;
5146  
5147 <  case 323:
5148 < /* Line 1813 of yacc.c  */
5149 < #line 1914 "conf_parser.y"
5147 >  case 339:
5148 > /* Line 1787 of yacc.c  */
5149 > #line 1854 "conf_parser.y"
5150      {
5151    if (conf_parser_ctx.pass == 2)
5152 <    yy_match_item->action |= SHARED_UNRESV;
5152 >    block_state.flags.value |= SHARED_UNRESV;
5153   }
5154      break;
5155  
5156 <  case 324:
5157 < /* Line 1813 of yacc.c  */
5158 < #line 1918 "conf_parser.y"
5156 >  case 340:
5157 > /* Line 1787 of yacc.c  */
5158 > #line 1858 "conf_parser.y"
5159      {
5160    if (conf_parser_ctx.pass == 2)
5161 <    yy_match_item->action |= SHARED_LOCOPS;
5161 >    block_state.flags.value |= SHARED_LOCOPS;
5162   }
5163      break;
5164  
5165 <  case 325:
5166 < /* Line 1813 of yacc.c  */
5167 < #line 1922 "conf_parser.y"
5165 >  case 341:
5166 > /* Line 1787 of yacc.c  */
5167 > #line 1862 "conf_parser.y"
5168      {
5169    if (conf_parser_ctx.pass == 2)
5170 <    yy_match_item->action = SHARED_ALL;
5170 >    block_state.flags.value = SHARED_ALL;
5171   }
5172      break;
5173  
5174 <  case 326:
5175 < /* Line 1813 of yacc.c  */
5176 < #line 1931 "conf_parser.y"
5174 >  case 342:
5175 > /* Line 1787 of yacc.c  */
5176 > #line 1871 "conf_parser.y"
5177      {
5178 <  if (conf_parser_ctx.pass == 2)
5179 <  {
5180 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5181 <    yy_conf->flags = SHARED_ALL;
5182 <  }
5178 >  if (conf_parser_ctx.pass != 2)
5179 >    break;
5180 >
5181 >  reset_block_state();
5182 >
5183 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5184 >  block_state.flags.value = SHARED_ALL;
5185   }
5186      break;
5187  
5188 <  case 327:
5189 < /* Line 1813 of yacc.c  */
5190 < #line 1938 "conf_parser.y"
5188 >  case 343:
5189 > /* Line 1787 of yacc.c  */
5190 > #line 1880 "conf_parser.y"
5191      {
5192 <  if (conf_parser_ctx.pass == 2)
5193 <  {
5194 <    if (yy_conf->name == NULL)
5195 <      DupString(yy_conf->name, "*");
5196 <    yy_conf = NULL;
5197 <  }
5192 >  struct MaskItem *conf = NULL;
5193 >
5194 >  if (conf_parser_ctx.pass != 2)
5195 >    break;
5196 >
5197 >  conf = conf_make(CONF_CLUSTER);
5198 >  conf->flags = block_state.flags.value;
5199 >  conf->name = xstrdup(block_state.name.buf);
5200   }
5201      break;
5202  
5203 <  case 333:
5204 < /* Line 1813 of yacc.c  */
5205 < #line 1951 "conf_parser.y"
5203 >  case 349:
5204 > /* Line 1787 of yacc.c  */
5205 > #line 1895 "conf_parser.y"
5206      {
5207    if (conf_parser_ctx.pass == 2)
5208 <    DupString(yy_conf->name, yylval.string);
5208 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5209   }
5210      break;
5211  
5212 <  case 334:
5213 < /* Line 1813 of yacc.c  */
5214 < #line 1957 "conf_parser.y"
5212 >  case 350:
5213 > /* Line 1787 of yacc.c  */
5214 > #line 1901 "conf_parser.y"
5215      {
5216    if (conf_parser_ctx.pass == 2)
5217 <    yy_conf->flags = 0;
5217 >    block_state.flags.value = 0;
5218   }
5219      break;
5220  
5221 <  case 338:
5222 < /* Line 1813 of yacc.c  */
5223 < #line 1964 "conf_parser.y"
5221 >  case 354:
5222 > /* Line 1787 of yacc.c  */
5223 > #line 1908 "conf_parser.y"
5224      {
5225    if (conf_parser_ctx.pass == 2)
5226 <    yy_conf->flags |= SHARED_KLINE;
5226 >    block_state.flags.value |= SHARED_KLINE;
5227   }
5228      break;
5229  
5230 <  case 339:
5231 < /* Line 1813 of yacc.c  */
5232 < #line 1968 "conf_parser.y"
5230 >  case 355:
5231 > /* Line 1787 of yacc.c  */
5232 > #line 1912 "conf_parser.y"
5233      {
5234    if (conf_parser_ctx.pass == 2)
5235 <    yy_conf->flags |= SHARED_UNKLINE;
5235 >    block_state.flags.value |= SHARED_UNKLINE;
5236   }
5237      break;
5238  
5239 <  case 340:
5240 < /* Line 1813 of yacc.c  */
5241 < #line 1972 "conf_parser.y"
5239 >  case 356:
5240 > /* Line 1787 of yacc.c  */
5241 > #line 1916 "conf_parser.y"
5242      {
5243    if (conf_parser_ctx.pass == 2)
5244 <    yy_conf->flags |= SHARED_DLINE;
5244 >    block_state.flags.value |= SHARED_DLINE;
5245   }
5246      break;
5247  
5248 <  case 341:
5249 < /* Line 1813 of yacc.c  */
5250 < #line 1976 "conf_parser.y"
5248 >  case 357:
5249 > /* Line 1787 of yacc.c  */
5250 > #line 1920 "conf_parser.y"
5251      {
5252    if (conf_parser_ctx.pass == 2)
5253 <    yy_conf->flags |= SHARED_UNDLINE;
5253 >    block_state.flags.value |= SHARED_UNDLINE;
5254   }
5255      break;
5256  
5257 <  case 342:
5258 < /* Line 1813 of yacc.c  */
5259 < #line 1980 "conf_parser.y"
5257 >  case 358:
5258 > /* Line 1787 of yacc.c  */
5259 > #line 1924 "conf_parser.y"
5260      {
5261    if (conf_parser_ctx.pass == 2)
5262 <    yy_conf->flags |= SHARED_XLINE;
5262 >    block_state.flags.value |= SHARED_XLINE;
5263   }
5264      break;
5265  
5266 <  case 343:
5267 < /* Line 1813 of yacc.c  */
5268 < #line 1984 "conf_parser.y"
5266 >  case 359:
5267 > /* Line 1787 of yacc.c  */
5268 > #line 1928 "conf_parser.y"
5269      {
5270    if (conf_parser_ctx.pass == 2)
5271 <    yy_conf->flags |= SHARED_UNXLINE;
5271 >    block_state.flags.value |= SHARED_UNXLINE;
5272   }
5273      break;
5274  
5275 <  case 344:
5276 < /* Line 1813 of yacc.c  */
5277 < #line 1988 "conf_parser.y"
5275 >  case 360:
5276 > /* Line 1787 of yacc.c  */
5277 > #line 1932 "conf_parser.y"
5278      {
5279    if (conf_parser_ctx.pass == 2)
5280 <    yy_conf->flags |= SHARED_RESV;
5280 >    block_state.flags.value |= SHARED_RESV;
5281   }
5282      break;
5283  
5284 <  case 345:
5285 < /* Line 1813 of yacc.c  */
5286 < #line 1992 "conf_parser.y"
5284 >  case 361:
5285 > /* Line 1787 of yacc.c  */
5286 > #line 1936 "conf_parser.y"
5287      {
5288    if (conf_parser_ctx.pass == 2)
5289 <    yy_conf->flags |= SHARED_UNRESV;
5289 >    block_state.flags.value |= SHARED_UNRESV;
5290   }
5291      break;
5292  
5293 <  case 346:
5294 < /* Line 1813 of yacc.c  */
5295 < #line 1996 "conf_parser.y"
5293 >  case 362:
5294 > /* Line 1787 of yacc.c  */
5295 > #line 1940 "conf_parser.y"
5296      {
5297    if (conf_parser_ctx.pass == 2)
5298 <    yy_conf->flags |= SHARED_LOCOPS;
5298 >    block_state.flags.value |= SHARED_LOCOPS;
5299   }
5300      break;
5301  
5302 <  case 347:
5303 < /* Line 1813 of yacc.c  */
5304 < #line 2000 "conf_parser.y"
5302 >  case 363:
5303 > /* Line 1787 of yacc.c  */
5304 > #line 1944 "conf_parser.y"
5305      {
5306    if (conf_parser_ctx.pass == 2)
5307 <    yy_conf->flags = SHARED_ALL;
5307 >    block_state.flags.value = SHARED_ALL;
5308   }
5309      break;
5310  
5311 <  case 348:
5312 < /* Line 1813 of yacc.c  */
5313 < #line 2009 "conf_parser.y"
5311 >  case 364:
5312 > /* Line 1787 of yacc.c  */
5313 > #line 1953 "conf_parser.y"
5314      {
5371  if (conf_parser_ctx.pass == 2)
5372  {
5373    yy_conf = make_conf_item(SERVER_TYPE);
5374    yy_aconf = map_to_conf(yy_conf);
5315  
5316 <    /* defaults */
5317 <    yy_aconf->port = PORTNUM;
5318 <  }
5319 <  else
5320 <  {
5381 <    MyFree(class_name);
5382 <    class_name = NULL;
5383 <  }
5316 >  if (conf_parser_ctx.pass != 2)
5317 >    break;
5318 >
5319 >  reset_block_state();
5320 >  block_state.port.value = PORTNUM;
5321   }
5322      break;
5323  
5324 <  case 349:
5325 < /* Line 1813 of yacc.c  */
5326 < #line 2024 "conf_parser.y"
5324 >  case 365:
5325 > /* Line 1787 of yacc.c  */
5326 > #line 1961 "conf_parser.y"
5327      {
5328 <  if (conf_parser_ctx.pass == 2)
5329 <  {
5393 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5394 <    {
5395 <      if (conf_add_server(yy_conf, class_name) == -1)
5396 <        delete_conf_item(yy_conf);
5397 <    }
5398 <    else
5399 <    {
5400 <      if (yy_conf->name != NULL)
5401 <      {
5402 <        if (yy_aconf->host == NULL)
5403 <          yyerror("Ignoring connect block -- missing host");
5404 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5405 <          yyerror("Ignoring connect block -- missing password");
5406 <      }
5328 >  struct MaskItem *conf = NULL;
5329 >  struct addrinfo hints, *res;
5330  
5331 <      /* XXX
5332 <       * This fixes a try_connections() core (caused by invalid class_ptr
5410 <       * pointers) reported by metalrock. That's an ugly fix, but there
5411 <       * is currently no better way. The entire config subsystem needs an
5412 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5413 <       * a doubly linked list immediately without any sanity checks!  -Michael
5414 <       */
5415 <      delete_conf_item(yy_conf);
5416 <    }
5331 >  if (conf_parser_ctx.pass != 2)
5332 >    break;
5333  
5334 <    MyFree(class_name);
5335 <    class_name = NULL;
5420 <    yy_conf = NULL;
5421 <    yy_aconf = NULL;
5422 <  }
5423 < }
5334 >  if (!block_state.name.buf[0] ||
5335 >      !block_state.host.buf[0])
5336      break;
5337  
5338 <  case 366:
5339 < /* Line 1813 of yacc.c  */
5428 < #line 2068 "conf_parser.y"
5429 <    {
5430 <  if (conf_parser_ctx.pass == 2)
5431 <  {
5432 <    MyFree(yy_conf->name);
5433 <    DupString(yy_conf->name, yylval.string);
5434 <  }
5435 < }
5338 >  if (!(block_state.rpass.buf[0] ||
5339 >        block_state.spass.buf[0]))
5340      break;
5341  
5342 <  case 367:
5343 < /* Line 1813 of yacc.c  */
5440 < #line 2077 "conf_parser.y"
5441 <    {
5442 <  if (conf_parser_ctx.pass == 2)
5443 <  {
5444 <    MyFree(yy_aconf->host);
5445 <    DupString(yy_aconf->host, yylval.string);
5446 <  }
5447 < }
5342 >  if (has_wildcards(block_state.name.buf) ||
5343 >      has_wildcards(block_state.host.buf))
5344      break;
5345  
5346 <  case 368:
5347 < /* Line 1813 of yacc.c  */
5348 < #line 2086 "conf_parser.y"
5349 <    {
5350 <  if (conf_parser_ctx.pass == 2)
5351 <  {
5352 <    struct addrinfo hints, *res;
5346 >  conf = conf_make(CONF_SERVER);
5347 >  conf->port = block_state.port.value;
5348 >  conf->flags = block_state.flags.value;
5349 >  conf->aftype = block_state.aftype.value;
5350 >  conf->host = xstrdup(block_state.host.buf);
5351 >  conf->name = xstrdup(block_state.name.buf);
5352 >  conf->passwd = xstrdup(block_state.rpass.buf);
5353 >  conf->spasswd = xstrdup(block_state.spass.buf);
5354 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5355 >
5356 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5357 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5358  
5359 +  if (block_state.bind.buf[0])
5360 +  {
5361      memset(&hints, 0, sizeof(hints));
5362  
5363      hints.ai_family   = AF_UNSPEC;
5364      hints.ai_socktype = SOCK_STREAM;
5365      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5366  
5367 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5368 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5367 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5368 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5369      else
5370      {
5371        assert(res != NULL);
5372  
5373 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5374 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5375 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5373 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5374 >      conf->bind.ss.ss_family = res->ai_family;
5375 >      conf->bind.ss_len = res->ai_addrlen;
5376        freeaddrinfo(res);
5377      }
5378    }
5379 +
5380 +  conf_add_class_to_conf(conf, block_state.class.buf);
5381 +  lookup_confhost(conf);
5382   }
5383      break;
5384  
5385 <  case 369:
5386 < /* Line 1813 of yacc.c  */
5387 < #line 2112 "conf_parser.y"
5385 >  case 382:
5386 > /* Line 1787 of yacc.c  */
5387 > #line 2027 "conf_parser.y"
5388      {
5389    if (conf_parser_ctx.pass == 2)
5390 <  {
5391 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5392 <      yyerror("Server passwords cannot begin with a colon");
5487 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5488 <      yyerror("Server passwords cannot contain spaces");
5489 <    else {
5490 <      if (yy_aconf->spasswd != NULL)
5491 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5390 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5391 > }
5392 >    break;
5393  
5394 <      MyFree(yy_aconf->spasswd);
5395 <      DupString(yy_aconf->spasswd, yylval.string);
5396 <    }
5397 <  }
5394 >  case 383:
5395 > /* Line 1787 of yacc.c  */
5396 > #line 2033 "conf_parser.y"
5397 >    {
5398 >  if (conf_parser_ctx.pass == 2)
5399 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5400   }
5401      break;
5402  
5403 <  case 370:
5404 < /* Line 1813 of yacc.c  */
5405 < #line 2130 "conf_parser.y"
5403 >  case 384:
5404 > /* Line 1787 of yacc.c  */
5405 > #line 2039 "conf_parser.y"
5406      {
5407    if (conf_parser_ctx.pass == 2)
5408 <  {
5409 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5410 <      yyerror("Server passwords cannot begin with a colon");
5508 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5509 <      yyerror("Server passwords cannot contain spaces");
5510 <    else {
5511 <      if (yy_aconf->passwd != NULL)
5512 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5408 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5409 > }
5410 >    break;
5411  
5412 <      MyFree(yy_aconf->passwd);
5413 <      DupString(yy_aconf->passwd, yylval.string);
5414 <    }
5415 <  }
5412 >  case 385:
5413 > /* Line 1787 of yacc.c  */
5414 > #line 2045 "conf_parser.y"
5415 >    {
5416 >  if (conf_parser_ctx.pass != 2)
5417 >    break;
5418 >
5419 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5420 >    conf_error_report("Server passwords cannot begin with a colon");
5421 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5422 >    conf_error_report("Server passwords cannot contain spaces");
5423 >  else
5424 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5425 > }
5426 >    break;
5427 >
5428 >  case 386:
5429 > /* Line 1787 of yacc.c  */
5430 > #line 2058 "conf_parser.y"
5431 >    {
5432 >  if (conf_parser_ctx.pass != 2)
5433 >    break;
5434 >
5435 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5436 >    conf_error_report("Server passwords cannot begin with a colon");
5437 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5438 >    conf_error_report("Server passwords cannot contain spaces");
5439 >  else
5440 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5441   }
5442      break;
5443  
5444 <  case 371:
5445 < /* Line 1813 of yacc.c  */
5446 < #line 2148 "conf_parser.y"
5444 >  case 387:
5445 > /* Line 1787 of yacc.c  */
5446 > #line 2071 "conf_parser.y"
5447      {
5448    if (conf_parser_ctx.pass == 2)
5449 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5449 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5450   }
5451      break;
5452  
5453 <  case 372:
5454 < /* Line 1813 of yacc.c  */
5455 < #line 2154 "conf_parser.y"
5453 >  case 388:
5454 > /* Line 1787 of yacc.c  */
5455 > #line 2077 "conf_parser.y"
5456      {
5457    if (conf_parser_ctx.pass == 2)
5458 <    yy_aconf->aftype = AF_INET;
5458 >    block_state.aftype.value = AF_INET;
5459   }
5460      break;
5461  
5462 <  case 373:
5463 < /* Line 1813 of yacc.c  */
5464 < #line 2158 "conf_parser.y"
5462 >  case 389:
5463 > /* Line 1787 of yacc.c  */
5464 > #line 2081 "conf_parser.y"
5465      {
5466   #ifdef IPV6
5467    if (conf_parser_ctx.pass == 2)
5468 <    yy_aconf->aftype = AF_INET6;
5468 >    block_state.aftype.value = AF_INET6;
5469   #endif
5470   }
5471      break;
5472  
5473 <  case 374:
5474 < /* Line 1813 of yacc.c  */
5475 < #line 2166 "conf_parser.y"
5473 >  case 390:
5474 > /* Line 1787 of yacc.c  */
5475 > #line 2089 "conf_parser.y"
5476      {
5477 +  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5478   }
5479      break;
5480  
5481 <  case 378:
5482 < /* Line 1813 of yacc.c  */
5483 < #line 2171 "conf_parser.y"
5481 >  case 394:
5482 > /* Line 1787 of yacc.c  */
5483 > #line 2095 "conf_parser.y"
5484      {
5485    if (conf_parser_ctx.pass == 2)
5486 <    SetConfAllowAutoConn(yy_aconf);
5486 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5487   }
5488      break;
5489  
5490 <  case 379:
5491 < /* Line 1813 of yacc.c  */
5492 < #line 2175 "conf_parser.y"
5490 >  case 395:
5491 > /* Line 1787 of yacc.c  */
5492 > #line 2099 "conf_parser.y"
5493      {
5494    if (conf_parser_ctx.pass == 2)
5495 <    SetConfSSL(yy_aconf);
5495 >    block_state.flags.value |= CONF_FLAGS_SSL;
5496   }
5497      break;
5498  
5499 <  case 380:
5500 < /* Line 1813 of yacc.c  */
5501 < #line 2181 "conf_parser.y"
5499 >  case 396:
5500 > /* Line 1787 of yacc.c  */
5501 > #line 2105 "conf_parser.y"
5502      {
5503    if (conf_parser_ctx.pass == 2)
5504    {
5505      if (yylval.number)
5506 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5506 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5507      else
5508 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5508 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5509    }
5510   }
5511      break;
5512  
5513 <  case 381:
5514 < /* Line 1813 of yacc.c  */
5515 < #line 2192 "conf_parser.y"
5513 >  case 397:
5514 > /* Line 1787 of yacc.c  */
5515 > #line 2116 "conf_parser.y"
5516      {
5517    if (conf_parser_ctx.pass == 2)
5518 <  {
5595 <    char *mask;
5596 <
5597 <    DupString(mask, yylval.string);
5598 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5599 <  }
5518 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5519   }
5520      break;
5521  
5522 <  case 382:
5523 < /* Line 1813 of yacc.c  */
5524 < #line 2203 "conf_parser.y"
5522 >  case 398:
5523 > /* Line 1787 of yacc.c  */
5524 > #line 2122 "conf_parser.y"
5525      {
5526    if (conf_parser_ctx.pass == 2)
5527 <  {
5609 <    char *mask;
5610 <
5611 <    DupString(mask, yylval.string);
5612 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5613 <  }
5527 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5528   }
5529      break;
5530  
5531 <  case 383:
5532 < /* Line 1813 of yacc.c  */
5533 < #line 2214 "conf_parser.y"
5531 >  case 399:
5532 > /* Line 1787 of yacc.c  */
5533 > #line 2128 "conf_parser.y"
5534      {
5535    if (conf_parser_ctx.pass == 2)
5536 <  {
5623 <    MyFree(class_name);
5624 <    DupString(class_name, yylval.string);
5625 <  }
5536 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5537   }
5538      break;
5539  
5540 <  case 384:
5541 < /* Line 1813 of yacc.c  */
5542 < #line 2223 "conf_parser.y"
5540 >  case 400:
5541 > /* Line 1787 of yacc.c  */
5542 > #line 2134 "conf_parser.y"
5543      {
5544   #ifdef HAVE_LIBCRYPTO
5545    if (conf_parser_ctx.pass == 2)
5546 <  {
5636 <    MyFree(yy_aconf->cipher_list);
5637 <    DupString(yy_aconf->cipher_list, yylval.string);
5638 <  }
5546 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5547   #else
5548    if (conf_parser_ctx.pass == 2)
5549 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5549 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5550   #endif
5551   }
5552      break;
5553  
5554 <  case 385:
5555 < /* Line 1813 of yacc.c  */
5556 < #line 2241 "conf_parser.y"
5554 >  case 401:
5555 > /* Line 1787 of yacc.c  */
5556 > #line 2149 "conf_parser.y"
5557      {
5558    if (conf_parser_ctx.pass == 2)
5559 <  {
5652 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5653 <    regex_ban = 0;
5654 <  }
5559 >    reset_block_state();
5560   }
5561      break;
5562  
5563 <  case 386:
5564 < /* Line 1813 of yacc.c  */
5565 < #line 2248 "conf_parser.y"
5563 >  case 402:
5564 > /* Line 1787 of yacc.c  */
5565 > #line 2153 "conf_parser.y"
5566      {
5567 <  if (conf_parser_ctx.pass == 2)
5663 <  {
5664 <    if (userbuf[0] && hostbuf[0])
5665 <    {
5666 <      if (regex_ban)
5667 <      {
5668 < #ifdef HAVE_LIBPCRE
5669 <        void *exp_user = NULL;
5670 <        void *exp_host = NULL;
5671 <        const char *errptr = NULL;
5672 <
5673 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5674 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5675 <        {
5676 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5677 <               errptr);
5678 <          break;
5679 <        }
5680 <
5681 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5682 <        yy_aconf->regexuser = exp_user;
5683 <        yy_aconf->regexhost = exp_host;
5684 <
5685 <        SetConfMain(yy_aconf);
5686 <
5687 <        DupString(yy_aconf->user, userbuf);
5688 <        DupString(yy_aconf->host, hostbuf);
5689 <
5690 <        if (reasonbuf[0])
5691 <          DupString(yy_aconf->reason, reasonbuf);
5692 <        else
5693 <          DupString(yy_aconf->reason, "No reason");
5694 < #else
5695 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5696 <        break;
5697 < #endif
5698 <      }
5699 <      else
5700 <      {
5701 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5702 <
5703 <        SetConfMain(yy_aconf);
5567 >  struct MaskItem *conf = NULL;
5568  
5569 <        DupString(yy_aconf->user, userbuf);
5706 <        DupString(yy_aconf->host, hostbuf);
5707 <
5708 <        if (reasonbuf[0])
5709 <          DupString(yy_aconf->reason, reasonbuf);
5710 <        else
5711 <          DupString(yy_aconf->reason, "No reason");
5712 <        add_conf_by_address(CONF_KLINE, yy_aconf);
5713 <      }
5714 <    }
5715 <
5716 <    yy_aconf = NULL;
5717 <  }
5718 < }
5569 >  if (conf_parser_ctx.pass != 2)
5570      break;
5571  
5572 <  case 387:
5573 < /* Line 1813 of yacc.c  */
5723 < #line 2308 "conf_parser.y"
5724 <    {
5725 < }
5572 >  if (!block_state.user.buf[0] ||
5573 >      !block_state.host.buf[0])
5574      break;
5575  
5576 <  case 391:
5577 < /* Line 1813 of yacc.c  */
5578 < #line 2313 "conf_parser.y"
5579 <    {
5580 <  if (conf_parser_ctx.pass == 2)
5581 <    regex_ban = 1;
5576 >  conf = conf_make(CONF_KLINE);
5577 >  conf->user = xstrdup(block_state.user.buf);
5578 >  conf->host = xstrdup(block_state.host.buf);
5579 >
5580 >  if (block_state.rpass.buf[0])
5581 >    conf->reason = xstrdup(block_state.rpass.buf);
5582 >  else
5583 >    conf->reason = xstrdup(CONF_NOREASON);
5584 >  add_conf_by_address(CONF_KLINE, conf);
5585   }
5586      break;
5587  
5588 <  case 398:
5589 < /* Line 1813 of yacc.c  */
5590 < #line 2322 "conf_parser.y"
5588 >  case 408:
5589 > /* Line 1787 of yacc.c  */
5590 > #line 2178 "conf_parser.y"
5591      {
5592 +
5593    if (conf_parser_ctx.pass == 2)
5594    {
5595      struct split_nuh_item nuh;
5596  
5597      nuh.nuhmask  = yylval.string;
5598      nuh.nickptr  = NULL;
5599 <    nuh.userptr  = userbuf;
5600 <    nuh.hostptr  = hostbuf;
5599 >    nuh.userptr  = block_state.user.buf;
5600 >    nuh.hostptr  = block_state.host.buf;
5601  
5602      nuh.nicksize = 0;
5603 <    nuh.usersize = sizeof(userbuf);
5604 <    nuh.hostsize = sizeof(hostbuf);
5603 >    nuh.usersize = sizeof(block_state.user.buf);
5604 >    nuh.hostsize = sizeof(block_state.host.buf);
5605  
5606      split_nuh(&nuh);
5607    }
5608   }
5609      break;
5610  
5611 <  case 399:
5612 < /* Line 1813 of yacc.c  */
5613 < #line 2341 "conf_parser.y"
5611 >  case 409:
5612 > /* Line 1787 of yacc.c  */
5613 > #line 2198 "conf_parser.y"
5614      {
5615    if (conf_parser_ctx.pass == 2)
5616 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5616 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5617   }
5618      break;
5619  
5620 <  case 400:
5621 < /* Line 1813 of yacc.c  */
5622 < #line 2350 "conf_parser.y"
5620 >  case 410:
5621 > /* Line 1787 of yacc.c  */
5622 > #line 2207 "conf_parser.y"
5623      {
5624    if (conf_parser_ctx.pass == 2)
5625 <    hostbuf[0] = reasonbuf[0] = '\0';
5625 >    reset_block_state();
5626   }
5627      break;
5628  
5629 <  case 401:
5630 < /* Line 1813 of yacc.c  */
5631 < #line 2354 "conf_parser.y"
5629 >  case 411:
5630 > /* Line 1787 of yacc.c  */
5631 > #line 2211 "conf_parser.y"
5632      {
5633 <  if (conf_parser_ctx.pass == 2)
5633 >  struct MaskItem *conf = NULL;
5634 >
5635 >  if (conf_parser_ctx.pass != 2)
5636 >    break;
5637 >
5638 >  if (!block_state.addr.buf[0])
5639 >    break;
5640 >
5641 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5642    {
5643 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5644 <    {
5785 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5786 <      DupString(yy_aconf->host, hostbuf);
5787 <      SetConfMain(yy_aconf);
5643 >    conf = conf_make(CONF_DLINE);
5644 >    conf->host = xstrdup(block_state.addr.buf);
5645  
5646 <      if (reasonbuf[0])
5647 <        DupString(yy_aconf->reason, reasonbuf);
5648 <      else
5649 <        DupString(yy_aconf->reason, "No reason");
5650 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5794 <      yy_aconf = NULL;
5795 <    }
5646 >    if (block_state.rpass.buf[0])
5647 >      conf->reason = xstrdup(block_state.rpass.buf);
5648 >    else
5649 >      conf->reason = xstrdup(CONF_NOREASON);
5650 >    add_conf_by_address(CONF_DLINE, conf);
5651    }
5652   }
5653      break;
5654  
5655 <  case 407:
5656 < /* Line 1813 of yacc.c  */
5657 < #line 2377 "conf_parser.y"
5655 >  case 417:
5656 > /* Line 1787 of yacc.c  */
5657 > #line 2237 "conf_parser.y"
5658      {
5659    if (conf_parser_ctx.pass == 2)
5660 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5660 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5661   }
5662      break;
5663  
5664 <  case 408:
5665 < /* Line 1813 of yacc.c  */
5666 < #line 2383 "conf_parser.y"
5664 >  case 418:
5665 > /* Line 1787 of yacc.c  */
5666 > #line 2243 "conf_parser.y"
5667      {
5668    if (conf_parser_ctx.pass == 2)
5669 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5669 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5670   }
5671      break;
5672  
5673 <  case 414:
5674 < /* Line 1813 of yacc.c  */
5675 < #line 2397 "conf_parser.y"
5673 >  case 424:
5674 > /* Line 1787 of yacc.c  */
5675 > #line 2257 "conf_parser.y"
5676      {
5677    if (conf_parser_ctx.pass == 2)
5678    {
5679      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5680      {
5681 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5682 <      DupString(yy_aconf->host, yylval.string);
5681 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5682 >      conf->host = xstrdup(yylval.string);
5683  
5684 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5830 <      yy_aconf = NULL;
5684 >      add_conf_by_address(CONF_EXEMPT, conf);
5685      }
5686    }
5687   }
5688      break;
5689  
5690 <  case 415:
5691 < /* Line 1813 of yacc.c  */
5692 < #line 2415 "conf_parser.y"
5690 >  case 425:
5691 > /* Line 1787 of yacc.c  */
5692 > #line 2274 "conf_parser.y"
5693      {
5694    if (conf_parser_ctx.pass == 2)
5695 <  {
5842 <    regex_ban = 0;
5843 <    reasonbuf[0] = gecos_name[0] = '\0';
5844 <  }
5695 >    reset_block_state();
5696   }
5697      break;
5698  
5699 <  case 416:
5700 < /* Line 1813 of yacc.c  */
5701 < #line 2422 "conf_parser.y"
5699 >  case 426:
5700 > /* Line 1787 of yacc.c  */
5701 > #line 2278 "conf_parser.y"
5702      {
5703 <  if (conf_parser_ctx.pass == 2)
5853 <  {
5854 <    if (gecos_name[0])
5855 <    {
5856 <      if (regex_ban)
5857 <      {
5858 < #ifdef HAVE_LIBPCRE
5859 <        void *exp_p = NULL;
5860 <        const char *errptr = NULL;
5703 >  struct MaskItem *conf = NULL;
5704  
5705 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5863 <        {
5864 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5865 <               errptr);
5866 <          break;
5867 <        }
5868 <
5869 <        yy_conf = make_conf_item(RXLINE_TYPE);
5870 <        yy_conf->regexpname = exp_p;
5871 < #else
5872 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5873 <        break;
5874 < #endif
5875 <      }
5876 <      else
5877 <        yy_conf = make_conf_item(XLINE_TYPE);
5878 <
5879 <      SetConfMain(yy_conf);
5880 <      yy_match_item = map_to_conf(yy_conf);
5881 <      DupString(yy_conf->name, gecos_name);
5882 <
5883 <      if (reasonbuf[0])
5884 <        DupString(yy_match_item->reason, reasonbuf);
5885 <      else
5886 <        DupString(yy_match_item->reason, "No reason");
5887 <    }
5888 <  }
5889 < }
5705 >  if (conf_parser_ctx.pass != 2)
5706      break;
5707  
5708 <  case 417:
5893 < /* Line 1813 of yacc.c  */
5894 < #line 2463 "conf_parser.y"
5895 <    {
5896 < }
5708 >  if (!block_state.name.buf[0])
5709      break;
5710  
5711 <  case 421:
5712 < /* Line 1813 of yacc.c  */
5713 < #line 2468 "conf_parser.y"
5714 <    {
5715 <  if (conf_parser_ctx.pass == 2)
5716 <    regex_ban = 1;
5711 >  conf = conf_make(CONF_XLINE);
5712 >  conf->name = xstrdup(block_state.name.buf);
5713 >
5714 >  if (block_state.rpass.buf[0])
5715 >    conf->reason = xstrdup(block_state.rpass.buf);
5716 >  else
5717 >    conf->reason = xstrdup(CONF_NOREASON);
5718   }
5719      break;
5720  
5721 <  case 428:
5722 < /* Line 1813 of yacc.c  */
5723 < #line 2477 "conf_parser.y"
5721 >  case 432:
5722 > /* Line 1787 of yacc.c  */
5723 > #line 2300 "conf_parser.y"
5724      {
5725    if (conf_parser_ctx.pass == 2)
5726 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5726 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5727   }
5728      break;
5729  
5730 <  case 429:
5731 < /* Line 1813 of yacc.c  */
5732 < #line 2483 "conf_parser.y"
5730 >  case 433:
5731 > /* Line 1787 of yacc.c  */
5732 > #line 2306 "conf_parser.y"
5733      {
5734    if (conf_parser_ctx.pass == 2)
5735 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5735 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5736   }
5737      break;
5738  
5739 <  case 483:
5740 < /* Line 1813 of yacc.c  */
5741 < #line 2528 "conf_parser.y"
5739 >  case 486:
5740 > /* Line 1787 of yacc.c  */
5741 > #line 2350 "conf_parser.y"
5742      {
5743    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5744   }
5745      break;
5746  
5747 <  case 484:
5748 < /* Line 1813 of yacc.c  */
5749 < #line 2533 "conf_parser.y"
5747 >  case 487:
5748 > /* Line 1787 of yacc.c  */
5749 > #line 2355 "conf_parser.y"
5750      {
5751    if (conf_parser_ctx.pass == 2)
5752      ConfigFileEntry.glines = yylval.number;
5753   }
5754      break;
5755  
5756 <  case 485:
5757 < /* Line 1813 of yacc.c  */
5758 < #line 2539 "conf_parser.y"
5756 >  case 488:
5757 > /* Line 1787 of yacc.c  */
5758 > #line 2361 "conf_parser.y"
5759      {
5760    if (conf_parser_ctx.pass == 2)
5761      ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5762   }
5763      break;
5764  
5765 <  case 486:
5766 < /* Line 1813 of yacc.c  */
5767 < #line 2545 "conf_parser.y"
5765 >  case 489:
5766 > /* Line 1787 of yacc.c  */
5767 > #line 2367 "conf_parser.y"
5768      {
5769    if (conf_parser_ctx.pass == 2)
5770      ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5771   }
5772      break;
5773  
5774 <  case 487:
5775 < /* Line 1813 of yacc.c  */
5776 < #line 2551 "conf_parser.y"
5774 >  case 490:
5775 > /* Line 1787 of yacc.c  */
5776 > #line 2373 "conf_parser.y"
5777      {
5778    ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5779   }
5780      break;
5781  
5782 <  case 488:
5783 < /* Line 1813 of yacc.c  */
5784 < #line 2556 "conf_parser.y"
5782 >  case 491:
5783 > /* Line 1787 of yacc.c  */
5784 > #line 2378 "conf_parser.y"
5785      {
5786    ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5787   }
5788      break;
5789  
5790 <  case 489:
5791 < /* Line 1813 of yacc.c  */
5792 < #line 2561 "conf_parser.y"
5790 >  case 492:
5791 > /* Line 1787 of yacc.c  */
5792 > #line 2383 "conf_parser.y"
5793      {
5794    ConfigFileEntry.tkline_expire_notices = yylval.number;
5795   }
5796      break;
5797  
5798 <  case 490:
5799 < /* Line 1813 of yacc.c  */
5800 < #line 2566 "conf_parser.y"
5798 >  case 493:
5799 > /* Line 1787 of yacc.c  */
5800 > #line 2388 "conf_parser.y"
5801      {
5802    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5803   }
5804      break;
5805  
5806 <  case 491:
5807 < /* Line 1813 of yacc.c  */
5808 < #line 2571 "conf_parser.y"
5806 >  case 494:
5807 > /* Line 1787 of yacc.c  */
5808 > #line 2393 "conf_parser.y"
5809      {
5810    ConfigFileEntry.hide_spoof_ips = yylval.number;
5811   }
5812      break;
5813  
5814 <  case 492:
5815 < /* Line 1813 of yacc.c  */
5816 < #line 2576 "conf_parser.y"
5814 >  case 495:
5815 > /* Line 1787 of yacc.c  */
5816 > #line 2398 "conf_parser.y"
5817      {
5818    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5819   }
5820      break;
5821  
5822 <  case 493:
5823 < /* Line 1813 of yacc.c  */
5824 < #line 2581 "conf_parser.y"
5822 >  case 496:
5823 > /* Line 1787 of yacc.c  */
5824 > #line 2403 "conf_parser.y"
5825      {
5826    ConfigFileEntry.disable_remote = yylval.number;
5827   }
5828      break;
5829  
5830 <  case 494:
5831 < /* Line 1813 of yacc.c  */
5832 < #line 2586 "conf_parser.y"
5830 >  case 497:
5831 > /* Line 1787 of yacc.c  */
5832 > #line 2408 "conf_parser.y"
5833      {
5834    ConfigFileEntry.failed_oper_notice = yylval.number;
5835   }
5836      break;
5837  
5838 <  case 495:
5839 < /* Line 1813 of yacc.c  */
5840 < #line 2591 "conf_parser.y"
5838 >  case 498:
5839 > /* Line 1787 of yacc.c  */
5840 > #line 2413 "conf_parser.y"
5841      {
5842    ConfigFileEntry.anti_nick_flood = yylval.number;
5843   }
5844      break;
5845  
5846 <  case 496:
5847 < /* Line 1813 of yacc.c  */
5848 < #line 2596 "conf_parser.y"
5846 >  case 499:
5847 > /* Line 1787 of yacc.c  */
5848 > #line 2418 "conf_parser.y"
5849      {
5850    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5851   }
5852      break;
5853  
5854 <  case 497:
5855 < /* Line 1813 of yacc.c  */
5856 < #line 2601 "conf_parser.y"
5854 >  case 500:
5855 > /* Line 1787 of yacc.c  */
5856 > #line 2423 "conf_parser.y"
5857      {
5858    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5859   }
5860      break;
5861  
5862 <  case 498:
5863 < /* Line 1813 of yacc.c  */
5864 < #line 2606 "conf_parser.y"
5862 >  case 501:
5863 > /* Line 1787 of yacc.c  */
5864 > #line 2428 "conf_parser.y"
5865      {
5866    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5867   }
5868      break;
5869  
5870 <  case 499:
5871 < /* Line 1813 of yacc.c  */
5872 < #line 2611 "conf_parser.y"
5870 >  case 502:
5871 > /* Line 1787 of yacc.c  */
5872 > #line 2433 "conf_parser.y"
5873      {
5874    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5875   }
5876      break;
5877  
5878 <  case 500:
5879 < /* Line 1813 of yacc.c  */
5880 < #line 2616 "conf_parser.y"
5878 >  case 503:
5879 > /* Line 1787 of yacc.c  */
5880 > #line 2438 "conf_parser.y"
5881      {
5882    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5883   }
5884      break;
5885  
5886 <  case 501:
5887 < /* Line 1813 of yacc.c  */
5888 < #line 2621 "conf_parser.y"
5886 >  case 504:
5887 > /* Line 1787 of yacc.c  */
5888 > #line 2443 "conf_parser.y"
5889      {
5890    if (conf_parser_ctx.pass == 2)
5891      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5892   }
5893      break;
5894  
5895 <  case 502:
5896 < /* Line 1813 of yacc.c  */
5897 < #line 2627 "conf_parser.y"
5895 >  case 505:
5896 > /* Line 1787 of yacc.c  */
5897 > #line 2449 "conf_parser.y"
5898      {
5899    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5900    {
# Line 6093 | Line 5906 | yyreduce:
5906   }
5907      break;
5908  
5909 <  case 503:
5910 < /* Line 1813 of yacc.c  */
5911 < #line 2638 "conf_parser.y"
5909 >  case 506:
5910 > /* Line 1787 of yacc.c  */
5911 > #line 2460 "conf_parser.y"
5912      {
5913    ConfigFileEntry.invisible_on_connect = yylval.number;
5914   }
5915      break;
5916  
5917 <  case 504:
5918 < /* Line 1813 of yacc.c  */
5919 < #line 2643 "conf_parser.y"
5917 >  case 507:
5918 > /* Line 1787 of yacc.c  */
5919 > #line 2465 "conf_parser.y"
5920      {
5921    ConfigFileEntry.warn_no_nline = yylval.number;
5922   }
5923      break;
5924  
5925 <  case 505:
5926 < /* Line 1813 of yacc.c  */
5927 < #line 2648 "conf_parser.y"
5925 >  case 508:
5926 > /* Line 1787 of yacc.c  */
5927 > #line 2470 "conf_parser.y"
5928      {
5929    ConfigFileEntry.stats_e_disabled = yylval.number;
5930   }
5931      break;
5932  
5933 <  case 506:
5934 < /* Line 1813 of yacc.c  */
5935 < #line 2653 "conf_parser.y"
5933 >  case 509:
5934 > /* Line 1787 of yacc.c  */
5935 > #line 2475 "conf_parser.y"
5936      {
5937    ConfigFileEntry.stats_o_oper_only = yylval.number;
5938   }
5939      break;
5940  
5941 <  case 507:
5942 < /* Line 1813 of yacc.c  */
5943 < #line 2658 "conf_parser.y"
5941 >  case 510:
5942 > /* Line 1787 of yacc.c  */
5943 > #line 2480 "conf_parser.y"
5944      {
5945    ConfigFileEntry.stats_P_oper_only = yylval.number;
5946   }
5947      break;
5948  
5949 <  case 508:
5950 < /* Line 1813 of yacc.c  */
5951 < #line 2663 "conf_parser.y"
5949 >  case 511:
5950 > /* Line 1787 of yacc.c  */
5951 > #line 2485 "conf_parser.y"
5952      {
5953    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5954   }
5955      break;
5956  
5957 <  case 509:
5958 < /* Line 1813 of yacc.c  */
5959 < #line 2666 "conf_parser.y"
5957 >  case 512:
5958 > /* Line 1787 of yacc.c  */
5959 > #line 2488 "conf_parser.y"
5960      {
5961    ConfigFileEntry.stats_k_oper_only = 1;
5962   }
5963      break;
5964  
5965 <  case 510:
5966 < /* Line 1813 of yacc.c  */
5967 < #line 2671 "conf_parser.y"
5965 >  case 513:
5966 > /* Line 1787 of yacc.c  */
5967 > #line 2493 "conf_parser.y"
5968      {
5969    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5970   }
5971      break;
5972  
5973 <  case 511:
5974 < /* Line 1813 of yacc.c  */
5975 < #line 2674 "conf_parser.y"
5973 >  case 514:
5974 > /* Line 1787 of yacc.c  */
5975 > #line 2496 "conf_parser.y"
5976      {
5977    ConfigFileEntry.stats_i_oper_only = 1;
5978   }
5979      break;
5980  
5981 <  case 512:
5982 < /* Line 1813 of yacc.c  */
5983 < #line 2679 "conf_parser.y"
5981 >  case 515:
5982 > /* Line 1787 of yacc.c  */
5983 > #line 2501 "conf_parser.y"
5984      {
5985    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5986   }
5987      break;
5988  
5989 <  case 513:
5990 < /* Line 1813 of yacc.c  */
5991 < #line 2684 "conf_parser.y"
5989 >  case 516:
5990 > /* Line 1787 of yacc.c  */
5991 > #line 2506 "conf_parser.y"
5992      {
5993    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5994   }
5995      break;
5996  
5997 <  case 514:
5998 < /* Line 1813 of yacc.c  */
5999 < #line 2689 "conf_parser.y"
5997 >  case 517:
5998 > /* Line 1787 of yacc.c  */
5999 > #line 2511 "conf_parser.y"
6000      {
6001    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6002   }
6003      break;
6004  
6005 <  case 515:
6006 < /* Line 1813 of yacc.c  */
6007 < #line 2694 "conf_parser.y"
6005 >  case 518:
6006 > /* Line 1787 of yacc.c  */
6007 > #line 2516 "conf_parser.y"
6008      {
6009    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6010   }
6011      break;
6012  
6013 <  case 516:
6014 < /* Line 1813 of yacc.c  */
6015 < #line 2699 "conf_parser.y"
6013 >  case 519:
6014 > /* Line 1787 of yacc.c  */
6015 > #line 2521 "conf_parser.y"
6016      {
6017    ConfigFileEntry.short_motd = yylval.number;
6018   }
6019      break;
6020  
6021 <  case 517:
6022 < /* Line 1813 of yacc.c  */
6023 < #line 2704 "conf_parser.y"
6021 >  case 520:
6022 > /* Line 1787 of yacc.c  */
6023 > #line 2526 "conf_parser.y"
6024      {
6025    ConfigFileEntry.no_oper_flood = yylval.number;
6026   }
6027      break;
6028  
6029 <  case 518:
6030 < /* Line 1813 of yacc.c  */
6031 < #line 2709 "conf_parser.y"
6029 >  case 521:
6030 > /* Line 1787 of yacc.c  */
6031 > #line 2531 "conf_parser.y"
6032      {
6033    ConfigFileEntry.true_no_oper_flood = yylval.number;
6034   }
6035      break;
6036  
6037 <  case 519:
6038 < /* Line 1813 of yacc.c  */
6039 < #line 2714 "conf_parser.y"
6037 >  case 522:
6038 > /* Line 1787 of yacc.c  */
6039 > #line 2536 "conf_parser.y"
6040      {
6041    ConfigFileEntry.oper_pass_resv = yylval.number;
6042   }
6043      break;
6044  
6045 <  case 520:
6046 < /* Line 1813 of yacc.c  */
6047 < #line 2719 "conf_parser.y"
6235 <    {
6236 <  if (conf_parser_ctx.pass == 2)
6237 <  {
6238 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6239 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6240 <
6241 <    set_locale(yylval.string);
6242 <  }
6243 < }
6244 <    break;
6245 <
6246 <  case 521:
6247 < /* Line 1813 of yacc.c  */
6248 < #line 2730 "conf_parser.y"
6045 >  case 523:
6046 > /* Line 1787 of yacc.c  */
6047 > #line 2541 "conf_parser.y"
6048      {
6049    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6050   }
6051      break;
6052  
6053 <  case 522:
6054 < /* Line 1813 of yacc.c  */
6055 < #line 2735 "conf_parser.y"
6053 >  case 524:
6054 > /* Line 1787 of yacc.c  */
6055 > #line 2546 "conf_parser.y"
6056      {
6057    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6058   }
6059      break;
6060  
6061 <  case 523:
6062 < /* Line 1813 of yacc.c  */
6063 < #line 2740 "conf_parser.y"
6061 >  case 525:
6062 > /* Line 1787 of yacc.c  */
6063 > #line 2551 "conf_parser.y"
6064      {
6065    ConfigFileEntry.use_egd = yylval.number;
6066   }
6067      break;
6068  
6069 <  case 524:
6070 < /* Line 1813 of yacc.c  */
6071 < #line 2745 "conf_parser.y"
6069 >  case 526:
6070 > /* Line 1787 of yacc.c  */
6071 > #line 2556 "conf_parser.y"
6072      {
6073    if (conf_parser_ctx.pass == 2)
6074    {
6075      MyFree(ConfigFileEntry.egdpool_path);
6076 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6076 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6077    }
6078   }
6079      break;
6080  
6081 <  case 525:
6082 < /* Line 1813 of yacc.c  */
6083 < #line 2754 "conf_parser.y"
6081 >  case 527:
6082 > /* Line 1787 of yacc.c  */
6083 > #line 2565 "conf_parser.y"
6084      {
6085    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6086    {
6087      MyFree(ConfigFileEntry.service_name);
6088 <    DupString(ConfigFileEntry.service_name, yylval.string);
6088 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6089    }
6090   }
6091      break;
6092  
6093 <  case 526:
6094 < /* Line 1813 of yacc.c  */
6095 < #line 2763 "conf_parser.y"
6093 >  case 528:
6094 > /* Line 1787 of yacc.c  */
6095 > #line 2574 "conf_parser.y"
6096      {
6097    ConfigFileEntry.ping_cookie = yylval.number;
6098   }
6099      break;
6100  
6101 <  case 527:
6102 < /* Line 1813 of yacc.c  */
6103 < #line 2768 "conf_parser.y"
6101 >  case 529:
6102 > /* Line 1787 of yacc.c  */
6103 > #line 2579 "conf_parser.y"
6104      {
6105    ConfigFileEntry.disable_auth = yylval.number;
6106   }
6107      break;
6108  
6109 <  case 528:
6110 < /* Line 1813 of yacc.c  */
6111 < #line 2773 "conf_parser.y"
6109 >  case 530:
6110 > /* Line 1787 of yacc.c  */
6111 > #line 2584 "conf_parser.y"
6112      {
6113    ConfigFileEntry.throttle_time = yylval.number;
6114   }
6115      break;
6116  
6117 <  case 529:
6118 < /* Line 1813 of yacc.c  */
6119 < #line 2778 "conf_parser.y"
6117 >  case 531:
6118 > /* Line 1787 of yacc.c  */
6119 > #line 2589 "conf_parser.y"
6120      {
6121    ConfigFileEntry.oper_umodes = 0;
6122   }
6123      break;
6124  
6125 <  case 533:
6126 < /* Line 1813 of yacc.c  */
6127 < #line 2784 "conf_parser.y"
6125 >  case 535:
6126 > /* Line 1787 of yacc.c  */
6127 > #line 2595 "conf_parser.y"
6128      {
6129    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6130   }
6131      break;
6132  
6133 <  case 534:
6134 < /* Line 1813 of yacc.c  */
6135 < #line 2787 "conf_parser.y"
6133 >  case 536:
6134 > /* Line 1787 of yacc.c  */
6135 > #line 2598 "conf_parser.y"
6136      {
6137    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6138   }
6139      break;
6140  
6141 <  case 535:
6142 < /* Line 1813 of yacc.c  */
6143 < #line 2790 "conf_parser.y"
6141 >  case 537:
6142 > /* Line 1787 of yacc.c  */
6143 > #line 2601 "conf_parser.y"
6144      {
6145    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6146   }
6147      break;
6148  
6149 <  case 536:
6150 < /* Line 1813 of yacc.c  */
6151 < #line 2793 "conf_parser.y"
6149 >  case 538:
6150 > /* Line 1787 of yacc.c  */
6151 > #line 2604 "conf_parser.y"
6152      {
6153    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6154   }
6155      break;
6156  
6157 <  case 537:
6158 < /* Line 1813 of yacc.c  */
6159 < #line 2796 "conf_parser.y"
6157 >  case 539:
6158 > /* Line 1787 of yacc.c  */
6159 > #line 2607 "conf_parser.y"
6160      {
6161    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6162   }
6163      break;
6164  
6165 <  case 538:
6166 < /* Line 1813 of yacc.c  */
6167 < #line 2799 "conf_parser.y"
6165 >  case 540:
6166 > /* Line 1787 of yacc.c  */
6167 > #line 2610 "conf_parser.y"
6168      {
6169    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6170   }
6171      break;
6172  
6173 <  case 539:
6174 < /* Line 1813 of yacc.c  */
6175 < #line 2802 "conf_parser.y"
6173 >  case 541:
6174 > /* Line 1787 of yacc.c  */
6175 > #line 2613 "conf_parser.y"
6176      {
6177    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6178   }
6179      break;
6180  
6181 <  case 540:
6182 < /* Line 1813 of yacc.c  */
6183 < #line 2805 "conf_parser.y"
6181 >  case 542:
6182 > /* Line 1787 of yacc.c  */
6183 > #line 2616 "conf_parser.y"
6184      {
6185    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6186   }
6187      break;
6188  
6189 <  case 541:
6190 < /* Line 1813 of yacc.c  */
6191 < #line 2808 "conf_parser.y"
6189 >  case 543:
6190 > /* Line 1787 of yacc.c  */
6191 > #line 2619 "conf_parser.y"
6192      {
6193    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6194   }
6195      break;
6196  
6197 <  case 542:
6198 < /* Line 1813 of yacc.c  */
6199 < #line 2811 "conf_parser.y"
6197 >  case 544:
6198 > /* Line 1787 of yacc.c  */
6199 > #line 2622 "conf_parser.y"
6200      {
6201    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6202   }
6203      break;
6204  
6205 <  case 543:
6206 < /* Line 1813 of yacc.c  */
6207 < #line 2814 "conf_parser.y"
6205 >  case 545:
6206 > /* Line 1787 of yacc.c  */
6207 > #line 2625 "conf_parser.y"
6208      {
6209    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6210   }
6211      break;
6212  
6213 <  case 544:
6214 < /* Line 1813 of yacc.c  */
6215 < #line 2817 "conf_parser.y"
6213 >  case 546:
6214 > /* Line 1787 of yacc.c  */
6215 > #line 2628 "conf_parser.y"
6216      {
6217    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6218   }
6219      break;
6220  
6221 <  case 545:
6222 < /* Line 1813 of yacc.c  */
6223 < #line 2820 "conf_parser.y"
6221 >  case 547:
6222 > /* Line 1787 of yacc.c  */
6223 > #line 2631 "conf_parser.y"
6224      {
6225    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6226   }
6227      break;
6228  
6229 <  case 546:
6230 < /* Line 1813 of yacc.c  */
6231 < #line 2823 "conf_parser.y"
6229 >  case 548:
6230 > /* Line 1787 of yacc.c  */
6231 > #line 2634 "conf_parser.y"
6232      {
6233    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6234   }
6235      break;
6236  
6237 <  case 547:
6238 < /* Line 1813 of yacc.c  */
6239 < #line 2826 "conf_parser.y"
6237 >  case 549:
6238 > /* Line 1787 of yacc.c  */
6239 > #line 2637 "conf_parser.y"
6240      {
6241    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6242   }
6243      break;
6244  
6245 <  case 548:
6246 < /* Line 1813 of yacc.c  */
6247 < #line 2829 "conf_parser.y"
6245 >  case 550:
6246 > /* Line 1787 of yacc.c  */
6247 > #line 2640 "conf_parser.y"
6248      {
6249    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6250   }
6251      break;
6252  
6253 <  case 549:
6254 < /* Line 1813 of yacc.c  */
6255 < #line 2832 "conf_parser.y"
6253 >  case 551:
6254 > /* Line 1787 of yacc.c  */
6255 > #line 2643 "conf_parser.y"
6256      {
6257    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6258   }
6259      break;
6260  
6261 <  case 550:
6262 < /* Line 1813 of yacc.c  */
6263 < #line 2835 "conf_parser.y"
6261 >  case 552:
6262 > /* Line 1787 of yacc.c  */
6263 > #line 2646 "conf_parser.y"
6264      {
6265    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6266   }
6267      break;
6268  
6269 <  case 551:
6270 < /* Line 1813 of yacc.c  */
6271 < #line 2838 "conf_parser.y"
6269 >  case 553:
6270 > /* Line 1787 of yacc.c  */
6271 > #line 2649 "conf_parser.y"
6272      {
6273    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6274   }
6275      break;
6276  
6277 <  case 552:
6278 < /* Line 1813 of yacc.c  */
6279 < #line 2841 "conf_parser.y"
6277 >  case 554:
6278 > /* Line 1787 of yacc.c  */
6279 > #line 2652 "conf_parser.y"
6280      {
6281    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6282   }
6283      break;
6284  
6285 <  case 553:
6286 < /* Line 1813 of yacc.c  */
6287 < #line 2846 "conf_parser.y"
6285 >  case 555:
6286 > /* Line 1787 of yacc.c  */
6287 > #line 2657 "conf_parser.y"
6288      {
6289    ConfigFileEntry.oper_only_umodes = 0;
6290   }
6291      break;
6292  
6293 <  case 557:
6294 < /* Line 1813 of yacc.c  */
6295 < #line 2852 "conf_parser.y"
6293 >  case 559:
6294 > /* Line 1787 of yacc.c  */
6295 > #line 2663 "conf_parser.y"
6296      {
6297    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6298   }
6299      break;
6300  
6301 <  case 558:
6302 < /* Line 1813 of yacc.c  */
6303 < #line 2855 "conf_parser.y"
6301 >  case 560:
6302 > /* Line 1787 of yacc.c  */
6303 > #line 2666 "conf_parser.y"
6304      {
6305    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6306   }
6307      break;
6308  
6309 <  case 559:
6310 < /* Line 1813 of yacc.c  */
6311 < #line 2858 "conf_parser.y"
6309 >  case 561:
6310 > /* Line 1787 of yacc.c  */
6311 > #line 2669 "conf_parser.y"
6312      {
6313    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6314   }
6315      break;
6316  
6317 <  case 560:
6318 < /* Line 1813 of yacc.c  */
6319 < #line 2861 "conf_parser.y"
6317 >  case 562:
6318 > /* Line 1787 of yacc.c  */
6319 > #line 2672 "conf_parser.y"
6320      {
6321    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6322   }
6323      break;
6324  
6325 <  case 561:
6326 < /* Line 1813 of yacc.c  */
6327 < #line 2864 "conf_parser.y"
6325 >  case 563:
6326 > /* Line 1787 of yacc.c  */
6327 > #line 2675 "conf_parser.y"
6328      {
6329    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6330   }
6331      break;
6332  
6333 <  case 562:
6334 < /* Line 1813 of yacc.c  */
6335 < #line 2867 "conf_parser.y"
6333 >  case 564:
6334 > /* Line 1787 of yacc.c  */
6335 > #line 2678 "conf_parser.y"
6336      {
6337    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6338   }
6339      break;
6340  
6341 <  case 563:
6342 < /* Line 1813 of yacc.c  */
6343 < #line 2870 "conf_parser.y"
6341 >  case 565:
6342 > /* Line 1787 of yacc.c  */
6343 > #line 2681 "conf_parser.y"
6344      {
6345    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6346   }
6347      break;
6348  
6349 <  case 564:
6350 < /* Line 1813 of yacc.c  */
6351 < #line 2873 "conf_parser.y"
6349 >  case 566:
6350 > /* Line 1787 of yacc.c  */
6351 > #line 2684 "conf_parser.y"
6352      {
6353    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6354   }
6355      break;
6356  
6357 <  case 565:
6358 < /* Line 1813 of yacc.c  */
6359 < #line 2876 "conf_parser.y"
6357 >  case 567:
6358 > /* Line 1787 of yacc.c  */
6359 > #line 2687 "conf_parser.y"
6360      {
6361    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6362   }
6363      break;
6364  
6365 <  case 566:
6366 < /* Line 1813 of yacc.c  */
6367 < #line 2879 "conf_parser.y"
6365 >  case 568:
6366 > /* Line 1787 of yacc.c  */
6367 > #line 2690 "conf_parser.y"
6368      {
6369    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6370   }
6371      break;
6372  
6373 <  case 567:
6374 < /* Line 1813 of yacc.c  */
6375 < #line 2882 "conf_parser.y"
6373 >  case 569:
6374 > /* Line 1787 of yacc.c  */
6375 > #line 2693 "conf_parser.y"
6376      {
6377    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6378   }
6379      break;
6380  
6381 <  case 568:
6382 < /* Line 1813 of yacc.c  */
6383 < #line 2885 "conf_parser.y"
6381 >  case 570:
6382 > /* Line 1787 of yacc.c  */
6383 > #line 2696 "conf_parser.y"
6384      {
6385    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6386   }
6387      break;
6388  
6389 <  case 569:
6390 < /* Line 1813 of yacc.c  */
6391 < #line 2888 "conf_parser.y"
6389 >  case 571:
6390 > /* Line 1787 of yacc.c  */
6391 > #line 2699 "conf_parser.y"
6392      {
6393    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6394   }
6395      break;
6396  
6397 <  case 570:
6398 < /* Line 1813 of yacc.c  */
6399 < #line 2891 "conf_parser.y"
6397 >  case 572:
6398 > /* Line 1787 of yacc.c  */
6399 > #line 2702 "conf_parser.y"
6400      {
6401    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6402   }
6403      break;
6404  
6405 <  case 571:
6406 < /* Line 1813 of yacc.c  */
6407 < #line 2894 "conf_parser.y"
6405 >  case 573:
6406 > /* Line 1787 of yacc.c  */
6407 > #line 2705 "conf_parser.y"
6408      {
6409    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6410   }
6411      break;
6412  
6413 <  case 572:
6414 < /* Line 1813 of yacc.c  */
6415 < #line 2897 "conf_parser.y"
6413 >  case 574:
6414 > /* Line 1787 of yacc.c  */
6415 > #line 2708 "conf_parser.y"
6416      {
6417    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6418   }
6419      break;
6420  
6421 <  case 573:
6422 < /* Line 1813 of yacc.c  */
6423 < #line 2900 "conf_parser.y"
6421 >  case 575:
6422 > /* Line 1787 of yacc.c  */
6423 > #line 2711 "conf_parser.y"
6424      {
6425    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6426   }
6427      break;
6428  
6429 <  case 574:
6430 < /* Line 1813 of yacc.c  */
6431 < #line 2903 "conf_parser.y"
6429 >  case 576:
6430 > /* Line 1787 of yacc.c  */
6431 > #line 2714 "conf_parser.y"
6432      {
6433    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6434   }
6435      break;
6436  
6437 <  case 575:
6438 < /* Line 1813 of yacc.c  */
6439 < #line 2906 "conf_parser.y"
6437 >  case 577:
6438 > /* Line 1787 of yacc.c  */
6439 > #line 2717 "conf_parser.y"
6440      {
6441    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6442   }
6443      break;
6444  
6445 <  case 576:
6446 < /* Line 1813 of yacc.c  */
6447 < #line 2909 "conf_parser.y"
6445 >  case 578:
6446 > /* Line 1787 of yacc.c  */
6447 > #line 2720 "conf_parser.y"
6448      {
6449    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6450   }
6451      break;
6452  
6453 <  case 577:
6454 < /* Line 1813 of yacc.c  */
6455 < #line 2914 "conf_parser.y"
6453 >  case 579:
6454 > /* Line 1787 of yacc.c  */
6455 > #line 2723 "conf_parser.y"
6456      {
6457 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6457 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6458   }
6459      break;
6460  
6461 <  case 578:
6462 < /* Line 1813 of yacc.c  */
6463 < #line 2919 "conf_parser.y"
6461 >  case 580:
6462 > /* Line 1787 of yacc.c  */
6463 > #line 2728 "conf_parser.y"
6464      {
6465 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6465 >  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6466   }
6467      break;
6468  
6469 <  case 579:
6470 < /* Line 1813 of yacc.c  */
6471 < #line 2924 "conf_parser.y"
6469 >  case 581:
6470 > /* Line 1787 of yacc.c  */
6471 > #line 2733 "conf_parser.y"
6472      {
6473 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6473 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6474   }
6475      break;
6476  
6477 <  case 598:
6478 < /* Line 1813 of yacc.c  */
6479 < #line 2947 "conf_parser.y"
6477 >  case 582:
6478 > /* Line 1787 of yacc.c  */
6479 > #line 2738 "conf_parser.y"
6480      {
6481 <  ConfigChannel.disable_fake_channels = yylval.number;
6481 >  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6482   }
6483      break;
6484  
6485 <  case 599:
6486 < /* Line 1813 of yacc.c  */
6487 < #line 2952 "conf_parser.y"
6485 >  case 600:
6486 > /* Line 1787 of yacc.c  */
6487 > #line 2761 "conf_parser.y"
6488      {
6489 <  ConfigChannel.restrict_channels = yylval.number;
6489 >  ConfigChannel.disable_fake_channels = yylval.number;
6490   }
6491      break;
6492  
6493 <  case 600:
6494 < /* Line 1813 of yacc.c  */
6495 < #line 2957 "conf_parser.y"
6493 >  case 601:
6494 > /* Line 1787 of yacc.c  */
6495 > #line 2766 "conf_parser.y"
6496      {
6497    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6498   }
6499      break;
6500  
6501 <  case 601:
6502 < /* Line 1813 of yacc.c  */
6503 < #line 2962 "conf_parser.y"
6501 >  case 602:
6502 > /* Line 1787 of yacc.c  */
6503 > #line 2771 "conf_parser.y"
6504      {
6505    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6506   }
6507      break;
6508  
6509 <  case 602:
6510 < /* Line 1813 of yacc.c  */
6511 < #line 2967 "conf_parser.y"
6509 >  case 603:
6510 > /* Line 1787 of yacc.c  */
6511 > #line 2776 "conf_parser.y"
6512      {
6513    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6514   }
6515      break;
6516  
6517 <  case 603:
6518 < /* Line 1813 of yacc.c  */
6519 < #line 2972 "conf_parser.y"
6517 >  case 604:
6518 > /* Line 1787 of yacc.c  */
6519 > #line 2781 "conf_parser.y"
6520      {
6521    ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6522   }
6523      break;
6524  
6525 <  case 604:
6526 < /* Line 1813 of yacc.c  */
6527 < #line 2977 "conf_parser.y"
6525 >  case 605:
6526 > /* Line 1787 of yacc.c  */
6527 > #line 2786 "conf_parser.y"
6528      {
6529    ConfigChannel.quiet_on_ban = yylval.number;
6530   }
6531      break;
6532  
6533 <  case 605:
6534 < /* Line 1813 of yacc.c  */
6535 < #line 2982 "conf_parser.y"
6533 >  case 606:
6534 > /* Line 1787 of yacc.c  */
6535 > #line 2791 "conf_parser.y"
6536      {
6537    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6538   }
6539      break;
6540  
6541 <  case 606:
6542 < /* Line 1813 of yacc.c  */
6543 < #line 2987 "conf_parser.y"
6541 >  case 607:
6542 > /* Line 1787 of yacc.c  */
6543 > #line 2796 "conf_parser.y"
6544      {
6545    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6546   }
6547      break;
6548  
6549 <  case 607:
6550 < /* Line 1813 of yacc.c  */
6551 < #line 2992 "conf_parser.y"
6549 >  case 608:
6550 > /* Line 1787 of yacc.c  */
6551 > #line 2801 "conf_parser.y"
6552      {
6553    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6554   }
6555      break;
6556  
6557 <  case 608:
6558 < /* Line 1813 of yacc.c  */
6559 < #line 2997 "conf_parser.y"
6557 >  case 609:
6558 > /* Line 1787 of yacc.c  */
6559 > #line 2806 "conf_parser.y"
6560      {
6561    ConfigChannel.no_create_on_split = yylval.number;
6562   }
6563      break;
6564  
6565 <  case 609:
6566 < /* Line 1813 of yacc.c  */
6567 < #line 3002 "conf_parser.y"
6565 >  case 610:
6566 > /* Line 1787 of yacc.c  */
6567 > #line 2811 "conf_parser.y"
6568      {
6569    ConfigChannel.no_join_on_split = yylval.number;
6570   }
6571      break;
6572  
6573 <  case 610:
6574 < /* Line 1813 of yacc.c  */
6575 < #line 3007 "conf_parser.y"
6573 >  case 611:
6574 > /* Line 1787 of yacc.c  */
6575 > #line 2816 "conf_parser.y"
6576      {
6577    GlobalSetOptions.joinfloodcount = yylval.number;
6578   }
6579      break;
6580  
6581 <  case 611:
6582 < /* Line 1813 of yacc.c  */
6583 < #line 3012 "conf_parser.y"
6581 >  case 612:
6582 > /* Line 1787 of yacc.c  */
6583 > #line 2821 "conf_parser.y"
6584      {
6585    GlobalSetOptions.joinfloodtime = yylval.number;
6586   }
6587      break;
6588  
6589 <  case 622:
6590 < /* Line 1813 of yacc.c  */
6591 < #line 3030 "conf_parser.y"
6589 >  case 624:
6590 > /* Line 1787 of yacc.c  */
6591 > #line 2840 "conf_parser.y"
6592      {
6593    if (conf_parser_ctx.pass == 2)
6594      ConfigServerHide.flatten_links = yylval.number;
6595   }
6596      break;
6597  
6598 <  case 623:
6599 < /* Line 1813 of yacc.c  */
6600 < #line 3036 "conf_parser.y"
6598 >  case 625:
6599 > /* Line 1787 of yacc.c  */
6600 > #line 2846 "conf_parser.y"
6601      {
6602    if (conf_parser_ctx.pass == 2)
6603      ConfigServerHide.hide_servers = yylval.number;
6604   }
6605      break;
6606  
6607 <  case 624:
6608 < /* Line 1813 of yacc.c  */
6609 < #line 3042 "conf_parser.y"
6607 >  case 626:
6608 > /* Line 1787 of yacc.c  */
6609 > #line 2852 "conf_parser.y"
6610 >    {
6611 >  if (conf_parser_ctx.pass == 2)
6612 >    ConfigServerHide.hide_services = yylval.number;
6613 > }
6614 >    break;
6615 >
6616 >  case 627:
6617 > /* Line 1787 of yacc.c  */
6618 > #line 2858 "conf_parser.y"
6619      {
6620    if (conf_parser_ctx.pass == 2)
6621    {
6622      MyFree(ConfigServerHide.hidden_name);
6623 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6623 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6624    }
6625   }
6626      break;
6627  
6628 <  case 625:
6629 < /* Line 1813 of yacc.c  */
6630 < #line 3051 "conf_parser.y"
6628 >  case 628:
6629 > /* Line 1787 of yacc.c  */
6630 > #line 2867 "conf_parser.y"
6631      {
6632    if (conf_parser_ctx.pass == 2)
6633    {
# Line 6834 | Line 6642 | yyreduce:
6642   }
6643      break;
6644  
6645 <  case 626:
6646 < /* Line 1813 of yacc.c  */
6647 < #line 3065 "conf_parser.y"
6645 >  case 629:
6646 > /* Line 1787 of yacc.c  */
6647 > #line 2881 "conf_parser.y"
6648      {
6649    if (conf_parser_ctx.pass == 2)
6650      ConfigServerHide.hidden = yylval.number;
6651   }
6652      break;
6653  
6654 <  case 627:
6655 < /* Line 1813 of yacc.c  */
6656 < #line 3071 "conf_parser.y"
6654 >  case 630:
6655 > /* Line 1787 of yacc.c  */
6656 > #line 2887 "conf_parser.y"
6657      {
6658    if (conf_parser_ctx.pass == 2)
6659      ConfigServerHide.hide_server_ips = yylval.number;
# Line 6853 | Line 6661 | yyreduce:
6661      break;
6662  
6663  
6664 < /* Line 1813 of yacc.c  */
6665 < #line 6858 "conf_parser.c"
6664 > /* Line 1787 of yacc.c  */
6665 > #line 6666 "conf_parser.c"
6666        default: break;
6667      }
6668    /* User semantic actions sometimes alter yychar, and that requires

Comparing ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords):
Revision 1622 by michael, Thu Nov 1 13:16:37 2012 UTC vs.
Revision 1921 by michael, Tue Apr 30 14:54:20 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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