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 6162 by michael, Thu Jun 18 10:56:46 2015 UTC vs.
Revision 9610 by michael, Sun Sep 6 07:28:30 2020 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 3.0.4.  */
1 > /* A Bison parser, made by GNU Bison 3.3.2.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4  
5 <   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
5 >   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
6 >   Inc.
7  
8     This program is free software: you can redistribute it and/or modify
9     it under the terms of the GNU General Public License as published by
# Line 40 | Line 41
41     define necessary library symbols; they are noted "INFRINGES ON
42     USER NAME SPACE" below.  */
43  
44 + /* Undocumented macros, especially those whose name start with YY_,
45 +   are private implementation details.  Do not rely on them.  */
46 +
47   /* Identify Bison output.  */
48   #define YYBISON 1
49  
50   /* Bison version.  */
51 < #define YYBISON_VERSION "3.0.4"
51 > #define YYBISON_VERSION "3.3.2"
52  
53   /* Skeleton name.  */
54   #define YYSKELETON_NAME "yacc.c"
# Line 61 | Line 65
65  
66  
67  
68 < /* Copy the first part of user declarations.  */
69 < #line 28 "conf_parser.y" /* yacc.c:339  */
66 <
68 > /* First part of user prologue.  */
69 > #line 28 "conf_parser.y" /* yacc.c:337  */
70  
68 #include <sys/types.h>
69 #include <string.h>
71  
72   #include "config.h"
73   #include "stdinc.h"
74   #include "ircd.h"
75   #include "list.h"
76 + #include "parse.h"
77   #include "conf.h"
78   #include "conf_class.h"
79 + #include "conf_cluster.h"
80 + #include "conf_gecos.h"
81   #include "conf_pseudo.h"
82 + #include "conf_resv.h"
83 + #include "conf_service.h"
84 + #include "conf_shared.h"
85   #include "event.h"
86   #include "id.h"
87   #include "log.h"
81 #include "client.h"     /* for UMODE_ALL only */
88   #include "irc_string.h"
89   #include "memory.h"
90   #include "modules.h"
91   #include "server.h"
92   #include "hostmask.h"
87 #include "send.h"
93   #include "listener.h"
89 #include "resv.h"
90 #include "numeric.h"
94   #include "user.h"
95   #include "motd.h"
96  
94 #ifdef HAVE_LIBCRYPTO
95 #include <openssl/rsa.h>
96 #include <openssl/bio.h>
97 #include <openssl/pem.h>
98 #include <openssl/dh.h>
99 #endif
100
101 #include "rsa.h"
102
97   int yylex(void);
98  
99   static struct
# Line 139 | Line 133 | static struct
133      size,
134      type,
135      port,
136 +    timeout,
137      aftype,
138      ping_freq,
139 <    max_perip,
139 >    max_perip_local,
140 >    max_perip_global,
141      con_freq,
142      min_idle,
143      max_idle,
144      max_total,
149    max_global,
150    max_local,
151    max_ident,
145      max_sendq,
146      max_recvq,
147      max_channels,
# Line 160 | Line 153 | static struct
153   static void
154   reset_block_state(void)
155   {
156 <  dlink_node *node = NULL, *node_next = NULL;
156 >  dlink_node *node, *node_next;
157 >  dlink_list *tab[] = { &block_state.mask.list,
158 >                        &block_state.leaf.list, &block_state.hub.list, NULL };
159  
160 <  DLINK_FOREACH_SAFE(node, node_next, block_state.mask.list.head)
160 >  for (dlink_list **list = tab; *list; ++list)
161    {
162 <    MyFree(node->data);
163 <    dlinkDelete(node, &block_state.mask.list);
164 <    free_dlink_node(node);
165 <  }
166 <
167 <  DLINK_FOREACH_SAFE(node, node_next, block_state.leaf.list.head)
173 <  {
174 <    MyFree(node->data);
175 <    dlinkDelete(node, &block_state.leaf.list);
176 <    free_dlink_node(node);
177 <  }
178 <
179 <  DLINK_FOREACH_SAFE(node, node_next, block_state.hub.list.head)
180 <  {
181 <    MyFree(node->data);
182 <    dlinkDelete(node, &block_state.hub.list);
183 <    free_dlink_node(node);
162 >    DLINK_FOREACH_SAFE(node, node_next, (*list)->head)
163 >    {
164 >      xfree(node->data);
165 >      dlinkDelete(node, *list);
166 >      free_dlink_node(node);
167 >    }
168    }
169  
170    memset(&block_state, 0, sizeof(block_state));
171   }
172  
173  
174 < #line 191 "conf_parser.c" /* yacc.c:339  */
191 <
174 > #line 175 "conf_parser.c" /* yacc.c:337  */
175   # ifndef YY_NULLPTR
176 < #  if defined __cplusplus && 201103L <= __cplusplus
177 < #   define YY_NULLPTR nullptr
176 > #  if defined __cplusplus
177 > #   if 201103L <= __cplusplus
178 > #    define YY_NULLPTR nullptr
179 > #   else
180 > #    define YY_NULLPTR 0
181 > #   endif
182   #  else
183 < #   define YY_NULLPTR 0
183 > #   define YY_NULLPTR ((void*)0)
184   #  endif
185   # endif
186  
# Line 239 | Line 226 | extern int yydebug;
226      CIDR_BITLEN_IPV4 = 272,
227      CIDR_BITLEN_IPV6 = 273,
228      CLASS = 274,
229 <    CONNECT = 275,
230 <    CONNECTFREQ = 276,
231 <    CYCLE_ON_HOST_CHANGE = 277,
232 <    DEFAULT_FLOODCOUNT = 278,
233 <    DEFAULT_JOIN_FLOOD_COUNT = 279,
234 <    DEFAULT_JOIN_FLOOD_TIME = 280,
235 <    DEFAULT_MAX_CLIENTS = 281,
236 <    DEFAULT_SPLIT_SERVER_COUNT = 282,
237 <    DEFAULT_SPLIT_USER_COUNT = 283,
238 <    DENY = 284,
239 <    DESCRIPTION = 285,
240 <    DIE = 286,
241 <    DISABLE_AUTH = 287,
242 <    DISABLE_FAKE_CHANNELS = 288,
243 <    DISABLE_REMOTE_COMMANDS = 289,
244 <    DLINE_MIN_CIDR = 290,
245 <    DLINE_MIN_CIDR6 = 291,
246 <    DOTS_IN_IDENT = 292,
247 <    EMAIL = 293,
248 <    ENCRYPTED = 294,
249 <    EXCEED_LIMIT = 295,
250 <    EXEMPT = 296,
251 <    FAILED_OPER_NOTICE = 297,
252 <    FLATTEN_LINKS = 298,
253 <    GECOS = 299,
254 <    GENERAL = 300,
255 <    HIDDEN = 301,
256 <    HIDDEN_NAME = 302,
257 <    HIDE_CHANS = 303,
258 <    HIDE_IDLE = 304,
259 <    HIDE_IDLE_FROM_OPERS = 305,
260 <    HIDE_SERVER_IPS = 306,
261 <    HIDE_SERVERS = 307,
262 <    HIDE_SERVICES = 308,
263 <    HOST = 309,
264 <    HUB = 310,
265 <    HUB_MASK = 311,
266 <    IGNORE_BOGUS_TS = 312,
267 <    INVISIBLE_ON_CONNECT = 313,
268 <    INVITE_CLIENT_COUNT = 314,
269 <    INVITE_CLIENT_TIME = 315,
270 <    IP = 316,
271 <    IRCD_AUTH = 317,
272 <    IRCD_FLAGS = 318,
273 <    IRCD_SID = 319,
274 <    KILL = 320,
275 <    KILL_CHASE_TIME_LIMIT = 321,
276 <    KLINE = 322,
277 <    KLINE_EXEMPT = 323,
278 <    KLINE_MIN_CIDR = 324,
279 <    KLINE_MIN_CIDR6 = 325,
280 <    KNOCK_CLIENT_COUNT = 326,
281 <    KNOCK_CLIENT_TIME = 327,
282 <    KNOCK_DELAY_CHANNEL = 328,
283 <    LEAF_MASK = 329,
284 <    LINKS_DELAY = 330,
285 <    LISTEN = 331,
286 <    MASK = 332,
287 <    MAX_ACCEPT = 333,
288 <    MAX_BANS = 334,
289 <    MAX_CHANNELS = 335,
290 <    MAX_GLOBAL = 336,
291 <    MAX_IDENT = 337,
292 <    MAX_IDLE = 338,
293 <    MAX_LOCAL = 339,
294 <    MAX_NICK_CHANGES = 340,
295 <    MAX_NICK_LENGTH = 341,
296 <    MAX_NICK_TIME = 342,
297 <    MAX_NUMBER = 343,
298 <    MAX_TARGETS = 344,
299 <    MAX_TOPIC_LENGTH = 345,
300 <    MAX_WATCH = 346,
301 <    MIN_IDLE = 347,
302 <    MIN_NONWILDCARD = 348,
303 <    MIN_NONWILDCARD_SIMPLE = 349,
304 <    MODULE = 350,
305 <    MODULES = 351,
306 <    MOTD = 352,
307 <    NAME = 353,
308 <    NEED_IDENT = 354,
309 <    NEED_PASSWORD = 355,
310 <    NETWORK_DESC = 356,
311 <    NETWORK_NAME = 357,
312 <    NICK = 358,
313 <    NO_CREATE_ON_SPLIT = 359,
314 <    NO_JOIN_ON_SPLIT = 360,
315 <    NO_OPER_FLOOD = 361,
316 <    NO_TILDE = 362,
317 <    NUMBER = 363,
318 <    NUMBER_PER_CIDR = 364,
319 <    NUMBER_PER_IP = 365,
320 <    OPER_ONLY_UMODES = 366,
321 <    OPER_PASS_RESV = 367,
322 <    OPER_UMODES = 368,
323 <    OPERATOR = 369,
324 <    OPERS_BYPASS_CALLERID = 370,
325 <    PACE_WAIT = 371,
326 <    PACE_WAIT_SIMPLE = 372,
327 <    PASSWORD = 373,
328 <    PATH = 374,
329 <    PING_COOKIE = 375,
330 <    PING_TIME = 376,
331 <    PORT = 377,
332 <    QSTRING = 378,
333 <    RANDOM_IDLE = 379,
334 <    REASON = 380,
335 <    REDIRPORT = 381,
336 <    REDIRSERV = 382,
337 <    REHASH = 383,
338 <    REMOTE = 384,
339 <    REMOTEBAN = 385,
340 <    RESV = 386,
341 <    RESV_EXEMPT = 387,
342 <    RSA_PRIVATE_KEY_FILE = 388,
343 <    RSA_PUBLIC_KEY_FILE = 389,
344 <    SECONDS = 390,
345 <    MINUTES = 391,
346 <    HOURS = 392,
347 <    DAYS = 393,
348 <    WEEKS = 394,
349 <    MONTHS = 395,
350 <    YEARS = 396,
351 <    SEND_PASSWORD = 397,
352 <    SENDQ = 398,
353 <    SERVERHIDE = 399,
354 <    SERVERINFO = 400,
355 <    SHORT_MOTD = 401,
356 <    SPOOF = 402,
357 <    SPOOF_NOTICE = 403,
358 <    SQUIT = 404,
359 <    SSL_CERTIFICATE_FILE = 405,
360 <    SSL_CERTIFICATE_FINGERPRINT = 406,
361 <    SSL_CONNECTION_REQUIRED = 407,
362 <    SSL_DH_ELLIPTIC_CURVE = 408,
363 <    SSL_DH_PARAM_FILE = 409,
364 <    SSL_MESSAGE_DIGEST_ALGORITHM = 410,
365 <    STATS_E_DISABLED = 411,
366 <    STATS_I_OPER_ONLY = 412,
367 <    STATS_K_OPER_ONLY = 413,
368 <    STATS_M_OPER_ONLY = 414,
369 <    STATS_O_OPER_ONLY = 415,
370 <    STATS_P_OPER_ONLY = 416,
371 <    STATS_U_OPER_ONLY = 417,
372 <    T_ALL = 418,
373 <    T_BOTS = 419,
374 <    T_CALLERID = 420,
375 <    T_CCONN = 421,
376 <    T_COMMAND = 422,
377 <    T_CLUSTER = 423,
378 <    T_DEAF = 424,
379 <    T_DEBUG = 425,
380 <    T_DLINE = 426,
381 <    T_EXTERNAL = 427,
382 <    T_FARCONNECT = 428,
383 <    T_FILE = 429,
384 <    T_FULL = 430,
385 <    T_GLOBOPS = 431,
386 <    T_INVISIBLE = 432,
387 <    T_IPV4 = 433,
388 <    T_IPV6 = 434,
389 <    T_LOCOPS = 435,
390 <    T_LOG = 436,
391 <    T_NCHANGE = 437,
392 <    T_NONONREG = 438,
393 <    T_OPME = 439,
394 <    T_PREPEND = 440,
395 <    T_PSEUDO = 441,
396 <    T_RECVQ = 442,
397 <    T_REJ = 443,
398 <    T_RESTART = 444,
399 <    T_SERVER = 445,
400 <    T_SERVICE = 446,
401 <    T_SERVNOTICE = 447,
402 <    T_SET = 448,
403 <    T_SHARED = 449,
404 <    T_SIZE = 450,
405 <    T_SKILL = 451,
406 <    T_SOFTCALLERID = 452,
407 <    T_SPY = 453,
408 <    T_SSL = 454,
409 <    T_SSL_CIPHER_LIST = 455,
410 <    T_TARGET = 456,
411 <    T_UMODES = 457,
412 <    T_UNAUTH = 458,
413 <    T_UNDLINE = 459,
414 <    T_UNLIMITED = 460,
415 <    T_UNRESV = 461,
416 <    T_UNXLINE = 462,
417 <    T_WALLOP = 463,
418 <    T_WALLOPS = 464,
419 <    T_WEBIRC = 465,
420 <    TBOOL = 466,
421 <    THROTTLE_COUNT = 467,
422 <    THROTTLE_TIME = 468,
423 <    TKLINE_EXPIRE_NOTICES = 469,
424 <    TMASKED = 470,
425 <    TS_MAX_DELTA = 471,
426 <    TS_WARN_DELTA = 472,
427 <    TWODOTS = 473,
428 <    TYPE = 474,
429 <    UNKLINE = 475,
430 <    USE_LOGGING = 476,
431 <    USER = 477,
432 <    VHOST = 478,
433 <    VHOST6 = 479,
434 <    WARN_NO_CONNECT_BLOCK = 480,
435 <    WHOIS = 481,
436 <    XLINE = 482,
437 <    XLINE_EXEMPT = 483
229 >    CLIENT = 275,
230 >    CLOSE = 276,
231 >    CONNECT = 277,
232 >    CONNECTFREQ = 278,
233 >    CYCLE_ON_HOST_CHANGE = 279,
234 >    DEFAULT_FLOODCOUNT = 280,
235 >    DEFAULT_FLOODTIME = 281,
236 >    DEFAULT_JOIN_FLOOD_COUNT = 282,
237 >    DEFAULT_JOIN_FLOOD_TIME = 283,
238 >    DEFAULT_MAX_CLIENTS = 284,
239 >    DEFER = 285,
240 >    DENY = 286,
241 >    DESCRIPTION = 287,
242 >    DIE = 288,
243 >    DISABLE_AUTH = 289,
244 >    DISABLE_FAKE_CHANNELS = 290,
245 >    DISABLE_REMOTE_COMMANDS = 291,
246 >    DLINE_MIN_CIDR = 292,
247 >    DLINE_MIN_CIDR6 = 293,
248 >    DOTS_IN_IDENT = 294,
249 >    EMAIL = 295,
250 >    ENABLE_EXTBANS = 296,
251 >    ENCRYPTED = 297,
252 >    EXCEED_LIMIT = 298,
253 >    EXEMPT = 299,
254 >    EXPIRATION = 300,
255 >    FAILED_OPER_NOTICE = 301,
256 >    FLATTEN_LINKS = 302,
257 >    FLATTEN_LINKS_DELAY = 303,
258 >    FLATTEN_LINKS_FILE = 304,
259 >    GECOS = 305,
260 >    GENERAL = 306,
261 >    HIDDEN = 307,
262 >    HIDDEN_NAME = 308,
263 >    HIDE_CHANS = 309,
264 >    HIDE_IDLE = 310,
265 >    HIDE_IDLE_FROM_OPERS = 311,
266 >    HIDE_SERVER_IPS = 312,
267 >    HIDE_SERVERS = 313,
268 >    HIDE_SERVICES = 314,
269 >    HOST = 315,
270 >    HUB = 316,
271 >    HUB_MASK = 317,
272 >    INVISIBLE_ON_CONNECT = 318,
273 >    INVITE_CLIENT_COUNT = 319,
274 >    INVITE_CLIENT_TIME = 320,
275 >    INVITE_DELAY_CHANNEL = 321,
276 >    INVITE_EXPIRE_TIME = 322,
277 >    IP = 323,
278 >    IRCD_AUTH = 324,
279 >    IRCD_FLAGS = 325,
280 >    IRCD_SID = 326,
281 >    JOIN = 327,
282 >    KILL = 328,
283 >    KILL_CHASE_TIME_LIMIT = 329,
284 >    KLINE = 330,
285 >    KLINE_EXEMPT = 331,
286 >    KLINE_MIN_CIDR = 332,
287 >    KLINE_MIN_CIDR6 = 333,
288 >    KNOCK_CLIENT_COUNT = 334,
289 >    KNOCK_CLIENT_TIME = 335,
290 >    KNOCK_DELAY_CHANNEL = 336,
291 >    LEAF_MASK = 337,
292 >    LISTEN = 338,
293 >    MASK = 339,
294 >    MAX_ACCEPT = 340,
295 >    MAX_BANS = 341,
296 >    MAX_BANS_LARGE = 342,
297 >    MAX_CHANNELS = 343,
298 >    MAX_IDLE = 344,
299 >    MAX_INVITES = 345,
300 >    MAX_NICK_CHANGES = 346,
301 >    MAX_NICK_LENGTH = 347,
302 >    MAX_NICK_TIME = 348,
303 >    MAX_NUMBER = 349,
304 >    MAX_TARGETS = 350,
305 >    MAX_TOPIC_LENGTH = 351,
306 >    MAX_WATCH = 352,
307 >    MIN_IDLE = 353,
308 >    MIN_NONWILDCARD = 354,
309 >    MIN_NONWILDCARD_SIMPLE = 355,
310 >    MODULE = 356,
311 >    MODULES = 357,
312 >    MOTD = 358,
313 >    NAME = 359,
314 >    NEED_IDENT = 360,
315 >    NEED_PASSWORD = 361,
316 >    NETWORK_DESC = 362,
317 >    NETWORK_NAME = 363,
318 >    NICK = 364,
319 >    NO_OPER_FLOOD = 365,
320 >    NO_TILDE = 366,
321 >    NUMBER = 367,
322 >    NUMBER_PER_CIDR = 368,
323 >    NUMBER_PER_IP_GLOBAL = 369,
324 >    NUMBER_PER_IP_LOCAL = 370,
325 >    OPER_ONLY_UMODES = 371,
326 >    OPER_UMODES = 372,
327 >    OPERATOR = 373,
328 >    OPERS_BYPASS_CALLERID = 374,
329 >    PACE_WAIT = 375,
330 >    PACE_WAIT_SIMPLE = 376,
331 >    PASSWORD = 377,
332 >    PATH = 378,
333 >    PING_COOKIE = 379,
334 >    PING_TIME = 380,
335 >    PORT = 381,
336 >    QSTRING = 382,
337 >    RANDOM_IDLE = 383,
338 >    REASON = 384,
339 >    REDIRPORT = 385,
340 >    REDIRSERV = 386,
341 >    REHASH = 387,
342 >    REMOTE = 388,
343 >    REMOTEBAN = 389,
344 >    RESV = 390,
345 >    RESV_EXEMPT = 391,
346 >    RSA_PRIVATE_KEY_FILE = 392,
347 >    SECONDS = 393,
348 >    MINUTES = 394,
349 >    HOURS = 395,
350 >    DAYS = 396,
351 >    WEEKS = 397,
352 >    MONTHS = 398,
353 >    YEARS = 399,
354 >    SEND_PASSWORD = 400,
355 >    SENDQ = 401,
356 >    SERVERHIDE = 402,
357 >    SERVERINFO = 403,
358 >    SHORT_MOTD = 404,
359 >    SPOOF = 405,
360 >    SQUIT = 406,
361 >    STATS_E_DISABLED = 407,
362 >    STATS_I_OPER_ONLY = 408,
363 >    STATS_K_OPER_ONLY = 409,
364 >    STATS_M_OPER_ONLY = 410,
365 >    STATS_O_OPER_ONLY = 411,
366 >    STATS_P_OPER_ONLY = 412,
367 >    STATS_U_OPER_ONLY = 413,
368 >    T_ALL = 414,
369 >    T_BIND = 415,
370 >    T_BOTS = 416,
371 >    T_CALLERID = 417,
372 >    T_CCONN = 418,
373 >    T_COMMAND = 419,
374 >    T_CLUSTER = 420,
375 >    T_DEAF = 421,
376 >    T_DEBUG = 422,
377 >    T_DLINE = 423,
378 >    T_EXTERNAL = 424,
379 >    T_FARCONNECT = 425,
380 >    T_FILE = 426,
381 >    T_FULL = 427,
382 >    T_GLOBOPS = 428,
383 >    T_INVISIBLE = 429,
384 >    T_IPV4 = 430,
385 >    T_IPV6 = 431,
386 >    T_LOCOPS = 432,
387 >    T_LOG = 433,
388 >    T_NCHANGE = 434,
389 >    T_NONONREG = 435,
390 >    T_OPME = 436,
391 >    T_PREPEND = 437,
392 >    T_PSEUDO = 438,
393 >    T_RECVQ = 439,
394 >    T_REJ = 440,
395 >    T_RESTART = 441,
396 >    T_SERVER = 442,
397 >    T_SERVICE = 443,
398 >    T_SERVNOTICE = 444,
399 >    T_SET = 445,
400 >    T_SHARED = 446,
401 >    T_SIZE = 447,
402 >    T_SKILL = 448,
403 >    T_SOFTCALLERID = 449,
404 >    T_SPY = 450,
405 >    T_TARGET = 451,
406 >    T_TLS = 452,
407 >    T_UMODES = 453,
408 >    T_UNAUTH = 454,
409 >    T_UNDLINE = 455,
410 >    T_UNLIMITED = 456,
411 >    T_UNRESV = 457,
412 >    T_UNXLINE = 458,
413 >    T_WALLOP = 459,
414 >    T_WALLOPS = 460,
415 >    T_WEBIRC = 461,
416 >    TBOOL = 462,
417 >    THROTTLE_COUNT = 463,
418 >    THROTTLE_TIME = 464,
419 >    TIMEOUT = 465,
420 >    TLS_CERTIFICATE_FILE = 466,
421 >    TLS_CERTIFICATE_FINGERPRINT = 467,
422 >    TLS_CIPHER_LIST = 468,
423 >    TLS_CIPHER_SUITES = 469,
424 >    TLS_CONNECTION_REQUIRED = 470,
425 >    TLS_DH_PARAM_FILE = 471,
426 >    TLS_MESSAGE_DIGEST_ALGORITHM = 472,
427 >    TLS_SUPPORTED_GROUPS = 473,
428 >    TS_MAX_DELTA = 474,
429 >    TS_WARN_DELTA = 475,
430 >    TWODOTS = 476,
431 >    TYPE = 477,
432 >    UNKLINE = 478,
433 >    USE_LOGGING = 479,
434 >    USER = 480,
435 >    VHOST = 481,
436 >    VHOST6 = 482,
437 >    WARN_NO_CONNECT_BLOCK = 483,
438 >    WHOIS = 484,
439 >    WHOWAS_HISTORY_LENGTH = 485,
440 >    XLINE = 486,
441 >    XLINE_EXEMPT = 487
442    };
443   #endif
444   /* Tokens.  */
# Line 468 | Line 459 | extern int yydebug;
459   #define CIDR_BITLEN_IPV4 272
460   #define CIDR_BITLEN_IPV6 273
461   #define CLASS 274
462 < #define CONNECT 275
463 < #define CONNECTFREQ 276
464 < #define CYCLE_ON_HOST_CHANGE 277
465 < #define DEFAULT_FLOODCOUNT 278
466 < #define DEFAULT_JOIN_FLOOD_COUNT 279
467 < #define DEFAULT_JOIN_FLOOD_TIME 280
468 < #define DEFAULT_MAX_CLIENTS 281
469 < #define DEFAULT_SPLIT_SERVER_COUNT 282
470 < #define DEFAULT_SPLIT_USER_COUNT 283
471 < #define DENY 284
472 < #define DESCRIPTION 285
473 < #define DIE 286
474 < #define DISABLE_AUTH 287
475 < #define DISABLE_FAKE_CHANNELS 288
476 < #define DISABLE_REMOTE_COMMANDS 289
477 < #define DLINE_MIN_CIDR 290
478 < #define DLINE_MIN_CIDR6 291
479 < #define DOTS_IN_IDENT 292
480 < #define EMAIL 293
481 < #define ENCRYPTED 294
482 < #define EXCEED_LIMIT 295
483 < #define EXEMPT 296
484 < #define FAILED_OPER_NOTICE 297
485 < #define FLATTEN_LINKS 298
486 < #define GECOS 299
487 < #define GENERAL 300
488 < #define HIDDEN 301
489 < #define HIDDEN_NAME 302
490 < #define HIDE_CHANS 303
491 < #define HIDE_IDLE 304
492 < #define HIDE_IDLE_FROM_OPERS 305
493 < #define HIDE_SERVER_IPS 306
494 < #define HIDE_SERVERS 307
495 < #define HIDE_SERVICES 308
496 < #define HOST 309
497 < #define HUB 310
498 < #define HUB_MASK 311
499 < #define IGNORE_BOGUS_TS 312
500 < #define INVISIBLE_ON_CONNECT 313
501 < #define INVITE_CLIENT_COUNT 314
502 < #define INVITE_CLIENT_TIME 315
503 < #define IP 316
504 < #define IRCD_AUTH 317
505 < #define IRCD_FLAGS 318
506 < #define IRCD_SID 319
507 < #define KILL 320
508 < #define KILL_CHASE_TIME_LIMIT 321
509 < #define KLINE 322
510 < #define KLINE_EXEMPT 323
511 < #define KLINE_MIN_CIDR 324
512 < #define KLINE_MIN_CIDR6 325
513 < #define KNOCK_CLIENT_COUNT 326
514 < #define KNOCK_CLIENT_TIME 327
515 < #define KNOCK_DELAY_CHANNEL 328
516 < #define LEAF_MASK 329
517 < #define LINKS_DELAY 330
518 < #define LISTEN 331
519 < #define MASK 332
520 < #define MAX_ACCEPT 333
521 < #define MAX_BANS 334
522 < #define MAX_CHANNELS 335
523 < #define MAX_GLOBAL 336
524 < #define MAX_IDENT 337
525 < #define MAX_IDLE 338
526 < #define MAX_LOCAL 339
527 < #define MAX_NICK_CHANGES 340
528 < #define MAX_NICK_LENGTH 341
529 < #define MAX_NICK_TIME 342
530 < #define MAX_NUMBER 343
531 < #define MAX_TARGETS 344
532 < #define MAX_TOPIC_LENGTH 345
533 < #define MAX_WATCH 346
534 < #define MIN_IDLE 347
535 < #define MIN_NONWILDCARD 348
536 < #define MIN_NONWILDCARD_SIMPLE 349
537 < #define MODULE 350
538 < #define MODULES 351
539 < #define MOTD 352
540 < #define NAME 353
541 < #define NEED_IDENT 354
542 < #define NEED_PASSWORD 355
543 < #define NETWORK_DESC 356
544 < #define NETWORK_NAME 357
545 < #define NICK 358
546 < #define NO_CREATE_ON_SPLIT 359
547 < #define NO_JOIN_ON_SPLIT 360
548 < #define NO_OPER_FLOOD 361
549 < #define NO_TILDE 362
550 < #define NUMBER 363
551 < #define NUMBER_PER_CIDR 364
552 < #define NUMBER_PER_IP 365
553 < #define OPER_ONLY_UMODES 366
554 < #define OPER_PASS_RESV 367
555 < #define OPER_UMODES 368
556 < #define OPERATOR 369
557 < #define OPERS_BYPASS_CALLERID 370
558 < #define PACE_WAIT 371
559 < #define PACE_WAIT_SIMPLE 372
560 < #define PASSWORD 373
561 < #define PATH 374
562 < #define PING_COOKIE 375
563 < #define PING_TIME 376
564 < #define PORT 377
565 < #define QSTRING 378
566 < #define RANDOM_IDLE 379
567 < #define REASON 380
568 < #define REDIRPORT 381
569 < #define REDIRSERV 382
570 < #define REHASH 383
571 < #define REMOTE 384
572 < #define REMOTEBAN 385
573 < #define RESV 386
574 < #define RESV_EXEMPT 387
575 < #define RSA_PRIVATE_KEY_FILE 388
576 < #define RSA_PUBLIC_KEY_FILE 389
577 < #define SECONDS 390
578 < #define MINUTES 391
579 < #define HOURS 392
580 < #define DAYS 393
581 < #define WEEKS 394
582 < #define MONTHS 395
583 < #define YEARS 396
584 < #define SEND_PASSWORD 397
585 < #define SENDQ 398
586 < #define SERVERHIDE 399
587 < #define SERVERINFO 400
588 < #define SHORT_MOTD 401
589 < #define SPOOF 402
590 < #define SPOOF_NOTICE 403
591 < #define SQUIT 404
592 < #define SSL_CERTIFICATE_FILE 405
593 < #define SSL_CERTIFICATE_FINGERPRINT 406
594 < #define SSL_CONNECTION_REQUIRED 407
595 < #define SSL_DH_ELLIPTIC_CURVE 408
596 < #define SSL_DH_PARAM_FILE 409
597 < #define SSL_MESSAGE_DIGEST_ALGORITHM 410
598 < #define STATS_E_DISABLED 411
599 < #define STATS_I_OPER_ONLY 412
600 < #define STATS_K_OPER_ONLY 413
601 < #define STATS_M_OPER_ONLY 414
602 < #define STATS_O_OPER_ONLY 415
603 < #define STATS_P_OPER_ONLY 416
604 < #define STATS_U_OPER_ONLY 417
605 < #define T_ALL 418
606 < #define T_BOTS 419
607 < #define T_CALLERID 420
608 < #define T_CCONN 421
609 < #define T_COMMAND 422
610 < #define T_CLUSTER 423
611 < #define T_DEAF 424
612 < #define T_DEBUG 425
613 < #define T_DLINE 426
614 < #define T_EXTERNAL 427
615 < #define T_FARCONNECT 428
616 < #define T_FILE 429
617 < #define T_FULL 430
618 < #define T_GLOBOPS 431
619 < #define T_INVISIBLE 432
620 < #define T_IPV4 433
621 < #define T_IPV6 434
622 < #define T_LOCOPS 435
623 < #define T_LOG 436
624 < #define T_NCHANGE 437
625 < #define T_NONONREG 438
626 < #define T_OPME 439
627 < #define T_PREPEND 440
628 < #define T_PSEUDO 441
629 < #define T_RECVQ 442
630 < #define T_REJ 443
631 < #define T_RESTART 444
632 < #define T_SERVER 445
633 < #define T_SERVICE 446
634 < #define T_SERVNOTICE 447
635 < #define T_SET 448
636 < #define T_SHARED 449
637 < #define T_SIZE 450
638 < #define T_SKILL 451
639 < #define T_SOFTCALLERID 452
640 < #define T_SPY 453
641 < #define T_SSL 454
642 < #define T_SSL_CIPHER_LIST 455
643 < #define T_TARGET 456
644 < #define T_UMODES 457
645 < #define T_UNAUTH 458
646 < #define T_UNDLINE 459
647 < #define T_UNLIMITED 460
648 < #define T_UNRESV 461
649 < #define T_UNXLINE 462
650 < #define T_WALLOP 463
651 < #define T_WALLOPS 464
652 < #define T_WEBIRC 465
653 < #define TBOOL 466
654 < #define THROTTLE_COUNT 467
655 < #define THROTTLE_TIME 468
656 < #define TKLINE_EXPIRE_NOTICES 469
657 < #define TMASKED 470
658 < #define TS_MAX_DELTA 471
659 < #define TS_WARN_DELTA 472
660 < #define TWODOTS 473
661 < #define TYPE 474
662 < #define UNKLINE 475
663 < #define USE_LOGGING 476
664 < #define USER 477
665 < #define VHOST 478
666 < #define VHOST6 479
667 < #define WARN_NO_CONNECT_BLOCK 480
668 < #define WHOIS 481
669 < #define XLINE 482
670 < #define XLINE_EXEMPT 483
462 > #define CLIENT 275
463 > #define CLOSE 276
464 > #define CONNECT 277
465 > #define CONNECTFREQ 278
466 > #define CYCLE_ON_HOST_CHANGE 279
467 > #define DEFAULT_FLOODCOUNT 280
468 > #define DEFAULT_FLOODTIME 281
469 > #define DEFAULT_JOIN_FLOOD_COUNT 282
470 > #define DEFAULT_JOIN_FLOOD_TIME 283
471 > #define DEFAULT_MAX_CLIENTS 284
472 > #define DEFER 285
473 > #define DENY 286
474 > #define DESCRIPTION 287
475 > #define DIE 288
476 > #define DISABLE_AUTH 289
477 > #define DISABLE_FAKE_CHANNELS 290
478 > #define DISABLE_REMOTE_COMMANDS 291
479 > #define DLINE_MIN_CIDR 292
480 > #define DLINE_MIN_CIDR6 293
481 > #define DOTS_IN_IDENT 294
482 > #define EMAIL 295
483 > #define ENABLE_EXTBANS 296
484 > #define ENCRYPTED 297
485 > #define EXCEED_LIMIT 298
486 > #define EXEMPT 299
487 > #define EXPIRATION 300
488 > #define FAILED_OPER_NOTICE 301
489 > #define FLATTEN_LINKS 302
490 > #define FLATTEN_LINKS_DELAY 303
491 > #define FLATTEN_LINKS_FILE 304
492 > #define GECOS 305
493 > #define GENERAL 306
494 > #define HIDDEN 307
495 > #define HIDDEN_NAME 308
496 > #define HIDE_CHANS 309
497 > #define HIDE_IDLE 310
498 > #define HIDE_IDLE_FROM_OPERS 311
499 > #define HIDE_SERVER_IPS 312
500 > #define HIDE_SERVERS 313
501 > #define HIDE_SERVICES 314
502 > #define HOST 315
503 > #define HUB 316
504 > #define HUB_MASK 317
505 > #define INVISIBLE_ON_CONNECT 318
506 > #define INVITE_CLIENT_COUNT 319
507 > #define INVITE_CLIENT_TIME 320
508 > #define INVITE_DELAY_CHANNEL 321
509 > #define INVITE_EXPIRE_TIME 322
510 > #define IP 323
511 > #define IRCD_AUTH 324
512 > #define IRCD_FLAGS 325
513 > #define IRCD_SID 326
514 > #define JOIN 327
515 > #define KILL 328
516 > #define KILL_CHASE_TIME_LIMIT 329
517 > #define KLINE 330
518 > #define KLINE_EXEMPT 331
519 > #define KLINE_MIN_CIDR 332
520 > #define KLINE_MIN_CIDR6 333
521 > #define KNOCK_CLIENT_COUNT 334
522 > #define KNOCK_CLIENT_TIME 335
523 > #define KNOCK_DELAY_CHANNEL 336
524 > #define LEAF_MASK 337
525 > #define LISTEN 338
526 > #define MASK 339
527 > #define MAX_ACCEPT 340
528 > #define MAX_BANS 341
529 > #define MAX_BANS_LARGE 342
530 > #define MAX_CHANNELS 343
531 > #define MAX_IDLE 344
532 > #define MAX_INVITES 345
533 > #define MAX_NICK_CHANGES 346
534 > #define MAX_NICK_LENGTH 347
535 > #define MAX_NICK_TIME 348
536 > #define MAX_NUMBER 349
537 > #define MAX_TARGETS 350
538 > #define MAX_TOPIC_LENGTH 351
539 > #define MAX_WATCH 352
540 > #define MIN_IDLE 353
541 > #define MIN_NONWILDCARD 354
542 > #define MIN_NONWILDCARD_SIMPLE 355
543 > #define MODULE 356
544 > #define MODULES 357
545 > #define MOTD 358
546 > #define NAME 359
547 > #define NEED_IDENT 360
548 > #define NEED_PASSWORD 361
549 > #define NETWORK_DESC 362
550 > #define NETWORK_NAME 363
551 > #define NICK 364
552 > #define NO_OPER_FLOOD 365
553 > #define NO_TILDE 366
554 > #define NUMBER 367
555 > #define NUMBER_PER_CIDR 368
556 > #define NUMBER_PER_IP_GLOBAL 369
557 > #define NUMBER_PER_IP_LOCAL 370
558 > #define OPER_ONLY_UMODES 371
559 > #define OPER_UMODES 372
560 > #define OPERATOR 373
561 > #define OPERS_BYPASS_CALLERID 374
562 > #define PACE_WAIT 375
563 > #define PACE_WAIT_SIMPLE 376
564 > #define PASSWORD 377
565 > #define PATH 378
566 > #define PING_COOKIE 379
567 > #define PING_TIME 380
568 > #define PORT 381
569 > #define QSTRING 382
570 > #define RANDOM_IDLE 383
571 > #define REASON 384
572 > #define REDIRPORT 385
573 > #define REDIRSERV 386
574 > #define REHASH 387
575 > #define REMOTE 388
576 > #define REMOTEBAN 389
577 > #define RESV 390
578 > #define RESV_EXEMPT 391
579 > #define RSA_PRIVATE_KEY_FILE 392
580 > #define SECONDS 393
581 > #define MINUTES 394
582 > #define HOURS 395
583 > #define DAYS 396
584 > #define WEEKS 397
585 > #define MONTHS 398
586 > #define YEARS 399
587 > #define SEND_PASSWORD 400
588 > #define SENDQ 401
589 > #define SERVERHIDE 402
590 > #define SERVERINFO 403
591 > #define SHORT_MOTD 404
592 > #define SPOOF 405
593 > #define SQUIT 406
594 > #define STATS_E_DISABLED 407
595 > #define STATS_I_OPER_ONLY 408
596 > #define STATS_K_OPER_ONLY 409
597 > #define STATS_M_OPER_ONLY 410
598 > #define STATS_O_OPER_ONLY 411
599 > #define STATS_P_OPER_ONLY 412
600 > #define STATS_U_OPER_ONLY 413
601 > #define T_ALL 414
602 > #define T_BIND 415
603 > #define T_BOTS 416
604 > #define T_CALLERID 417
605 > #define T_CCONN 418
606 > #define T_COMMAND 419
607 > #define T_CLUSTER 420
608 > #define T_DEAF 421
609 > #define T_DEBUG 422
610 > #define T_DLINE 423
611 > #define T_EXTERNAL 424
612 > #define T_FARCONNECT 425
613 > #define T_FILE 426
614 > #define T_FULL 427
615 > #define T_GLOBOPS 428
616 > #define T_INVISIBLE 429
617 > #define T_IPV4 430
618 > #define T_IPV6 431
619 > #define T_LOCOPS 432
620 > #define T_LOG 433
621 > #define T_NCHANGE 434
622 > #define T_NONONREG 435
623 > #define T_OPME 436
624 > #define T_PREPEND 437
625 > #define T_PSEUDO 438
626 > #define T_RECVQ 439
627 > #define T_REJ 440
628 > #define T_RESTART 441
629 > #define T_SERVER 442
630 > #define T_SERVICE 443
631 > #define T_SERVNOTICE 444
632 > #define T_SET 445
633 > #define T_SHARED 446
634 > #define T_SIZE 447
635 > #define T_SKILL 448
636 > #define T_SOFTCALLERID 449
637 > #define T_SPY 450
638 > #define T_TARGET 451
639 > #define T_TLS 452
640 > #define T_UMODES 453
641 > #define T_UNAUTH 454
642 > #define T_UNDLINE 455
643 > #define T_UNLIMITED 456
644 > #define T_UNRESV 457
645 > #define T_UNXLINE 458
646 > #define T_WALLOP 459
647 > #define T_WALLOPS 460
648 > #define T_WEBIRC 461
649 > #define TBOOL 462
650 > #define THROTTLE_COUNT 463
651 > #define THROTTLE_TIME 464
652 > #define TIMEOUT 465
653 > #define TLS_CERTIFICATE_FILE 466
654 > #define TLS_CERTIFICATE_FINGERPRINT 467
655 > #define TLS_CIPHER_LIST 468
656 > #define TLS_CIPHER_SUITES 469
657 > #define TLS_CONNECTION_REQUIRED 470
658 > #define TLS_DH_PARAM_FILE 471
659 > #define TLS_MESSAGE_DIGEST_ALGORITHM 472
660 > #define TLS_SUPPORTED_GROUPS 473
661 > #define TS_MAX_DELTA 474
662 > #define TS_WARN_DELTA 475
663 > #define TWODOTS 476
664 > #define TYPE 477
665 > #define UNKLINE 478
666 > #define USE_LOGGING 479
667 > #define USER 480
668 > #define VHOST 481
669 > #define VHOST6 482
670 > #define WARN_NO_CONNECT_BLOCK 483
671 > #define WHOIS 484
672 > #define WHOWAS_HISTORY_LENGTH 485
673 > #define XLINE 486
674 > #define XLINE_EXEMPT 487
675  
676   /* Value type.  */
677   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
678  
679   union YYSTYPE
680   {
681 < #line 153 "conf_parser.y" /* yacc.c:355  */
681 > #line 133 "conf_parser.y" /* yacc.c:352  */
682  
683    int number;
684    char *string;
685  
686 < #line 692 "conf_parser.c" /* yacc.c:355  */
686 > #line 687 "conf_parser.c" /* yacc.c:352  */
687   };
688  
689   typedef union YYSTYPE YYSTYPE;
# Line 703 | Line 698 | int yyparse (void);
698  
699   #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
700  
706 /* Copy the second part of user declarations.  */
701  
708 #line 709 "conf_parser.c" /* yacc.c:358  */
702  
703   #ifdef short
704   # undef short
# Line 726 | Line 719 | typedef signed char yytype_int8;
719   #ifdef YYTYPE_UINT16
720   typedef YYTYPE_UINT16 yytype_uint16;
721   #else
722 < typedef unsigned short int yytype_uint16;
722 > typedef unsigned short yytype_uint16;
723   #endif
724  
725   #ifdef YYTYPE_INT16
726   typedef YYTYPE_INT16 yytype_int16;
727   #else
728 < typedef short int yytype_int16;
728 > typedef short yytype_int16;
729   #endif
730  
731   #ifndef YYSIZE_T
# Line 744 | Line 737 | typedef short int yytype_int16;
737   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
738   #  define YYSIZE_T size_t
739   # else
740 < #  define YYSIZE_T unsigned int
740 > #  define YYSIZE_T unsigned
741   # endif
742   #endif
743  
# Line 780 | Line 773 | typedef short int yytype_int16;
773   # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
774   #endif
775  
783 #if !defined _Noreturn \
784     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
785 # if defined _MSC_VER && 1200 <= _MSC_VER
786 #  define _Noreturn __declspec (noreturn)
787 # else
788 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
789 # endif
790 #endif
791
776   /* Suppress unused-variable warnings by "using" E.  */
777   #if ! defined lint || defined __GNUC__
778   # define YYUSE(E) ((void) (E))
# Line 796 | Line 780 | typedef short int yytype_int16;
780   # define YYUSE(E) /* empty */
781   #endif
782  
783 < #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
783 > #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
784   /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
785   # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
786      _Pragma ("GCC diagnostic push") \
# Line 947 | Line 931 | union yyalloc
931   /* YYFINAL -- State number of the termination state.  */
932   #define YYFINAL  2
933   /* YYLAST -- Last index in YYTABLE.  */
934 < #define YYLAST   1381
934 > #define YYLAST   1262
935  
936   /* YYNTOKENS -- Number of terminals.  */
937 < #define YYNTOKENS  235
937 > #define YYNTOKENS  239
938   /* YYNNTS -- Number of nonterminals.  */
939 < #define YYNNTS  296
939 > #define YYNNTS  294
940   /* YYNRULES -- Number of rules.  */
941 < #define YYNRULES  664
941 > #define YYNRULES  668
942   /* YYNSTATES -- Number of states.  */
943 < #define YYNSTATES  1313
943 > #define YYNSTATES  1314
944  
961 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
962   by yylex, with out-of-bounds checking.  */
945   #define YYUNDEFTOK  2
946 < #define YYMAXUTOK   483
946 > #define YYMAXUTOK   487
947  
948 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
949 +   as returned by yylex, with out-of-bounds checking.  */
950   #define YYTRANSLATE(YYX)                                                \
951 <  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
951 >  ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
952  
953   /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
954 <   as returned by yylex, without out-of-bounds checking.  */
954 >   as returned by yylex.  */
955   static const yytype_uint8 yytranslate[] =
956   {
957         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
958         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
959         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961 <       2,     2,     2,     2,   233,     2,     2,     2,     2,     2,
962 <       2,     2,     2,     2,     2,     2,     2,     2,   234,   229,
963 <       2,   232,     2,     2,     2,     2,     2,     2,     2,     2,
961 >       2,     2,     2,     2,   237,     2,     2,     2,     2,     2,
962 >       2,     2,     2,     2,     2,     2,     2,     2,   238,   233,
963 >       2,   236,     2,     2,     2,     2,     2,     2,     2,     2,
964         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
965         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
966         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
967         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
968         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
969 <       2,     2,     2,   231,     2,   230,     2,     2,     2,     2,
969 >       2,     2,     2,   235,     2,   234,     2,     2,     2,     2,
970         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
971         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
972         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1018 | Line 1002 | static const yytype_uint8 yytranslate[]
1002       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1003       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1004       215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1005 <     225,   226,   227,   228
1005 >     225,   226,   227,   228,   229,   230,   231,   232
1006   };
1007  
1008   #if YYDEBUG
1009    /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1010   static const yytype_uint16 yyrline[] =
1011   {
1012 <       0,   385,   385,   386,   389,   390,   391,   392,   393,   394,
1013 <     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1014 <     405,   406,   407,   408,   409,   410,   411,   412,   416,   416,
1015 <     417,   418,   419,   420,   421,   422,   423,   424,   427,   427,
1016 <     428,   429,   430,   431,   438,   441,   441,   442,   442,   442,
1017 <     444,   450,   457,   459,   459,   460,   461,   462,   463,   464,
1018 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1019 <     475,   476,   477,   480,   520,   578,   607,   615,   629,   657,
1020 <     672,   687,   697,   711,   720,   748,   776,   801,   823,   845,
1021 <     854,   856,   856,   857,   858,   859,   860,   862,   871,   880,
1022 <     893,   892,   910,   910,   911,   911,   911,   913,   919,   929,
1023 <     928,   947,   947,   948,   948,   948,   948,   948,   950,   956,
1024 <     962,   968,   989,   990,   990,   992,   992,   993,   995,  1002,
1025 <    1002,  1015,  1016,  1018,  1018,  1019,  1019,  1021,  1029,  1032,
1026 <    1038,  1037,  1043,  1043,  1044,  1048,  1052,  1056,  1060,  1064,
1027 <    1068,  1072,  1083,  1082,  1171,  1171,  1172,  1173,  1174,  1175,
1028 <    1176,  1177,  1178,  1179,  1180,  1181,  1182,  1183,  1185,  1191,
1029 <    1197,  1203,  1209,  1220,  1226,  1232,  1243,  1250,  1249,  1255,
1030 <    1255,  1256,  1260,  1264,  1268,  1272,  1276,  1280,  1284,  1288,
1031 <    1292,  1296,  1300,  1304,  1308,  1312,  1316,  1320,  1324,  1328,
1032 <    1332,  1336,  1340,  1347,  1346,  1352,  1352,  1353,  1357,  1361,
1033 <    1365,  1369,  1373,  1377,  1381,  1385,  1389,  1393,  1397,  1401,
1034 <    1405,  1409,  1413,  1417,  1421,  1425,  1429,  1433,  1437,  1441,
1035 <    1452,  1451,  1508,  1508,  1509,  1510,  1511,  1512,  1513,  1514,
1036 <    1515,  1516,  1517,  1518,  1519,  1520,  1521,  1521,  1522,  1523,
1037 <    1524,  1525,  1527,  1533,  1539,  1545,  1551,  1557,  1563,  1569,
1038 <    1575,  1581,  1587,  1594,  1600,  1606,  1612,  1621,  1631,  1630,
1039 <    1636,  1636,  1637,  1641,  1652,  1651,  1658,  1657,  1662,  1662,
1040 <    1663,  1667,  1671,  1677,  1677,  1678,  1678,  1678,  1678,  1678,
1041 <    1680,  1680,  1682,  1682,  1684,  1697,  1714,  1720,  1730,  1729,
1042 <    1771,  1771,  1772,  1773,  1774,  1775,  1776,  1777,  1778,  1779,
1043 <    1780,  1782,  1788,  1794,  1800,  1812,  1811,  1817,  1817,  1818,
1044 <    1822,  1826,  1830,  1834,  1838,  1842,  1846,  1850,  1854,  1860,
1045 <    1874,  1883,  1897,  1896,  1911,  1911,  1912,  1912,  1912,  1912,
1046 <    1914,  1920,  1926,  1936,  1938,  1938,  1939,  1939,  1941,  1957,
1047 <    1956,  1981,  1981,  1982,  1982,  1982,  1982,  1984,  1990,  2010,
1048 <    2009,  2015,  2015,  2016,  2020,  2024,  2028,  2032,  2036,  2040,
1049 <    2044,  2048,  2052,  2062,  2061,  2082,  2082,  2083,  2083,  2083,
1050 <    2085,  2092,  2091,  2097,  2097,  2098,  2102,  2106,  2110,  2114,
1051 <    2118,  2122,  2126,  2130,  2134,  2144,  2143,  2215,  2215,  2216,
1052 <    2217,  2218,  2219,  2220,  2221,  2222,  2223,  2224,  2225,  2226,
1053 <    2227,  2228,  2229,  2230,  2232,  2238,  2244,  2250,  2263,  2276,
1054 <    2282,  2288,  2292,  2299,  2298,  2303,  2303,  2304,  2308,  2314,
1055 <    2325,  2331,  2337,  2343,  2359,  2358,  2384,  2384,  2385,  2385,
1056 <    2385,  2387,  2407,  2417,  2416,  2443,  2443,  2444,  2444,  2444,
1057 <    2446,  2452,  2461,  2463,  2463,  2464,  2464,  2466,  2484,  2483,
1058 <    2506,  2506,  2507,  2507,  2507,  2509,  2515,  2524,  2527,  2527,
1059 <    2528,  2529,  2530,  2531,  2532,  2533,  2534,  2535,  2536,  2537,
1060 <    2538,  2539,  2540,  2541,  2542,  2543,  2544,  2545,  2546,  2547,
1061 <    2548,  2549,  2550,  2551,  2552,  2553,  2554,  2555,  2556,  2557,
1062 <    2558,  2559,  2560,  2561,  2562,  2563,  2564,  2565,  2566,  2567,
1063 <    2568,  2569,  2570,  2571,  2572,  2573,  2574,  2577,  2582,  2587,
1064 <    2592,  2598,  2603,  2608,  2613,  2618,  2623,  2628,  2633,  2638,
1065 <    2643,  2648,  2653,  2658,  2663,  2668,  2674,  2679,  2684,  2689,
1066 <    2694,  2699,  2704,  2709,  2712,  2717,  2720,  2725,  2730,  2735,
1067 <    2740,  2745,  2750,  2755,  2760,  2765,  2770,  2775,  2780,  2785,
1068 <    2791,  2790,  2795,  2795,  2796,  2799,  2802,  2805,  2808,  2811,
1069 <    2814,  2817,  2820,  2823,  2826,  2829,  2832,  2835,  2838,  2841,
1070 <    2844,  2847,  2850,  2853,  2856,  2859,  2865,  2864,  2869,  2869,
1071 <    2870,  2873,  2876,  2879,  2882,  2885,  2888,  2891,  2894,  2897,
1072 <    2900,  2903,  2906,  2909,  2912,  2915,  2918,  2921,  2924,  2927,
1073 <    2932,  2937,  2942,  2951,  2954,  2954,  2955,  2956,  2957,  2958,
1074 <    2959,  2960,  2961,  2962,  2963,  2964,  2965,  2966,  2967,  2968,
1075 <    2969,  2971,  2976,  2981,  2986,  2991,  2996,  3001,  3006,  3011,
1076 <    3016,  3021,  3026,  3031,  3036,  3044,  3047,  3047,  3048,  3049,
1077 <    3050,  3051,  3052,  3053,  3054,  3055,  3056,  3058,  3064,  3070,
1078 <    3076,  3082,  3091,  3106,  3112
1012 >       0,   369,   369,   370,   373,   374,   375,   376,   377,   378,
1013 >     379,   380,   381,   382,   383,   384,   385,   386,   387,   388,
1014 >     389,   390,   391,   392,   393,   394,   395,   396,   400,   400,
1015 >     401,   402,   403,   404,   405,   406,   407,   408,   411,   411,
1016 >     412,   413,   414,   415,   422,   424,   424,   425,   425,   425,
1017 >     427,   433,   443,   445,   445,   446,   447,   448,   449,   450,
1018 >     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
1019 >     461,   462,   465,   474,   483,   492,   501,   510,   519,   528,
1020 >     543,   558,   568,   582,   591,   614,   637,   660,   670,   672,
1021 >     672,   673,   674,   675,   676,   678,   687,   696,   710,   709,
1022 >     727,   727,   728,   728,   728,   730,   736,   747,   746,   765,
1023 >     765,   766,   766,   766,   766,   766,   768,   774,   780,   786,
1024 >     808,   809,   809,   811,   811,   812,   814,   821,   821,   834,
1025 >     835,   837,   837,   838,   838,   840,   848,   851,   857,   856,
1026 >     862,   862,   863,   867,   871,   875,   879,   883,   887,   891,
1027 >     902,   901,   964,   964,   965,   966,   967,   968,   969,   970,
1028 >     971,   972,   973,   974,   975,   977,   983,   989,   995,  1001,
1029 >    1012,  1018,  1029,  1036,  1035,  1041,  1041,  1042,  1046,  1050,
1030 >    1054,  1058,  1062,  1066,  1070,  1074,  1078,  1082,  1086,  1090,
1031 >    1094,  1098,  1102,  1106,  1110,  1114,  1118,  1122,  1126,  1130,
1032 >    1137,  1136,  1142,  1142,  1143,  1147,  1151,  1155,  1159,  1163,
1033 >    1167,  1171,  1175,  1179,  1183,  1187,  1191,  1195,  1199,  1203,
1034 >    1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,  1243,
1035 >    1247,  1251,  1255,  1266,  1265,  1321,  1321,  1322,  1323,  1324,
1036 >    1325,  1326,  1327,  1328,  1329,  1330,  1331,  1332,  1333,  1334,
1037 >    1335,  1336,  1337,  1339,  1345,  1351,  1357,  1363,  1369,  1375,
1038 >    1381,  1387,  1394,  1400,  1406,  1412,  1421,  1431,  1430,  1436,
1039 >    1436,  1437,  1441,  1452,  1451,  1458,  1457,  1462,  1462,  1463,
1040 >    1467,  1471,  1475,  1479,  1485,  1485,  1486,  1486,  1486,  1486,
1041 >    1486,  1488,  1488,  1490,  1490,  1492,  1505,  1522,  1528,  1539,
1042 >    1538,  1585,  1585,  1586,  1587,  1588,  1589,  1590,  1591,  1592,
1043 >    1593,  1594,  1596,  1602,  1608,  1614,  1626,  1625,  1631,  1631,
1044 >    1632,  1636,  1640,  1644,  1648,  1652,  1656,  1660,  1664,  1670,
1045 >    1684,  1693,  1707,  1706,  1721,  1721,  1722,  1722,  1722,  1722,
1046 >    1724,  1730,  1736,  1746,  1748,  1748,  1749,  1749,  1751,  1768,
1047 >    1767,  1790,  1790,  1791,  1791,  1791,  1791,  1793,  1799,  1819,
1048 >    1818,  1824,  1824,  1825,  1829,  1833,  1837,  1841,  1845,  1849,
1049 >    1853,  1857,  1861,  1872,  1871,  1890,  1890,  1891,  1891,  1891,
1050 >    1893,  1900,  1899,  1905,  1905,  1906,  1910,  1914,  1918,  1922,
1051 >    1926,  1930,  1934,  1938,  1942,  1953,  1952,  2030,  2030,  2031,
1052 >    2032,  2033,  2034,  2035,  2036,  2037,  2038,  2039,  2040,  2041,
1053 >    2042,  2043,  2044,  2045,  2046,  2048,  2054,  2060,  2066,  2072,
1054 >    2085,  2098,  2104,  2110,  2114,  2121,  2120,  2125,  2125,  2126,
1055 >    2130,  2136,  2147,  2153,  2159,  2165,  2181,  2180,  2204,  2204,
1056 >    2205,  2205,  2205,  2207,  2227,  2238,  2237,  2262,  2262,  2263,
1057 >    2263,  2263,  2265,  2271,  2281,  2283,  2283,  2284,  2284,  2286,
1058 >    2304,  2303,  2324,  2324,  2325,  2325,  2325,  2327,  2333,  2343,
1059 >    2345,  2345,  2346,  2347,  2348,  2349,  2350,  2351,  2352,  2353,
1060 >    2354,  2355,  2356,  2357,  2358,  2359,  2360,  2361,  2362,  2363,
1061 >    2364,  2365,  2366,  2367,  2368,  2369,  2370,  2371,  2372,  2373,
1062 >    2374,  2375,  2376,  2377,  2378,  2379,  2380,  2381,  2382,  2383,
1063 >    2384,  2385,  2386,  2387,  2388,  2389,  2390,  2391,  2394,  2399,
1064 >    2404,  2409,  2414,  2419,  2424,  2429,  2434,  2439,  2444,  2449,
1065 >    2454,  2459,  2464,  2469,  2474,  2479,  2484,  2489,  2494,  2499,
1066 >    2504,  2509,  2514,  2519,  2524,  2529,  2534,  2539,  2544,  2549,
1067 >    2554,  2559,  2564,  2569,  2574,  2579,  2584,  2590,  2589,  2594,
1068 >    2594,  2595,  2598,  2601,  2604,  2607,  2610,  2613,  2616,  2619,
1069 >    2622,  2625,  2628,  2631,  2634,  2637,  2640,  2643,  2646,  2649,
1070 >    2652,  2655,  2658,  2661,  2667,  2666,  2671,  2671,  2672,  2675,
1071 >    2678,  2681,  2684,  2687,  2690,  2693,  2696,  2699,  2702,  2705,
1072 >    2708,  2711,  2714,  2717,  2720,  2723,  2726,  2729,  2732,  2737,
1073 >    2742,  2747,  2752,  2761,  2763,  2763,  2764,  2765,  2766,  2767,
1074 >    2768,  2769,  2770,  2771,  2772,  2773,  2774,  2775,  2776,  2777,
1075 >    2778,  2779,  2781,  2786,  2791,  2796,  2801,  2806,  2811,  2816,
1076 >    2821,  2826,  2831,  2836,  2841,  2846,  2851,  2860,  2862,  2862,
1077 >    2863,  2864,  2865,  2866,  2867,  2868,  2869,  2870,  2871,  2872,
1078 >    2874,  2880,  2896,  2905,  2911,  2917,  2923,  2932,  2938
1079   };
1080   #endif
1081  
# Line 1104 | Line 1088 | static const char *const yytname[] =
1088    "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1089    "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1090    "CAN_FLOOD", "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS",
1091 <  "CONNECT", "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1092 <  "DEFAULT_JOIN_FLOOD_COUNT", "DEFAULT_JOIN_FLOOD_TIME",
1093 <  "DEFAULT_MAX_CLIENTS", "DEFAULT_SPLIT_SERVER_COUNT",
1094 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1095 <  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR",
1096 <  "DLINE_MIN_CIDR6", "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT",
1097 <  "EXEMPT", "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "GECOS", "GENERAL",
1091 >  "CLIENT", "CLOSE", "CONNECT", "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE",
1092 >  "DEFAULT_FLOODCOUNT", "DEFAULT_FLOODTIME", "DEFAULT_JOIN_FLOOD_COUNT",
1093 >  "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DEFER", "DENY",
1094 >  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1095 >  "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6",
1096 >  "DOTS_IN_IDENT", "EMAIL", "ENABLE_EXTBANS", "ENCRYPTED", "EXCEED_LIMIT",
1097 >  "EXEMPT", "EXPIRATION", "FAILED_OPER_NOTICE", "FLATTEN_LINKS",
1098 >  "FLATTEN_LINKS_DELAY", "FLATTEN_LINKS_FILE", "GECOS", "GENERAL",
1099    "HIDDEN", "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE",
1100    "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS", "HIDE_SERVERS",
1101 <  "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS",
1102 <  "INVISIBLE_ON_CONNECT", "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME",
1103 <  "IP", "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "KILL",
1104 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_MIN_CIDR",
1105 <  "KLINE_MIN_CIDR6", "KNOCK_CLIENT_COUNT", "KNOCK_CLIENT_TIME",
1106 <  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY", "LISTEN", "MASK",
1107 <  "MAX_ACCEPT", "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL", "MAX_IDENT",
1108 <  "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH",
1101 >  "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK", "INVISIBLE_ON_CONNECT",
1102 >  "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME", "INVITE_DELAY_CHANNEL",
1103 >  "INVITE_EXPIRE_TIME", "IP", "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID",
1104 >  "JOIN", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1105 >  "KLINE_MIN_CIDR", "KLINE_MIN_CIDR6", "KNOCK_CLIENT_COUNT",
1106 >  "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LISTEN",
1107 >  "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_BANS_LARGE", "MAX_CHANNELS",
1108 >  "MAX_IDLE", "MAX_INVITES", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH",
1109    "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH",
1110    "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1111    "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD",
1112 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_CREATE_ON_SPLIT",
1113 <  "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER",
1114 <  "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1115 <  "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT",
1116 <  "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1117 <  "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV",
1118 <  "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1134 <  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1112 >  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_OPER_FLOOD", "NO_TILDE",
1113 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP_GLOBAL",
1114 >  "NUMBER_PER_IP_LOCAL", "OPER_ONLY_UMODES", "OPER_UMODES", "OPERATOR",
1115 >  "OPERS_BYPASS_CALLERID", "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD",
1116 >  "PATH", "PING_COOKIE", "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE",
1117 >  "REASON", "REDIRPORT", "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN",
1118 >  "RESV", "RESV_EXEMPT", "RSA_PRIVATE_KEY_FILE", "SECONDS", "MINUTES",
1119    "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1120 <  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1121 <  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1122 <  "SSL_CONNECTION_REQUIRED", "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1123 <  "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1124 <  "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY", "STATS_O_OPER_ONLY",
1125 <  "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS",
1142 <  "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF", "T_DEBUG",
1143 <  "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1120 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SQUIT",
1121 >  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1122 >  "STATS_M_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY",
1123 >  "STATS_U_OPER_ONLY", "T_ALL", "T_BIND", "T_BOTS", "T_CALLERID",
1124 >  "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE",
1125 >  "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1126    "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_NCHANGE",
1127    "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ", "T_REJ",
1128    "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1129 <  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1130 <  "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1131 <  "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1132 <  "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME",
1133 <  "TKLINE_EXPIRE_NOTICES", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1134 <  "TWODOTS", "TYPE", "UNKLINE", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1135 <  "WARN_NO_CONNECT_BLOCK", "WHOIS", "XLINE", "XLINE_EXEMPT", "';'", "'}'",
1136 <  "'{'", "'='", "','", "':'", "$accept", "conf", "conf_item", "timespec_",
1129 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_TARGET",
1130 >  "T_TLS", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1131 >  "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1132 >  "THROTTLE_COUNT", "THROTTLE_TIME", "TIMEOUT", "TLS_CERTIFICATE_FILE",
1133 >  "TLS_CERTIFICATE_FINGERPRINT", "TLS_CIPHER_LIST", "TLS_CIPHER_SUITES",
1134 >  "TLS_CONNECTION_REQUIRED", "TLS_DH_PARAM_FILE",
1135 >  "TLS_MESSAGE_DIGEST_ALGORITHM", "TLS_SUPPORTED_GROUPS", "TS_MAX_DELTA",
1136 >  "TS_WARN_DELTA", "TWODOTS", "TYPE", "UNKLINE", "USE_LOGGING", "USER",
1137 >  "VHOST", "VHOST6", "WARN_NO_CONNECT_BLOCK", "WHOIS",
1138 >  "WHOWAS_HISTORY_LENGTH", "XLINE", "XLINE_EXEMPT", "';'", "'}'", "'{'",
1139 >  "'='", "','", "':'", "$accept", "conf", "conf_item", "timespec_",
1140    "timespec", "sizespec_", "sizespec", "modules_entry", "modules_items",
1141    "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1142 <  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_certificate_file",
1143 <  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1144 <  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1145 <  "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1142 >  "serverinfo_items", "serverinfo_item", "serverinfo_tls_certificate_file",
1143 >  "serverinfo_rsa_private_key_file", "serverinfo_tls_dh_param_file",
1144 >  "serverinfo_tls_cipher_list", "serverinfo_tls_cipher_suites",
1145 >  "serverinfo_tls_message_digest_algorithm",
1146 >  "serverinfo_tls_supported_groups", "serverinfo_name", "serverinfo_sid",
1147    "serverinfo_description", "serverinfo_network_name",
1148 <  "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1149 <  "serverinfo_default_max_clients", "serverinfo_max_nick_length",
1150 <  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1151 <  "admin_items", "admin_item", "admin_name", "admin_email",
1152 <  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1153 <  "motd_mask", "motd_file", "pseudo_entry", "$@2", "pseudo_items",
1154 <  "pseudo_item", "pseudo_command", "pseudo_name", "pseudo_prepend",
1155 <  "pseudo_target", "logging_entry", "logging_items", "logging_item",
1156 <  "logging_use_logging", "logging_file_entry", "$@3", "logging_file_items",
1157 <  "logging_file_item", "logging_file_name", "logging_file_size",
1158 <  "logging_file_type", "$@4", "logging_file_type_items",
1159 <  "logging_file_type_item", "oper_entry", "$@5", "oper_items", "oper_item",
1160 <  "oper_name", "oper_user", "oper_password", "oper_whois",
1161 <  "oper_encrypted", "oper_rsa_public_key_file",
1162 <  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1163 <  "oper_class", "oper_umodes", "$@6", "oper_umodes_items",
1164 <  "oper_umodes_item", "oper_flags", "$@7", "oper_flags_items",
1165 <  "oper_flags_item", "class_entry", "$@8", "class_items", "class_item",
1180 <  "class_name", "class_ping_time", "class_number_per_ip",
1148 >  "serverinfo_network_desc", "serverinfo_default_max_clients",
1149 >  "serverinfo_max_nick_length", "serverinfo_max_topic_length",
1150 >  "serverinfo_hub", "admin_entry", "admin_items", "admin_item",
1151 >  "admin_name", "admin_email", "admin_description", "motd_entry", "$@1",
1152 >  "motd_items", "motd_item", "motd_mask", "motd_file", "pseudo_entry",
1153 >  "$@2", "pseudo_items", "pseudo_item", "pseudo_command", "pseudo_name",
1154 >  "pseudo_prepend", "pseudo_target", "logging_entry", "logging_items",
1155 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@3",
1156 >  "logging_file_items", "logging_file_item", "logging_file_name",
1157 >  "logging_file_size", "logging_file_type", "$@4",
1158 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@5",
1159 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1160 >  "oper_whois", "oper_encrypted", "oper_tls_certificate_fingerprint",
1161 >  "oper_tls_connection_required", "oper_class", "oper_umodes", "$@6",
1162 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@7",
1163 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@8",
1164 >  "class_items", "class_item", "class_name", "class_ping_time",
1165 >  "class_number_per_ip_local", "class_number_per_ip_global",
1166    "class_connectfreq", "class_max_channels", "class_max_number",
1167 <  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1168 <  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1169 <  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1170 <  "class_flags", "$@9", "class_flags_items", "class_flags_item",
1171 <  "listen_entry", "$@10", "listen_flags", "$@11", "listen_flags_items",
1172 <  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1173 <  "$@12", "port_items", "port_item", "listen_address", "listen_host",
1174 <  "auth_entry", "$@13", "auth_items", "auth_item", "auth_user",
1175 <  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@14",
1176 <  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1177 <  "auth_redir_port", "resv_entry", "$@15", "resv_items", "resv_item",
1193 <  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1167 >  "class_sendq", "class_recvq", "class_cidr_bitlen_ipv4",
1168 >  "class_cidr_bitlen_ipv6", "class_number_per_cidr", "class_min_idle",
1169 >  "class_max_idle", "class_flags", "$@9", "class_flags_items",
1170 >  "class_flags_item", "listen_entry", "$@10", "listen_flags", "$@11",
1171 >  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1172 >  "listen_port", "$@12", "port_items", "port_item", "listen_address",
1173 >  "listen_host", "auth_entry", "$@13", "auth_items", "auth_item",
1174 >  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1175 >  "$@14", "auth_flags_items", "auth_flags_item", "auth_spoof",
1176 >  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@15", "resv_items",
1177 >  "resv_item", "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1178    "service_items", "service_item", "service_name", "shared_entry", "$@16",
1179    "shared_items", "shared_item", "shared_name", "shared_user",
1180    "shared_type", "$@17", "shared_types", "shared_type_item",
1181    "cluster_entry", "$@18", "cluster_items", "cluster_item", "cluster_name",
1182    "cluster_type", "$@19", "cluster_types", "cluster_type_item",
1183    "connect_entry", "$@20", "connect_items", "connect_item", "connect_name",
1184 <  "connect_host", "connect_vhost", "connect_send_password",
1185 <  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1186 <  "connect_port", "connect_aftype", "connect_flags", "$@21",
1187 <  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1188 <  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1189 <  "connect_ssl_cipher_list", "kill_entry", "$@22", "kill_items",
1190 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@23",
1191 <  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1192 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@24",
1193 <  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1194 <  "general_entry", "general_items", "general_item", "general_away_count",
1195 <  "general_away_time", "general_max_watch", "general_cycle_on_host_change",
1184 >  "connect_host", "connect_timeout", "connect_bind",
1185 >  "connect_send_password", "connect_accept_password",
1186 >  "connect_tls_certificate_fingerprint", "connect_port", "connect_aftype",
1187 >  "connect_flags", "$@21", "connect_flags_items", "connect_flags_item",
1188 >  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1189 >  "connect_class", "connect_tls_cipher_list", "kill_entry", "$@22",
1190 >  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1191 >  "$@23", "deny_items", "deny_item", "deny_ip", "deny_reason",
1192 >  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1193 >  "gecos_entry", "$@24", "gecos_items", "gecos_item", "gecos_name",
1194 >  "gecos_reason", "general_entry", "general_items", "general_item",
1195 >  "general_away_count", "general_away_time", "general_max_watch",
1196 >  "general_whowas_history_length", "general_cycle_on_host_change",
1197    "general_dline_min_cidr", "general_dline_min_cidr6",
1198    "general_kline_min_cidr", "general_kline_min_cidr6",
1199 <  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1215 <  "general_ignore_bogus_ts", "general_failed_oper_notice",
1199 >  "general_kill_chase_time_limit", "general_failed_oper_notice",
1200    "general_anti_nick_flood", "general_max_nick_time",
1201    "general_max_nick_changes", "general_max_accept",
1202    "general_anti_spam_exit_message_time", "general_ts_warn_delta",
# Line 1223 | Line 1207 | static const char *const yytname[] =
1207    "general_stats_k_oper_only", "general_stats_i_oper_only",
1208    "general_pace_wait", "general_caller_id_wait",
1209    "general_opers_bypass_callerid", "general_pace_wait_simple",
1210 <  "general_short_motd", "general_no_oper_flood", "general_oper_pass_resv",
1211 <  "general_dots_in_ident", "general_max_targets", "general_ping_cookie",
1212 <  "general_disable_auth", "general_throttle_count",
1213 <  "general_throttle_time", "general_oper_umodes", "$@25", "umode_oitems",
1214 <  "umode_oitem", "general_oper_only_umodes", "$@26", "umode_items",
1231 <  "umode_item", "general_min_nonwildcard",
1210 >  "general_short_motd", "general_no_oper_flood", "general_dots_in_ident",
1211 >  "general_max_targets", "general_ping_cookie", "general_disable_auth",
1212 >  "general_throttle_count", "general_throttle_time", "general_oper_umodes",
1213 >  "$@25", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1214 >  "$@26", "umode_items", "umode_item", "general_min_nonwildcard",
1215    "general_min_nonwildcard_simple", "general_default_floodcount",
1216 <  "channel_entry", "channel_items", "channel_item",
1216 >  "general_default_floodtime", "channel_entry", "channel_items",
1217 >  "channel_item", "channel_enable_extbans",
1218    "channel_disable_fake_channels", "channel_invite_client_count",
1219 <  "channel_invite_client_time", "channel_knock_client_count",
1219 >  "channel_invite_client_time", "channel_invite_delay_channel",
1220 >  "channel_invite_expire_time", "channel_knock_client_count",
1221    "channel_knock_client_time", "channel_knock_delay_channel",
1222 <  "channel_max_channels", "channel_max_bans",
1223 <  "channel_default_split_user_count", "channel_default_split_server_count",
1224 <  "channel_no_create_on_split", "channel_no_join_on_split",
1225 <  "channel_default_join_flood_count", "channel_default_join_flood_time",
1226 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1227 <  "serverhide_flatten_links", "serverhide_disable_remote_commands",
1228 <  "serverhide_hide_servers", "serverhide_hide_services",
1229 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1245 <  "serverhide_hide_server_ips", YY_NULLPTR
1222 >  "channel_max_channels", "channel_max_invites", "channel_max_bans",
1223 >  "channel_max_bans_large", "channel_default_join_flood_count",
1224 >  "channel_default_join_flood_time", "serverhide_entry",
1225 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1226 >  "serverhide_flatten_links_delay", "serverhide_flatten_links_file",
1227 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1228 >  "serverhide_hide_services", "serverhide_hidden_name",
1229 >  "serverhide_hidden", "serverhide_hide_server_ips", YY_NULLPTR
1230   };
1231   #endif
1232  
# Line 1273 | Line 1257 | static const yytype_uint16 yytoknum[] =
1257       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1258       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1259       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1260 <     475,   476,   477,   478,   479,   480,   481,   482,   483,    59,
1261 <     125,   123,    61,    44,    58
1260 >     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1261 >     485,   486,   487,    59,   125,   123,    61,    44,    58
1262   };
1263   # endif
1264  
1265 < #define YYPACT_NINF -739
1265 > #define YYPACT_NINF -798
1266  
1267   #define yypact_value_is_default(Yystate) \
1268 <  (!!((Yystate) == (-739)))
1268 >  (!!((Yystate) == (-798)))
1269  
1270 < #define YYTABLE_NINF -130
1270 > #define YYTABLE_NINF -128
1271  
1272   #define yytable_value_is_error(Yytable_value) \
1273    0
# Line 1292 | Line 1276 | static const yytype_uint16 yytoknum[] =
1276       STATE-NUM.  */
1277   static const yytype_int16 yypact[] =
1278   {
1279 <    -739,   690,  -739,  -204,  -227,  -225,  -739,  -739,  -739,  -212,
1280 <    -739,  -183,  -739,  -739,  -739,  -172,  -739,  -739,  -739,  -171,
1281 <    -159,  -739,  -145,  -739,  -142,  -739,  -739,  -739,  -739,  -739,
1282 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1283 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1284 <    -739,   322,   939,  -134,  -105,   -70,    21,   -69,   390,   -61,
1285 <     -55,   -49,    40,   -47,   -34,   -31,   669,   530,   -28,   106,
1286 <     -23,    11,   -15,   -14,     6,    27,    52,    31,  -739,  -739,
1287 <    -739,  -739,  -739,    54,    62,    90,    96,   103,   114,   117,
1288 <     118,   121,   131,   132,   144,   145,   148,   171,  -739,  -739,
1289 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1290 <    -739,  -739,  -739,   680,   523,    14,  -739,   152,    69,  -739,
1291 <    -739,    19,  -739,   153,   155,   156,   157,   161,   162,   175,
1292 <     176,   177,   179,   182,   183,   184,   185,   186,   187,   189,
1293 <     191,   192,   196,   199,   201,   202,   203,   204,  -739,   207,
1294 <    -739,   208,   209,   210,   211,   213,   218,   220,   222,   223,
1295 <     226,   230,   233,   234,   239,   241,   246,   248,   250,     7,
1296 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1297 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1298 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1299 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1300 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,   343,    26,   329,
1301 <     -11,   253,   254,    39,  -739,  -739,  -739,    33,   312,    22,
1302 <    -739,   255,   260,   261,   263,   265,   266,   268,   272,     4,
1303 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,    -2,
1304 <     276,   277,   279,   280,   281,   283,   285,   286,   287,   288,
1305 <     289,   290,   291,   293,   295,   298,   300,   124,  -739,  -739,
1306 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1307 <    -739,  -739,  -739,  -739,  -739,  -739,    10,    44,   305,    67,
1308 <    -739,  -739,  -739,   137,   173,  -739,   308,    89,  -739,  -739,
1309 <      17,  -739,   215,   282,   353,    76,  -739,   206,   433,   435,
1310 <     437,   342,   446,   433,   447,   433,   433,   449,   450,   348,
1311 <     350,   174,  -739,   335,   341,   346,   349,  -739,   352,   355,
1312 <     356,   357,   358,   359,   363,   367,   368,   369,   373,   377,
1313 <     378,   172,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1314 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1315 <     345,   379,   380,   381,   382,   386,   387,  -739,   391,   394,
1316 <     395,   397,   398,   402,   403,   244,  -739,  -739,  -739,  -739,
1317 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1318 <    -739,  -739,   404,   405,    32,  -739,  -739,  -739,   457,   393,
1319 <    -739,  -739,   406,   408,    80,  -739,  -739,  -739,   371,   433,
1320 <     533,   433,   433,   432,   538,   436,   541,   542,   543,   442,
1321 <     443,   444,   433,   548,   550,   551,   552,   433,   554,   556,
1322 <     559,   563,   481,   441,   482,   455,   485,   433,   433,   488,
1323 <     489,   491,  -187,  -180,   494,   496,   497,   500,   605,   433,
1324 <     503,   433,   433,   506,   495,  -739,   498,   486,   493,  -739,
1325 <     501,   504,   505,   507,   508,    65,  -739,  -739,  -739,  -739,
1326 <    -739,  -739,  -739,  -739,  -739,  -739,   509,   510,    86,  -739,
1327 <    -739,  -739,   499,   513,   515,  -739,   516,  -739,    79,  -739,
1328 <    -739,  -739,  -739,  -739,   603,   606,   520,  -739,   521,   519,
1329 <     524,    35,  -739,  -739,  -739,   528,   526,   527,  -739,   539,
1330 <     544,   545,   547,   549,  -739,   553,   560,   227,  -739,  -739,
1331 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1332 <     536,   561,   565,   566,    61,  -739,  -739,  -739,  -739,   562,
1333 <     564,   569,   609,   571,   572,   573,   433,   577,  -739,  -739,
1334 <     666,   615,   580,   665,   701,   703,   691,   692,   693,   694,
1335 <     696,   697,   702,   706,   707,   708,   709,   595,  -739,   607,
1336 <     608,  -739,    87,  -739,  -739,  -739,  -739,   626,   610,  -739,
1337 <     612,   616,   614,   617,   618,   619,   135,  -739,  -739,  -739,
1338 <    -739,  -739,   718,   623,  -739,   624,   622,  -739,   625,    82,
1339 <    -739,  -739,  -739,  -739,   627,   631,   632,  -739,   633,   431,
1340 <     634,   635,   636,   637,   639,   640,   641,   643,   644,   645,
1341 <     646,   648,   649,  -739,  -739,   736,   739,   433,   647,   740,
1342 <     747,   751,   433,   772,   774,   433,   760,   780,   781,   433,
1343 <     784,   784,   668,  -739,  -739,   776,  -133,   777,   684,   779,
1344 <     782,   675,   785,   787,   803,   789,   791,   792,   793,   704,
1345 <    -739,   797,   798,   712,  -739,   714,  -739,   799,   800,   719,
1346 <    -739,   720,   722,   723,   724,   727,   728,   732,   733,   742,
1347 <     744,   745,   746,   748,   749,   754,   755,   756,   757,   758,
1348 <     759,   761,   763,   764,   765,   767,   762,   768,   630,   771,
1349 <     778,   786,   788,   794,   795,   796,   801,   802,   804,   805,
1350 <     806,   807,   808,   809,   810,   811,   812,   813,   816,  -739,
1351 <    -739,   824,   725,   698,   845,   817,   846,   853,   857,   818,
1352 <    -739,   866,   868,   819,  -739,  -739,   878,   880,   773,   896,
1353 <     820,  -739,   821,   822,  -739,  -739,   883,   885,   823,  -739,
1354 <    -739,   886,   815,   790,   890,   891,   893,   897,   835,   825,
1355 <     898,   904,   826,  -739,  -739,   905,   906,   909,   827,  -739,
1356 <     829,   830,   831,   832,   833,   834,   836,   837,  -739,   838,
1357 <     839,   840,   841,   842,   843,   844,   847,   848,   849,   850,
1358 <     851,   852,   854,   855,   856,   858,  -739,  -739,   930,   859,
1359 <     860,  -739,   861,  -739,    77,  -739,   931,   941,   951,   952,
1360 <     863,  -739,   864,  -739,  -739,   959,   862,   963,   867,  -739,
1361 <    -739,  -739,  -739,  -739,   433,   433,   433,   433,   433,   433,
1362 <     433,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1363 <    -739,  -739,  -739,  -739,  -739,  -739,   869,   870,   871,   -13,
1364 <     872,   873,   874,   875,   876,   877,   879,   881,   882,   884,
1365 <     887,    41,   888,   889,  -739,   892,   894,   895,   899,   900,
1366 <     901,   902,    -5,   903,   907,   908,   910,   911,   912,   913,
1367 <    -739,   914,   915,  -739,  -739,   916,   917,  -739,  -739,  -739,
1368 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1369 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1370 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1371 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1372 <    -739,  -739,  -739,  -162,  -739,  -739,  -739,  -739,  -739,  -739,
1373 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1374 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -138,  -739,
1375 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1376 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1377 <     918,   919,   476,   920,   921,   922,   923,   924,  -739,   925,
1378 <     926,  -739,   927,   928,    68,   940,   929,  -739,  -739,  -739,
1379 <    -739,   932,   934,  -739,   935,   936,   468,   937,   938,   942,
1380 <     943,   944,   721,   945,   946,  -739,   947,   948,   949,  -739,
1381 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1382 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1383 <    -739,  -739,  -739,  -739,  -739,   950,   462,  -739,  -739,   953,
1384 <     865,   954,  -739,    73,  -739,  -739,  -739,  -739,   955,   956,
1385 <     958,   960,  -739,  -739,   961,   775,   962,  -739,  -739,  -739,
1386 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1387 <     -92,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1388 <    -739,  -739,  -739,   784,   784,   784,  -739,  -739,  -739,  -739,
1389 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,   -81,
1390 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1391 <    -739,  -739,  -739,   762,  -739,   630,  -739,  -739,  -739,  -739,
1392 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,   -73,  -739,
1393 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1394 <    -739,  -739,   -52,  -739,   980,   896,   964,  -739,  -739,  -739,
1395 <    -739,  -739,   965,  -739,   966,  -739,  -739,  -739,  -739,   967,
1396 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1397 <    -739,   -27,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1398 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1399 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1400 <     -16,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1401 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,    56,  -739,
1402 <    -739,   972,   -50,   970,   968,  -739,  -739,  -739,  -739,  -739,
1403 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1404 <    -739,   108,  -739,  -739,  -739,   -13,  -739,  -739,  -739,  -739,
1405 <      -5,  -739,  -739,  -739,   476,  -739,    68,  -739,  -739,  -739,
1406 <     978,   983,   985,  -739,   468,  -739,   721,  -739,   462,   969,
1407 <     974,   975,   267,  -739,  -739,   775,  -739,  -739,  -739,  -739,
1408 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1409 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,   110,  -739,  -739,
1410 <    -739,   267,  -739
1279 >    -798,   653,  -798,  -219,  -218,  -213,  -798,  -798,  -798,  -208,
1280 >    -798,  -203,  -798,  -798,  -798,  -198,  -798,  -798,  -798,  -196,
1281 >    -163,  -798,  -160,  -798,  -150,  -798,  -798,  -798,  -798,  -798,
1282 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1283 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1284 >    -798,   279,   924,  -134,  -109,  -103,    32,  -101,   356,   -88,
1285 >     -80,   -63,    35,   -60,   -57,   -55,   762,   534,   -36,    11,
1286 >     -26,    34,   -15,   -12,    63,    66,    73,     2,  -798,  -798,
1287 >    -798,  -798,  -798,    74,    76,    90,    94,    96,   104,   105,
1288 >     113,   114,   122,   123,   125,   133,   135,   136,     3,  -798,
1289 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1290 >    -798,  -798,  -798,  -798,  -798,   592,   569,    97,  -798,   137,
1291 >      24,  -798,  -798,   216,  -798,   138,   140,   142,   149,   151,
1292 >     152,   153,   156,   160,   161,   162,   163,   164,   167,   168,
1293 >     170,   171,   174,   175,   176,   177,   178,   180,   184,   186,
1294 >    -798,  -798,   187,   188,   189,   190,   195,   204,   206,   207,
1295 >     208,   209,   212,   218,   222,   223,   224,   225,   226,   227,
1296 >      40,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1297 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1298 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1299 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1300 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,   451,    25,   463,
1301 >      30,   229,   232,    22,  -798,  -798,  -798,   118,   305,   231,
1302 >    -798,   235,   238,   252,   255,   258,   259,   260,   261,   264,
1303 >       4,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1304 >    -798,    83,   265,   266,   271,   280,   283,   286,   288,   289,
1305 >     292,   296,   301,   302,   303,   304,   307,   308,   120,  -798,
1306 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1307 >    -798,  -798,  -798,  -798,  -798,  -798,    72,   109,   309,    80,
1308 >    -798,  -798,  -798,   220,    47,  -798,   310,    20,  -798,  -798,
1309 >      70,  -798,   117,   379,   388,   146,  -798,   239,   429,    58,
1310 >     340,   436,   429,   429,   429,   438,   429,   429,   448,   449,
1311 >     450,   455,   336,  -798,   338,   341,   342,   343,  -798,   344,
1312 >     347,   351,   355,   360,   361,   364,   366,   368,   370,   372,
1313 >     183,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1314 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,   380,   376,   378,
1315 >     382,   385,   387,   391,  -798,   392,   396,   397,   398,   399,
1316 >     400,   401,   407,   143,  -798,  -798,  -798,  -798,  -798,  -798,
1317 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1318 >    -798,   408,   409,    42,  -798,  -798,  -798,   489,   413,  -798,
1319 >    -798,   411,   414,    79,  -798,  -798,  -798,   442,   429,   512,
1320 >     429,   429,   445,   543,   429,   452,   544,   546,   548,   454,
1321 >     456,   429,   552,   553,   554,   555,   429,   556,   558,   562,
1322 >     565,   471,   443,   446,   476,   429,   429,   478,   480,   481,
1323 >     482,   484,   485,   486,   487,   491,   587,   429,   429,   429,
1324 >     493,   590,   475,  -798,   477,   473,   479,  -798,   483,   488,
1325 >     496,   497,   498,    57,  -798,  -798,  -798,  -798,  -798,  -798,
1326 >    -798,  -798,  -798,  -798,   499,   501,   110,  -798,  -798,  -798,
1327 >     490,   503,   504,  -798,   505,  -798,    27,  -798,  -798,  -798,
1328 >    -798,  -798,   584,   585,   492,  -798,   494,   506,   507,    93,
1329 >    -798,  -798,  -798,   511,   510,   513,  -798,   517,   518,  -798,
1330 >     521,   522,   523,   526,   203,  -798,  -798,  -798,  -798,  -798,
1331 >    -798,  -798,  -798,  -798,  -798,  -798,   531,   529,   530,   532,
1332 >      44,  -798,  -798,  -798,  -798,   509,   566,   429,   586,   567,
1333 >     591,   568,   570,   571,   539,  -798,  -798,   608,   656,   573,
1334 >     657,   674,   675,   662,   663,   664,   665,   666,   668,   669,
1335 >     670,   677,   678,   574,  -798,   575,   576,  -798,    12,  -798,
1336 >    -798,  -798,  -798,   595,   580,  -798,   581,   589,   588,   594,
1337 >     596,   597,    59,  -798,  -798,  -798,  -798,  -798,   690,   601,
1338 >    -798,   602,   604,  -798,   611,     8,  -798,  -798,  -798,  -798,
1339 >     618,   621,   625,  -798,   627,   415,   629,   630,   631,   633,
1340 >     634,   635,   639,   640,   641,   646,   650,   655,   658,   660,
1341 >    -798,  -798,   711,   713,   429,   623,   774,   429,   778,   429,
1342 >     700,   784,   785,   786,   429,   787,   787,   672,  -798,  -798,
1343 >     775,    -6,   776,   694,   779,   780,   682,   795,   800,   799,
1344 >     802,   803,   429,   805,   808,   680,  -798,   810,   811,   707,
1345 >    -798,   708,  -798,   815,   817,   717,  -798,   722,   723,   724,
1346 >     727,   728,   729,   730,   731,   733,   734,   735,   736,   737,
1347 >     738,   739,   740,   741,   742,   743,   745,   748,   749,   750,
1348 >     751,   752,   754,   676,   753,   759,   760,   761,   763,   764,
1349 >     765,   766,   768,   769,   773,   782,   783,   788,   789,   790,
1350 >     791,   792,  -798,  -798,   819,   806,   771,   860,   883,   882,
1351 >     890,   891,   793,  -798,   892,   893,   794,  -798,  -798,   901,
1352 >     902,   796,   918,   798,  -798,   801,   804,  -798,  -798,   906,
1353 >     908,   807,  -798,  -798,   909,   831,   809,   912,   914,   812,
1354 >     915,   836,   917,   919,   814,  -798,  -798,   922,   923,   925,
1355 >     818,  -798,   820,   821,   822,   823,   824,   825,   826,   827,
1356 >     828,  -798,   829,   830,   832,   833,   834,   835,   837,   838,
1357 >     839,   840,   841,   842,   843,   844,   845,   846,  -798,  -798,
1358 >     937,   847,   848,  -798,   849,  -798,   213,  -798,   942,   953,
1359 >     957,   958,   853,  -798,   854,  -798,  -798,   961,   855,   962,
1360 >     857,  -798,  -798,  -798,  -798,  -798,   429,   429,   429,   429,
1361 >     429,   429,   429,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1362 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,   859,
1363 >     861,   862,   -32,   863,   864,   865,   866,   867,   868,   869,
1364 >     870,   871,   155,   872,   873,  -798,   874,   875,   876,   877,
1365 >     878,   879,   880,    21,   881,   884,   885,   886,   887,   888,
1366 >     889,   894,  -798,   895,   896,  -798,  -798,   897,   898,  -798,
1367 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1368 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1369 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1370 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1371 >    -798,  -798,  -798,  -798,  -798,  -798,  -217,  -798,  -798,  -798,
1372 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1373 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1374 >    -798,  -178,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1375 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1376 >    -798,   899,   900,   393,   903,   904,   905,   907,   910,  -798,
1377 >     911,   913,  -798,   916,   920,   270,   921,   856,  -798,  -798,
1378 >    -798,  -798,   926,   927,  -798,   928,   929,   417,   930,   931,
1379 >     715,   932,   933,   934,   935,  -798,   936,   938,   939,  -798,
1380 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1381 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1382 >    -798,  -798,  -798,  -798,  -798,   940,   626,  -798,  -798,   941,
1383 >     943,   944,  -798,    18,  -798,  -798,  -798,  -798,   945,   948,
1384 >     949,   950,  -798,  -798,   951,   777,   952,  -798,  -798,  -798,
1385 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1386 >    -124,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1387 >    -798,   787,   787,   787,  -798,  -798,  -798,  -798,  -798,  -798,
1388 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,   -47,  -798,  -798,
1389 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1390 >    -798,  -798,   754,  -798,   676,  -798,  -798,  -798,  -798,  -798,
1391 >    -798,  -798,  -798,  -798,  -798,  -798,   -18,  -798,  -798,  -798,
1392 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1393 >    -798,  -798,    29,  -798,  1003,   918,   954,  -798,  -798,  -798,
1394 >    -798,  -798,  -798,   955,  -798,   956,   959,  -798,  -798,   960,
1395 >     963,  -798,  -798,   964,  -798,  -798,  -798,  -798,  -798,  -798,
1396 >    -798,  -798,  -798,  -798,  -798,  -798,    46,  -798,  -798,  -798,
1397 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1398 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1399 >    -798,  -798,  -798,    68,  -798,  -798,  -798,  -798,  -798,  -798,
1400 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1401 >    -798,  -798,  -798,   106,  -798,  -798,   989,   -94,   967,   966,
1402 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1403 >    -798,  -798,  -798,  -798,  -798,  -798,   115,  -798,  -798,  -798,
1404 >     -32,  -798,  -798,  -798,  -798,    21,  -798,  -798,  -798,   393,
1405 >    -798,   270,  -798,  -798,  -798,   990,   991,   992,   999,  1002,
1406 >    1006,  -798,   417,  -798,   715,  -798,   626,   971,   972,   973,
1407 >     311,  -798,  -798,   777,  -798,  -798,  -798,  -798,  -798,  -798,
1408 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1409 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,   131,  -798,
1410 >    -798,  -798,   311,  -798
1411   };
1412  
1413    /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
# Line 1431 | Line 1415 | static const yytype_int16 yypact[] =
1415       means the default is an error.  */
1416   static const yytype_uint16 yydefact[] =
1417   {
1418 <       2,     0,     1,     0,     0,     0,   230,   395,   443,     0,
1419 <     458,     0,   298,   434,   274,     0,   100,   152,   332,     0,
1420 <       0,   373,     0,   109,     0,   349,     3,    23,    11,     4,
1418 >       2,     0,     1,     0,     0,     0,   233,   395,   445,     0,
1419 >     460,     0,   299,   436,   273,     0,    98,   150,   332,     0,
1420 >       0,   373,     0,   107,     0,   349,     3,    23,    11,     4,
1421        24,    25,     5,     6,     8,     9,    10,    13,    14,    15,
1422        16,    17,    18,    19,    20,    22,    21,     7,    12,    26,
1423        27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1424         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1425 <       0,     0,     0,     0,     0,     0,     0,     0,    92,    93,
1426 <      95,    94,   630,     0,     0,     0,     0,     0,     0,     0,
1427 <       0,     0,     0,     0,     0,     0,     0,     0,   615,   629,
1428 <     617,   618,   619,   620,   621,   622,   616,   623,   624,   625,
1429 <     626,   627,   628,     0,     0,     0,   456,     0,     0,   454,
1430 <     455,     0,   516,     0,     0,     0,     0,     0,     0,     0,
1425 >       0,     0,     0,     0,     0,     0,     0,     0,    90,    91,
1426 >      93,    92,   631,     0,     0,     0,     0,     0,     0,     0,
1427 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   615,
1428 >     630,   629,   618,   619,   620,   621,   622,   623,   624,   625,
1429 >     626,   616,   617,   627,   628,     0,     0,     0,   458,     0,
1430 >       0,   456,   457,     0,   517,     0,     0,     0,     0,     0,
1431         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1448       0,     0,     0,     0,     0,     0,     0,     0,   586,     0,
1449     560,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1432         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1433 <     469,   470,   471,   514,   515,   509,   510,   511,   512,   508,
1452 <     481,   472,   473,   474,   475,   476,   477,   478,   479,   480,
1453 <     482,   483,   513,   487,   488,   489,   490,   486,   485,   491,
1454 <     499,   500,   492,   493,   494,   495,   484,   497,   506,   507,
1455 <     504,   505,   498,   496,   502,   503,   501,     0,     0,     0,
1456 <       0,     0,     0,     0,    46,    47,    48,     0,     0,     0,
1457 <     656,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1458 <     647,   648,   649,   650,   651,   654,   652,   653,   655,     0,
1459 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1460 <       0,     0,     0,     0,     0,     0,     0,     0,    54,    69,
1461 <      66,    64,    70,    71,    65,    55,    68,    58,    59,    60,
1462 <      56,    67,    61,    62,    63,    57,     0,     0,     0,     0,
1463 <     124,   125,   126,     0,     0,   347,     0,     0,   345,   346,
1464 <       0,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1433 >     584,   557,     0,     0,     0,     0,     0,     0,     0,     0,
1434         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1435 <       0,     0,   614,     0,     0,     0,     0,   268,     0,     0,
1435 >       0,   471,   472,   473,   515,   479,   516,   510,   511,   512,
1436 >     513,   483,   474,   475,   476,   477,   478,   480,   481,   482,
1437 >     484,   485,   514,   489,   490,   491,   492,   488,   487,   493,
1438 >     500,   501,   494,   495,   496,   486,   498,   508,   509,   506,
1439 >     507,   499,   497,   504,   505,   502,   503,     0,     0,     0,
1440 >       0,     0,     0,     0,    46,    47,    48,     0,     0,     0,
1441 >     659,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442 >       0,   649,   650,   651,   652,   653,   654,   655,   657,   656,
1443 >     658,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1444 >       0,     0,     0,     0,     0,     0,     0,     0,     0,    54,
1445 >      67,    65,    63,    68,    69,    70,    64,    55,    66,    57,
1446 >      58,    59,    60,    61,    62,    56,     0,     0,     0,     0,
1447 >     122,   123,   124,     0,     0,   347,     0,     0,   345,   346,
1448 >       0,    94,     0,     0,     0,     0,    89,     0,     0,     0,
1449         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1450 <       0,     0,   233,   234,   237,   239,   240,   241,   242,   243,
1469 <     244,   245,   246,   247,   235,   236,   238,   248,   249,   250,
1470 <       0,     0,     0,     0,     0,     0,     0,   423,     0,     0,
1471 <       0,     0,     0,     0,     0,     0,   398,   399,   400,   401,
1472 <     402,   403,   404,   406,   405,   408,   412,   409,   410,   411,
1473 <     407,   449,     0,     0,     0,   446,   447,   448,     0,     0,
1474 <     453,   464,     0,     0,     0,   461,   462,   463,     0,     0,
1450 >       0,     0,     0,   614,     0,     0,     0,     0,   267,     0,
1451         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1452 +       0,   236,   237,   240,   242,   243,   244,   245,   246,   247,
1453 +     248,   238,   239,   241,   249,   250,   251,     0,     0,     0,
1454 +       0,     0,     0,     0,   425,     0,     0,     0,     0,     0,
1455 +       0,     0,     0,     0,   398,   399,   400,   401,   402,   403,
1456 +     404,   405,   407,   406,   409,   413,   410,   411,   412,   408,
1457 +     451,     0,     0,     0,   448,   449,   450,     0,     0,   455,
1458 +     466,     0,     0,     0,   463,   464,   465,     0,     0,     0,
1459         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1460         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1461         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1479       0,     0,     0,     0,     0,   468,     0,     0,     0,   315,
1480       0,     0,     0,     0,     0,     0,   301,   302,   303,   304,
1481     309,   305,   306,   307,   308,   440,     0,     0,     0,   437,
1482     438,   439,     0,     0,     0,   276,     0,   286,     0,   284,
1483     285,   287,   288,    49,     0,     0,     0,    45,     0,     0,
1484       0,     0,   103,   104,   105,     0,     0,     0,   203,     0,
1485       0,     0,     0,     0,   177,     0,     0,     0,   155,   156,
1486     157,   158,   159,   162,   163,   164,   165,   161,   160,   166,
1487       0,     0,     0,     0,     0,   335,   336,   337,   338,     0,
1488       0,     0,     0,     0,     0,     0,     0,     0,   646,    72,
1462         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1463 <       0,     0,     0,     0,     0,     0,     0,     0,    53,     0,
1464 <       0,   381,     0,   376,   377,   378,   127,     0,     0,   123,
1465 <       0,     0,     0,     0,     0,     0,     0,   112,   113,   115,
1466 <     114,   116,     0,     0,   344,     0,     0,   359,     0,     0,
1467 <     352,   353,   354,   355,     0,     0,     0,    90,     0,    28,
1463 >       0,     0,     0,   470,     0,     0,     0,   316,     0,     0,
1464 >       0,     0,     0,     0,   302,   303,   304,   305,   310,   306,
1465 >     307,   308,   309,   442,     0,     0,     0,   439,   440,   441,
1466 >       0,     0,     0,   275,     0,   287,     0,   285,   286,   288,
1467 >     289,    49,     0,     0,     0,    45,     0,     0,     0,     0,
1468 >     101,   102,   103,     0,     0,     0,   200,     0,     0,   173,
1469 >       0,     0,     0,     0,     0,   153,   154,   155,   156,   157,
1470 >     160,   161,   162,   159,   158,   163,     0,     0,     0,     0,
1471 >       0,   335,   336,   337,   338,     0,     0,     0,     0,     0,
1472 >       0,     0,     0,     0,     0,   648,    71,     0,     0,     0,
1473         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1474 <       0,     0,     0,   613,   251,     0,     0,     0,     0,     0,
1474 >       0,     0,     0,     0,    53,     0,     0,   381,     0,   376,
1475 >     377,   378,   125,     0,     0,   121,     0,     0,     0,     0,
1476 >       0,     0,     0,   110,   111,   113,   112,   114,     0,     0,
1477 >     344,     0,     0,   359,     0,     0,   352,   353,   354,   355,
1478 >       0,     0,     0,    88,     0,    28,     0,     0,     0,     0,
1479         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1480 <       0,     0,     0,   232,   413,     0,     0,     0,     0,     0,
1480 >     613,   252,     0,     0,     0,     0,     0,     0,     0,     0,
1481 >       0,     0,     0,     0,     0,     0,     0,     0,   235,   414,
1482         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1483 <     397,     0,     0,     0,   445,     0,   452,     0,     0,     0,
1484 <     460,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1483 >       0,     0,     0,     0,     0,     0,   397,     0,     0,     0,
1484 >     447,     0,   454,     0,     0,     0,   462,     0,     0,     0,
1485         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1486         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1487         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1505       0,     0,     0,     0,     0,     0,     0,     0,     0,   467,
1506     310,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1507     300,     0,     0,     0,   436,   289,     0,     0,     0,     0,
1508       0,   283,     0,     0,    44,   106,     0,     0,     0,   102,
1509     167,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1510       0,     0,     0,   154,   339,     0,     0,     0,     0,   334,
1511       0,     0,     0,     0,     0,     0,     0,     0,   645,     0,
1488         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1489 <       0,     0,     0,     0,     0,     0,    52,   379,     0,     0,
1490 <       0,   375,     0,   122,     0,   117,     0,     0,     0,     0,
1491 <       0,   111,     0,   343,   356,     0,     0,     0,     0,   351,
1492 <      99,    98,    97,   643,    28,    28,    28,    28,    28,    28,
1493 <      28,    30,    29,   644,   640,   639,   631,   632,   633,   634,
1494 <     635,   636,   638,   637,   641,   642,     0,     0,     0,     0,
1489 >       0,     0,   469,   311,     0,     0,     0,     0,     0,     0,
1490 >       0,     0,     0,   301,     0,     0,     0,   438,   290,     0,
1491 >       0,     0,     0,     0,   284,     0,     0,    44,   104,     0,
1492 >       0,     0,   100,   164,     0,     0,     0,     0,     0,     0,
1493 >       0,     0,     0,     0,     0,   152,   339,     0,     0,     0,
1494 >       0,   334,     0,     0,     0,     0,     0,     0,     0,     0,
1495 >       0,   647,     0,     0,     0,     0,     0,     0,     0,     0,
1496 >       0,     0,     0,     0,     0,     0,     0,     0,    52,   379,
1497 >       0,     0,     0,   375,     0,   120,     0,   115,     0,     0,
1498 >       0,     0,     0,   109,     0,   343,   356,     0,     0,     0,
1499 >       0,   351,    97,    96,    95,   645,    28,    28,    28,    28,
1500 >      28,    28,    28,    30,    29,   646,   633,   632,   634,   635,
1501 >     636,   637,   638,   639,   640,   643,   644,   641,   642,     0,
1502         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1503 <       0,    38,     0,     0,   231,     0,     0,     0,     0,     0,
1503 >       0,     0,    38,     0,     0,   234,     0,     0,     0,     0,
1504         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1505 <     396,     0,     0,   444,   457,     0,     0,   459,   529,   533,
1506 <     517,   518,   548,   520,   612,   557,   521,   522,   554,   528,
1507 <     527,   536,   526,   523,   524,   532,   531,   530,   555,   519,
1508 <     610,   611,   552,   596,   590,   606,   591,   592,   593,   601,
1509 <     609,   594,   603,   607,   597,   608,   598,   602,   595,   605,
1510 <     600,   599,   604,     0,   589,   553,   569,   570,   571,   564,
1511 <     582,   565,   566,   567,   577,   585,   568,   579,   583,   573,
1512 <     584,   574,   578,   572,   581,   576,   575,   580,     0,   563,
1513 <     549,   547,   550,   556,   551,   538,   545,   546,   543,   544,
1514 <     539,   540,   541,   542,   558,   559,   525,   535,   534,   537,
1515 <       0,     0,     0,     0,     0,     0,     0,     0,   299,     0,
1516 <       0,   435,     0,     0,     0,   294,   290,   293,   275,    50,
1517 <      51,     0,     0,   101,     0,     0,     0,     0,     0,     0,
1518 <       0,     0,     0,     0,     0,   153,     0,     0,     0,   333,
1519 <     658,   657,   663,   661,   664,   659,   660,   662,    86,    81,
1520 <      89,    80,    87,    88,    79,    83,    82,    74,    73,    78,
1521 <      75,    77,    76,    84,    85,     0,     0,   374,   128,     0,
1522 <       0,     0,   140,     0,   132,   133,   135,   134,     0,     0,
1523 <       0,     0,   110,   348,     0,     0,     0,   350,    31,    32,
1524 <      33,    34,    35,    36,    37,   263,   264,   255,   273,   272,
1525 <       0,   271,   256,   258,   260,   267,   259,   257,   266,   252,
1526 <     265,   254,   253,    38,    38,    38,    40,    39,   261,   262,
1527 <     418,   421,   422,   432,   429,   415,   430,   427,   428,     0,
1528 <     426,   431,   414,   420,   417,   419,   433,   416,   450,   451,
1529 <     465,   466,   587,     0,   561,     0,   313,   314,   324,   320,
1530 <     321,   323,   328,   325,   326,   319,   327,   322,     0,   318,
1531 <     312,   331,   330,   329,   311,   442,   441,   297,   296,   281,
1532 <     282,   280,     0,   279,     0,     0,     0,   107,   108,   176,
1533 <     172,   222,   210,   219,   208,   213,   228,   221,   226,   212,
1534 <     215,   223,   225,   229,   220,   227,   216,   218,   224,   214,
1535 <     217,     0,   206,   168,   170,   173,   174,   175,   186,   187,
1536 <     188,   181,   199,   182,   183,   184,   194,   202,   185,   196,
1537 <     200,   190,   201,   191,   195,   189,   198,   193,   192,   197,
1538 <       0,   180,   169,   171,   342,   340,   341,   380,   385,   391,
1539 <     394,   387,   393,   388,   392,   390,   386,   389,     0,   384,
1540 <     136,     0,     0,     0,     0,   131,   119,   118,   120,   121,
1541 <     357,   363,   369,   372,   365,   371,   366,   370,   368,   364,
1542 <     367,     0,   362,   358,   269,     0,    41,    42,    43,   424,
1543 <       0,   588,   562,   316,     0,   277,     0,   295,   292,   291,
1544 <       0,     0,     0,   204,     0,   178,     0,   382,     0,     0,
1545 <       0,     0,     0,   130,   360,     0,   270,   425,   317,   278,
1546 <     209,   207,   211,   205,   179,   383,   137,   139,   138,   150,
1547 <     149,   145,   147,   151,   148,   144,   146,     0,   143,   361,
1548 <     141,     0,   142
1505 >       0,     0,   396,     0,     0,   446,   459,     0,     0,   461,
1506 >     529,   533,   518,   519,   546,   522,   611,   612,   554,   523,
1507 >     524,   551,   528,   536,   527,   525,   526,   532,   531,   530,
1508 >     552,   520,   609,   610,   550,   608,   594,   588,   604,   589,
1509 >     590,   591,   599,   607,   592,   601,   605,   595,   606,   596,
1510 >     600,   593,   603,   598,   597,   602,     0,   587,   583,   566,
1511 >     567,   568,   561,   579,   562,   563,   564,   574,   582,   565,
1512 >     576,   580,   570,   581,   571,   575,   569,   578,   573,   572,
1513 >     577,     0,   560,   547,   545,   548,   553,   549,   538,   544,
1514 >     543,   539,   540,   541,   542,   555,   556,   535,   534,   537,
1515 >     521,     0,     0,     0,     0,     0,     0,     0,     0,   300,
1516 >       0,     0,   437,     0,     0,     0,   295,   291,   294,   274,
1517 >      50,    51,     0,     0,    99,     0,     0,     0,     0,     0,
1518 >       0,     0,     0,     0,     0,   151,     0,     0,     0,   333,
1519 >     663,   660,   661,   662,   667,   666,   668,   664,   665,    84,
1520 >      81,    87,    80,    85,    86,    79,    83,    82,    73,    72,
1521 >      75,    76,    74,    77,    78,     0,     0,   374,   126,     0,
1522 >       0,     0,   138,     0,   130,   131,   133,   132,     0,     0,
1523 >       0,     0,   108,   348,     0,     0,     0,   350,    31,    32,
1524 >      33,    34,    35,    36,    37,   262,   263,   257,   272,   271,
1525 >       0,   270,   258,   266,   259,   265,   253,   264,   256,   255,
1526 >     254,    38,    38,    38,    40,    39,   260,   261,   420,   423,
1527 >     424,   434,   431,   416,   432,   429,   430,     0,   428,   433,
1528 >     415,   422,   419,   418,   417,   421,   435,   452,   453,   467,
1529 >     468,   585,     0,   558,     0,   314,   315,   324,   320,   321,
1530 >     323,   328,   325,   326,   327,   322,     0,   319,   313,   331,
1531 >     330,   329,   312,   444,   443,   298,   297,   282,   283,   280,
1532 >     281,   279,     0,   278,     0,     0,     0,   105,   106,   172,
1533 >     169,   220,   232,   207,   216,     0,   205,   210,   226,     0,
1534 >     219,   224,   230,   209,   212,   221,   223,   227,   217,   225,
1535 >     213,   231,   215,   222,   211,   214,     0,   203,   165,   167,
1536 >     199,   182,   183,   184,   177,   195,   178,   179,   180,   190,
1537 >     198,   181,   192,   196,   186,   197,   187,   191,   185,   194,
1538 >     189,   188,   193,     0,   176,   170,   171,   166,   168,   342,
1539 >     340,   341,   380,   385,   391,   394,   387,   393,   388,   392,
1540 >     390,   386,   389,     0,   384,   134,     0,     0,     0,     0,
1541 >     129,   117,   116,   118,   119,   357,   363,   369,   372,   365,
1542 >     371,   366,   370,   368,   364,   367,     0,   362,   358,   268,
1543 >       0,    41,    42,    43,   426,     0,   586,   559,   317,     0,
1544 >     276,     0,   296,   293,   292,     0,     0,     0,     0,     0,
1545 >       0,   201,     0,   174,     0,   382,     0,     0,     0,     0,
1546 >       0,   128,   360,     0,   269,   427,   318,   277,   206,   229,
1547 >     204,   228,   218,   208,   202,   175,   383,   135,   137,   136,
1548 >     148,   147,   143,   145,   149,   146,   142,   144,     0,   141,
1549 >     361,   139,     0,   140
1550   };
1551  
1552    /* YYPGOTO[NTERM-NUM].  */
1553   static const yytype_int16 yypgoto[] =
1554   {
1555 <    -739,  -739,  -739,  -457,  -306,  -738,  -640,  -739,  -739,   957,
1556 <    -739,  -739,  -739,  -739,   971,  -739,  -739,  -739,  -739,  -739,
1557 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1558 <    -739,  -739,  -739,  -739,  1032,  -739,  -739,  -739,  -739,  -739,
1559 <    -739,   621,  -739,  -739,  -739,  -739,  -739,   529,  -739,  -739,
1560 <    -739,  -739,  -739,  -739,   933,  -739,  -739,  -739,  -739,    66,
1561 <    -739,  -739,  -739,  -739,  -739,  -191,  -739,  -739,  -739,   642,
1562 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1563 <    -739,  -739,  -151,  -739,  -739,  -739,  -148,  -739,  -739,  -739,
1564 <     828,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1565 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1566 <    -128,  -739,  -739,  -739,  -739,  -739,  -132,  -739,   650,  -739,
1567 <    -739,  -739,   -22,  -739,  -739,  -739,  -739,  -739,   670,  -739,
1568 <    -739,  -739,  -739,  -739,  -739,  -739,  -104,  -739,  -739,  -739,
1569 <    -739,  -739,  -739,   654,  -739,  -739,  -739,  -739,  -739,   973,
1570 <    -739,  -739,  -739,  -739,   582,  -739,  -739,  -739,  -739,  -739,
1571 <    -117,  -739,  -739,  -739,   598,  -739,  -739,  -739,  -739,   -95,
1572 <    -739,  -739,  -739,   976,  -739,  -739,  -739,  -739,  -739,  -739,
1573 <    -739,  -739,  -739,  -739,  -739,   -68,  -739,  -739,  -739,  -739,
1574 <    -739,  -739,  -739,  -739,   716,  -739,  -739,  -739,  -739,  -739,
1575 <     814,  -739,  -739,  -739,  -739,  1077,  -739,  -739,  -739,  -739,
1576 <     977,  -739,  -739,  -739,  -739,  1027,  -739,  -739,  -739,  -739,
1577 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1578 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1579 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1580 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1581 <      81,  -739,  -739,  -739,    84,  -739,  -739,  -739,  -739,  -739,
1582 <    1108,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,  -739,
1583 <    -739,  -739,  -739,  -739,  -739,  -739,  -739,   979,  -739,  -739,
1584 <    -739,  -739,  -739,  -739,  -739,  -739
1555 >    -798,  -798,  -798,  -335,  -306,  -797,  -635,  -798,  -798,   947,
1556 >    -798,  -798,  -798,  -798,   946,  -798,  -798,  -798,  -798,  -798,
1557 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1558 >    -798,  -798,  -798,  1047,  -798,  -798,  -798,  -798,  -798,  -798,
1559 >     642,  -798,  -798,  -798,  -798,  -798,   563,  -798,  -798,  -798,
1560 >    -798,  -798,  -798,   858,  -798,  -798,  -798,  -798,   107,  -798,
1561 >    -798,  -798,  -798,  -798,  -164,  -798,  -798,  -798,   637,  -798,
1562 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1563 >    -122,  -798,  -798,  -798,  -118,  -798,  -798,  -798,   816,  -798,
1564 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1565 >    -798,  -798,  -798,  -798,  -798,  -798,   -95,  -798,  -798,  -798,
1566 >    -798,  -798,  -104,  -798,   689,  -798,  -798,  -798,    13,  -798,
1567 >    -798,  -798,  -798,  -798,   714,  -798,  -798,  -798,  -798,  -798,
1568 >    -798,  -798,   -83,  -798,  -798,  -798,  -798,  -798,  -798,   659,
1569 >    -798,  -798,  -798,  -798,  -798,   965,  -798,  -798,  -798,  -798,
1570 >     593,  -798,  -798,  -798,  -798,  -798,   -97,  -798,  -798,  -798,
1571 >     622,  -798,  -798,  -798,  -798,   -85,  -798,  -798,  -798,   850,
1572 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1573 >    -798,  -798,   -59,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1574 >    -798,   716,  -798,  -798,  -798,  -798,  -798,   851,  -798,  -798,
1575 >    -798,  -798,  1075,  -798,  -798,  -798,  -798,   797,  -798,  -798,
1576 >    -798,  -798,  1037,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1577 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1578 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1579 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1580 >    -798,  -798,  -798,  -798,  -798,    95,  -798,  -798,  -798,    98,
1581 >    -798,  -798,  -798,  -798,  -798,  -798,  1110,  -798,  -798,  -798,
1582 >    -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,  -798,
1583 >    -798,  -798,  -798,  -798,   975,  -798,  -798,  -798,  -798,  -798,
1584 >    -798,  -798,  -798,  -798
1585   };
1586  
1587    /* YYDEFGOTO[NTERM-NUM].  */
1588   static const yytype_int16 yydefgoto[] =
1589   {
1590 <      -1,     1,    26,   831,   832,  1096,  1097,    27,   223,   224,
1591 <     225,   226,    28,   267,   268,   269,   270,   271,   272,   273,
1592 <     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1593 <     284,   285,    29,    77,    78,    79,    80,    81,    30,    63,
1594 <     501,   502,   503,   504,    31,    70,   586,   587,   588,   589,
1595 <     590,   591,    32,   289,   290,   291,   292,   293,  1053,  1054,
1596 <    1055,  1056,  1057,  1233,  1307,  1308,    33,    64,   517,   518,
1597 <     519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
1598 <     759,  1210,  1211,   529,   753,  1181,  1182,    34,    53,   341,
1599 <     342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
1600 <     352,   353,   354,   355,   356,   357,   358,   359,   628,  1080,
1601 <    1081,    35,    61,   487,   738,  1152,  1153,   488,   489,   490,
1602 <    1156,   996,   997,   491,   492,    36,    59,   465,   466,   467,
1603 <     468,   469,   470,   471,   723,  1138,  1139,   472,   473,   474,
1604 <      37,    65,   534,   535,   536,   537,   538,    38,   297,   298,
1605 <     299,    39,    72,   599,   600,   601,   602,   603,   816,  1251,
1606 <    1252,    40,    68,   572,   573,   574,   575,   799,  1228,  1229,
1607 <      41,    54,   375,   376,   377,   378,   379,   380,   381,   382,
1608 <     383,   384,   385,   651,  1109,  1110,   386,   387,   388,   389,
1609 <     390,    42,    60,   478,   479,   480,   481,    43,    55,   394,
1610 <     395,   396,   397,    44,   118,   119,   120,    45,    57,   404,
1611 <     405,   406,   407,    46,   169,   170,   171,   172,   173,   174,
1612 <     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1613 <     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1614 <     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1615 <     205,   206,   207,   208,   209,   210,   211,   212,   435,   958,
1616 <     959,   213,   433,   933,   934,   214,   215,   216,    47,    97,
1617 <      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1618 <     108,   109,   110,   111,   112,    48,   239,   240,   241,   242,
1619 <     243,   244,   245,   246,   247,   248
1590 >      -1,     1,    26,   823,   824,  1084,  1085,    27,   223,   224,
1591 >     225,   226,    28,   268,   269,   270,   271,   272,   273,   274,
1592 >     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1593 >     285,    29,    77,    78,    79,    80,    81,    30,    63,   499,
1594 >     500,   501,   502,    31,    70,   582,   583,   584,   585,   586,
1595 >     587,    32,   289,   290,   291,   292,   293,  1043,  1044,  1045,
1596 >    1046,  1047,  1228,  1308,  1309,    33,    64,   514,   515,   516,
1597 >     517,   518,   519,   520,   521,   522,   523,   524,   749,  1203,
1598 >    1204,   525,   746,  1176,  1177,    34,    53,   340,   341,   342,
1599 >     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
1600 >     353,   354,   355,   356,   625,  1070,  1071,    35,    61,   485,
1601 >     731,  1142,  1143,   486,   487,   488,  1146,   987,   988,   489,
1602 >     490,    36,    59,   463,   464,   465,   466,   467,   468,   469,
1603 >     716,  1126,  1127,   470,   471,   472,    37,    65,   530,   531,
1604 >     532,   533,   534,    38,   297,   298,   299,    39,    72,   595,
1605 >     596,   597,   598,   599,   808,  1246,  1247,    40,    68,   568,
1606 >     569,   570,   571,   791,  1223,  1224,    41,    54,   373,   374,
1607 >     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1608 >     646,  1097,  1098,   385,   386,   387,   388,   389,    42,    60,
1609 >     476,   477,   478,   479,    43,    55,   393,   394,   395,   396,
1610 >      44,   120,   121,   122,    45,    57,   403,   404,   405,   406,
1611 >      46,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1612 >     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1613 >     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1614 >     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1615 >     209,   210,   211,   433,   951,   952,   212,   432,   926,   927,
1616 >     213,   214,   215,   216,    47,    98,    99,   100,   101,   102,
1617 >     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1618 >     113,   114,    48,   240,   241,   242,   243,   244,   245,   246,
1619 >     247,   248,   249,   250
1620   };
1621  
1622    /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
# Line 1640 | Line 1624 | static const yytype_int16 yydefgoto[] =
1624       number is the opposite.  If YYTABLE_NINF, syntax error.  */
1625   static const yytype_int16 yytable[] =
1626   {
1627 <     862,   863,   610,  1107,    51,   230,    52,   615,   122,   617,
1628 <     618,   569,   295,   123,   124,   391,   125,   126,   595,    56,
1629 <     401,   127,   116,   530,   705,    49,    50,   475,   706,   128,
1630 <     129,   707,    73,   391,   498,   708,   498,  1078,   231,   130,
1631 <     220,   220,   131,   132,   133,   866,   867,   232,    58,   134,
1632 <     233,   234,  1093,  1094,  1095,   235,   236,   237,   861,    62,
1633 <      66,    74,   530,   531,   135,   136,   456,  1122,   287,    75,
1634 <     116,  1123,    67,   137,  1049,   392,   138,   139,  1049,   238,
1635 <     482,   401,   117,   595,   457,   140,    69,   475,   569,    71,
1636 <     295,  1124,   141,   392,   142,  1125,   143,   113,   144,   532,
1637 <     145,   146,   531,   672,   458,   674,   675,   287,   570,   296,
1638 <     499,  1079,   499,   147,  1149,   596,   685,   402,   148,   149,
1639 <     150,   690,   151,   152,   153,   249,   114,   154,   459,    76,
1640 <     117,   700,   701,   483,   221,   221,   581,  1254,   532,   393,
1641 <     484,  1255,   485,   714,   403,   716,   717,   533,  1259,   861,
1642 <     250,   476,  1260,   155,   251,  1280,  1263,   393,   222,   222,
1643 <    1264,   115,   121,   156,   157,   158,   159,   160,   161,   162,
1644 <     217,  1050,    82,   323,   581,  1050,   218,  1265,   402,   252,
1645 <     596,  1266,   219,   460,   227,   570,   533,   296,   253,   324,
1646 <     325,   461,   462,   326,  1108,    83,    84,   228,    85,    86,
1647 <     229,   486,  1273,   286,    87,   403,  1274,   500,   294,   500,
1648 <     254,   476,   463,  1275,   255,   301,   300,  1276,   493,   163,
1649 <     164,   165,   256,   166,   167,   257,   258,   549,   505,   571,
1650 <      88,    89,   168,   582,   547,   327,   597,   454,   302,   598,
1651 <     777,  -129,    90,    91,    92,   360,   506,   361,   477,   362,
1652 <      93,    94,   328,   329,   330,   331,   332,   259,  1150,   303,
1653 <     333,   305,   663,   363,   334,   748,   507,  1151,  1051,   496,
1654 <     335,   582,  1051,   576,   260,    95,    96,   261,   262,   263,
1655 <    -129,   336,   337,   364,   304,  1277,   307,   464,   288,  1278,
1656 <     508,   768,  1052,   338,   308,   729,  1052,   578,   365,   399,
1657 <     366,   597,   583,  1234,   598,   607,   571,   367,   477,   740,
1658 <     669,   580,   818,   505,   608,   339,   733,   800,   368,   593,
1659 <     584,   848,   309,    73,   264,   509,   853,   288,   310,   856,
1660 <     482,   506,  1299,   860,  1300,   311,   585,  1284,   604,  1310,
1661 <     583,  1285,   369,  1311,   456,   510,   312,   265,   266,   313,
1662 <     314,   507,    74,   315,   567,  1256,  1257,  1258,   584,   340,
1663 <      75,   511,   457,   316,   317,   810,   370,  1068,  1069,  1070,
1664 <    1071,  1072,  1073,  1074,   585,   508,   318,   319,   512,   513,
1665 <     320,  1301,   458,   483,   398,   408,   371,   409,   410,   411,
1666 <     484,   122,   485,   412,   413,   372,   123,   124,  1302,   125,
1667 <     126,   321,   642,   623,   127,   605,   459,   414,   415,   416,
1668 <     509,   417,   128,   129,   418,   419,   420,   421,   422,   423,
1669 <      76,   424,   130,   425,   426,   131,   132,   133,   427,   514,
1670 <     510,   428,   134,   429,   430,   431,   432,  1303,  1304,   434,
1671 <     436,   437,   438,   439,   373,   440,   511,   135,   136,   515,
1672 <     441,   486,   442,   516,   443,   444,   137,   762,   445,   138,
1673 <     139,   460,   446,   512,   513,   447,   448,   374,   140,   461,
1674 <     462,   449,  1161,   450,   659,   141,   606,   142,   451,   143,
1675 <     452,   144,   453,   145,   146,   494,   495,   539,  1162,  1305,
1676 <     463,  1128,   540,   541,  1306,   542,   147,   543,   544,  1163,
1677 <     545,   148,   149,   150,   546,   151,   152,   153,   550,   551,
1678 <     154,   552,   553,   554,   514,   555,  1129,   556,   557,   558,
1679 <     559,   560,   561,   562,   360,   563,   361,   564,   362,  1218,
1680 <     565,   249,   566,  1164,   515,  1165,   155,   577,   516,   609,
1681 <     592,   609,   363,   611,  1130,   612,   156,   157,   158,   159,
1682 <     160,   161,   162,   613,   614,   616,   250,   619,   620,   621,
1683 <     251,   622,   364,  1166,   624,   464,   824,   825,   826,   827,
1684 <     828,   829,   830,   625,   644,  1131,  1132,   365,   626,   366,
1685 <     665,   627,   671,  1133,   629,   252,   367,   630,   631,   632,
1686 <     633,   634,  1281,  1219,   253,   635,  1167,   368,  1168,   636,
1687 <     637,   638,   163,   164,   165,   639,   166,   167,  1134,   640,
1688 <     641,   645,   646,   647,   648,   168,   254,  1169,   649,   650,
1689 <     255,   369,   666,   652,  1135,  1220,   653,   654,   256,   655,
1690 <     656,   257,   258,  1221,   657,   658,   661,   662,   667,  1170,
1691 <     668,   673,  1222,   676,  1171,   370,   677,   678,  1172,   679,
1692 <     680,   681,  1173,   682,   683,   684,   686,  1174,   687,   688,
1693 <     689,  1175,   691,   259,   692,   371,  1223,   693,  1224,  1225,
1694 <     230,   694,  1176,   696,   372,  1177,   936,  1178,   937,   938,
1695 <     260,   323,  1226,   261,   262,   263,  1136,   698,  1179,  1227,
1696 <       2,     3,   695,   697,     4,  1180,   699,   324,   325,   702,
1697 <     703,   326,   704,   231,  1137,   709,     5,   710,   711,     6,
1698 <       7,   712,   232,   713,   715,   233,   234,   718,   721,     8,
1699 <     235,   236,   237,   373,   719,   722,   742,   720,   735,   743,
1700 <     264,     9,   773,   724,    10,    11,   725,   726,   780,   727,
1701 <     728,   731,   732,   327,   238,   736,   374,   737,   739,   744,
1702 <     745,   746,    12,   265,   266,    13,   747,   750,   751,   752,
1703 <     328,   329,   330,   331,   332,   764,    14,  1188,   333,  1189,
1704 <    1190,   754,   334,   770,   779,   771,   755,   756,   335,   757,
1705 <     772,   758,   774,   775,   776,   760,    15,    16,   782,   336,
1706 <     337,   781,   761,   765,   939,   940,   941,   766,   767,   942,
1707 <     943,   338,   944,   945,    17,   946,   778,   947,   913,   783,
1708 <     948,   784,   949,   950,   785,   786,   787,   788,   951,   789,
1709 <     790,    18,   952,   339,   796,   791,   953,   954,   955,   792,
1710 <     793,   794,   795,   956,    19,    20,   797,   802,   957,   803,
1711 <     798,   812,  1241,   804,   846,   805,   806,   847,   850,   807,
1712 <     808,   809,   813,   814,   815,   851,   820,   817,    21,   852,
1713 <     821,   822,   823,   833,   834,   835,   836,   340,   837,   838,
1714 <     839,    22,   840,   841,   842,   843,    23,   844,   845,   849,
1715 <     854,    24,   855,   857,    25,  1191,  1192,  1193,   858,   859,
1716 <    1194,  1195,   861,  1196,  1197,   869,  1198,   864,  1199,   865,
1717 <     868,  1200,   870,  1201,  1202,   871,  1242,   872,   873,  1203,
1718 <     874,   875,   876,  1204,   877,   878,   879,  1205,  1206,  1207,
1719 <     881,   882,   885,   886,  1208,   984,   914,   915,   916,  1209,
1720 <     982,   917,   918,   880,   919,   920,   981,   921,  1243,   922,
1721 <      82,   883,   923,   884,   924,   925,  1244,   980,   887,   888,
1722 <     926,   889,   890,   891,   927,  1245,   892,   893,   928,   929,
1723 <     930,   894,   895,    83,    84,   931,    85,    86,   983,   985,
1724 <     932,   896,    87,   897,   898,   899,   986,   900,   901,  1246,
1725 <     987,  1247,  1248,   902,   903,   904,   905,   906,   907,   989,
1726 <     908,   990,   909,   910,   911,  1249,   912,   935,    88,    89,
1727 <     960,   992,  1250,   993,   995,   994,  1001,   961,  1002,  1004,
1728 <      90,    91,    92,  1007,  1008,   962,  1009,   963,    93,    94,
1729 <    1010,  1013,  1006,   964,   965,   966,  1005,  1014,  1016,  1017,
1730 <     967,   968,  1018,   969,   970,   971,   972,   973,   974,   975,
1731 <     976,   977,   978,    95,    96,   979,  1011,   988,   991,   998,
1732 <     999,  1000,  1003,  1045,  1058,  1015,  1019,  1012,  1020,  1021,
1733 <    1022,  1023,  1024,  1025,  1059,  1026,  1027,  1028,  1029,  1030,
1734 <    1031,  1032,  1033,  1034,  1060,  1061,  1035,  1036,  1037,  1038,
1735 <    1039,  1040,  1064,  1041,  1042,  1043,  1066,  1044,  1267,  1047,
1736 <    1048,  1046,  1062,  1063,  1065,  1279,  1067,  1231,  1075,  1076,
1737 <    1077,  1082,  1083,  1084,  1085,  1086,  1087,  1290,  1088,   306,
1738 <    1089,  1090,  1291,  1091,  1292,   811,  1092,  1098,  1099,  1235,
1739 <    1312,  1100,   749,  1101,  1102,  1294,  1293,  1286,  1103,  1104,
1740 <    1105,  1106,  1111,  1268,  1289,   730,  1112,  1113,   741,  1114,
1741 <    1115,  1116,  1117,  1118,  1119,  1120,  1121,  1126,  1127,  1140,
1742 <    1141,  1142,  1143,  1144,  1145,  1146,  1147,  1148,  1154,   763,
1743 <    1288,  1157,  1155,  1158,  1159,  1160,  1183,  1184,  1309,   643,
1744 <     801,  1185,  1186,  1187,  1212,  1213,  1214,  1215,  1216,  1217,
1745 <     497,   819,  1230,  1295,  1236,  1237,  1232,  1238,   769,  1239,
1746 <    1240,  1253,  1287,  1269,   734,   400,   455,  1283,  1296,  1270,
1747 <    1271,  1272,  1282,  1297,  1298,   322,  1262,  1261,   664,     0,
1748 <       0,     0,     0,     0,     0,     0,     0,     0,   548,     0,
1749 <       0,     0,   579,     0,     0,     0,     0,     0,     0,     0,
1766 <       0,     0,     0,     0,     0,     0,     0,     0,   568,     0,
1767 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1768 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1769 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1770 <     594,     0,     0,     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,     0,     0,
1773 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1774 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1627 >     853,   854,   606,    73,    82,   230,   610,   611,   612,   591,
1628 >     614,   615,   287,   565,    49,    50,  1111,    51,   852,  1039,
1629 >    1112,   295,    52,   220,  1068,   118,   473,    56,   480,  1095,
1630 >      83,    84,    58,   118,    74,   295,   220,    62,    85,    66,
1631 >     231,   124,    75,   390,    86,   526,   125,   126,   577,   127,
1632 >     128,   232,   233,   234,   129,  1113,   235,   236,   454,  1114,
1633 >     577,   237,   238,   239,   130,   131,   132,    87,    88,    89,
1634 >      90,   591,    67,   565,   133,    69,   455,   134,   135,   136,
1635 >     400,   287,    91,    92,    93,    71,   137,   481,   527,    94,
1636 >      95,    96,   119,    97,   496,   482,  1069,   483,   390,   456,
1637 >     119,   115,   668,   138,   670,   671,    76,  1278,   674,  1249,
1638 >     391,   473,   592,  1250,   139,   681,   566,   140,   141,   496,
1639 >     686,   251,  1040,   221,   296,   142,   116,   457,   528,   695,
1640 >     696,   143,   117,   144,   123,   145,   221,   146,   296,   147,
1641 >     148,   707,   708,   709,   357,   222,   358,   217,   359,   252,
1642 >     149,   578,   253,   484,   474,   218,   150,   151,   222,   152,
1643 >     153,   154,   360,   578,   155,   391,  1081,  1082,  1083,   857,
1644 >     858,   392,   219,   529,   592,   227,   566,   497,   228,   458,
1645 >     229,   254,  -127,   401,   324,   361,  1254,   459,   460,   156,
1646 >    1255,   255,   157,   158,   159,   160,   161,   162,   163,   286,
1647 >     325,   326,   497,   362,   503,   363,   327,   461,   402,   294,
1648 >    1041,   579,   256,   364,  1039,  1258,   257,   400,  1096,  1259,
1649 >     300,   301,   504,   579,   258,   365,   392,   259,   260,   580,
1650 >     593,   764,   526,   594,   567,   288,   305,   322,   544,   474,
1651 >    1042,   580,   810,   581,   600,   505,   792,   366,   164,   165,
1652 >     475,  -127,  1229,   328,   589,   581,   494,   261,   398,   166,
1653 >     167,   733,  1260,   491,   498,   607,  1261,   852,   168,   367,
1654 >     169,   329,   330,   506,   452,   527,   659,   331,   760,  1271,
1655 >      73,   332,   462,  1272,  1251,  1252,  1253,   333,   368,   498,
1656 >    1137,   722,   593,   802,   567,   594,   334,   335,   336,   302,
1657 >    1138,  1273,   303,   369,   288,  1274,   503,   507,   337,   304,
1658 >     307,    74,   308,   665,   574,   528,   546,  1040,   841,    75,
1659 >     401,   844,  1139,   846,   504,   508,   309,   741,   851,   338,
1660 >     310,   262,   311,   263,   264,   475,   265,   266,   267,  1275,
1661 >     312,   313,   572,  1276,   726,   402,   869,   505,  1282,   314,
1662 >     315,   604,  1283,   370,   563,   371,   372,   124,   316,   317,
1663 >     529,   318,   125,   126,  1311,   127,   128,   339,  1312,   319,
1664 >     129,   320,   321,   397,   407,   506,   408,   655,   409,   603,
1665 >     130,   131,   132,    76,  1300,   410,  1301,   411,   412,   413,
1666 >     133,   576,   414,   134,   135,   136,   415,   416,   417,   418,
1667 >     419,   509,   137,   420,   421,  1041,   422,   423,  1117,   507,
1668 >     424,   425,   426,   427,   428,   510,   429,   637,   511,   138,
1669 >     430,  1151,   431,   434,   435,   436,   437,   508,   512,  1302,
1670 >     139,   438,   513,   140,   141,  1042,  1118,   754,  1152,  1153,
1671 >     439,   142,   440,   441,   442,   443,  1303,   143,   444,   144,
1672 >    1154,   145,   454,   146,   445,   147,   148,  1140,   446,   447,
1673 >     448,   449,   450,   451,   480,   492,   149,  1141,   493,  1119,
1674 >     455,   535,   150,   151,   536,   152,   153,   154,  1304,  1305,
1675 >     155,  1058,  1059,  1060,  1061,  1062,  1063,  1064,   537,  1155,
1676 >    1156,   538,  1157,   456,   539,   540,   541,   542,  1120,  1121,
1677 >     543,   547,   548,   509,  1122,   156,   601,   549,   157,   158,
1678 >     159,   160,   161,   162,   163,   602,   550,   510,  1158,   551,
1679 >     511,   457,   552,   481,   553,   554,  1159,   605,   555,  1123,
1680 >     512,   482,   556,   483,   513,   251,  1306,   557,   558,   559,
1681 >     560,   605,  1307,   561,   562,   573,   588,   608,   609,  1160,
1682 >     613,  1161,  1162,   816,   817,   818,   819,   820,   821,   822,
1683 >     616,   617,   618,   252,   164,   165,   253,   619,  1163,   620,
1684 >     357,   621,   358,   458,   359,   166,   167,   622,   623,   624,
1685 >     626,   459,   460,   627,   168,  1164,   169,   628,   360,   484,
1686 >    1165,   629,  1279,   324,  1166,   254,   630,   631,  1167,  1124,
1687 >     632,   461,   633,  1168,   634,   255,   635,  1169,   636,   325,
1688 >     326,   361,   640,   639,   641,   327,   661,  1170,   642,  1171,
1689 >    1172,   643,  1173,   644,   669,  1125,   256,   645,   647,   362,
1690 >     257,   363,   648,   649,   650,   651,   652,   653,   258,   364,
1691 >    1174,   259,   260,   654,   657,   658,   662,   663,  1175,   667,
1692 >     664,   365,   672,     2,     3,   673,   676,     4,   677,   675,
1693 >     678,   679,   328,   680,   682,   683,   684,   685,   687,     5,
1694 >     688,   261,     6,   366,   689,     7,   462,   690,   691,   692,
1695 >     329,   330,   693,   694,     8,   697,   331,   698,   699,   700,
1696 >     332,   701,   702,   703,   704,   367,   333,     9,   705,   706,
1697 >     710,  1213,   711,    10,    11,   334,   335,   336,   712,   714,
1698 >     713,   735,   736,   765,   368,   715,   762,   337,   767,   717,
1699 >     772,   928,    12,   728,   718,   737,    13,   738,   929,   369,
1700 >     930,   931,   719,   720,   721,   724,    14,   725,   338,   729,
1701 >     730,   732,   739,   740,   743,   262,   744,   263,   264,   745,
1702 >     265,   266,   267,   747,   748,    15,    16,   750,   751,   752,
1703 >    1180,  1214,   753,   230,   756,   757,   758,  1181,   759,  1182,
1704 >    1183,    17,   771,   763,   766,   768,   339,   769,   770,   370,
1705 >     774,   371,   372,   773,   775,  1215,   776,   777,    18,   778,
1706 >     779,   780,   781,   782,  1216,   783,   784,   785,   231,   905,
1707 >      19,    20,   794,  1217,   786,   787,   906,   788,   789,   232,
1708 >     233,   234,   790,   795,   235,   236,   796,   804,    21,   237,
1709 >     238,   239,   797,   839,   798,   840,  1218,   847,  1219,  1220,
1710 >     799,    22,   800,   801,   805,   806,    23,   932,   933,   934,
1711 >     807,    24,   935,   936,    25,   937,   938,   809,   939,  1221,
1712 >     940,   812,  1236,   941,   813,   942,   943,  1222,   814,   842,
1713 >     815,   944,   825,   826,   827,   945,   828,   829,   830,   946,
1714 >     947,   948,   831,   832,   833,   949,  1184,  1185,  1186,   834,
1715 >     950,  1187,  1188,   835,  1189,  1190,   843,  1191,   836,  1192,
1716 >     845,   837,  1193,   838,  1194,  1195,   848,   849,   850,   852,
1717 >    1196,   860,   856,   859,  1197,   855,   861,   862,  1198,  1199,
1718 >    1200,   866,  1237,   872,  1201,   907,   908,   909,   863,  1202,
1719 >     910,   911,   864,   912,   913,    82,   914,   865,   915,   867,
1720 >     868,   916,   870,   917,   918,   871,  1238,   873,   874,   919,
1721 >     875,   876,   877,   920,   878,  1239,   971,   921,   922,   923,
1722 >     879,    83,    84,   924,  1240,   880,   881,   882,   925,    85,
1723 >     883,   884,   885,   886,   887,    86,   888,   889,   890,   891,
1724 >     892,   893,   894,   895,   896,   897,   898,  1241,   899,  1242,
1725 >    1243,   900,   901,   902,   903,   904,   953,   974,    87,    88,
1726 >      89,    90,   954,   955,   956,   975,   957,   958,   959,   960,
1727 >    1244,   961,   962,    91,    92,    93,   963,   973,  1245,   976,
1728 >      94,    95,    96,   972,    97,   964,   965,   977,   978,   980,
1729 >     981,   966,   967,   968,   969,   970,   979,   982,   983,   984,
1730 >     986,   989,   985,   992,   990,   993,   995,   991,   996,   998,
1731 >     994,   999,  1001,  1002,  1003,   997,  1004,  1005,  1000,  1006,
1732 >    1007,  1009,  1008,  1010,  1011,  1012,  1013,  1014,  1015,  1016,
1733 >    1017,  1018,  1019,  1020,  1035,  1021,  1022,  1023,  1024,  1048,
1734 >    1025,  1026,  1027,  1028,  1029,  1030,  1031,  1032,  1033,  1034,
1735 >    1049,  1037,  1038,  1036,  1050,  1051,  1052,  1053,  1054,  1056,
1736 >    1057,  1055,  1065,  1145,  1066,  1067,  1072,  1073,  1074,  1075,
1737 >    1076,  1077,  1078,  1079,  1080,  1086,  1087,  1088,  1089,  1090,
1738 >    1091,  1092,  1093,  1094,  1099,  1262,  1277,  1100,  1101,  1102,
1739 >    1103,  1104,  1105,  1288,   306,  1290,  1289,  1106,  1107,  1108,
1740 >    1109,  1110,  1115,  1116,  1291,  1292,  1128,  1129,  1130,  1293,
1741 >    1131,   742,  1144,  1132,  1133,   803,  1134,   575,  1313,  1135,
1742 >    1230,   755,  1295,  1136,  1294,  1284,   638,  1287,  1263,  1147,
1743 >    1148,  1149,  1150,  1178,  1179,  1205,  1206,  1207,  1208,  1209,
1744 >     495,  1210,  1211,  1212,  1225,   734,  1286,   723,  1231,  1226,
1745 >    1227,  1232,  1233,  1234,  1235,  1248,  1310,  1264,   811,   761,
1746 >     793,  1296,   727,  1265,  1266,   399,  1285,  1267,  1268,  1281,
1747 >     666,  1269,  1270,  1280,  1297,  1298,  1299,   453,   323,  1257,
1748 >    1256,     0,     0,     0,   564,   545,     0,     0,     0,     0,
1749 >       0,     0,     0,   656,     0,     0,     0,     0,     0,     0,
1750         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1751 +       0,     0,     0,     0,   660,     0,     0,     0,     0,     0,
1752         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1753 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1778 <       0,   660,     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,   670
1753 >       0,     0,   590
1754   };
1755  
1756   static const yytype_int16 yycheck[] =
1757   {
1758 <     640,   641,   308,     8,   231,     1,   231,   313,     1,   315,
1759 <     316,     1,     1,     6,     7,     1,     9,    10,     1,   231,
1760 <       1,    14,     1,     1,   211,   229,   230,     1,   215,    22,
1761 <      23,   211,     1,     1,     1,   215,     1,    50,    34,    32,
1762 <       1,     1,    35,    36,    37,   178,   179,    43,   231,    42,
1763 <      46,    47,    11,    12,    13,    51,    52,    53,   108,   231,
1764 <     231,    30,     1,    41,    57,    58,     1,   229,     1,    38,
1765 <       1,   233,   231,    66,     1,    61,    69,    70,     1,    75,
1766 <       1,     1,    61,     1,    19,    78,   231,     1,     1,   231,
1767 <       1,   229,    85,    61,    87,   233,    89,   231,    91,    77,
1768 <      93,    94,    41,   409,    39,   411,   412,     1,    98,    98,
1769 <      77,   124,    77,   106,    46,    98,   422,    98,   111,   112,
1770 <     113,   427,   115,   116,   117,     1,   231,   120,    63,    98,
1771 <      61,   437,   438,    54,    95,    95,     1,   229,    77,   125,
1772 <      61,   233,    63,   449,   125,   451,   452,   125,   229,   108,
1773 <      26,   125,   233,   146,    30,   205,   229,   125,   119,   119,
1774 <     233,   231,   231,   156,   157,   158,   159,   160,   161,   162,
1775 <     231,    98,     1,     1,     1,    98,   231,   229,    98,    55,
1776 <      98,   233,   231,   118,   231,    98,   125,    98,    64,    17,
1777 <      18,   126,   127,    21,   199,    24,    25,   231,    27,    28,
1778 <     231,   122,   229,   231,    33,   125,   233,   174,   231,   174,
1779 <      86,   125,   147,   229,    90,   229,   231,   233,   229,   212,
1780 <     213,   214,    98,   216,   217,   101,   102,   229,     1,   219,
1781 <      59,    60,   225,    98,   230,    63,   219,   230,   232,   222,
1782 <     546,   174,    71,    72,    73,     1,    19,     3,   222,     5,
1783 <      79,    80,    80,    81,    82,    83,    84,   133,   190,   232,
1784 <      88,   230,   230,    19,    92,   230,    39,   199,   195,   230,
1785 <      98,    98,   195,   229,   150,   104,   105,   153,   154,   155,
1786 <     174,   109,   110,    39,   232,   229,   232,   222,   221,   233,
1787 <      63,   230,   219,   121,   232,   230,   219,   230,    54,   230,
1788 <      56,   219,   167,   230,   222,   229,   219,    63,   222,   230,
1789 <     230,   174,   230,     1,   108,   143,   230,   230,    74,   230,
1790 <     185,   627,   232,     1,   200,    98,   632,   221,   232,   635,
1791 <       1,    19,    65,   639,    67,   232,   201,   229,   123,   229,
1792 <     167,   233,    98,   233,     1,   118,   232,   223,   224,   232,
1793 <     232,    39,    30,   232,   230,  1093,  1094,  1095,   185,   187,
1794 <      38,   134,    19,   232,   232,   230,   122,   824,   825,   826,
1795 <     827,   828,   829,   830,   201,    63,   232,   232,   151,   152,
1796 <     232,   114,    39,    54,   232,   232,   142,   232,   232,   232,
1797 <      61,     1,    63,   232,   232,   151,     6,     7,   131,     9,
1798 <      10,   230,   230,   229,    14,   123,    63,   232,   232,   232,
1799 <      98,   232,    22,    23,   232,   232,   232,   232,   232,   232,
1800 <      98,   232,    32,   232,   232,    35,    36,    37,   232,   202,
1801 <     118,   232,    42,   232,   232,   232,   232,   170,   171,   232,
1802 <     232,   232,   232,   232,   200,   232,   134,    57,    58,   222,
1803 <     232,   122,   232,   226,   232,   232,    66,   230,   232,    69,
1804 <      70,   118,   232,   151,   152,   232,   232,   223,    78,   126,
1805 <     127,   232,     4,   232,   230,    85,   123,    87,   232,    89,
1806 <     232,    91,   232,    93,    94,   232,   232,   232,    20,   222,
1807 <     147,    15,   232,   232,   227,   232,   106,   232,   232,    31,
1808 <     232,   111,   112,   113,   232,   115,   116,   117,   232,   232,
1809 <     120,   232,   232,   232,   202,   232,    40,   232,   232,   232,
1810 <     232,   232,   232,   232,     1,   232,     3,   232,     5,    67,
1811 <     232,     1,   232,    65,   222,    67,   146,   232,   226,   108,
1812 <     232,   108,    19,   108,    68,   108,   156,   157,   158,   159,
1813 <     160,   161,   162,   211,   108,   108,    26,   108,   108,   211,
1814 <      30,   211,    39,    95,   229,   222,   135,   136,   137,   138,
1815 <     139,   140,   141,   232,   229,    99,   100,    54,   232,    56,
1816 <     123,   232,   211,   107,   232,    55,    63,   232,   232,   232,
1817 <     232,   232,  1232,   131,    64,   232,   128,    74,   130,   232,
1818 <     232,   232,   212,   213,   214,   232,   216,   217,   132,   232,
1819 <     232,   232,   232,   232,   232,   225,    86,   149,   232,   232,
1820 <      90,    98,   229,   232,   148,   163,   232,   232,    98,   232,
1821 <     232,   101,   102,   171,   232,   232,   232,   232,   232,   171,
1822 <     232,   108,   180,   211,   176,   122,   108,   211,   180,   108,
1823 <     108,   108,   184,   211,   211,   211,   108,   189,   108,   108,
1824 <     108,   193,   108,   133,   108,   142,   204,   108,   206,   207,
1825 <       1,   108,   204,   232,   151,   207,    46,   209,    48,    49,
1826 <     150,     1,   220,   153,   154,   155,   210,   232,   220,   227,
1827 <       0,     1,   211,   211,     4,   227,   211,    17,    18,   211,
1828 <     211,    21,   211,    34,   228,   211,    16,   211,   211,    19,
1829 <      20,   211,    43,   108,   211,    46,    47,   211,   232,    29,
1830 <      51,    52,    53,   200,   229,   232,   123,   229,   229,   123,
1831 <     200,    41,   123,   232,    44,    45,   232,   232,   123,   232,
1832 <     232,   232,   232,    63,    75,   232,   223,   232,   232,   229,
1833 <     229,   232,    62,   223,   224,    65,   232,   229,   232,   232,
1834 <      80,    81,    82,    83,    84,   229,    76,    46,    88,    48,
1835 <      49,   232,    92,   211,   108,   211,   232,   232,    98,   232,
1836 <     211,   232,   211,   211,   211,   232,    96,    97,   123,   109,
1837 <     110,   211,   232,   232,   164,   165,   166,   232,   232,   169,
1838 <     170,   121,   172,   173,   114,   175,   229,   177,    46,   108,
1839 <     180,   108,   182,   183,   123,   123,   123,   123,   188,   123,
1840 <     123,   131,   192,   143,   229,   123,   196,   197,   198,   123,
1841 <     123,   123,   123,   203,   144,   145,   229,   211,   208,   229,
1842 <     232,   123,    67,   231,   108,   229,   232,   108,   108,   232,
1843 <     232,   232,   229,   229,   232,   108,   229,   232,   168,   108,
1844 <     229,   229,   229,   229,   229,   229,   229,   187,   229,   229,
1845 <     229,   181,   229,   229,   229,   229,   186,   229,   229,   232,
1846 <     108,   191,   108,   123,   194,   164,   165,   166,   108,   108,
1847 <     169,   170,   108,   172,   173,   211,   175,   229,   177,   123,
1848 <     123,   180,   123,   182,   183,   123,   131,   232,   123,   188,
1849 <     123,   108,   123,   192,   123,   123,   123,   196,   197,   198,
1850 <     123,   123,   123,   123,   203,   108,   164,   165,   166,   208,
1851 <     232,   169,   170,   229,   172,   173,   211,   175,   163,   177,
1852 <       1,   229,   180,   229,   182,   183,   171,   123,   229,   229,
1853 <     188,   229,   229,   229,   192,   180,   229,   229,   196,   197,
1854 <     198,   229,   229,    24,    25,   203,    27,    28,   123,   123,
1855 <     208,   229,    33,   229,   229,   229,   123,   229,   229,   204,
1856 <     123,   206,   207,   229,   229,   229,   229,   229,   229,   123,
1857 <     229,   123,   229,   229,   229,   220,   229,   229,    59,    60,
1858 <     229,   123,   227,   123,   108,   232,   123,   229,   123,   123,
1859 <      71,    72,    73,   123,   123,   229,   123,   229,    79,    80,
1860 <     123,   123,   232,   229,   229,   229,   211,   123,   123,   123,
1861 <     229,   229,   123,   229,   229,   229,   229,   229,   229,   229,
1862 <     229,   229,   229,   104,   105,   229,   211,   229,   229,   229,
1863 <     229,   229,   229,   123,   123,   229,   229,   232,   229,   229,
1864 <     229,   229,   229,   229,   123,   229,   229,   229,   229,   229,
1865 <     229,   229,   229,   229,   123,   123,   229,   229,   229,   229,
1866 <     229,   229,   123,   229,   229,   229,   123,   229,   108,   229,
1867 <     229,   232,   229,   229,   232,   123,   229,   232,   229,   229,
1868 <     229,   229,   229,   229,   229,   229,   229,   129,   229,    77,
1869 <     229,   229,   129,   229,   129,   586,   229,   229,   229,  1053,
1870 <    1311,   229,   501,   229,   229,  1276,  1274,  1255,   229,   229,
1871 <     229,   229,   229,  1155,  1266,   465,   229,   229,   488,   229,
1872 <     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1873 <     229,   229,   229,   229,   229,   229,   229,   229,   218,   517,
1874 <    1264,   229,   233,   229,   229,   229,   229,   229,  1285,   341,
1875 <     572,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1876 <     223,   599,   229,  1278,   229,   229,   232,   229,   534,   229,
1877 <     229,   229,  1260,   229,   478,   118,   169,   229,   229,   234,
1878 <     234,   234,   232,   229,   229,    97,  1125,  1123,   394,    -1,
1879 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   239,    -1,
1880 <      -1,    -1,   289,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1909 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   267,    -1,
1910 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1911 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1912 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1913 <     297,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,
1918 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1919 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1758 >     635,   636,   308,     1,     1,     1,   312,   313,   314,     1,
1759 >     316,   317,     1,     1,   233,   234,   233,   235,   112,     1,
1760 >     237,     1,   235,     1,    56,     1,     1,   235,     1,     8,
1761 >      27,    28,   235,     1,    32,     1,     1,   235,    35,   235,
1762 >      36,     1,    40,     1,    41,     1,     6,     7,     1,     9,
1763 >      10,    47,    48,    49,    14,   233,    52,    53,     1,   237,
1764 >       1,    57,    58,    59,    24,    25,    26,    64,    65,    66,
1765 >      67,     1,   235,     1,    34,   235,    19,    37,    38,    39,
1766 >       1,     1,    79,    80,    81,   235,    46,    60,    44,    86,
1767 >      87,    88,    68,    90,     1,    68,   128,    70,     1,    42,
1768 >      68,   235,   408,    63,   410,   411,   104,   201,   414,   233,
1769 >      68,     1,   104,   237,    74,   421,   104,    77,    78,     1,
1770 >     426,     1,   104,   101,   104,    85,   235,    70,    84,   435,
1771 >     436,    91,   235,    93,   235,    95,   101,    97,   104,    99,
1772 >     100,   447,   448,   449,     1,   123,     3,   235,     5,    29,
1773 >     110,   104,    32,   126,   129,   235,   116,   117,   123,   119,
1774 >     120,   121,    19,   104,   124,    68,    11,    12,    13,   175,
1775 >     176,   129,   235,   129,   104,   235,   104,    84,   235,   122,
1776 >     235,    61,   171,   104,     1,    42,   233,   130,   131,   149,
1777 >     237,    71,   152,   153,   154,   155,   156,   157,   158,   235,
1778 >      17,    18,    84,    60,     1,    62,    23,   150,   129,   235,
1779 >     192,   164,    92,    70,     1,   233,    96,     1,   197,   237,
1780 >     235,   233,    19,   164,   104,    82,   129,   107,   108,   182,
1781 >     222,   537,     1,   225,   222,   224,   234,   234,   234,   129,
1782 >     222,   182,   234,   196,   127,    42,   234,   104,   208,   209,
1783 >     225,   171,   234,    70,   234,   196,   234,   137,   234,   219,
1784 >     220,   234,   233,   233,   171,   207,   237,   112,   228,   126,
1785 >     230,    88,    89,    70,   234,    44,   234,    94,   234,   233,
1786 >       1,    98,   225,   237,  1081,  1082,  1083,   104,   145,   171,
1787 >      20,   234,   222,   234,   222,   225,   113,   114,   115,   236,
1788 >      30,   233,   236,   160,   224,   237,     1,   104,   125,   236,
1789 >     236,    32,   236,   234,   234,    84,   233,   104,   624,    40,
1790 >     104,   627,    52,   629,    19,   122,   236,   234,   634,   146,
1791 >     236,   211,   236,   213,   214,   225,   216,   217,   218,   233,
1792 >     236,   236,   233,   237,   234,   129,   652,    42,   233,   236,
1793 >     236,   112,   237,   210,   234,   212,   213,     1,   236,   236,
1794 >     129,   236,     6,     7,   233,     9,    10,   184,   237,   236,
1795 >      14,   236,   236,   236,   236,    70,   236,   234,   236,   233,
1796 >      24,    25,    26,   104,    73,   236,    75,   236,   236,   236,
1797 >      34,   171,   236,    37,    38,    39,   236,   236,   236,   236,
1798 >     236,   198,    46,   236,   236,   192,   236,   236,    15,   104,
1799 >     236,   236,   236,   236,   236,   212,   236,   234,   215,    63,
1800 >     236,     4,   236,   236,   236,   236,   236,   122,   225,   118,
1801 >      74,   236,   229,    77,    78,   222,    43,   234,    21,    22,
1802 >     236,    85,   236,   236,   236,   236,   135,    91,   236,    93,
1803 >      33,    95,     1,    97,   236,    99,   100,   187,   236,   236,
1804 >     236,   236,   236,   236,     1,   236,   110,   197,   236,    76,
1805 >      19,   236,   116,   117,   236,   119,   120,   121,   167,   168,
1806 >     124,   816,   817,   818,   819,   820,   821,   822,   236,    72,
1807 >      73,   236,    75,    42,   236,   236,   236,   236,   105,   106,
1808 >     236,   236,   236,   198,   111,   149,   127,   236,   152,   153,
1809 >     154,   155,   156,   157,   158,   127,   236,   212,   101,   236,
1810 >     215,    70,   236,    60,   236,   236,   109,   112,   236,   136,
1811 >     225,    68,   236,    70,   229,     1,   225,   236,   236,   236,
1812 >     236,   112,   231,   236,   236,   236,   236,   207,   112,   132,
1813 >     112,   134,   135,   138,   139,   140,   141,   142,   143,   144,
1814 >     112,   112,   112,    29,   208,   209,    32,   112,   151,   233,
1815 >       1,   233,     3,   122,     5,   219,   220,   236,   236,   236,
1816 >     236,   130,   131,   236,   228,   168,   230,   236,    19,   126,
1817 >     173,   236,  1227,     1,   177,    61,   236,   236,   181,   206,
1818 >     236,   150,   236,   186,   236,    71,   236,   190,   236,    17,
1819 >      18,    42,   236,   233,   236,    23,   127,   200,   236,   202,
1820 >     203,   236,   205,   236,   112,   232,    92,   236,   236,    60,
1821 >      96,    62,   236,   236,   236,   236,   236,   236,   104,    70,
1822 >     223,   107,   108,   236,   236,   236,   233,   236,   231,   207,
1823 >     236,    82,   207,     0,     1,   112,   112,     4,   112,   207,
1824 >     112,   207,    70,   207,   112,   112,   112,   112,   112,    16,
1825 >     112,   137,    19,   104,   112,    22,   225,   112,   207,   236,
1826 >      88,    89,   236,   207,    31,   207,    94,   207,   207,   207,
1827 >      98,   207,   207,   207,   207,   126,   104,    44,   207,   112,
1828 >     207,    75,   112,    50,    51,   113,   114,   115,   233,   236,
1829 >     233,   127,   127,   127,   145,   236,   207,   125,   127,   236,
1830 >     112,    45,    69,   233,   236,   233,    73,   233,    52,   160,
1831 >      54,    55,   236,   236,   236,   236,    83,   236,   146,   236,
1832 >     236,   236,   236,   236,   233,   211,   236,   213,   214,   236,
1833 >     216,   217,   218,   236,   236,   102,   103,   236,   236,   236,
1834 >      45,   135,   236,     1,   233,   236,   236,    52,   236,    54,
1835 >      55,   118,   233,   207,   207,   207,   184,   207,   207,   210,
1836 >     207,   212,   213,   127,   127,   159,   112,   112,   135,   127,
1837 >     127,   127,   127,   127,   168,   127,   127,   127,    36,    45,
1838 >     147,   148,   207,   177,   127,   127,    52,   233,   233,    47,
1839 >      48,    49,   236,   233,    52,    53,   235,   127,   165,    57,
1840 >      58,    59,   233,   112,   236,   112,   200,   127,   202,   203,
1841 >     236,   178,   236,   236,   233,   233,   183,   161,   162,   163,
1842 >     236,   188,   166,   167,   191,   169,   170,   236,   172,   223,
1843 >     174,   233,    75,   177,   233,   179,   180,   231,   233,   236,
1844 >     233,   185,   233,   233,   233,   189,   233,   233,   233,   193,
1845 >     194,   195,   233,   233,   233,   199,   161,   162,   163,   233,
1846 >     204,   166,   167,   233,   169,   170,   112,   172,   233,   174,
1847 >     112,   233,   177,   233,   179,   180,   112,   112,   112,   112,
1848 >     185,   207,   127,   127,   189,   233,   127,   127,   193,   194,
1849 >     195,   112,   135,   233,   199,   161,   162,   163,   236,   204,
1850 >     166,   167,   127,   169,   170,     1,   172,   127,   174,   127,
1851 >     127,   177,   127,   179,   180,   127,   159,   127,   127,   185,
1852 >     233,   233,   127,   189,   127,   168,   127,   193,   194,   195,
1853 >     233,    27,    28,   199,   177,   233,   233,   233,   204,    35,
1854 >     233,   233,   233,   233,   233,    41,   233,   233,   233,   233,
1855 >     233,   233,   233,   233,   233,   233,   233,   200,   233,   202,
1856 >     203,   233,   233,   233,   233,   233,   233,   127,    64,    65,
1857 >      66,    67,   233,   233,   233,   112,   233,   233,   233,   233,
1858 >     223,   233,   233,    79,    80,    81,   233,   236,   231,   127,
1859 >      86,    87,    88,   207,    90,   233,   233,   127,   127,   127,
1860 >     127,   233,   233,   233,   233,   233,   233,   233,   127,   127,
1861 >     112,   233,   236,   127,   233,   127,   127,   233,   207,   127,
1862 >     233,   127,   127,   207,   127,   236,   127,   233,   236,   127,
1863 >     127,   233,   127,   233,   233,   233,   233,   233,   233,   233,
1864 >     233,   233,   233,   233,   127,   233,   233,   233,   233,   127,
1865 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1866 >     127,   233,   233,   236,   127,   127,   233,   233,   127,   127,
1867 >     233,   236,   233,   237,   233,   233,   233,   233,   233,   233,
1868 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1869 >     233,   233,   233,   233,   233,   112,   127,   233,   233,   233,
1870 >     233,   233,   233,   133,    77,   133,   135,   233,   233,   233,
1871 >     233,   233,   233,   233,   135,   133,   233,   233,   233,   133,
1872 >     233,   499,   221,   233,   233,   582,   233,   289,  1312,   233,
1873 >    1043,   514,  1274,   233,  1272,  1250,   340,  1261,  1145,   233,
1874 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1875 >     223,   233,   233,   233,   233,   486,  1259,   463,   233,   236,
1876 >     236,   233,   233,   233,   233,   233,  1283,   233,   595,   530,
1877 >     568,  1276,   476,   238,   238,   120,  1255,   238,   238,   233,
1878 >     403,   238,   238,   236,   233,   233,   233,   170,    98,  1114,
1879 >    1112,    -1,    -1,    -1,   268,   240,    -1,    -1,    -1,    -1,
1880 >      -1,    -1,    -1,   373,    -1,    -1,    -1,    -1,    -1,    -1,
1881        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1882 <      -1,   375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1882 >      -1,    -1,    -1,    -1,   393,    -1,    -1,    -1,    -1,    -1,
1883        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1884 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1924 <      -1,   404
1884 >      -1,    -1,   297
1885   };
1886  
1887    /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1888       symbol of state STATE-NUM.  */
1889   static const yytype_uint16 yystos[] =
1890   {
1891 <       0,   236,     0,     1,     4,    16,    19,    20,    29,    41,
1892 <      44,    45,    62,    65,    76,    96,    97,   114,   131,   144,
1893 <     145,   168,   181,   186,   191,   194,   237,   242,   247,   267,
1894 <     273,   279,   287,   301,   322,   346,   360,   375,   382,   386,
1895 <     396,   405,   426,   432,   438,   442,   448,   503,   520,   229,
1896 <     230,   231,   231,   323,   406,   433,   231,   443,   231,   361,
1897 <     427,   347,   231,   274,   302,   376,   231,   231,   397,   231,
1898 <     280,   231,   387,     1,    30,    38,    98,   268,   269,   270,
1899 <     271,   272,     1,    24,    25,    27,    28,    33,    59,    60,
1900 <      71,    72,    73,    79,    80,   104,   105,   504,   505,   506,
1901 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
1902 <     517,   518,   519,   231,   231,   231,     1,    61,   439,   440,
1903 <     441,   231,     1,     6,     7,     9,    10,    14,    22,    23,
1904 <      32,    35,    36,    37,    42,    57,    58,    66,    69,    70,
1905 <      78,    85,    87,    89,    91,    93,    94,   106,   111,   112,
1906 <     113,   115,   116,   117,   120,   146,   156,   157,   158,   159,
1907 <     160,   161,   162,   212,   213,   214,   216,   217,   225,   449,
1891 >       0,   240,     0,     1,     4,    16,    19,    22,    31,    44,
1892 >      50,    51,    69,    73,    83,   102,   103,   118,   135,   147,
1893 >     148,   165,   178,   183,   188,   191,   241,   246,   251,   270,
1894 >     276,   282,   290,   304,   324,   346,   360,   375,   382,   386,
1895 >     396,   405,   427,   433,   439,   443,   449,   503,   521,   233,
1896 >     234,   235,   235,   325,   406,   434,   235,   444,   235,   361,
1897 >     428,   347,   235,   277,   305,   376,   235,   235,   397,   235,
1898 >     283,   235,   387,     1,    32,    40,   104,   271,   272,   273,
1899 >     274,   275,     1,    27,    28,    35,    41,    64,    65,    66,
1900 >      67,    79,    80,    81,    86,    87,    88,    90,   504,   505,
1901 >     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
1902 >     516,   517,   518,   519,   520,   235,   235,   235,     1,    68,
1903 >     440,   441,   442,   235,     1,     6,     7,     9,    10,    14,
1904 >      24,    25,    26,    34,    37,    38,    39,    46,    63,    74,
1905 >      77,    78,    85,    91,    93,    95,    97,    99,   100,   110,
1906 >     116,   117,   119,   120,   121,   124,   149,   152,   153,   154,
1907 >     155,   156,   157,   158,   208,   209,   219,   220,   228,   230,
1908       450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
1909       460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
1910       470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
1911       480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
1912 <     490,   491,   492,   496,   500,   501,   502,   231,   231,   231,
1913 <       1,    95,   119,   243,   244,   245,   246,   231,   231,   231,
1914 <       1,    34,    43,    46,    47,    51,    52,    53,    75,   521,
1915 <     522,   523,   524,   525,   526,   527,   528,   529,   530,     1,
1916 <      26,    30,    55,    64,    86,    90,    98,   101,   102,   133,
1917 <     150,   153,   154,   155,   200,   223,   224,   248,   249,   250,
1918 <     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
1919 <     261,   262,   263,   264,   265,   266,   231,     1,   221,   288,
1920 <     289,   290,   291,   292,   231,     1,    98,   383,   384,   385,
1921 <     231,   229,   232,   232,   232,   230,   269,   232,   232,   232,
1922 <     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1923 <     232,   230,   505,     1,    17,    18,    21,    63,    80,    81,
1924 <      82,    83,    84,    88,    92,    98,   109,   110,   121,   143,
1925 <     187,   324,   325,   326,   327,   328,   329,   330,   331,   332,
1926 <     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
1927 <       1,     3,     5,    19,    39,    54,    56,    63,    74,    98,
1928 <     122,   142,   151,   200,   223,   407,   408,   409,   410,   411,
1929 <     412,   413,   414,   415,   416,   417,   421,   422,   423,   424,
1930 <     425,     1,    61,   125,   434,   435,   436,   437,   232,   230,
1931 <     440,     1,    98,   125,   444,   445,   446,   447,   232,   232,
1932 <     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1933 <     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1934 <     232,   232,   232,   497,   232,   493,   232,   232,   232,   232,
1935 <     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1936 <     232,   232,   232,   232,   230,   450,     1,    19,    39,    63,
1937 <     118,   126,   127,   147,   222,   362,   363,   364,   365,   366,
1938 <     367,   368,   372,   373,   374,     1,   125,   222,   428,   429,
1939 <     430,   431,     1,    54,    61,    63,   122,   348,   352,   353,
1940 <     354,   358,   359,   229,   232,   232,   230,   244,     1,    77,
1941 <     174,   275,   276,   277,   278,     1,    19,    39,    63,    98,
1942 <     118,   134,   151,   152,   202,   222,   226,   303,   304,   305,
1943 <     306,   307,   308,   309,   310,   311,   312,   313,   314,   318,
1944 <       1,    41,    77,   125,   377,   378,   379,   380,   381,   232,
1945 <     232,   232,   232,   232,   232,   232,   232,   230,   522,   229,
1946 <     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1947 <     232,   232,   232,   232,   232,   232,   232,   230,   249,     1,
1948 <      98,   219,   398,   399,   400,   401,   229,   232,   230,   289,
1949 <     174,     1,    98,   167,   185,   201,   281,   282,   283,   284,
1950 <     285,   286,   232,   230,   384,     1,    98,   219,   222,   388,
1951 <     389,   390,   391,   392,   123,   123,   123,   229,   108,   108,
1952 <     239,   108,   108,   211,   108,   239,   108,   239,   239,   108,
1953 <     108,   211,   211,   229,   229,   232,   232,   232,   343,   232,
1954 <     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1955 <     232,   232,   230,   325,   229,   232,   232,   232,   232,   232,
1956 <     232,   418,   232,   232,   232,   232,   232,   232,   232,   230,
1957 <     408,   232,   232,   230,   435,   123,   229,   232,   232,   230,
1958 <     445,   211,   239,   108,   239,   239,   211,   108,   211,   108,
1959 <     108,   108,   211,   211,   211,   239,   108,   108,   108,   108,
1960 <     239,   108,   108,   108,   108,   211,   232,   211,   232,   211,
1961 <     239,   239,   211,   211,   211,   211,   215,   211,   215,   211,
1962 <     211,   211,   211,   108,   239,   211,   239,   239,   211,   229,
1963 <     229,   232,   232,   369,   232,   232,   232,   232,   232,   230,
1964 <     363,   232,   232,   230,   429,   229,   232,   232,   349,   232,
1965 <     230,   353,   123,   123,   229,   229,   232,   232,   230,   276,
1966 <     229,   232,   232,   319,   232,   232,   232,   232,   232,   315,
1967 <     232,   232,   230,   304,   229,   232,   232,   232,   230,   378,
1968 <     211,   211,   211,   123,   211,   211,   211,   239,   229,   108,
1969 <     123,   211,   123,   108,   108,   123,   123,   123,   123,   123,
1970 <     123,   123,   123,   123,   123,   123,   229,   229,   232,   402,
1971 <     230,   399,   211,   229,   231,   229,   232,   232,   232,   232,
1972 <     230,   282,   123,   229,   229,   232,   393,   232,   230,   389,
1973 <     229,   229,   229,   229,   135,   136,   137,   138,   139,   140,
1974 <     141,   238,   239,   229,   229,   229,   229,   229,   229,   229,
1975 <     229,   229,   229,   229,   229,   229,   108,   108,   239,   232,
1976 <     108,   108,   108,   239,   108,   108,   239,   123,   108,   108,
1977 <     239,   108,   241,   241,   229,   123,   178,   179,   123,   211,
1978 <     123,   123,   232,   123,   123,   108,   123,   123,   123,   123,
1979 <     229,   123,   123,   229,   229,   123,   123,   229,   229,   229,
1980 <     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1981 <     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1982 <     229,   229,   229,    46,   164,   165,   166,   169,   170,   172,
1983 <     173,   175,   177,   180,   182,   183,   188,   192,   196,   197,
1984 <     198,   203,   208,   498,   499,   229,    46,    48,    49,   164,
1985 <     165,   166,   169,   170,   172,   173,   175,   177,   180,   182,
1986 <     183,   188,   192,   196,   197,   198,   203,   208,   494,   495,
1987 <     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1988 <     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1989 <     123,   211,   232,   123,   108,   123,   123,   123,   229,   123,
1990 <     123,   229,   123,   123,   232,   108,   356,   357,   229,   229,
1991 <     229,   123,   123,   229,   123,   211,   232,   123,   123,   123,
1992 <     123,   211,   232,   123,   123,   229,   123,   123,   123,   229,
1993 <     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1994 <     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1995 <     229,   229,   229,   229,   229,   123,   232,   229,   229,     1,
1996 <      98,   195,   219,   293,   294,   295,   296,   297,   123,   123,
1997 <     123,   123,   229,   229,   123,   232,   123,   229,   238,   238,
1998 <     238,   238,   238,   238,   238,   229,   229,   229,    50,   124,
1999 <     344,   345,   229,   229,   229,   229,   229,   229,   229,   229,
2000 <     229,   229,   229,    11,    12,    13,   240,   241,   229,   229,
2001 <     229,   229,   229,   229,   229,   229,   229,     8,   199,   419,
2002 <     420,   229,   229,   229,   229,   229,   229,   229,   229,   229,
2003 <     229,   229,   229,   233,   229,   233,   229,   229,    15,    40,
2004 <      68,    99,   100,   107,   132,   148,   210,   228,   370,   371,
2005 <     229,   229,   229,   229,   229,   229,   229,   229,   229,    46,
2006 <     190,   199,   350,   351,   218,   233,   355,   229,   229,   229,
2007 <     229,     4,    20,    31,    65,    67,    95,   128,   130,   149,
2008 <     171,   176,   180,   184,   189,   193,   204,   207,   209,   220,
2009 <     227,   320,   321,   229,   229,   229,   229,   229,    46,    48,
2010 <      49,   164,   165,   166,   169,   170,   172,   173,   175,   177,
2011 <     180,   182,   183,   188,   192,   196,   197,   198,   203,   208,
2012 <     316,   317,   229,   229,   229,   229,   229,   229,    67,   131,
2013 <     163,   171,   180,   204,   206,   207,   220,   227,   403,   404,
2014 <     229,   232,   232,   298,   230,   294,   229,   229,   229,   229,
2015 <     229,    67,   131,   163,   171,   180,   204,   206,   207,   220,
2016 <     227,   394,   395,   229,   229,   233,   240,   240,   240,   229,
2017 <     233,   499,   495,   229,   233,   229,   233,   108,   357,   229,
2018 <     234,   234,   234,   229,   233,   229,   233,   229,   233,   123,
2019 <     205,   241,   232,   229,   229,   233,   345,   420,   371,   351,
2020 <     129,   129,   129,   321,   317,   404,   229,   229,   229,    65,
2021 <      67,   114,   131,   170,   171,   222,   227,   299,   300,   395,
2022 <     229,   233,   300
1912 >     490,   491,   495,   499,   500,   501,   502,   235,   235,   235,
1913 >       1,   101,   123,   247,   248,   249,   250,   235,   235,   235,
1914 >       1,    36,    47,    48,    49,    52,    53,    57,    58,    59,
1915 >     522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
1916 >     532,     1,    29,    32,    61,    71,    92,    96,   104,   107,
1917 >     108,   137,   211,   213,   214,   216,   217,   218,   252,   253,
1918 >     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1919 >     264,   265,   266,   267,   268,   269,   235,     1,   224,   291,
1920 >     292,   293,   294,   295,   235,     1,   104,   383,   384,   385,
1921 >     235,   233,   236,   236,   236,   234,   272,   236,   236,   236,
1922 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1923 >     236,   236,   234,   505,     1,    17,    18,    23,    70,    88,
1924 >      89,    94,    98,   104,   113,   114,   115,   125,   146,   184,
1925 >     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
1926 >     336,   337,   338,   339,   340,   341,   342,     1,     3,     5,
1927 >      19,    42,    60,    62,    70,    82,   104,   126,   145,   160,
1928 >     210,   212,   213,   407,   408,   409,   410,   411,   412,   413,
1929 >     414,   415,   416,   417,   418,   422,   423,   424,   425,   426,
1930 >       1,    68,   129,   435,   436,   437,   438,   236,   234,   441,
1931 >       1,   104,   129,   445,   446,   447,   448,   236,   236,   236,
1932 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1933 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1934 >     236,   236,   496,   492,   236,   236,   236,   236,   236,   236,
1935 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1936 >     236,   236,   234,   451,     1,    19,    42,    70,   122,   130,
1937 >     131,   150,   225,   362,   363,   364,   365,   366,   367,   368,
1938 >     372,   373,   374,     1,   129,   225,   429,   430,   431,   432,
1939 >       1,    60,    68,    70,   126,   348,   352,   353,   354,   358,
1940 >     359,   233,   236,   236,   234,   248,     1,    84,   171,   278,
1941 >     279,   280,   281,     1,    19,    42,    70,   104,   122,   198,
1942 >     212,   215,   225,   229,   306,   307,   308,   309,   310,   311,
1943 >     312,   313,   314,   315,   316,   320,     1,    44,    84,   129,
1944 >     377,   378,   379,   380,   381,   236,   236,   236,   236,   236,
1945 >     236,   236,   236,   236,   234,   523,   233,   236,   236,   236,
1946 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1947 >     236,   236,   236,   234,   253,     1,   104,   222,   398,   399,
1948 >     400,   401,   233,   236,   234,   292,   171,     1,   104,   164,
1949 >     182,   196,   284,   285,   286,   287,   288,   289,   236,   234,
1950 >     384,     1,   104,   222,   225,   388,   389,   390,   391,   392,
1951 >     127,   127,   127,   233,   112,   112,   243,   207,   207,   112,
1952 >     243,   243,   243,   112,   243,   243,   112,   112,   112,   112,
1953 >     233,   233,   236,   236,   236,   343,   236,   236,   236,   236,
1954 >     236,   236,   236,   236,   236,   236,   236,   234,   327,   233,
1955 >     236,   236,   236,   236,   236,   236,   419,   236,   236,   236,
1956 >     236,   236,   236,   236,   236,   234,   408,   236,   236,   234,
1957 >     436,   127,   233,   236,   236,   234,   446,   207,   243,   112,
1958 >     243,   243,   207,   112,   243,   207,   112,   112,   112,   207,
1959 >     207,   243,   112,   112,   112,   112,   243,   112,   112,   112,
1960 >     112,   207,   236,   236,   207,   243,   243,   207,   207,   207,
1961 >     207,   207,   207,   207,   207,   207,   112,   243,   243,   243,
1962 >     207,   112,   233,   233,   236,   236,   369,   236,   236,   236,
1963 >     236,   236,   234,   363,   236,   236,   234,   430,   233,   236,
1964 >     236,   349,   236,   234,   353,   127,   127,   233,   233,   236,
1965 >     236,   234,   279,   233,   236,   236,   321,   236,   236,   317,
1966 >     236,   236,   236,   236,   234,   307,   233,   236,   236,   236,
1967 >     234,   378,   207,   207,   243,   127,   207,   127,   207,   207,
1968 >     207,   233,   112,   127,   207,   127,   112,   112,   127,   127,
1969 >     127,   127,   127,   127,   127,   127,   127,   127,   233,   233,
1970 >     236,   402,   234,   399,   207,   233,   235,   233,   236,   236,
1971 >     236,   236,   234,   285,   127,   233,   233,   236,   393,   236,
1972 >     234,   389,   233,   233,   233,   233,   138,   139,   140,   141,
1973 >     142,   143,   144,   242,   243,   233,   233,   233,   233,   233,
1974 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   112,
1975 >     112,   243,   236,   112,   243,   112,   243,   127,   112,   112,
1976 >     112,   243,   112,   245,   245,   233,   127,   175,   176,   127,
1977 >     207,   127,   127,   236,   127,   127,   112,   127,   127,   243,
1978 >     127,   127,   233,   127,   127,   233,   233,   127,   127,   233,
1979 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1980 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1981 >     233,   233,   233,   233,   233,    45,    52,   161,   162,   163,
1982 >     166,   167,   169,   170,   172,   174,   177,   179,   180,   185,
1983 >     189,   193,   194,   195,   199,   204,   497,   498,    45,    52,
1984 >      54,    55,   161,   162,   163,   166,   167,   169,   170,   172,
1985 >     174,   177,   179,   180,   185,   189,   193,   194,   195,   199,
1986 >     204,   493,   494,   233,   233,   233,   233,   233,   233,   233,
1987 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1988 >     233,   127,   207,   236,   127,   112,   127,   127,   127,   233,
1989 >     127,   127,   233,   127,   127,   236,   112,   356,   357,   233,
1990 >     233,   233,   127,   127,   233,   127,   207,   236,   127,   127,
1991 >     236,   127,   207,   127,   127,   233,   127,   127,   127,   233,
1992 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1993 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1994 >     233,   233,   233,   233,   233,   127,   236,   233,   233,     1,
1995 >     104,   192,   222,   296,   297,   298,   299,   300,   127,   127,
1996 >     127,   127,   233,   233,   127,   236,   127,   233,   242,   242,
1997 >     242,   242,   242,   242,   242,   233,   233,   233,    56,   128,
1998 >     344,   345,   233,   233,   233,   233,   233,   233,   233,   233,
1999 >     233,    11,    12,    13,   244,   245,   233,   233,   233,   233,
2000 >     233,   233,   233,   233,   233,     8,   197,   420,   421,   233,
2001 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2002 >     233,   233,   237,   233,   237,   233,   233,    15,    43,    76,
2003 >     105,   106,   111,   136,   206,   232,   370,   371,   233,   233,
2004 >     233,   233,   233,   233,   233,   233,   233,    20,    30,    52,
2005 >     187,   197,   350,   351,   221,   237,   355,   233,   233,   233,
2006 >     233,     4,    21,    22,    33,    72,    73,    75,   101,   109,
2007 >     132,   134,   135,   151,   168,   173,   177,   181,   186,   190,
2008 >     200,   202,   203,   205,   223,   231,   322,   323,   233,   233,
2009 >      45,    52,    54,    55,   161,   162,   163,   166,   167,   169,
2010 >     170,   172,   174,   177,   179,   180,   185,   189,   193,   194,
2011 >     195,   199,   204,   318,   319,   233,   233,   233,   233,   233,
2012 >     233,   233,   233,    75,   135,   159,   168,   177,   200,   202,
2013 >     203,   223,   231,   403,   404,   233,   236,   236,   301,   234,
2014 >     297,   233,   233,   233,   233,   233,    75,   135,   159,   168,
2015 >     177,   200,   202,   203,   223,   231,   394,   395,   233,   233,
2016 >     237,   244,   244,   244,   233,   237,   498,   494,   233,   237,
2017 >     233,   237,   112,   357,   233,   238,   238,   238,   238,   238,
2018 >     238,   233,   237,   233,   237,   233,   237,   127,   201,   245,
2019 >     236,   233,   233,   237,   345,   421,   371,   351,   133,   135,
2020 >     133,   135,   133,   133,   323,   319,   404,   233,   233,   233,
2021 >      73,    75,   118,   135,   167,   168,   225,   231,   302,   303,
2022 >     395,   233,   237,   303
2023   };
2024  
2025    /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2026   static const yytype_uint16 yyr1[] =
2027   {
2028 <       0,   235,   236,   236,   237,   237,   237,   237,   237,   237,
2029 <     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
2030 <     237,   237,   237,   237,   237,   237,   237,   237,   238,   238,
2031 <     239,   239,   239,   239,   239,   239,   239,   239,   240,   240,
2032 <     241,   241,   241,   241,   242,   243,   243,   244,   244,   244,
2033 <     245,   246,   247,   248,   248,   249,   249,   249,   249,   249,
2034 <     249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
2035 <     249,   249,   249,   250,   251,   252,   253,   254,   255,   256,
2036 <     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2037 <     267,   268,   268,   269,   269,   269,   269,   270,   271,   272,
2038 <     274,   273,   275,   275,   276,   276,   276,   277,   278,   280,
2039 <     279,   281,   281,   282,   282,   282,   282,   282,   283,   284,
2040 <     285,   286,   287,   288,   288,   289,   289,   289,   290,   292,
2041 <     291,   293,   293,   294,   294,   294,   294,   295,   296,   296,
2042 <     298,   297,   299,   299,   300,   300,   300,   300,   300,   300,
2043 <     300,   300,   302,   301,   303,   303,   304,   304,   304,   304,
2044 <     304,   304,   304,   304,   304,   304,   304,   304,   305,   306,
2045 <     307,   308,   309,   310,   311,   312,   313,   315,   314,   316,
2046 <     316,   317,   317,   317,   317,   317,   317,   317,   317,   317,
2047 <     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
2048 <     317,   317,   317,   319,   318,   320,   320,   321,   321,   321,
2049 <     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
2050 <     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
2051 <     323,   322,   324,   324,   325,   325,   325,   325,   325,   325,
2052 <     325,   325,   325,   325,   325,   325,   325,   325,   325,   325,
2053 <     325,   325,   326,   327,   328,   329,   330,   331,   332,   333,
2054 <     334,   335,   336,   337,   338,   339,   340,   341,   343,   342,
2055 <     344,   344,   345,   345,   347,   346,   349,   348,   350,   350,
2056 <     351,   351,   351,   352,   352,   353,   353,   353,   353,   353,
2057 <     355,   354,   356,   356,   357,   357,   358,   359,   361,   360,
2058 <     362,   362,   363,   363,   363,   363,   363,   363,   363,   363,
2059 <     363,   364,   365,   366,   367,   369,   368,   370,   370,   371,
2028 >       0,   239,   240,   240,   241,   241,   241,   241,   241,   241,
2029 >     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2030 >     241,   241,   241,   241,   241,   241,   241,   241,   242,   242,
2031 >     243,   243,   243,   243,   243,   243,   243,   243,   244,   244,
2032 >     245,   245,   245,   245,   246,   247,   247,   248,   248,   248,
2033 >     249,   250,   251,   252,   252,   253,   253,   253,   253,   253,
2034 >     253,   253,   253,   253,   253,   253,   253,   253,   253,   253,
2035 >     253,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2036 >     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2037 >     271,   272,   272,   272,   272,   273,   274,   275,   277,   276,
2038 >     278,   278,   279,   279,   279,   280,   281,   283,   282,   284,
2039 >     284,   285,   285,   285,   285,   285,   286,   287,   288,   289,
2040 >     290,   291,   291,   292,   292,   292,   293,   295,   294,   296,
2041 >     296,   297,   297,   297,   297,   298,   299,   299,   301,   300,
2042 >     302,   302,   303,   303,   303,   303,   303,   303,   303,   303,
2043 >     305,   304,   306,   306,   307,   307,   307,   307,   307,   307,
2044 >     307,   307,   307,   307,   307,   308,   309,   310,   311,   312,
2045 >     313,   314,   315,   317,   316,   318,   318,   319,   319,   319,
2046 >     319,   319,   319,   319,   319,   319,   319,   319,   319,   319,
2047 >     319,   319,   319,   319,   319,   319,   319,   319,   319,   319,
2048 >     321,   320,   322,   322,   323,   323,   323,   323,   323,   323,
2049 >     323,   323,   323,   323,   323,   323,   323,   323,   323,   323,
2050 >     323,   323,   323,   323,   323,   323,   323,   323,   323,   323,
2051 >     323,   323,   323,   325,   324,   326,   326,   327,   327,   327,
2052 >     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
2053 >     327,   327,   327,   328,   329,   330,   331,   332,   333,   334,
2054 >     335,   336,   337,   338,   339,   340,   341,   343,   342,   344,
2055 >     344,   345,   345,   347,   346,   349,   348,   350,   350,   351,
2056 >     351,   351,   351,   351,   352,   352,   353,   353,   353,   353,
2057 >     353,   355,   354,   356,   356,   357,   357,   358,   359,   361,
2058 >     360,   362,   362,   363,   363,   363,   363,   363,   363,   363,
2059 >     363,   363,   364,   365,   366,   367,   369,   368,   370,   370,
2060       371,   371,   371,   371,   371,   371,   371,   371,   371,   372,
2061       373,   374,   376,   375,   377,   377,   378,   378,   378,   378,
2062       379,   380,   381,   382,   383,   383,   384,   384,   385,   387,
# Line 2106 | Line 2066 | static const yytype_uint16 yyr1[] =
2066       400,   402,   401,   403,   403,   404,   404,   404,   404,   404,
2067       404,   404,   404,   404,   404,   406,   405,   407,   407,   408,
2068       408,   408,   408,   408,   408,   408,   408,   408,   408,   408,
2069 <     408,   408,   408,   408,   409,   410,   411,   412,   413,   414,
2070 <     415,   416,   416,   418,   417,   419,   419,   420,   420,   421,
2071 <     422,   423,   424,   425,   427,   426,   428,   428,   429,   429,
2072 <     429,   430,   431,   433,   432,   434,   434,   435,   435,   435,
2073 <     436,   437,   438,   439,   439,   440,   440,   441,   443,   442,
2074 <     444,   444,   445,   445,   445,   446,   447,   448,   449,   449,
2075 <     450,   450,   450,   450,   450,   450,   450,   450,   450,   450,
2076 <     450,   450,   450,   450,   450,   450,   450,   450,   450,   450,
2077 <     450,   450,   450,   450,   450,   450,   450,   450,   450,   450,
2078 <     450,   450,   450,   450,   450,   450,   450,   450,   450,   450,
2079 <     450,   450,   450,   450,   450,   450,   450,   451,   452,   453,
2069 >     408,   408,   408,   408,   408,   409,   410,   411,   412,   413,
2070 >     414,   415,   416,   417,   417,   419,   418,   420,   420,   421,
2071 >     421,   422,   423,   424,   425,   426,   428,   427,   429,   429,
2072 >     430,   430,   430,   431,   432,   434,   433,   435,   435,   436,
2073 >     436,   436,   437,   438,   439,   440,   440,   441,   441,   442,
2074 >     444,   443,   445,   445,   446,   446,   446,   447,   448,   449,
2075 >     450,   450,   451,   451,   451,   451,   451,   451,   451,   451,
2076 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2077 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2078 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2079 >     451,   451,   451,   451,   451,   451,   451,   451,   452,   453,
2080       454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2081       464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
2082 <     474,   475,   476,   477,   477,   478,   478,   479,   480,   481,
2083 <     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
2084 <     493,   492,   494,   494,   495,   495,   495,   495,   495,   495,
2085 <     495,   495,   495,   495,   495,   495,   495,   495,   495,   495,
2086 <     495,   495,   495,   495,   495,   495,   497,   496,   498,   498,
2087 <     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
2088 <     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
2082 >     474,   475,   476,   477,   478,   479,   480,   481,   482,   483,
2083 >     484,   485,   486,   487,   488,   489,   490,   492,   491,   493,
2084 >     493,   494,   494,   494,   494,   494,   494,   494,   494,   494,
2085 >     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
2086 >     494,   494,   494,   494,   496,   495,   497,   497,   498,   498,
2087 >     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
2088 >     498,   498,   498,   498,   498,   498,   498,   498,   498,   499,
2089       500,   501,   502,   503,   504,   504,   505,   505,   505,   505,
2090       505,   505,   505,   505,   505,   505,   505,   505,   505,   505,
2091 <     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
2092 <     515,   516,   517,   518,   519,   520,   521,   521,   522,   522,
2093 <     522,   522,   522,   522,   522,   522,   522,   523,   524,   525,
2094 <     526,   527,   528,   529,   530
2091 >     505,   505,   506,   507,   508,   509,   510,   511,   512,   513,
2092 >     514,   515,   516,   517,   518,   519,   520,   521,   522,   522,
2093 >     523,   523,   523,   523,   523,   523,   523,   523,   523,   523,
2094 >     524,   525,   526,   527,   528,   529,   530,   531,   532
2095   };
2096  
2097    /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
# Line 2144 | Line 2104 | static const yytype_uint8 yyr2[] =
2104         2,     3,     3,     3,     5,     2,     1,     1,     1,     2,
2105         4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2106         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2107 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
2108 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2109 <       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2110 <       0,     6,     2,     1,     1,     1,     2,     4,     4,     0,
2111 <       6,     2,     1,     1,     1,     1,     1,     2,     4,     4,
2112 <       4,     4,     5,     2,     1,     1,     1,     2,     4,     0,
2113 <       6,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2114 <       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2115 <       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2116 <       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
2117 <       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
2158 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2107 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
2108 >       4,     4,     4,     4,     4,     4,     4,     4,     5,     2,
2109 >       1,     1,     1,     1,     2,     4,     4,     4,     0,     6,
2110 >       2,     1,     1,     1,     2,     4,     4,     0,     6,     2,
2111 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2112 >       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
2113 >       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
2114 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2115 >       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
2116 >       1,     1,     1,     1,     2,     4,     4,     4,     4,     4,
2117 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
2118         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2160       1,     1,     1,     0,     5,     3,     1,     3,     1,     3,
2161       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2119         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2120 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
2120 >       0,     5,     3,     1,     3,     1,     3,     1,     3,     1,
2121 >       1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
2122 >       1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
2123 >       1,     1,     1,     0,     6,     2,     1,     1,     1,     1,
2124         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2125 <       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
2126 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2127 <       3,     1,     1,     1,     0,     6,     0,     5,     3,     1,
2128 <       1,     1,     1,     2,     1,     1,     1,     1,     1,     2,
2129 <       0,     5,     3,     1,     1,     3,     4,     4,     0,     6,
2130 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2131 <       2,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2125 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
2126 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
2127 >       1,     1,     1,     0,     6,     0,     5,     3,     1,     1,
2128 >       1,     1,     1,     1,     2,     1,     1,     1,     1,     1,
2129 >       2,     0,     5,     3,     1,     1,     3,     4,     4,     0,
2130 >       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2131 >       1,     2,     4,     4,     4,     4,     0,     5,     3,     1,
2132         1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
2133         4,     4,     0,     6,     2,     1,     1,     1,     1,     2,
2134         4,     4,     4,     5,     2,     1,     1,     1,     4,     0,
# Line 2178 | Line 2138 | static const yytype_uint8 yyr2[] =
2138         4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2139         1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2140         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2141 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
2142 <       4,     4,     4,     0,     5,     3,     1,     1,     1,     4,
2143 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
2144 <       1,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2145 <       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
2146 <       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
2147 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2141 >       1,     1,     1,     1,     2,     4,     4,     4,     4,     4,
2142 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2143 >       1,     4,     4,     4,     4,     4,     0,     6,     2,     1,
2144 >       1,     1,     1,     4,     4,     0,     6,     2,     1,     1,
2145 >       1,     1,     4,     4,     5,     2,     1,     1,     1,     4,
2146 >       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
2147 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2148         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2149         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2150         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2151 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
2192 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2151 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
2152         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2153         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2154         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2155 <       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2155 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
2156         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2198       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
2157         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2158 +       1,     1,     1,     1,     0,     5,     3,     1,     1,     1,
2159         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2160 +       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
2161         4,     4,     4,     5,     2,     1,     1,     1,     1,     1,
2162         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2163 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2164 <       4,     4,     4,     4,     4,     5,     2,     1,     1,     1,
2165 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
2166 <       4,     4,     4,     4,     4
2163 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
2164 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
2165 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2166 >       4,     4,     4,     4,     4,     4,     4,     4,     4
2167   };
2168  
2169  
# Line 2219 | Line 2179 | static const yytype_uint8 yyr2[] =
2179  
2180   #define YYRECOVERING()  (!!yyerrstatus)
2181  
2182 < #define YYBACKUP(Token, Value)                                  \
2183 < do                                                              \
2184 <  if (yychar == YYEMPTY)                                        \
2185 <    {                                                           \
2186 <      yychar = (Token);                                         \
2187 <      yylval = (Value);                                         \
2188 <      YYPOPSTACK (yylen);                                       \
2189 <      yystate = *yyssp;                                         \
2190 <      goto yybackup;                                            \
2191 <    }                                                           \
2192 <  else                                                          \
2193 <    {                                                           \
2194 <      yyerror (YY_("syntax error: cannot back up")); \
2195 <      YYERROR;                                                  \
2196 <    }                                                           \
2197 < while (0)
2182 > #define YYBACKUP(Token, Value)                                    \
2183 >  do                                                              \
2184 >    if (yychar == YYEMPTY)                                        \
2185 >      {                                                           \
2186 >        yychar = (Token);                                         \
2187 >        yylval = (Value);                                         \
2188 >        YYPOPSTACK (yylen);                                       \
2189 >        yystate = *yyssp;                                         \
2190 >        goto yybackup;                                            \
2191 >      }                                                           \
2192 >    else                                                          \
2193 >      {                                                           \
2194 >        yyerror (YY_("syntax error: cannot back up")); \
2195 >        YYERROR;                                                  \
2196 >      }                                                           \
2197 >  while (0)
2198  
2199   /* Error token number */
2200   #define YYTERROR        1
# Line 2274 | Line 2234 | do {
2234   } while (0)
2235  
2236  
2237 < /*----------------------------------------.
2238 < | Print this symbol's value on YYOUTPUT.  |
2239 < `----------------------------------------*/
2237 > /*-----------------------------------.
2238 > | Print this symbol's value on YYO.  |
2239 > `-----------------------------------*/
2240  
2241   static void
2242 < yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2242 > yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2243   {
2244 <  FILE *yyo = yyoutput;
2245 <  YYUSE (yyo);
2244 >  FILE *yyoutput = yyo;
2245 >  YYUSE (yyoutput);
2246    if (!yyvaluep)
2247      return;
2248   # ifdef YYPRINT
2249    if (yytype < YYNTOKENS)
2250 <    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2250 >    YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
2251   # endif
2252    YYUSE (yytype);
2253   }
2254  
2255  
2256 < /*--------------------------------.
2257 < | Print this symbol on YYOUTPUT.  |
2258 < `--------------------------------*/
2256 > /*---------------------------.
2257 > | Print this symbol on YYO.  |
2258 > `---------------------------*/
2259  
2260   static void
2261 < yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2261 > yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2262   {
2263 <  YYFPRINTF (yyoutput, "%s %s (",
2263 >  YYFPRINTF (yyo, "%s %s (",
2264               yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2265  
2266 <  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2267 <  YYFPRINTF (yyoutput, ")");
2266 >  yy_symbol_value_print (yyo, yytype, yyvaluep);
2267 >  YYFPRINTF (yyo, ")");
2268   }
2269  
2270   /*------------------------------------------------------------------.
# Line 2338 | Line 2298 | do {
2298   static void
2299   yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2300   {
2301 <  unsigned long int yylno = yyrline[yyrule];
2301 >  unsigned long yylno = yyrline[yyrule];
2302    int yynrhs = yyr2[yyrule];
2303    int yyi;
2304    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
# Line 2349 | Line 2309 | yy_reduce_print (yytype_int16 *yyssp, YY
2309        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2310        yy_symbol_print (stderr,
2311                         yystos[yyssp[yyi + 1 - yynrhs]],
2312 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2312 >                       &yyvsp[(yyi + 1) - (yynrhs)]
2313                                                );
2314        YYFPRINTF (stderr, "\n");
2315      }
# Line 2453 | Line 2413 | yytnamerr (char *yyres, const char *yyst
2413            case '\\':
2414              if (*++yyp != '\\')
2415                goto do_not_strip_quotes;
2416 <            /* Fall through.  */
2416 >            else
2417 >              goto append;
2418 >
2419 >          append:
2420            default:
2421              if (yyres)
2422                yyres[yyn] = *yyp;
# Line 2471 | Line 2434 | yytnamerr (char *yyres, const char *yyst
2434    if (! yyres)
2435      return yystrlen (yystr);
2436  
2437 <  return yystpcpy (yyres, yystr) - yyres;
2437 >  return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
2438   }
2439   # endif
2440  
# Line 2549 | Line 2512 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2512                  yyarg[yycount++] = yytname[yyx];
2513                  {
2514                    YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2515 <                  if (! (yysize <= yysize1
2516 <                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2515 >                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2516 >                    yysize = yysize1;
2517 >                  else
2518                      return 2;
2555                  yysize = yysize1;
2519                  }
2520                }
2521          }
# Line 2564 | Line 2527 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2527        case N:                               \
2528          yyformat = S;                       \
2529        break
2530 +    default: /* Avoid compiler warnings. */
2531        YYCASE_(0, YY_("syntax error"));
2532        YYCASE_(1, YY_("syntax error, unexpected %s"));
2533        YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
# Line 2575 | Line 2539 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2539  
2540    {
2541      YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2542 <    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2542 >    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2543 >      yysize = yysize1;
2544 >    else
2545        return 2;
2580    yysize = yysize1;
2546    }
2547  
2548    if (*yymsg_alloc < yysize)
# Line 2703 | Line 2668 | yyparse (void)
2668    yychar = YYEMPTY; /* Cause a token to be read.  */
2669    goto yysetstate;
2670  
2671 +
2672   /*------------------------------------------------------------.
2673 < | yynewstate -- Push a new state, which is found in yystate.  |
2673 > | yynewstate -- push a new state, which is found in yystate.  |
2674   `------------------------------------------------------------*/
2675 < yynewstate:
2675 > yynewstate:
2676    /* In all cases, when you get here, the value and location stacks
2677       have just been pushed.  So pushing a state here evens the stacks.  */
2678    yyssp++;
2679  
2680 < yysetstate:
2681 <  *yyssp = yystate;
2680 >
2681 > /*--------------------------------------------------------------------.
2682 > | yynewstate -- set current state (the top of the stack) to yystate.  |
2683 > `--------------------------------------------------------------------*/
2684 > yysetstate:
2685 >  *yyssp = (yytype_int16) yystate;
2686  
2687    if (yyss + yystacksize - 1 <= yyssp)
2688 + #if !defined yyoverflow && !defined YYSTACK_RELOCATE
2689 +    goto yyexhaustedlab;
2690 + #else
2691      {
2692        /* Get the current used size of the three stacks, in elements.  */
2693 <      YYSIZE_T yysize = yyssp - yyss + 1;
2693 >      YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
2694  
2695 < #ifdef yyoverflow
2695 > # if defined yyoverflow
2696        {
2697          /* Give user a chance to reallocate the stack.  Use copies of
2698             these so that the &'s don't force the real ones into
# Line 2735 | Line 2708 | yyparse (void)
2708                      &yyss1, yysize * sizeof (*yyssp),
2709                      &yyvs1, yysize * sizeof (*yyvsp),
2710                      &yystacksize);
2738
2711          yyss = yyss1;
2712          yyvs = yyvs1;
2713        }
2714 < #else /* no yyoverflow */
2743 < # ifndef YYSTACK_RELOCATE
2744 <      goto yyexhaustedlab;
2745 < # else
2714 > # else /* defined YYSTACK_RELOCATE */
2715        /* Extend the stack our own way.  */
2716        if (YYMAXDEPTH <= yystacksize)
2717          goto yyexhaustedlab;
# Line 2758 | Line 2727 | yyparse (void)
2727            goto yyexhaustedlab;
2728          YYSTACK_RELOCATE (yyss_alloc, yyss);
2729          YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2730 < #  undef YYSTACK_RELOCATE
2730 > # undef YYSTACK_RELOCATE
2731          if (yyss1 != yyssa)
2732            YYSTACK_FREE (yyss1);
2733        }
2734   # endif
2766 #endif /* no yyoverflow */
2735  
2736        yyssp = yyss + yysize - 1;
2737        yyvsp = yyvs + yysize - 1;
2738  
2739        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2740 <                  (unsigned long int) yystacksize));
2740 >                  (unsigned long) yystacksize));
2741  
2742        if (yyss + yystacksize - 1 <= yyssp)
2743          YYABORT;
2744      }
2745 + #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
2746  
2747    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2748  
# Line 2782 | Line 2751 | yyparse (void)
2751  
2752    goto yybackup;
2753  
2754 +
2755   /*-----------.
2756   | yybackup.  |
2757   `-----------*/
2758   yybackup:
2789
2759    /* Do appropriate processing given the current state.  Read a
2760       lookahead token if we need one and don't already have one.  */
2761  
# Line 2859 | Line 2828 | yydefault:
2828  
2829  
2830   /*-----------------------------.
2831 < | yyreduce -- Do a reduction.  |
2831 > | yyreduce -- do a reduction.  |
2832   `-----------------------------*/
2833   yyreduce:
2834    /* yyn is the number of a rule to reduce with.  */
# Line 2880 | Line 2849 | yyreduce:
2849    switch (yyn)
2850      {
2851          case 28:
2852 < #line 416 "conf_parser.y" /* yacc.c:1646  */
2852 > #line 400 "conf_parser.y" /* yacc.c:1652  */
2853      { (yyval.number) = 0; }
2854 < #line 2886 "conf_parser.c" /* yacc.c:1646  */
2854 > #line 2855 "conf_parser.c" /* yacc.c:1652  */
2855      break;
2856  
2857    case 30:
2858 < #line 417 "conf_parser.y" /* yacc.c:1646  */
2858 > #line 401 "conf_parser.y" /* yacc.c:1652  */
2859      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2860 < #line 2892 "conf_parser.c" /* yacc.c:1646  */
2860 > #line 2861 "conf_parser.c" /* yacc.c:1652  */
2861      break;
2862  
2863    case 31:
2864 < #line 418 "conf_parser.y" /* yacc.c:1646  */
2864 > #line 402 "conf_parser.y" /* yacc.c:1652  */
2865      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2866 < #line 2898 "conf_parser.c" /* yacc.c:1646  */
2866 > #line 2867 "conf_parser.c" /* yacc.c:1652  */
2867      break;
2868  
2869    case 32:
2870 < #line 419 "conf_parser.y" /* yacc.c:1646  */
2870 > #line 403 "conf_parser.y" /* yacc.c:1652  */
2871      { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2872 < #line 2904 "conf_parser.c" /* yacc.c:1646  */
2872 > #line 2873 "conf_parser.c" /* yacc.c:1652  */
2873      break;
2874  
2875    case 33:
2876 < #line 420 "conf_parser.y" /* yacc.c:1646  */
2876 > #line 404 "conf_parser.y" /* yacc.c:1652  */
2877      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2878 < #line 2910 "conf_parser.c" /* yacc.c:1646  */
2878 > #line 2879 "conf_parser.c" /* yacc.c:1652  */
2879      break;
2880  
2881    case 34:
2882 < #line 421 "conf_parser.y" /* yacc.c:1646  */
2882 > #line 405 "conf_parser.y" /* yacc.c:1652  */
2883      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2884 < #line 2916 "conf_parser.c" /* yacc.c:1646  */
2884 > #line 2885 "conf_parser.c" /* yacc.c:1652  */
2885      break;
2886  
2887    case 35:
2888 < #line 422 "conf_parser.y" /* yacc.c:1646  */
2888 > #line 406 "conf_parser.y" /* yacc.c:1652  */
2889      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2890 < #line 2922 "conf_parser.c" /* yacc.c:1646  */
2890 > #line 2891 "conf_parser.c" /* yacc.c:1652  */
2891      break;
2892  
2893    case 36:
2894 < #line 423 "conf_parser.y" /* yacc.c:1646  */
2894 > #line 407 "conf_parser.y" /* yacc.c:1652  */
2895      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2896 < #line 2928 "conf_parser.c" /* yacc.c:1646  */
2896 > #line 2897 "conf_parser.c" /* yacc.c:1652  */
2897      break;
2898  
2899    case 37:
2900 < #line 424 "conf_parser.y" /* yacc.c:1646  */
2900 > #line 408 "conf_parser.y" /* yacc.c:1652  */
2901      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2902 < #line 2934 "conf_parser.c" /* yacc.c:1646  */
2902 > #line 2903 "conf_parser.c" /* yacc.c:1652  */
2903      break;
2904  
2905    case 38:
2906 < #line 427 "conf_parser.y" /* yacc.c:1646  */
2906 > #line 411 "conf_parser.y" /* yacc.c:1652  */
2907      { (yyval.number) = 0; }
2908 < #line 2940 "conf_parser.c" /* yacc.c:1646  */
2908 > #line 2909 "conf_parser.c" /* yacc.c:1652  */
2909      break;
2910  
2911    case 40:
2912 < #line 428 "conf_parser.y" /* yacc.c:1646  */
2912 > #line 412 "conf_parser.y" /* yacc.c:1652  */
2913      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2914 < #line 2946 "conf_parser.c" /* yacc.c:1646  */
2914 > #line 2915 "conf_parser.c" /* yacc.c:1652  */
2915      break;
2916  
2917    case 41:
2918 < #line 429 "conf_parser.y" /* yacc.c:1646  */
2918 > #line 413 "conf_parser.y" /* yacc.c:1652  */
2919      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2920 < #line 2952 "conf_parser.c" /* yacc.c:1646  */
2920 > #line 2921 "conf_parser.c" /* yacc.c:1652  */
2921      break;
2922  
2923    case 42:
2924 < #line 430 "conf_parser.y" /* yacc.c:1646  */
2924 > #line 414 "conf_parser.y" /* yacc.c:1652  */
2925      { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2926 < #line 2958 "conf_parser.c" /* yacc.c:1646  */
2926 > #line 2927 "conf_parser.c" /* yacc.c:1652  */
2927      break;
2928  
2929    case 43:
2930 < #line 431 "conf_parser.y" /* yacc.c:1646  */
2930 > #line 415 "conf_parser.y" /* yacc.c:1652  */
2931      { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2932 < #line 2964 "conf_parser.c" /* yacc.c:1646  */
2932 > #line 2933 "conf_parser.c" /* yacc.c:1652  */
2933      break;
2934  
2935    case 50:
2936 < #line 445 "conf_parser.y" /* yacc.c:1646  */
2936 > #line 428 "conf_parser.y" /* yacc.c:1652  */
2937      {
2938    if (conf_parser_ctx.pass == 2)
2939      add_conf_module(libio_basename(yylval.string));
2940   }
2941 < #line 2973 "conf_parser.c" /* yacc.c:1646  */
2941 > #line 2942 "conf_parser.c" /* yacc.c:1652  */
2942      break;
2943  
2944    case 51:
2945 < #line 451 "conf_parser.y" /* yacc.c:1646  */
2945 > #line 434 "conf_parser.y" /* yacc.c:1652  */
2946      {
2947    if (conf_parser_ctx.pass == 2)
2948      mod_add_path(yylval.string);
2949   }
2950 < #line 2982 "conf_parser.c" /* yacc.c:1646  */
2950 > #line 2951 "conf_parser.c" /* yacc.c:1652  */
2951      break;
2952  
2953 <  case 73:
2954 < #line 481 "conf_parser.y" /* yacc.c:1646  */
2953 >  case 72:
2954 > #line 466 "conf_parser.y" /* yacc.c:1652  */
2955      {
2987 #ifdef HAVE_LIBCRYPTO
2956    if (conf_parser_ctx.pass == 2)
2957    {
2958 <    if (!ConfigServerInfo.rsa_private_key_file)
2959 <    {
2992 <      conf_error_report("No rsa_private_key_file specified, SSL disabled");
2993 <      break;
2994 <    }
2995 <
2996 <    if (SSL_CTX_use_certificate_chain_file(ConfigServerInfo.server_ctx, yylval.string) <= 0 ||
2997 <        SSL_CTX_use_certificate_chain_file(ConfigServerInfo.client_ctx, yylval.string) <= 0)
2998 <    {
2999 <      report_crypto_errors();
3000 <      conf_error_report("Could not open/read certificate file");
3001 <      break;
3002 <    }
3003 <
3004 <    if (SSL_CTX_use_PrivateKey_file(ConfigServerInfo.server_ctx, ConfigServerInfo.rsa_private_key_file,
3005 <                                    SSL_FILETYPE_PEM) <= 0 ||
3006 <        SSL_CTX_use_PrivateKey_file(ConfigServerInfo.client_ctx, ConfigServerInfo.rsa_private_key_file,
3007 <                                    SSL_FILETYPE_PEM) <= 0)
3008 <    {
3009 <      report_crypto_errors();
3010 <      conf_error_report("Could not read RSA private key");
3011 <      break;
3012 <    }
3013 <
3014 <    if (!SSL_CTX_check_private_key(ConfigServerInfo.server_ctx) ||
3015 <        !SSL_CTX_check_private_key(ConfigServerInfo.client_ctx))
3016 <    {
3017 <      report_crypto_errors();
3018 <      conf_error_report("Could not read RSA private key");
3019 <      break;
3020 <    }
2958 >    xfree(ConfigServerInfo.tls_certificate_file);
2959 >    ConfigServerInfo.tls_certificate_file = xstrdup(yylval.string);
2960    }
3022 #endif
2961   }
2962 < #line 3025 "conf_parser.c" /* yacc.c:1646  */
2962 > #line 2963 "conf_parser.c" /* yacc.c:1652  */
2963      break;
2964  
2965 <  case 74:
2966 < #line 521 "conf_parser.y" /* yacc.c:1646  */
2965 >  case 73:
2966 > #line 475 "conf_parser.y" /* yacc.c:1652  */
2967      {
2968 < #ifdef HAVE_LIBCRYPTO
3031 <  BIO *file = NULL;
3032 <
3033 <  if (conf_parser_ctx.pass != 1)
3034 <    break;
3035 <
3036 <  if (ConfigServerInfo.rsa_private_key)
3037 <  {
3038 <    RSA_free(ConfigServerInfo.rsa_private_key);
3039 <    ConfigServerInfo.rsa_private_key = NULL;
3040 <  }
3041 <
3042 <  if (ConfigServerInfo.rsa_private_key_file)
3043 <  {
3044 <    MyFree(ConfigServerInfo.rsa_private_key_file);
3045 <    ConfigServerInfo.rsa_private_key_file = NULL;
3046 <  }
3047 <
3048 <  ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3049 <
3050 <  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3051 <  {
3052 <    conf_error_report("File open failed, ignoring");
3053 <    break;
3054 <  }
3055 <
3056 <  ConfigServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3057 <
3058 <  BIO_set_close(file, BIO_CLOSE);
3059 <  BIO_free(file);
3060 <
3061 <  if (ConfigServerInfo.rsa_private_key == NULL)
2968 >  if (conf_parser_ctx.pass == 2)
2969    {
2970 <    conf_error_report("Couldn't extract key, ignoring");
2971 <    break;
2970 >    xfree(ConfigServerInfo.rsa_private_key_file);
2971 >    ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
2972    }
2973 <
2974 <  if (!RSA_check_key(ConfigServerInfo.rsa_private_key))
3068 <  {
3069 <    RSA_free(ConfigServerInfo.rsa_private_key);
3070 <    ConfigServerInfo.rsa_private_key = NULL;
3071 <
3072 <    conf_error_report("Invalid key, ignoring");
2973 > }
2974 > #line 2975 "conf_parser.c" /* yacc.c:1652  */
2975      break;
3074  }
2976  
2977 <  if (RSA_size(ConfigServerInfo.rsa_private_key) < 128)
2977 >  case 74:
2978 > #line 484 "conf_parser.y" /* yacc.c:1652  */
2979 >    {
2980 >  if (conf_parser_ctx.pass == 2)
2981    {
2982 <    RSA_free(ConfigServerInfo.rsa_private_key);
2983 <    ConfigServerInfo.rsa_private_key = NULL;
3080 <
3081 <    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
2982 >    xfree(ConfigServerInfo.tls_dh_param_file);
2983 >    ConfigServerInfo.tls_dh_param_file = xstrdup(yylval.string);
2984    }
3083 #endif
2985   }
2986 < #line 3086 "conf_parser.c" /* yacc.c:1646  */
2986 > #line 2987 "conf_parser.c" /* yacc.c:1652  */
2987      break;
2988  
2989    case 75:
2990 < #line 579 "conf_parser.y" /* yacc.c:1646  */
2990 > #line 493 "conf_parser.y" /* yacc.c:1652  */
2991      {
3091 #ifdef HAVE_LIBCRYPTO
2992    if (conf_parser_ctx.pass == 2)
2993    {
2994 <    BIO *file = BIO_new_file(yylval.string, "r");
2995 <
3096 <    if (file)
3097 <    {
3098 <      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3099 <
3100 <      BIO_free(file);
3101 <
3102 <      if (dh)
3103 <      {
3104 <        if (DH_size(dh) < 128)
3105 <          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3106 <        else
3107 <          SSL_CTX_set_tmp_dh(ConfigServerInfo.server_ctx, dh);
3108 <
3109 <        DH_free(dh);
3110 <      }
3111 <    }
3112 <    else
3113 <      conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- could not open/read Diffie-Hellman parameter file");
2994 >    xfree(ConfigServerInfo.tls_cipher_list);
2995 >    ConfigServerInfo.tls_cipher_list = xstrdup(yylval.string);
2996    }
3115 #endif
2997   }
2998 < #line 3118 "conf_parser.c" /* yacc.c:1646  */
2998 > #line 2999 "conf_parser.c" /* yacc.c:1652  */
2999      break;
3000  
3001    case 76:
3002 < #line 608 "conf_parser.y" /* yacc.c:1646  */
3002 > #line 502 "conf_parser.y" /* yacc.c:1652  */
3003      {
3123 #ifdef HAVE_LIBCRYPTO
3004    if (conf_parser_ctx.pass == 2)
3005 <    SSL_CTX_set_cipher_list(ConfigServerInfo.server_ctx, yylval.string);
3006 < #endif
3005 >  {
3006 >    xfree(ConfigServerInfo.tls_cipher_suites);
3007 >    ConfigServerInfo.tls_cipher_suites = xstrdup(yylval.string);
3008 >  }
3009   }
3010 < #line 3129 "conf_parser.c" /* yacc.c:1646  */
3010 > #line 3011 "conf_parser.c" /* yacc.c:1652  */
3011      break;
3012  
3013    case 77:
3014 < #line 616 "conf_parser.y" /* yacc.c:1646  */
3014 > #line 511 "conf_parser.y" /* yacc.c:1652  */
3015      {
3134 #ifdef HAVE_LIBCRYPTO
3016    if (conf_parser_ctx.pass == 2)
3017    {
3018 <    if ((ConfigServerInfo.message_digest_algorithm = EVP_get_digestbyname(yylval.string)) == NULL)
3019 <    {
3139 <      ConfigServerInfo.message_digest_algorithm = EVP_sha256();
3140 <      conf_error_report("Ignoring serverinfo::ssl_message_digest_algorithm -- unknown message digest algorithm");
3141 <    }
3018 >    xfree(ConfigServerInfo.tls_message_digest_algorithm);
3019 >    ConfigServerInfo.tls_message_digest_algorithm = xstrdup(yylval.string);
3020    }
3143 #endif
3021   }
3022 < #line 3146 "conf_parser.c" /* yacc.c:1646  */
3022 > #line 3023 "conf_parser.c" /* yacc.c:1652  */
3023      break;
3024  
3025    case 78:
3026 < #line 630 "conf_parser.y" /* yacc.c:1646  */
3026 > #line 520 "conf_parser.y" /* yacc.c:1652  */
3027      {
3151 #ifdef HAVE_LIBCRYPTO
3152 #if OPENSSL_VERSION_NUMBER >= 0x009080FFL && !defined(OPENSSL_NO_ECDH)
3153  int nid = 0;
3154  EC_KEY *key = NULL;
3155
3028    if (conf_parser_ctx.pass == 2)
3029    {
3030 <    if ((nid = OBJ_sn2nid(yylval.string)) == 0)
3031 <    {
3032 <        conf_error_report("Ignoring serverinfo::ssl_dh_elliptic_curve -- unknown curve name");
3161 <        break;
3162 <    }
3163 <
3164 <    if ((key = EC_KEY_new_by_curve_name(nid)) == NULL)
3165 <    {
3166 <      conf_error_report("Ignoring serverinfo::ssl_dh_elliptic_curve -- could not create curve");
3167 <      break;
3168 <    }
3169 <
3170 <    SSL_CTX_set_tmp_ecdh(ConfigServerInfo.server_ctx, key);
3171 <    EC_KEY_free(key);
3172 < }
3173 < #endif
3174 < #endif
3030 >    xfree(ConfigServerInfo.tls_supported_groups);
3031 >    ConfigServerInfo.tls_supported_groups = xstrdup(yylval.string);
3032 >  }
3033   }
3034 < #line 3177 "conf_parser.c" /* yacc.c:1646  */
3034 > #line 3035 "conf_parser.c" /* yacc.c:1652  */
3035      break;
3036  
3037    case 79:
3038 < #line 658 "conf_parser.y" /* yacc.c:1646  */
3038 > #line 529 "conf_parser.y" /* yacc.c:1652  */
3039      {
3040 <  /* this isn't rehashable */
3041 <  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
3040 >  /* This isn't rehashable */
3041 >  if (conf_parser_ctx.pass == 2 && ConfigServerInfo.name == NULL)
3042    {
3043 <    if (valid_servname(yylval.string))
3043 >    if (server_valid_name(yylval.string) == true)
3044        ConfigServerInfo.name = xstrdup(yylval.string);
3045      else
3046      {
3047        conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3048 <      exit(0);
3048 >      exit(EXIT_FAILURE);
3049      }
3050    }
3051   }
3052 < #line 3195 "conf_parser.c" /* yacc.c:1646  */
3052 > #line 3053 "conf_parser.c" /* yacc.c:1652  */
3053      break;
3054  
3055    case 80:
3056 < #line 673 "conf_parser.y" /* yacc.c:1646  */
3056 > #line 544 "conf_parser.y" /* yacc.c:1652  */
3057      {
3058 <  /* this isn't rehashable */
3059 <  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
3058 >  /* This isn't rehashable */
3059 >  if (conf_parser_ctx.pass == 2 && ConfigServerInfo.sid == NULL)
3060    {
3061      if (valid_sid(yylval.string))
3062        ConfigServerInfo.sid = xstrdup(yylval.string);
3063      else
3064      {
3065        conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3066 <      exit(0);
3066 >      exit(EXIT_FAILURE);
3067      }
3068    }
3069   }
3070 < #line 3213 "conf_parser.c" /* yacc.c:1646  */
3070 > #line 3071 "conf_parser.c" /* yacc.c:1652  */
3071      break;
3072  
3073    case 81:
3074 < #line 688 "conf_parser.y" /* yacc.c:1646  */
3074 > #line 559 "conf_parser.y" /* yacc.c:1652  */
3075      {
3076    if (conf_parser_ctx.pass == 2)
3077    {
3078 <    MyFree(ConfigServerInfo.description);
3078 >    xfree(ConfigServerInfo.description);
3079      ConfigServerInfo.description = xstrdup(yylval.string);
3080      strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3081    }
3082   }
3083 < #line 3226 "conf_parser.c" /* yacc.c:1646  */
3083 > #line 3084 "conf_parser.c" /* yacc.c:1652  */
3084      break;
3085  
3086    case 82:
3087 < #line 698 "conf_parser.y" /* yacc.c:1646  */
3087 > #line 569 "conf_parser.y" /* yacc.c:1652  */
3088      {
3089    if (conf_parser_ctx.pass == 2)
3090    {
3091 <    char *p;
3091 >    char *p = strchr(yylval.string, ' ');
3092  
3093 <    if ((p = strchr(yylval.string, ' ')))
3093 >    if (p)
3094        *p = '\0';
3095  
3096 <    MyFree(ConfigServerInfo.network_name);
3096 >    xfree(ConfigServerInfo.network_name);
3097      ConfigServerInfo.network_name = xstrdup(yylval.string);
3098    }
3099   }
3100 < #line 3243 "conf_parser.c" /* yacc.c:1646  */
3100 > #line 3101 "conf_parser.c" /* yacc.c:1652  */
3101      break;
3102  
3103    case 83:
3104 < #line 712 "conf_parser.y" /* yacc.c:1646  */
3104 > #line 583 "conf_parser.y" /* yacc.c:1652  */
3105      {
3106    if (conf_parser_ctx.pass != 2)
3107      break;
3108  
3109 <  MyFree(ConfigServerInfo.network_desc);
3109 >  xfree(ConfigServerInfo.network_desc);
3110    ConfigServerInfo.network_desc = xstrdup(yylval.string);
3111   }
3112 < #line 3255 "conf_parser.c" /* yacc.c:1646  */
3112 > #line 3113 "conf_parser.c" /* yacc.c:1652  */
3113      break;
3114  
3115    case 84:
3116 < #line 721 "conf_parser.y" /* yacc.c:1646  */
3259 <    {
3260 <  if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3261 <  {
3262 <    struct addrinfo hints, *res;
3263 <
3264 <    memset(&hints, 0, sizeof(hints));
3265 <
3266 <    hints.ai_family   = AF_UNSPEC;
3267 <    hints.ai_socktype = SOCK_STREAM;
3268 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3269 <
3270 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3271 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3272 <    else
3273 <    {
3274 <      assert(res);
3275 <
3276 <      memcpy(&ConfigServerInfo.ip, res->ai_addr, res->ai_addrlen);
3277 <      ConfigServerInfo.ip.ss.ss_family = res->ai_family;
3278 <      ConfigServerInfo.ip.ss_len = res->ai_addrlen;
3279 <      freeaddrinfo(res);
3280 <
3281 <      ConfigServerInfo.specific_ipv4_vhost = 1;
3282 <    }
3283 <  }
3284 < }
3285 < #line 3286 "conf_parser.c" /* yacc.c:1646  */
3286 <    break;
3287 <
3288 <  case 85:
3289 < #line 749 "conf_parser.y" /* yacc.c:1646  */
3290 <    {
3291 <  if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3292 <  {
3293 <    struct addrinfo hints, *res;
3294 <
3295 <    memset(&hints, 0, sizeof(hints));
3296 <
3297 <    hints.ai_family   = AF_UNSPEC;
3298 <    hints.ai_socktype = SOCK_STREAM;
3299 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3300 <
3301 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3302 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3303 <    else
3304 <    {
3305 <      assert(res);
3306 <
3307 <      memcpy(&ConfigServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3308 <      ConfigServerInfo.ip6.ss.ss_family = res->ai_family;
3309 <      ConfigServerInfo.ip6.ss_len = res->ai_addrlen;
3310 <      freeaddrinfo(res);
3311 <
3312 <      ConfigServerInfo.specific_ipv6_vhost = 1;
3313 <    }
3314 <  }
3315 < }
3316 < #line 3317 "conf_parser.c" /* yacc.c:1646  */
3317 <    break;
3318 <
3319 <  case 86:
3320 < #line 777 "conf_parser.y" /* yacc.c:1646  */
3116 > #line 592 "conf_parser.y" /* yacc.c:1652  */
3117      {
3118    if (conf_parser_ctx.pass != 2)
3119      break;
3120  
3121 <  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3121 >  if ((yyvsp[-1].number) < 1)
3122    {
3123 <    char buf[IRCD_BUFSIZE] = "";
3124 <
3329 <    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3330 <    conf_error_report(buf);
3331 <    ConfigServerInfo.default_max_clients = MAXCLIENTS_MIN;
3123 >    conf_error_report("default_max_clients too low, setting to 1");
3124 >    ConfigServerInfo.default_max_clients = 1;
3125    }
3126    else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3127    {
3128 <    char buf[IRCD_BUFSIZE] = "";
3128 >    char buf[IRCD_BUFSIZE];
3129  
3130 <    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3130 >    snprintf(buf, sizeof(buf), "default_max_clients too high, setting to %d", MAXCLIENTS_MAX);
3131      conf_error_report(buf);
3132 +
3133      ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3134    }
3135    else
3136      ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3137   }
3138 < #line 3345 "conf_parser.c" /* yacc.c:1646  */
3138 > #line 3139 "conf_parser.c" /* yacc.c:1652  */
3139      break;
3140  
3141 <  case 87:
3142 < #line 802 "conf_parser.y" /* yacc.c:1646  */
3141 >  case 85:
3142 > #line 615 "conf_parser.y" /* yacc.c:1652  */
3143      {
3144    if (conf_parser_ctx.pass != 2)
3145      break;
# Line 3357 | Line 3151 | yyreduce:
3151    }
3152    else if ((yyvsp[-1].number) > NICKLEN)
3153    {
3154 <    char buf[IRCD_BUFSIZE] = "";
3154 >    char buf[IRCD_BUFSIZE];
3155  
3156      snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3157      conf_error_report(buf);
3158 +
3159      ConfigServerInfo.max_nick_length = NICKLEN;
3160    }
3161    else
3162      ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3163   }
3164 < #line 3370 "conf_parser.c" /* yacc.c:1646  */
3164 > #line 3165 "conf_parser.c" /* yacc.c:1652  */
3165      break;
3166  
3167 <  case 88:
3168 < #line 824 "conf_parser.y" /* yacc.c:1646  */
3167 >  case 86:
3168 > #line 638 "conf_parser.y" /* yacc.c:1652  */
3169      {
3170    if (conf_parser_ctx.pass != 2)
3171      break;
# Line 3382 | Line 3177 | yyreduce:
3177    }
3178    else if ((yyvsp[-1].number) > TOPICLEN)
3179    {
3180 <    char buf[IRCD_BUFSIZE] = "";
3180 >    char buf[IRCD_BUFSIZE];
3181  
3182      snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3183      conf_error_report(buf);
3184 +
3185      ConfigServerInfo.max_topic_length = TOPICLEN;
3186    }
3187    else
3188      ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3189   }
3190 < #line 3395 "conf_parser.c" /* yacc.c:1646  */
3190 > #line 3191 "conf_parser.c" /* yacc.c:1652  */
3191      break;
3192  
3193 <  case 89:
3194 < #line 846 "conf_parser.y" /* yacc.c:1646  */
3193 >  case 87:
3194 > #line 661 "conf_parser.y" /* yacc.c:1652  */
3195      {
3196    if (conf_parser_ctx.pass == 2)
3197      ConfigServerInfo.hub = yylval.number;
3198   }
3199 < #line 3404 "conf_parser.c" /* yacc.c:1646  */
3199 > #line 3200 "conf_parser.c" /* yacc.c:1652  */
3200      break;
3201  
3202 <  case 97:
3203 < #line 863 "conf_parser.y" /* yacc.c:1646  */
3202 >  case 95:
3203 > #line 679 "conf_parser.y" /* yacc.c:1652  */
3204      {
3205    if (conf_parser_ctx.pass != 2)
3206      break;
3207  
3208 <  MyFree(ConfigAdminInfo.name);
3208 >  xfree(ConfigAdminInfo.name);
3209    ConfigAdminInfo.name = xstrdup(yylval.string);
3210   }
3211 < #line 3416 "conf_parser.c" /* yacc.c:1646  */
3211 > #line 3212 "conf_parser.c" /* yacc.c:1652  */
3212      break;
3213  
3214 <  case 98:
3215 < #line 872 "conf_parser.y" /* yacc.c:1646  */
3214 >  case 96:
3215 > #line 688 "conf_parser.y" /* yacc.c:1652  */
3216      {
3217    if (conf_parser_ctx.pass != 2)
3218      break;
3219  
3220 <  MyFree(ConfigAdminInfo.email);
3220 >  xfree(ConfigAdminInfo.email);
3221    ConfigAdminInfo.email = xstrdup(yylval.string);
3222   }
3223 < #line 3428 "conf_parser.c" /* yacc.c:1646  */
3223 > #line 3224 "conf_parser.c" /* yacc.c:1652  */
3224      break;
3225  
3226 <  case 99:
3227 < #line 881 "conf_parser.y" /* yacc.c:1646  */
3226 >  case 97:
3227 > #line 697 "conf_parser.y" /* yacc.c:1652  */
3228      {
3229    if (conf_parser_ctx.pass != 2)
3230      break;
3231  
3232 <  MyFree(ConfigAdminInfo.description);
3232 >  xfree(ConfigAdminInfo.description);
3233    ConfigAdminInfo.description = xstrdup(yylval.string);
3234   }
3235 < #line 3440 "conf_parser.c" /* yacc.c:1646  */
3235 > #line 3236 "conf_parser.c" /* yacc.c:1652  */
3236      break;
3237  
3238 <  case 100:
3239 < #line 893 "conf_parser.y" /* yacc.c:1646  */
3238 >  case 98:
3239 > #line 710 "conf_parser.y" /* yacc.c:1652  */
3240      {
3241    if (conf_parser_ctx.pass == 2)
3242      reset_block_state();
3243   }
3244 < #line 3449 "conf_parser.c" /* yacc.c:1646  */
3244 > #line 3245 "conf_parser.c" /* yacc.c:1652  */
3245      break;
3246  
3247 <  case 101:
3248 < #line 897 "conf_parser.y" /* yacc.c:1646  */
3247 >  case 99:
3248 > #line 714 "conf_parser.y" /* yacc.c:1652  */
3249      {
3250 <  dlink_node *node = NULL;
3250 >  dlink_node *node;
3251  
3252    if (conf_parser_ctx.pass != 2)
3253      break;
# Line 3462 | Line 3258 | yyreduce:
3258    DLINK_FOREACH(node, block_state.mask.list.head)
3259      motd_add(node->data, block_state.file.buf);
3260   }
3261 < #line 3466 "conf_parser.c" /* yacc.c:1646  */
3261 > #line 3262 "conf_parser.c" /* yacc.c:1652  */
3262      break;
3263  
3264 <  case 107:
3265 < #line 914 "conf_parser.y" /* yacc.c:1646  */
3264 >  case 105:
3265 > #line 731 "conf_parser.y" /* yacc.c:1652  */
3266      {
3267    if (conf_parser_ctx.pass == 2)
3268      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3269   }
3270 < #line 3475 "conf_parser.c" /* yacc.c:1646  */
3270 > #line 3271 "conf_parser.c" /* yacc.c:1652  */
3271      break;
3272  
3273 <  case 108:
3274 < #line 920 "conf_parser.y" /* yacc.c:1646  */
3273 >  case 106:
3274 > #line 737 "conf_parser.y" /* yacc.c:1652  */
3275      {
3276    if (conf_parser_ctx.pass == 2)
3277      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3278   }
3279 < #line 3484 "conf_parser.c" /* yacc.c:1646  */
3279 > #line 3280 "conf_parser.c" /* yacc.c:1652  */
3280      break;
3281  
3282 <  case 109:
3283 < #line 929 "conf_parser.y" /* yacc.c:1646  */
3282 >  case 107:
3283 > #line 747 "conf_parser.y" /* yacc.c:1652  */
3284      {
3285    if (conf_parser_ctx.pass == 2)
3286      reset_block_state();
3287   }
3288 < #line 3493 "conf_parser.c" /* yacc.c:1646  */
3288 > #line 3289 "conf_parser.c" /* yacc.c:1652  */
3289      break;
3290  
3291 <  case 110:
3292 < #line 933 "conf_parser.y" /* yacc.c:1646  */
3291 >  case 108:
3292 > #line 751 "conf_parser.y" /* yacc.c:1652  */
3293      {
3294    if (conf_parser_ctx.pass != 2)
3295      break;
# Line 3507 | Line 3303 | yyreduce:
3303    pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3304                    block_state.prepend.buf, block_state.command.buf);
3305   }
3306 < #line 3511 "conf_parser.c" /* yacc.c:1646  */
3306 > #line 3307 "conf_parser.c" /* yacc.c:1652  */
3307      break;
3308  
3309 <  case 118:
3310 < #line 951 "conf_parser.y" /* yacc.c:1646  */
3309 >  case 116:
3310 > #line 769 "conf_parser.y" /* yacc.c:1652  */
3311      {
3312    if (conf_parser_ctx.pass == 2)
3313      strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3314   }
3315 < #line 3520 "conf_parser.c" /* yacc.c:1646  */
3315 > #line 3316 "conf_parser.c" /* yacc.c:1652  */
3316      break;
3317  
3318 <  case 119:
3319 < #line 957 "conf_parser.y" /* yacc.c:1646  */
3318 >  case 117:
3319 > #line 775 "conf_parser.y" /* yacc.c:1652  */
3320      {
3321    if (conf_parser_ctx.pass == 2)
3322      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3323   }
3324 < #line 3529 "conf_parser.c" /* yacc.c:1646  */
3324 > #line 3325 "conf_parser.c" /* yacc.c:1652  */
3325      break;
3326  
3327 <  case 120:
3328 < #line 963 "conf_parser.y" /* yacc.c:1646  */
3327 >  case 118:
3328 > #line 781 "conf_parser.y" /* yacc.c:1652  */
3329      {
3330    if (conf_parser_ctx.pass == 2)
3331      strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3332   }
3333 < #line 3538 "conf_parser.c" /* yacc.c:1646  */
3333 > #line 3334 "conf_parser.c" /* yacc.c:1652  */
3334      break;
3335  
3336 <  case 121:
3337 < #line 969 "conf_parser.y" /* yacc.c:1646  */
3336 >  case 119:
3337 > #line 787 "conf_parser.y" /* yacc.c:1652  */
3338      {
3339    if (conf_parser_ctx.pass == 2)
3340    {
# Line 3555 | Line 3351 | yyreduce:
3351      split_nuh(&nuh);
3352    }
3353   }
3354 < #line 3559 "conf_parser.c" /* yacc.c:1646  */
3354 > #line 3355 "conf_parser.c" /* yacc.c:1652  */
3355      break;
3356  
3357 <  case 128:
3358 < #line 996 "conf_parser.y" /* yacc.c:1646  */
3357 >  case 126:
3358 > #line 815 "conf_parser.y" /* yacc.c:1652  */
3359      {
3360    if (conf_parser_ctx.pass == 2)
3361      ConfigLog.use_logging = yylval.number;
3362   }
3363 < #line 3568 "conf_parser.c" /* yacc.c:1646  */
3363 > #line 3364 "conf_parser.c" /* yacc.c:1652  */
3364      break;
3365  
3366 <  case 129:
3367 < #line 1002 "conf_parser.y" /* yacc.c:1646  */
3366 >  case 127:
3367 > #line 821 "conf_parser.y" /* yacc.c:1652  */
3368      {
3369    if (conf_parser_ctx.pass == 2)
3370      reset_block_state();
3371   }
3372 < #line 3577 "conf_parser.c" /* yacc.c:1646  */
3372 > #line 3373 "conf_parser.c" /* yacc.c:1652  */
3373      break;
3374  
3375 <  case 130:
3376 < #line 1006 "conf_parser.y" /* yacc.c:1646  */
3375 >  case 128:
3376 > #line 825 "conf_parser.y" /* yacc.c:1652  */
3377      {
3378    if (conf_parser_ctx.pass != 2)
3379      break;
# Line 3586 | Line 3382 | yyreduce:
3382      log_set_file(block_state.type.value, block_state.size.value,
3383                   block_state.file.buf);
3384   }
3385 < #line 3590 "conf_parser.c" /* yacc.c:1646  */
3385 > #line 3386 "conf_parser.c" /* yacc.c:1652  */
3386      break;
3387  
3388 <  case 137:
3389 < #line 1022 "conf_parser.y" /* yacc.c:1646  */
3388 >  case 135:
3389 > #line 841 "conf_parser.y" /* yacc.c:1652  */
3390      {
3391    if (conf_parser_ctx.pass != 2)
3392      break;
3393  
3394    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3395   }
3396 < #line 3601 "conf_parser.c" /* yacc.c:1646  */
3396 > #line 3397 "conf_parser.c" /* yacc.c:1652  */
3397      break;
3398  
3399 <  case 138:
3400 < #line 1030 "conf_parser.y" /* yacc.c:1646  */
3399 >  case 136:
3400 > #line 849 "conf_parser.y" /* yacc.c:1652  */
3401      {
3402    block_state.size.value = (yyvsp[-1].number);
3403   }
3404 < #line 3609 "conf_parser.c" /* yacc.c:1646  */
3404 > #line 3405 "conf_parser.c" /* yacc.c:1652  */
3405      break;
3406  
3407 <  case 139:
3408 < #line 1033 "conf_parser.y" /* yacc.c:1646  */
3407 >  case 137:
3408 > #line 852 "conf_parser.y" /* yacc.c:1652  */
3409      {
3410    block_state.size.value = 0;
3411   }
3412 < #line 3617 "conf_parser.c" /* yacc.c:1646  */
3412 > #line 3413 "conf_parser.c" /* yacc.c:1652  */
3413      break;
3414  
3415 <  case 140:
3416 < #line 1038 "conf_parser.y" /* yacc.c:1646  */
3415 >  case 138:
3416 > #line 857 "conf_parser.y" /* yacc.c:1652  */
3417      {
3418    if (conf_parser_ctx.pass == 2)
3419      block_state.type.value = 0;
3420   }
3421 < #line 3626 "conf_parser.c" /* yacc.c:1646  */
3421 > #line 3422 "conf_parser.c" /* yacc.c:1652  */
3422      break;
3423  
3424 <  case 144:
3425 < #line 1045 "conf_parser.y" /* yacc.c:1646  */
3424 >  case 142:
3425 > #line 864 "conf_parser.y" /* yacc.c:1652  */
3426      {
3427    if (conf_parser_ctx.pass == 2)
3428      block_state.type.value = LOG_TYPE_USER;
3429   }
3430 < #line 3635 "conf_parser.c" /* yacc.c:1646  */
3430 > #line 3431 "conf_parser.c" /* yacc.c:1652  */
3431      break;
3432  
3433 <  case 145:
3434 < #line 1049 "conf_parser.y" /* yacc.c:1646  */
3433 >  case 143:
3434 > #line 868 "conf_parser.y" /* yacc.c:1652  */
3435      {
3436    if (conf_parser_ctx.pass == 2)
3437      block_state.type.value = LOG_TYPE_OPER;
3438   }
3439 < #line 3644 "conf_parser.c" /* yacc.c:1646  */
3439 > #line 3440 "conf_parser.c" /* yacc.c:1652  */
3440      break;
3441  
3442 <  case 146:
3443 < #line 1053 "conf_parser.y" /* yacc.c:1646  */
3442 >  case 144:
3443 > #line 872 "conf_parser.y" /* yacc.c:1652  */
3444      {
3445    if (conf_parser_ctx.pass == 2)
3446      block_state.type.value = LOG_TYPE_XLINE;
3447   }
3448 < #line 3653 "conf_parser.c" /* yacc.c:1646  */
3448 > #line 3449 "conf_parser.c" /* yacc.c:1652  */
3449      break;
3450  
3451 <  case 147:
3452 < #line 1057 "conf_parser.y" /* yacc.c:1646  */
3451 >  case 145:
3452 > #line 876 "conf_parser.y" /* yacc.c:1652  */
3453      {
3454    if (conf_parser_ctx.pass == 2)
3455      block_state.type.value = LOG_TYPE_RESV;
3456   }
3457 < #line 3662 "conf_parser.c" /* yacc.c:1646  */
3457 > #line 3458 "conf_parser.c" /* yacc.c:1652  */
3458      break;
3459  
3460 <  case 148:
3461 < #line 1061 "conf_parser.y" /* yacc.c:1646  */
3460 >  case 146:
3461 > #line 880 "conf_parser.y" /* yacc.c:1652  */
3462      {
3463    if (conf_parser_ctx.pass == 2)
3464      block_state.type.value = LOG_TYPE_DLINE;
3465   }
3466 < #line 3671 "conf_parser.c" /* yacc.c:1646  */
3466 > #line 3467 "conf_parser.c" /* yacc.c:1652  */
3467      break;
3468  
3469 <  case 149:
3470 < #line 1065 "conf_parser.y" /* yacc.c:1646  */
3469 >  case 147:
3470 > #line 884 "conf_parser.y" /* yacc.c:1652  */
3471      {
3472    if (conf_parser_ctx.pass == 2)
3473      block_state.type.value = LOG_TYPE_KLINE;
3474   }
3475 < #line 3680 "conf_parser.c" /* yacc.c:1646  */
3475 > #line 3476 "conf_parser.c" /* yacc.c:1652  */
3476      break;
3477  
3478 <  case 150:
3479 < #line 1069 "conf_parser.y" /* yacc.c:1646  */
3478 >  case 148:
3479 > #line 888 "conf_parser.y" /* yacc.c:1652  */
3480      {
3481    if (conf_parser_ctx.pass == 2)
3482      block_state.type.value = LOG_TYPE_KILL;
3483   }
3484 < #line 3689 "conf_parser.c" /* yacc.c:1646  */
3484 > #line 3485 "conf_parser.c" /* yacc.c:1652  */
3485      break;
3486  
3487 <  case 151:
3488 < #line 1073 "conf_parser.y" /* yacc.c:1646  */
3487 >  case 149:
3488 > #line 892 "conf_parser.y" /* yacc.c:1652  */
3489      {
3490    if (conf_parser_ctx.pass == 2)
3491      block_state.type.value = LOG_TYPE_DEBUG;
3492   }
3493 < #line 3698 "conf_parser.c" /* yacc.c:1646  */
3493 > #line 3494 "conf_parser.c" /* yacc.c:1652  */
3494      break;
3495  
3496 <  case 152:
3497 < #line 1083 "conf_parser.y" /* yacc.c:1646  */
3496 >  case 150:
3497 > #line 902 "conf_parser.y" /* yacc.c:1652  */
3498      {
3499    if (conf_parser_ctx.pass != 2)
3500      break;
# Line 3706 | Line 3502 | yyreduce:
3502    reset_block_state();
3503    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3504   }
3505 < #line 3710 "conf_parser.c" /* yacc.c:1646  */
3505 > #line 3506 "conf_parser.c" /* yacc.c:1652  */
3506      break;
3507  
3508 <  case 153:
3509 < #line 1090 "conf_parser.y" /* yacc.c:1646  */
3508 >  case 151:
3509 > #line 909 "conf_parser.y" /* yacc.c:1652  */
3510      {
3511 <  dlink_node *node = NULL;
3511 >  dlink_node *node;
3512  
3513    if (conf_parser_ctx.pass != 2)
3514      break;
3515  
3516    if (!block_state.name.buf[0])
3517      break;
3518 < #ifdef HAVE_LIBCRYPTO
3723 <  if (!block_state.file.buf[0] &&
3724 <      !block_state.rpass.buf[0])
3725 <    break;
3726 < #else
3518 >
3519    if (!block_state.rpass.buf[0])
3520      break;
3729 #endif
3521  
3522    DLINK_FOREACH(node, block_state.mask.list.head)
3523    {
3733    struct MaskItem *conf = NULL;
3524      struct split_nuh_item nuh;
3525 +    char *s = node->data;
3526  
3527 <    nuh.nuhmask  = node->data;
3527 >    if (EmptyString(s))
3528 >      continue;
3529 >
3530 >    nuh.nuhmask  = s;
3531      nuh.nickptr  = NULL;
3532      nuh.userptr  = block_state.user.buf;
3533      nuh.hostptr  = block_state.host.buf;
3534 +
3535      nuh.nicksize = 0;
3536      nuh.usersize = sizeof(block_state.user.buf);
3537      nuh.hostsize = sizeof(block_state.host.buf);
3538 +
3539      split_nuh(&nuh);
3540  
3541 <    conf         = conf_make(CONF_OPER);
3542 <    conf->name   = xstrdup(block_state.name.buf);
3543 <    conf->user   = xstrdup(block_state.user.buf);
3544 <    conf->host   = xstrdup(block_state.host.buf);
3541 >    struct MaskItem *conf = conf_make(CONF_OPER);
3542 >    conf->addr = xcalloc(sizeof(*conf->addr));
3543 >    conf->name = xstrdup(block_state.name.buf);
3544 >    conf->user = xstrdup(block_state.user.buf);
3545 >    conf->host = xstrdup(block_state.host.buf);
3546  
3547      if (block_state.cert.buf[0])
3548        conf->certfp = xstrdup(block_state.cert.buf);
# Line 3759 | Line 3556 | yyreduce:
3556      conf->flags = block_state.flags.value;
3557      conf->modes = block_state.modes.value;
3558      conf->port  = block_state.port.value;
3559 <    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3559 >    conf->htype = parse_netmask(conf->host, conf->addr, &conf->bits);
3560  
3561      conf_add_class_to_conf(conf, block_state.class.buf);
3765
3766 #ifdef HAVE_LIBCRYPTO
3767    if (block_state.file.buf[0])
3768    {
3769      BIO *file = NULL;
3770      RSA *pkey = NULL;
3771
3772      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3773      {
3774        ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- file doesn't exist");
3775        break;
3776      }
3777
3778      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3779        ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- key invalid; check key syntax");
3780      else
3781      {
3782        if (RSA_size(pkey) > 128)
3783          ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- key size must be 1024 or below");
3784        else
3785          conf->rsa_public_key = pkey;
3786      }
3787
3788      BIO_set_close(file, BIO_CLOSE);
3789      BIO_free(file);
3790    }
3791 #endif /* HAVE_LIBCRYPTO */
3562    }
3563   }
3564 < #line 3795 "conf_parser.c" /* yacc.c:1646  */
3564 > #line 3565 "conf_parser.c" /* yacc.c:1652  */
3565      break;
3566  
3567 <  case 168:
3568 < #line 1186 "conf_parser.y" /* yacc.c:1646  */
3567 >  case 165:
3568 > #line 978 "conf_parser.y" /* yacc.c:1652  */
3569      {
3570    if (conf_parser_ctx.pass == 2)
3571      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3572   }
3573 < #line 3804 "conf_parser.c" /* yacc.c:1646  */
3573 > #line 3574 "conf_parser.c" /* yacc.c:1652  */
3574      break;
3575  
3576 <  case 169:
3577 < #line 1192 "conf_parser.y" /* yacc.c:1646  */
3576 >  case 166:
3577 > #line 984 "conf_parser.y" /* yacc.c:1652  */
3578      {
3579    if (conf_parser_ctx.pass == 2)
3580      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3581   }
3582 < #line 3813 "conf_parser.c" /* yacc.c:1646  */
3582 > #line 3583 "conf_parser.c" /* yacc.c:1652  */
3583      break;
3584  
3585 <  case 170:
3586 < #line 1198 "conf_parser.y" /* yacc.c:1646  */
3585 >  case 167:
3586 > #line 990 "conf_parser.y" /* yacc.c:1652  */
3587      {
3588    if (conf_parser_ctx.pass == 2)
3589      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3590   }
3591 < #line 3822 "conf_parser.c" /* yacc.c:1646  */
3591 > #line 3592 "conf_parser.c" /* yacc.c:1652  */
3592      break;
3593  
3594 <  case 171:
3595 < #line 1204 "conf_parser.y" /* yacc.c:1646  */
3594 >  case 168:
3595 > #line 996 "conf_parser.y" /* yacc.c:1652  */
3596      {
3597    if (conf_parser_ctx.pass == 2)
3598      strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3599   }
3600 < #line 3831 "conf_parser.c" /* yacc.c:1646  */
3600 > #line 3601 "conf_parser.c" /* yacc.c:1652  */
3601      break;
3602  
3603 <  case 172:
3604 < #line 1210 "conf_parser.y" /* yacc.c:1646  */
3603 >  case 169:
3604 > #line 1002 "conf_parser.y" /* yacc.c:1652  */
3605      {
3606    if (conf_parser_ctx.pass != 2)
3607      break;
# Line 3841 | Line 3611 | yyreduce:
3611    else
3612      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3613   }
3614 < #line 3845 "conf_parser.c" /* yacc.c:1646  */
3845 <    break;
3846 <
3847 <  case 173:
3848 < #line 1221 "conf_parser.y" /* yacc.c:1646  */
3849 <    {
3850 <  if (conf_parser_ctx.pass == 2)
3851 <    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3852 < }
3853 < #line 3854 "conf_parser.c" /* yacc.c:1646  */
3614 > #line 3615 "conf_parser.c" /* yacc.c:1652  */
3615      break;
3616  
3617 <  case 174:
3618 < #line 1227 "conf_parser.y" /* yacc.c:1646  */
3617 >  case 170:
3618 > #line 1013 "conf_parser.y" /* yacc.c:1652  */
3619      {
3620    if (conf_parser_ctx.pass == 2)
3621      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3622   }
3623 < #line 3863 "conf_parser.c" /* yacc.c:1646  */
3623 > #line 3624 "conf_parser.c" /* yacc.c:1652  */
3624      break;
3625  
3626 <  case 175:
3627 < #line 1233 "conf_parser.y" /* yacc.c:1646  */
3626 >  case 171:
3627 > #line 1019 "conf_parser.y" /* yacc.c:1652  */
3628      {
3629    if (conf_parser_ctx.pass != 2)
3630      break;
3631  
3632    if (yylval.number)
3633 <    block_state.flags.value |= CONF_FLAGS_SSL;
3633 >    block_state.flags.value |= CONF_FLAGS_TLS;
3634    else
3635 <    block_state.flags.value &= ~CONF_FLAGS_SSL;
3635 >    block_state.flags.value &= ~CONF_FLAGS_TLS;
3636   }
3637 < #line 3877 "conf_parser.c" /* yacc.c:1646  */
3637 > #line 3638 "conf_parser.c" /* yacc.c:1652  */
3638      break;
3639  
3640 <  case 176:
3641 < #line 1244 "conf_parser.y" /* yacc.c:1646  */
3640 >  case 172:
3641 > #line 1030 "conf_parser.y" /* yacc.c:1652  */
3642      {
3643    if (conf_parser_ctx.pass == 2)
3644      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3645   }
3646 < #line 3886 "conf_parser.c" /* yacc.c:1646  */
3646 > #line 3647 "conf_parser.c" /* yacc.c:1652  */
3647      break;
3648  
3649 <  case 177:
3650 < #line 1250 "conf_parser.y" /* yacc.c:1646  */
3649 >  case 173:
3650 > #line 1036 "conf_parser.y" /* yacc.c:1652  */
3651      {
3652    if (conf_parser_ctx.pass == 2)
3653      block_state.modes.value = 0;
3654   }
3655 < #line 3895 "conf_parser.c" /* yacc.c:1646  */
3655 > #line 3656 "conf_parser.c" /* yacc.c:1652  */
3656      break;
3657  
3658 <  case 181:
3659 < #line 1257 "conf_parser.y" /* yacc.c:1646  */
3658 >  case 177:
3659 > #line 1043 "conf_parser.y" /* yacc.c:1652  */
3660      {
3661    if (conf_parser_ctx.pass == 2)
3662      block_state.modes.value |= UMODE_BOTS;
3663   }
3664 < #line 3904 "conf_parser.c" /* yacc.c:1646  */
3664 > #line 3665 "conf_parser.c" /* yacc.c:1652  */
3665      break;
3666  
3667 <  case 182:
3668 < #line 1261 "conf_parser.y" /* yacc.c:1646  */
3667 >  case 178:
3668 > #line 1047 "conf_parser.y" /* yacc.c:1652  */
3669      {
3670    if (conf_parser_ctx.pass == 2)
3671      block_state.modes.value |= UMODE_CCONN;
3672   }
3673 < #line 3913 "conf_parser.c" /* yacc.c:1646  */
3673 > #line 3674 "conf_parser.c" /* yacc.c:1652  */
3674      break;
3675  
3676 <  case 183:
3677 < #line 1265 "conf_parser.y" /* yacc.c:1646  */
3676 >  case 179:
3677 > #line 1051 "conf_parser.y" /* yacc.c:1652  */
3678      {
3679    if (conf_parser_ctx.pass == 2)
3680      block_state.modes.value |= UMODE_DEAF;
3681   }
3682 < #line 3922 "conf_parser.c" /* yacc.c:1646  */
3682 > #line 3683 "conf_parser.c" /* yacc.c:1652  */
3683      break;
3684  
3685 <  case 184:
3686 < #line 1269 "conf_parser.y" /* yacc.c:1646  */
3685 >  case 180:
3686 > #line 1055 "conf_parser.y" /* yacc.c:1652  */
3687      {
3688    if (conf_parser_ctx.pass == 2)
3689      block_state.modes.value |= UMODE_DEBUG;
3690   }
3691 < #line 3931 "conf_parser.c" /* yacc.c:1646  */
3691 > #line 3692 "conf_parser.c" /* yacc.c:1652  */
3692      break;
3693  
3694 <  case 185:
3695 < #line 1273 "conf_parser.y" /* yacc.c:1646  */
3694 >  case 181:
3695 > #line 1059 "conf_parser.y" /* yacc.c:1652  */
3696      {
3697    if (conf_parser_ctx.pass == 2)
3698      block_state.modes.value |= UMODE_FULL;
3699   }
3700 < #line 3940 "conf_parser.c" /* yacc.c:1646  */
3700 > #line 3701 "conf_parser.c" /* yacc.c:1652  */
3701      break;
3702  
3703 <  case 186:
3704 < #line 1277 "conf_parser.y" /* yacc.c:1646  */
3703 >  case 182:
3704 > #line 1063 "conf_parser.y" /* yacc.c:1652  */
3705      {
3706    if (conf_parser_ctx.pass == 2)
3707      block_state.modes.value |= UMODE_HIDDEN;
3708   }
3709 < #line 3949 "conf_parser.c" /* yacc.c:1646  */
3709 > #line 3710 "conf_parser.c" /* yacc.c:1652  */
3710      break;
3711  
3712 <  case 187:
3713 < #line 1281 "conf_parser.y" /* yacc.c:1646  */
3712 >  case 183:
3713 > #line 1067 "conf_parser.y" /* yacc.c:1652  */
3714      {
3715    if (conf_parser_ctx.pass == 2)
3716      block_state.modes.value |= UMODE_HIDECHANS;
3717   }
3718 < #line 3958 "conf_parser.c" /* yacc.c:1646  */
3718 > #line 3719 "conf_parser.c" /* yacc.c:1652  */
3719      break;
3720  
3721 <  case 188:
3722 < #line 1285 "conf_parser.y" /* yacc.c:1646  */
3721 >  case 184:
3722 > #line 1071 "conf_parser.y" /* yacc.c:1652  */
3723      {
3724    if (conf_parser_ctx.pass == 2)
3725      block_state.modes.value |= UMODE_HIDEIDLE;
3726   }
3727 < #line 3967 "conf_parser.c" /* yacc.c:1646  */
3727 > #line 3728 "conf_parser.c" /* yacc.c:1652  */
3728      break;
3729  
3730 <  case 189:
3731 < #line 1289 "conf_parser.y" /* yacc.c:1646  */
3730 >  case 185:
3731 > #line 1075 "conf_parser.y" /* yacc.c:1652  */
3732      {
3733    if (conf_parser_ctx.pass == 2)
3734      block_state.modes.value |= UMODE_SKILL;
3735   }
3736 < #line 3976 "conf_parser.c" /* yacc.c:1646  */
3736 > #line 3737 "conf_parser.c" /* yacc.c:1652  */
3737      break;
3738  
3739 <  case 190:
3740 < #line 1293 "conf_parser.y" /* yacc.c:1646  */
3739 >  case 186:
3740 > #line 1079 "conf_parser.y" /* yacc.c:1652  */
3741      {
3742    if (conf_parser_ctx.pass == 2)
3743      block_state.modes.value |= UMODE_NCHANGE;
3744   }
3745 < #line 3985 "conf_parser.c" /* yacc.c:1646  */
3745 > #line 3746 "conf_parser.c" /* yacc.c:1652  */
3746      break;
3747  
3748 <  case 191:
3749 < #line 1297 "conf_parser.y" /* yacc.c:1646  */
3748 >  case 187:
3749 > #line 1083 "conf_parser.y" /* yacc.c:1652  */
3750      {
3751    if (conf_parser_ctx.pass == 2)
3752      block_state.modes.value |= UMODE_REJ;
3753   }
3754 < #line 3994 "conf_parser.c" /* yacc.c:1646  */
3754 > #line 3755 "conf_parser.c" /* yacc.c:1652  */
3755      break;
3756  
3757 <  case 192:
3758 < #line 1301 "conf_parser.y" /* yacc.c:1646  */
3757 >  case 188:
3758 > #line 1087 "conf_parser.y" /* yacc.c:1652  */
3759      {
3760    if (conf_parser_ctx.pass == 2)
3761      block_state.modes.value |= UMODE_UNAUTH;
3762   }
3763 < #line 4003 "conf_parser.c" /* yacc.c:1646  */
3763 > #line 3764 "conf_parser.c" /* yacc.c:1652  */
3764      break;
3765  
3766 <  case 193:
3767 < #line 1305 "conf_parser.y" /* yacc.c:1646  */
3766 >  case 189:
3767 > #line 1091 "conf_parser.y" /* yacc.c:1652  */
3768      {
3769    if (conf_parser_ctx.pass == 2)
3770      block_state.modes.value |= UMODE_SPY;
3771   }
3772 < #line 4012 "conf_parser.c" /* yacc.c:1646  */
3772 > #line 3773 "conf_parser.c" /* yacc.c:1652  */
3773      break;
3774  
3775 <  case 194:
3776 < #line 1309 "conf_parser.y" /* yacc.c:1646  */
3775 >  case 190:
3776 > #line 1095 "conf_parser.y" /* yacc.c:1652  */
3777      {
3778    if (conf_parser_ctx.pass == 2)
3779      block_state.modes.value |= UMODE_EXTERNAL;
3780   }
3781 < #line 4021 "conf_parser.c" /* yacc.c:1646  */
3781 > #line 3782 "conf_parser.c" /* yacc.c:1652  */
3782      break;
3783  
3784 <  case 195:
3785 < #line 1313 "conf_parser.y" /* yacc.c:1646  */
3784 >  case 191:
3785 > #line 1099 "conf_parser.y" /* yacc.c:1652  */
3786      {
3787    if (conf_parser_ctx.pass == 2)
3788      block_state.modes.value |= UMODE_SERVNOTICE;
3789   }
3790 < #line 4030 "conf_parser.c" /* yacc.c:1646  */
3790 > #line 3791 "conf_parser.c" /* yacc.c:1652  */
3791      break;
3792  
3793 <  case 196:
3794 < #line 1317 "conf_parser.y" /* yacc.c:1646  */
3793 >  case 192:
3794 > #line 1103 "conf_parser.y" /* yacc.c:1652  */
3795      {
3796    if (conf_parser_ctx.pass == 2)
3797      block_state.modes.value |= UMODE_INVISIBLE;
3798   }
3799 < #line 4039 "conf_parser.c" /* yacc.c:1646  */
3799 > #line 3800 "conf_parser.c" /* yacc.c:1652  */
3800      break;
3801  
3802 <  case 197:
3803 < #line 1321 "conf_parser.y" /* yacc.c:1646  */
3802 >  case 193:
3803 > #line 1107 "conf_parser.y" /* yacc.c:1652  */
3804      {
3805    if (conf_parser_ctx.pass == 2)
3806      block_state.modes.value |= UMODE_WALLOP;
3807   }
3808 < #line 4048 "conf_parser.c" /* yacc.c:1646  */
3808 > #line 3809 "conf_parser.c" /* yacc.c:1652  */
3809      break;
3810  
3811 <  case 198:
3812 < #line 1325 "conf_parser.y" /* yacc.c:1646  */
3811 >  case 194:
3812 > #line 1111 "conf_parser.y" /* yacc.c:1652  */
3813      {
3814    if (conf_parser_ctx.pass == 2)
3815      block_state.modes.value |= UMODE_SOFTCALLERID;
3816   }
3817 < #line 4057 "conf_parser.c" /* yacc.c:1646  */
3817 > #line 3818 "conf_parser.c" /* yacc.c:1652  */
3818      break;
3819  
3820 <  case 199:
3821 < #line 1329 "conf_parser.y" /* yacc.c:1646  */
3820 >  case 195:
3821 > #line 1115 "conf_parser.y" /* yacc.c:1652  */
3822      {
3823    if (conf_parser_ctx.pass == 2)
3824      block_state.modes.value |= UMODE_CALLERID;
3825   }
3826 < #line 4066 "conf_parser.c" /* yacc.c:1646  */
3826 > #line 3827 "conf_parser.c" /* yacc.c:1652  */
3827      break;
3828  
3829 <  case 200:
3830 < #line 1333 "conf_parser.y" /* yacc.c:1646  */
3829 >  case 196:
3830 > #line 1119 "conf_parser.y" /* yacc.c:1652  */
3831      {
3832    if (conf_parser_ctx.pass == 2)
3833      block_state.modes.value |= UMODE_LOCOPS;
3834   }
3835 < #line 4075 "conf_parser.c" /* yacc.c:1646  */
3835 > #line 3836 "conf_parser.c" /* yacc.c:1652  */
3836      break;
3837  
3838 <  case 201:
3839 < #line 1337 "conf_parser.y" /* yacc.c:1646  */
3838 >  case 197:
3839 > #line 1123 "conf_parser.y" /* yacc.c:1652  */
3840      {
3841    if (conf_parser_ctx.pass == 2)
3842      block_state.modes.value |= UMODE_REGONLY;
3843   }
3844 < #line 4084 "conf_parser.c" /* yacc.c:1646  */
3844 > #line 3845 "conf_parser.c" /* yacc.c:1652  */
3845      break;
3846  
3847 <  case 202:
3848 < #line 1341 "conf_parser.y" /* yacc.c:1646  */
3847 >  case 198:
3848 > #line 1127 "conf_parser.y" /* yacc.c:1652  */
3849      {
3850    if (conf_parser_ctx.pass == 2)
3851      block_state.modes.value |= UMODE_FARCONNECT;
3852   }
3853 < #line 4093 "conf_parser.c" /* yacc.c:1646  */
3853 > #line 3854 "conf_parser.c" /* yacc.c:1652  */
3854 >    break;
3855 >
3856 >  case 199:
3857 > #line 1131 "conf_parser.y" /* yacc.c:1652  */
3858 >    {
3859 >  if (conf_parser_ctx.pass == 2)
3860 >    block_state.modes.value |= UMODE_EXPIRATION;
3861 > }
3862 > #line 3863 "conf_parser.c" /* yacc.c:1652  */
3863      break;
3864  
3865 <  case 203:
3866 < #line 1347 "conf_parser.y" /* yacc.c:1646  */
3865 >  case 200:
3866 > #line 1137 "conf_parser.y" /* yacc.c:1652  */
3867      {
3868    if (conf_parser_ctx.pass == 2)
3869      block_state.port.value = 0;
3870   }
3871 < #line 4102 "conf_parser.c" /* yacc.c:1646  */
3871 > #line 3872 "conf_parser.c" /* yacc.c:1652  */
3872      break;
3873  
3874 <  case 207:
3875 < #line 1354 "conf_parser.y" /* yacc.c:1646  */
3874 >  case 204:
3875 > #line 1144 "conf_parser.y" /* yacc.c:1652  */
3876      {
3877    if (conf_parser_ctx.pass == 2)
3878      block_state.port.value |= OPER_FLAG_KILL_REMOTE;
3879   }
3880 < #line 4111 "conf_parser.c" /* yacc.c:1646  */
3880 > #line 3881 "conf_parser.c" /* yacc.c:1652  */
3881      break;
3882  
3883 <  case 208:
3884 < #line 1358 "conf_parser.y" /* yacc.c:1646  */
3883 >  case 205:
3884 > #line 1148 "conf_parser.y" /* yacc.c:1652  */
3885      {
3886    if (conf_parser_ctx.pass == 2)
3887      block_state.port.value |= OPER_FLAG_KILL;
3888   }
3889 < #line 4120 "conf_parser.c" /* yacc.c:1646  */
3889 > #line 3890 "conf_parser.c" /* yacc.c:1652  */
3890      break;
3891  
3892 <  case 209:
3893 < #line 1362 "conf_parser.y" /* yacc.c:1646  */
3892 >  case 206:
3893 > #line 1152 "conf_parser.y" /* yacc.c:1652  */
3894      {
3895    if (conf_parser_ctx.pass == 2)
3896      block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
3897   }
3898 < #line 4129 "conf_parser.c" /* yacc.c:1646  */
3898 > #line 3899 "conf_parser.c" /* yacc.c:1652  */
3899      break;
3900  
3901 <  case 210:
3902 < #line 1366 "conf_parser.y" /* yacc.c:1646  */
3901 >  case 207:
3902 > #line 1156 "conf_parser.y" /* yacc.c:1652  */
3903      {
3904    if (conf_parser_ctx.pass == 2)
3905      block_state.port.value |= OPER_FLAG_CONNECT;
3906   }
3907 < #line 4138 "conf_parser.c" /* yacc.c:1646  */
3907 > #line 3908 "conf_parser.c" /* yacc.c:1652  */
3908      break;
3909  
3910 <  case 211:
3911 < #line 1370 "conf_parser.y" /* yacc.c:1646  */
3910 >  case 208:
3911 > #line 1160 "conf_parser.y" /* yacc.c:1652  */
3912      {
3913    if (conf_parser_ctx.pass == 2)
3914      block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
3915   }
3916 < #line 4147 "conf_parser.c" /* yacc.c:1646  */
3916 > #line 3917 "conf_parser.c" /* yacc.c:1652  */
3917      break;
3918  
3919 <  case 212:
3920 < #line 1374 "conf_parser.y" /* yacc.c:1646  */
3919 >  case 209:
3920 > #line 1164 "conf_parser.y" /* yacc.c:1652  */
3921      {
3922    if (conf_parser_ctx.pass == 2)
3923      block_state.port.value |= OPER_FLAG_SQUIT;
3924   }
3925 < #line 4156 "conf_parser.c" /* yacc.c:1646  */
3925 > #line 3926 "conf_parser.c" /* yacc.c:1652  */
3926      break;
3927  
3928 <  case 213:
3929 < #line 1378 "conf_parser.y" /* yacc.c:1646  */
3928 >  case 210:
3929 > #line 1168 "conf_parser.y" /* yacc.c:1652  */
3930      {
3931    if (conf_parser_ctx.pass == 2)
3932      block_state.port.value |= OPER_FLAG_KLINE;
3933   }
3934 < #line 4165 "conf_parser.c" /* yacc.c:1646  */
3934 > #line 3935 "conf_parser.c" /* yacc.c:1652  */
3935      break;
3936  
3937 <  case 214:
3938 < #line 1382 "conf_parser.y" /* yacc.c:1646  */
3937 >  case 211:
3938 > #line 1172 "conf_parser.y" /* yacc.c:1652  */
3939      {
3940    if (conf_parser_ctx.pass == 2)
3941      block_state.port.value |= OPER_FLAG_UNKLINE;
3942   }
3943 < #line 4174 "conf_parser.c" /* yacc.c:1646  */
3943 > #line 3944 "conf_parser.c" /* yacc.c:1652  */
3944      break;
3945  
3946 <  case 215:
3947 < #line 1386 "conf_parser.y" /* yacc.c:1646  */
3946 >  case 212:
3947 > #line 1176 "conf_parser.y" /* yacc.c:1652  */
3948      {
3949    if (conf_parser_ctx.pass == 2)
3950      block_state.port.value |= OPER_FLAG_DLINE;
3951   }
3952 < #line 4183 "conf_parser.c" /* yacc.c:1646  */
3952 > #line 3953 "conf_parser.c" /* yacc.c:1652  */
3953      break;
3954  
3955 <  case 216:
3956 < #line 1390 "conf_parser.y" /* yacc.c:1646  */
3955 >  case 213:
3956 > #line 1180 "conf_parser.y" /* yacc.c:1652  */
3957      {
3958    if (conf_parser_ctx.pass == 2)
3959      block_state.port.value |= OPER_FLAG_UNDLINE;
3960   }
3961 < #line 4192 "conf_parser.c" /* yacc.c:1646  */
3961 > #line 3962 "conf_parser.c" /* yacc.c:1652  */
3962      break;
3963  
3964 <  case 217:
3965 < #line 1394 "conf_parser.y" /* yacc.c:1646  */
3964 >  case 214:
3965 > #line 1184 "conf_parser.y" /* yacc.c:1652  */
3966      {
3967    if (conf_parser_ctx.pass == 2)
3968      block_state.port.value |= OPER_FLAG_XLINE;
3969   }
3970 < #line 4201 "conf_parser.c" /* yacc.c:1646  */
3970 > #line 3971 "conf_parser.c" /* yacc.c:1652  */
3971      break;
3972  
3973 <  case 218:
3974 < #line 1398 "conf_parser.y" /* yacc.c:1646  */
3973 >  case 215:
3974 > #line 1188 "conf_parser.y" /* yacc.c:1652  */
3975      {
3976    if (conf_parser_ctx.pass == 2)
3977      block_state.port.value |= OPER_FLAG_UNXLINE;
3978   }
3979 < #line 4210 "conf_parser.c" /* yacc.c:1646  */
3979 > #line 3980 "conf_parser.c" /* yacc.c:1652  */
3980      break;
3981  
3982 <  case 219:
3983 < #line 1402 "conf_parser.y" /* yacc.c:1646  */
3982 >  case 216:
3983 > #line 1192 "conf_parser.y" /* yacc.c:1652  */
3984      {
3985    if (conf_parser_ctx.pass == 2)
3986      block_state.port.value |= OPER_FLAG_DIE;
3987   }
3988 < #line 4219 "conf_parser.c" /* yacc.c:1646  */
3988 > #line 3989 "conf_parser.c" /* yacc.c:1652  */
3989      break;
3990  
3991 <  case 220:
3992 < #line 1406 "conf_parser.y" /* yacc.c:1646  */
3991 >  case 217:
3992 > #line 1196 "conf_parser.y" /* yacc.c:1652  */
3993      {
3994    if (conf_parser_ctx.pass == 2)
3995      block_state.port.value |= OPER_FLAG_RESTART;
3996   }
3997 < #line 4228 "conf_parser.c" /* yacc.c:1646  */
3997 > #line 3998 "conf_parser.c" /* yacc.c:1652  */
3998      break;
3999  
4000 <  case 221:
4001 < #line 1410 "conf_parser.y" /* yacc.c:1646  */
4000 >  case 218:
4001 > #line 1200 "conf_parser.y" /* yacc.c:1652  */
4002 >    {
4003 >  if (conf_parser_ctx.pass == 2)
4004 >    block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
4005 > }
4006 > #line 4007 "conf_parser.c" /* yacc.c:1652  */
4007 >    break;
4008 >
4009 >  case 219:
4010 > #line 1204 "conf_parser.y" /* yacc.c:1652  */
4011      {
4012    if (conf_parser_ctx.pass == 2)
4013      block_state.port.value |= OPER_FLAG_REHASH;
4014   }
4015 < #line 4237 "conf_parser.c" /* yacc.c:1646  */
4015 > #line 4016 "conf_parser.c" /* yacc.c:1652  */
4016      break;
4017  
4018 <  case 222:
4019 < #line 1414 "conf_parser.y" /* yacc.c:1646  */
4018 >  case 220:
4019 > #line 1208 "conf_parser.y" /* yacc.c:1652  */
4020      {
4021    if (conf_parser_ctx.pass == 2)
4022      block_state.port.value |= OPER_FLAG_ADMIN;
4023   }
4024 < #line 4246 "conf_parser.c" /* yacc.c:1646  */
4024 > #line 4025 "conf_parser.c" /* yacc.c:1652  */
4025      break;
4026  
4027 <  case 223:
4028 < #line 1418 "conf_parser.y" /* yacc.c:1646  */
4027 >  case 221:
4028 > #line 1212 "conf_parser.y" /* yacc.c:1652  */
4029      {
4030    if (conf_parser_ctx.pass == 2)
4031      block_state.port.value |= OPER_FLAG_GLOBOPS;
4032   }
4033 < #line 4255 "conf_parser.c" /* yacc.c:1646  */
4033 > #line 4034 "conf_parser.c" /* yacc.c:1652  */
4034      break;
4035  
4036 <  case 224:
4037 < #line 1422 "conf_parser.y" /* yacc.c:1646  */
4036 >  case 222:
4037 > #line 1216 "conf_parser.y" /* yacc.c:1652  */
4038      {
4039    if (conf_parser_ctx.pass == 2)
4040      block_state.port.value |= OPER_FLAG_WALLOPS;
4041   }
4042 < #line 4264 "conf_parser.c" /* yacc.c:1646  */
4042 > #line 4043 "conf_parser.c" /* yacc.c:1652  */
4043      break;
4044  
4045 <  case 225:
4046 < #line 1426 "conf_parser.y" /* yacc.c:1646  */
4045 >  case 223:
4046 > #line 1220 "conf_parser.y" /* yacc.c:1652  */
4047      {
4048    if (conf_parser_ctx.pass == 2)
4049      block_state.port.value |= OPER_FLAG_LOCOPS;
4050   }
4051 < #line 4273 "conf_parser.c" /* yacc.c:1646  */
4051 > #line 4052 "conf_parser.c" /* yacc.c:1652  */
4052      break;
4053  
4054 <  case 226:
4055 < #line 1430 "conf_parser.y" /* yacc.c:1646  */
4054 >  case 224:
4055 > #line 1224 "conf_parser.y" /* yacc.c:1652  */
4056      {
4057    if (conf_parser_ctx.pass == 2)
4058      block_state.port.value |= OPER_FLAG_REMOTEBAN;
4059   }
4060 < #line 4282 "conf_parser.c" /* yacc.c:1646  */
4060 > #line 4061 "conf_parser.c" /* yacc.c:1652  */
4061      break;
4062  
4063 <  case 227:
4064 < #line 1434 "conf_parser.y" /* yacc.c:1646  */
4063 >  case 225:
4064 > #line 1228 "conf_parser.y" /* yacc.c:1652  */
4065      {
4066    if (conf_parser_ctx.pass == 2)
4067      block_state.port.value |= OPER_FLAG_SET;
4068   }
4069 < #line 4291 "conf_parser.c" /* yacc.c:1646  */
4069 > #line 4070 "conf_parser.c" /* yacc.c:1652  */
4070      break;
4071  
4072 <  case 228:
4073 < #line 1438 "conf_parser.y" /* yacc.c:1646  */
4072 >  case 226:
4073 > #line 1232 "conf_parser.y" /* yacc.c:1652  */
4074      {
4075    if (conf_parser_ctx.pass == 2)
4076      block_state.port.value |= OPER_FLAG_MODULE;
4077   }
4078 < #line 4300 "conf_parser.c" /* yacc.c:1646  */
4078 > #line 4079 "conf_parser.c" /* yacc.c:1652  */
4079      break;
4080  
4081 <  case 229:
4082 < #line 1442 "conf_parser.y" /* yacc.c:1646  */
4081 >  case 227:
4082 > #line 1236 "conf_parser.y" /* yacc.c:1652  */
4083      {
4084    if (conf_parser_ctx.pass == 2)
4085      block_state.port.value |= OPER_FLAG_OPME;
4086   }
4087 < #line 4309 "conf_parser.c" /* yacc.c:1646  */
4087 > #line 4088 "conf_parser.c" /* yacc.c:1652  */
4088 >    break;
4089 >
4090 >  case 228:
4091 > #line 1240 "conf_parser.y" /* yacc.c:1652  */
4092 >    {
4093 >  if (conf_parser_ctx.pass == 2)
4094 >    block_state.port.value |= OPER_FLAG_NICK_RESV;
4095 > }
4096 > #line 4097 "conf_parser.c" /* yacc.c:1652  */
4097 >    break;
4098 >
4099 >  case 229:
4100 > #line 1244 "conf_parser.y" /* yacc.c:1652  */
4101 >    {
4102 >  if (conf_parser_ctx.pass == 2)
4103 >    block_state.port.value |= OPER_FLAG_JOIN_RESV;
4104 > }
4105 > #line 4106 "conf_parser.c" /* yacc.c:1652  */
4106      break;
4107  
4108    case 230:
4109 < #line 1452 "conf_parser.y" /* yacc.c:1646  */
4109 > #line 1248 "conf_parser.y" /* yacc.c:1652  */
4110 >    {
4111 >  if (conf_parser_ctx.pass == 2)
4112 >    block_state.port.value |= OPER_FLAG_RESV;
4113 > }
4114 > #line 4115 "conf_parser.c" /* yacc.c:1652  */
4115 >    break;
4116 >
4117 >  case 231:
4118 > #line 1252 "conf_parser.y" /* yacc.c:1652  */
4119 >    {
4120 >  if (conf_parser_ctx.pass == 2)
4121 >    block_state.port.value |= OPER_FLAG_UNRESV;
4122 > }
4123 > #line 4124 "conf_parser.c" /* yacc.c:1652  */
4124 >    break;
4125 >
4126 >  case 232:
4127 > #line 1256 "conf_parser.y" /* yacc.c:1652  */
4128 >    {
4129 >  if (conf_parser_ctx.pass == 2)
4130 >    block_state.port.value |= OPER_FLAG_CLOSE;
4131 > }
4132 > #line 4133 "conf_parser.c" /* yacc.c:1652  */
4133 >    break;
4134 >
4135 >  case 233:
4136 > #line 1266 "conf_parser.y" /* yacc.c:1652  */
4137      {
4138    if (conf_parser_ctx.pass != 1)
4139      break;
# Line 4318 | Line 4142 | yyreduce:
4142  
4143    block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4144    block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4321  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4145    block_state.max_sendq.value = DEFAULT_SENDQ;
4146    block_state.max_recvq.value = DEFAULT_RECVQ;
4147   }
4148 < #line 4326 "conf_parser.c" /* yacc.c:1646  */
4148 > #line 4149 "conf_parser.c" /* yacc.c:1652  */
4149      break;
4150  
4151 <  case 231:
4152 < #line 1464 "conf_parser.y" /* yacc.c:1646  */
4151 >  case 234:
4152 > #line 1277 "conf_parser.y" /* yacc.c:1652  */
4153      {
4331  struct ClassItem *class = NULL;
4332
4154    if (conf_parser_ctx.pass != 1)
4155      break;
4156  
4157    if (!block_state.class.buf[0])
4158      break;
4159  
4160 <  if (!(class = class_find(block_state.class.buf, 0)))
4160 >  struct ClassItem *class = class_find(block_state.class.buf, false);
4161 >  if (class == NULL)
4162      class = class_make();
4163  
4164 <  class->active = 1;
4165 <  MyFree(class->name);
4164 >  class->active = true;
4165 >  xfree(class->name);
4166    class->name = xstrdup(block_state.class.buf);
4167    class->ping_freq = block_state.ping_freq.value;
4168 <  class->max_perip = block_state.max_perip.value;
4168 >  class->max_perip_local = block_state.max_perip_local.value;
4169 >  class->max_perip_global = block_state.max_perip_global.value;
4170    class->con_freq = block_state.con_freq.value;
4171    class->max_total = block_state.max_total.value;
4349  class->max_global = block_state.max_global.value;
4350  class->max_local = block_state.max_local.value;
4351  class->max_ident = block_state.max_ident.value;
4172    class->max_sendq = block_state.max_sendq.value;
4173    class->max_recvq = block_state.max_recvq.value;
4174    class->max_channels = block_state.max_channels.value;
# Line 4364 | Line 4184 | yyreduce:
4184    class->min_idle = block_state.min_idle.value;
4185    class->max_idle = block_state.max_idle.value;
4186  
4187 <  rebuild_cidr_list(class);
4188 <
4187 >  bool diff = (class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value ||
4188 >               class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value);
4189    class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4190    class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4191    class->number_per_cidr = block_state.number_per_cidr.value;
4372 }
4373 #line 4374 "conf_parser.c" /* yacc.c:1646  */
4374    break;
4192  
4193 <  case 252:
4194 < #line 1528 "conf_parser.y" /* yacc.c:1646  */
4378 <    {
4379 <  if (conf_parser_ctx.pass == 1)
4380 <    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4193 >  if (diff)
4194 >    class_ip_limit_rebuild(class);
4195   }
4196 < #line 4383 "conf_parser.c" /* yacc.c:1646  */
4196 > #line 4197 "conf_parser.c" /* yacc.c:1652  */
4197      break;
4198  
4199    case 253:
4200 < #line 1534 "conf_parser.y" /* yacc.c:1646  */
4200 > #line 1340 "conf_parser.y" /* yacc.c:1652  */
4201      {
4202    if (conf_parser_ctx.pass == 1)
4203 <    block_state.ping_freq.value = (yyvsp[-1].number);
4203 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4204   }
4205 < #line 4392 "conf_parser.c" /* yacc.c:1646  */
4205 > #line 4206 "conf_parser.c" /* yacc.c:1652  */
4206      break;
4207  
4208    case 254:
4209 < #line 1540 "conf_parser.y" /* yacc.c:1646  */
4209 > #line 1346 "conf_parser.y" /* yacc.c:1652  */
4210      {
4211    if (conf_parser_ctx.pass == 1)
4212 <    block_state.max_perip.value = (yyvsp[-1].number);
4212 >    block_state.ping_freq.value = (yyvsp[-1].number);
4213   }
4214 < #line 4401 "conf_parser.c" /* yacc.c:1646  */
4214 > #line 4215 "conf_parser.c" /* yacc.c:1652  */
4215      break;
4216  
4217    case 255:
4218 < #line 1546 "conf_parser.y" /* yacc.c:1646  */
4218 > #line 1352 "conf_parser.y" /* yacc.c:1652  */
4219      {
4220    if (conf_parser_ctx.pass == 1)
4221 <    block_state.con_freq.value = (yyvsp[-1].number);
4221 >    block_state.max_perip_local.value = (yyvsp[-1].number);
4222   }
4223 < #line 4410 "conf_parser.c" /* yacc.c:1646  */
4223 > #line 4224 "conf_parser.c" /* yacc.c:1652  */
4224      break;
4225  
4226    case 256:
4227 < #line 1552 "conf_parser.y" /* yacc.c:1646  */
4227 > #line 1358 "conf_parser.y" /* yacc.c:1652  */
4228      {
4229    if (conf_parser_ctx.pass == 1)
4230 <    block_state.max_channels.value = (yyvsp[-1].number);
4230 >    block_state.max_perip_global.value = (yyvsp[-1].number);
4231   }
4232 < #line 4419 "conf_parser.c" /* yacc.c:1646  */
4232 > #line 4233 "conf_parser.c" /* yacc.c:1652  */
4233      break;
4234  
4235    case 257:
4236 < #line 1558 "conf_parser.y" /* yacc.c:1646  */
4236 > #line 1364 "conf_parser.y" /* yacc.c:1652  */
4237      {
4238    if (conf_parser_ctx.pass == 1)
4239 <    block_state.max_total.value = (yyvsp[-1].number);
4239 >    block_state.con_freq.value = (yyvsp[-1].number);
4240   }
4241 < #line 4428 "conf_parser.c" /* yacc.c:1646  */
4241 > #line 4242 "conf_parser.c" /* yacc.c:1652  */
4242      break;
4243  
4244    case 258:
4245 < #line 1564 "conf_parser.y" /* yacc.c:1646  */
4245 > #line 1370 "conf_parser.y" /* yacc.c:1652  */
4246      {
4247    if (conf_parser_ctx.pass == 1)
4248 <    block_state.max_global.value = (yyvsp[-1].number);
4248 >    block_state.max_channels.value = (yyvsp[-1].number);
4249   }
4250 < #line 4437 "conf_parser.c" /* yacc.c:1646  */
4250 > #line 4251 "conf_parser.c" /* yacc.c:1652  */
4251      break;
4252  
4253    case 259:
4254 < #line 1570 "conf_parser.y" /* yacc.c:1646  */
4254 > #line 1376 "conf_parser.y" /* yacc.c:1652  */
4255      {
4256    if (conf_parser_ctx.pass == 1)
4257 <    block_state.max_local.value = (yyvsp[-1].number);
4257 >    block_state.max_total.value = (yyvsp[-1].number);
4258   }
4259 < #line 4446 "conf_parser.c" /* yacc.c:1646  */
4259 > #line 4260 "conf_parser.c" /* yacc.c:1652  */
4260      break;
4261  
4262    case 260:
4263 < #line 1576 "conf_parser.y" /* yacc.c:1646  */
4450 <    {
4451 <  if (conf_parser_ctx.pass == 1)
4452 <    block_state.max_ident.value = (yyvsp[-1].number);
4453 < }
4454 < #line 4455 "conf_parser.c" /* yacc.c:1646  */
4455 <    break;
4456 <
4457 <  case 261:
4458 < #line 1582 "conf_parser.y" /* yacc.c:1646  */
4263 > #line 1382 "conf_parser.y" /* yacc.c:1652  */
4264      {
4265    if (conf_parser_ctx.pass == 1)
4266      block_state.max_sendq.value = (yyvsp[-1].number);
4267   }
4268 < #line 4464 "conf_parser.c" /* yacc.c:1646  */
4268 > #line 4269 "conf_parser.c" /* yacc.c:1652  */
4269      break;
4270  
4271 <  case 262:
4272 < #line 1588 "conf_parser.y" /* yacc.c:1646  */
4271 >  case 261:
4272 > #line 1388 "conf_parser.y" /* yacc.c:1652  */
4273      {
4274    if (conf_parser_ctx.pass == 1)
4275      if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4276        block_state.max_recvq.value = (yyvsp[-1].number);
4277   }
4278 < #line 4474 "conf_parser.c" /* yacc.c:1646  */
4278 > #line 4279 "conf_parser.c" /* yacc.c:1652  */
4279      break;
4280  
4281 <  case 263:
4282 < #line 1595 "conf_parser.y" /* yacc.c:1646  */
4281 >  case 262:
4282 > #line 1395 "conf_parser.y" /* yacc.c:1652  */
4283      {
4284    if (conf_parser_ctx.pass == 1)
4285      block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4286   }
4287 < #line 4483 "conf_parser.c" /* yacc.c:1646  */
4287 > #line 4288 "conf_parser.c" /* yacc.c:1652  */
4288      break;
4289  
4290 <  case 264:
4291 < #line 1601 "conf_parser.y" /* yacc.c:1646  */
4290 >  case 263:
4291 > #line 1401 "conf_parser.y" /* yacc.c:1652  */
4292      {
4293    if (conf_parser_ctx.pass == 1)
4294      block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4295   }
4296 < #line 4492 "conf_parser.c" /* yacc.c:1646  */
4296 > #line 4297 "conf_parser.c" /* yacc.c:1652  */
4297      break;
4298  
4299 <  case 265:
4300 < #line 1607 "conf_parser.y" /* yacc.c:1646  */
4299 >  case 264:
4300 > #line 1407 "conf_parser.y" /* yacc.c:1652  */
4301      {
4302    if (conf_parser_ctx.pass == 1)
4303      block_state.number_per_cidr.value = (yyvsp[-1].number);
4304   }
4305 < #line 4501 "conf_parser.c" /* yacc.c:1646  */
4305 > #line 4306 "conf_parser.c" /* yacc.c:1652  */
4306      break;
4307  
4308 <  case 266:
4309 < #line 1613 "conf_parser.y" /* yacc.c:1646  */
4308 >  case 265:
4309 > #line 1413 "conf_parser.y" /* yacc.c:1652  */
4310      {
4311    if (conf_parser_ctx.pass != 1)
4312      break;
# Line 4509 | Line 4314 | yyreduce:
4314    block_state.min_idle.value = (yyvsp[-1].number);
4315    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4316   }
4317 < #line 4513 "conf_parser.c" /* yacc.c:1646  */
4317 > #line 4318 "conf_parser.c" /* yacc.c:1652  */
4318      break;
4319  
4320 <  case 267:
4321 < #line 1622 "conf_parser.y" /* yacc.c:1646  */
4320 >  case 266:
4321 > #line 1422 "conf_parser.y" /* yacc.c:1652  */
4322      {
4323    if (conf_parser_ctx.pass != 1)
4324      break;
# Line 4521 | Line 4326 | yyreduce:
4326    block_state.max_idle.value = (yyvsp[-1].number);
4327    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4328   }
4329 < #line 4525 "conf_parser.c" /* yacc.c:1646  */
4329 > #line 4330 "conf_parser.c" /* yacc.c:1652  */
4330      break;
4331  
4332 <  case 268:
4333 < #line 1631 "conf_parser.y" /* yacc.c:1646  */
4332 >  case 267:
4333 > #line 1431 "conf_parser.y" /* yacc.c:1652  */
4334      {
4335    if (conf_parser_ctx.pass == 1)
4336      block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4337   }
4338 < #line 4534 "conf_parser.c" /* yacc.c:1646  */
4338 > #line 4339 "conf_parser.c" /* yacc.c:1652  */
4339      break;
4340  
4341 <  case 272:
4342 < #line 1638 "conf_parser.y" /* yacc.c:1646  */
4341 >  case 271:
4342 > #line 1438 "conf_parser.y" /* yacc.c:1652  */
4343      {
4344    if (conf_parser_ctx.pass == 1)
4345      block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4346   }
4347 < #line 4543 "conf_parser.c" /* yacc.c:1646  */
4347 > #line 4348 "conf_parser.c" /* yacc.c:1652  */
4348      break;
4349  
4350 <  case 273:
4351 < #line 1642 "conf_parser.y" /* yacc.c:1646  */
4350 >  case 272:
4351 > #line 1442 "conf_parser.y" /* yacc.c:1652  */
4352      {
4353    if (conf_parser_ctx.pass == 1)
4354      block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4355   }
4356 < #line 4552 "conf_parser.c" /* yacc.c:1646  */
4356 > #line 4357 "conf_parser.c" /* yacc.c:1652  */
4357      break;
4358  
4359 <  case 274:
4360 < #line 1652 "conf_parser.y" /* yacc.c:1646  */
4359 >  case 273:
4360 > #line 1452 "conf_parser.y" /* yacc.c:1652  */
4361      {
4362    if (conf_parser_ctx.pass == 2)
4363      reset_block_state();
4364   }
4365 < #line 4561 "conf_parser.c" /* yacc.c:1646  */
4365 > #line 4366 "conf_parser.c" /* yacc.c:1652  */
4366      break;
4367  
4368 <  case 276:
4369 < #line 1658 "conf_parser.y" /* yacc.c:1646  */
4368 >  case 275:
4369 > #line 1458 "conf_parser.y" /* yacc.c:1652  */
4370      {
4371    block_state.flags.value = 0;
4372   }
4373 < #line 4569 "conf_parser.c" /* yacc.c:1646  */
4373 > #line 4374 "conf_parser.c" /* yacc.c:1652  */
4374 >    break;
4375 >
4376 >  case 279:
4377 > #line 1464 "conf_parser.y" /* yacc.c:1652  */
4378 >    {
4379 >  if (conf_parser_ctx.pass == 2)
4380 >    block_state.flags.value |= LISTENER_TLS;
4381 > }
4382 > #line 4383 "conf_parser.c" /* yacc.c:1652  */
4383      break;
4384  
4385    case 280:
4386 < #line 1664 "conf_parser.y" /* yacc.c:1646  */
4386 > #line 1468 "conf_parser.y" /* yacc.c:1652  */
4387      {
4388    if (conf_parser_ctx.pass == 2)
4389 <    block_state.flags.value |= LISTENER_SSL;
4389 >    block_state.flags.value |= LISTENER_HIDDEN;
4390   }
4391 < #line 4578 "conf_parser.c" /* yacc.c:1646  */
4391 > #line 4392 "conf_parser.c" /* yacc.c:1652  */
4392      break;
4393  
4394    case 281:
4395 < #line 1668 "conf_parser.y" /* yacc.c:1646  */
4395 > #line 1472 "conf_parser.y" /* yacc.c:1652  */
4396      {
4397    if (conf_parser_ctx.pass == 2)
4398 <    block_state.flags.value |= LISTENER_HIDDEN;
4398 >   block_state.flags.value |= LISTENER_SERVER;
4399   }
4400 < #line 4587 "conf_parser.c" /* yacc.c:1646  */
4400 > #line 4401 "conf_parser.c" /* yacc.c:1652  */
4401      break;
4402  
4403    case 282:
4404 < #line 1672 "conf_parser.y" /* yacc.c:1646  */
4404 > #line 1476 "conf_parser.y" /* yacc.c:1652  */
4405      {
4406    if (conf_parser_ctx.pass == 2)
4407 <   block_state.flags.value |= LISTENER_SERVER;
4407 >   block_state.flags.value |= LISTENER_CLIENT;
4408   }
4409 < #line 4596 "conf_parser.c" /* yacc.c:1646  */
4409 > #line 4410 "conf_parser.c" /* yacc.c:1652  */
4410      break;
4411  
4412 <  case 290:
4413 < #line 1680 "conf_parser.y" /* yacc.c:1646  */
4412 >  case 283:
4413 > #line 1480 "conf_parser.y" /* yacc.c:1652  */
4414 >    {
4415 >  if (conf_parser_ctx.pass == 2)
4416 >   block_state.flags.value |= LISTENER_DEFER;
4417 > }
4418 > #line 4419 "conf_parser.c" /* yacc.c:1652  */
4419 >    break;
4420 >
4421 >  case 291:
4422 > #line 1488 "conf_parser.y" /* yacc.c:1652  */
4423      { block_state.flags.value = 0; }
4424 < #line 4602 "conf_parser.c" /* yacc.c:1646  */
4424 > #line 4425 "conf_parser.c" /* yacc.c:1652  */
4425      break;
4426  
4427 <  case 294:
4428 < #line 1685 "conf_parser.y" /* yacc.c:1646  */
4427 >  case 295:
4428 > #line 1493 "conf_parser.y" /* yacc.c:1652  */
4429      {
4430    if (conf_parser_ctx.pass == 2)
4431    {
4432 < #ifndef HAVE_LIBCRYPTO
4433 <    if (block_state.flags.value & LISTENER_SSL)
4432 > #ifndef HAVE_TLS
4433 >    if (block_state.flags.value & LISTENER_TLS)
4434      {
4435 <      conf_error_report("SSL not available - port closed");
4435 >      conf_error_report("TLS not available - port closed");
4436        break;
4437      }
4438   #endif
4439 <    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4439 >    listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4440    }
4441   }
4442 < #line 4620 "conf_parser.c" /* yacc.c:1646  */
4442 > #line 4443 "conf_parser.c" /* yacc.c:1652  */
4443      break;
4444  
4445 <  case 295:
4446 < #line 1698 "conf_parser.y" /* yacc.c:1646  */
4445 >  case 296:
4446 > #line 1506 "conf_parser.y" /* yacc.c:1652  */
4447      {
4448    if (conf_parser_ctx.pass == 2)
4449    {
4450 < #ifndef HAVE_LIBCRYPTO
4451 <    if (block_state.flags.value & LISTENER_SSL)
4450 > #ifndef HAVE_TLS
4451 >    if (block_state.flags.value & LISTENER_TLS)
4452      {
4453 <      conf_error_report("SSL not available - port closed");
4453 >      conf_error_report("TLS not available - port closed");
4454        break;
4455      }
4456   #endif
4457  
4458      for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4459 <      add_listener(i, block_state.addr.buf, block_state.flags.value);
4459 >      listener_add(i, block_state.addr.buf, block_state.flags.value);
4460    }
4461   }
4462 < #line 4640 "conf_parser.c" /* yacc.c:1646  */
4462 > #line 4463 "conf_parser.c" /* yacc.c:1652  */
4463      break;
4464  
4465 <  case 296:
4466 < #line 1715 "conf_parser.y" /* yacc.c:1646  */
4465 >  case 297:
4466 > #line 1523 "conf_parser.y" /* yacc.c:1652  */
4467      {
4468    if (conf_parser_ctx.pass == 2)
4469      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4470   }
4471 < #line 4649 "conf_parser.c" /* yacc.c:1646  */
4471 > #line 4472 "conf_parser.c" /* yacc.c:1652  */
4472      break;
4473  
4474 <  case 297:
4475 < #line 1721 "conf_parser.y" /* yacc.c:1646  */
4474 >  case 298:
4475 > #line 1529 "conf_parser.y" /* yacc.c:1652  */
4476      {
4477    if (conf_parser_ctx.pass == 2)
4478      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4479   }
4480 < #line 4658 "conf_parser.c" /* yacc.c:1646  */
4480 > #line 4481 "conf_parser.c" /* yacc.c:1652  */
4481      break;
4482  
4483 <  case 298:
4484 < #line 1730 "conf_parser.y" /* yacc.c:1646  */
4483 >  case 299:
4484 > #line 1539 "conf_parser.y" /* yacc.c:1652  */
4485      {
4486    if (conf_parser_ctx.pass == 2)
4487      reset_block_state();
4488   }
4489 < #line 4667 "conf_parser.c" /* yacc.c:1646  */
4489 > #line 4490 "conf_parser.c" /* yacc.c:1652  */
4490      break;
4491  
4492 <  case 299:
4493 < #line 1734 "conf_parser.y" /* yacc.c:1646  */
4492 >  case 300:
4493 > #line 1543 "conf_parser.y" /* yacc.c:1652  */
4494      {
4495 <  dlink_node *node = NULL;
4495 >  dlink_node *node;
4496  
4497    if (conf_parser_ctx.pass != 2)
4498      break;
4499  
4500    DLINK_FOREACH(node, block_state.mask.list.head)
4501    {
4679    struct MaskItem *conf = NULL;
4502      struct split_nuh_item nuh;
4503 +    char *s = node->data;
4504  
4505 <    nuh.nuhmask  = node->data;
4505 >    if (EmptyString(s))
4506 >      continue;
4507 >
4508 >    nuh.nuhmask  = s;
4509      nuh.nickptr  = NULL;
4510      nuh.userptr  = block_state.user.buf;
4511      nuh.hostptr  = block_state.host.buf;
4512 +
4513      nuh.nicksize = 0;
4514      nuh.usersize = sizeof(block_state.user.buf);
4515      nuh.hostsize = sizeof(block_state.host.buf);
4516 +
4517      split_nuh(&nuh);
4518  
4519 <    conf        = conf_make(CONF_CLIENT);
4520 <    conf->user  = xstrdup(block_state.user.buf);
4521 <    conf->host  = xstrdup(block_state.host.buf);
4519 >    struct MaskItem *conf = conf_make(CONF_CLIENT);
4520 >    conf->user = xstrdup(block_state.user.buf);
4521 >    conf->host = xstrdup(block_state.host.buf);
4522  
4523      if (block_state.rpass.buf[0])
4524        conf->passwd = xstrdup(block_state.rpass.buf);
# Line 4698 | Line 4526 | yyreduce:
4526        conf->name = xstrdup(block_state.name.buf);
4527  
4528      conf->flags = block_state.flags.value;
4529 <    conf->port  = block_state.port.value;
4529 >    conf->port = block_state.port.value;
4530  
4531      conf_add_class_to_conf(conf, block_state.class.buf);
4532      add_conf_by_address(CONF_CLIENT, conf);
4533    }
4534   }
4535 < #line 4708 "conf_parser.c" /* yacc.c:1646  */
4535 > #line 4536 "conf_parser.c" /* yacc.c:1652  */
4536      break;
4537  
4538 <  case 311:
4539 < #line 1783 "conf_parser.y" /* yacc.c:1646  */
4538 >  case 312:
4539 > #line 1597 "conf_parser.y" /* yacc.c:1652  */
4540      {
4541    if (conf_parser_ctx.pass == 2)
4542      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4543   }
4544 < #line 4717 "conf_parser.c" /* yacc.c:1646  */
4544 > #line 4545 "conf_parser.c" /* yacc.c:1652  */
4545      break;
4546  
4547 <  case 312:
4548 < #line 1789 "conf_parser.y" /* yacc.c:1646  */
4547 >  case 313:
4548 > #line 1603 "conf_parser.y" /* yacc.c:1652  */
4549      {
4550    if (conf_parser_ctx.pass == 2)
4551      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4552   }
4553 < #line 4726 "conf_parser.c" /* yacc.c:1646  */
4553 > #line 4554 "conf_parser.c" /* yacc.c:1652  */
4554      break;
4555  
4556 <  case 313:
4557 < #line 1795 "conf_parser.y" /* yacc.c:1646  */
4556 >  case 314:
4557 > #line 1609 "conf_parser.y" /* yacc.c:1652  */
4558      {
4559    if (conf_parser_ctx.pass == 2)
4560      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4561   }
4562 < #line 4735 "conf_parser.c" /* yacc.c:1646  */
4562 > #line 4563 "conf_parser.c" /* yacc.c:1652  */
4563      break;
4564  
4565 <  case 314:
4566 < #line 1801 "conf_parser.y" /* yacc.c:1646  */
4565 >  case 315:
4566 > #line 1615 "conf_parser.y" /* yacc.c:1652  */
4567      {
4568    if (conf_parser_ctx.pass == 2)
4569    {
# Line 4745 | Line 4573 | yyreduce:
4573        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4574    }
4575   }
4576 < #line 4749 "conf_parser.c" /* yacc.c:1646  */
4576 > #line 4577 "conf_parser.c" /* yacc.c:1652  */
4577      break;
4578  
4579 <  case 315:
4580 < #line 1812 "conf_parser.y" /* yacc.c:1646  */
4579 >  case 316:
4580 > #line 1626 "conf_parser.y" /* yacc.c:1652  */
4581      {
4582    if (conf_parser_ctx.pass == 2)
4583      block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4584   }
4585 < #line 4758 "conf_parser.c" /* yacc.c:1646  */
4758 <    break;
4759 <
4760 <  case 319:
4761 < #line 1819 "conf_parser.y" /* yacc.c:1646  */
4762 <    {
4763 <  if (conf_parser_ctx.pass == 2)
4764 <    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4765 < }
4766 < #line 4767 "conf_parser.c" /* yacc.c:1646  */
4585 > #line 4586 "conf_parser.c" /* yacc.c:1652  */
4586      break;
4587  
4588    case 320:
4589 < #line 1823 "conf_parser.y" /* yacc.c:1646  */
4589 > #line 1633 "conf_parser.y" /* yacc.c:1652  */
4590      {
4591    if (conf_parser_ctx.pass == 2)
4592      block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4593   }
4594 < #line 4776 "conf_parser.c" /* yacc.c:1646  */
4594 > #line 4595 "conf_parser.c" /* yacc.c:1652  */
4595      break;
4596  
4597    case 321:
4598 < #line 1827 "conf_parser.y" /* yacc.c:1646  */
4598 > #line 1637 "conf_parser.y" /* yacc.c:1652  */
4599      {
4600    if (conf_parser_ctx.pass == 2)
4601      block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4602   }
4603 < #line 4785 "conf_parser.c" /* yacc.c:1646  */
4603 > #line 4604 "conf_parser.c" /* yacc.c:1652  */
4604      break;
4605  
4606    case 322:
4607 < #line 1831 "conf_parser.y" /* yacc.c:1646  */
4607 > #line 1641 "conf_parser.y" /* yacc.c:1652  */
4608      {
4609    if (conf_parser_ctx.pass == 2)
4610      block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4611   }
4612 < #line 4794 "conf_parser.c" /* yacc.c:1646  */
4612 > #line 4613 "conf_parser.c" /* yacc.c:1652  */
4613      break;
4614  
4615    case 323:
4616 < #line 1835 "conf_parser.y" /* yacc.c:1646  */
4616 > #line 1645 "conf_parser.y" /* yacc.c:1652  */
4617      {
4618    if (conf_parser_ctx.pass == 2)
4619      block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4620   }
4621 < #line 4803 "conf_parser.c" /* yacc.c:1646  */
4621 > #line 4622 "conf_parser.c" /* yacc.c:1652  */
4622      break;
4623  
4624    case 324:
4625 < #line 1839 "conf_parser.y" /* yacc.c:1646  */
4625 > #line 1649 "conf_parser.y" /* yacc.c:1652  */
4626      {
4627    if (conf_parser_ctx.pass == 2)
4628      block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4629   }
4630 < #line 4812 "conf_parser.c" /* yacc.c:1646  */
4630 > #line 4631 "conf_parser.c" /* yacc.c:1652  */
4631      break;
4632  
4633    case 325:
4634 < #line 1843 "conf_parser.y" /* yacc.c:1646  */
4634 > #line 1653 "conf_parser.y" /* yacc.c:1652  */
4635      {
4636    if (conf_parser_ctx.pass == 2)
4637      block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4638   }
4639 < #line 4821 "conf_parser.c" /* yacc.c:1646  */
4639 > #line 4640 "conf_parser.c" /* yacc.c:1652  */
4640      break;
4641  
4642    case 326:
4643 < #line 1847 "conf_parser.y" /* yacc.c:1646  */
4643 > #line 1657 "conf_parser.y" /* yacc.c:1652  */
4644      {
4645    if (conf_parser_ctx.pass == 2)
4646      block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4647   }
4648 < #line 4830 "conf_parser.c" /* yacc.c:1646  */
4648 > #line 4649 "conf_parser.c" /* yacc.c:1652  */
4649      break;
4650  
4651    case 327:
4652 < #line 1851 "conf_parser.y" /* yacc.c:1646  */
4652 > #line 1661 "conf_parser.y" /* yacc.c:1652  */
4653      {
4654    if (conf_parser_ctx.pass == 2)
4655      block_state.flags.value |= CONF_FLAGS_WEBIRC;
4656   }
4657 < #line 4839 "conf_parser.c" /* yacc.c:1646  */
4657 > #line 4658 "conf_parser.c" /* yacc.c:1652  */
4658      break;
4659  
4660    case 328:
4661 < #line 1855 "conf_parser.y" /* yacc.c:1646  */
4661 > #line 1665 "conf_parser.y" /* yacc.c:1652  */
4662      {
4663    if (conf_parser_ctx.pass == 2)
4664      block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4665   }
4666 < #line 4848 "conf_parser.c" /* yacc.c:1646  */
4666 > #line 4667 "conf_parser.c" /* yacc.c:1652  */
4667      break;
4668  
4669    case 329:
4670 < #line 1861 "conf_parser.y" /* yacc.c:1646  */
4670 > #line 1671 "conf_parser.y" /* yacc.c:1652  */
4671      {
4672    if (conf_parser_ctx.pass != 2)
4673      break;
# Line 4861 | Line 4680 | yyreduce:
4680    else
4681      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4682   }
4683 < #line 4865 "conf_parser.c" /* yacc.c:1646  */
4683 > #line 4684 "conf_parser.c" /* yacc.c:1652  */
4684      break;
4685  
4686    case 330:
4687 < #line 1875 "conf_parser.y" /* yacc.c:1646  */
4687 > #line 1685 "conf_parser.y" /* yacc.c:1652  */
4688      {
4689    if (conf_parser_ctx.pass != 2)
4690      break;
# Line 4873 | Line 4692 | yyreduce:
4692    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4693    block_state.flags.value |= CONF_FLAGS_REDIR;
4694   }
4695 < #line 4877 "conf_parser.c" /* yacc.c:1646  */
4695 > #line 4696 "conf_parser.c" /* yacc.c:1652  */
4696      break;
4697  
4698    case 331:
4699 < #line 1884 "conf_parser.y" /* yacc.c:1646  */
4699 > #line 1694 "conf_parser.y" /* yacc.c:1652  */
4700      {
4701    if (conf_parser_ctx.pass != 2)
4702      break;
# Line 4885 | Line 4704 | yyreduce:
4704    block_state.flags.value |= CONF_FLAGS_REDIR;
4705    block_state.port.value = (yyvsp[-1].number);
4706   }
4707 < #line 4889 "conf_parser.c" /* yacc.c:1646  */
4707 > #line 4708 "conf_parser.c" /* yacc.c:1652  */
4708      break;
4709  
4710    case 332:
4711 < #line 1897 "conf_parser.y" /* yacc.c:1646  */
4711 > #line 1707 "conf_parser.y" /* yacc.c:1652  */
4712      {
4713    if (conf_parser_ctx.pass != 2)
4714      break;
# Line 4897 | Line 4716 | yyreduce:
4716    reset_block_state();
4717    strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4718   }
4719 < #line 4901 "conf_parser.c" /* yacc.c:1646  */
4719 > #line 4720 "conf_parser.c" /* yacc.c:1652  */
4720      break;
4721  
4722    case 333:
4723 < #line 1904 "conf_parser.y" /* yacc.c:1646  */
4723 > #line 1714 "conf_parser.y" /* yacc.c:1652  */
4724      {
4725    if (conf_parser_ctx.pass != 2)
4726      break;
4727  
4728 <  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4728 >  resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4729   }
4730 < #line 4912 "conf_parser.c" /* yacc.c:1646  */
4730 > #line 4731 "conf_parser.c" /* yacc.c:1652  */
4731      break;
4732  
4733    case 340:
4734 < #line 1915 "conf_parser.y" /* yacc.c:1646  */
4734 > #line 1725 "conf_parser.y" /* yacc.c:1652  */
4735      {
4736    if (conf_parser_ctx.pass == 2)
4737      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4738   }
4739 < #line 4921 "conf_parser.c" /* yacc.c:1646  */
4739 > #line 4740 "conf_parser.c" /* yacc.c:1652  */
4740      break;
4741  
4742    case 341:
4743 < #line 1921 "conf_parser.y" /* yacc.c:1646  */
4743 > #line 1731 "conf_parser.y" /* yacc.c:1652  */
4744      {
4745    if (conf_parser_ctx.pass == 2)
4746      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4747   }
4748 < #line 4930 "conf_parser.c" /* yacc.c:1646  */
4748 > #line 4749 "conf_parser.c" /* yacc.c:1652  */
4749      break;
4750  
4751    case 342:
4752 < #line 1927 "conf_parser.y" /* yacc.c:1646  */
4752 > #line 1737 "conf_parser.y" /* yacc.c:1652  */
4753      {
4754    if (conf_parser_ctx.pass == 2)
4755      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4756   }
4757 < #line 4939 "conf_parser.c" /* yacc.c:1646  */
4757 > #line 4758 "conf_parser.c" /* yacc.c:1652  */
4758      break;
4759  
4760    case 348:
4761 < #line 1942 "conf_parser.y" /* yacc.c:1646  */
4761 > #line 1752 "conf_parser.y" /* yacc.c:1652  */
4762      {
4763    if (conf_parser_ctx.pass != 2)
4764      break;
4765  
4766 <  if (valid_servname(yylval.string))
4766 >  if (server_valid_name(yylval.string) == true)
4767    {
4768 <    struct MaskItem *conf = conf_make(CONF_SERVICE);
4769 <    conf->name = xstrdup(yylval.string);
4768 >    struct ServiceItem *service = service_make();
4769 >    service->name = xstrdup(yylval.string);
4770    }
4771   }
4772 < #line 4954 "conf_parser.c" /* yacc.c:1646  */
4772 > #line 4773 "conf_parser.c" /* yacc.c:1652  */
4773      break;
4774  
4775    case 349:
4776 < #line 1957 "conf_parser.y" /* yacc.c:1646  */
4776 > #line 1768 "conf_parser.y" /* yacc.c:1652  */
4777      {
4778    if (conf_parser_ctx.pass != 2)
4779      break;
# Line 4966 | Line 4785 | yyreduce:
4785    strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4786    block_state.flags.value = SHARED_ALL;
4787   }
4788 < #line 4970 "conf_parser.c" /* yacc.c:1646  */
4788 > #line 4789 "conf_parser.c" /* yacc.c:1652  */
4789      break;
4790  
4791    case 350:
4792 < #line 1968 "conf_parser.y" /* yacc.c:1646  */
4792 > #line 1779 "conf_parser.y" /* yacc.c:1652  */
4793      {
4975  struct MaskItem *conf = NULL;
4976
4794    if (conf_parser_ctx.pass != 2)
4795      break;
4796  
4797 <  conf = conf_make(CONF_ULINE);
4798 <  conf->flags = block_state.flags.value;
4799 <  conf->name = xstrdup(block_state.name.buf);
4800 <  conf->user = xstrdup(block_state.user.buf);
4801 <  conf->host = xstrdup(block_state.host.buf);
4797 >  struct SharedItem *shared = shared_make();
4798 >  shared->type = block_state.flags.value;
4799 >  shared->server = xstrdup(block_state.name.buf);
4800 >  shared->user = xstrdup(block_state.user.buf);
4801 >  shared->host = xstrdup(block_state.host.buf);
4802   }
4803 < #line 4987 "conf_parser.c" /* yacc.c:1646  */
4803 > #line 4804 "conf_parser.c" /* yacc.c:1652  */
4804      break;
4805  
4806    case 357:
4807 < #line 1985 "conf_parser.y" /* yacc.c:1646  */
4807 > #line 1794 "conf_parser.y" /* yacc.c:1652  */
4808      {
4809    if (conf_parser_ctx.pass == 2)
4810      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4811   }
4812 < #line 4996 "conf_parser.c" /* yacc.c:1646  */
4812 > #line 4813 "conf_parser.c" /* yacc.c:1652  */
4813      break;
4814  
4815    case 358:
4816 < #line 1991 "conf_parser.y" /* yacc.c:1646  */
4816 > #line 1800 "conf_parser.y" /* yacc.c:1652  */
4817      {
4818    if (conf_parser_ctx.pass == 2)
4819    {
# Line 5014 | Line 4831 | yyreduce:
4831      split_nuh(&nuh);
4832    }
4833   }
4834 < #line 5018 "conf_parser.c" /* yacc.c:1646  */
4834 > #line 4835 "conf_parser.c" /* yacc.c:1652  */
4835      break;
4836  
4837    case 359:
4838 < #line 2010 "conf_parser.y" /* yacc.c:1646  */
4838 > #line 1819 "conf_parser.y" /* yacc.c:1652  */
4839      {
4840    if (conf_parser_ctx.pass == 2)
4841      block_state.flags.value = 0;
4842   }
4843 < #line 5027 "conf_parser.c" /* yacc.c:1646  */
4843 > #line 4844 "conf_parser.c" /* yacc.c:1652  */
4844      break;
4845  
4846    case 363:
4847 < #line 2017 "conf_parser.y" /* yacc.c:1646  */
4847 > #line 1826 "conf_parser.y" /* yacc.c:1652  */
4848      {
4849    if (conf_parser_ctx.pass == 2)
4850      block_state.flags.value |= SHARED_KLINE;
4851   }
4852 < #line 5036 "conf_parser.c" /* yacc.c:1646  */
4852 > #line 4853 "conf_parser.c" /* yacc.c:1652  */
4853      break;
4854  
4855    case 364:
4856 < #line 2021 "conf_parser.y" /* yacc.c:1646  */
4856 > #line 1830 "conf_parser.y" /* yacc.c:1652  */
4857      {
4858    if (conf_parser_ctx.pass == 2)
4859      block_state.flags.value |= SHARED_UNKLINE;
4860   }
4861 < #line 5045 "conf_parser.c" /* yacc.c:1646  */
4861 > #line 4862 "conf_parser.c" /* yacc.c:1652  */
4862      break;
4863  
4864    case 365:
4865 < #line 2025 "conf_parser.y" /* yacc.c:1646  */
4865 > #line 1834 "conf_parser.y" /* yacc.c:1652  */
4866      {
4867    if (conf_parser_ctx.pass == 2)
4868      block_state.flags.value |= SHARED_DLINE;
4869   }
4870 < #line 5054 "conf_parser.c" /* yacc.c:1646  */
4870 > #line 4871 "conf_parser.c" /* yacc.c:1652  */
4871      break;
4872  
4873    case 366:
4874 < #line 2029 "conf_parser.y" /* yacc.c:1646  */
4874 > #line 1838 "conf_parser.y" /* yacc.c:1652  */
4875      {
4876    if (conf_parser_ctx.pass == 2)
4877      block_state.flags.value |= SHARED_UNDLINE;
4878   }
4879 < #line 5063 "conf_parser.c" /* yacc.c:1646  */
4879 > #line 4880 "conf_parser.c" /* yacc.c:1652  */
4880      break;
4881  
4882    case 367:
4883 < #line 2033 "conf_parser.y" /* yacc.c:1646  */
4883 > #line 1842 "conf_parser.y" /* yacc.c:1652  */
4884      {
4885    if (conf_parser_ctx.pass == 2)
4886      block_state.flags.value |= SHARED_XLINE;
4887   }
4888 < #line 5072 "conf_parser.c" /* yacc.c:1646  */
4888 > #line 4889 "conf_parser.c" /* yacc.c:1652  */
4889      break;
4890  
4891    case 368:
4892 < #line 2037 "conf_parser.y" /* yacc.c:1646  */
4892 > #line 1846 "conf_parser.y" /* yacc.c:1652  */
4893      {
4894    if (conf_parser_ctx.pass == 2)
4895      block_state.flags.value |= SHARED_UNXLINE;
4896   }
4897 < #line 5081 "conf_parser.c" /* yacc.c:1646  */
4897 > #line 4898 "conf_parser.c" /* yacc.c:1652  */
4898      break;
4899  
4900    case 369:
4901 < #line 2041 "conf_parser.y" /* yacc.c:1646  */
4901 > #line 1850 "conf_parser.y" /* yacc.c:1652  */
4902      {
4903    if (conf_parser_ctx.pass == 2)
4904      block_state.flags.value |= SHARED_RESV;
4905   }
4906 < #line 5090 "conf_parser.c" /* yacc.c:1646  */
4906 > #line 4907 "conf_parser.c" /* yacc.c:1652  */
4907      break;
4908  
4909    case 370:
4910 < #line 2045 "conf_parser.y" /* yacc.c:1646  */
4910 > #line 1854 "conf_parser.y" /* yacc.c:1652  */
4911      {
4912    if (conf_parser_ctx.pass == 2)
4913      block_state.flags.value |= SHARED_UNRESV;
4914   }
4915 < #line 5099 "conf_parser.c" /* yacc.c:1646  */
4915 > #line 4916 "conf_parser.c" /* yacc.c:1652  */
4916      break;
4917  
4918    case 371:
4919 < #line 2049 "conf_parser.y" /* yacc.c:1646  */
4919 > #line 1858 "conf_parser.y" /* yacc.c:1652  */
4920      {
4921    if (conf_parser_ctx.pass == 2)
4922      block_state.flags.value |= SHARED_LOCOPS;
4923   }
4924 < #line 5108 "conf_parser.c" /* yacc.c:1646  */
4924 > #line 4925 "conf_parser.c" /* yacc.c:1652  */
4925      break;
4926  
4927    case 372:
4928 < #line 2053 "conf_parser.y" /* yacc.c:1646  */
4928 > #line 1862 "conf_parser.y" /* yacc.c:1652  */
4929      {
4930    if (conf_parser_ctx.pass == 2)
4931      block_state.flags.value = SHARED_ALL;
4932   }
4933 < #line 5117 "conf_parser.c" /* yacc.c:1646  */
4933 > #line 4934 "conf_parser.c" /* yacc.c:1652  */
4934      break;
4935  
4936    case 373:
4937 < #line 2062 "conf_parser.y" /* yacc.c:1646  */
4937 > #line 1872 "conf_parser.y" /* yacc.c:1652  */
4938      {
4939    if (conf_parser_ctx.pass != 2)
4940      break;
# Line 5125 | Line 4942 | yyreduce:
4942    reset_block_state();
4943  
4944    strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4945 <  block_state.flags.value = SHARED_ALL;
4945 >  block_state.flags.value = CLUSTER_ALL;
4946   }
4947 < #line 5131 "conf_parser.c" /* yacc.c:1646  */
4947 > #line 4948 "conf_parser.c" /* yacc.c:1652  */
4948      break;
4949  
4950    case 374:
4951 < #line 2071 "conf_parser.y" /* yacc.c:1646  */
4951 > #line 1881 "conf_parser.y" /* yacc.c:1652  */
4952      {
5136  struct MaskItem *conf = NULL;
5137
4953    if (conf_parser_ctx.pass != 2)
4954      break;
4955  
4956 <  conf = conf_make(CONF_CLUSTER);
4957 <  conf->flags = block_state.flags.value;
4958 <  conf->name = xstrdup(block_state.name.buf);
4956 >  struct ClusterItem *cluster = cluster_make();
4957 >  cluster->type = block_state.flags.value;
4958 >  cluster->server = xstrdup(block_state.name.buf);
4959   }
4960 < #line 5146 "conf_parser.c" /* yacc.c:1646  */
4960 > #line 4961 "conf_parser.c" /* yacc.c:1652  */
4961      break;
4962  
4963    case 380:
4964 < #line 2086 "conf_parser.y" /* yacc.c:1646  */
4964 > #line 1894 "conf_parser.y" /* yacc.c:1652  */
4965      {
4966    if (conf_parser_ctx.pass == 2)
4967      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4968   }
4969 < #line 5155 "conf_parser.c" /* yacc.c:1646  */
4969 > #line 4970 "conf_parser.c" /* yacc.c:1652  */
4970      break;
4971  
4972    case 381:
4973 < #line 2092 "conf_parser.y" /* yacc.c:1646  */
4973 > #line 1900 "conf_parser.y" /* yacc.c:1652  */
4974      {
4975    if (conf_parser_ctx.pass == 2)
4976      block_state.flags.value = 0;
4977   }
4978 < #line 5164 "conf_parser.c" /* yacc.c:1646  */
4978 > #line 4979 "conf_parser.c" /* yacc.c:1652  */
4979      break;
4980  
4981    case 385:
4982 < #line 2099 "conf_parser.y" /* yacc.c:1646  */
4982 > #line 1907 "conf_parser.y" /* yacc.c:1652  */
4983      {
4984    if (conf_parser_ctx.pass == 2)
4985 <    block_state.flags.value |= SHARED_KLINE;
4985 >    block_state.flags.value |= CLUSTER_KLINE;
4986   }
4987 < #line 5173 "conf_parser.c" /* yacc.c:1646  */
4987 > #line 4988 "conf_parser.c" /* yacc.c:1652  */
4988      break;
4989  
4990    case 386:
4991 < #line 2103 "conf_parser.y" /* yacc.c:1646  */
4991 > #line 1911 "conf_parser.y" /* yacc.c:1652  */
4992      {
4993    if (conf_parser_ctx.pass == 2)
4994 <    block_state.flags.value |= SHARED_UNKLINE;
4994 >    block_state.flags.value |= CLUSTER_UNKLINE;
4995   }
4996 < #line 5182 "conf_parser.c" /* yacc.c:1646  */
4996 > #line 4997 "conf_parser.c" /* yacc.c:1652  */
4997      break;
4998  
4999    case 387:
5000 < #line 2107 "conf_parser.y" /* yacc.c:1646  */
5000 > #line 1915 "conf_parser.y" /* yacc.c:1652  */
5001      {
5002    if (conf_parser_ctx.pass == 2)
5003 <    block_state.flags.value |= SHARED_DLINE;
5003 >    block_state.flags.value |= CLUSTER_DLINE;
5004   }
5005 < #line 5191 "conf_parser.c" /* yacc.c:1646  */
5005 > #line 5006 "conf_parser.c" /* yacc.c:1652  */
5006      break;
5007  
5008    case 388:
5009 < #line 2111 "conf_parser.y" /* yacc.c:1646  */
5009 > #line 1919 "conf_parser.y" /* yacc.c:1652  */
5010      {
5011    if (conf_parser_ctx.pass == 2)
5012 <    block_state.flags.value |= SHARED_UNDLINE;
5012 >    block_state.flags.value |= CLUSTER_UNDLINE;
5013   }
5014 < #line 5200 "conf_parser.c" /* yacc.c:1646  */
5014 > #line 5015 "conf_parser.c" /* yacc.c:1652  */
5015      break;
5016  
5017    case 389:
5018 < #line 2115 "conf_parser.y" /* yacc.c:1646  */
5018 > #line 1923 "conf_parser.y" /* yacc.c:1652  */
5019      {
5020    if (conf_parser_ctx.pass == 2)
5021 <    block_state.flags.value |= SHARED_XLINE;
5021 >    block_state.flags.value |= CLUSTER_XLINE;
5022   }
5023 < #line 5209 "conf_parser.c" /* yacc.c:1646  */
5023 > #line 5024 "conf_parser.c" /* yacc.c:1652  */
5024      break;
5025  
5026    case 390:
5027 < #line 2119 "conf_parser.y" /* yacc.c:1646  */
5027 > #line 1927 "conf_parser.y" /* yacc.c:1652  */
5028      {
5029    if (conf_parser_ctx.pass == 2)
5030 <    block_state.flags.value |= SHARED_UNXLINE;
5030 >    block_state.flags.value |= CLUSTER_UNXLINE;
5031   }
5032 < #line 5218 "conf_parser.c" /* yacc.c:1646  */
5032 > #line 5033 "conf_parser.c" /* yacc.c:1652  */
5033      break;
5034  
5035    case 391:
5036 < #line 2123 "conf_parser.y" /* yacc.c:1646  */
5036 > #line 1931 "conf_parser.y" /* yacc.c:1652  */
5037      {
5038    if (conf_parser_ctx.pass == 2)
5039 <    block_state.flags.value |= SHARED_RESV;
5039 >    block_state.flags.value |= CLUSTER_RESV;
5040   }
5041 < #line 5227 "conf_parser.c" /* yacc.c:1646  */
5041 > #line 5042 "conf_parser.c" /* yacc.c:1652  */
5042      break;
5043  
5044    case 392:
5045 < #line 2127 "conf_parser.y" /* yacc.c:1646  */
5045 > #line 1935 "conf_parser.y" /* yacc.c:1652  */
5046      {
5047    if (conf_parser_ctx.pass == 2)
5048 <    block_state.flags.value |= SHARED_UNRESV;
5048 >    block_state.flags.value |= CLUSTER_UNRESV;
5049   }
5050 < #line 5236 "conf_parser.c" /* yacc.c:1646  */
5050 > #line 5051 "conf_parser.c" /* yacc.c:1652  */
5051      break;
5052  
5053    case 393:
5054 < #line 2131 "conf_parser.y" /* yacc.c:1646  */
5054 > #line 1939 "conf_parser.y" /* yacc.c:1652  */
5055      {
5056    if (conf_parser_ctx.pass == 2)
5057 <    block_state.flags.value |= SHARED_LOCOPS;
5057 >    block_state.flags.value |= CLUSTER_LOCOPS;
5058   }
5059 < #line 5245 "conf_parser.c" /* yacc.c:1646  */
5059 > #line 5060 "conf_parser.c" /* yacc.c:1652  */
5060      break;
5061  
5062    case 394:
5063 < #line 2135 "conf_parser.y" /* yacc.c:1646  */
5063 > #line 1943 "conf_parser.y" /* yacc.c:1652  */
5064      {
5065    if (conf_parser_ctx.pass == 2)
5066 <    block_state.flags.value = SHARED_ALL;
5066 >    block_state.flags.value = CLUSTER_ALL;
5067   }
5068 < #line 5254 "conf_parser.c" /* yacc.c:1646  */
5068 > #line 5069 "conf_parser.c" /* yacc.c:1652  */
5069      break;
5070  
5071    case 395:
5072 < #line 2144 "conf_parser.y" /* yacc.c:1646  */
5072 > #line 1953 "conf_parser.y" /* yacc.c:1652  */
5073      {
5074  
5075    if (conf_parser_ctx.pass != 2)
# Line 5263 | Line 5078 | yyreduce:
5078    reset_block_state();
5079    block_state.aftype.value = AF_INET;
5080    block_state.port.value = PORTNUM;
5081 +  block_state.timeout.value = CONNECTTIMEOUT;
5082   }
5083 < #line 5268 "conf_parser.c" /* yacc.c:1646  */
5083 > #line 5084 "conf_parser.c" /* yacc.c:1652  */
5084      break;
5085  
5086    case 396:
5087 < #line 2153 "conf_parser.y" /* yacc.c:1646  */
5087 > #line 1963 "conf_parser.y" /* yacc.c:1652  */
5088      {
5273  struct MaskItem *conf = NULL;
5089    struct addrinfo hints, *res;
5090  
5091    if (conf_parser_ctx.pass != 2)
# Line 5284 | Line 5099 | yyreduce:
5099        !block_state.spass.buf[0])
5100      break;
5101  
5102 +  if (server_valid_name(block_state.name.buf) == false)
5103 +    break;
5104 +
5105    if (has_wildcards(block_state.name.buf) ||
5106        has_wildcards(block_state.host.buf))
5107      break;
5108  
5109 <  conf = conf_make(CONF_SERVER);
5109 >  struct MaskItem *conf = conf_make(CONF_SERVER);
5110 >  conf->addr = xcalloc(sizeof(*conf->addr));
5111    conf->port = block_state.port.value;
5112 +  conf->timeout = block_state.timeout.value;
5113    conf->flags = block_state.flags.value;
5114    conf->aftype = block_state.aftype.value;
5115    conf->host = xstrdup(block_state.host.buf);
# Line 5315 | Line 5135 | yyreduce:
5135      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5136  
5137      if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5138 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5138 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server bind(%s)", block_state.bind.buf);
5139      else
5140      {
5141        assert(res);
5142  
5143 <      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5144 <      conf->bind.ss.ss_family = res->ai_family;
5145 <      conf->bind.ss_len = res->ai_addrlen;
5143 >      conf->bind = xcalloc(sizeof(*conf->bind));
5144 >
5145 >      memcpy(conf->bind, res->ai_addr, res->ai_addrlen);
5146 >      conf->bind->ss_len = res->ai_addrlen;
5147        freeaddrinfo(res);
5148      }
5149    }
5150  
5151    conf_add_class_to_conf(conf, block_state.class.buf);
5152 <  lookup_confhost(conf);
5152 >  conf_dns_lookup(conf);
5153   }
5154 < #line 5334 "conf_parser.c" /* yacc.c:1646  */
5154 > #line 5155 "conf_parser.c" /* yacc.c:1652  */
5155      break;
5156  
5157 <  case 414:
5158 < #line 2233 "conf_parser.y" /* yacc.c:1646  */
5157 >  case 415:
5158 > #line 2049 "conf_parser.y" /* yacc.c:1652  */
5159      {
5160    if (conf_parser_ctx.pass == 2)
5161      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5162   }
5163 < #line 5343 "conf_parser.c" /* yacc.c:1646  */
5163 > #line 5164 "conf_parser.c" /* yacc.c:1652  */
5164      break;
5165  
5166 <  case 415:
5167 < #line 2239 "conf_parser.y" /* yacc.c:1646  */
5166 >  case 416:
5167 > #line 2055 "conf_parser.y" /* yacc.c:1652  */
5168      {
5169    if (conf_parser_ctx.pass == 2)
5170      strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5171   }
5172 < #line 5352 "conf_parser.c" /* yacc.c:1646  */
5172 > #line 5173 "conf_parser.c" /* yacc.c:1652  */
5173      break;
5174  
5175 <  case 416:
5176 < #line 2245 "conf_parser.y" /* yacc.c:1646  */
5175 >  case 417:
5176 > #line 2061 "conf_parser.y" /* yacc.c:1652  */
5177 >    {
5178 >  if (conf_parser_ctx.pass == 2)
5179 >    block_state.timeout.value = (yyvsp[-1].number);
5180 > }
5181 > #line 5182 "conf_parser.c" /* yacc.c:1652  */
5182 >    break;
5183 >
5184 >  case 418:
5185 > #line 2067 "conf_parser.y" /* yacc.c:1652  */
5186      {
5187    if (conf_parser_ctx.pass == 2)
5188      strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5189   }
5190 < #line 5361 "conf_parser.c" /* yacc.c:1646  */
5190 > #line 5191 "conf_parser.c" /* yacc.c:1652  */
5191      break;
5192  
5193 <  case 417:
5194 < #line 2251 "conf_parser.y" /* yacc.c:1646  */
5193 >  case 419:
5194 > #line 2073 "conf_parser.y" /* yacc.c:1652  */
5195      {
5196    if (conf_parser_ctx.pass != 2)
5197      break;
5198  
5199 <  if ((yyvsp[-1].string)[0] == ':')
5199 >  if (*yylval.string == ':')
5200      conf_error_report("Server passwords cannot begin with a colon");
5201 <  else if (strchr((yyvsp[-1].string), ' '))
5201 >  else if (strchr(yylval.string, ' '))
5202      conf_error_report("Server passwords cannot contain spaces");
5203    else
5204      strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5205   }
5206 < #line 5377 "conf_parser.c" /* yacc.c:1646  */
5206 > #line 5207 "conf_parser.c" /* yacc.c:1652  */
5207      break;
5208  
5209 <  case 418:
5210 < #line 2264 "conf_parser.y" /* yacc.c:1646  */
5209 >  case 420:
5210 > #line 2086 "conf_parser.y" /* yacc.c:1652  */
5211      {
5212    if (conf_parser_ctx.pass != 2)
5213      break;
5214  
5215 <  if ((yyvsp[-1].string)[0] == ':')
5215 >  if (*yylval.string == ':')
5216      conf_error_report("Server passwords cannot begin with a colon");
5217 <  else if (strchr((yyvsp[-1].string), ' '))
5217 >  else if (strchr(yylval.string, ' '))
5218      conf_error_report("Server passwords cannot contain spaces");
5219    else
5220      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5221   }
5222 < #line 5393 "conf_parser.c" /* yacc.c:1646  */
5222 > #line 5223 "conf_parser.c" /* yacc.c:1652  */
5223      break;
5224  
5225 <  case 419:
5226 < #line 2277 "conf_parser.y" /* yacc.c:1646  */
5225 >  case 421:
5226 > #line 2099 "conf_parser.y" /* yacc.c:1652  */
5227      {
5228    if (conf_parser_ctx.pass == 2)
5229      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5230   }
5231 < #line 5402 "conf_parser.c" /* yacc.c:1646  */
5231 > #line 5232 "conf_parser.c" /* yacc.c:1652  */
5232      break;
5233  
5234 <  case 420:
5235 < #line 2283 "conf_parser.y" /* yacc.c:1646  */
5234 >  case 422:
5235 > #line 2105 "conf_parser.y" /* yacc.c:1652  */
5236      {
5237    if (conf_parser_ctx.pass == 2)
5238      block_state.port.value = (yyvsp[-1].number);
5239   }
5240 < #line 5411 "conf_parser.c" /* yacc.c:1646  */
5240 > #line 5241 "conf_parser.c" /* yacc.c:1652  */
5241      break;
5242  
5243 <  case 421:
5244 < #line 2289 "conf_parser.y" /* yacc.c:1646  */
5243 >  case 423:
5244 > #line 2111 "conf_parser.y" /* yacc.c:1652  */
5245      {
5246    if (conf_parser_ctx.pass == 2)
5247      block_state.aftype.value = AF_INET;
5248   }
5249 < #line 5420 "conf_parser.c" /* yacc.c:1646  */
5249 > #line 5250 "conf_parser.c" /* yacc.c:1652  */
5250      break;
5251  
5252 <  case 422:
5253 < #line 2293 "conf_parser.y" /* yacc.c:1646  */
5252 >  case 424:
5253 > #line 2115 "conf_parser.y" /* yacc.c:1652  */
5254      {
5255    if (conf_parser_ctx.pass == 2)
5256      block_state.aftype.value = AF_INET6;
5257   }
5258 < #line 5429 "conf_parser.c" /* yacc.c:1646  */
5258 > #line 5259 "conf_parser.c" /* yacc.c:1652  */
5259      break;
5260  
5261 <  case 423:
5262 < #line 2299 "conf_parser.y" /* yacc.c:1646  */
5261 >  case 425:
5262 > #line 2121 "conf_parser.y" /* yacc.c:1652  */
5263      {
5264    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5265   }
5266 < #line 5437 "conf_parser.c" /* yacc.c:1646  */
5266 > #line 5267 "conf_parser.c" /* yacc.c:1652  */
5267      break;
5268  
5269 <  case 427:
5270 < #line 2305 "conf_parser.y" /* yacc.c:1646  */
5269 >  case 429:
5270 > #line 2127 "conf_parser.y" /* yacc.c:1652  */
5271      {
5272    if (conf_parser_ctx.pass == 2)
5273      block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5274   }
5275 < #line 5446 "conf_parser.c" /* yacc.c:1646  */
5275 > #line 5276 "conf_parser.c" /* yacc.c:1652  */
5276      break;
5277  
5278 <  case 428:
5279 < #line 2309 "conf_parser.y" /* yacc.c:1646  */
5278 >  case 430:
5279 > #line 2131 "conf_parser.y" /* yacc.c:1652  */
5280      {
5281    if (conf_parser_ctx.pass == 2)
5282 <    block_state.flags.value |= CONF_FLAGS_SSL;
5282 >    block_state.flags.value |= CONF_FLAGS_TLS;
5283   }
5284 < #line 5455 "conf_parser.c" /* yacc.c:1646  */
5284 > #line 5285 "conf_parser.c" /* yacc.c:1652  */
5285      break;
5286  
5287 <  case 429:
5288 < #line 2315 "conf_parser.y" /* yacc.c:1646  */
5287 >  case 431:
5288 > #line 2137 "conf_parser.y" /* yacc.c:1652  */
5289      {
5290    if (conf_parser_ctx.pass == 2)
5291    {
# Line 5465 | Line 5295 | yyreduce:
5295        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5296    }
5297   }
5298 < #line 5469 "conf_parser.c" /* yacc.c:1646  */
5298 > #line 5299 "conf_parser.c" /* yacc.c:1652  */
5299      break;
5300  
5301 <  case 430:
5302 < #line 2326 "conf_parser.y" /* yacc.c:1646  */
5301 >  case 432:
5302 > #line 2148 "conf_parser.y" /* yacc.c:1652  */
5303      {
5304    if (conf_parser_ctx.pass == 2)
5305      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5306   }
5307 < #line 5478 "conf_parser.c" /* yacc.c:1646  */
5307 > #line 5308 "conf_parser.c" /* yacc.c:1652  */
5308      break;
5309  
5310 <  case 431:
5311 < #line 2332 "conf_parser.y" /* yacc.c:1646  */
5310 >  case 433:
5311 > #line 2154 "conf_parser.y" /* yacc.c:1652  */
5312      {
5313    if (conf_parser_ctx.pass == 2)
5314      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5315   }
5316 < #line 5487 "conf_parser.c" /* yacc.c:1646  */
5316 > #line 5317 "conf_parser.c" /* yacc.c:1652  */
5317      break;
5318  
5319 <  case 432:
5320 < #line 2338 "conf_parser.y" /* yacc.c:1646  */
5319 >  case 434:
5320 > #line 2160 "conf_parser.y" /* yacc.c:1652  */
5321      {
5322    if (conf_parser_ctx.pass == 2)
5323      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5324   }
5325 < #line 5496 "conf_parser.c" /* yacc.c:1646  */
5325 > #line 5326 "conf_parser.c" /* yacc.c:1652  */
5326      break;
5327  
5328 <  case 433:
5329 < #line 2344 "conf_parser.y" /* yacc.c:1646  */
5328 >  case 435:
5329 > #line 2166 "conf_parser.y" /* yacc.c:1652  */
5330      {
5331 < #ifdef HAVE_LIBCRYPTO
5331 > #ifdef HAVE_TLS
5332    if (conf_parser_ctx.pass == 2)
5333      strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5334   #else
5335    if (conf_parser_ctx.pass == 2)
5336 <    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5336 >    conf_error_report("Ignoring connect::tls_cipher_list -- no TLS support");
5337   #endif
5338   }
5339 < #line 5510 "conf_parser.c" /* yacc.c:1646  */
5339 > #line 5340 "conf_parser.c" /* yacc.c:1652  */
5340      break;
5341  
5342 <  case 434:
5343 < #line 2359 "conf_parser.y" /* yacc.c:1646  */
5342 >  case 436:
5343 > #line 2181 "conf_parser.y" /* yacc.c:1652  */
5344      {
5345    if (conf_parser_ctx.pass == 2)
5346      reset_block_state();
5347   }
5348 < #line 5519 "conf_parser.c" /* yacc.c:1646  */
5348 > #line 5349 "conf_parser.c" /* yacc.c:1652  */
5349      break;
5350  
5351 <  case 435:
5352 < #line 2363 "conf_parser.y" /* yacc.c:1646  */
5351 >  case 437:
5352 > #line 2185 "conf_parser.y" /* yacc.c:1652  */
5353      {
5524  struct MaskItem *conf = NULL;
5525
5354    if (conf_parser_ctx.pass != 2)
5355      break;
5356  
# Line 5530 | Line 5358 | yyreduce:
5358        !block_state.host.buf[0])
5359      break;
5360  
5361 <  conf = conf_make(CONF_KLINE);
5361 >  struct MaskItem *conf = conf_make(CONF_KLINE);
5362    conf->user = xstrdup(block_state.user.buf);
5363    conf->host = xstrdup(block_state.host.buf);
5364  
# Line 5540 | Line 5368 | yyreduce:
5368      conf->reason = xstrdup(CONF_NOREASON);
5369    add_conf_by_address(CONF_KLINE, conf);
5370   }
5371 < #line 5544 "conf_parser.c" /* yacc.c:1646  */
5371 > #line 5372 "conf_parser.c" /* yacc.c:1652  */
5372      break;
5373  
5374 <  case 441:
5375 < #line 2388 "conf_parser.y" /* yacc.c:1646  */
5374 >  case 443:
5375 > #line 2208 "conf_parser.y" /* yacc.c:1652  */
5376      {
5377  
5378    if (conf_parser_ctx.pass == 2)
# Line 5563 | Line 5391 | yyreduce:
5391      split_nuh(&nuh);
5392    }
5393   }
5394 < #line 5567 "conf_parser.c" /* yacc.c:1646  */
5394 > #line 5395 "conf_parser.c" /* yacc.c:1652  */
5395      break;
5396  
5397 <  case 442:
5398 < #line 2408 "conf_parser.y" /* yacc.c:1646  */
5397 >  case 444:
5398 > #line 2228 "conf_parser.y" /* yacc.c:1652  */
5399      {
5400    if (conf_parser_ctx.pass == 2)
5401      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5402   }
5403 < #line 5576 "conf_parser.c" /* yacc.c:1646  */
5403 > #line 5404 "conf_parser.c" /* yacc.c:1652  */
5404      break;
5405  
5406 <  case 443:
5407 < #line 2417 "conf_parser.y" /* yacc.c:1646  */
5406 >  case 445:
5407 > #line 2238 "conf_parser.y" /* yacc.c:1652  */
5408      {
5409    if (conf_parser_ctx.pass == 2)
5410      reset_block_state();
5411   }
5412 < #line 5585 "conf_parser.c" /* yacc.c:1646  */
5412 > #line 5413 "conf_parser.c" /* yacc.c:1652  */
5413      break;
5414  
5415 <  case 444:
5416 < #line 2421 "conf_parser.y" /* yacc.c:1646  */
5415 >  case 446:
5416 > #line 2242 "conf_parser.y" /* yacc.c:1652  */
5417      {
5590  struct MaskItem *conf = NULL;
5591
5418    if (conf_parser_ctx.pass != 2)
5419      break;
5420  
# Line 5597 | Line 5423 | yyreduce:
5423  
5424    if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5425    {
5426 <    conf = conf_make(CONF_DLINE);
5426 >    struct MaskItem *conf = conf_make(CONF_DLINE);
5427      conf->host = xstrdup(block_state.addr.buf);
5428  
5429      if (block_state.rpass.buf[0])
# Line 5607 | Line 5433 | yyreduce:
5433      add_conf_by_address(CONF_DLINE, conf);
5434    }
5435   }
5436 < #line 5611 "conf_parser.c" /* yacc.c:1646  */
5436 > #line 5437 "conf_parser.c" /* yacc.c:1652  */
5437      break;
5438  
5439 <  case 450:
5440 < #line 2447 "conf_parser.y" /* yacc.c:1646  */
5439 >  case 452:
5440 > #line 2266 "conf_parser.y" /* yacc.c:1652  */
5441      {
5442    if (conf_parser_ctx.pass == 2)
5443      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5444   }
5445 < #line 5620 "conf_parser.c" /* yacc.c:1646  */
5445 > #line 5446 "conf_parser.c" /* yacc.c:1652  */
5446      break;
5447  
5448 <  case 451:
5449 < #line 2453 "conf_parser.y" /* yacc.c:1646  */
5448 >  case 453:
5449 > #line 2272 "conf_parser.y" /* yacc.c:1652  */
5450      {
5451    if (conf_parser_ctx.pass == 2)
5452      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5453   }
5454 < #line 5629 "conf_parser.c" /* yacc.c:1646  */
5454 > #line 5455 "conf_parser.c" /* yacc.c:1652  */
5455      break;
5456  
5457 <  case 457:
5458 < #line 2467 "conf_parser.y" /* yacc.c:1646  */
5457 >  case 459:
5458 > #line 2287 "conf_parser.y" /* yacc.c:1652  */
5459      {
5460    if (conf_parser_ctx.pass == 2)
5461    {
5462 <    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5462 >    if (*yylval.string && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5463      {
5464        struct MaskItem *conf = conf_make(CONF_EXEMPT);
5465        conf->host = xstrdup(yylval.string);
# Line 5642 | Line 5468 | yyreduce:
5468      }
5469    }
5470   }
5471 < #line 5646 "conf_parser.c" /* yacc.c:1646  */
5471 > #line 5472 "conf_parser.c" /* yacc.c:1652  */
5472      break;
5473  
5474 <  case 458:
5475 < #line 2484 "conf_parser.y" /* yacc.c:1646  */
5474 >  case 460:
5475 > #line 2304 "conf_parser.y" /* yacc.c:1652  */
5476      {
5477    if (conf_parser_ctx.pass == 2)
5478      reset_block_state();
5479   }
5480 < #line 5655 "conf_parser.c" /* yacc.c:1646  */
5480 > #line 5481 "conf_parser.c" /* yacc.c:1652  */
5481      break;
5482  
5483 <  case 459:
5484 < #line 2488 "conf_parser.y" /* yacc.c:1646  */
5483 >  case 461:
5484 > #line 2308 "conf_parser.y" /* yacc.c:1652  */
5485      {
5660  struct MaskItem *conf = NULL;
5661
5486    if (conf_parser_ctx.pass != 2)
5487      break;
5488  
5489    if (!block_state.name.buf[0])
5490      break;
5491  
5492 <  conf = conf_make(CONF_XLINE);
5493 <  conf->name = xstrdup(block_state.name.buf);
5492 >  struct GecosItem *gecos = gecos_make();
5493 >  gecos->mask = xstrdup(block_state.name.buf);
5494  
5495    if (block_state.rpass.buf[0])
5496 <    conf->reason = xstrdup(block_state.rpass.buf);
5496 >    gecos->reason = xstrdup(block_state.rpass.buf);
5497    else
5498 <    conf->reason = xstrdup(CONF_NOREASON);
5498 >    gecos->reason = xstrdup(CONF_NOREASON);
5499   }
5500 < #line 5677 "conf_parser.c" /* yacc.c:1646  */
5500 > #line 5501 "conf_parser.c" /* yacc.c:1652  */
5501      break;
5502  
5503 <  case 465:
5504 < #line 2510 "conf_parser.y" /* yacc.c:1646  */
5503 >  case 467:
5504 > #line 2328 "conf_parser.y" /* yacc.c:1652  */
5505      {
5506    if (conf_parser_ctx.pass == 2)
5507      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5508   }
5509 < #line 5686 "conf_parser.c" /* yacc.c:1646  */
5509 > #line 5510 "conf_parser.c" /* yacc.c:1652  */
5510      break;
5511  
5512 <  case 466:
5513 < #line 2516 "conf_parser.y" /* yacc.c:1646  */
5512 >  case 468:
5513 > #line 2334 "conf_parser.y" /* yacc.c:1652  */
5514      {
5515    if (conf_parser_ctx.pass == 2)
5516      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5517   }
5518 < #line 5695 "conf_parser.c" /* yacc.c:1646  */
5695 <    break;
5696 <
5697 <  case 517:
5698 < #line 2578 "conf_parser.y" /* yacc.c:1646  */
5699 <    {
5700 <  ConfigGeneral.away_count = (yyvsp[-1].number);
5701 < }
5702 < #line 5703 "conf_parser.c" /* yacc.c:1646  */
5518 > #line 5519 "conf_parser.c" /* yacc.c:1652  */
5519      break;
5520  
5521    case 518:
5522 < #line 2583 "conf_parser.y" /* yacc.c:1646  */
5522 > #line 2395 "conf_parser.y" /* yacc.c:1652  */
5523      {
5524 <  ConfigGeneral.away_time = (yyvsp[-1].number);
5524 >  ConfigGeneral.away_count = (yyvsp[-1].number);
5525   }
5526 < #line 5711 "conf_parser.c" /* yacc.c:1646  */
5526 > #line 5527 "conf_parser.c" /* yacc.c:1652  */
5527      break;
5528  
5529    case 519:
5530 < #line 2588 "conf_parser.y" /* yacc.c:1646  */
5530 > #line 2400 "conf_parser.y" /* yacc.c:1652  */
5531      {
5532 <  ConfigGeneral.max_watch = (yyvsp[-1].number);
5532 >  ConfigGeneral.away_time = (yyvsp[-1].number);
5533   }
5534 < #line 5719 "conf_parser.c" /* yacc.c:1646  */
5534 > #line 5535 "conf_parser.c" /* yacc.c:1652  */
5535      break;
5536  
5537    case 520:
5538 < #line 2593 "conf_parser.y" /* yacc.c:1646  */
5538 > #line 2405 "conf_parser.y" /* yacc.c:1652  */
5539      {
5540 <  if (conf_parser_ctx.pass == 2)
5725 <    ConfigGeneral.cycle_on_host_change = yylval.number;
5540 >  ConfigGeneral.max_watch = (yyvsp[-1].number);
5541   }
5542 < #line 5728 "conf_parser.c" /* yacc.c:1646  */
5542 > #line 5543 "conf_parser.c" /* yacc.c:1652  */
5543      break;
5544  
5545    case 521:
5546 < #line 2599 "conf_parser.y" /* yacc.c:1646  */
5546 > #line 2410 "conf_parser.y" /* yacc.c:1652  */
5547      {
5548 <  ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5548 >  ConfigGeneral.whowas_history_length = (yyvsp[-1].number);
5549   }
5550 < #line 5736 "conf_parser.c" /* yacc.c:1646  */
5550 > #line 5551 "conf_parser.c" /* yacc.c:1652  */
5551      break;
5552  
5553    case 522:
5554 < #line 2604 "conf_parser.y" /* yacc.c:1646  */
5554 > #line 2415 "conf_parser.y" /* yacc.c:1652  */
5555      {
5556 <  ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5556 >  ConfigGeneral.cycle_on_host_change = yylval.number;
5557   }
5558 < #line 5744 "conf_parser.c" /* yacc.c:1646  */
5558 > #line 5559 "conf_parser.c" /* yacc.c:1652  */
5559      break;
5560  
5561    case 523:
5562 < #line 2609 "conf_parser.y" /* yacc.c:1646  */
5562 > #line 2420 "conf_parser.y" /* yacc.c:1652  */
5563      {
5564 <  ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5564 >  ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5565   }
5566 < #line 5752 "conf_parser.c" /* yacc.c:1646  */
5566 > #line 5567 "conf_parser.c" /* yacc.c:1652  */
5567      break;
5568  
5569    case 524:
5570 < #line 2614 "conf_parser.y" /* yacc.c:1646  */
5570 > #line 2425 "conf_parser.y" /* yacc.c:1652  */
5571      {
5572 <  ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5572 >  ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5573   }
5574 < #line 5760 "conf_parser.c" /* yacc.c:1646  */
5574 > #line 5575 "conf_parser.c" /* yacc.c:1652  */
5575      break;
5576  
5577    case 525:
5578 < #line 2619 "conf_parser.y" /* yacc.c:1646  */
5578 > #line 2430 "conf_parser.y" /* yacc.c:1652  */
5579      {
5580 <  ConfigGeneral.tkline_expire_notices = yylval.number;
5580 >  ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5581   }
5582 < #line 5768 "conf_parser.c" /* yacc.c:1646  */
5582 > #line 5583 "conf_parser.c" /* yacc.c:1652  */
5583      break;
5584  
5585    case 526:
5586 < #line 2624 "conf_parser.y" /* yacc.c:1646  */
5586 > #line 2435 "conf_parser.y" /* yacc.c:1652  */
5587      {
5588 <  ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5588 >  ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5589   }
5590 < #line 5776 "conf_parser.c" /* yacc.c:1646  */
5590 > #line 5591 "conf_parser.c" /* yacc.c:1652  */
5591      break;
5592  
5593    case 527:
5594 < #line 2629 "conf_parser.y" /* yacc.c:1646  */
5594 > #line 2440 "conf_parser.y" /* yacc.c:1652  */
5595      {
5596 <  ConfigGeneral.ignore_bogus_ts = yylval.number;
5596 >  ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5597   }
5598 < #line 5784 "conf_parser.c" /* yacc.c:1646  */
5598 > #line 5599 "conf_parser.c" /* yacc.c:1652  */
5599      break;
5600  
5601    case 528:
5602 < #line 2634 "conf_parser.y" /* yacc.c:1646  */
5602 > #line 2445 "conf_parser.y" /* yacc.c:1652  */
5603      {
5604    ConfigGeneral.failed_oper_notice = yylval.number;
5605   }
5606 < #line 5792 "conf_parser.c" /* yacc.c:1646  */
5606 > #line 5607 "conf_parser.c" /* yacc.c:1652  */
5607      break;
5608  
5609    case 529:
5610 < #line 2639 "conf_parser.y" /* yacc.c:1646  */
5610 > #line 2450 "conf_parser.y" /* yacc.c:1652  */
5611      {
5612    ConfigGeneral.anti_nick_flood = yylval.number;
5613   }
5614 < #line 5800 "conf_parser.c" /* yacc.c:1646  */
5614 > #line 5615 "conf_parser.c" /* yacc.c:1652  */
5615      break;
5616  
5617    case 530:
5618 < #line 2644 "conf_parser.y" /* yacc.c:1646  */
5618 > #line 2455 "conf_parser.y" /* yacc.c:1652  */
5619      {
5620    ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5621   }
5622 < #line 5808 "conf_parser.c" /* yacc.c:1646  */
5622 > #line 5623 "conf_parser.c" /* yacc.c:1652  */
5623      break;
5624  
5625    case 531:
5626 < #line 2649 "conf_parser.y" /* yacc.c:1646  */
5626 > #line 2460 "conf_parser.y" /* yacc.c:1652  */
5627      {
5628    ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5629   }
5630 < #line 5816 "conf_parser.c" /* yacc.c:1646  */
5630 > #line 5631 "conf_parser.c" /* yacc.c:1652  */
5631      break;
5632  
5633    case 532:
5634 < #line 2654 "conf_parser.y" /* yacc.c:1646  */
5634 > #line 2465 "conf_parser.y" /* yacc.c:1652  */
5635      {
5636    ConfigGeneral.max_accept = (yyvsp[-1].number);
5637   }
5638 < #line 5824 "conf_parser.c" /* yacc.c:1646  */
5638 > #line 5639 "conf_parser.c" /* yacc.c:1652  */
5639      break;
5640  
5641    case 533:
5642 < #line 2659 "conf_parser.y" /* yacc.c:1646  */
5642 > #line 2470 "conf_parser.y" /* yacc.c:1652  */
5643      {
5644    ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5645   }
5646 < #line 5832 "conf_parser.c" /* yacc.c:1646  */
5646 > #line 5647 "conf_parser.c" /* yacc.c:1652  */
5647      break;
5648  
5649    case 534:
5650 < #line 2664 "conf_parser.y" /* yacc.c:1646  */
5650 > #line 2475 "conf_parser.y" /* yacc.c:1652  */
5651      {
5652    ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5653   }
5654 < #line 5840 "conf_parser.c" /* yacc.c:1646  */
5654 > #line 5655 "conf_parser.c" /* yacc.c:1652  */
5655      break;
5656  
5657    case 535:
5658 < #line 2669 "conf_parser.y" /* yacc.c:1646  */
5658 > #line 2480 "conf_parser.y" /* yacc.c:1652  */
5659      {
5660 <  if (conf_parser_ctx.pass == 2)
5846 <    ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5660 >  ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5661   }
5662 < #line 5849 "conf_parser.c" /* yacc.c:1646  */
5662 > #line 5663 "conf_parser.c" /* yacc.c:1652  */
5663      break;
5664  
5665    case 536:
5666 < #line 2675 "conf_parser.y" /* yacc.c:1646  */
5666 > #line 2485 "conf_parser.y" /* yacc.c:1652  */
5667      {
5668    ConfigGeneral.invisible_on_connect = yylval.number;
5669   }
5670 < #line 5857 "conf_parser.c" /* yacc.c:1646  */
5670 > #line 5671 "conf_parser.c" /* yacc.c:1652  */
5671      break;
5672  
5673    case 537:
5674 < #line 2680 "conf_parser.y" /* yacc.c:1646  */
5674 > #line 2490 "conf_parser.y" /* yacc.c:1652  */
5675      {
5676    ConfigGeneral.warn_no_connect_block = yylval.number;
5677   }
5678 < #line 5865 "conf_parser.c" /* yacc.c:1646  */
5678 > #line 5679 "conf_parser.c" /* yacc.c:1652  */
5679      break;
5680  
5681    case 538:
5682 < #line 2685 "conf_parser.y" /* yacc.c:1646  */
5682 > #line 2495 "conf_parser.y" /* yacc.c:1652  */
5683      {
5684    ConfigGeneral.stats_e_disabled = yylval.number;
5685   }
5686 < #line 5873 "conf_parser.c" /* yacc.c:1646  */
5686 > #line 5687 "conf_parser.c" /* yacc.c:1652  */
5687      break;
5688  
5689    case 539:
5690 < #line 2690 "conf_parser.y" /* yacc.c:1646  */
5690 > #line 2500 "conf_parser.y" /* yacc.c:1652  */
5691      {
5692    ConfigGeneral.stats_m_oper_only = yylval.number;
5693   }
5694 < #line 5881 "conf_parser.c" /* yacc.c:1646  */
5694 > #line 5695 "conf_parser.c" /* yacc.c:1652  */
5695      break;
5696  
5697    case 540:
5698 < #line 2695 "conf_parser.y" /* yacc.c:1646  */
5698 > #line 2505 "conf_parser.y" /* yacc.c:1652  */
5699      {
5700    ConfigGeneral.stats_o_oper_only = yylval.number;
5701   }
5702 < #line 5889 "conf_parser.c" /* yacc.c:1646  */
5702 > #line 5703 "conf_parser.c" /* yacc.c:1652  */
5703      break;
5704  
5705    case 541:
5706 < #line 2700 "conf_parser.y" /* yacc.c:1646  */
5706 > #line 2510 "conf_parser.y" /* yacc.c:1652  */
5707      {
5708    ConfigGeneral.stats_P_oper_only = yylval.number;
5709   }
5710 < #line 5897 "conf_parser.c" /* yacc.c:1646  */
5710 > #line 5711 "conf_parser.c" /* yacc.c:1652  */
5711      break;
5712  
5713    case 542:
5714 < #line 2705 "conf_parser.y" /* yacc.c:1646  */
5714 > #line 2515 "conf_parser.y" /* yacc.c:1652  */
5715      {
5716    ConfigGeneral.stats_u_oper_only = yylval.number;
5717   }
5718 < #line 5905 "conf_parser.c" /* yacc.c:1646  */
5718 > #line 5719 "conf_parser.c" /* yacc.c:1652  */
5719      break;
5720  
5721    case 543:
5722 < #line 2710 "conf_parser.y" /* yacc.c:1646  */
5722 > #line 2520 "conf_parser.y" /* yacc.c:1652  */
5723      {
5724 <  ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5724 >  ConfigGeneral.stats_k_oper_only = yylval.number;
5725   }
5726 < #line 5913 "conf_parser.c" /* yacc.c:1646  */
5726 > #line 5727 "conf_parser.c" /* yacc.c:1652  */
5727      break;
5728  
5729    case 544:
5730 < #line 2713 "conf_parser.y" /* yacc.c:1646  */
5730 > #line 2525 "conf_parser.y" /* yacc.c:1652  */
5731      {
5732 <  ConfigGeneral.stats_k_oper_only = 1;
5732 >  ConfigGeneral.stats_i_oper_only = yylval.number;
5733   }
5734 < #line 5921 "conf_parser.c" /* yacc.c:1646  */
5734 > #line 5735 "conf_parser.c" /* yacc.c:1652  */
5735      break;
5736  
5737    case 545:
5738 < #line 2718 "conf_parser.y" /* yacc.c:1646  */
5738 > #line 2530 "conf_parser.y" /* yacc.c:1652  */
5739      {
5740 <  ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5740 >  ConfigGeneral.pace_wait = (yyvsp[-1].number);
5741   }
5742 < #line 5929 "conf_parser.c" /* yacc.c:1646  */
5742 > #line 5743 "conf_parser.c" /* yacc.c:1652  */
5743      break;
5744  
5745    case 546:
5746 < #line 2721 "conf_parser.y" /* yacc.c:1646  */
5746 > #line 2535 "conf_parser.y" /* yacc.c:1652  */
5747      {
5748 <  ConfigGeneral.stats_i_oper_only = 1;
5748 >  ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5749   }
5750 < #line 5937 "conf_parser.c" /* yacc.c:1646  */
5750 > #line 5751 "conf_parser.c" /* yacc.c:1652  */
5751      break;
5752  
5753    case 547:
5754 < #line 2726 "conf_parser.y" /* yacc.c:1646  */
5754 > #line 2540 "conf_parser.y" /* yacc.c:1652  */
5755      {
5756 <  ConfigGeneral.pace_wait = (yyvsp[-1].number);
5756 >  ConfigGeneral.opers_bypass_callerid = yylval.number;
5757   }
5758 < #line 5945 "conf_parser.c" /* yacc.c:1646  */
5758 > #line 5759 "conf_parser.c" /* yacc.c:1652  */
5759      break;
5760  
5761    case 548:
5762 < #line 2731 "conf_parser.y" /* yacc.c:1646  */
5762 > #line 2545 "conf_parser.y" /* yacc.c:1652  */
5763      {
5764 <  ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5764 >  ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5765   }
5766 < #line 5953 "conf_parser.c" /* yacc.c:1646  */
5766 > #line 5767 "conf_parser.c" /* yacc.c:1652  */
5767      break;
5768  
5769    case 549:
5770 < #line 2736 "conf_parser.y" /* yacc.c:1646  */
5770 > #line 2550 "conf_parser.y" /* yacc.c:1652  */
5771      {
5772 <  ConfigGeneral.opers_bypass_callerid = yylval.number;
5772 >  ConfigGeneral.short_motd = yylval.number;
5773   }
5774 < #line 5961 "conf_parser.c" /* yacc.c:1646  */
5774 > #line 5775 "conf_parser.c" /* yacc.c:1652  */
5775      break;
5776  
5777    case 550:
5778 < #line 2741 "conf_parser.y" /* yacc.c:1646  */
5778 > #line 2555 "conf_parser.y" /* yacc.c:1652  */
5779      {
5780 <  ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5780 >  ConfigGeneral.no_oper_flood = yylval.number;
5781   }
5782 < #line 5969 "conf_parser.c" /* yacc.c:1646  */
5782 > #line 5783 "conf_parser.c" /* yacc.c:1652  */
5783      break;
5784  
5785    case 551:
5786 < #line 2746 "conf_parser.y" /* yacc.c:1646  */
5786 > #line 2560 "conf_parser.y" /* yacc.c:1652  */
5787      {
5788 <  ConfigGeneral.short_motd = yylval.number;
5788 >  ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5789   }
5790 < #line 5977 "conf_parser.c" /* yacc.c:1646  */
5790 > #line 5791 "conf_parser.c" /* yacc.c:1652  */
5791      break;
5792  
5793    case 552:
5794 < #line 2751 "conf_parser.y" /* yacc.c:1646  */
5794 > #line 2565 "conf_parser.y" /* yacc.c:1652  */
5795      {
5796 <  ConfigGeneral.no_oper_flood = yylval.number;
5796 >  ConfigGeneral.max_targets = (yyvsp[-1].number);
5797   }
5798 < #line 5985 "conf_parser.c" /* yacc.c:1646  */
5798 > #line 5799 "conf_parser.c" /* yacc.c:1652  */
5799      break;
5800  
5801    case 553:
5802 < #line 2756 "conf_parser.y" /* yacc.c:1646  */
5802 > #line 2570 "conf_parser.y" /* yacc.c:1652  */
5803      {
5804 <  ConfigGeneral.oper_pass_resv = yylval.number;
5804 >  ConfigGeneral.ping_cookie = yylval.number;
5805   }
5806 < #line 5993 "conf_parser.c" /* yacc.c:1646  */
5806 > #line 5807 "conf_parser.c" /* yacc.c:1652  */
5807      break;
5808  
5809    case 554:
5810 < #line 2761 "conf_parser.y" /* yacc.c:1646  */
5810 > #line 2575 "conf_parser.y" /* yacc.c:1652  */
5811      {
5812 <  ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5812 >  ConfigGeneral.disable_auth = yylval.number;
5813   }
5814 < #line 6001 "conf_parser.c" /* yacc.c:1646  */
5814 > #line 5815 "conf_parser.c" /* yacc.c:1652  */
5815      break;
5816  
5817    case 555:
5818 < #line 2766 "conf_parser.y" /* yacc.c:1646  */
5818 > #line 2580 "conf_parser.y" /* yacc.c:1652  */
5819      {
5820 <  ConfigGeneral.max_targets = (yyvsp[-1].number);
5820 >  ConfigGeneral.throttle_count = (yyvsp[-1].number);
5821   }
5822 < #line 6009 "conf_parser.c" /* yacc.c:1646  */
5822 > #line 5823 "conf_parser.c" /* yacc.c:1652  */
5823      break;
5824  
5825    case 556:
5826 < #line 2771 "conf_parser.y" /* yacc.c:1646  */
5826 > #line 2585 "conf_parser.y" /* yacc.c:1652  */
5827      {
5828 <  ConfigGeneral.ping_cookie = yylval.number;
5828 >  ConfigGeneral.throttle_time = (yyvsp[-1].number);
5829   }
5830 < #line 6017 "conf_parser.c" /* yacc.c:1646  */
5830 > #line 5831 "conf_parser.c" /* yacc.c:1652  */
5831      break;
5832  
5833    case 557:
5834 < #line 2776 "conf_parser.y" /* yacc.c:1646  */
5834 > #line 2590 "conf_parser.y" /* yacc.c:1652  */
5835      {
5836 <  ConfigGeneral.disable_auth = yylval.number;
5836 >  ConfigGeneral.oper_umodes = 0;
5837   }
5838 < #line 6025 "conf_parser.c" /* yacc.c:1646  */
5838 > #line 5839 "conf_parser.c" /* yacc.c:1652  */
5839      break;
5840  
5841 <  case 558:
5842 < #line 2781 "conf_parser.y" /* yacc.c:1646  */
5841 >  case 561:
5842 > #line 2596 "conf_parser.y" /* yacc.c:1652  */
5843      {
5844 <  ConfigGeneral.throttle_count = (yyvsp[-1].number);
5844 >  ConfigGeneral.oper_umodes |= UMODE_BOTS;
5845   }
5846 < #line 6033 "conf_parser.c" /* yacc.c:1646  */
5846 > #line 5847 "conf_parser.c" /* yacc.c:1652  */
5847      break;
5848  
5849 <  case 559:
5850 < #line 2786 "conf_parser.y" /* yacc.c:1646  */
5849 >  case 562:
5850 > #line 2599 "conf_parser.y" /* yacc.c:1652  */
5851      {
5852 <  ConfigGeneral.throttle_time = (yyvsp[-1].number);
5852 >  ConfigGeneral.oper_umodes |= UMODE_CCONN;
5853   }
5854 < #line 6041 "conf_parser.c" /* yacc.c:1646  */
5854 > #line 5855 "conf_parser.c" /* yacc.c:1652  */
5855      break;
5856  
5857 <  case 560:
5858 < #line 2791 "conf_parser.y" /* yacc.c:1646  */
5857 >  case 563:
5858 > #line 2602 "conf_parser.y" /* yacc.c:1652  */
5859      {
5860 <  ConfigGeneral.oper_umodes = 0;
5860 >  ConfigGeneral.oper_umodes |= UMODE_DEAF;
5861   }
5862 < #line 6049 "conf_parser.c" /* yacc.c:1646  */
5862 > #line 5863 "conf_parser.c" /* yacc.c:1652  */
5863      break;
5864  
5865    case 564:
5866 < #line 2797 "conf_parser.y" /* yacc.c:1646  */
5866 > #line 2605 "conf_parser.y" /* yacc.c:1652  */
5867      {
5868 <  ConfigGeneral.oper_umodes |= UMODE_BOTS;
5868 >  ConfigGeneral.oper_umodes |= UMODE_DEBUG;
5869   }
5870 < #line 6057 "conf_parser.c" /* yacc.c:1646  */
5870 > #line 5871 "conf_parser.c" /* yacc.c:1652  */
5871      break;
5872  
5873    case 565:
5874 < #line 2800 "conf_parser.y" /* yacc.c:1646  */
5874 > #line 2608 "conf_parser.y" /* yacc.c:1652  */
5875      {
5876 <  ConfigGeneral.oper_umodes |= UMODE_CCONN;
5876 >  ConfigGeneral.oper_umodes |= UMODE_FULL;
5877   }
5878 < #line 6065 "conf_parser.c" /* yacc.c:1646  */
5878 > #line 5879 "conf_parser.c" /* yacc.c:1652  */
5879      break;
5880  
5881    case 566:
5882 < #line 2803 "conf_parser.y" /* yacc.c:1646  */
5882 > #line 2611 "conf_parser.y" /* yacc.c:1652  */
5883      {
5884 <  ConfigGeneral.oper_umodes |= UMODE_DEAF;
5884 >  ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
5885   }
5886 < #line 6073 "conf_parser.c" /* yacc.c:1646  */
5886 > #line 5887 "conf_parser.c" /* yacc.c:1652  */
5887      break;
5888  
5889    case 567:
5890 < #line 2806 "conf_parser.y" /* yacc.c:1646  */
5890 > #line 2614 "conf_parser.y" /* yacc.c:1652  */
5891      {
5892 <  ConfigGeneral.oper_umodes |= UMODE_DEBUG;
5892 >  ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
5893   }
5894 < #line 6081 "conf_parser.c" /* yacc.c:1646  */
5894 > #line 5895 "conf_parser.c" /* yacc.c:1652  */
5895      break;
5896  
5897    case 568:
5898 < #line 2809 "conf_parser.y" /* yacc.c:1646  */
5898 > #line 2617 "conf_parser.y" /* yacc.c:1652  */
5899      {
5900 <  ConfigGeneral.oper_umodes |= UMODE_FULL;
5900 >  ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
5901   }
5902 < #line 6089 "conf_parser.c" /* yacc.c:1646  */
5902 > #line 5903 "conf_parser.c" /* yacc.c:1652  */
5903      break;
5904  
5905    case 569:
5906 < #line 2812 "conf_parser.y" /* yacc.c:1646  */
5906 > #line 2620 "conf_parser.y" /* yacc.c:1652  */
5907      {
5908 <  ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
5908 >  ConfigGeneral.oper_umodes |= UMODE_SKILL;
5909   }
5910 < #line 6097 "conf_parser.c" /* yacc.c:1646  */
5910 > #line 5911 "conf_parser.c" /* yacc.c:1652  */
5911      break;
5912  
5913    case 570:
5914 < #line 2815 "conf_parser.y" /* yacc.c:1646  */
5914 > #line 2623 "conf_parser.y" /* yacc.c:1652  */
5915      {
5916 <  ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
5916 >  ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
5917   }
5918 < #line 6105 "conf_parser.c" /* yacc.c:1646  */
5918 > #line 5919 "conf_parser.c" /* yacc.c:1652  */
5919      break;
5920  
5921    case 571:
5922 < #line 2818 "conf_parser.y" /* yacc.c:1646  */
5922 > #line 2626 "conf_parser.y" /* yacc.c:1652  */
5923      {
5924 <  ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
5924 >  ConfigGeneral.oper_umodes |= UMODE_REJ;
5925   }
5926 < #line 6113 "conf_parser.c" /* yacc.c:1646  */
5926 > #line 5927 "conf_parser.c" /* yacc.c:1652  */
5927      break;
5928  
5929    case 572:
5930 < #line 2821 "conf_parser.y" /* yacc.c:1646  */
5930 > #line 2629 "conf_parser.y" /* yacc.c:1652  */
5931      {
5932 <  ConfigGeneral.oper_umodes |= UMODE_SKILL;
5932 >  ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
5933   }
5934 < #line 6121 "conf_parser.c" /* yacc.c:1646  */
5934 > #line 5935 "conf_parser.c" /* yacc.c:1652  */
5935      break;
5936  
5937    case 573:
5938 < #line 2824 "conf_parser.y" /* yacc.c:1646  */
5938 > #line 2632 "conf_parser.y" /* yacc.c:1652  */
5939      {
5940 <  ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
5940 >  ConfigGeneral.oper_umodes |= UMODE_SPY;
5941   }
5942 < #line 6129 "conf_parser.c" /* yacc.c:1646  */
5942 > #line 5943 "conf_parser.c" /* yacc.c:1652  */
5943      break;
5944  
5945    case 574:
5946 < #line 2827 "conf_parser.y" /* yacc.c:1646  */
5946 > #line 2635 "conf_parser.y" /* yacc.c:1652  */
5947      {
5948 <  ConfigGeneral.oper_umodes |= UMODE_REJ;
5948 >  ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
5949   }
5950 < #line 6137 "conf_parser.c" /* yacc.c:1646  */
5950 > #line 5951 "conf_parser.c" /* yacc.c:1652  */
5951      break;
5952  
5953    case 575:
5954 < #line 2830 "conf_parser.y" /* yacc.c:1646  */
5954 > #line 2638 "conf_parser.y" /* yacc.c:1652  */
5955      {
5956 <  ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
5956 >  ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
5957   }
5958 < #line 6145 "conf_parser.c" /* yacc.c:1646  */
5958 > #line 5959 "conf_parser.c" /* yacc.c:1652  */
5959      break;
5960  
5961    case 576:
5962 < #line 2833 "conf_parser.y" /* yacc.c:1646  */
5962 > #line 2641 "conf_parser.y" /* yacc.c:1652  */
5963      {
5964 <  ConfigGeneral.oper_umodes |= UMODE_SPY;
5964 >  ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
5965   }
5966 < #line 6153 "conf_parser.c" /* yacc.c:1646  */
5966 > #line 5967 "conf_parser.c" /* yacc.c:1652  */
5967      break;
5968  
5969    case 577:
5970 < #line 2836 "conf_parser.y" /* yacc.c:1646  */
5970 > #line 2644 "conf_parser.y" /* yacc.c:1652  */
5971      {
5972 <  ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
5972 >  ConfigGeneral.oper_umodes |= UMODE_WALLOP;
5973   }
5974 < #line 6161 "conf_parser.c" /* yacc.c:1646  */
5974 > #line 5975 "conf_parser.c" /* yacc.c:1652  */
5975      break;
5976  
5977    case 578:
5978 < #line 2839 "conf_parser.y" /* yacc.c:1646  */
5978 > #line 2647 "conf_parser.y" /* yacc.c:1652  */
5979      {
5980 <  ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
5980 >  ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
5981   }
5982 < #line 6169 "conf_parser.c" /* yacc.c:1646  */
5982 > #line 5983 "conf_parser.c" /* yacc.c:1652  */
5983      break;
5984  
5985    case 579:
5986 < #line 2842 "conf_parser.y" /* yacc.c:1646  */
5986 > #line 2650 "conf_parser.y" /* yacc.c:1652  */
5987      {
5988 <  ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
5988 >  ConfigGeneral.oper_umodes |= UMODE_CALLERID;
5989   }
5990 < #line 6177 "conf_parser.c" /* yacc.c:1646  */
5990 > #line 5991 "conf_parser.c" /* yacc.c:1652  */
5991      break;
5992  
5993    case 580:
5994 < #line 2845 "conf_parser.y" /* yacc.c:1646  */
5994 > #line 2653 "conf_parser.y" /* yacc.c:1652  */
5995      {
5996 <  ConfigGeneral.oper_umodes |= UMODE_WALLOP;
5996 >  ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
5997   }
5998 < #line 6185 "conf_parser.c" /* yacc.c:1646  */
5998 > #line 5999 "conf_parser.c" /* yacc.c:1652  */
5999      break;
6000  
6001    case 581:
6002 < #line 2848 "conf_parser.y" /* yacc.c:1646  */
6002 > #line 2656 "conf_parser.y" /* yacc.c:1652  */
6003      {
6004 <  ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6004 >  ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6005   }
6006 < #line 6193 "conf_parser.c" /* yacc.c:1646  */
6006 > #line 6007 "conf_parser.c" /* yacc.c:1652  */
6007      break;
6008  
6009    case 582:
6010 < #line 2851 "conf_parser.y" /* yacc.c:1646  */
6010 > #line 2659 "conf_parser.y" /* yacc.c:1652  */
6011      {
6012 <  ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6012 >  ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6013   }
6014 < #line 6201 "conf_parser.c" /* yacc.c:1646  */
6014 > #line 6015 "conf_parser.c" /* yacc.c:1652  */
6015      break;
6016  
6017    case 583:
6018 < #line 2854 "conf_parser.y" /* yacc.c:1646  */
6018 > #line 2662 "conf_parser.y" /* yacc.c:1652  */
6019      {
6020 <  ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6020 >  ConfigGeneral.oper_umodes |= UMODE_EXPIRATION;
6021   }
6022 < #line 6209 "conf_parser.c" /* yacc.c:1646  */
6022 > #line 6023 "conf_parser.c" /* yacc.c:1652  */
6023      break;
6024  
6025    case 584:
6026 < #line 2857 "conf_parser.y" /* yacc.c:1646  */
6026 > #line 2667 "conf_parser.y" /* yacc.c:1652  */
6027      {
6028 <  ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6028 >  ConfigGeneral.oper_only_umodes = 0;
6029   }
6030 < #line 6217 "conf_parser.c" /* yacc.c:1646  */
6030 > #line 6031 "conf_parser.c" /* yacc.c:1652  */
6031      break;
6032  
6033 <  case 585:
6034 < #line 2860 "conf_parser.y" /* yacc.c:1646  */
6033 >  case 588:
6034 > #line 2673 "conf_parser.y" /* yacc.c:1652  */
6035      {
6036 <  ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6036 >  ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6037   }
6038 < #line 6225 "conf_parser.c" /* yacc.c:1646  */
6038 > #line 6039 "conf_parser.c" /* yacc.c:1652  */
6039      break;
6040  
6041 <  case 586:
6042 < #line 2865 "conf_parser.y" /* yacc.c:1646  */
6041 >  case 589:
6042 > #line 2676 "conf_parser.y" /* yacc.c:1652  */
6043      {
6044 <  ConfigGeneral.oper_only_umodes = 0;
6044 >  ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6045   }
6046 < #line 6233 "conf_parser.c" /* yacc.c:1646  */
6046 > #line 6047 "conf_parser.c" /* yacc.c:1652  */
6047      break;
6048  
6049    case 590:
6050 < #line 2871 "conf_parser.y" /* yacc.c:1646  */
6050 > #line 2679 "conf_parser.y" /* yacc.c:1652  */
6051      {
6052 <  ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6052 >  ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6053   }
6054 < #line 6241 "conf_parser.c" /* yacc.c:1646  */
6054 > #line 6055 "conf_parser.c" /* yacc.c:1652  */
6055      break;
6056  
6057    case 591:
6058 < #line 2874 "conf_parser.y" /* yacc.c:1646  */
6058 > #line 2682 "conf_parser.y" /* yacc.c:1652  */
6059      {
6060 <  ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6060 >  ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6061   }
6062 < #line 6249 "conf_parser.c" /* yacc.c:1646  */
6062 > #line 6063 "conf_parser.c" /* yacc.c:1652  */
6063      break;
6064  
6065    case 592:
6066 < #line 2877 "conf_parser.y" /* yacc.c:1646  */
6066 > #line 2685 "conf_parser.y" /* yacc.c:1652  */
6067      {
6068 <  ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6068 >  ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6069   }
6070 < #line 6257 "conf_parser.c" /* yacc.c:1646  */
6070 > #line 6071 "conf_parser.c" /* yacc.c:1652  */
6071      break;
6072  
6073    case 593:
6074 < #line 2880 "conf_parser.y" /* yacc.c:1646  */
6074 > #line 2688 "conf_parser.y" /* yacc.c:1652  */
6075      {
6076 <  ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6076 >  ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6077   }
6078 < #line 6265 "conf_parser.c" /* yacc.c:1646  */
6078 > #line 6079 "conf_parser.c" /* yacc.c:1652  */
6079      break;
6080  
6081    case 594:
6082 < #line 2883 "conf_parser.y" /* yacc.c:1646  */
6082 > #line 2691 "conf_parser.y" /* yacc.c:1652  */
6083      {
6084 <  ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6084 >  ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6085   }
6086 < #line 6273 "conf_parser.c" /* yacc.c:1646  */
6086 > #line 6087 "conf_parser.c" /* yacc.c:1652  */
6087      break;
6088  
6089    case 595:
6090 < #line 2886 "conf_parser.y" /* yacc.c:1646  */
6090 > #line 2694 "conf_parser.y" /* yacc.c:1652  */
6091      {
6092 <  ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6092 >  ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6093   }
6094 < #line 6281 "conf_parser.c" /* yacc.c:1646  */
6094 > #line 6095 "conf_parser.c" /* yacc.c:1652  */
6095      break;
6096  
6097    case 596:
6098 < #line 2889 "conf_parser.y" /* yacc.c:1646  */
6098 > #line 2697 "conf_parser.y" /* yacc.c:1652  */
6099      {
6100 <  ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6100 >  ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6101   }
6102 < #line 6289 "conf_parser.c" /* yacc.c:1646  */
6102 > #line 6103 "conf_parser.c" /* yacc.c:1652  */
6103      break;
6104  
6105    case 597:
6106 < #line 2892 "conf_parser.y" /* yacc.c:1646  */
6106 > #line 2700 "conf_parser.y" /* yacc.c:1652  */
6107      {
6108 <  ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6108 >  ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6109   }
6110 < #line 6297 "conf_parser.c" /* yacc.c:1646  */
6110 > #line 6111 "conf_parser.c" /* yacc.c:1652  */
6111      break;
6112  
6113    case 598:
6114 < #line 2895 "conf_parser.y" /* yacc.c:1646  */
6114 > #line 2703 "conf_parser.y" /* yacc.c:1652  */
6115      {
6116 <  ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6116 >  ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6117   }
6118 < #line 6305 "conf_parser.c" /* yacc.c:1646  */
6118 > #line 6119 "conf_parser.c" /* yacc.c:1652  */
6119      break;
6120  
6121    case 599:
6122 < #line 2898 "conf_parser.y" /* yacc.c:1646  */
6122 > #line 2706 "conf_parser.y" /* yacc.c:1652  */
6123      {
6124 <  ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6124 >  ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6125   }
6126 < #line 6313 "conf_parser.c" /* yacc.c:1646  */
6126 > #line 6127 "conf_parser.c" /* yacc.c:1652  */
6127      break;
6128  
6129    case 600:
6130 < #line 2901 "conf_parser.y" /* yacc.c:1646  */
6130 > #line 2709 "conf_parser.y" /* yacc.c:1652  */
6131      {
6132 <  ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6132 >  ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6133   }
6134 < #line 6321 "conf_parser.c" /* yacc.c:1646  */
6134 > #line 6135 "conf_parser.c" /* yacc.c:1652  */
6135      break;
6136  
6137    case 601:
6138 < #line 2904 "conf_parser.y" /* yacc.c:1646  */
6138 > #line 2712 "conf_parser.y" /* yacc.c:1652  */
6139      {
6140 <  ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6140 >  ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6141   }
6142 < #line 6329 "conf_parser.c" /* yacc.c:1646  */
6142 > #line 6143 "conf_parser.c" /* yacc.c:1652  */
6143      break;
6144  
6145    case 602:
6146 < #line 2907 "conf_parser.y" /* yacc.c:1646  */
6146 > #line 2715 "conf_parser.y" /* yacc.c:1652  */
6147      {
6148 <  ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6148 >  ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6149   }
6150 < #line 6337 "conf_parser.c" /* yacc.c:1646  */
6150 > #line 6151 "conf_parser.c" /* yacc.c:1652  */
6151      break;
6152  
6153    case 603:
6154 < #line 2910 "conf_parser.y" /* yacc.c:1646  */
6154 > #line 2718 "conf_parser.y" /* yacc.c:1652  */
6155      {
6156 <  ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6156 >  ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6157   }
6158 < #line 6345 "conf_parser.c" /* yacc.c:1646  */
6158 > #line 6159 "conf_parser.c" /* yacc.c:1652  */
6159      break;
6160  
6161    case 604:
6162 < #line 2913 "conf_parser.y" /* yacc.c:1646  */
6162 > #line 2721 "conf_parser.y" /* yacc.c:1652  */
6163      {
6164 <  ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6164 >  ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6165   }
6166 < #line 6353 "conf_parser.c" /* yacc.c:1646  */
6166 > #line 6167 "conf_parser.c" /* yacc.c:1652  */
6167      break;
6168  
6169    case 605:
6170 < #line 2916 "conf_parser.y" /* yacc.c:1646  */
6170 > #line 2724 "conf_parser.y" /* yacc.c:1652  */
6171      {
6172 <  ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6172 >  ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6173   }
6174 < #line 6361 "conf_parser.c" /* yacc.c:1646  */
6174 > #line 6175 "conf_parser.c" /* yacc.c:1652  */
6175      break;
6176  
6177    case 606:
6178 < #line 2919 "conf_parser.y" /* yacc.c:1646  */
6178 > #line 2727 "conf_parser.y" /* yacc.c:1652  */
6179      {
6180 <  ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6180 >  ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6181   }
6182 < #line 6369 "conf_parser.c" /* yacc.c:1646  */
6182 > #line 6183 "conf_parser.c" /* yacc.c:1652  */
6183      break;
6184  
6185    case 607:
6186 < #line 2922 "conf_parser.y" /* yacc.c:1646  */
6186 > #line 2730 "conf_parser.y" /* yacc.c:1652  */
6187      {
6188 <  ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6188 >  ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6189   }
6190 < #line 6377 "conf_parser.c" /* yacc.c:1646  */
6190 > #line 6191 "conf_parser.c" /* yacc.c:1652  */
6191      break;
6192  
6193    case 608:
6194 < #line 2925 "conf_parser.y" /* yacc.c:1646  */
6194 > #line 2733 "conf_parser.y" /* yacc.c:1652  */
6195      {
6196 <  ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6196 >  ConfigGeneral.oper_only_umodes |= UMODE_EXPIRATION;
6197   }
6198 < #line 6385 "conf_parser.c" /* yacc.c:1646  */
6198 > #line 6199 "conf_parser.c" /* yacc.c:1652  */
6199      break;
6200  
6201    case 609:
6202 < #line 2928 "conf_parser.y" /* yacc.c:1646  */
6389 <    {
6390 <  ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6391 < }
6392 < #line 6393 "conf_parser.c" /* yacc.c:1646  */
6393 <    break;
6394 <
6395 <  case 610:
6396 < #line 2933 "conf_parser.y" /* yacc.c:1646  */
6202 > #line 2738 "conf_parser.y" /* yacc.c:1652  */
6203      {
6204    ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6205   }
6206 < #line 6401 "conf_parser.c" /* yacc.c:1646  */
6206 > #line 6207 "conf_parser.c" /* yacc.c:1652  */
6207      break;
6208  
6209 <  case 611:
6210 < #line 2938 "conf_parser.y" /* yacc.c:1646  */
6209 >  case 610:
6210 > #line 2743 "conf_parser.y" /* yacc.c:1652  */
6211      {
6212    ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6213   }
6214 < #line 6409 "conf_parser.c" /* yacc.c:1646  */
6214 > #line 6215 "conf_parser.c" /* yacc.c:1652  */
6215      break;
6216  
6217 <  case 612:
6218 < #line 2943 "conf_parser.y" /* yacc.c:1646  */
6217 >  case 611:
6218 > #line 2748 "conf_parser.y" /* yacc.c:1652  */
6219      {
6220    ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6221   }
6222 < #line 6417 "conf_parser.c" /* yacc.c:1646  */
6222 > #line 6223 "conf_parser.c" /* yacc.c:1652  */
6223      break;
6224  
6225 <  case 631:
6226 < #line 2972 "conf_parser.y" /* yacc.c:1646  */
6225 >  case 612:
6226 > #line 2753 "conf_parser.y" /* yacc.c:1652  */
6227      {
6228 <  ConfigChannel.disable_fake_channels = yylval.number;
6228 >  ConfigGeneral.default_floodtime = (yyvsp[-1].number);
6229   }
6230 < #line 6425 "conf_parser.c" /* yacc.c:1646  */
6230 > #line 6231 "conf_parser.c" /* yacc.c:1652  */
6231      break;
6232  
6233    case 632:
6234 < #line 2977 "conf_parser.y" /* yacc.c:1646  */
6234 > #line 2782 "conf_parser.y" /* yacc.c:1652  */
6235      {
6236 <  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6236 >  ConfigChannel.enable_extbans = yylval.number;
6237   }
6238 < #line 6433 "conf_parser.c" /* yacc.c:1646  */
6238 > #line 6239 "conf_parser.c" /* yacc.c:1652  */
6239      break;
6240  
6241    case 633:
6242 < #line 2982 "conf_parser.y" /* yacc.c:1646  */
6242 > #line 2787 "conf_parser.y" /* yacc.c:1652  */
6243      {
6244 <  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6244 >  ConfigChannel.disable_fake_channels = yylval.number;
6245   }
6246 < #line 6441 "conf_parser.c" /* yacc.c:1646  */
6246 > #line 6247 "conf_parser.c" /* yacc.c:1652  */
6247      break;
6248  
6249    case 634:
6250 < #line 2987 "conf_parser.y" /* yacc.c:1646  */
6250 > #line 2792 "conf_parser.y" /* yacc.c:1652  */
6251      {
6252 <  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6252 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6253   }
6254 < #line 6449 "conf_parser.c" /* yacc.c:1646  */
6254 > #line 6255 "conf_parser.c" /* yacc.c:1652  */
6255      break;
6256  
6257    case 635:
6258 < #line 2992 "conf_parser.y" /* yacc.c:1646  */
6258 > #line 2797 "conf_parser.y" /* yacc.c:1652  */
6259      {
6260 <  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6260 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6261   }
6262 < #line 6457 "conf_parser.c" /* yacc.c:1646  */
6262 > #line 6263 "conf_parser.c" /* yacc.c:1652  */
6263      break;
6264  
6265    case 636:
6266 < #line 2997 "conf_parser.y" /* yacc.c:1646  */
6266 > #line 2802 "conf_parser.y" /* yacc.c:1652  */
6267      {
6268 <  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6268 >  ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6269   }
6270 < #line 6465 "conf_parser.c" /* yacc.c:1646  */
6270 > #line 6271 "conf_parser.c" /* yacc.c:1652  */
6271      break;
6272  
6273    case 637:
6274 < #line 3002 "conf_parser.y" /* yacc.c:1646  */
6274 > #line 2807 "conf_parser.y" /* yacc.c:1652  */
6275      {
6276 <  ConfigChannel.max_channels = (yyvsp[-1].number);
6276 >  ConfigChannel.invite_expire_time = (yyvsp[-1].number);
6277   }
6278 < #line 6473 "conf_parser.c" /* yacc.c:1646  */
6278 > #line 6279 "conf_parser.c" /* yacc.c:1652  */
6279      break;
6280  
6281    case 638:
6282 < #line 3007 "conf_parser.y" /* yacc.c:1646  */
6282 > #line 2812 "conf_parser.y" /* yacc.c:1652  */
6283      {
6284 <  ConfigChannel.max_bans = (yyvsp[-1].number);
6284 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6285   }
6286 < #line 6481 "conf_parser.c" /* yacc.c:1646  */
6286 > #line 6287 "conf_parser.c" /* yacc.c:1652  */
6287      break;
6288  
6289    case 639:
6290 < #line 3012 "conf_parser.y" /* yacc.c:1646  */
6290 > #line 2817 "conf_parser.y" /* yacc.c:1652  */
6291      {
6292 <  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6292 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6293   }
6294 < #line 6489 "conf_parser.c" /* yacc.c:1646  */
6294 > #line 6295 "conf_parser.c" /* yacc.c:1652  */
6295      break;
6296  
6297    case 640:
6298 < #line 3017 "conf_parser.y" /* yacc.c:1646  */
6298 > #line 2822 "conf_parser.y" /* yacc.c:1652  */
6299      {
6300 <  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6300 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6301   }
6302 < #line 6497 "conf_parser.c" /* yacc.c:1646  */
6302 > #line 6303 "conf_parser.c" /* yacc.c:1652  */
6303      break;
6304  
6305    case 641:
6306 < #line 3022 "conf_parser.y" /* yacc.c:1646  */
6306 > #line 2827 "conf_parser.y" /* yacc.c:1652  */
6307      {
6308 <  ConfigChannel.no_create_on_split = yylval.number;
6308 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6309   }
6310 < #line 6505 "conf_parser.c" /* yacc.c:1646  */
6310 > #line 6311 "conf_parser.c" /* yacc.c:1652  */
6311      break;
6312  
6313    case 642:
6314 < #line 3027 "conf_parser.y" /* yacc.c:1646  */
6314 > #line 2832 "conf_parser.y" /* yacc.c:1652  */
6315      {
6316 <  ConfigChannel.no_join_on_split = yylval.number;
6316 >  ConfigChannel.max_invites = (yyvsp[-1].number);
6317   }
6318 < #line 6513 "conf_parser.c" /* yacc.c:1646  */
6318 > #line 6319 "conf_parser.c" /* yacc.c:1652  */
6319      break;
6320  
6321    case 643:
6322 < #line 3032 "conf_parser.y" /* yacc.c:1646  */
6322 > #line 2837 "conf_parser.y" /* yacc.c:1652  */
6323      {
6324 <  ConfigChannel.default_join_flood_count = yylval.number;
6324 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6325   }
6326 < #line 6521 "conf_parser.c" /* yacc.c:1646  */
6326 > #line 6327 "conf_parser.c" /* yacc.c:1652  */
6327      break;
6328  
6329    case 644:
6330 < #line 3037 "conf_parser.y" /* yacc.c:1646  */
6330 > #line 2842 "conf_parser.y" /* yacc.c:1652  */
6331 >    {
6332 >  ConfigChannel.max_bans_large = (yyvsp[-1].number);
6333 > }
6334 > #line 6335 "conf_parser.c" /* yacc.c:1652  */
6335 >    break;
6336 >
6337 >  case 645:
6338 > #line 2847 "conf_parser.y" /* yacc.c:1652  */
6339 >    {
6340 >  ConfigChannel.default_join_flood_count = yylval.number;
6341 > }
6342 > #line 6343 "conf_parser.c" /* yacc.c:1652  */
6343 >    break;
6344 >
6345 >  case 646:
6346 > #line 2852 "conf_parser.y" /* yacc.c:1652  */
6347      {
6348    ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6349   }
6350 < #line 6529 "conf_parser.c" /* yacc.c:1646  */
6350 > #line 6351 "conf_parser.c" /* yacc.c:1652  */
6351      break;
6352  
6353 <  case 657:
6354 < #line 3059 "conf_parser.y" /* yacc.c:1646  */
6353 >  case 660:
6354 > #line 2875 "conf_parser.y" /* yacc.c:1652  */
6355      {
6356    if (conf_parser_ctx.pass == 2)
6357      ConfigServerHide.flatten_links = yylval.number;
6358   }
6359 < #line 6538 "conf_parser.c" /* yacc.c:1646  */
6359 > #line 6360 "conf_parser.c" /* yacc.c:1652  */
6360      break;
6361  
6362 <  case 658:
6363 < #line 3065 "conf_parser.y" /* yacc.c:1646  */
6362 >  case 661:
6363 > #line 2881 "conf_parser.y" /* yacc.c:1652  */
6364      {
6365    if (conf_parser_ctx.pass == 2)
6366 <    ConfigServerHide.disable_remote_commands = yylval.number;
6366 >  {
6367 >    if ((yyvsp[-1].number) > 0)
6368 >    {
6369 >      event_write_links_file.when = (yyvsp[-1].number);
6370 >      event_add(&event_write_links_file, NULL);
6371 >    }
6372 >    else
6373 >     event_delete(&event_write_links_file);
6374 >
6375 >    ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6376 >  }
6377   }
6378 < #line 6547 "conf_parser.c" /* yacc.c:1646  */
6378 > #line 6379 "conf_parser.c" /* yacc.c:1652  */
6379      break;
6380  
6381 <  case 659:
6382 < #line 3071 "conf_parser.y" /* yacc.c:1646  */
6381 >  case 662:
6382 > #line 2897 "conf_parser.y" /* yacc.c:1652  */
6383      {
6384    if (conf_parser_ctx.pass == 2)
6385 <    ConfigServerHide.hide_servers = yylval.number;
6385 >  {
6386 >    xfree(ConfigServerHide.flatten_links_file);
6387 >    ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6388 >  }
6389   }
6390 < #line 6556 "conf_parser.c" /* yacc.c:1646  */
6390 > #line 6391 "conf_parser.c" /* yacc.c:1652  */
6391      break;
6392  
6393 <  case 660:
6394 < #line 3077 "conf_parser.y" /* yacc.c:1646  */
6393 >  case 663:
6394 > #line 2906 "conf_parser.y" /* yacc.c:1652  */
6395      {
6396    if (conf_parser_ctx.pass == 2)
6397 <    ConfigServerHide.hide_services = yylval.number;
6397 >    ConfigServerHide.disable_remote_commands = yylval.number;
6398   }
6399 < #line 6565 "conf_parser.c" /* yacc.c:1646  */
6399 > #line 6400 "conf_parser.c" /* yacc.c:1652  */
6400      break;
6401  
6402 <  case 661:
6403 < #line 3083 "conf_parser.y" /* yacc.c:1646  */
6402 >  case 664:
6403 > #line 2912 "conf_parser.y" /* yacc.c:1652  */
6404      {
6405    if (conf_parser_ctx.pass == 2)
6406 <  {
6572 <    MyFree(ConfigServerHide.hidden_name);
6573 <    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6574 <  }
6406 >    ConfigServerHide.hide_servers = yylval.number;
6407   }
6408 < #line 6577 "conf_parser.c" /* yacc.c:1646  */
6408 > #line 6409 "conf_parser.c" /* yacc.c:1652  */
6409      break;
6410  
6411 <  case 662:
6412 < #line 3092 "conf_parser.y" /* yacc.c:1646  */
6411 >  case 665:
6412 > #line 2918 "conf_parser.y" /* yacc.c:1652  */
6413      {
6414    if (conf_parser_ctx.pass == 2)
6415 <  {
6416 <    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6417 <    {
6418 <      event_write_links_file.when = (yyvsp[-1].number);
6587 <      event_addish(&event_write_links_file, NULL);
6588 <      ConfigServerHide.links_disabled = 0;
6589 <    }
6415 >    ConfigServerHide.hide_services = yylval.number;
6416 > }
6417 > #line 6418 "conf_parser.c" /* yacc.c:1652  */
6418 >    break;
6419  
6420 <    ConfigServerHide.links_delay = (yyvsp[-1].number);
6420 >  case 666:
6421 > #line 2924 "conf_parser.y" /* yacc.c:1652  */
6422 >    {
6423 >  if (conf_parser_ctx.pass == 2)
6424 >  {
6425 >    xfree(ConfigServerHide.hidden_name);
6426 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6427    }
6428   }
6429 < #line 6595 "conf_parser.c" /* yacc.c:1646  */
6429 > #line 6430 "conf_parser.c" /* yacc.c:1652  */
6430      break;
6431  
6432 <  case 663:
6433 < #line 3107 "conf_parser.y" /* yacc.c:1646  */
6432 >  case 667:
6433 > #line 2933 "conf_parser.y" /* yacc.c:1652  */
6434      {
6435    if (conf_parser_ctx.pass == 2)
6436      ConfigServerHide.hidden = yylval.number;
6437   }
6438 < #line 6604 "conf_parser.c" /* yacc.c:1646  */
6438 > #line 6439 "conf_parser.c" /* yacc.c:1652  */
6439      break;
6440  
6441 <  case 664:
6442 < #line 3113 "conf_parser.y" /* yacc.c:1646  */
6441 >  case 668:
6442 > #line 2939 "conf_parser.y" /* yacc.c:1652  */
6443      {
6444    if (conf_parser_ctx.pass == 2)
6445      ConfigServerHide.hide_server_ips = yylval.number;
6446   }
6447 < #line 6613 "conf_parser.c" /* yacc.c:1646  */
6447 > #line 6448 "conf_parser.c" /* yacc.c:1652  */
6448      break;
6449  
6450  
6451 < #line 6617 "conf_parser.c" /* yacc.c:1646  */
6451 > #line 6452 "conf_parser.c" /* yacc.c:1652  */
6452        default: break;
6453      }
6454    /* User semantic actions sometimes alter yychar, and that requires
# Line 6638 | Line 6473 | yyreduce:
6473    /* Now 'shift' the result of the reduction.  Determine what state
6474       that goes to, based on the state we popped back to and the rule
6475       number reduced by.  */
6476 <
6477 <  yyn = yyr1[yyn];
6478 <
6479 <  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
6480 <  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6481 <    yystate = yytable[yystate];
6482 <  else
6648 <    yystate = yydefgoto[yyn - YYNTOKENS];
6476 >  {
6477 >    const int yylhs = yyr1[yyn] - YYNTOKENS;
6478 >    const int yyi = yypgoto[yylhs] + *yyssp;
6479 >    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
6480 >               ? yytable[yyi]
6481 >               : yydefgoto[yylhs]);
6482 >  }
6483  
6484    goto yynewstate;
6485  
# Line 6728 | Line 6562 | yyerrlab:
6562   | yyerrorlab -- error raised explicitly by YYERROR.  |
6563   `---------------------------------------------------*/
6564   yyerrorlab:
6565 <
6566 <  /* Pacify compilers like GCC when the user code never invokes
6567 <     YYERROR and the label yyerrorlab therefore never appears in user
6568 <     code.  */
6735 <  if (/*CONSTCOND*/ 0)
6736 <     goto yyerrorlab;
6565 >  /* Pacify compilers when the user code never invokes YYERROR and the
6566 >     label yyerrorlab therefore never appears in user code.  */
6567 >  if (0)
6568 >    YYERROR;
6569  
6570    /* Do not reclaim the symbols of the rule whose action triggered
6571       this YYERROR.  */
# Line 6795 | Line 6627 | yyacceptlab:
6627    yyresult = 0;
6628    goto yyreturn;
6629  
6630 +
6631   /*-----------------------------------.
6632   | yyabortlab -- YYABORT comes here.  |
6633   `-----------------------------------*/
# Line 6802 | Line 6635 | yyabortlab:
6635    yyresult = 1;
6636    goto yyreturn;
6637  
6638 +
6639   #if !defined yyoverflow || YYERROR_VERBOSE
6640   /*-------------------------------------------------.
6641   | yyexhaustedlab -- memory exhaustion comes here.  |
# Line 6812 | Line 6646 | yyexhaustedlab:
6646    /* Fall through.  */
6647   #endif
6648  
6649 +
6650 + /*-----------------------------------------------------.
6651 + | yyreturn -- parsing is finished, return the result.  |
6652 + `-----------------------------------------------------*/
6653   yyreturn:
6654    if (yychar != YYEMPTY)
6655      {

Comparing ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords):
Revision 6162 by michael, Thu Jun 18 10:56:46 2015 UTC vs.
Revision 9610 by michael, Sun Sep 6 07:28:30 2020 UTC

# Line 1 | Line 0
1 Id Revision

Diff Legend

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