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

Comparing ircd-hybrid/trunk/src/conf_parser.c (file contents):
Revision 1619 by michael, Wed Oct 31 19:21:26 2012 UTC vs.
Revision 1651 by michael, Sun Nov 11 10:54:51 2012 UTC

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

Diff Legend

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