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

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1549 by michael, Mon Oct 1 18:11:11 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1646 by michael, Wed Nov 7 21:02:43 2012 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.6.2.  */
1 > /* A Bison parser, made by GNU Bison 2.6.2.33-cc5a9.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4    
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.6.2"
47 > #define YYBISON_VERSION "2.6.2.33-cc5a9"
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 336 of yacc.c  */
65 > /* Line 358 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 */
# Line 100 | Line 101
101   int yylex(void);
102  
103   static char *class_name = NULL;
104 < static struct ConfItem *yy_conf = NULL;
104 < static struct AccessItem *yy_aconf = NULL;
105 < static struct MatchItem *yy_match_item = NULL;
104 > static struct MaskItem *yy_conf = NULL;
105   static struct ClassItem *yy_class = NULL;
106   static char *yy_class_name = NULL;
107  
# Line 119 | Line 118 | static unsigned int lsize = 0;
118   static char *resv_reason = NULL;
119   static char *listener_address = NULL;
120  
121 < struct CollectItem
121 > static struct
122   {
123 <  dlink_node node;
124 <  char *name;
125 <  char *user;
126 <  char *host;
127 <  char *passwd;
128 <  int  port;
129 <  int  flags;
130 < #ifdef HAVE_LIBCRYPTO
131 <  char *rsa_public_key_file;
132 <  RSA *rsa_public_key;
133 < #endif
134 < };
123 >  struct {
124 >    dlink_list list;
125 >  } mask,
126 >    leaf,
127 >    hub;
128 >
129 >  struct {
130 >    char buf[IRCD_BUFSIZE];
131 >  } name,
132 >    user,
133 >    host,
134 >    addr,
135 >    pass,
136 >    file,
137 >    class;
138 >
139 >  struct {
140 >    unsigned int value;
141 >  } flags,
142 >    modes,
143 >    port,
144 >    ping_freq,
145 >    max_perip,
146 >    con_freq,
147 >    max_total,
148 >    max_global,
149 >    max_local,
150 >    max_ident,
151 >    max_sendq,
152 >    max_recvq,
153 >    cidr_bitlen_ipv4,
154 >    cidr_bitlen_ipv6,
155 >    number_per_cidr;
156 > } block_state;
157  
158   static void
159 < free_collect_item(struct CollectItem *item)
159 > reset_block_state(void)
160   {
161 <  MyFree(item->name);
162 <  MyFree(item->user);
163 <  MyFree(item->host);
164 <  MyFree(item->passwd);
165 < #ifdef HAVE_LIBCRYPTO
166 <  MyFree(item->rsa_public_key_file);
167 < #endif
168 <  MyFree(item);
161 >  dlink_node *ptr = NULL, *ptr_next = NULL;
162 >
163 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
164 >  {
165 >    MyFree(ptr->data);
166 >    dlinkDelete(ptr, &block_state.mask.list);
167 >    free_dlink_node(ptr);
168 >  }
169 >
170 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
171 >  {
172 >    MyFree(ptr->data);
173 >    dlinkDelete(ptr, &block_state.leaf.list);
174 >    free_dlink_node(ptr);
175 >  }
176 >
177 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
178 >  {
179 >    MyFree(ptr->data);
180 >    dlinkDelete(ptr, &block_state.hub.list);
181 >    free_dlink_node(ptr);
182 >  }
183 >
184 >  memset(&block_state, 0, sizeof(block_state));
185   }
186  
187  
188 < /* Line 336 of yacc.c  */
189 < #line 153 "conf_parser.c"
188 > /* Line 358 of yacc.c  */
189 > #line 190 "conf_parser.c"
190  
191   # ifndef YY_NULL
192   #  if defined __cplusplus && 201103L <= __cplusplus
# Line 169 | Line 206 | free_collect_item(struct CollectItem *it
206  
207   /* In a future release of Bison, this section will be replaced
208     by #include "y.tab.h".  */
209 < #ifndef YY_Y_TAB_H
210 < # define YY_Y_TAB_H
209 > #ifndef YY_YY_Y_TAB_H_INCLUDED
210 > # define YY_YY_Y_TAB_H_INCLUDED
211   /* Enabling traces.  */
212   #ifndef YYDEBUG
213   # define YYDEBUG 0
# Line 298 | Line 335 | extern int yydebug;
335       PATH = 368,
336       PING_COOKIE = 369,
337       PING_TIME = 370,
338 <     PING_WARNING = 371,
339 <     PORT = 372,
340 <     QSTRING = 373,
341 <     QUIET_ON_BAN = 374,
342 <     REASON = 375,
343 <     REDIRPORT = 376,
344 <     REDIRSERV = 377,
345 <     REGEX_T = 378,
346 <     REHASH = 379,
347 <     REMOTE = 380,
348 <     REMOTEBAN = 381,
349 <     RESTRICT_CHANNELS = 382,
350 <     RSA_PRIVATE_KEY_FILE = 383,
351 <     RSA_PUBLIC_KEY_FILE = 384,
352 <     SSL_CERTIFICATE_FILE = 385,
353 <     SSL_DH_PARAM_FILE = 386,
354 <     T_SSL_CLIENT_METHOD = 387,
355 <     T_SSL_SERVER_METHOD = 388,
356 <     T_SSLV3 = 389,
357 <     T_TLSV1 = 390,
358 <     RESV = 391,
359 <     RESV_EXEMPT = 392,
360 <     SECONDS = 393,
361 <     MINUTES = 394,
362 <     HOURS = 395,
363 <     DAYS = 396,
364 <     WEEKS = 397,
365 <     SENDQ = 398,
366 <     SEND_PASSWORD = 399,
367 <     SERVERHIDE = 400,
368 <     SERVERINFO = 401,
369 <     IRCD_SID = 402,
370 <     TKLINE_EXPIRE_NOTICES = 403,
371 <     T_SHARED = 404,
372 <     T_CLUSTER = 405,
373 <     TYPE = 406,
374 <     SHORT_MOTD = 407,
375 <     SPOOF = 408,
376 <     SPOOF_NOTICE = 409,
377 <     STATS_E_DISABLED = 410,
378 <     STATS_I_OPER_ONLY = 411,
379 <     STATS_K_OPER_ONLY = 412,
380 <     STATS_O_OPER_ONLY = 413,
381 <     STATS_P_OPER_ONLY = 414,
382 <     TBOOL = 415,
383 <     TMASKED = 416,
384 <     TS_MAX_DELTA = 417,
385 <     TS_WARN_DELTA = 418,
386 <     TWODOTS = 419,
387 <     T_ALL = 420,
388 <     T_BOTS = 421,
389 <     T_SOFTCALLERID = 422,
390 <     T_CALLERID = 423,
391 <     T_CCONN = 424,
392 <     T_CCONN_FULL = 425,
393 <     T_SSL_CIPHER_LIST = 426,
394 <     T_DEAF = 427,
395 <     T_DEBUG = 428,
396 <     T_DLINE = 429,
397 <     T_EXTERNAL = 430,
398 <     T_FULL = 431,
399 <     T_INVISIBLE = 432,
400 <     T_IPV4 = 433,
401 <     T_IPV6 = 434,
402 <     T_LOCOPS = 435,
403 <     T_MAX_CLIENTS = 436,
404 <     T_NCHANGE = 437,
405 <     T_OPERWALL = 438,
406 <     T_RECVQ = 439,
407 <     T_REJ = 440,
408 <     T_SERVER = 441,
409 <     T_SERVNOTICE = 442,
410 <     T_SET = 443,
411 <     T_SKILL = 444,
412 <     T_SPY = 445,
413 <     T_SSL = 446,
414 <     T_UMODES = 447,
415 <     T_UNAUTH = 448,
416 <     T_UNDLINE = 449,
417 <     T_UNLIMITED = 450,
418 <     T_UNRESV = 451,
419 <     T_UNXLINE = 452,
420 <     T_GLOBOPS = 453,
421 <     T_WALLOP = 454,
422 <     T_RESTART = 455,
423 <     T_SERVICE = 456,
424 <     T_SERVICES_NAME = 457,
425 <     THROTTLE_TIME = 458,
426 <     TRUE_NO_OPER_FLOOD = 459,
427 <     UNKLINE = 460,
428 <     USER = 461,
429 <     USE_EGD = 462,
430 <     USE_LOGGING = 463,
431 <     VHOST = 464,
432 <     VHOST6 = 465,
433 <     XLINE = 466,
434 <     WARN_NO_NLINE = 467,
435 <     T_SIZE = 468,
399 <     T_FILE = 469
338 >     PORT = 371,
339 >     QSTRING = 372,
340 >     QUIET_ON_BAN = 373,
341 >     REASON = 374,
342 >     REDIRPORT = 375,
343 >     REDIRSERV = 376,
344 >     REGEX_T = 377,
345 >     REHASH = 378,
346 >     REMOTE = 379,
347 >     REMOTEBAN = 380,
348 >     RESTRICT_CHANNELS = 381,
349 >     RSA_PRIVATE_KEY_FILE = 382,
350 >     RSA_PUBLIC_KEY_FILE = 383,
351 >     SSL_CERTIFICATE_FILE = 384,
352 >     SSL_DH_PARAM_FILE = 385,
353 >     T_SSL_CLIENT_METHOD = 386,
354 >     T_SSL_SERVER_METHOD = 387,
355 >     T_SSLV3 = 388,
356 >     T_TLSV1 = 389,
357 >     RESV = 390,
358 >     RESV_EXEMPT = 391,
359 >     SECONDS = 392,
360 >     MINUTES = 393,
361 >     HOURS = 394,
362 >     DAYS = 395,
363 >     WEEKS = 396,
364 >     SENDQ = 397,
365 >     SEND_PASSWORD = 398,
366 >     SERVERHIDE = 399,
367 >     SERVERINFO = 400,
368 >     IRCD_SID = 401,
369 >     TKLINE_EXPIRE_NOTICES = 402,
370 >     T_SHARED = 403,
371 >     T_CLUSTER = 404,
372 >     TYPE = 405,
373 >     SHORT_MOTD = 406,
374 >     SPOOF = 407,
375 >     SPOOF_NOTICE = 408,
376 >     STATS_E_DISABLED = 409,
377 >     STATS_I_OPER_ONLY = 410,
378 >     STATS_K_OPER_ONLY = 411,
379 >     STATS_O_OPER_ONLY = 412,
380 >     STATS_P_OPER_ONLY = 413,
381 >     TBOOL = 414,
382 >     TMASKED = 415,
383 >     TS_MAX_DELTA = 416,
384 >     TS_WARN_DELTA = 417,
385 >     TWODOTS = 418,
386 >     T_ALL = 419,
387 >     T_BOTS = 420,
388 >     T_SOFTCALLERID = 421,
389 >     T_CALLERID = 422,
390 >     T_CCONN = 423,
391 >     T_CCONN_FULL = 424,
392 >     T_SSL_CIPHER_LIST = 425,
393 >     T_DEAF = 426,
394 >     T_DEBUG = 427,
395 >     T_DLINE = 428,
396 >     T_EXTERNAL = 429,
397 >     T_FULL = 430,
398 >     T_INVISIBLE = 431,
399 >     T_IPV4 = 432,
400 >     T_IPV6 = 433,
401 >     T_LOCOPS = 434,
402 >     T_MAX_CLIENTS = 435,
403 >     T_NCHANGE = 436,
404 >     T_OPERWALL = 437,
405 >     T_RECVQ = 438,
406 >     T_REJ = 439,
407 >     T_SERVER = 440,
408 >     T_SERVNOTICE = 441,
409 >     T_SET = 442,
410 >     T_SKILL = 443,
411 >     T_SPY = 444,
412 >     T_SSL = 445,
413 >     T_UMODES = 446,
414 >     T_UNAUTH = 447,
415 >     T_UNDLINE = 448,
416 >     T_UNLIMITED = 449,
417 >     T_UNRESV = 450,
418 >     T_UNXLINE = 451,
419 >     T_GLOBOPS = 452,
420 >     T_WALLOP = 453,
421 >     T_RESTART = 454,
422 >     T_SERVICE = 455,
423 >     T_SERVICES_NAME = 456,
424 >     THROTTLE_TIME = 457,
425 >     TRUE_NO_OPER_FLOOD = 458,
426 >     UNKLINE = 459,
427 >     USER = 460,
428 >     USE_EGD = 461,
429 >     USE_LOGGING = 462,
430 >     VHOST = 463,
431 >     VHOST6 = 464,
432 >     XLINE = 465,
433 >     WARN_NO_NLINE = 466,
434 >     T_SIZE = 467,
435 >     T_FILE = 468
436     };
437   #endif
438   /* Tokens.  */
# Line 513 | Line 549 | extern int yydebug;
549   #define PATH 368
550   #define PING_COOKIE 369
551   #define PING_TIME 370
552 < #define PING_WARNING 371
553 < #define PORT 372
554 < #define QSTRING 373
555 < #define QUIET_ON_BAN 374
556 < #define REASON 375
557 < #define REDIRPORT 376
558 < #define REDIRSERV 377
559 < #define REGEX_T 378
560 < #define REHASH 379
561 < #define REMOTE 380
562 < #define REMOTEBAN 381
563 < #define RESTRICT_CHANNELS 382
564 < #define RSA_PRIVATE_KEY_FILE 383
565 < #define RSA_PUBLIC_KEY_FILE 384
566 < #define SSL_CERTIFICATE_FILE 385
567 < #define SSL_DH_PARAM_FILE 386
568 < #define T_SSL_CLIENT_METHOD 387
569 < #define T_SSL_SERVER_METHOD 388
570 < #define T_SSLV3 389
571 < #define T_TLSV1 390
572 < #define RESV 391
573 < #define RESV_EXEMPT 392
574 < #define SECONDS 393
575 < #define MINUTES 394
576 < #define HOURS 395
577 < #define DAYS 396
578 < #define WEEKS 397
579 < #define SENDQ 398
580 < #define SEND_PASSWORD 399
581 < #define SERVERHIDE 400
582 < #define SERVERINFO 401
583 < #define IRCD_SID 402
584 < #define TKLINE_EXPIRE_NOTICES 403
585 < #define T_SHARED 404
586 < #define T_CLUSTER 405
587 < #define TYPE 406
588 < #define SHORT_MOTD 407
589 < #define SPOOF 408
590 < #define SPOOF_NOTICE 409
591 < #define STATS_E_DISABLED 410
592 < #define STATS_I_OPER_ONLY 411
593 < #define STATS_K_OPER_ONLY 412
594 < #define STATS_O_OPER_ONLY 413
595 < #define STATS_P_OPER_ONLY 414
596 < #define TBOOL 415
597 < #define TMASKED 416
598 < #define TS_MAX_DELTA 417
599 < #define TS_WARN_DELTA 418
600 < #define TWODOTS 419
601 < #define T_ALL 420
602 < #define T_BOTS 421
603 < #define T_SOFTCALLERID 422
604 < #define T_CALLERID 423
605 < #define T_CCONN 424
606 < #define T_CCONN_FULL 425
607 < #define T_SSL_CIPHER_LIST 426
608 < #define T_DEAF 427
609 < #define T_DEBUG 428
610 < #define T_DLINE 429
611 < #define T_EXTERNAL 430
612 < #define T_FULL 431
613 < #define T_INVISIBLE 432
614 < #define T_IPV4 433
615 < #define T_IPV6 434
616 < #define T_LOCOPS 435
617 < #define T_MAX_CLIENTS 436
618 < #define T_NCHANGE 437
619 < #define T_OPERWALL 438
620 < #define T_RECVQ 439
621 < #define T_REJ 440
622 < #define T_SERVER 441
623 < #define T_SERVNOTICE 442
624 < #define T_SET 443
625 < #define T_SKILL 444
626 < #define T_SPY 445
627 < #define T_SSL 446
628 < #define T_UMODES 447
629 < #define T_UNAUTH 448
630 < #define T_UNDLINE 449
631 < #define T_UNLIMITED 450
632 < #define T_UNRESV 451
633 < #define T_UNXLINE 452
634 < #define T_GLOBOPS 453
635 < #define T_WALLOP 454
636 < #define T_RESTART 455
637 < #define T_SERVICE 456
638 < #define T_SERVICES_NAME 457
639 < #define THROTTLE_TIME 458
640 < #define TRUE_NO_OPER_FLOOD 459
641 < #define UNKLINE 460
642 < #define USER 461
643 < #define USE_EGD 462
644 < #define USE_LOGGING 463
645 < #define VHOST 464
646 < #define VHOST6 465
647 < #define XLINE 466
648 < #define WARN_NO_NLINE 467
649 < #define T_SIZE 468
614 < #define T_FILE 469
552 > #define PORT 371
553 > #define QSTRING 372
554 > #define QUIET_ON_BAN 373
555 > #define REASON 374
556 > #define REDIRPORT 375
557 > #define REDIRSERV 376
558 > #define REGEX_T 377
559 > #define REHASH 378
560 > #define REMOTE 379
561 > #define REMOTEBAN 380
562 > #define RESTRICT_CHANNELS 381
563 > #define RSA_PRIVATE_KEY_FILE 382
564 > #define RSA_PUBLIC_KEY_FILE 383
565 > #define SSL_CERTIFICATE_FILE 384
566 > #define SSL_DH_PARAM_FILE 385
567 > #define T_SSL_CLIENT_METHOD 386
568 > #define T_SSL_SERVER_METHOD 387
569 > #define T_SSLV3 388
570 > #define T_TLSV1 389
571 > #define RESV 390
572 > #define RESV_EXEMPT 391
573 > #define SECONDS 392
574 > #define MINUTES 393
575 > #define HOURS 394
576 > #define DAYS 395
577 > #define WEEKS 396
578 > #define SENDQ 397
579 > #define SEND_PASSWORD 398
580 > #define SERVERHIDE 399
581 > #define SERVERINFO 400
582 > #define IRCD_SID 401
583 > #define TKLINE_EXPIRE_NOTICES 402
584 > #define T_SHARED 403
585 > #define T_CLUSTER 404
586 > #define TYPE 405
587 > #define SHORT_MOTD 406
588 > #define SPOOF 407
589 > #define SPOOF_NOTICE 408
590 > #define STATS_E_DISABLED 409
591 > #define STATS_I_OPER_ONLY 410
592 > #define STATS_K_OPER_ONLY 411
593 > #define STATS_O_OPER_ONLY 412
594 > #define STATS_P_OPER_ONLY 413
595 > #define TBOOL 414
596 > #define TMASKED 415
597 > #define TS_MAX_DELTA 416
598 > #define TS_WARN_DELTA 417
599 > #define TWODOTS 418
600 > #define T_ALL 419
601 > #define T_BOTS 420
602 > #define T_SOFTCALLERID 421
603 > #define T_CALLERID 422
604 > #define T_CCONN 423
605 > #define T_CCONN_FULL 424
606 > #define T_SSL_CIPHER_LIST 425
607 > #define T_DEAF 426
608 > #define T_DEBUG 427
609 > #define T_DLINE 428
610 > #define T_EXTERNAL 429
611 > #define T_FULL 430
612 > #define T_INVISIBLE 431
613 > #define T_IPV4 432
614 > #define T_IPV6 433
615 > #define T_LOCOPS 434
616 > #define T_MAX_CLIENTS 435
617 > #define T_NCHANGE 436
618 > #define T_OPERWALL 437
619 > #define T_RECVQ 438
620 > #define T_REJ 439
621 > #define T_SERVER 440
622 > #define T_SERVNOTICE 441
623 > #define T_SET 442
624 > #define T_SKILL 443
625 > #define T_SPY 444
626 > #define T_SSL 445
627 > #define T_UMODES 446
628 > #define T_UNAUTH 447
629 > #define T_UNDLINE 448
630 > #define T_UNLIMITED 449
631 > #define T_UNRESV 450
632 > #define T_UNXLINE 451
633 > #define T_GLOBOPS 452
634 > #define T_WALLOP 453
635 > #define T_RESTART 454
636 > #define T_SERVICE 455
637 > #define T_SERVICES_NAME 456
638 > #define THROTTLE_TIME 457
639 > #define TRUE_NO_OPER_FLOOD 458
640 > #define UNKLINE 459
641 > #define USER 460
642 > #define USE_EGD 461
643 > #define USE_LOGGING 462
644 > #define VHOST 463
645 > #define VHOST6 464
646 > #define XLINE 465
647 > #define WARN_NO_NLINE 466
648 > #define T_SIZE 467
649 > #define T_FILE 468
650  
651  
652  
653   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
654   typedef union YYSTYPE
655   {
656 < /* Line 350 of yacc.c  */
657 < #line 110 "conf_parser.y"
656 > /* Line 374 of yacc.c  */
657 > #line 147 "conf_parser.y"
658  
659    int number;
660    char *string;
661  
662  
663 < /* Line 350 of yacc.c  */
664 < #line 630 "conf_parser.c"
663 > /* Line 374 of yacc.c  */
664 > #line 665 "conf_parser.c"
665   } YYSTYPE;
666   # define YYSTYPE_IS_TRIVIAL 1
667   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
# Line 649 | Line 684 | int yyparse ();
684   #endif
685   #endif /* ! YYPARSE_PARAM */
686  
687 < #endif /* !YY_Y_TAB_H  */
687 > #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
688  
689   /* Copy the second part of user declarations.  */
690  
691 < /* Line 353 of yacc.c  */
692 < #line 658 "conf_parser.c"
691 > /* Line 377 of yacc.c  */
692 > #line 693 "conf_parser.c"
693  
694   #ifdef short
695   # undef short
# Line 707 | Line 742 | typedef short int yytype_int16;
742   # if defined YYENABLE_NLS && YYENABLE_NLS
743   #  if ENABLE_NLS
744   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
745 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
745 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
746   #  endif
747   # endif
748   # ifndef YY_
749 < #  define YY_(msgid) msgid
749 > #  define YY_(Msgid) Msgid
750   # endif
751   #endif
752  
753   /* Suppress unused-variable warnings by "using" E.  */
754   #if ! defined lint || defined __GNUC__
755 < # define YYUSE(e) ((void) (e))
755 > # define YYUSE(E) ((void) (E))
756   #else
757 < # define YYUSE(e) /* empty */
757 > # define YYUSE(E) /* empty */
758   #endif
759  
760   /* Identity function, used to suppress warnings about constant conditions.  */
761   #ifndef lint
762 < # define YYID(n) (n)
762 > # define YYID(N) (N)
763   #else
764   #if (defined __STDC__ || defined __C99__FUNC__ \
765       || defined __cplusplus || defined _MSC_VER)
# Line 874 | Line 909 | union yyalloc
909   /* YYFINAL -- State number of the termination state.  */
910   #define YYFINAL  2
911   /* YYLAST -- Last index in YYTABLE.  */
912 < #define YYLAST   1206
912 > #define YYLAST   1180
913  
914   /* YYNTOKENS -- Number of terminals.  */
915 < #define YYNTOKENS  220
915 > #define YYNTOKENS  219
916   /* YYNNTS -- Number of nonterminals.  */
917 < #define YYNNTS  283
917 > #define YYNNTS  282
918   /* YYNRULES -- Number of rules.  */
919 < #define YYNRULES  627
919 > #define YYNRULES  625
920   /* YYNRULES -- Number of states.  */
921 < #define YYNSTATES  1228
921 > #define YYNSTATES  1223
922  
923   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
924   #define YYUNDEFTOK  2
925 < #define YYMAXUTOK   469
925 > #define YYMAXUTOK   468
926  
927   #define YYTRANSLATE(YYX)                                                \
928    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 899 | Line 934 | static const yytype_uint8 yytranslate[]
934         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
935         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
936         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
937 <       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
938 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
939 <       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
937 >       2,     2,     2,     2,   218,     2,     2,     2,     2,     2,
938 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   214,
939 >       2,   217,     2,     2,     2,     2,     2,     2,     2,     2,
940         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
941         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
942         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
943         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
944         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
945 <       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
945 >       2,     2,     2,   216,     2,   215,     2,     2,     2,     2,
946         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
947         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
948         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 941 | Line 976 | static const yytype_uint8 yytranslate[]
976       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
977       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
978       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
979 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
979 >     205,   206,   207,   208,   209,   210,   211,   212,   213
980   };
981  
982   #if YYDEBUG
# Line 970 | Line 1005 | static const yytype_uint16 yyprhs[] =
1005       522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
1006       542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
1007       567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
1008 <     587,   589,   591,   593,   596,   601,   606,   611,   616,   621,
1009 <     626,   631,   636,   641,   646,   651,   656,   661,   666,   667,
1010 <     674,   675,   681,   685,   687,   689,   691,   693,   696,   698,
1011 <     700,   702,   704,   706,   709,   710,   716,   720,   722,   724,
1012 <     728,   733,   738,   739,   746,   749,   751,   753,   755,   757,
1013 <     759,   761,   763,   765,   767,   770,   775,   780,   785,   790,
1014 <     791,   797,   801,   803,   805,   807,   809,   811,   813,   815,
1015 <     817,   819,   821,   826,   831,   836,   837,   844,   847,   849,
1016 <     851,   853,   855,   858,   863,   868,   873,   879,   882,   884,
1017 <     886,   888,   893,   894,   901,   904,   906,   908,   910,   912,
1018 <     915,   920,   925,   926,   932,   936,   938,   940,   942,   944,
1019 <     946,   948,   950,   952,   954,   956,   958,   959,   966,   969,
1020 <     971,   973,   975,   978,   983,   984,   990,   994,   996,   998,
1021 <    1000,  1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,  1017,
1022 <    1024,  1027,  1029,  1031,  1033,  1035,  1037,  1039,  1041,  1043,
1023 <    1045,  1047,  1049,  1051,  1053,  1055,  1058,  1063,  1068,  1073,
1024 <    1078,  1083,  1088,  1093,  1098,  1099,  1105,  1109,  1111,  1113,
1025 <    1115,  1120,  1125,  1130,  1135,  1140,  1141,  1148,  1149,  1155,
1026 <    1159,  1161,  1163,  1166,  1168,  1170,  1172,  1174,  1176,  1181,
1027 <    1186,  1187,  1194,  1197,  1199,  1201,  1203,  1205,  1210,  1215,
1028 <    1221,  1224,  1226,  1228,  1230,  1235,  1236,  1243,  1244,  1250,
1029 <    1254,  1256,  1258,  1261,  1263,  1265,  1267,  1269,  1271,  1276,
1030 <    1281,  1287,  1290,  1292,  1294,  1296,  1298,  1300,  1302,  1304,
1031 <    1306,  1308,  1310,  1312,  1314,  1316,  1318,  1320,  1322,  1324,
1032 <    1326,  1328,  1330,  1332,  1334,  1336,  1338,  1340,  1342,  1344,
1033 <    1346,  1348,  1350,  1352,  1354,  1356,  1358,  1360,  1362,  1364,
1034 <    1366,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,  1384,
1035 <    1386,  1388,  1390,  1392,  1397,  1402,  1407,  1412,  1417,  1422,
1036 <    1427,  1432,  1437,  1442,  1447,  1452,  1457,  1462,  1467,  1472,
1037 <    1477,  1482,  1487,  1492,  1497,  1502,  1507,  1512,  1517,  1522,
1038 <    1527,  1532,  1537,  1542,  1547,  1552,  1557,  1562,  1567,  1572,
1039 <    1577,  1582,  1587,  1592,  1597,  1602,  1607,  1612,  1617,  1622,
1040 <    1623,  1629,  1633,  1635,  1637,  1639,  1641,  1643,  1645,  1647,
1041 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1042 <    1669,  1671,  1673,  1675,  1676,  1682,  1686,  1688,  1690,  1692,
1043 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1044 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1733,  1738,
1045 <    1743,  1749,  1752,  1754,  1756,  1758,  1760,  1762,  1764,  1766,
1046 <    1768,  1770,  1772,  1774,  1776,  1778,  1780,  1782,  1784,  1789,
1047 <    1794,  1799,  1804,  1809,  1814,  1819,  1824,  1829,  1834,  1839,
1048 <    1844,  1849,  1854,  1860,  1863,  1865,  1867,  1869,  1871,  1873,
1049 <    1875,  1877,  1879,  1884,  1889,  1894,  1899,  1904
1008 >     587,   589,   591,   594,   599,   604,   609,   614,   619,   624,
1009 >     629,   634,   639,   644,   649,   654,   659,   660,   667,   668,
1010 >     674,   678,   680,   682,   684,   686,   689,   691,   693,   695,
1011 >     697,   699,   702,   703,   709,   713,   715,   717,   721,   726,
1012 >     731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
1013 >     756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
1014 >     794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
1015 >     814,   819,   824,   829,   830,   837,   840,   842,   844,   846,
1016 >     848,   851,   856,   861,   866,   872,   875,   877,   879,   881,
1017 >     886,   887,   894,   897,   899,   901,   903,   905,   908,   913,
1018 >     918,   919,   925,   929,   931,   933,   935,   937,   939,   941,
1019 >     943,   945,   947,   949,   951,   952,   959,   962,   964,   966,
1020 >     968,   971,   976,   977,   983,   987,   989,   991,   993,   995,
1021 >     997,   999,  1001,  1003,  1005,  1007,  1009,  1010,  1017,  1020,
1022 >    1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1023 >    1042,  1044,  1046,  1048,  1051,  1056,  1061,  1066,  1071,  1076,
1024 >    1081,  1086,  1091,  1092,  1098,  1102,  1104,  1106,  1108,  1113,
1025 >    1118,  1123,  1128,  1133,  1134,  1141,  1142,  1148,  1152,  1154,
1026 >    1156,  1159,  1161,  1163,  1165,  1167,  1169,  1174,  1179,  1180,
1027 >    1187,  1190,  1192,  1194,  1196,  1198,  1203,  1208,  1214,  1217,
1028 >    1219,  1221,  1223,  1228,  1229,  1236,  1237,  1243,  1247,  1249,
1029 >    1251,  1254,  1256,  1258,  1260,  1262,  1264,  1269,  1274,  1280,
1030 >    1283,  1285,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1031 >    1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1032 >    1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1033 >    1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1034 >    1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1035 >    1383,  1385,  1390,  1395,  1400,  1405,  1410,  1415,  1420,  1425,
1036 >    1430,  1435,  1440,  1445,  1450,  1455,  1460,  1465,  1470,  1475,
1037 >    1480,  1485,  1490,  1495,  1500,  1505,  1510,  1515,  1520,  1525,
1038 >    1530,  1535,  1540,  1545,  1550,  1555,  1560,  1565,  1570,  1575,
1039 >    1580,  1585,  1590,  1595,  1600,  1605,  1610,  1615,  1616,  1622,
1040 >    1626,  1628,  1630,  1632,  1634,  1636,  1638,  1640,  1642,  1644,
1041 >    1646,  1648,  1650,  1652,  1654,  1656,  1658,  1660,  1662,  1664,
1042 >    1666,  1668,  1669,  1675,  1679,  1681,  1683,  1685,  1687,  1689,
1043 >    1691,  1693,  1695,  1697,  1699,  1701,  1703,  1705,  1707,  1709,
1044 >    1711,  1713,  1715,  1717,  1719,  1721,  1726,  1731,  1736,  1742,
1045 >    1745,  1747,  1749,  1751,  1753,  1755,  1757,  1759,  1761,  1763,
1046 >    1765,  1767,  1769,  1771,  1773,  1775,  1777,  1782,  1787,  1792,
1047 >    1797,  1802,  1807,  1812,  1817,  1822,  1827,  1832,  1837,  1842,
1048 >    1847,  1853,  1856,  1858,  1860,  1862,  1864,  1866,  1868,  1870,
1049 >    1872,  1877,  1882,  1887,  1892,  1897
1050   };
1051  
1052   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1053   static const yytype_int16 yyrhs[] =
1054   {
1055 <     221,     0,    -1,    -1,   221,   222,    -1,   254,    -1,   260,
1056 <      -1,   274,    -1,   477,    -1,   292,    -1,   310,    -1,   324,
1057 <      -1,   232,    -1,   494,    -1,   339,    -1,   346,    -1,   350,
1058 <      -1,   360,    -1,   369,    -1,   389,    -1,   399,    -1,   405,
1059 <      -1,   419,    -1,   409,    -1,   227,    -1,     1,   215,    -1,
1060 <       1,   216,    -1,    -1,   224,    -1,    99,   223,    -1,    99,
1061 <     138,   223,    -1,    99,   139,   223,    -1,    99,   140,   223,
1062 <      -1,    99,   141,   223,    -1,    99,   142,   223,    -1,    -1,
1063 <     226,    -1,    99,   225,    -1,    99,     9,   225,    -1,    99,
1064 <      10,   225,    -1,    99,    11,   225,    -1,    88,   217,   228,
1065 <     216,   215,    -1,   228,   229,    -1,   229,    -1,   230,    -1,
1066 <     231,    -1,     1,   215,    -1,    87,   218,   118,   215,    -1,
1067 <     113,   218,   118,   215,    -1,   146,   217,   233,   216,   215,
1068 <      -1,   233,   234,    -1,   234,    -1,   245,    -1,   250,    -1,
1069 <     253,    -1,   247,    -1,   248,    -1,   249,    -1,   252,    -1,
1070 <     243,    -1,   242,    -1,   251,    -1,   246,    -1,   241,    -1,
1071 <     235,    -1,   236,    -1,   244,    -1,     1,   215,    -1,   132,
1072 <     218,   237,   215,    -1,   133,   218,   239,   215,    -1,   237,
1073 <     219,   238,    -1,   238,    -1,   134,    -1,   135,    -1,   239,
1074 <     219,   240,    -1,   240,    -1,   134,    -1,   135,    -1,   130,
1075 <     218,   118,   215,    -1,   128,   218,   118,   215,    -1,   131,
1076 <     218,   118,   215,    -1,   171,   218,   118,   215,    -1,    89,
1077 <     218,   118,   215,    -1,   147,   218,   118,   215,    -1,    24,
1078 <     218,   118,   215,    -1,    92,   218,   118,   215,    -1,    91,
1079 <     218,   118,   215,    -1,   209,   218,   118,   215,    -1,   210,
1080 <     218,   118,   215,    -1,   181,   218,    99,   215,    -1,    57,
1081 <     218,   160,   215,    -1,     4,   217,   255,   216,   215,    -1,
1082 <     255,   256,    -1,   256,    -1,   257,    -1,   259,    -1,   258,
1083 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,    31,
1084 <     218,   118,   215,    -1,    24,   218,   118,   215,    -1,    71,
1085 <     217,   261,   216,   215,    -1,   261,   262,    -1,   262,    -1,
1086 <     263,    -1,   264,    -1,     1,   215,    -1,   208,   218,   160,
1087 <     215,    -1,    -1,   265,   214,   217,   266,   216,   215,    -1,
1088 <     266,   267,    -1,   267,    -1,   268,    -1,   270,    -1,   269,
1089 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,   213,
1090 <     218,   226,   215,    -1,   213,   218,   195,   215,    -1,    -1,
1091 <     151,   271,   218,   272,   215,    -1,   272,   219,   273,    -1,
1092 <     273,    -1,   206,    -1,   102,    -1,    40,    -1,   174,    -1,
1093 <      64,    -1,    62,    -1,   173,    -1,    -1,   102,   275,   217,
1094 <     276,   216,   215,    -1,   276,   277,    -1,   277,    -1,   278,
1095 <      -1,   279,    -1,   280,    -1,   284,    -1,   283,    -1,   281,
1096 <      -1,   282,    -1,   288,    -1,     1,   215,    -1,    89,   218,
1097 <     118,   215,    -1,   206,   218,   118,   215,    -1,   112,   218,
1098 <     118,   215,    -1,    32,   218,   160,   215,    -1,   129,   218,
1099 <     118,   215,    -1,    17,   218,   118,   215,    -1,    -1,   192,
1100 <     285,   218,   286,   215,    -1,   286,   219,   287,    -1,   287,
1101 <      -1,   166,    -1,   169,    -1,   170,    -1,   172,    -1,   173,
1102 <      -1,   176,    -1,    51,    -1,   189,    -1,   182,    -1,   185,
1103 <      -1,   193,    -1,   190,    -1,   175,    -1,   183,    -1,   187,
1104 <      -1,   177,    -1,   199,    -1,   167,    -1,   168,    -1,   180,
1105 <      -1,    -1,    36,   289,   218,   290,   215,    -1,   290,   219,
1106 <     291,    -1,   291,    -1,    47,    -1,   125,    -1,    64,    -1,
1107 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,    40,    -1,
1108 <      25,    -1,   200,    -1,   124,    -1,     4,    -1,    94,    -1,
1109 <     183,    -1,   198,    -1,   106,    -1,   126,    -1,   188,    -1,
1110 <      87,    -1,    -1,    17,   293,   217,   294,   216,   215,    -1,
1111 <     294,   295,    -1,   295,    -1,   296,    -1,   307,    -1,   308,
1112 <      -1,   297,    -1,   298,    -1,   309,    -1,   299,    -1,   300,
1113 <      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,   305,
1114 <      -1,   306,    -1,     1,   215,    -1,    89,   218,   118,   215,
1115 <      -1,   115,   218,   224,   215,    -1,   116,   218,   224,   215,
1116 <      -1,   101,   218,    99,   215,    -1,    19,   218,   224,   215,
1117 <      -1,    81,   218,    99,   215,    -1,    76,   218,    99,   215,
1118 <      -1,    78,   218,    99,   215,    -1,    77,   218,    99,   215,
1119 <      -1,   143,   218,   226,   215,    -1,   184,   218,   226,   215,
1120 <      -1,    15,   218,    99,   215,    -1,    16,   218,    99,   215,
1121 <      -1,   100,   218,    99,   215,    -1,    -1,    70,   311,   217,
1122 <     316,   216,   215,    -1,    -1,    36,   313,   218,   314,   215,
1123 <      -1,   314,   219,   315,    -1,   315,    -1,   191,    -1,    51,
1124 <      -1,   186,    -1,   316,   317,    -1,   317,    -1,   318,    -1,
1125 <     312,    -1,   322,    -1,   323,    -1,     1,   215,    -1,    -1,
1126 <     117,   218,   320,   319,   215,    -1,   320,   219,   321,    -1,
1127 <     321,    -1,    99,    -1,    99,   164,    99,    -1,    61,   218,
1128 <     118,   215,    -1,    56,   218,   118,   215,    -1,    -1,    48,
1129 <     325,   217,   326,   216,   215,    -1,   326,   327,    -1,   327,
1130 <      -1,   328,    -1,   329,    -1,   330,    -1,   332,    -1,   336,
1131 <      -1,   337,    -1,   338,    -1,   331,    -1,     1,   215,    -1,
1132 <     206,   218,   118,   215,    -1,   112,   218,   118,   215,    -1,
1133 <      17,   218,   118,   215,    -1,    32,   218,   160,   215,    -1,
1134 <      -1,    36,   333,   218,   334,   215,    -1,   334,   219,   335,
1135 <      -1,   335,    -1,   154,    -1,    33,    -1,    65,    -1,    49,
1136 <      -1,    13,    -1,    98,    -1,    43,    -1,   137,    -1,    90,
1137 <      -1,   153,   218,   118,   215,    -1,   122,   218,   118,   215,
1138 <      -1,   121,   218,    99,   215,    -1,    -1,   136,   340,   217,
1139 <     341,   216,   215,    -1,   341,   342,    -1,   342,    -1,   343,
1140 <      -1,   344,    -1,   345,    -1,     1,   215,    -1,   120,   218,
1141 <     118,   215,    -1,    14,   218,   118,   215,    -1,    93,   218,
1142 <     118,   215,    -1,   201,   217,   347,   216,   215,    -1,   347,
1143 <     348,    -1,   348,    -1,   349,    -1,     1,    -1,    89,   218,
1144 <     118,   215,    -1,    -1,   149,   351,   217,   352,   216,   215,
1145 <      -1,   352,   353,    -1,   353,    -1,   354,    -1,   355,    -1,
1146 <     356,    -1,     1,   215,    -1,    89,   218,   118,   215,    -1,
1147 <     206,   218,   118,   215,    -1,    -1,   151,   357,   218,   358,
1148 <     215,    -1,   358,   219,   359,    -1,   359,    -1,    64,    -1,
1149 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,   197,    -1,
1150 <     136,    -1,   196,    -1,   180,    -1,   165,    -1,    -1,   150,
1151 <     361,   217,   362,   216,   215,    -1,   362,   363,    -1,   363,
1152 <      -1,   364,    -1,   365,    -1,     1,   215,    -1,    89,   218,
1153 <     118,   215,    -1,    -1,   151,   366,   218,   367,   215,    -1,
1154 <     367,   219,   368,    -1,   368,    -1,    64,    -1,   205,    -1,
1155 <     174,    -1,   194,    -1,   211,    -1,   197,    -1,   136,    -1,
1156 <     196,    -1,   180,    -1,   165,    -1,    -1,    18,   370,   217,
1157 <     371,   216,   215,    -1,   371,   372,    -1,   372,    -1,   373,
1158 <      -1,   374,    -1,   375,    -1,   376,    -1,   377,    -1,   379,
1159 <      -1,   378,    -1,   388,    -1,   380,    -1,   385,    -1,   386,
1160 <      -1,   387,    -1,   384,    -1,     1,   215,    -1,    89,   218,
1161 <     118,   215,    -1,    56,   218,   118,   215,    -1,   209,   218,
1162 <     118,   215,    -1,   144,   218,   118,   215,    -1,     3,   218,
1163 <     118,   215,    -1,   117,   218,    99,   215,    -1,     5,   218,
1164 <     178,   215,    -1,     5,   218,   179,   215,    -1,    -1,    36,
1165 <     381,   218,   382,   215,    -1,   382,   219,   383,    -1,   383,
1166 <      -1,     8,    -1,   191,    -1,    32,   218,   160,   215,    -1,
1167 <      58,   218,   118,   215,    -1,    68,   218,   118,   215,    -1,
1168 <      17,   218,   118,   215,    -1,   171,   218,   118,   215,    -1,
1169 <      -1,    62,   390,   217,   395,   216,   215,    -1,    -1,   151,
1170 <     392,   218,   393,   215,    -1,   393,   219,   394,    -1,   394,
1171 <      -1,   123,    -1,   395,   396,    -1,   396,    -1,   397,    -1,
1172 <     398,    -1,   391,    -1,     1,    -1,   206,   218,   118,   215,
1173 <      -1,   120,   218,   118,   215,    -1,    -1,    23,   400,   217,
1174 <     401,   216,   215,    -1,   401,   402,    -1,   402,    -1,   403,
1175 <      -1,   404,    -1,     1,    -1,    61,   218,   118,   215,    -1,
1176 <     120,   218,   118,   215,    -1,    34,   217,   406,   216,   215,
1177 <      -1,   406,   407,    -1,   407,    -1,   408,    -1,     1,    -1,
1178 <      61,   218,   118,   215,    -1,    -1,    38,   410,   217,   415,
1179 <     216,   215,    -1,    -1,   151,   412,   218,   413,   215,    -1,
1180 <     413,   219,   414,    -1,   414,    -1,   123,    -1,   415,   416,
1181 <      -1,   416,    -1,   417,    -1,   418,    -1,   411,    -1,     1,
1182 <      -1,    89,   218,   118,   215,    -1,   120,   218,   118,   215,
1183 <      -1,    39,   217,   420,   216,   215,    -1,   420,   421,    -1,
1184 <     421,    -1,   430,    -1,   431,    -1,   433,    -1,   434,    -1,
1185 <     435,    -1,   436,    -1,   437,    -1,   438,    -1,   439,    -1,
1186 <     440,    -1,   429,    -1,   442,    -1,   443,    -1,   458,    -1,
1187 <     445,    -1,   447,    -1,   449,    -1,   448,    -1,   452,    -1,
1188 <     446,    -1,   453,    -1,   454,    -1,   455,    -1,   456,    -1,
1189 <     457,    -1,   470,    -1,   459,    -1,   460,    -1,   461,    -1,
1190 <     466,    -1,   450,    -1,   451,    -1,   476,    -1,   474,    -1,
1191 <     475,    -1,   432,    -1,   465,    -1,   441,    -1,   463,    -1,
1192 <     464,    -1,   428,    -1,   423,    -1,   424,    -1,   425,    -1,
1193 <     426,    -1,   427,    -1,   444,    -1,   422,    -1,   462,    -1,
1194 <       1,    -1,    83,   218,    99,   215,    -1,    42,   218,   160,
1195 <     215,    -1,    41,   218,   224,   215,    -1,    44,   218,   224,
1196 <     215,    -1,    45,   218,    99,   215,    -1,    46,   218,    99,
1197 <     215,    -1,   148,   218,   160,   215,    -1,    63,   218,   224,
1198 <     215,    -1,    55,   218,   160,   215,    -1,    59,   218,   160,
1199 <     215,    -1,    28,   218,   160,   215,    -1,    35,   218,   160,
1200 <     215,    -1,     6,   218,   160,   215,    -1,    80,   218,   224,
1201 <     215,    -1,    79,   218,    99,   215,    -1,    72,   218,    99,
1202 <     215,    -1,     7,   218,   224,   215,    -1,   163,   218,   224,
1203 <     215,    -1,   162,   218,   224,   215,    -1,    50,   218,    99,
1204 <     215,    -1,    60,   218,   160,   215,    -1,   212,   218,   160,
1205 <     215,    -1,   155,   218,   160,   215,    -1,   158,   218,   160,
1206 <     215,    -1,   159,   218,   160,   215,    -1,   157,   218,   160,
1207 <     215,    -1,   157,   218,   161,   215,    -1,   156,   218,   160,
1208 <     215,    -1,   156,   218,   161,   215,    -1,   110,   218,   224,
1209 <     215,    -1,    12,   218,   224,   215,    -1,   103,   218,   160,
1210 <     215,    -1,   111,   218,   224,   215,    -1,   152,   218,   160,
1211 <     215,    -1,    97,   218,   160,   215,    -1,   204,   218,   160,
1212 <     215,    -1,   105,   218,   160,   215,    -1,    84,   218,   118,
1213 <     215,    -1,    29,   218,    99,   215,    -1,    82,   218,    99,
1214 <     215,    -1,   207,   218,   160,   215,    -1,    30,   218,   118,
1215 <     215,    -1,   202,   218,   118,   215,    -1,   114,   218,   160,
1216 <     215,    -1,    26,   218,   160,   215,    -1,   203,   218,   224,
1217 <     215,    -1,    -1,   107,   467,   218,   468,   215,    -1,   468,
1218 <     219,   469,    -1,   469,    -1,   166,    -1,   169,    -1,   170,
1219 <      -1,   172,    -1,   173,    -1,   176,    -1,    51,    -1,   189,
1220 <      -1,   182,    -1,   185,    -1,   193,    -1,   190,    -1,   175,
1221 <      -1,   183,    -1,   187,    -1,   177,    -1,   199,    -1,   167,
1222 <      -1,   168,    -1,   180,    -1,    -1,   104,   471,   218,   472,
1223 <     215,    -1,   472,   219,   473,    -1,   473,    -1,   166,    -1,
1224 <     169,    -1,   170,    -1,   172,    -1,   173,    -1,   176,    -1,
1225 <     189,    -1,    51,    -1,   182,    -1,   185,    -1,   193,    -1,
1226 <     190,    -1,   175,    -1,   183,    -1,   187,    -1,   177,    -1,
1227 <     199,    -1,   167,    -1,   168,    -1,   180,    -1,    85,   218,
1228 <      99,   215,    -1,    86,   218,    99,   215,    -1,    20,   218,
1229 <      99,   215,    -1,    14,   217,   478,   216,   215,    -1,   478,
1230 <     479,    -1,   479,    -1,   487,    -1,   482,    -1,   483,    -1,
1231 <     484,    -1,   485,    -1,   486,    -1,   488,    -1,   489,    -1,
1232 <     490,    -1,   481,    -1,   491,    -1,   492,    -1,   493,    -1,
1233 <     480,    -1,     1,    -1,    27,   218,   160,   215,    -1,   127,
1234 <     218,   160,   215,    -1,    66,   218,   224,   215,    -1,    67,
1235 <     218,   224,   215,    -1,    75,   218,    99,   215,    -1,    74,
1236 <     218,    99,   215,    -1,   119,   218,   160,   215,    -1,    73,
1237 <     218,    99,   215,    -1,    22,   218,    99,   215,    -1,    21,
1238 <     218,    99,   215,    -1,    95,   218,   160,   215,    -1,    96,
1239 <     218,   160,   215,    -1,   108,   218,    99,   215,    -1,   109,
1240 <     218,   224,   215,    -1,   145,   217,   495,   216,   215,    -1,
1241 <     495,   496,    -1,   496,    -1,   497,    -1,   498,    -1,   500,
1242 <      -1,   501,    -1,   499,    -1,   502,    -1,     1,    -1,    37,
1243 <     218,   160,   215,    -1,    54,   218,   160,   215,    -1,    52,
1244 <     218,   118,   215,    -1,    69,   218,   224,   215,    -1,    51,
1245 <     218,   160,   215,    -1,    53,   218,   160,   215,    -1
1055 >     220,     0,    -1,    -1,   220,   221,    -1,   253,    -1,   259,
1056 >      -1,   273,    -1,   475,    -1,   291,    -1,   308,    -1,   322,
1057 >      -1,   231,    -1,   492,    -1,   337,    -1,   344,    -1,   348,
1058 >      -1,   358,    -1,   367,    -1,   387,    -1,   397,    -1,   403,
1059 >      -1,   417,    -1,   407,    -1,   226,    -1,     1,   214,    -1,
1060 >       1,   215,    -1,    -1,   223,    -1,    99,   222,    -1,    99,
1061 >     137,   222,    -1,    99,   138,   222,    -1,    99,   139,   222,
1062 >      -1,    99,   140,   222,    -1,    99,   141,   222,    -1,    -1,
1063 >     225,    -1,    99,   224,    -1,    99,     9,   224,    -1,    99,
1064 >      10,   224,    -1,    99,    11,   224,    -1,    88,   216,   227,
1065 >     215,   214,    -1,   227,   228,    -1,   228,    -1,   229,    -1,
1066 >     230,    -1,     1,   214,    -1,    87,   217,   117,   214,    -1,
1067 >     113,   217,   117,   214,    -1,   145,   216,   232,   215,   214,
1068 >      -1,   232,   233,    -1,   233,    -1,   244,    -1,   249,    -1,
1069 >     252,    -1,   246,    -1,   247,    -1,   248,    -1,   251,    -1,
1070 >     242,    -1,   241,    -1,   250,    -1,   245,    -1,   240,    -1,
1071 >     234,    -1,   235,    -1,   243,    -1,     1,   214,    -1,   131,
1072 >     217,   236,   214,    -1,   132,   217,   238,   214,    -1,   236,
1073 >     218,   237,    -1,   237,    -1,   133,    -1,   134,    -1,   238,
1074 >     218,   239,    -1,   239,    -1,   133,    -1,   134,    -1,   129,
1075 >     217,   117,   214,    -1,   127,   217,   117,   214,    -1,   130,
1076 >     217,   117,   214,    -1,   170,   217,   117,   214,    -1,    89,
1077 >     217,   117,   214,    -1,   146,   217,   117,   214,    -1,    24,
1078 >     217,   117,   214,    -1,    92,   217,   117,   214,    -1,    91,
1079 >     217,   117,   214,    -1,   208,   217,   117,   214,    -1,   209,
1080 >     217,   117,   214,    -1,   180,   217,    99,   214,    -1,    57,
1081 >     217,   159,   214,    -1,     4,   216,   254,   215,   214,    -1,
1082 >     254,   255,    -1,   255,    -1,   256,    -1,   258,    -1,   257,
1083 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,    31,
1084 >     217,   117,   214,    -1,    24,   217,   117,   214,    -1,    71,
1085 >     216,   260,   215,   214,    -1,   260,   261,    -1,   261,    -1,
1086 >     262,    -1,   263,    -1,     1,   214,    -1,   207,   217,   159,
1087 >     214,    -1,    -1,   264,   213,   216,   265,   215,   214,    -1,
1088 >     265,   266,    -1,   266,    -1,   267,    -1,   269,    -1,   268,
1089 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,   212,
1090 >     217,   225,   214,    -1,   212,   217,   194,   214,    -1,    -1,
1091 >     150,   270,   217,   271,   214,    -1,   271,   218,   272,    -1,
1092 >     272,    -1,   205,    -1,   102,    -1,    40,    -1,   173,    -1,
1093 >      64,    -1,    62,    -1,   172,    -1,    -1,   102,   274,   216,
1094 >     275,   215,   214,    -1,   275,   276,    -1,   276,    -1,   277,
1095 >      -1,   278,    -1,   279,    -1,   283,    -1,   282,    -1,   280,
1096 >      -1,   281,    -1,   287,    -1,     1,   214,    -1,    89,   217,
1097 >     117,   214,    -1,   205,   217,   117,   214,    -1,   112,   217,
1098 >     117,   214,    -1,    32,   217,   159,   214,    -1,   128,   217,
1099 >     117,   214,    -1,    17,   217,   117,   214,    -1,    -1,   191,
1100 >     284,   217,   285,   214,    -1,   285,   218,   286,    -1,   286,
1101 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1102 >      -1,   175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,
1103 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1104 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1105 >      -1,    -1,    36,   288,   217,   289,   214,    -1,   289,   218,
1106 >     290,    -1,   290,    -1,    47,    -1,   124,    -1,    64,    -1,
1107 >     204,    -1,   173,    -1,   193,    -1,   210,    -1,    40,    -1,
1108 >      25,    -1,   199,    -1,   123,    -1,     4,    -1,    94,    -1,
1109 >     182,    -1,   197,    -1,   106,    -1,   125,    -1,   187,    -1,
1110 >      87,    -1,    -1,    17,   292,   216,   293,   215,   214,    -1,
1111 >     293,   294,    -1,   294,    -1,   295,    -1,   305,    -1,   306,
1112 >      -1,   296,    -1,   307,    -1,   297,    -1,   298,    -1,   299,
1113 >      -1,   300,    -1,   301,    -1,   302,    -1,   303,    -1,   304,
1114 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,   115,
1115 >     217,   223,   214,    -1,   101,   217,    99,   214,    -1,    19,
1116 >     217,   223,   214,    -1,    81,   217,    99,   214,    -1,    76,
1117 >     217,    99,   214,    -1,    78,   217,    99,   214,    -1,    77,
1118 >     217,    99,   214,    -1,   142,   217,   225,   214,    -1,   183,
1119 >     217,   225,   214,    -1,    15,   217,    99,   214,    -1,    16,
1120 >     217,    99,   214,    -1,   100,   217,    99,   214,    -1,    -1,
1121 >      70,   309,   216,   314,   215,   214,    -1,    -1,    36,   311,
1122 >     217,   312,   214,    -1,   312,   218,   313,    -1,   313,    -1,
1123 >     190,    -1,    51,    -1,   185,    -1,   314,   315,    -1,   315,
1124 >      -1,   316,    -1,   310,    -1,   320,    -1,   321,    -1,     1,
1125 >     214,    -1,    -1,   116,   217,   318,   317,   214,    -1,   318,
1126 >     218,   319,    -1,   319,    -1,    99,    -1,    99,   163,    99,
1127 >      -1,    61,   217,   117,   214,    -1,    56,   217,   117,   214,
1128 >      -1,    -1,    48,   323,   216,   324,   215,   214,    -1,   324,
1129 >     325,    -1,   325,    -1,   326,    -1,   327,    -1,   328,    -1,
1130 >     330,    -1,   334,    -1,   335,    -1,   336,    -1,   329,    -1,
1131 >       1,   214,    -1,   205,   217,   117,   214,    -1,   112,   217,
1132 >     117,   214,    -1,    17,   217,   117,   214,    -1,    32,   217,
1133 >     159,   214,    -1,    -1,    36,   331,   217,   332,   214,    -1,
1134 >     332,   218,   333,    -1,   333,    -1,   153,    -1,    33,    -1,
1135 >      65,    -1,    49,    -1,    13,    -1,    98,    -1,    43,    -1,
1136 >     136,    -1,    90,    -1,   152,   217,   117,   214,    -1,   121,
1137 >     217,   117,   214,    -1,   120,   217,    99,   214,    -1,    -1,
1138 >     135,   338,   216,   339,   215,   214,    -1,   339,   340,    -1,
1139 >     340,    -1,   341,    -1,   342,    -1,   343,    -1,     1,   214,
1140 >      -1,   119,   217,   117,   214,    -1,    14,   217,   117,   214,
1141 >      -1,    93,   217,   117,   214,    -1,   200,   216,   345,   215,
1142 >     214,    -1,   345,   346,    -1,   346,    -1,   347,    -1,     1,
1143 >      -1,    89,   217,   117,   214,    -1,    -1,   148,   349,   216,
1144 >     350,   215,   214,    -1,   350,   351,    -1,   351,    -1,   352,
1145 >      -1,   353,    -1,   354,    -1,     1,   214,    -1,    89,   217,
1146 >     117,   214,    -1,   205,   217,   117,   214,    -1,    -1,   150,
1147 >     355,   217,   356,   214,    -1,   356,   218,   357,    -1,   357,
1148 >      -1,    64,    -1,   204,    -1,   173,    -1,   193,    -1,   210,
1149 >      -1,   196,    -1,   135,    -1,   195,    -1,   179,    -1,   164,
1150 >      -1,    -1,   149,   359,   216,   360,   215,   214,    -1,   360,
1151 >     361,    -1,   361,    -1,   362,    -1,   363,    -1,     1,   214,
1152 >      -1,    89,   217,   117,   214,    -1,    -1,   150,   364,   217,
1153 >     365,   214,    -1,   365,   218,   366,    -1,   366,    -1,    64,
1154 >      -1,   204,    -1,   173,    -1,   193,    -1,   210,    -1,   196,
1155 >      -1,   135,    -1,   195,    -1,   179,    -1,   164,    -1,    -1,
1156 >      18,   368,   216,   369,   215,   214,    -1,   369,   370,    -1,
1157 >     370,    -1,   371,    -1,   372,    -1,   373,    -1,   374,    -1,
1158 >     375,    -1,   377,    -1,   376,    -1,   386,    -1,   378,    -1,
1159 >     383,    -1,   384,    -1,   385,    -1,   382,    -1,     1,   214,
1160 >      -1,    89,   217,   117,   214,    -1,    56,   217,   117,   214,
1161 >      -1,   208,   217,   117,   214,    -1,   143,   217,   117,   214,
1162 >      -1,     3,   217,   117,   214,    -1,   116,   217,    99,   214,
1163 >      -1,     5,   217,   177,   214,    -1,     5,   217,   178,   214,
1164 >      -1,    -1,    36,   379,   217,   380,   214,    -1,   380,   218,
1165 >     381,    -1,   381,    -1,     8,    -1,   190,    -1,    32,   217,
1166 >     159,   214,    -1,    58,   217,   117,   214,    -1,    68,   217,
1167 >     117,   214,    -1,    17,   217,   117,   214,    -1,   170,   217,
1168 >     117,   214,    -1,    -1,    62,   388,   216,   393,   215,   214,
1169 >      -1,    -1,   150,   390,   217,   391,   214,    -1,   391,   218,
1170 >     392,    -1,   392,    -1,   122,    -1,   393,   394,    -1,   394,
1171 >      -1,   395,    -1,   396,    -1,   389,    -1,     1,    -1,   205,
1172 >     217,   117,   214,    -1,   119,   217,   117,   214,    -1,    -1,
1173 >      23,   398,   216,   399,   215,   214,    -1,   399,   400,    -1,
1174 >     400,    -1,   401,    -1,   402,    -1,     1,    -1,    61,   217,
1175 >     117,   214,    -1,   119,   217,   117,   214,    -1,    34,   216,
1176 >     404,   215,   214,    -1,   404,   405,    -1,   405,    -1,   406,
1177 >      -1,     1,    -1,    61,   217,   117,   214,    -1,    -1,    38,
1178 >     408,   216,   413,   215,   214,    -1,    -1,   150,   410,   217,
1179 >     411,   214,    -1,   411,   218,   412,    -1,   412,    -1,   122,
1180 >      -1,   413,   414,    -1,   414,    -1,   415,    -1,   416,    -1,
1181 >     409,    -1,     1,    -1,    89,   217,   117,   214,    -1,   119,
1182 >     217,   117,   214,    -1,    39,   216,   418,   215,   214,    -1,
1183 >     418,   419,    -1,   419,    -1,   428,    -1,   429,    -1,   431,
1184 >      -1,   432,    -1,   433,    -1,   434,    -1,   435,    -1,   436,
1185 >      -1,   437,    -1,   438,    -1,   427,    -1,   440,    -1,   441,
1186 >      -1,   456,    -1,   443,    -1,   445,    -1,   447,    -1,   446,
1187 >      -1,   450,    -1,   444,    -1,   451,    -1,   452,    -1,   453,
1188 >      -1,   454,    -1,   455,    -1,   468,    -1,   457,    -1,   458,
1189 >      -1,   459,    -1,   464,    -1,   448,    -1,   449,    -1,   474,
1190 >      -1,   472,    -1,   473,    -1,   430,    -1,   463,    -1,   439,
1191 >      -1,   461,    -1,   462,    -1,   426,    -1,   421,    -1,   422,
1192 >      -1,   423,    -1,   424,    -1,   425,    -1,   442,    -1,   420,
1193 >      -1,   460,    -1,     1,    -1,    83,   217,    99,   214,    -1,
1194 >      42,   217,   159,   214,    -1,    41,   217,   223,   214,    -1,
1195 >      44,   217,   223,   214,    -1,    45,   217,    99,   214,    -1,
1196 >      46,   217,    99,   214,    -1,   147,   217,   159,   214,    -1,
1197 >      63,   217,   223,   214,    -1,    55,   217,   159,   214,    -1,
1198 >      59,   217,   159,   214,    -1,    28,   217,   159,   214,    -1,
1199 >      35,   217,   159,   214,    -1,     6,   217,   159,   214,    -1,
1200 >      80,   217,   223,   214,    -1,    79,   217,    99,   214,    -1,
1201 >      72,   217,    99,   214,    -1,     7,   217,   223,   214,    -1,
1202 >     162,   217,   223,   214,    -1,   161,   217,   223,   214,    -1,
1203 >      50,   217,    99,   214,    -1,    60,   217,   159,   214,    -1,
1204 >     211,   217,   159,   214,    -1,   154,   217,   159,   214,    -1,
1205 >     157,   217,   159,   214,    -1,   158,   217,   159,   214,    -1,
1206 >     156,   217,   159,   214,    -1,   156,   217,   160,   214,    -1,
1207 >     155,   217,   159,   214,    -1,   155,   217,   160,   214,    -1,
1208 >     110,   217,   223,   214,    -1,    12,   217,   223,   214,    -1,
1209 >     103,   217,   159,   214,    -1,   111,   217,   223,   214,    -1,
1210 >     151,   217,   159,   214,    -1,    97,   217,   159,   214,    -1,
1211 >     203,   217,   159,   214,    -1,   105,   217,   159,   214,    -1,
1212 >      84,   217,   117,   214,    -1,    29,   217,    99,   214,    -1,
1213 >      82,   217,    99,   214,    -1,   206,   217,   159,   214,    -1,
1214 >      30,   217,   117,   214,    -1,   201,   217,   117,   214,    -1,
1215 >     114,   217,   159,   214,    -1,    26,   217,   159,   214,    -1,
1216 >     202,   217,   223,   214,    -1,    -1,   107,   465,   217,   466,
1217 >     214,    -1,   466,   218,   467,    -1,   467,    -1,   165,    -1,
1218 >     168,    -1,   169,    -1,   171,    -1,   172,    -1,   175,    -1,
1219 >      51,    -1,   188,    -1,   181,    -1,   184,    -1,   192,    -1,
1220 >     189,    -1,   174,    -1,   182,    -1,   186,    -1,   176,    -1,
1221 >     198,    -1,   166,    -1,   167,    -1,   179,    -1,    -1,   104,
1222 >     469,   217,   470,   214,    -1,   470,   218,   471,    -1,   471,
1223 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1224 >      -1,   175,    -1,   188,    -1,    51,    -1,   181,    -1,   184,
1225 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1226 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1227 >      -1,    85,   217,    99,   214,    -1,    86,   217,    99,   214,
1228 >      -1,    20,   217,    99,   214,    -1,    14,   216,   476,   215,
1229 >     214,    -1,   476,   477,    -1,   477,    -1,   485,    -1,   480,
1230 >      -1,   481,    -1,   482,    -1,   483,    -1,   484,    -1,   486,
1231 >      -1,   487,    -1,   488,    -1,   479,    -1,   489,    -1,   490,
1232 >      -1,   491,    -1,   478,    -1,     1,    -1,    27,   217,   159,
1233 >     214,    -1,   126,   217,   159,   214,    -1,    66,   217,   223,
1234 >     214,    -1,    67,   217,   223,   214,    -1,    75,   217,    99,
1235 >     214,    -1,    74,   217,    99,   214,    -1,   118,   217,   159,
1236 >     214,    -1,    73,   217,    99,   214,    -1,    22,   217,    99,
1237 >     214,    -1,    21,   217,    99,   214,    -1,    95,   217,   159,
1238 >     214,    -1,    96,   217,   159,   214,    -1,   108,   217,    99,
1239 >     214,    -1,   109,   217,   223,   214,    -1,   144,   216,   493,
1240 >     215,   214,    -1,   493,   494,    -1,   494,    -1,   495,    -1,
1241 >     496,    -1,   498,    -1,   499,    -1,   497,    -1,   500,    -1,
1242 >       1,    -1,    37,   217,   159,   214,    -1,    54,   217,   159,
1243 >     214,    -1,    52,   217,   117,   214,    -1,    69,   217,   223,
1244 >     214,    -1,    51,   217,   159,   214,    -1,    53,   217,   159,
1245 >     214,    -1
1246   };
1247  
1248   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1249   static const yytype_uint16 yyrline[] =
1250   {
1251 <       0,   330,   330,   331,   334,   335,   336,   337,   338,   339,
1252 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1253 <     350,   351,   352,   353,   354,   355,   359,   359,   360,   364,
1254 <     368,   372,   376,   380,   386,   386,   387,   388,   389,   390,
1255 <     397,   400,   400,   401,   401,   401,   403,   409,   416,   418,
1256 <     418,   419,   419,   420,   420,   421,   421,   422,   422,   423,
1257 <     423,   424,   424,   425,   425,   426,   427,   430,   431,   433,
1258 <     433,   434,   440,   448,   448,   449,   455,   463,   502,   561,
1259 <     589,   597,   612,   627,   636,   650,   659,   687,   717,   740,
1260 <     749,   751,   751,   752,   752,   753,   753,   755,   764,   773,
1261 <     785,   786,   786,   788,   788,   789,   791,   798,   798,   808,
1262 <     809,   811,   811,   812,   812,   814,   819,   822,   828,   827,
1263 <     833,   833,   834,   838,   842,   846,   850,   854,   858,   869,
1264 <     868,   966,   966,   967,   967,   967,   968,   968,   968,   969,
1265 <     969,   969,   971,   980,  1017,  1029,  1040,  1082,  1092,  1091,
1266 <    1097,  1097,  1098,  1102,  1106,  1110,  1114,  1118,  1122,  1126,
1267 <    1130,  1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,
1268 <    1170,  1174,  1181,  1180,  1186,  1186,  1187,  1191,  1195,  1199,
1269 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1270 <    1243,  1247,  1251,  1255,  1259,  1270,  1269,  1319,  1319,  1320,
1271 <    1321,  1321,  1322,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
1272 <    1330,  1331,  1331,  1332,  1334,  1343,  1349,  1355,  1361,  1367,
1273 <    1373,  1379,  1385,  1391,  1397,  1404,  1410,  1416,  1426,  1425,
1274 <    1442,  1441,  1446,  1446,  1447,  1451,  1455,  1463,  1463,  1464,
1275 <    1464,  1464,  1464,  1464,  1466,  1466,  1468,  1468,  1470,  1484,
1276 <    1504,  1513,  1526,  1525,  1594,  1594,  1595,  1595,  1595,  1595,
1277 <    1596,  1596,  1596,  1597,  1597,  1599,  1634,  1647,  1656,  1668,
1278 <    1667,  1671,  1671,  1672,  1676,  1680,  1684,  1688,  1692,  1696,
1279 <    1700,  1704,  1710,  1729,  1739,  1753,  1752,  1768,  1768,  1769,
1280 <    1769,  1769,  1769,  1771,  1780,  1795,  1808,  1810,  1810,  1811,
1281 <    1811,  1813,  1829,  1828,  1844,  1844,  1845,  1845,  1845,  1845,
1282 <    1847,  1856,  1879,  1878,  1884,  1884,  1885,  1889,  1893,  1897,
1283 <    1901,  1905,  1909,  1913,  1917,  1921,  1931,  1930,  1947,  1947,
1284 <    1948,  1948,  1948,  1950,  1957,  1956,  1962,  1962,  1963,  1967,
1285 <    1971,  1975,  1979,  1983,  1987,  1991,  1995,  1999,  2009,  2008,
1286 <    2059,  2059,  2060,  2060,  2060,  2061,  2061,  2062,  2062,  2062,
1287 <    2063,  2063,  2063,  2064,  2064,  2065,  2067,  2076,  2085,  2111,
1288 <    2129,  2147,  2153,  2157,  2166,  2165,  2169,  2169,  2170,  2174,
1289 <    2180,  2191,  2202,  2213,  2222,  2241,  2240,  2306,  2305,  2309,
1290 <    2309,  2310,  2316,  2316,  2317,  2317,  2317,  2317,  2319,  2338,
1291 <    2348,  2347,  2372,  2372,  2373,  2373,  2373,  2375,  2381,  2390,
1292 <    2392,  2392,  2393,  2393,  2395,  2414,  2413,  2461,  2460,  2464,
1293 <    2464,  2465,  2471,  2471,  2472,  2472,  2472,  2472,  2474,  2480,
1294 <    2489,  2492,  2492,  2493,  2493,  2494,  2494,  2495,  2495,  2496,
1295 <    2496,  2497,  2497,  2498,  2499,  2500,  2500,  2501,  2501,  2502,
1296 <    2502,  2503,  2503,  2504,  2504,  2505,  2505,  2506,  2507,  2507,
1297 <    2508,  2508,  2509,  2509,  2510,  2510,  2511,  2511,  2512,  2513,
1298 <    2513,  2514,  2515,  2516,  2516,  2517,  2517,  2518,  2519,  2520,
1299 <    2521,  2521,  2522,  2525,  2530,  2536,  2542,  2548,  2553,  2558,
1300 <    2563,  2568,  2573,  2578,  2583,  2588,  2593,  2598,  2603,  2608,
1301 <    2613,  2618,  2624,  2635,  2640,  2645,  2650,  2655,  2660,  2663,
1302 <    2668,  2671,  2676,  2681,  2686,  2691,  2696,  2701,  2706,  2711,
1303 <    2716,  2727,  2732,  2737,  2742,  2751,  2760,  2765,  2770,  2776,
1304 <    2775,  2780,  2780,  2781,  2784,  2787,  2790,  2793,  2796,  2799,
1305 <    2802,  2805,  2808,  2811,  2814,  2817,  2820,  2823,  2826,  2829,
1306 <    2832,  2835,  2838,  2844,  2843,  2848,  2848,  2849,  2852,  2855,
1307 <    2858,  2861,  2864,  2867,  2870,  2873,  2876,  2879,  2882,  2885,
1308 <    2888,  2891,  2894,  2897,  2900,  2903,  2906,  2911,  2916,  2921,
1309 <    2930,  2933,  2933,  2934,  2935,  2935,  2936,  2936,  2937,  2937,
1310 <    2938,  2939,  2939,  2940,  2941,  2941,  2942,  2942,  2944,  2949,
1311 <    2954,  2959,  2964,  2969,  2974,  2979,  2984,  2989,  2994,  2999,
1312 <    3004,  3009,  3017,  3020,  3020,  3021,  3021,  3022,  3023,  3023,
1313 <    3024,  3025,  3027,  3033,  3039,  3048,  3062,  3068
1251 >       0,   366,   366,   367,   370,   371,   372,   373,   374,   375,
1252 >     376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
1253 >     386,   387,   388,   389,   390,   391,   395,   395,   396,   400,
1254 >     404,   408,   412,   416,   422,   422,   423,   424,   425,   426,
1255 >     433,   436,   436,   437,   437,   437,   439,   445,   452,   454,
1256 >     454,   455,   455,   456,   456,   457,   457,   458,   458,   459,
1257 >     459,   460,   460,   461,   461,   462,   463,   466,   467,   469,
1258 >     469,   470,   476,   484,   484,   485,   491,   499,   538,   597,
1259 >     625,   633,   648,   663,   672,   686,   695,   723,   753,   776,
1260 >     785,   787,   787,   788,   788,   789,   789,   791,   800,   809,
1261 >     821,   822,   822,   824,   824,   825,   827,   834,   834,   844,
1262 >     845,   847,   847,   848,   848,   850,   855,   858,   864,   863,
1263 >     869,   869,   870,   874,   878,   882,   886,   890,   894,   905,
1264 >     904,   983,   983,   984,   984,   984,   985,   985,   985,   986,
1265 >     986,   986,   988,   994,  1000,  1006,  1017,  1023,  1030,  1029,
1266 >    1035,  1035,  1036,  1040,  1044,  1048,  1052,  1056,  1060,  1064,
1267 >    1068,  1072,  1076,  1080,  1084,  1088,  1092,  1096,  1100,  1104,
1268 >    1108,  1112,  1119,  1118,  1124,  1124,  1125,  1129,  1133,  1137,
1269 >    1141,  1145,  1149,  1153,  1157,  1161,  1165,  1169,  1173,  1177,
1270 >    1181,  1185,  1189,  1193,  1197,  1208,  1207,  1253,  1253,  1254,
1271 >    1255,  1255,  1256,  1257,  1258,  1259,  1260,  1261,  1262,  1263,
1272 >    1264,  1264,  1265,  1267,  1276,  1282,  1288,  1294,  1300,  1306,
1273 >    1312,  1318,  1324,  1331,  1337,  1343,  1353,  1352,  1359,  1358,
1274 >    1363,  1363,  1364,  1368,  1372,  1378,  1378,  1379,  1379,  1379,
1275 >    1379,  1379,  1381,  1381,  1383,  1383,  1385,  1399,  1419,  1425,
1276 >    1435,  1434,  1476,  1476,  1477,  1477,  1477,  1477,  1478,  1478,
1277 >    1478,  1479,  1479,  1481,  1487,  1493,  1499,  1511,  1510,  1516,
1278 >    1516,  1517,  1521,  1525,  1529,  1533,  1537,  1541,  1545,  1549,
1279 >    1555,  1569,  1578,  1591,  1590,  1606,  1606,  1607,  1607,  1607,
1280 >    1607,  1609,  1618,  1633,  1646,  1648,  1648,  1649,  1649,  1651,
1281 >    1667,  1666,  1681,  1681,  1682,  1682,  1682,  1682,  1684,  1693,
1282 >    1716,  1715,  1721,  1721,  1722,  1726,  1730,  1734,  1738,  1742,
1283 >    1746,  1750,  1754,  1758,  1768,  1767,  1783,  1783,  1784,  1784,
1284 >    1784,  1786,  1793,  1792,  1798,  1798,  1799,  1803,  1807,  1811,
1285 >    1815,  1819,  1823,  1827,  1831,  1835,  1845,  1844,  1893,  1893,
1286 >    1894,  1894,  1894,  1895,  1895,  1896,  1896,  1896,  1897,  1897,
1287 >    1897,  1898,  1898,  1899,  1901,  1910,  1919,  1945,  1963,  1981,
1288 >    1987,  1991,  2000,  1999,  2003,  2003,  2004,  2008,  2014,  2025,
1289 >    2035,  2046,  2055,  2074,  2073,  2137,  2136,  2140,  2140,  2141,
1290 >    2147,  2147,  2148,  2148,  2148,  2148,  2150,  2169,  2179,  2178,
1291 >    2205,  2205,  2206,  2206,  2206,  2208,  2214,  2223,  2225,  2225,
1292 >    2226,  2226,  2228,  2246,  2245,  2291,  2290,  2296,  2296,  2297,
1293 >    2303,  2303,  2304,  2304,  2304,  2304,  2306,  2312,  2321,  2324,
1294 >    2324,  2325,  2325,  2326,  2326,  2327,  2327,  2328,  2328,  2329,
1295 >    2329,  2330,  2331,  2332,  2332,  2333,  2333,  2334,  2334,  2335,
1296 >    2335,  2336,  2336,  2337,  2337,  2338,  2339,  2339,  2340,  2340,
1297 >    2341,  2341,  2342,  2342,  2343,  2343,  2344,  2345,  2345,  2346,
1298 >    2347,  2348,  2348,  2349,  2349,  2350,  2351,  2352,  2353,  2353,
1299 >    2354,  2357,  2362,  2368,  2374,  2380,  2385,  2390,  2395,  2400,
1300 >    2405,  2410,  2415,  2420,  2425,  2430,  2435,  2440,  2445,  2450,
1301 >    2456,  2467,  2472,  2477,  2482,  2487,  2492,  2495,  2500,  2503,
1302 >    2508,  2513,  2518,  2523,  2528,  2533,  2538,  2543,  2548,  2559,
1303 >    2564,  2569,  2574,  2583,  2592,  2597,  2602,  2608,  2607,  2612,
1304 >    2612,  2613,  2616,  2619,  2622,  2625,  2628,  2631,  2634,  2637,
1305 >    2640,  2643,  2646,  2649,  2652,  2655,  2658,  2661,  2664,  2667,
1306 >    2670,  2676,  2675,  2680,  2680,  2681,  2684,  2687,  2690,  2693,
1307 >    2696,  2699,  2702,  2705,  2708,  2711,  2714,  2717,  2720,  2723,
1308 >    2726,  2729,  2732,  2735,  2738,  2743,  2748,  2753,  2762,  2765,
1309 >    2765,  2766,  2767,  2767,  2768,  2768,  2769,  2769,  2770,  2771,
1310 >    2771,  2772,  2773,  2773,  2774,  2774,  2776,  2781,  2786,  2791,
1311 >    2796,  2801,  2806,  2811,  2816,  2821,  2826,  2831,  2836,  2841,
1312 >    2849,  2852,  2852,  2853,  2853,  2854,  2855,  2855,  2856,  2857,
1313 >    2859,  2865,  2871,  2880,  2894,  2900
1314   };
1315   #endif
1316  
# Line 1311 | Line 1346 | static const char *const yytname[] =
1346    "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1347    "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1348    "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1349 <  "PING_TIME", "PING_WARNING", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON",
1350 <  "REDIRPORT", "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1349 >  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1350 >  "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1351    "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1352    "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1353    "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
# Line 1354 | Line 1389 | static const char *const yytname[] =
1389    "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1390    "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1391    "class_entry", "$@6", "class_items", "class_item", "class_name",
1392 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1393 <  "class_connectfreq", "class_max_number", "class_max_global",
1394 <  "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1392 >  "class_ping_time", "class_number_per_ip", "class_connectfreq",
1393 >  "class_max_number", "class_max_global", "class_max_local",
1394 >  "class_max_ident", "class_sendq", "class_recvq",
1395    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1396    "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1397    "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
# Line 1448 | Line 1483 | static const yytype_uint16 yytoknum[] =
1483       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1484       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1485       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1486 <     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1486 >     465,   466,   467,   468,    59,   125,   123,    61,    44
1487   };
1488   # endif
1489  
1490   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1491   static const yytype_uint16 yyr1[] =
1492   {
1493 <       0,   220,   221,   221,   222,   222,   222,   222,   222,   222,
1494 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1495 <     222,   222,   222,   222,   222,   222,   223,   223,   224,   224,
1496 <     224,   224,   224,   224,   225,   225,   226,   226,   226,   226,
1497 <     227,   228,   228,   229,   229,   229,   230,   231,   232,   233,
1498 <     233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1499 <     234,   234,   234,   234,   234,   234,   234,   235,   236,   237,
1500 <     237,   238,   238,   239,   239,   240,   240,   241,   242,   243,
1501 <     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1502 <     254,   255,   255,   256,   256,   256,   256,   257,   258,   259,
1503 <     260,   261,   261,   262,   262,   262,   263,   265,   264,   266,
1504 <     266,   267,   267,   267,   267,   268,   269,   269,   271,   270,
1505 <     272,   272,   273,   273,   273,   273,   273,   273,   273,   275,
1506 <     274,   276,   276,   277,   277,   277,   277,   277,   277,   277,
1507 <     277,   277,   278,   279,   280,   281,   282,   283,   285,   284,
1508 <     286,   286,   287,   287,   287,   287,   287,   287,   287,   287,
1509 <     287,   287,   287,   287,   287,   287,   287,   287,   287,   287,
1510 <     287,   287,   289,   288,   290,   290,   291,   291,   291,   291,
1511 <     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
1512 <     291,   291,   291,   291,   291,   293,   292,   294,   294,   295,
1513 <     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1514 <     295,   295,   295,   295,   296,   297,   298,   299,   300,   301,
1515 <     302,   303,   304,   305,   306,   307,   308,   309,   311,   310,
1516 <     313,   312,   314,   314,   315,   315,   315,   316,   316,   317,
1517 <     317,   317,   317,   317,   319,   318,   320,   320,   321,   321,
1518 <     322,   323,   325,   324,   326,   326,   327,   327,   327,   327,
1519 <     327,   327,   327,   327,   327,   328,   329,   330,   331,   333,
1520 <     332,   334,   334,   335,   335,   335,   335,   335,   335,   335,
1521 <     335,   335,   336,   337,   338,   340,   339,   341,   341,   342,
1522 <     342,   342,   342,   343,   344,   345,   346,   347,   347,   348,
1523 <     348,   349,   351,   350,   352,   352,   353,   353,   353,   353,
1524 <     354,   355,   357,   356,   358,   358,   359,   359,   359,   359,
1525 <     359,   359,   359,   359,   359,   359,   361,   360,   362,   362,
1526 <     363,   363,   363,   364,   366,   365,   367,   367,   368,   368,
1527 <     368,   368,   368,   368,   368,   368,   368,   368,   370,   369,
1528 <     371,   371,   372,   372,   372,   372,   372,   372,   372,   372,
1529 <     372,   372,   372,   372,   372,   372,   373,   374,   375,   376,
1530 <     377,   378,   379,   379,   381,   380,   382,   382,   383,   383,
1531 <     384,   385,   386,   387,   388,   390,   389,   392,   391,   393,
1532 <     393,   394,   395,   395,   396,   396,   396,   396,   397,   398,
1533 <     400,   399,   401,   401,   402,   402,   402,   403,   404,   405,
1534 <     406,   406,   407,   407,   408,   410,   409,   412,   411,   413,
1535 <     413,   414,   415,   415,   416,   416,   416,   416,   417,   418,
1536 <     419,   420,   420,   421,   421,   421,   421,   421,   421,   421,
1537 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1538 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1539 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1540 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1541 <     421,   421,   421,   422,   423,   424,   425,   426,   427,   428,
1493 >       0,   219,   220,   220,   221,   221,   221,   221,   221,   221,
1494 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
1495 >     221,   221,   221,   221,   221,   221,   222,   222,   223,   223,
1496 >     223,   223,   223,   223,   224,   224,   225,   225,   225,   225,
1497 >     226,   227,   227,   228,   228,   228,   229,   230,   231,   232,
1498 >     232,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1499 >     233,   233,   233,   233,   233,   233,   233,   234,   235,   236,
1500 >     236,   237,   237,   238,   238,   239,   239,   240,   241,   242,
1501 >     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1502 >     253,   254,   254,   255,   255,   255,   255,   256,   257,   258,
1503 >     259,   260,   260,   261,   261,   261,   262,   264,   263,   265,
1504 >     265,   266,   266,   266,   266,   267,   268,   268,   270,   269,
1505 >     271,   271,   272,   272,   272,   272,   272,   272,   272,   274,
1506 >     273,   275,   275,   276,   276,   276,   276,   276,   276,   276,
1507 >     276,   276,   277,   278,   279,   280,   281,   282,   284,   283,
1508 >     285,   285,   286,   286,   286,   286,   286,   286,   286,   286,
1509 >     286,   286,   286,   286,   286,   286,   286,   286,   286,   286,
1510 >     286,   286,   288,   287,   289,   289,   290,   290,   290,   290,
1511 >     290,   290,   290,   290,   290,   290,   290,   290,   290,   290,
1512 >     290,   290,   290,   290,   290,   292,   291,   293,   293,   294,
1513 >     294,   294,   294,   294,   294,   294,   294,   294,   294,   294,
1514 >     294,   294,   294,   295,   296,   297,   298,   299,   300,   301,
1515 >     302,   303,   304,   305,   306,   307,   309,   308,   311,   310,
1516 >     312,   312,   313,   313,   313,   314,   314,   315,   315,   315,
1517 >     315,   315,   317,   316,   318,   318,   319,   319,   320,   321,
1518 >     323,   322,   324,   324,   325,   325,   325,   325,   325,   325,
1519 >     325,   325,   325,   326,   327,   328,   329,   331,   330,   332,
1520 >     332,   333,   333,   333,   333,   333,   333,   333,   333,   333,
1521 >     334,   335,   336,   338,   337,   339,   339,   340,   340,   340,
1522 >     340,   341,   342,   343,   344,   345,   345,   346,   346,   347,
1523 >     349,   348,   350,   350,   351,   351,   351,   351,   352,   353,
1524 >     355,   354,   356,   356,   357,   357,   357,   357,   357,   357,
1525 >     357,   357,   357,   357,   359,   358,   360,   360,   361,   361,
1526 >     361,   362,   364,   363,   365,   365,   366,   366,   366,   366,
1527 >     366,   366,   366,   366,   366,   366,   368,   367,   369,   369,
1528 >     370,   370,   370,   370,   370,   370,   370,   370,   370,   370,
1529 >     370,   370,   370,   370,   371,   372,   373,   374,   375,   376,
1530 >     377,   377,   379,   378,   380,   380,   381,   381,   382,   383,
1531 >     384,   385,   386,   388,   387,   390,   389,   391,   391,   392,
1532 >     393,   393,   394,   394,   394,   394,   395,   396,   398,   397,
1533 >     399,   399,   400,   400,   400,   401,   402,   403,   404,   404,
1534 >     405,   405,   406,   408,   407,   410,   409,   411,   411,   412,
1535 >     413,   413,   414,   414,   414,   414,   415,   416,   417,   418,
1536 >     418,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1537 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1538 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1539 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1540 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1541 >     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
1542       429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1543 <     439,   440,   441,   442,   443,   444,   445,   446,   447,   447,
1544 <     448,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1545 <     457,   458,   459,   460,   461,   462,   463,   464,   465,   467,
1546 <     466,   468,   468,   469,   469,   469,   469,   469,   469,   469,
1547 <     469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
1548 <     469,   469,   469,   471,   470,   472,   472,   473,   473,   473,
1549 <     473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
1550 <     473,   473,   473,   473,   473,   473,   473,   474,   475,   476,
1551 <     477,   478,   478,   479,   479,   479,   479,   479,   479,   479,
1552 <     479,   479,   479,   479,   479,   479,   479,   479,   480,   481,
1543 >     439,   440,   441,   442,   443,   444,   445,   445,   446,   446,
1544 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1545 >     457,   458,   459,   460,   461,   462,   463,   465,   464,   466,
1546 >     466,   467,   467,   467,   467,   467,   467,   467,   467,   467,
1547 >     467,   467,   467,   467,   467,   467,   467,   467,   467,   467,
1548 >     467,   469,   468,   470,   470,   471,   471,   471,   471,   471,
1549 >     471,   471,   471,   471,   471,   471,   471,   471,   471,   471,
1550 >     471,   471,   471,   471,   471,   472,   473,   474,   475,   476,
1551 >     476,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1552 >     477,   477,   477,   477,   477,   477,   478,   479,   480,   481,
1553       482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1554 <     492,   493,   494,   495,   495,   496,   496,   496,   496,   496,
1555 <     496,   496,   497,   498,   499,   500,   501,   502
1554 >     492,   493,   493,   494,   494,   494,   494,   494,   494,   494,
1555 >     495,   496,   497,   498,   499,   500
1556   };
1557  
1558   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1544 | Line 1579 | static const yytype_uint8 yyr2[] =
1579         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1580         1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1581         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1582 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1583 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1584 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1585 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1586 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1587 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1588 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1589 <       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
1590 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1591 <       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
1592 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1582 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1583 >       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1584 >       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1585 >       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1586 >       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1587 >       1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1588 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1589 >       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1590 >       2,     4,     4,     4,     5,     2,     1,     1,     1,     4,
1591 >       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1592 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1593 >       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1594 >       2,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1595         1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1596 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1597 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1598 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1599 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1600 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1601 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1602 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1603 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1604 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1568 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1569 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1596 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1597 >       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1598 >       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
1599 >       4,     4,     4,     0,     6,     0,     5,     3,     1,     1,
1600 >       2,     1,     1,     1,     1,     1,     4,     4,     0,     6,
1601 >       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1602 >       1,     1,     4,     0,     6,     0,     5,     3,     1,     1,
1603 >       2,     1,     1,     1,     1,     1,     4,     4,     5,     2,
1604 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1605         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1606         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1607         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1608         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1609 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1609 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1610         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1611         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1612         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1613 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1579 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1613 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1614         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1581       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1615         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1616 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1617 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1618 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1616 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1617 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1618 >       1,     1,     1,     1,     1,     4,     4,     4,     5,     2,
1619 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1620 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1621         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1622 <       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
1623 <       1,     1,     4,     4,     4,     4,     4,     4
1622 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1623 >       4,     4,     4,     4,     4,     4
1624   };
1625  
1626   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1593 | Line 1628 | static const yytype_uint8 yyr2[] =
1628     means the default is an error.  */
1629   static const yytype_uint16 yydefact[] =
1630   {
1631 <       2,     0,     1,     0,     0,     0,   195,   348,   400,     0,
1632 <     415,     0,   252,   385,   228,     0,     0,   129,   285,     0,
1633 <       0,   302,   326,     0,     3,    23,    11,     4,     5,     6,
1631 >       2,     0,     1,     0,     0,     0,   195,   346,   398,     0,
1632 >     413,     0,   250,   383,   226,     0,     0,   129,   283,     0,
1633 >       0,   300,   324,     0,     3,    23,    11,     4,     5,     6,
1634         8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1635        20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1636         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1637         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1638 <       0,     0,    92,    93,    95,    94,   597,     0,     0,     0,
1638 >       0,     0,    92,    93,    95,    94,   595,     0,     0,     0,
1639         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1640 <       0,     0,   582,   596,   592,   584,   585,   586,   587,   588,
1641 <     583,   589,   590,   591,   593,   594,   595,     0,     0,     0,
1642 <     413,     0,     0,   411,   412,     0,   482,     0,     0,     0,
1640 >       0,     0,   580,   594,   590,   582,   583,   584,   585,   586,
1641 >     581,   587,   588,   589,   591,   592,   593,     0,     0,     0,
1642 >     411,     0,     0,   409,   410,     0,   480,     0,     0,     0,
1643         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1644         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1645 <       0,     0,     0,     0,     0,     0,   553,     0,   529,     0,
1645 >       0,     0,     0,     0,     0,     0,   551,     0,   527,     0,
1646         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1647 <       0,     0,     0,     0,     0,     0,     0,   432,   480,   474,
1648 <     475,   476,   477,   478,   473,   443,   433,   434,   468,   435,
1649 <     436,   437,   438,   439,   440,   441,   442,   470,   444,   445,
1650 <     479,   447,   452,   448,   450,   449,   463,   464,   451,   453,
1651 <     454,   455,   456,   457,   446,   459,   460,   461,   481,   471,
1652 <     472,   469,   462,   458,   466,   467,   465,     0,     0,     0,
1647 >       0,     0,     0,     0,     0,     0,     0,   430,   478,   472,
1648 >     473,   474,   475,   476,   471,   441,   431,   432,   466,   433,
1649 >     434,   435,   436,   437,   438,   439,   440,   468,   442,   443,
1650 >     477,   445,   450,   446,   448,   447,   461,   462,   449,   451,
1651 >     452,   453,   454,   455,   444,   457,   458,   459,   479,   469,
1652 >     470,   467,   460,   456,   464,   465,   463,     0,     0,     0,
1653         0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1654 <       0,    42,    43,    44,     0,     0,   621,     0,     0,     0,
1655 <       0,     0,     0,     0,   614,   615,   616,   619,   617,   618,
1656 <     620,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1654 >       0,    42,    43,    44,     0,     0,   619,     0,     0,     0,
1655 >       0,     0,     0,     0,   612,   613,   614,   617,   615,   616,
1656 >     618,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1657         0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1658        64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1659 <      52,    60,    57,    53,     0,     0,   300,     0,     0,   298,
1660 <     299,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1659 >      52,    60,    57,    53,     0,     0,   298,     0,     0,   296,
1660 >     297,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1661         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1662 <       0,     0,   581,     0,     0,     0,     0,     0,     0,     0,
1663 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   198,
1664 <     199,   202,   203,   205,   206,   207,   208,   209,   210,   211,
1665 <     212,   200,   201,   204,     0,     0,     0,     0,     0,   374,
1666 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   351,
1667 <     352,   353,   354,   355,   356,   358,   357,   360,   364,   361,
1668 <     362,   363,   359,   406,     0,     0,     0,   403,   404,   405,
1669 <       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1635 <     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1662 >       0,     0,   579,     0,     0,     0,     0,     0,     0,     0,
1663 >       0,     0,     0,     0,     0,     0,     0,     0,   198,   199,
1664 >     202,   204,   205,   206,   207,   208,   209,   210,   211,   200,
1665 >     201,   203,     0,     0,     0,     0,     0,   372,     0,     0,
1666 >       0,     0,     0,     0,     0,     0,     0,   349,   350,   351,
1667 >     352,   353,   354,   356,   355,   358,   362,   359,   360,   361,
1668 >     357,   404,     0,     0,     0,   401,   402,   403,     0,     0,
1669 >     408,   425,     0,     0,   415,   424,     0,   421,   422,   423,
1670         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1671         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1672         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1673         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1640       0,     0,   431,     0,     0,     0,   269,     0,     0,     0,
1641       0,     0,     0,   255,   256,   257,   258,   263,   259,   260,
1642     261,   262,   397,     0,   387,     0,   396,     0,   393,   394,
1643     395,     0,   230,     0,     0,     0,   240,     0,   238,   239,
1644     241,   242,   105,     0,     0,   101,     0,    45,     0,     0,
1645       0,    41,     0,     0,     0,   172,     0,     0,     0,   148,
1646       0,     0,   132,   133,   134,   135,   138,   139,   137,   136,
1647     140,     0,     0,     0,     0,     0,   288,   289,   290,   291,
1648       0,     0,     0,     0,     0,     0,     0,   613,    66,     0,
1674         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1675 <       0,     0,     0,     0,     0,    49,     0,     0,   312,     0,
1676 <       0,   305,   306,   307,   308,     0,     0,   334,     0,   329,
1677 <     330,   331,     0,     0,   297,     0,     0,     0,    90,     0,
1678 <       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1679 <       0,     0,     0,     0,   580,   213,     0,     0,     0,     0,
1675 >     429,     0,     0,     0,   267,     0,     0,     0,     0,     0,
1676 >       0,   253,   254,   255,   256,   261,   257,   258,   259,   260,
1677 >     395,     0,   385,     0,   394,     0,   391,   392,   393,     0,
1678 >     228,     0,     0,     0,   238,     0,   236,   237,   239,   240,
1679 >     105,     0,     0,   101,     0,    45,     0,     0,     0,    41,
1680 >       0,     0,     0,   172,     0,     0,     0,   148,     0,     0,
1681 >     132,   133,   134,   135,   138,   139,   137,   136,   140,     0,
1682 >       0,     0,     0,     0,   286,   287,   288,   289,     0,     0,
1683 >       0,     0,     0,     0,     0,   611,    66,     0,     0,     0,
1684         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1685 <       0,   197,   365,     0,     0,     0,     0,     0,     0,     0,
1686 <       0,     0,     0,     0,     0,     0,     0,   350,     0,     0,
1687 <       0,   402,     0,   409,     0,     0,     0,     0,   422,     0,
1685 >       0,     0,     0,    49,     0,     0,   310,     0,     0,   303,
1686 >     304,   305,   306,     0,     0,   332,     0,   327,   328,   329,
1687 >       0,     0,   295,     0,     0,     0,    90,     0,     0,     0,
1688 >      26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1689 >       0,     0,   578,   212,     0,     0,     0,     0,     0,     0,
1690 >       0,     0,     0,     0,     0,     0,     0,     0,   197,   363,
1691         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1692 +       0,     0,     0,     0,   348,     0,     0,     0,   400,     0,
1693 +     407,     0,     0,     0,     0,   420,     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 <     430,   264,     0,     0,     0,     0,     0,     0,     0,     0,
1699 <       0,   254,     0,     0,     0,     0,   392,   243,     0,     0,
1700 <       0,     0,     0,   237,     0,   100,     0,     0,     0,    40,
1701 <     141,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1702 <     131,   292,     0,     0,     0,     0,   287,     0,     0,     0,
1703 <       0,     0,     0,   612,     0,     0,     0,     0,     0,     0,
1704 <       0,     0,    71,    72,     0,    70,    75,    76,     0,    74,
1705 <       0,     0,     0,     0,     0,    48,   309,     0,     0,     0,
1706 <       0,   304,   332,     0,     0,     0,   328,     0,   296,    99,
1707 <      98,    97,   607,   606,   598,    26,    26,    26,    26,    26,
1708 <      28,    27,   600,   601,   605,   603,   602,   608,   609,   610,
1709 <     611,   604,   599,     0,     0,     0,     0,     0,     0,     0,
1676 <       0,     0,     0,     0,     0,    34,     0,     0,   196,     0,
1698 >       0,     0,     0,     0,     0,     0,     0,   428,   262,     0,
1699 >       0,     0,     0,     0,     0,     0,     0,     0,   252,     0,
1700 >       0,     0,     0,   390,   241,     0,     0,     0,     0,     0,
1701 >     235,     0,   100,     0,     0,     0,    40,   141,     0,     0,
1702 >       0,     0,     0,     0,     0,     0,     0,   131,   290,     0,
1703 >       0,     0,     0,   285,     0,     0,     0,     0,     0,     0,
1704 >     610,     0,     0,     0,     0,     0,     0,     0,     0,    71,
1705 >      72,     0,    70,    75,    76,     0,    74,     0,     0,     0,
1706 >       0,     0,    48,   307,     0,     0,     0,     0,   302,   330,
1707 >       0,     0,     0,   326,     0,   294,    99,    98,    97,   605,
1708 >     604,   596,    26,    26,    26,    26,    26,    28,    27,   598,
1709 >     599,   603,   601,   600,   606,   607,   608,   609,   602,   597,
1710         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1711 <       0,     0,     0,   349,     0,     0,   401,   414,     0,     0,
1712 <       0,   416,   495,   499,   513,   579,   527,   493,   521,   524,
1713 <     494,   485,   484,   486,   487,   488,   502,   491,   492,   503,
1714 <     490,   498,   497,   496,   522,   483,   520,   577,   578,   517,
1715 <     514,   564,   557,   574,   575,   558,   559,   560,   561,   569,
1716 <     562,   572,   576,   565,   570,   566,   571,   563,   568,   567,
1717 <     573,     0,   556,   519,   539,   533,   550,   551,   534,   535,
1718 <     536,   537,   545,   538,   548,   552,   541,   546,   542,   547,
1719 <     540,   544,   543,   549,     0,   532,   512,   515,   526,   489,
1720 <     516,   505,   510,   511,   508,   509,   506,   507,   501,   500,
1721 <     525,   528,   518,   523,   504,     0,     0,     0,     0,     0,
1722 <       0,     0,     0,   253,     0,     0,     0,   386,     0,     0,
1723 <       0,   248,   244,   247,   229,   106,     0,     0,   118,     0,
1724 <       0,   110,   111,   113,   112,    46,    47,     0,     0,     0,
1725 <       0,     0,     0,     0,     0,   130,     0,     0,     0,   286,
1726 <     622,   626,   624,   627,   623,   625,    83,    89,    81,    85,
1727 <      84,    78,    77,    79,    67,     0,    68,     0,    82,    80,
1728 <      88,    86,    87,     0,     0,     0,   303,     0,     0,   327,
1729 <     301,    29,    30,    31,    32,    33,   225,   226,   218,   220,
1730 <     222,   221,   219,   214,   227,   217,   215,   216,    34,    34,
1731 <      34,    36,    35,   223,   224,   370,   372,   373,   383,   380,
1732 <     378,   379,     0,   377,   367,   381,   382,   366,   371,   369,
1733 <     384,   368,   407,   408,   428,   429,   421,     0,   420,   554,
1734 <       0,   530,     0,   267,   268,   277,   274,   279,   276,   275,
1735 <     281,   278,   280,   273,     0,   272,   266,   284,   283,   282,
1736 <     265,   399,   391,     0,   390,   398,   235,   236,   234,     0,
1737 <     233,   251,   250,     0,     0,     0,   114,     0,     0,     0,
1738 <       0,   109,   147,   145,   187,   184,   183,   176,   178,   194,
1739 <     188,   191,   186,   177,   192,   180,   189,   193,   181,   190,
1740 <     185,   179,   182,     0,   175,   142,   144,   146,   158,   152,
1741 <     169,   170,   153,   154,   155,   156,   164,   157,   167,   171,
1742 <     160,   165,   161,   166,   159,   163,   162,   168,     0,   151,
1743 <     143,   294,   295,   293,    69,    73,   310,   316,   322,   325,
1744 <     318,   324,   319,   323,   321,   317,   320,     0,   315,   311,
1745 <     333,   338,   344,   347,   340,   346,   341,   345,   343,   339,
1746 <     342,     0,   337,    37,    38,    39,   375,     0,   418,     0,
1747 <     555,   531,   270,     0,   388,     0,   231,     0,   249,   246,
1748 <     245,     0,     0,     0,     0,   108,   173,     0,   149,     0,
1749 <     313,     0,   335,     0,   376,   419,   271,   389,   232,   115,
1750 <     124,   127,   126,   123,   128,   125,   122,     0,   121,   117,
1751 <     116,   174,   150,   314,   336,   119,     0,   120
1711 >       0,    34,     0,     0,   196,     0,     0,     0,     0,     0,
1712 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   347,
1713 >       0,     0,   399,   412,     0,     0,     0,   414,   493,   497,
1714 >     511,   577,   525,   491,   519,   522,   492,   483,   482,   484,
1715 >     485,   486,   500,   489,   490,   501,   488,   496,   495,   494,
1716 >     520,   481,   518,   575,   576,   515,   512,   562,   555,   572,
1717 >     573,   556,   557,   558,   559,   567,   560,   570,   574,   563,
1718 >     568,   564,   569,   561,   566,   565,   571,     0,   554,   517,
1719 >     537,   531,   548,   549,   532,   533,   534,   535,   543,   536,
1720 >     546,   550,   539,   544,   540,   545,   538,   542,   541,   547,
1721 >       0,   530,   510,   513,   524,   487,   514,   503,   508,   509,
1722 >     506,   507,   504,   505,   499,   498,   523,   526,   516,   521,
1723 >     502,     0,     0,     0,     0,     0,     0,     0,     0,   251,
1724 >       0,     0,     0,   384,     0,     0,     0,   246,   242,   245,
1725 >     227,   106,     0,     0,   118,     0,     0,   110,   111,   113,
1726 >     112,    46,    47,     0,     0,     0,     0,     0,     0,     0,
1727 >       0,   130,     0,     0,     0,   284,   620,   624,   622,   625,
1728 >     621,   623,    83,    89,    81,    85,    84,    78,    77,    79,
1729 >      67,     0,    68,     0,    82,    80,    88,    86,    87,     0,
1730 >       0,     0,   301,     0,     0,   325,   299,    29,    30,    31,
1731 >      32,    33,   223,   224,   216,   218,   220,   219,   217,   213,
1732 >     225,   215,   214,    34,    34,    34,    36,    35,   221,   222,
1733 >     368,   370,   371,   381,   378,   376,   377,     0,   375,   365,
1734 >     379,   380,   364,   369,   367,   382,   366,   405,   406,   426,
1735 >     427,   419,     0,   418,   552,     0,   528,     0,   265,   266,
1736 >     275,   272,   277,   274,   273,   279,   276,   278,   271,     0,
1737 >     270,   264,   282,   281,   280,   263,   397,   389,     0,   388,
1738 >     396,   233,   234,   232,     0,   231,   249,   248,     0,     0,
1739 >       0,   114,     0,     0,     0,     0,   109,   147,   145,   187,
1740 >     184,   183,   176,   178,   194,   188,   191,   186,   177,   192,
1741 >     180,   189,   193,   181,   190,   185,   179,   182,     0,   175,
1742 >     142,   144,   146,   158,   152,   169,   170,   153,   154,   155,
1743 >     156,   164,   157,   167,   171,   160,   165,   161,   166,   159,
1744 >     163,   162,   168,     0,   151,   143,   292,   293,   291,    69,
1745 >      73,   308,   314,   320,   323,   316,   322,   317,   321,   319,
1746 >     315,   318,     0,   313,   309,   331,   336,   342,   345,   338,
1747 >     344,   339,   343,   341,   337,   340,     0,   335,    37,    38,
1748 >      39,   373,     0,   416,     0,   553,   529,   268,     0,   386,
1749 >       0,   229,     0,   247,   244,   243,     0,     0,     0,     0,
1750 >     108,   173,     0,   149,     0,   311,     0,   333,     0,   374,
1751 >     417,   269,   387,   230,   115,   124,   127,   126,   123,   128,
1752 >     125,   122,     0,   121,   117,   116,   174,   150,   312,   334,
1753 >     119,     0,   120
1754   };
1755  
1756   /* YYDEFGOTO[NTERM-NUM].  */
1757   static const yytype_int16 yydefgoto[] =
1758   {
1759 <      -1,     1,    24,   780,   781,  1021,  1022,    25,   230,   231,
1760 <     232,   233,    26,   267,   268,   269,   270,   744,   745,   748,
1761 <     749,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1759 >      -1,     1,    24,   777,   778,  1016,  1017,    25,   230,   231,
1760 >     232,   233,    26,   267,   268,   269,   270,   741,   742,   745,
1761 >     746,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1762       280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1763 <      28,   222,   223,   224,   225,   226,   950,   951,   952,   953,
1764 <     954,  1088,  1217,  1218,    29,    60,   501,   502,   503,   504,
1765 <     505,   506,   507,   508,   509,   717,  1138,  1139,   510,   713,
1766 <    1113,  1114,    30,    49,   328,   329,   330,   331,   332,   333,
1767 <     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
1768 <      31,    57,   476,   698,  1079,  1080,   477,   478,   479,  1085,
1769 <     942,   943,   480,   481,    32,    55,   452,   453,   454,   455,
1770 <     456,   457,   458,   684,  1064,  1065,   459,   460,   461,    33,
1771 <      61,   515,   516,   517,   518,   519,    34,   288,   289,   290,
1772 <      35,    64,   550,   551,   552,   553,   554,   758,  1157,  1158,
1773 <      36,    65,   558,   559,   560,   561,   764,  1171,  1172,    37,
1774 <      50,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1775 <     367,   607,  1032,  1033,   368,   369,   370,   371,   372,    38,
1776 <      56,   466,   693,  1073,  1074,   467,   468,   469,   470,    39,
1777 <      51,   376,   377,   378,   379,    40,   112,   113,   114,    41,
1778 <      53,   387,   626,  1047,  1048,   388,   389,   390,   391,    42,
1779 <     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1780 <     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1781 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1782 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1783 <     206,   207,   208,   209,   210,   211,   212,   423,   904,   905,
1784 <     213,   421,   881,   882,   214,   215,   216,    43,    91,    92,
1785 <      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1786 <     103,   104,   105,   106,    44,   243,   244,   245,   246,   247,
1787 <     248,   249,   250
1763 >      28,   222,   223,   224,   225,   226,   946,   947,   948,   949,
1764 >     950,  1083,  1212,  1213,    29,    60,   499,   500,   501,   502,
1765 >     503,   504,   505,   506,   507,   714,  1133,  1134,   508,   710,
1766 >    1108,  1109,    30,    49,   327,   328,   329,   330,   331,   332,
1767 >     333,   334,   335,   336,   337,   338,   339,   340,   341,    31,
1768 >      57,   474,   695,  1074,  1075,   475,   476,   477,  1080,   938,
1769 >     939,   478,   479,    32,    55,   450,   451,   452,   453,   454,
1770 >     455,   456,   681,  1059,  1060,   457,   458,   459,    33,    61,
1771 >     513,   514,   515,   516,   517,    34,   288,   289,   290,    35,
1772 >      64,   548,   549,   550,   551,   552,   755,  1152,  1153,    36,
1773 >      65,   556,   557,   558,   559,   761,  1166,  1167,    37,    50,
1774 >     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
1775 >     604,  1027,  1028,   366,   367,   368,   369,   370,    38,    56,
1776 >     464,   690,  1068,  1069,   465,   466,   467,   468,    39,    51,
1777 >     374,   375,   376,   377,    40,   112,   113,   114,    41,    53,
1778 >     385,   623,  1042,  1043,   386,   387,   388,   389,    42,   166,
1779 >     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1780 >     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1781 >     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1782 >     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1783 >     207,   208,   209,   210,   211,   212,   421,   900,   901,   213,
1784 >     419,   877,   878,   214,   215,   216,    43,    91,    92,    93,
1785 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1786 >     104,   105,   106,    44,   243,   244,   245,   246,   247,   248,
1787 >     249,   250
1788   };
1789  
1790   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1791     STATE-NUM.  */
1792 < #define YYPACT_NINF -744
1792 > #define YYPACT_NINF -745
1793   static const yytype_int16 yypact[] =
1794   {
1795 <    -744,   610,  -744,  -209,  -187,  -179,  -744,  -744,  -744,  -176,
1796 <    -744,  -171,  -744,  -744,  -744,  -166,  -164,  -744,  -744,  -139,
1797 <    -136,  -744,  -744,  -131,  -744,  -744,  -744,  -744,  -744,  -744,
1798 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1799 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    61,   807,  -126,
1800 <    -104,   -84,    16,   -79,   382,   -77,   -63,   -60,     7,    21,
1801 <     -49,   -40,   638,   381,   -26,    52,    25,  -152,    62,    85,
1802 <      86,    18,  -744,  -744,  -744,  -744,  -744,    88,    89,    93,
1803 <      94,    96,   101,   108,   112,   118,   119,   125,   127,   132,
1804 <     133,   162,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1805 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   531,   499,   266,
1806 <    -744,   135,    28,  -744,  -744,    11,  -744,   142,   143,   145,
1807 <     147,   148,   150,   153,   163,   166,   167,   169,   173,   174,
1808 <     175,   177,   178,   180,   182,   183,   185,   191,   197,   200,
1809 <     201,   202,   204,   211,   212,   215,  -744,   216,  -744,   217,
1810 <     218,   221,   222,   225,   226,   229,   234,   235,   237,   238,
1811 <     239,   242,   253,   256,   257,   262,    38,  -744,  -744,  -744,
1812 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1813 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1814 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1815 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1816 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   337,    24,   259,
1817 <      73,   263,     4,  -744,  -744,  -744,   126,   131,   264,   270,
1818 <      59,  -744,  -744,  -744,   389,   209,  -744,   276,   279,   280,
1819 <     281,   285,   287,     3,  -744,  -744,  -744,  -744,  -744,  -744,
1820 <    -744,   149,   288,   289,   290,   292,   299,   301,   302,   303,
1821 <     304,   305,   307,   308,   315,   324,   330,    75,  -744,  -744,
1822 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1823 <    -744,  -744,  -744,  -744,   208,    30,  -744,   331,    15,  -744,
1824 <    -744,  -744,   107,   254,   359,   165,  -744,   385,   396,   367,
1825 <     454,   454,   455,   457,   461,   399,   401,   464,   454,   404,
1826 <     405,   351,  -744,   358,   356,   360,   361,   362,   364,   365,
1827 <     369,   374,   375,   379,   383,   386,   388,   395,   232,  -744,
1828 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1829 <    -744,  -744,  -744,  -744,   384,   397,   400,   403,   408,  -744,
1830 <     411,   412,   420,   423,   424,   427,   433,   434,   260,  -744,
1831 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1832 <    -744,  -744,  -744,  -744,   435,   437,     8,  -744,  -744,  -744,
1833 <     458,   407,  -744,  -744,   441,   442,  -744,  -744,    36,  -744,
1834 <    -744,  -744,   417,   454,   454,   501,   443,   459,   524,   543,
1835 <     502,   454,   503,   454,   565,   567,   568,   508,   509,   513,
1836 <     454,   577,   578,   454,   580,   583,   566,   584,   587,   527,
1837 <     528,   475,   535,   478,   454,   454,   537,   540,   541,   542,
1838 <    -146,  -133,   544,   546,   454,   454,   585,   454,   550,   553,
1839 <     554,   510,  -744,   515,   514,   517,  -744,   519,   521,   525,
1840 <     529,   530,    58,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1841 <    -744,  -744,  -744,   533,  -744,   534,  -744,    10,  -744,  -744,
1842 <    -744,   538,  -744,   536,   539,   545,  -744,   115,  -744,  -744,
1843 <    -744,  -744,  -744,   582,   547,  -744,   532,  -744,   640,   643,
1844 <     549,  -744,   555,   559,   560,  -744,   562,   569,   572,  -744,
1845 <     573,    70,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1846 <    -744,   558,   588,   595,   597,   146,  -744,  -744,  -744,  -744,
1847 <     623,   625,   687,   658,   659,   454,   606,  -744,  -744,   704,
1848 <     663,   706,   707,   709,   713,   714,   715,    79,   159,   717,
1849 <     718,   646,   719,   720,   626,  -744,   628,   622,  -744,   624,
1850 <     128,  -744,  -744,  -744,  -744,   629,   630,  -744,    22,  -744,
1851 <    -744,  -744,   728,   632,  -744,   634,   635,   636,  -744,   637,
1852 <     639,   641,   430,   642,   645,   648,   649,   650,   651,   652,
1853 <     653,   654,   656,   657,  -744,  -744,   754,   756,   454,   759,
1854 <     776,   778,   779,   761,   784,   785,   454,   454,   786,   786,
1855 <     671,  -744,  -744,   769,   122,   770,   729,   672,   773,   774,
1856 <     775,   777,   795,   780,   781,   782,   681,  -744,   783,   787,
1857 <     682,  -744,   689,  -744,   788,   789,   690,   694,  -744,   695,
1858 <     696,   697,   698,   699,   702,   703,   705,   708,   710,   712,
1859 <     716,   721,   722,   723,   724,   725,   726,   727,   730,   731,
1860 <     732,   733,   734,   735,   736,   737,   738,   739,   551,   740,
1861 <     599,   741,   742,   743,   744,   745,   746,   747,   748,   749,
1862 <     750,   751,   752,   753,   755,   757,   758,   760,   762,   763,
1863 <    -744,  -744,   801,   764,   711,   803,   823,   810,   812,   814,
1864 <     765,  -744,   815,   766,   817,   767,  -744,  -744,   768,   825,
1865 <     826,   870,   772,  -744,   790,  -744,   184,   791,   792,  -744,
1866 <    -744,   853,   816,   771,   856,   861,   863,   793,   865,   794,
1867 <    -744,  -744,   867,   872,   873,   797,  -744,   798,   799,   800,
1868 <     802,   804,   805,  -744,   806,   808,   809,   811,   813,   818,
1869 <     819,   820,  -744,  -744,  -195,  -744,  -744,  -744,  -172,  -744,
1870 <     821,   822,   824,   827,   828,  -744,  -744,   874,   829,   875,
1871 <     830,  -744,  -744,   876,   831,   833,  -744,   835,  -744,  -744,
1872 <    -744,  -744,  -744,  -744,  -744,   454,   454,   454,   454,   454,
1873 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1874 <    -744,  -744,  -744,   836,   837,   838,   839,   840,   841,   842,
1875 <     843,   844,   845,   846,   847,   314,   848,   849,  -744,   850,
1876 <     851,   852,   854,   855,    13,   857,   858,   859,   860,   862,
1877 <     864,   866,   868,  -744,   869,   871,  -744,  -744,   877,   878,
1878 <     879,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1879 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1880 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1881 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1882 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1883 <    -744,  -167,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1884 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1885 <    -744,  -744,  -744,  -744,  -154,  -744,  -744,  -744,  -744,  -744,
1886 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1887 <    -744,  -744,  -744,  -744,  -744,   880,   881,   309,   882,   883,
1888 <     884,   885,   886,  -744,   887,   893,   888,  -744,   -33,   889,
1889 <     890,   832,   891,  -744,  -744,  -744,   892,   894,  -744,   895,
1890 <     154,  -744,  -744,  -744,  -744,  -744,  -744,   896,   899,   511,
1891 <     900,   901,   902,   627,   903,  -744,   904,   905,   906,  -744,
1892 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1893 <    -744,  -744,  -744,  -744,  -744,    79,  -744,   159,  -744,  -744,
1894 <    -744,  -744,  -744,   907,   460,   908,  -744,   909,   665,  -744,
1895 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1896 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,   786,   786,
1897 <     786,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1898 <    -744,  -744,  -145,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1899 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   -50,  -744,  -744,
1900 <     551,  -744,   599,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1901 <    -744,  -744,  -744,  -744,   -41,  -744,  -744,  -744,  -744,  -744,
1902 <    -744,  -744,  -744,   -27,  -744,  -744,  -744,  -744,  -744,   -17,
1903 <    -744,  -744,  -744,   898,   870,   910,  -744,   911,   912,   -86,
1904 <     913,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1905 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1906 <    -744,  -744,  -744,    34,  -744,  -744,  -744,  -744,  -744,  -744,
1907 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1908 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    40,  -744,
1909 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1910 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    53,  -744,  -744,
1911 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1912 <    -744,    63,  -744,  -744,  -744,  -744,  -744,    13,  -744,   879,
1913 <    -744,  -744,  -744,   309,  -744,   893,  -744,   -33,  -744,  -744,
1914 <    -744,   914,   277,   916,   917,  -744,  -744,   511,  -744,   627,
1915 <    -744,   460,  -744,   665,  -744,  -744,  -744,  -744,  -744,  -744,
1916 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    68,  -744,  -744,
1917 <    -744,  -744,  -744,  -744,  -744,  -744,   277,  -744
1795 >    -745,   615,  -745,  -209,  -208,  -192,  -745,  -745,  -745,  -190,
1796 >    -745,  -183,  -745,  -745,  -745,  -169,  -167,  -745,  -745,  -144,
1797 >    -137,  -745,  -745,  -132,  -745,  -745,  -745,  -745,  -745,  -745,
1798 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1799 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   292,   784,  -111,
1800 >    -102,   -93,    22,   -90,   389,   -80,   -74,   -72,    50,    15,
1801 >     -65,   -60,   299,   388,   -54,   -34,    18,  -176,   -58,   -32,
1802 >     -22,     3,  -745,  -745,  -745,  -745,  -745,   -15,    -9,    26,
1803 >      38,    67,    69,    75,    80,    82,    88,    90,    93,   100,
1804 >     107,   195,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1805 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   569,   505,    13,
1806 >    -745,   115,    12,  -745,  -745,   258,  -745,   117,   122,   129,
1807 >     131,   140,   141,   144,   145,   146,   154,   155,   156,   159,
1808 >     161,   165,   166,   168,   170,   174,   175,   176,   177,   180,
1809 >     190,   194,   197,   199,   203,   204,  -745,   205,  -745,   206,
1810 >     209,   211,   212,   215,   219,   221,   224,   225,   229,   230,
1811 >     233,   234,   236,   237,   239,   240,    36,  -745,  -745,  -745,
1812 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1813 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1814 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1815 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1816 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   343,    60,   284,
1817 >    -157,   241,    43,  -745,  -745,  -745,    66,   113,   242,   245,
1818 >      99,  -745,  -745,  -745,   348,    62,  -745,   249,   253,   264,
1819 >     266,   267,   271,    16,  -745,  -745,  -745,  -745,  -745,  -745,
1820 >    -745,   268,   273,   274,   280,   281,   285,   287,   290,   294,
1821 >     295,   296,   297,   306,   307,   308,   309,    74,  -745,  -745,
1822 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1823 >    -745,  -745,  -745,  -745,   220,   277,  -745,   310,    20,  -745,
1824 >    -745,  -745,   252,   370,   384,   302,  -745,   410,   430,   371,
1825 >     432,   432,   433,   434,   436,   379,   390,   453,   432,   395,
1826 >     396,   342,  -745,   345,   349,   350,   352,   354,   355,   357,
1827 >     360,   361,   362,   363,   365,   366,   369,   152,  -745,  -745,
1828 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1829 >    -745,  -745,   346,   372,   381,   385,   386,  -745,   392,   393,
1830 >     397,   400,   401,   405,   407,   408,   270,  -745,  -745,  -745,
1831 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1832 >    -745,  -745,   409,   413,    51,  -745,  -745,  -745,   445,   351,
1833 >    -745,  -745,   414,   417,  -745,  -745,     8,  -745,  -745,  -745,
1834 >     428,   432,   432,   502,   446,   447,   508,   495,   454,   432,
1835 >     461,   432,   528,   536,   537,   480,   485,   493,   432,   556,
1836 >     557,   432,   562,   563,   548,   567,   568,   512,   513,   456,
1837 >     519,   459,   432,   432,   521,   522,   523,   524,    14,    54,
1838 >     530,   532,   432,   432,   570,   432,   533,   535,   538,   474,
1839 >    -745,   481,   479,   483,  -745,   484,   488,   492,   498,   501,
1840 >     128,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1841 >    -745,   503,  -745,   506,  -745,    19,  -745,  -745,  -745,   514,
1842 >    -745,   515,   518,   520,  -745,   116,  -745,  -745,  -745,  -745,
1843 >    -745,   539,   516,  -745,   496,  -745,   602,   612,   526,  -745,
1844 >     527,   531,   534,  -745,   540,   544,   545,  -745,   553,   183,
1845 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   541,
1846 >     560,   561,   573,    11,  -745,  -745,  -745,  -745,   572,   575,
1847 >     621,   584,   585,   432,   542,  -745,  -745,   629,   586,   630,
1848 >     632,   636,   637,   663,   670,   112,   196,   684,   691,   674,
1849 >     696,   701,   605,  -745,   619,   617,  -745,   622,    59,  -745,
1850 >    -745,  -745,  -745,   627,   626,  -745,   110,  -745,  -745,  -745,
1851 >     719,   633,  -745,   635,   638,   639,  -745,   641,   642,   646,
1852 >     265,   647,   648,   649,   650,   651,   652,   653,   654,   655,
1853 >     657,   658,  -745,  -745,   771,   774,   432,   775,   776,   777,
1854 >     778,   761,   782,   783,   432,   785,   785,   669,  -745,  -745,
1855 >     768,   164,   769,   728,   671,   772,   773,   779,   780,   792,
1856 >     781,   786,   787,   680,  -745,   788,   789,   681,  -745,   685,
1857 >    -745,   790,   791,   683,   687,  -745,   695,   697,   698,   699,
1858 >     700,   702,   703,   704,   705,   706,   707,   708,   709,   710,
1859 >     711,   712,   713,   714,   715,   716,   717,   718,   720,   721,
1860 >     722,   723,   724,   725,   726,   600,   727,   628,   729,   730,
1861 >     731,   732,   733,   734,   735,   736,   737,   738,   739,   740,
1862 >     741,   742,   743,   744,   745,   746,   747,  -745,  -745,   798,
1863 >     803,   748,   816,   843,   846,   847,   849,   753,  -745,   851,
1864 >     752,   853,   757,  -745,  -745,   755,   856,   857,   876,   762,
1865 >    -745,   763,  -745,   187,   764,   765,  -745,  -745,   863,   822,
1866 >     766,   865,   867,   868,   770,   869,   793,  -745,  -745,   871,
1867 >     872,   873,   794,  -745,   795,   796,   797,   799,   800,   801,
1868 >    -745,   802,   804,   805,   806,   807,   808,   809,   810,  -745,
1869 >    -745,  -196,  -745,  -745,  -745,  -179,  -745,   811,   812,   813,
1870 >     814,   815,  -745,  -745,   874,   817,   875,   818,  -745,  -745,
1871 >     877,   819,   821,  -745,   823,  -745,  -745,  -745,  -745,  -745,
1872 >    -745,  -745,   432,   432,   432,   432,   432,  -745,  -745,  -745,
1873 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1874 >     824,   825,   826,   827,   828,   829,   830,   831,   832,   833,
1875 >     834,    79,   835,   836,  -745,   837,   838,   839,   840,   841,
1876 >      -1,   842,   844,   845,   848,   850,   852,   854,   855,  -745,
1877 >     858,   859,  -745,  -745,   860,   861,   878,  -745,  -745,  -745,
1878 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1879 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1880 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1881 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1882 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -178,  -745,  -745,
1883 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1884 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1885 >    -173,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1886 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1887 >    -745,   862,   864,   693,   866,   870,   879,   880,   881,  -745,
1888 >     882,   883,   884,  -745,   -36,   885,   886,   894,   887,  -745,
1889 >    -745,  -745,   888,   889,  -745,   890,    86,  -745,  -745,  -745,
1890 >    -745,  -745,  -745,   895,   896,   517,   897,   898,   899,   656,
1891 >     900,  -745,   901,   902,   903,  -745,  -745,  -745,  -745,  -745,
1892 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1893 >    -745,   112,  -745,   196,  -745,  -745,  -745,  -745,  -745,   904,
1894 >     464,   905,  -745,   906,   529,  -745,  -745,  -745,  -745,  -745,
1895 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1896 >    -745,  -745,  -745,   785,   785,   785,  -745,  -745,  -745,  -745,
1897 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -168,  -745,  -745,
1898 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1899 >    -745,  -745,  -160,  -745,  -745,   600,  -745,   628,  -745,  -745,
1900 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -159,
1901 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   -57,  -745,
1902 >    -745,  -745,  -745,  -745,   -38,  -745,  -745,  -745,   907,   876,
1903 >     908,  -745,   913,   891,   -88,   909,  -745,  -745,  -745,  -745,
1904 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1905 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,    -7,  -745,
1906 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1907 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1908 >    -745,  -745,  -745,    63,  -745,  -745,  -745,  -745,  -745,  -745,
1909 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1910 >    -745,  -745,    94,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1911 >    -745,  -745,  -745,  -745,  -745,  -745,   101,  -745,  -745,  -745,
1912 >    -745,  -745,    -1,  -745,   878,  -745,  -745,  -745,   693,  -745,
1913 >     883,  -745,   -36,  -745,  -745,  -745,   910,   403,   911,   912,
1914 >    -745,  -745,   517,  -745,   656,  -745,   464,  -745,   529,  -745,
1915 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1916 >    -745,  -745,   104,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1917 >    -745,   403,  -745
1918   };
1919  
1920   /* YYPGOTO[NTERM-NUM].  */
1921   static const yytype_int16 yypgoto[] =
1922   {
1923 <    -744,  -744,  -744,  -743,  -298,  -663,  -598,  -744,  -744,   897,
1924 <    -744,  -744,  -744,  -744,   915,  -744,  -744,  -744,    14,  -744,
1925 <       1,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1926 <    -744,  -744,  -744,  -744,  -744,  -744,   924,  -744,  -744,  -744,
1927 <    -744,  -744,   796,  -744,  -744,  -744,  -744,    48,  -744,  -744,
1928 <    -744,  -744,  -744,  -226,  -744,  -744,  -744,   500,  -744,  -744,
1929 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -196,  -744,  -744,
1930 <    -744,  -193,  -744,  -744,  -744,   680,  -744,  -744,  -744,  -744,
1931 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1932 <    -744,  -744,  -744,  -744,  -744,  -177,  -744,   548,  -744,  -744,
1933 <    -744,   -62,  -744,  -744,  -744,  -744,  -744,   575,  -744,  -744,
1934 <    -744,  -744,  -744,  -744,  -744,  -153,  -744,  -744,  -744,  -744,
1935 <    -744,  -744,   516,  -744,  -744,  -744,  -744,  -744,   918,  -744,
1936 <    -744,  -744,  -744,   482,  -744,  -744,  -744,  -744,  -744,  -163,
1937 <    -744,  -744,  -744,   483,  -744,  -744,  -744,  -744,  -159,  -744,
1938 <    -744,  -744,   688,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1939 <    -744,  -744,  -744,  -137,  -744,  -744,  -744,  -744,  -744,  -744,
1940 <    -744,  -744,  -744,  -744,  -117,  -744,   604,  -744,  -744,  -744,
1941 <    -744,  -744,   700,  -744,  -744,  -744,  -744,   966,  -744,  -744,
1942 <    -744,  -744,  -744,  -744,   -99,  -744,   701,  -744,  -744,  -744,
1943 <    -744,   919,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1944 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1945 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1946 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1947 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    35,
1948 <    -744,  -744,  -744,    32,  -744,  -744,  -744,  -744,  -744,   997,
1949 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1950 <    -744,  -744,  -744,  -744,  -744,  -744,   920,  -744,  -744,  -744,
1951 <    -744,  -744,  -744
1923 >    -745,  -745,  -745,  -744,  -298,  -659,  -595,  -745,  -745,   767,
1924 >    -745,  -745,  -745,  -745,   750,  -745,  -745,  -745,    17,  -745,
1925 >      10,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1926 >    -745,  -745,  -745,  -745,  -745,  -745,   924,  -745,  -745,  -745,
1927 >    -745,  -745,   914,  -745,  -745,  -745,  -745,    53,  -745,  -745,
1928 >    -745,  -745,  -745,  -225,  -745,  -745,  -745,   504,  -745,  -745,
1929 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -193,  -745,  -745,
1930 >    -745,  -188,  -745,  -745,  -745,   675,  -745,  -745,  -745,  -745,
1931 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1932 >    -745,  -745,  -745,  -745,  -170,  -745,   558,  -745,  -745,  -745,
1933 >     -48,  -745,  -745,  -745,  -745,  -745,   610,  -745,  -745,  -745,
1934 >    -745,  -745,  -745,  -745,  -117,  -745,  -745,  -745,  -745,  -745,
1935 >    -745,   550,  -745,  -745,  -745,  -745,  -745,   892,  -745,  -745,
1936 >    -745,  -745,   543,  -745,  -745,  -745,  -745,  -745,  -131,  -745,
1937 >    -745,  -745,   511,  -745,  -745,  -745,  -745,  -128,  -745,  -745,
1938 >    -745,   820,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1939 >    -745,  -745,  -101,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1940 >    -745,  -745,  -745,  -103,  -745,   614,  -745,  -745,  -745,  -745,
1941 >    -745,   754,  -745,  -745,  -745,  -745,   969,  -745,  -745,  -745,
1942 >    -745,  -745,  -745,   -92,  -745,   749,  -745,  -745,  -745,  -745,
1943 >     917,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1944 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1945 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1946 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1947 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,    39,  -745,
1948 >    -745,  -745,    40,  -745,  -745,  -745,  -745,  -745,   996,  -745,
1949 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1950 >    -745,  -745,  -745,  -745,  -745,   915,  -745,  -745,  -745,  -745,
1951 >    -745,  -745
1952   };
1953  
1954   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
# Line 1922 | Line 1957 | static const yytype_int16 yypgoto[] =
1957   #define YYTABLE_NINF -108
1958   static const yytype_int16 yytable[] =
1959   {
1960 <     806,   807,   573,   574,   236,   220,    45,    46,   220,   373,
1961 <     581,   462,   383,   805,   667,   668,   286,   110,  1076,    67,
1962 <     984,  1030,   227,   555,   985,   462,   286,   669,   670,   110,
1963 <      47,   555,  1001,  1002,  1003,  1004,  1005,   383,    48,   116,
1964 <     237,    52,    68,   986,   117,   118,    54,   987,  1049,    69,
1965 <     119,    58,  1050,    59,   238,   239,   240,   241,   120,   443,
1966 <     227,  1051,    67,   291,   121,  1052,   122,   123,   124,   374,
1967 <    1176,   492,   242,   125,  1177,   444,   251,   111,    62,   126,
1968 <     127,    63,   128,   129,   130,    68,    66,   493,   131,   111,
1969 <     445,   107,    69,   132,   446,   630,   631,   133,   134,   252,
1970 <     384,   135,   494,   638,   287,   640,   495,    70,   228,  1193,
1971 <     136,   556,   647,   108,   287,   650,   471,   137,   138,   556,
1972 <     139,   140,   141,   142,   143,   384,   661,   662,   375,   546,
1973 <     463,   385,   253,   109,   229,   144,   673,   674,   115,   676,
1974 <     217,   145,   146,   147,   463,   148,   228,   511,   149,   150,
1975 <      70,   472,   151,  1077,   218,   946,   385,   219,  1078,   496,
1976 <     512,   464,   386,    76,   254,  1178,   255,   256,   234,  1179,
1977 <     447,   473,   229,   557,  1182,   464,   474,   235,  1183,   448,
1978 <     449,   557,   497,    77,    78,   946,   152,   386,  1184,    79,
1979 <     153,   284,  1185,   154,   155,   156,   157,   158,  1186,   498,
1980 <     159,   160,  1187,   257,  1031,   258,   259,   260,   261,   546,
1981 <     511,   450,   221,   742,   743,   221,   465,   547,  -107,   526,
1982 <     484,  -107,   262,   512,   620,   565,   695,   732,    80,    81,
1983 <     465,   563,   475,   313,   295,    82,    83,    84,   765,   513,
1984 <     161,   162,   163,   947,   381,   164,   263,   314,   315,  1196,
1985 <     165,   316,   627,  1197,   441,  1198,   264,    85,    86,  1199,
1986 <     471,   344,   499,   345,   451,   346,   514,   373,  1200,   285,
1987 <      87,    88,  1201,   947,   690,   490,   500,   347,  1202,   548,
1988 <     292,    89,  1203,  1225,   265,   266,   719,  1226,   482,    90,
1989 <     795,   544,   348,   746,   747,   472,   349,   547,   803,   804,
1990 <     810,   811,   513,   293,   294,   948,   297,   298,   317,   318,
1991 <     319,   299,   300,   320,   301,   473,   350,  1210,   351,   302,
1992 <     474,   321,  1055,  1018,  1019,  1020,   303,   374,   352,   514,
1993 <     304,   702,   322,   323,   549,   948,   305,   306,   443,  1211,
1994 <     486,  1212,  1056,   307,   760,   308,   487,   324,   325,   353,
1995 <     309,   310,  1057,   380,   444,  1173,  1174,  1175,  1058,   548,
1996 <     392,   393,   725,   394,   528,   395,   396,   949,   397,   445,
1997 <    1090,   398,   566,   446,  1059,   326,   475,   354,   311,  1213,
1998 <     568,   399,   251,   116,   400,   401,   375,   402,   117,   118,
1999 <     492,   403,   404,   405,   119,   406,   407,   949,   408,  1060,
2000 <     409,   410,   120,   411,   355,   252,   493,  1061,   121,   412,
2001 <     122,   123,   124,   805,   549,   413,   327,   125,   414,   415,
2002 <     416,   494,   417,   126,   127,   495,   128,   129,   130,   418,
2003 <     419,   356,   131,   420,   422,   424,   425,   132,   253,   426,
2004 <     427,   133,   134,   428,   429,   135,  1062,   430,   600,   447,
2005 <    1214,  1215,   431,   432,   136,   433,   434,   435,   448,   449,
2006 <     436,   137,   138,  1063,   139,   140,   141,   142,   143,   357,
2007 <     254,   437,   255,   256,   438,   439,   616,   567,   496,   144,
2008 <     440,   483,   488,  1216,   569,   145,   146,   147,   489,   148,
2009 <     450,  1194,   149,   150,   520,   570,   151,   521,   522,   523,
2010 <     344,   497,   345,   524,   346,   525,   529,   530,   531,   257,
2011 <     532,   258,   259,   260,   261,  1094,   347,   533,   498,   534,
2012 <     535,   536,   537,   538,  1147,   539,   540,   571,   262,   572,
2013 <     152,   348,   313,   541,   153,   349,  1095,   154,   155,   156,
2014 <     157,   158,   542,   451,   159,   160,   314,   315,   543,   562,
2015 <     316,  1096,   263,   572,   575,   350,   576,   351,  1097,   578,
2016 <     577,   579,   264,   580,   582,   583,   584,   352,   775,   776,
2017 <     777,   778,   779,   585,   586,  1098,   622,   629,   587,   588,
2018 <     589,   499,   590,   591,   161,   162,   163,   592,   353,   164,
2019 <     265,   266,   593,   594,   165,   500,  1148,   595,  1099,   602,
2020 <     632,   596,   861,   633,   597,  1100,   598,   317,   318,   319,
2021 <       2,     3,   320,   599,     4,   603,   354,  1101,   604,   634,
2022 <     321,   605,   623,   635,     5,  1149,   606,     6,     7,   608,
2023 <     609,   322,   323,     8,  1150,  1102,  1103,  1104,   610,   236,
2024 <    1151,   611,   612,   355,     9,   613,   324,   325,    10,    11,
2025 <     884,   614,   615,   618,  1152,   619,  1153,  1154,    12,   624,
2026 <     625,   636,   637,   639,   641,  1155,   642,   643,   644,   645,
2027 <     356,  1156,    13,   646,   326,   237,   648,   649,  1118,   651,
2028 <      14,    15,   652,   654,   653,  1105,   655,   656,   657,   238,
2029 <     239,   240,   241,   658,  1106,   659,   660,   663,    16,  1107,
2030 <     664,   665,   666,   675,   671,  1108,   672,   242,   357,  1109,
2031 <     677,  1110,    17,   678,   679,   327,  1111,   862,   863,   864,
2032 <     865,   866,  1112,   867,   868,   680,   869,   870,   871,  1161,
2033 <     681,   872,   682,   873,   874,   683,   875,   685,   876,   686,
2034 <     877,   878,   704,   687,   879,   752,    18,   688,   689,   706,
2035 <     880,   692,   694,   697,   699,    19,    20,   700,   707,    21,
2036 <      22,   708,   705,   701,   709,   885,   886,   887,   888,   889,
2037 <     710,   890,   891,   721,   892,   893,   894,   711,   712,   895,
2038 <     714,   896,   897,   727,   898,   728,   899,   715,   900,   901,
2039 <     716,   718,   902,  1119,  1120,  1121,  1122,  1123,   903,  1124,
2040 <    1125,  1162,  1126,  1127,  1128,   729,   722,  1129,    76,  1130,
2041 <    1131,    23,  1132,   723,  1133,   724,  1134,  1135,   730,   731,
2042 <    1136,   733,   734,   735,   736,   737,  1137,   738,    77,    78,
2043 <    1163,   739,   740,   741,    79,   750,   751,   753,   754,  1164,
2044 <     757,   755,   759,   756,   762,  1165,   767,   768,   763,   769,
2045 <     770,   771,   772,   793,   773,   794,   774,   782,   796,  1166,
2046 <     783,  1167,  1168,   784,   785,   786,   787,   788,   789,   790,
2047 <    1169,   791,   792,    80,    81,   797,  1170,   798,   799,   800,
2048 <      82,    83,    84,   801,   802,   805,   808,   809,   812,   813,
2049 <     814,   815,   816,   817,   819,   818,   823,   826,   820,   821,
2050 <     822,   824,    85,    86,   827,   825,   828,   829,   830,   831,
2051 <     832,   833,   834,   835,   836,    87,    88,   837,   838,   925,
2052 <     839,   928,   929,   840,   926,   841,    89,   842,   930,   927,
2053 <     931,   843,   932,   934,    90,   936,   844,   845,   846,   847,
2054 <     848,   849,   850,   939,   940,   851,   852,   853,   854,   855,
2055 <     856,   857,   858,   859,   860,   883,   906,   907,   908,   909,
2056 <     910,   911,   912,   913,   914,   915,   916,   917,   918,   941,
2057 <     919,   957,   920,   921,   960,   922,   958,   923,   924,   961,
2058 <     933,   962,   937,   964,   935,   966,   938,   944,  1145,   959,
2059 <     967,   968,   993,   995,   997,   296,  1083,  1188,  1091,  1144,
2060 <    1227,   720,  1046,  1222,  1221,   945,   955,   956,   601,   965,
2061 <    1208,   963,   969,   970,   971,   972,  1072,   973,   485,   974,
2062 <     975,   976,  1189,   977,   978,   703,   979,   691,   980,  1191,
2063 <    1206,   726,   761,   981,   982,   983,   988,   989,  1223,   990,
2064 <    1204,   766,   991,   992,  1224,   996,   617,   994,   999,   998,
2065 <    1000,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,  1014,
2066 <    1015,  1016,  1017,  1023,  1024,  1025,  1026,  1027,  1207,  1028,
2067 <    1029,   696,  1034,  1035,  1036,  1037,   621,  1038,   382,  1039,
2068 <    1205,  1040,  1180,  1041,  1042,   442,  1043,  1181,   312,   628,
2069 <       0,     0,  1044,  1045,     0,  1053,  1054,  1066,  1067,  1068,
2070 <    1069,  1070,  1071,  1075,  1081,  1082,     0,  1086,     0,     0,
2071 <    1084,  1092,  1087,  1089,  1093,  1115,  1116,  1117,  1140,  1141,
2072 <    1142,  1143,  1146,  1159,  1160,  1190,     0,   491,  1195,  1209,
2073 <    1192,  1219,  1220,     0,     0,     0,     0,     0,     0,     0,
2039 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1960 >     802,   803,   571,   572,    67,    45,    46,  1025,    47,   381,
1961 >     579,   801,   509,   110,   371,  1071,   227,   236,   980,   286,
1962 >     460,   286,   981,   110,    48,   510,    52,    68,   997,   998,
1963 >     999,  1000,  1001,    54,    69,   982,  1044,   116,   291,   983,
1964 >    1045,  1046,   117,   118,   220,  1047,  1171,    58,   119,    59,
1965 >    1172,   220,   371,   237,  1173,  1177,   120,   480,  1174,  1178,
1966 >     544,   460,   121,   509,   122,   123,   124,   238,   239,   240,
1967 >     241,   125,    62,   111,   372,   251,   510,   126,   127,    63,
1968 >     128,   129,   130,   111,    66,   242,   131,   942,  1013,  1014,
1969 >    1015,   132,    70,   627,   628,   133,   134,   382,   252,   135,
1970 >     227,   635,   228,   637,   511,   107,  1188,   287,   136,   287,
1971 >     644,   553,   372,   647,   108,   137,   138,   469,   139,   140,
1972 >     141,   142,   143,   109,   658,   659,   115,   383,   229,   441,
1973 >     512,   253,   373,   144,   670,   671,   217,   673,   461,   145,
1974 >     146,   147,   218,   148,   219,   442,   149,   150,   545,  1072,
1975 >     151,   234,   470,   313,  1073,   511,   235,  1179,   384,   292,
1976 >     443,  1180,   284,   254,   444,   255,   256,   314,   315,   462,
1977 >     373,   316,   471,   664,   665,   943,  1181,   472,   801,   461,
1978 >    1182,   512,   285,   152,   490,   293,   228,   153,   942,  1026,
1979 >     154,   155,   156,   157,   158,   294,    76,   159,   160,   554,
1980 >     491,   257,   297,   258,   259,   260,   261,  1191,   298,   546,
1981 >     462,  1192,   229,   666,   667,   492,    77,    78,   295,   493,
1982 >     262,   544,    79,   624,   463,   729,   722,   379,   317,   318,
1983 >     319,   524,   473,   320,   692,   561,   944,   161,   162,   163,
1984 >     445,   321,   164,   299,   263,   739,   740,   165,   446,   447,
1985 >     221,   439,   322,   323,   264,   300,  -107,   221,   482,   381,
1986 >     555,    80,    81,  -107,   547,   463,   617,   324,    82,    83,
1987 >      84,   342,   494,   343,   757,   344,   943,  1193,   553,   484,
1988 >     448,  1194,   265,   266,   301,   469,   302,   345,   792,   542,
1989 >      85,    86,   303,    67,   325,   495,   800,   304,   945,   305,
1990 >     236,  1085,   346,    87,    88,   306,   347,   307,  1195,   545,
1991 >     308,   496,  1196,    89,   488,  1197,    68,   309,  1220,  1198,
1992 >     470,    90,  1221,    69,   310,   762,   348,   485,   349,   743,
1993 >     744,   699,   378,   449,   390,   326,   237,   944,   350,   391,
1994 >     471,   806,   807,   687,   441,   472,   392,   382,   393,   490,
1995 >     238,   239,   240,   241,  1168,  1169,  1170,   394,   395,   351,
1996 >     442,   396,   397,   398,   570,   491,   554,   597,   242,   563,
1997 >     546,   399,   400,   401,   497,   443,   402,   383,   403,   444,
1998 >     492,    70,   404,   405,   493,   406,   352,   407,   498,   251,
1999 >     116,   408,   409,   410,   411,   117,   118,   412,   716,   945,
2000 >     473,   119,   772,   773,   774,   775,   776,   413,   384,   120,
2001 >     311,   414,   252,   353,   415,   121,   416,   122,   123,   124,
2002 >     417,   418,   420,   422,   125,   547,   423,   555,   424,   425,
2003 >     126,   127,   426,   128,   129,   130,   427,   494,   428,   131,
2004 >     354,   429,   430,  1205,   132,   253,   431,   432,   133,   134,
2005 >     433,   434,   135,   435,   436,   445,   437,   438,   481,   486,
2006 >     495,   136,   487,   446,   447,  1206,   518,  1207,   137,   138,
2007 >     519,   139,   140,   141,   142,   143,   496,   254,   355,   255,
2008 >     256,   520,   526,   521,   522,   613,   144,   564,   523,  1189,
2009 >     527,   528,   145,   146,   147,   448,   148,   529,   530,   149,
2010 >     150,   565,   531,   151,   532,  1208,   342,   533,   343,   567,
2011 >     344,   534,   535,   536,   537,   257,   566,   258,   259,   260,
2012 >     261,  1089,   345,   538,   539,   540,   541,   560,  1142,   568,
2013 >     569,   570,   573,   574,   262,   575,   152,   346,   576,   497,
2014 >     153,   347,  1090,   154,   155,   156,   157,   158,   449,   577,
2015 >     159,   160,   578,   498,   580,   581,   582,  1091,   263,   583,
2016 >     599,   348,   619,   349,  1092,   620,   584,   585,   264,   586,
2017 >     313,   587,   588,   350,   589,  1209,  1210,   590,   591,   592,
2018 >     593,  1093,   594,   595,   314,   315,   596,   626,   316,   600,
2019 >     161,   162,   163,  1156,   351,   164,   265,   266,   601,  1143,
2020 >     165,   629,   602,   603,  1094,   630,   631,   632,  1211,   605,
2021 >     606,  1095,   633,   634,   607,     2,     3,   608,   609,     4,
2022 >     636,   352,   610,  1096,   611,   612,   615,   638,  1144,     5,
2023 >     616,   621,     6,     7,   622,   639,   640,  1145,     8,   641,
2024 >    1097,  1098,  1099,  1146,   642,   317,   318,   319,   353,     9,
2025 >     320,   857,   643,    10,    11,   645,   646,  1147,   321,  1148,
2026 >    1149,   648,   649,    12,  1157,   650,   651,   652,  1150,   322,
2027 >     323,   653,   654,   655,  1151,   354,   657,    13,   656,   880,
2028 >     660,   661,   662,   663,   324,    14,    15,   672,   677,   668,
2029 >    1100,   669,   674,  1158,   675,   678,   679,   676,   701,  1101,
2030 >     680,   682,  1159,    16,  1102,   683,  1050,  1113,  1160,   684,
2031 >    1103,   325,   703,   355,  1104,   685,  1105,    17,   686,   704,
2032 >     689,  1106,  1161,   691,  1162,  1163,  1051,  1107,   694,   705,
2033 >     702,   724,   696,  1164,   725,   697,  1052,   698,   726,  1165,
2034 >     706,   707,  1053,   727,   728,   732,   731,   733,   708,   734,
2035 >      18,   709,   326,   735,   736,   718,   730,   711,  1054,    19,
2036 >      20,   712,   713,    21,    22,   858,   859,   860,   861,   862,
2037 >     715,   863,   864,   749,   865,   866,   867,   719,   720,   868,
2038 >     737,   869,   870,  1055,   871,    76,   872,   738,   873,   874,
2039 >     721,  1056,   875,   881,   882,   883,   884,   885,   876,   886,
2040 >     887,   747,   888,   889,   890,    77,    78,   891,   748,   892,
2041 >     893,    79,   894,   750,   895,    23,   896,   897,   751,   752,
2042 >     898,  1114,  1115,  1116,  1117,  1118,   899,  1119,  1120,  1057,
2043 >    1121,  1122,  1123,   753,   754,  1124,   764,  1125,  1126,   756,
2044 >    1127,   759,  1128,   760,  1129,  1130,  1058,   765,  1131,   766,
2045 >      80,    81,   767,   768,  1132,   769,   770,    82,    83,    84,
2046 >     771,   779,   780,   781,   782,   783,   784,   785,   786,   787,
2047 >     790,   788,   789,   791,   793,   794,   795,   796,   797,    85,
2048 >      86,   798,   799,   804,   801,   805,   808,   809,   810,   811,
2049 >     812,   815,    87,    88,   819,   822,   813,   814,   816,   823,
2050 >     826,   827,    89,   817,   818,   820,   821,   824,   825,   828,
2051 >      90,   829,   830,   831,   832,   921,   833,   834,   835,   836,
2052 >     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
2053 >     847,   848,   849,   924,   850,   851,   852,   853,   854,   855,
2054 >     856,   879,   925,   902,   903,   904,   905,   906,   907,   908,
2055 >     909,   910,   911,   912,   913,   914,   915,   916,   917,   918,
2056 >     919,   920,   922,   926,   927,   923,   928,   929,   930,   931,
2057 >     932,   933,   934,   935,   936,   937,   940,   941,   951,   952,
2058 >     953,   954,   956,   955,   957,   958,   960,   959,   962,   963,
2059 >     964,   989,   991,  1140,   993,   296,  1222,   489,  1139,  1086,
2060 >    1041,  1217,   598,   717,  1216,  1067,  1183,   961,   965,   966,
2061 >     967,   968,  1203,   969,   970,   971,   972,   543,   973,   974,
2062 >     975,   976,   977,   978,   979,   984,   985,   986,   987,   988,
2063 >    1186,  1184,   992,   700,   990,   995,   994,   996,  1002,  1003,
2064 >    1004,  1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1018,
2065 >    1019,  1020,  1021,  1022,  1023,  1024,  1029,  1078,  1030,  1031,
2066 >     688,  1201,  1032,   723,  1033,  1218,  1034,   763,  1035,  1036,
2067 >    1219,  1199,  1037,  1038,  1039,  1040,  1048,  1202,  1049,   693,
2068 >    1061,   380,  1200,   440,  1062,  1175,  1176,   312,     0,     0,
2069 >       0,   758,     0,  1063,  1064,  1065,  1066,     0,  1070,  1076,
2070 >    1077,     0,  1081,     0,     0,  1079,  1082,  1084,  1187,  1087,
2071 >    1088,  1110,  1111,  1112,  1135,  1136,  1137,  1138,  1141,  1154,
2072 >    1155,     0,  1185,  1190,  1204,  1214,  1215,     0,   618,     0,
2073 >       0,     0,     0,     0,     0,   625,   483,     0,     0,     0,
2074         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2075 <       0,     0,     0,   527,     0,     0,     0,     0,     0,     0,
2075 >       0,     0,     0,     0,     0,     0,     0,     0,   525,     0,
2076         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2077 <       0,     0,   545,     0,     0,     0,     0,     0,     0,     0,
2078 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2045 <       0,     0,     0,     0,     0,     0,   564
2077 >       0,     0,     0,     0,     0,     0,   614,     0,     0,     0,
2078 >     562
2079   };
2080  
2081 < #define yypact_value_is_default(yystate) \
2082 <  ((yystate) == (-744))
2081 > #define yypact_value_is_default(Yystate) \
2082 >  (!!((Yystate) == (-745)))
2083  
2084 < #define yytable_value_is_error(yytable_value) \
2084 > #define yytable_value_is_error(Yytable_value) \
2085    YYID (0)
2086  
2087   static const yytype_int16 yycheck[] =
2088   {
2089 <     598,   599,   300,   301,     1,     1,   215,   216,     1,     1,
2090 <     308,     1,     1,    99,   160,   161,     1,     1,    51,     1,
2091 <     215,     8,     1,     1,   219,     1,     1,   160,   161,     1,
2092 <     217,     1,   775,   776,   777,   778,   779,     1,   217,     1,
2093 <      37,   217,    24,   215,     6,     7,   217,   219,   215,    31,
2094 <      12,   217,   219,   217,    51,    52,    53,    54,    20,     1,
2095 <       1,   215,     1,   215,    26,   219,    28,    29,    30,    61,
2096 <     215,     1,    69,    35,   219,    17,     1,    61,   217,    41,
2097 <      42,   217,    44,    45,    46,    24,   217,    17,    50,    61,
2098 <      32,   217,    31,    55,    36,   393,   394,    59,    60,    24,
2099 <      89,    63,    32,   401,    89,   403,    36,    89,    87,   195,
2100 <      72,    89,   410,   217,    89,   413,     1,    79,    80,    89,
2101 <      82,    83,    84,    85,    86,    89,   424,   425,   120,     1,
2102 <     120,   120,    57,   217,   113,    97,   434,   435,   217,   437,
2103 <     217,   103,   104,   105,   120,   107,    87,     1,   110,   111,
2104 <      89,    36,   114,   186,   217,     1,   120,   217,   191,    89,
2105 <      14,   151,   151,     1,    89,   215,    91,    92,   217,   219,
2106 <     112,    56,   113,   151,   215,   151,    61,   217,   219,   121,
2107 <     122,   151,   112,    21,    22,     1,   148,   151,   215,    27,
2108 <     152,   217,   219,   155,   156,   157,   158,   159,   215,   129,
2109 <     162,   163,   219,   128,   191,   130,   131,   132,   133,     1,
2110 <       1,   153,   208,   134,   135,   208,   206,    89,   214,   216,
2111 <     216,   214,   147,    14,   216,   118,   216,   525,    66,    67,
2112 <     206,   216,   117,     1,   216,    73,    74,    75,   216,    93,
2113 <     202,   203,   204,    89,   216,   207,   171,    15,    16,   215,
2114 <     212,    19,   216,   219,   216,   215,   181,    95,    96,   219,
2115 <       1,     1,   192,     3,   206,     5,   120,     1,   215,   217,
2116 <     108,   109,   219,    89,   216,   216,   206,    17,   215,   151,
2117 <     218,   119,   219,   215,   209,   210,   216,   219,   215,   127,
2118 <     588,   216,    32,   134,   135,    36,    36,    89,   596,   597,
2119 <     178,   179,    93,   218,   218,   151,   218,   218,    76,    77,
2120 <      78,   218,   218,    81,   218,    56,    56,    40,    58,   218,
2121 <      61,    89,    13,     9,    10,    11,   218,    61,    68,   120,
2122 <     218,   216,   100,   101,   206,   151,   218,   218,     1,    62,
2123 <     214,    64,    33,   218,   216,   218,   215,   115,   116,    89,
2124 <     218,   218,    43,   218,    17,  1018,  1019,  1020,    49,   151,
2125 <     218,   218,   216,   218,   215,   218,   218,   213,   218,    32,
2126 <     216,   218,   118,    36,    65,   143,   117,   117,   216,   102,
2127 <     215,   218,     1,     1,   218,   218,   120,   218,     6,     7,
2128 <       1,   218,   218,   218,    12,   218,   218,   213,   218,    90,
2129 <     218,   218,    20,   218,   144,    24,    17,    98,    26,   218,
2130 <      28,    29,    30,    99,   206,   218,   184,    35,   218,   218,
2131 <     218,    32,   218,    41,    42,    36,    44,    45,    46,   218,
2132 <     218,   171,    50,   218,   218,   218,   218,    55,    57,   218,
2133 <     218,    59,    60,   218,   218,    63,   137,   218,   216,   112,
2134 <     173,   174,   218,   218,    72,   218,   218,   218,   121,   122,
2135 <     218,    79,    80,   154,    82,    83,    84,    85,    86,   209,
2136 <      89,   218,    91,    92,   218,   218,   216,   118,    89,    97,
2137 <     218,   218,   218,   206,    99,   103,   104,   105,   218,   107,
2138 <     153,  1089,   110,   111,   218,    99,   114,   218,   218,   218,
2139 <       1,   112,     3,   218,     5,   218,   218,   218,   218,   128,
2140 <     218,   130,   131,   132,   133,     4,    17,   218,   129,   218,
2141 <     218,   218,   218,   218,    64,   218,   218,   160,   147,    99,
2142 <     148,    32,     1,   218,   152,    36,    25,   155,   156,   157,
2143 <     158,   159,   218,   206,   162,   163,    15,    16,   218,   218,
2144 <      19,    40,   171,    99,    99,    56,    99,    58,    47,   160,
2145 <      99,   160,   181,    99,   160,   160,   215,    68,   138,   139,
2146 <     140,   141,   142,   215,   218,    64,   118,   160,   218,   218,
2147 <     218,   192,   218,   218,   202,   203,   204,   218,    89,   207,
2148 <     209,   210,   218,   218,   212,   206,   136,   218,    87,   215,
2149 <      99,   218,    51,   160,   218,    94,   218,    76,    77,    78,
2150 <       0,     1,    81,   218,     4,   218,   117,   106,   218,   160,
2151 <      89,   218,   215,    99,    14,   165,   218,    17,    18,   218,
2152 <     218,   100,   101,    23,   174,   124,   125,   126,   218,     1,
2153 <     180,   218,   218,   144,    34,   218,   115,   116,    38,    39,
2154 <      51,   218,   218,   218,   194,   218,   196,   197,    48,   218,
2155 <     218,   118,   160,   160,    99,   205,    99,    99,   160,   160,
2156 <     171,   211,    62,   160,   143,    37,    99,    99,    51,    99,
2157 <      70,    71,    99,    99,   118,   174,    99,   160,   160,    51,
2158 <      52,    53,    54,   218,   183,   160,   218,   160,    88,   188,
2159 <     160,   160,   160,   118,   160,   194,   160,    69,   209,   198,
2160 <     160,   200,   102,   160,   160,   184,   205,   166,   167,   168,
2161 <     169,   170,   211,   172,   173,   215,   175,   176,   177,    64,
2162 <     215,   180,   218,   182,   183,   218,   185,   218,   187,   218,
2163 <     189,   190,   160,   218,   193,    99,   136,   218,   218,   217,
2164 <     199,   218,   218,   215,   218,   145,   146,   218,   118,   149,
2165 <     150,   118,   215,   218,   215,   166,   167,   168,   169,   170,
2166 <     215,   172,   173,   215,   175,   176,   177,   218,   218,   180,
2167 <     218,   182,   183,   160,   185,   160,   187,   218,   189,   190,
2168 <     218,   218,   193,   166,   167,   168,   169,   170,   199,   172,
2169 <     173,   136,   175,   176,   177,   118,   218,   180,     1,   182,
2170 <     183,   201,   185,   218,   187,   218,   189,   190,   160,   160,
2171 <     193,   215,   118,   160,   118,   118,   199,   118,    21,    22,
2172 <     165,   118,   118,   118,    27,   118,   118,   118,   118,   174,
2173 <     218,   215,   218,   215,   215,   180,   118,   215,   218,   215,
2174 <     215,   215,   215,    99,   215,    99,   215,   215,    99,   194,
2175 <     215,   196,   197,   215,   215,   215,   215,   215,   215,   215,
2176 <     205,   215,   215,    66,    67,    99,   211,    99,    99,   118,
2177 <      73,    74,    75,    99,    99,    99,   215,   118,   118,   160,
2178 <     218,   118,   118,   118,    99,   118,   215,   215,   118,   118,
2179 <     118,   118,    95,    96,   215,   118,   118,   118,   218,   215,
2180 <     215,   215,   215,   215,   215,   108,   109,   215,   215,   118,
2181 <     215,   118,    99,   215,   160,   215,   119,   215,   118,   218,
2182 <     118,   215,   118,   118,   127,   118,   215,   215,   215,   215,
2183 <     215,   215,   215,   118,   118,   215,   215,   215,   215,   215,
2184 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2185 <     215,   215,   215,   215,   215,   215,   215,   215,   215,    99,
2186 <     215,   118,   215,   215,   118,   215,   160,   215,   215,   118,
2187 <     215,   118,   215,   118,   218,   118,   218,   215,   987,   218,
2188 <     118,   118,   118,   118,   118,    71,   164,    99,   950,   985,
2189 <    1226,   501,   123,  1199,  1197,   215,   215,   215,   328,   215,
2190 <    1187,   218,   215,   215,   215,   215,   123,   215,   222,   215,
2191 <     215,   215,  1084,   215,   215,   477,   215,   452,   215,   118,
2192 <    1183,   515,   550,   215,   215,   215,   215,   215,  1201,   215,
2193 <    1177,   558,   215,   215,  1203,   215,   358,   218,   215,   218,
2194 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2195 <     215,   215,   215,   215,   215,   215,   215,   215,  1185,   215,
2196 <     215,   467,   215,   215,   215,   215,   376,   215,   112,   215,
2197 <    1179,   215,  1050,   215,   215,   166,   215,  1052,    91,   388,
2198 <      -1,    -1,   215,   215,    -1,   215,   215,   215,   215,   215,
2199 <     215,   215,   215,   215,   215,   215,    -1,   215,    -1,    -1,
2200 <     219,   215,   218,   218,   215,   215,   215,   215,   215,   215,
2201 <     215,   215,   215,   215,   215,   215,    -1,   230,   215,   215,
2202 <     218,   215,   215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2170 <      -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,
2089 >     595,   596,   300,   301,     1,   214,   215,     8,   216,     1,
2090 >     308,    99,     1,     1,     1,    51,     1,     1,   214,     1,
2091 >       1,     1,   218,     1,   216,    14,   216,    24,   772,   773,
2092 >     774,   775,   776,   216,    31,   214,   214,     1,   214,   218,
2093 >     218,   214,     6,     7,     1,   218,   214,   216,    12,   216,
2094 >     218,     1,     1,    37,   214,   214,    20,   214,   218,   218,
2095 >       1,     1,    26,     1,    28,    29,    30,    51,    52,    53,
2096 >      54,    35,   216,    61,    61,     1,    14,    41,    42,   216,
2097 >      44,    45,    46,    61,   216,    69,    50,     1,     9,    10,
2098 >      11,    55,    89,   391,   392,    59,    60,    89,    24,    63,
2099 >       1,   399,    87,   401,    93,   216,   194,    89,    72,    89,
2100 >     408,     1,    61,   411,   216,    79,    80,     1,    82,    83,
2101 >      84,    85,    86,   216,   422,   423,   216,   119,   113,     1,
2102 >     119,    57,   119,    97,   432,   433,   216,   435,   119,   103,
2103 >     104,   105,   216,   107,   216,    17,   110,   111,    89,   185,
2104 >     114,   216,    36,     1,   190,    93,   216,   214,   150,   217,
2105 >      32,   218,   216,    89,    36,    91,    92,    15,    16,   150,
2106 >     119,    19,    56,   159,   160,    89,   214,    61,    99,   119,
2107 >     218,   119,   216,   147,     1,   217,    87,   151,     1,   190,
2108 >     154,   155,   156,   157,   158,   217,     1,   161,   162,    89,
2109 >      17,   127,   217,   129,   130,   131,   132,   214,   217,   150,
2110 >     150,   218,   113,   159,   160,    32,    21,    22,   215,    36,
2111 >     146,     1,    27,   215,   205,   523,   215,   215,    76,    77,
2112 >      78,   215,   116,    81,   215,   215,   150,   201,   202,   203,
2113 >     112,    89,   206,   217,   170,   133,   134,   211,   120,   121,
2114 >     207,   215,   100,   101,   180,   217,   213,   207,   215,     1,
2115 >     150,    66,    67,   213,   205,   205,   215,   115,    73,    74,
2116 >      75,     1,    89,     3,   215,     5,    89,   214,     1,   213,
2117 >     152,   218,   208,   209,   217,     1,   217,    17,   586,   215,
2118 >      95,    96,   217,     1,   142,   112,   594,   217,   212,   217,
2119 >       1,   215,    32,   108,   109,   217,    36,   217,   214,    89,
2120 >     217,   128,   218,   118,   215,   214,    24,   217,   214,   218,
2121 >      36,   126,   218,    31,   217,   215,    56,   214,    58,   133,
2122 >     134,   215,   217,   205,   217,   183,    37,   150,    68,   217,
2123 >      56,   177,   178,   215,     1,    61,   217,    89,   217,     1,
2124 >      51,    52,    53,    54,  1013,  1014,  1015,   217,   217,    89,
2125 >      17,   217,   217,   217,    99,    17,    89,   215,    69,   117,
2126 >     150,   217,   217,   217,   191,    32,   217,   119,   217,    36,
2127 >      32,    89,   217,   217,    36,   217,   116,   217,   205,     1,
2128 >       1,   217,   217,   217,   217,     6,     7,   217,   215,   212,
2129 >     116,    12,   137,   138,   139,   140,   141,   217,   150,    20,
2130 >     215,   217,    24,   143,   217,    26,   217,    28,    29,    30,
2131 >     217,   217,   217,   217,    35,   205,   217,   150,   217,   217,
2132 >      41,    42,   217,    44,    45,    46,   217,    89,   217,    50,
2133 >     170,   217,   217,    40,    55,    57,   217,   217,    59,    60,
2134 >     217,   217,    63,   217,   217,   112,   217,   217,   217,   217,
2135 >     112,    72,   217,   120,   121,    62,   217,    64,    79,    80,
2136 >     217,    82,    83,    84,    85,    86,   128,    89,   208,    91,
2137 >      92,   217,   214,   217,   217,   215,    97,   117,   217,  1084,
2138 >     217,   217,   103,   104,   105,   152,   107,   217,   217,   110,
2139 >     111,   117,   217,   114,   217,   102,     1,   217,     3,    99,
2140 >       5,   217,   217,   217,   217,   127,   214,   129,   130,   131,
2141 >     132,     4,    17,   217,   217,   217,   217,   217,    64,    99,
2142 >     159,    99,    99,    99,   146,    99,   147,    32,   159,   191,
2143 >     151,    36,    25,   154,   155,   156,   157,   158,   205,   159,
2144 >     161,   162,    99,   205,   159,   159,   214,    40,   170,   214,
2145 >     214,    56,   117,    58,    47,   214,   217,   217,   180,   217,
2146 >       1,   217,   217,    68,   217,   172,   173,   217,   217,   217,
2147 >     217,    64,   217,   217,    15,    16,   217,   159,    19,   217,
2148 >     201,   202,   203,    64,    89,   206,   208,   209,   217,   135,
2149 >     211,    99,   217,   217,    87,   159,   159,    99,   205,   217,
2150 >     217,    94,   117,   159,   217,     0,     1,   217,   217,     4,
2151 >     159,   116,   217,   106,   217,   217,   217,    99,   164,    14,
2152 >     217,   217,    17,    18,   217,    99,    99,   173,    23,   159,
2153 >     123,   124,   125,   179,   159,    76,    77,    78,   143,    34,
2154 >      81,    51,   159,    38,    39,    99,    99,   193,    89,   195,
2155 >     196,    99,    99,    48,   135,   117,    99,    99,   204,   100,
2156 >     101,   159,   159,   217,   210,   170,   217,    62,   159,    51,
2157 >     159,   159,   159,   159,   115,    70,    71,   117,   214,   159,
2158 >     173,   159,   159,   164,   159,   214,   217,   159,   159,   182,
2159 >     217,   217,   173,    88,   187,   217,    13,    51,   179,   217,
2160 >     193,   142,   216,   208,   197,   217,   199,   102,   217,   117,
2161 >     217,   204,   193,   217,   195,   196,    33,   210,   214,   117,
2162 >     214,   159,   217,   204,   159,   217,    43,   217,   117,   210,
2163 >     214,   214,    49,   159,   159,   159,   117,   117,   217,   117,
2164 >     135,   217,   183,   117,   117,   214,   214,   217,    65,   144,
2165 >     145,   217,   217,   148,   149,   165,   166,   167,   168,   169,
2166 >     217,   171,   172,    99,   174,   175,   176,   217,   217,   179,
2167 >     117,   181,   182,    90,   184,     1,   186,   117,   188,   189,
2168 >     217,    98,   192,   165,   166,   167,   168,   169,   198,   171,
2169 >     172,   117,   174,   175,   176,    21,    22,   179,   117,   181,
2170 >     182,    27,   184,   117,   186,   200,   188,   189,   117,   214,
2171 >     192,   165,   166,   167,   168,   169,   198,   171,   172,   136,
2172 >     174,   175,   176,   214,   217,   179,   117,   181,   182,   217,
2173 >     184,   214,   186,   217,   188,   189,   153,   214,   192,   214,
2174 >      66,    67,   214,   214,   198,   214,   214,    73,    74,    75,
2175 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2176 >      99,   214,   214,    99,    99,    99,    99,    99,   117,    95,
2177 >      96,    99,    99,   214,    99,   117,   117,   159,   217,   117,
2178 >     117,    99,   108,   109,   214,   214,   117,   117,   117,   214,
2179 >     217,   214,   118,   117,   117,   117,   117,   117,   117,   214,
2180 >     126,   214,   214,   214,   214,   117,   214,   214,   214,   214,
2181 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2182 >     214,   214,   214,   117,   214,   214,   214,   214,   214,   214,
2183 >     214,   214,    99,   214,   214,   214,   214,   214,   214,   214,
2184 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2185 >     214,   214,   159,   117,   117,   217,   117,   214,   117,   217,
2186 >     117,   214,   217,   117,   117,    99,   214,   214,   214,   214,
2187 >     117,   159,   117,   217,   117,   117,   117,   217,   117,   117,
2188 >     117,   117,   117,   983,   117,    71,  1221,   230,   981,   946,
2189 >     122,  1194,   327,   499,  1192,   122,    99,   214,   214,   214,
2190 >     214,   214,  1182,   214,   214,   214,   214,   267,   214,   214,
2191 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2192 >     117,  1079,   214,   475,   217,   214,   217,   214,   214,   214,
2193 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2194 >     214,   214,   214,   214,   214,   214,   214,   163,   214,   214,
2195 >     450,  1178,   214,   513,   214,  1196,   214,   556,   214,   214,
2196 >    1198,  1172,   214,   214,   214,   214,   214,  1180,   214,   465,
2197 >     214,   112,  1174,   166,   214,  1045,  1047,    91,    -1,    -1,
2198 >      -1,   548,    -1,   214,   214,   214,   214,    -1,   214,   214,
2199 >     214,    -1,   214,    -1,    -1,   218,   217,   217,   217,   214,
2200 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2201 >     214,    -1,   214,   214,   214,   214,   214,    -1,   374,    -1,
2202 >      -1,    -1,    -1,    -1,    -1,   386,   222,    -1,    -1,    -1,
2203        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2204 <      -1,    -1,   267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2204 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   243,    -1,
2205        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2206 <      -1,    -1,    -1,    -1,    -1,    -1,   288
2206 >      -1,    -1,    -1,    -1,    -1,    -1,   356,    -1,    -1,    -1,
2207 >     288
2208   };
2209  
2210   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2211     symbol of state STATE-NUM.  */
2212   static const yytype_uint16 yystos[] =
2213   {
2214 <       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
2215 <      38,    39,    48,    62,    70,    71,    88,   102,   136,   145,
2216 <     146,   149,   150,   201,   222,   227,   232,   254,   260,   274,
2217 <     292,   310,   324,   339,   346,   350,   360,   369,   389,   399,
2218 <     405,   409,   419,   477,   494,   215,   216,   217,   217,   293,
2219 <     370,   400,   217,   410,   217,   325,   390,   311,   217,   217,
2220 <     275,   340,   217,   217,   351,   361,   217,     1,    24,    31,
2221 <      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
2222 <      66,    67,    73,    74,    75,    95,    96,   108,   109,   119,
2223 <     127,   478,   479,   480,   481,   482,   483,   484,   485,   486,
2224 <     487,   488,   489,   490,   491,   492,   493,   217,   217,   217,
2225 <       1,    61,   406,   407,   408,   217,     1,     6,     7,    12,
2214 >       0,   220,     0,     1,     4,    14,    17,    18,    23,    34,
2215 >      38,    39,    48,    62,    70,    71,    88,   102,   135,   144,
2216 >     145,   148,   149,   200,   221,   226,   231,   253,   259,   273,
2217 >     291,   308,   322,   337,   344,   348,   358,   367,   387,   397,
2218 >     403,   407,   417,   475,   492,   214,   215,   216,   216,   292,
2219 >     368,   398,   216,   408,   216,   323,   388,   309,   216,   216,
2220 >     274,   338,   216,   216,   349,   359,   216,     1,    24,    31,
2221 >      89,   254,   255,   256,   257,   258,     1,    21,    22,    27,
2222 >      66,    67,    73,    74,    75,    95,    96,   108,   109,   118,
2223 >     126,   476,   477,   478,   479,   480,   481,   482,   483,   484,
2224 >     485,   486,   487,   488,   489,   490,   491,   216,   216,   216,
2225 >       1,    61,   404,   405,   406,   216,     1,     6,     7,    12,
2226        20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
2227        46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
2228        83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
2229 <     111,   114,   148,   152,   155,   156,   157,   158,   159,   162,
2230 <     163,   202,   203,   204,   207,   212,   420,   421,   422,   423,
2231 <     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
2232 <     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
2233 <     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
2234 <     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2235 <     464,   465,   466,   470,   474,   475,   476,   217,   217,   217,
2236 <       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
2237 <     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
2238 <      53,    54,    69,   495,   496,   497,   498,   499,   500,   501,
2239 <     502,     1,    24,    57,    89,    91,    92,   128,   130,   131,
2240 <     132,   133,   147,   171,   181,   209,   210,   233,   234,   235,
2241 <     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2242 <     250,   251,   252,   253,   217,   217,     1,    89,   347,   348,
2243 <     349,   215,   218,   218,   218,   216,   256,   218,   218,   218,
2244 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2245 <     218,   216,   479,     1,    15,    16,    19,    76,    77,    78,
2246 <      81,    89,   100,   101,   115,   116,   143,   184,   294,   295,
2229 >     111,   114,   147,   151,   154,   155,   156,   157,   158,   161,
2230 >     162,   201,   202,   203,   206,   211,   418,   419,   420,   421,
2231 >     422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
2232 >     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
2233 >     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
2234 >     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
2235 >     462,   463,   464,   468,   472,   473,   474,   216,   216,   216,
2236 >       1,   207,   260,   261,   262,   263,   264,     1,    87,   113,
2237 >     227,   228,   229,   230,   216,   216,     1,    37,    51,    52,
2238 >      53,    54,    69,   493,   494,   495,   496,   497,   498,   499,
2239 >     500,     1,    24,    57,    89,    91,    92,   127,   129,   130,
2240 >     131,   132,   146,   170,   180,   208,   209,   232,   233,   234,
2241 >     235,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2242 >     249,   250,   251,   252,   216,   216,     1,    89,   345,   346,
2243 >     347,   214,   217,   217,   217,   215,   255,   217,   217,   217,
2244 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2245 >     217,   215,   477,     1,    15,    16,    19,    76,    77,    78,
2246 >      81,    89,   100,   101,   115,   142,   183,   293,   294,   295,
2247       296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2248 <     306,   307,   308,   309,     1,     3,     5,    17,    32,    36,
2249 <      56,    58,    68,    89,   117,   144,   171,   209,   371,   372,
2250 <     373,   374,   375,   376,   377,   378,   379,   380,   384,   385,
2251 <     386,   387,   388,     1,    61,   120,   401,   402,   403,   404,
2252 <     218,   216,   407,     1,    89,   120,   151,   411,   415,   416,
2253 <     417,   418,   218,   218,   218,   218,   218,   218,   218,   218,
2254 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2255 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2256 <     218,   471,   218,   467,   218,   218,   218,   218,   218,   218,
2257 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2258 <     218,   216,   421,     1,    17,    32,    36,   112,   121,   122,
2259 <     153,   206,   326,   327,   328,   329,   330,   331,   332,   336,
2260 <     337,   338,     1,   120,   151,   206,   391,   395,   396,   397,
2261 <     398,     1,    36,    56,    61,   117,   312,   316,   317,   318,
2262 <     322,   323,   215,   218,   216,   262,   214,   215,   218,   218,
2263 <     216,   229,     1,    17,    32,    36,    89,   112,   129,   192,
2264 <     206,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2265 <     288,     1,    14,    93,   120,   341,   342,   343,   344,   345,
2266 <     218,   218,   218,   218,   218,   218,   216,   496,   215,   218,
2267 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2268 <     218,   218,   218,   218,   216,   234,     1,    89,   151,   206,
2269 <     352,   353,   354,   355,   356,     1,    89,   151,   362,   363,
2270 <     364,   365,   218,   216,   348,   118,   118,   118,   215,    99,
2271 <      99,   160,    99,   224,   224,    99,    99,    99,   160,   160,
2272 <      99,   224,   160,   160,   215,   215,   218,   218,   218,   218,
2273 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2274 <     216,   295,   215,   218,   218,   218,   218,   381,   218,   218,
2275 <     218,   218,   218,   218,   218,   218,   216,   372,   218,   218,
2276 <     216,   402,   118,   215,   218,   218,   412,   216,   416,   160,
2277 <     224,   224,    99,   160,   160,    99,   118,   160,   224,   160,
2278 <     224,    99,    99,    99,   160,   160,   160,   224,    99,    99,
2279 <     224,    99,    99,   118,    99,    99,   160,   160,   218,   160,
2280 <     218,   224,   224,   160,   160,   160,   160,   160,   161,   160,
2281 <     161,   160,   160,   224,   224,   118,   224,   160,   160,   160,
2282 <     215,   215,   218,   218,   333,   218,   218,   218,   218,   218,
2283 <     216,   327,   218,   392,   218,   216,   396,   215,   313,   218,
2284 <     218,   218,   216,   317,   160,   215,   217,   118,   118,   215,
2285 <     215,   218,   218,   289,   218,   218,   218,   285,   218,   216,
2286 <     277,   215,   218,   218,   218,   216,   342,   160,   160,   118,
2287 <     160,   160,   224,   215,   118,   160,   118,   118,   118,   118,
2288 <     118,   118,   134,   135,   237,   238,   134,   135,   239,   240,
2289 <     118,   118,    99,   118,   118,   215,   215,   218,   357,   218,
2290 <     216,   353,   215,   218,   366,   216,   363,   118,   215,   215,
2291 <     215,   215,   215,   215,   215,   138,   139,   140,   141,   142,
2292 <     223,   224,   215,   215,   215,   215,   215,   215,   215,   215,
2293 <     215,   215,   215,    99,    99,   224,    99,    99,    99,    99,
2294 <     118,    99,    99,   224,   224,    99,   226,   226,   215,   118,
2295 <     178,   179,   118,   160,   218,   118,   118,   118,   118,    99,
2296 <     118,   118,   118,   215,   118,   118,   215,   215,   118,   118,
2297 <     218,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2298 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2299 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2300 <     215,    51,   166,   167,   168,   169,   170,   172,   173,   175,
2301 <     176,   177,   180,   182,   183,   185,   187,   189,   190,   193,
2302 <     199,   472,   473,   215,    51,   166,   167,   168,   169,   170,
2303 <     172,   173,   175,   176,   177,   180,   182,   183,   185,   187,
2304 <     189,   190,   193,   199,   468,   469,   215,   215,   215,   215,
2305 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2306 <     215,   215,   215,   215,   215,   118,   160,   218,   118,    99,
2307 <     118,   118,   118,   215,   118,   218,   118,   215,   218,   118,
2308 <     118,    99,   320,   321,   215,   215,     1,    89,   151,   213,
2309 <     266,   267,   268,   269,   270,   215,   215,   118,   160,   218,
2310 <     118,   118,   118,   218,   118,   215,   118,   118,   118,   215,
2311 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2312 <     215,   215,   215,   215,   215,   219,   215,   219,   215,   215,
2313 <     215,   215,   215,   118,   218,   118,   215,   118,   218,   215,
2314 <     215,   223,   223,   223,   223,   223,   215,   215,   215,   215,
2315 <     215,   215,   215,   215,   215,   215,   215,   215,     9,    10,
2316 <      11,   225,   226,   215,   215,   215,   215,   215,   215,   215,
2317 <       8,   191,   382,   383,   215,   215,   215,   215,   215,   215,
2318 <     215,   215,   215,   215,   215,   215,   123,   413,   414,   215,
2319 <     219,   215,   219,   215,   215,    13,    33,    43,    49,    65,
2320 <      90,    98,   137,   154,   334,   335,   215,   215,   215,   215,
2321 <     215,   215,   123,   393,   394,   215,    51,   186,   191,   314,
2322 <     315,   215,   215,   164,   219,   319,   215,   218,   271,   218,
2323 <     216,   267,   215,   215,     4,    25,    40,    47,    64,    87,
2324 <      94,   106,   124,   125,   126,   174,   183,   188,   194,   198,
2325 <     200,   205,   211,   290,   291,   215,   215,   215,    51,   166,
2326 <     167,   168,   169,   170,   172,   173,   175,   176,   177,   180,
2327 <     182,   183,   185,   187,   189,   190,   193,   199,   286,   287,
2328 <     215,   215,   215,   215,   238,   240,   215,    64,   136,   165,
2329 <     174,   180,   194,   196,   197,   205,   211,   358,   359,   215,
2330 <     215,    64,   136,   165,   174,   180,   194,   196,   197,   205,
2331 <     211,   367,   368,   225,   225,   225,   215,   219,   215,   219,
2332 <     473,   469,   215,   219,   215,   219,   215,   219,    99,   321,
2333 <     215,   118,   218,   195,   226,   215,   215,   219,   215,   219,
2334 <     215,   219,   215,   219,   383,   414,   335,   394,   315,   215,
2335 <      40,    62,    64,   102,   173,   174,   206,   272,   273,   215,
2336 <     215,   291,   287,   359,   368,   215,   219,   273
2248 >     306,   307,     1,     3,     5,    17,    32,    36,    56,    58,
2249 >      68,    89,   116,   143,   170,   208,   369,   370,   371,   372,
2250 >     373,   374,   375,   376,   377,   378,   382,   383,   384,   385,
2251 >     386,     1,    61,   119,   399,   400,   401,   402,   217,   215,
2252 >     405,     1,    89,   119,   150,   409,   413,   414,   415,   416,
2253 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2254 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2255 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   469,
2256 >     217,   465,   217,   217,   217,   217,   217,   217,   217,   217,
2257 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   215,
2258 >     419,     1,    17,    32,    36,   112,   120,   121,   152,   205,
2259 >     324,   325,   326,   327,   328,   329,   330,   334,   335,   336,
2260 >       1,   119,   150,   205,   389,   393,   394,   395,   396,     1,
2261 >      36,    56,    61,   116,   310,   314,   315,   316,   320,   321,
2262 >     214,   217,   215,   261,   213,   214,   217,   217,   215,   228,
2263 >       1,    17,    32,    36,    89,   112,   128,   191,   205,   275,
2264 >     276,   277,   278,   279,   280,   281,   282,   283,   287,     1,
2265 >      14,    93,   119,   339,   340,   341,   342,   343,   217,   217,
2266 >     217,   217,   217,   217,   215,   494,   214,   217,   217,   217,
2267 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2268 >     217,   217,   215,   233,     1,    89,   150,   205,   350,   351,
2269 >     352,   353,   354,     1,    89,   150,   360,   361,   362,   363,
2270 >     217,   215,   346,   117,   117,   117,   214,    99,    99,   159,
2271 >      99,   223,   223,    99,    99,    99,   159,   159,    99,   223,
2272 >     159,   159,   214,   214,   217,   217,   217,   217,   217,   217,
2273 >     217,   217,   217,   217,   217,   217,   217,   215,   294,   214,
2274 >     217,   217,   217,   217,   379,   217,   217,   217,   217,   217,
2275 >     217,   217,   217,   215,   370,   217,   217,   215,   400,   117,
2276 >     214,   217,   217,   410,   215,   414,   159,   223,   223,    99,
2277 >     159,   159,    99,   117,   159,   223,   159,   223,    99,    99,
2278 >      99,   159,   159,   159,   223,    99,    99,   223,    99,    99,
2279 >     117,    99,    99,   159,   159,   217,   159,   217,   223,   223,
2280 >     159,   159,   159,   159,   159,   160,   159,   160,   159,   159,
2281 >     223,   223,   117,   223,   159,   159,   159,   214,   214,   217,
2282 >     217,   331,   217,   217,   217,   217,   217,   215,   325,   217,
2283 >     390,   217,   215,   394,   214,   311,   217,   217,   217,   215,
2284 >     315,   159,   214,   216,   117,   117,   214,   214,   217,   217,
2285 >     288,   217,   217,   217,   284,   217,   215,   276,   214,   217,
2286 >     217,   217,   215,   340,   159,   159,   117,   159,   159,   223,
2287 >     214,   117,   159,   117,   117,   117,   117,   117,   117,   133,
2288 >     134,   236,   237,   133,   134,   238,   239,   117,   117,    99,
2289 >     117,   117,   214,   214,   217,   355,   217,   215,   351,   214,
2290 >     217,   364,   215,   361,   117,   214,   214,   214,   214,   214,
2291 >     214,   214,   137,   138,   139,   140,   141,   222,   223,   214,
2292 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2293 >      99,    99,   223,    99,    99,    99,    99,   117,    99,    99,
2294 >     223,    99,   225,   225,   214,   117,   177,   178,   117,   159,
2295 >     217,   117,   117,   117,   117,    99,   117,   117,   117,   214,
2296 >     117,   117,   214,   214,   117,   117,   217,   214,   214,   214,
2297 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2298 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2299 >     214,   214,   214,   214,   214,   214,   214,    51,   165,   166,
2300 >     167,   168,   169,   171,   172,   174,   175,   176,   179,   181,
2301 >     182,   184,   186,   188,   189,   192,   198,   470,   471,   214,
2302 >      51,   165,   166,   167,   168,   169,   171,   172,   174,   175,
2303 >     176,   179,   181,   182,   184,   186,   188,   189,   192,   198,
2304 >     466,   467,   214,   214,   214,   214,   214,   214,   214,   214,
2305 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2306 >     214,   117,   159,   217,   117,    99,   117,   117,   117,   214,
2307 >     117,   217,   117,   214,   217,   117,   117,    99,   318,   319,
2308 >     214,   214,     1,    89,   150,   212,   265,   266,   267,   268,
2309 >     269,   214,   214,   117,   159,   217,   117,   117,   117,   217,
2310 >     117,   214,   117,   117,   117,   214,   214,   214,   214,   214,
2311 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2312 >     214,   218,   214,   218,   214,   214,   214,   214,   214,   117,
2313 >     217,   117,   214,   117,   217,   214,   214,   222,   222,   222,
2314 >     222,   222,   214,   214,   214,   214,   214,   214,   214,   214,
2315 >     214,   214,   214,     9,    10,    11,   224,   225,   214,   214,
2316 >     214,   214,   214,   214,   214,     8,   190,   380,   381,   214,
2317 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2318 >     214,   122,   411,   412,   214,   218,   214,   218,   214,   214,
2319 >      13,    33,    43,    49,    65,    90,    98,   136,   153,   332,
2320 >     333,   214,   214,   214,   214,   214,   214,   122,   391,   392,
2321 >     214,    51,   185,   190,   312,   313,   214,   214,   163,   218,
2322 >     317,   214,   217,   270,   217,   215,   266,   214,   214,     4,
2323 >      25,    40,    47,    64,    87,    94,   106,   123,   124,   125,
2324 >     173,   182,   187,   193,   197,   199,   204,   210,   289,   290,
2325 >     214,   214,   214,    51,   165,   166,   167,   168,   169,   171,
2326 >     172,   174,   175,   176,   179,   181,   182,   184,   186,   188,
2327 >     189,   192,   198,   285,   286,   214,   214,   214,   214,   237,
2328 >     239,   214,    64,   135,   164,   173,   179,   193,   195,   196,
2329 >     204,   210,   356,   357,   214,   214,    64,   135,   164,   173,
2330 >     179,   193,   195,   196,   204,   210,   365,   366,   224,   224,
2331 >     224,   214,   218,   214,   218,   471,   467,   214,   218,   214,
2332 >     218,   214,   218,    99,   319,   214,   117,   217,   194,   225,
2333 >     214,   214,   218,   214,   218,   214,   218,   214,   218,   381,
2334 >     412,   333,   392,   313,   214,    40,    62,    64,   102,   172,
2335 >     173,   205,   271,   272,   214,   214,   290,   286,   357,   366,
2336 >     214,   218,   272
2337   };
2338  
2339   #define yyerrok         (yyerrstatus = 0)
# Line 2854 | Line 2885 | yydestruct (yymsg, yytype, yyvaluep)
2885   /* The lookahead symbol.  */
2886   int yychar;
2887  
2888 +
2889 + #ifndef YYLVAL_INITIALIZE
2890 + # define YYLVAL_INITIALIZE()
2891 + #endif
2892 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2893 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2894 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2895 + #endif
2896 +
2897   /* The semantic value of the lookahead symbol.  */
2898   YYSTYPE yylval;
2899  
# Line 2913 | Line 2953 | yyparse ()
2953    int yyn;
2954    int yyresult;
2955    /* Lookahead token as an internal (translated) token number.  */
2956 <  int yytoken;
2956 >  int yytoken = 0;
2957    /* The variables used to return semantic value and location from the
2958       action routines.  */
2959    YYSTYPE yyval;
# Line 2931 | Line 2971 | yyparse ()
2971       Keep to zero when no symbol should be popped.  */
2972    int yylen = 0;
2973  
2934  yytoken = 0;
2974    yyss = yyssa;
2975    yyvs = yyvsa;
2976    yystacksize = YYINITDEPTH;
# Line 2949 | Line 2988 | yyparse ()
2988       The wasted elements are never initialized.  */
2989    yyssp = yyss;
2990    yyvsp = yyvs;
2991 +
2992 +  YYLVAL_INITIALIZE ();
2993    goto yysetstate;
2994  
2995   /*------------------------------------------------------------.
# Line 3089 | Line 3130 | yybackup:
3130    yychar = YYEMPTY;
3131  
3132    yystate = yyn;
3133 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3134    *++yyvsp = yylval;
3135 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3136  
3137    goto yynewstate;
3138  
# Line 3126 | Line 3169 | yyreduce:
3169    switch (yyn)
3170      {
3171          case 26:
3172 < /* Line 1787 of yacc.c  */
3173 < #line 359 "conf_parser.y"
3172 > /* Line 1813 of yacc.c  */
3173 > #line 395 "conf_parser.y"
3174      { (yyval.number) = 0; }
3175      break;
3176  
3177    case 28:
3178 < /* Line 1787 of yacc.c  */
3179 < #line 361 "conf_parser.y"
3178 > /* Line 1813 of yacc.c  */
3179 > #line 397 "conf_parser.y"
3180      {
3181                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3182                  }
3183      break;
3184  
3185    case 29:
3186 < /* Line 1787 of yacc.c  */
3187 < #line 365 "conf_parser.y"
3186 > /* Line 1813 of yacc.c  */
3187 > #line 401 "conf_parser.y"
3188      {
3189                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3190                  }
3191      break;
3192  
3193    case 30:
3194 < /* Line 1787 of yacc.c  */
3195 < #line 369 "conf_parser.y"
3194 > /* Line 1813 of yacc.c  */
3195 > #line 405 "conf_parser.y"
3196      {
3197                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3198                  }
3199      break;
3200  
3201    case 31:
3202 < /* Line 1787 of yacc.c  */
3203 < #line 373 "conf_parser.y"
3202 > /* Line 1813 of yacc.c  */
3203 > #line 409 "conf_parser.y"
3204      {
3205                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3206                  }
3207      break;
3208  
3209    case 32:
3210 < /* Line 1787 of yacc.c  */
3211 < #line 377 "conf_parser.y"
3210 > /* Line 1813 of yacc.c  */
3211 > #line 413 "conf_parser.y"
3212      {
3213                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3214                  }
3215      break;
3216  
3217    case 33:
3218 < /* Line 1787 of yacc.c  */
3219 < #line 381 "conf_parser.y"
3218 > /* Line 1813 of yacc.c  */
3219 > #line 417 "conf_parser.y"
3220      {
3221                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3222                  }
3223      break;
3224  
3225    case 34:
3226 < /* Line 1787 of yacc.c  */
3227 < #line 386 "conf_parser.y"
3226 > /* Line 1813 of yacc.c  */
3227 > #line 422 "conf_parser.y"
3228      { (yyval.number) = 0; }
3229      break;
3230  
3231    case 36:
3232 < /* Line 1787 of yacc.c  */
3233 < #line 387 "conf_parser.y"
3232 > /* Line 1813 of yacc.c  */
3233 > #line 423 "conf_parser.y"
3234      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3235      break;
3236  
3237    case 37:
3238 < /* Line 1787 of yacc.c  */
3239 < #line 388 "conf_parser.y"
3238 > /* Line 1813 of yacc.c  */
3239 > #line 424 "conf_parser.y"
3240      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3241      break;
3242  
3243    case 38:
3244 < /* Line 1787 of yacc.c  */
3245 < #line 389 "conf_parser.y"
3244 > /* Line 1813 of yacc.c  */
3245 > #line 425 "conf_parser.y"
3246      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3247      break;
3248  
3249    case 39:
3250 < /* Line 1787 of yacc.c  */
3251 < #line 390 "conf_parser.y"
3250 > /* Line 1813 of yacc.c  */
3251 > #line 426 "conf_parser.y"
3252      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3253      break;
3254  
3255    case 46:
3256 < /* Line 1787 of yacc.c  */
3257 < #line 404 "conf_parser.y"
3256 > /* Line 1813 of yacc.c  */
3257 > #line 440 "conf_parser.y"
3258      {
3259    if (conf_parser_ctx.pass == 2)
3260      add_conf_module(libio_basename(yylval.string));
# Line 3219 | Line 3262 | yyreduce:
3262      break;
3263  
3264    case 47:
3265 < /* Line 1787 of yacc.c  */
3266 < #line 410 "conf_parser.y"
3265 > /* Line 1813 of yacc.c  */
3266 > #line 446 "conf_parser.y"
3267      {
3268    if (conf_parser_ctx.pass == 2)
3269      mod_add_path(yylval.string);
# Line 3228 | Line 3271 | yyreduce:
3271      break;
3272  
3273    case 71:
3274 < /* Line 1787 of yacc.c  */
3275 < #line 435 "conf_parser.y"
3274 > /* Line 1813 of yacc.c  */
3275 > #line 471 "conf_parser.y"
3276      {
3277   #ifdef HAVE_LIBCRYPTO
3278    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3239 | Line 3282 | yyreduce:
3282      break;
3283  
3284    case 72:
3285 < /* Line 1787 of yacc.c  */
3286 < #line 441 "conf_parser.y"
3285 > /* Line 1813 of yacc.c  */
3286 > #line 477 "conf_parser.y"
3287      {
3288   #ifdef HAVE_LIBCRYPTO
3289    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3250 | Line 3293 | yyreduce:
3293      break;
3294  
3295    case 75:
3296 < /* Line 1787 of yacc.c  */
3297 < #line 450 "conf_parser.y"
3296 > /* Line 1813 of yacc.c  */
3297 > #line 486 "conf_parser.y"
3298      {
3299   #ifdef HAVE_LIBCRYPTO
3300    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3261 | Line 3304 | yyreduce:
3304      break;
3305  
3306    case 76:
3307 < /* Line 1787 of yacc.c  */
3308 < #line 456 "conf_parser.y"
3307 > /* Line 1813 of yacc.c  */
3308 > #line 492 "conf_parser.y"
3309      {
3310   #ifdef HAVE_LIBCRYPTO
3311    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3272 | Line 3315 | yyreduce:
3315      break;
3316  
3317    case 77:
3318 < /* Line 1787 of yacc.c  */
3319 < #line 464 "conf_parser.y"
3318 > /* Line 1813 of yacc.c  */
3319 > #line 500 "conf_parser.y"
3320      {
3321   #ifdef HAVE_LIBCRYPTO
3322    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3314 | Line 3357 | yyreduce:
3357      break;
3358  
3359    case 78:
3360 < /* Line 1787 of yacc.c  */
3361 < #line 503 "conf_parser.y"
3360 > /* Line 1813 of yacc.c  */
3361 > #line 539 "conf_parser.y"
3362      {
3363   #ifdef HAVE_LIBCRYPTO
3364    if (conf_parser_ctx.pass == 1)
# Line 3334 | Line 3377 | yyreduce:
3377        ServerInfo.rsa_private_key_file = NULL;
3378      }
3379  
3380 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3380 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3381  
3382      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3383      {
# Line 3376 | Line 3419 | yyreduce:
3419      break;
3420  
3421    case 79:
3422 < /* Line 1787 of yacc.c  */
3423 < #line 562 "conf_parser.y"
3422 > /* Line 1813 of yacc.c  */
3423 > #line 598 "conf_parser.y"
3424      {
3425   /* TBD - XXX: error reporting */
3426   #ifdef HAVE_LIBCRYPTO
# Line 3407 | Line 3450 | yyreduce:
3450      break;
3451  
3452    case 80:
3453 < /* Line 1787 of yacc.c  */
3454 < #line 590 "conf_parser.y"
3453 > /* Line 1813 of yacc.c  */
3454 > #line 626 "conf_parser.y"
3455      {
3456   #ifdef HAVE_LIBCRYPTO
3457    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3418 | Line 3461 | yyreduce:
3461      break;
3462  
3463    case 81:
3464 < /* Line 1787 of yacc.c  */
3465 < #line 598 "conf_parser.y"
3464 > /* Line 1813 of yacc.c  */
3465 > #line 634 "conf_parser.y"
3466      {
3467    /* this isn't rehashable */
3468    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3469    {
3470      if (valid_servname(yylval.string))
3471 <      DupString(ServerInfo.name, yylval.string);
3471 >      ServerInfo.name = xstrdup(yylval.string);
3472      else
3473      {
3474        ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
# Line 3436 | Line 3479 | yyreduce:
3479      break;
3480  
3481    case 82:
3482 < /* Line 1787 of yacc.c  */
3483 < #line 613 "conf_parser.y"
3482 > /* Line 1813 of yacc.c  */
3483 > #line 649 "conf_parser.y"
3484      {
3485    /* this isn't rehashable */
3486    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3487    {
3488      if (valid_sid(yylval.string))
3489 <      DupString(ServerInfo.sid, yylval.string);
3489 >      ServerInfo.sid = xstrdup(yylval.string);
3490      else
3491      {
3492        ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
# Line 3454 | Line 3497 | yyreduce:
3497      break;
3498  
3499    case 83:
3500 < /* Line 1787 of yacc.c  */
3501 < #line 628 "conf_parser.y"
3500 > /* Line 1813 of yacc.c  */
3501 > #line 664 "conf_parser.y"
3502      {
3503    if (conf_parser_ctx.pass == 2)
3504    {
3505      MyFree(ServerInfo.description);
3506 <    DupString(ServerInfo.description,yylval.string);
3506 >    ServerInfo.description = xstrdup(yylval.string);
3507    }
3508   }
3509      break;
3510  
3511    case 84:
3512 < /* Line 1787 of yacc.c  */
3513 < #line 637 "conf_parser.y"
3512 > /* Line 1813 of yacc.c  */
3513 > #line 673 "conf_parser.y"
3514      {
3515    if (conf_parser_ctx.pass == 2)
3516    {
# Line 3477 | Line 3520 | yyreduce:
3520        p = '\0';
3521  
3522      MyFree(ServerInfo.network_name);
3523 <    DupString(ServerInfo.network_name, yylval.string);
3523 >    ServerInfo.network_name = xstrdup(yylval.string);
3524    }
3525   }
3526      break;
3527  
3528    case 85:
3529 < /* Line 1787 of yacc.c  */
3530 < #line 651 "conf_parser.y"
3529 > /* Line 1813 of yacc.c  */
3530 > #line 687 "conf_parser.y"
3531      {
3532    if (conf_parser_ctx.pass == 2)
3533    {
3534      MyFree(ServerInfo.network_desc);
3535 <    DupString(ServerInfo.network_desc, yylval.string);
3535 >    ServerInfo.network_desc = xstrdup(yylval.string);
3536    }
3537   }
3538      break;
3539  
3540    case 86:
3541 < /* Line 1787 of yacc.c  */
3542 < #line 660 "conf_parser.y"
3541 > /* Line 1813 of yacc.c  */
3542 > #line 696 "conf_parser.y"
3543      {
3544    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3545    {
# Line 3526 | Line 3569 | yyreduce:
3569      break;
3570  
3571    case 87:
3572 < /* Line 1787 of yacc.c  */
3573 < #line 688 "conf_parser.y"
3572 > /* Line 1813 of yacc.c  */
3573 > #line 724 "conf_parser.y"
3574      {
3575   #ifdef IPV6
3576    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3559 | Line 3602 | yyreduce:
3602      break;
3603  
3604    case 88:
3605 < /* Line 1787 of yacc.c  */
3606 < #line 718 "conf_parser.y"
3605 > /* Line 1813 of yacc.c  */
3606 > #line 754 "conf_parser.y"
3607      {
3608    if (conf_parser_ctx.pass == 2)
3609    {
# Line 3585 | Line 3628 | yyreduce:
3628      break;
3629  
3630    case 89:
3631 < /* Line 1787 of yacc.c  */
3632 < #line 741 "conf_parser.y"
3631 > /* Line 1813 of yacc.c  */
3632 > #line 777 "conf_parser.y"
3633      {
3634    if (conf_parser_ctx.pass == 2)
3635      ServerInfo.hub = yylval.number;
# Line 3594 | Line 3637 | yyreduce:
3637      break;
3638  
3639    case 97:
3640 < /* Line 1787 of yacc.c  */
3641 < #line 756 "conf_parser.y"
3640 > /* Line 1813 of yacc.c  */
3641 > #line 792 "conf_parser.y"
3642      {
3643    if (conf_parser_ctx.pass == 2)
3644    {
3645      MyFree(AdminInfo.name);
3646 <    DupString(AdminInfo.name, yylval.string);
3646 >    AdminInfo.name = xstrdup(yylval.string);
3647    }
3648   }
3649      break;
3650  
3651    case 98:
3652 < /* Line 1787 of yacc.c  */
3653 < #line 765 "conf_parser.y"
3652 > /* Line 1813 of yacc.c  */
3653 > #line 801 "conf_parser.y"
3654      {
3655    if (conf_parser_ctx.pass == 2)
3656    {
3657      MyFree(AdminInfo.email);
3658 <    DupString(AdminInfo.email, yylval.string);
3658 >    AdminInfo.email = xstrdup(yylval.string);
3659    }
3660   }
3661      break;
3662  
3663    case 99:
3664 < /* Line 1787 of yacc.c  */
3665 < #line 774 "conf_parser.y"
3664 > /* Line 1813 of yacc.c  */
3665 > #line 810 "conf_parser.y"
3666      {
3667    if (conf_parser_ctx.pass == 2)
3668    {
3669      MyFree(AdminInfo.description);
3670 <    DupString(AdminInfo.description, yylval.string);
3670 >    AdminInfo.description = xstrdup(yylval.string);
3671    }
3672   }
3673      break;
3674  
3675    case 106:
3676 < /* Line 1787 of yacc.c  */
3677 < #line 792 "conf_parser.y"
3676 > /* Line 1813 of yacc.c  */
3677 > #line 828 "conf_parser.y"
3678      {
3679    if (conf_parser_ctx.pass == 2)
3680      ConfigLoggingEntry.use_logging = yylval.number;
# Line 3639 | Line 3682 | yyreduce:
3682      break;
3683  
3684    case 107:
3685 < /* Line 1787 of yacc.c  */
3686 < #line 798 "conf_parser.y"
3685 > /* Line 1813 of yacc.c  */
3686 > #line 834 "conf_parser.y"
3687      {
3688    lfile[0] = '\0';
3689    ltype = 0;
# Line 3649 | Line 3692 | yyreduce:
3692      break;
3693  
3694    case 108:
3695 < /* Line 1787 of yacc.c  */
3696 < #line 803 "conf_parser.y"
3695 > /* Line 1813 of yacc.c  */
3696 > #line 839 "conf_parser.y"
3697      {
3698    if (conf_parser_ctx.pass == 2 && ltype > 0)
3699      log_add_file(ltype, lsize, lfile);
# Line 3658 | Line 3701 | yyreduce:
3701      break;
3702  
3703    case 115:
3704 < /* Line 1787 of yacc.c  */
3705 < #line 815 "conf_parser.y"
3704 > /* Line 1813 of yacc.c  */
3705 > #line 851 "conf_parser.y"
3706      {
3707    strlcpy(lfile, yylval.string, sizeof(lfile));
3708   }
3709      break;
3710  
3711    case 116:
3712 < /* Line 1787 of yacc.c  */
3713 < #line 820 "conf_parser.y"
3712 > /* Line 1813 of yacc.c  */
3713 > #line 856 "conf_parser.y"
3714      {
3715    lsize = (yyvsp[(3) - (4)].number);
3716   }
3717      break;
3718  
3719    case 117:
3720 < /* Line 1787 of yacc.c  */
3721 < #line 823 "conf_parser.y"
3720 > /* Line 1813 of yacc.c  */
3721 > #line 859 "conf_parser.y"
3722      {
3723    lsize = 0;
3724   }
3725      break;
3726  
3727    case 118:
3728 < /* Line 1787 of yacc.c  */
3729 < #line 828 "conf_parser.y"
3728 > /* Line 1813 of yacc.c  */
3729 > #line 864 "conf_parser.y"
3730      {
3731    if (conf_parser_ctx.pass == 2)
3732      ltype = 0;
# Line 3691 | Line 3734 | yyreduce:
3734      break;
3735  
3736    case 122:
3737 < /* Line 1787 of yacc.c  */
3738 < #line 835 "conf_parser.y"
3737 > /* Line 1813 of yacc.c  */
3738 > #line 871 "conf_parser.y"
3739      {
3740    if (conf_parser_ctx.pass == 2)
3741      ltype = LOG_TYPE_USER;
# Line 3700 | Line 3743 | yyreduce:
3743      break;
3744  
3745    case 123:
3746 < /* Line 1787 of yacc.c  */
3747 < #line 839 "conf_parser.y"
3746 > /* Line 1813 of yacc.c  */
3747 > #line 875 "conf_parser.y"
3748      {
3749    if (conf_parser_ctx.pass == 2)
3750      ltype = LOG_TYPE_OPER;
# Line 3709 | Line 3752 | yyreduce:
3752      break;
3753  
3754    case 124:
3755 < /* Line 1787 of yacc.c  */
3756 < #line 843 "conf_parser.y"
3755 > /* Line 1813 of yacc.c  */
3756 > #line 879 "conf_parser.y"
3757      {
3758    if (conf_parser_ctx.pass == 2)
3759      ltype = LOG_TYPE_GLINE;
# Line 3718 | Line 3761 | yyreduce:
3761      break;
3762  
3763    case 125:
3764 < /* Line 1787 of yacc.c  */
3765 < #line 847 "conf_parser.y"
3764 > /* Line 1813 of yacc.c  */
3765 > #line 883 "conf_parser.y"
3766      {
3767    if (conf_parser_ctx.pass == 2)
3768      ltype = LOG_TYPE_DLINE;
# Line 3727 | Line 3770 | yyreduce:
3770      break;
3771  
3772    case 126:
3773 < /* Line 1787 of yacc.c  */
3774 < #line 851 "conf_parser.y"
3773 > /* Line 1813 of yacc.c  */
3774 > #line 887 "conf_parser.y"
3775      {
3776    if (conf_parser_ctx.pass == 2)
3777      ltype = LOG_TYPE_KLINE;
# Line 3736 | Line 3779 | yyreduce:
3779      break;
3780  
3781    case 127:
3782 < /* Line 1787 of yacc.c  */
3783 < #line 855 "conf_parser.y"
3782 > /* Line 1813 of yacc.c  */
3783 > #line 891 "conf_parser.y"
3784      {
3785    if (conf_parser_ctx.pass == 2)
3786      ltype = LOG_TYPE_KILL;
# Line 3745 | Line 3788 | yyreduce:
3788      break;
3789  
3790    case 128:
3791 < /* Line 1787 of yacc.c  */
3792 < #line 859 "conf_parser.y"
3791 > /* Line 1813 of yacc.c  */
3792 > #line 895 "conf_parser.y"
3793      {
3794    if (conf_parser_ctx.pass == 2)
3795      ltype = LOG_TYPE_DEBUG;
# Line 3754 | Line 3797 | yyreduce:
3797      break;
3798  
3799    case 129:
3800 < /* Line 1787 of yacc.c  */
3801 < #line 869 "conf_parser.y"
3800 > /* Line 1813 of yacc.c  */
3801 > #line 905 "conf_parser.y"
3802      {
3803 <  if (conf_parser_ctx.pass == 2)
3804 <  {
3805 <    yy_conf = make_conf_item(OPER_TYPE);
3806 <    yy_aconf = map_to_conf(yy_conf);
3807 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3765 <  }
3766 <  else
3767 <  {
3768 <    MyFree(class_name);
3769 <    class_name = NULL;
3770 <  }
3803 >  if (conf_parser_ctx.pass != 2)
3804 >    break;
3805 >
3806 >  reset_block_state();
3807 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3808   }
3809      break;
3810  
3811    case 130:
3812 < /* Line 1787 of yacc.c  */
3813 < #line 882 "conf_parser.y"
3812 > /* Line 1813 of yacc.c  */
3813 > #line 912 "conf_parser.y"
3814      {
3815 <  if (conf_parser_ctx.pass == 2)
3779 <  {
3780 <    struct CollectItem *yy_tmp;
3781 <    dlink_node *ptr;
3782 <    dlink_node *next_ptr;
3815 >  dlink_node *ptr = NULL;
3816  
3817 <    conf_add_class_to_conf(yy_conf, class_name);
3818 <
3786 <    /* Now, make sure there is a copy of the "base" given oper
3787 <     * block in each of the collected copies
3788 <     */
3789 <
3790 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3791 <    {
3792 <      struct AccessItem *new_aconf;
3793 <      struct ConfItem *new_conf;
3794 <      yy_tmp = ptr->data;
3817 >  if (conf_parser_ctx.pass != 2)
3818 >    break;
3819  
3820 <      new_conf = make_conf_item(OPER_TYPE);
3821 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3820 >  if (!block_state.name.buf[0])
3821 >    break;
3822 > #ifdef HAVE_LIBCRYPTO
3823 >  if (!(block_state.file.buf[0] ||
3824 >        block_state.pass.buf[0]))
3825 >    break;
3826 > #else
3827 >  if (!block_state.pass.buf[0])
3828 >    break;
3829 > #endif
3830  
3831 <      new_aconf->flags = yy_aconf->flags;
3831 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3832 >  {
3833 >    struct MaskItem *conf = NULL;
3834 >    struct split_nuh_item nuh;
3835  
3836 <      if (yy_conf->name != NULL)
3837 <        DupString(new_conf->name, yy_conf->name);
3838 <      if (yy_tmp->user != NULL)
3839 <        DupString(new_aconf->user, yy_tmp->user);
3840 <      else
3841 <        DupString(new_aconf->user, "*");
3842 <      if (yy_tmp->host != NULL)
3843 <        DupString(new_aconf->host, yy_tmp->host);
3809 <      else
3810 <        DupString(new_aconf->host, "*");
3836 >    nuh.nuhmask  = ptr->data;
3837 >    nuh.nickptr  = NULL;
3838 >    nuh.userptr  = userbuf;
3839 >    nuh.hostptr  = hostbuf;
3840 >    nuh.nicksize = 0;
3841 >    nuh.usersize = sizeof(userbuf);
3842 >    nuh.hostsize = sizeof(hostbuf);
3843 >    split_nuh(&nuh);
3844  
3845 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3846 <                                     &new_aconf->bits);
3845 >    conf        = conf_make(CONF_OPER);
3846 >    conf->user  = xstrdup(userbuf);
3847 >    conf->host  = xstrdup(hostbuf);
3848 >
3849 >    if (block_state.pass.buf[0])
3850 >      conf->passwd = xstrdup(block_state.pass.buf);
3851 >
3852 >    conf->flags = block_state.flags.value;
3853 >    conf->modes = block_state.modes.value;
3854 >    conf->port  = block_state.port.value;
3855 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3856  
3857 <      conf_add_class_to_conf(new_conf, class_name);
3816 <      if (yy_aconf->passwd != NULL)
3817 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3857 >    conf_add_class_to_conf(conf, block_state.class.buf);
3858  
3819      new_aconf->port = yy_aconf->port;
3859   #ifdef HAVE_LIBCRYPTO
3860 <      if (yy_aconf->rsa_public_key_file != NULL)
3861 <      {
3862 <        BIO *file;
3863 <
3825 <        DupString(new_aconf->rsa_public_key_file,
3826 <                  yy_aconf->rsa_public_key_file);
3860 >    if (block_state.file.buf[0])
3861 >    {
3862 >      BIO *file = NULL;
3863 >      RSA *pkey = NULL;
3864  
3865 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3866 <        new_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3867 <                                                           NULL, 0, NULL);
3868 <        BIO_set_close(file, BIO_CLOSE);
3832 <        BIO_free(file);
3865 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3866 >      {
3867 >        yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3868 >        break;
3869        }
3834 #endif
3870  
3871 < #ifdef HAVE_LIBCRYPTO
3837 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3838 <          && yy_tmp->host)
3839 < #else
3840 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3841 < #endif
3871 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3872        {
3873 <        conf_add_class_to_conf(new_conf, class_name);
3874 <        if (yy_tmp->name != NULL)
3845 <          DupString(new_conf->name, yy_tmp->name);
3873 >        yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3874 >        break;
3875        }
3876  
3877 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3878 <      free_collect_item(yy_tmp);
3877 >      conf->rsa_public_key = pkey;
3878 >      BIO_set_close(file, BIO_CLOSE);
3879 >      BIO_free(file);
3880      }
3881 <
3852 <    yy_conf = NULL;
3853 <    yy_aconf = NULL;
3854 <
3855 <
3856 <    MyFree(class_name);
3857 <    class_name = NULL;
3881 > #endif /* HAVE_LIBCRYPTO */
3882    }
3883   }
3884      break;
3885  
3886    case 142:
3887 < /* Line 1787 of yacc.c  */
3888 < #line 972 "conf_parser.y"
3887 > /* Line 1813 of yacc.c  */
3888 > #line 989 "conf_parser.y"
3889      {
3890    if (conf_parser_ctx.pass == 2)
3891 <  {
3868 <    MyFree(yy_conf->name);
3869 <    DupString(yy_conf->name, yylval.string);
3870 <  }
3891 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3892   }
3893      break;
3894  
3895    case 143:
3896 < /* Line 1787 of yacc.c  */
3897 < #line 981 "conf_parser.y"
3896 > /* Line 1813 of yacc.c  */
3897 > #line 995 "conf_parser.y"
3898      {
3899    if (conf_parser_ctx.pass == 2)
3900 <  {
3880 <    struct split_nuh_item nuh;
3881 <
3882 <    nuh.nuhmask  = yylval.string;
3883 <    nuh.nickptr  = NULL;
3884 <    nuh.userptr  = userbuf;
3885 <    nuh.hostptr  = hostbuf;
3886 <
3887 <    nuh.nicksize = 0;
3888 <    nuh.usersize = sizeof(userbuf);
3889 <    nuh.hostsize = sizeof(hostbuf);
3890 <
3891 <    split_nuh(&nuh);
3892 <
3893 <    if (yy_aconf->user == NULL)
3894 <    {
3895 <      DupString(yy_aconf->user, userbuf);
3896 <      DupString(yy_aconf->host, hostbuf);
3897 <
3898 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
3899 <                                    &yy_aconf->bits);
3900 <    }
3901 <    else
3902 <    {
3903 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3904 <
3905 <      DupString(yy_tmp->user, userbuf);
3906 <      DupString(yy_tmp->host, hostbuf);
3907 <
3908 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3909 <    }
3910 <  }
3900 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3901   }
3902      break;
3903  
3904    case 144:
3905 < /* Line 1787 of yacc.c  */
3906 < #line 1018 "conf_parser.y"
3905 > /* Line 1813 of yacc.c  */
3906 > #line 1001 "conf_parser.y"
3907      {
3908    if (conf_parser_ctx.pass == 2)
3909 <  {
3920 <    if (yy_aconf->passwd != NULL)
3921 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3922 <
3923 <    MyFree(yy_aconf->passwd);
3924 <    DupString(yy_aconf->passwd, yylval.string);
3925 <  }
3909 >    strlcpy(block_state.pass.buf, yylval.string, sizeof(block_state.pass.buf));
3910   }
3911      break;
3912  
3913    case 145:
3914 < /* Line 1787 of yacc.c  */
3915 < #line 1030 "conf_parser.y"
3914 > /* Line 1813 of yacc.c  */
3915 > #line 1007 "conf_parser.y"
3916      {
3917    if (conf_parser_ctx.pass == 2)
3918    {
3919      if (yylval.number)
3920 <      SetConfEncrypted(yy_aconf);
3920 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3921      else
3922 <      ClearConfEncrypted(yy_aconf);
3922 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3923    }
3924   }
3925      break;
3926  
3927    case 146:
3928 < /* Line 1787 of yacc.c  */
3929 < #line 1041 "conf_parser.y"
3928 > /* Line 1813 of yacc.c  */
3929 > #line 1018 "conf_parser.y"
3930      {
3947 #ifdef HAVE_LIBCRYPTO
3931    if (conf_parser_ctx.pass == 2)
3932 <  {
3950 <    BIO *file;
3951 <
3952 <    if (yy_aconf->rsa_public_key != NULL)
3953 <    {
3954 <      RSA_free(yy_aconf->rsa_public_key);
3955 <      yy_aconf->rsa_public_key = NULL;
3956 <    }
3957 <
3958 <    if (yy_aconf->rsa_public_key_file != NULL)
3959 <    {
3960 <      MyFree(yy_aconf->rsa_public_key_file);
3961 <      yy_aconf->rsa_public_key_file = NULL;
3962 <    }
3963 <
3964 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3965 <    file = BIO_new_file(yylval.string, "r");
3966 <
3967 <    if (file == NULL)
3968 <    {
3969 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3970 <      break;
3971 <    }
3972 <
3973 <    yy_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3974 <
3975 <    if (yy_aconf->rsa_public_key == NULL)
3976 <    {
3977 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3978 <      break;
3979 <    }
3980 <
3981 <    BIO_set_close(file, BIO_CLOSE);
3982 <    BIO_free(file);
3983 <  }
3984 < #endif /* HAVE_LIBCRYPTO */
3932 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3933   }
3934      break;
3935  
3936    case 147:
3937 < /* Line 1787 of yacc.c  */
3938 < #line 1083 "conf_parser.y"
3937 > /* Line 1813 of yacc.c  */
3938 > #line 1024 "conf_parser.y"
3939      {
3940    if (conf_parser_ctx.pass == 2)
3941 <  {
3994 <    MyFree(class_name);
3995 <    DupString(class_name, yylval.string);
3996 <  }
3941 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3942   }
3943      break;
3944  
3945    case 148:
3946 < /* Line 1787 of yacc.c  */
3947 < #line 1092 "conf_parser.y"
3946 > /* Line 1813 of yacc.c  */
3947 > #line 1030 "conf_parser.y"
3948      {
3949    if (conf_parser_ctx.pass == 2)
3950 <    yy_aconf->modes = 0;
3950 >    block_state.modes.value = 0;
3951   }
3952      break;
3953  
3954    case 152:
3955 < /* Line 1787 of yacc.c  */
3956 < #line 1099 "conf_parser.y"
3955 > /* Line 1813 of yacc.c  */
3956 > #line 1037 "conf_parser.y"
3957      {
3958    if (conf_parser_ctx.pass == 2)
3959 <    yy_aconf->modes |= UMODE_BOTS;
3959 >    block_state.modes.value |= UMODE_BOTS;
3960   }
3961      break;
3962  
3963    case 153:
3964 < /* Line 1787 of yacc.c  */
3965 < #line 1103 "conf_parser.y"
3964 > /* Line 1813 of yacc.c  */
3965 > #line 1041 "conf_parser.y"
3966      {
3967    if (conf_parser_ctx.pass == 2)
3968 <    yy_aconf->modes |= UMODE_CCONN;
3968 >    block_state.modes.value |= UMODE_CCONN;
3969   }
3970      break;
3971  
3972    case 154:
3973 < /* Line 1787 of yacc.c  */
3974 < #line 1107 "conf_parser.y"
3973 > /* Line 1813 of yacc.c  */
3974 > #line 1045 "conf_parser.y"
3975      {
3976    if (conf_parser_ctx.pass == 2)
3977 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3977 >    block_state.modes.value |= UMODE_CCONN_FULL;
3978   }
3979      break;
3980  
3981    case 155:
3982 < /* Line 1787 of yacc.c  */
3983 < #line 1111 "conf_parser.y"
3982 > /* Line 1813 of yacc.c  */
3983 > #line 1049 "conf_parser.y"
3984      {
3985    if (conf_parser_ctx.pass == 2)
3986 <    yy_aconf->modes |= UMODE_DEAF;
3986 >    block_state.modes.value |= UMODE_DEAF;
3987   }
3988      break;
3989  
3990    case 156:
3991 < /* Line 1787 of yacc.c  */
3992 < #line 1115 "conf_parser.y"
3991 > /* Line 1813 of yacc.c  */
3992 > #line 1053 "conf_parser.y"
3993      {
3994    if (conf_parser_ctx.pass == 2)
3995 <    yy_aconf->modes |= UMODE_DEBUG;
3995 >    block_state.modes.value |= UMODE_DEBUG;
3996   }
3997      break;
3998  
3999    case 157:
4000 < /* Line 1787 of yacc.c  */
4001 < #line 1119 "conf_parser.y"
4000 > /* Line 1813 of yacc.c  */
4001 > #line 1057 "conf_parser.y"
4002      {
4003    if (conf_parser_ctx.pass == 2)
4004 <    yy_aconf->modes |= UMODE_FULL;
4004 >    block_state.modes.value |= UMODE_FULL;
4005   }
4006      break;
4007  
4008    case 158:
4009 < /* Line 1787 of yacc.c  */
4010 < #line 1123 "conf_parser.y"
4009 > /* Line 1813 of yacc.c  */
4010 > #line 1061 "conf_parser.y"
4011      {
4012    if (conf_parser_ctx.pass == 2)
4013 <    yy_aconf->modes |= UMODE_HIDDEN;
4013 >    block_state.modes.value |= UMODE_HIDDEN;
4014   }
4015      break;
4016  
4017    case 159:
4018 < /* Line 1787 of yacc.c  */
4019 < #line 1127 "conf_parser.y"
4018 > /* Line 1813 of yacc.c  */
4019 > #line 1065 "conf_parser.y"
4020      {
4021    if (conf_parser_ctx.pass == 2)
4022 <    yy_aconf->modes |= UMODE_SKILL;
4022 >    block_state.modes.value |= UMODE_SKILL;
4023   }
4024      break;
4025  
4026    case 160:
4027 < /* Line 1787 of yacc.c  */
4028 < #line 1131 "conf_parser.y"
4027 > /* Line 1813 of yacc.c  */
4028 > #line 1069 "conf_parser.y"
4029      {
4030    if (conf_parser_ctx.pass == 2)
4031 <    yy_aconf->modes |= UMODE_NCHANGE;
4031 >    block_state.modes.value |= UMODE_NCHANGE;
4032   }
4033      break;
4034  
4035    case 161:
4036 < /* Line 1787 of yacc.c  */
4037 < #line 1135 "conf_parser.y"
4036 > /* Line 1813 of yacc.c  */
4037 > #line 1073 "conf_parser.y"
4038      {
4039    if (conf_parser_ctx.pass == 2)
4040 <    yy_aconf->modes |= UMODE_REJ;
4040 >    block_state.modes.value |= UMODE_REJ;
4041   }
4042      break;
4043  
4044    case 162:
4045 < /* Line 1787 of yacc.c  */
4046 < #line 1139 "conf_parser.y"
4045 > /* Line 1813 of yacc.c  */
4046 > #line 1077 "conf_parser.y"
4047      {
4048    if (conf_parser_ctx.pass == 2)
4049 <    yy_aconf->modes |= UMODE_UNAUTH;
4049 >    block_state.modes.value |= UMODE_UNAUTH;
4050   }
4051      break;
4052  
4053    case 163:
4054 < /* Line 1787 of yacc.c  */
4055 < #line 1143 "conf_parser.y"
4054 > /* Line 1813 of yacc.c  */
4055 > #line 1081 "conf_parser.y"
4056      {
4057    if (conf_parser_ctx.pass == 2)
4058 <    yy_aconf->modes |= UMODE_SPY;
4058 >    block_state.modes.value |= UMODE_SPY;
4059   }
4060      break;
4061  
4062    case 164:
4063 < /* Line 1787 of yacc.c  */
4064 < #line 1147 "conf_parser.y"
4063 > /* Line 1813 of yacc.c  */
4064 > #line 1085 "conf_parser.y"
4065      {
4066    if (conf_parser_ctx.pass == 2)
4067 <    yy_aconf->modes |= UMODE_EXTERNAL;
4067 >    block_state.modes.value |= UMODE_EXTERNAL;
4068   }
4069      break;
4070  
4071    case 165:
4072 < /* Line 1787 of yacc.c  */
4073 < #line 1151 "conf_parser.y"
4072 > /* Line 1813 of yacc.c  */
4073 > #line 1089 "conf_parser.y"
4074      {
4075    if (conf_parser_ctx.pass == 2)
4076 <    yy_aconf->modes |= UMODE_OPERWALL;
4076 >    block_state.modes.value |= UMODE_OPERWALL;
4077   }
4078      break;
4079  
4080    case 166:
4081 < /* Line 1787 of yacc.c  */
4082 < #line 1155 "conf_parser.y"
4081 > /* Line 1813 of yacc.c  */
4082 > #line 1093 "conf_parser.y"
4083      {
4084    if (conf_parser_ctx.pass == 2)
4085 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4085 >    block_state.modes.value |= UMODE_SERVNOTICE;
4086   }
4087      break;
4088  
4089    case 167:
4090 < /* Line 1787 of yacc.c  */
4091 < #line 1159 "conf_parser.y"
4090 > /* Line 1813 of yacc.c  */
4091 > #line 1097 "conf_parser.y"
4092      {
4093    if (conf_parser_ctx.pass == 2)
4094 <    yy_aconf->modes |= UMODE_INVISIBLE;
4094 >    block_state.modes.value |= UMODE_INVISIBLE;
4095   }
4096      break;
4097  
4098    case 168:
4099 < /* Line 1787 of yacc.c  */
4100 < #line 1163 "conf_parser.y"
4099 > /* Line 1813 of yacc.c  */
4100 > #line 1101 "conf_parser.y"
4101      {
4102    if (conf_parser_ctx.pass == 2)
4103 <    yy_aconf->modes |= UMODE_WALLOP;
4103 >    block_state.modes.value |= UMODE_WALLOP;
4104   }
4105      break;
4106  
4107    case 169:
4108 < /* Line 1787 of yacc.c  */
4109 < #line 1167 "conf_parser.y"
4108 > /* Line 1813 of yacc.c  */
4109 > #line 1105 "conf_parser.y"
4110      {
4111    if (conf_parser_ctx.pass == 2)
4112 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4112 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4113   }
4114      break;
4115  
4116    case 170:
4117 < /* Line 1787 of yacc.c  */
4118 < #line 1171 "conf_parser.y"
4117 > /* Line 1813 of yacc.c  */
4118 > #line 1109 "conf_parser.y"
4119      {
4120    if (conf_parser_ctx.pass == 2)
4121 <    yy_aconf->modes |= UMODE_CALLERID;
4121 >    block_state.modes.value |= UMODE_CALLERID;
4122   }
4123      break;
4124  
4125    case 171:
4126 < /* Line 1787 of yacc.c  */
4127 < #line 1175 "conf_parser.y"
4126 > /* Line 1813 of yacc.c  */
4127 > #line 1113 "conf_parser.y"
4128      {
4129    if (conf_parser_ctx.pass == 2)
4130 <    yy_aconf->modes |= UMODE_LOCOPS;
4130 >    block_state.modes.value |= UMODE_LOCOPS;
4131   }
4132      break;
4133  
4134    case 172:
4135 < /* Line 1787 of yacc.c  */
4136 < #line 1181 "conf_parser.y"
4135 > /* Line 1813 of yacc.c  */
4136 > #line 1119 "conf_parser.y"
4137      {
4138    if (conf_parser_ctx.pass == 2)
4139 <    yy_aconf->port = 0;
4139 >    block_state.port.value = 0;
4140   }
4141      break;
4142  
4143    case 176:
4144 < /* Line 1787 of yacc.c  */
4145 < #line 1188 "conf_parser.y"
4144 > /* Line 1813 of yacc.c  */
4145 > #line 1126 "conf_parser.y"
4146      {
4147    if (conf_parser_ctx.pass == 2)
4148 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4148 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4149   }
4150      break;
4151  
4152    case 177:
4153 < /* Line 1787 of yacc.c  */
4154 < #line 1192 "conf_parser.y"
4153 > /* Line 1813 of yacc.c  */
4154 > #line 1130 "conf_parser.y"
4155      {
4156    if (conf_parser_ctx.pass == 2)
4157 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4157 >    block_state.port.value |= OPER_FLAG_REMOTE;
4158   }
4159      break;
4160  
4161    case 178:
4162 < /* Line 1787 of yacc.c  */
4163 < #line 1196 "conf_parser.y"
4162 > /* Line 1813 of yacc.c  */
4163 > #line 1134 "conf_parser.y"
4164      {
4165    if (conf_parser_ctx.pass == 2)
4166 <    yy_aconf->port |= OPER_FLAG_K;
4166 >    block_state.port.value |= OPER_FLAG_K;
4167   }
4168      break;
4169  
4170    case 179:
4171 < /* Line 1787 of yacc.c  */
4172 < #line 1200 "conf_parser.y"
4171 > /* Line 1813 of yacc.c  */
4172 > #line 1138 "conf_parser.y"
4173      {
4174    if (conf_parser_ctx.pass == 2)
4175 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4175 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4176   }
4177      break;
4178  
4179    case 180:
4180 < /* Line 1787 of yacc.c  */
4181 < #line 1204 "conf_parser.y"
4180 > /* Line 1813 of yacc.c  */
4181 > #line 1142 "conf_parser.y"
4182      {
4183    if (conf_parser_ctx.pass == 2)
4184 <    yy_aconf->port |= OPER_FLAG_DLINE;
4184 >    block_state.port.value |= OPER_FLAG_DLINE;
4185   }
4186      break;
4187  
4188    case 181:
4189 < /* Line 1787 of yacc.c  */
4190 < #line 1208 "conf_parser.y"
4189 > /* Line 1813 of yacc.c  */
4190 > #line 1146 "conf_parser.y"
4191      {
4192    if (conf_parser_ctx.pass == 2)
4193 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4193 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4194   }
4195      break;
4196  
4197    case 182:
4198 < /* Line 1787 of yacc.c  */
4199 < #line 1212 "conf_parser.y"
4198 > /* Line 1813 of yacc.c  */
4199 > #line 1150 "conf_parser.y"
4200      {
4201    if (conf_parser_ctx.pass == 2)
4202 <    yy_aconf->port |= OPER_FLAG_X;
4202 >    block_state.port.value |= OPER_FLAG_X;
4203   }
4204      break;
4205  
4206    case 183:
4207 < /* Line 1787 of yacc.c  */
4208 < #line 1216 "conf_parser.y"
4207 > /* Line 1813 of yacc.c  */
4208 > #line 1154 "conf_parser.y"
4209      {
4210    if (conf_parser_ctx.pass == 2)
4211 <    yy_aconf->port |= OPER_FLAG_GLINE;
4211 >    block_state.port.value |= OPER_FLAG_GLINE;
4212   }
4213      break;
4214  
4215    case 184:
4216 < /* Line 1787 of yacc.c  */
4217 < #line 1220 "conf_parser.y"
4216 > /* Line 1813 of yacc.c  */
4217 > #line 1158 "conf_parser.y"
4218      {
4219    if (conf_parser_ctx.pass == 2)
4220 <    yy_aconf->port |= OPER_FLAG_DIE;
4220 >    block_state.port.value |= OPER_FLAG_DIE;
4221   }
4222      break;
4223  
4224    case 185:
4225 < /* Line 1787 of yacc.c  */
4226 < #line 1224 "conf_parser.y"
4225 > /* Line 1813 of yacc.c  */
4226 > #line 1162 "conf_parser.y"
4227      {
4228    if (conf_parser_ctx.pass == 2)
4229 <    yy_aconf->port |= OPER_FLAG_RESTART;
4229 >    block_state.port.value |= OPER_FLAG_RESTART;
4230   }
4231      break;
4232  
4233    case 186:
4234 < /* Line 1787 of yacc.c  */
4235 < #line 1228 "conf_parser.y"
4234 > /* Line 1813 of yacc.c  */
4235 > #line 1166 "conf_parser.y"
4236      {
4237    if (conf_parser_ctx.pass == 2)
4238 <    yy_aconf->port |= OPER_FLAG_REHASH;
4238 >    block_state.port.value |= OPER_FLAG_REHASH;
4239   }
4240      break;
4241  
4242    case 187:
4243 < /* Line 1787 of yacc.c  */
4244 < #line 1232 "conf_parser.y"
4243 > /* Line 1813 of yacc.c  */
4244 > #line 1170 "conf_parser.y"
4245      {
4246    if (conf_parser_ctx.pass == 2)
4247 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4247 >    block_state.port.value |= OPER_FLAG_ADMIN;
4248   }
4249      break;
4250  
4251    case 188:
4252 < /* Line 1787 of yacc.c  */
4253 < #line 1236 "conf_parser.y"
4252 > /* Line 1813 of yacc.c  */
4253 > #line 1174 "conf_parser.y"
4254      {
4255    if (conf_parser_ctx.pass == 2)
4256 <    yy_aconf->port |= OPER_FLAG_N;
4256 >    block_state.port.value |= OPER_FLAG_N;
4257   }
4258      break;
4259  
4260    case 189:
4261 < /* Line 1787 of yacc.c  */
4262 < #line 1240 "conf_parser.y"
4261 > /* Line 1813 of yacc.c  */
4262 > #line 1178 "conf_parser.y"
4263      {
4264    if (conf_parser_ctx.pass == 2)
4265 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4265 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4266   }
4267      break;
4268  
4269    case 190:
4270 < /* Line 1787 of yacc.c  */
4271 < #line 1244 "conf_parser.y"
4270 > /* Line 1813 of yacc.c  */
4271 > #line 1182 "conf_parser.y"
4272      {
4273    if (conf_parser_ctx.pass == 2)
4274 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4274 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4275   }
4276      break;
4277  
4278    case 191:
4279 < /* Line 1787 of yacc.c  */
4280 < #line 1248 "conf_parser.y"
4279 > /* Line 1813 of yacc.c  */
4280 > #line 1186 "conf_parser.y"
4281      {
4282    if (conf_parser_ctx.pass == 2)
4283 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4283 >    block_state.port.value |= OPER_FLAG_OPER_SPY;
4284   }
4285      break;
4286  
4287    case 192:
4288 < /* Line 1787 of yacc.c  */
4289 < #line 1252 "conf_parser.y"
4288 > /* Line 1813 of yacc.c  */
4289 > #line 1190 "conf_parser.y"
4290      {
4291    if (conf_parser_ctx.pass == 2)
4292 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4292 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4293   }
4294      break;
4295  
4296    case 193:
4297 < /* Line 1787 of yacc.c  */
4298 < #line 1256 "conf_parser.y"
4297 > /* Line 1813 of yacc.c  */
4298 > #line 1194 "conf_parser.y"
4299      {
4300    if (conf_parser_ctx.pass == 2)
4301 <    yy_aconf->port |= OPER_FLAG_SET;
4301 >    block_state.port.value |= OPER_FLAG_SET;
4302   }
4303      break;
4304  
4305    case 194:
4306 < /* Line 1787 of yacc.c  */
4307 < #line 1260 "conf_parser.y"
4306 > /* Line 1813 of yacc.c  */
4307 > #line 1198 "conf_parser.y"
4308      {
4309    if (conf_parser_ctx.pass == 2)
4310 <    yy_aconf->port |= OPER_FLAG_MODULE;
4310 >    block_state.port.value |= OPER_FLAG_MODULE;
4311   }
4312      break;
4313  
4314    case 195:
4315 < /* Line 1787 of yacc.c  */
4316 < #line 1270 "conf_parser.y"
4315 > /* Line 1813 of yacc.c  */
4316 > #line 1208 "conf_parser.y"
4317      {
4318    if (conf_parser_ctx.pass == 1)
4319    {
4320 <    yy_conf = make_conf_item(CLASS_TYPE);
4376 <    yy_class = map_to_conf(yy_conf);
4320 >    yy_class = class_make();
4321    }
4322   }
4323      break;
4324  
4325    case 196:
4326 < /* Line 1787 of yacc.c  */
4327 < #line 1277 "conf_parser.y"
4326 > /* Line 1813 of yacc.c  */
4327 > #line 1214 "conf_parser.y"
4328      {
4329    if (conf_parser_ctx.pass == 1)
4330    {
4387    struct ConfItem *cconf = NULL;
4331      struct ClassItem *class = NULL;
4332  
4333      if (yy_class_name == NULL)
4334 <      delete_conf_item(yy_conf);
4334 >      class_free(yy_class);
4335      else
4336      {
4337 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4337 >      class = class_find(yy_class_name, 0);
4338  
4339 <      if (cconf != NULL)                /* The class existed already */
4339 >      if (class != NULL)                /* The class existed already */
4340        {
4341          int user_count = 0;
4342  
4343 <        rebuild_cidr_class(cconf, yy_class);
4343 >        rebuild_cidr_class(class, yy_class);
4344  
4345 <        class = map_to_conf(cconf);
4403 <
4404 <        user_count = class->curr_user_count;
4345 >        user_count = class->ref_count;
4346          memcpy(class, yy_class, sizeof(*class));
4347 <        class->curr_user_count = user_count;
4347 >        class->ref_count = user_count;
4348          class->active = 1;
4349  
4350 <        delete_conf_item(yy_conf);
4350 >        class_free(yy_class);
4351  
4352 <        MyFree(cconf->name);            /* Allows case change of class name */
4353 <        cconf->name = yy_class_name;
4352 >        MyFree(class->name);            /* Allows case change of class name */
4353 >        class->name = yy_class_name;
4354        }
4355        else      /* Brand new class */
4356        {
4357 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4358 <        yy_conf->name = yy_class_name;
4357 >        MyFree(yy_class->name);          /* just in case it was allocated */
4358 >        yy_class->name = yy_class_name;
4359          yy_class->active = 1;
4360        }
4361      }
# Line 4424 | Line 4365 | yyreduce:
4365   }
4366      break;
4367  
4368 <  case 214:
4369 < /* Line 1787 of yacc.c  */
4370 < #line 1335 "conf_parser.y"
4368 >  case 213:
4369 > /* Line 1813 of yacc.c  */
4370 > #line 1268 "conf_parser.y"
4371      {
4372    if (conf_parser_ctx.pass == 1)
4373    {
4374      MyFree(yy_class_name);
4375 <    DupString(yy_class_name, yylval.string);
4375 >    yy_class_name = xstrdup(yylval.string);
4376    }
4377   }
4378      break;
4379  
4380 <  case 215:
4381 < /* Line 1787 of yacc.c  */
4382 < #line 1344 "conf_parser.y"
4380 >  case 214:
4381 > /* Line 1813 of yacc.c  */
4382 > #line 1277 "conf_parser.y"
4383      {
4384    if (conf_parser_ctx.pass == 1)
4385      yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4386   }
4387      break;
4388  
4389 <  case 216:
4390 < /* Line 1787 of yacc.c  */
4391 < #line 1350 "conf_parser.y"
4451 <    {
4452 <  if (conf_parser_ctx.pass == 1)
4453 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4454 < }
4455 <    break;
4456 <
4457 <  case 217:
4458 < /* Line 1787 of yacc.c  */
4459 < #line 1356 "conf_parser.y"
4389 >  case 215:
4390 > /* Line 1813 of yacc.c  */
4391 > #line 1283 "conf_parser.y"
4392      {
4393    if (conf_parser_ctx.pass == 1)
4394      yy_class->max_perip = (yyvsp[(3) - (4)].number);
4395   }
4396      break;
4397  
4398 <  case 218:
4399 < /* Line 1787 of yacc.c  */
4400 < #line 1362 "conf_parser.y"
4398 >  case 216:
4399 > /* Line 1813 of yacc.c  */
4400 > #line 1289 "conf_parser.y"
4401      {
4402    if (conf_parser_ctx.pass == 1)
4403      yy_class->con_freq = (yyvsp[(3) - (4)].number);
4404   }
4405      break;
4406  
4407 <  case 219:
4408 < /* Line 1787 of yacc.c  */
4409 < #line 1368 "conf_parser.y"
4407 >  case 217:
4408 > /* Line 1813 of yacc.c  */
4409 > #line 1295 "conf_parser.y"
4410      {
4411    if (conf_parser_ctx.pass == 1)
4412      yy_class->max_total = (yyvsp[(3) - (4)].number);
4413   }
4414      break;
4415  
4416 <  case 220:
4417 < /* Line 1787 of yacc.c  */
4418 < #line 1374 "conf_parser.y"
4416 >  case 218:
4417 > /* Line 1813 of yacc.c  */
4418 > #line 1301 "conf_parser.y"
4419      {
4420    if (conf_parser_ctx.pass == 1)
4421      yy_class->max_global = (yyvsp[(3) - (4)].number);
4422   }
4423      break;
4424  
4425 <  case 221:
4426 < /* Line 1787 of yacc.c  */
4427 < #line 1380 "conf_parser.y"
4425 >  case 219:
4426 > /* Line 1813 of yacc.c  */
4427 > #line 1307 "conf_parser.y"
4428      {
4429    if (conf_parser_ctx.pass == 1)
4430      yy_class->max_local = (yyvsp[(3) - (4)].number);
4431   }
4432      break;
4433  
4434 <  case 222:
4435 < /* Line 1787 of yacc.c  */
4436 < #line 1386 "conf_parser.y"
4434 >  case 220:
4435 > /* Line 1813 of yacc.c  */
4436 > #line 1313 "conf_parser.y"
4437      {
4438    if (conf_parser_ctx.pass == 1)
4439      yy_class->max_ident = (yyvsp[(3) - (4)].number);
4440   }
4441      break;
4442  
4443 <  case 223:
4444 < /* Line 1787 of yacc.c  */
4445 < #line 1392 "conf_parser.y"
4443 >  case 221:
4444 > /* Line 1813 of yacc.c  */
4445 > #line 1319 "conf_parser.y"
4446      {
4447    if (conf_parser_ctx.pass == 1)
4448      yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4449   }
4450      break;
4451  
4452 <  case 224:
4453 < /* Line 1787 of yacc.c  */
4454 < #line 1398 "conf_parser.y"
4452 >  case 222:
4453 > /* Line 1813 of yacc.c  */
4454 > #line 1325 "conf_parser.y"
4455      {
4456    if (conf_parser_ctx.pass == 1)
4457      if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
# Line 4527 | Line 4459 | yyreduce:
4459   }
4460      break;
4461  
4462 <  case 225:
4463 < /* Line 1787 of yacc.c  */
4464 < #line 1405 "conf_parser.y"
4462 >  case 223:
4463 > /* Line 1813 of yacc.c  */
4464 > #line 1332 "conf_parser.y"
4465      {
4466    if (conf_parser_ctx.pass == 1)
4467      yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4468   }
4469      break;
4470  
4471 <  case 226:
4472 < /* Line 1787 of yacc.c  */
4473 < #line 1411 "conf_parser.y"
4471 >  case 224:
4472 > /* Line 1813 of yacc.c  */
4473 > #line 1338 "conf_parser.y"
4474      {
4475    if (conf_parser_ctx.pass == 1)
4476      yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4477   }
4478      break;
4479  
4480 <  case 227:
4481 < /* Line 1787 of yacc.c  */
4482 < #line 1417 "conf_parser.y"
4480 >  case 225:
4481 > /* Line 1813 of yacc.c  */
4482 > #line 1344 "conf_parser.y"
4483      {
4484    if (conf_parser_ctx.pass == 1)
4485      yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4486   }
4487      break;
4488  
4489 <  case 228:
4490 < /* Line 1787 of yacc.c  */
4491 < #line 1426 "conf_parser.y"
4560 <    {
4561 <  if (conf_parser_ctx.pass == 2)
4562 <  {
4563 <    listener_address = NULL;
4564 <    listener_flags = 0;
4565 <  }
4566 < }
4567 <    break;
4568 <
4569 <  case 229:
4570 < /* Line 1787 of yacc.c  */
4571 < #line 1433 "conf_parser.y"
4489 >  case 226:
4490 > /* Line 1813 of yacc.c  */
4491 > #line 1353 "conf_parser.y"
4492      {
4493    if (conf_parser_ctx.pass == 2)
4494 <  {
4575 <    MyFree(listener_address);
4576 <    listener_address = NULL;
4577 <  }
4494 >    reset_block_state();
4495   }
4496      break;
4497  
4498 <  case 230:
4499 < /* Line 1787 of yacc.c  */
4500 < #line 1442 "conf_parser.y"
4498 >  case 228:
4499 > /* Line 1813 of yacc.c  */
4500 > #line 1359 "conf_parser.y"
4501      {
4502 <  listener_flags = 0;
4502 >  block_state.flags.value = 0;
4503   }
4504      break;
4505  
4506 <  case 234:
4507 < /* Line 1787 of yacc.c  */
4508 < #line 1448 "conf_parser.y"
4506 >  case 232:
4507 > /* Line 1813 of yacc.c  */
4508 > #line 1365 "conf_parser.y"
4509      {
4510    if (conf_parser_ctx.pass == 2)
4511 <    listener_flags |= LISTENER_SSL;
4511 >    block_state.flags.value |= LISTENER_SSL;
4512   }
4513      break;
4514  
4515 <  case 235:
4516 < /* Line 1787 of yacc.c  */
4517 < #line 1452 "conf_parser.y"
4515 >  case 233:
4516 > /* Line 1813 of yacc.c  */
4517 > #line 1369 "conf_parser.y"
4518      {
4519    if (conf_parser_ctx.pass == 2)
4520 <    listener_flags |= LISTENER_HIDDEN;
4520 >    block_state.flags.value |=LISTENER_HIDDEN;
4521   }
4522      break;
4523  
4524 <  case 236:
4525 < /* Line 1787 of yacc.c  */
4526 < #line 1456 "conf_parser.y"
4524 >  case 234:
4525 > /* Line 1813 of yacc.c  */
4526 > #line 1373 "conf_parser.y"
4527      {
4528    if (conf_parser_ctx.pass == 2)
4529 <    listener_flags |= LISTENER_SERVER;
4529 >   block_state.flags.value |=LISTENER_SERVER;
4530   }
4531      break;
4532  
4533 <  case 244:
4534 < /* Line 1787 of yacc.c  */
4535 < #line 1466 "conf_parser.y"
4536 <    { listener_flags = 0; }
4533 >  case 242:
4534 > /* Line 1813 of yacc.c  */
4535 > #line 1381 "conf_parser.y"
4536 >    { block_state.flags.value |= 0; }
4537      break;
4538  
4539 <  case 248:
4540 < /* Line 1787 of yacc.c  */
4541 < #line 1471 "conf_parser.y"
4539 >  case 246:
4540 > /* Line 1813 of yacc.c  */
4541 > #line 1386 "conf_parser.y"
4542      {
4543    if (conf_parser_ctx.pass == 2)
4544    {
4545 <    if ((listener_flags & LISTENER_SSL))
4545 >    if (block_state.flags.value & LISTENER_SSL)
4546   #ifdef HAVE_LIBCRYPTO
4547        if (!ServerInfo.server_ctx)
4548   #endif
# Line 4633 | Line 4550 | yyreduce:
4550          yyerror("SSL not available - port closed");
4551          break;
4552        }
4553 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4553 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4554    }
4555   }
4556      break;
4557  
4558 <  case 249:
4559 < /* Line 1787 of yacc.c  */
4560 < #line 1485 "conf_parser.y"
4558 >  case 247:
4559 > /* Line 1813 of yacc.c  */
4560 > #line 1400 "conf_parser.y"
4561      {
4562    if (conf_parser_ctx.pass == 2)
4563    {
4564      int i;
4565  
4566 <    if ((listener_flags & LISTENER_SSL))
4566 >    if (block_state.flags.value & LISTENER_SSL)
4567   #ifdef HAVE_LIBCRYPTO
4568        if (!ServerInfo.server_ctx)
4569   #endif
# Line 4656 | Line 4573 | yyreduce:
4573        }
4574  
4575      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4576 <      add_listener(i, listener_address, listener_flags);
4576 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4577    }
4578   }
4579      break;
4580  
4581 <  case 250:
4582 < /* Line 1787 of yacc.c  */
4583 < #line 1505 "conf_parser.y"
4581 >  case 248:
4582 > /* Line 1813 of yacc.c  */
4583 > #line 1420 "conf_parser.y"
4584      {
4585    if (conf_parser_ctx.pass == 2)
4586 <  {
4670 <    MyFree(listener_address);
4671 <    DupString(listener_address, yylval.string);
4672 <  }
4586 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4587   }
4588      break;
4589  
4590 <  case 251:
4591 < /* Line 1787 of yacc.c  */
4592 < #line 1514 "conf_parser.y"
4590 >  case 249:
4591 > /* Line 1813 of yacc.c  */
4592 > #line 1426 "conf_parser.y"
4593      {
4594    if (conf_parser_ctx.pass == 2)
4595 <  {
4682 <    MyFree(listener_address);
4683 <    DupString(listener_address, yylval.string);
4684 <  }
4595 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4596   }
4597      break;
4598  
4599 <  case 252:
4600 < /* Line 1787 of yacc.c  */
4601 < #line 1526 "conf_parser.y"
4599 >  case 250:
4600 > /* Line 1813 of yacc.c  */
4601 > #line 1435 "conf_parser.y"
4602      {
4603    if (conf_parser_ctx.pass == 2)
4604 <  {
4694 <    yy_conf = make_conf_item(CLIENT_TYPE);
4695 <    yy_aconf = map_to_conf(yy_conf);
4696 <  }
4697 <  else
4698 <  {
4699 <    MyFree(class_name);
4700 <    class_name = NULL;
4701 <  }
4604 >    reset_block_state();
4605   }
4606      break;
4607  
4608 <  case 253:
4609 < /* Line 1787 of yacc.c  */
4610 < #line 1538 "conf_parser.y"
4708 <    {
4709 <  if (conf_parser_ctx.pass == 2)
4710 <  {
4711 <    struct CollectItem *yy_tmp = NULL;
4712 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4713 <
4714 <    if (yy_aconf->user && yy_aconf->host)
4715 <    {
4716 <      conf_add_class_to_conf(yy_conf, class_name);
4717 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4718 <    }
4719 <    else
4720 <      delete_conf_item(yy_conf);
4721 <
4722 <    /* copy over settings from first struct */
4723 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4608 >  case 251:
4609 > /* Line 1813 of yacc.c  */
4610 > #line 1439 "conf_parser.y"
4611      {
4612 <      struct AccessItem *new_aconf;
4726 <      struct ConfItem *new_conf;
4727 <
4728 <      new_conf = make_conf_item(CLIENT_TYPE);
4729 <      new_aconf = map_to_conf(new_conf);
4730 <
4731 <      yy_tmp = ptr->data;
4732 <
4733 <      assert(yy_tmp->user && yy_tmp->host);
4734 <
4735 <      if (yy_aconf->passwd != NULL)
4736 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4737 <      if (yy_conf->name != NULL)
4738 <        DupString(new_conf->name, yy_conf->name);
4739 <      if (yy_aconf->passwd != NULL)
4740 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4741 <
4742 <      new_aconf->flags = yy_aconf->flags;
4743 <      new_aconf->port  = yy_aconf->port;
4744 <
4745 <      DupString(new_aconf->user, yy_tmp->user);
4746 <      collapse(new_aconf->user);
4747 <
4748 <      DupString(new_aconf->host, yy_tmp->host);
4749 <      collapse(new_aconf->host);
4750 <
4751 <      conf_add_class_to_conf(new_conf, class_name);
4752 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4753 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4754 <      free_collect_item(yy_tmp);
4755 <    }
4612 >  dlink_node *ptr = NULL;
4613  
4614 <    MyFree(class_name);
4758 <    class_name = NULL;
4759 <    yy_conf = NULL;
4760 <    yy_aconf = NULL;
4761 <  }
4762 < }
4614 >  if (conf_parser_ctx.pass != 2)
4615      break;
4616  
4617 <  case 265:
4766 < /* Line 1787 of yacc.c  */
4767 < #line 1600 "conf_parser.y"
4768 <    {
4769 <  if (conf_parser_ctx.pass == 2)
4617 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4618    {
4619 <    struct CollectItem *yy_tmp = NULL;
4619 >    struct MaskItem *conf = NULL;
4620      struct split_nuh_item nuh;
4621  
4622 <    nuh.nuhmask  = yylval.string;
4622 >    nuh.nuhmask  = ptr->data;
4623      nuh.nickptr  = NULL;
4624      nuh.userptr  = userbuf;
4625      nuh.hostptr  = hostbuf;
4778
4626      nuh.nicksize = 0;
4627      nuh.usersize = sizeof(userbuf);
4628      nuh.hostsize = sizeof(hostbuf);
4782
4629      split_nuh(&nuh);
4630  
4631 <    if (yy_aconf->user == NULL)
4632 <    {
4633 <      DupString(yy_aconf->user, userbuf);
4788 <      DupString(yy_aconf->host, hostbuf);
4789 <    }
4790 <    else
4791 <    {
4792 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4631 >    conf        = conf_make(CONF_CLIENT);
4632 >    conf->user  = xstrdup(collapse(userbuf));
4633 >    conf->host  = xstrdup(collapse(hostbuf));
4634  
4635 <      DupString(yy_tmp->user, userbuf);
4636 <      DupString(yy_tmp->host, hostbuf);
4635 >    if (block_state.pass.buf[0])
4636 >      conf->passwd = xstrdup(block_state.pass.buf);
4637 >    if (block_state.name.buf[0])
4638 >      conf->passwd = xstrdup(block_state.name.buf);
4639  
4640 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4641 <    }
4640 >    conf->flags = block_state.flags.value;
4641 >    conf->port  = block_state.port.value;
4642 >
4643 >    conf_add_class_to_conf(conf, block_state.class.buf);
4644 >    add_conf_by_address(CONF_CLIENT, conf);
4645    }
4646   }
4647      break;
4648  
4649 <  case 266:
4650 < /* Line 1787 of yacc.c  */
4651 < #line 1635 "conf_parser.y"
4649 >  case 263:
4650 > /* Line 1813 of yacc.c  */
4651 > #line 1482 "conf_parser.y"
4652      {
4653    if (conf_parser_ctx.pass == 2)
4654 <  {
4655 <    /* be paranoid */
4656 <    if (yy_aconf->passwd != NULL)
4811 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4654 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4655 > }
4656 >    break;
4657  
4658 <    MyFree(yy_aconf->passwd);
4659 <    DupString(yy_aconf->passwd, yylval.string);
4660 <  }
4658 >  case 264:
4659 > /* Line 1813 of yacc.c  */
4660 > #line 1488 "conf_parser.y"
4661 >    {
4662 >  if (conf_parser_ctx.pass == 2)
4663 >    strlcpy(block_state.pass.buf, yylval.string, sizeof(block_state.pass.buf));
4664   }
4665      break;
4666  
4667 <  case 267:
4668 < /* Line 1787 of yacc.c  */
4669 < #line 1648 "conf_parser.y"
4667 >  case 265:
4668 > /* Line 1813 of yacc.c  */
4669 > #line 1494 "conf_parser.y"
4670      {
4671    if (conf_parser_ctx.pass == 2)
4672 <  {
4825 <    MyFree(class_name);
4826 <    DupString(class_name, yylval.string);
4827 <  }
4672 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4673   }
4674      break;
4675  
4676 <  case 268:
4677 < /* Line 1787 of yacc.c  */
4678 < #line 1657 "conf_parser.y"
4676 >  case 266:
4677 > /* Line 1813 of yacc.c  */
4678 > #line 1500 "conf_parser.y"
4679      {
4680    if (conf_parser_ctx.pass == 2)
4681    {
4682      if (yylval.number)
4683 <      SetConfEncrypted(yy_aconf);
4683 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4684      else
4685 <      ClearConfEncrypted(yy_aconf);
4685 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4686    }
4687   }
4688      break;
4689  
4690 <  case 269:
4691 < /* Line 1787 of yacc.c  */
4692 < #line 1668 "conf_parser.y"
4690 >  case 267:
4691 > /* Line 1813 of yacc.c  */
4692 > #line 1511 "conf_parser.y"
4693      {
4694 +  if (conf_parser_ctx.pass == 2)
4695 +    block_state.flags.value = 0;
4696   }
4697      break;
4698  
4699 <  case 273:
4700 < /* Line 1787 of yacc.c  */
4701 < #line 1673 "conf_parser.y"
4699 >  case 271:
4700 > /* Line 1813 of yacc.c  */
4701 > #line 1518 "conf_parser.y"
4702      {
4703    if (conf_parser_ctx.pass == 2)
4704 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4704 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4705   }
4706      break;
4707  
4708 <  case 274:
4709 < /* Line 1787 of yacc.c  */
4710 < #line 1677 "conf_parser.y"
4708 >  case 272:
4709 > /* Line 1813 of yacc.c  */
4710 > #line 1522 "conf_parser.y"
4711      {
4712    if (conf_parser_ctx.pass == 2)
4713 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4713 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4714   }
4715      break;
4716  
4717 <  case 275:
4718 < /* Line 1787 of yacc.c  */
4719 < #line 1681 "conf_parser.y"
4717 >  case 273:
4718 > /* Line 1813 of yacc.c  */
4719 > #line 1526 "conf_parser.y"
4720      {
4721    if (conf_parser_ctx.pass == 2)
4722 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4722 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4723   }
4724      break;
4725  
4726 <  case 276:
4727 < /* Line 1787 of yacc.c  */
4728 < #line 1685 "conf_parser.y"
4726 >  case 274:
4727 > /* Line 1813 of yacc.c  */
4728 > #line 1530 "conf_parser.y"
4729      {
4730    if (conf_parser_ctx.pass == 2)
4731 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4731 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4732   }
4733      break;
4734  
4735 <  case 277:
4736 < /* Line 1787 of yacc.c  */
4737 < #line 1689 "conf_parser.y"
4735 >  case 275:
4736 > /* Line 1813 of yacc.c  */
4737 > #line 1534 "conf_parser.y"
4738      {
4739    if (conf_parser_ctx.pass == 2)
4740 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4740 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4741   }
4742      break;
4743  
4744 <  case 278:
4745 < /* Line 1787 of yacc.c  */
4746 < #line 1693 "conf_parser.y"
4744 >  case 276:
4745 > /* Line 1813 of yacc.c  */
4746 > #line 1538 "conf_parser.y"
4747      {
4748    if (conf_parser_ctx.pass == 2)
4749 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4749 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4750   }
4751      break;
4752  
4753 <  case 279:
4754 < /* Line 1787 of yacc.c  */
4755 < #line 1697 "conf_parser.y"
4753 >  case 277:
4754 > /* Line 1813 of yacc.c  */
4755 > #line 1542 "conf_parser.y"
4756      {
4757    if (conf_parser_ctx.pass == 2)
4758 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4758 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4759   }
4760      break;
4761  
4762 <  case 280:
4763 < /* Line 1787 of yacc.c  */
4764 < #line 1701 "conf_parser.y"
4762 >  case 278:
4763 > /* Line 1813 of yacc.c  */
4764 > #line 1546 "conf_parser.y"
4765      {
4766    if (conf_parser_ctx.pass == 2)
4767 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4767 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4768   }
4769      break;
4770  
4771 <  case 281:
4772 < /* Line 1787 of yacc.c  */
4773 < #line 1705 "conf_parser.y"
4771 >  case 279:
4772 > /* Line 1813 of yacc.c  */
4773 > #line 1550 "conf_parser.y"
4774      {
4775    if (conf_parser_ctx.pass == 2)
4776 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4776 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4777   }
4778      break;
4779  
4780 <  case 282:
4781 < /* Line 1787 of yacc.c  */
4782 < #line 1711 "conf_parser.y"
4780 >  case 280:
4781 > /* Line 1813 of yacc.c  */
4782 > #line 1556 "conf_parser.y"
4783      {
4784 <  if (conf_parser_ctx.pass == 2)
4785 <  {
4939 <    MyFree(yy_conf->name);
4784 >  if (conf_parser_ctx.pass != 2)
4785 >    break;
4786  
4787 <    if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4788 <    {    
4789 <      DupString(yy_conf->name, yylval.string);
4790 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4945 <    }
4946 <    else
4947 <    {
4948 <      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4949 <      yy_conf->name = NULL;
4950 <    }
4787 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4788 >  {
4789 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4790 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4791    }
4792 +  else
4793 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4794   }
4795      break;
4796  
4797 <  case 283:
4798 < /* Line 1787 of yacc.c  */
4799 < #line 1730 "conf_parser.y"
4797 >  case 281:
4798 > /* Line 1813 of yacc.c  */
4799 > #line 1570 "conf_parser.y"
4800      {
4801 <  if (conf_parser_ctx.pass == 2)
4802 <  {
4803 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4804 <    MyFree(yy_conf->name);
4805 <    DupString(yy_conf->name, yylval.string);
4964 <  }
4801 >  if (conf_parser_ctx.pass != 2)
4802 >    break;
4803 >
4804 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4805 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4806   }
4807      break;
4808  
4809 <  case 284:
4810 < /* Line 1787 of yacc.c  */
4811 < #line 1740 "conf_parser.y"
4809 >  case 282:
4810 > /* Line 1813 of yacc.c  */
4811 > #line 1579 "conf_parser.y"
4812      {
4813 <  if (conf_parser_ctx.pass == 2)
4814 <  {
4815 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4816 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4976 <  }
4813 >  if (conf_parser_ctx.pass != 2)
4814 >    break;
4815 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4816 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4817   }
4818      break;
4819  
4820 <  case 285:
4821 < /* Line 1787 of yacc.c  */
4822 < #line 1753 "conf_parser.y"
4820 >  case 283:
4821 > /* Line 1813 of yacc.c  */
4822 > #line 1591 "conf_parser.y"
4823      {
4824    if (conf_parser_ctx.pass == 2)
4825    {
# Line 4989 | Line 4829 | yyreduce:
4829   }
4830      break;
4831  
4832 <  case 286:
4833 < /* Line 1787 of yacc.c  */
4834 < #line 1760 "conf_parser.y"
4832 >  case 284:
4833 > /* Line 1813 of yacc.c  */
4834 > #line 1598 "conf_parser.y"
4835      {
4836    if (conf_parser_ctx.pass == 2)
4837    {
# Line 5001 | Line 4841 | yyreduce:
4841   }
4842      break;
4843  
4844 <  case 293:
4845 < /* Line 1787 of yacc.c  */
4846 < #line 1772 "conf_parser.y"
4844 >  case 291:
4845 > /* Line 1813 of yacc.c  */
4846 > #line 1610 "conf_parser.y"
4847      {
4848    if (conf_parser_ctx.pass == 2)
4849    {
4850      MyFree(resv_reason);
4851 <    DupString(resv_reason, yylval.string);
4851 >    resv_reason = xstrdup(yylval.string);
4852    }
4853   }
4854      break;
4855  
4856 <  case 294:
4857 < /* Line 1787 of yacc.c  */
4858 < #line 1781 "conf_parser.y"
4856 >  case 292:
4857 > /* Line 1813 of yacc.c  */
4858 > #line 1619 "conf_parser.y"
4859      {
4860    if (conf_parser_ctx.pass == 2)
4861    {
# Line 5031 | Line 4871 | yyreduce:
4871   }
4872      break;
4873  
4874 <  case 295:
4875 < /* Line 1787 of yacc.c  */
4876 < #line 1796 "conf_parser.y"
4874 >  case 293:
4875 > /* Line 1813 of yacc.c  */
4876 > #line 1634 "conf_parser.y"
4877      {
4878    if (conf_parser_ctx.pass == 2)
4879    {
# Line 5044 | Line 4884 | yyreduce:
4884   }
4885      break;
4886  
4887 <  case 301:
4888 < /* Line 1787 of yacc.c  */
4889 < #line 1814 "conf_parser.y"
4887 >  case 299:
4888 > /* Line 1813 of yacc.c  */
4889 > #line 1652 "conf_parser.y"
4890      {
4891    if (conf_parser_ctx.pass == 2)
4892    {
4893      if (valid_servname(yylval.string))
4894      {
4895 <      yy_conf = make_conf_item(SERVICE_TYPE);
4896 <      DupString(yy_conf->name, yylval.string);
4895 >      yy_conf = conf_make(CONF_SERVICE);
4896 >      yy_conf->name = xstrdup(yylval.string);
4897      }
4898    }
4899   }
4900      break;
4901  
4902 <  case 302:
4903 < /* Line 1787 of yacc.c  */
4904 < #line 1829 "conf_parser.y"
4902 >  case 300:
4903 > /* Line 1813 of yacc.c  */
4904 > #line 1667 "conf_parser.y"
4905      {
4906    if (conf_parser_ctx.pass == 2)
4907    {
4908 <    yy_conf = make_conf_item(ULINE_TYPE);
4909 <    yy_match_item = map_to_conf(yy_conf);
5070 <    yy_match_item->action = SHARED_ALL;
4908 >    yy_conf = conf_make(CONF_ULINE);
4909 >    yy_conf->flags = SHARED_ALL;
4910    }
4911   }
4912      break;
4913  
4914 <  case 303:
4915 < /* Line 1787 of yacc.c  */
4916 < #line 1837 "conf_parser.y"
4914 >  case 301:
4915 > /* Line 1813 of yacc.c  */
4916 > #line 1674 "conf_parser.y"
4917      {
4918    if (conf_parser_ctx.pass == 2)
4919    {
# Line 5083 | Line 4922 | yyreduce:
4922   }
4923      break;
4924  
4925 <  case 310:
4926 < /* Line 1787 of yacc.c  */
4927 < #line 1848 "conf_parser.y"
4925 >  case 308:
4926 > /* Line 1813 of yacc.c  */
4927 > #line 1685 "conf_parser.y"
4928      {
4929    if (conf_parser_ctx.pass == 2)
4930    {
# Line 5095 | Line 4934 | yyreduce:
4934   }
4935      break;
4936  
4937 <  case 311:
4938 < /* Line 1787 of yacc.c  */
4939 < #line 1857 "conf_parser.y"
4937 >  case 309:
4938 > /* Line 1813 of yacc.c  */
4939 > #line 1694 "conf_parser.y"
4940      {
4941    if (conf_parser_ctx.pass == 2)
4942    {
# Line 5114 | Line 4953 | yyreduce:
4953  
4954      split_nuh(&nuh);
4955  
4956 <    DupString(yy_match_item->user, userbuf);
4957 <    DupString(yy_match_item->host, hostbuf);
4956 >    DupString(yy_conf->user, userbuf);
4957 >    DupString(yy_conf->host, hostbuf);
4958    }
4959   }
4960      break;
4961  
4962 <  case 312:
4963 < /* Line 1787 of yacc.c  */
4964 < #line 1879 "conf_parser.y"
4962 >  case 310:
4963 > /* Line 1813 of yacc.c  */
4964 > #line 1716 "conf_parser.y"
4965      {
4966    if (conf_parser_ctx.pass == 2)
4967 <    yy_match_item->action = 0;
4967 >    yy_conf->flags = 0;
4968   }
4969      break;
4970  
4971 <  case 316:
4972 < /* Line 1787 of yacc.c  */
4973 < #line 1886 "conf_parser.y"
4971 >  case 314:
4972 > /* Line 1813 of yacc.c  */
4973 > #line 1723 "conf_parser.y"
4974      {
4975    if (conf_parser_ctx.pass == 2)
4976 <    yy_match_item->action |= SHARED_KLINE;
4976 >    yy_conf->flags |= SHARED_KLINE;
4977   }
4978      break;
4979  
4980 <  case 317:
4981 < /* Line 1787 of yacc.c  */
4982 < #line 1890 "conf_parser.y"
4980 >  case 315:
4981 > /* Line 1813 of yacc.c  */
4982 > #line 1727 "conf_parser.y"
4983      {
4984    if (conf_parser_ctx.pass == 2)
4985 <    yy_match_item->action |= SHARED_UNKLINE;
4985 >    yy_conf->flags |= SHARED_UNKLINE;
4986   }
4987      break;
4988  
4989 <  case 318:
4990 < /* Line 1787 of yacc.c  */
4991 < #line 1894 "conf_parser.y"
4989 >  case 316:
4990 > /* Line 1813 of yacc.c  */
4991 > #line 1731 "conf_parser.y"
4992      {
4993    if (conf_parser_ctx.pass == 2)
4994 <    yy_match_item->action |= SHARED_DLINE;
4994 >    yy_conf->flags |= SHARED_DLINE;
4995   }
4996      break;
4997  
4998 <  case 319:
4999 < /* Line 1787 of yacc.c  */
5000 < #line 1898 "conf_parser.y"
4998 >  case 317:
4999 > /* Line 1813 of yacc.c  */
5000 > #line 1735 "conf_parser.y"
5001      {
5002    if (conf_parser_ctx.pass == 2)
5003 <    yy_match_item->action |= SHARED_UNDLINE;
5003 >    yy_conf->flags |= SHARED_UNDLINE;
5004   }
5005      break;
5006  
5007 <  case 320:
5008 < /* Line 1787 of yacc.c  */
5009 < #line 1902 "conf_parser.y"
5007 >  case 318:
5008 > /* Line 1813 of yacc.c  */
5009 > #line 1739 "conf_parser.y"
5010      {
5011    if (conf_parser_ctx.pass == 2)
5012 <    yy_match_item->action |= SHARED_XLINE;
5012 >    yy_conf->flags |= SHARED_XLINE;
5013   }
5014      break;
5015  
5016 <  case 321:
5017 < /* Line 1787 of yacc.c  */
5018 < #line 1906 "conf_parser.y"
5016 >  case 319:
5017 > /* Line 1813 of yacc.c  */
5018 > #line 1743 "conf_parser.y"
5019      {
5020    if (conf_parser_ctx.pass == 2)
5021 <    yy_match_item->action |= SHARED_UNXLINE;
5021 >    yy_conf->flags |= SHARED_UNXLINE;
5022   }
5023      break;
5024  
5025 <  case 322:
5026 < /* Line 1787 of yacc.c  */
5027 < #line 1910 "conf_parser.y"
5025 >  case 320:
5026 > /* Line 1813 of yacc.c  */
5027 > #line 1747 "conf_parser.y"
5028      {
5029    if (conf_parser_ctx.pass == 2)
5030 <    yy_match_item->action |= SHARED_RESV;
5030 >    yy_conf->flags |= SHARED_RESV;
5031   }
5032      break;
5033  
5034 <  case 323:
5035 < /* Line 1787 of yacc.c  */
5036 < #line 1914 "conf_parser.y"
5034 >  case 321:
5035 > /* Line 1813 of yacc.c  */
5036 > #line 1751 "conf_parser.y"
5037      {
5038    if (conf_parser_ctx.pass == 2)
5039 <    yy_match_item->action |= SHARED_UNRESV;
5039 >    yy_conf->flags |= SHARED_UNRESV;
5040   }
5041      break;
5042  
5043 <  case 324:
5044 < /* Line 1787 of yacc.c  */
5045 < #line 1918 "conf_parser.y"
5043 >  case 322:
5044 > /* Line 1813 of yacc.c  */
5045 > #line 1755 "conf_parser.y"
5046      {
5047    if (conf_parser_ctx.pass == 2)
5048 <    yy_match_item->action |= SHARED_LOCOPS;
5048 >    yy_conf->flags |= SHARED_LOCOPS;
5049   }
5050      break;
5051  
5052 <  case 325:
5053 < /* Line 1787 of yacc.c  */
5054 < #line 1922 "conf_parser.y"
5052 >  case 323:
5053 > /* Line 1813 of yacc.c  */
5054 > #line 1759 "conf_parser.y"
5055      {
5056    if (conf_parser_ctx.pass == 2)
5057 <    yy_match_item->action = SHARED_ALL;
5057 >    yy_conf->flags = SHARED_ALL;
5058   }
5059      break;
5060  
5061 <  case 326:
5062 < /* Line 1787 of yacc.c  */
5063 < #line 1931 "conf_parser.y"
5061 >  case 324:
5062 > /* Line 1813 of yacc.c  */
5063 > #line 1768 "conf_parser.y"
5064      {
5065    if (conf_parser_ctx.pass == 2)
5066    {
5067 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5229 <    yy_conf->flags = SHARED_ALL;
5067 >    yy_conf = conf_make(CONF_CLUSTER);
5068    }
5069   }
5070      break;
5071  
5072 <  case 327:
5073 < /* Line 1787 of yacc.c  */
5074 < #line 1938 "conf_parser.y"
5072 >  case 325:
5073 > /* Line 1813 of yacc.c  */
5074 > #line 1774 "conf_parser.y"
5075      {
5076    if (conf_parser_ctx.pass == 2)
5077    {
# Line 5244 | Line 5082 | yyreduce:
5082   }
5083      break;
5084  
5085 <  case 333:
5086 < /* Line 1787 of yacc.c  */
5087 < #line 1951 "conf_parser.y"
5085 >  case 331:
5086 > /* Line 1813 of yacc.c  */
5087 > #line 1787 "conf_parser.y"
5088      {
5089    if (conf_parser_ctx.pass == 2)
5090      DupString(yy_conf->name, yylval.string);
5091   }
5092      break;
5093  
5094 <  case 334:
5095 < /* Line 1787 of yacc.c  */
5096 < #line 1957 "conf_parser.y"
5094 >  case 332:
5095 > /* Line 1813 of yacc.c  */
5096 > #line 1793 "conf_parser.y"
5097      {
5098    if (conf_parser_ctx.pass == 2)
5099      yy_conf->flags = 0;
5100   }
5101      break;
5102  
5103 <  case 338:
5104 < /* Line 1787 of yacc.c  */
5105 < #line 1964 "conf_parser.y"
5103 >  case 336:
5104 > /* Line 1813 of yacc.c  */
5105 > #line 1800 "conf_parser.y"
5106      {
5107    if (conf_parser_ctx.pass == 2)
5108      yy_conf->flags |= SHARED_KLINE;
5109   }
5110      break;
5111  
5112 <  case 339:
5113 < /* Line 1787 of yacc.c  */
5114 < #line 1968 "conf_parser.y"
5112 >  case 337:
5113 > /* Line 1813 of yacc.c  */
5114 > #line 1804 "conf_parser.y"
5115      {
5116    if (conf_parser_ctx.pass == 2)
5117      yy_conf->flags |= SHARED_UNKLINE;
5118   }
5119      break;
5120  
5121 <  case 340:
5122 < /* Line 1787 of yacc.c  */
5123 < #line 1972 "conf_parser.y"
5121 >  case 338:
5122 > /* Line 1813 of yacc.c  */
5123 > #line 1808 "conf_parser.y"
5124      {
5125    if (conf_parser_ctx.pass == 2)
5126      yy_conf->flags |= SHARED_DLINE;
5127   }
5128      break;
5129  
5130 <  case 341:
5131 < /* Line 1787 of yacc.c  */
5132 < #line 1976 "conf_parser.y"
5130 >  case 339:
5131 > /* Line 1813 of yacc.c  */
5132 > #line 1812 "conf_parser.y"
5133      {
5134    if (conf_parser_ctx.pass == 2)
5135      yy_conf->flags |= SHARED_UNDLINE;
5136   }
5137      break;
5138  
5139 <  case 342:
5140 < /* Line 1787 of yacc.c  */
5141 < #line 1980 "conf_parser.y"
5139 >  case 340:
5140 > /* Line 1813 of yacc.c  */
5141 > #line 1816 "conf_parser.y"
5142      {
5143    if (conf_parser_ctx.pass == 2)
5144      yy_conf->flags |= SHARED_XLINE;
5145   }
5146      break;
5147  
5148 <  case 343:
5149 < /* Line 1787 of yacc.c  */
5150 < #line 1984 "conf_parser.y"
5148 >  case 341:
5149 > /* Line 1813 of yacc.c  */
5150 > #line 1820 "conf_parser.y"
5151      {
5152    if (conf_parser_ctx.pass == 2)
5153      yy_conf->flags |= SHARED_UNXLINE;
5154   }
5155      break;
5156  
5157 <  case 344:
5158 < /* Line 1787 of yacc.c  */
5159 < #line 1988 "conf_parser.y"
5157 >  case 342:
5158 > /* Line 1813 of yacc.c  */
5159 > #line 1824 "conf_parser.y"
5160      {
5161    if (conf_parser_ctx.pass == 2)
5162      yy_conf->flags |= SHARED_RESV;
5163   }
5164      break;
5165  
5166 <  case 345:
5167 < /* Line 1787 of yacc.c  */
5168 < #line 1992 "conf_parser.y"
5166 >  case 343:
5167 > /* Line 1813 of yacc.c  */
5168 > #line 1828 "conf_parser.y"
5169      {
5170    if (conf_parser_ctx.pass == 2)
5171      yy_conf->flags |= SHARED_UNRESV;
5172   }
5173      break;
5174  
5175 <  case 346:
5176 < /* Line 1787 of yacc.c  */
5177 < #line 1996 "conf_parser.y"
5175 >  case 344:
5176 > /* Line 1813 of yacc.c  */
5177 > #line 1832 "conf_parser.y"
5178      {
5179    if (conf_parser_ctx.pass == 2)
5180      yy_conf->flags |= SHARED_LOCOPS;
5181   }
5182      break;
5183  
5184 <  case 347:
5185 < /* Line 1787 of yacc.c  */
5186 < #line 2000 "conf_parser.y"
5184 >  case 345:
5185 > /* Line 1813 of yacc.c  */
5186 > #line 1836 "conf_parser.y"
5187      {
5188    if (conf_parser_ctx.pass == 2)
5189      yy_conf->flags = SHARED_ALL;
5190   }
5191      break;
5192  
5193 <  case 348:
5194 < /* Line 1787 of yacc.c  */
5195 < #line 2009 "conf_parser.y"
5193 >  case 346:
5194 > /* Line 1813 of yacc.c  */
5195 > #line 1845 "conf_parser.y"
5196      {
5197    if (conf_parser_ctx.pass == 2)
5198    {
5199 <    yy_conf = make_conf_item(SERVER_TYPE);
5362 <    yy_aconf = map_to_conf(yy_conf);
5199 >    yy_conf = conf_make(CONF_SERVER);
5200  
5201      /* defaults */
5202 <    yy_aconf->port = PORTNUM;
5202 >    yy_conf->port = PORTNUM;
5203    }
5204    else
5205    {
# Line 5372 | Line 5209 | yyreduce:
5209   }
5210      break;
5211  
5212 <  case 349:
5213 < /* Line 1787 of yacc.c  */
5214 < #line 2024 "conf_parser.y"
5212 >  case 347:
5213 > /* Line 1813 of yacc.c  */
5214 > #line 1859 "conf_parser.y"
5215      {
5216    if (conf_parser_ctx.pass == 2)
5217    {
5218 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5218 >    if (yy_conf->host && yy_conf->passwd && yy_conf->spasswd)
5219      {
5220        if (conf_add_server(yy_conf, class_name) == -1)
5221 <        delete_conf_item(yy_conf);
5221 >        conf_free(yy_conf);
5222      }
5223      else
5224      {
5225        if (yy_conf->name != NULL)
5226        {
5227 <        if (yy_aconf->host == NULL)
5227 >        if (yy_conf->host == NULL)
5228            yyerror("Ignoring connect block -- missing host");
5229 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5229 >        else if (!yy_conf->passwd || !yy_conf->spasswd)
5230            yyerror("Ignoring connect block -- missing password");
5231        }
5232  
# Line 5400 | Line 5237 | yyreduce:
5237         * rewrite ASAP. make_conf_item() shouldn't really add things onto
5238         * a doubly linked list immediately without any sanity checks!  -Michael
5239         */
5240 <      delete_conf_item(yy_conf);
5240 >      conf_free(yy_conf);
5241      }
5242  
5243      MyFree(class_name);
5244      class_name = NULL;
5245      yy_conf = NULL;
5409    yy_aconf = NULL;
5246    }
5247   }
5248      break;
5249  
5250 <  case 366:
5251 < /* Line 1787 of yacc.c  */
5252 < #line 2068 "conf_parser.y"
5250 >  case 364:
5251 > /* Line 1813 of yacc.c  */
5252 > #line 1902 "conf_parser.y"
5253      {
5254    if (conf_parser_ctx.pass == 2)
5255    {
# Line 5423 | Line 5259 | yyreduce:
5259   }
5260      break;
5261  
5262 <  case 367:
5263 < /* Line 1787 of yacc.c  */
5264 < #line 2077 "conf_parser.y"
5262 >  case 365:
5263 > /* Line 1813 of yacc.c  */
5264 > #line 1911 "conf_parser.y"
5265      {
5266    if (conf_parser_ctx.pass == 2)
5267    {
5268 <    MyFree(yy_aconf->host);
5269 <    DupString(yy_aconf->host, yylval.string);
5268 >    MyFree(yy_conf->host);
5269 >    DupString(yy_conf->host, yylval.string);
5270    }
5271   }
5272      break;
5273  
5274 <  case 368:
5275 < /* Line 1787 of yacc.c  */
5276 < #line 2086 "conf_parser.y"
5274 >  case 366:
5275 > /* Line 1813 of yacc.c  */
5276 > #line 1920 "conf_parser.y"
5277      {
5278    if (conf_parser_ctx.pass == 2)
5279    {
# Line 5455 | Line 5291 | yyreduce:
5291      {
5292        assert(res != NULL);
5293  
5294 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5295 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5296 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5294 >      memcpy(&yy_conf->bind, res->ai_addr, res->ai_addrlen);
5295 >      yy_conf->bind.ss.ss_family = res->ai_family;
5296 >      yy_conf->bind.ss_len = res->ai_addrlen;
5297        freeaddrinfo(res);
5298      }
5299    }
5300   }
5301      break;
5302  
5303 <  case 369:
5304 < /* Line 1787 of yacc.c  */
5305 < #line 2112 "conf_parser.y"
5303 >  case 367:
5304 > /* Line 1813 of yacc.c  */
5305 > #line 1946 "conf_parser.y"
5306      {
5307    if (conf_parser_ctx.pass == 2)
5308    {
# Line 5475 | Line 5311 | yyreduce:
5311      else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5312        yyerror("Server passwords cannot contain spaces");
5313      else {
5314 <      if (yy_aconf->spasswd != NULL)
5315 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5314 >      if (yy_conf->spasswd != NULL)
5315 >        memset(yy_conf->spasswd, 0, strlen(yy_conf->spasswd));
5316  
5317 <      MyFree(yy_aconf->spasswd);
5318 <      DupString(yy_aconf->spasswd, yylval.string);
5317 >      MyFree(yy_conf->spasswd);
5318 >      DupString(yy_conf->spasswd, yylval.string);
5319      }
5320    }
5321   }
5322      break;
5323  
5324 <  case 370:
5325 < /* Line 1787 of yacc.c  */
5326 < #line 2130 "conf_parser.y"
5324 >  case 368:
5325 > /* Line 1813 of yacc.c  */
5326 > #line 1964 "conf_parser.y"
5327      {
5328    if (conf_parser_ctx.pass == 2)
5329    {
# Line 5496 | Line 5332 | yyreduce:
5332      else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5333        yyerror("Server passwords cannot contain spaces");
5334      else {
5335 <      if (yy_aconf->passwd != NULL)
5336 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5335 >      if (yy_conf->passwd != NULL)
5336 >        memset(yy_conf->passwd, 0, strlen(yy_conf->passwd));
5337  
5338 <      MyFree(yy_aconf->passwd);
5339 <      DupString(yy_aconf->passwd, yylval.string);
5338 >      MyFree(yy_conf->passwd);
5339 >      DupString(yy_conf->passwd, yylval.string);
5340      }
5341    }
5342   }
5343      break;
5344  
5345 <  case 371:
5346 < /* Line 1787 of yacc.c  */
5347 < #line 2148 "conf_parser.y"
5345 >  case 369:
5346 > /* Line 1813 of yacc.c  */
5347 > #line 1982 "conf_parser.y"
5348      {
5349    if (conf_parser_ctx.pass == 2)
5350 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5350 >    yy_conf->port = (yyvsp[(3) - (4)].number);
5351   }
5352      break;
5353  
5354 <  case 372:
5355 < /* Line 1787 of yacc.c  */
5356 < #line 2154 "conf_parser.y"
5354 >  case 370:
5355 > /* Line 1813 of yacc.c  */
5356 > #line 1988 "conf_parser.y"
5357      {
5358    if (conf_parser_ctx.pass == 2)
5359 <    yy_aconf->aftype = AF_INET;
5359 >    yy_conf->aftype = AF_INET;
5360   }
5361      break;
5362  
5363 <  case 373:
5364 < /* Line 1787 of yacc.c  */
5365 < #line 2158 "conf_parser.y"
5363 >  case 371:
5364 > /* Line 1813 of yacc.c  */
5365 > #line 1992 "conf_parser.y"
5366      {
5367   #ifdef IPV6
5368    if (conf_parser_ctx.pass == 2)
5369 <    yy_aconf->aftype = AF_INET6;
5369 >    yy_conf->aftype = AF_INET6;
5370   #endif
5371   }
5372      break;
5373  
5374 <  case 374:
5375 < /* Line 1787 of yacc.c  */
5376 < #line 2166 "conf_parser.y"
5374 >  case 372:
5375 > /* Line 1813 of yacc.c  */
5376 > #line 2000 "conf_parser.y"
5377      {
5378   }
5379      break;
5380  
5381 <  case 378:
5382 < /* Line 1787 of yacc.c  */
5383 < #line 2171 "conf_parser.y"
5381 >  case 376:
5382 > /* Line 1813 of yacc.c  */
5383 > #line 2005 "conf_parser.y"
5384      {
5385    if (conf_parser_ctx.pass == 2)
5386 <    SetConfAllowAutoConn(yy_aconf);
5386 >    SetConfAllowAutoConn(yy_conf);
5387   }
5388      break;
5389  
5390 <  case 379:
5391 < /* Line 1787 of yacc.c  */
5392 < #line 2175 "conf_parser.y"
5390 >  case 377:
5391 > /* Line 1813 of yacc.c  */
5392 > #line 2009 "conf_parser.y"
5393      {
5394    if (conf_parser_ctx.pass == 2)
5395 <    SetConfSSL(yy_aconf);
5395 >    SetConfSSL(yy_conf);
5396   }
5397      break;
5398  
5399 <  case 380:
5400 < /* Line 1787 of yacc.c  */
5401 < #line 2181 "conf_parser.y"
5399 >  case 378:
5400 > /* Line 1813 of yacc.c  */
5401 > #line 2015 "conf_parser.y"
5402      {
5403    if (conf_parser_ctx.pass == 2)
5404    {
5405      if (yylval.number)
5406 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5406 >      yy_conf->flags |= CONF_FLAGS_ENCRYPTED;
5407      else
5408 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5408 >      yy_conf->flags &= ~CONF_FLAGS_ENCRYPTED;
5409    }
5410   }
5411      break;
5412  
5413 <  case 381:
5414 < /* Line 1787 of yacc.c  */
5415 < #line 2192 "conf_parser.y"
5413 >  case 379:
5414 > /* Line 1813 of yacc.c  */
5415 > #line 2026 "conf_parser.y"
5416      {
5417    if (conf_parser_ctx.pass == 2)
5418    {
5419 <    char *mask;
5419 >    char *mask = xstrdup(yylval.string);
5420  
5421 <    DupString(mask, yylval.string);
5586 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5421 >    dlinkAdd(mask, make_dlink_node(), &yy_conf->hub_list);
5422    }
5423   }
5424      break;
5425  
5426 <  case 382:
5427 < /* Line 1787 of yacc.c  */
5428 < #line 2203 "conf_parser.y"
5426 >  case 380:
5427 > /* Line 1813 of yacc.c  */
5428 > #line 2036 "conf_parser.y"
5429      {
5430    if (conf_parser_ctx.pass == 2)
5431    {
5432      char *mask;
5433  
5434      DupString(mask, yylval.string);
5435 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5435 >    dlinkAdd(mask, make_dlink_node(), &yy_conf->leaf_list);
5436    }
5437   }
5438      break;
5439  
5440 <  case 383:
5441 < /* Line 1787 of yacc.c  */
5442 < #line 2214 "conf_parser.y"
5440 >  case 381:
5441 > /* Line 1813 of yacc.c  */
5442 > #line 2047 "conf_parser.y"
5443      {
5444    if (conf_parser_ctx.pass == 2)
5445    {
# Line 5614 | Line 5449 | yyreduce:
5449   }
5450      break;
5451  
5452 <  case 384:
5453 < /* Line 1787 of yacc.c  */
5454 < #line 2223 "conf_parser.y"
5452 >  case 382:
5453 > /* Line 1813 of yacc.c  */
5454 > #line 2056 "conf_parser.y"
5455      {
5456   #ifdef HAVE_LIBCRYPTO
5457    if (conf_parser_ctx.pass == 2)
5458    {
5459 <    MyFree(yy_aconf->cipher_list);
5460 <    DupString(yy_aconf->cipher_list, yylval.string);
5459 >    MyFree(yy_conf->cipher_list);
5460 >    DupString(yy_conf->cipher_list, yylval.string);
5461    }
5462   #else
5463    if (conf_parser_ctx.pass == 2)
# Line 5631 | Line 5466 | yyreduce:
5466   }
5467      break;
5468  
5469 <  case 385:
5470 < /* Line 1787 of yacc.c  */
5471 < #line 2241 "conf_parser.y"
5469 >  case 383:
5470 > /* Line 1813 of yacc.c  */
5471 > #line 2074 "conf_parser.y"
5472      {
5473    if (conf_parser_ctx.pass == 2)
5474    {
# Line 5643 | Line 5478 | yyreduce:
5478   }
5479      break;
5480  
5481 <  case 386:
5482 < /* Line 1787 of yacc.c  */
5483 < #line 2248 "conf_parser.y"
5481 >  case 384:
5482 > /* Line 1813 of yacc.c  */
5483 > #line 2081 "conf_parser.y"
5484      {
5485    if (conf_parser_ctx.pass == 2)
5486    {
5487 +    struct MaskItem *conf = NULL;
5488 +
5489      if (userbuf[0] && hostbuf[0])
5490      {
5491        if (regex_ban)
# Line 5666 | Line 5503 | yyreduce:
5503            break;
5504          }
5505  
5506 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5507 <        yy_aconf->regexuser = exp_user;
5508 <        yy_aconf->regexhost = exp_host;
5506 >        conf = conf_make(CONF_RKLINE);
5507 >        conf->regexuser = exp_user;
5508 >        conf->regexhost = exp_host;
5509  
5510 <        DupString(yy_aconf->user, userbuf);
5511 <        DupString(yy_aconf->host, hostbuf);
5510 >        conf->user = xstrdup(userbuf);
5511 >        conf->host = xstrdup(hostbuf);
5512  
5513          if (reasonbuf[0])
5514 <          DupString(yy_aconf->reason, reasonbuf);
5514 >          conf->reason = xstrdup(reasonbuf);
5515          else
5516 <          DupString(yy_aconf->reason, "No reason");
5516 >          conf->reason = xstrdup(CONF_NOREASON);
5517   #else
5518          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5519          break;
# Line 5684 | Line 5521 | yyreduce:
5521        }
5522        else
5523        {
5524 <        find_and_delete_temporary(userbuf, hostbuf, CONF_KLINE);
5688 <
5689 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5524 >        conf = conf_make(CONF_KLINE);
5525  
5526 <        DupString(yy_aconf->user, userbuf);
5527 <        DupString(yy_aconf->host, hostbuf);
5526 >        conf->user = xstrdup(userbuf);
5527 >        conf->host = xstrdup(hostbuf);
5528  
5529          if (reasonbuf[0])
5530 <          DupString(yy_aconf->reason, reasonbuf);
5530 >          conf->reason = xstrdup(reasonbuf);
5531          else
5532 <          DupString(yy_aconf->reason, "No reason");
5533 <        add_conf_by_address(CONF_KLINE, yy_aconf);
5532 >          conf->reason = xstrdup(CONF_NOREASON);
5533 >        add_conf_by_address(CONF_KLINE, conf);
5534        }
5535      }
5701
5702    yy_aconf = NULL;
5536    }
5537   }
5538      break;
5539  
5540 <  case 387:
5541 < /* Line 1787 of yacc.c  */
5542 < #line 2306 "conf_parser.y"
5540 >  case 385:
5541 > /* Line 1813 of yacc.c  */
5542 > #line 2137 "conf_parser.y"
5543      {
5544   }
5545      break;
5546  
5547 <  case 391:
5548 < /* Line 1787 of yacc.c  */
5549 < #line 2311 "conf_parser.y"
5547 >  case 389:
5548 > /* Line 1813 of yacc.c  */
5549 > #line 2142 "conf_parser.y"
5550      {
5551    if (conf_parser_ctx.pass == 2)
5552      regex_ban = 1;
5553   }
5554      break;
5555  
5556 <  case 398:
5557 < /* Line 1787 of yacc.c  */
5558 < #line 2320 "conf_parser.y"
5556 >  case 396:
5557 > /* Line 1813 of yacc.c  */
5558 > #line 2151 "conf_parser.y"
5559      {
5560    if (conf_parser_ctx.pass == 2)
5561    {
# Line 5742 | Line 5575 | yyreduce:
5575   }
5576      break;
5577  
5578 <  case 399:
5579 < /* Line 1787 of yacc.c  */
5580 < #line 2339 "conf_parser.y"
5578 >  case 397:
5579 > /* Line 1813 of yacc.c  */
5580 > #line 2170 "conf_parser.y"
5581      {
5582    if (conf_parser_ctx.pass == 2)
5583      strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5584   }
5585      break;
5586  
5587 <  case 400:
5588 < /* Line 1787 of yacc.c  */
5589 < #line 2348 "conf_parser.y"
5587 >  case 398:
5588 > /* Line 1813 of yacc.c  */
5589 > #line 2179 "conf_parser.y"
5590      {
5591    if (conf_parser_ctx.pass == 2)
5592 <    hostbuf[0] = reasonbuf[0] = '\0';
5592 >    reset_block_state();
5593   }
5594      break;
5595  
5596 <  case 401:
5597 < /* Line 1787 of yacc.c  */
5598 < #line 2352 "conf_parser.y"
5766 <    {
5767 <  if (conf_parser_ctx.pass == 2)
5768 <  {
5769 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5596 >  case 399:
5597 > /* Line 1813 of yacc.c  */
5598 > #line 2183 "conf_parser.y"
5599      {
5600 <      find_and_delete_temporary(NULL, hostbuf, CONF_DLINE);
5600 >  struct MaskItem *conf = NULL;
5601  
5602 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5603 <      DupString(yy_aconf->host, hostbuf);
5602 >  if (conf_parser_ctx.pass != 2)
5603 >    break;
5604  
5605 <      if (reasonbuf[0])
5606 <        DupString(yy_aconf->reason, reasonbuf);
5607 <      else
5608 <        DupString(yy_aconf->reason, "No reason");
5609 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5610 <      yy_aconf = NULL;
5611 <    }
5605 >  if (!block_state.addr.buf[0])
5606 >    break;
5607 >
5608 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5609 >  {
5610 >    conf = conf_make(CONF_DLINE);
5611 >    conf->host = xstrdup(block_state.addr.buf);
5612 >
5613 >    if (block_state.pass.buf[0])
5614 >      conf->reason = xstrdup(block_state.pass.buf);
5615 >    else
5616 >      conf->reason = xstrdup(CONF_NOREASON);
5617 >    add_conf_by_address(CONF_DLINE, conf);
5618    }
5619   }
5620      break;
5621  
5622 <  case 407:
5623 < /* Line 1787 of yacc.c  */
5624 < #line 2376 "conf_parser.y"
5622 >  case 405:
5623 > /* Line 1813 of yacc.c  */
5624 > #line 2209 "conf_parser.y"
5625      {
5626    if (conf_parser_ctx.pass == 2)
5627 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5627 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5628   }
5629      break;
5630  
5631 <  case 408:
5632 < /* Line 1787 of yacc.c  */
5633 < #line 2382 "conf_parser.y"
5631 >  case 406:
5632 > /* Line 1813 of yacc.c  */
5633 > #line 2215 "conf_parser.y"
5634      {
5635    if (conf_parser_ctx.pass == 2)
5636 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5636 >    strlcpy(block_state.pass.buf, yylval.string, sizeof(block_state.pass.buf));
5637   }
5638      break;
5639  
5640 <  case 414:
5641 < /* Line 1787 of yacc.c  */
5642 < #line 2396 "conf_parser.y"
5640 >  case 412:
5641 > /* Line 1813 of yacc.c  */
5642 > #line 2229 "conf_parser.y"
5643      {
5644    if (conf_parser_ctx.pass == 2)
5645    {
5646      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5647      {
5648 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5649 <      DupString(yy_aconf->host, yylval.string);
5648 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5649 >      conf->host = xstrdup(yylval.string);
5650  
5651 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5817 <      yy_aconf = NULL;
5651 >      add_conf_by_address(CONF_EXEMPT, conf);
5652      }
5653    }
5654   }
5655      break;
5656  
5657 <  case 415:
5658 < /* Line 1787 of yacc.c  */
5659 < #line 2414 "conf_parser.y"
5657 >  case 413:
5658 > /* Line 1813 of yacc.c  */
5659 > #line 2246 "conf_parser.y"
5660      {
5661    if (conf_parser_ctx.pass == 2)
5662 <  {
5829 <    regex_ban = 0;
5830 <    reasonbuf[0] = gecos_name[0] = '\0';
5831 <  }
5662 >    reset_block_state();
5663   }
5664      break;
5665  
5666 <  case 416:
5667 < /* Line 1787 of yacc.c  */
5668 < #line 2421 "conf_parser.y"
5666 >  case 414:
5667 > /* Line 1813 of yacc.c  */
5668 > #line 2250 "conf_parser.y"
5669      {
5670 <  if (conf_parser_ctx.pass == 2)
5670 >  struct MaskItem *conf = NULL;
5671 >
5672 >  if (conf_parser_ctx.pass != 2)
5673 >    break;
5674 >
5675 >  if (!block_state.name.buf[0])
5676 >    break;
5677 >
5678 >  if (block_state.port.value == 1)
5679    {
5841    if (gecos_name[0])
5842    {
5843      if (regex_ban)
5844      {
5680   #ifdef HAVE_LIBPCRE
5681 <        void *exp_p = NULL;
5682 <        const char *errptr = NULL;
5681 >    void *exp_p = NULL;
5682 >    const char *errptr = NULL;
5683  
5684 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5685 <        {
5686 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5687 <               errptr);
5688 <          break;
5689 <        }
5684 >    if (!(exp_p = ircd_pcre_compile(block_state.name.buf, &errptr)))
5685 >    {
5686 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5687 >           errptr);
5688 >      break;
5689 >    }
5690  
5691 <        yy_conf = make_conf_item(RXLINE_TYPE);
5692 <        yy_conf->regexpname = exp_p;
5691 >    conf = conf_make(CONF_RXLINE);
5692 >    conf->regexuser = exp_p;
5693   #else
5694 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5695 <        break;
5694 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5695 >    break;
5696   #endif
5697 <      }
5698 <      else
5699 <        yy_conf = make_conf_item(XLINE_TYPE);
5697 >  }
5698 >  else
5699 >    conf = conf_make(CONF_XLINE);
5700  
5701 <      yy_match_item = map_to_conf(yy_conf);
5867 <      DupString(yy_conf->name, gecos_name);
5701 >  conf->name = xstrdup(block_state.name.buf);
5702  
5703 <      if (reasonbuf[0])
5704 <        DupString(yy_match_item->reason, reasonbuf);
5705 <      else
5706 <        DupString(yy_match_item->reason, "No reason");
5873 <    }
5874 <  }
5703 >  if (block_state.pass.buf[0])
5704 >    conf->reason = xstrdup(block_state.pass.buf);
5705 >  else
5706 >    conf->reason = xstrdup(CONF_NOREASON);
5707   }
5708      break;
5709  
5710 <  case 417:
5711 < /* Line 1787 of yacc.c  */
5712 < #line 2461 "conf_parser.y"
5710 >  case 415:
5711 > /* Line 1813 of yacc.c  */
5712 > #line 2291 "conf_parser.y"
5713      {
5714 +  if (conf_parser_ctx.pass == 2)
5715 +    block_state.port.value = 0;
5716   }
5717      break;
5718  
5719 <  case 421:
5720 < /* Line 1787 of yacc.c  */
5721 < #line 2466 "conf_parser.y"
5719 >  case 419:
5720 > /* Line 1813 of yacc.c  */
5721 > #line 2298 "conf_parser.y"
5722      {
5723    if (conf_parser_ctx.pass == 2)
5724 <    regex_ban = 1;
5724 >    block_state.port.value = 1;
5725   }
5726      break;
5727  
5728 <  case 428:
5729 < /* Line 1787 of yacc.c  */
5730 < #line 2475 "conf_parser.y"
5728 >  case 426:
5729 > /* Line 1813 of yacc.c  */
5730 > #line 2307 "conf_parser.y"
5731      {
5732    if (conf_parser_ctx.pass == 2)
5733 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5733 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5734   }
5735      break;
5736  
5737 <  case 429:
5738 < /* Line 1787 of yacc.c  */
5739 < #line 2481 "conf_parser.y"
5737 >  case 427:
5738 > /* Line 1813 of yacc.c  */
5739 > #line 2313 "conf_parser.y"
5740      {
5741    if (conf_parser_ctx.pass == 2)
5742 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5742 >    strlcpy(block_state.pass.buf, yylval.string, sizeof(block_state.pass.buf));
5743   }
5744      break;
5745  
5746 <  case 483:
5747 < /* Line 1787 of yacc.c  */
5748 < #line 2526 "conf_parser.y"
5746 >  case 481:
5747 > /* Line 1813 of yacc.c  */
5748 > #line 2358 "conf_parser.y"
5749      {
5750    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5751   }
5752      break;
5753  
5754 <  case 484:
5755 < /* Line 1787 of yacc.c  */
5756 < #line 2531 "conf_parser.y"
5754 >  case 482:
5755 > /* Line 1813 of yacc.c  */
5756 > #line 2363 "conf_parser.y"
5757      {
5758    if (conf_parser_ctx.pass == 2)
5759      ConfigFileEntry.glines = yylval.number;
5760   }
5761      break;
5762  
5763 <  case 485:
5764 < /* Line 1787 of yacc.c  */
5765 < #line 2537 "conf_parser.y"
5763 >  case 483:
5764 > /* Line 1813 of yacc.c  */
5765 > #line 2369 "conf_parser.y"
5766      {
5767    if (conf_parser_ctx.pass == 2)
5768      ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5769   }
5770      break;
5771  
5772 <  case 486:
5773 < /* Line 1787 of yacc.c  */
5774 < #line 2543 "conf_parser.y"
5772 >  case 484:
5773 > /* Line 1813 of yacc.c  */
5774 > #line 2375 "conf_parser.y"
5775      {
5776    if (conf_parser_ctx.pass == 2)
5777      ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5778   }
5779      break;
5780  
5781 <  case 487:
5782 < /* Line 1787 of yacc.c  */
5783 < #line 2549 "conf_parser.y"
5781 >  case 485:
5782 > /* Line 1813 of yacc.c  */
5783 > #line 2381 "conf_parser.y"
5784      {
5785    ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5786   }
5787      break;
5788  
5789 <  case 488:
5790 < /* Line 1787 of yacc.c  */
5791 < #line 2554 "conf_parser.y"
5789 >  case 486:
5790 > /* Line 1813 of yacc.c  */
5791 > #line 2386 "conf_parser.y"
5792      {
5793    ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5794   }
5795      break;
5796  
5797 <  case 489:
5798 < /* Line 1787 of yacc.c  */
5799 < #line 2559 "conf_parser.y"
5797 >  case 487:
5798 > /* Line 1813 of yacc.c  */
5799 > #line 2391 "conf_parser.y"
5800      {
5801    ConfigFileEntry.tkline_expire_notices = yylval.number;
5802   }
5803      break;
5804  
5805 <  case 490:
5806 < /* Line 1787 of yacc.c  */
5807 < #line 2564 "conf_parser.y"
5805 >  case 488:
5806 > /* Line 1813 of yacc.c  */
5807 > #line 2396 "conf_parser.y"
5808      {
5809    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5810   }
5811      break;
5812  
5813 <  case 491:
5814 < /* Line 1787 of yacc.c  */
5815 < #line 2569 "conf_parser.y"
5813 >  case 489:
5814 > /* Line 1813 of yacc.c  */
5815 > #line 2401 "conf_parser.y"
5816      {
5817    ConfigFileEntry.hide_spoof_ips = yylval.number;
5818   }
5819      break;
5820  
5821 <  case 492:
5822 < /* Line 1787 of yacc.c  */
5823 < #line 2574 "conf_parser.y"
5821 >  case 490:
5822 > /* Line 1813 of yacc.c  */
5823 > #line 2406 "conf_parser.y"
5824      {
5825    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5826   }
5827      break;
5828  
5829 <  case 493:
5830 < /* Line 1787 of yacc.c  */
5831 < #line 2579 "conf_parser.y"
5829 >  case 491:
5830 > /* Line 1813 of yacc.c  */
5831 > #line 2411 "conf_parser.y"
5832      {
5833    ConfigFileEntry.disable_remote = yylval.number;
5834   }
5835      break;
5836  
5837 <  case 494:
5838 < /* Line 1787 of yacc.c  */
5839 < #line 2584 "conf_parser.y"
5837 >  case 492:
5838 > /* Line 1813 of yacc.c  */
5839 > #line 2416 "conf_parser.y"
5840      {
5841    ConfigFileEntry.failed_oper_notice = yylval.number;
5842   }
5843      break;
5844  
5845 <  case 495:
5846 < /* Line 1787 of yacc.c  */
5847 < #line 2589 "conf_parser.y"
5845 >  case 493:
5846 > /* Line 1813 of yacc.c  */
5847 > #line 2421 "conf_parser.y"
5848      {
5849    ConfigFileEntry.anti_nick_flood = yylval.number;
5850   }
5851      break;
5852  
5853 <  case 496:
5854 < /* Line 1787 of yacc.c  */
5855 < #line 2594 "conf_parser.y"
5853 >  case 494:
5854 > /* Line 1813 of yacc.c  */
5855 > #line 2426 "conf_parser.y"
5856      {
5857    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5858   }
5859      break;
5860  
5861 <  case 497:
5862 < /* Line 1787 of yacc.c  */
5863 < #line 2599 "conf_parser.y"
5861 >  case 495:
5862 > /* Line 1813 of yacc.c  */
5863 > #line 2431 "conf_parser.y"
5864      {
5865    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5866   }
5867      break;
5868  
5869 <  case 498:
5870 < /* Line 1787 of yacc.c  */
5871 < #line 2604 "conf_parser.y"
5869 >  case 496:
5870 > /* Line 1813 of yacc.c  */
5871 > #line 2436 "conf_parser.y"
5872      {
5873    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5874   }
5875      break;
5876  
5877 <  case 499:
5878 < /* Line 1787 of yacc.c  */
5879 < #line 2609 "conf_parser.y"
5877 >  case 497:
5878 > /* Line 1813 of yacc.c  */
5879 > #line 2441 "conf_parser.y"
5880      {
5881    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5882   }
5883      break;
5884  
5885 <  case 500:
5886 < /* Line 1787 of yacc.c  */
5887 < #line 2614 "conf_parser.y"
5885 >  case 498:
5886 > /* Line 1813 of yacc.c  */
5887 > #line 2446 "conf_parser.y"
5888      {
5889    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5890   }
5891      break;
5892  
5893 <  case 501:
5894 < /* Line 1787 of yacc.c  */
5895 < #line 2619 "conf_parser.y"
5893 >  case 499:
5894 > /* Line 1813 of yacc.c  */
5895 > #line 2451 "conf_parser.y"
5896      {
5897    if (conf_parser_ctx.pass == 2)
5898      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5899   }
5900      break;
5901  
5902 <  case 502:
5903 < /* Line 1787 of yacc.c  */
5904 < #line 2625 "conf_parser.y"
5902 >  case 500:
5903 > /* Line 1813 of yacc.c  */
5904 > #line 2457 "conf_parser.y"
5905      {
5906    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5907    {
# Line 6079 | Line 5913 | yyreduce:
5913   }
5914      break;
5915  
5916 <  case 503:
5917 < /* Line 1787 of yacc.c  */
5918 < #line 2636 "conf_parser.y"
5916 >  case 501:
5917 > /* Line 1813 of yacc.c  */
5918 > #line 2468 "conf_parser.y"
5919      {
5920    ConfigFileEntry.invisible_on_connect = yylval.number;
5921   }
5922      break;
5923  
5924 <  case 504:
5925 < /* Line 1787 of yacc.c  */
5926 < #line 2641 "conf_parser.y"
5924 >  case 502:
5925 > /* Line 1813 of yacc.c  */
5926 > #line 2473 "conf_parser.y"
5927      {
5928    ConfigFileEntry.warn_no_nline = yylval.number;
5929   }
5930      break;
5931  
5932 <  case 505:
5933 < /* Line 1787 of yacc.c  */
5934 < #line 2646 "conf_parser.y"
5932 >  case 503:
5933 > /* Line 1813 of yacc.c  */
5934 > #line 2478 "conf_parser.y"
5935      {
5936    ConfigFileEntry.stats_e_disabled = yylval.number;
5937   }
5938      break;
5939  
5940 <  case 506:
5941 < /* Line 1787 of yacc.c  */
5942 < #line 2651 "conf_parser.y"
5940 >  case 504:
5941 > /* Line 1813 of yacc.c  */
5942 > #line 2483 "conf_parser.y"
5943      {
5944    ConfigFileEntry.stats_o_oper_only = yylval.number;
5945   }
5946      break;
5947  
5948 <  case 507:
5949 < /* Line 1787 of yacc.c  */
5950 < #line 2656 "conf_parser.y"
5948 >  case 505:
5949 > /* Line 1813 of yacc.c  */
5950 > #line 2488 "conf_parser.y"
5951      {
5952    ConfigFileEntry.stats_P_oper_only = yylval.number;
5953   }
5954      break;
5955  
5956 <  case 508:
5957 < /* Line 1787 of yacc.c  */
5958 < #line 2661 "conf_parser.y"
5956 >  case 506:
5957 > /* Line 1813 of yacc.c  */
5958 > #line 2493 "conf_parser.y"
5959      {
5960    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5961   }
5962      break;
5963  
5964 <  case 509:
5965 < /* Line 1787 of yacc.c  */
5966 < #line 2664 "conf_parser.y"
5964 >  case 507:
5965 > /* Line 1813 of yacc.c  */
5966 > #line 2496 "conf_parser.y"
5967      {
5968    ConfigFileEntry.stats_k_oper_only = 1;
5969   }
5970      break;
5971  
5972 <  case 510:
5973 < /* Line 1787 of yacc.c  */
5974 < #line 2669 "conf_parser.y"
5972 >  case 508:
5973 > /* Line 1813 of yacc.c  */
5974 > #line 2501 "conf_parser.y"
5975      {
5976    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5977   }
5978      break;
5979  
5980 <  case 511:
5981 < /* Line 1787 of yacc.c  */
5982 < #line 2672 "conf_parser.y"
5980 >  case 509:
5981 > /* Line 1813 of yacc.c  */
5982 > #line 2504 "conf_parser.y"
5983      {
5984    ConfigFileEntry.stats_i_oper_only = 1;
5985   }
5986      break;
5987  
5988 <  case 512:
5989 < /* Line 1787 of yacc.c  */
5990 < #line 2677 "conf_parser.y"
5988 >  case 510:
5989 > /* Line 1813 of yacc.c  */
5990 > #line 2509 "conf_parser.y"
5991      {
5992    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5993   }
5994      break;
5995  
5996 <  case 513:
5997 < /* Line 1787 of yacc.c  */
5998 < #line 2682 "conf_parser.y"
5996 >  case 511:
5997 > /* Line 1813 of yacc.c  */
5998 > #line 2514 "conf_parser.y"
5999      {
6000    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6001   }
6002      break;
6003  
6004 <  case 514:
6005 < /* Line 1787 of yacc.c  */
6006 < #line 2687 "conf_parser.y"
6004 >  case 512:
6005 > /* Line 1813 of yacc.c  */
6006 > #line 2519 "conf_parser.y"
6007      {
6008    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6009   }
6010      break;
6011  
6012 <  case 515:
6013 < /* Line 1787 of yacc.c  */
6014 < #line 2692 "conf_parser.y"
6012 >  case 513:
6013 > /* Line 1813 of yacc.c  */
6014 > #line 2524 "conf_parser.y"
6015      {
6016    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6017   }
6018      break;
6019  
6020 <  case 516:
6021 < /* Line 1787 of yacc.c  */
6022 < #line 2697 "conf_parser.y"
6020 >  case 514:
6021 > /* Line 1813 of yacc.c  */
6022 > #line 2529 "conf_parser.y"
6023      {
6024    ConfigFileEntry.short_motd = yylval.number;
6025   }
6026      break;
6027  
6028 <  case 517:
6029 < /* Line 1787 of yacc.c  */
6030 < #line 2702 "conf_parser.y"
6028 >  case 515:
6029 > /* Line 1813 of yacc.c  */
6030 > #line 2534 "conf_parser.y"
6031      {
6032    ConfigFileEntry.no_oper_flood = yylval.number;
6033   }
6034      break;
6035  
6036 <  case 518:
6037 < /* Line 1787 of yacc.c  */
6038 < #line 2707 "conf_parser.y"
6036 >  case 516:
6037 > /* Line 1813 of yacc.c  */
6038 > #line 2539 "conf_parser.y"
6039      {
6040    ConfigFileEntry.true_no_oper_flood = yylval.number;
6041   }
6042      break;
6043  
6044 <  case 519:
6045 < /* Line 1787 of yacc.c  */
6046 < #line 2712 "conf_parser.y"
6044 >  case 517:
6045 > /* Line 1813 of yacc.c  */
6046 > #line 2544 "conf_parser.y"
6047      {
6048    ConfigFileEntry.oper_pass_resv = yylval.number;
6049   }
6050      break;
6051  
6052 <  case 520:
6053 < /* Line 1787 of yacc.c  */
6054 < #line 2717 "conf_parser.y"
6052 >  case 518:
6053 > /* Line 1813 of yacc.c  */
6054 > #line 2549 "conf_parser.y"
6055      {
6056    if (conf_parser_ctx.pass == 2)
6057    {
# Line 6229 | Line 6063 | yyreduce:
6063   }
6064      break;
6065  
6066 <  case 521:
6067 < /* Line 1787 of yacc.c  */
6068 < #line 2728 "conf_parser.y"
6066 >  case 519:
6067 > /* Line 1813 of yacc.c  */
6068 > #line 2560 "conf_parser.y"
6069      {
6070    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6071   }
6072      break;
6073  
6074 <  case 522:
6075 < /* Line 1787 of yacc.c  */
6076 < #line 2733 "conf_parser.y"
6074 >  case 520:
6075 > /* Line 1813 of yacc.c  */
6076 > #line 2565 "conf_parser.y"
6077      {
6078    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6079   }
6080      break;
6081  
6082 <  case 523:
6083 < /* Line 1787 of yacc.c  */
6084 < #line 2738 "conf_parser.y"
6082 >  case 521:
6083 > /* Line 1813 of yacc.c  */
6084 > #line 2570 "conf_parser.y"
6085      {
6086    ConfigFileEntry.use_egd = yylval.number;
6087   }
6088      break;
6089  
6090 <  case 524:
6091 < /* Line 1787 of yacc.c  */
6092 < #line 2743 "conf_parser.y"
6090 >  case 522:
6091 > /* Line 1813 of yacc.c  */
6092 > #line 2575 "conf_parser.y"
6093      {
6094    if (conf_parser_ctx.pass == 2)
6095    {
6096      MyFree(ConfigFileEntry.egdpool_path);
6097 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6097 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6098    }
6099   }
6100      break;
6101  
6102 <  case 525:
6103 < /* Line 1787 of yacc.c  */
6104 < #line 2752 "conf_parser.y"
6102 >  case 523:
6103 > /* Line 1813 of yacc.c  */
6104 > #line 2584 "conf_parser.y"
6105      {
6106    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6107    {
6108      MyFree(ConfigFileEntry.service_name);
6109 <    DupString(ConfigFileEntry.service_name, yylval.string);
6109 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6110    }
6111   }
6112      break;
6113  
6114 <  case 526:
6115 < /* Line 1787 of yacc.c  */
6116 < #line 2761 "conf_parser.y"
6114 >  case 524:
6115 > /* Line 1813 of yacc.c  */
6116 > #line 2593 "conf_parser.y"
6117      {
6118    ConfigFileEntry.ping_cookie = yylval.number;
6119   }
6120      break;
6121  
6122 <  case 527:
6123 < /* Line 1787 of yacc.c  */
6124 < #line 2766 "conf_parser.y"
6122 >  case 525:
6123 > /* Line 1813 of yacc.c  */
6124 > #line 2598 "conf_parser.y"
6125      {
6126    ConfigFileEntry.disable_auth = yylval.number;
6127   }
6128      break;
6129  
6130 <  case 528:
6131 < /* Line 1787 of yacc.c  */
6132 < #line 2771 "conf_parser.y"
6130 >  case 526:
6131 > /* Line 1813 of yacc.c  */
6132 > #line 2603 "conf_parser.y"
6133      {
6134    ConfigFileEntry.throttle_time = yylval.number;
6135   }
6136      break;
6137  
6138 <  case 529:
6139 < /* Line 1787 of yacc.c  */
6140 < #line 2776 "conf_parser.y"
6138 >  case 527:
6139 > /* Line 1813 of yacc.c  */
6140 > #line 2608 "conf_parser.y"
6141      {
6142    ConfigFileEntry.oper_umodes = 0;
6143   }
6144      break;
6145  
6146 <  case 533:
6147 < /* Line 1787 of yacc.c  */
6148 < #line 2782 "conf_parser.y"
6146 >  case 531:
6147 > /* Line 1813 of yacc.c  */
6148 > #line 2614 "conf_parser.y"
6149      {
6150    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6151   }
6152      break;
6153  
6154 <  case 534:
6155 < /* Line 1787 of yacc.c  */
6156 < #line 2785 "conf_parser.y"
6154 >  case 532:
6155 > /* Line 1813 of yacc.c  */
6156 > #line 2617 "conf_parser.y"
6157      {
6158    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6159   }
6160      break;
6161  
6162 <  case 535:
6163 < /* Line 1787 of yacc.c  */
6164 < #line 2788 "conf_parser.y"
6162 >  case 533:
6163 > /* Line 1813 of yacc.c  */
6164 > #line 2620 "conf_parser.y"
6165      {
6166    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6167   }
6168      break;
6169  
6170 <  case 536:
6171 < /* Line 1787 of yacc.c  */
6172 < #line 2791 "conf_parser.y"
6170 >  case 534:
6171 > /* Line 1813 of yacc.c  */
6172 > #line 2623 "conf_parser.y"
6173      {
6174    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6175   }
6176      break;
6177  
6178 <  case 537:
6179 < /* Line 1787 of yacc.c  */
6180 < #line 2794 "conf_parser.y"
6178 >  case 535:
6179 > /* Line 1813 of yacc.c  */
6180 > #line 2626 "conf_parser.y"
6181      {
6182    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6183   }
6184      break;
6185  
6186 <  case 538:
6187 < /* Line 1787 of yacc.c  */
6188 < #line 2797 "conf_parser.y"
6186 >  case 536:
6187 > /* Line 1813 of yacc.c  */
6188 > #line 2629 "conf_parser.y"
6189      {
6190    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6191   }
6192      break;
6193  
6194 <  case 539:
6195 < /* Line 1787 of yacc.c  */
6196 < #line 2800 "conf_parser.y"
6194 >  case 537:
6195 > /* Line 1813 of yacc.c  */
6196 > #line 2632 "conf_parser.y"
6197      {
6198    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6199   }
6200      break;
6201  
6202 <  case 540:
6203 < /* Line 1787 of yacc.c  */
6204 < #line 2803 "conf_parser.y"
6202 >  case 538:
6203 > /* Line 1813 of yacc.c  */
6204 > #line 2635 "conf_parser.y"
6205      {
6206    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6207   }
6208      break;
6209  
6210 <  case 541:
6211 < /* Line 1787 of yacc.c  */
6212 < #line 2806 "conf_parser.y"
6210 >  case 539:
6211 > /* Line 1813 of yacc.c  */
6212 > #line 2638 "conf_parser.y"
6213      {
6214    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6215   }
6216      break;
6217  
6218 <  case 542:
6219 < /* Line 1787 of yacc.c  */
6220 < #line 2809 "conf_parser.y"
6218 >  case 540:
6219 > /* Line 1813 of yacc.c  */
6220 > #line 2641 "conf_parser.y"
6221      {
6222    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6223   }
6224      break;
6225  
6226 <  case 543:
6227 < /* Line 1787 of yacc.c  */
6228 < #line 2812 "conf_parser.y"
6226 >  case 541:
6227 > /* Line 1813 of yacc.c  */
6228 > #line 2644 "conf_parser.y"
6229      {
6230    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6231   }
6232      break;
6233  
6234 <  case 544:
6235 < /* Line 1787 of yacc.c  */
6236 < #line 2815 "conf_parser.y"
6234 >  case 542:
6235 > /* Line 1813 of yacc.c  */
6236 > #line 2647 "conf_parser.y"
6237      {
6238    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6239   }
6240      break;
6241  
6242 <  case 545:
6243 < /* Line 1787 of yacc.c  */
6244 < #line 2818 "conf_parser.y"
6242 >  case 543:
6243 > /* Line 1813 of yacc.c  */
6244 > #line 2650 "conf_parser.y"
6245      {
6246    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6247   }
6248      break;
6249  
6250 <  case 546:
6251 < /* Line 1787 of yacc.c  */
6252 < #line 2821 "conf_parser.y"
6250 >  case 544:
6251 > /* Line 1813 of yacc.c  */
6252 > #line 2653 "conf_parser.y"
6253      {
6254    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6255   }
6256      break;
6257  
6258 <  case 547:
6259 < /* Line 1787 of yacc.c  */
6260 < #line 2824 "conf_parser.y"
6258 >  case 545:
6259 > /* Line 1813 of yacc.c  */
6260 > #line 2656 "conf_parser.y"
6261      {
6262    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6263   }
6264      break;
6265  
6266 <  case 548:
6267 < /* Line 1787 of yacc.c  */
6268 < #line 2827 "conf_parser.y"
6266 >  case 546:
6267 > /* Line 1813 of yacc.c  */
6268 > #line 2659 "conf_parser.y"
6269      {
6270    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6271   }
6272      break;
6273  
6274 <  case 549:
6275 < /* Line 1787 of yacc.c  */
6276 < #line 2830 "conf_parser.y"
6274 >  case 547:
6275 > /* Line 1813 of yacc.c  */
6276 > #line 2662 "conf_parser.y"
6277      {
6278    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6279   }
6280      break;
6281  
6282 <  case 550:
6283 < /* Line 1787 of yacc.c  */
6284 < #line 2833 "conf_parser.y"
6282 >  case 548:
6283 > /* Line 1813 of yacc.c  */
6284 > #line 2665 "conf_parser.y"
6285      {
6286    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6287   }
6288      break;
6289  
6290 <  case 551:
6291 < /* Line 1787 of yacc.c  */
6292 < #line 2836 "conf_parser.y"
6290 >  case 549:
6291 > /* Line 1813 of yacc.c  */
6292 > #line 2668 "conf_parser.y"
6293      {
6294    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6295   }
6296      break;
6297  
6298 <  case 552:
6299 < /* Line 1787 of yacc.c  */
6300 < #line 2839 "conf_parser.y"
6298 >  case 550:
6299 > /* Line 1813 of yacc.c  */
6300 > #line 2671 "conf_parser.y"
6301      {
6302    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6303   }
6304      break;
6305  
6306 <  case 553:
6307 < /* Line 1787 of yacc.c  */
6308 < #line 2844 "conf_parser.y"
6306 >  case 551:
6307 > /* Line 1813 of yacc.c  */
6308 > #line 2676 "conf_parser.y"
6309      {
6310    ConfigFileEntry.oper_only_umodes = 0;
6311   }
6312      break;
6313  
6314 <  case 557:
6315 < /* Line 1787 of yacc.c  */
6316 < #line 2850 "conf_parser.y"
6314 >  case 555:
6315 > /* Line 1813 of yacc.c  */
6316 > #line 2682 "conf_parser.y"
6317      {
6318    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6319   }
6320      break;
6321  
6322 <  case 558:
6323 < /* Line 1787 of yacc.c  */
6324 < #line 2853 "conf_parser.y"
6322 >  case 556:
6323 > /* Line 1813 of yacc.c  */
6324 > #line 2685 "conf_parser.y"
6325      {
6326    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6327   }
6328      break;
6329  
6330 <  case 559:
6331 < /* Line 1787 of yacc.c  */
6332 < #line 2856 "conf_parser.y"
6330 >  case 557:
6331 > /* Line 1813 of yacc.c  */
6332 > #line 2688 "conf_parser.y"
6333      {
6334    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6335   }
6336      break;
6337  
6338 <  case 560:
6339 < /* Line 1787 of yacc.c  */
6340 < #line 2859 "conf_parser.y"
6338 >  case 558:
6339 > /* Line 1813 of yacc.c  */
6340 > #line 2691 "conf_parser.y"
6341      {
6342    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6343   }
6344      break;
6345  
6346 <  case 561:
6347 < /* Line 1787 of yacc.c  */
6348 < #line 2862 "conf_parser.y"
6346 >  case 559:
6347 > /* Line 1813 of yacc.c  */
6348 > #line 2694 "conf_parser.y"
6349      {
6350    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6351   }
6352      break;
6353  
6354 <  case 562:
6355 < /* Line 1787 of yacc.c  */
6356 < #line 2865 "conf_parser.y"
6354 >  case 560:
6355 > /* Line 1813 of yacc.c  */
6356 > #line 2697 "conf_parser.y"
6357      {
6358    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6359   }
6360      break;
6361  
6362 <  case 563:
6363 < /* Line 1787 of yacc.c  */
6364 < #line 2868 "conf_parser.y"
6362 >  case 561:
6363 > /* Line 1813 of yacc.c  */
6364 > #line 2700 "conf_parser.y"
6365      {
6366    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6367   }
6368      break;
6369  
6370 <  case 564:
6371 < /* Line 1787 of yacc.c  */
6372 < #line 2871 "conf_parser.y"
6370 >  case 562:
6371 > /* Line 1813 of yacc.c  */
6372 > #line 2703 "conf_parser.y"
6373      {
6374    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6375   }
6376      break;
6377  
6378 <  case 565:
6379 < /* Line 1787 of yacc.c  */
6380 < #line 2874 "conf_parser.y"
6378 >  case 563:
6379 > /* Line 1813 of yacc.c  */
6380 > #line 2706 "conf_parser.y"
6381      {
6382    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6383   }
6384      break;
6385  
6386 <  case 566:
6387 < /* Line 1787 of yacc.c  */
6388 < #line 2877 "conf_parser.y"
6386 >  case 564:
6387 > /* Line 1813 of yacc.c  */
6388 > #line 2709 "conf_parser.y"
6389      {
6390    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6391   }
6392      break;
6393  
6394 <  case 567:
6395 < /* Line 1787 of yacc.c  */
6396 < #line 2880 "conf_parser.y"
6394 >  case 565:
6395 > /* Line 1813 of yacc.c  */
6396 > #line 2712 "conf_parser.y"
6397      {
6398    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6399   }
6400      break;
6401  
6402 <  case 568:
6403 < /* Line 1787 of yacc.c  */
6404 < #line 2883 "conf_parser.y"
6402 >  case 566:
6403 > /* Line 1813 of yacc.c  */
6404 > #line 2715 "conf_parser.y"
6405      {
6406    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6407   }
6408      break;
6409  
6410 <  case 569:
6411 < /* Line 1787 of yacc.c  */
6412 < #line 2886 "conf_parser.y"
6410 >  case 567:
6411 > /* Line 1813 of yacc.c  */
6412 > #line 2718 "conf_parser.y"
6413      {
6414    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6415   }
6416      break;
6417  
6418 <  case 570:
6419 < /* Line 1787 of yacc.c  */
6420 < #line 2889 "conf_parser.y"
6418 >  case 568:
6419 > /* Line 1813 of yacc.c  */
6420 > #line 2721 "conf_parser.y"
6421      {
6422    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6423   }
6424      break;
6425  
6426 <  case 571:
6427 < /* Line 1787 of yacc.c  */
6428 < #line 2892 "conf_parser.y"
6426 >  case 569:
6427 > /* Line 1813 of yacc.c  */
6428 > #line 2724 "conf_parser.y"
6429      {
6430    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6431   }
6432      break;
6433  
6434 <  case 572:
6435 < /* Line 1787 of yacc.c  */
6436 < #line 2895 "conf_parser.y"
6434 >  case 570:
6435 > /* Line 1813 of yacc.c  */
6436 > #line 2727 "conf_parser.y"
6437      {
6438    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6439   }
6440      break;
6441  
6442 <  case 573:
6443 < /* Line 1787 of yacc.c  */
6444 < #line 2898 "conf_parser.y"
6442 >  case 571:
6443 > /* Line 1813 of yacc.c  */
6444 > #line 2730 "conf_parser.y"
6445      {
6446    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6447   }
6448      break;
6449  
6450 <  case 574:
6451 < /* Line 1787 of yacc.c  */
6452 < #line 2901 "conf_parser.y"
6450 >  case 572:
6451 > /* Line 1813 of yacc.c  */
6452 > #line 2733 "conf_parser.y"
6453      {
6454    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6455   }
6456      break;
6457  
6458 <  case 575:
6459 < /* Line 1787 of yacc.c  */
6460 < #line 2904 "conf_parser.y"
6458 >  case 573:
6459 > /* Line 1813 of yacc.c  */
6460 > #line 2736 "conf_parser.y"
6461      {
6462    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6463   }
6464      break;
6465  
6466 <  case 576:
6467 < /* Line 1787 of yacc.c  */
6468 < #line 2907 "conf_parser.y"
6466 >  case 574:
6467 > /* Line 1813 of yacc.c  */
6468 > #line 2739 "conf_parser.y"
6469      {
6470    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6471   }
6472      break;
6473  
6474 <  case 577:
6475 < /* Line 1787 of yacc.c  */
6476 < #line 2912 "conf_parser.y"
6474 >  case 575:
6475 > /* Line 1813 of yacc.c  */
6476 > #line 2744 "conf_parser.y"
6477      {
6478    ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6479   }
6480      break;
6481  
6482 <  case 578:
6483 < /* Line 1787 of yacc.c  */
6484 < #line 2917 "conf_parser.y"
6482 >  case 576:
6483 > /* Line 1813 of yacc.c  */
6484 > #line 2749 "conf_parser.y"
6485      {
6486    ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6487   }
6488      break;
6489  
6490 <  case 579:
6491 < /* Line 1787 of yacc.c  */
6492 < #line 2922 "conf_parser.y"
6490 >  case 577:
6491 > /* Line 1813 of yacc.c  */
6492 > #line 2754 "conf_parser.y"
6493      {
6494    ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6495   }
6496      break;
6497  
6498 <  case 598:
6499 < /* Line 1787 of yacc.c  */
6500 < #line 2945 "conf_parser.y"
6498 >  case 596:
6499 > /* Line 1813 of yacc.c  */
6500 > #line 2777 "conf_parser.y"
6501      {
6502    ConfigChannel.disable_fake_channels = yylval.number;
6503   }
6504      break;
6505  
6506 <  case 599:
6507 < /* Line 1787 of yacc.c  */
6508 < #line 2950 "conf_parser.y"
6506 >  case 597:
6507 > /* Line 1813 of yacc.c  */
6508 > #line 2782 "conf_parser.y"
6509      {
6510    ConfigChannel.restrict_channels = yylval.number;
6511   }
6512      break;
6513  
6514 <  case 600:
6515 < /* Line 1787 of yacc.c  */
6516 < #line 2955 "conf_parser.y"
6514 >  case 598:
6515 > /* Line 1813 of yacc.c  */
6516 > #line 2787 "conf_parser.y"
6517      {
6518    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6519   }
6520      break;
6521  
6522 <  case 601:
6523 < /* Line 1787 of yacc.c  */
6524 < #line 2960 "conf_parser.y"
6522 >  case 599:
6523 > /* Line 1813 of yacc.c  */
6524 > #line 2792 "conf_parser.y"
6525      {
6526    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6527   }
6528      break;
6529  
6530 <  case 602:
6531 < /* Line 1787 of yacc.c  */
6532 < #line 2965 "conf_parser.y"
6530 >  case 600:
6531 > /* Line 1813 of yacc.c  */
6532 > #line 2797 "conf_parser.y"
6533      {
6534    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6535   }
6536      break;
6537  
6538 <  case 603:
6539 < /* Line 1787 of yacc.c  */
6540 < #line 2970 "conf_parser.y"
6538 >  case 601:
6539 > /* Line 1813 of yacc.c  */
6540 > #line 2802 "conf_parser.y"
6541      {
6542    ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6543   }
6544      break;
6545  
6546 <  case 604:
6547 < /* Line 1787 of yacc.c  */
6548 < #line 2975 "conf_parser.y"
6546 >  case 602:
6547 > /* Line 1813 of yacc.c  */
6548 > #line 2807 "conf_parser.y"
6549      {
6550    ConfigChannel.quiet_on_ban = yylval.number;
6551   }
6552      break;
6553  
6554 <  case 605:
6555 < /* Line 1787 of yacc.c  */
6556 < #line 2980 "conf_parser.y"
6554 >  case 603:
6555 > /* Line 1813 of yacc.c  */
6556 > #line 2812 "conf_parser.y"
6557      {
6558    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6559   }
6560      break;
6561  
6562 <  case 606:
6563 < /* Line 1787 of yacc.c  */
6564 < #line 2985 "conf_parser.y"
6562 >  case 604:
6563 > /* Line 1813 of yacc.c  */
6564 > #line 2817 "conf_parser.y"
6565      {
6566    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6567   }
6568      break;
6569  
6570 <  case 607:
6571 < /* Line 1787 of yacc.c  */
6572 < #line 2990 "conf_parser.y"
6570 >  case 605:
6571 > /* Line 1813 of yacc.c  */
6572 > #line 2822 "conf_parser.y"
6573      {
6574    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6575   }
6576      break;
6577  
6578 <  case 608:
6579 < /* Line 1787 of yacc.c  */
6580 < #line 2995 "conf_parser.y"
6578 >  case 606:
6579 > /* Line 1813 of yacc.c  */
6580 > #line 2827 "conf_parser.y"
6581      {
6582    ConfigChannel.no_create_on_split = yylval.number;
6583   }
6584      break;
6585  
6586 <  case 609:
6587 < /* Line 1787 of yacc.c  */
6588 < #line 3000 "conf_parser.y"
6586 >  case 607:
6587 > /* Line 1813 of yacc.c  */
6588 > #line 2832 "conf_parser.y"
6589      {
6590    ConfigChannel.no_join_on_split = yylval.number;
6591   }
6592      break;
6593  
6594 <  case 610:
6595 < /* Line 1787 of yacc.c  */
6596 < #line 3005 "conf_parser.y"
6594 >  case 608:
6595 > /* Line 1813 of yacc.c  */
6596 > #line 2837 "conf_parser.y"
6597      {
6598    GlobalSetOptions.joinfloodcount = yylval.number;
6599   }
6600      break;
6601  
6602 <  case 611:
6603 < /* Line 1787 of yacc.c  */
6604 < #line 3010 "conf_parser.y"
6602 >  case 609:
6603 > /* Line 1813 of yacc.c  */
6604 > #line 2842 "conf_parser.y"
6605      {
6606    GlobalSetOptions.joinfloodtime = yylval.number;
6607   }
6608      break;
6609  
6610 <  case 622:
6611 < /* Line 1787 of yacc.c  */
6612 < #line 3028 "conf_parser.y"
6610 >  case 620:
6611 > /* Line 1813 of yacc.c  */
6612 > #line 2860 "conf_parser.y"
6613      {
6614    if (conf_parser_ctx.pass == 2)
6615      ConfigServerHide.flatten_links = yylval.number;
6616   }
6617      break;
6618  
6619 <  case 623:
6620 < /* Line 1787 of yacc.c  */
6621 < #line 3034 "conf_parser.y"
6619 >  case 621:
6620 > /* Line 1813 of yacc.c  */
6621 > #line 2866 "conf_parser.y"
6622      {
6623    if (conf_parser_ctx.pass == 2)
6624      ConfigServerHide.hide_servers = yylval.number;
6625   }
6626      break;
6627  
6628 <  case 624:
6629 < /* Line 1787 of yacc.c  */
6630 < #line 3040 "conf_parser.y"
6628 >  case 622:
6629 > /* Line 1813 of yacc.c  */
6630 > #line 2872 "conf_parser.y"
6631      {
6632    if (conf_parser_ctx.pass == 2)
6633    {
6634      MyFree(ConfigServerHide.hidden_name);
6635 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6635 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6636    }
6637   }
6638      break;
6639  
6640 <  case 625:
6641 < /* Line 1787 of yacc.c  */
6642 < #line 3049 "conf_parser.y"
6640 >  case 623:
6641 > /* Line 1813 of yacc.c  */
6642 > #line 2881 "conf_parser.y"
6643      {
6644    if (conf_parser_ctx.pass == 2)
6645    {
# Line 6820 | Line 6654 | yyreduce:
6654   }
6655      break;
6656  
6657 <  case 626:
6658 < /* Line 1787 of yacc.c  */
6659 < #line 3063 "conf_parser.y"
6657 >  case 624:
6658 > /* Line 1813 of yacc.c  */
6659 > #line 2895 "conf_parser.y"
6660      {
6661    if (conf_parser_ctx.pass == 2)
6662      ConfigServerHide.hidden = yylval.number;
6663   }
6664      break;
6665  
6666 <  case 627:
6667 < /* Line 1787 of yacc.c  */
6668 < #line 3069 "conf_parser.y"
6666 >  case 625:
6667 > /* Line 1813 of yacc.c  */
6668 > #line 2901 "conf_parser.y"
6669      {
6670    if (conf_parser_ctx.pass == 2)
6671      ConfigServerHide.hide_server_ips = yylval.number;
# Line 6839 | Line 6673 | yyreduce:
6673      break;
6674  
6675  
6676 < /* Line 1787 of yacc.c  */
6677 < #line 6844 "conf_parser.c"
6676 > /* Line 1813 of yacc.c  */
6677 > #line 6678 "conf_parser.c"
6678        default: break;
6679      }
6680    /* User semantic actions sometimes alter yychar, and that requires
# Line 7003 | Line 6837 | yyerrlab1:
6837        YY_STACK_PRINT (yyss, yyssp);
6838      }
6839  
6840 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6841    *++yyvsp = yylval;
6842 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6843  
6844  
6845    /* Shift the error token.  */

Diff Legend

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