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 4313 by michael, Thu Jul 31 18:50:11 2014 UTC vs.
Revision 7283 by michael, Sun Feb 7 18:25:22 2016 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 3.0.2.  */
1 > /* A Bison parser, made by GNU Bison 3.0.4.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4  
5 <   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
5 >   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6  
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "3.0.2"
47 > #define YYBISON_VERSION "3.0.4"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 65 | Line 65
65   #line 28 "conf_parser.y" /* yacc.c:339  */
66  
67  
68 #define YY_NO_UNPUT
69 #include <sys/types.h>
70 #include <string.h>
71
68   #include "config.h"
69   #include "stdinc.h"
70   #include "ircd.h"
71   #include "list.h"
72   #include "conf.h"
73   #include "conf_class.h"
74 + #include "conf_cluster.h"
75 + #include "conf_pseudo.h"
76 + #include "conf_resv.h"
77 + #include "conf_service.h"
78 + #include "conf_shared.h"
79   #include "event.h"
80 + #include "id.h"
81   #include "log.h"
80 #include "client.h"     /* for UMODE_ALL only */
82   #include "irc_string.h"
83   #include "memory.h"
84   #include "modules.h"
85   #include "server.h"
86   #include "hostmask.h"
86 #include "send.h"
87   #include "listener.h"
88 #include "resv.h"
89 #include "numeric.h"
88   #include "user.h"
89   #include "motd.h"
90  
93 #ifdef HAVE_LIBCRYPTO
94 #include <openssl/rsa.h>
95 #include <openssl/bio.h>
96 #include <openssl/pem.h>
97 #include <openssl/dh.h>
98 #endif
99
100 #include "rsa.h"
101
91   int yylex(void);
92  
93   static struct
# Line 114 | Line 103 | static struct
103    {
104      char buf[IRCD_BUFSIZE];
105    } name,
106 +    nick,
107      user,
108      host,
109      addr,
# Line 123 | Line 113 | static struct
113      cert,
114      rpass,
115      spass,
116 <    class;
116 >    whois,
117 >    class,
118 >    target,
119 >    prepend,
120 >    command;
121  
122    struct
123    {
# Line 154 | Line 148 | static struct
148   static void
149   reset_block_state(void)
150   {
151 <  dlink_node *ptr = NULL, *ptr_next = NULL;
151 >  dlink_node *node = NULL, *node_next = NULL;
152  
153 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
153 >  DLINK_FOREACH_SAFE(node, node_next, block_state.mask.list.head)
154    {
155 <    MyFree(ptr->data);
156 <    dlinkDelete(ptr, &block_state.mask.list);
157 <    free_dlink_node(ptr);
155 >    xfree(node->data);
156 >    dlinkDelete(node, &block_state.mask.list);
157 >    free_dlink_node(node);
158    }
159  
160 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
160 >  DLINK_FOREACH_SAFE(node, node_next, block_state.leaf.list.head)
161    {
162 <    MyFree(ptr->data);
163 <    dlinkDelete(ptr, &block_state.leaf.list);
164 <    free_dlink_node(ptr);
162 >    xfree(node->data);
163 >    dlinkDelete(node, &block_state.leaf.list);
164 >    free_dlink_node(node);
165    }
166  
167 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
167 >  DLINK_FOREACH_SAFE(node, node_next, block_state.hub.list.head)
168    {
169 <    MyFree(ptr->data);
170 <    dlinkDelete(ptr, &block_state.hub.list);
171 <    free_dlink_node(ptr);
169 >    xfree(node->data);
170 >    dlinkDelete(node, &block_state.hub.list);
171 >    free_dlink_node(node);
172    }
173  
174    memset(&block_state, 0, sizeof(block_state));
175   }
176  
177  
178 < #line 185 "conf_parser.c" /* yacc.c:339  */
178 > #line 179 "conf_parser.c" /* yacc.c:339  */
179  
180   # ifndef YY_NULLPTR
181   #  if defined __cplusplus && 201103L <= __cplusplus
# Line 230 | Line 224 | extern int yydebug;
224      CALLER_ID_WAIT = 269,
225      CAN_FLOOD = 270,
226      CHANNEL = 271,
227 <    CIDR_BITLEN_IPV4 = 272,
228 <    CIDR_BITLEN_IPV6 = 273,
229 <    CLASS = 274,
230 <    CONNECT = 275,
231 <    CONNECTFREQ = 276,
232 <    CYCLE_ON_HOST_CHANGE = 277,
233 <    DEFAULT_FLOODCOUNT = 278,
234 <    DEFAULT_SPLIT_SERVER_COUNT = 279,
235 <    DEFAULT_SPLIT_USER_COUNT = 280,
236 <    DENY = 281,
237 <    DESCRIPTION = 282,
238 <    DIE = 283,
239 <    DISABLE_AUTH = 284,
240 <    DISABLE_FAKE_CHANNELS = 285,
241 <    DISABLE_REMOTE_COMMANDS = 286,
242 <    DOTS_IN_IDENT = 287,
243 <    EGDPOOL_PATH = 288,
244 <    EMAIL = 289,
245 <    ENCRYPTED = 290,
246 <    EXCEED_LIMIT = 291,
247 <    EXEMPT = 292,
248 <    FAILED_OPER_NOTICE = 293,
249 <    FLATTEN_LINKS = 294,
250 <    GECOS = 295,
251 <    GENERAL = 296,
252 <    GLINE = 297,
253 <    GLINE_DURATION = 298,
254 <    GLINE_ENABLE = 299,
255 <    GLINE_EXEMPT = 300,
256 <    GLINE_MIN_CIDR = 301,
257 <    GLINE_MIN_CIDR6 = 302,
258 <    GLINE_REQUEST_DURATION = 303,
259 <    GLOBAL_KILL = 304,
260 <    HAVENT_READ_CONF = 305,
261 <    HIDDEN = 306,
262 <    HIDDEN_NAME = 307,
263 <    HIDE_CHANS = 308,
264 <    HIDE_IDLE = 309,
265 <    HIDE_IDLE_FROM_OPERS = 310,
266 <    HIDE_SERVER_IPS = 311,
267 <    HIDE_SERVERS = 312,
268 <    HIDE_SERVICES = 313,
269 <    HIDE_SPOOF_IPS = 314,
270 <    HOST = 315,
271 <    HUB = 316,
272 <    HUB_MASK = 317,
273 <    IGNORE_BOGUS_TS = 318,
274 <    INVISIBLE_ON_CONNECT = 319,
275 <    INVITE_CLIENT_COUNT = 320,
276 <    INVITE_CLIENT_TIME = 321,
277 <    IP = 322,
278 <    IRCD_AUTH = 323,
279 <    IRCD_FLAGS = 324,
280 <    IRCD_SID = 325,
281 <    JOIN_FLOOD_COUNT = 326,
282 <    JOIN_FLOOD_TIME = 327,
283 <    KILL = 328,
284 <    KILL_CHASE_TIME_LIMIT = 329,
285 <    KLINE = 330,
286 <    KLINE_EXEMPT = 331,
287 <    KNOCK_CLIENT_COUNT = 332,
288 <    KNOCK_CLIENT_TIME = 333,
289 <    KNOCK_DELAY_CHANNEL = 334,
290 <    LEAF_MASK = 335,
291 <    LINKS_DELAY = 336,
227 >    CHECK_CACHE = 272,
228 >    CIDR_BITLEN_IPV4 = 273,
229 >    CIDR_BITLEN_IPV6 = 274,
230 >    CLASS = 275,
231 >    CLOSE = 276,
232 >    CONNECT = 277,
233 >    CONNECTFREQ = 278,
234 >    CYCLE_ON_HOST_CHANGE = 279,
235 >    DEFAULT_FLOODCOUNT = 280,
236 >    DEFAULT_JOIN_FLOOD_COUNT = 281,
237 >    DEFAULT_JOIN_FLOOD_TIME = 282,
238 >    DEFAULT_MAX_CLIENTS = 283,
239 >    DENY = 284,
240 >    DESCRIPTION = 285,
241 >    DIE = 286,
242 >    DISABLE_AUTH = 287,
243 >    DISABLE_FAKE_CHANNELS = 288,
244 >    DISABLE_REMOTE_COMMANDS = 289,
245 >    DLINE_MIN_CIDR = 290,
246 >    DLINE_MIN_CIDR6 = 291,
247 >    DOTS_IN_IDENT = 292,
248 >    EMAIL = 293,
249 >    ENCRYPTED = 294,
250 >    EXCEED_LIMIT = 295,
251 >    EXEMPT = 296,
252 >    FAILED_OPER_NOTICE = 297,
253 >    FLATTEN_LINKS = 298,
254 >    FLATTEN_LINKS_DELAY = 299,
255 >    FLATTEN_LINKS_FILE = 300,
256 >    GECOS = 301,
257 >    GENERAL = 302,
258 >    HIDDEN = 303,
259 >    HIDDEN_NAME = 304,
260 >    HIDE_CHANS = 305,
261 >    HIDE_IDLE = 306,
262 >    HIDE_IDLE_FROM_OPERS = 307,
263 >    HIDE_SERVER_IPS = 308,
264 >    HIDE_SERVERS = 309,
265 >    HIDE_SERVICES = 310,
266 >    HOST = 311,
267 >    HUB = 312,
268 >    HUB_MASK = 313,
269 >    IGNORE_BOGUS_TS = 314,
270 >    INVISIBLE_ON_CONNECT = 315,
271 >    INVITE_CLIENT_COUNT = 316,
272 >    INVITE_CLIENT_TIME = 317,
273 >    INVITE_DELAY_CHANNEL = 318,
274 >    IP = 319,
275 >    IRCD_AUTH = 320,
276 >    IRCD_FLAGS = 321,
277 >    IRCD_SID = 322,
278 >    JOIN = 323,
279 >    KILL = 324,
280 >    KILL_CHASE_TIME_LIMIT = 325,
281 >    KLINE = 326,
282 >    KLINE_EXEMPT = 327,
283 >    KLINE_MIN_CIDR = 328,
284 >    KLINE_MIN_CIDR6 = 329,
285 >    KNOCK_CLIENT_COUNT = 330,
286 >    KNOCK_CLIENT_TIME = 331,
287 >    KNOCK_DELAY_CHANNEL = 332,
288 >    LEAF_MASK = 333,
289 >    LIBGEOIP_DATABASE_OPTIONS = 334,
290 >    LIBGEOIP_IPV4_DATABASE_FILE = 335,
291 >    LIBGEOIP_IPV6_DATABASE_FILE = 336,
292      LISTEN = 337,
293      MASK = 338,
294      MAX_ACCEPT = 339,
# Line 311 | Line 305 | extern int yydebug;
305      MAX_TARGETS = 350,
306      MAX_TOPIC_LENGTH = 351,
307      MAX_WATCH = 352,
308 <    MIN_IDLE = 353,
309 <    MIN_NONWILDCARD = 354,
310 <    MIN_NONWILDCARD_SIMPLE = 355,
311 <    MODULE = 356,
312 <    MODULES = 357,
313 <    MOTD = 358,
314 <    NAME = 359,
315 <    NEED_IDENT = 360,
316 <    NEED_PASSWORD = 361,
317 <    NETWORK_DESC = 362,
318 <    NETWORK_NAME = 363,
319 <    NICK = 364,
320 <    NO_CREATE_ON_SPLIT = 365,
321 <    NO_JOIN_ON_SPLIT = 366,
308 >    MEMORY_CACHE = 353,
309 >    MIN_IDLE = 354,
310 >    MIN_NONWILDCARD = 355,
311 >    MIN_NONWILDCARD_SIMPLE = 356,
312 >    MMAP_CACHE = 357,
313 >    MODULE = 358,
314 >    MODULES = 359,
315 >    MOTD = 360,
316 >    NAME = 361,
317 >    NEED_IDENT = 362,
318 >    NEED_PASSWORD = 363,
319 >    NETWORK_DESC = 364,
320 >    NETWORK_NAME = 365,
321 >    NICK = 366,
322      NO_OPER_FLOOD = 367,
323      NO_TILDE = 368,
324      NUMBER = 369,
325      NUMBER_PER_CIDR = 370,
326      NUMBER_PER_IP = 371,
327      OPER_ONLY_UMODES = 372,
328 <    OPER_PASS_RESV = 373,
329 <    OPER_UMODES = 374,
330 <    OPERATOR = 375,
331 <    OPERS_BYPASS_CALLERID = 376,
332 <    PACE_WAIT = 377,
333 <    PACE_WAIT_SIMPLE = 378,
334 <    PASSWORD = 379,
335 <    PATH = 380,
336 <    PING_COOKIE = 381,
337 <    PING_TIME = 382,
338 <    PORT = 383,
339 <    QSTRING = 384,
340 <    RANDOM_IDLE = 385,
341 <    REASON = 386,
342 <    REDIRPORT = 387,
343 <    REDIRSERV = 388,
344 <    REHASH = 389,
345 <    REMOTE = 390,
346 <    REMOTEBAN = 391,
347 <    RESV = 392,
348 <    RESV_EXEMPT = 393,
349 <    RSA_PRIVATE_KEY_FILE = 394,
350 <    RSA_PUBLIC_KEY_FILE = 395,
351 <    SECONDS = 396,
352 <    MINUTES = 397,
353 <    HOURS = 398,
354 <    DAYS = 399,
355 <    WEEKS = 400,
356 <    MONTHS = 401,
357 <    YEARS = 402,
358 <    SEND_PASSWORD = 403,
359 <    SENDQ = 404,
360 <    SERVERHIDE = 405,
361 <    SERVERINFO = 406,
362 <    SHORT_MOTD = 407,
363 <    SPOOF = 408,
364 <    SPOOF_NOTICE = 409,
365 <    SQUIT = 410,
366 <    SSL_CERTIFICATE_FILE = 411,
367 <    SSL_CERTIFICATE_FINGERPRINT = 412,
368 <    SSL_CONNECTION_REQUIRED = 413,
369 <    SSL_DH_ELLIPTIC_CURVE = 414,
370 <    SSL_DH_PARAM_FILE = 415,
371 <    SSL_MESSAGE_DIGEST_ALGORITHM = 416,
372 <    STATS_E_DISABLED = 417,
373 <    STATS_I_OPER_ONLY = 418,
374 <    STATS_K_OPER_ONLY = 419,
328 >    OPER_UMODES = 373,
329 >    OPERATOR = 374,
330 >    OPERS_BYPASS_CALLERID = 375,
331 >    PACE_WAIT = 376,
332 >    PACE_WAIT_SIMPLE = 377,
333 >    PASSWORD = 378,
334 >    PATH = 379,
335 >    PING_COOKIE = 380,
336 >    PING_TIME = 381,
337 >    PORT = 382,
338 >    QSTRING = 383,
339 >    RANDOM_IDLE = 384,
340 >    REASON = 385,
341 >    REDIRPORT = 386,
342 >    REDIRSERV = 387,
343 >    REHASH = 388,
344 >    REMOTE = 389,
345 >    REMOTEBAN = 390,
346 >    RESV = 391,
347 >    RESV_EXEMPT = 392,
348 >    RSA_PRIVATE_KEY_FILE = 393,
349 >    SECONDS = 394,
350 >    MINUTES = 395,
351 >    HOURS = 396,
352 >    DAYS = 397,
353 >    WEEKS = 398,
354 >    MONTHS = 399,
355 >    YEARS = 400,
356 >    SEND_PASSWORD = 401,
357 >    SENDQ = 402,
358 >    SERVERHIDE = 403,
359 >    SERVERINFO = 404,
360 >    SHORT_MOTD = 405,
361 >    SPOOF = 406,
362 >    SPOOF_NOTICE = 407,
363 >    SQUIT = 408,
364 >    SSL_CERTIFICATE_FILE = 409,
365 >    SSL_CERTIFICATE_FINGERPRINT = 410,
366 >    SSL_CONNECTION_REQUIRED = 411,
367 >    SSL_DH_ELLIPTIC_CURVE = 412,
368 >    SSL_DH_PARAM_FILE = 413,
369 >    SSL_MESSAGE_DIGEST_ALGORITHM = 414,
370 >    STANDARD = 415,
371 >    STATS_E_DISABLED = 416,
372 >    STATS_I_OPER_ONLY = 417,
373 >    STATS_K_OPER_ONLY = 418,
374 >    STATS_M_OPER_ONLY = 419,
375      STATS_O_OPER_ONLY = 420,
376      STATS_P_OPER_ONLY = 421,
377      STATS_U_OPER_ONLY = 422,
# Line 385 | Line 379 | extern int yydebug;
379      T_BOTS = 424,
380      T_CALLERID = 425,
381      T_CCONN = 426,
382 <    T_CLUSTER = 427,
383 <    T_DEAF = 428,
384 <    T_DEBUG = 429,
385 <    T_DLINE = 430,
386 <    T_EXTERNAL = 431,
387 <    T_FARCONNECT = 432,
388 <    T_FILE = 433,
389 <    T_FULL = 434,
390 <    T_GLOBOPS = 435,
391 <    T_INVISIBLE = 436,
392 <    T_IPV4 = 437,
393 <    T_IPV6 = 438,
394 <    T_LOCOPS = 439,
395 <    T_LOG = 440,
396 <    T_MAX_CLIENTS = 441,
382 >    T_COMMAND = 427,
383 >    T_CLUSTER = 428,
384 >    T_DEAF = 429,
385 >    T_DEBUG = 430,
386 >    T_DLINE = 431,
387 >    T_EXTERNAL = 432,
388 >    T_FARCONNECT = 433,
389 >    T_FILE = 434,
390 >    T_FULL = 435,
391 >    T_GLOBOPS = 436,
392 >    T_INVISIBLE = 437,
393 >    T_IPV4 = 438,
394 >    T_IPV6 = 439,
395 >    T_LOCOPS = 440,
396 >    T_LOG = 441,
397      T_NCHANGE = 442,
398      T_NONONREG = 443,
399 <    T_RECVQ = 444,
400 <    T_REJ = 445,
401 <    T_RESTART = 446,
402 <    T_SERVER = 447,
403 <    T_SERVICE = 448,
404 <    T_SERVICES_NAME = 449,
405 <    T_SERVNOTICE = 450,
406 <    T_SET = 451,
407 <    T_SHARED = 452,
408 <    T_SIZE = 453,
409 <    T_SKILL = 454,
410 <    T_SOFTCALLERID = 455,
411 <    T_SPY = 456,
412 <    T_SSL = 457,
413 <    T_SSL_CIPHER_LIST = 458,
414 <    T_UMODES = 459,
415 <    T_UNAUTH = 460,
416 <    T_UNDLINE = 461,
417 <    T_UNLIMITED = 462,
418 <    T_UNRESV = 463,
419 <    T_UNXLINE = 464,
420 <    T_WALLOP = 465,
421 <    T_WALLOPS = 466,
422 <    T_WEBIRC = 467,
423 <    TBOOL = 468,
424 <    THROTTLE_COUNT = 469,
425 <    THROTTLE_TIME = 470,
426 <    TKLINE_EXPIRE_NOTICES = 471,
427 <    TMASKED = 472,
428 <    TRUE_NO_OPER_FLOOD = 473,
429 <    TS_MAX_DELTA = 474,
430 <    TS_WARN_DELTA = 475,
431 <    TWODOTS = 476,
432 <    TYPE = 477,
433 <    UNKLINE = 478,
434 <    USE_EGD = 479,
435 <    USE_LOGGING = 480,
436 <    USER = 481,
437 <    VHOST = 482,
438 <    VHOST6 = 483,
439 <    WARN_NO_CONNECT_BLOCK = 484,
440 <    XLINE = 485
399 >    T_OPME = 444,
400 >    T_PREPEND = 445,
401 >    T_PSEUDO = 446,
402 >    T_RECVQ = 447,
403 >    T_REJ = 448,
404 >    T_RESTART = 449,
405 >    T_SERVER = 450,
406 >    T_SERVICE = 451,
407 >    T_SERVNOTICE = 452,
408 >    T_SET = 453,
409 >    T_SHARED = 454,
410 >    T_SIZE = 455,
411 >    T_SKILL = 456,
412 >    T_SOFTCALLERID = 457,
413 >    T_SPY = 458,
414 >    T_SSL = 459,
415 >    T_SSL_CIPHER_LIST = 460,
416 >    T_TARGET = 461,
417 >    T_UMODES = 462,
418 >    T_UNAUTH = 463,
419 >    T_UNDLINE = 464,
420 >    T_UNLIMITED = 465,
421 >    T_UNRESV = 466,
422 >    T_UNXLINE = 467,
423 >    T_WALLOP = 468,
424 >    T_WALLOPS = 469,
425 >    T_WEBIRC = 470,
426 >    TBOOL = 471,
427 >    THROTTLE_COUNT = 472,
428 >    THROTTLE_TIME = 473,
429 >    TKLINE_EXPIRE_NOTICES = 474,
430 >    TMASKED = 475,
431 >    TS_MAX_DELTA = 476,
432 >    TS_WARN_DELTA = 477,
433 >    TWODOTS = 478,
434 >    TYPE = 479,
435 >    UNKLINE = 480,
436 >    USE_LOGGING = 481,
437 >    USER = 482,
438 >    VHOST = 483,
439 >    VHOST6 = 484,
440 >    WARN_NO_CONNECT_BLOCK = 485,
441 >    WHOIS = 486,
442 >    XLINE = 487,
443 >    XLINE_EXEMPT = 488
444    };
445   #endif
446   /* Tokens.  */
# Line 461 | Line 458 | extern int yydebug;
458   #define CALLER_ID_WAIT 269
459   #define CAN_FLOOD 270
460   #define CHANNEL 271
461 < #define CIDR_BITLEN_IPV4 272
462 < #define CIDR_BITLEN_IPV6 273
463 < #define CLASS 274
464 < #define CONNECT 275
465 < #define CONNECTFREQ 276
466 < #define CYCLE_ON_HOST_CHANGE 277
467 < #define DEFAULT_FLOODCOUNT 278
468 < #define DEFAULT_SPLIT_SERVER_COUNT 279
469 < #define DEFAULT_SPLIT_USER_COUNT 280
470 < #define DENY 281
471 < #define DESCRIPTION 282
472 < #define DIE 283
473 < #define DISABLE_AUTH 284
474 < #define DISABLE_FAKE_CHANNELS 285
475 < #define DISABLE_REMOTE_COMMANDS 286
476 < #define DOTS_IN_IDENT 287
477 < #define EGDPOOL_PATH 288
478 < #define EMAIL 289
479 < #define ENCRYPTED 290
480 < #define EXCEED_LIMIT 291
481 < #define EXEMPT 292
482 < #define FAILED_OPER_NOTICE 293
483 < #define FLATTEN_LINKS 294
484 < #define GECOS 295
485 < #define GENERAL 296
486 < #define GLINE 297
487 < #define GLINE_DURATION 298
488 < #define GLINE_ENABLE 299
489 < #define GLINE_EXEMPT 300
490 < #define GLINE_MIN_CIDR 301
491 < #define GLINE_MIN_CIDR6 302
492 < #define GLINE_REQUEST_DURATION 303
493 < #define GLOBAL_KILL 304
494 < #define HAVENT_READ_CONF 305
495 < #define HIDDEN 306
496 < #define HIDDEN_NAME 307
497 < #define HIDE_CHANS 308
498 < #define HIDE_IDLE 309
499 < #define HIDE_IDLE_FROM_OPERS 310
500 < #define HIDE_SERVER_IPS 311
501 < #define HIDE_SERVERS 312
502 < #define HIDE_SERVICES 313
503 < #define HIDE_SPOOF_IPS 314
504 < #define HOST 315
505 < #define HUB 316
506 < #define HUB_MASK 317
507 < #define IGNORE_BOGUS_TS 318
508 < #define INVISIBLE_ON_CONNECT 319
509 < #define INVITE_CLIENT_COUNT 320
510 < #define INVITE_CLIENT_TIME 321
511 < #define IP 322
512 < #define IRCD_AUTH 323
513 < #define IRCD_FLAGS 324
514 < #define IRCD_SID 325
515 < #define JOIN_FLOOD_COUNT 326
516 < #define JOIN_FLOOD_TIME 327
517 < #define KILL 328
518 < #define KILL_CHASE_TIME_LIMIT 329
519 < #define KLINE 330
520 < #define KLINE_EXEMPT 331
521 < #define KNOCK_CLIENT_COUNT 332
522 < #define KNOCK_CLIENT_TIME 333
523 < #define KNOCK_DELAY_CHANNEL 334
524 < #define LEAF_MASK 335
525 < #define LINKS_DELAY 336
461 > #define CHECK_CACHE 272
462 > #define CIDR_BITLEN_IPV4 273
463 > #define CIDR_BITLEN_IPV6 274
464 > #define CLASS 275
465 > #define CLOSE 276
466 > #define CONNECT 277
467 > #define CONNECTFREQ 278
468 > #define CYCLE_ON_HOST_CHANGE 279
469 > #define DEFAULT_FLOODCOUNT 280
470 > #define DEFAULT_JOIN_FLOOD_COUNT 281
471 > #define DEFAULT_JOIN_FLOOD_TIME 282
472 > #define DEFAULT_MAX_CLIENTS 283
473 > #define DENY 284
474 > #define DESCRIPTION 285
475 > #define DIE 286
476 > #define DISABLE_AUTH 287
477 > #define DISABLE_FAKE_CHANNELS 288
478 > #define DISABLE_REMOTE_COMMANDS 289
479 > #define DLINE_MIN_CIDR 290
480 > #define DLINE_MIN_CIDR6 291
481 > #define DOTS_IN_IDENT 292
482 > #define EMAIL 293
483 > #define ENCRYPTED 294
484 > #define EXCEED_LIMIT 295
485 > #define EXEMPT 296
486 > #define FAILED_OPER_NOTICE 297
487 > #define FLATTEN_LINKS 298
488 > #define FLATTEN_LINKS_DELAY 299
489 > #define FLATTEN_LINKS_FILE 300
490 > #define GECOS 301
491 > #define GENERAL 302
492 > #define HIDDEN 303
493 > #define HIDDEN_NAME 304
494 > #define HIDE_CHANS 305
495 > #define HIDE_IDLE 306
496 > #define HIDE_IDLE_FROM_OPERS 307
497 > #define HIDE_SERVER_IPS 308
498 > #define HIDE_SERVERS 309
499 > #define HIDE_SERVICES 310
500 > #define HOST 311
501 > #define HUB 312
502 > #define HUB_MASK 313
503 > #define IGNORE_BOGUS_TS 314
504 > #define INVISIBLE_ON_CONNECT 315
505 > #define INVITE_CLIENT_COUNT 316
506 > #define INVITE_CLIENT_TIME 317
507 > #define INVITE_DELAY_CHANNEL 318
508 > #define IP 319
509 > #define IRCD_AUTH 320
510 > #define IRCD_FLAGS 321
511 > #define IRCD_SID 322
512 > #define JOIN 323
513 > #define KILL 324
514 > #define KILL_CHASE_TIME_LIMIT 325
515 > #define KLINE 326
516 > #define KLINE_EXEMPT 327
517 > #define KLINE_MIN_CIDR 328
518 > #define KLINE_MIN_CIDR6 329
519 > #define KNOCK_CLIENT_COUNT 330
520 > #define KNOCK_CLIENT_TIME 331
521 > #define KNOCK_DELAY_CHANNEL 332
522 > #define LEAF_MASK 333
523 > #define LIBGEOIP_DATABASE_OPTIONS 334
524 > #define LIBGEOIP_IPV4_DATABASE_FILE 335
525 > #define LIBGEOIP_IPV6_DATABASE_FILE 336
526   #define LISTEN 337
527   #define MASK 338
528   #define MAX_ACCEPT 339
# Line 542 | Line 539 | extern int yydebug;
539   #define MAX_TARGETS 350
540   #define MAX_TOPIC_LENGTH 351
541   #define MAX_WATCH 352
542 < #define MIN_IDLE 353
543 < #define MIN_NONWILDCARD 354
544 < #define MIN_NONWILDCARD_SIMPLE 355
545 < #define MODULE 356
546 < #define MODULES 357
547 < #define MOTD 358
548 < #define NAME 359
549 < #define NEED_IDENT 360
550 < #define NEED_PASSWORD 361
551 < #define NETWORK_DESC 362
552 < #define NETWORK_NAME 363
553 < #define NICK 364
554 < #define NO_CREATE_ON_SPLIT 365
555 < #define NO_JOIN_ON_SPLIT 366
542 > #define MEMORY_CACHE 353
543 > #define MIN_IDLE 354
544 > #define MIN_NONWILDCARD 355
545 > #define MIN_NONWILDCARD_SIMPLE 356
546 > #define MMAP_CACHE 357
547 > #define MODULE 358
548 > #define MODULES 359
549 > #define MOTD 360
550 > #define NAME 361
551 > #define NEED_IDENT 362
552 > #define NEED_PASSWORD 363
553 > #define NETWORK_DESC 364
554 > #define NETWORK_NAME 365
555 > #define NICK 366
556   #define NO_OPER_FLOOD 367
557   #define NO_TILDE 368
558   #define NUMBER 369
559   #define NUMBER_PER_CIDR 370
560   #define NUMBER_PER_IP 371
561   #define OPER_ONLY_UMODES 372
562 < #define OPER_PASS_RESV 373
563 < #define OPER_UMODES 374
564 < #define OPERATOR 375
565 < #define OPERS_BYPASS_CALLERID 376
566 < #define PACE_WAIT 377
567 < #define PACE_WAIT_SIMPLE 378
568 < #define PASSWORD 379
569 < #define PATH 380
570 < #define PING_COOKIE 381
571 < #define PING_TIME 382
572 < #define PORT 383
573 < #define QSTRING 384
574 < #define RANDOM_IDLE 385
575 < #define REASON 386
576 < #define REDIRPORT 387
577 < #define REDIRSERV 388
578 < #define REHASH 389
579 < #define REMOTE 390
580 < #define REMOTEBAN 391
581 < #define RESV 392
582 < #define RESV_EXEMPT 393
583 < #define RSA_PRIVATE_KEY_FILE 394
584 < #define RSA_PUBLIC_KEY_FILE 395
585 < #define SECONDS 396
586 < #define MINUTES 397
587 < #define HOURS 398
588 < #define DAYS 399
589 < #define WEEKS 400
590 < #define MONTHS 401
591 < #define YEARS 402
592 < #define SEND_PASSWORD 403
593 < #define SENDQ 404
594 < #define SERVERHIDE 405
595 < #define SERVERINFO 406
596 < #define SHORT_MOTD 407
597 < #define SPOOF 408
598 < #define SPOOF_NOTICE 409
599 < #define SQUIT 410
600 < #define SSL_CERTIFICATE_FILE 411
601 < #define SSL_CERTIFICATE_FINGERPRINT 412
602 < #define SSL_CONNECTION_REQUIRED 413
603 < #define SSL_DH_ELLIPTIC_CURVE 414
604 < #define SSL_DH_PARAM_FILE 415
605 < #define SSL_MESSAGE_DIGEST_ALGORITHM 416
606 < #define STATS_E_DISABLED 417
607 < #define STATS_I_OPER_ONLY 418
608 < #define STATS_K_OPER_ONLY 419
562 > #define OPER_UMODES 373
563 > #define OPERATOR 374
564 > #define OPERS_BYPASS_CALLERID 375
565 > #define PACE_WAIT 376
566 > #define PACE_WAIT_SIMPLE 377
567 > #define PASSWORD 378
568 > #define PATH 379
569 > #define PING_COOKIE 380
570 > #define PING_TIME 381
571 > #define PORT 382
572 > #define QSTRING 383
573 > #define RANDOM_IDLE 384
574 > #define REASON 385
575 > #define REDIRPORT 386
576 > #define REDIRSERV 387
577 > #define REHASH 388
578 > #define REMOTE 389
579 > #define REMOTEBAN 390
580 > #define RESV 391
581 > #define RESV_EXEMPT 392
582 > #define RSA_PRIVATE_KEY_FILE 393
583 > #define SECONDS 394
584 > #define MINUTES 395
585 > #define HOURS 396
586 > #define DAYS 397
587 > #define WEEKS 398
588 > #define MONTHS 399
589 > #define YEARS 400
590 > #define SEND_PASSWORD 401
591 > #define SENDQ 402
592 > #define SERVERHIDE 403
593 > #define SERVERINFO 404
594 > #define SHORT_MOTD 405
595 > #define SPOOF 406
596 > #define SPOOF_NOTICE 407
597 > #define SQUIT 408
598 > #define SSL_CERTIFICATE_FILE 409
599 > #define SSL_CERTIFICATE_FINGERPRINT 410
600 > #define SSL_CONNECTION_REQUIRED 411
601 > #define SSL_DH_ELLIPTIC_CURVE 412
602 > #define SSL_DH_PARAM_FILE 413
603 > #define SSL_MESSAGE_DIGEST_ALGORITHM 414
604 > #define STANDARD 415
605 > #define STATS_E_DISABLED 416
606 > #define STATS_I_OPER_ONLY 417
607 > #define STATS_K_OPER_ONLY 418
608 > #define STATS_M_OPER_ONLY 419
609   #define STATS_O_OPER_ONLY 420
610   #define STATS_P_OPER_ONLY 421
611   #define STATS_U_OPER_ONLY 422
# Line 616 | Line 613 | extern int yydebug;
613   #define T_BOTS 424
614   #define T_CALLERID 425
615   #define T_CCONN 426
616 < #define T_CLUSTER 427
617 < #define T_DEAF 428
618 < #define T_DEBUG 429
619 < #define T_DLINE 430
620 < #define T_EXTERNAL 431
621 < #define T_FARCONNECT 432
622 < #define T_FILE 433
623 < #define T_FULL 434
624 < #define T_GLOBOPS 435
625 < #define T_INVISIBLE 436
626 < #define T_IPV4 437
627 < #define T_IPV6 438
628 < #define T_LOCOPS 439
629 < #define T_LOG 440
630 < #define T_MAX_CLIENTS 441
616 > #define T_COMMAND 427
617 > #define T_CLUSTER 428
618 > #define T_DEAF 429
619 > #define T_DEBUG 430
620 > #define T_DLINE 431
621 > #define T_EXTERNAL 432
622 > #define T_FARCONNECT 433
623 > #define T_FILE 434
624 > #define T_FULL 435
625 > #define T_GLOBOPS 436
626 > #define T_INVISIBLE 437
627 > #define T_IPV4 438
628 > #define T_IPV6 439
629 > #define T_LOCOPS 440
630 > #define T_LOG 441
631   #define T_NCHANGE 442
632   #define T_NONONREG 443
633 < #define T_RECVQ 444
634 < #define T_REJ 445
635 < #define T_RESTART 446
636 < #define T_SERVER 447
637 < #define T_SERVICE 448
638 < #define T_SERVICES_NAME 449
639 < #define T_SERVNOTICE 450
640 < #define T_SET 451
641 < #define T_SHARED 452
642 < #define T_SIZE 453
643 < #define T_SKILL 454
644 < #define T_SOFTCALLERID 455
645 < #define T_SPY 456
646 < #define T_SSL 457
647 < #define T_SSL_CIPHER_LIST 458
648 < #define T_UMODES 459
649 < #define T_UNAUTH 460
650 < #define T_UNDLINE 461
651 < #define T_UNLIMITED 462
652 < #define T_UNRESV 463
653 < #define T_UNXLINE 464
654 < #define T_WALLOP 465
655 < #define T_WALLOPS 466
656 < #define T_WEBIRC 467
657 < #define TBOOL 468
658 < #define THROTTLE_COUNT 469
659 < #define THROTTLE_TIME 470
660 < #define TKLINE_EXPIRE_NOTICES 471
661 < #define TMASKED 472
662 < #define TRUE_NO_OPER_FLOOD 473
663 < #define TS_MAX_DELTA 474
664 < #define TS_WARN_DELTA 475
665 < #define TWODOTS 476
666 < #define TYPE 477
667 < #define UNKLINE 478
668 < #define USE_EGD 479
669 < #define USE_LOGGING 480
670 < #define USER 481
671 < #define VHOST 482
672 < #define VHOST6 483
673 < #define WARN_NO_CONNECT_BLOCK 484
674 < #define XLINE 485
633 > #define T_OPME 444
634 > #define T_PREPEND 445
635 > #define T_PSEUDO 446
636 > #define T_RECVQ 447
637 > #define T_REJ 448
638 > #define T_RESTART 449
639 > #define T_SERVER 450
640 > #define T_SERVICE 451
641 > #define T_SERVNOTICE 452
642 > #define T_SET 453
643 > #define T_SHARED 454
644 > #define T_SIZE 455
645 > #define T_SKILL 456
646 > #define T_SOFTCALLERID 457
647 > #define T_SPY 458
648 > #define T_SSL 459
649 > #define T_SSL_CIPHER_LIST 460
650 > #define T_TARGET 461
651 > #define T_UMODES 462
652 > #define T_UNAUTH 463
653 > #define T_UNDLINE 464
654 > #define T_UNLIMITED 465
655 > #define T_UNRESV 466
656 > #define T_UNXLINE 467
657 > #define T_WALLOP 468
658 > #define T_WALLOPS 469
659 > #define T_WEBIRC 470
660 > #define TBOOL 471
661 > #define THROTTLE_COUNT 472
662 > #define THROTTLE_TIME 473
663 > #define TKLINE_EXPIRE_NOTICES 474
664 > #define TMASKED 475
665 > #define TS_MAX_DELTA 476
666 > #define TS_WARN_DELTA 477
667 > #define TWODOTS 478
668 > #define TYPE 479
669 > #define UNKLINE 480
670 > #define USE_LOGGING 481
671 > #define USER 482
672 > #define VHOST 483
673 > #define VHOST6 484
674 > #define WARN_NO_CONNECT_BLOCK 485
675 > #define WHOIS 486
676 > #define XLINE 487
677 > #define XLINE_EXEMPT 488
678  
679   /* Value type.  */
680   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
681 < typedef union YYSTYPE YYSTYPE;
681 >
682   union YYSTYPE
683   {
684 < #line 147 "conf_parser.y" /* yacc.c:355  */
684 > #line 141 "conf_parser.y" /* yacc.c:355  */
685  
686    int number;
687    char *string;
688  
689   #line 690 "conf_parser.c" /* yacc.c:355  */
690   };
691 +
692 + typedef union YYSTYPE YYSTYPE;
693   # define YYSTYPE_IS_TRIVIAL 1
694   # define YYSTYPE_IS_DECLARED 1
695   #endif
# Line 701 | Line 703 | int yyparse (void);
703  
704   /* Copy the second part of user declarations.  */
705  
706 < #line 705 "conf_parser.c" /* yacc.c:358  */
706 > #line 707 "conf_parser.c" /* yacc.c:358  */
707  
708   #ifdef short
709   # undef short
# Line 943 | Line 945 | union yyalloc
945   /* YYFINAL -- State number of the termination state.  */
946   #define YYFINAL  2
947   /* YYLAST -- Last index in YYTABLE.  */
948 < #define YYLAST   1371
948 > #define YYLAST   1363
949  
950   /* YYNTOKENS -- Number of terminals.  */
951 < #define YYNTOKENS  237
951 > #define YYNTOKENS  240
952   /* YYNNTS -- Number of nonterminals.  */
953 < #define YYNNTS  291
953 > #define YYNNTS  298
954   /* YYNRULES -- Number of rules.  */
955 < #define YYNRULES  657
955 > #define YYNRULES  675
956   /* YYNSTATES -- Number of states.  */
957 < #define YYNSTATES  1298
957 > #define YYNSTATES  1327
958  
959   /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
960     by yylex, with out-of-bounds checking.  */
961   #define YYUNDEFTOK  2
962 < #define YYMAXUTOK   485
962 > #define YYMAXUTOK   488
963  
964   #define YYTRANSLATE(YYX)                                                \
965    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 970 | Line 972 | static const yytype_uint8 yytranslate[]
972         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
973         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
974         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
975 <       2,     2,     2,     2,   235,     2,     2,     2,     2,     2,
976 <       2,     2,     2,     2,     2,     2,     2,     2,   236,   231,
977 <       2,   234,     2,     2,     2,     2,     2,     2,     2,     2,
975 >       2,     2,     2,     2,   238,     2,     2,     2,     2,     2,
976 >       2,     2,     2,     2,     2,     2,     2,     2,   239,   234,
977 >       2,   237,     2,     2,     2,     2,     2,     2,     2,     2,
978         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
979         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
980         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
981         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
982         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
983 <       2,     2,     2,   233,     2,   232,     2,     2,     2,     2,
983 >       2,     2,     2,   236,     2,   235,     2,     2,     2,     2,
984         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
985         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
986         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1014 | Line 1016 | static const yytype_uint8 yytranslate[]
1016       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1017       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1018       215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1019 <     225,   226,   227,   228,   229,   230
1019 >     225,   226,   227,   228,   229,   230,   231,   232,   233
1020   };
1021  
1022   #if YYDEBUG
1023    /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1024   static const yytype_uint16 yyrline[] =
1025   {
1026 <       0,   381,   381,   382,   385,   386,   387,   388,   389,   390,
1027 <     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
1028 <     401,   402,   403,   404,   405,   406,   407,   411,   411,   412,
1029 <     413,   414,   415,   416,   417,   418,   419,   422,   422,   423,
1030 <     424,   425,   426,   433,   436,   436,   437,   437,   437,   439,
1031 <     445,   452,   454,   454,   455,   456,   457,   458,   459,   460,
1032 <     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
1033 <     471,   472,   475,   517,   575,   604,   612,   626,   654,   669,
1034 <     684,   693,   707,   716,   744,   774,   799,   821,   843,   852,
1035 <     854,   854,   855,   856,   857,   858,   860,   869,   878,   891,
1036 <     890,   908,   908,   909,   909,   909,   911,   917,   926,   927,
1037 <     927,   929,   929,   930,   932,   939,   939,   952,   953,   955,
1038 <     955,   956,   956,   958,   966,   969,   975,   974,   980,   980,
1039 <     981,   985,   989,   993,   997,  1001,  1005,  1009,  1013,  1024,
1040 <    1023,  1109,  1109,  1110,  1111,  1112,  1113,  1114,  1115,  1116,
1041 <    1117,  1118,  1119,  1120,  1122,  1128,  1134,  1140,  1151,  1157,
1042 <    1163,  1174,  1181,  1180,  1186,  1186,  1187,  1191,  1195,  1199,
1043 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1044 <    1243,  1247,  1251,  1255,  1259,  1263,  1267,  1271,  1278,  1277,
1045 <    1283,  1283,  1284,  1288,  1292,  1296,  1300,  1304,  1308,  1312,
1046 <    1316,  1320,  1324,  1328,  1332,  1336,  1340,  1344,  1348,  1352,
1047 <    1356,  1360,  1364,  1368,  1372,  1383,  1382,  1444,  1444,  1445,
1048 <    1446,  1447,  1448,  1449,  1450,  1451,  1452,  1453,  1454,  1455,
1049 <    1456,  1457,  1457,  1458,  1459,  1460,  1461,  1463,  1469,  1475,
1050 <    1481,  1487,  1493,  1499,  1505,  1511,  1517,  1523,  1530,  1536,
1051 <    1542,  1548,  1557,  1567,  1566,  1572,  1572,  1573,  1577,  1588,
1052 <    1587,  1594,  1593,  1598,  1598,  1599,  1603,  1607,  1613,  1613,
1053 <    1614,  1614,  1614,  1614,  1614,  1616,  1616,  1618,  1618,  1620,
1054 <    1634,  1652,  1658,  1668,  1667,  1709,  1709,  1710,  1711,  1712,
1055 <    1713,  1714,  1715,  1716,  1717,  1718,  1720,  1726,  1732,  1738,
1056 <    1750,  1749,  1755,  1755,  1756,  1760,  1764,  1768,  1772,  1776,
1057 <    1780,  1784,  1788,  1792,  1798,  1812,  1821,  1835,  1834,  1849,
1058 <    1849,  1850,  1850,  1850,  1850,  1852,  1858,  1864,  1874,  1876,
1059 <    1876,  1877,  1877,  1879,  1895,  1894,  1919,  1919,  1920,  1920,
1060 <    1920,  1920,  1922,  1928,  1948,  1947,  1953,  1953,  1954,  1958,
1061 <    1962,  1966,  1970,  1974,  1978,  1982,  1986,  1990,  2000,  1999,
1062 <    2020,  2020,  2021,  2021,  2021,  2023,  2030,  2029,  2035,  2035,
1063 <    2036,  2040,  2044,  2048,  2052,  2056,  2060,  2064,  2068,  2072,
1064 <    2082,  2081,  2153,  2153,  2154,  2155,  2156,  2157,  2158,  2159,
1065 <    2160,  2161,  2162,  2163,  2164,  2165,  2166,  2167,  2168,  2170,
1066 <    2176,  2182,  2188,  2201,  2214,  2220,  2226,  2230,  2239,  2238,
1067 <    2243,  2243,  2244,  2248,  2254,  2265,  2271,  2277,  2283,  2299,
1068 <    2298,  2324,  2324,  2325,  2325,  2325,  2327,  2347,  2357,  2356,
1069 <    2383,  2383,  2384,  2384,  2384,  2386,  2392,  2401,  2403,  2403,
1070 <    2404,  2404,  2406,  2424,  2423,  2446,  2446,  2447,  2447,  2447,
1071 <    2449,  2455,  2464,  2467,  2467,  2468,  2469,  2470,  2471,  2472,
1072 <    2473,  2474,  2475,  2476,  2477,  2478,  2479,  2480,  2481,  2482,
1073 <    2483,  2484,  2485,  2486,  2487,  2488,  2489,  2490,  2491,  2492,
1074 <    2493,  2494,  2495,  2496,  2497,  2498,  2499,  2500,  2501,  2502,
1075 <    2503,  2504,  2505,  2506,  2507,  2508,  2509,  2510,  2511,  2512,
1076 <    2513,  2514,  2515,  2516,  2517,  2518,  2521,  2526,  2531,  2536,
1077 <    2542,  2548,  2554,  2560,  2565,  2570,  2575,  2580,  2585,  2590,
1078 <    2595,  2600,  2605,  2610,  2615,  2620,  2625,  2631,  2642,  2647,
1079 <    2652,  2657,  2662,  2667,  2672,  2675,  2680,  2683,  2688,  2693,
1080 <    2698,  2703,  2708,  2713,  2718,  2723,  2728,  2733,  2738,  2747,
1081 <    2752,  2757,  2762,  2768,  2767,  2772,  2772,  2773,  2776,  2779,
1082 <    2782,  2785,  2788,  2791,  2794,  2797,  2800,  2803,  2806,  2809,
1083 <    2812,  2815,  2818,  2821,  2824,  2827,  2830,  2833,  2836,  2842,
1084 <    2841,  2846,  2846,  2847,  2850,  2853,  2856,  2859,  2862,  2865,
1085 <    2868,  2871,  2874,  2877,  2880,  2883,  2886,  2889,  2892,  2895,
1086 <    2898,  2901,  2904,  2909,  2914,  2919,  2928,  2931,  2931,  2932,
1087 <    2933,  2934,  2935,  2936,  2937,  2938,  2939,  2940,  2941,  2942,
1088 <    2943,  2944,  2945,  2946,  2948,  2953,  2958,  2963,  2968,  2973,
1089 <    2978,  2983,  2988,  2993,  2998,  3003,  3008,  3013,  3021,  3024,
1090 <    3024,  3025,  3026,  3027,  3028,  3029,  3030,  3031,  3032,  3033,
1091 <    3035,  3041,  3047,  3053,  3059,  3068,  3083,  3089
1026 >       0,   378,   378,   379,   382,   383,   384,   385,   386,   387,
1027 >     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
1028 >     398,   399,   400,   401,   402,   403,   404,   405,   409,   409,
1029 >     410,   411,   412,   413,   414,   415,   416,   417,   420,   420,
1030 >     421,   422,   423,   424,   431,   433,   433,   434,   434,   434,
1031 >     436,   442,   452,   454,   454,   455,   456,   457,   458,   459,
1032 >     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
1033 >     470,   471,   472,   473,   474,   475,   478,   487,   496,   505,
1034 >     514,   523,   533,   532,   538,   538,   539,   545,   551,   557,
1035 >     565,   580,   595,   610,   625,   635,   649,   658,   686,   714,
1036 >     739,   761,   783,   793,   795,   795,   796,   797,   798,   799,
1037 >     801,   810,   819,   833,   832,   850,   850,   851,   851,   851,
1038 >     853,   859,   870,   869,   888,   888,   889,   889,   889,   889,
1039 >     889,   891,   897,   903,   909,   931,   932,   932,   934,   934,
1040 >     935,   937,   944,   944,   957,   958,   960,   960,   961,   961,
1041 >     963,   971,   974,   980,   979,   985,   985,   986,   990,   994,
1042 >     998,  1002,  1006,  1010,  1014,  1025,  1024,  1081,  1081,  1082,
1043 >    1083,  1084,  1085,  1086,  1087,  1088,  1089,  1090,  1091,  1092,
1044 >    1094,  1100,  1106,  1112,  1118,  1129,  1135,  1146,  1153,  1152,
1045 >    1158,  1158,  1159,  1163,  1167,  1171,  1175,  1179,  1183,  1187,
1046 >    1191,  1195,  1199,  1203,  1207,  1211,  1215,  1219,  1223,  1227,
1047 >    1231,  1235,  1239,  1243,  1250,  1249,  1255,  1255,  1256,  1260,
1048 >    1264,  1268,  1272,  1276,  1280,  1284,  1288,  1292,  1296,  1300,
1049 >    1304,  1308,  1312,  1316,  1320,  1324,  1328,  1332,  1336,  1340,
1050 >    1344,  1348,  1352,  1356,  1360,  1364,  1368,  1379,  1378,  1435,
1051 >    1435,  1436,  1437,  1438,  1439,  1440,  1441,  1442,  1443,  1444,
1052 >    1445,  1446,  1447,  1448,  1448,  1449,  1450,  1451,  1452,  1454,
1053 >    1460,  1466,  1472,  1478,  1484,  1490,  1496,  1502,  1508,  1514,
1054 >    1521,  1527,  1533,  1539,  1548,  1558,  1557,  1563,  1563,  1564,
1055 >    1568,  1579,  1578,  1585,  1584,  1589,  1589,  1590,  1594,  1598,
1056 >    1604,  1604,  1605,  1605,  1605,  1605,  1605,  1607,  1607,  1609,
1057 >    1609,  1611,  1624,  1641,  1647,  1658,  1657,  1699,  1699,  1700,
1058 >    1701,  1702,  1703,  1704,  1705,  1706,  1707,  1708,  1710,  1716,
1059 >    1722,  1728,  1740,  1739,  1745,  1745,  1746,  1750,  1754,  1758,
1060 >    1762,  1766,  1770,  1774,  1778,  1782,  1788,  1802,  1811,  1825,
1061 >    1824,  1839,  1839,  1840,  1840,  1840,  1840,  1842,  1848,  1854,
1062 >    1864,  1866,  1866,  1867,  1867,  1869,  1886,  1885,  1908,  1908,
1063 >    1909,  1909,  1909,  1909,  1911,  1917,  1937,  1936,  1942,  1942,
1064 >    1943,  1947,  1951,  1955,  1959,  1963,  1967,  1971,  1975,  1979,
1065 >    1990,  1989,  2008,  2008,  2009,  2009,  2009,  2011,  2018,  2017,
1066 >    2023,  2023,  2024,  2028,  2032,  2036,  2040,  2044,  2048,  2052,
1067 >    2056,  2060,  2071,  2070,  2142,  2142,  2143,  2144,  2145,  2146,
1068 >    2147,  2148,  2149,  2150,  2151,  2152,  2153,  2154,  2155,  2156,
1069 >    2157,  2159,  2165,  2171,  2177,  2190,  2203,  2209,  2215,  2219,
1070 >    2226,  2225,  2230,  2230,  2231,  2235,  2241,  2252,  2258,  2264,
1071 >    2270,  2286,  2285,  2311,  2311,  2312,  2312,  2312,  2314,  2334,
1072 >    2345,  2344,  2371,  2371,  2372,  2372,  2372,  2374,  2380,  2390,
1073 >    2392,  2392,  2393,  2393,  2395,  2413,  2412,  2435,  2435,  2436,
1074 >    2436,  2436,  2438,  2444,  2454,  2456,  2456,  2457,  2458,  2459,
1075 >    2460,  2461,  2462,  2463,  2464,  2465,  2466,  2467,  2468,  2469,
1076 >    2470,  2471,  2472,  2473,  2474,  2475,  2476,  2477,  2478,  2479,
1077 >    2480,  2481,  2482,  2483,  2484,  2485,  2486,  2487,  2488,  2489,
1078 >    2490,  2491,  2492,  2493,  2494,  2495,  2496,  2497,  2498,  2499,
1079 >    2500,  2501,  2502,  2505,  2510,  2515,  2520,  2526,  2531,  2536,
1080 >    2541,  2546,  2551,  2556,  2561,  2566,  2571,  2576,  2581,  2586,
1081 >    2591,  2596,  2602,  2607,  2612,  2617,  2622,  2627,  2632,  2637,
1082 >    2640,  2645,  2648,  2653,  2658,  2663,  2668,  2673,  2678,  2683,
1083 >    2688,  2693,  2698,  2703,  2708,  2714,  2713,  2718,  2718,  2719,
1084 >    2722,  2725,  2728,  2731,  2734,  2737,  2740,  2743,  2746,  2749,
1085 >    2752,  2755,  2758,  2761,  2764,  2767,  2770,  2773,  2776,  2779,
1086 >    2782,  2788,  2787,  2792,  2792,  2793,  2796,  2799,  2802,  2805,
1087 >    2808,  2811,  2814,  2817,  2820,  2823,  2826,  2829,  2832,  2835,
1088 >    2838,  2841,  2844,  2847,  2850,  2855,  2860,  2865,  2874,  2876,
1089 >    2876,  2877,  2878,  2879,  2880,  2881,  2882,  2883,  2884,  2885,
1090 >    2886,  2887,  2888,  2890,  2895,  2900,  2905,  2910,  2915,  2920,
1091 >    2925,  2930,  2935,  2940,  2949,  2951,  2951,  2952,  2953,  2954,
1092 >    2955,  2956,  2957,  2958,  2959,  2960,  2961,  2963,  2969,  2985,
1093 >    2994,  3000,  3006,  3012,  3021,  3027
1094   };
1095   #endif
1096  
# Line 1098 | Line 1102 | static const char *const yytname[] =
1102    "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1103    "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1104    "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1105 <  "CAN_FLOOD", "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS",
1106 <  "CONNECT", "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1107 <  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1108 <  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1109 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1110 <  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1111 <  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1112 <  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1113 <  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1114 <  "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS",
1115 <  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1116 <  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1117 <  "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME", "IP", "IRCD_AUTH",
1118 <  "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1119 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_CLIENT_COUNT",
1120 <  "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1121 <  "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL",
1122 <  "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1123 <  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1124 <  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1125 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1126 <  "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1127 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1128 <  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1129 <  "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1105 >  "CAN_FLOOD", "CHANNEL", "CHECK_CACHE", "CIDR_BITLEN_IPV4",
1106 >  "CIDR_BITLEN_IPV6", "CLASS", "CLOSE", "CONNECT", "CONNECTFREQ",
1107 >  "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT", "DEFAULT_JOIN_FLOOD_COUNT",
1108 >  "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DENY", "DESCRIPTION",
1109 >  "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1110 >  "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6",
1111 >  "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1112 >  "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "FLATTEN_LINKS_DELAY",
1113 >  "FLATTEN_LINKS_FILE", "GECOS", "GENERAL", "HIDDEN", "HIDDEN_NAME",
1114 >  "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS",
1115 >  "HIDE_SERVERS", "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK",
1116 >  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "INVITE_CLIENT_COUNT",
1117 >  "INVITE_CLIENT_TIME", "INVITE_DELAY_CHANNEL", "IP", "IRCD_AUTH",
1118 >  "IRCD_FLAGS", "IRCD_SID", "JOIN", "KILL", "KILL_CHASE_TIME_LIMIT",
1119 >  "KLINE", "KLINE_EXEMPT", "KLINE_MIN_CIDR", "KLINE_MIN_CIDR6",
1120 >  "KNOCK_CLIENT_COUNT", "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL",
1121 >  "LEAF_MASK", "LIBGEOIP_DATABASE_OPTIONS", "LIBGEOIP_IPV4_DATABASE_FILE",
1122 >  "LIBGEOIP_IPV6_DATABASE_FILE", "LISTEN", "MASK", "MAX_ACCEPT",
1123 >  "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL", "MAX_IDENT", "MAX_IDLE",
1124 >  "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME",
1125 >  "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH",
1126 >  "MEMORY_CACHE", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1127 >  "MMAP_CACHE", "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT",
1128 >  "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_OPER_FLOOD",
1129 >  "NO_TILDE", "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1130 >  "OPER_ONLY_UMODES", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1131    "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1132    "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1133    "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1134 <  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1135 <  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1136 <  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1137 <  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1138 <  "SSL_CONNECTION_REQUIRED", "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1139 <  "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1140 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY",
1141 <  "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1142 <  "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1143 <  "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1144 <  "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1145 <  "T_NONONREG", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER", "T_SERVICE",
1146 <  "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED", "T_SIZE",
1147 <  "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL", "T_SSL_CIPHER_LIST",
1148 <  "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1149 <  "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1150 <  "THROTTLE_COUNT", "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1151 <  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1152 <  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1153 <  "WARN_NO_CONNECT_BLOCK", "XLINE", "';'", "'}'", "'{'", "'='", "','",
1154 <  "':'", "$accept", "conf", "conf_item", "timespec_", "timespec",
1155 <  "sizespec_", "sizespec", "modules_entry", "modules_items",
1134 >  "RSA_PRIVATE_KEY_FILE", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1135 >  "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ", "SERVERHIDE", "SERVERINFO",
1136 >  "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE", "SQUIT", "SSL_CERTIFICATE_FILE",
1137 >  "SSL_CERTIFICATE_FINGERPRINT", "SSL_CONNECTION_REQUIRED",
1138 >  "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1139 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STANDARD", "STATS_E_DISABLED",
1140 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY",
1141 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL",
1142 >  "T_BOTS", "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF",
1143 >  "T_DEBUG", "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL",
1144 >  "T_GLOBOPS", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG",
1145 >  "T_NCHANGE", "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ",
1146 >  "T_REJ", "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1147 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1148 >  "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1149 >  "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1150 >  "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME",
1151 >  "TKLINE_EXPIRE_NOTICES", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1152 >  "TWODOTS", "TYPE", "UNKLINE", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1153 >  "WARN_NO_CONNECT_BLOCK", "WHOIS", "XLINE", "XLINE_EXEMPT", "';'", "'}'",
1154 >  "'{'", "'='", "','", "':'", "$accept", "conf", "conf_item", "timespec_",
1155 >  "timespec", "sizespec_", "sizespec", "modules_entry", "modules_items",
1156    "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1157    "serverinfo_items", "serverinfo_item", "serverinfo_ssl_certificate_file",
1158    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1159    "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1160 <  "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1161 <  "serverinfo_description", "serverinfo_network_name",
1160 >  "serverinfo_ssl_dh_elliptic_curve",
1161 >  "serverinfo_libgeoip_database_options", "$@1", "options_items",
1162 >  "options_item", "serverinfo_libgeoip_ipv4_database_file",
1163 >  "serverinfo_libgeoip_ipv6_database_file", "serverinfo_name",
1164 >  "serverinfo_sid", "serverinfo_description", "serverinfo_network_name",
1165    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1166 <  "serverinfo_max_clients", "serverinfo_max_nick_length",
1166 >  "serverinfo_default_max_clients", "serverinfo_max_nick_length",
1167    "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1168    "admin_items", "admin_item", "admin_name", "admin_email",
1169 <  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1170 <  "motd_mask", "motd_file", "logging_entry", "logging_items",
1171 <  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1172 <  "logging_file_items", "logging_file_item", "logging_file_name",
1173 <  "logging_file_size", "logging_file_type", "$@3",
1174 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1175 <  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1176 <  "oper_encrypted", "oper_rsa_public_key_file",
1177 <  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1178 <  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1179 <  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1180 <  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1181 <  "class_name", "class_ping_time", "class_number_per_ip",
1182 <  "class_connectfreq", "class_max_channels", "class_max_number",
1183 <  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1184 <  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1169 >  "admin_description", "motd_entry", "$@2", "motd_items", "motd_item",
1170 >  "motd_mask", "motd_file", "pseudo_entry", "$@3", "pseudo_items",
1171 >  "pseudo_item", "pseudo_command", "pseudo_name", "pseudo_prepend",
1172 >  "pseudo_target", "logging_entry", "logging_items", "logging_item",
1173 >  "logging_use_logging", "logging_file_entry", "$@4", "logging_file_items",
1174 >  "logging_file_item", "logging_file_name", "logging_file_size",
1175 >  "logging_file_type", "$@5", "logging_file_type_items",
1176 >  "logging_file_type_item", "oper_entry", "$@6", "oper_items", "oper_item",
1177 >  "oper_name", "oper_user", "oper_password", "oper_whois",
1178 >  "oper_encrypted", "oper_ssl_certificate_fingerprint",
1179 >  "oper_ssl_connection_required", "oper_class", "oper_umodes", "$@7",
1180 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@8",
1181 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@9",
1182 >  "class_items", "class_item", "class_name", "class_ping_time",
1183 >  "class_number_per_ip", "class_connectfreq", "class_max_channels",
1184 >  "class_max_number", "class_max_global", "class_max_local",
1185 >  "class_max_ident", "class_sendq", "class_recvq",
1186 >  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1187    "class_number_per_cidr", "class_min_idle", "class_max_idle",
1188 <  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1189 <  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1188 >  "class_flags", "$@10", "class_flags_items", "class_flags_item",
1189 >  "listen_entry", "$@11", "listen_flags", "$@12", "listen_flags_items",
1190    "listen_flags_item", "listen_items", "listen_item", "listen_port",
1191 <  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1192 <  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1193 <  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1191 >  "$@13", "port_items", "port_item", "listen_address", "listen_host",
1192 >  "auth_entry", "$@14", "auth_items", "auth_item", "auth_user",
1193 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@15",
1194    "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1195 <  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1195 >  "auth_redir_port", "resv_entry", "$@16", "resv_items", "resv_item",
1196    "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1197 <  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1197 >  "service_items", "service_item", "service_name", "shared_entry", "$@17",
1198    "shared_items", "shared_item", "shared_name", "shared_user",
1199 <  "shared_type", "$@16", "shared_types", "shared_type_item",
1200 <  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1201 <  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1202 <  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1199 >  "shared_type", "$@18", "shared_types", "shared_type_item",
1200 >  "cluster_entry", "$@19", "cluster_items", "cluster_item", "cluster_name",
1201 >  "cluster_type", "$@20", "cluster_types", "cluster_type_item",
1202 >  "connect_entry", "$@21", "connect_items", "connect_item", "connect_name",
1203    "connect_host", "connect_vhost", "connect_send_password",
1204    "connect_accept_password", "connect_ssl_certificate_fingerprint",
1205 <  "connect_port", "connect_aftype", "connect_flags", "$@20",
1205 >  "connect_port", "connect_aftype", "connect_flags", "$@22",
1206    "connect_flags_items", "connect_flags_item", "connect_encrypted",
1207    "connect_hub_mask", "connect_leaf_mask", "connect_class",
1208 <  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1209 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1208 >  "connect_ssl_cipher_list", "kill_entry", "$@23", "kill_items",
1209 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@24",
1210    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1211 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1211 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@25",
1212    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1213    "general_entry", "general_items", "general_item", "general_away_count",
1214    "general_away_time", "general_max_watch", "general_cycle_on_host_change",
1215 <  "general_gline_enable", "general_gline_duration",
1216 <  "general_gline_request_duration", "general_gline_min_cidr",
1217 <  "general_gline_min_cidr6", "general_tkline_expire_notices",
1208 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1215 >  "general_dline_min_cidr", "general_dline_min_cidr6",
1216 >  "general_kline_min_cidr", "general_kline_min_cidr6",
1217 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1218    "general_ignore_bogus_ts", "general_failed_oper_notice",
1219    "general_anti_nick_flood", "general_max_nick_time",
1220    "general_max_nick_changes", "general_max_accept",
1221    "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1222 <  "general_ts_max_delta", "general_havent_read_conf",
1223 <  "general_invisible_on_connect", "general_warn_no_connect_block",
1224 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1222 >  "general_ts_max_delta", "general_invisible_on_connect",
1223 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1224 >  "general_stats_m_oper_only", "general_stats_o_oper_only",
1225    "general_stats_P_oper_only", "general_stats_u_oper_only",
1226    "general_stats_k_oper_only", "general_stats_i_oper_only",
1227    "general_pace_wait", "general_caller_id_wait",
1228    "general_opers_bypass_callerid", "general_pace_wait_simple",
1229 <  "general_short_motd", "general_no_oper_flood",
1230 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1231 <  "general_dots_in_ident", "general_max_targets", "general_services_name",
1232 <  "general_ping_cookie", "general_disable_auth", "general_throttle_count",
1233 <  "general_throttle_time", "general_oper_umodes", "$@24", "umode_oitems",
1225 <  "umode_oitem", "general_oper_only_umodes", "$@25", "umode_items",
1226 <  "umode_item", "general_min_nonwildcard",
1229 >  "general_short_motd", "general_no_oper_flood", "general_dots_in_ident",
1230 >  "general_max_targets", "general_ping_cookie", "general_disable_auth",
1231 >  "general_throttle_count", "general_throttle_time", "general_oper_umodes",
1232 >  "$@26", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1233 >  "$@27", "umode_items", "umode_item", "general_min_nonwildcard",
1234    "general_min_nonwildcard_simple", "general_default_floodcount",
1235    "channel_entry", "channel_items", "channel_item",
1236    "channel_disable_fake_channels", "channel_invite_client_count",
1237 <  "channel_invite_client_time", "channel_knock_client_count",
1238 <  "channel_knock_client_time", "channel_knock_delay_channel",
1239 <  "channel_max_channels", "channel_max_bans",
1240 <  "channel_default_split_user_count", "channel_default_split_server_count",
1241 <  "channel_no_create_on_split", "channel_no_join_on_split",
1235 <  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1237 >  "channel_invite_client_time", "channel_invite_delay_channel",
1238 >  "channel_knock_client_count", "channel_knock_client_time",
1239 >  "channel_knock_delay_channel", "channel_max_channels",
1240 >  "channel_max_bans", "channel_default_join_flood_count",
1241 >  "channel_default_join_flood_time", "serverhide_entry",
1242    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1243 +  "serverhide_flatten_links_delay", "serverhide_flatten_links_file",
1244    "serverhide_disable_remote_commands", "serverhide_hide_servers",
1245    "serverhide_hide_services", "serverhide_hidden_name",
1246 <  "serverhide_links_delay", "serverhide_hidden",
1240 <  "serverhide_hide_server_ips", YY_NULLPTR
1246 >  "serverhide_hidden", "serverhide_hide_server_ips", YY_NULLPTR
1247   };
1248   #endif
1249  
# Line 1269 | Line 1275 | static const yytype_uint16 yytoknum[] =
1275       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1276       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1277       475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1278 <     485,    59,   125,   123,    61,    44,    58
1278 >     485,   486,   487,   488,    59,   125,   123,    61,    44,    58
1279   };
1280   # endif
1281  
1282 < #define YYPACT_NINF -790
1282 > #define YYPACT_NINF -1024
1283  
1284   #define yypact_value_is_default(Yystate) \
1285 <  (!!((Yystate) == (-790)))
1285 >  (!!((Yystate) == (-1024)))
1286  
1287 < #define YYTABLE_NINF -116
1287 > #define YYTABLE_NINF -143
1288  
1289   #define yytable_value_is_error(Yytable_value) \
1290    0
# Line 1287 | Line 1293 | static const yytype_uint16 yytoknum[] =
1293       STATE-NUM.  */
1294   static const yytype_int16 yypact[] =
1295   {
1296 <    -790,   639,  -790,  -150,  -213,  -210,  -790,  -790,  -790,  -207,
1297 <    -790,  -192,  -790,  -790,  -790,  -189,  -790,  -790,  -790,  -187,
1298 <    -179,  -790,  -163,  -157,  -790,  -790,  -790,  -790,  -790,  -790,
1299 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1300 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,    26,
1301 <     926,  -142,  -134,  -121,    16,  -116,   403,  -113,  -108,   -95,
1302 <       9,   -83,   -78,   -63,   769,   372,   -54,     4,    10,   -50,
1303 <     -53,   -33,   -31,   -16,    11,  -790,  -790,  -790,  -790,  -790,
1304 <     -14,    -9,     3,    30,    35,    55,    65,    72,    76,    79,
1305 <      84,    91,    93,    95,   156,  -790,  -790,  -790,  -790,  -790,
1306 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1307 <     667,   545,    20,  -790,    97,    12,  -790,  -790,    41,  -790,
1308 <     102,   103,   112,   119,   131,   132,   133,   136,   137,   140,
1309 <     141,   143,   144,   145,   146,   148,   149,   150,   152,   163,
1310 <     164,   167,   168,   169,   171,   172,   173,   174,  -790,   177,
1311 <    -790,   180,   182,   184,   185,   188,   190,   193,   197,   200,
1312 <     202,   206,   210,   214,   218,   220,   223,   224,   226,   227,
1313 <      42,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1314 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1315 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1316 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1317 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1318 <    -790,  -790,   420,    46,   295,    45,   229,   231,    23,  -790,
1319 <    -790,  -790,    14,   437,    21,  -790,   235,   236,   237,   239,
1320 <     240,   244,   247,   248,   291,  -790,  -790,  -790,  -790,  -790,
1321 <    -790,  -790,  -790,  -790,    70,   250,   251,   252,   254,   256,
1322 <     257,   258,   259,   261,   263,   267,   271,   273,   274,   275,
1323 <     276,   278,    92,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1324 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1325 <    -790,   122,   109,   279,    38,  -790,  -790,  -790,   305,  -790,
1326 <     280,    36,  -790,  -790,   128,  -790,   120,   125,   260,   199,
1327 <    -790,   331,   402,   304,   405,   413,   416,   413,   421,   413,
1328 <     413,   422,   423,   325,   326,   309,  -790,   312,   311,   313,
1329 <     315,  -790,   317,   320,   323,   328,   329,   337,   338,   340,
1330 <     342,   344,   347,   348,   349,   196,  -790,  -790,  -790,  -790,
1331 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1332 <    -790,  -790,  -790,  -790,   353,   352,   354,   357,   359,   362,
1333 <     364,  -790,   367,   368,   369,   370,   374,   375,   376,   272,
1334 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1335 <    -790,  -790,  -790,  -790,  -790,  -790,   377,   378,    27,  -790,
1336 <    -790,  -790,   431,   382,  -790,  -790,   386,   390,    18,  -790,
1337 <    -790,  -790,   366,   413,   502,   413,   413,   415,   512,   417,
1338 <     515,   418,   413,   425,   519,   520,   413,   521,   429,   432,
1339 <     434,   413,   530,   537,   413,   538,   539,   542,   543,   447,
1340 <     427,   449,   430,   453,   413,   413,   457,   458,   459,  -177,
1341 <    -158,   461,   462,   464,   549,   567,   413,   469,   470,   413,
1342 <     413,   473,   456,  -790,   468,   466,   467,  -790,   472,   474,
1343 <     475,   477,   480,   155,  -790,  -790,  -790,  -790,  -790,  -790,
1344 <    -790,  -790,  -790,  -790,   482,   485,   107,  -790,  -790,  -790,
1345 <     491,   490,   492,  -790,   493,  -790,     8,  -790,  -790,  -790,
1346 <    -790,  -790,   561,   566,   497,  -790,   499,   498,   500,    15,
1347 <    -790,  -790,  -790,   504,   505,   506,  -790,   516,   518,   524,
1348 <     532,   534,  -790,   535,   211,  -790,  -790,  -790,  -790,  -790,
1349 <    -790,  -790,  -790,  -790,  -790,  -790,   507,   540,   544,   546,
1350 <      13,  -790,  -790,  -790,  -790,   533,   536,   551,   574,   560,
1351 <     564,   568,   413,   548,  -790,  -790,   602,   571,   604,   637,
1352 <     671,   657,   658,   659,   662,   663,   666,   668,   670,   679,
1353 <     672,   673,   675,   565,  -790,   576,   575,  -790,    94,  -790,
1354 <    -790,  -790,  -790,   592,   579,  -790,   581,   683,   584,  -790,
1355 <     586,   585,  -790,   589,    71,  -790,  -790,  -790,  -790,   587,
1356 <     597,   599,  -790,   600,   608,   611,   618,   249,   622,   624,
1357 <     626,   627,   631,   635,   640,   641,   642,   644,  -790,  -790,
1358 <     756,   763,   413,   647,   770,   773,   775,   413,   777,   778,
1359 <     413,   765,   781,   788,   413,   789,   789,   674,  -790,  -790,
1360 <     782,   -55,   783,   693,   784,   796,   695,   801,   803,   793,
1361 <     804,   807,   809,   810,   710,  -790,   811,   814,   713,  -790,
1362 <     714,  -790,   820,   824,   723,  -790,   724,   727,   728,   729,
1363 <     730,   731,   732,   733,   734,   735,   736,   737,   738,   739,
1364 <     740,   741,   742,   743,   744,   745,   746,   748,   749,   750,
1365 <     751,   752,   753,   754,   747,   755,   664,   757,   758,   759,
1366 <     762,   764,   768,   771,   776,   779,   785,   786,   787,   790,
1367 <     791,   792,   794,   795,   797,   798,   799,   800,  -790,  -790,
1368 <     849,   774,   760,   867,   886,   872,   877,   879,   802,  -790,
1369 <     880,   884,   808,  -790,  -790,   885,   890,   806,   901,   812,
1370 <    -790,   813,   815,  -790,  -790,   891,   895,   816,  -790,  -790,
1371 <     898,   819,   817,   905,   906,   909,   912,   829,   818,   916,
1372 <     822,  -790,  -790,   919,   920,   921,   823,  -790,   825,   826,
1373 <     827,   828,   830,   831,   832,   833,  -790,   834,   835,   836,
1374 <     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
1375 <     847,   848,   850,   851,  -790,  -790,   931,   821,   852,  -790,
1376 <     853,  -790,    83,   854,  -790,  -790,   951,   855,   957,   856,
1377 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,   413,   413,
1378 <     413,   413,   413,   413,   413,  -790,  -790,  -790,  -790,  -790,
1379 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,   857,   859,   860,
1380 <     -52,   861,   862,   863,   864,   865,   866,   868,   869,   870,
1381 <     871,   873,   345,   874,   875,  -790,   876,   878,   881,   882,
1382 <     883,   887,   888,     0,   889,   892,   893,   894,   896,   897,
1383 <     899,  -790,   900,   902,  -790,  -790,   903,   904,  -790,  -790,
1384 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1385 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1386 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1387 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1388 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -174,  -790,  -790,
1389 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1390 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1391 <    -790,  -790,  -169,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1392 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1393 <    -790,  -790,  -790,  -790,  -790,   907,   908,   591,   910,   911,
1394 <     913,   914,   915,  -790,   917,   918,  -790,   922,   923,   -26,
1395 <     929,   924,  -790,  -790,  -790,  -790,   925,   927,  -790,   930,
1396 <     932,   514,   933,   934,   935,   936,   937,   709,   938,  -790,
1397 <     939,   940,   941,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1398 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1399 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,   942,
1400 <     638,  -790,  -790,   943,   928,   944,  -790,   106,  -790,  -790,
1401 <    -790,  -790,  -790,   945,   692,   946,  -790,  -790,  -790,  -790,
1402 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -168,
1403 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1404 <    -790,  -790,   789,   789,   789,  -790,  -790,  -790,  -790,  -790,
1405 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -162,  -790,
1406 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1407 <    -790,  -790,   747,  -790,   664,  -790,  -790,  -790,  -790,  -790,
1408 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,   -64,  -790,  -790,
1409 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1410 <    -790,   -62,  -790,   984,   901,   948,  -790,  -790,  -790,  -790,
1411 <    -790,   947,  -790,  -790,   949,  -790,  -790,  -790,  -790,   950,
1412 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1413 <     -46,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1414 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1415 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,   -40,
1416 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1417 <    -790,  -790,  -790,  -790,  -790,  -790,   -20,  -790,  -790,   974,
1418 <     -96,   953,   958,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1419 <    -790,  -790,  -790,  -790,  -790,   -12,  -790,  -790,  -790,   -52,
1420 <    -790,  -790,  -790,  -790,     0,  -790,  -790,  -790,   591,  -790,
1421 <     -26,  -790,  -790,  -790,   973,   975,   976,  -790,   514,  -790,
1422 <     709,  -790,   638,   959,   960,   961,   517,  -790,  -790,   692,
1423 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1424 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1425 <    -790,  -790,    67,  -790,  -790,  -790,   517,  -790
1296 >   -1024,   697, -1024,  -192,  -218,  -216, -1024, -1024, -1024,  -208,
1297 >   -1024,  -206, -1024, -1024, -1024,  -182, -1024, -1024, -1024,  -176,
1298 >    -173, -1024,  -158, -1024,  -137, -1024, -1024, -1024, -1024, -1024,
1299 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1300 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1301 >   -1024,   330,   814,  -131,  -126,  -104,    37,  -101,   434,   -99,
1302 >     -76,   -68,    63,   -60,   -54,   -32,   764,   552,   -31,     9,
1303 >     -30,    24,   -29,   -13,   -15,   -14,    -6,    78, -1024, -1024,
1304 >   -1024, -1024, -1024,    17,    41,    53,    60,    65,    95,   103,
1305 >     108,   115,   116,   127,     6, -1024, -1024, -1024, -1024, -1024,
1306 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024,   766,   615,    33,
1307 >   -1024,   132,    11, -1024, -1024,    28, -1024,   141,   143,   148,
1308 >     150,   155,   157,   172,   174,   175,   180,   182,   183,   184,
1309 >     186,   188,   192,   195,   197,   200,   201,   202,   205,   210,
1310 >     212,   215, -1024, -1024,   216,   217,   218,   219,   220,   223,
1311 >     224,   225,   226,   227,   231,   235,   236,   237,   238,   240,
1312 >     241,   242,    52, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1313 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1314 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1315 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1316 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   299,
1317 >      69,    40,    55,   243,   244,    20, -1024, -1024, -1024,    10,
1318 >     260,    97, -1024,   245,   247,   248,   249,   251,   252,   258,
1319 >     259,   261,     2, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1320 >   -1024, -1024, -1024,    81,   262,   263,   264,   266, -1024,   268,
1321 >     272,   273,   274,   275,   277,   279,   280,   282,   283,   284,
1322 >     286,   291,   293,   296,   153, -1024, -1024, -1024, -1024, -1024,
1323 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1324 >   -1024, -1024, -1024, -1024, -1024, -1024,   119,   123,   300,    16,
1325 >   -1024, -1024, -1024,    61,   189, -1024,   301,    13, -1024, -1024,
1326 >      79, -1024,   234,   239,   265,   194, -1024,   401,   422,   323,
1327 >     426,   422,   422,   428,   422,   422,   430,   431,   313, -1024,
1328 >     314,   312,   327,   329, -1024,   332,   334,   335,   336,   338,
1329 >     339,   340,   341,   342,   346,   348,   349,   352,   178, -1024,
1330 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1331 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024,   316,   353,   354,
1332 >     355,   357,   366,   368, -1024,   369,   374,   375,   376,   377,
1333 >     378,   380,   278, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1334 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   384,
1335 >     385,    21, -1024, -1024, -1024,   446,   359, -1024, -1024,   386,
1336 >     387,    18, -1024, -1024, -1024,   409,   422,   512,   422,   422,
1337 >     412,   515,   414,   520,   522,   523,   423,   424,   425,   422,
1338 >     524,   529,   531,   532,   422,   533,   535,   543,   546,   447,
1339 >     429,   432,   452,   422,   422,   454,   461,   462,  -193,  -185,
1340 >     463,   464,   466,   468,   571,   422,   470,   422,   422,   471,
1341 >     455, -1024,   457,   451,   458, -1024,   459,   467,   475,   477,
1342 >     481,   191, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1343 >   -1024, -1024,   485,   488,    25, -1024, -1024, -1024,   460,   490,
1344 >     492, -1024,   493, -1024,    51, -1024, -1024, -1024, -1024, -1024,
1345 >     577,   579,   465, -1024,   474,   494,   495,   156, -1024, -1024,
1346 >   -1024,   500,   498,   499, -1024,   502,   503,   504,   508, -1024,
1347 >     509,   510,   120, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1348 >   -1024, -1024, -1024, -1024,   518,   517,   519,   521,    73, -1024,
1349 >   -1024, -1024, -1024,   544,   547,   422,   621,   553,   627,   556,
1350 >     557,   558,   525, -1024, -1024,   654,   647,   560,   649,   541,
1351 >     655,   658,   668,   673,   664,   665,   666,   667,   669,   671,
1352 >     672,   675,   676,   677,   678,   562, -1024,   576,   574, -1024,
1353 >      94, -1024, -1024, -1024, -1024,   598,   587, -1024,   586,   589,
1354 >     588,   590,   591,   592,     3, -1024, -1024, -1024, -1024, -1024,
1355 >     696,   596, -1024,   597,   601, -1024,   602,    23, -1024, -1024,
1356 >   -1024, -1024,   608,   610,   614, -1024,   616,   232,   617,   623,
1357 >     624,   625,   628,   629,   630,   632,   633,   634, -1024, -1024,
1358 >     712,   721,   422,   612,   747,   755,   757,   422,   759,   765,
1359 >     422,   750,   770,   771,   422,   772,   772,   646, -1024, -1024,
1360 >     767,  -135,   769,   682,   773,   774,   650,   775,   776,   780,
1361 >     777,   778,   779,   784,   674, -1024,   788,   791,   687, -1024,
1362 >     689, -1024,   796,   798,   695, -1024,   698,   700,   701,   702,
1363 >     704,   705,   706,   710,   711,   713,   715,   716,   717,   718,
1364 >     720,   725,   728,   731,   733,   735,   736,   738,   741,   742,
1365 >     743,   826,   740,   744,   746,   748,   751,   752,   756,   758,
1366 >     768,   781,   782,   783,   787,   790,   792,   797,   799,   801,
1367 >     802,   803,   804, -1024, -1024,   818,   714,   694,   853,   870,
1368 >     863,   865,   877,   806, -1024,   879,   881,   807, -1024, -1024,
1369 >     882,   884,   761,   904,   808, -1024,   809,   810, -1024, -1024,
1370 >     892,   894,   811, -1024, -1024,   897,   816,   793,   918,   919,
1371 >     920,   833,   813,   923,   924,   819, -1024, -1024,   926,   927,
1372 >     928,   823, -1024,   824,   825,   827,   828,   829,   830,   831,
1373 >     832,   834, -1024,   835,   836,   837,   838,    48,   839,   840,
1374 >     841,   842,   843,   844,   845,   846,   847,   848,   849,   850,
1375 >     851,   852,   854, -1024, -1024,   932,   855,   856, -1024,   857,
1376 >   -1024,   130, -1024,   939,   959,   961,   965,   860, -1024,   861,
1377 >   -1024, -1024,   968,   862,   969,   864, -1024, -1024, -1024, -1024,
1378 >   -1024,   422,   422,   422,   422,   422,   422,   422, -1024, -1024,
1379 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1380 >     866,   867,   868,   -39,   869,   871,   872,   873,   874,   875,
1381 >     876,   878,   880,   883,   885,   337,   886,   887, -1024,   888,
1382 >     889,   890,   891,   893,   895,   896,     8,   898,   899,   900,
1383 >     901,   902,   903,   905, -1024,   906,   907, -1024, -1024,   908,
1384 >     909, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1385 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1386 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1387 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1388 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024,  -194, -1024, -1024,
1389 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1390 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1391 >   -1024,   -73, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1392 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1393 >   -1024, -1024, -1024,   910,   911,   450,   912,   913,   914,   915,
1394 >     916, -1024,   917,   921, -1024,   922,   925,   -33,   929,   930,
1395 >   -1024, -1024, -1024, -1024,   931,   933, -1024,   935,   936,   539,
1396 >     937,   938,   940,   941,   786,   942,   943, -1024,   944,   945,
1397 >     946, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1398 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   -40,
1399 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1400 >   -1024, -1024, -1024, -1024, -1024, -1024,   947,   356, -1024, -1024,
1401 >     948,   949,   950, -1024,    85, -1024, -1024, -1024, -1024,   951,
1402 >     954,   955,   956, -1024, -1024,   957,   491,   958, -1024, -1024,
1403 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1404 >   -1024,   -10, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1405 >   -1024, -1024, -1024, -1024,   772,   772,   772, -1024, -1024, -1024,
1406 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1407 >      54, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1408 >   -1024, -1024, -1024, -1024,   826, -1024,   740, -1024, -1024, -1024,
1409 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,    67,
1410 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1411 >   -1024, -1024, -1024,    99, -1024,   990,   904,   960, -1024, -1024,
1412 >   -1024, -1024, -1024, -1024,   934, -1024,   962,   963, -1024, -1024,
1413 >     964,   966, -1024, -1024,   967, -1024, -1024, -1024, -1024, -1024,
1414 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024,   125, -1024, -1024,
1415 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1416 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1417 >   -1024, -1024, -1024, -1024, -1024,   152, -1024, -1024, -1024, -1024,
1418 >   -1024, -1024, -1024,    48, -1024, -1024, -1024, -1024, -1024, -1024,
1419 >   -1024, -1024, -1024, -1024, -1024,   169, -1024, -1024,   983,   -77,
1420 >     970,   974, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1421 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   170, -1024,
1422 >   -1024, -1024,   -39, -1024, -1024, -1024, -1024,     8, -1024, -1024,
1423 >   -1024,   450, -1024,   -33, -1024, -1024, -1024,   979,   980,   981,
1424 >     982,   992,   994, -1024,   539, -1024,   786, -1024, -1024,   356,
1425 >     975,   976,   977,   270, -1024, -1024,   491, -1024, -1024, -1024,
1426 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1427 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1428 >   -1024,   176, -1024, -1024, -1024,   270, -1024
1429   };
1430  
1431    /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
# Line 1424 | Line 1433 | static const yytype_int16 yypact[] =
1433       means the default is an error.  */
1434   static const yytype_uint16 yydefact[] =
1435   {
1436 <       2,     0,     1,     0,     0,     0,   215,   380,   428,     0,
1437 <     443,     0,   283,   419,   259,     0,    99,   139,   317,     0,
1438 <       0,   358,     0,     0,   334,     3,    23,    11,     4,    24,
1439 <       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1440 <      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1436 >       2,     0,     1,     0,     0,     0,   247,   412,   460,     0,
1437 >     475,     0,   315,   451,   291,     0,   113,   165,   349,     0,
1438 >       0,   390,     0,   122,     0,   366,     3,    23,    11,     4,
1439 >      24,    25,     5,     6,     8,     9,    10,    13,    14,    15,
1440 >      16,    17,    18,    19,    20,    22,    21,     7,    12,    26,
1441 >      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1443 +       0,     0,     0,     0,     0,     0,     0,     0,   105,   106,
1444 +     108,   107,   642,     0,     0,     0,     0,     0,     0,     0,
1445 +       0,     0,     0,     0,     0,   630,   641,   632,   633,   634,
1446 +     635,   636,   637,   638,   631,   639,   640,     0,     0,     0,
1447 +     473,     0,     0,   471,   472,     0,   532,     0,     0,     0,
1448         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1434       0,     0,     0,     0,     0,    91,    92,    94,    93,   623,
1449         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1450 <       0,     0,     0,     0,     0,   608,   622,   610,   611,   612,
1437 <     613,   614,   615,   609,   616,   617,   618,   619,   620,   621,
1438 <       0,     0,     0,   441,     0,     0,   439,   440,     0,   505,
1450 >       0,     0,   601,   575,     0,     0,     0,     0,     0,     0,
1451         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1452 +       0,     0,     0,   486,   487,   488,   530,   531,   525,   526,
1453 +     527,   528,   524,   498,   489,   490,   491,   492,   493,   494,
1454 +     495,   496,   497,   499,   500,   529,   504,   505,   506,   507,
1455 +     503,   502,   508,   515,   516,   509,   510,   511,   501,   513,
1456 +     522,   523,   520,   521,   514,   512,   518,   519,   517,     0,
1457 +       0,     0,     0,     0,     0,     0,    46,    47,    48,     0,
1458 +       0,     0,   666,     0,     0,     0,     0,     0,     0,     0,
1459 +       0,     0,     0,   656,   657,   658,   659,   660,   661,   662,
1460 +     664,   663,   665,     0,     0,     0,     0,     0,    82,     0,
1461         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1462 <       0,     0,     0,     0,     0,     0,     0,     0,   579,     0,
1463 <     553,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1462 >       0,     0,     0,     0,     0,    54,    69,    66,    64,    70,
1463 >      71,    65,    72,    73,    74,    55,    68,    58,    59,    60,
1464 >      56,    67,    61,    62,    63,    57,     0,     0,     0,     0,
1465 >     137,   138,   139,     0,     0,   364,     0,     0,   362,   363,
1466 >       0,   109,     0,     0,     0,     0,   104,     0,     0,     0,
1467 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   629,
1468 >       0,     0,     0,     0,   285,     0,     0,     0,     0,     0,
1469 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   250,
1470 >     251,   254,   256,   257,   258,   259,   260,   261,   262,   263,
1471 >     264,   252,   253,   255,   265,   266,   267,     0,     0,     0,
1472 >       0,     0,     0,     0,   440,     0,     0,     0,     0,     0,
1473 >       0,     0,     0,   415,   416,   417,   418,   419,   420,   421,
1474 >     423,   422,   425,   429,   426,   427,   428,   424,   466,     0,
1475 >       0,     0,   463,   464,   465,     0,     0,   470,   481,     0,
1476 >       0,     0,   478,   479,   480,     0,     0,     0,     0,     0,
1477         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1444       0,   454,   455,   456,   502,   504,   496,   497,   498,   499,
1445     500,   495,   467,   457,   458,   459,   460,   461,   462,   463,
1446     464,   465,   466,   492,   468,   469,   501,   471,   476,   477,
1447     472,   474,   473,   485,   486,   475,   478,   479,   480,   481,
1448     470,   483,   503,   493,   494,   490,   491,   484,   482,   488,
1449     489,   487,     0,     0,     0,     0,     0,     0,     0,    45,
1450      46,    47,     0,     0,     0,   649,     0,     0,     0,     0,
1451       0,     0,     0,     0,     0,   640,   641,   642,   643,   644,
1452     647,   645,   646,   648,     0,     0,     0,     0,     0,     0,
1478         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1454       0,     0,     0,    53,    68,    65,    63,    69,    70,    64,
1455      54,    67,    57,    58,    59,    55,    66,    60,    61,    62,
1456      56,     0,     0,     0,     0,   110,   111,   112,     0,   332,
1457       0,     0,   330,   331,     0,    95,     0,     0,     0,     0,
1458      90,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1459       0,     0,     0,     0,     0,     0,   607,     0,     0,     0,
1460       0,   253,     0,     0,     0,     0,     0,     0,     0,     0,
1461       0,     0,     0,     0,     0,     0,   218,   219,   222,   224,
1462     225,   226,   227,   228,   229,   230,   231,   232,   220,   221,
1463     223,   233,   234,   235,     0,     0,     0,     0,     0,     0,
1464       0,   408,     0,     0,     0,     0,     0,     0,     0,     0,
1465     383,   384,   385,   386,   387,   388,   389,   391,   390,   393,
1466     397,   394,   395,   396,   392,   434,     0,     0,     0,   431,
1467     432,   433,     0,     0,   438,   449,     0,     0,     0,   446,
1468     447,   448,     0,     0,     0,     0,     0,     0,     0,     0,
1479         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1480         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1481 +       0,   485,     0,     0,     0,   332,     0,     0,     0,     0,
1482 +       0,     0,   318,   319,   320,   321,   326,   322,   323,   324,
1483 +     325,   457,     0,     0,     0,   454,   455,   456,     0,     0,
1484 +       0,   293,     0,   303,     0,   301,   302,   304,   305,    49,
1485 +       0,     0,     0,    45,     0,     0,     0,     0,   116,   117,
1486 +     118,     0,     0,     0,   214,     0,     0,     0,     0,   188,
1487 +       0,     0,     0,   168,   169,   170,   171,   172,   175,   176,
1488 +     177,   174,   173,   178,     0,     0,     0,     0,     0,   352,
1489 +     353,   354,   355,     0,     0,     0,     0,     0,     0,     0,
1490 +       0,     0,     0,   655,    75,     0,     0,     0,     0,     0,
1491         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1492 +       0,     0,     0,     0,     0,     0,    53,     0,     0,   398,
1493 +       0,   393,   394,   395,   140,     0,     0,   136,     0,     0,
1494 +       0,     0,     0,     0,     0,   125,   126,   128,   127,   129,
1495 +       0,     0,   361,     0,     0,   376,     0,     0,   369,   370,
1496 +     371,   372,     0,     0,     0,   103,     0,    28,     0,     0,
1497 +       0,     0,     0,     0,     0,     0,     0,     0,   628,   268,
1498         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1499 <       0,     0,     0,   453,     0,     0,     0,   300,     0,     0,
1474 <       0,     0,     0,     0,   286,   287,   288,   289,   294,   290,
1475 <     291,   292,   293,   425,     0,     0,     0,   422,   423,   424,
1476 <       0,     0,     0,   261,     0,   271,     0,   269,   270,   272,
1477 <     273,    48,     0,     0,     0,    44,     0,     0,     0,     0,
1478 <     102,   103,   104,     0,     0,     0,   188,     0,     0,     0,
1479 <       0,     0,   162,     0,     0,   142,   143,   144,   145,   148,
1480 <     149,   150,   151,   147,   146,   152,     0,     0,     0,     0,
1481 <       0,   320,   321,   322,   323,     0,     0,     0,     0,     0,
1482 <       0,     0,     0,     0,   639,    71,     0,     0,     0,     0,
1499 >       0,     0,     0,     0,     0,     0,     0,     0,   249,   430,
1500         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1501 <       0,     0,     0,     0,    52,     0,     0,   366,     0,   361,
1502 <     362,   363,   113,     0,     0,   109,     0,     0,     0,   329,
1486 <       0,     0,   344,     0,     0,   337,   338,   339,   340,     0,
1487 <       0,     0,    89,     0,     0,     0,     0,    27,     0,     0,
1488 <       0,     0,     0,     0,     0,     0,     0,     0,   606,   236,
1501 >       0,     0,     0,     0,     0,   414,     0,     0,     0,   462,
1502 >       0,   469,     0,     0,     0,   477,     0,     0,     0,     0,
1503         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1490       0,     0,     0,     0,     0,     0,     0,     0,   217,   398,
1504         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1492       0,     0,     0,     0,     0,   382,     0,     0,     0,   430,
1493       0,   437,     0,     0,     0,   445,     0,     0,     0,     0,
1505         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1506         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1507 +       0,     0,     0,   484,   327,     0,     0,     0,     0,     0,
1508 +       0,     0,     0,     0,   317,     0,     0,     0,   453,   306,
1509 +       0,     0,     0,     0,     0,   300,     0,     0,    44,   119,
1510 +       0,     0,     0,   115,   179,     0,     0,     0,     0,     0,
1511 +       0,     0,     0,     0,     0,     0,   167,   356,     0,     0,
1512 +       0,     0,   351,     0,     0,     0,     0,     0,     0,     0,
1513 +       0,     0,   654,     0,     0,     0,     0,     0,     0,     0,
1514         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1515 +       0,     0,     0,    52,   396,     0,     0,     0,   392,     0,
1516 +     135,     0,   130,     0,     0,     0,     0,     0,   124,     0,
1517 +     360,   373,     0,     0,     0,     0,   368,   112,   111,   110,
1518 +     652,    28,    28,    28,    28,    28,    28,    28,    30,    29,
1519 +     653,   643,   644,   645,   646,   647,   648,   649,   651,   650,
1520         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1521 <       0,     0,     0,     0,     0,     0,     0,     0,   452,   295,
1499 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   285,
1500 <       0,     0,     0,   421,   274,     0,     0,     0,     0,     0,
1501 <     268,     0,     0,    43,   105,     0,     0,     0,   101,   153,
1521 >       0,     0,     0,     0,     0,    38,     0,     0,   248,     0,
1522         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1523 <       0,   141,   324,     0,     0,     0,     0,   319,     0,     0,
1524 <       0,     0,     0,     0,     0,     0,   638,     0,     0,     0,
1525 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1526 <       0,     0,     0,     0,    51,   364,     0,     0,     0,   360,
1527 <       0,   108,     0,     0,   328,   341,     0,     0,     0,     0,
1528 <     336,    98,    97,    96,   633,   632,   624,   625,    27,    27,
1529 <      27,    27,    27,    27,    27,    29,    28,   626,   636,   637,
1530 <     627,   628,   629,   631,   630,   634,   635,     0,     0,     0,
1531 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1532 <       0,     0,    37,     0,     0,   216,     0,     0,     0,     0,
1533 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1534 <       0,   381,     0,     0,   429,   442,     0,     0,   444,   520,
1535 <     524,   506,   507,   539,   509,   605,   550,   546,   519,   511,
1536 <     510,   513,   514,   512,   527,   517,   518,   528,   516,   523,
1537 <     522,   521,   547,   508,   603,   604,   543,   589,   583,   599,
1538 <     584,   585,   586,   594,   602,   587,   596,   600,   590,   601,
1539 <     591,   595,   588,   598,   593,   592,   597,     0,   582,   545,
1540 <     562,   563,   564,   557,   575,   558,   559,   560,   570,   578,
1541 <     561,   572,   576,   566,   577,   567,   571,   565,   574,   569,
1542 <     568,   573,     0,   556,   540,   538,   541,   549,   542,   530,
1543 <     536,   537,   534,   535,   531,   532,   533,   548,   551,   552,
1544 <     515,   544,   526,   525,   529,     0,     0,     0,     0,     0,
1545 <       0,     0,     0,   284,     0,     0,   420,     0,     0,     0,
1546 <     279,   275,   278,   260,    49,    50,     0,     0,   100,     0,
1547 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   140,
1548 <       0,     0,     0,   318,   651,   650,   656,   654,   657,   652,
1549 <     653,   655,    80,    88,    79,    86,    87,    78,    82,    81,
1550 <      73,    72,    77,    74,    76,    85,    75,    83,    84,     0,
1551 <       0,   359,   114,     0,     0,     0,   126,     0,   118,   119,
1552 <     121,   120,   333,     0,     0,     0,   335,    30,    31,    32,
1553 <      33,    34,    35,    36,   248,   249,   240,   258,   257,     0,
1554 <     256,   241,   243,   245,   252,   244,   242,   251,   237,   250,
1555 <     239,   238,    37,    37,    37,    39,    38,   246,   247,   403,
1556 <     406,   407,   417,   414,   400,   415,   412,   413,     0,   411,
1557 <     416,   399,   405,   402,   404,   418,   401,   435,   436,   450,
1558 <     451,   580,     0,   554,     0,   298,   299,   308,   305,   310,
1559 <     306,   307,   313,   309,   311,   304,   312,     0,   303,   297,
1560 <     316,   315,   314,   296,   427,   426,   282,   281,   266,   267,
1561 <     265,     0,   264,     0,     0,     0,   106,   107,   161,   157,
1562 <     208,   195,   205,   204,   193,   198,   214,   207,   212,   197,
1563 <     200,   209,   211,   206,   213,   201,   203,   210,   199,   202,
1564 <       0,   191,   154,   156,   158,   159,   160,   171,   172,   173,
1565 <     166,   184,   167,   168,   169,   179,   187,   170,   181,   185,
1566 <     175,   186,   176,   180,   174,   183,   178,   177,   182,     0,
1567 <     165,   155,   327,   325,   326,   365,   370,   376,   379,   372,
1568 <     378,   373,   377,   375,   371,   374,     0,   369,   122,     0,
1549 <       0,     0,     0,   117,   342,   348,   354,   357,   350,   356,
1550 <     351,   355,   353,   349,   352,     0,   347,   343,   254,     0,
1551 <      40,    41,    42,   409,     0,   581,   555,   301,     0,   262,
1552 <       0,   280,   277,   276,     0,     0,     0,   189,     0,   163,
1553 <       0,   367,     0,     0,     0,     0,     0,   116,   345,     0,
1554 <     255,   410,   302,   263,   194,   192,   196,   190,   164,   368,
1555 <     123,   125,   124,   132,   137,   136,   131,   134,   138,   135,
1556 <     130,   133,     0,   129,   346,   127,     0,   128
1523 >       0,     0,     0,     0,   413,     0,     0,   461,   474,     0,
1524 >       0,   476,   545,   549,   533,   534,   564,   536,   627,   572,
1525 >     537,   538,   569,   544,   543,   552,   542,   539,   540,   548,
1526 >     547,   546,   570,   535,   625,   626,   568,   611,   605,   621,
1527 >     606,   607,   608,   616,   624,   609,   618,   622,   612,   623,
1528 >     613,   617,   610,   620,   615,   614,   619,     0,   604,   584,
1529 >     585,   586,   579,   597,   580,   581,   582,   592,   600,   583,
1530 >     594,   598,   588,   599,   589,   593,   587,   596,   591,   590,
1531 >     595,     0,   578,   565,   563,   566,   571,   567,   554,   561,
1532 >     562,   559,   560,   555,   556,   557,   558,   573,   574,   541,
1533 >     551,   550,   553,     0,     0,     0,     0,     0,     0,     0,
1534 >       0,   316,     0,     0,   452,     0,     0,     0,   311,   307,
1535 >     310,   292,    50,    51,     0,     0,   114,     0,     0,     0,
1536 >       0,     0,     0,     0,     0,     0,     0,   166,     0,     0,
1537 >       0,   350,   670,   667,   668,   669,   674,   673,   675,   671,
1538 >     672,    99,    94,   102,    93,    89,    87,    88,    86,     0,
1539 >      85,    90,    91,   100,   101,    92,    96,    95,    77,    76,
1540 >      81,    78,    80,    79,    97,    98,     0,     0,   391,   141,
1541 >       0,     0,     0,   153,     0,   145,   146,   148,   147,     0,
1542 >       0,     0,     0,   123,   365,     0,     0,     0,   367,    31,
1543 >      32,    33,    34,    35,    36,    37,   280,   281,   272,   290,
1544 >     289,     0,   288,   273,   275,   277,   284,   276,   274,   283,
1545 >     269,   282,   271,   270,    38,    38,    38,    40,    39,   278,
1546 >     279,   435,   438,   439,   449,   446,   432,   447,   444,   445,
1547 >       0,   443,   448,   431,   437,   434,   436,   450,   433,   467,
1548 >     468,   482,   483,   602,     0,   576,     0,   330,   331,   341,
1549 >     337,   338,   340,   345,   342,   343,   336,   344,   339,     0,
1550 >     335,   329,   348,   347,   346,   328,   459,   458,   314,   313,
1551 >     298,   299,   297,     0,   296,     0,     0,     0,   120,   121,
1552 >     187,   184,   234,   246,   221,   230,     0,   219,   224,   240,
1553 >       0,   233,   238,   244,   223,   226,   235,   237,   241,   231,
1554 >     239,   227,   245,   229,   236,   225,   228,     0,   217,   180,
1555 >     182,   185,   186,   197,   198,   199,   192,   210,   193,   194,
1556 >     195,   205,   213,   196,   207,   211,   201,   212,   202,   206,
1557 >     200,   209,   204,   203,   208,     0,   191,   181,   183,   359,
1558 >     357,   358,    83,     0,   397,   402,   408,   411,   404,   410,
1559 >     405,   409,   407,   403,   406,     0,   401,   149,     0,     0,
1560 >       0,     0,   144,   132,   131,   133,   134,   374,   380,   386,
1561 >     389,   382,   388,   383,   387,   385,   381,   384,     0,   379,
1562 >     375,   286,     0,    41,    42,    43,   441,     0,   603,   577,
1563 >     333,     0,   294,     0,   312,   309,   308,     0,     0,     0,
1564 >       0,     0,     0,   215,     0,   189,     0,    84,   399,     0,
1565 >       0,     0,     0,     0,   143,   377,     0,   287,   442,   334,
1566 >     295,   220,   243,   218,   242,   232,   222,   216,   190,   400,
1567 >     150,   152,   151,   163,   162,   158,   160,   164,   161,   157,
1568 >     159,     0,   156,   378,   154,     0,   155
1569   };
1570  
1571    /* YYPGOTO[NTERM-NUM].  */
1572   static const yytype_int16 yypgoto[] =
1573   {
1574 <    -790,  -790,  -790,  -789,  -313,  -723,  -635,  -790,  -790,   952,
1575 <    -790,  -790,  -790,  -790,   954,  -790,  -790,  -790,  -790,  -790,
1576 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1577 <    -790,  -790,  -790,  -790,  1041,  -790,  -790,  -790,  -790,  -790,
1578 <    -790,   607,  -790,  -790,  -790,  -790,   858,  -790,  -790,  -790,
1579 <    -790,    74,  -790,  -790,  -790,  -790,  -790,  -170,  -790,  -790,
1580 <    -790,   593,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1581 <    -790,  -790,  -790,  -138,  -790,  -790,  -790,  -129,  -790,  -790,
1582 <    -790,   955,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1583 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1584 <    -790,  -107,  -790,  -790,  -790,  -790,  -790,  -114,  -790,   651,
1585 <    -790,  -790,  -790,    -7,  -790,  -790,  -790,  -790,  -790,   678,
1586 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -105,  -790,  -790,
1587 <    -790,  -790,  -790,  -790,   615,  -790,  -790,  -790,  -790,  -790,
1588 <     956,  -790,  -790,  -790,  -790,   563,  -790,  -790,  -790,  -790,
1589 <    -790,  -109,  -790,  -790,  -790,   562,  -790,  -790,  -790,  -790,
1590 <     -87,  -790,  -790,  -790,   805,  -790,  -790,  -790,  -790,  -790,
1591 <    -790,  -790,  -790,  -790,  -790,  -790,   -56,  -790,  -790,  -790,
1592 <    -790,  -790,  -790,  -790,  -790,   696,  -790,  -790,  -790,  -790,
1593 <    -790,   962,  -790,  -790,  -790,  -790,  1066,  -790,  -790,  -790,
1594 <    -790,   963,  -790,  -790,  -790,  -790,  1023,  -790,  -790,  -790,
1595 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1596 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1597 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1598 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1599 <    -790,  -790,  -790,  -790,  -790,    80,  -790,  -790,  -790,    85,
1600 <    -790,  -790,  -790,  -790,  -790,  1101,  -790,  -790,  -790,  -790,
1601 <    -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1602 <    -790,  -790,   964,  -790,  -790,  -790,  -790,  -790,  -790,  -790,
1603 <    -790
1574 >   -1024, -1024, -1024,  -425,  -306, -1023,  -635, -1024, -1024,   978,
1575 >   -1024, -1024, -1024, -1024,   952, -1024, -1024, -1024, -1024, -1024,
1576 >   -1024, -1024, -1024, -1024,   -92, -1024, -1024, -1024, -1024, -1024,
1577 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1578 >    1061, -1024, -1024, -1024, -1024, -1024, -1024,   656, -1024, -1024,
1579 >   -1024, -1024, -1024,   570, -1024, -1024, -1024, -1024, -1024, -1024,
1580 >     953, -1024, -1024, -1024, -1024,   104, -1024, -1024, -1024, -1024,
1581 >   -1024,  -168, -1024, -1024, -1024,   648, -1024, -1024, -1024, -1024,
1582 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024,  -125, -1024, -1024,
1583 >   -1024,  -122, -1024, -1024, -1024,   858, -1024, -1024, -1024, -1024,
1584 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1585 >   -1024, -1024, -1024, -1024, -1024,   -98, -1024, -1024, -1024, -1024,
1586 >   -1024,  -110, -1024,   699, -1024, -1024, -1024,    39, -1024, -1024,
1587 >   -1024, -1024, -1024,   723, -1024, -1024, -1024, -1024, -1024, -1024,
1588 >   -1024,  -105, -1024, -1024, -1024, -1024, -1024, -1024,   670, -1024,
1589 >   -1024, -1024, -1024, -1024,   971, -1024, -1024, -1024, -1024,   600,
1590 >   -1024, -1024, -1024, -1024, -1024,   -97, -1024, -1024, -1024,   642,
1591 >   -1024, -1024, -1024, -1024,   -89, -1024, -1024, -1024,   859, -1024,
1592 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1593 >     -63, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   739,
1594 >   -1024, -1024, -1024, -1024, -1024,   972, -1024, -1024, -1024, -1024,
1595 >    1102, -1024, -1024, -1024, -1024,   817, -1024, -1024, -1024, -1024,
1596 >    1053, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1597 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1598 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1599 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1600 >   -1024, -1024, -1024, -1024,    91, -1024, -1024, -1024,    96, -1024,
1601 >   -1024, -1024, -1024, -1024,  1125, -1024, -1024, -1024, -1024, -1024,
1602 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   989, -1024,
1603 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024
1604   };
1605  
1606    /* YYDEFGOTO[NTERM-NUM].  */
1607   static const yytype_int16 yydefgoto[] =
1608   {
1609 <      -1,     1,    25,   825,   826,  1085,  1086,    26,   228,   229,
1610 <     230,   231,    27,   272,   273,   274,   275,   276,   277,   278,
1611 <     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
1612 <     289,   290,    28,    74,    75,    76,    77,    78,    29,    61,
1613 <     509,   510,   511,   512,    30,   294,   295,   296,   297,   298,
1614 <    1047,  1048,  1049,  1050,  1051,  1221,  1292,  1293,    31,    62,
1615 <     524,   525,   526,   527,   528,   529,   530,   531,   532,   533,
1616 <     534,   758,  1199,  1200,   535,   752,  1170,  1171,    32,    51,
1617 <     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1618 <     355,   356,   357,   358,   359,   360,   361,   362,   363,   623,
1619 <    1069,  1070,    33,    59,   495,   737,  1141,  1142,   496,   497,
1620 <     498,  1145,   991,   992,   499,   500,    34,    57,   473,   474,
1621 <     475,   476,   477,   478,   479,   722,  1127,  1128,   480,   481,
1622 <     482,    35,    63,   540,   541,   542,   543,   544,    36,   301,
1623 <     302,   303,    37,    69,   594,   595,   596,   597,   598,   807,
1624 <    1235,  1236,    38,    66,   578,   579,   580,   581,   797,  1216,
1625 <    1217,    39,    52,   379,   380,   381,   382,   383,   384,   385,
1626 <     386,   387,   388,   389,   646,  1098,  1099,   390,   391,   392,
1627 <     393,   394,    40,    58,   486,   487,   488,   489,    41,    53,
1628 <     398,   399,   400,   401,    42,   115,   116,   117,    43,    55,
1629 <     408,   409,   410,   411,    44,   170,   171,   172,   173,   174,
1630 <     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1631 <     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1632 <     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1633 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1634 <     215,   216,   217,   442,   952,   953,   218,   440,   927,   928,
1635 <     219,   220,   221,    45,    94,    95,    96,    97,    98,    99,
1636 <     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1637 <      46,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1638 <     253
1609 >      -1,     1,    26,   828,   829,  1097,  1098,    27,   215,   216,
1610 >     217,   218,    28,   264,   265,   266,   267,   268,   269,   270,
1611 >     271,   272,   549,  1029,  1030,   273,   274,   275,   276,   277,
1612 >     278,   279,   280,   281,   282,   283,   284,   285,    29,    77,
1613 >      78,    79,    80,    81,    30,    63,   497,   498,   499,   500,
1614 >      31,    70,   584,   585,   586,   587,   588,   589,    32,   289,
1615 >     290,   291,   292,   293,  1054,  1055,  1056,  1057,  1058,  1240,
1616 >    1321,  1322,    33,    64,   512,   513,   514,   515,   516,   517,
1617 >     518,   519,   520,   521,   522,   752,  1215,  1216,   523,   747,
1618 >    1187,  1188,    34,    53,   338,   339,   340,   341,   342,   343,
1619 >     344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
1620 >     354,   355,   356,   623,  1081,  1082,    35,    61,   483,   732,
1621 >    1153,  1154,   484,   485,   486,  1157,   989,   990,   487,   488,
1622 >      36,    59,   461,   462,   463,   464,   465,   466,   467,   717,
1623 >    1139,  1140,   468,   469,   470,    37,    65,   528,   529,   530,
1624 >     531,   532,    38,   297,   298,   299,    39,    72,   597,   598,
1625 >     599,   600,   601,   813,  1258,  1259,    40,    68,   570,   571,
1626 >     572,   573,   796,  1235,  1236,    41,    54,   372,   373,   374,
1627 >     375,   376,   377,   378,   379,   380,   381,   382,   646,  1110,
1628 >    1111,   383,   384,   385,   386,   387,    42,    60,   474,   475,
1629 >     476,   477,    43,    55,   391,   392,   393,   394,    44,   112,
1630 >     113,   114,    45,    57,   401,   402,   403,   404,    46,   162,
1631 >     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1632 >     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1633 >     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1634 >     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1635 >     203,   204,   431,   951,   952,   205,   430,   927,   928,   206,
1636 >     207,   208,    47,    94,    95,    96,    97,    98,    99,   100,
1637 >     101,   102,   103,   104,   105,   106,    48,   232,   233,   234,
1638 >     235,   236,   237,   238,   239,   240,   241,   242
1639   };
1640  
1641    /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
# Line 1631 | Line 1643 | static const yytype_int16 yydefgoto[] =
1643       number is the opposite.  If YYTABLE_NINF, syntax error.  */
1644   static const yytype_int16 yytable[] =
1645   {
1646 <     853,   854,   608,  1067,   610,   292,   612,   613,  1096,   490,
1647 <     225,   299,    70,   113,   536,   506,   506,   113,   852,   405,
1648 <      49,   395,   536,    50,   225,  1138,    54,    70,   395,  1057,
1649 <    1058,  1059,  1060,  1061,  1062,  1063,   703,   299,    71,   292,
1650 <     704,    56,   405,   119,    60,    72,    64,   483,   120,   121,
1651 <     537,   122,   123,    71,    65,   705,   124,  1111,   537,   706,
1652 <      72,  1112,  1113,  1238,   125,   126,  1114,  1239,   491,  1243,
1653 <      67,   127,   590,  1244,   128,   492,    68,   493,  1068,   114,
1654 <     129,    47,    48,   114,  1043,   130,   131,   396,   132,   133,
1655 <     134,   110,   135,   254,   396,   575,   538,   507,   507,   111,
1656 <     667,   136,   669,   670,   538,   137,   138,  1043,   483,   676,
1657 <     226,  1264,   112,   680,   300,    73,   139,   118,   685,   255,
1658 <     222,   688,   406,   575,   226,   223,   140,   857,   858,   590,
1659 <      73,   698,   699,   141,   227,   142,   494,   143,   224,   144,
1660 <     300,   145,   146,   712,   539,   406,   715,   716,   227,   407,
1661 <     232,   397,   539,   256,   147,   233,   464,    79,   397,   148,
1662 <     149,   150,   257,   151,   152,   153,  1139,  1247,   154,  1249,
1663 <     234,  1248,   407,  1250,   465,   591,  1140,   484,   305,   291,
1664 <      80,    81,  -115,   304,   258,  1257,    82,  1044,   259,  1258,
1665 <     466,  1259,   508,   508,   155,  1260,   260,   327,   576,   261,
1666 <     262,   306,  1097,   307,   156,   157,   158,   159,   160,   161,
1667 <    1044,  1261,   513,   328,   329,  1262,  -115,   330,   308,  1268,
1668 <     311,    83,    84,  1269,   467,   312,   576,    85,    86,   293,
1669 <     514,   263,   591,    87,    88,    89,   162,   313,   484,   775,
1670 <     739,    90,    91,   309,   403,   766,   515,   747,   264,   599,
1671 <     664,   265,   266,   267,   600,   504,   163,   164,   165,   658,
1672 <     166,   167,   168,   293,   314,   331,    92,    93,   588,   315,
1673 <     584,   169,   485,   364,   462,   365,   501,   366,   268,   468,
1674 <     516,  1045,   332,   333,   334,   335,   336,   469,   470,   316,
1675 <     337,   367,   235,   592,   338,   269,   490,   593,  1295,   317,
1676 <     339,   555,  1296,   809,  1045,  1046,   318,   368,   471,   839,
1677 <     319,   340,   341,   320,   844,   517,   577,   847,   321,   270,
1678 <     271,   851,   236,   342,   573,   322,   798,   323,  1046,   324,
1679 <     237,   402,   369,   485,   370,   518,   412,   413,  1222,   732,
1680 <     582,   371,   238,   239,   577,   343,   414,   240,   241,   242,
1681 <     592,   519,   372,   415,   593,   491,  1082,  1083,  1084,  1240,
1682 <    1241,  1242,   492,   607,   493,   416,   417,   418,   520,   521,
1683 <     419,   420,   243,   254,   421,   422,   373,   423,   424,   425,
1684 <     426,   472,   427,   428,   429,   344,   430,   728,   325,   601,
1685 <     818,   819,   820,   821,   822,   823,   824,   431,   432,   255,
1686 <     374,   433,   434,   435,   119,   436,   437,   438,   439,   120,
1687 <     121,   441,   122,   123,   443,   522,   444,   124,   445,   446,
1688 <     375,   464,   447,   494,   448,   125,   126,   449,   637,   376,
1689 <     602,   450,   127,   256,   451,   128,   452,   523,   513,   465,
1690 <     453,   129,   257,   760,   454,   603,   130,   131,   455,   132,
1691 <     133,   134,   456,   135,   457,   466,   514,   458,   459,   852,
1692 <     460,   461,   136,   502,   258,   503,   137,   138,   259,   545,
1693 <     546,   547,   515,   548,   549,   377,   260,   139,   550,   261,
1694 <     262,   551,   552,   586,   556,   557,   558,   140,   559,   467,
1695 <     560,   561,   562,   563,   141,   564,   142,   565,   143,   378,
1696 <     144,   566,   145,   146,   654,   567,   516,   568,   569,   570,
1697 <     571,   263,   572,   583,   587,   147,   604,   605,  1150,   606,
1698 <     148,   149,   150,   553,   151,   152,   153,   607,   264,   154,
1699 <     609,   265,   266,   267,  1151,   611,   614,   615,   616,   617,
1700 <     618,   517,  1152,   619,   468,   620,   364,   621,   365,   622,
1701 <     366,   624,   469,   470,   625,   155,  1153,   626,   268,  1283,
1702 <     660,   518,   627,   628,   367,   156,   157,   158,   159,   160,
1703 <     161,   629,   630,   471,   631,   269,   632,   519,   633,   666,
1704 <     368,   634,   635,   636,   639,  1265,   640,  1154,   641,  1155,
1705 <    1284,   642,  1285,   643,   520,   521,   644,   162,   645,   270,
1706 <     271,   647,   648,   649,   650,   369,  1117,   370,   651,   652,
1707 <     653,   656,   657,   661,   371,  1156,   668,   163,   164,   165,
1708 <     662,   166,   167,   168,   663,   372,   672,  1118,   671,   674,
1709 <     673,   675,   169,   678,   679,   681,  1119,  1286,   677,     2,
1710 <       3,   522,   682,     4,   686,   683,   472,   684,  1157,   373,
1711 <    1158,   687,   689,   690,  1287,     5,   691,   692,     6,     7,
1712 <     693,   694,   695,   523,   696,     8,   697,  1120,   327,  1159,
1713 <     700,   701,   702,   374,   707,   708,     9,   709,   710,    10,
1714 <      11,   711,   713,   714,   328,   329,   717,   718,   330,  1160,
1715 <     741,  1288,  1289,   375,  1161,   742,  1121,  1122,  1162,   719,
1716 <     720,   721,   376,   771,  1123,  1163,   723,    12,   724,   725,
1717 <    1164,   726,    13,  1206,   727,   930,   730,   931,   932,   731,
1718 <    1165,    14,   734,  1166,   735,  1167,   736,   738,   743,  1124,
1719 <     744,   777,   745,   779,   746,   749,   331,  1168,   762,   750,
1720 <     751,    15,    16,  1290,  1169,  1125,   768,  1291,   377,   769,
1721 <     753,   780,   754,   332,   333,   334,   335,   336,   755,    17,
1722 <    1177,   337,  1178,  1179,   770,   338,   756,  1225,   757,   759,
1723 <     235,   339,   378,   772,   763,  1207,    18,   773,   764,   776,
1724 <     765,   774,   340,   341,   778,   781,   782,   783,   784,    19,
1725 <      20,   785,   786,   790,   342,   787,   794,   788,   907,   789,
1726 <     236,   791,   792,  1126,   793,   800,  1208,   795,   237,   796,
1727 <     801,    21,   803,  1209,   802,   804,   343,   805,   811,   806,
1728 <     238,   239,  1210,   808,    22,   240,   241,   242,   812,  1226,
1729 <     813,   814,    23,   933,   934,   935,    24,   936,   937,   815,
1730 <     938,   939,   816,   940,  1211,   941,  1212,  1213,   942,   817,
1731 <     243,   943,   944,   827,   945,   828,   344,   829,   830,   946,
1732 <    1227,  1214,   831,   947,   948,   949,   832,  1228,  1215,   950,
1733 <     837,   833,   834,   835,   951,   836,  1229,   838,  1180,  1181,
1734 <    1182,   840,  1183,  1184,   841,  1185,  1186,   842,  1187,   843,
1735 <    1188,   845,   846,  1189,   848,   849,  1190,  1191,  1230,  1192,
1736 <    1231,  1232,   850,   852,  1193,   855,   860,   866,  1194,  1195,
1737 <    1196,   856,   859,   861,  1197,  1233,   908,   909,   910,  1198,
1738 <     911,   912,  1234,   913,   914,   862,   915,    79,   916,   863,
1739 <     864,   917,   865,   867,   918,   919,   868,   920,   869,   870,
1740 <     872,   871,   921,   873,   874,   875,   922,   923,   924,   876,
1741 <      80,    81,   925,   877,   878,   879,    82,   926,   880,   881,
1742 <     882,   883,   884,   885,   886,   887,   888,   889,   890,   891,
1743 <     892,   893,   894,   895,   896,   897,   898,   899,   975,   900,
1744 <     901,   902,   903,   904,   905,   906,   929,   976,   954,   955,
1745 <     956,    83,    84,   957,   977,   958,   978,    85,    86,   959,
1746 <     979,   980,   960,    87,    88,    89,   981,   961,   982,   984,
1747 <     962,    90,    91,   985,   987,   990,   963,   964,   965,   988,
1748 <     996,   966,   967,   968,   997,   969,   970,   999,   971,   972,
1749 <     973,   974,  1000,   983,  1002,  1003,    92,    93,  1004,   986,
1750 <     989,  1005,  1006,   993,   994,  1008,   995,   998,  1010,  1011,
1751 <    1012,  1001,  1007,  1009,  1013,  1040,  1014,  1015,  1016,  1017,
1752 <    1039,  1018,  1019,  1020,  1021,  1022,  1023,  1024,  1025,  1026,
1753 <    1027,  1028,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,
1754 <    1053,  1037,  1038,  1041,  1042,  1052,  1055,  1056,  1064,  1054,
1755 <    1065,  1066,  1071,  1072,  1073,  1074,  1075,  1076,  1251,  1077,
1756 <    1078,  1079,  1080,  1263,  1081,  1087,  1088,  1089,  1274,  1090,
1757 <    1275,  1276,  1091,  1092,  1093,   310,   748,   761,  1094,  1095,
1758 <    1100,  1223,  1278,  1101,  1102,  1103,  1297,  1104,  1105,  1277,
1759 <    1106,  1107,  1270,  1108,  1109,  1110,  1273,  1252,  1115,  1116,
1760 <     799,  1129,  1130,  1272,  1131,  1132,  1133,   740,  1134,  1135,
1761 <    1143,   729,   585,  1136,  1137,   767,  1146,   810,  1147,  1144,
1762 <    1294,  1148,  1219,  1149,  1172,  1173,  1174,  1175,  1176,  1201,
1763 <    1202,  1203,  1204,  1205,  1218,  1279,  1224,  1237,  1220,  1253,
1764 <     505,   404,   733,  1254,   655,  1255,  1256,  1266,  1271,  1267,
1765 <    1280,  1281,  1282,   463,  1246,   326,     0,  1245,     0,     0,
1766 <       0,     0,     0,     0,     0,     0,     0,     0,   554,     0,
1767 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1768 <       0,     0,     0,     0,     0,     0,   574,     0,     0,     0,
1646 >     856,   857,   608,   222,   579,   611,   612,    82,   614,   615,
1647 >     287,   494,   110,  1079,   295,  1150,  1108,   287,    51,   398,
1648 >      52,   212,   388,   699,   593,   295,   471,   700,    56,   398,
1649 >      58,   701,    83,    84,   388,   702,   223,   855,   110,    85,
1650 >    1123,   478,    49,    50,  1124,   224,   225,   226,   860,   861,
1651 >     227,   228,   478,   116,    62,   229,   230,   231,   117,   118,
1652 >      66,   119,   120,    67,   212,  1025,   121,    86,    87,    88,
1653 >     471,  1263,  1264,  1265,   524,   111,   122,   123,    69,    73,
1654 >     593,    89,    90,    91,   124,   389,  1050,   125,   126,   127,
1655 >    1080,    92,    93,   495,   128,   567,   479,   389,   524,    71,
1656 >     667,   111,   669,   670,   480,   107,   481,   479,    74,   580,
1657 >     108,   129,   130,   680,   525,   480,    75,   481,   685,   296,
1658 >     567,   501,   131,   213,   399,   132,   133,   694,   695,   594,
1659 >     296,  1050,   109,  1291,   399,   115,   134,   209,   525,   708,
1660 >     502,   710,   711,   135,   214,   136,  1026,   137,   400,   138,
1661 >    1027,   390,   139,   140,   243,   472,   526,   494,   400,   503,
1662 >     210,  1125,  1151,   390,   141,  1126,   213,   482,   211,   142,
1663 >     143,  1152,   144,   145,   146,   581,   219,   147,   482,   320,
1664 >     526,   244,   220,   245,    76,   594,   504,   214,  -142,   496,
1665 >     579,  1051,   452,   582,  1222,  -142,   321,   322,  1223,   472,
1666 >     568,   323,   148,   527,   221,   286,   294,   300,  1028,   583,
1667 >     246,   453,  1109,   149,   150,   151,   152,   153,   154,   155,
1668 >     247,   301,   302,   303,  1261,   568,   505,   527,  1262,   765,
1669 >     454,   304,   248,   249,   250,   288,  1051,   542,   807,   495,
1670 >     578,   318,   288,   506,   324,   251,   396,   595,   591,   252,
1671 >     596,   576,   473,   664,   307,   492,   658,   455,   815,   253,
1672 >     727,   501,   254,   255,   325,   326,   327,   328,   329,   156,
1673 >     157,   158,   330,   159,   160,   507,   508,   331,   308,   357,
1674 >     502,   358,   161,   359,   332,  1052,   734,   450,  1266,   489,
1675 >     309,   256,  1267,   333,   334,   580,   473,   310,   360,   503,
1676 >     452,  1270,   311,   595,   335,  1271,   596,   257,   761,  1053,
1677 >     258,   259,   260,   305,   456,   544,   842,   361,   569,   453,
1678 >    1241,   847,   457,   458,   850,   336,   504,   509,   854,   797,
1679 >    1052,    73,   312,  1272,   362,   496,   363,  1273,   454,  1313,
1680 >     313,  1314,   459,   569,   364,   314,   607,   510,  1094,  1095,
1681 >    1096,   511,   315,   316,  1053,   755,   365,   574,   261,  1283,
1682 >      74,   581,   602,  1284,   317,   455,   505,   603,    75,   395,
1683 >     337,   821,   822,   823,   824,   825,   826,   827,   405,   582,
1684 >     406,   262,   263,   506,   366,   407,  1285,   408,   565,  1315,
1685 >    1286,   742,   409,   604,   410,   583,  1069,  1070,  1071,  1072,
1686 >    1073,  1074,  1075,  1288,  1295,   367,  1316,  1289,  1296,   411,
1687 >    1324,   412,   413,   637,  1325,   507,   508,   414,   460,   415,
1688 >     416,   417,   456,   418,   368,   419,   723,  1225,   605,   420,
1689 >     457,   458,   421,   369,   422,   116,    76,   423,   424,   425,
1690 >     117,   118,   426,   119,   120,  1317,  1318,   427,   121,   428,
1691 >     459,   855,   429,   432,   433,   434,   435,   436,   122,   123,
1692 >     437,   438,   439,   440,   441,  1129,   124,   509,   442,   125,
1693 >     126,   127,   443,   444,   445,   446,   128,   447,   448,   449,
1694 >     490,   491,   533,   370,   534,   535,   536,   510,   537,   538,
1695 >    1130,   511,  1226,   129,   130,   539,   540,  1319,   541,   545,
1696 >     546,   547,  1320,   548,   131,   550,   371,   132,   133,   551,
1697 >     552,   553,   554,   654,   555,   606,   556,   557,   134,   558,
1698 >     559,   560,  1131,   561,  1227,   135,   460,   136,   562,   137,
1699 >     563,   138,  1228,   564,   139,   140,   607,   575,   590,   609,
1700 >     610,  1229,   613,  1162,   616,   617,   141,   618,   619,   620,
1701 >     639,   142,   143,   243,   144,   145,   146,  1132,  1133,   147,
1702 >    1163,  1164,  1248,  1134,   621,  1230,   622,  1231,  1232,   624,
1703 >    1165,   625,   626,   627,   660,   628,   629,   630,   631,   632,
1704 >     244,  1233,   245,   633,   148,   634,   635,  1135,  1234,   636,
1705 >     640,   641,   642,   661,   643,   149,   150,   151,   152,   153,
1706 >     154,   155,  1136,   644,  1292,   645,   647,  1166,  1167,   246,
1707 >    1168,   648,   649,   650,   651,   652,   357,   653,   358,   247,
1708 >     359,   656,   657,   662,   663,   666,   668,  1249,   671,   672,
1709 >     673,   248,   249,   250,   674,   360,   675,   676,   681,   677,
1710 >     678,   679,  1169,   682,   251,   683,   684,   686,   252,   687,
1711 >    1170,   156,   157,   158,   361,   159,   160,   688,   253,  1250,
1712 >     689,   254,   255,   690,   161,  1137,   691,  1251,   693,   692,
1713 >     696,   362,  1171,   363,  1172,  1173,  1252,   697,   698,   703,
1714 >     704,   364,   705,  1138,   706,   707,   709,   712,   715,   713,
1715 >     256,   714,  1174,   365,   729,   716,   718,     2,     3,   738,
1716 >    1253,     4,  1254,  1255,   719,   736,   257,   737,   739,   258,
1717 >     259,   260,   720,     5,   721,  1175,  1256,     6,   722,     7,
1718 >    1176,   366,   725,  1257,  1177,   726,     8,   730,  1178,   731,
1719 >     733,   740,   741,  1179,   744,   745,   746,  1180,     9,   748,
1720 >     749,   750,   367,    10,    11,   751,   753,   754,  1181,   766,
1721 >    1182,  1183,   757,  1184,   758,   768,   759,   261,   760,   772,
1722 >     763,   368,    12,   764,  1185,   222,    13,   320,   773,   767,
1723 >     369,  1186,   769,   770,   771,   774,   775,   776,   777,    14,
1724 >     262,   263,   780,   778,   321,   322,   779,   781,   929,   323,
1725 >     930,   931,   782,   783,   784,   785,   793,   786,   223,   787,
1726 >     788,    15,    16,   789,   790,   791,   792,   224,   225,   226,
1727 >     794,   795,   227,   228,   799,    82,    17,   229,   230,   231,
1728 >     370,   800,   801,   802,   809,   803,   840,   804,   805,   806,
1729 >     810,   811,   324,    18,  1193,   841,  1194,  1195,   812,   814,
1730 >      83,    84,   817,   371,   818,    19,    20,    85,   819,   843,
1731 >     820,   830,   325,   326,   327,   328,   329,   831,   832,   833,
1732 >     330,   844,   834,   835,   836,   331,   837,   838,   839,   845,
1733 >      21,   846,   332,   848,   907,    86,    87,    88,   851,   849,
1734 >     858,   333,   334,    22,   852,   853,   855,   866,    23,    89,
1735 >      90,    91,   335,    24,   869,   859,    25,   862,   863,    92,
1736 >      93,   864,   865,   867,   868,   870,   871,   872,   874,   932,
1737 >     933,   934,   873,   336,   935,   936,   875,   937,   938,   876,
1738 >     939,   877,   940,   878,   879,   941,   880,   942,   943,   881,
1739 >     974,   975,   882,   944,   883,   884,   885,   945,   886,   887,
1740 >     888,   946,   947,   948,   889,   890,   973,   891,   949,   892,
1741 >     893,   894,   895,   950,   896,  1196,  1197,  1198,   337,   897,
1742 >    1199,  1200,   898,  1201,  1202,   899,  1203,   900,  1204,   901,
1743 >     902,  1205,   903,  1206,  1207,   904,   905,   906,   953,  1208,
1744 >     954,   976,   955,  1209,   977,   956,   957,  1210,  1211,  1212,
1745 >     958,   978,   959,   979,  1213,   908,   909,   910,   987,  1214,
1746 >     911,   912,   960,   913,   914,   980,   915,   982,   916,   983,
1747 >     985,   917,   986,   918,   919,   961,   962,   963,   988,   920,
1748 >     994,   964,   995,   921,   965,   997,   966,   922,   923,   924,
1749 >     999,   967,   998,   968,   925,   969,   970,   971,   972,   926,
1750 >     981,   984,   991,   992,   993,   996,  1000,  1001,  1002,  1003,
1751 >    1004,  1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,
1752 >    1046,  1014,  1015,  1016,  1017,  1018,  1019,  1059,  1020,  1021,
1753 >    1022,  1023,  1024,  1031,  1032,  1033,  1034,  1035,  1036,  1037,
1754 >    1038,  1039,  1040,  1041,  1042,  1043,  1044,  1060,  1045,  1061,
1755 >    1048,  1049,  1047,  1062,  1063,  1064,  1065,  1067,  1068,  1066,
1756 >    1076,  1077,  1078,  1083,  1274,  1084,  1085,  1086,  1087,  1088,
1757 >    1089,  1290,  1090,  1301,  1091,  1303,  1302,  1092,  1304,  1093,
1758 >    1099,  1100,  1101,  1102,  1103,  1104,  1305,  1105,  1306,  1106,
1759 >    1107,  1287,  1112,  1113,  1114,  1115,  1116,  1117,   306,  1118,
1760 >    1119,  1120,  1121,  1122,  1127,  1128,  1141,  1142,  1143,  1144,
1761 >    1145,  1146,  1155,   743,   808,  1147,  1148,  1326,  1242,  1149,
1762 >     756,  1308,  1307,  1300,  1297,  1158,  1299,  1159,  1156,  1160,
1763 >    1161,  1189,  1190,  1277,  1191,  1192,  1217,  1218,  1219,  1220,
1764 >    1221,  1224,  1237,   735,   724,  1243,  1238,  1239,  1244,  1245,
1765 >    1246,  1247,  1260,   493,  1276,  1275,   638,   816,   762,  1323,
1766 >    1309,  1278,  1279,  1280,  1298,  1281,  1282,  1293,  1294,  1310,
1767 >    1311,  1312,   798,   728,   397,   451,   566,  1269,   665,   319,
1768 >    1268,   543,     0,     0,     0,     0,     0,     0,     0,     0,
1769 >       0,   655,     0,     0,     0,     0,     0,     0,     0,     0,
1770 >       0,     0,   577,     0,     0,     0,     0,     0,     0,     0,
1771         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1772 +       0,     0,     0,     0,     0,     0,     0,     0,   592,     0,
1773         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1759       0,     0,     0,     0,     0,     0,     0,   589,     0,     0,
1774         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1775         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1776         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1777         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1764     638,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1778         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1779         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1780         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1781         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1782 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1770 <     659,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1771 <       0,   665
1782 >       0,     0,     0,   659
1783   };
1784  
1785   static const yytype_int16 yycheck[] =
1786   {
1787 <     635,   636,   315,    55,   317,     1,   319,   320,     8,     1,
1788 <       1,     1,     1,     1,     1,     1,     1,     1,   114,     1,
1789 <     233,     1,     1,   233,     1,    51,   233,     1,     1,   818,
1790 <     819,   820,   821,   822,   823,   824,   213,     1,    27,     1,
1791 <     217,   233,     1,     1,   233,    34,   233,     1,     6,     7,
1792 <      37,     9,    10,    27,   233,   213,    14,   231,    37,   217,
1793 <      34,   235,   231,   231,    22,    23,   235,   235,    60,   231,
1794 <     233,    29,     1,   235,    32,    67,   233,    69,   130,    67,
1795 <      38,   231,   232,    67,     1,    43,    44,    67,    46,    47,
1796 <      48,   233,    50,     1,    67,     1,    83,    83,    83,   233,
1797 <     413,    59,   415,   416,    83,    63,    64,     1,     1,   422,
1798 <     101,   207,   233,   426,   104,   104,    74,   233,   431,    27,
1799 <     233,   434,   104,     1,   101,   233,    84,   182,   183,     1,
1800 <     104,   444,   445,    91,   125,    93,   128,    95,   233,    97,
1801 <     104,    99,   100,   456,   131,   104,   459,   460,   125,   131,
1802 <     233,   131,   131,    61,   112,   233,     1,     1,   131,   117,
1803 <     118,   119,    70,   121,   122,   123,   192,   231,   126,   231,
1804 <     233,   235,   131,   235,    19,   104,   202,   131,   231,   233,
1805 <      24,    25,   178,   233,    92,   231,    30,   104,    96,   235,
1806 <      35,   231,   178,   178,   152,   235,   104,     1,   104,   107,
1807 <     108,   234,   202,   234,   162,   163,   164,   165,   166,   167,
1808 <     104,   231,     1,    17,    18,   235,   178,    21,   234,   231,
1809 <     234,    65,    66,   235,    69,   234,   104,    71,    72,   225,
1810 <      19,   139,   104,    77,    78,    79,   194,   234,   131,   552,
1811 <     232,    85,    86,   232,   232,   232,    35,   232,   156,   129,
1812 <     232,   159,   160,   161,   129,   232,   214,   215,   216,   232,
1813 <     218,   219,   220,   225,   234,    69,   110,   111,   232,   234,
1814 <     232,   229,   226,     1,   232,     3,   231,     5,   186,   124,
1815 <      69,   198,    86,    87,    88,    89,    90,   132,   133,   234,
1816 <      94,    19,     1,   222,    98,   203,     1,   226,   231,   234,
1817 <     104,   231,   235,   232,   198,   222,   234,    35,   153,   622,
1818 <     234,   115,   116,   234,   627,   104,   222,   630,   234,   227,
1819 <     228,   634,    31,   127,   232,   234,   232,   234,   222,   234,
1820 <      39,   234,    60,   226,    62,   124,   234,   234,   232,   232,
1821 <     231,    69,    51,    52,   222,   149,   234,    56,    57,    58,
1822 <     222,   140,    80,   234,   226,    60,    11,    12,    13,  1082,
1823 <    1083,  1084,    67,   114,    69,   234,   234,   234,   157,   158,
1824 <     234,   234,    81,     1,   234,   234,   104,   234,   234,   234,
1825 <     234,   226,   234,   234,   234,   189,   234,   232,   232,   129,
1826 <     141,   142,   143,   144,   145,   146,   147,   234,   234,    27,
1827 <     128,   234,   234,   234,     1,   234,   234,   234,   234,     6,
1828 <       7,   234,     9,    10,   234,   204,   234,    14,   234,   234,
1829 <     148,     1,   234,   128,   234,    22,    23,   234,   232,   157,
1830 <     231,   234,    29,    61,   234,    32,   234,   226,     1,    19,
1831 <     234,    38,    70,   232,   234,   114,    43,    44,   234,    46,
1832 <      47,    48,   234,    50,   234,    35,    19,   234,   234,   114,
1833 <     234,   234,    59,   234,    92,   234,    63,    64,    96,   234,
1834 <     234,   234,    35,   234,   234,   203,   104,    74,   234,   107,
1835 <     108,   234,   234,   178,   234,   234,   234,    84,   234,    69,
1836 <     234,   234,   234,   234,    91,   234,    93,   234,    95,   227,
1837 <      97,   234,    99,   100,   232,   234,    69,   234,   234,   234,
1838 <     234,   139,   234,   234,   234,   112,   114,   213,     4,   114,
1839 <     117,   118,   119,   232,   121,   122,   123,   114,   156,   126,
1840 <     114,   159,   160,   161,    20,   114,   114,   114,   213,   213,
1841 <     231,   104,    28,   231,   124,   234,     1,   234,     3,   234,
1842 <       5,   234,   132,   133,   234,   152,    42,   234,   186,    42,
1843 <     129,   124,   234,   234,    19,   162,   163,   164,   165,   166,
1844 <     167,   234,   234,   153,   234,   203,   234,   140,   234,   213,
1845 <      35,   234,   234,   234,   231,  1220,   234,    73,   234,    75,
1846 <      73,   234,    75,   234,   157,   158,   234,   194,   234,   227,
1847 <     228,   234,   234,   234,   234,    60,    15,    62,   234,   234,
1848 <     234,   234,   234,   231,    69,   101,   114,   214,   215,   216,
1849 <     234,   218,   219,   220,   234,    80,   114,    36,   213,   114,
1850 <     213,   213,   229,   114,   114,   114,    45,   120,   213,     0,
1851 <       1,   204,   213,     4,   114,   213,   226,   213,   134,   104,
1852 <     136,   114,   114,   114,   137,    16,   114,   114,    19,    20,
1853 <     213,   234,   213,   226,   234,    26,   213,    76,     1,   155,
1854 <     213,   213,   213,   128,   213,   213,    37,   213,   129,    40,
1855 <      41,   114,   213,   213,    17,    18,   213,   231,    21,   175,
1856 <     129,   174,   175,   148,   180,   129,   105,   106,   184,   231,
1857 <     234,   234,   157,   129,   113,   191,   234,    68,   234,   234,
1858 <     196,   234,    73,    75,   234,    51,   234,    53,    54,   234,
1859 <     206,    82,   231,   209,   234,   211,   234,   234,   231,   138,
1860 <     231,   129,   234,   129,   234,   231,    69,   223,   231,   234,
1861 <     234,   102,   103,   226,   230,   154,   213,   230,   203,   213,
1862 <     234,   114,   234,    86,    87,    88,    89,    90,   234,   120,
1863 <      51,    94,    53,    54,   213,    98,   234,    75,   234,   234,
1864 <       1,   104,   227,   213,   234,   137,   137,   213,   234,   231,
1865 <     234,   213,   115,   116,   213,   114,   129,   129,   129,   150,
1866 <     151,   129,   129,   114,   127,   129,   231,   129,    51,   129,
1867 <      31,   129,   129,   212,   129,   213,   168,   231,    39,   234,
1868 <     231,   172,   129,   175,   233,   231,   149,   231,   231,   234,
1869 <      51,    52,   184,   234,   185,    56,    57,    58,   231,   137,
1870 <     231,   231,   193,   169,   170,   171,   197,   173,   174,   231,
1871 <     176,   177,   231,   179,   206,   181,   208,   209,   184,   231,
1872 <      81,   187,   188,   231,   190,   231,   189,   231,   231,   195,
1873 <     168,   223,   231,   199,   200,   201,   231,   175,   230,   205,
1874 <     114,   231,   231,   231,   210,   231,   184,   114,   169,   170,
1875 <     171,   234,   173,   174,   114,   176,   177,   114,   179,   114,
1876 <     181,   114,   114,   184,   129,   114,   187,   188,   206,   190,
1877 <     208,   209,   114,   114,   195,   231,   213,   114,   199,   200,
1878 <     201,   129,   129,   129,   205,   223,   169,   170,   171,   210,
1879 <     173,   174,   230,   176,   177,   129,   179,     1,   181,   234,
1880 <     129,   184,   129,   129,   187,   188,   129,   190,   129,   129,
1881 <     129,   231,   195,   129,   231,   231,   199,   200,   201,   129,
1882 <      24,    25,   205,   129,   231,   231,    30,   210,   231,   231,
1883 <     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1884 <     231,   231,   231,   231,   231,   231,   231,   231,   129,   231,
1885 <     231,   231,   231,   231,   231,   231,   231,   213,   231,   231,
1886 <     231,    65,    66,   231,   234,   231,   129,    71,    72,   231,
1887 <     114,   129,   231,    77,    78,    79,   129,   231,   129,   129,
1888 <     231,    85,    86,   129,   129,   114,   231,   231,   231,   129,
1889 <     129,   231,   231,   231,   129,   231,   231,   129,   231,   231,
1890 <     231,   231,   213,   231,   129,   129,   110,   111,   129,   231,
1891 <     234,   129,   213,   231,   231,   129,   231,   231,   129,   129,
1892 <     129,   234,   234,   231,   231,   234,   231,   231,   231,   231,
1893 <     129,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1894 <     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1895 <     129,   231,   231,   231,   231,   231,   129,   231,   231,   234,
1896 <     231,   231,   231,   231,   231,   231,   231,   231,   114,   231,
1897 <     231,   231,   231,   129,   231,   231,   231,   231,   135,   231,
1898 <     135,   135,   231,   231,   231,    74,   509,   524,   231,   231,
1899 <     231,  1047,  1260,   231,   231,   231,  1296,   231,   231,  1258,
1900 <     231,   231,  1239,   231,   231,   231,  1250,  1144,   231,   231,
1901 <     578,   231,   231,  1248,   231,   231,   231,   496,   231,   231,
1902 <     221,   473,   294,   231,   231,   540,   231,   594,   231,   235,
1903 <    1269,   231,   234,   231,   231,   231,   231,   231,   231,   231,
1904 <     231,   231,   231,   231,   231,  1262,   231,   231,   234,   231,
1905 <     228,   115,   486,   236,   379,   236,   236,   234,  1244,   231,
1906 <     231,   231,   231,   170,  1114,    94,    -1,  1112,    -1,    -1,
1907 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   244,    -1,
1908 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1909 <      -1,    -1,    -1,    -1,    -1,    -1,   272,    -1,    -1,    -1,
1910 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1787 >     635,   636,   308,     1,     1,   311,   312,     1,   314,   315,
1788 >       1,     1,     1,    52,     1,    48,     8,     1,   236,     1,
1789 >     236,     1,     1,   216,     1,     1,     1,   220,   236,     1,
1790 >     236,   216,    26,    27,     1,   220,    34,   114,     1,    33,
1791 >     234,     1,   234,   235,   238,    43,    44,    45,   183,   184,
1792 >      48,    49,     1,     1,   236,    53,    54,    55,     6,     7,
1793 >     236,     9,    10,   236,     1,    17,    14,    61,    62,    63,
1794 >       1,  1094,  1095,  1096,     1,    64,    24,    25,   236,     1,
1795 >       1,    75,    76,    77,    32,    64,     1,    35,    36,    37,
1796 >     129,    85,    86,    83,    42,     1,    56,    64,     1,   236,
1797 >     406,    64,   408,   409,    64,   236,    66,    56,    30,   106,
1798 >     236,    59,    60,   419,    41,    64,    38,    66,   424,   106,
1799 >       1,     1,    70,   103,   106,    73,    74,   433,   434,   106,
1800 >     106,     1,   236,   210,   106,   236,    84,   236,    41,   445,
1801 >      20,   447,   448,    91,   124,    93,    98,    95,   130,    97,
1802 >     102,   130,   100,   101,     1,   130,    83,     1,   130,    39,
1803 >     236,   234,   195,   130,   112,   238,   103,   127,   236,   117,
1804 >     118,   204,   120,   121,   122,   172,   236,   125,   127,     1,
1805 >      83,    28,   236,    30,   106,   106,    66,   124,   179,   179,
1806 >       1,   106,     1,   190,   234,   179,    18,    19,   238,   130,
1807 >     106,    23,   150,   130,   236,   236,   236,   236,   160,   206,
1808 >      57,    20,   204,   161,   162,   163,   164,   165,   166,   167,
1809 >      67,   234,   237,   237,   234,   106,   106,   130,   238,   535,
1810 >      39,   237,    79,    80,    81,   226,   106,   235,   235,    83,
1811 >     179,   235,   226,   123,    66,    92,   235,   224,   235,    96,
1812 >     227,   235,   227,   235,   237,   235,   235,    66,   235,   106,
1813 >     235,     1,   109,   110,    86,    87,    88,    89,    90,   217,
1814 >     218,   219,    94,   221,   222,   155,   156,    99,   237,     1,
1815 >      20,     3,   230,     5,   106,   200,   235,   235,   234,   234,
1816 >     237,   138,   238,   115,   116,   106,   227,   237,    20,    39,
1817 >       1,   234,   237,   224,   126,   238,   227,   154,   235,   224,
1818 >     157,   158,   159,   235,   123,   234,   622,    39,   224,    20,
1819 >     235,   627,   131,   132,   630,   147,    66,   207,   634,   235,
1820 >     200,     1,   237,   234,    56,   179,    58,   238,    39,    69,
1821 >     237,    71,   151,   224,    66,   237,   114,   227,    11,    12,
1822 >      13,   231,   237,   237,   224,   235,    78,   234,   205,   234,
1823 >      30,   172,   128,   238,   237,    66,   106,   128,    38,   237,
1824 >     192,   139,   140,   141,   142,   143,   144,   145,   237,   190,
1825 >     237,   228,   229,   123,   106,   237,   234,   237,   235,   119,
1826 >     238,   235,   237,   128,   237,   206,   821,   822,   823,   824,
1827 >     825,   826,   827,   234,   234,   127,   136,   238,   238,   237,
1828 >     234,   237,   237,   235,   238,   155,   156,   237,   227,   237,
1829 >     237,   237,   123,   237,   146,   237,   235,    71,   234,   237,
1830 >     131,   132,   237,   155,   237,     1,   106,   237,   237,   237,
1831 >       6,     7,   237,     9,    10,   175,   176,   237,    14,   237,
1832 >     151,   114,   237,   237,   237,   237,   237,   237,    24,    25,
1833 >     237,   237,   237,   237,   237,    15,    32,   207,   237,    35,
1834 >      36,    37,   237,   237,   237,   237,    42,   237,   237,   237,
1835 >     237,   237,   237,   205,   237,   237,   237,   227,   237,   237,
1836 >      40,   231,   136,    59,    60,   237,   237,   227,   237,   237,
1837 >     237,   237,   232,   237,    70,   237,   228,    73,    74,   237,
1838 >     237,   237,   237,   235,   237,   114,   237,   237,    84,   237,
1839 >     237,   237,    72,   237,   168,    91,   227,    93,   237,    95,
1840 >     237,    97,   176,   237,   100,   101,   114,   237,   237,   216,
1841 >     114,   185,   114,     4,   114,   114,   112,   234,   234,   237,
1842 >     234,   117,   118,     1,   120,   121,   122,   107,   108,   125,
1843 >      21,    22,    71,   113,   237,   209,   237,   211,   212,   237,
1844 >      31,   237,   237,   237,   128,   237,   237,   237,   237,   237,
1845 >      28,   225,    30,   237,   150,   237,   237,   137,   232,   237,
1846 >     237,   237,   237,   234,   237,   161,   162,   163,   164,   165,
1847 >     166,   167,   152,   237,  1239,   237,   237,    68,    69,    57,
1848 >      71,   237,   237,   237,   237,   237,     1,   237,     3,    67,
1849 >       5,   237,   237,   237,   237,   216,   114,   136,   216,   114,
1850 >     216,    79,    80,    81,   114,    20,   114,   114,   114,   216,
1851 >     216,   216,   103,   114,    92,   114,   114,   114,    96,   114,
1852 >     111,   217,   218,   219,    39,   221,   222,   114,   106,   168,
1853 >     114,   109,   110,   216,   230,   215,   237,   176,   216,   237,
1854 >     216,    56,   133,    58,   135,   136,   185,   216,   216,   216,
1855 >     216,    66,   216,   233,   216,   114,   216,   216,   237,   234,
1856 >     138,   234,   153,    78,   234,   237,   237,     0,     1,   234,
1857 >     209,     4,   211,   212,   237,   128,   154,   128,   234,   157,
1858 >     158,   159,   237,    16,   237,   176,   225,    20,   237,    22,
1859 >     181,   106,   237,   232,   185,   237,    29,   237,   189,   237,
1860 >     237,   237,   237,   194,   234,   237,   237,   198,    41,   237,
1861 >     237,   237,   127,    46,    47,   237,   237,   237,   209,   128,
1862 >     211,   212,   234,   214,   237,   128,   237,   205,   237,   234,
1863 >     216,   146,    65,   216,   225,     1,    69,     1,   114,   216,
1864 >     155,   232,   216,   216,   216,   128,   216,   128,   237,    82,
1865 >     228,   229,   114,   128,    18,    19,   128,   114,    48,    23,
1866 >      50,    51,   128,   128,   128,   128,   234,   128,    34,   128,
1867 >     128,   104,   105,   128,   128,   128,   128,    43,    44,    45,
1868 >     234,   237,    48,    49,   216,     1,   119,    53,    54,    55,
1869 >     205,   234,   236,   234,   128,   237,   114,   237,   237,   237,
1870 >     234,   234,    66,   136,    48,   114,    50,    51,   237,   237,
1871 >      26,    27,   234,   228,   234,   148,   149,    33,   234,   237,
1872 >     234,   234,    86,    87,    88,    89,    90,   234,   234,   234,
1873 >      94,   114,   234,   234,   234,    99,   234,   234,   234,   114,
1874 >     173,   114,   106,   114,    48,    61,    62,    63,   128,   114,
1875 >     234,   115,   116,   186,   114,   114,   114,   237,   191,    75,
1876 >      76,    77,   126,   196,   114,   128,   199,   128,   216,    85,
1877 >      86,   128,   128,   128,   128,   128,   128,   128,   234,   169,
1878 >     170,   171,   128,   147,   174,   175,   128,   177,   178,   128,
1879 >     180,   234,   182,   234,   128,   185,   128,   187,   188,   234,
1880 >     216,   237,   234,   193,   234,   234,   234,   197,   234,   234,
1881 >     234,   201,   202,   203,   234,   234,   128,   234,   208,   234,
1882 >     234,   234,   234,   213,   234,   169,   170,   171,   192,   234,
1883 >     174,   175,   234,   177,   178,   234,   180,   234,   182,   234,
1884 >     234,   185,   234,   187,   188,   234,   234,   234,   234,   193,
1885 >     234,   128,   234,   197,   114,   234,   234,   201,   202,   203,
1886 >     234,   128,   234,   128,   208,   169,   170,   171,   237,   213,
1887 >     174,   175,   234,   177,   178,   128,   180,   128,   182,   128,
1888 >     128,   185,   128,   187,   188,   234,   234,   234,   114,   193,
1889 >     128,   234,   128,   197,   234,   128,   234,   201,   202,   203,
1890 >     237,   234,   216,   234,   208,   234,   234,   234,   234,   213,
1891 >     234,   234,   234,   234,   234,   234,   128,   128,   128,   216,
1892 >     237,   128,   128,   234,   128,   128,   128,   234,   234,   234,
1893 >     128,   234,   234,   234,   234,   234,   234,   128,   234,   234,
1894 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1895 >     234,   234,   234,   234,   234,   234,   234,   128,   234,   128,
1896 >     234,   234,   237,   128,   234,   234,   128,   128,   234,   237,
1897 >     234,   234,   234,   234,   114,   234,   234,   234,   234,   234,
1898 >     234,   128,   234,   134,   234,   134,   136,   234,   136,   234,
1899 >     234,   234,   234,   234,   234,   234,   134,   234,   134,   234,
1900 >     234,  1223,   234,   234,   234,   234,   234,   234,    77,   234,
1901 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1902 >     234,   234,   223,   497,   584,   234,   234,  1325,  1054,   234,
1903 >     512,  1286,  1284,  1273,  1262,   234,  1271,   234,   238,   234,
1904 >     234,   234,   234,   239,   234,   234,   234,   234,   234,   234,
1905 >     234,   234,   234,   484,   461,   234,   237,   237,   234,   234,
1906 >     234,   234,   234,   215,   234,  1156,   338,   597,   528,  1296,
1907 >    1289,   239,   239,   239,  1267,   239,   239,   237,   234,   234,
1908 >     234,   234,   570,   474,   112,   162,   264,  1126,   401,    94,
1909 >    1124,   232,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1910 >      -1,   372,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1911 >      -1,    -1,   289,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1912        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1913 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,
1913 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   297,    -1,
1914        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1915        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1916        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1917        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1906     345,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1918        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1919        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1920        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1921        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1922        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1923 <     398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1913 <      -1,   408
1923 >      -1,    -1,    -1,   391
1924   };
1925  
1926    /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1927       symbol of state STATE-NUM.  */
1928   static const yytype_uint16 yystos[] =
1929   {
1930 <       0,   238,     0,     1,     4,    16,    19,    20,    26,    37,
1931 <      40,    41,    68,    73,    82,   102,   103,   120,   137,   150,
1932 <     151,   172,   185,   193,   197,   239,   244,   249,   269,   275,
1933 <     281,   295,   315,   339,   353,   368,   375,   379,   389,   398,
1934 <     419,   425,   431,   435,   441,   500,   517,   231,   232,   233,
1935 <     233,   316,   399,   426,   233,   436,   233,   354,   420,   340,
1936 <     233,   276,   296,   369,   233,   233,   390,   233,   233,   380,
1937 <       1,    27,    34,   104,   270,   271,   272,   273,   274,     1,
1938 <      24,    25,    30,    65,    66,    71,    72,    77,    78,    79,
1939 <      85,    86,   110,   111,   501,   502,   503,   504,   505,   506,
1940 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
1941 <     233,   233,   233,     1,    67,   432,   433,   434,   233,     1,
1942 <       6,     7,     9,    10,    14,    22,    23,    29,    32,    38,
1943 <      43,    44,    46,    47,    48,    50,    59,    63,    64,    74,
1944 <      84,    91,    93,    95,    97,    99,   100,   112,   117,   118,
1945 <     119,   121,   122,   123,   126,   152,   162,   163,   164,   165,
1946 <     166,   167,   194,   214,   215,   216,   218,   219,   220,   229,
1947 <     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
1948 <     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
1949 <     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
1950 <     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
1951 <     482,   483,   484,   485,   486,   487,   488,   489,   493,   497,
1952 <     498,   499,   233,   233,   233,     1,   101,   125,   245,   246,
1953 <     247,   248,   233,   233,   233,     1,    31,    39,    51,    52,
1954 <      56,    57,    58,    81,   518,   519,   520,   521,   522,   523,
1955 <     524,   525,   526,   527,     1,    27,    61,    70,    92,    96,
1956 <     104,   107,   108,   139,   156,   159,   160,   161,   186,   203,
1957 <     227,   228,   250,   251,   252,   253,   254,   255,   256,   257,
1958 <     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1959 <     268,   233,     1,   225,   282,   283,   284,   285,   286,     1,
1960 <     104,   376,   377,   378,   233,   231,   234,   234,   234,   232,
1961 <     271,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1962 <     234,   234,   234,   234,   234,   232,   502,     1,    17,    18,
1963 <      21,    69,    86,    87,    88,    89,    90,    94,    98,   104,
1964 <     115,   116,   127,   149,   189,   317,   318,   319,   320,   321,
1965 <     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
1966 <     332,   333,   334,   335,     1,     3,     5,    19,    35,    60,
1967 <      62,    69,    80,   104,   128,   148,   157,   203,   227,   400,
1968 <     401,   402,   403,   404,   405,   406,   407,   408,   409,   410,
1969 <     414,   415,   416,   417,   418,     1,    67,   131,   427,   428,
1970 <     429,   430,   234,   232,   433,     1,   104,   131,   437,   438,
1971 <     439,   440,   234,   234,   234,   234,   234,   234,   234,   234,
1972 <     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1930 >       0,   241,     0,     1,     4,    16,    20,    22,    29,    41,
1931 >      46,    47,    65,    69,    82,   104,   105,   119,   136,   148,
1932 >     149,   173,   186,   191,   196,   199,   242,   247,   252,   278,
1933 >     284,   290,   298,   312,   332,   356,   370,   385,   392,   396,
1934 >     406,   415,   436,   442,   448,   452,   458,   512,   526,   234,
1935 >     235,   236,   236,   333,   416,   443,   236,   453,   236,   371,
1936 >     437,   357,   236,   285,   313,   386,   236,   236,   407,   236,
1937 >     291,   236,   397,     1,    30,    38,   106,   279,   280,   281,
1938 >     282,   283,     1,    26,    27,    33,    61,    62,    63,    75,
1939 >      76,    77,    85,    86,   513,   514,   515,   516,   517,   518,
1940 >     519,   520,   521,   522,   523,   524,   525,   236,   236,   236,
1941 >       1,    64,   449,   450,   451,   236,     1,     6,     7,     9,
1942 >      10,    14,    24,    25,    32,    35,    36,    37,    42,    59,
1943 >      60,    70,    73,    74,    84,    91,    93,    95,    97,   100,
1944 >     101,   112,   117,   118,   120,   121,   122,   125,   150,   161,
1945 >     162,   163,   164,   165,   166,   167,   217,   218,   219,   221,
1946 >     222,   230,   459,   460,   461,   462,   463,   464,   465,   466,
1947 >     467,   468,   469,   470,   471,   472,   473,   474,   475,   476,
1948 >     477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1949 >     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
1950 >     497,   498,   499,   500,   501,   505,   509,   510,   511,   236,
1951 >     236,   236,     1,   103,   124,   248,   249,   250,   251,   236,
1952 >     236,   236,     1,    34,    43,    44,    45,    48,    49,    53,
1953 >      54,    55,   527,   528,   529,   530,   531,   532,   533,   534,
1954 >     535,   536,   537,     1,    28,    30,    57,    67,    79,    80,
1955 >      81,    92,    96,   106,   109,   110,   138,   154,   157,   158,
1956 >     159,   205,   228,   229,   253,   254,   255,   256,   257,   258,
1957 >     259,   260,   261,   265,   266,   267,   268,   269,   270,   271,
1958 >     272,   273,   274,   275,   276,   277,   236,     1,   226,   299,
1959 >     300,   301,   302,   303,   236,     1,   106,   393,   394,   395,
1960 >     236,   234,   237,   237,   237,   235,   280,   237,   237,   237,
1961 >     237,   237,   237,   237,   237,   237,   237,   237,   235,   514,
1962 >       1,    18,    19,    23,    66,    86,    87,    88,    89,    90,
1963 >      94,    99,   106,   115,   116,   126,   147,   192,   334,   335,
1964 >     336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
1965 >     346,   347,   348,   349,   350,   351,   352,     1,     3,     5,
1966 >      20,    39,    56,    58,    66,    78,   106,   127,   146,   155,
1967 >     205,   228,   417,   418,   419,   420,   421,   422,   423,   424,
1968 >     425,   426,   427,   431,   432,   433,   434,   435,     1,    64,
1969 >     130,   444,   445,   446,   447,   237,   235,   450,     1,   106,
1970 >     130,   454,   455,   456,   457,   237,   237,   237,   237,   237,
1971 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
1972 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
1973 >     506,   502,   237,   237,   237,   237,   237,   237,   237,   237,
1974 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
1975 >     235,   460,     1,    20,    39,    66,   123,   131,   132,   151,
1976 >     227,   372,   373,   374,   375,   376,   377,   378,   382,   383,
1977 >     384,     1,   130,   227,   438,   439,   440,   441,     1,    56,
1978 >      64,    66,   127,   358,   362,   363,   364,   368,   369,   234,
1979 >     237,   237,   235,   249,     1,    83,   179,   286,   287,   288,
1980 >     289,     1,    20,    39,    66,   106,   123,   155,   156,   207,
1981 >     227,   231,   314,   315,   316,   317,   318,   319,   320,   321,
1982 >     322,   323,   324,   328,     1,    41,    83,   130,   387,   388,
1983 >     389,   390,   391,   237,   237,   237,   237,   237,   237,   237,
1984 >     237,   237,   235,   528,   234,   237,   237,   237,   237,   262,
1985 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
1986 >     237,   237,   237,   237,   237,   235,   254,     1,   106,   224,
1987 >     408,   409,   410,   411,   234,   237,   235,   300,   179,     1,
1988 >     106,   172,   190,   206,   292,   293,   294,   295,   296,   297,
1989 >     237,   235,   394,     1,   106,   224,   227,   398,   399,   400,
1990 >     401,   402,   128,   128,   128,   234,   114,   114,   244,   216,
1991 >     114,   244,   244,   114,   244,   244,   114,   114,   234,   234,
1992 >     237,   237,   237,   353,   237,   237,   237,   237,   237,   237,
1993 >     237,   237,   237,   237,   237,   237,   237,   235,   335,   234,
1994 >     237,   237,   237,   237,   237,   237,   428,   237,   237,   237,
1995 >     237,   237,   237,   237,   235,   418,   237,   237,   235,   445,
1996 >     128,   234,   237,   237,   235,   455,   216,   244,   114,   244,
1997 >     244,   216,   114,   216,   114,   114,   114,   216,   216,   216,
1998 >     244,   114,   114,   114,   114,   244,   114,   114,   114,   114,
1999 >     216,   237,   237,   216,   244,   244,   216,   216,   216,   216,
2000 >     220,   216,   220,   216,   216,   216,   216,   114,   244,   216,
2001 >     244,   244,   216,   234,   234,   237,   237,   379,   237,   237,
2002 >     237,   237,   237,   235,   373,   237,   237,   235,   439,   234,
2003 >     237,   237,   359,   237,   235,   363,   128,   128,   234,   234,
2004 >     237,   237,   235,   287,   234,   237,   237,   329,   237,   237,
2005 >     237,   237,   325,   237,   237,   235,   315,   234,   237,   237,
2006 >     237,   235,   388,   216,   216,   244,   128,   216,   128,   216,
2007 >     216,   216,   234,   114,   128,   216,   128,   237,   128,   128,
2008 >     114,   114,   128,   128,   128,   128,   128,   128,   128,   128,
2009 >     128,   128,   128,   234,   234,   237,   412,   235,   409,   216,
2010 >     234,   236,   234,   237,   237,   237,   237,   235,   293,   128,
2011 >     234,   234,   237,   403,   237,   235,   399,   234,   234,   234,
2012 >     234,   139,   140,   141,   142,   143,   144,   145,   243,   244,
2013       234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2014 <     494,   234,   490,   234,   234,   234,   234,   234,   234,   234,
2014 >     114,   114,   244,   237,   114,   114,   114,   244,   114,   114,
2015 >     244,   128,   114,   114,   244,   114,   246,   246,   234,   128,
2016 >     183,   184,   128,   216,   128,   128,   237,   128,   128,   114,
2017 >     128,   128,   128,   128,   234,   128,   128,   234,   234,   128,
2018 >     128,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2019       234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2020 <     234,   234,   232,   443,     1,    19,    35,    69,   124,   132,
2021 <     133,   153,   226,   355,   356,   357,   358,   359,   360,   361,
2022 <     365,   366,   367,     1,   131,   226,   421,   422,   423,   424,
2023 <       1,    60,    67,    69,   128,   341,   345,   346,   347,   351,
2024 <     352,   231,   234,   234,   232,   246,     1,    83,   178,   277,
2025 <     278,   279,   280,     1,    19,    35,    69,   104,   124,   140,
1972 <     157,   158,   204,   226,   297,   298,   299,   300,   301,   302,
1973 <     303,   304,   305,   306,   307,   311,     1,    37,    83,   131,
1974 <     370,   371,   372,   373,   374,   234,   234,   234,   234,   234,
1975 <     234,   234,   234,   232,   519,   231,   234,   234,   234,   234,
2020 >     234,   234,   234,   234,   234,   234,   234,    48,   169,   170,
2021 >     171,   174,   175,   177,   178,   180,   182,   185,   187,   188,
2022 >     193,   197,   201,   202,   203,   208,   213,   507,   508,    48,
2023 >      50,    51,   169,   170,   171,   174,   175,   177,   178,   180,
2024 >     182,   185,   187,   188,   193,   197,   201,   202,   203,   208,
2025 >     213,   503,   504,   234,   234,   234,   234,   234,   234,   234,
2026       234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2027 <     234,   234,   234,   232,   251,     1,   104,   222,   391,   392,
2028 <     393,   394,   231,   234,   232,   283,   178,   234,   232,   377,
2029 <       1,   104,   222,   226,   381,   382,   383,   384,   385,   129,
2030 <     129,   129,   231,   114,   114,   213,   114,   114,   241,   114,
2031 <     241,   114,   241,   241,   114,   114,   213,   213,   231,   231,
2032 <     234,   234,   234,   336,   234,   234,   234,   234,   234,   234,
2033 <     234,   234,   234,   234,   234,   234,   234,   232,   318,   231,
2034 <     234,   234,   234,   234,   234,   234,   411,   234,   234,   234,
2035 <     234,   234,   234,   234,   232,   401,   234,   234,   232,   428,
2036 <     129,   231,   234,   234,   232,   438,   213,   241,   114,   241,
2037 <     241,   213,   114,   213,   114,   213,   241,   213,   114,   114,
2038 <     241,   114,   213,   213,   213,   241,   114,   114,   241,   114,
2039 <     114,   114,   114,   213,   234,   213,   234,   213,   241,   241,
2040 <     213,   213,   213,   213,   217,   213,   217,   213,   213,   213,
2041 <     129,   114,   241,   213,   213,   241,   241,   213,   231,   231,
2042 <     234,   234,   362,   234,   234,   234,   234,   234,   232,   356,
2043 <     234,   234,   232,   422,   231,   234,   234,   342,   234,   232,
2044 <     346,   129,   129,   231,   231,   234,   234,   232,   278,   231,
2045 <     234,   234,   312,   234,   234,   234,   234,   234,   308,   234,
2046 <     232,   298,   231,   234,   234,   234,   232,   371,   213,   213,
2047 <     213,   129,   213,   213,   213,   241,   231,   129,   213,   129,
2048 <     114,   114,   129,   129,   129,   129,   129,   129,   129,   129,
2049 <     114,   129,   129,   129,   231,   231,   234,   395,   232,   392,
2050 <     213,   231,   233,   129,   231,   231,   234,   386,   234,   232,
2051 <     382,   231,   231,   231,   231,   231,   231,   231,   141,   142,
2052 <     143,   144,   145,   146,   147,   240,   241,   231,   231,   231,
2053 <     231,   231,   231,   231,   231,   231,   231,   114,   114,   241,
2054 <     234,   114,   114,   114,   241,   114,   114,   241,   129,   114,
2055 <     114,   241,   114,   243,   243,   231,   129,   182,   183,   129,
2056 <     213,   129,   129,   234,   129,   129,   114,   129,   129,   129,
2057 <     129,   231,   129,   129,   231,   231,   129,   129,   231,   231,
2058 <     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
2059 <     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
2060 <     231,   231,   231,   231,   231,   231,   231,    51,   169,   170,
2061 <     171,   173,   174,   176,   177,   179,   181,   184,   187,   188,
2062 <     190,   195,   199,   200,   201,   205,   210,   495,   496,   231,
2013 <      51,    53,    54,   169,   170,   171,   173,   174,   176,   177,
2014 <     179,   181,   184,   187,   188,   190,   195,   199,   200,   201,
2015 <     205,   210,   491,   492,   231,   231,   231,   231,   231,   231,
2016 <     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
2017 <     231,   231,   231,   231,   231,   129,   213,   234,   129,   114,
2018 <     129,   129,   129,   231,   129,   129,   231,   129,   129,   234,
2019 <     114,   349,   350,   231,   231,   231,   129,   129,   231,   129,
2020 <     213,   234,   129,   129,   129,   129,   213,   234,   129,   231,
2021 <     129,   129,   129,   231,   231,   231,   231,   231,   231,   231,
2022 <     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
2023 <     231,   231,   231,   231,   231,   231,   231,   231,   231,   129,
2024 <     234,   231,   231,     1,   104,   198,   222,   287,   288,   289,
2025 <     290,   291,   231,   129,   234,   129,   231,   240,   240,   240,
2026 <     240,   240,   240,   240,   231,   231,   231,    55,   130,   337,
2027 <     338,   231,   231,   231,   231,   231,   231,   231,   231,   231,
2028 <     231,   231,    11,    12,    13,   242,   243,   231,   231,   231,
2029 <     231,   231,   231,   231,   231,   231,     8,   202,   412,   413,
2030 <     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
2031 <     231,   231,   235,   231,   235,   231,   231,    15,    36,    45,
2032 <      76,   105,   106,   113,   138,   154,   212,   363,   364,   231,
2033 <     231,   231,   231,   231,   231,   231,   231,   231,    51,   192,
2034 <     202,   343,   344,   221,   235,   348,   231,   231,   231,   231,
2035 <       4,    20,    28,    42,    73,    75,   101,   134,   136,   155,
2036 <     175,   180,   184,   191,   196,   206,   209,   211,   223,   230,
2037 <     313,   314,   231,   231,   231,   231,   231,    51,    53,    54,
2038 <     169,   170,   171,   173,   174,   176,   177,   179,   181,   184,
2039 <     187,   188,   190,   195,   199,   200,   201,   205,   210,   309,
2040 <     310,   231,   231,   231,   231,   231,    75,   137,   168,   175,
2041 <     184,   206,   208,   209,   223,   230,   396,   397,   231,   234,
2042 <     234,   292,   232,   288,   231,    75,   137,   168,   175,   184,
2043 <     206,   208,   209,   223,   230,   387,   388,   231,   231,   235,
2044 <     242,   242,   242,   231,   235,   496,   492,   231,   235,   231,
2045 <     235,   114,   350,   231,   236,   236,   236,   231,   235,   231,
2046 <     235,   231,   235,   129,   207,   243,   234,   231,   231,   235,
2047 <     338,   413,   364,   344,   135,   135,   135,   314,   310,   397,
2048 <     231,   231,   231,    42,    73,    75,   120,   137,   174,   175,
2049 <     226,   230,   293,   294,   388,   231,   235,   294
2027 >     234,   234,   234,   128,   216,   237,   128,   114,   128,   128,
2028 >     128,   234,   128,   128,   234,   128,   128,   237,   114,   366,
2029 >     367,   234,   234,   234,   128,   128,   234,   128,   216,   237,
2030 >     128,   128,   128,   216,   237,   128,   128,   234,   128,   128,
2031 >     128,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2032 >     234,   234,   234,   234,   234,    17,    98,   102,   160,   263,
2033 >     264,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2034 >     234,   234,   234,   234,   234,   234,   128,   237,   234,   234,
2035 >       1,   106,   200,   224,   304,   305,   306,   307,   308,   128,
2036 >     128,   128,   128,   234,   234,   128,   237,   128,   234,   243,
2037 >     243,   243,   243,   243,   243,   243,   234,   234,   234,    52,
2038 >     129,   354,   355,   234,   234,   234,   234,   234,   234,   234,
2039 >     234,   234,   234,   234,    11,    12,    13,   245,   246,   234,
2040 >     234,   234,   234,   234,   234,   234,   234,   234,     8,   204,
2041 >     429,   430,   234,   234,   234,   234,   234,   234,   234,   234,
2042 >     234,   234,   234,   234,   238,   234,   238,   234,   234,    15,
2043 >      40,    72,   107,   108,   113,   137,   152,   215,   233,   380,
2044 >     381,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2045 >      48,   195,   204,   360,   361,   223,   238,   365,   234,   234,
2046 >     234,   234,     4,    21,    22,    31,    68,    69,    71,   103,
2047 >     111,   133,   135,   136,   153,   176,   181,   185,   189,   194,
2048 >     198,   209,   211,   212,   214,   225,   232,   330,   331,   234,
2049 >     234,   234,   234,    48,    50,    51,   169,   170,   171,   174,
2050 >     175,   177,   178,   180,   182,   185,   187,   188,   193,   197,
2051 >     201,   202,   203,   208,   213,   326,   327,   234,   234,   234,
2052 >     234,   234,   234,   238,   234,    71,   136,   168,   176,   185,
2053 >     209,   211,   212,   225,   232,   413,   414,   234,   237,   237,
2054 >     309,   235,   305,   234,   234,   234,   234,   234,    71,   136,
2055 >     168,   176,   185,   209,   211,   212,   225,   232,   404,   405,
2056 >     234,   234,   238,   245,   245,   245,   234,   238,   508,   504,
2057 >     234,   238,   234,   238,   114,   367,   234,   239,   239,   239,
2058 >     239,   239,   239,   234,   238,   234,   238,   264,   234,   238,
2059 >     128,   210,   246,   237,   234,   234,   238,   355,   430,   381,
2060 >     361,   134,   136,   134,   136,   134,   134,   331,   327,   414,
2061 >     234,   234,   234,    69,    71,   119,   136,   175,   176,   227,
2062 >     232,   310,   311,   405,   234,   238,   311
2063   };
2064  
2065    /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2066   static const yytype_uint16 yyr1[] =
2067   {
2068 <       0,   237,   238,   238,   239,   239,   239,   239,   239,   239,
2069 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2070 <     239,   239,   239,   239,   239,   239,   239,   240,   240,   241,
2071 <     241,   241,   241,   241,   241,   241,   241,   242,   242,   243,
2072 <     243,   243,   243,   244,   245,   245,   246,   246,   246,   247,
2073 <     248,   249,   250,   250,   251,   251,   251,   251,   251,   251,
2074 <     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
2075 <     251,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2076 <     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2077 <     270,   270,   271,   271,   271,   271,   272,   273,   274,   276,
2078 <     275,   277,   277,   278,   278,   278,   279,   280,   281,   282,
2079 <     282,   283,   283,   283,   284,   286,   285,   287,   287,   288,
2080 <     288,   288,   288,   289,   290,   290,   292,   291,   293,   293,
2081 <     294,   294,   294,   294,   294,   294,   294,   294,   294,   296,
2082 <     295,   297,   297,   298,   298,   298,   298,   298,   298,   298,
2083 <     298,   298,   298,   298,   299,   300,   301,   302,   303,   304,
2084 <     305,   306,   308,   307,   309,   309,   310,   310,   310,   310,
2085 <     310,   310,   310,   310,   310,   310,   310,   310,   310,   310,
2086 <     310,   310,   310,   310,   310,   310,   310,   310,   312,   311,
2087 <     313,   313,   314,   314,   314,   314,   314,   314,   314,   314,
2088 <     314,   314,   314,   314,   314,   314,   314,   314,   314,   314,
2089 <     314,   314,   314,   314,   314,   316,   315,   317,   317,   318,
2090 <     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2091 <     318,   318,   318,   318,   318,   318,   318,   319,   320,   321,
2092 <     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
2093 <     332,   333,   334,   336,   335,   337,   337,   338,   338,   340,
2094 <     339,   342,   341,   343,   343,   344,   344,   344,   345,   345,
2095 <     346,   346,   346,   346,   346,   348,   347,   349,   349,   350,
2096 <     350,   351,   352,   354,   353,   355,   355,   356,   356,   356,
2097 <     356,   356,   356,   356,   356,   356,   357,   358,   359,   360,
2098 <     362,   361,   363,   363,   364,   364,   364,   364,   364,   364,
2099 <     364,   364,   364,   364,   365,   366,   367,   369,   368,   370,
2100 <     370,   371,   371,   371,   371,   372,   373,   374,   375,   376,
2101 <     376,   377,   377,   378,   380,   379,   381,   381,   382,   382,
2102 <     382,   382,   383,   384,   386,   385,   387,   387,   388,   388,
2103 <     388,   388,   388,   388,   388,   388,   388,   388,   390,   389,
2104 <     391,   391,   392,   392,   392,   393,   395,   394,   396,   396,
2105 <     397,   397,   397,   397,   397,   397,   397,   397,   397,   397,
2106 <     399,   398,   400,   400,   401,   401,   401,   401,   401,   401,
2107 <     401,   401,   401,   401,   401,   401,   401,   401,   401,   402,
2108 <     403,   404,   405,   406,   407,   408,   409,   409,   411,   410,
2109 <     412,   412,   413,   413,   414,   415,   416,   417,   418,   420,
2110 <     419,   421,   421,   422,   422,   422,   423,   424,   426,   425,
2111 <     427,   427,   428,   428,   428,   429,   430,   431,   432,   432,
2112 <     433,   433,   434,   436,   435,   437,   437,   438,   438,   438,
2113 <     439,   440,   441,   442,   442,   443,   443,   443,   443,   443,
2114 <     443,   443,   443,   443,   443,   443,   443,   443,   443,   443,
2115 <     443,   443,   443,   443,   443,   443,   443,   443,   443,   443,
2116 <     443,   443,   443,   443,   443,   443,   443,   443,   443,   443,
2117 <     443,   443,   443,   443,   443,   443,   443,   443,   443,   443,
2118 <     443,   443,   443,   443,   443,   443,   444,   445,   446,   447,
2119 <     448,   449,   450,   451,   452,   453,   454,   455,   456,   457,
2120 <     458,   459,   460,   461,   462,   463,   464,   465,   466,   467,
2121 <     468,   469,   470,   471,   472,   472,   473,   473,   474,   475,
2122 <     476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
2123 <     486,   487,   488,   490,   489,   491,   491,   492,   492,   492,
2124 <     492,   492,   492,   492,   492,   492,   492,   492,   492,   492,
2125 <     492,   492,   492,   492,   492,   492,   492,   492,   492,   494,
2126 <     493,   495,   495,   496,   496,   496,   496,   496,   496,   496,
2127 <     496,   496,   496,   496,   496,   496,   496,   496,   496,   496,
2128 <     496,   496,   496,   497,   498,   499,   500,   501,   501,   502,
2129 <     502,   502,   502,   502,   502,   502,   502,   502,   502,   502,
2130 <     502,   502,   502,   502,   503,   504,   505,   506,   507,   508,
2131 <     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
2132 <     518,   519,   519,   519,   519,   519,   519,   519,   519,   519,
2133 <     520,   521,   522,   523,   524,   525,   526,   527
2068 >       0,   240,   241,   241,   242,   242,   242,   242,   242,   242,
2069 >     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2070 >     242,   242,   242,   242,   242,   242,   242,   242,   243,   243,
2071 >     244,   244,   244,   244,   244,   244,   244,   244,   245,   245,
2072 >     246,   246,   246,   246,   247,   248,   248,   249,   249,   249,
2073 >     250,   251,   252,   253,   253,   254,   254,   254,   254,   254,
2074 >     254,   254,   254,   254,   254,   254,   254,   254,   254,   254,
2075 >     254,   254,   254,   254,   254,   254,   255,   256,   257,   258,
2076 >     259,   260,   262,   261,   263,   263,   264,   264,   264,   264,
2077 >     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2078 >     275,   276,   277,   278,   279,   279,   280,   280,   280,   280,
2079 >     281,   282,   283,   285,   284,   286,   286,   287,   287,   287,
2080 >     288,   289,   291,   290,   292,   292,   293,   293,   293,   293,
2081 >     293,   294,   295,   296,   297,   298,   299,   299,   300,   300,
2082 >     300,   301,   303,   302,   304,   304,   305,   305,   305,   305,
2083 >     306,   307,   307,   309,   308,   310,   310,   311,   311,   311,
2084 >     311,   311,   311,   311,   311,   313,   312,   314,   314,   315,
2085 >     315,   315,   315,   315,   315,   315,   315,   315,   315,   315,
2086 >     316,   317,   318,   319,   320,   321,   322,   323,   325,   324,
2087 >     326,   326,   327,   327,   327,   327,   327,   327,   327,   327,
2088 >     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
2089 >     327,   327,   327,   327,   329,   328,   330,   330,   331,   331,
2090 >     331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
2091 >     331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
2092 >     331,   331,   331,   331,   331,   331,   331,   333,   332,   334,
2093 >     334,   335,   335,   335,   335,   335,   335,   335,   335,   335,
2094 >     335,   335,   335,   335,   335,   335,   335,   335,   335,   336,
2095 >     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2096 >     347,   348,   349,   350,   351,   353,   352,   354,   354,   355,
2097 >     355,   357,   356,   359,   358,   360,   360,   361,   361,   361,
2098 >     362,   362,   363,   363,   363,   363,   363,   365,   364,   366,
2099 >     366,   367,   367,   368,   369,   371,   370,   372,   372,   373,
2100 >     373,   373,   373,   373,   373,   373,   373,   373,   374,   375,
2101 >     376,   377,   379,   378,   380,   380,   381,   381,   381,   381,
2102 >     381,   381,   381,   381,   381,   381,   382,   383,   384,   386,
2103 >     385,   387,   387,   388,   388,   388,   388,   389,   390,   391,
2104 >     392,   393,   393,   394,   394,   395,   397,   396,   398,   398,
2105 >     399,   399,   399,   399,   400,   401,   403,   402,   404,   404,
2106 >     405,   405,   405,   405,   405,   405,   405,   405,   405,   405,
2107 >     407,   406,   408,   408,   409,   409,   409,   410,   412,   411,
2108 >     413,   413,   414,   414,   414,   414,   414,   414,   414,   414,
2109 >     414,   414,   416,   415,   417,   417,   418,   418,   418,   418,
2110 >     418,   418,   418,   418,   418,   418,   418,   418,   418,   418,
2111 >     418,   419,   420,   421,   422,   423,   424,   425,   426,   426,
2112 >     428,   427,   429,   429,   430,   430,   431,   432,   433,   434,
2113 >     435,   437,   436,   438,   438,   439,   439,   439,   440,   441,
2114 >     443,   442,   444,   444,   445,   445,   445,   446,   447,   448,
2115 >     449,   449,   450,   450,   451,   453,   452,   454,   454,   455,
2116 >     455,   455,   456,   457,   458,   459,   459,   460,   460,   460,
2117 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2118 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2119 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2120 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2121 >     460,   460,   460,   461,   462,   463,   464,   465,   466,   467,
2122 >     468,   469,   470,   471,   472,   473,   474,   475,   476,   477,
2123 >     478,   479,   480,   481,   482,   483,   484,   485,   486,   487,
2124 >     487,   488,   488,   489,   490,   491,   492,   493,   494,   495,
2125 >     496,   497,   498,   499,   500,   502,   501,   503,   503,   504,
2126 >     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
2127 >     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
2128 >     504,   506,   505,   507,   507,   508,   508,   508,   508,   508,
2129 >     508,   508,   508,   508,   508,   508,   508,   508,   508,   508,
2130 >     508,   508,   508,   508,   508,   509,   510,   511,   512,   513,
2131 >     513,   514,   514,   514,   514,   514,   514,   514,   514,   514,
2132 >     514,   514,   514,   515,   516,   517,   518,   519,   520,   521,
2133 >     522,   523,   524,   525,   526,   527,   527,   528,   528,   528,
2134 >     528,   528,   528,   528,   528,   528,   528,   529,   530,   531,
2135 >     532,   533,   534,   535,   536,   537
2136   };
2137  
2138    /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
# Line 2125 | Line 2140 | static const yytype_uint8 yyr2[] =
2140   {
2141         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2142         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2143 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2144 <       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2145 <       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2146 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2143 >       1,     1,     1,     1,     1,     1,     2,     2,     0,     1,
2144 >       2,     3,     3,     3,     3,     3,     3,     3,     0,     1,
2145 >       2,     3,     3,     3,     5,     2,     1,     1,     1,     2,
2146 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2147         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2148 <       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
2134 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     5,
2135 <       2,     1,     1,     1,     1,     2,     4,     4,     4,     0,
2136 <       6,     2,     1,     1,     1,     2,     4,     4,     5,     2,
2137 <       1,     1,     1,     2,     4,     0,     6,     2,     1,     1,
2138 <       1,     1,     2,     4,     4,     4,     0,     5,     3,     1,
2139 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
2140 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2141 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
2148 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2149         4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2150 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2151 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     5,
2152 <       3,     1,     3,     1,     3,     1,     3,     1,     1,     1,
2153 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2150 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2151 >       4,     4,     4,     5,     2,     1,     1,     1,     1,     2,
2152 >       4,     4,     4,     0,     6,     2,     1,     1,     1,     2,
2153 >       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
2154 >       2,     4,     4,     4,     4,     5,     2,     1,     1,     1,
2155 >       2,     4,     0,     6,     2,     1,     1,     1,     1,     2,
2156 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
2157         1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2158 +       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
2159 +       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2160 +       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2161         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2162 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
2163 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2164 <       4,     4,     4,     0,     5,     3,     1,     1,     1,     0,
2165 <       6,     0,     5,     3,     1,     1,     1,     1,     2,     1,
2153 <       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
2154 <       3,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2155 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2156 <       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2157 <       1,     1,     1,     1,     4,     4,     4,     0,     6,     2,
2158 <       1,     1,     1,     1,     2,     4,     4,     4,     5,     2,
2159 <       1,     1,     1,     4,     0,     6,     2,     1,     1,     1,
2160 <       1,     2,     4,     4,     0,     5,     3,     1,     1,     1,
2161 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
2162 <       2,     1,     1,     1,     2,     4,     0,     5,     3,     1,
2162 >       1,     1,     1,     1,     0,     5,     3,     1,     3,     1,
2163 >       3,     1,     3,     1,     1,     1,     1,     1,     1,     1,
2164 >       1,     1,     3,     1,     1,     1,     1,     1,     1,     1,
2165 >       1,     1,     3,     3,     1,     1,     1,     0,     6,     2,
2166         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2164       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
2167         1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
2168 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2169 <       3,     1,     1,     1,     4,     4,     4,     4,     4,     0,
2170 <       6,     2,     1,     1,     1,     1,     4,     4,     0,     6,
2171 <       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
2172 <       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
2173 <       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2168 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2169 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2170 >       1,     0,     6,     0,     5,     3,     1,     1,     1,     1,
2171 >       2,     1,     1,     1,     1,     1,     2,     0,     5,     3,
2172 >       1,     1,     3,     4,     4,     0,     6,     2,     1,     1,
2173 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
2174 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2175 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     0,
2176 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2177 >       5,     2,     1,     1,     1,     4,     0,     6,     2,     1,
2178 >       1,     1,     1,     2,     4,     4,     0,     5,     3,     1,
2179         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2180 +       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
2181 +       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2182 +       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2183         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2184 +       2,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2185 +       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
2186 +       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
2187 +       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
2188 +       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
2189 +       1,     1,     4,     4,     5,     2,     1,     1,     1,     1,
2190         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2191         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2192 <       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
2193 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2192 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2193 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2194 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2195         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2196         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2197         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2198 <       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
2198 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2199         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2183       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
2184       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2200         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2201 <       1,     1,     1,     4,     4,     4,     5,     2,     1,     1,
2201 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2202         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2203 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
2189 <       4,     4,     4,     4,     4,     4,     4,     4,     5,     2,
2203 >       1,     1,     1,     1,     1,     4,     4,     4,     5,     2,
2204         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2205 <       4,     4,     4,     4,     4,     4,     4,     4
2205 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2206 >       4,     4,     4,     4,     5,     2,     1,     1,     1,     1,
2207 >       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
2208 >       4,     4,     4,     4,     4,     4
2209   };
2210  
2211  
# Line 2864 | Line 2881 | yyreduce:
2881    YY_REDUCE_PRINT (yyn);
2882    switch (yyn)
2883      {
2884 <        case 27:
2885 < #line 411 "conf_parser.y" /* yacc.c:1646  */
2884 >        case 28:
2885 > #line 409 "conf_parser.y" /* yacc.c:1646  */
2886      { (yyval.number) = 0; }
2887 < #line 2871 "conf_parser.c" /* yacc.c:1646  */
2887 > #line 2888 "conf_parser.c" /* yacc.c:1646  */
2888      break;
2889  
2890 <  case 29:
2891 < #line 412 "conf_parser.y" /* yacc.c:1646  */
2890 >  case 30:
2891 > #line 410 "conf_parser.y" /* yacc.c:1646  */
2892      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2893 < #line 2877 "conf_parser.c" /* yacc.c:1646  */
2893 > #line 2894 "conf_parser.c" /* yacc.c:1646  */
2894      break;
2895  
2896 <  case 30:
2897 < #line 413 "conf_parser.y" /* yacc.c:1646  */
2896 >  case 31:
2897 > #line 411 "conf_parser.y" /* yacc.c:1646  */
2898      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2899 < #line 2883 "conf_parser.c" /* yacc.c:1646  */
2899 > #line 2900 "conf_parser.c" /* yacc.c:1646  */
2900      break;
2901  
2902 <  case 31:
2903 < #line 414 "conf_parser.y" /* yacc.c:1646  */
2902 >  case 32:
2903 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2904      { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2905 < #line 2889 "conf_parser.c" /* yacc.c:1646  */
2905 > #line 2906 "conf_parser.c" /* yacc.c:1646  */
2906      break;
2907  
2908 <  case 32:
2909 < #line 415 "conf_parser.y" /* yacc.c:1646  */
2908 >  case 33:
2909 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2910      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2911 < #line 2895 "conf_parser.c" /* yacc.c:1646  */
2911 > #line 2912 "conf_parser.c" /* yacc.c:1646  */
2912      break;
2913  
2914 <  case 33:
2915 < #line 416 "conf_parser.y" /* yacc.c:1646  */
2914 >  case 34:
2915 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2916      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2917 < #line 2901 "conf_parser.c" /* yacc.c:1646  */
2917 > #line 2918 "conf_parser.c" /* yacc.c:1646  */
2918      break;
2919  
2920 <  case 34:
2921 < #line 417 "conf_parser.y" /* yacc.c:1646  */
2920 >  case 35:
2921 > #line 415 "conf_parser.y" /* yacc.c:1646  */
2922      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2923 < #line 2907 "conf_parser.c" /* yacc.c:1646  */
2923 > #line 2924 "conf_parser.c" /* yacc.c:1646  */
2924      break;
2925  
2926 <  case 35:
2927 < #line 418 "conf_parser.y" /* yacc.c:1646  */
2926 >  case 36:
2927 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2928      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2929 < #line 2913 "conf_parser.c" /* yacc.c:1646  */
2929 > #line 2930 "conf_parser.c" /* yacc.c:1646  */
2930      break;
2931  
2932 <  case 36:
2933 < #line 419 "conf_parser.y" /* yacc.c:1646  */
2932 >  case 37:
2933 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2934      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2935 < #line 2919 "conf_parser.c" /* yacc.c:1646  */
2935 > #line 2936 "conf_parser.c" /* yacc.c:1646  */
2936      break;
2937  
2938 <  case 37:
2939 < #line 422 "conf_parser.y" /* yacc.c:1646  */
2938 >  case 38:
2939 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2940      { (yyval.number) = 0; }
2941 < #line 2925 "conf_parser.c" /* yacc.c:1646  */
2941 > #line 2942 "conf_parser.c" /* yacc.c:1646  */
2942      break;
2943  
2944 <  case 39:
2945 < #line 423 "conf_parser.y" /* yacc.c:1646  */
2944 >  case 40:
2945 > #line 421 "conf_parser.y" /* yacc.c:1646  */
2946      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2947 < #line 2931 "conf_parser.c" /* yacc.c:1646  */
2947 > #line 2948 "conf_parser.c" /* yacc.c:1646  */
2948      break;
2949  
2950 <  case 40:
2951 < #line 424 "conf_parser.y" /* yacc.c:1646  */
2950 >  case 41:
2951 > #line 422 "conf_parser.y" /* yacc.c:1646  */
2952      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2953 < #line 2937 "conf_parser.c" /* yacc.c:1646  */
2953 > #line 2954 "conf_parser.c" /* yacc.c:1646  */
2954      break;
2955  
2956 <  case 41:
2957 < #line 425 "conf_parser.y" /* yacc.c:1646  */
2956 >  case 42:
2957 > #line 423 "conf_parser.y" /* yacc.c:1646  */
2958      { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2959 < #line 2943 "conf_parser.c" /* yacc.c:1646  */
2959 > #line 2960 "conf_parser.c" /* yacc.c:1646  */
2960      break;
2961  
2962 <  case 42:
2963 < #line 426 "conf_parser.y" /* yacc.c:1646  */
2962 >  case 43:
2963 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2964      { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2965 < #line 2949 "conf_parser.c" /* yacc.c:1646  */
2965 > #line 2966 "conf_parser.c" /* yacc.c:1646  */
2966      break;
2967  
2968 <  case 49:
2969 < #line 440 "conf_parser.y" /* yacc.c:1646  */
2968 >  case 50:
2969 > #line 437 "conf_parser.y" /* yacc.c:1646  */
2970      {
2971    if (conf_parser_ctx.pass == 2)
2972      add_conf_module(libio_basename(yylval.string));
2973   }
2974 < #line 2958 "conf_parser.c" /* yacc.c:1646  */
2974 > #line 2975 "conf_parser.c" /* yacc.c:1646  */
2975      break;
2976  
2977 <  case 50:
2978 < #line 446 "conf_parser.y" /* yacc.c:1646  */
2977 >  case 51:
2978 > #line 443 "conf_parser.y" /* yacc.c:1646  */
2979      {
2980    if (conf_parser_ctx.pass == 2)
2981      mod_add_path(yylval.string);
2982   }
2983 < #line 2967 "conf_parser.c" /* yacc.c:1646  */
2983 > #line 2984 "conf_parser.c" /* yacc.c:1646  */
2984      break;
2985  
2986 <  case 72:
2987 < #line 476 "conf_parser.y" /* yacc.c:1646  */
2986 >  case 76:
2987 > #line 479 "conf_parser.y" /* yacc.c:1646  */
2988      {
2989 < #ifdef HAVE_LIBCRYPTO
2973 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2989 >  if (conf_parser_ctx.pass == 2)
2990    {
2991 <    if (!ServerInfo.rsa_private_key_file)
2992 <    {
2977 <      conf_error_report("No rsa_private_key_file specified, SSL disabled");
2978 <      break;
2979 <    }
2980 <
2981 <    if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
2982 <                                     SSL_FILETYPE_PEM) <= 0 ||
2983 <        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
2984 <                                     SSL_FILETYPE_PEM) <= 0)
2985 <    {
2986 <      report_crypto_errors();
2987 <      conf_error_report("Could not open/read certificate file");
2988 <      break;
2989 <    }
2990 <
2991 <    if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
2992 <                                    SSL_FILETYPE_PEM) <= 0 ||
2993 <        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
2994 <                                    SSL_FILETYPE_PEM) <= 0)
2995 <    {
2996 <      report_crypto_errors();
2997 <      conf_error_report("Could not read RSA private key");
2998 <      break;
2999 <    }
3000 <
3001 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3002 <        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3003 <    {
3004 <      report_crypto_errors();
3005 <      conf_error_report("Could not read RSA private key");
3006 <      break;
3007 <    }
2991 >    xfree(ConfigServerInfo.ssl_certificate_file);
2992 >    ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
2993    }
3009 #endif
2994   }
2995 < #line 3012 "conf_parser.c" /* yacc.c:1646  */
2995 > #line 2996 "conf_parser.c" /* yacc.c:1646  */
2996      break;
2997  
2998 <  case 73:
2999 < #line 518 "conf_parser.y" /* yacc.c:1646  */
2998 >  case 77:
2999 > #line 488 "conf_parser.y" /* yacc.c:1646  */
3000      {
3001 < #ifdef HAVE_LIBCRYPTO
3018 <  BIO *file = NULL;
3019 <
3020 <  if (conf_parser_ctx.pass != 1)
3021 <    break;
3022 <
3023 <  if (ServerInfo.rsa_private_key)
3001 >  if (conf_parser_ctx.pass == 2)
3002    {
3003 <    RSA_free(ServerInfo.rsa_private_key);
3004 <    ServerInfo.rsa_private_key = NULL;
3003 >    xfree(ConfigServerInfo.rsa_private_key_file);
3004 >    ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3005    }
3006 + }
3007 + #line 3008 "conf_parser.c" /* yacc.c:1646  */
3008 +    break;
3009  
3010 <  if (ServerInfo.rsa_private_key_file)
3010 >  case 78:
3011 > #line 497 "conf_parser.y" /* yacc.c:1646  */
3012 >    {
3013 >  if (conf_parser_ctx.pass == 2)
3014    {
3015 <    MyFree(ServerInfo.rsa_private_key_file);
3016 <    ServerInfo.rsa_private_key_file = NULL;
3015 >    xfree(ConfigServerInfo.ssl_dh_param_file);
3016 >    ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
3017    }
3018 <
3019 <  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3036 <
3037 <  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3038 <  {
3039 <    conf_error_report("File open failed, ignoring");
3018 > }
3019 > #line 3020 "conf_parser.c" /* yacc.c:1646  */
3020      break;
3041  }
3042
3043  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3044
3045  BIO_set_close(file, BIO_CLOSE);
3046  BIO_free(file);
3021  
3022 <  if (ServerInfo.rsa_private_key == NULL)
3022 >  case 79:
3023 > #line 506 "conf_parser.y" /* yacc.c:1646  */
3024 >    {
3025 >  if (conf_parser_ctx.pass == 2)
3026    {
3027 <    conf_error_report("Couldn't extract key, ignoring");
3028 <    break;
3027 >    xfree(ConfigServerInfo.ssl_cipher_list);
3028 >    ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
3029    }
3030 <
3031 <  if (!RSA_check_key(ServerInfo.rsa_private_key))
3055 <  {
3056 <    RSA_free(ServerInfo.rsa_private_key);
3057 <    ServerInfo.rsa_private_key = NULL;
3058 <
3059 <    conf_error_report("Invalid key, ignoring");
3030 > }
3031 > #line 3032 "conf_parser.c" /* yacc.c:1646  */
3032      break;
3061  }
3033  
3034 <  if (RSA_size(ServerInfo.rsa_private_key) < 128)
3034 >  case 80:
3035 > #line 515 "conf_parser.y" /* yacc.c:1646  */
3036 >    {
3037 >  if (conf_parser_ctx.pass == 2)
3038    {
3039 <    RSA_free(ServerInfo.rsa_private_key);
3040 <    ServerInfo.rsa_private_key = NULL;
3067 <
3068 <    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3039 >    xfree(ConfigServerInfo.ssl_message_digest_algorithm);
3040 >    ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
3041    }
3070 #endif
3042   }
3043 < #line 3073 "conf_parser.c" /* yacc.c:1646  */
3043 > #line 3044 "conf_parser.c" /* yacc.c:1646  */
3044      break;
3045  
3046 <  case 74:
3047 < #line 576 "conf_parser.y" /* yacc.c:1646  */
3046 >  case 81:
3047 > #line 524 "conf_parser.y" /* yacc.c:1646  */
3048      {
3049 < #ifdef HAVE_LIBCRYPTO
3079 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3049 >  if (conf_parser_ctx.pass == 2)
3050    {
3051 <    BIO *file = BIO_new_file(yylval.string, "r");
3051 >    xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3052 >    ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3053 >  }
3054 > }
3055 > #line 3056 "conf_parser.c" /* yacc.c:1646  */
3056 >    break;
3057  
3058 <    if (file)
3058 >  case 82:
3059 > #line 533 "conf_parser.y" /* yacc.c:1646  */
3060      {
3061 <      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3062 <
3063 <      BIO_free(file);
3064 <
3065 <      if (dh)
3090 <      {
3091 <        if (DH_size(dh) < 128)
3092 <          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3093 <        else
3094 <          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3061 >  if (conf_parser_ctx.pass == 1)
3062 >    ConfigServerInfo.libgeoip_database_options = 0;
3063 > }
3064 > #line 3065 "conf_parser.c" /* yacc.c:1646  */
3065 >    break;
3066  
3067 <        DH_free(dh);
3068 <      }
3069 <    }
3070 <    else
3071 <      conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- could not open/read Diffie-Hellman parameter file");
3072 <  }
3067 >  case 86:
3068 > #line 540 "conf_parser.y" /* yacc.c:1646  */
3069 >    {
3070 > #ifdef HAVE_LIBGEOIP
3071 >  if (conf_parser_ctx.pass == 1)
3072 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_STANDARD;
3073   #endif
3074   }
3075 < #line 3105 "conf_parser.c" /* yacc.c:1646  */
3075 > #line 3076 "conf_parser.c" /* yacc.c:1646  */
3076      break;
3077  
3078 <  case 75:
3079 < #line 605 "conf_parser.y" /* yacc.c:1646  */
3078 >  case 87:
3079 > #line 546 "conf_parser.y" /* yacc.c:1646  */
3080      {
3081 < #ifdef HAVE_LIBCRYPTO
3082 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3083 <    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3081 > #ifdef HAVE_LIBGEOIP
3082 >  if (conf_parser_ctx.pass == 1)
3083 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_MEMORY_CACHE;
3084   #endif
3085   }
3086 < #line 3116 "conf_parser.c" /* yacc.c:1646  */
3086 > #line 3087 "conf_parser.c" /* yacc.c:1646  */
3087      break;
3088  
3089 <  case 76:
3090 < #line 613 "conf_parser.y" /* yacc.c:1646  */
3120 <    {
3121 < #ifdef HAVE_LIBCRYPTO
3122 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3123 <  {
3124 <    if ((ServerInfo.message_digest_algorithm = EVP_get_digestbyname(yylval.string)) == NULL)
3089 >  case 88:
3090 > #line 552 "conf_parser.y" /* yacc.c:1646  */
3091      {
3092 <      ServerInfo.message_digest_algorithm = EVP_sha256();
3093 <      conf_error_report("Ignoring serverinfo::ssl_message_digest_algorithm -- unknown message digest algorithm");
3094 <    }
3129 <  }
3092 > #ifdef HAVE_LIBGEOIP
3093 >  if (conf_parser_ctx.pass == 1)
3094 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_MMAP_CACHE;
3095   #endif
3096   }
3097 < #line 3133 "conf_parser.c" /* yacc.c:1646  */
3097 > #line 3098 "conf_parser.c" /* yacc.c:1646  */
3098      break;
3099  
3100 <  case 77:
3101 < #line 627 "conf_parser.y" /* yacc.c:1646  */
3100 >  case 89:
3101 > #line 558 "conf_parser.y" /* yacc.c:1646  */
3102      {
3103 < #ifdef HAVE_LIBCRYPTO
3104 < #if OPENSSL_VERSION_NUMBER >= 0x1000005FL && !defined(OPENSSL_NO_ECDH)
3105 <  int nid = 0;
3106 <  EC_KEY *key = NULL;
3103 > #ifdef HAVE_LIBGEOIP
3104 >  if (conf_parser_ctx.pass == 1)
3105 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_CHECK_CACHE;
3106 > #endif
3107 > }
3108 > #line 3109 "conf_parser.c" /* yacc.c:1646  */
3109 >    break;
3110  
3111 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3112 <  {
3145 <    if ((nid = OBJ_sn2nid(yylval.string)) == 0)
3111 >  case 90:
3112 > #line 566 "conf_parser.y" /* yacc.c:1646  */
3113      {
3114 <        conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- unknown curve name");
3115 <        break;
3116 <    }
3114 >  if (conf_parser_ctx.pass == 2)
3115 >  {
3116 >    xfree(ConfigServerInfo.libgeoip_ipv4_database_file);
3117 >    ConfigServerInfo.libgeoip_ipv4_database_file = xstrdup(yylval.string);
3118 >
3119 > #ifdef HAVE_LIBGEOIP
3120 >    if (GeoIPv4_ctx)
3121 >      GeoIP_delete(GeoIPv4_ctx);
3122 >    GeoIPv4_ctx = GeoIP_open(yylval.string, ConfigServerInfo.libgeoip_database_options);
3123 > #endif
3124 >  }
3125 > }
3126 > #line 3127 "conf_parser.c" /* yacc.c:1646  */
3127 >    break;
3128  
3129 <    if ((key = EC_KEY_new_by_curve_name(nid)) == NULL)
3129 >  case 91:
3130 > #line 581 "conf_parser.y" /* yacc.c:1646  */
3131      {
3132 <      conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- could not create curve");
3133 <      break;
3134 <    }
3132 >  if (conf_parser_ctx.pass == 2)
3133 >  {
3134 >    xfree(ConfigServerInfo.libgeoip_ipv6_database_file);
3135 >    ConfigServerInfo.libgeoip_ipv6_database_file = xstrdup(yylval.string);
3136  
3137 <    SSL_CTX_set_tmp_ecdh(ServerInfo.server_ctx, key);
3138 <    EC_KEY_free(key);
3139 < }
3140 < #endif
3137 > #ifdef HAVE_LIBGEOIP
3138 >    if (GeoIPv6_ctx)
3139 >      GeoIP_delete(GeoIPv6_ctx);
3140 >    GeoIPv6_ctx = GeoIP_open(yylval.string, ConfigServerInfo.libgeoip_database_options);
3141   #endif
3142 +  }
3143   }
3144 < #line 3164 "conf_parser.c" /* yacc.c:1646  */
3144 > #line 3145 "conf_parser.c" /* yacc.c:1646  */
3145      break;
3146  
3147 <  case 78:
3148 < #line 655 "conf_parser.y" /* yacc.c:1646  */
3147 >  case 92:
3148 > #line 596 "conf_parser.y" /* yacc.c:1646  */
3149      {
3150 <  /* this isn't rehashable */
3151 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3150 >  /* This isn't rehashable */
3151 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
3152    {
3153      if (valid_servname(yylval.string))
3154 <      ServerInfo.name = xstrdup(yylval.string);
3154 >      ConfigServerInfo.name = xstrdup(yylval.string);
3155      else
3156      {
3157        conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3158 <      exit(0);
3158 >      exit(EXIT_FAILURE);
3159      }
3160    }
3161   }
3162 < #line 3182 "conf_parser.c" /* yacc.c:1646  */
3162 > #line 3163 "conf_parser.c" /* yacc.c:1646  */
3163      break;
3164  
3165 <  case 79:
3166 < #line 670 "conf_parser.y" /* yacc.c:1646  */
3165 >  case 93:
3166 > #line 611 "conf_parser.y" /* yacc.c:1646  */
3167      {
3168 <  /* this isn't rehashable */
3169 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3168 >  /* This isn't rehashable */
3169 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
3170    {
3171      if (valid_sid(yylval.string))
3172 <      ServerInfo.sid = xstrdup(yylval.string);
3172 >      ConfigServerInfo.sid = xstrdup(yylval.string);
3173      else
3174      {
3175        conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3176 <      exit(0);
3176 >      exit(EXIT_FAILURE);
3177      }
3178    }
3179   }
3180 < #line 3200 "conf_parser.c" /* yacc.c:1646  */
3180 > #line 3181 "conf_parser.c" /* yacc.c:1646  */
3181      break;
3182  
3183 <  case 80:
3184 < #line 685 "conf_parser.y" /* yacc.c:1646  */
3183 >  case 94:
3184 > #line 626 "conf_parser.y" /* yacc.c:1646  */
3185      {
3186    if (conf_parser_ctx.pass == 2)
3187    {
3188 <    MyFree(ServerInfo.description);
3189 <    ServerInfo.description = xstrdup(yylval.string);
3188 >    xfree(ConfigServerInfo.description);
3189 >    ConfigServerInfo.description = xstrdup(yylval.string);
3190 >    strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3191    }
3192   }
3193 < #line 3212 "conf_parser.c" /* yacc.c:1646  */
3193 > #line 3194 "conf_parser.c" /* yacc.c:1646  */
3194      break;
3195  
3196 <  case 81:
3197 < #line 694 "conf_parser.y" /* yacc.c:1646  */
3196 >  case 95:
3197 > #line 636 "conf_parser.y" /* yacc.c:1646  */
3198      {
3199    if (conf_parser_ctx.pass == 2)
3200    {
# Line 3221 | Line 3203 | yyreduce:
3203      if ((p = strchr(yylval.string, ' ')))
3204        *p = '\0';
3205  
3206 <    MyFree(ServerInfo.network_name);
3207 <    ServerInfo.network_name = xstrdup(yylval.string);
3206 >    xfree(ConfigServerInfo.network_name);
3207 >    ConfigServerInfo.network_name = xstrdup(yylval.string);
3208    }
3209   }
3210 < #line 3229 "conf_parser.c" /* yacc.c:1646  */
3210 > #line 3211 "conf_parser.c" /* yacc.c:1646  */
3211      break;
3212  
3213 <  case 82:
3214 < #line 708 "conf_parser.y" /* yacc.c:1646  */
3213 >  case 96:
3214 > #line 650 "conf_parser.y" /* yacc.c:1646  */
3215      {
3216    if (conf_parser_ctx.pass != 2)
3217      break;
3218  
3219 <  MyFree(ServerInfo.network_desc);
3220 <  ServerInfo.network_desc = xstrdup(yylval.string);
3219 >  xfree(ConfigServerInfo.network_desc);
3220 >  ConfigServerInfo.network_desc = xstrdup(yylval.string);
3221   }
3222 < #line 3241 "conf_parser.c" /* yacc.c:1646  */
3222 > #line 3223 "conf_parser.c" /* yacc.c:1646  */
3223      break;
3224  
3225 <  case 83:
3226 < #line 717 "conf_parser.y" /* yacc.c:1646  */
3225 >  case 97:
3226 > #line 659 "conf_parser.y" /* yacc.c:1646  */
3227      {
3228    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3229    {
# Line 3259 | Line 3241 | yyreduce:
3241      {
3242        assert(res);
3243  
3244 <      memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3245 <      ServerInfo.ip.ss.ss_family = res->ai_family;
3246 <      ServerInfo.ip.ss_len = res->ai_addrlen;
3244 >      memcpy(&ConfigServerInfo.ip, res->ai_addr, res->ai_addrlen);
3245 >      ConfigServerInfo.ip.ss.ss_family = res->ai_family;
3246 >      ConfigServerInfo.ip.ss_len = res->ai_addrlen;
3247        freeaddrinfo(res);
3248  
3249 <      ServerInfo.specific_ipv4_vhost = 1;
3249 >      ConfigServerInfo.specific_ipv4_vhost = 1;
3250      }
3251    }
3252   }
3253 < #line 3272 "conf_parser.c" /* yacc.c:1646  */
3253 > #line 3254 "conf_parser.c" /* yacc.c:1646  */
3254      break;
3255  
3256 <  case 84:
3257 < #line 745 "conf_parser.y" /* yacc.c:1646  */
3256 >  case 98:
3257 > #line 687 "conf_parser.y" /* yacc.c:1646  */
3258      {
3277 #ifdef IPV6
3259    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3260    {
3261      struct addrinfo hints, *res;
# Line 3291 | Line 3272 | yyreduce:
3272      {
3273        assert(res);
3274  
3275 <      memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3276 <      ServerInfo.ip6.ss.ss_family = res->ai_family;
3277 <      ServerInfo.ip6.ss_len = res->ai_addrlen;
3275 >      memcpy(&ConfigServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3276 >      ConfigServerInfo.ip6.ss.ss_family = res->ai_family;
3277 >      ConfigServerInfo.ip6.ss_len = res->ai_addrlen;
3278        freeaddrinfo(res);
3279  
3280 <      ServerInfo.specific_ipv6_vhost = 1;
3280 >      ConfigServerInfo.specific_ipv6_vhost = 1;
3281      }
3282    }
3302 #endif
3283   }
3284 < #line 3305 "conf_parser.c" /* yacc.c:1646  */
3284 > #line 3285 "conf_parser.c" /* yacc.c:1646  */
3285      break;
3286  
3287 <  case 85:
3288 < #line 775 "conf_parser.y" /* yacc.c:1646  */
3287 >  case 99:
3288 > #line 715 "conf_parser.y" /* yacc.c:1646  */
3289      {
3290    if (conf_parser_ctx.pass != 2)
3291      break;
# Line 3316 | Line 3296 | yyreduce:
3296  
3297      snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3298      conf_error_report(buf);
3299 <    ServerInfo.max_clients = MAXCLIENTS_MIN;
3299 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MIN;
3300    }
3301    else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3302    {
# Line 3324 | Line 3304 | yyreduce:
3304  
3305      snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3306      conf_error_report(buf);
3307 <    ServerInfo.max_clients = MAXCLIENTS_MAX;
3307 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3308    }
3309    else
3310 <    ServerInfo.max_clients = (yyvsp[-1].number);
3310 >    ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3311   }
3312 < #line 3333 "conf_parser.c" /* yacc.c:1646  */
3312 > #line 3313 "conf_parser.c" /* yacc.c:1646  */
3313      break;
3314  
3315 <  case 86:
3316 < #line 800 "conf_parser.y" /* yacc.c:1646  */
3315 >  case 100:
3316 > #line 740 "conf_parser.y" /* yacc.c:1646  */
3317      {
3318    if (conf_parser_ctx.pass != 2)
3319      break;
# Line 3341 | Line 3321 | yyreduce:
3321    if ((yyvsp[-1].number) < 9)
3322    {
3323      conf_error_report("max_nick_length too low, setting to 9");
3324 <    ServerInfo.max_nick_length = 9;
3324 >    ConfigServerInfo.max_nick_length = 9;
3325    }
3326    else if ((yyvsp[-1].number) > NICKLEN)
3327    {
# Line 3349 | Line 3329 | yyreduce:
3329  
3330      snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3331      conf_error_report(buf);
3332 <    ServerInfo.max_nick_length = NICKLEN;
3332 >    ConfigServerInfo.max_nick_length = NICKLEN;
3333    }
3334    else
3335 <    ServerInfo.max_nick_length = (yyvsp[-1].number);
3335 >    ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3336   }
3337 < #line 3358 "conf_parser.c" /* yacc.c:1646  */
3337 > #line 3338 "conf_parser.c" /* yacc.c:1646  */
3338      break;
3339  
3340 <  case 87:
3341 < #line 822 "conf_parser.y" /* yacc.c:1646  */
3340 >  case 101:
3341 > #line 762 "conf_parser.y" /* yacc.c:1646  */
3342      {
3343    if (conf_parser_ctx.pass != 2)
3344      break;
# Line 3366 | Line 3346 | yyreduce:
3346    if ((yyvsp[-1].number) < 80)
3347    {
3348      conf_error_report("max_topic_length too low, setting to 80");
3349 <    ServerInfo.max_topic_length = 80;
3349 >    ConfigServerInfo.max_topic_length = 80;
3350    }
3351    else if ((yyvsp[-1].number) > TOPICLEN)
3352    {
# Line 3374 | Line 3354 | yyreduce:
3354  
3355      snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3356      conf_error_report(buf);
3357 <    ServerInfo.max_topic_length = TOPICLEN;
3357 >    ConfigServerInfo.max_topic_length = TOPICLEN;
3358    }
3359    else
3360 <    ServerInfo.max_topic_length = (yyvsp[-1].number);
3360 >    ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3361   }
3362 < #line 3383 "conf_parser.c" /* yacc.c:1646  */
3362 > #line 3363 "conf_parser.c" /* yacc.c:1646  */
3363      break;
3364  
3365 <  case 88:
3366 < #line 844 "conf_parser.y" /* yacc.c:1646  */
3365 >  case 102:
3366 > #line 784 "conf_parser.y" /* yacc.c:1646  */
3367      {
3368    if (conf_parser_ctx.pass == 2)
3369 <    ServerInfo.hub = yylval.number;
3369 >    ConfigServerInfo.hub = yylval.number;
3370   }
3371 < #line 3392 "conf_parser.c" /* yacc.c:1646  */
3371 > #line 3372 "conf_parser.c" /* yacc.c:1646  */
3372      break;
3373  
3374 <  case 96:
3375 < #line 861 "conf_parser.y" /* yacc.c:1646  */
3374 >  case 110:
3375 > #line 802 "conf_parser.y" /* yacc.c:1646  */
3376      {
3377    if (conf_parser_ctx.pass != 2)
3378      break;
3379  
3380 <  MyFree(AdminInfo.name);
3381 <  AdminInfo.name = xstrdup(yylval.string);
3380 >  xfree(ConfigAdminInfo.name);
3381 >  ConfigAdminInfo.name = xstrdup(yylval.string);
3382   }
3383 < #line 3404 "conf_parser.c" /* yacc.c:1646  */
3383 > #line 3384 "conf_parser.c" /* yacc.c:1646  */
3384      break;
3385  
3386 <  case 97:
3387 < #line 870 "conf_parser.y" /* yacc.c:1646  */
3386 >  case 111:
3387 > #line 811 "conf_parser.y" /* yacc.c:1646  */
3388      {
3389    if (conf_parser_ctx.pass != 2)
3390      break;
3391  
3392 <  MyFree(AdminInfo.email);
3393 <  AdminInfo.email = xstrdup(yylval.string);
3392 >  xfree(ConfigAdminInfo.email);
3393 >  ConfigAdminInfo.email = xstrdup(yylval.string);
3394   }
3395 < #line 3416 "conf_parser.c" /* yacc.c:1646  */
3395 > #line 3396 "conf_parser.c" /* yacc.c:1646  */
3396      break;
3397  
3398 <  case 98:
3399 < #line 879 "conf_parser.y" /* yacc.c:1646  */
3398 >  case 112:
3399 > #line 820 "conf_parser.y" /* yacc.c:1646  */
3400      {
3401    if (conf_parser_ctx.pass != 2)
3402      break;
3403  
3404 <  MyFree(AdminInfo.description);
3405 <  AdminInfo.description = xstrdup(yylval.string);
3404 >  xfree(ConfigAdminInfo.description);
3405 >  ConfigAdminInfo.description = xstrdup(yylval.string);
3406   }
3407 < #line 3428 "conf_parser.c" /* yacc.c:1646  */
3407 > #line 3408 "conf_parser.c" /* yacc.c:1646  */
3408      break;
3409  
3410 <  case 99:
3411 < #line 891 "conf_parser.y" /* yacc.c:1646  */
3410 >  case 113:
3411 > #line 833 "conf_parser.y" /* yacc.c:1646  */
3412      {
3413    if (conf_parser_ctx.pass == 2)
3414      reset_block_state();
3415   }
3416 < #line 3437 "conf_parser.c" /* yacc.c:1646  */
3416 > #line 3417 "conf_parser.c" /* yacc.c:1646  */
3417      break;
3418  
3419 <  case 100:
3420 < #line 895 "conf_parser.y" /* yacc.c:1646  */
3419 >  case 114:
3420 > #line 837 "conf_parser.y" /* yacc.c:1646  */
3421      {
3422 <  dlink_node *ptr = NULL;
3422 >  dlink_node *node = NULL;
3423  
3424    if (conf_parser_ctx.pass != 2)
3425      break;
# Line 3447 | Line 3427 | yyreduce:
3427    if (!block_state.file.buf[0])
3428      break;
3429  
3430 <  DLINK_FOREACH(ptr, block_state.mask.list.head)
3431 <    motd_add(ptr->data, block_state.file.buf);
3430 >  DLINK_FOREACH(node, block_state.mask.list.head)
3431 >    motd_add(node->data, block_state.file.buf);
3432   }
3433 < #line 3454 "conf_parser.c" /* yacc.c:1646  */
3433 > #line 3434 "conf_parser.c" /* yacc.c:1646  */
3434      break;
3435  
3436 <  case 106:
3437 < #line 912 "conf_parser.y" /* yacc.c:1646  */
3436 >  case 120:
3437 > #line 854 "conf_parser.y" /* yacc.c:1646  */
3438      {
3439    if (conf_parser_ctx.pass == 2)
3440      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3441   }
3442 < #line 3463 "conf_parser.c" /* yacc.c:1646  */
3442 > #line 3443 "conf_parser.c" /* yacc.c:1646  */
3443      break;
3444  
3445 <  case 107:
3446 < #line 918 "conf_parser.y" /* yacc.c:1646  */
3445 >  case 121:
3446 > #line 860 "conf_parser.y" /* yacc.c:1646  */
3447      {
3448    if (conf_parser_ctx.pass == 2)
3449      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3450   }
3451 < #line 3472 "conf_parser.c" /* yacc.c:1646  */
3451 > #line 3452 "conf_parser.c" /* yacc.c:1646  */
3452      break;
3453  
3454 <  case 114:
3455 < #line 933 "conf_parser.y" /* yacc.c:1646  */
3454 >  case 122:
3455 > #line 870 "conf_parser.y" /* yacc.c:1646  */
3456      {
3457    if (conf_parser_ctx.pass == 2)
3458 <    ConfigLoggingEntry.use_logging = yylval.number;
3458 >    reset_block_state();
3459 > }
3460 > #line 3461 "conf_parser.c" /* yacc.c:1646  */
3461 >    break;
3462 >
3463 >  case 123:
3464 > #line 874 "conf_parser.y" /* yacc.c:1646  */
3465 >    {
3466 >  if (conf_parser_ctx.pass != 2)
3467 >    break;
3468 >
3469 >  if (!block_state.command.buf[0] ||
3470 >      !block_state.name.buf[0] ||
3471 >      !block_state.nick.buf[0] ||
3472 >      !block_state.host.buf[0])
3473 >    break;
3474 >
3475 >  pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3476 >                  block_state.prepend.buf, block_state.command.buf);
3477   }
3478 < #line 3481 "conf_parser.c" /* yacc.c:1646  */
3478 > #line 3479 "conf_parser.c" /* yacc.c:1646  */
3479      break;
3480  
3481 <  case 115:
3482 < #line 939 "conf_parser.y" /* yacc.c:1646  */
3481 >  case 131:
3482 > #line 892 "conf_parser.y" /* yacc.c:1646  */
3483 >    {
3484 >  if (conf_parser_ctx.pass == 2)
3485 >    strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3486 > }
3487 > #line 3488 "conf_parser.c" /* yacc.c:1646  */
3488 >    break;
3489 >
3490 >  case 132:
3491 > #line 898 "conf_parser.y" /* yacc.c:1646  */
3492 >    {
3493 >  if (conf_parser_ctx.pass == 2)
3494 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3495 > }
3496 > #line 3497 "conf_parser.c" /* yacc.c:1646  */
3497 >    break;
3498 >
3499 >  case 133:
3500 > #line 904 "conf_parser.y" /* yacc.c:1646  */
3501 >    {
3502 >  if (conf_parser_ctx.pass == 2)
3503 >    strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3504 > }
3505 > #line 3506 "conf_parser.c" /* yacc.c:1646  */
3506 >    break;
3507 >
3508 >  case 134:
3509 > #line 910 "conf_parser.y" /* yacc.c:1646  */
3510 >    {
3511 >  if (conf_parser_ctx.pass == 2)
3512 >  {
3513 >    struct split_nuh_item nuh;
3514 >
3515 >    nuh.nuhmask  = yylval.string;
3516 >    nuh.nickptr  = NULL;
3517 >    nuh.userptr  = block_state.nick.buf;
3518 >    nuh.hostptr  = block_state.host.buf;
3519 >    nuh.nicksize = 0;
3520 >    nuh.usersize = sizeof(block_state.nick.buf);
3521 >    nuh.hostsize = sizeof(block_state.host.buf);
3522 >
3523 >    split_nuh(&nuh);
3524 >  }
3525 > }
3526 > #line 3527 "conf_parser.c" /* yacc.c:1646  */
3527 >    break;
3528 >
3529 >  case 141:
3530 > #line 938 "conf_parser.y" /* yacc.c:1646  */
3531 >    {
3532 >  if (conf_parser_ctx.pass == 2)
3533 >    ConfigLog.use_logging = yylval.number;
3534 > }
3535 > #line 3536 "conf_parser.c" /* yacc.c:1646  */
3536 >    break;
3537 >
3538 >  case 142:
3539 > #line 944 "conf_parser.y" /* yacc.c:1646  */
3540      {
3541    if (conf_parser_ctx.pass == 2)
3542      reset_block_state();
3543   }
3544 < #line 3490 "conf_parser.c" /* yacc.c:1646  */
3544 > #line 3545 "conf_parser.c" /* yacc.c:1646  */
3545      break;
3546  
3547 <  case 116:
3548 < #line 943 "conf_parser.y" /* yacc.c:1646  */
3547 >  case 143:
3548 > #line 948 "conf_parser.y" /* yacc.c:1646  */
3549      {
3550    if (conf_parser_ctx.pass != 2)
3551      break;
# Line 3499 | Line 3554 | yyreduce:
3554      log_set_file(block_state.type.value, block_state.size.value,
3555                   block_state.file.buf);
3556   }
3557 < #line 3503 "conf_parser.c" /* yacc.c:1646  */
3557 > #line 3558 "conf_parser.c" /* yacc.c:1646  */
3558      break;
3559  
3560 <  case 123:
3561 < #line 959 "conf_parser.y" /* yacc.c:1646  */
3560 >  case 150:
3561 > #line 964 "conf_parser.y" /* yacc.c:1646  */
3562      {
3563    if (conf_parser_ctx.pass != 2)
3564      break;
3565  
3566    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3567   }
3568 < #line 3514 "conf_parser.c" /* yacc.c:1646  */
3568 > #line 3569 "conf_parser.c" /* yacc.c:1646  */
3569      break;
3570  
3571 <  case 124:
3572 < #line 967 "conf_parser.y" /* yacc.c:1646  */
3571 >  case 151:
3572 > #line 972 "conf_parser.y" /* yacc.c:1646  */
3573      {
3574    block_state.size.value = (yyvsp[-1].number);
3575   }
3576 < #line 3522 "conf_parser.c" /* yacc.c:1646  */
3576 > #line 3577 "conf_parser.c" /* yacc.c:1646  */
3577      break;
3578  
3579 <  case 125:
3580 < #line 970 "conf_parser.y" /* yacc.c:1646  */
3579 >  case 152:
3580 > #line 975 "conf_parser.y" /* yacc.c:1646  */
3581      {
3582    block_state.size.value = 0;
3583   }
3584 < #line 3530 "conf_parser.c" /* yacc.c:1646  */
3584 > #line 3585 "conf_parser.c" /* yacc.c:1646  */
3585      break;
3586  
3587 <  case 126:
3588 < #line 975 "conf_parser.y" /* yacc.c:1646  */
3587 >  case 153:
3588 > #line 980 "conf_parser.y" /* yacc.c:1646  */
3589      {
3590    if (conf_parser_ctx.pass == 2)
3591      block_state.type.value = 0;
3592   }
3593 < #line 3539 "conf_parser.c" /* yacc.c:1646  */
3593 > #line 3594 "conf_parser.c" /* yacc.c:1646  */
3594      break;
3595  
3596 <  case 130:
3597 < #line 982 "conf_parser.y" /* yacc.c:1646  */
3596 >  case 157:
3597 > #line 987 "conf_parser.y" /* yacc.c:1646  */
3598      {
3599    if (conf_parser_ctx.pass == 2)
3600      block_state.type.value = LOG_TYPE_USER;
3601   }
3602 < #line 3548 "conf_parser.c" /* yacc.c:1646  */
3602 > #line 3603 "conf_parser.c" /* yacc.c:1646  */
3603      break;
3604  
3605 <  case 131:
3606 < #line 986 "conf_parser.y" /* yacc.c:1646  */
3605 >  case 158:
3606 > #line 991 "conf_parser.y" /* yacc.c:1646  */
3607      {
3608    if (conf_parser_ctx.pass == 2)
3609      block_state.type.value = LOG_TYPE_OPER;
3610   }
3611 < #line 3557 "conf_parser.c" /* yacc.c:1646  */
3611 > #line 3612 "conf_parser.c" /* yacc.c:1646  */
3612      break;
3613  
3614 <  case 132:
3615 < #line 990 "conf_parser.y" /* yacc.c:1646  */
3561 <    {
3562 <  if (conf_parser_ctx.pass == 2)
3563 <    block_state.type.value = LOG_TYPE_GLINE;
3564 < }
3565 < #line 3566 "conf_parser.c" /* yacc.c:1646  */
3566 <    break;
3567 <
3568 <  case 133:
3569 < #line 994 "conf_parser.y" /* yacc.c:1646  */
3614 >  case 159:
3615 > #line 995 "conf_parser.y" /* yacc.c:1646  */
3616      {
3617    if (conf_parser_ctx.pass == 2)
3618      block_state.type.value = LOG_TYPE_XLINE;
3619   }
3620 < #line 3575 "conf_parser.c" /* yacc.c:1646  */
3620 > #line 3621 "conf_parser.c" /* yacc.c:1646  */
3621      break;
3622  
3623 <  case 134:
3624 < #line 998 "conf_parser.y" /* yacc.c:1646  */
3623 >  case 160:
3624 > #line 999 "conf_parser.y" /* yacc.c:1646  */
3625      {
3626    if (conf_parser_ctx.pass == 2)
3627      block_state.type.value = LOG_TYPE_RESV;
3628   }
3629 < #line 3584 "conf_parser.c" /* yacc.c:1646  */
3629 > #line 3630 "conf_parser.c" /* yacc.c:1646  */
3630      break;
3631  
3632 <  case 135:
3633 < #line 1002 "conf_parser.y" /* yacc.c:1646  */
3632 >  case 161:
3633 > #line 1003 "conf_parser.y" /* yacc.c:1646  */
3634      {
3635    if (conf_parser_ctx.pass == 2)
3636      block_state.type.value = LOG_TYPE_DLINE;
3637   }
3638 < #line 3593 "conf_parser.c" /* yacc.c:1646  */
3638 > #line 3639 "conf_parser.c" /* yacc.c:1646  */
3639      break;
3640  
3641 <  case 136:
3642 < #line 1006 "conf_parser.y" /* yacc.c:1646  */
3641 >  case 162:
3642 > #line 1007 "conf_parser.y" /* yacc.c:1646  */
3643      {
3644    if (conf_parser_ctx.pass == 2)
3645      block_state.type.value = LOG_TYPE_KLINE;
3646   }
3647 < #line 3602 "conf_parser.c" /* yacc.c:1646  */
3647 > #line 3648 "conf_parser.c" /* yacc.c:1646  */
3648      break;
3649  
3650 <  case 137:
3651 < #line 1010 "conf_parser.y" /* yacc.c:1646  */
3650 >  case 163:
3651 > #line 1011 "conf_parser.y" /* yacc.c:1646  */
3652      {
3653    if (conf_parser_ctx.pass == 2)
3654      block_state.type.value = LOG_TYPE_KILL;
3655   }
3656 < #line 3611 "conf_parser.c" /* yacc.c:1646  */
3656 > #line 3657 "conf_parser.c" /* yacc.c:1646  */
3657      break;
3658  
3659 <  case 138:
3660 < #line 1014 "conf_parser.y" /* yacc.c:1646  */
3659 >  case 164:
3660 > #line 1015 "conf_parser.y" /* yacc.c:1646  */
3661      {
3662    if (conf_parser_ctx.pass == 2)
3663      block_state.type.value = LOG_TYPE_DEBUG;
3664   }
3665 < #line 3620 "conf_parser.c" /* yacc.c:1646  */
3665 > #line 3666 "conf_parser.c" /* yacc.c:1646  */
3666      break;
3667  
3668 <  case 139:
3669 < #line 1024 "conf_parser.y" /* yacc.c:1646  */
3668 >  case 165:
3669 > #line 1025 "conf_parser.y" /* yacc.c:1646  */
3670      {
3671    if (conf_parser_ctx.pass != 2)
3672      break;
# Line 3628 | Line 3674 | yyreduce:
3674    reset_block_state();
3675    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3676   }
3677 < #line 3632 "conf_parser.c" /* yacc.c:1646  */
3677 > #line 3678 "conf_parser.c" /* yacc.c:1646  */
3678      break;
3679  
3680 <  case 140:
3681 < #line 1031 "conf_parser.y" /* yacc.c:1646  */
3680 >  case 166:
3681 > #line 1032 "conf_parser.y" /* yacc.c:1646  */
3682      {
3683 <  dlink_node *ptr = NULL;
3683 >  dlink_node *node = NULL;
3684  
3685    if (conf_parser_ctx.pass != 2)
3686      break;
3687  
3688    if (!block_state.name.buf[0])
3689      break;
3690 < #ifdef HAVE_LIBCRYPTO
3645 <  if (!block_state.file.buf[0] &&
3646 <      !block_state.rpass.buf[0])
3647 <    break;
3648 < #else
3690 >
3691    if (!block_state.rpass.buf[0])
3692      break;
3651 #endif
3693  
3694 <  DLINK_FOREACH(ptr, block_state.mask.list.head)
3694 >  DLINK_FOREACH(node, block_state.mask.list.head)
3695    {
3696      struct MaskItem *conf = NULL;
3697      struct split_nuh_item nuh;
3698  
3699 <    nuh.nuhmask  = ptr->data;
3699 >    nuh.nuhmask  = node->data;
3700      nuh.nickptr  = NULL;
3701      nuh.userptr  = block_state.user.buf;
3702      nuh.hostptr  = block_state.host.buf;
# Line 3675 | Line 3716 | yyreduce:
3716      if (block_state.rpass.buf[0])
3717        conf->passwd = xstrdup(block_state.rpass.buf);
3718  
3719 +    if (block_state.whois.buf[0])
3720 +      conf->whois = xstrdup(block_state.whois.buf);
3721 +
3722      conf->flags = block_state.flags.value;
3723      conf->modes = block_state.modes.value;
3724      conf->port  = block_state.port.value;
3725      conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3726  
3727      conf_add_class_to_conf(conf, block_state.class.buf);
3684
3685 #ifdef HAVE_LIBCRYPTO
3686    if (block_state.file.buf[0])
3687    {
3688      BIO *file = NULL;
3689      RSA *pkey = NULL;
3690
3691      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3692      {
3693        ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- file doesn't exist");
3694        break;
3695      }
3696
3697      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3698        ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- key invalid; check key syntax");
3699      else
3700      {
3701        if (RSA_size(pkey) > 128)
3702          ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- key size must be 1024 or below");
3703        else
3704          conf->rsa_public_key = pkey;
3705      }
3706
3707      BIO_set_close(file, BIO_CLOSE);
3708      BIO_free(file);
3709    }
3710 #endif /* HAVE_LIBCRYPTO */
3728    }
3729   }
3730 < #line 3714 "conf_parser.c" /* yacc.c:1646  */
3730 > #line 3731 "conf_parser.c" /* yacc.c:1646  */
3731      break;
3732  
3733 <  case 154:
3734 < #line 1123 "conf_parser.y" /* yacc.c:1646  */
3733 >  case 180:
3734 > #line 1095 "conf_parser.y" /* yacc.c:1646  */
3735      {
3736    if (conf_parser_ctx.pass == 2)
3737      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3738   }
3739 < #line 3723 "conf_parser.c" /* yacc.c:1646  */
3739 > #line 3740 "conf_parser.c" /* yacc.c:1646  */
3740      break;
3741  
3742 <  case 155:
3743 < #line 1129 "conf_parser.y" /* yacc.c:1646  */
3742 >  case 181:
3743 > #line 1101 "conf_parser.y" /* yacc.c:1646  */
3744      {
3745    if (conf_parser_ctx.pass == 2)
3746      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3747   }
3748 < #line 3732 "conf_parser.c" /* yacc.c:1646  */
3748 > #line 3749 "conf_parser.c" /* yacc.c:1646  */
3749      break;
3750  
3751 <  case 156:
3752 < #line 1135 "conf_parser.y" /* yacc.c:1646  */
3751 >  case 182:
3752 > #line 1107 "conf_parser.y" /* yacc.c:1646  */
3753      {
3754    if (conf_parser_ctx.pass == 2)
3755      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3756   }
3757 < #line 3741 "conf_parser.c" /* yacc.c:1646  */
3757 > #line 3758 "conf_parser.c" /* yacc.c:1646  */
3758      break;
3759  
3760 <  case 157:
3761 < #line 1141 "conf_parser.y" /* yacc.c:1646  */
3760 >  case 183:
3761 > #line 1113 "conf_parser.y" /* yacc.c:1646  */
3762 >    {
3763 >  if (conf_parser_ctx.pass == 2)
3764 >    strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3765 > }
3766 > #line 3767 "conf_parser.c" /* yacc.c:1646  */
3767 >    break;
3768 >
3769 >  case 184:
3770 > #line 1119 "conf_parser.y" /* yacc.c:1646  */
3771      {
3772    if (conf_parser_ctx.pass != 2)
3773      break;
# Line 3751 | Line 3777 | yyreduce:
3777    else
3778      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3779   }
3780 < #line 3755 "conf_parser.c" /* yacc.c:1646  */
3780 > #line 3781 "conf_parser.c" /* yacc.c:1646  */
3781      break;
3782  
3783 <  case 158:
3784 < #line 1152 "conf_parser.y" /* yacc.c:1646  */
3759 <    {
3760 <  if (conf_parser_ctx.pass == 2)
3761 <    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3762 < }
3763 < #line 3764 "conf_parser.c" /* yacc.c:1646  */
3764 <    break;
3765 <
3766 <  case 159:
3767 < #line 1158 "conf_parser.y" /* yacc.c:1646  */
3783 >  case 185:
3784 > #line 1130 "conf_parser.y" /* yacc.c:1646  */
3785      {
3786    if (conf_parser_ctx.pass == 2)
3787      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3788   }
3789 < #line 3773 "conf_parser.c" /* yacc.c:1646  */
3789 > #line 3790 "conf_parser.c" /* yacc.c:1646  */
3790      break;
3791  
3792 <  case 160:
3793 < #line 1164 "conf_parser.y" /* yacc.c:1646  */
3792 >  case 186:
3793 > #line 1136 "conf_parser.y" /* yacc.c:1646  */
3794      {
3795    if (conf_parser_ctx.pass != 2)
3796      break;
# Line 3783 | Line 3800 | yyreduce:
3800    else
3801      block_state.flags.value &= ~CONF_FLAGS_SSL;
3802   }
3803 < #line 3787 "conf_parser.c" /* yacc.c:1646  */
3803 > #line 3804 "conf_parser.c" /* yacc.c:1646  */
3804      break;
3805  
3806 <  case 161:
3807 < #line 1175 "conf_parser.y" /* yacc.c:1646  */
3806 >  case 187:
3807 > #line 1147 "conf_parser.y" /* yacc.c:1646  */
3808      {
3809    if (conf_parser_ctx.pass == 2)
3810      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3811   }
3812 < #line 3796 "conf_parser.c" /* yacc.c:1646  */
3812 > #line 3813 "conf_parser.c" /* yacc.c:1646  */
3813      break;
3814  
3815 <  case 162:
3816 < #line 1181 "conf_parser.y" /* yacc.c:1646  */
3815 >  case 188:
3816 > #line 1153 "conf_parser.y" /* yacc.c:1646  */
3817      {
3818    if (conf_parser_ctx.pass == 2)
3819      block_state.modes.value = 0;
3820   }
3821 < #line 3805 "conf_parser.c" /* yacc.c:1646  */
3821 > #line 3822 "conf_parser.c" /* yacc.c:1646  */
3822      break;
3823  
3824 <  case 166:
3825 < #line 1188 "conf_parser.y" /* yacc.c:1646  */
3824 >  case 192:
3825 > #line 1160 "conf_parser.y" /* yacc.c:1646  */
3826      {
3827    if (conf_parser_ctx.pass == 2)
3828      block_state.modes.value |= UMODE_BOTS;
3829   }
3830 < #line 3814 "conf_parser.c" /* yacc.c:1646  */
3830 > #line 3831 "conf_parser.c" /* yacc.c:1646  */
3831      break;
3832  
3833 <  case 167:
3834 < #line 1192 "conf_parser.y" /* yacc.c:1646  */
3833 >  case 193:
3834 > #line 1164 "conf_parser.y" /* yacc.c:1646  */
3835      {
3836    if (conf_parser_ctx.pass == 2)
3837      block_state.modes.value |= UMODE_CCONN;
3838   }
3839 < #line 3823 "conf_parser.c" /* yacc.c:1646  */
3839 > #line 3840 "conf_parser.c" /* yacc.c:1646  */
3840      break;
3841  
3842 <  case 168:
3843 < #line 1196 "conf_parser.y" /* yacc.c:1646  */
3842 >  case 194:
3843 > #line 1168 "conf_parser.y" /* yacc.c:1646  */
3844      {
3845    if (conf_parser_ctx.pass == 2)
3846      block_state.modes.value |= UMODE_DEAF;
3847   }
3848 < #line 3832 "conf_parser.c" /* yacc.c:1646  */
3848 > #line 3849 "conf_parser.c" /* yacc.c:1646  */
3849      break;
3850  
3851 <  case 169:
3852 < #line 1200 "conf_parser.y" /* yacc.c:1646  */
3851 >  case 195:
3852 > #line 1172 "conf_parser.y" /* yacc.c:1646  */
3853      {
3854    if (conf_parser_ctx.pass == 2)
3855      block_state.modes.value |= UMODE_DEBUG;
3856   }
3857 < #line 3841 "conf_parser.c" /* yacc.c:1646  */
3857 > #line 3858 "conf_parser.c" /* yacc.c:1646  */
3858      break;
3859  
3860 <  case 170:
3861 < #line 1204 "conf_parser.y" /* yacc.c:1646  */
3860 >  case 196:
3861 > #line 1176 "conf_parser.y" /* yacc.c:1646  */
3862      {
3863    if (conf_parser_ctx.pass == 2)
3864      block_state.modes.value |= UMODE_FULL;
3865   }
3866 < #line 3850 "conf_parser.c" /* yacc.c:1646  */
3866 > #line 3867 "conf_parser.c" /* yacc.c:1646  */
3867      break;
3868  
3869 <  case 171:
3870 < #line 1208 "conf_parser.y" /* yacc.c:1646  */
3869 >  case 197:
3870 > #line 1180 "conf_parser.y" /* yacc.c:1646  */
3871      {
3872    if (conf_parser_ctx.pass == 2)
3873      block_state.modes.value |= UMODE_HIDDEN;
3874   }
3875 < #line 3859 "conf_parser.c" /* yacc.c:1646  */
3875 > #line 3876 "conf_parser.c" /* yacc.c:1646  */
3876      break;
3877  
3878 <  case 172:
3879 < #line 1212 "conf_parser.y" /* yacc.c:1646  */
3878 >  case 198:
3879 > #line 1184 "conf_parser.y" /* yacc.c:1646  */
3880      {
3881    if (conf_parser_ctx.pass == 2)
3882      block_state.modes.value |= UMODE_HIDECHANS;
3883   }
3884 < #line 3868 "conf_parser.c" /* yacc.c:1646  */
3884 > #line 3885 "conf_parser.c" /* yacc.c:1646  */
3885      break;
3886  
3887 <  case 173:
3888 < #line 1216 "conf_parser.y" /* yacc.c:1646  */
3887 >  case 199:
3888 > #line 1188 "conf_parser.y" /* yacc.c:1646  */
3889      {
3890    if (conf_parser_ctx.pass == 2)
3891      block_state.modes.value |= UMODE_HIDEIDLE;
3892   }
3893 < #line 3877 "conf_parser.c" /* yacc.c:1646  */
3893 > #line 3894 "conf_parser.c" /* yacc.c:1646  */
3894      break;
3895  
3896 <  case 174:
3897 < #line 1220 "conf_parser.y" /* yacc.c:1646  */
3896 >  case 200:
3897 > #line 1192 "conf_parser.y" /* yacc.c:1646  */
3898      {
3899    if (conf_parser_ctx.pass == 2)
3900      block_state.modes.value |= UMODE_SKILL;
3901   }
3902 < #line 3886 "conf_parser.c" /* yacc.c:1646  */
3902 > #line 3903 "conf_parser.c" /* yacc.c:1646  */
3903      break;
3904  
3905 <  case 175:
3906 < #line 1224 "conf_parser.y" /* yacc.c:1646  */
3905 >  case 201:
3906 > #line 1196 "conf_parser.y" /* yacc.c:1646  */
3907      {
3908    if (conf_parser_ctx.pass == 2)
3909      block_state.modes.value |= UMODE_NCHANGE;
3910   }
3911 < #line 3895 "conf_parser.c" /* yacc.c:1646  */
3911 > #line 3912 "conf_parser.c" /* yacc.c:1646  */
3912      break;
3913  
3914 <  case 176:
3915 < #line 1228 "conf_parser.y" /* yacc.c:1646  */
3914 >  case 202:
3915 > #line 1200 "conf_parser.y" /* yacc.c:1646  */
3916      {
3917    if (conf_parser_ctx.pass == 2)
3918      block_state.modes.value |= UMODE_REJ;
3919   }
3920 < #line 3904 "conf_parser.c" /* yacc.c:1646  */
3920 > #line 3921 "conf_parser.c" /* yacc.c:1646  */
3921      break;
3922  
3923 <  case 177:
3924 < #line 1232 "conf_parser.y" /* yacc.c:1646  */
3923 >  case 203:
3924 > #line 1204 "conf_parser.y" /* yacc.c:1646  */
3925      {
3926    if (conf_parser_ctx.pass == 2)
3927      block_state.modes.value |= UMODE_UNAUTH;
3928   }
3929 < #line 3913 "conf_parser.c" /* yacc.c:1646  */
3929 > #line 3930 "conf_parser.c" /* yacc.c:1646  */
3930      break;
3931  
3932 <  case 178:
3933 < #line 1236 "conf_parser.y" /* yacc.c:1646  */
3932 >  case 204:
3933 > #line 1208 "conf_parser.y" /* yacc.c:1646  */
3934      {
3935    if (conf_parser_ctx.pass == 2)
3936      block_state.modes.value |= UMODE_SPY;
3937   }
3938 < #line 3922 "conf_parser.c" /* yacc.c:1646  */
3938 > #line 3939 "conf_parser.c" /* yacc.c:1646  */
3939      break;
3940  
3941 <  case 179:
3942 < #line 1240 "conf_parser.y" /* yacc.c:1646  */
3941 >  case 205:
3942 > #line 1212 "conf_parser.y" /* yacc.c:1646  */
3943      {
3944    if (conf_parser_ctx.pass == 2)
3945      block_state.modes.value |= UMODE_EXTERNAL;
3946   }
3947 < #line 3931 "conf_parser.c" /* yacc.c:1646  */
3947 > #line 3948 "conf_parser.c" /* yacc.c:1646  */
3948      break;
3949  
3950 <  case 180:
3951 < #line 1244 "conf_parser.y" /* yacc.c:1646  */
3950 >  case 206:
3951 > #line 1216 "conf_parser.y" /* yacc.c:1646  */
3952      {
3953    if (conf_parser_ctx.pass == 2)
3954      block_state.modes.value |= UMODE_SERVNOTICE;
3955   }
3956 < #line 3940 "conf_parser.c" /* yacc.c:1646  */
3956 > #line 3957 "conf_parser.c" /* yacc.c:1646  */
3957      break;
3958  
3959 <  case 181:
3960 < #line 1248 "conf_parser.y" /* yacc.c:1646  */
3959 >  case 207:
3960 > #line 1220 "conf_parser.y" /* yacc.c:1646  */
3961      {
3962    if (conf_parser_ctx.pass == 2)
3963      block_state.modes.value |= UMODE_INVISIBLE;
3964   }
3965 < #line 3949 "conf_parser.c" /* yacc.c:1646  */
3965 > #line 3966 "conf_parser.c" /* yacc.c:1646  */
3966      break;
3967  
3968 <  case 182:
3969 < #line 1252 "conf_parser.y" /* yacc.c:1646  */
3968 >  case 208:
3969 > #line 1224 "conf_parser.y" /* yacc.c:1646  */
3970      {
3971    if (conf_parser_ctx.pass == 2)
3972      block_state.modes.value |= UMODE_WALLOP;
3973   }
3974 < #line 3958 "conf_parser.c" /* yacc.c:1646  */
3974 > #line 3975 "conf_parser.c" /* yacc.c:1646  */
3975      break;
3976  
3977 <  case 183:
3978 < #line 1256 "conf_parser.y" /* yacc.c:1646  */
3977 >  case 209:
3978 > #line 1228 "conf_parser.y" /* yacc.c:1646  */
3979      {
3980    if (conf_parser_ctx.pass == 2)
3981      block_state.modes.value |= UMODE_SOFTCALLERID;
3982   }
3983 < #line 3967 "conf_parser.c" /* yacc.c:1646  */
3983 > #line 3984 "conf_parser.c" /* yacc.c:1646  */
3984      break;
3985  
3986 <  case 184:
3987 < #line 1260 "conf_parser.y" /* yacc.c:1646  */
3986 >  case 210:
3987 > #line 1232 "conf_parser.y" /* yacc.c:1646  */
3988      {
3989    if (conf_parser_ctx.pass == 2)
3990      block_state.modes.value |= UMODE_CALLERID;
3991   }
3992 < #line 3976 "conf_parser.c" /* yacc.c:1646  */
3992 > #line 3993 "conf_parser.c" /* yacc.c:1646  */
3993      break;
3994  
3995 <  case 185:
3996 < #line 1264 "conf_parser.y" /* yacc.c:1646  */
3995 >  case 211:
3996 > #line 1236 "conf_parser.y" /* yacc.c:1646  */
3997      {
3998    if (conf_parser_ctx.pass == 2)
3999      block_state.modes.value |= UMODE_LOCOPS;
4000   }
4001 < #line 3985 "conf_parser.c" /* yacc.c:1646  */
4001 > #line 4002 "conf_parser.c" /* yacc.c:1646  */
4002      break;
4003  
4004 <  case 186:
4005 < #line 1268 "conf_parser.y" /* yacc.c:1646  */
4004 >  case 212:
4005 > #line 1240 "conf_parser.y" /* yacc.c:1646  */
4006      {
4007    if (conf_parser_ctx.pass == 2)
4008      block_state.modes.value |= UMODE_REGONLY;
4009   }
4010 < #line 3994 "conf_parser.c" /* yacc.c:1646  */
4010 > #line 4011 "conf_parser.c" /* yacc.c:1646  */
4011      break;
4012  
4013 <  case 187:
4014 < #line 1272 "conf_parser.y" /* yacc.c:1646  */
4013 >  case 213:
4014 > #line 1244 "conf_parser.y" /* yacc.c:1646  */
4015      {
4016    if (conf_parser_ctx.pass == 2)
4017      block_state.modes.value |= UMODE_FARCONNECT;
4018   }
4019 < #line 4003 "conf_parser.c" /* yacc.c:1646  */
4019 > #line 4020 "conf_parser.c" /* yacc.c:1646  */
4020      break;
4021  
4022 <  case 188:
4023 < #line 1278 "conf_parser.y" /* yacc.c:1646  */
4022 >  case 214:
4023 > #line 1250 "conf_parser.y" /* yacc.c:1646  */
4024      {
4025    if (conf_parser_ctx.pass == 2)
4026      block_state.port.value = 0;
4027   }
4028 < #line 4012 "conf_parser.c" /* yacc.c:1646  */
4028 > #line 4029 "conf_parser.c" /* yacc.c:1646  */
4029      break;
4030  
4031 <  case 192:
4032 < #line 1285 "conf_parser.y" /* yacc.c:1646  */
4031 >  case 218:
4032 > #line 1257 "conf_parser.y" /* yacc.c:1646  */
4033      {
4034    if (conf_parser_ctx.pass == 2)
4035      block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4036   }
4037 < #line 4021 "conf_parser.c" /* yacc.c:1646  */
4037 > #line 4038 "conf_parser.c" /* yacc.c:1646  */
4038      break;
4039  
4040 <  case 193:
4041 < #line 1289 "conf_parser.y" /* yacc.c:1646  */
4040 >  case 219:
4041 > #line 1261 "conf_parser.y" /* yacc.c:1646  */
4042      {
4043    if (conf_parser_ctx.pass == 2)
4044      block_state.port.value |= OPER_FLAG_KILL;
4045   }
4046 < #line 4030 "conf_parser.c" /* yacc.c:1646  */
4046 > #line 4047 "conf_parser.c" /* yacc.c:1646  */
4047      break;
4048  
4049 <  case 194:
4050 < #line 1293 "conf_parser.y" /* yacc.c:1646  */
4049 >  case 220:
4050 > #line 1265 "conf_parser.y" /* yacc.c:1646  */
4051      {
4052    if (conf_parser_ctx.pass == 2)
4053      block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4054   }
4055 < #line 4039 "conf_parser.c" /* yacc.c:1646  */
4055 > #line 4056 "conf_parser.c" /* yacc.c:1646  */
4056      break;
4057  
4058 <  case 195:
4059 < #line 1297 "conf_parser.y" /* yacc.c:1646  */
4058 >  case 221:
4059 > #line 1269 "conf_parser.y" /* yacc.c:1646  */
4060      {
4061    if (conf_parser_ctx.pass == 2)
4062      block_state.port.value |= OPER_FLAG_CONNECT;
4063   }
4064 < #line 4048 "conf_parser.c" /* yacc.c:1646  */
4064 > #line 4065 "conf_parser.c" /* yacc.c:1646  */
4065      break;
4066  
4067 <  case 196:
4068 < #line 1301 "conf_parser.y" /* yacc.c:1646  */
4067 >  case 222:
4068 > #line 1273 "conf_parser.y" /* yacc.c:1646  */
4069      {
4070    if (conf_parser_ctx.pass == 2)
4071      block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4072   }
4073 < #line 4057 "conf_parser.c" /* yacc.c:1646  */
4073 > #line 4074 "conf_parser.c" /* yacc.c:1646  */
4074      break;
4075  
4076 <  case 197:
4077 < #line 1305 "conf_parser.y" /* yacc.c:1646  */
4076 >  case 223:
4077 > #line 1277 "conf_parser.y" /* yacc.c:1646  */
4078      {
4079    if (conf_parser_ctx.pass == 2)
4080      block_state.port.value |= OPER_FLAG_SQUIT;
4081   }
4082 < #line 4066 "conf_parser.c" /* yacc.c:1646  */
4082 > #line 4083 "conf_parser.c" /* yacc.c:1646  */
4083      break;
4084  
4085 <  case 198:
4086 < #line 1309 "conf_parser.y" /* yacc.c:1646  */
4085 >  case 224:
4086 > #line 1281 "conf_parser.y" /* yacc.c:1646  */
4087      {
4088    if (conf_parser_ctx.pass == 2)
4089      block_state.port.value |= OPER_FLAG_KLINE;
4090   }
4091 < #line 4075 "conf_parser.c" /* yacc.c:1646  */
4091 > #line 4092 "conf_parser.c" /* yacc.c:1646  */
4092      break;
4093  
4094 <  case 199:
4095 < #line 1313 "conf_parser.y" /* yacc.c:1646  */
4094 >  case 225:
4095 > #line 1285 "conf_parser.y" /* yacc.c:1646  */
4096      {
4097    if (conf_parser_ctx.pass == 2)
4098      block_state.port.value |= OPER_FLAG_UNKLINE;
4099   }
4100 < #line 4084 "conf_parser.c" /* yacc.c:1646  */
4100 > #line 4101 "conf_parser.c" /* yacc.c:1646  */
4101      break;
4102  
4103 <  case 200:
4104 < #line 1317 "conf_parser.y" /* yacc.c:1646  */
4103 >  case 226:
4104 > #line 1289 "conf_parser.y" /* yacc.c:1646  */
4105      {
4106    if (conf_parser_ctx.pass == 2)
4107      block_state.port.value |= OPER_FLAG_DLINE;
4108   }
4109 < #line 4093 "conf_parser.c" /* yacc.c:1646  */
4109 > #line 4110 "conf_parser.c" /* yacc.c:1646  */
4110      break;
4111  
4112 <  case 201:
4113 < #line 1321 "conf_parser.y" /* yacc.c:1646  */
4112 >  case 227:
4113 > #line 1293 "conf_parser.y" /* yacc.c:1646  */
4114      {
4115    if (conf_parser_ctx.pass == 2)
4116      block_state.port.value |= OPER_FLAG_UNDLINE;
4117   }
4118 < #line 4102 "conf_parser.c" /* yacc.c:1646  */
4118 > #line 4119 "conf_parser.c" /* yacc.c:1646  */
4119      break;
4120  
4121 <  case 202:
4122 < #line 1325 "conf_parser.y" /* yacc.c:1646  */
4121 >  case 228:
4122 > #line 1297 "conf_parser.y" /* yacc.c:1646  */
4123      {
4124    if (conf_parser_ctx.pass == 2)
4125      block_state.port.value |= OPER_FLAG_XLINE;
4126   }
4127 < #line 4111 "conf_parser.c" /* yacc.c:1646  */
4127 > #line 4128 "conf_parser.c" /* yacc.c:1646  */
4128      break;
4129  
4130 <  case 203:
4131 < #line 1329 "conf_parser.y" /* yacc.c:1646  */
4130 >  case 229:
4131 > #line 1301 "conf_parser.y" /* yacc.c:1646  */
4132      {
4133    if (conf_parser_ctx.pass == 2)
4134      block_state.port.value |= OPER_FLAG_UNXLINE;
4135   }
4136 < #line 4120 "conf_parser.c" /* yacc.c:1646  */
4136 > #line 4137 "conf_parser.c" /* yacc.c:1646  */
4137      break;
4138  
4139 <  case 204:
4140 < #line 1333 "conf_parser.y" /* yacc.c:1646  */
4139 >  case 230:
4140 > #line 1305 "conf_parser.y" /* yacc.c:1646  */
4141      {
4142    if (conf_parser_ctx.pass == 2)
4143 <    block_state.port.value |= OPER_FLAG_GLINE;
4143 >    block_state.port.value |= OPER_FLAG_DIE;
4144   }
4145 < #line 4129 "conf_parser.c" /* yacc.c:1646  */
4145 > #line 4146 "conf_parser.c" /* yacc.c:1646  */
4146      break;
4147  
4148 <  case 205:
4149 < #line 1337 "conf_parser.y" /* yacc.c:1646  */
4148 >  case 231:
4149 > #line 1309 "conf_parser.y" /* yacc.c:1646  */
4150      {
4151    if (conf_parser_ctx.pass == 2)
4152 <    block_state.port.value |= OPER_FLAG_DIE;
4152 >    block_state.port.value |= OPER_FLAG_RESTART;
4153   }
4154 < #line 4138 "conf_parser.c" /* yacc.c:1646  */
4154 > #line 4155 "conf_parser.c" /* yacc.c:1646  */
4155      break;
4156  
4157 <  case 206:
4158 < #line 1341 "conf_parser.y" /* yacc.c:1646  */
4157 >  case 232:
4158 > #line 1313 "conf_parser.y" /* yacc.c:1646  */
4159      {
4160    if (conf_parser_ctx.pass == 2)
4161 <    block_state.port.value |= OPER_FLAG_RESTART;
4161 >    block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
4162   }
4163 < #line 4147 "conf_parser.c" /* yacc.c:1646  */
4163 > #line 4164 "conf_parser.c" /* yacc.c:1646  */
4164      break;
4165  
4166 <  case 207:
4167 < #line 1345 "conf_parser.y" /* yacc.c:1646  */
4166 >  case 233:
4167 > #line 1317 "conf_parser.y" /* yacc.c:1646  */
4168      {
4169    if (conf_parser_ctx.pass == 2)
4170      block_state.port.value |= OPER_FLAG_REHASH;
4171   }
4172 < #line 4156 "conf_parser.c" /* yacc.c:1646  */
4172 > #line 4173 "conf_parser.c" /* yacc.c:1646  */
4173      break;
4174  
4175 <  case 208:
4176 < #line 1349 "conf_parser.y" /* yacc.c:1646  */
4175 >  case 234:
4176 > #line 1321 "conf_parser.y" /* yacc.c:1646  */
4177      {
4178    if (conf_parser_ctx.pass == 2)
4179      block_state.port.value |= OPER_FLAG_ADMIN;
4180   }
4181 < #line 4165 "conf_parser.c" /* yacc.c:1646  */
4181 > #line 4182 "conf_parser.c" /* yacc.c:1646  */
4182      break;
4183  
4184 <  case 209:
4185 < #line 1353 "conf_parser.y" /* yacc.c:1646  */
4184 >  case 235:
4185 > #line 1325 "conf_parser.y" /* yacc.c:1646  */
4186      {
4187    if (conf_parser_ctx.pass == 2)
4188      block_state.port.value |= OPER_FLAG_GLOBOPS;
4189   }
4190 < #line 4174 "conf_parser.c" /* yacc.c:1646  */
4190 > #line 4191 "conf_parser.c" /* yacc.c:1646  */
4191      break;
4192  
4193 <  case 210:
4194 < #line 1357 "conf_parser.y" /* yacc.c:1646  */
4193 >  case 236:
4194 > #line 1329 "conf_parser.y" /* yacc.c:1646  */
4195      {
4196    if (conf_parser_ctx.pass == 2)
4197      block_state.port.value |= OPER_FLAG_WALLOPS;
4198   }
4199 < #line 4183 "conf_parser.c" /* yacc.c:1646  */
4199 > #line 4200 "conf_parser.c" /* yacc.c:1646  */
4200      break;
4201  
4202 <  case 211:
4203 < #line 1361 "conf_parser.y" /* yacc.c:1646  */
4202 >  case 237:
4203 > #line 1333 "conf_parser.y" /* yacc.c:1646  */
4204      {
4205    if (conf_parser_ctx.pass == 2)
4206      block_state.port.value |= OPER_FLAG_LOCOPS;
4207   }
4208 < #line 4192 "conf_parser.c" /* yacc.c:1646  */
4208 > #line 4209 "conf_parser.c" /* yacc.c:1646  */
4209      break;
4210  
4211 <  case 212:
4212 < #line 1365 "conf_parser.y" /* yacc.c:1646  */
4211 >  case 238:
4212 > #line 1337 "conf_parser.y" /* yacc.c:1646  */
4213      {
4214    if (conf_parser_ctx.pass == 2)
4215      block_state.port.value |= OPER_FLAG_REMOTEBAN;
4216   }
4217 < #line 4201 "conf_parser.c" /* yacc.c:1646  */
4217 > #line 4218 "conf_parser.c" /* yacc.c:1646  */
4218      break;
4219  
4220 <  case 213:
4221 < #line 1369 "conf_parser.y" /* yacc.c:1646  */
4220 >  case 239:
4221 > #line 1341 "conf_parser.y" /* yacc.c:1646  */
4222      {
4223    if (conf_parser_ctx.pass == 2)
4224      block_state.port.value |= OPER_FLAG_SET;
4225   }
4226 < #line 4210 "conf_parser.c" /* yacc.c:1646  */
4226 > #line 4227 "conf_parser.c" /* yacc.c:1646  */
4227      break;
4228  
4229 <  case 214:
4230 < #line 1373 "conf_parser.y" /* yacc.c:1646  */
4229 >  case 240:
4230 > #line 1345 "conf_parser.y" /* yacc.c:1646  */
4231      {
4232    if (conf_parser_ctx.pass == 2)
4233      block_state.port.value |= OPER_FLAG_MODULE;
4234   }
4235 < #line 4219 "conf_parser.c" /* yacc.c:1646  */
4235 > #line 4236 "conf_parser.c" /* yacc.c:1646  */
4236 >    break;
4237 >
4238 >  case 241:
4239 > #line 1349 "conf_parser.y" /* yacc.c:1646  */
4240 >    {
4241 >  if (conf_parser_ctx.pass == 2)
4242 >    block_state.port.value |= OPER_FLAG_OPME;
4243 > }
4244 > #line 4245 "conf_parser.c" /* yacc.c:1646  */
4245 >    break;
4246 >
4247 >  case 242:
4248 > #line 1353 "conf_parser.y" /* yacc.c:1646  */
4249 >    {
4250 >  if (conf_parser_ctx.pass == 2)
4251 >    block_state.port.value |= OPER_FLAG_NICK_RESV;
4252 > }
4253 > #line 4254 "conf_parser.c" /* yacc.c:1646  */
4254 >    break;
4255 >
4256 >  case 243:
4257 > #line 1357 "conf_parser.y" /* yacc.c:1646  */
4258 >    {
4259 >  if (conf_parser_ctx.pass == 2)
4260 >    block_state.port.value |= OPER_FLAG_JOIN_RESV;
4261 > }
4262 > #line 4263 "conf_parser.c" /* yacc.c:1646  */
4263 >    break;
4264 >
4265 >  case 244:
4266 > #line 1361 "conf_parser.y" /* yacc.c:1646  */
4267 >    {
4268 >  if (conf_parser_ctx.pass == 2)
4269 >    block_state.port.value |= OPER_FLAG_RESV;
4270 > }
4271 > #line 4272 "conf_parser.c" /* yacc.c:1646  */
4272      break;
4273  
4274 <  case 215:
4275 < #line 1383 "conf_parser.y" /* yacc.c:1646  */
4274 >  case 245:
4275 > #line 1365 "conf_parser.y" /* yacc.c:1646  */
4276 >    {
4277 >  if (conf_parser_ctx.pass == 2)
4278 >    block_state.port.value |= OPER_FLAG_UNRESV;
4279 > }
4280 > #line 4281 "conf_parser.c" /* yacc.c:1646  */
4281 >    break;
4282 >
4283 >  case 246:
4284 > #line 1369 "conf_parser.y" /* yacc.c:1646  */
4285 >    {
4286 >  if (conf_parser_ctx.pass == 2)
4287 >    block_state.port.value |= OPER_FLAG_CLOSE;
4288 > }
4289 > #line 4290 "conf_parser.c" /* yacc.c:1646  */
4290 >    break;
4291 >
4292 >  case 247:
4293 > #line 1379 "conf_parser.y" /* yacc.c:1646  */
4294      {
4295    if (conf_parser_ctx.pass != 1)
4296      break;
# Line 4232 | Line 4303 | yyreduce:
4303    block_state.max_sendq.value = DEFAULT_SENDQ;
4304    block_state.max_recvq.value = DEFAULT_RECVQ;
4305   }
4306 < #line 4236 "conf_parser.c" /* yacc.c:1646  */
4306 > #line 4307 "conf_parser.c" /* yacc.c:1646  */
4307      break;
4308  
4309 <  case 216:
4310 < #line 1395 "conf_parser.y" /* yacc.c:1646  */
4309 >  case 248:
4310 > #line 1391 "conf_parser.y" /* yacc.c:1646  */
4311      {
4312    struct ClassItem *class = NULL;
4313  
# Line 4250 | Line 4321 | yyreduce:
4321      class = class_make();
4322  
4323    class->active = 1;
4324 <  MyFree(class->name);
4324 >  xfree(class->name);
4325    class->name = xstrdup(block_state.class.buf);
4326    class->ping_freq = block_state.ping_freq.value;
4327    class->max_perip = block_state.max_perip.value;
# Line 4274 | Line 4345 | yyreduce:
4345    class->min_idle = block_state.min_idle.value;
4346    class->max_idle = block_state.max_idle.value;
4347  
4348 <  if (class->number_per_cidr && block_state.number_per_cidr.value)
4278 <    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4279 <        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4280 <      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4281 <          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4282 <        rebuild_cidr_list(class);
4348 >  rebuild_cidr_list(class);
4349  
4350    class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4351    class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4352    class->number_per_cidr = block_state.number_per_cidr.value;
4353   }
4354 < #line 4289 "conf_parser.c" /* yacc.c:1646  */
4354 > #line 4355 "conf_parser.c" /* yacc.c:1646  */
4355      break;
4356  
4357 <  case 237:
4358 < #line 1464 "conf_parser.y" /* yacc.c:1646  */
4357 >  case 269:
4358 > #line 1455 "conf_parser.y" /* yacc.c:1646  */
4359      {
4360    if (conf_parser_ctx.pass == 1)
4361      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4362   }
4363 < #line 4298 "conf_parser.c" /* yacc.c:1646  */
4363 > #line 4364 "conf_parser.c" /* yacc.c:1646  */
4364      break;
4365  
4366 <  case 238:
4367 < #line 1470 "conf_parser.y" /* yacc.c:1646  */
4366 >  case 270:
4367 > #line 1461 "conf_parser.y" /* yacc.c:1646  */
4368      {
4369    if (conf_parser_ctx.pass == 1)
4370      block_state.ping_freq.value = (yyvsp[-1].number);
4371   }
4372 < #line 4307 "conf_parser.c" /* yacc.c:1646  */
4372 > #line 4373 "conf_parser.c" /* yacc.c:1646  */
4373      break;
4374  
4375 <  case 239:
4376 < #line 1476 "conf_parser.y" /* yacc.c:1646  */
4375 >  case 271:
4376 > #line 1467 "conf_parser.y" /* yacc.c:1646  */
4377      {
4378    if (conf_parser_ctx.pass == 1)
4379      block_state.max_perip.value = (yyvsp[-1].number);
4380   }
4381 < #line 4316 "conf_parser.c" /* yacc.c:1646  */
4381 > #line 4382 "conf_parser.c" /* yacc.c:1646  */
4382      break;
4383  
4384 <  case 240:
4385 < #line 1482 "conf_parser.y" /* yacc.c:1646  */
4384 >  case 272:
4385 > #line 1473 "conf_parser.y" /* yacc.c:1646  */
4386      {
4387    if (conf_parser_ctx.pass == 1)
4388      block_state.con_freq.value = (yyvsp[-1].number);
4389   }
4390 < #line 4325 "conf_parser.c" /* yacc.c:1646  */
4390 > #line 4391 "conf_parser.c" /* yacc.c:1646  */
4391      break;
4392  
4393 <  case 241:
4394 < #line 1488 "conf_parser.y" /* yacc.c:1646  */
4393 >  case 273:
4394 > #line 1479 "conf_parser.y" /* yacc.c:1646  */
4395      {
4396    if (conf_parser_ctx.pass == 1)
4397      block_state.max_channels.value = (yyvsp[-1].number);
4398   }
4399 < #line 4334 "conf_parser.c" /* yacc.c:1646  */
4399 > #line 4400 "conf_parser.c" /* yacc.c:1646  */
4400      break;
4401  
4402 <  case 242:
4403 < #line 1494 "conf_parser.y" /* yacc.c:1646  */
4402 >  case 274:
4403 > #line 1485 "conf_parser.y" /* yacc.c:1646  */
4404      {
4405    if (conf_parser_ctx.pass == 1)
4406      block_state.max_total.value = (yyvsp[-1].number);
4407   }
4408 < #line 4343 "conf_parser.c" /* yacc.c:1646  */
4408 > #line 4409 "conf_parser.c" /* yacc.c:1646  */
4409      break;
4410  
4411 <  case 243:
4412 < #line 1500 "conf_parser.y" /* yacc.c:1646  */
4411 >  case 275:
4412 > #line 1491 "conf_parser.y" /* yacc.c:1646  */
4413      {
4414    if (conf_parser_ctx.pass == 1)
4415      block_state.max_global.value = (yyvsp[-1].number);
4416   }
4417 < #line 4352 "conf_parser.c" /* yacc.c:1646  */
4417 > #line 4418 "conf_parser.c" /* yacc.c:1646  */
4418      break;
4419  
4420 <  case 244:
4421 < #line 1506 "conf_parser.y" /* yacc.c:1646  */
4420 >  case 276:
4421 > #line 1497 "conf_parser.y" /* yacc.c:1646  */
4422      {
4423    if (conf_parser_ctx.pass == 1)
4424      block_state.max_local.value = (yyvsp[-1].number);
4425   }
4426 < #line 4361 "conf_parser.c" /* yacc.c:1646  */
4426 > #line 4427 "conf_parser.c" /* yacc.c:1646  */
4427      break;
4428  
4429 <  case 245:
4430 < #line 1512 "conf_parser.y" /* yacc.c:1646  */
4429 >  case 277:
4430 > #line 1503 "conf_parser.y" /* yacc.c:1646  */
4431      {
4432    if (conf_parser_ctx.pass == 1)
4433      block_state.max_ident.value = (yyvsp[-1].number);
4434   }
4435 < #line 4370 "conf_parser.c" /* yacc.c:1646  */
4435 > #line 4436 "conf_parser.c" /* yacc.c:1646  */
4436      break;
4437  
4438 <  case 246:
4439 < #line 1518 "conf_parser.y" /* yacc.c:1646  */
4438 >  case 278:
4439 > #line 1509 "conf_parser.y" /* yacc.c:1646  */
4440      {
4441    if (conf_parser_ctx.pass == 1)
4442      block_state.max_sendq.value = (yyvsp[-1].number);
4443   }
4444 < #line 4379 "conf_parser.c" /* yacc.c:1646  */
4444 > #line 4445 "conf_parser.c" /* yacc.c:1646  */
4445      break;
4446  
4447 <  case 247:
4448 < #line 1524 "conf_parser.y" /* yacc.c:1646  */
4447 >  case 279:
4448 > #line 1515 "conf_parser.y" /* yacc.c:1646  */
4449      {
4450    if (conf_parser_ctx.pass == 1)
4451      if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4452        block_state.max_recvq.value = (yyvsp[-1].number);
4453   }
4454 < #line 4389 "conf_parser.c" /* yacc.c:1646  */
4454 > #line 4455 "conf_parser.c" /* yacc.c:1646  */
4455      break;
4456  
4457 <  case 248:
4458 < #line 1531 "conf_parser.y" /* yacc.c:1646  */
4457 >  case 280:
4458 > #line 1522 "conf_parser.y" /* yacc.c:1646  */
4459      {
4460    if (conf_parser_ctx.pass == 1)
4461      block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4462   }
4463 < #line 4398 "conf_parser.c" /* yacc.c:1646  */
4463 > #line 4464 "conf_parser.c" /* yacc.c:1646  */
4464      break;
4465  
4466 <  case 249:
4467 < #line 1537 "conf_parser.y" /* yacc.c:1646  */
4466 >  case 281:
4467 > #line 1528 "conf_parser.y" /* yacc.c:1646  */
4468      {
4469    if (conf_parser_ctx.pass == 1)
4470      block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4471   }
4472 < #line 4407 "conf_parser.c" /* yacc.c:1646  */
4472 > #line 4473 "conf_parser.c" /* yacc.c:1646  */
4473      break;
4474  
4475 <  case 250:
4476 < #line 1543 "conf_parser.y" /* yacc.c:1646  */
4475 >  case 282:
4476 > #line 1534 "conf_parser.y" /* yacc.c:1646  */
4477      {
4478    if (conf_parser_ctx.pass == 1)
4479      block_state.number_per_cidr.value = (yyvsp[-1].number);
4480   }
4481 < #line 4416 "conf_parser.c" /* yacc.c:1646  */
4481 > #line 4482 "conf_parser.c" /* yacc.c:1646  */
4482      break;
4483  
4484 <  case 251:
4485 < #line 1549 "conf_parser.y" /* yacc.c:1646  */
4484 >  case 283:
4485 > #line 1540 "conf_parser.y" /* yacc.c:1646  */
4486      {
4487    if (conf_parser_ctx.pass != 1)
4488      break;
# Line 4424 | Line 4490 | yyreduce:
4490    block_state.min_idle.value = (yyvsp[-1].number);
4491    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4492   }
4493 < #line 4428 "conf_parser.c" /* yacc.c:1646  */
4493 > #line 4494 "conf_parser.c" /* yacc.c:1646  */
4494      break;
4495  
4496 <  case 252:
4497 < #line 1558 "conf_parser.y" /* yacc.c:1646  */
4496 >  case 284:
4497 > #line 1549 "conf_parser.y" /* yacc.c:1646  */
4498      {
4499    if (conf_parser_ctx.pass != 1)
4500      break;
# Line 4436 | Line 4502 | yyreduce:
4502    block_state.max_idle.value = (yyvsp[-1].number);
4503    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4504   }
4505 < #line 4440 "conf_parser.c" /* yacc.c:1646  */
4505 > #line 4506 "conf_parser.c" /* yacc.c:1646  */
4506      break;
4507  
4508 <  case 253:
4509 < #line 1567 "conf_parser.y" /* yacc.c:1646  */
4508 >  case 285:
4509 > #line 1558 "conf_parser.y" /* yacc.c:1646  */
4510      {
4511    if (conf_parser_ctx.pass == 1)
4512      block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4513   }
4514 < #line 4449 "conf_parser.c" /* yacc.c:1646  */
4514 > #line 4515 "conf_parser.c" /* yacc.c:1646  */
4515      break;
4516  
4517 <  case 257:
4518 < #line 1574 "conf_parser.y" /* yacc.c:1646  */
4517 >  case 289:
4518 > #line 1565 "conf_parser.y" /* yacc.c:1646  */
4519      {
4520    if (conf_parser_ctx.pass == 1)
4521      block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4522   }
4523 < #line 4458 "conf_parser.c" /* yacc.c:1646  */
4523 > #line 4524 "conf_parser.c" /* yacc.c:1646  */
4524      break;
4525  
4526 <  case 258:
4527 < #line 1578 "conf_parser.y" /* yacc.c:1646  */
4526 >  case 290:
4527 > #line 1569 "conf_parser.y" /* yacc.c:1646  */
4528      {
4529    if (conf_parser_ctx.pass == 1)
4530      block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4531   }
4532 < #line 4467 "conf_parser.c" /* yacc.c:1646  */
4532 > #line 4533 "conf_parser.c" /* yacc.c:1646  */
4533      break;
4534  
4535 <  case 259:
4536 < #line 1588 "conf_parser.y" /* yacc.c:1646  */
4535 >  case 291:
4536 > #line 1579 "conf_parser.y" /* yacc.c:1646  */
4537      {
4538    if (conf_parser_ctx.pass == 2)
4539      reset_block_state();
4540   }
4541 < #line 4476 "conf_parser.c" /* yacc.c:1646  */
4541 > #line 4542 "conf_parser.c" /* yacc.c:1646  */
4542      break;
4543  
4544 <  case 261:
4545 < #line 1594 "conf_parser.y" /* yacc.c:1646  */
4544 >  case 293:
4545 > #line 1585 "conf_parser.y" /* yacc.c:1646  */
4546      {
4547    block_state.flags.value = 0;
4548   }
4549 < #line 4484 "conf_parser.c" /* yacc.c:1646  */
4549 > #line 4550 "conf_parser.c" /* yacc.c:1646  */
4550      break;
4551  
4552 <  case 265:
4553 < #line 1600 "conf_parser.y" /* yacc.c:1646  */
4552 >  case 297:
4553 > #line 1591 "conf_parser.y" /* yacc.c:1646  */
4554      {
4555    if (conf_parser_ctx.pass == 2)
4556      block_state.flags.value |= LISTENER_SSL;
4557   }
4558 < #line 4493 "conf_parser.c" /* yacc.c:1646  */
4558 > #line 4559 "conf_parser.c" /* yacc.c:1646  */
4559      break;
4560  
4561 <  case 266:
4562 < #line 1604 "conf_parser.y" /* yacc.c:1646  */
4561 >  case 298:
4562 > #line 1595 "conf_parser.y" /* yacc.c:1646  */
4563      {
4564    if (conf_parser_ctx.pass == 2)
4565      block_state.flags.value |= LISTENER_HIDDEN;
4566   }
4567 < #line 4502 "conf_parser.c" /* yacc.c:1646  */
4567 > #line 4568 "conf_parser.c" /* yacc.c:1646  */
4568      break;
4569  
4570 <  case 267:
4571 < #line 1608 "conf_parser.y" /* yacc.c:1646  */
4570 >  case 299:
4571 > #line 1599 "conf_parser.y" /* yacc.c:1646  */
4572      {
4573    if (conf_parser_ctx.pass == 2)
4574     block_state.flags.value |= LISTENER_SERVER;
4575   }
4576 < #line 4511 "conf_parser.c" /* yacc.c:1646  */
4576 > #line 4577 "conf_parser.c" /* yacc.c:1646  */
4577      break;
4578  
4579 <  case 275:
4580 < #line 1616 "conf_parser.y" /* yacc.c:1646  */
4579 >  case 307:
4580 > #line 1607 "conf_parser.y" /* yacc.c:1646  */
4581      { block_state.flags.value = 0; }
4582 < #line 4517 "conf_parser.c" /* yacc.c:1646  */
4582 > #line 4583 "conf_parser.c" /* yacc.c:1646  */
4583      break;
4584  
4585 <  case 279:
4586 < #line 1621 "conf_parser.y" /* yacc.c:1646  */
4585 >  case 311:
4586 > #line 1612 "conf_parser.y" /* yacc.c:1646  */
4587      {
4588    if (conf_parser_ctx.pass == 2)
4589    {
4590 + #ifndef HAVE_TLS
4591      if (block_state.flags.value & LISTENER_SSL)
4592 < #ifdef HAVE_LIBCRYPTO
4593 <      if (!ServerInfo.server_ctx)
4592 >    {
4593 >      conf_error_report("TLS not available - port closed");
4594 >      break;
4595 >    }
4596   #endif
4597 <      {
4529 <        conf_error_report("SSL not available - port closed");
4530 <        break;
4531 <      }
4532 <    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4597 >    listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4598    }
4599   }
4600 < #line 4536 "conf_parser.c" /* yacc.c:1646  */
4600 > #line 4601 "conf_parser.c" /* yacc.c:1646  */
4601      break;
4602  
4603 <  case 280:
4604 < #line 1635 "conf_parser.y" /* yacc.c:1646  */
4603 >  case 312:
4604 > #line 1625 "conf_parser.y" /* yacc.c:1646  */
4605      {
4606    if (conf_parser_ctx.pass == 2)
4607    {
4608 + #ifndef HAVE_TLS
4609      if (block_state.flags.value & LISTENER_SSL)
4610 < #ifdef HAVE_LIBCRYPTO
4611 <      if (!ServerInfo.server_ctx)
4610 >    {
4611 >      conf_error_report("TLS not available - port closed");
4612 >      break;
4613 >    }
4614   #endif
4547      {
4548        conf_error_report("SSL not available - port closed");
4549        break;
4550      }
4615  
4616      for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4617 <      add_listener(i, block_state.addr.buf, block_state.flags.value);
4617 >      listener_add(i, block_state.addr.buf, block_state.flags.value);
4618    }
4619   }
4620 < #line 4557 "conf_parser.c" /* yacc.c:1646  */
4620 > #line 4621 "conf_parser.c" /* yacc.c:1646  */
4621      break;
4622  
4623 <  case 281:
4624 < #line 1653 "conf_parser.y" /* yacc.c:1646  */
4623 >  case 313:
4624 > #line 1642 "conf_parser.y" /* yacc.c:1646  */
4625      {
4626    if (conf_parser_ctx.pass == 2)
4627      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4628   }
4629 < #line 4566 "conf_parser.c" /* yacc.c:1646  */
4629 > #line 4630 "conf_parser.c" /* yacc.c:1646  */
4630      break;
4631  
4632 <  case 282:
4633 < #line 1659 "conf_parser.y" /* yacc.c:1646  */
4632 >  case 314:
4633 > #line 1648 "conf_parser.y" /* yacc.c:1646  */
4634      {
4635    if (conf_parser_ctx.pass == 2)
4636      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4637   }
4638 < #line 4575 "conf_parser.c" /* yacc.c:1646  */
4638 > #line 4639 "conf_parser.c" /* yacc.c:1646  */
4639      break;
4640  
4641 <  case 283:
4642 < #line 1668 "conf_parser.y" /* yacc.c:1646  */
4641 >  case 315:
4642 > #line 1658 "conf_parser.y" /* yacc.c:1646  */
4643      {
4644    if (conf_parser_ctx.pass == 2)
4645      reset_block_state();
4646   }
4647 < #line 4584 "conf_parser.c" /* yacc.c:1646  */
4647 > #line 4648 "conf_parser.c" /* yacc.c:1646  */
4648      break;
4649  
4650 <  case 284:
4651 < #line 1672 "conf_parser.y" /* yacc.c:1646  */
4650 >  case 316:
4651 > #line 1662 "conf_parser.y" /* yacc.c:1646  */
4652      {
4653 <  dlink_node *ptr = NULL;
4653 >  dlink_node *node = NULL;
4654  
4655    if (conf_parser_ctx.pass != 2)
4656      break;
4657  
4658 <  DLINK_FOREACH(ptr, block_state.mask.list.head)
4658 >  DLINK_FOREACH(node, block_state.mask.list.head)
4659    {
4660      struct MaskItem *conf = NULL;
4661      struct split_nuh_item nuh;
4662  
4663 <    nuh.nuhmask  = ptr->data;
4663 >    nuh.nuhmask  = node->data;
4664      nuh.nickptr  = NULL;
4665      nuh.userptr  = block_state.user.buf;
4666      nuh.hostptr  = block_state.host.buf;
# Line 4621 | Line 4685 | yyreduce:
4685      add_conf_by_address(CONF_CLIENT, conf);
4686    }
4687   }
4688 < #line 4625 "conf_parser.c" /* yacc.c:1646  */
4688 > #line 4689 "conf_parser.c" /* yacc.c:1646  */
4689      break;
4690  
4691 <  case 296:
4692 < #line 1721 "conf_parser.y" /* yacc.c:1646  */
4691 >  case 328:
4692 > #line 1711 "conf_parser.y" /* yacc.c:1646  */
4693      {
4694    if (conf_parser_ctx.pass == 2)
4695      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4696   }
4697 < #line 4634 "conf_parser.c" /* yacc.c:1646  */
4697 > #line 4698 "conf_parser.c" /* yacc.c:1646  */
4698      break;
4699  
4700 <  case 297:
4701 < #line 1727 "conf_parser.y" /* yacc.c:1646  */
4700 >  case 329:
4701 > #line 1717 "conf_parser.y" /* yacc.c:1646  */
4702      {
4703    if (conf_parser_ctx.pass == 2)
4704      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4705   }
4706 < #line 4643 "conf_parser.c" /* yacc.c:1646  */
4706 > #line 4707 "conf_parser.c" /* yacc.c:1646  */
4707      break;
4708  
4709 <  case 298:
4710 < #line 1733 "conf_parser.y" /* yacc.c:1646  */
4709 >  case 330:
4710 > #line 1723 "conf_parser.y" /* yacc.c:1646  */
4711      {
4712    if (conf_parser_ctx.pass == 2)
4713      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4714   }
4715 < #line 4652 "conf_parser.c" /* yacc.c:1646  */
4715 > #line 4716 "conf_parser.c" /* yacc.c:1646  */
4716      break;
4717  
4718 <  case 299:
4719 < #line 1739 "conf_parser.y" /* yacc.c:1646  */
4718 >  case 331:
4719 > #line 1729 "conf_parser.y" /* yacc.c:1646  */
4720      {
4721    if (conf_parser_ctx.pass == 2)
4722    {
# Line 4662 | Line 4726 | yyreduce:
4726        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4727    }
4728   }
4729 < #line 4666 "conf_parser.c" /* yacc.c:1646  */
4729 > #line 4730 "conf_parser.c" /* yacc.c:1646  */
4730      break;
4731  
4732 <  case 300:
4733 < #line 1750 "conf_parser.y" /* yacc.c:1646  */
4732 >  case 332:
4733 > #line 1740 "conf_parser.y" /* yacc.c:1646  */
4734      {
4735    if (conf_parser_ctx.pass == 2)
4736      block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4737   }
4738 < #line 4675 "conf_parser.c" /* yacc.c:1646  */
4738 > #line 4739 "conf_parser.c" /* yacc.c:1646  */
4739      break;
4740  
4741 <  case 304:
4742 < #line 1757 "conf_parser.y" /* yacc.c:1646  */
4741 >  case 336:
4742 > #line 1747 "conf_parser.y" /* yacc.c:1646  */
4743      {
4744    if (conf_parser_ctx.pass == 2)
4745      block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4746   }
4747 < #line 4684 "conf_parser.c" /* yacc.c:1646  */
4747 > #line 4748 "conf_parser.c" /* yacc.c:1646  */
4748      break;
4749  
4750 <  case 305:
4751 < #line 1761 "conf_parser.y" /* yacc.c:1646  */
4750 >  case 337:
4751 > #line 1751 "conf_parser.y" /* yacc.c:1646  */
4752      {
4753    if (conf_parser_ctx.pass == 2)
4754      block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4755   }
4756 < #line 4693 "conf_parser.c" /* yacc.c:1646  */
4756 > #line 4757 "conf_parser.c" /* yacc.c:1646  */
4757      break;
4758  
4759 <  case 306:
4760 < #line 1765 "conf_parser.y" /* yacc.c:1646  */
4759 >  case 338:
4760 > #line 1755 "conf_parser.y" /* yacc.c:1646  */
4761      {
4762    if (conf_parser_ctx.pass == 2)
4763      block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4764   }
4765 < #line 4702 "conf_parser.c" /* yacc.c:1646  */
4765 > #line 4766 "conf_parser.c" /* yacc.c:1646  */
4766      break;
4767  
4768 <  case 307:
4769 < #line 1769 "conf_parser.y" /* yacc.c:1646  */
4768 >  case 339:
4769 > #line 1759 "conf_parser.y" /* yacc.c:1646  */
4770      {
4771    if (conf_parser_ctx.pass == 2)
4772 <    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4772 >    block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4773   }
4774 < #line 4711 "conf_parser.c" /* yacc.c:1646  */
4774 > #line 4775 "conf_parser.c" /* yacc.c:1646  */
4775      break;
4776  
4777 <  case 308:
4778 < #line 1773 "conf_parser.y" /* yacc.c:1646  */
4777 >  case 340:
4778 > #line 1763 "conf_parser.y" /* yacc.c:1646  */
4779      {
4780    if (conf_parser_ctx.pass == 2)
4781 <    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4781 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4782   }
4783 < #line 4720 "conf_parser.c" /* yacc.c:1646  */
4783 > #line 4784 "conf_parser.c" /* yacc.c:1646  */
4784      break;
4785  
4786 <  case 309:
4787 < #line 1777 "conf_parser.y" /* yacc.c:1646  */
4786 >  case 341:
4787 > #line 1767 "conf_parser.y" /* yacc.c:1646  */
4788      {
4789    if (conf_parser_ctx.pass == 2)
4790 <    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4790 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4791   }
4792 < #line 4729 "conf_parser.c" /* yacc.c:1646  */
4792 > #line 4793 "conf_parser.c" /* yacc.c:1646  */
4793      break;
4794  
4795 <  case 310:
4796 < #line 1781 "conf_parser.y" /* yacc.c:1646  */
4795 >  case 342:
4796 > #line 1771 "conf_parser.y" /* yacc.c:1646  */
4797      {
4798    if (conf_parser_ctx.pass == 2)
4799 <    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4799 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4800   }
4801 < #line 4738 "conf_parser.c" /* yacc.c:1646  */
4801 > #line 4802 "conf_parser.c" /* yacc.c:1646  */
4802      break;
4803  
4804 <  case 311:
4805 < #line 1785 "conf_parser.y" /* yacc.c:1646  */
4804 >  case 343:
4805 > #line 1775 "conf_parser.y" /* yacc.c:1646  */
4806      {
4807    if (conf_parser_ctx.pass == 2)
4808      block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4809   }
4810 < #line 4747 "conf_parser.c" /* yacc.c:1646  */
4810 > #line 4811 "conf_parser.c" /* yacc.c:1646  */
4811      break;
4812  
4813 <  case 312:
4814 < #line 1789 "conf_parser.y" /* yacc.c:1646  */
4813 >  case 344:
4814 > #line 1779 "conf_parser.y" /* yacc.c:1646  */
4815      {
4816    if (conf_parser_ctx.pass == 2)
4817      block_state.flags.value |= CONF_FLAGS_WEBIRC;
4818   }
4819 < #line 4756 "conf_parser.c" /* yacc.c:1646  */
4819 > #line 4820 "conf_parser.c" /* yacc.c:1646  */
4820      break;
4821  
4822 <  case 313:
4823 < #line 1793 "conf_parser.y" /* yacc.c:1646  */
4822 >  case 345:
4823 > #line 1783 "conf_parser.y" /* yacc.c:1646  */
4824      {
4825    if (conf_parser_ctx.pass == 2)
4826      block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4827   }
4828 < #line 4765 "conf_parser.c" /* yacc.c:1646  */
4828 > #line 4829 "conf_parser.c" /* yacc.c:1646  */
4829      break;
4830  
4831 <  case 314:
4832 < #line 1799 "conf_parser.y" /* yacc.c:1646  */
4831 >  case 346:
4832 > #line 1789 "conf_parser.y" /* yacc.c:1646  */
4833      {
4834    if (conf_parser_ctx.pass != 2)
4835      break;
# Line 4778 | Line 4842 | yyreduce:
4842    else
4843      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4844   }
4845 < #line 4782 "conf_parser.c" /* yacc.c:1646  */
4845 > #line 4846 "conf_parser.c" /* yacc.c:1646  */
4846      break;
4847  
4848 <  case 315:
4849 < #line 1813 "conf_parser.y" /* yacc.c:1646  */
4848 >  case 347:
4849 > #line 1803 "conf_parser.y" /* yacc.c:1646  */
4850      {
4851    if (conf_parser_ctx.pass != 2)
4852      break;
# Line 4790 | Line 4854 | yyreduce:
4854    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4855    block_state.flags.value |= CONF_FLAGS_REDIR;
4856   }
4857 < #line 4794 "conf_parser.c" /* yacc.c:1646  */
4857 > #line 4858 "conf_parser.c" /* yacc.c:1646  */
4858      break;
4859  
4860 <  case 316:
4861 < #line 1822 "conf_parser.y" /* yacc.c:1646  */
4860 >  case 348:
4861 > #line 1812 "conf_parser.y" /* yacc.c:1646  */
4862      {
4863    if (conf_parser_ctx.pass != 2)
4864      break;
# Line 4802 | Line 4866 | yyreduce:
4866    block_state.flags.value |= CONF_FLAGS_REDIR;
4867    block_state.port.value = (yyvsp[-1].number);
4868   }
4869 < #line 4806 "conf_parser.c" /* yacc.c:1646  */
4869 > #line 4870 "conf_parser.c" /* yacc.c:1646  */
4870      break;
4871  
4872 <  case 317:
4873 < #line 1835 "conf_parser.y" /* yacc.c:1646  */
4872 >  case 349:
4873 > #line 1825 "conf_parser.y" /* yacc.c:1646  */
4874      {
4875    if (conf_parser_ctx.pass != 2)
4876      break;
# Line 4814 | Line 4878 | yyreduce:
4878    reset_block_state();
4879    strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4880   }
4881 < #line 4818 "conf_parser.c" /* yacc.c:1646  */
4881 > #line 4882 "conf_parser.c" /* yacc.c:1646  */
4882      break;
4883  
4884 <  case 318:
4885 < #line 1842 "conf_parser.y" /* yacc.c:1646  */
4884 >  case 350:
4885 > #line 1832 "conf_parser.y" /* yacc.c:1646  */
4886      {
4887    if (conf_parser_ctx.pass != 2)
4888      break;
4889  
4890 <  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4890 >  resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4891   }
4892 < #line 4829 "conf_parser.c" /* yacc.c:1646  */
4892 > #line 4893 "conf_parser.c" /* yacc.c:1646  */
4893      break;
4894  
4895 <  case 325:
4896 < #line 1853 "conf_parser.y" /* yacc.c:1646  */
4895 >  case 357:
4896 > #line 1843 "conf_parser.y" /* yacc.c:1646  */
4897      {
4898    if (conf_parser_ctx.pass == 2)
4899      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4900   }
4901 < #line 4838 "conf_parser.c" /* yacc.c:1646  */
4901 > #line 4902 "conf_parser.c" /* yacc.c:1646  */
4902      break;
4903  
4904 <  case 326:
4905 < #line 1859 "conf_parser.y" /* yacc.c:1646  */
4904 >  case 358:
4905 > #line 1849 "conf_parser.y" /* yacc.c:1646  */
4906      {
4907    if (conf_parser_ctx.pass == 2)
4908      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4909   }
4910 < #line 4847 "conf_parser.c" /* yacc.c:1646  */
4910 > #line 4911 "conf_parser.c" /* yacc.c:1646  */
4911      break;
4912  
4913 <  case 327:
4914 < #line 1865 "conf_parser.y" /* yacc.c:1646  */
4913 >  case 359:
4914 > #line 1855 "conf_parser.y" /* yacc.c:1646  */
4915      {
4916    if (conf_parser_ctx.pass == 2)
4917      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4918   }
4919 < #line 4856 "conf_parser.c" /* yacc.c:1646  */
4919 > #line 4920 "conf_parser.c" /* yacc.c:1646  */
4920      break;
4921  
4922 <  case 333:
4923 < #line 1880 "conf_parser.y" /* yacc.c:1646  */
4922 >  case 365:
4923 > #line 1870 "conf_parser.y" /* yacc.c:1646  */
4924      {
4925    if (conf_parser_ctx.pass != 2)
4926      break;
4927  
4928    if (valid_servname(yylval.string))
4929    {
4930 <    struct MaskItem *conf = conf_make(CONF_SERVICE);
4931 <    conf->name = xstrdup(yylval.string);
4930 >    struct ServiceItem *service = service_make();
4931 >    service->name = xstrdup(yylval.string);
4932    }
4933   }
4934 < #line 4871 "conf_parser.c" /* yacc.c:1646  */
4934 > #line 4935 "conf_parser.c" /* yacc.c:1646  */
4935      break;
4936  
4937 <  case 334:
4938 < #line 1895 "conf_parser.y" /* yacc.c:1646  */
4937 >  case 366:
4938 > #line 1886 "conf_parser.y" /* yacc.c:1646  */
4939      {
4940    if (conf_parser_ctx.pass != 2)
4941      break;
# Line 4883 | Line 4947 | yyreduce:
4947    strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4948    block_state.flags.value = SHARED_ALL;
4949   }
4950 < #line 4887 "conf_parser.c" /* yacc.c:1646  */
4950 > #line 4951 "conf_parser.c" /* yacc.c:1646  */
4951      break;
4952  
4953 <  case 335:
4954 < #line 1906 "conf_parser.y" /* yacc.c:1646  */
4953 >  case 367:
4954 > #line 1897 "conf_parser.y" /* yacc.c:1646  */
4955      {
4892  struct MaskItem *conf = NULL;
4893
4956    if (conf_parser_ctx.pass != 2)
4957      break;
4958  
4959 <  conf = conf_make(CONF_ULINE);
4960 <  conf->flags = block_state.flags.value;
4961 <  conf->name = xstrdup(block_state.name.buf);
4962 <  conf->user = xstrdup(block_state.user.buf);
4963 <  conf->host = xstrdup(block_state.host.buf);
4959 >  struct SharedItem *shared = shared_make();
4960 >  shared->type = block_state.flags.value;
4961 >  shared->server = xstrdup(block_state.name.buf);
4962 >  shared->user = xstrdup(block_state.user.buf);
4963 >  shared->host = xstrdup(block_state.host.buf);
4964   }
4965 < #line 4904 "conf_parser.c" /* yacc.c:1646  */
4965 > #line 4966 "conf_parser.c" /* yacc.c:1646  */
4966      break;
4967  
4968 <  case 342:
4969 < #line 1923 "conf_parser.y" /* yacc.c:1646  */
4968 >  case 374:
4969 > #line 1912 "conf_parser.y" /* yacc.c:1646  */
4970      {
4971    if (conf_parser_ctx.pass == 2)
4972      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4973   }
4974 < #line 4913 "conf_parser.c" /* yacc.c:1646  */
4974 > #line 4975 "conf_parser.c" /* yacc.c:1646  */
4975      break;
4976  
4977 <  case 343:
4978 < #line 1929 "conf_parser.y" /* yacc.c:1646  */
4977 >  case 375:
4978 > #line 1918 "conf_parser.y" /* yacc.c:1646  */
4979      {
4980    if (conf_parser_ctx.pass == 2)
4981    {
# Line 4931 | Line 4993 | yyreduce:
4993      split_nuh(&nuh);
4994    }
4995   }
4996 < #line 4935 "conf_parser.c" /* yacc.c:1646  */
4996 > #line 4997 "conf_parser.c" /* yacc.c:1646  */
4997      break;
4998  
4999 <  case 344:
5000 < #line 1948 "conf_parser.y" /* yacc.c:1646  */
4999 >  case 376:
5000 > #line 1937 "conf_parser.y" /* yacc.c:1646  */
5001      {
5002    if (conf_parser_ctx.pass == 2)
5003      block_state.flags.value = 0;
5004   }
5005 < #line 4944 "conf_parser.c" /* yacc.c:1646  */
5005 > #line 5006 "conf_parser.c" /* yacc.c:1646  */
5006      break;
5007  
5008 <  case 348:
5009 < #line 1955 "conf_parser.y" /* yacc.c:1646  */
5008 >  case 380:
5009 > #line 1944 "conf_parser.y" /* yacc.c:1646  */
5010      {
5011    if (conf_parser_ctx.pass == 2)
5012      block_state.flags.value |= SHARED_KLINE;
5013   }
5014 < #line 4953 "conf_parser.c" /* yacc.c:1646  */
5014 > #line 5015 "conf_parser.c" /* yacc.c:1646  */
5015      break;
5016  
5017 <  case 349:
5018 < #line 1959 "conf_parser.y" /* yacc.c:1646  */
5017 >  case 381:
5018 > #line 1948 "conf_parser.y" /* yacc.c:1646  */
5019      {
5020    if (conf_parser_ctx.pass == 2)
5021      block_state.flags.value |= SHARED_UNKLINE;
5022   }
5023 < #line 4962 "conf_parser.c" /* yacc.c:1646  */
5023 > #line 5024 "conf_parser.c" /* yacc.c:1646  */
5024      break;
5025  
5026 <  case 350:
5027 < #line 1963 "conf_parser.y" /* yacc.c:1646  */
5026 >  case 382:
5027 > #line 1952 "conf_parser.y" /* yacc.c:1646  */
5028      {
5029    if (conf_parser_ctx.pass == 2)
5030      block_state.flags.value |= SHARED_DLINE;
5031   }
5032 < #line 4971 "conf_parser.c" /* yacc.c:1646  */
5032 > #line 5033 "conf_parser.c" /* yacc.c:1646  */
5033      break;
5034  
5035 <  case 351:
5036 < #line 1967 "conf_parser.y" /* yacc.c:1646  */
5035 >  case 383:
5036 > #line 1956 "conf_parser.y" /* yacc.c:1646  */
5037      {
5038    if (conf_parser_ctx.pass == 2)
5039      block_state.flags.value |= SHARED_UNDLINE;
5040   }
5041 < #line 4980 "conf_parser.c" /* yacc.c:1646  */
5041 > #line 5042 "conf_parser.c" /* yacc.c:1646  */
5042      break;
5043  
5044 <  case 352:
5045 < #line 1971 "conf_parser.y" /* yacc.c:1646  */
5044 >  case 384:
5045 > #line 1960 "conf_parser.y" /* yacc.c:1646  */
5046      {
5047    if (conf_parser_ctx.pass == 2)
5048      block_state.flags.value |= SHARED_XLINE;
5049   }
5050 < #line 4989 "conf_parser.c" /* yacc.c:1646  */
5050 > #line 5051 "conf_parser.c" /* yacc.c:1646  */
5051      break;
5052  
5053 <  case 353:
5054 < #line 1975 "conf_parser.y" /* yacc.c:1646  */
5053 >  case 385:
5054 > #line 1964 "conf_parser.y" /* yacc.c:1646  */
5055      {
5056    if (conf_parser_ctx.pass == 2)
5057      block_state.flags.value |= SHARED_UNXLINE;
5058   }
5059 < #line 4998 "conf_parser.c" /* yacc.c:1646  */
5059 > #line 5060 "conf_parser.c" /* yacc.c:1646  */
5060      break;
5061  
5062 <  case 354:
5063 < #line 1979 "conf_parser.y" /* yacc.c:1646  */
5062 >  case 386:
5063 > #line 1968 "conf_parser.y" /* yacc.c:1646  */
5064      {
5065    if (conf_parser_ctx.pass == 2)
5066      block_state.flags.value |= SHARED_RESV;
5067   }
5068 < #line 5007 "conf_parser.c" /* yacc.c:1646  */
5068 > #line 5069 "conf_parser.c" /* yacc.c:1646  */
5069      break;
5070  
5071 <  case 355:
5072 < #line 1983 "conf_parser.y" /* yacc.c:1646  */
5071 >  case 387:
5072 > #line 1972 "conf_parser.y" /* yacc.c:1646  */
5073      {
5074    if (conf_parser_ctx.pass == 2)
5075      block_state.flags.value |= SHARED_UNRESV;
5076   }
5077 < #line 5016 "conf_parser.c" /* yacc.c:1646  */
5077 > #line 5078 "conf_parser.c" /* yacc.c:1646  */
5078      break;
5079  
5080 <  case 356:
5081 < #line 1987 "conf_parser.y" /* yacc.c:1646  */
5080 >  case 388:
5081 > #line 1976 "conf_parser.y" /* yacc.c:1646  */
5082      {
5083    if (conf_parser_ctx.pass == 2)
5084      block_state.flags.value |= SHARED_LOCOPS;
5085   }
5086 < #line 5025 "conf_parser.c" /* yacc.c:1646  */
5086 > #line 5087 "conf_parser.c" /* yacc.c:1646  */
5087      break;
5088  
5089 <  case 357:
5090 < #line 1991 "conf_parser.y" /* yacc.c:1646  */
5089 >  case 389:
5090 > #line 1980 "conf_parser.y" /* yacc.c:1646  */
5091      {
5092    if (conf_parser_ctx.pass == 2)
5093      block_state.flags.value = SHARED_ALL;
5094   }
5095 < #line 5034 "conf_parser.c" /* yacc.c:1646  */
5095 > #line 5096 "conf_parser.c" /* yacc.c:1646  */
5096      break;
5097  
5098 <  case 358:
5099 < #line 2000 "conf_parser.y" /* yacc.c:1646  */
5098 >  case 390:
5099 > #line 1990 "conf_parser.y" /* yacc.c:1646  */
5100      {
5101    if (conf_parser_ctx.pass != 2)
5102      break;
# Line 5042 | Line 5104 | yyreduce:
5104    reset_block_state();
5105  
5106    strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5107 <  block_state.flags.value = SHARED_ALL;
5107 >  block_state.flags.value = CLUSTER_ALL;
5108   }
5109 < #line 5048 "conf_parser.c" /* yacc.c:1646  */
5109 > #line 5110 "conf_parser.c" /* yacc.c:1646  */
5110      break;
5111  
5112 <  case 359:
5113 < #line 2009 "conf_parser.y" /* yacc.c:1646  */
5112 >  case 391:
5113 > #line 1999 "conf_parser.y" /* yacc.c:1646  */
5114      {
5053  struct MaskItem *conf = NULL;
5054
5115    if (conf_parser_ctx.pass != 2)
5116      break;
5117  
5118 <  conf = conf_make(CONF_CLUSTER);
5119 <  conf->flags = block_state.flags.value;
5120 <  conf->name = xstrdup(block_state.name.buf);
5118 >  struct ClusterItem *cluster = cluster_make();
5119 >  cluster->type = block_state.flags.value;
5120 >  cluster->server = xstrdup(block_state.name.buf);
5121   }
5122 < #line 5063 "conf_parser.c" /* yacc.c:1646  */
5122 > #line 5123 "conf_parser.c" /* yacc.c:1646  */
5123      break;
5124  
5125 <  case 365:
5126 < #line 2024 "conf_parser.y" /* yacc.c:1646  */
5125 >  case 397:
5126 > #line 2012 "conf_parser.y" /* yacc.c:1646  */
5127      {
5128    if (conf_parser_ctx.pass == 2)
5129      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5130   }
5131 < #line 5072 "conf_parser.c" /* yacc.c:1646  */
5131 > #line 5132 "conf_parser.c" /* yacc.c:1646  */
5132      break;
5133  
5134 <  case 366:
5135 < #line 2030 "conf_parser.y" /* yacc.c:1646  */
5134 >  case 398:
5135 > #line 2018 "conf_parser.y" /* yacc.c:1646  */
5136      {
5137    if (conf_parser_ctx.pass == 2)
5138      block_state.flags.value = 0;
5139   }
5140 < #line 5081 "conf_parser.c" /* yacc.c:1646  */
5140 > #line 5141 "conf_parser.c" /* yacc.c:1646  */
5141      break;
5142  
5143 <  case 370:
5144 < #line 2037 "conf_parser.y" /* yacc.c:1646  */
5143 >  case 402:
5144 > #line 2025 "conf_parser.y" /* yacc.c:1646  */
5145      {
5146    if (conf_parser_ctx.pass == 2)
5147 <    block_state.flags.value |= SHARED_KLINE;
5147 >    block_state.flags.value |= CLUSTER_KLINE;
5148   }
5149 < #line 5090 "conf_parser.c" /* yacc.c:1646  */
5149 > #line 5150 "conf_parser.c" /* yacc.c:1646  */
5150      break;
5151  
5152 <  case 371:
5153 < #line 2041 "conf_parser.y" /* yacc.c:1646  */
5152 >  case 403:
5153 > #line 2029 "conf_parser.y" /* yacc.c:1646  */
5154      {
5155    if (conf_parser_ctx.pass == 2)
5156 <    block_state.flags.value |= SHARED_UNKLINE;
5156 >    block_state.flags.value |= CLUSTER_UNKLINE;
5157   }
5158 < #line 5099 "conf_parser.c" /* yacc.c:1646  */
5158 > #line 5159 "conf_parser.c" /* yacc.c:1646  */
5159      break;
5160  
5161 <  case 372:
5162 < #line 2045 "conf_parser.y" /* yacc.c:1646  */
5161 >  case 404:
5162 > #line 2033 "conf_parser.y" /* yacc.c:1646  */
5163      {
5164    if (conf_parser_ctx.pass == 2)
5165 <    block_state.flags.value |= SHARED_DLINE;
5165 >    block_state.flags.value |= CLUSTER_DLINE;
5166   }
5167 < #line 5108 "conf_parser.c" /* yacc.c:1646  */
5167 > #line 5168 "conf_parser.c" /* yacc.c:1646  */
5168      break;
5169  
5170 <  case 373:
5171 < #line 2049 "conf_parser.y" /* yacc.c:1646  */
5170 >  case 405:
5171 > #line 2037 "conf_parser.y" /* yacc.c:1646  */
5172      {
5173    if (conf_parser_ctx.pass == 2)
5174 <    block_state.flags.value |= SHARED_UNDLINE;
5174 >    block_state.flags.value |= CLUSTER_UNDLINE;
5175   }
5176 < #line 5117 "conf_parser.c" /* yacc.c:1646  */
5176 > #line 5177 "conf_parser.c" /* yacc.c:1646  */
5177      break;
5178  
5179 <  case 374:
5180 < #line 2053 "conf_parser.y" /* yacc.c:1646  */
5179 >  case 406:
5180 > #line 2041 "conf_parser.y" /* yacc.c:1646  */
5181      {
5182    if (conf_parser_ctx.pass == 2)
5183 <    block_state.flags.value |= SHARED_XLINE;
5183 >    block_state.flags.value |= CLUSTER_XLINE;
5184   }
5185 < #line 5126 "conf_parser.c" /* yacc.c:1646  */
5185 > #line 5186 "conf_parser.c" /* yacc.c:1646  */
5186      break;
5187  
5188 <  case 375:
5189 < #line 2057 "conf_parser.y" /* yacc.c:1646  */
5188 >  case 407:
5189 > #line 2045 "conf_parser.y" /* yacc.c:1646  */
5190      {
5191    if (conf_parser_ctx.pass == 2)
5192 <    block_state.flags.value |= SHARED_UNXLINE;
5192 >    block_state.flags.value |= CLUSTER_UNXLINE;
5193   }
5194 < #line 5135 "conf_parser.c" /* yacc.c:1646  */
5194 > #line 5195 "conf_parser.c" /* yacc.c:1646  */
5195      break;
5196  
5197 <  case 376:
5198 < #line 2061 "conf_parser.y" /* yacc.c:1646  */
5197 >  case 408:
5198 > #line 2049 "conf_parser.y" /* yacc.c:1646  */
5199      {
5200    if (conf_parser_ctx.pass == 2)
5201 <    block_state.flags.value |= SHARED_RESV;
5201 >    block_state.flags.value |= CLUSTER_RESV;
5202   }
5203 < #line 5144 "conf_parser.c" /* yacc.c:1646  */
5203 > #line 5204 "conf_parser.c" /* yacc.c:1646  */
5204      break;
5205  
5206 <  case 377:
5207 < #line 2065 "conf_parser.y" /* yacc.c:1646  */
5206 >  case 409:
5207 > #line 2053 "conf_parser.y" /* yacc.c:1646  */
5208      {
5209    if (conf_parser_ctx.pass == 2)
5210 <    block_state.flags.value |= SHARED_UNRESV;
5210 >    block_state.flags.value |= CLUSTER_UNRESV;
5211   }
5212 < #line 5153 "conf_parser.c" /* yacc.c:1646  */
5212 > #line 5213 "conf_parser.c" /* yacc.c:1646  */
5213      break;
5214  
5215 <  case 378:
5216 < #line 2069 "conf_parser.y" /* yacc.c:1646  */
5215 >  case 410:
5216 > #line 2057 "conf_parser.y" /* yacc.c:1646  */
5217      {
5218    if (conf_parser_ctx.pass == 2)
5219 <    block_state.flags.value |= SHARED_LOCOPS;
5219 >    block_state.flags.value |= CLUSTER_LOCOPS;
5220   }
5221 < #line 5162 "conf_parser.c" /* yacc.c:1646  */
5221 > #line 5222 "conf_parser.c" /* yacc.c:1646  */
5222      break;
5223  
5224 <  case 379:
5225 < #line 2073 "conf_parser.y" /* yacc.c:1646  */
5224 >  case 411:
5225 > #line 2061 "conf_parser.y" /* yacc.c:1646  */
5226      {
5227    if (conf_parser_ctx.pass == 2)
5228 <    block_state.flags.value = SHARED_ALL;
5228 >    block_state.flags.value = CLUSTER_ALL;
5229   }
5230 < #line 5171 "conf_parser.c" /* yacc.c:1646  */
5230 > #line 5231 "conf_parser.c" /* yacc.c:1646  */
5231      break;
5232  
5233 <  case 380:
5234 < #line 2082 "conf_parser.y" /* yacc.c:1646  */
5233 >  case 412:
5234 > #line 2071 "conf_parser.y" /* yacc.c:1646  */
5235      {
5236  
5237    if (conf_parser_ctx.pass != 2)
# Line 5181 | Line 5241 | yyreduce:
5241    block_state.aftype.value = AF_INET;
5242    block_state.port.value = PORTNUM;
5243   }
5244 < #line 5185 "conf_parser.c" /* yacc.c:1646  */
5244 > #line 5245 "conf_parser.c" /* yacc.c:1646  */
5245      break;
5246  
5247 <  case 381:
5248 < #line 2091 "conf_parser.y" /* yacc.c:1646  */
5247 >  case 413:
5248 > #line 2080 "conf_parser.y" /* yacc.c:1646  */
5249      {
5250    struct MaskItem *conf = NULL;
5251    struct addrinfo hints, *res;
# Line 5247 | Line 5307 | yyreduce:
5307    conf_add_class_to_conf(conf, block_state.class.buf);
5308    lookup_confhost(conf);
5309   }
5310 < #line 5251 "conf_parser.c" /* yacc.c:1646  */
5310 > #line 5311 "conf_parser.c" /* yacc.c:1646  */
5311      break;
5312  
5313 <  case 399:
5314 < #line 2171 "conf_parser.y" /* yacc.c:1646  */
5313 >  case 431:
5314 > #line 2160 "conf_parser.y" /* yacc.c:1646  */
5315      {
5316    if (conf_parser_ctx.pass == 2)
5317      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5318   }
5319 < #line 5260 "conf_parser.c" /* yacc.c:1646  */
5319 > #line 5320 "conf_parser.c" /* yacc.c:1646  */
5320      break;
5321  
5322 <  case 400:
5323 < #line 2177 "conf_parser.y" /* yacc.c:1646  */
5322 >  case 432:
5323 > #line 2166 "conf_parser.y" /* yacc.c:1646  */
5324      {
5325    if (conf_parser_ctx.pass == 2)
5326      strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5327   }
5328 < #line 5269 "conf_parser.c" /* yacc.c:1646  */
5328 > #line 5329 "conf_parser.c" /* yacc.c:1646  */
5329      break;
5330  
5331 <  case 401:
5332 < #line 2183 "conf_parser.y" /* yacc.c:1646  */
5331 >  case 433:
5332 > #line 2172 "conf_parser.y" /* yacc.c:1646  */
5333      {
5334    if (conf_parser_ctx.pass == 2)
5335      strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5336   }
5337 < #line 5278 "conf_parser.c" /* yacc.c:1646  */
5337 > #line 5338 "conf_parser.c" /* yacc.c:1646  */
5338      break;
5339  
5340 <  case 402:
5341 < #line 2189 "conf_parser.y" /* yacc.c:1646  */
5340 >  case 434:
5341 > #line 2178 "conf_parser.y" /* yacc.c:1646  */
5342      {
5343    if (conf_parser_ctx.pass != 2)
5344      break;
# Line 5290 | Line 5350 | yyreduce:
5350    else
5351      strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5352   }
5353 < #line 5294 "conf_parser.c" /* yacc.c:1646  */
5353 > #line 5354 "conf_parser.c" /* yacc.c:1646  */
5354      break;
5355  
5356 <  case 403:
5357 < #line 2202 "conf_parser.y" /* yacc.c:1646  */
5356 >  case 435:
5357 > #line 2191 "conf_parser.y" /* yacc.c:1646  */
5358      {
5359    if (conf_parser_ctx.pass != 2)
5360      break;
# Line 5306 | Line 5366 | yyreduce:
5366    else
5367      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5368   }
5369 < #line 5310 "conf_parser.c" /* yacc.c:1646  */
5369 > #line 5370 "conf_parser.c" /* yacc.c:1646  */
5370      break;
5371  
5372 <  case 404:
5373 < #line 2215 "conf_parser.y" /* yacc.c:1646  */
5372 >  case 436:
5373 > #line 2204 "conf_parser.y" /* yacc.c:1646  */
5374      {
5375    if (conf_parser_ctx.pass == 2)
5376      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5377   }
5378 < #line 5319 "conf_parser.c" /* yacc.c:1646  */
5378 > #line 5379 "conf_parser.c" /* yacc.c:1646  */
5379      break;
5380  
5381 <  case 405:
5382 < #line 2221 "conf_parser.y" /* yacc.c:1646  */
5381 >  case 437:
5382 > #line 2210 "conf_parser.y" /* yacc.c:1646  */
5383      {
5384    if (conf_parser_ctx.pass == 2)
5385      block_state.port.value = (yyvsp[-1].number);
5386   }
5387 < #line 5328 "conf_parser.c" /* yacc.c:1646  */
5387 > #line 5388 "conf_parser.c" /* yacc.c:1646  */
5388      break;
5389  
5390 <  case 406:
5391 < #line 2227 "conf_parser.y" /* yacc.c:1646  */
5390 >  case 438:
5391 > #line 2216 "conf_parser.y" /* yacc.c:1646  */
5392      {
5393    if (conf_parser_ctx.pass == 2)
5394      block_state.aftype.value = AF_INET;
5395   }
5396 < #line 5337 "conf_parser.c" /* yacc.c:1646  */
5396 > #line 5397 "conf_parser.c" /* yacc.c:1646  */
5397      break;
5398  
5399 <  case 407:
5400 < #line 2231 "conf_parser.y" /* yacc.c:1646  */
5399 >  case 439:
5400 > #line 2220 "conf_parser.y" /* yacc.c:1646  */
5401      {
5342 #ifdef IPV6
5402    if (conf_parser_ctx.pass == 2)
5403      block_state.aftype.value = AF_INET6;
5345 #endif
5404   }
5405 < #line 5348 "conf_parser.c" /* yacc.c:1646  */
5405 > #line 5406 "conf_parser.c" /* yacc.c:1646  */
5406      break;
5407  
5408 <  case 408:
5409 < #line 2239 "conf_parser.y" /* yacc.c:1646  */
5408 >  case 440:
5409 > #line 2226 "conf_parser.y" /* yacc.c:1646  */
5410      {
5411    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5412   }
5413 < #line 5356 "conf_parser.c" /* yacc.c:1646  */
5413 > #line 5414 "conf_parser.c" /* yacc.c:1646  */
5414      break;
5415  
5416 <  case 412:
5417 < #line 2245 "conf_parser.y" /* yacc.c:1646  */
5416 >  case 444:
5417 > #line 2232 "conf_parser.y" /* yacc.c:1646  */
5418      {
5419    if (conf_parser_ctx.pass == 2)
5420      block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5421   }
5422 < #line 5365 "conf_parser.c" /* yacc.c:1646  */
5422 > #line 5423 "conf_parser.c" /* yacc.c:1646  */
5423      break;
5424  
5425 <  case 413:
5426 < #line 2249 "conf_parser.y" /* yacc.c:1646  */
5425 >  case 445:
5426 > #line 2236 "conf_parser.y" /* yacc.c:1646  */
5427      {
5428    if (conf_parser_ctx.pass == 2)
5429      block_state.flags.value |= CONF_FLAGS_SSL;
5430   }
5431 < #line 5374 "conf_parser.c" /* yacc.c:1646  */
5431 > #line 5432 "conf_parser.c" /* yacc.c:1646  */
5432      break;
5433  
5434 <  case 414:
5435 < #line 2255 "conf_parser.y" /* yacc.c:1646  */
5434 >  case 446:
5435 > #line 2242 "conf_parser.y" /* yacc.c:1646  */
5436      {
5437    if (conf_parser_ctx.pass == 2)
5438    {
# Line 5384 | Line 5442 | yyreduce:
5442        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5443    }
5444   }
5445 < #line 5388 "conf_parser.c" /* yacc.c:1646  */
5445 > #line 5446 "conf_parser.c" /* yacc.c:1646  */
5446      break;
5447  
5448 <  case 415:
5449 < #line 2266 "conf_parser.y" /* yacc.c:1646  */
5448 >  case 447:
5449 > #line 2253 "conf_parser.y" /* yacc.c:1646  */
5450      {
5451    if (conf_parser_ctx.pass == 2)
5452      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5453   }
5454 < #line 5397 "conf_parser.c" /* yacc.c:1646  */
5454 > #line 5455 "conf_parser.c" /* yacc.c:1646  */
5455      break;
5456  
5457 <  case 416:
5458 < #line 2272 "conf_parser.y" /* yacc.c:1646  */
5457 >  case 448:
5458 > #line 2259 "conf_parser.y" /* yacc.c:1646  */
5459      {
5460    if (conf_parser_ctx.pass == 2)
5461      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5462   }
5463 < #line 5406 "conf_parser.c" /* yacc.c:1646  */
5463 > #line 5464 "conf_parser.c" /* yacc.c:1646  */
5464      break;
5465  
5466 <  case 417:
5467 < #line 2278 "conf_parser.y" /* yacc.c:1646  */
5466 >  case 449:
5467 > #line 2265 "conf_parser.y" /* yacc.c:1646  */
5468      {
5469    if (conf_parser_ctx.pass == 2)
5470      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5471   }
5472 < #line 5415 "conf_parser.c" /* yacc.c:1646  */
5472 > #line 5473 "conf_parser.c" /* yacc.c:1646  */
5473      break;
5474  
5475 <  case 418:
5476 < #line 2284 "conf_parser.y" /* yacc.c:1646  */
5475 >  case 450:
5476 > #line 2271 "conf_parser.y" /* yacc.c:1646  */
5477      {
5478 < #ifdef HAVE_LIBCRYPTO
5478 > #ifdef HAVE_TLS
5479    if (conf_parser_ctx.pass == 2)
5480      strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5481   #else
5482    if (conf_parser_ctx.pass == 2)
5483 <    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5483 >    conf_error_report("Ignoring connect::ciphers -- no TLS support");
5484   #endif
5485   }
5486 < #line 5429 "conf_parser.c" /* yacc.c:1646  */
5486 > #line 5487 "conf_parser.c" /* yacc.c:1646  */
5487      break;
5488  
5489 <  case 419:
5490 < #line 2299 "conf_parser.y" /* yacc.c:1646  */
5489 >  case 451:
5490 > #line 2286 "conf_parser.y" /* yacc.c:1646  */
5491      {
5492    if (conf_parser_ctx.pass == 2)
5493      reset_block_state();
5494   }
5495 < #line 5438 "conf_parser.c" /* yacc.c:1646  */
5495 > #line 5496 "conf_parser.c" /* yacc.c:1646  */
5496      break;
5497  
5498 <  case 420:
5499 < #line 2303 "conf_parser.y" /* yacc.c:1646  */
5498 >  case 452:
5499 > #line 2290 "conf_parser.y" /* yacc.c:1646  */
5500      {
5501    struct MaskItem *conf = NULL;
5502  
# Line 5459 | Line 5517 | yyreduce:
5517      conf->reason = xstrdup(CONF_NOREASON);
5518    add_conf_by_address(CONF_KLINE, conf);
5519   }
5520 < #line 5463 "conf_parser.c" /* yacc.c:1646  */
5520 > #line 5521 "conf_parser.c" /* yacc.c:1646  */
5521      break;
5522  
5523 <  case 426:
5524 < #line 2328 "conf_parser.y" /* yacc.c:1646  */
5523 >  case 458:
5524 > #line 2315 "conf_parser.y" /* yacc.c:1646  */
5525      {
5526  
5527    if (conf_parser_ctx.pass == 2)
# Line 5482 | Line 5540 | yyreduce:
5540      split_nuh(&nuh);
5541    }
5542   }
5543 < #line 5486 "conf_parser.c" /* yacc.c:1646  */
5543 > #line 5544 "conf_parser.c" /* yacc.c:1646  */
5544      break;
5545  
5546 <  case 427:
5547 < #line 2348 "conf_parser.y" /* yacc.c:1646  */
5546 >  case 459:
5547 > #line 2335 "conf_parser.y" /* yacc.c:1646  */
5548      {
5549    if (conf_parser_ctx.pass == 2)
5550      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5551   }
5552 < #line 5495 "conf_parser.c" /* yacc.c:1646  */
5552 > #line 5553 "conf_parser.c" /* yacc.c:1646  */
5553      break;
5554  
5555 <  case 428:
5556 < #line 2357 "conf_parser.y" /* yacc.c:1646  */
5555 >  case 460:
5556 > #line 2345 "conf_parser.y" /* yacc.c:1646  */
5557      {
5558    if (conf_parser_ctx.pass == 2)
5559      reset_block_state();
5560   }
5561 < #line 5504 "conf_parser.c" /* yacc.c:1646  */
5561 > #line 5562 "conf_parser.c" /* yacc.c:1646  */
5562      break;
5563  
5564 <  case 429:
5565 < #line 2361 "conf_parser.y" /* yacc.c:1646  */
5564 >  case 461:
5565 > #line 2349 "conf_parser.y" /* yacc.c:1646  */
5566      {
5567    struct MaskItem *conf = NULL;
5568  
# Line 5526 | Line 5584 | yyreduce:
5584      add_conf_by_address(CONF_DLINE, conf);
5585    }
5586   }
5587 < #line 5530 "conf_parser.c" /* yacc.c:1646  */
5587 > #line 5588 "conf_parser.c" /* yacc.c:1646  */
5588      break;
5589  
5590 <  case 435:
5591 < #line 2387 "conf_parser.y" /* yacc.c:1646  */
5590 >  case 467:
5591 > #line 2375 "conf_parser.y" /* yacc.c:1646  */
5592      {
5593    if (conf_parser_ctx.pass == 2)
5594      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5595   }
5596 < #line 5539 "conf_parser.c" /* yacc.c:1646  */
5596 > #line 5597 "conf_parser.c" /* yacc.c:1646  */
5597      break;
5598  
5599 <  case 436:
5600 < #line 2393 "conf_parser.y" /* yacc.c:1646  */
5599 >  case 468:
5600 > #line 2381 "conf_parser.y" /* yacc.c:1646  */
5601      {
5602    if (conf_parser_ctx.pass == 2)
5603      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5604   }
5605 < #line 5548 "conf_parser.c" /* yacc.c:1646  */
5605 > #line 5606 "conf_parser.c" /* yacc.c:1646  */
5606      break;
5607  
5608 <  case 442:
5609 < #line 2407 "conf_parser.y" /* yacc.c:1646  */
5608 >  case 474:
5609 > #line 2396 "conf_parser.y" /* yacc.c:1646  */
5610      {
5611    if (conf_parser_ctx.pass == 2)
5612    {
5613 <    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5613 >    if (*yylval.string && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5614      {
5615        struct MaskItem *conf = conf_make(CONF_EXEMPT);
5616        conf->host = xstrdup(yylval.string);
# Line 5561 | Line 5619 | yyreduce:
5619      }
5620    }
5621   }
5622 < #line 5565 "conf_parser.c" /* yacc.c:1646  */
5622 > #line 5623 "conf_parser.c" /* yacc.c:1646  */
5623      break;
5624  
5625 <  case 443:
5626 < #line 2424 "conf_parser.y" /* yacc.c:1646  */
5625 >  case 475:
5626 > #line 2413 "conf_parser.y" /* yacc.c:1646  */
5627      {
5628    if (conf_parser_ctx.pass == 2)
5629      reset_block_state();
5630   }
5631 < #line 5574 "conf_parser.c" /* yacc.c:1646  */
5631 > #line 5632 "conf_parser.c" /* yacc.c:1646  */
5632      break;
5633  
5634 <  case 444:
5635 < #line 2428 "conf_parser.y" /* yacc.c:1646  */
5634 >  case 476:
5635 > #line 2417 "conf_parser.y" /* yacc.c:1646  */
5636      {
5637    struct MaskItem *conf = NULL;
5638  
# Line 5592 | Line 5650 | yyreduce:
5650    else
5651      conf->reason = xstrdup(CONF_NOREASON);
5652   }
5653 < #line 5596 "conf_parser.c" /* yacc.c:1646  */
5653 > #line 5654 "conf_parser.c" /* yacc.c:1646  */
5654      break;
5655  
5656 <  case 450:
5657 < #line 2450 "conf_parser.y" /* yacc.c:1646  */
5656 >  case 482:
5657 > #line 2439 "conf_parser.y" /* yacc.c:1646  */
5658      {
5659    if (conf_parser_ctx.pass == 2)
5660      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5661   }
5662 < #line 5605 "conf_parser.c" /* yacc.c:1646  */
5662 > #line 5663 "conf_parser.c" /* yacc.c:1646  */
5663      break;
5664  
5665 <  case 451:
5666 < #line 2456 "conf_parser.y" /* yacc.c:1646  */
5665 >  case 483:
5666 > #line 2445 "conf_parser.y" /* yacc.c:1646  */
5667      {
5668    if (conf_parser_ctx.pass == 2)
5669      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5670   }
5671 < #line 5614 "conf_parser.c" /* yacc.c:1646  */
5671 > #line 5672 "conf_parser.c" /* yacc.c:1646  */
5672      break;
5673  
5674 <  case 506:
5675 < #line 2522 "conf_parser.y" /* yacc.c:1646  */
5618 <    {
5619 <  ConfigFileEntry.away_count = (yyvsp[-1].number);
5620 < }
5621 < #line 5622 "conf_parser.c" /* yacc.c:1646  */
5622 <    break;
5623 <
5624 <  case 507:
5625 < #line 2527 "conf_parser.y" /* yacc.c:1646  */
5674 >  case 533:
5675 > #line 2506 "conf_parser.y" /* yacc.c:1646  */
5676      {
5677 <  ConfigFileEntry.away_time = (yyvsp[-1].number);
5677 >  ConfigGeneral.away_count = (yyvsp[-1].number);
5678   }
5679 < #line 5630 "conf_parser.c" /* yacc.c:1646  */
5679 > #line 5680 "conf_parser.c" /* yacc.c:1646  */
5680      break;
5681  
5682 <  case 508:
5683 < #line 2532 "conf_parser.y" /* yacc.c:1646  */
5682 >  case 534:
5683 > #line 2511 "conf_parser.y" /* yacc.c:1646  */
5684      {
5685 <  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5685 >  ConfigGeneral.away_time = (yyvsp[-1].number);
5686   }
5687 < #line 5638 "conf_parser.c" /* yacc.c:1646  */
5687 > #line 5688 "conf_parser.c" /* yacc.c:1646  */
5688      break;
5689  
5690 <  case 509:
5691 < #line 2537 "conf_parser.y" /* yacc.c:1646  */
5690 >  case 535:
5691 > #line 2516 "conf_parser.y" /* yacc.c:1646  */
5692      {
5693 <  if (conf_parser_ctx.pass == 2)
5644 <    ConfigFileEntry.cycle_on_host_change = yylval.number;
5693 >  ConfigGeneral.max_watch = (yyvsp[-1].number);
5694   }
5695 < #line 5647 "conf_parser.c" /* yacc.c:1646  */
5695 > #line 5696 "conf_parser.c" /* yacc.c:1646  */
5696      break;
5697  
5698 <  case 510:
5699 < #line 2543 "conf_parser.y" /* yacc.c:1646  */
5698 >  case 536:
5699 > #line 2521 "conf_parser.y" /* yacc.c:1646  */
5700      {
5701    if (conf_parser_ctx.pass == 2)
5702 <    ConfigFileEntry.glines = yylval.number;
5702 >    ConfigGeneral.cycle_on_host_change = yylval.number;
5703   }
5704 < #line 5656 "conf_parser.c" /* yacc.c:1646  */
5704 > #line 5705 "conf_parser.c" /* yacc.c:1646  */
5705      break;
5706  
5707 <  case 511:
5708 < #line 2549 "conf_parser.y" /* yacc.c:1646  */
5707 >  case 537:
5708 > #line 2527 "conf_parser.y" /* yacc.c:1646  */
5709      {
5710 <  if (conf_parser_ctx.pass == 2)
5662 <    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5710 >  ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5711   }
5712 < #line 5665 "conf_parser.c" /* yacc.c:1646  */
5712 > #line 5713 "conf_parser.c" /* yacc.c:1646  */
5713      break;
5714  
5715 <  case 512:
5716 < #line 2555 "conf_parser.y" /* yacc.c:1646  */
5669 <    {
5670 <  if (conf_parser_ctx.pass == 2)
5671 <    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5672 < }
5673 < #line 5674 "conf_parser.c" /* yacc.c:1646  */
5674 <    break;
5675 <
5676 <  case 513:
5677 < #line 2561 "conf_parser.y" /* yacc.c:1646  */
5715 >  case 538:
5716 > #line 2532 "conf_parser.y" /* yacc.c:1646  */
5717      {
5718 <  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5718 >  ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5719   }
5720 < #line 5682 "conf_parser.c" /* yacc.c:1646  */
5720 > #line 5721 "conf_parser.c" /* yacc.c:1646  */
5721      break;
5722  
5723 <  case 514:
5724 < #line 2566 "conf_parser.y" /* yacc.c:1646  */
5723 >  case 539:
5724 > #line 2537 "conf_parser.y" /* yacc.c:1646  */
5725      {
5726 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5726 >  ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5727   }
5728 < #line 5690 "conf_parser.c" /* yacc.c:1646  */
5728 > #line 5729 "conf_parser.c" /* yacc.c:1646  */
5729      break;
5730  
5731 <  case 515:
5732 < #line 2571 "conf_parser.y" /* yacc.c:1646  */
5731 >  case 540:
5732 > #line 2542 "conf_parser.y" /* yacc.c:1646  */
5733      {
5734 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5734 >  ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5735   }
5736 < #line 5698 "conf_parser.c" /* yacc.c:1646  */
5736 > #line 5737 "conf_parser.c" /* yacc.c:1646  */
5737      break;
5738  
5739 <  case 516:
5740 < #line 2576 "conf_parser.y" /* yacc.c:1646  */
5739 >  case 541:
5740 > #line 2547 "conf_parser.y" /* yacc.c:1646  */
5741      {
5742 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5742 >  ConfigGeneral.tkline_expire_notices = yylval.number;
5743   }
5744 < #line 5706 "conf_parser.c" /* yacc.c:1646  */
5744 > #line 5745 "conf_parser.c" /* yacc.c:1646  */
5745      break;
5746  
5747 <  case 517:
5748 < #line 2581 "conf_parser.y" /* yacc.c:1646  */
5747 >  case 542:
5748 > #line 2552 "conf_parser.y" /* yacc.c:1646  */
5749      {
5750 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5750 >  ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5751   }
5752 < #line 5714 "conf_parser.c" /* yacc.c:1646  */
5752 > #line 5753 "conf_parser.c" /* yacc.c:1646  */
5753      break;
5754  
5755 <  case 518:
5756 < #line 2586 "conf_parser.y" /* yacc.c:1646  */
5755 >  case 543:
5756 > #line 2557 "conf_parser.y" /* yacc.c:1646  */
5757      {
5758 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5758 >  ConfigGeneral.ignore_bogus_ts = yylval.number;
5759   }
5760 < #line 5722 "conf_parser.c" /* yacc.c:1646  */
5760 > #line 5761 "conf_parser.c" /* yacc.c:1646  */
5761      break;
5762  
5763 <  case 519:
5764 < #line 2591 "conf_parser.y" /* yacc.c:1646  */
5763 >  case 544:
5764 > #line 2562 "conf_parser.y" /* yacc.c:1646  */
5765      {
5766 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5766 >  ConfigGeneral.failed_oper_notice = yylval.number;
5767   }
5768 < #line 5730 "conf_parser.c" /* yacc.c:1646  */
5768 > #line 5769 "conf_parser.c" /* yacc.c:1646  */
5769      break;
5770  
5771 <  case 520:
5772 < #line 2596 "conf_parser.y" /* yacc.c:1646  */
5771 >  case 545:
5772 > #line 2567 "conf_parser.y" /* yacc.c:1646  */
5773      {
5774 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5774 >  ConfigGeneral.anti_nick_flood = yylval.number;
5775   }
5776 < #line 5738 "conf_parser.c" /* yacc.c:1646  */
5776 > #line 5777 "conf_parser.c" /* yacc.c:1646  */
5777      break;
5778  
5779 <  case 521:
5780 < #line 2601 "conf_parser.y" /* yacc.c:1646  */
5779 >  case 546:
5780 > #line 2572 "conf_parser.y" /* yacc.c:1646  */
5781      {
5782 <  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5782 >  ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5783   }
5784 < #line 5746 "conf_parser.c" /* yacc.c:1646  */
5784 > #line 5785 "conf_parser.c" /* yacc.c:1646  */
5785      break;
5786  
5787 <  case 522:
5788 < #line 2606 "conf_parser.y" /* yacc.c:1646  */
5787 >  case 547:
5788 > #line 2577 "conf_parser.y" /* yacc.c:1646  */
5789      {
5790 <  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5790 >  ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5791   }
5792 < #line 5754 "conf_parser.c" /* yacc.c:1646  */
5792 > #line 5793 "conf_parser.c" /* yacc.c:1646  */
5793      break;
5794  
5795 <  case 523:
5796 < #line 2611 "conf_parser.y" /* yacc.c:1646  */
5795 >  case 548:
5796 > #line 2582 "conf_parser.y" /* yacc.c:1646  */
5797      {
5798 <  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5798 >  ConfigGeneral.max_accept = (yyvsp[-1].number);
5799   }
5800 < #line 5762 "conf_parser.c" /* yacc.c:1646  */
5800 > #line 5801 "conf_parser.c" /* yacc.c:1646  */
5801      break;
5802  
5803 <  case 524:
5804 < #line 2616 "conf_parser.y" /* yacc.c:1646  */
5803 >  case 549:
5804 > #line 2587 "conf_parser.y" /* yacc.c:1646  */
5805      {
5806 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5806 >  ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5807   }
5808 < #line 5770 "conf_parser.c" /* yacc.c:1646  */
5808 > #line 5809 "conf_parser.c" /* yacc.c:1646  */
5809      break;
5810  
5811 <  case 525:
5812 < #line 2621 "conf_parser.y" /* yacc.c:1646  */
5811 >  case 550:
5812 > #line 2592 "conf_parser.y" /* yacc.c:1646  */
5813      {
5814 <  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5814 >  ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5815   }
5816 < #line 5778 "conf_parser.c" /* yacc.c:1646  */
5816 > #line 5817 "conf_parser.c" /* yacc.c:1646  */
5817      break;
5818  
5819 <  case 526:
5820 < #line 2626 "conf_parser.y" /* yacc.c:1646  */
5819 >  case 551:
5820 > #line 2597 "conf_parser.y" /* yacc.c:1646  */
5821      {
5822    if (conf_parser_ctx.pass == 2)
5823 <    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5785 < }
5786 < #line 5787 "conf_parser.c" /* yacc.c:1646  */
5787 <    break;
5788 <
5789 <  case 527:
5790 < #line 2632 "conf_parser.y" /* yacc.c:1646  */
5791 <    {
5792 <  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5793 <  {
5794 <    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5795 <    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5796 <    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5797 <    exit(0);
5798 <  }
5799 < }
5800 < #line 5801 "conf_parser.c" /* yacc.c:1646  */
5801 <    break;
5802 <
5803 <  case 528:
5804 < #line 2643 "conf_parser.y" /* yacc.c:1646  */
5805 <    {
5806 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5823 >    ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5824   }
5825 < #line 5809 "conf_parser.c" /* yacc.c:1646  */
5825 > #line 5826 "conf_parser.c" /* yacc.c:1646  */
5826      break;
5827  
5828 <  case 529:
5829 < #line 2648 "conf_parser.y" /* yacc.c:1646  */
5828 >  case 552:
5829 > #line 2603 "conf_parser.y" /* yacc.c:1646  */
5830      {
5831 <  ConfigFileEntry.warn_no_connect_block = yylval.number;
5831 >  ConfigGeneral.invisible_on_connect = yylval.number;
5832   }
5833 < #line 5817 "conf_parser.c" /* yacc.c:1646  */
5833 > #line 5834 "conf_parser.c" /* yacc.c:1646  */
5834      break;
5835  
5836 <  case 530:
5837 < #line 2653 "conf_parser.y" /* yacc.c:1646  */
5836 >  case 553:
5837 > #line 2608 "conf_parser.y" /* yacc.c:1646  */
5838      {
5839 <  ConfigFileEntry.stats_e_disabled = yylval.number;
5839 >  ConfigGeneral.warn_no_connect_block = yylval.number;
5840   }
5841 < #line 5825 "conf_parser.c" /* yacc.c:1646  */
5841 > #line 5842 "conf_parser.c" /* yacc.c:1646  */
5842      break;
5843  
5844 <  case 531:
5845 < #line 2658 "conf_parser.y" /* yacc.c:1646  */
5844 >  case 554:
5845 > #line 2613 "conf_parser.y" /* yacc.c:1646  */
5846      {
5847 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
5847 >  ConfigGeneral.stats_e_disabled = yylval.number;
5848   }
5849 < #line 5833 "conf_parser.c" /* yacc.c:1646  */
5849 > #line 5850 "conf_parser.c" /* yacc.c:1646  */
5850      break;
5851  
5852 <  case 532:
5853 < #line 2663 "conf_parser.y" /* yacc.c:1646  */
5852 >  case 555:
5853 > #line 2618 "conf_parser.y" /* yacc.c:1646  */
5854      {
5855 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
5855 >  ConfigGeneral.stats_m_oper_only = yylval.number;
5856   }
5857 < #line 5841 "conf_parser.c" /* yacc.c:1646  */
5857 > #line 5858 "conf_parser.c" /* yacc.c:1646  */
5858      break;
5859  
5860 <  case 533:
5861 < #line 2668 "conf_parser.y" /* yacc.c:1646  */
5860 >  case 556:
5861 > #line 2623 "conf_parser.y" /* yacc.c:1646  */
5862      {
5863 <  ConfigFileEntry.stats_u_oper_only = yylval.number;
5863 >  ConfigGeneral.stats_o_oper_only = yylval.number;
5864   }
5865 < #line 5849 "conf_parser.c" /* yacc.c:1646  */
5865 > #line 5866 "conf_parser.c" /* yacc.c:1646  */
5866      break;
5867  
5868 <  case 534:
5869 < #line 2673 "conf_parser.y" /* yacc.c:1646  */
5868 >  case 557:
5869 > #line 2628 "conf_parser.y" /* yacc.c:1646  */
5870      {
5871 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5871 >  ConfigGeneral.stats_P_oper_only = yylval.number;
5872   }
5873 < #line 5857 "conf_parser.c" /* yacc.c:1646  */
5873 > #line 5874 "conf_parser.c" /* yacc.c:1646  */
5874      break;
5875  
5876 <  case 535:
5877 < #line 2676 "conf_parser.y" /* yacc.c:1646  */
5876 >  case 558:
5877 > #line 2633 "conf_parser.y" /* yacc.c:1646  */
5878      {
5879 <  ConfigFileEntry.stats_k_oper_only = 1;
5879 >  ConfigGeneral.stats_u_oper_only = yylval.number;
5880   }
5881 < #line 5865 "conf_parser.c" /* yacc.c:1646  */
5881 > #line 5882 "conf_parser.c" /* yacc.c:1646  */
5882      break;
5883  
5884 <  case 536:
5885 < #line 2681 "conf_parser.y" /* yacc.c:1646  */
5884 >  case 559:
5885 > #line 2638 "conf_parser.y" /* yacc.c:1646  */
5886      {
5887 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5887 >  ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5888   }
5889 < #line 5873 "conf_parser.c" /* yacc.c:1646  */
5889 > #line 5890 "conf_parser.c" /* yacc.c:1646  */
5890      break;
5891  
5892 <  case 537:
5893 < #line 2684 "conf_parser.y" /* yacc.c:1646  */
5892 >  case 560:
5893 > #line 2641 "conf_parser.y" /* yacc.c:1646  */
5894      {
5895 <  ConfigFileEntry.stats_i_oper_only = 1;
5895 >  ConfigGeneral.stats_k_oper_only = 1;
5896   }
5897 < #line 5881 "conf_parser.c" /* yacc.c:1646  */
5897 > #line 5898 "conf_parser.c" /* yacc.c:1646  */
5898      break;
5899  
5900 <  case 538:
5901 < #line 2689 "conf_parser.y" /* yacc.c:1646  */
5900 >  case 561:
5901 > #line 2646 "conf_parser.y" /* yacc.c:1646  */
5902      {
5903 <  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5903 >  ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5904   }
5905 < #line 5889 "conf_parser.c" /* yacc.c:1646  */
5905 > #line 5906 "conf_parser.c" /* yacc.c:1646  */
5906      break;
5907  
5908 <  case 539:
5909 < #line 2694 "conf_parser.y" /* yacc.c:1646  */
5908 >  case 562:
5909 > #line 2649 "conf_parser.y" /* yacc.c:1646  */
5910      {
5911 <  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5911 >  ConfigGeneral.stats_i_oper_only = 1;
5912   }
5913 < #line 5897 "conf_parser.c" /* yacc.c:1646  */
5913 > #line 5914 "conf_parser.c" /* yacc.c:1646  */
5914      break;
5915  
5916 <  case 540:
5917 < #line 2699 "conf_parser.y" /* yacc.c:1646  */
5916 >  case 563:
5917 > #line 2654 "conf_parser.y" /* yacc.c:1646  */
5918      {
5919 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5919 >  ConfigGeneral.pace_wait = (yyvsp[-1].number);
5920   }
5921 < #line 5905 "conf_parser.c" /* yacc.c:1646  */
5921 > #line 5922 "conf_parser.c" /* yacc.c:1646  */
5922      break;
5923  
5924 <  case 541:
5925 < #line 2704 "conf_parser.y" /* yacc.c:1646  */
5924 >  case 564:
5925 > #line 2659 "conf_parser.y" /* yacc.c:1646  */
5926      {
5927 <  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5927 >  ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5928   }
5929 < #line 5913 "conf_parser.c" /* yacc.c:1646  */
5929 > #line 5930 "conf_parser.c" /* yacc.c:1646  */
5930      break;
5931  
5932 <  case 542:
5933 < #line 2709 "conf_parser.y" /* yacc.c:1646  */
5932 >  case 565:
5933 > #line 2664 "conf_parser.y" /* yacc.c:1646  */
5934      {
5935 <  ConfigFileEntry.short_motd = yylval.number;
5935 >  ConfigGeneral.opers_bypass_callerid = yylval.number;
5936   }
5937 < #line 5921 "conf_parser.c" /* yacc.c:1646  */
5937 > #line 5938 "conf_parser.c" /* yacc.c:1646  */
5938      break;
5939  
5940 <  case 543:
5941 < #line 2714 "conf_parser.y" /* yacc.c:1646  */
5940 >  case 566:
5941 > #line 2669 "conf_parser.y" /* yacc.c:1646  */
5942      {
5943 <  ConfigFileEntry.no_oper_flood = yylval.number;
5943 >  ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5944   }
5945 < #line 5929 "conf_parser.c" /* yacc.c:1646  */
5945 > #line 5946 "conf_parser.c" /* yacc.c:1646  */
5946      break;
5947  
5948 <  case 544:
5949 < #line 2719 "conf_parser.y" /* yacc.c:1646  */
5948 >  case 567:
5949 > #line 2674 "conf_parser.y" /* yacc.c:1646  */
5950      {
5951 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
5951 >  ConfigGeneral.short_motd = yylval.number;
5952   }
5953 < #line 5937 "conf_parser.c" /* yacc.c:1646  */
5953 > #line 5954 "conf_parser.c" /* yacc.c:1646  */
5954      break;
5955  
5956 <  case 545:
5957 < #line 2724 "conf_parser.y" /* yacc.c:1646  */
5956 >  case 568:
5957 > #line 2679 "conf_parser.y" /* yacc.c:1646  */
5958      {
5959 <  ConfigFileEntry.oper_pass_resv = yylval.number;
5959 >  ConfigGeneral.no_oper_flood = yylval.number;
5960   }
5961 < #line 5945 "conf_parser.c" /* yacc.c:1646  */
5961 > #line 5962 "conf_parser.c" /* yacc.c:1646  */
5962      break;
5963  
5964 <  case 546:
5965 < #line 2729 "conf_parser.y" /* yacc.c:1646  */
5964 >  case 569:
5965 > #line 2684 "conf_parser.y" /* yacc.c:1646  */
5966      {
5967 <  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5967 >  ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5968   }
5969 < #line 5953 "conf_parser.c" /* yacc.c:1646  */
5969 > #line 5970 "conf_parser.c" /* yacc.c:1646  */
5970      break;
5971  
5972 <  case 547:
5973 < #line 2734 "conf_parser.y" /* yacc.c:1646  */
5972 >  case 570:
5973 > #line 2689 "conf_parser.y" /* yacc.c:1646  */
5974      {
5975 <  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5975 >  ConfigGeneral.max_targets = (yyvsp[-1].number);
5976   }
5977 < #line 5961 "conf_parser.c" /* yacc.c:1646  */
5977 > #line 5978 "conf_parser.c" /* yacc.c:1646  */
5978      break;
5979  
5980 <  case 548:
5981 < #line 2739 "conf_parser.y" /* yacc.c:1646  */
5980 >  case 571:
5981 > #line 2694 "conf_parser.y" /* yacc.c:1646  */
5982      {
5983 <  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
5967 <  {
5968 <    MyFree(ConfigFileEntry.service_name);
5969 <    ConfigFileEntry.service_name = xstrdup(yylval.string);
5970 <  }
5983 >  ConfigGeneral.ping_cookie = yylval.number;
5984   }
5985 < #line 5973 "conf_parser.c" /* yacc.c:1646  */
5985 > #line 5986 "conf_parser.c" /* yacc.c:1646  */
5986      break;
5987  
5988 <  case 549:
5989 < #line 2748 "conf_parser.y" /* yacc.c:1646  */
5988 >  case 572:
5989 > #line 2699 "conf_parser.y" /* yacc.c:1646  */
5990      {
5991 <  ConfigFileEntry.ping_cookie = yylval.number;
5991 >  ConfigGeneral.disable_auth = yylval.number;
5992   }
5993 < #line 5981 "conf_parser.c" /* yacc.c:1646  */
5993 > #line 5994 "conf_parser.c" /* yacc.c:1646  */
5994      break;
5995  
5996 <  case 550:
5997 < #line 2753 "conf_parser.y" /* yacc.c:1646  */
5996 >  case 573:
5997 > #line 2704 "conf_parser.y" /* yacc.c:1646  */
5998      {
5999 <  ConfigFileEntry.disable_auth = yylval.number;
5999 >  ConfigGeneral.throttle_count = (yyvsp[-1].number);
6000   }
6001 < #line 5989 "conf_parser.c" /* yacc.c:1646  */
6001 > #line 6002 "conf_parser.c" /* yacc.c:1646  */
6002      break;
6003  
6004 <  case 551:
6005 < #line 2758 "conf_parser.y" /* yacc.c:1646  */
6004 >  case 574:
6005 > #line 2709 "conf_parser.y" /* yacc.c:1646  */
6006      {
6007 <  ConfigFileEntry.throttle_count = (yyvsp[-1].number);
6007 >  ConfigGeneral.throttle_time = (yyvsp[-1].number);
6008   }
6009 < #line 5997 "conf_parser.c" /* yacc.c:1646  */
6009 > #line 6010 "conf_parser.c" /* yacc.c:1646  */
6010      break;
6011  
6012 <  case 552:
6013 < #line 2763 "conf_parser.y" /* yacc.c:1646  */
6012 >  case 575:
6013 > #line 2714 "conf_parser.y" /* yacc.c:1646  */
6014      {
6015 <  ConfigFileEntry.throttle_time = (yyvsp[-1].number);
6015 >  ConfigGeneral.oper_umodes = 0;
6016   }
6017 < #line 6005 "conf_parser.c" /* yacc.c:1646  */
6017 > #line 6018 "conf_parser.c" /* yacc.c:1646  */
6018      break;
6019  
6020 <  case 553:
6021 < #line 2768 "conf_parser.y" /* yacc.c:1646  */
6020 >  case 579:
6021 > #line 2720 "conf_parser.y" /* yacc.c:1646  */
6022      {
6023 <  ConfigFileEntry.oper_umodes = 0;
6023 >  ConfigGeneral.oper_umodes |= UMODE_BOTS;
6024   }
6025 < #line 6013 "conf_parser.c" /* yacc.c:1646  */
6025 > #line 6026 "conf_parser.c" /* yacc.c:1646  */
6026      break;
6027  
6028 <  case 557:
6029 < #line 2774 "conf_parser.y" /* yacc.c:1646  */
6028 >  case 580:
6029 > #line 2723 "conf_parser.y" /* yacc.c:1646  */
6030      {
6031 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6031 >  ConfigGeneral.oper_umodes |= UMODE_CCONN;
6032   }
6033 < #line 6021 "conf_parser.c" /* yacc.c:1646  */
6033 > #line 6034 "conf_parser.c" /* yacc.c:1646  */
6034      break;
6035  
6036 <  case 558:
6037 < #line 2777 "conf_parser.y" /* yacc.c:1646  */
6036 >  case 581:
6037 > #line 2726 "conf_parser.y" /* yacc.c:1646  */
6038      {
6039 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6039 >  ConfigGeneral.oper_umodes |= UMODE_DEAF;
6040   }
6041 < #line 6029 "conf_parser.c" /* yacc.c:1646  */
6041 > #line 6042 "conf_parser.c" /* yacc.c:1646  */
6042      break;
6043  
6044 <  case 559:
6045 < #line 2780 "conf_parser.y" /* yacc.c:1646  */
6044 >  case 582:
6045 > #line 2729 "conf_parser.y" /* yacc.c:1646  */
6046      {
6047 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6047 >  ConfigGeneral.oper_umodes |= UMODE_DEBUG;
6048   }
6049 < #line 6037 "conf_parser.c" /* yacc.c:1646  */
6049 > #line 6050 "conf_parser.c" /* yacc.c:1646  */
6050      break;
6051  
6052 <  case 560:
6053 < #line 2783 "conf_parser.y" /* yacc.c:1646  */
6052 >  case 583:
6053 > #line 2732 "conf_parser.y" /* yacc.c:1646  */
6054      {
6055 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6055 >  ConfigGeneral.oper_umodes |= UMODE_FULL;
6056   }
6057 < #line 6045 "conf_parser.c" /* yacc.c:1646  */
6057 > #line 6058 "conf_parser.c" /* yacc.c:1646  */
6058      break;
6059  
6060 <  case 561:
6061 < #line 2786 "conf_parser.y" /* yacc.c:1646  */
6060 >  case 584:
6061 > #line 2735 "conf_parser.y" /* yacc.c:1646  */
6062      {
6063 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
6063 >  ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
6064   }
6065 < #line 6053 "conf_parser.c" /* yacc.c:1646  */
6065 > #line 6066 "conf_parser.c" /* yacc.c:1646  */
6066      break;
6067  
6068 <  case 562:
6069 < #line 2789 "conf_parser.y" /* yacc.c:1646  */
6068 >  case 585:
6069 > #line 2738 "conf_parser.y" /* yacc.c:1646  */
6070      {
6071 <  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6071 >  ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
6072   }
6073 < #line 6061 "conf_parser.c" /* yacc.c:1646  */
6073 > #line 6074 "conf_parser.c" /* yacc.c:1646  */
6074      break;
6075  
6076 <  case 563:
6077 < #line 2792 "conf_parser.y" /* yacc.c:1646  */
6076 >  case 586:
6077 > #line 2741 "conf_parser.y" /* yacc.c:1646  */
6078      {
6079 <  ConfigFileEntry.oper_umodes |= UMODE_HIDECHANS;
6079 >  ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
6080   }
6081 < #line 6069 "conf_parser.c" /* yacc.c:1646  */
6081 > #line 6082 "conf_parser.c" /* yacc.c:1646  */
6082      break;
6083  
6084 <  case 564:
6085 < #line 2795 "conf_parser.y" /* yacc.c:1646  */
6084 >  case 587:
6085 > #line 2744 "conf_parser.y" /* yacc.c:1646  */
6086      {
6087 <  ConfigFileEntry.oper_umodes |= UMODE_HIDEIDLE;
6087 >  ConfigGeneral.oper_umodes |= UMODE_SKILL;
6088   }
6089 < #line 6077 "conf_parser.c" /* yacc.c:1646  */
6089 > #line 6090 "conf_parser.c" /* yacc.c:1646  */
6090      break;
6091  
6092 <  case 565:
6093 < #line 2798 "conf_parser.y" /* yacc.c:1646  */
6092 >  case 588:
6093 > #line 2747 "conf_parser.y" /* yacc.c:1646  */
6094      {
6095 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6095 >  ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
6096   }
6097 < #line 6085 "conf_parser.c" /* yacc.c:1646  */
6097 > #line 6098 "conf_parser.c" /* yacc.c:1646  */
6098      break;
6099  
6100 <  case 566:
6101 < #line 2801 "conf_parser.y" /* yacc.c:1646  */
6100 >  case 589:
6101 > #line 2750 "conf_parser.y" /* yacc.c:1646  */
6102      {
6103 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6103 >  ConfigGeneral.oper_umodes |= UMODE_REJ;
6104   }
6105 < #line 6093 "conf_parser.c" /* yacc.c:1646  */
6105 > #line 6106 "conf_parser.c" /* yacc.c:1646  */
6106      break;
6107  
6108 <  case 567:
6109 < #line 2804 "conf_parser.y" /* yacc.c:1646  */
6108 >  case 590:
6109 > #line 2753 "conf_parser.y" /* yacc.c:1646  */
6110      {
6111 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
6111 >  ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
6112   }
6113 < #line 6101 "conf_parser.c" /* yacc.c:1646  */
6113 > #line 6114 "conf_parser.c" /* yacc.c:1646  */
6114      break;
6115  
6116 <  case 568:
6117 < #line 2807 "conf_parser.y" /* yacc.c:1646  */
6116 >  case 591:
6117 > #line 2756 "conf_parser.y" /* yacc.c:1646  */
6118      {
6119 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6119 >  ConfigGeneral.oper_umodes |= UMODE_SPY;
6120   }
6121 < #line 6109 "conf_parser.c" /* yacc.c:1646  */
6121 > #line 6122 "conf_parser.c" /* yacc.c:1646  */
6122      break;
6123  
6124 <  case 569:
6125 < #line 2810 "conf_parser.y" /* yacc.c:1646  */
6124 >  case 592:
6125 > #line 2759 "conf_parser.y" /* yacc.c:1646  */
6126      {
6127 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
6127 >  ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
6128   }
6129 < #line 6117 "conf_parser.c" /* yacc.c:1646  */
6129 > #line 6130 "conf_parser.c" /* yacc.c:1646  */
6130      break;
6131  
6132 <  case 570:
6133 < #line 2813 "conf_parser.y" /* yacc.c:1646  */
6132 >  case 593:
6133 > #line 2762 "conf_parser.y" /* yacc.c:1646  */
6134      {
6135 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6135 >  ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
6136   }
6137 < #line 6125 "conf_parser.c" /* yacc.c:1646  */
6137 > #line 6138 "conf_parser.c" /* yacc.c:1646  */
6138      break;
6139  
6140 <  case 571:
6141 < #line 2816 "conf_parser.y" /* yacc.c:1646  */
6140 >  case 594:
6141 > #line 2765 "conf_parser.y" /* yacc.c:1646  */
6142      {
6143 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6143 >  ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
6144   }
6145 < #line 6133 "conf_parser.c" /* yacc.c:1646  */
6145 > #line 6146 "conf_parser.c" /* yacc.c:1646  */
6146      break;
6147  
6148 <  case 572:
6149 < #line 2819 "conf_parser.y" /* yacc.c:1646  */
6148 >  case 595:
6149 > #line 2768 "conf_parser.y" /* yacc.c:1646  */
6150      {
6151 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6151 >  ConfigGeneral.oper_umodes |= UMODE_WALLOP;
6152   }
6153 < #line 6141 "conf_parser.c" /* yacc.c:1646  */
6153 > #line 6154 "conf_parser.c" /* yacc.c:1646  */
6154      break;
6155  
6156 <  case 573:
6157 < #line 2822 "conf_parser.y" /* yacc.c:1646  */
6156 >  case 596:
6157 > #line 2771 "conf_parser.y" /* yacc.c:1646  */
6158      {
6159 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6159 >  ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6160   }
6161 < #line 6149 "conf_parser.c" /* yacc.c:1646  */
6161 > #line 6162 "conf_parser.c" /* yacc.c:1646  */
6162      break;
6163  
6164 <  case 574:
6165 < #line 2825 "conf_parser.y" /* yacc.c:1646  */
6164 >  case 597:
6165 > #line 2774 "conf_parser.y" /* yacc.c:1646  */
6166      {
6167 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6167 >  ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6168   }
6169 < #line 6157 "conf_parser.c" /* yacc.c:1646  */
6169 > #line 6170 "conf_parser.c" /* yacc.c:1646  */
6170      break;
6171  
6172 <  case 575:
6173 < #line 2828 "conf_parser.y" /* yacc.c:1646  */
6172 >  case 598:
6173 > #line 2777 "conf_parser.y" /* yacc.c:1646  */
6174      {
6175 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6175 >  ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6176   }
6177 < #line 6165 "conf_parser.c" /* yacc.c:1646  */
6177 > #line 6178 "conf_parser.c" /* yacc.c:1646  */
6178      break;
6179  
6180 <  case 576:
6181 < #line 2831 "conf_parser.y" /* yacc.c:1646  */
6180 >  case 599:
6181 > #line 2780 "conf_parser.y" /* yacc.c:1646  */
6182      {
6183 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6183 >  ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6184   }
6185 < #line 6173 "conf_parser.c" /* yacc.c:1646  */
6185 > #line 6186 "conf_parser.c" /* yacc.c:1646  */
6186      break;
6187  
6188 <  case 577:
6189 < #line 2834 "conf_parser.y" /* yacc.c:1646  */
6188 >  case 600:
6189 > #line 2783 "conf_parser.y" /* yacc.c:1646  */
6190      {
6191 <  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6191 >  ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6192   }
6193 < #line 6181 "conf_parser.c" /* yacc.c:1646  */
6193 > #line 6194 "conf_parser.c" /* yacc.c:1646  */
6194      break;
6195  
6196 <  case 578:
6197 < #line 2837 "conf_parser.y" /* yacc.c:1646  */
6196 >  case 601:
6197 > #line 2788 "conf_parser.y" /* yacc.c:1646  */
6198      {
6199 <  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6199 >  ConfigGeneral.oper_only_umodes = 0;
6200   }
6201 < #line 6189 "conf_parser.c" /* yacc.c:1646  */
6201 > #line 6202 "conf_parser.c" /* yacc.c:1646  */
6202      break;
6203  
6204 <  case 579:
6205 < #line 2842 "conf_parser.y" /* yacc.c:1646  */
6204 >  case 605:
6205 > #line 2794 "conf_parser.y" /* yacc.c:1646  */
6206      {
6207 <  ConfigFileEntry.oper_only_umodes = 0;
6207 >  ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6208   }
6209 < #line 6197 "conf_parser.c" /* yacc.c:1646  */
6209 > #line 6210 "conf_parser.c" /* yacc.c:1646  */
6210      break;
6211  
6212 <  case 583:
6213 < #line 2848 "conf_parser.y" /* yacc.c:1646  */
6212 >  case 606:
6213 > #line 2797 "conf_parser.y" /* yacc.c:1646  */
6214      {
6215 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6215 >  ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6216   }
6217 < #line 6205 "conf_parser.c" /* yacc.c:1646  */
6217 > #line 6218 "conf_parser.c" /* yacc.c:1646  */
6218      break;
6219  
6220 <  case 584:
6221 < #line 2851 "conf_parser.y" /* yacc.c:1646  */
6220 >  case 607:
6221 > #line 2800 "conf_parser.y" /* yacc.c:1646  */
6222      {
6223 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6223 >  ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6224   }
6225 < #line 6213 "conf_parser.c" /* yacc.c:1646  */
6225 > #line 6226 "conf_parser.c" /* yacc.c:1646  */
6226      break;
6227  
6228 <  case 585:
6229 < #line 2854 "conf_parser.y" /* yacc.c:1646  */
6228 >  case 608:
6229 > #line 2803 "conf_parser.y" /* yacc.c:1646  */
6230      {
6231 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6231 >  ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6232   }
6233 < #line 6221 "conf_parser.c" /* yacc.c:1646  */
6233 > #line 6234 "conf_parser.c" /* yacc.c:1646  */
6234      break;
6235  
6236 <  case 586:
6237 < #line 2857 "conf_parser.y" /* yacc.c:1646  */
6236 >  case 609:
6237 > #line 2806 "conf_parser.y" /* yacc.c:1646  */
6238      {
6239 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6239 >  ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6240   }
6241 < #line 6229 "conf_parser.c" /* yacc.c:1646  */
6241 > #line 6242 "conf_parser.c" /* yacc.c:1646  */
6242      break;
6243  
6244 <  case 587:
6245 < #line 2860 "conf_parser.y" /* yacc.c:1646  */
6244 >  case 610:
6245 > #line 2809 "conf_parser.y" /* yacc.c:1646  */
6246      {
6247 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6247 >  ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6248   }
6249 < #line 6237 "conf_parser.c" /* yacc.c:1646  */
6249 > #line 6250 "conf_parser.c" /* yacc.c:1646  */
6250      break;
6251  
6252 <  case 588:
6253 < #line 2863 "conf_parser.y" /* yacc.c:1646  */
6252 >  case 611:
6253 > #line 2812 "conf_parser.y" /* yacc.c:1646  */
6254      {
6255 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6255 >  ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6256   }
6257 < #line 6245 "conf_parser.c" /* yacc.c:1646  */
6257 > #line 6258 "conf_parser.c" /* yacc.c:1646  */
6258      break;
6259  
6260 <  case 589:
6261 < #line 2866 "conf_parser.y" /* yacc.c:1646  */
6260 >  case 612:
6261 > #line 2815 "conf_parser.y" /* yacc.c:1646  */
6262      {
6263 <  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6263 >  ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6264   }
6265 < #line 6253 "conf_parser.c" /* yacc.c:1646  */
6265 > #line 6266 "conf_parser.c" /* yacc.c:1646  */
6266      break;
6267  
6268 <  case 590:
6269 < #line 2869 "conf_parser.y" /* yacc.c:1646  */
6268 >  case 613:
6269 > #line 2818 "conf_parser.y" /* yacc.c:1646  */
6270      {
6271 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6271 >  ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6272   }
6273 < #line 6261 "conf_parser.c" /* yacc.c:1646  */
6273 > #line 6274 "conf_parser.c" /* yacc.c:1646  */
6274      break;
6275  
6276 <  case 591:
6277 < #line 2872 "conf_parser.y" /* yacc.c:1646  */
6276 >  case 614:
6277 > #line 2821 "conf_parser.y" /* yacc.c:1646  */
6278      {
6279 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6279 >  ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6280   }
6281 < #line 6269 "conf_parser.c" /* yacc.c:1646  */
6281 > #line 6282 "conf_parser.c" /* yacc.c:1646  */
6282      break;
6283  
6284 <  case 592:
6285 < #line 2875 "conf_parser.y" /* yacc.c:1646  */
6284 >  case 615:
6285 > #line 2824 "conf_parser.y" /* yacc.c:1646  */
6286      {
6287 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6287 >  ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6288   }
6289 < #line 6277 "conf_parser.c" /* yacc.c:1646  */
6289 > #line 6290 "conf_parser.c" /* yacc.c:1646  */
6290      break;
6291  
6292 <  case 593:
6293 < #line 2878 "conf_parser.y" /* yacc.c:1646  */
6292 >  case 616:
6293 > #line 2827 "conf_parser.y" /* yacc.c:1646  */
6294      {
6295 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6295 >  ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6296   }
6297 < #line 6285 "conf_parser.c" /* yacc.c:1646  */
6297 > #line 6298 "conf_parser.c" /* yacc.c:1646  */
6298      break;
6299  
6300 <  case 594:
6301 < #line 2881 "conf_parser.y" /* yacc.c:1646  */
6300 >  case 617:
6301 > #line 2830 "conf_parser.y" /* yacc.c:1646  */
6302      {
6303 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6303 >  ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6304   }
6305 < #line 6293 "conf_parser.c" /* yacc.c:1646  */
6305 > #line 6306 "conf_parser.c" /* yacc.c:1646  */
6306      break;
6307  
6308 <  case 595:
6309 < #line 2884 "conf_parser.y" /* yacc.c:1646  */
6308 >  case 618:
6309 > #line 2833 "conf_parser.y" /* yacc.c:1646  */
6310      {
6311 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6311 >  ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6312   }
6313 < #line 6301 "conf_parser.c" /* yacc.c:1646  */
6313 > #line 6314 "conf_parser.c" /* yacc.c:1646  */
6314      break;
6315  
6316 <  case 596:
6317 < #line 2887 "conf_parser.y" /* yacc.c:1646  */
6316 >  case 619:
6317 > #line 2836 "conf_parser.y" /* yacc.c:1646  */
6318      {
6319 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6319 >  ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6320   }
6321 < #line 6309 "conf_parser.c" /* yacc.c:1646  */
6321 > #line 6322 "conf_parser.c" /* yacc.c:1646  */
6322      break;
6323  
6324 <  case 597:
6325 < #line 2890 "conf_parser.y" /* yacc.c:1646  */
6324 >  case 620:
6325 > #line 2839 "conf_parser.y" /* yacc.c:1646  */
6326      {
6327 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6327 >  ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6328   }
6329 < #line 6317 "conf_parser.c" /* yacc.c:1646  */
6329 > #line 6330 "conf_parser.c" /* yacc.c:1646  */
6330      break;
6331  
6332 <  case 598:
6333 < #line 2893 "conf_parser.y" /* yacc.c:1646  */
6332 >  case 621:
6333 > #line 2842 "conf_parser.y" /* yacc.c:1646  */
6334      {
6335 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6335 >  ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6336   }
6337 < #line 6325 "conf_parser.c" /* yacc.c:1646  */
6337 > #line 6338 "conf_parser.c" /* yacc.c:1646  */
6338      break;
6339  
6340 <  case 599:
6341 < #line 2896 "conf_parser.y" /* yacc.c:1646  */
6340 >  case 622:
6341 > #line 2845 "conf_parser.y" /* yacc.c:1646  */
6342      {
6343 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6343 >  ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6344   }
6345 < #line 6333 "conf_parser.c" /* yacc.c:1646  */
6345 > #line 6346 "conf_parser.c" /* yacc.c:1646  */
6346      break;
6347  
6348 <  case 600:
6349 < #line 2899 "conf_parser.y" /* yacc.c:1646  */
6348 >  case 623:
6349 > #line 2848 "conf_parser.y" /* yacc.c:1646  */
6350      {
6351 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6351 >  ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6352   }
6353 < #line 6341 "conf_parser.c" /* yacc.c:1646  */
6353 > #line 6354 "conf_parser.c" /* yacc.c:1646  */
6354      break;
6355  
6356 <  case 601:
6357 < #line 2902 "conf_parser.y" /* yacc.c:1646  */
6356 >  case 624:
6357 > #line 2851 "conf_parser.y" /* yacc.c:1646  */
6358      {
6359 <  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6359 >  ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6360   }
6361 < #line 6349 "conf_parser.c" /* yacc.c:1646  */
6361 > #line 6362 "conf_parser.c" /* yacc.c:1646  */
6362      break;
6363  
6364 <  case 602:
6365 < #line 2905 "conf_parser.y" /* yacc.c:1646  */
6364 >  case 625:
6365 > #line 2856 "conf_parser.y" /* yacc.c:1646  */
6366      {
6367 <  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6367 >  ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6368   }
6369 < #line 6357 "conf_parser.c" /* yacc.c:1646  */
6369 > #line 6370 "conf_parser.c" /* yacc.c:1646  */
6370      break;
6371  
6372 <  case 603:
6373 < #line 2910 "conf_parser.y" /* yacc.c:1646  */
6372 >  case 626:
6373 > #line 2861 "conf_parser.y" /* yacc.c:1646  */
6374      {
6375 <  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6375 >  ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6376   }
6377 < #line 6365 "conf_parser.c" /* yacc.c:1646  */
6377 > #line 6378 "conf_parser.c" /* yacc.c:1646  */
6378      break;
6379  
6380 <  case 604:
6381 < #line 2915 "conf_parser.y" /* yacc.c:1646  */
6380 >  case 627:
6381 > #line 2866 "conf_parser.y" /* yacc.c:1646  */
6382      {
6383 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6383 >  ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6384   }
6385 < #line 6373 "conf_parser.c" /* yacc.c:1646  */
6385 > #line 6386 "conf_parser.c" /* yacc.c:1646  */
6386      break;
6387  
6388 <  case 605:
6389 < #line 2920 "conf_parser.y" /* yacc.c:1646  */
6388 >  case 643:
6389 > #line 2891 "conf_parser.y" /* yacc.c:1646  */
6390      {
6391 <  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6391 >  ConfigChannel.disable_fake_channels = yylval.number;
6392   }
6393 < #line 6381 "conf_parser.c" /* yacc.c:1646  */
6393 > #line 6394 "conf_parser.c" /* yacc.c:1646  */
6394      break;
6395  
6396 <  case 624:
6397 < #line 2949 "conf_parser.y" /* yacc.c:1646  */
6396 >  case 644:
6397 > #line 2896 "conf_parser.y" /* yacc.c:1646  */
6398      {
6399 <  ConfigChannel.disable_fake_channels = yylval.number;
6399 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6400   }
6401 < #line 6389 "conf_parser.c" /* yacc.c:1646  */
6401 > #line 6402 "conf_parser.c" /* yacc.c:1646  */
6402      break;
6403  
6404 <  case 625:
6405 < #line 2954 "conf_parser.y" /* yacc.c:1646  */
6404 >  case 645:
6405 > #line 2901 "conf_parser.y" /* yacc.c:1646  */
6406      {
6407 <  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6407 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6408   }
6409 < #line 6397 "conf_parser.c" /* yacc.c:1646  */
6409 > #line 6410 "conf_parser.c" /* yacc.c:1646  */
6410      break;
6411  
6412 <  case 626:
6413 < #line 2959 "conf_parser.y" /* yacc.c:1646  */
6412 >  case 646:
6413 > #line 2906 "conf_parser.y" /* yacc.c:1646  */
6414      {
6415 <  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6415 >  ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6416   }
6417 < #line 6405 "conf_parser.c" /* yacc.c:1646  */
6417 > #line 6418 "conf_parser.c" /* yacc.c:1646  */
6418      break;
6419  
6420 <  case 627:
6421 < #line 2964 "conf_parser.y" /* yacc.c:1646  */
6420 >  case 647:
6421 > #line 2911 "conf_parser.y" /* yacc.c:1646  */
6422      {
6423    ConfigChannel.knock_client_count = (yyvsp[-1].number);
6424   }
6425 < #line 6413 "conf_parser.c" /* yacc.c:1646  */
6425 > #line 6426 "conf_parser.c" /* yacc.c:1646  */
6426      break;
6427  
6428 <  case 628:
6429 < #line 2969 "conf_parser.y" /* yacc.c:1646  */
6428 >  case 648:
6429 > #line 2916 "conf_parser.y" /* yacc.c:1646  */
6430      {
6431    ConfigChannel.knock_client_time = (yyvsp[-1].number);
6432   }
6433 < #line 6421 "conf_parser.c" /* yacc.c:1646  */
6433 > #line 6434 "conf_parser.c" /* yacc.c:1646  */
6434      break;
6435  
6436 <  case 629:
6437 < #line 2974 "conf_parser.y" /* yacc.c:1646  */
6436 >  case 649:
6437 > #line 2921 "conf_parser.y" /* yacc.c:1646  */
6438      {
6439    ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6440   }
6441 < #line 6429 "conf_parser.c" /* yacc.c:1646  */
6441 > #line 6442 "conf_parser.c" /* yacc.c:1646  */
6442      break;
6443  
6444 <  case 630:
6445 < #line 2979 "conf_parser.y" /* yacc.c:1646  */
6444 >  case 650:
6445 > #line 2926 "conf_parser.y" /* yacc.c:1646  */
6446      {
6447    ConfigChannel.max_channels = (yyvsp[-1].number);
6448   }
6449 < #line 6437 "conf_parser.c" /* yacc.c:1646  */
6449 > #line 6450 "conf_parser.c" /* yacc.c:1646  */
6450      break;
6451  
6452 <  case 631:
6453 < #line 2984 "conf_parser.y" /* yacc.c:1646  */
6452 >  case 651:
6453 > #line 2931 "conf_parser.y" /* yacc.c:1646  */
6454      {
6455    ConfigChannel.max_bans = (yyvsp[-1].number);
6456   }
6457 < #line 6445 "conf_parser.c" /* yacc.c:1646  */
6457 > #line 6458 "conf_parser.c" /* yacc.c:1646  */
6458      break;
6459  
6460 <  case 632:
6461 < #line 2989 "conf_parser.y" /* yacc.c:1646  */
6460 >  case 652:
6461 > #line 2936 "conf_parser.y" /* yacc.c:1646  */
6462      {
6463 <  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6463 >  ConfigChannel.default_join_flood_count = yylval.number;
6464   }
6465 < #line 6453 "conf_parser.c" /* yacc.c:1646  */
6465 > #line 6466 "conf_parser.c" /* yacc.c:1646  */
6466      break;
6467  
6468 <  case 633:
6469 < #line 2994 "conf_parser.y" /* yacc.c:1646  */
6468 >  case 653:
6469 > #line 2941 "conf_parser.y" /* yacc.c:1646  */
6470      {
6471 <  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6471 >  ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6472   }
6473 < #line 6461 "conf_parser.c" /* yacc.c:1646  */
6473 > #line 6474 "conf_parser.c" /* yacc.c:1646  */
6474      break;
6475  
6476 <  case 634:
6477 < #line 2999 "conf_parser.y" /* yacc.c:1646  */
6476 >  case 667:
6477 > #line 2964 "conf_parser.y" /* yacc.c:1646  */
6478      {
6479 <  ConfigChannel.no_create_on_split = yylval.number;
6479 >  if (conf_parser_ctx.pass == 2)
6480 >    ConfigServerHide.flatten_links = yylval.number;
6481   }
6482 < #line 6469 "conf_parser.c" /* yacc.c:1646  */
6482 > #line 6483 "conf_parser.c" /* yacc.c:1646  */
6483      break;
6484  
6485 <  case 635:
6486 < #line 3004 "conf_parser.y" /* yacc.c:1646  */
6485 >  case 668:
6486 > #line 2970 "conf_parser.y" /* yacc.c:1646  */
6487      {
6488 <  ConfigChannel.no_join_on_split = yylval.number;
6489 < }
6490 < #line 6477 "conf_parser.c" /* yacc.c:1646  */
6477 <    break;
6478 <
6479 <  case 636:
6480 < #line 3009 "conf_parser.y" /* yacc.c:1646  */
6488 >  if (conf_parser_ctx.pass == 2)
6489 >  {
6490 >    if ((yyvsp[-1].number) > 0)
6491      {
6492 <  GlobalSetOptions.joinfloodcount = yylval.number;
6493 < }
6494 < #line 6485 "conf_parser.c" /* yacc.c:1646  */
6495 <    break;
6492 >      event_write_links_file.when = (yyvsp[-1].number);
6493 >      event_add(&event_write_links_file, NULL);
6494 >    }
6495 >    else
6496 >     event_delete(&event_write_links_file);
6497  
6498 <  case 637:
6499 < #line 3014 "conf_parser.y" /* yacc.c:1646  */
6489 <    {
6490 <  GlobalSetOptions.joinfloodtime = (yyvsp[-1].number);
6498 >    ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6499 >  }
6500   }
6501 < #line 6493 "conf_parser.c" /* yacc.c:1646  */
6501 > #line 6502 "conf_parser.c" /* yacc.c:1646  */
6502      break;
6503  
6504 <  case 650:
6505 < #line 3036 "conf_parser.y" /* yacc.c:1646  */
6504 >  case 669:
6505 > #line 2986 "conf_parser.y" /* yacc.c:1646  */
6506      {
6507    if (conf_parser_ctx.pass == 2)
6508 <    ConfigServerHide.flatten_links = yylval.number;
6508 >  {
6509 >    xfree(ConfigServerHide.flatten_links_file);
6510 >    ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6511 >  }
6512   }
6513 < #line 6502 "conf_parser.c" /* yacc.c:1646  */
6513 > #line 6514 "conf_parser.c" /* yacc.c:1646  */
6514      break;
6515  
6516 <  case 651:
6517 < #line 3042 "conf_parser.y" /* yacc.c:1646  */
6516 >  case 670:
6517 > #line 2995 "conf_parser.y" /* yacc.c:1646  */
6518      {
6519    if (conf_parser_ctx.pass == 2)
6520      ConfigServerHide.disable_remote_commands = yylval.number;
6521   }
6522 < #line 6511 "conf_parser.c" /* yacc.c:1646  */
6522 > #line 6523 "conf_parser.c" /* yacc.c:1646  */
6523      break;
6524  
6525 <  case 652:
6526 < #line 3048 "conf_parser.y" /* yacc.c:1646  */
6525 >  case 671:
6526 > #line 3001 "conf_parser.y" /* yacc.c:1646  */
6527      {
6528    if (conf_parser_ctx.pass == 2)
6529      ConfigServerHide.hide_servers = yylval.number;
6530   }
6531 < #line 6520 "conf_parser.c" /* yacc.c:1646  */
6531 > #line 6532 "conf_parser.c" /* yacc.c:1646  */
6532      break;
6533  
6534 <  case 653:
6535 < #line 3054 "conf_parser.y" /* yacc.c:1646  */
6534 >  case 672:
6535 > #line 3007 "conf_parser.y" /* yacc.c:1646  */
6536      {
6537    if (conf_parser_ctx.pass == 2)
6538      ConfigServerHide.hide_services = yylval.number;
6539   }
6528 #line 6529 "conf_parser.c" /* yacc.c:1646  */
6529    break;
6530
6531  case 654:
6532 #line 3060 "conf_parser.y" /* yacc.c:1646  */
6533    {
6534  if (conf_parser_ctx.pass == 2)
6535  {
6536    MyFree(ConfigServerHide.hidden_name);
6537    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6538  }
6539 }
6540   #line 6541 "conf_parser.c" /* yacc.c:1646  */
6541      break;
6542  
6543 <  case 655:
6544 < #line 3069 "conf_parser.y" /* yacc.c:1646  */
6543 >  case 673:
6544 > #line 3013 "conf_parser.y" /* yacc.c:1646  */
6545      {
6546    if (conf_parser_ctx.pass == 2)
6547    {
6548 <    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6549 <    {
6550 <      event_write_links_file.when = (yyvsp[-1].number);
6551 <      event_addish(&event_write_links_file, NULL);
6552 <      ConfigServerHide.links_disabled = 0;
6553 <    }
6554 <
6555 <    ConfigServerHide.links_delay = (yyvsp[-1].number);
6548 >    xfree(ConfigServerHide.hidden_name);
6549 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6550    }
6551   }
6552 < #line 6559 "conf_parser.c" /* yacc.c:1646  */
6552 > #line 6553 "conf_parser.c" /* yacc.c:1646  */
6553      break;
6554  
6555 <  case 656:
6556 < #line 3084 "conf_parser.y" /* yacc.c:1646  */
6555 >  case 674:
6556 > #line 3022 "conf_parser.y" /* yacc.c:1646  */
6557      {
6558    if (conf_parser_ctx.pass == 2)
6559      ConfigServerHide.hidden = yylval.number;
6560   }
6561 < #line 6568 "conf_parser.c" /* yacc.c:1646  */
6561 > #line 6562 "conf_parser.c" /* yacc.c:1646  */
6562      break;
6563  
6564 <  case 657:
6565 < #line 3090 "conf_parser.y" /* yacc.c:1646  */
6564 >  case 675:
6565 > #line 3028 "conf_parser.y" /* yacc.c:1646  */
6566      {
6567    if (conf_parser_ctx.pass == 2)
6568      ConfigServerHide.hide_server_ips = yylval.number;
6569   }
6570 < #line 6577 "conf_parser.c" /* yacc.c:1646  */
6570 > #line 6571 "conf_parser.c" /* yacc.c:1646  */
6571      break;
6572  
6573  
6574 < #line 6581 "conf_parser.c" /* yacc.c:1646  */
6574 > #line 6575 "conf_parser.c" /* yacc.c:1646  */
6575        default: break;
6576      }
6577    /* User semantic actions sometimes alter yychar, and that requires

Diff Legend

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