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

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1324 by michael, Fri Mar 30 21:40:38 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 8964 by michael, Sat May 11 21:07:44 2019 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.  */
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-2011 Free Software Foundation, Inc.
6 <  
4 >
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
10     the Free Software Foundation, either version 3 of the License, or
11     (at your option) any later version.
12 <  
12 >
13     This program is distributed in the hope that it will be useful,
14     but WITHOUT ANY WARRANTY; without even the implied warranty of
15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16     GNU General Public License for more details.
17 <  
17 >
18     You should have received a copy of the GNU General Public License
19     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20  
# Line 26 | Line 27
27     special exception, which will cause the skeleton and the resulting
28     Bison output files to be licensed under the GNU General Public
29     License without this special exception.
30 <  
30 >
31     This special exception was added by the Free Software Foundation in
32     version 2.2 of Bison.  */
33  
# 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 "2.5"
51 > #define YYBISON_VERSION "3.3.2"
52  
53   /* Skeleton name.  */
54   #define YYSKELETON_NAME "yacc.c"
# Line 58 | Line 62
62   /* Pull parsers.  */
63   #define YYPULL 1
64  
61 /* Using locations.  */
62 #define YYLSP_NEEDED 0
63
65  
66  
66 /* Copy the first part of user declarations.  */
67  
68 < /* Line 268 of yacc.c  */
69 < #line 25 "conf_parser.y"
68 > /* First part of user prologue.  */
69 > #line 28 "conf_parser.y" /* yacc.c:337  */
70  
71  
72 #define YY_NO_UNPUT
73 #include <sys/types.h>
74 #include <string.h>
75
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"
83 #include "client.h"     /* for UMODE_ALL only */
88   #include "irc_string.h"
85 #include "sprintf_irc.h"
89   #include "memory.h"
90   #include "modules.h"
91 < #include "s_serv.h"
91 > #include "server.h"
92   #include "hostmask.h"
90 #include "send.h"
93   #include "listener.h"
94 < #include "resv.h"
95 < #include "numeric.h"
94 < #include "s_user.h"
95 <
96 < #ifdef HAVE_LIBCRYPTO
97 < #include <openssl/rsa.h>
98 < #include <openssl/bio.h>
99 < #include <openssl/pem.h>
100 < #include <openssl/dh.h>
101 < #endif
94 > #include "user.h"
95 > #include "motd.h"
96  
97 < static char *class_name = NULL;
104 < static struct ConfItem *yy_conf = NULL;
105 < static struct AccessItem *yy_aconf = NULL;
106 < static struct MatchItem *yy_match_item = NULL;
107 < static struct ClassItem *yy_class = NULL;
108 < static char *yy_class_name = NULL;
109 <
110 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
111 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
112 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
113 < static unsigned int listener_flags = 0;
114 < static unsigned int regex_ban = 0;
115 < static char userbuf[IRCD_BUFSIZE];
116 < static char hostbuf[IRCD_BUFSIZE];
117 < static char reasonbuf[REASONLEN + 1];
118 < static char gecos_name[REALLEN * 4];
119 < static char lfile[IRCD_BUFSIZE];
120 < static unsigned int ltype = 0;
121 < static unsigned int lsize = 0;
122 < static char *resv_reason = NULL;
123 < static char *listener_address = NULL;
97 > int yylex(void);
98  
99 < struct CollectItem
99 > static struct
100   {
101 <  dlink_node node;
102 <  char *name;
103 <  char *user;
104 <  char *host;
105 <  char *passwd;
106 <  int  port;
107 <  int  flags;
108 < #ifdef HAVE_LIBCRYPTO
109 <  char *rsa_public_key_file;
110 <  RSA *rsa_public_key;
111 < #endif
112 < };
101 >  struct
102 >  {
103 >    dlink_list list;
104 >  } mask,
105 >    leaf,
106 >    hub;
107 >
108 >  struct
109 >  {
110 >    char buf[IRCD_BUFSIZE];
111 >  } name,
112 >    nick,
113 >    user,
114 >    host,
115 >    addr,
116 >    bind,
117 >    file,
118 >    ciph,
119 >    cert,
120 >    rpass,
121 >    spass,
122 >    whois,
123 >    class,
124 >    target,
125 >    prepend,
126 >    command;
127 >
128 >  struct
129 >  {
130 >    unsigned int value;
131 >  } flags,
132 >    modes,
133 >    size,
134 >    type,
135 >    port,
136 >    aftype,
137 >    ping_freq,
138 >    max_perip_local,
139 >    max_perip_global,
140 >    con_freq,
141 >    min_idle,
142 >    max_idle,
143 >    max_total,
144 >    max_sendq,
145 >    max_recvq,
146 >    max_channels,
147 >    cidr_bitlen_ipv4,
148 >    cidr_bitlen_ipv6,
149 >    number_per_cidr;
150 > } block_state;
151  
152   static void
153 < free_collect_item(struct CollectItem *item)
153 > reset_block_state(void)
154   {
155 <  MyFree(item->name);
144 <  MyFree(item->user);
145 <  MyFree(item->host);
146 <  MyFree(item->passwd);
147 < #ifdef HAVE_LIBCRYPTO
148 <  MyFree(item->rsa_public_key_file);
149 < #endif
150 <  MyFree(item);
151 < }
155 >  dlink_node *node = NULL, *node_next = NULL;
156  
157 < static void
158 < unhook_hub_leaf_confs(void)
159 < {
160 <  dlink_node *ptr;
161 <  dlink_node *next_ptr;
158 <  struct CollectItem *yy_hconf;
159 <  struct CollectItem *yy_lconf;
160 <
161 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
162 <  {
163 <    yy_hconf = ptr->data;
164 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
165 <    free_collect_item(yy_hconf);
157 >  DLINK_FOREACH_SAFE(node, node_next, block_state.mask.list.head)
158 >  {
159 >    xfree(node->data);
160 >    dlinkDelete(node, &block_state.mask.list);
161 >    free_dlink_node(node);
162    }
163  
164 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
164 >  DLINK_FOREACH_SAFE(node, node_next, block_state.leaf.list.head)
165    {
166 <    yy_lconf = ptr->data;
167 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
168 <    free_collect_item(yy_lconf);
166 >    xfree(node->data);
167 >    dlinkDelete(node, &block_state.leaf.list);
168 >    free_dlink_node(node);
169    }
174 }
170  
171 +  DLINK_FOREACH_SAFE(node, node_next, block_state.hub.list.head)
172 +  {
173 +    xfree(node->data);
174 +    dlinkDelete(node, &block_state.hub.list);
175 +    free_dlink_node(node);
176 +  }
177  
178 +  memset(&block_state, 0, sizeof(block_state));
179 + }
180  
178 /* Line 268 of yacc.c  */
179 #line 180 "conf_parser.c"
181  
182 < /* Enabling traces.  */
183 < #ifndef YYDEBUG
184 < # define YYDEBUG 0
185 < #endif
182 > #line 183 "conf_parser.c" /* yacc.c:337  */
183 > # ifndef YY_NULLPTR
184 > #  if defined __cplusplus
185 > #   if 201103L <= __cplusplus
186 > #    define YY_NULLPTR nullptr
187 > #   else
188 > #    define YY_NULLPTR 0
189 > #   endif
190 > #  else
191 > #   define YY_NULLPTR ((void*)0)
192 > #  endif
193 > # endif
194  
195   /* Enabling verbose error messages.  */
196   #ifdef YYERROR_VERBOSE
# Line 191 | Line 200 | unhook_hub_leaf_confs(void)
200   # define YYERROR_VERBOSE 0
201   #endif
202  
203 < /* Enabling the token table.  */
204 < #ifndef YYTOKEN_TABLE
205 < # define YYTOKEN_TABLE 0
203 > /* In a future release of Bison, this section will be replaced
204 >   by #include "y.tab.h".  */
205 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
206 > # define YY_YY_CONF_PARSER_H_INCLUDED
207 > /* Debug traces.  */
208 > #ifndef YYDEBUG
209 > # define YYDEBUG 0
210 > #endif
211 > #if YYDEBUG
212 > extern int yydebug;
213   #endif
214  
215 <
200 < /* Tokens.  */
215 > /* Token type.  */
216   #ifndef YYTOKENTYPE
217   # define YYTOKENTYPE
218 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
219 <      know about them.  */
220 <   enum yytokentype {
221 <     ACCEPT_PASSWORD = 258,
222 <     ACTION = 259,
223 <     ADMIN = 260,
224 <     AFTYPE = 261,
225 <     T_ALLOW = 262,
226 <     ANTI_NICK_FLOOD = 263,
227 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
228 <     AUTOCONN = 265,
229 <     T_BLOCK = 266,
230 <     BURST_AWAY = 267,
231 <     BURST_TOPICWHO = 268,
232 <     BYTES = 269,
233 <     KBYTES = 270,
234 <     MBYTES = 271,
235 <     GBYTES = 272,
236 <     TBYTES = 273,
237 <     CALLER_ID_WAIT = 274,
238 <     CAN_FLOOD = 275,
239 <     CHANNEL = 276,
240 <     CIDR_BITLEN_IPV4 = 277,
241 <     CIDR_BITLEN_IPV6 = 278,
242 <     CLASS = 279,
243 <     CONNECT = 280,
244 <     CONNECTFREQ = 281,
245 <     DEFAULT_FLOODCOUNT = 282,
246 <     DEFAULT_SPLIT_SERVER_COUNT = 283,
247 <     DEFAULT_SPLIT_USER_COUNT = 284,
248 <     DENY = 285,
249 <     DESCRIPTION = 286,
250 <     DIE = 287,
251 <     DISABLE_AUTH = 288,
252 <     DISABLE_FAKE_CHANNELS = 289,
253 <     DISABLE_HIDDEN = 290,
254 <     DISABLE_LOCAL_CHANNELS = 291,
255 <     DISABLE_REMOTE_COMMANDS = 292,
256 <     DOTS_IN_IDENT = 293,
257 <     DURATION = 294,
258 <     EGDPOOL_PATH = 295,
259 <     EMAIL = 296,
260 <     ENABLE = 297,
261 <     ENCRYPTED = 298,
262 <     EXCEED_LIMIT = 299,
263 <     EXEMPT = 300,
264 <     FAILED_OPER_NOTICE = 301,
265 <     IRCD_FLAGS = 302,
266 <     FLATTEN_LINKS = 303,
267 <     GECOS = 304,
268 <     GENERAL = 305,
269 <     GLINE = 306,
270 <     GLINES = 307,
271 <     GLINE_EXEMPT = 308,
272 <     GLINE_TIME = 309,
273 <     GLINE_MIN_CIDR = 310,
274 <     GLINE_MIN_CIDR6 = 311,
275 <     GLOBAL_KILL = 312,
276 <     IRCD_AUTH = 313,
277 <     NEED_IDENT = 314,
278 <     HAVENT_READ_CONF = 315,
279 <     HIDDEN = 316,
280 <     HIDDEN_NAME = 317,
281 <     HIDE_SERVER_IPS = 318,
282 <     HIDE_SERVERS = 319,
283 <     HIDE_SPOOF_IPS = 320,
284 <     HOST = 321,
285 <     HUB = 322,
286 <     HUB_MASK = 323,
287 <     IGNORE_BOGUS_TS = 324,
288 <     INVISIBLE_ON_CONNECT = 325,
289 <     IP = 326,
290 <     KILL = 327,
291 <     KILL_CHASE_TIME_LIMIT = 328,
292 <     KLINE = 329,
293 <     KLINE_EXEMPT = 330,
294 <     KLINE_REASON = 331,
295 <     KLINE_WITH_REASON = 332,
296 <     KNOCK_DELAY = 333,
297 <     KNOCK_DELAY_CHANNEL = 334,
298 <     LEAF_MASK = 335,
299 <     LINKS_DELAY = 336,
300 <     LISTEN = 337,
301 <     T_LOG = 338,
302 <     MAX_ACCEPT = 339,
303 <     MAX_BANS = 340,
304 <     MAX_CHANS_PER_USER = 341,
305 <     MAX_GLOBAL = 342,
306 <     MAX_IDENT = 343,
307 <     MAX_LOCAL = 344,
308 <     MAX_NICK_CHANGES = 345,
309 <     MAX_NICK_TIME = 346,
310 <     MAX_NUMBER = 347,
311 <     MAX_TARGETS = 348,
312 <     MAX_WATCH = 349,
313 <     MESSAGE_LOCALE = 350,
314 <     MIN_NONWILDCARD = 351,
315 <     MIN_NONWILDCARD_SIMPLE = 352,
316 <     MODULE = 353,
317 <     MODULES = 354,
318 <     NAME = 355,
319 <     NEED_PASSWORD = 356,
320 <     NETWORK_DESC = 357,
321 <     NETWORK_NAME = 358,
322 <     NICK = 359,
323 <     NICK_CHANGES = 360,
324 <     NO_CREATE_ON_SPLIT = 361,
325 <     NO_JOIN_ON_SPLIT = 362,
326 <     NO_OPER_FLOOD = 363,
327 <     NO_TILDE = 364,
328 <     NUMBER = 365,
329 <     NUMBER_PER_IDENT = 366,
330 <     NUMBER_PER_CIDR = 367,
331 <     NUMBER_PER_IP = 368,
332 <     NUMBER_PER_IP_GLOBAL = 369,
333 <     OPERATOR = 370,
334 <     OPERS_BYPASS_CALLERID = 371,
335 <     OPER_ONLY_UMODES = 372,
336 <     OPER_PASS_RESV = 373,
337 <     OPER_SPY_T = 374,
338 <     OPER_UMODES = 375,
339 <     JOIN_FLOOD_COUNT = 376,
340 <     JOIN_FLOOD_TIME = 377,
341 <     PACE_WAIT = 378,
342 <     PACE_WAIT_SIMPLE = 379,
343 <     PASSWORD = 380,
344 <     PATH = 381,
345 <     PING_COOKIE = 382,
346 <     PING_TIME = 383,
347 <     PING_WARNING = 384,
348 <     PORT = 385,
349 <     QSTRING = 386,
350 <     QUIET_ON_BAN = 387,
351 <     REASON = 388,
352 <     REDIRPORT = 389,
353 <     REDIRSERV = 390,
354 <     REGEX_T = 391,
355 <     REHASH = 392,
356 <     TREJECT_HOLD_TIME = 393,
357 <     REMOTE = 394,
358 <     REMOTEBAN = 395,
359 <     RESTRICT_CHANNELS = 396,
360 <     RESTRICTED = 397,
361 <     RSA_PRIVATE_KEY_FILE = 398,
362 <     RSA_PUBLIC_KEY_FILE = 399,
363 <     SSL_CERTIFICATE_FILE = 400,
364 <     SSL_DH_PARAM_FILE = 401,
365 <     T_SSL_CLIENT_METHOD = 402,
366 <     T_SSL_SERVER_METHOD = 403,
367 <     T_SSLV3 = 404,
368 <     T_TLSV1 = 405,
369 <     RESV = 406,
370 <     RESV_EXEMPT = 407,
371 <     SECONDS = 408,
372 <     MINUTES = 409,
373 <     HOURS = 410,
374 <     DAYS = 411,
375 <     WEEKS = 412,
376 <     SENDQ = 413,
377 <     SEND_PASSWORD = 414,
378 <     SERVERHIDE = 415,
379 <     SERVERINFO = 416,
380 <     IRCD_SID = 417,
381 <     TKLINE_EXPIRE_NOTICES = 418,
382 <     T_SHARED = 419,
383 <     T_CLUSTER = 420,
384 <     TYPE = 421,
385 <     SHORT_MOTD = 422,
386 <     SILENT = 423,
387 <     SPOOF = 424,
388 <     SPOOF_NOTICE = 425,
389 <     STATS_E_DISABLED = 426,
390 <     STATS_I_OPER_ONLY = 427,
391 <     STATS_K_OPER_ONLY = 428,
392 <     STATS_O_OPER_ONLY = 429,
393 <     STATS_P_OPER_ONLY = 430,
394 <     TBOOL = 431,
395 <     TMASKED = 432,
396 <     T_REJECT = 433,
397 <     TS_MAX_DELTA = 434,
398 <     TS_WARN_DELTA = 435,
399 <     TWODOTS = 436,
400 <     T_ALL = 437,
401 <     T_BOTS = 438,
402 <     T_SOFTCALLERID = 439,
403 <     T_CALLERID = 440,
404 <     T_CCONN = 441,
405 <     T_CCONN_FULL = 442,
406 <     T_SSL_CIPHER_LIST = 443,
407 <     T_CLIENT_FLOOD = 444,
408 <     T_DEAF = 445,
409 <     T_DEBUG = 446,
410 <     T_DLINE = 447,
411 <     T_DRONE = 448,
412 <     T_EXTERNAL = 449,
413 <     T_FULL = 450,
414 <     T_INVISIBLE = 451,
415 <     T_IPV4 = 452,
416 <     T_IPV6 = 453,
417 <     T_LOCOPS = 454,
418 <     T_MAX_CLIENTS = 455,
419 <     T_NCHANGE = 456,
420 <     T_OPERWALL = 457,
421 <     T_REJ = 458,
422 <     T_SERVER = 459,
423 <     T_SERVNOTICE = 460,
424 <     T_SKILL = 461,
425 <     T_SPY = 462,
426 <     T_SSL = 463,
427 <     T_UMODES = 464,
428 <     T_UNAUTH = 465,
429 <     T_UNDLINE = 466,
430 <     T_UNLIMITED = 467,
431 <     T_UNRESV = 468,
432 <     T_UNXLINE = 469,
433 <     T_GLOBOPS = 470,
434 <     T_WALLOP = 471,
435 <     T_RESTART = 472,
436 <     T_SERVICE = 473,
437 <     T_SERVICES_NAME = 474,
438 <     THROTTLE_TIME = 475,
439 <     TOPICBURST = 476,
440 <     TRUE_NO_OPER_FLOOD = 477,
441 <     TKLINE = 478,
442 <     TXLINE = 479,
443 <     TRESV = 480,
444 <     UNKLINE = 481,
445 <     USER = 482,
446 <     USE_EGD = 483,
447 <     USE_EXCEPT = 484,
433 <     USE_INVEX = 485,
434 <     USE_KNOCK = 486,
435 <     USE_LOGGING = 487,
436 <     USE_WHOIS_ACTUALLY = 488,
437 <     VHOST = 489,
438 <     VHOST6 = 490,
439 <     XLINE = 491,
440 <     WARN = 492,
441 <     WARN_NO_NLINE = 493,
442 <     T_SIZE = 494,
443 <     T_FILE = 495
444 <   };
218 >  enum yytokentype
219 >  {
220 >    ACCEPT_PASSWORD = 258,
221 >    ADMIN = 259,
222 >    AFTYPE = 260,
223 >    ANTI_NICK_FLOOD = 261,
224 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
225 >    AUTOCONN = 263,
226 >    AWAY_COUNT = 264,
227 >    AWAY_TIME = 265,
228 >    BYTES = 266,
229 >    KBYTES = 267,
230 >    MBYTES = 268,
231 >    CALLER_ID_WAIT = 269,
232 >    CAN_FLOOD = 270,
233 >    CHANNEL = 271,
234 >    CIDR_BITLEN_IPV4 = 272,
235 >    CIDR_BITLEN_IPV6 = 273,
236 >    CLASS = 274,
237 >    CLOSE = 275,
238 >    CONNECT = 276,
239 >    CONNECTFREQ = 277,
240 >    CYCLE_ON_HOST_CHANGE = 278,
241 >    DEFAULT_FLOODCOUNT = 279,
242 >    DEFAULT_FLOODTIME = 280,
243 >    DEFAULT_JOIN_FLOOD_COUNT = 281,
244 >    DEFAULT_JOIN_FLOOD_TIME = 282,
245 >    DEFAULT_MAX_CLIENTS = 283,
246 >    DENY = 284,
247 >    DESCRIPTION = 285,
248 >    DIE = 286,
249 >    DISABLE_AUTH = 287,
250 >    DISABLE_FAKE_CHANNELS = 288,
251 >    DISABLE_REMOTE_COMMANDS = 289,
252 >    DLINE_MIN_CIDR = 290,
253 >    DLINE_MIN_CIDR6 = 291,
254 >    DOTS_IN_IDENT = 292,
255 >    EMAIL = 293,
256 >    ENCRYPTED = 294,
257 >    EXCEED_LIMIT = 295,
258 >    EXEMPT = 296,
259 >    EXPIRATION = 297,
260 >    FAILED_OPER_NOTICE = 298,
261 >    FLATTEN_LINKS = 299,
262 >    FLATTEN_LINKS_DELAY = 300,
263 >    FLATTEN_LINKS_FILE = 301,
264 >    GECOS = 302,
265 >    GENERAL = 303,
266 >    HIDDEN = 304,
267 >    HIDDEN_NAME = 305,
268 >    HIDE_CHANS = 306,
269 >    HIDE_IDLE = 307,
270 >    HIDE_IDLE_FROM_OPERS = 308,
271 >    HIDE_SERVER_IPS = 309,
272 >    HIDE_SERVERS = 310,
273 >    HIDE_SERVICES = 311,
274 >    HOST = 312,
275 >    HUB = 313,
276 >    HUB_MASK = 314,
277 >    INVISIBLE_ON_CONNECT = 315,
278 >    INVITE_CLIENT_COUNT = 316,
279 >    INVITE_CLIENT_TIME = 317,
280 >    INVITE_DELAY_CHANNEL = 318,
281 >    INVITE_EXPIRE_TIME = 319,
282 >    IP = 320,
283 >    IRCD_AUTH = 321,
284 >    IRCD_FLAGS = 322,
285 >    IRCD_SID = 323,
286 >    JOIN = 324,
287 >    KILL = 325,
288 >    KILL_CHASE_TIME_LIMIT = 326,
289 >    KLINE = 327,
290 >    KLINE_EXEMPT = 328,
291 >    KLINE_MIN_CIDR = 329,
292 >    KLINE_MIN_CIDR6 = 330,
293 >    KNOCK_CLIENT_COUNT = 331,
294 >    KNOCK_CLIENT_TIME = 332,
295 >    KNOCK_DELAY_CHANNEL = 333,
296 >    LEAF_MASK = 334,
297 >    LISTEN = 335,
298 >    MASK = 336,
299 >    MAX_ACCEPT = 337,
300 >    MAX_BANS = 338,
301 >    MAX_BANS_LARGE = 339,
302 >    MAX_CHANNELS = 340,
303 >    MAX_IDLE = 341,
304 >    MAX_INVITES = 342,
305 >    MAX_NICK_CHANGES = 343,
306 >    MAX_NICK_LENGTH = 344,
307 >    MAX_NICK_TIME = 345,
308 >    MAX_NUMBER = 346,
309 >    MAX_TARGETS = 347,
310 >    MAX_TOPIC_LENGTH = 348,
311 >    MAX_WATCH = 349,
312 >    MIN_IDLE = 350,
313 >    MIN_NONWILDCARD = 351,
314 >    MIN_NONWILDCARD_SIMPLE = 352,
315 >    MODULE = 353,
316 >    MODULES = 354,
317 >    MOTD = 355,
318 >    NAME = 356,
319 >    NEED_IDENT = 357,
320 >    NEED_PASSWORD = 358,
321 >    NETWORK_DESC = 359,
322 >    NETWORK_NAME = 360,
323 >    NICK = 361,
324 >    NO_OPER_FLOOD = 362,
325 >    NO_TILDE = 363,
326 >    NUMBER = 364,
327 >    NUMBER_PER_CIDR = 365,
328 >    NUMBER_PER_IP_GLOBAL = 366,
329 >    NUMBER_PER_IP_LOCAL = 367,
330 >    OPER_ONLY_UMODES = 368,
331 >    OPER_UMODES = 369,
332 >    OPERATOR = 370,
333 >    OPERS_BYPASS_CALLERID = 371,
334 >    PACE_WAIT = 372,
335 >    PACE_WAIT_SIMPLE = 373,
336 >    PASSWORD = 374,
337 >    PATH = 375,
338 >    PING_COOKIE = 376,
339 >    PING_TIME = 377,
340 >    PORT = 378,
341 >    QSTRING = 379,
342 >    RANDOM_IDLE = 380,
343 >    REASON = 381,
344 >    REDIRPORT = 382,
345 >    REDIRSERV = 383,
346 >    REHASH = 384,
347 >    REMOTE = 385,
348 >    REMOTEBAN = 386,
349 >    RESV = 387,
350 >    RESV_EXEMPT = 388,
351 >    RSA_PRIVATE_KEY_FILE = 389,
352 >    SECONDS = 390,
353 >    MINUTES = 391,
354 >    HOURS = 392,
355 >    DAYS = 393,
356 >    WEEKS = 394,
357 >    MONTHS = 395,
358 >    YEARS = 396,
359 >    SEND_PASSWORD = 397,
360 >    SENDQ = 398,
361 >    SERVERHIDE = 399,
362 >    SERVERINFO = 400,
363 >    SHORT_MOTD = 401,
364 >    SPOOF = 402,
365 >    SPOOF_NOTICE = 403,
366 >    SQUIT = 404,
367 >    SSL_CERTIFICATE_FILE = 405,
368 >    SSL_CERTIFICATE_FINGERPRINT = 406,
369 >    SSL_CONNECTION_REQUIRED = 407,
370 >    SSL_DH_ELLIPTIC_CURVE = 408,
371 >    SSL_DH_PARAM_FILE = 409,
372 >    SSL_MESSAGE_DIGEST_ALGORITHM = 410,
373 >    STATS_E_DISABLED = 411,
374 >    STATS_I_OPER_ONLY = 412,
375 >    STATS_K_OPER_ONLY = 413,
376 >    STATS_M_OPER_ONLY = 414,
377 >    STATS_O_OPER_ONLY = 415,
378 >    STATS_P_OPER_ONLY = 416,
379 >    STATS_U_OPER_ONLY = 417,
380 >    T_ALL = 418,
381 >    T_BIND = 419,
382 >    T_BOTS = 420,
383 >    T_CALLERID = 421,
384 >    T_CCONN = 422,
385 >    T_COMMAND = 423,
386 >    T_CLUSTER = 424,
387 >    T_DEAF = 425,
388 >    T_DEBUG = 426,
389 >    T_DLINE = 427,
390 >    T_EXTERNAL = 428,
391 >    T_FARCONNECT = 429,
392 >    T_FILE = 430,
393 >    T_FULL = 431,
394 >    T_GLOBOPS = 432,
395 >    T_INVISIBLE = 433,
396 >    T_IPV4 = 434,
397 >    T_IPV6 = 435,
398 >    T_LOCOPS = 436,
399 >    T_LOG = 437,
400 >    T_NCHANGE = 438,
401 >    T_NONONREG = 439,
402 >    T_OPME = 440,
403 >    T_PREPEND = 441,
404 >    T_PSEUDO = 442,
405 >    T_RECVQ = 443,
406 >    T_REJ = 444,
407 >    T_RESTART = 445,
408 >    T_SERVER = 446,
409 >    T_SERVICE = 447,
410 >    T_SERVNOTICE = 448,
411 >    T_SET = 449,
412 >    T_SHARED = 450,
413 >    T_SIZE = 451,
414 >    T_SKILL = 452,
415 >    T_SOFTCALLERID = 453,
416 >    T_SPY = 454,
417 >    T_SSL = 455,
418 >    T_SSL_CIPHER_LIST = 456,
419 >    T_TARGET = 457,
420 >    T_UMODES = 458,
421 >    T_UNAUTH = 459,
422 >    T_UNDLINE = 460,
423 >    T_UNLIMITED = 461,
424 >    T_UNRESV = 462,
425 >    T_UNXLINE = 463,
426 >    T_WALLOP = 464,
427 >    T_WALLOPS = 465,
428 >    T_WEBIRC = 466,
429 >    TBOOL = 467,
430 >    THROTTLE_COUNT = 468,
431 >    THROTTLE_TIME = 469,
432 >    TMASKED = 470,
433 >    TS_MAX_DELTA = 471,
434 >    TS_WARN_DELTA = 472,
435 >    TWODOTS = 473,
436 >    TYPE = 474,
437 >    UNKLINE = 475,
438 >    USE_LOGGING = 476,
439 >    USER = 477,
440 >    VHOST = 478,
441 >    VHOST6 = 479,
442 >    WARN_NO_CONNECT_BLOCK = 480,
443 >    WHOIS = 481,
444 >    WHOWAS_HISTORY_LENGTH = 482,
445 >    XLINE = 483,
446 >    XLINE_EXEMPT = 484
447 >  };
448   #endif
449   /* Tokens.  */
450   #define ACCEPT_PASSWORD 258
451 < #define ACTION 259
452 < #define ADMIN 260
453 < #define AFTYPE 261
454 < #define T_ALLOW 262
455 < #define ANTI_NICK_FLOOD 263
456 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
457 < #define AUTOCONN 265
458 < #define T_BLOCK 266
459 < #define BURST_AWAY 267
460 < #define BURST_TOPICWHO 268
461 < #define BYTES 269
462 < #define KBYTES 270
463 < #define MBYTES 271
464 < #define GBYTES 272
465 < #define TBYTES 273
466 < #define CALLER_ID_WAIT 274
467 < #define CAN_FLOOD 275
468 < #define CHANNEL 276
469 < #define CIDR_BITLEN_IPV4 277
470 < #define CIDR_BITLEN_IPV6 278
471 < #define CLASS 279
472 < #define CONNECT 280
473 < #define CONNECTFREQ 281
474 < #define DEFAULT_FLOODCOUNT 282
475 < #define DEFAULT_SPLIT_SERVER_COUNT 283
476 < #define DEFAULT_SPLIT_USER_COUNT 284
477 < #define DENY 285
478 < #define DESCRIPTION 286
479 < #define DIE 287
480 < #define DISABLE_AUTH 288
481 < #define DISABLE_FAKE_CHANNELS 289
482 < #define DISABLE_HIDDEN 290
483 < #define DISABLE_LOCAL_CHANNELS 291
484 < #define DISABLE_REMOTE_COMMANDS 292
485 < #define DOTS_IN_IDENT 293
486 < #define DURATION 294
487 < #define EGDPOOL_PATH 295
488 < #define EMAIL 296
489 < #define ENABLE 297
490 < #define ENCRYPTED 298
491 < #define EXCEED_LIMIT 299
492 < #define EXEMPT 300
493 < #define FAILED_OPER_NOTICE 301
494 < #define IRCD_FLAGS 302
495 < #define FLATTEN_LINKS 303
496 < #define GECOS 304
497 < #define GENERAL 305
498 < #define GLINE 306
499 < #define GLINES 307
500 < #define GLINE_EXEMPT 308
501 < #define GLINE_TIME 309
502 < #define GLINE_MIN_CIDR 310
503 < #define GLINE_MIN_CIDR6 311
504 < #define GLOBAL_KILL 312
505 < #define IRCD_AUTH 313
506 < #define NEED_IDENT 314
507 < #define HAVENT_READ_CONF 315
508 < #define HIDDEN 316
509 < #define HIDDEN_NAME 317
510 < #define HIDE_SERVER_IPS 318
511 < #define HIDE_SERVERS 319
512 < #define HIDE_SPOOF_IPS 320
513 < #define HOST 321
514 < #define HUB 322
515 < #define HUB_MASK 323
516 < #define IGNORE_BOGUS_TS 324
517 < #define INVISIBLE_ON_CONNECT 325
518 < #define IP 326
519 < #define KILL 327
520 < #define KILL_CHASE_TIME_LIMIT 328
521 < #define KLINE 329
522 < #define KLINE_EXEMPT 330
523 < #define KLINE_REASON 331
524 < #define KLINE_WITH_REASON 332
525 < #define KNOCK_DELAY 333
526 < #define KNOCK_DELAY_CHANNEL 334
527 < #define LEAF_MASK 335
528 < #define LINKS_DELAY 336
529 < #define LISTEN 337
530 < #define T_LOG 338
531 < #define MAX_ACCEPT 339
532 < #define MAX_BANS 340
533 < #define MAX_CHANS_PER_USER 341
534 < #define MAX_GLOBAL 342
535 < #define MAX_IDENT 343
536 < #define MAX_LOCAL 344
537 < #define MAX_NICK_CHANGES 345
538 < #define MAX_NICK_TIME 346
539 < #define MAX_NUMBER 347
540 < #define MAX_TARGETS 348
451 > #define ADMIN 259
452 > #define AFTYPE 260
453 > #define ANTI_NICK_FLOOD 261
454 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
455 > #define AUTOCONN 263
456 > #define AWAY_COUNT 264
457 > #define AWAY_TIME 265
458 > #define BYTES 266
459 > #define KBYTES 267
460 > #define MBYTES 268
461 > #define CALLER_ID_WAIT 269
462 > #define CAN_FLOOD 270
463 > #define CHANNEL 271
464 > #define CIDR_BITLEN_IPV4 272
465 > #define CIDR_BITLEN_IPV6 273
466 > #define CLASS 274
467 > #define CLOSE 275
468 > #define CONNECT 276
469 > #define CONNECTFREQ 277
470 > #define CYCLE_ON_HOST_CHANGE 278
471 > #define DEFAULT_FLOODCOUNT 279
472 > #define DEFAULT_FLOODTIME 280
473 > #define DEFAULT_JOIN_FLOOD_COUNT 281
474 > #define DEFAULT_JOIN_FLOOD_TIME 282
475 > #define DEFAULT_MAX_CLIENTS 283
476 > #define DENY 284
477 > #define DESCRIPTION 285
478 > #define DIE 286
479 > #define DISABLE_AUTH 287
480 > #define DISABLE_FAKE_CHANNELS 288
481 > #define DISABLE_REMOTE_COMMANDS 289
482 > #define DLINE_MIN_CIDR 290
483 > #define DLINE_MIN_CIDR6 291
484 > #define DOTS_IN_IDENT 292
485 > #define EMAIL 293
486 > #define ENCRYPTED 294
487 > #define EXCEED_LIMIT 295
488 > #define EXEMPT 296
489 > #define EXPIRATION 297
490 > #define FAILED_OPER_NOTICE 298
491 > #define FLATTEN_LINKS 299
492 > #define FLATTEN_LINKS_DELAY 300
493 > #define FLATTEN_LINKS_FILE 301
494 > #define GECOS 302
495 > #define GENERAL 303
496 > #define HIDDEN 304
497 > #define HIDDEN_NAME 305
498 > #define HIDE_CHANS 306
499 > #define HIDE_IDLE 307
500 > #define HIDE_IDLE_FROM_OPERS 308
501 > #define HIDE_SERVER_IPS 309
502 > #define HIDE_SERVERS 310
503 > #define HIDE_SERVICES 311
504 > #define HOST 312
505 > #define HUB 313
506 > #define HUB_MASK 314
507 > #define INVISIBLE_ON_CONNECT 315
508 > #define INVITE_CLIENT_COUNT 316
509 > #define INVITE_CLIENT_TIME 317
510 > #define INVITE_DELAY_CHANNEL 318
511 > #define INVITE_EXPIRE_TIME 319
512 > #define IP 320
513 > #define IRCD_AUTH 321
514 > #define IRCD_FLAGS 322
515 > #define IRCD_SID 323
516 > #define JOIN 324
517 > #define KILL 325
518 > #define KILL_CHASE_TIME_LIMIT 326
519 > #define KLINE 327
520 > #define KLINE_EXEMPT 328
521 > #define KLINE_MIN_CIDR 329
522 > #define KLINE_MIN_CIDR6 330
523 > #define KNOCK_CLIENT_COUNT 331
524 > #define KNOCK_CLIENT_TIME 332
525 > #define KNOCK_DELAY_CHANNEL 333
526 > #define LEAF_MASK 334
527 > #define LISTEN 335
528 > #define MASK 336
529 > #define MAX_ACCEPT 337
530 > #define MAX_BANS 338
531 > #define MAX_BANS_LARGE 339
532 > #define MAX_CHANNELS 340
533 > #define MAX_IDLE 341
534 > #define MAX_INVITES 342
535 > #define MAX_NICK_CHANGES 343
536 > #define MAX_NICK_LENGTH 344
537 > #define MAX_NICK_TIME 345
538 > #define MAX_NUMBER 346
539 > #define MAX_TARGETS 347
540 > #define MAX_TOPIC_LENGTH 348
541   #define MAX_WATCH 349
542 < #define MESSAGE_LOCALE 350
542 > #define MIN_IDLE 350
543   #define MIN_NONWILDCARD 351
544   #define MIN_NONWILDCARD_SIMPLE 352
545   #define MODULE 353
546   #define MODULES 354
547 < #define NAME 355
548 < #define NEED_PASSWORD 356
549 < #define NETWORK_DESC 357
550 < #define NETWORK_NAME 358
551 < #define NICK 359
552 < #define NICK_CHANGES 360
553 < #define NO_CREATE_ON_SPLIT 361
554 < #define NO_JOIN_ON_SPLIT 362
555 < #define NO_OPER_FLOOD 363
556 < #define NO_TILDE 364
557 < #define NUMBER 365
558 < #define NUMBER_PER_IDENT 366
559 < #define NUMBER_PER_CIDR 367
560 < #define NUMBER_PER_IP 368
561 < #define NUMBER_PER_IP_GLOBAL 369
547 > #define MOTD 355
548 > #define NAME 356
549 > #define NEED_IDENT 357
550 > #define NEED_PASSWORD 358
551 > #define NETWORK_DESC 359
552 > #define NETWORK_NAME 360
553 > #define NICK 361
554 > #define NO_OPER_FLOOD 362
555 > #define NO_TILDE 363
556 > #define NUMBER 364
557 > #define NUMBER_PER_CIDR 365
558 > #define NUMBER_PER_IP_GLOBAL 366
559 > #define NUMBER_PER_IP_LOCAL 367
560 > #define OPER_ONLY_UMODES 368
561 > #define OPER_UMODES 369
562   #define OPERATOR 370
563   #define OPERS_BYPASS_CALLERID 371
564 < #define OPER_ONLY_UMODES 372
565 < #define OPER_PASS_RESV 373
566 < #define OPER_SPY_T 374
567 < #define OPER_UMODES 375
568 < #define JOIN_FLOOD_COUNT 376
569 < #define JOIN_FLOOD_TIME 377
570 < #define PACE_WAIT 378
571 < #define PACE_WAIT_SIMPLE 379
572 < #define PASSWORD 380
573 < #define PATH 381
574 < #define PING_COOKIE 382
575 < #define PING_TIME 383
576 < #define PING_WARNING 384
577 < #define PORT 385
578 < #define QSTRING 386
579 < #define QUIET_ON_BAN 387
580 < #define REASON 388
581 < #define REDIRPORT 389
582 < #define REDIRSERV 390
583 < #define REGEX_T 391
584 < #define REHASH 392
585 < #define TREJECT_HOLD_TIME 393
586 < #define REMOTE 394
587 < #define REMOTEBAN 395
588 < #define RESTRICT_CHANNELS 396
589 < #define RESTRICTED 397
590 < #define RSA_PRIVATE_KEY_FILE 398
591 < #define RSA_PUBLIC_KEY_FILE 399
592 < #define SSL_CERTIFICATE_FILE 400
593 < #define SSL_DH_PARAM_FILE 401
594 < #define T_SSL_CLIENT_METHOD 402
595 < #define T_SSL_SERVER_METHOD 403
596 < #define T_SSLV3 404
597 < #define T_TLSV1 405
598 < #define RESV 406
599 < #define RESV_EXEMPT 407
600 < #define SECONDS 408
601 < #define MINUTES 409
602 < #define HOURS 410
603 < #define DAYS 411
604 < #define WEEKS 412
605 < #define SENDQ 413
606 < #define SEND_PASSWORD 414
607 < #define SERVERHIDE 415
608 < #define SERVERINFO 416
609 < #define IRCD_SID 417
610 < #define TKLINE_EXPIRE_NOTICES 418
611 < #define T_SHARED 419
612 < #define T_CLUSTER 420
613 < #define TYPE 421
614 < #define SHORT_MOTD 422
615 < #define SILENT 423
616 < #define SPOOF 424
617 < #define SPOOF_NOTICE 425
618 < #define STATS_E_DISABLED 426
619 < #define STATS_I_OPER_ONLY 427
620 < #define STATS_K_OPER_ONLY 428
621 < #define STATS_O_OPER_ONLY 429
622 < #define STATS_P_OPER_ONLY 430
623 < #define TBOOL 431
624 < #define TMASKED 432
625 < #define T_REJECT 433
626 < #define TS_MAX_DELTA 434
627 < #define TS_WARN_DELTA 435
628 < #define TWODOTS 436
629 < #define T_ALL 437
630 < #define T_BOTS 438
631 < #define T_SOFTCALLERID 439
632 < #define T_CALLERID 440
633 < #define T_CCONN 441
634 < #define T_CCONN_FULL 442
635 < #define T_SSL_CIPHER_LIST 443
636 < #define T_CLIENT_FLOOD 444
637 < #define T_DEAF 445
638 < #define T_DEBUG 446
639 < #define T_DLINE 447
640 < #define T_DRONE 448
641 < #define T_EXTERNAL 449
642 < #define T_FULL 450
643 < #define T_INVISIBLE 451
644 < #define T_IPV4 452
645 < #define T_IPV6 453
646 < #define T_LOCOPS 454
647 < #define T_MAX_CLIENTS 455
648 < #define T_NCHANGE 456
649 < #define T_OPERWALL 457
650 < #define T_REJ 458
651 < #define T_SERVER 459
652 < #define T_SERVNOTICE 460
653 < #define T_SKILL 461
654 < #define T_SPY 462
655 < #define T_SSL 463
656 < #define T_UMODES 464
657 < #define T_UNAUTH 465
658 < #define T_UNDLINE 466
659 < #define T_UNLIMITED 467
660 < #define T_UNRESV 468
661 < #define T_UNXLINE 469
662 < #define T_GLOBOPS 470
663 < #define T_WALLOP 471
664 < #define T_RESTART 472
665 < #define T_SERVICE 473
666 < #define T_SERVICES_NAME 474
667 < #define THROTTLE_TIME 475
668 < #define TOPICBURST 476
669 < #define TRUE_NO_OPER_FLOOD 477
670 < #define TKLINE 478
671 < #define TXLINE 479
672 < #define TRESV 480
673 < #define UNKLINE 481
674 < #define USER 482
675 < #define USE_EGD 483
676 < #define USE_EXCEPT 484
674 < #define USE_INVEX 485
675 < #define USE_KNOCK 486
676 < #define USE_LOGGING 487
677 < #define USE_WHOIS_ACTUALLY 488
678 < #define VHOST 489
679 < #define VHOST6 490
680 < #define XLINE 491
681 < #define WARN 492
682 < #define WARN_NO_NLINE 493
683 < #define T_SIZE 494
684 < #define T_FILE 495
685 <
686 <
687 <
564 > #define PACE_WAIT 372
565 > #define PACE_WAIT_SIMPLE 373
566 > #define PASSWORD 374
567 > #define PATH 375
568 > #define PING_COOKIE 376
569 > #define PING_TIME 377
570 > #define PORT 378
571 > #define QSTRING 379
572 > #define RANDOM_IDLE 380
573 > #define REASON 381
574 > #define REDIRPORT 382
575 > #define REDIRSERV 383
576 > #define REHASH 384
577 > #define REMOTE 385
578 > #define REMOTEBAN 386
579 > #define RESV 387
580 > #define RESV_EXEMPT 388
581 > #define RSA_PRIVATE_KEY_FILE 389
582 > #define SECONDS 390
583 > #define MINUTES 391
584 > #define HOURS 392
585 > #define DAYS 393
586 > #define WEEKS 394
587 > #define MONTHS 395
588 > #define YEARS 396
589 > #define SEND_PASSWORD 397
590 > #define SENDQ 398
591 > #define SERVERHIDE 399
592 > #define SERVERINFO 400
593 > #define SHORT_MOTD 401
594 > #define SPOOF 402
595 > #define SPOOF_NOTICE 403
596 > #define SQUIT 404
597 > #define SSL_CERTIFICATE_FILE 405
598 > #define SSL_CERTIFICATE_FINGERPRINT 406
599 > #define SSL_CONNECTION_REQUIRED 407
600 > #define SSL_DH_ELLIPTIC_CURVE 408
601 > #define SSL_DH_PARAM_FILE 409
602 > #define SSL_MESSAGE_DIGEST_ALGORITHM 410
603 > #define STATS_E_DISABLED 411
604 > #define STATS_I_OPER_ONLY 412
605 > #define STATS_K_OPER_ONLY 413
606 > #define STATS_M_OPER_ONLY 414
607 > #define STATS_O_OPER_ONLY 415
608 > #define STATS_P_OPER_ONLY 416
609 > #define STATS_U_OPER_ONLY 417
610 > #define T_ALL 418
611 > #define T_BIND 419
612 > #define T_BOTS 420
613 > #define T_CALLERID 421
614 > #define T_CCONN 422
615 > #define T_COMMAND 423
616 > #define T_CLUSTER 424
617 > #define T_DEAF 425
618 > #define T_DEBUG 426
619 > #define T_DLINE 427
620 > #define T_EXTERNAL 428
621 > #define T_FARCONNECT 429
622 > #define T_FILE 430
623 > #define T_FULL 431
624 > #define T_GLOBOPS 432
625 > #define T_INVISIBLE 433
626 > #define T_IPV4 434
627 > #define T_IPV6 435
628 > #define T_LOCOPS 436
629 > #define T_LOG 437
630 > #define T_NCHANGE 438
631 > #define T_NONONREG 439
632 > #define T_OPME 440
633 > #define T_PREPEND 441
634 > #define T_PSEUDO 442
635 > #define T_RECVQ 443
636 > #define T_REJ 444
637 > #define T_RESTART 445
638 > #define T_SERVER 446
639 > #define T_SERVICE 447
640 > #define T_SERVNOTICE 448
641 > #define T_SET 449
642 > #define T_SHARED 450
643 > #define T_SIZE 451
644 > #define T_SKILL 452
645 > #define T_SOFTCALLERID 453
646 > #define T_SPY 454
647 > #define T_SSL 455
648 > #define T_SSL_CIPHER_LIST 456
649 > #define T_TARGET 457
650 > #define T_UMODES 458
651 > #define T_UNAUTH 459
652 > #define T_UNDLINE 460
653 > #define T_UNLIMITED 461
654 > #define T_UNRESV 462
655 > #define T_UNXLINE 463
656 > #define T_WALLOP 464
657 > #define T_WALLOPS 465
658 > #define T_WEBIRC 466
659 > #define TBOOL 467
660 > #define THROTTLE_COUNT 468
661 > #define THROTTLE_TIME 469
662 > #define TMASKED 470
663 > #define TS_MAX_DELTA 471
664 > #define TS_WARN_DELTA 472
665 > #define TWODOTS 473
666 > #define TYPE 474
667 > #define UNKLINE 475
668 > #define USE_LOGGING 476
669 > #define USER 477
670 > #define VHOST 478
671 > #define VHOST6 479
672 > #define WARN_NO_CONNECT_BLOCK 480
673 > #define WHOIS 481
674 > #define WHOWAS_HISTORY_LENGTH 482
675 > #define XLINE 483
676 > #define XLINE_EXEMPT 484
677  
678 + /* Value type.  */
679   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
690 typedef union YYSTYPE
691 {
680  
681 < /* Line 293 of yacc.c  */
682 < #line 133 "conf_parser.y"
681 > union YYSTYPE
682 > {
683 > #line 141 "conf_parser.y" /* yacc.c:352  */
684  
685    int number;
686    char *string;
687  
688 + #line 689 "conf_parser.c" /* yacc.c:352  */
689 + };
690  
691 <
701 < /* Line 293 of yacc.c  */
702 < #line 703 "conf_parser.c"
703 < } YYSTYPE;
691 > typedef union YYSTYPE YYSTYPE;
692   # define YYSTYPE_IS_TRIVIAL 1
705 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
693   # define YYSTYPE_IS_DECLARED 1
694   #endif
695  
696  
697 < /* Copy the second part of user declarations.  */
697 > extern YYSTYPE yylval;
698 >
699 > int yyparse (void);
700 >
701 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
702  
703  
713 /* Line 343 of yacc.c  */
714 #line 715 "conf_parser.c"
704  
705   #ifdef short
706   # undef short
# Line 725 | Line 714 | typedef unsigned char yytype_uint8;
714  
715   #ifdef YYTYPE_INT8
716   typedef YYTYPE_INT8 yytype_int8;
728 #elif (defined __STDC__ || defined __C99__FUNC__ \
729     || defined __cplusplus || defined _MSC_VER)
730 typedef signed char yytype_int8;
717   #else
718 < typedef short int yytype_int8;
718 > typedef signed char yytype_int8;
719   #endif
720  
721   #ifdef YYTYPE_UINT16
722   typedef YYTYPE_UINT16 yytype_uint16;
723   #else
724 < typedef unsigned short int yytype_uint16;
724 > typedef unsigned short yytype_uint16;
725   #endif
726  
727   #ifdef YYTYPE_INT16
728   typedef YYTYPE_INT16 yytype_int16;
729   #else
730 < typedef short int yytype_int16;
730 > typedef short yytype_int16;
731   #endif
732  
733   #ifndef YYSIZE_T
# Line 749 | Line 735 | typedef short int yytype_int16;
735   #  define YYSIZE_T __SIZE_TYPE__
736   # elif defined size_t
737   #  define YYSIZE_T size_t
738 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
753 <     || defined __cplusplus || defined _MSC_VER)
738 > # elif ! defined YYSIZE_T
739   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
740   #  define YYSIZE_T size_t
741   # else
742 < #  define YYSIZE_T unsigned int
742 > #  define YYSIZE_T unsigned
743   # endif
744   #endif
745  
# Line 764 | Line 749 | typedef short int yytype_int16;
749   # if defined YYENABLE_NLS && YYENABLE_NLS
750   #  if ENABLE_NLS
751   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
752 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
752 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
753   #  endif
754   # endif
755   # ifndef YY_
756 < #  define YY_(msgid) msgid
756 > #  define YY_(Msgid) Msgid
757 > # endif
758 > #endif
759 >
760 > #ifndef YY_ATTRIBUTE
761 > # if (defined __GNUC__                                               \
762 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
763 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
764 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
765 > # else
766 > #  define YY_ATTRIBUTE(Spec) /* empty */
767   # endif
768   #endif
769  
770 + #ifndef YY_ATTRIBUTE_PURE
771 + # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
772 + #endif
773 +
774 + #ifndef YY_ATTRIBUTE_UNUSED
775 + # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
776 + #endif
777 +
778   /* Suppress unused-variable warnings by "using" E.  */
779   #if ! defined lint || defined __GNUC__
780 < # define YYUSE(e) ((void) (e))
780 > # define YYUSE(E) ((void) (E))
781   #else
782 < # define YYUSE(e) /* empty */
782 > # define YYUSE(E) /* empty */
783   #endif
784  
785 < /* Identity function, used to suppress warnings about constant conditions.  */
786 < #ifndef lint
787 < # define YYID(n) (n)
785 > #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
786 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
787 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
788 >    _Pragma ("GCC diagnostic push") \
789 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
790 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
791 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
792 >    _Pragma ("GCC diagnostic pop")
793   #else
794 < #if (defined __STDC__ || defined __C99__FUNC__ \
787 <     || defined __cplusplus || defined _MSC_VER)
788 < static int
789 < YYID (int yyi)
790 < #else
791 < static int
792 < YYID (yyi)
793 <    int yyi;
794 > # define YY_INITIAL_VALUE(Value) Value
795   #endif
796 < {
797 <  return yyi;
798 < }
796 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
797 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
798 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
799 > #endif
800 > #ifndef YY_INITIAL_VALUE
801 > # define YY_INITIAL_VALUE(Value) /* Nothing. */
802   #endif
803  
804 +
805   #if ! defined yyoverflow || YYERROR_VERBOSE
806  
807   /* The parser invokes alloca or malloc; define the necessary symbols.  */
# Line 814 | Line 819 | YYID (yyi)
819   #    define alloca _alloca
820   #   else
821   #    define YYSTACK_ALLOC alloca
822 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
818 <     || defined __cplusplus || defined _MSC_VER)
822 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
823   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
824 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
825   #     ifndef EXIT_SUCCESS
826   #      define EXIT_SUCCESS 0
827   #     endif
# Line 826 | Line 831 | YYID (yyi)
831   # endif
832  
833   # ifdef YYSTACK_ALLOC
834 <   /* Pacify GCC's `empty if-body' warning.  */
835 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
834 >   /* Pacify GCC's 'empty if-body' warning.  */
835 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
836   #  ifndef YYSTACK_ALLOC_MAXIMUM
837      /* The OS might guarantee only one guard page at the bottom of the stack,
838         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 843 | Line 848 | YYID (yyi)
848   #  endif
849   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
850         && ! ((defined YYMALLOC || defined malloc) \
851 <             && (defined YYFREE || defined free)))
851 >             && (defined YYFREE || defined free)))
852   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
853   #   ifndef EXIT_SUCCESS
854   #    define EXIT_SUCCESS 0
# Line 851 | Line 856 | YYID (yyi)
856   #  endif
857   #  ifndef YYMALLOC
858   #   define YYMALLOC malloc
859 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
855 <     || defined __cplusplus || defined _MSC_VER)
859 > #   if ! defined malloc && ! defined EXIT_SUCCESS
860   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
861   #   endif
862   #  endif
863   #  ifndef YYFREE
864   #   define YYFREE free
865 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
862 <     || defined __cplusplus || defined _MSC_VER)
865 > #   if ! defined free && ! defined EXIT_SUCCESS
866   void free (void *); /* INFRINGES ON USER NAME SPACE */
867   #   endif
868   #  endif
# Line 869 | Line 872 | void free (void *); /* INFRINGES ON USER
872  
873   #if (! defined yyoverflow \
874       && (! defined __cplusplus \
875 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
875 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
876  
877   /* A type that is properly aligned for any stack member.  */
878   union yyalloc
# Line 894 | Line 897 | union yyalloc
897     elements in the stack, and YYPTR gives the new location of the
898     stack.  Advance YYPTR to a properly aligned location for the next
899     stack.  */
900 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
901 <    do                                                                  \
902 <      {                                                                 \
903 <        YYSIZE_T yynewbytes;                                            \
904 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
905 <        Stack = &yyptr->Stack_alloc;                                    \
906 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
907 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
908 <      }                                                                 \
909 <    while (YYID (0))
900 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
901 >    do                                                                  \
902 >      {                                                                 \
903 >        YYSIZE_T yynewbytes;                                            \
904 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
905 >        Stack = &yyptr->Stack_alloc;                                    \
906 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
907 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
908 >      }                                                                 \
909 >    while (0)
910  
911   #endif
912  
913   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
914 < /* Copy COUNT objects from FROM to TO.  The source and destination do
914 > /* Copy COUNT objects from SRC to DST.  The source and destination do
915     not overlap.  */
916   # ifndef YYCOPY
917   #  if defined __GNUC__ && 1 < __GNUC__
918 < #   define YYCOPY(To, From, Count) \
919 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
918 > #   define YYCOPY(Dst, Src, Count) \
919 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
920   #  else
921 < #   define YYCOPY(To, From, Count)              \
922 <      do                                        \
923 <        {                                       \
924 <          YYSIZE_T yyi;                         \
925 <          for (yyi = 0; yyi < (Count); yyi++)   \
926 <            (To)[yyi] = (From)[yyi];            \
927 <        }                                       \
928 <      while (YYID (0))
921 > #   define YYCOPY(Dst, Src, Count)              \
922 >      do                                        \
923 >        {                                       \
924 >          YYSIZE_T yyi;                         \
925 >          for (yyi = 0; yyi < (Count); yyi++)   \
926 >            (Dst)[yyi] = (Src)[yyi];            \
927 >        }                                       \
928 >      while (0)
929   #  endif
930   # endif
931   #endif /* !YYCOPY_NEEDED */
# Line 930 | Line 933 | union yyalloc
933   /* YYFINAL -- State number of the termination state.  */
934   #define YYFINAL  2
935   /* YYLAST -- Last index in YYTABLE.  */
936 < #define YYLAST   1267
936 > #define YYLAST   1348
937  
938   /* YYNTOKENS -- Number of terminals.  */
939 < #define YYNTOKENS  246
939 > #define YYNTOKENS  236
940   /* YYNNTS -- Number of nonterminals.  */
941 < #define YYNNTS  305
941 > #define YYNNTS  291
942   /* YYNRULES -- Number of rules.  */
943 < #define YYNRULES  668
944 < /* YYNRULES -- Number of states.  */
945 < #define YYNSTATES  1311
943 > #define YYNRULES  663
944 > /* YYNSTATES -- Number of states.  */
945 > #define YYNSTATES  1302
946  
944 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
947   #define YYUNDEFTOK  2
948 < #define YYMAXUTOK   495
948 > #define YYMAXUTOK   484
949  
950 < #define YYTRANSLATE(YYX)                                                \
951 <  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
950 > /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
951 >   as returned by yylex, with out-of-bounds checking.  */
952 > #define YYTRANSLATE(YYX)                                                \
953 >  ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
954  
955 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
955 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
956 >   as returned by yylex.  */
957   static const yytype_uint8 yytranslate[] =
958   {
959         0,     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,     2,     2,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
963 <       2,     2,     2,     2,   245,     2,     2,     2,     2,     2,
964 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   241,
965 <       2,   244,     2,     2,     2,     2,     2,     2,     2,     2,
963 >       2,     2,     2,     2,   234,     2,     2,     2,     2,     2,
964 >       2,     2,     2,     2,     2,     2,     2,     2,   235,   230,
965 >       2,   233,     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,     2,     2,     2,     2,     2,     2,     2,
970         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
971 <       2,     2,     2,   243,     2,   242,     2,     2,     2,     2,
971 >       2,     2,     2,   232,     2,   231,     2,     2,     2,     2,
972         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
973         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
974         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 999 | Line 1004 | static const yytype_uint8 yytranslate[]
1004       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1005       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1006       215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1007 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1003 <     235,   236,   237,   238,   239,   240
1007 >     225,   226,   227,   228,   229
1008   };
1009  
1010   #if YYDEBUG
1011 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1008 <   YYRHS.  */
1009 < static const yytype_uint16 yyprhs[] =
1010 < {
1011 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1012 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1013 <      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
1014 <      61,    65,    69,    73,    77,    81,    82,    84,    87,    91,
1015 <      95,    99,   105,   108,   110,   112,   114,   117,   122,   127,
1016 <     133,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1017 <     154,   156,   158,   160,   162,   164,   166,   168,   171,   176,
1018 <     181,   185,   187,   189,   191,   195,   197,   199,   201,   206,
1019 <     211,   216,   221,   226,   231,   236,   241,   246,   251,   256,
1020 <     261,   266,   272,   275,   277,   279,   281,   283,   286,   291,
1021 <     296,   301,   307,   310,   312,   314,   316,   319,   324,   325,
1022 <     332,   335,   337,   339,   341,   343,   346,   351,   356,   361,
1023 <     362,   368,   372,   374,   376,   378,   380,   382,   384,   386,
1024 <     388,   389,   396,   399,   401,   403,   405,   407,   409,   411,
1025 <     413,   415,   417,   420,   425,   430,   435,   440,   445,   450,
1026 <     451,   457,   461,   463,   465,   467,   469,   471,   473,   475,
1027 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
1028 <     497,   499,   501,   503,   504,   510,   514,   516,   518,   520,
1029 <     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
1030 <     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
1031 <     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
1032 <     587,   589,   591,   594,   599,   604,   609,   614,   619,   624,
1033 <     629,   634,   639,   644,   649,   654,   659,   660,   667,   668,
1034 <     674,   678,   680,   682,   684,   686,   689,   691,   693,   695,
1035 <     697,   699,   702,   703,   709,   713,   715,   717,   721,   726,
1036 <     731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
1037 <     756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
1038 <     794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
1039 <     814,   819,   824,   829,   830,   837,   840,   842,   844,   846,
1040 <     848,   851,   856,   861,   866,   872,   875,   877,   879,   881,
1041 <     886,   887,   894,   897,   899,   901,   903,   905,   908,   913,
1042 <     918,   919,   925,   929,   931,   933,   935,   937,   939,   941,
1043 <     943,   945,   947,   949,   951,   952,   959,   962,   964,   966,
1044 <     968,   971,   976,   977,   983,   987,   989,   991,   993,   995,
1045 <     997,   999,  1001,  1003,  1005,  1007,  1009,  1010,  1017,  1020,
1046 <    1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1047 <    1042,  1044,  1046,  1048,  1051,  1056,  1061,  1066,  1071,  1076,
1048 <    1081,  1086,  1091,  1092,  1098,  1102,  1104,  1106,  1108,  1110,
1049 <    1112,  1117,  1122,  1127,  1132,  1137,  1138,  1145,  1146,  1152,
1050 <    1156,  1158,  1160,  1163,  1165,  1167,  1169,  1171,  1173,  1178,
1051 <    1183,  1184,  1191,  1194,  1196,  1198,  1200,  1202,  1207,  1212,
1052 <    1218,  1221,  1223,  1225,  1227,  1232,  1233,  1240,  1241,  1247,
1053 <    1251,  1253,  1255,  1258,  1260,  1262,  1264,  1266,  1268,  1273,
1054 <    1278,  1284,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1055 <    1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1056 <    1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1057 <    1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1058 <    1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1059 <    1383,  1385,  1387,  1389,  1391,  1393,  1398,  1403,  1408,  1413,
1060 <    1418,  1423,  1428,  1433,  1438,  1443,  1448,  1453,  1458,  1463,
1061 <    1468,  1473,  1478,  1483,  1488,  1493,  1498,  1503,  1508,  1513,
1062 <    1518,  1523,  1528,  1533,  1538,  1543,  1548,  1553,  1558,  1563,
1063 <    1568,  1573,  1578,  1583,  1588,  1593,  1598,  1603,  1608,  1613,
1064 <    1618,  1623,  1628,  1629,  1635,  1639,  1641,  1643,  1645,  1647,
1065 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1066 <    1669,  1671,  1673,  1675,  1677,  1679,  1681,  1682,  1688,  1692,
1067 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1068 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1730,  1732,
1069 <    1734,  1739,  1744,  1749,  1754,  1755,  1762,  1765,  1767,  1769,
1070 <    1771,  1773,  1775,  1777,  1779,  1781,  1786,  1791,  1792,  1798,
1071 <    1802,  1804,  1806,  1808,  1813,  1818,  1819,  1825,  1829,  1831,
1072 <    1833,  1835,  1841,  1844,  1846,  1848,  1850,  1852,  1854,  1856,
1073 <    1858,  1860,  1862,  1864,  1866,  1868,  1870,  1872,  1874,  1876,
1074 <    1878,  1880,  1882,  1884,  1889,  1894,  1899,  1904,  1909,  1914,
1075 <    1919,  1924,  1929,  1934,  1939,  1944,  1949,  1954,  1959,  1964,
1076 <    1969,  1974,  1980,  1983,  1985,  1987,  1989,  1991,  1993,  1995,
1077 <    1997,  1999,  2001,  2006,  2011,  2016,  2021,  2026,  2031
1078 < };
1079 <
1080 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1081 < static const yytype_int16 yyrhs[] =
1082 < {
1083 <     247,     0,    -1,    -1,   247,   248,    -1,   280,    -1,   286,
1084 <      -1,   300,    -1,   520,    -1,   318,    -1,   335,    -1,   349,
1085 <      -1,   258,    -1,   541,    -1,   364,    -1,   371,    -1,   375,
1086 <      -1,   385,    -1,   394,    -1,   414,    -1,   424,    -1,   430,
1087 <      -1,   444,    -1,   504,    -1,   434,    -1,   253,    -1,     1,
1088 <     241,    -1,     1,   242,    -1,    -1,   250,    -1,   110,   249,
1089 <      -1,   110,   153,   249,    -1,   110,   154,   249,    -1,   110,
1090 <     155,   249,    -1,   110,   156,   249,    -1,   110,   157,   249,
1091 <      -1,    -1,   252,    -1,   110,   251,    -1,   110,    14,   251,
1092 <      -1,   110,    15,   251,    -1,   110,    16,   251,    -1,    99,
1093 <     243,   254,   242,   241,    -1,   254,   255,    -1,   255,    -1,
1094 <     256,    -1,   257,    -1,     1,   241,    -1,    98,   244,   131,
1095 <     241,    -1,   126,   244,   131,   241,    -1,   161,   243,   259,
1096 <     242,   241,    -1,   259,   260,    -1,   260,    -1,   271,    -1,
1097 <     276,    -1,   279,    -1,   273,    -1,   274,    -1,   275,    -1,
1098 <     278,    -1,   269,    -1,   268,    -1,   277,    -1,   272,    -1,
1099 <     267,    -1,   261,    -1,   262,    -1,   270,    -1,     1,   241,
1100 <      -1,   147,   244,   263,   241,    -1,   148,   244,   265,   241,
1101 <      -1,   263,   245,   264,    -1,   264,    -1,   149,    -1,   150,
1102 <      -1,   265,   245,   266,    -1,   266,    -1,   149,    -1,   150,
1103 <      -1,   145,   244,   131,   241,    -1,   143,   244,   131,   241,
1104 <      -1,   146,   244,   131,   241,    -1,   188,   244,   131,   241,
1105 <      -1,   100,   244,   131,   241,    -1,   162,   244,   131,   241,
1106 <      -1,    31,   244,   131,   241,    -1,   103,   244,   131,   241,
1107 <      -1,   102,   244,   131,   241,    -1,   234,   244,   131,   241,
1108 <      -1,   235,   244,   131,   241,    -1,   200,   244,   110,   241,
1109 <      -1,    67,   244,   176,   241,    -1,     5,   243,   281,   242,
1110 <     241,    -1,   281,   282,    -1,   282,    -1,   283,    -1,   285,
1111 <      -1,   284,    -1,     1,   241,    -1,   100,   244,   131,   241,
1112 <      -1,    41,   244,   131,   241,    -1,    31,   244,   131,   241,
1113 <      -1,    83,   243,   287,   242,   241,    -1,   287,   288,    -1,
1114 <     288,    -1,   289,    -1,   290,    -1,     1,   241,    -1,   232,
1115 <     244,   176,   241,    -1,    -1,   291,   240,   243,   292,   242,
1116 <     241,    -1,   292,   293,    -1,   293,    -1,   294,    -1,   296,
1117 <      -1,   295,    -1,     1,   241,    -1,   100,   244,   131,   241,
1118 <      -1,   239,   244,   252,   241,    -1,   239,   244,   212,   241,
1119 <      -1,    -1,   166,   297,   244,   298,   241,    -1,   298,   245,
1120 <     299,    -1,   299,    -1,   227,    -1,   115,    -1,    51,    -1,
1121 <     192,    -1,    74,    -1,    72,    -1,   191,    -1,    -1,   115,
1122 <     301,   243,   302,   242,   241,    -1,   302,   303,    -1,   303,
1123 <      -1,   304,    -1,   305,    -1,   306,    -1,   310,    -1,   309,
1124 <      -1,   307,    -1,   308,    -1,   314,    -1,     1,   241,    -1,
1125 <     100,   244,   131,   241,    -1,   227,   244,   131,   241,    -1,
1126 <     125,   244,   131,   241,    -1,    43,   244,   176,   241,    -1,
1127 <     144,   244,   131,   241,    -1,    24,   244,   131,   241,    -1,
1128 <      -1,   209,   311,   244,   312,   241,    -1,   312,   245,   313,
1129 <      -1,   313,    -1,   183,    -1,   186,    -1,   187,    -1,   190,
1130 <      -1,   191,    -1,   195,    -1,    61,    -1,   206,    -1,   201,
1131 <      -1,   203,    -1,   210,    -1,   207,    -1,   194,    -1,   202,
1132 <      -1,   205,    -1,   196,    -1,   216,    -1,   184,    -1,   185,
1133 <      -1,   199,    -1,    -1,    47,   315,   244,   316,   241,    -1,
1134 <     316,   245,   317,    -1,   317,    -1,    57,    -1,   139,    -1,
1135 <      74,    -1,   226,    -1,   192,    -1,   211,    -1,   236,    -1,
1136 <      51,    -1,    32,    -1,   217,    -1,   137,    -1,     5,    -1,
1137 <     105,    -1,   202,    -1,   215,    -1,   119,    -1,   140,    -1,
1138 <      98,    -1,    -1,    24,   319,   243,   320,   242,   241,    -1,
1139 <     320,   321,    -1,   321,    -1,   322,    -1,   332,    -1,   333,
1140 <      -1,   323,    -1,   324,    -1,   334,    -1,   325,    -1,   326,
1141 <      -1,   327,    -1,   328,    -1,   329,    -1,   330,    -1,   331,
1142 <      -1,     1,   241,    -1,   100,   244,   131,   241,    -1,   128,
1143 <     244,   250,   241,    -1,   129,   244,   250,   241,    -1,   113,
1144 <     244,   110,   241,    -1,    26,   244,   250,   241,    -1,    92,
1145 <     244,   110,   241,    -1,    87,   244,   110,   241,    -1,    89,
1146 <     244,   110,   241,    -1,    88,   244,   110,   241,    -1,   158,
1147 <     244,   252,   241,    -1,    22,   244,   110,   241,    -1,    23,
1148 <     244,   110,   241,    -1,   112,   244,   110,   241,    -1,    -1,
1149 <      82,   336,   243,   341,   242,   241,    -1,    -1,    47,   338,
1150 <     244,   339,   241,    -1,   339,   245,   340,    -1,   340,    -1,
1151 <     208,    -1,    61,    -1,   204,    -1,   341,   342,    -1,   342,
1152 <      -1,   343,    -1,   337,    -1,   347,    -1,   348,    -1,     1,
1153 <     241,    -1,    -1,   130,   244,   345,   344,   241,    -1,   345,
1154 <     245,   346,    -1,   346,    -1,   110,    -1,   110,   181,   110,
1155 <      -1,    71,   244,   131,   241,    -1,    66,   244,   131,   241,
1156 <      -1,    -1,    58,   350,   243,   351,   242,   241,    -1,   351,
1157 <     352,    -1,   352,    -1,   353,    -1,   354,    -1,   355,    -1,
1158 <     357,    -1,   361,    -1,   362,    -1,   363,    -1,   356,    -1,
1159 <       1,   241,    -1,   227,   244,   131,   241,    -1,   125,   244,
1160 <     131,   241,    -1,    24,   244,   131,   241,    -1,    43,   244,
1161 <     176,   241,    -1,    -1,    47,   358,   244,   359,   241,    -1,
1162 <     359,   245,   360,    -1,   360,    -1,   170,    -1,    44,    -1,
1163 <      75,    -1,    59,    -1,    20,    -1,   109,    -1,    53,    -1,
1164 <     152,    -1,   101,    -1,   169,   244,   131,   241,    -1,   135,
1165 <     244,   131,   241,    -1,   134,   244,   110,   241,    -1,    -1,
1166 <     151,   365,   243,   366,   242,   241,    -1,   366,   367,    -1,
1167 <     367,    -1,   368,    -1,   369,    -1,   370,    -1,     1,   241,
1168 <      -1,   133,   244,   131,   241,    -1,    21,   244,   131,   241,
1169 <      -1,   104,   244,   131,   241,    -1,   218,   243,   372,   242,
1170 <     241,    -1,   372,   373,    -1,   373,    -1,   374,    -1,     1,
1171 <      -1,   100,   244,   131,   241,    -1,    -1,   164,   376,   243,
1172 <     377,   242,   241,    -1,   377,   378,    -1,   378,    -1,   379,
1173 <      -1,   380,    -1,   381,    -1,     1,   241,    -1,   100,   244,
1174 <     131,   241,    -1,   227,   244,   131,   241,    -1,    -1,   166,
1175 <     382,   244,   383,   241,    -1,   383,   245,   384,    -1,   384,
1176 <      -1,    74,    -1,   226,    -1,   192,    -1,   211,    -1,   236,
1177 <      -1,   214,    -1,   151,    -1,   213,    -1,   199,    -1,   182,
1178 <      -1,    -1,   165,   386,   243,   387,   242,   241,    -1,   387,
1179 <     388,    -1,   388,    -1,   389,    -1,   390,    -1,     1,   241,
1180 <      -1,   100,   244,   131,   241,    -1,    -1,   166,   391,   244,
1181 <     392,   241,    -1,   392,   245,   393,    -1,   393,    -1,    74,
1182 <      -1,   226,    -1,   192,    -1,   211,    -1,   236,    -1,   214,
1183 <      -1,   151,    -1,   213,    -1,   199,    -1,   182,    -1,    -1,
1184 <      25,   395,   243,   396,   242,   241,    -1,   396,   397,    -1,
1185 <     397,    -1,   398,    -1,   399,    -1,   400,    -1,   401,    -1,
1186 <     402,    -1,   404,    -1,   403,    -1,   413,    -1,   405,    -1,
1187 <     410,    -1,   411,    -1,   412,    -1,   409,    -1,     1,   241,
1188 <      -1,   100,   244,   131,   241,    -1,    66,   244,   131,   241,
1189 <      -1,   234,   244,   131,   241,    -1,   159,   244,   131,   241,
1190 <      -1,     3,   244,   131,   241,    -1,   130,   244,   110,   241,
1191 <      -1,     6,   244,   197,   241,    -1,     6,   244,   198,   241,
1192 <      -1,    -1,    47,   406,   244,   407,   241,    -1,   407,   245,
1193 <     408,    -1,   408,    -1,    10,    -1,    12,    -1,   221,    -1,
1194 <     208,    -1,    43,   244,   176,   241,    -1,    68,   244,   131,
1195 <     241,    -1,    80,   244,   131,   241,    -1,    24,   244,   131,
1196 <     241,    -1,   188,   244,   131,   241,    -1,    -1,    72,   415,
1197 <     243,   420,   242,   241,    -1,    -1,   166,   417,   244,   418,
1198 <     241,    -1,   418,   245,   419,    -1,   419,    -1,   136,    -1,
1199 <     420,   421,    -1,   421,    -1,   422,    -1,   423,    -1,   416,
1200 <      -1,     1,    -1,   227,   244,   131,   241,    -1,   133,   244,
1201 <     131,   241,    -1,    -1,    30,   425,   243,   426,   242,   241,
1202 <      -1,   426,   427,    -1,   427,    -1,   428,    -1,   429,    -1,
1203 <       1,    -1,    71,   244,   131,   241,    -1,   133,   244,   131,
1204 <     241,    -1,    45,   243,   431,   242,   241,    -1,   431,   432,
1205 <      -1,   432,    -1,   433,    -1,     1,    -1,    71,   244,   131,
1206 <     241,    -1,    -1,    49,   435,   243,   440,   242,   241,    -1,
1207 <      -1,   166,   437,   244,   438,   241,    -1,   438,   245,   439,
1208 <      -1,   439,    -1,   136,    -1,   440,   441,    -1,   441,    -1,
1209 <     442,    -1,   443,    -1,   436,    -1,     1,    -1,   100,   244,
1210 <     131,   241,    -1,   133,   244,   131,   241,    -1,    50,   243,
1211 <     445,   242,   241,    -1,   445,   446,    -1,   446,    -1,   454,
1212 <      -1,   455,    -1,   457,    -1,   458,    -1,   459,    -1,   460,
1213 <      -1,   461,    -1,   462,    -1,   463,    -1,   464,    -1,   453,
1214 <      -1,   466,    -1,   467,    -1,   468,    -1,   469,    -1,   484,
1215 <      -1,   471,    -1,   473,    -1,   475,    -1,   474,    -1,   478,
1216 <      -1,   472,    -1,   479,    -1,   480,    -1,   481,    -1,   482,
1217 <      -1,   483,    -1,   496,    -1,   485,    -1,   486,    -1,   487,
1218 <      -1,   492,    -1,   476,    -1,   477,    -1,   502,    -1,   500,
1219 <      -1,   501,    -1,   456,    -1,   503,    -1,   491,    -1,   465,
1220 <      -1,   489,    -1,   490,    -1,   452,    -1,   448,    -1,   449,
1221 <      -1,   450,    -1,   451,    -1,   470,    -1,   447,    -1,   488,
1222 <      -1,     1,    -1,    94,   244,   110,   241,    -1,    55,   244,
1223 <     110,   241,    -1,    56,   244,   110,   241,    -1,   233,   244,
1224 <     176,   241,    -1,   138,   244,   250,   241,    -1,   163,   244,
1225 <     176,   241,    -1,    73,   244,   250,   241,    -1,    65,   244,
1226 <     176,   241,    -1,    69,   244,   176,   241,    -1,    37,   244,
1227 <     176,   241,    -1,    46,   244,   176,   241,    -1,     8,   244,
1228 <     176,   241,    -1,    91,   244,   250,   241,    -1,    90,   244,
1229 <     110,   241,    -1,    84,   244,   110,   241,    -1,     9,   244,
1230 <     250,   241,    -1,   180,   244,   250,   241,    -1,   179,   244,
1231 <     250,   241,    -1,    60,   244,   110,   241,    -1,    77,   244,
1232 <     176,   241,    -1,    76,   244,   131,   241,    -1,    70,   244,
1233 <     176,   241,    -1,   238,   244,   176,   241,    -1,   171,   244,
1234 <     176,   241,    -1,   174,   244,   176,   241,    -1,   175,   244,
1235 <     176,   241,    -1,   173,   244,   176,   241,    -1,   173,   244,
1236 <     177,   241,    -1,   172,   244,   176,   241,    -1,   172,   244,
1237 <     177,   241,    -1,   123,   244,   250,   241,    -1,    19,   244,
1238 <     250,   241,    -1,   116,   244,   176,   241,    -1,   124,   244,
1239 <     250,   241,    -1,   167,   244,   176,   241,    -1,   108,   244,
1240 <     176,   241,    -1,   222,   244,   176,   241,    -1,   118,   244,
1241 <     176,   241,    -1,    95,   244,   131,   241,    -1,    38,   244,
1242 <     110,   241,    -1,    93,   244,   110,   241,    -1,   228,   244,
1243 <     176,   241,    -1,    40,   244,   131,   241,    -1,   219,   244,
1244 <     131,   241,    -1,   127,   244,   176,   241,    -1,    33,   244,
1245 <     176,   241,    -1,   220,   244,   250,   241,    -1,    -1,   120,
1246 <     493,   244,   494,   241,    -1,   494,   245,   495,    -1,   495,
1247 <      -1,   183,    -1,   186,    -1,   187,    -1,   190,    -1,   191,
1248 <      -1,   195,    -1,    61,    -1,   206,    -1,   201,    -1,   203,
1249 <      -1,   210,    -1,   207,    -1,   194,    -1,   202,    -1,   205,
1250 <      -1,   196,    -1,   216,    -1,   184,    -1,   185,    -1,   199,
1251 <      -1,    -1,   117,   497,   244,   498,   241,    -1,   498,   245,
1252 <     499,    -1,   499,    -1,   183,    -1,   186,    -1,   187,    -1,
1253 <     190,    -1,   191,    -1,   195,    -1,   206,    -1,    61,    -1,
1254 <     201,    -1,   203,    -1,   210,    -1,   207,    -1,   194,    -1,
1255 <     202,    -1,   205,    -1,   196,    -1,   216,    -1,   184,    -1,
1256 <     185,    -1,   199,    -1,    96,   244,   110,   241,    -1,    97,
1257 <     244,   110,   241,    -1,    27,   244,   110,   241,    -1,   189,
1258 <     244,   252,   241,    -1,    -1,    52,   505,   243,   506,   242,
1259 <     241,    -1,   506,   507,    -1,   507,    -1,   508,    -1,   509,
1260 <      -1,   510,    -1,   514,    -1,   515,    -1,   516,    -1,     1,
1261 <      -1,    42,   244,   176,   241,    -1,    39,   244,   250,   241,
1262 <      -1,    -1,    83,   511,   244,   512,   241,    -1,   512,   245,
1263 <     513,    -1,   513,    -1,   178,    -1,    11,    -1,   227,   244,
1264 <     131,   241,    -1,   100,   244,   131,   241,    -1,    -1,     4,
1265 <     517,   244,   518,   241,    -1,   518,   245,   519,    -1,   519,
1266 <      -1,   178,    -1,    11,    -1,    21,   243,   521,   242,   241,
1267 <      -1,   521,   522,    -1,   522,    -1,   525,    -1,   526,    -1,
1268 <     527,    -1,   528,    -1,   533,    -1,   529,    -1,   530,    -1,
1269 <     531,    -1,   532,    -1,   534,    -1,   535,    -1,   536,    -1,
1270 <     524,    -1,   537,    -1,   538,    -1,   539,    -1,   540,    -1,
1271 <     523,    -1,     1,    -1,    34,   244,   176,   241,    -1,   141,
1272 <     244,   176,   241,    -1,    36,   244,   176,   241,    -1,   229,
1273 <     244,   176,   241,    -1,   230,   244,   176,   241,    -1,   231,
1274 <     244,   176,   241,    -1,    78,   244,   250,   241,    -1,    79,
1275 <     244,   250,   241,    -1,    86,   244,   110,   241,    -1,   132,
1276 <     244,   176,   241,    -1,    85,   244,   110,   241,    -1,    29,
1277 <     244,   110,   241,    -1,    28,   244,   110,   241,    -1,   106,
1278 <     244,   176,   241,    -1,   107,   244,   176,   241,    -1,    13,
1279 <     244,   176,   241,    -1,   121,   244,   110,   241,    -1,   122,
1280 <     244,   250,   241,    -1,   160,   243,   542,   242,   241,    -1,
1281 <     542,   543,    -1,   543,    -1,   544,    -1,   545,    -1,   547,
1282 <      -1,   549,    -1,   548,    -1,   546,    -1,   550,    -1,     1,
1283 <      -1,    48,   244,   176,   241,    -1,    64,   244,   176,   241,
1284 <      -1,    62,   244,   131,   241,    -1,    81,   244,   250,   241,
1285 <      -1,    61,   244,   176,   241,    -1,    35,   244,   176,   241,
1286 <      -1,    63,   244,   176,   241,    -1
1287 < };
1288 <
1289 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1011 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1012   static const yytype_uint16 yyrline[] =
1013   {
1014 <       0,   377,   377,   378,   381,   382,   383,   384,   385,   386,
1015 <     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
1016 <     397,   398,   399,   400,   401,   402,   403,   407,   407,   408,
1017 <     412,   416,   420,   424,   428,   434,   434,   435,   436,   437,
1018 <     438,   445,   448,   448,   449,   449,   449,   451,   457,   464,
1019 <     466,   466,   467,   467,   468,   468,   469,   469,   470,   470,
1020 <     471,   471,   472,   472,   473,   473,   474,   475,   478,   479,
1021 <     481,   481,   482,   488,   496,   496,   497,   503,   511,   550,
1022 <     609,   633,   641,   656,   671,   680,   694,   703,   731,   761,
1023 <     784,   793,   795,   795,   796,   796,   797,   797,   799,   808,
1024 <     817,   829,   830,   830,   832,   832,   833,   835,   842,   842,
1025 <     852,   853,   855,   855,   856,   856,   858,   863,   866,   872,
1026 <     871,   877,   877,   878,   882,   886,   890,   894,   898,   902,
1027 <     913,   912,  1010,  1010,  1011,  1011,  1011,  1012,  1012,  1012,
1028 <    1013,  1013,  1013,  1015,  1027,  1064,  1076,  1087,  1129,  1139,
1029 <    1138,  1144,  1144,  1145,  1149,  1153,  1157,  1161,  1165,  1169,
1030 <    1173,  1177,  1181,  1185,  1189,  1193,  1197,  1201,  1205,  1209,
1031 <    1213,  1217,  1221,  1228,  1227,  1233,  1233,  1234,  1238,  1242,
1032 <    1246,  1250,  1254,  1258,  1262,  1266,  1270,  1274,  1278,  1282,
1033 <    1286,  1290,  1294,  1298,  1302,  1313,  1312,  1362,  1362,  1363,
1034 <    1364,  1364,  1365,  1366,  1367,  1368,  1369,  1370,  1371,  1372,
1035 <    1373,  1374,  1375,  1377,  1386,  1392,  1398,  1404,  1410,  1416,
1036 <    1422,  1428,  1434,  1440,  1446,  1452,  1462,  1461,  1478,  1477,
1037 <    1482,  1482,  1483,  1487,  1491,  1499,  1499,  1500,  1500,  1500,
1038 <    1500,  1500,  1502,  1502,  1504,  1504,  1506,  1520,  1540,  1549,
1039 <    1562,  1561,  1630,  1630,  1631,  1631,  1631,  1631,  1632,  1632,
1040 <    1632,  1633,  1633,  1635,  1672,  1685,  1694,  1706,  1705,  1709,
1041 <    1709,  1710,  1714,  1718,  1722,  1726,  1730,  1734,  1738,  1742,
1042 <    1749,  1768,  1778,  1792,  1791,  1807,  1807,  1808,  1808,  1808,
1043 <    1808,  1810,  1819,  1834,  1847,  1849,  1849,  1850,  1850,  1852,
1044 <    1868,  1867,  1883,  1883,  1884,  1884,  1884,  1884,  1886,  1895,
1045 <    1918,  1917,  1923,  1923,  1924,  1928,  1932,  1936,  1940,  1944,
1046 <    1948,  1952,  1956,  1960,  1970,  1969,  1986,  1986,  1987,  1987,
1047 <    1987,  1989,  1996,  1995,  2001,  2001,  2002,  2006,  2010,  2014,
1048 <    2018,  2022,  2026,  2030,  2034,  2038,  2048,  2047,  2176,  2176,
1049 <    2177,  2177,  2177,  2178,  2178,  2179,  2179,  2179,  2180,  2180,
1050 <    2180,  2181,  2181,  2182,  2184,  2196,  2205,  2231,  2249,  2267,
1051 <    2273,  2277,  2286,  2285,  2289,  2289,  2290,  2294,  2298,  2302,
1052 <    2308,  2319,  2332,  2345,  2354,  2373,  2372,  2436,  2435,  2439,
1053 <    2439,  2440,  2446,  2446,  2447,  2447,  2447,  2447,  2449,  2468,
1054 <    2478,  2477,  2500,  2500,  2501,  2501,  2501,  2503,  2509,  2518,
1055 <    2520,  2520,  2521,  2521,  2523,  2542,  2541,  2589,  2588,  2592,
1056 <    2592,  2593,  2599,  2599,  2600,  2600,  2600,  2600,  2602,  2608,
1057 <    2617,  2620,  2620,  2621,  2621,  2622,  2622,  2623,  2623,  2624,
1058 <    2624,  2625,  2625,  2626,  2626,  2627,  2627,  2628,  2628,  2629,
1059 <    2629,  2630,  2630,  2631,  2631,  2632,  2632,  2633,  2633,  2634,
1060 <    2635,  2635,  2636,  2636,  2637,  2637,  2638,  2638,  2639,  2639,
1061 <    2640,  2641,  2642,  2642,  2643,  2644,  2645,  2645,  2646,  2646,
1062 <    2647,  2647,  2648,  2648,  2649,  2652,  2657,  2662,  2667,  2672,
1063 <    2677,  2682,  2687,  2692,  2697,  2702,  2707,  2712,  2717,  2722,
1064 <    2727,  2732,  2737,  2743,  2754,  2759,  2768,  2773,  2778,  2783,
1065 <    2788,  2793,  2796,  2801,  2804,  2809,  2814,  2819,  2824,  2829,
1066 <    2834,  2839,  2844,  2849,  2860,  2865,  2870,  2875,  2884,  2893,
1067 <    2898,  2903,  2909,  2908,  2913,  2913,  2914,  2917,  2920,  2923,
1068 <    2926,  2929,  2932,  2935,  2938,  2941,  2944,  2947,  2950,  2953,
1069 <    2956,  2959,  2962,  2965,  2968,  2971,  2977,  2976,  2981,  2981,
1070 <    2982,  2985,  2988,  2991,  2994,  2997,  3000,  3003,  3006,  3009,
1071 <    3012,  3015,  3018,  3021,  3024,  3027,  3030,  3033,  3036,  3039,
1072 <    3044,  3049,  3054,  3059,  3069,  3068,  3092,  3092,  3093,  3094,
1073 <    3095,  3096,  3097,  3098,  3099,  3101,  3107,  3114,  3113,  3118,
1074 <    3118,  3119,  3123,  3129,  3163,  3173,  3172,  3222,  3222,  3223,
1075 <    3227,  3236,  3239,  3239,  3240,  3240,  3241,  3241,  3242,  3242,
1076 <    3243,  3243,  3244,  3244,  3245,  3246,  3246,  3247,  3247,  3248,
1077 <    3248,  3249,  3249,  3251,  3256,  3261,  3266,  3271,  3276,  3281,
1078 <    3286,  3291,  3296,  3301,  3306,  3311,  3316,  3321,  3326,  3331,
1079 <    3336,  3344,  3347,  3347,  3348,  3348,  3349,  3350,  3351,  3351,
1080 <    3352,  3353,  3355,  3361,  3367,  3376,  3390,  3396,  3402
1014 >       0,   374,   374,   375,   378,   379,   380,   381,   382,   383,
1015 >     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
1016 >     394,   395,   396,   397,   398,   399,   400,   401,   405,   405,
1017 >     406,   407,   408,   409,   410,   411,   412,   413,   416,   416,
1018 >     417,   418,   419,   420,   427,   429,   429,   430,   430,   430,
1019 >     432,   438,   448,   450,   450,   451,   452,   453,   454,   455,
1020 >     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1021 >     466,   469,   478,   487,   496,   505,   514,   523,   538,   553,
1022 >     563,   577,   586,   609,   632,   655,   665,   667,   667,   668,
1023 >     669,   670,   671,   673,   682,   691,   705,   704,   722,   722,
1024 >     723,   723,   723,   725,   731,   742,   741,   760,   760,   761,
1025 >     761,   761,   761,   761,   763,   769,   775,   781,   803,   804,
1026 >     804,   806,   806,   807,   809,   816,   816,   829,   830,   832,
1027 >     832,   833,   833,   835,   843,   846,   852,   851,   857,   857,
1028 >     858,   862,   866,   870,   874,   878,   882,   886,   897,   896,
1029 >     959,   959,   960,   961,   962,   963,   964,   965,   966,   967,
1030 >     968,   969,   970,   972,   978,   984,   990,   996,  1007,  1013,
1031 >    1024,  1031,  1030,  1036,  1036,  1037,  1041,  1045,  1049,  1053,
1032 >    1057,  1061,  1065,  1069,  1073,  1077,  1081,  1085,  1089,  1093,
1033 >    1097,  1101,  1105,  1109,  1113,  1117,  1121,  1125,  1132,  1131,
1034 >    1137,  1137,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,
1035 >    1170,  1174,  1178,  1182,  1186,  1190,  1194,  1198,  1202,  1206,
1036 >    1210,  1214,  1218,  1222,  1226,  1230,  1234,  1238,  1242,  1246,
1037 >    1250,  1261,  1260,  1317,  1317,  1318,  1319,  1320,  1321,  1322,
1038 >    1323,  1324,  1325,  1326,  1327,  1328,  1329,  1330,  1331,  1332,
1039 >    1333,  1335,  1341,  1347,  1353,  1359,  1365,  1371,  1377,  1383,
1040 >    1390,  1396,  1402,  1408,  1417,  1427,  1426,  1432,  1432,  1433,
1041 >    1437,  1448,  1447,  1454,  1453,  1458,  1458,  1459,  1463,  1467,
1042 >    1473,  1473,  1474,  1474,  1474,  1474,  1474,  1476,  1476,  1478,
1043 >    1478,  1480,  1493,  1510,  1516,  1527,  1526,  1573,  1573,  1574,
1044 >    1575,  1576,  1577,  1578,  1579,  1580,  1581,  1582,  1584,  1590,
1045 >    1596,  1602,  1614,  1613,  1619,  1619,  1620,  1624,  1628,  1632,
1046 >    1636,  1640,  1644,  1648,  1652,  1656,  1662,  1676,  1685,  1699,
1047 >    1698,  1713,  1713,  1714,  1714,  1714,  1714,  1716,  1722,  1728,
1048 >    1738,  1740,  1740,  1741,  1741,  1743,  1760,  1759,  1782,  1782,
1049 >    1783,  1783,  1783,  1783,  1785,  1791,  1811,  1810,  1816,  1816,
1050 >    1817,  1821,  1825,  1829,  1833,  1837,  1841,  1845,  1849,  1853,
1051 >    1864,  1863,  1882,  1882,  1883,  1883,  1883,  1885,  1892,  1891,
1052 >    1897,  1897,  1898,  1902,  1906,  1910,  1914,  1918,  1922,  1926,
1053 >    1930,  1934,  1945,  1944,  2020,  2020,  2021,  2022,  2023,  2024,
1054 >    2025,  2026,  2027,  2028,  2029,  2030,  2031,  2032,  2033,  2034,
1055 >    2035,  2037,  2043,  2049,  2055,  2068,  2081,  2087,  2093,  2097,
1056 >    2104,  2103,  2108,  2108,  2109,  2113,  2119,  2130,  2136,  2142,
1057 >    2148,  2164,  2163,  2187,  2187,  2188,  2188,  2188,  2190,  2210,
1058 >    2221,  2220,  2245,  2245,  2246,  2246,  2246,  2248,  2254,  2264,
1059 >    2266,  2266,  2267,  2267,  2269,  2287,  2286,  2307,  2307,  2308,
1060 >    2308,  2308,  2310,  2316,  2326,  2328,  2328,  2329,  2330,  2331,
1061 >    2332,  2333,  2334,  2335,  2336,  2337,  2338,  2339,  2340,  2341,
1062 >    2342,  2343,  2344,  2345,  2346,  2347,  2348,  2349,  2350,  2351,
1063 >    2352,  2353,  2354,  2355,  2356,  2357,  2358,  2359,  2360,  2361,
1064 >    2362,  2363,  2364,  2365,  2366,  2367,  2368,  2369,  2370,  2371,
1065 >    2372,  2373,  2374,  2377,  2382,  2387,  2392,  2397,  2402,  2407,
1066 >    2412,  2417,  2422,  2427,  2432,  2437,  2442,  2447,  2452,  2457,
1067 >    2462,  2467,  2472,  2477,  2482,  2487,  2492,  2497,  2502,  2505,
1068 >    2510,  2513,  2518,  2523,  2528,  2533,  2538,  2543,  2548,  2553,
1069 >    2558,  2563,  2568,  2573,  2579,  2578,  2583,  2583,  2584,  2587,
1070 >    2590,  2593,  2596,  2599,  2602,  2605,  2608,  2611,  2614,  2617,
1071 >    2620,  2623,  2626,  2629,  2632,  2635,  2638,  2641,  2644,  2647,
1072 >    2650,  2656,  2655,  2660,  2660,  2661,  2664,  2667,  2670,  2673,
1073 >    2676,  2679,  2682,  2685,  2688,  2691,  2694,  2697,  2700,  2703,
1074 >    2706,  2709,  2712,  2715,  2718,  2721,  2726,  2731,  2736,  2741,
1075 >    2750,  2752,  2752,  2753,  2754,  2755,  2756,  2757,  2758,  2759,
1076 >    2760,  2761,  2762,  2763,  2764,  2765,  2766,  2767,  2769,  2774,
1077 >    2779,  2784,  2789,  2794,  2799,  2804,  2809,  2814,  2819,  2824,
1078 >    2829,  2834,  2843,  2845,  2845,  2846,  2847,  2848,  2849,  2850,
1079 >    2851,  2852,  2853,  2854,  2855,  2857,  2863,  2879,  2888,  2894,
1080 >    2900,  2906,  2915,  2921
1081   };
1082   #endif
1083  
1084 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1084 > #if YYDEBUG || YYERROR_VERBOSE || 0
1085   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1086     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1087   static const char *const yytname[] =
1088   {
1089 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1090 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1091 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1092 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1093 <  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1094 <  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1095 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1096 <  "DISABLE_FAKE_CHANNELS", "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS",
1097 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH",
1098 <  "EMAIL", "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1099 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1100 <  "GLINE", "GLINES", "GLINE_EXEMPT", "GLINE_TIME", "GLINE_MIN_CIDR",
1101 <  "GLINE_MIN_CIDR6", "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT",
1102 <  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_SERVER_IPS",
1103 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1104 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1105 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1106 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1107 <  "LINKS_DELAY", "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS",
1108 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1109 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1110 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1111 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1112 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1113 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1114 <  "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1115 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID",
1116 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1117 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1118 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1119 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1120 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1121 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1122 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE",
1123 <  "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1",
1124 <  "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1125 <  "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO", "IRCD_SID",
1126 <  "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD",
1127 <  "SILENT", "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED",
1128 <  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1129 <  "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "T_REJECT", "TS_MAX_DELTA",
1130 <  "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS", "T_SOFTCALLERID",
1131 <  "T_CALLERID", "T_CCONN", "T_CCONN_FULL", "T_SSL_CIPHER_LIST",
1132 <  "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DLINE", "T_DRONE",
1133 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1134 <  "T_MAX_CLIENTS", "T_NCHANGE", "T_OPERWALL", "T_REJ", "T_SERVER",
1135 <  "T_SERVNOTICE", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES", "T_UNAUTH",
1136 <  "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_GLOBOPS",
1137 <  "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME", "THROTTLE_TIME",
1138 <  "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE", "TRESV",
1139 <  "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX", "USE_KNOCK",
1140 <  "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6", "XLINE", "WARN",
1141 <  "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1142 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1143 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1422 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1423 <  "serverinfo_item", "serverinfo_ssl_client_method",
1424 <  "serverinfo_ssl_server_method", "client_method_types",
1425 <  "client_method_type_item", "server_method_types",
1426 <  "server_method_type_item", "serverinfo_ssl_certificate_file",
1089 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1090 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1091 >  "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1092 >  "CAN_FLOOD", "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS",
1093 >  "CLOSE", "CONNECT", "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE",
1094 >  "DEFAULT_FLOODCOUNT", "DEFAULT_FLOODTIME", "DEFAULT_JOIN_FLOOD_COUNT",
1095 >  "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DENY", "DESCRIPTION",
1096 >  "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1097 >  "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6",
1098 >  "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1099 >  "EXPIRATION", "FAILED_OPER_NOTICE", "FLATTEN_LINKS",
1100 >  "FLATTEN_LINKS_DELAY", "FLATTEN_LINKS_FILE", "GECOS", "GENERAL",
1101 >  "HIDDEN", "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE",
1102 >  "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS", "HIDE_SERVERS",
1103 >  "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK", "INVISIBLE_ON_CONNECT",
1104 >  "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME", "INVITE_DELAY_CHANNEL",
1105 >  "INVITE_EXPIRE_TIME", "IP", "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID",
1106 >  "JOIN", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1107 >  "KLINE_MIN_CIDR", "KLINE_MIN_CIDR6", "KNOCK_CLIENT_COUNT",
1108 >  "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LISTEN",
1109 >  "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_BANS_LARGE", "MAX_CHANNELS",
1110 >  "MAX_IDLE", "MAX_INVITES", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH",
1111 >  "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH",
1112 >  "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1113 >  "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD",
1114 >  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_OPER_FLOOD", "NO_TILDE",
1115 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP_GLOBAL",
1116 >  "NUMBER_PER_IP_LOCAL", "OPER_ONLY_UMODES", "OPER_UMODES", "OPERATOR",
1117 >  "OPERS_BYPASS_CALLERID", "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD",
1118 >  "PATH", "PING_COOKIE", "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE",
1119 >  "REASON", "REDIRPORT", "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN",
1120 >  "RESV", "RESV_EXEMPT", "RSA_PRIVATE_KEY_FILE", "SECONDS", "MINUTES",
1121 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1122 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1123 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1124 >  "SSL_CONNECTION_REQUIRED", "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1125 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1126 >  "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY", "STATS_O_OPER_ONLY",
1127 >  "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BIND", "T_BOTS",
1128 >  "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF", "T_DEBUG",
1129 >  "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1130 >  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_NCHANGE",
1131 >  "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ", "T_REJ",
1132 >  "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1133 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1134 >  "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1135 >  "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1136 >  "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME", "TMASKED",
1137 >  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE", "UNKLINE",
1138 >  "USE_LOGGING", "USER", "VHOST", "VHOST6", "WARN_NO_CONNECT_BLOCK",
1139 >  "WHOIS", "WHOWAS_HISTORY_LENGTH", "XLINE", "XLINE_EXEMPT", "';'", "'}'",
1140 >  "'{'", "'='", "','", "':'", "$accept", "conf", "conf_item", "timespec_",
1141 >  "timespec", "sizespec_", "sizespec", "modules_entry", "modules_items",
1142 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1143 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_certificate_file",
1144    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1145 <  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1145 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1146 >  "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1147    "serverinfo_description", "serverinfo_network_name",
1148 <  "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1149 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1150 <  "admin_item", "admin_name", "admin_email", "admin_description",
1151 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1152 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1153 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1154 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
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_encrypted", "oper_rsa_public_key_file", "oper_class",
1161 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1162 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1163 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1164 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1165 <  "class_connectfreq", "class_max_number", "class_max_global",
1166 <  "class_max_local", "class_max_ident", "class_sendq",
1167 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1168 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1160 >  "oper_whois", "oper_encrypted", "oper_ssl_certificate_fingerprint",
1161 >  "oper_ssl_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_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", "$@9", "port_items", "port_item", "listen_address",
1173 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_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 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1176 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1177 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1178 <  "service_entry", "service_items", "service_item", "service_name",
1179 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1180 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1181 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1182 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1183 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1184 <  "connect_host", "connect_vhost", "connect_send_password",
1185 <  "connect_accept_password", "connect_port", "connect_aftype",
1186 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1187 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1188 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1189 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1190 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
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_bind", "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", "$@22",
1469 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
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_max_watch",
1195 <  "general_gline_min_cidr", "general_gline_min_cidr6",
1196 <  "general_use_whois_actually", "general_reject_hold_time",
1197 <  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1198 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1199 <  "general_disable_remote_commands", "general_failed_oper_notice",
1194 >  "general_entry", "general_items", "general_item", "general_away_count",
1195 >  "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_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",
1203 <  "general_ts_max_delta", "general_havent_read_conf",
1204 <  "general_kline_with_reason", "general_kline_reason",
1205 <  "general_invisible_on_connect", "general_warn_no_nline",
1206 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1207 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1208 <  "general_stats_i_oper_only", "general_pace_wait",
1209 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1210 <  "general_pace_wait_simple", "general_short_motd",
1211 <  "general_no_oper_flood", "general_true_no_oper_flood",
1212 <  "general_oper_pass_resv", "general_message_locale",
1213 <  "general_dots_in_ident", "general_max_targets", "general_use_egd",
1214 <  "general_egdpool_path", "general_services_name", "general_ping_cookie",
1492 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1493 <  "$@24", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1494 <  "$@25", "umode_items", "umode_item", "general_min_nonwildcard",
1203 >  "general_ts_max_delta", "general_invisible_on_connect",
1204 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1205 >  "general_stats_m_oper_only", "general_stats_o_oper_only",
1206 >  "general_stats_P_oper_only", "general_stats_u_oper_only",
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_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 <  "general_client_flood", "gline_entry", "$@26", "gline_items",
1217 <  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@27",
1218 <  "gline_logging_types", "gline_logging_type_item", "gline_user",
1219 <  "gline_server", "gline_action", "$@28", "gdeny_types", "gdeny_type_item",
1220 <  "channel_entry", "channel_items", "channel_item",
1221 <  "channel_disable_fake_channels", "channel_restrict_channels",
1222 <  "channel_disable_local_channels", "channel_use_except",
1223 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1504 <  "channel_knock_delay_channel", "channel_max_chans_per_user",
1505 <  "channel_quiet_on_ban", "channel_max_bans",
1506 <  "channel_default_split_user_count", "channel_default_split_server_count",
1507 <  "channel_no_create_on_split", "channel_no_join_on_split",
1508 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1216 >  "general_default_floodtime", "channel_entry", "channel_items",
1217 >  "channel_item", "channel_disable_fake_channels",
1218 >  "channel_invite_client_count", "channel_invite_client_time",
1219 >  "channel_invite_delay_channel", "channel_invite_expire_time",
1220 >  "channel_knock_client_count", "channel_knock_client_time",
1221 >  "channel_knock_delay_channel", "channel_max_channels",
1222 >  "channel_max_invites", "channel_max_bans", "channel_max_bans_large",
1223 >  "channel_default_join_flood_count", "channel_default_join_flood_time",
1224    "serverhide_entry", "serverhide_items", "serverhide_item",
1225 <  "serverhide_flatten_links", "serverhide_hide_servers",
1226 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1227 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1225 >  "serverhide_flatten_links", "serverhide_flatten_links_delay",
1226 >  "serverhide_flatten_links_file", "serverhide_disable_remote_commands",
1227 >  "serverhide_hide_servers", "serverhide_hide_services",
1228 >  "serverhide_hidden_name", "serverhide_hidden",
1229 >  "serverhide_hide_server_ips", YY_NULLPTR
1230   };
1231   #endif
1232  
1233   # ifdef YYPRINT
1234 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1235 <   token YYLEX-NUM.  */
1234 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1235 >   (internal) symbol number NUM (which must be that of a token).  */
1236   static const yytype_uint16 yytoknum[] =
1237   {
1238         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1541 | Line 1258 | static const yytype_uint16 yytoknum[] =
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,   484,
1261 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1545 <     495,    59,   125,   123,    61,    44
1261 >      59,   125,   123,    61,    44,    58
1262   };
1263   # endif
1264  
1265 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1550 < static const yytype_uint16 yyr1[] =
1551 < {
1552 <       0,   246,   247,   247,   248,   248,   248,   248,   248,   248,
1553 <     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
1554 <     248,   248,   248,   248,   248,   248,   248,   249,   249,   250,
1555 <     250,   250,   250,   250,   250,   251,   251,   252,   252,   252,
1556 <     252,   253,   254,   254,   255,   255,   255,   256,   257,   258,
1557 <     259,   259,   260,   260,   260,   260,   260,   260,   260,   260,
1558 <     260,   260,   260,   260,   260,   260,   260,   260,   261,   262,
1559 <     263,   263,   264,   264,   265,   265,   266,   266,   267,   268,
1560 <     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1561 <     279,   280,   281,   281,   282,   282,   282,   282,   283,   284,
1562 <     285,   286,   287,   287,   288,   288,   288,   289,   291,   290,
1563 <     292,   292,   293,   293,   293,   293,   294,   295,   295,   297,
1564 <     296,   298,   298,   299,   299,   299,   299,   299,   299,   299,
1565 <     301,   300,   302,   302,   303,   303,   303,   303,   303,   303,
1566 <     303,   303,   303,   304,   305,   306,   307,   308,   309,   311,
1567 <     310,   312,   312,   313,   313,   313,   313,   313,   313,   313,
1568 <     313,   313,   313,   313,   313,   313,   313,   313,   313,   313,
1569 <     313,   313,   313,   315,   314,   316,   316,   317,   317,   317,
1570 <     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
1571 <     317,   317,   317,   317,   317,   319,   318,   320,   320,   321,
1572 <     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
1573 <     321,   321,   321,   322,   323,   324,   325,   326,   327,   328,
1574 <     329,   330,   331,   332,   333,   334,   336,   335,   338,   337,
1575 <     339,   339,   340,   340,   340,   341,   341,   342,   342,   342,
1576 <     342,   342,   344,   343,   345,   345,   346,   346,   347,   348,
1577 <     350,   349,   351,   351,   352,   352,   352,   352,   352,   352,
1578 <     352,   352,   352,   353,   354,   355,   356,   358,   357,   359,
1579 <     359,   360,   360,   360,   360,   360,   360,   360,   360,   360,
1580 <     361,   362,   363,   365,   364,   366,   366,   367,   367,   367,
1581 <     367,   368,   369,   370,   371,   372,   372,   373,   373,   374,
1582 <     376,   375,   377,   377,   378,   378,   378,   378,   379,   380,
1583 <     382,   381,   383,   383,   384,   384,   384,   384,   384,   384,
1584 <     384,   384,   384,   384,   386,   385,   387,   387,   388,   388,
1585 <     388,   389,   391,   390,   392,   392,   393,   393,   393,   393,
1586 <     393,   393,   393,   393,   393,   393,   395,   394,   396,   396,
1587 <     397,   397,   397,   397,   397,   397,   397,   397,   397,   397,
1588 <     397,   397,   397,   397,   398,   399,   400,   401,   402,   403,
1589 <     404,   404,   406,   405,   407,   407,   408,   408,   408,   408,
1590 <     409,   410,   411,   412,   413,   415,   414,   417,   416,   418,
1591 <     418,   419,   420,   420,   421,   421,   421,   421,   422,   423,
1592 <     425,   424,   426,   426,   427,   427,   427,   428,   429,   430,
1593 <     431,   431,   432,   432,   433,   435,   434,   437,   436,   438,
1594 <     438,   439,   440,   440,   441,   441,   441,   441,   442,   443,
1595 <     444,   445,   445,   446,   446,   446,   446,   446,   446,   446,
1596 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1597 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1598 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1599 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1600 <     446,   446,   446,   446,   446,   447,   448,   449,   450,   451,
1601 <     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
1602 <     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
1603 <     472,   473,   473,   474,   474,   475,   476,   477,   478,   479,
1604 <     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
1605 <     490,   491,   493,   492,   494,   494,   495,   495,   495,   495,
1606 <     495,   495,   495,   495,   495,   495,   495,   495,   495,   495,
1607 <     495,   495,   495,   495,   495,   495,   497,   496,   498,   498,
1608 <     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
1609 <     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
1610 <     500,   501,   502,   503,   505,   504,   506,   506,   507,   507,
1611 <     507,   507,   507,   507,   507,   508,   509,   511,   510,   512,
1612 <     512,   513,   513,   514,   515,   517,   516,   518,   518,   519,
1613 <     519,   520,   521,   521,   522,   522,   522,   522,   522,   522,
1614 <     522,   522,   522,   522,   522,   522,   522,   522,   522,   522,
1615 <     522,   522,   522,   523,   524,   525,   526,   527,   528,   529,
1616 <     530,   531,   532,   533,   534,   535,   536,   537,   538,   539,
1617 <     540,   541,   542,   542,   543,   543,   543,   543,   543,   543,
1618 <     543,   543,   544,   545,   546,   547,   548,   549,   550
1619 < };
1265 > #define YYPACT_NINF -740
1266  
1267 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1268 < static const yytype_uint8 yyr2[] =
1267 > #define yypact_value_is_default(Yystate) \
1268 >  (!!((Yystate) == (-740)))
1269 >
1270 > #define YYTABLE_NINF -126
1271 >
1272 > #define yytable_value_is_error(Yytable_value) \
1273 >  0
1274 >
1275 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1276 >     STATE-NUM.  */
1277 > static const yytype_int16 yypact[] =
1278   {
1279 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1280 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1281 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1282 <       3,     3,     3,     3,     3,     0,     1,     2,     3,     3,
1283 <       3,     5,     2,     1,     1,     1,     2,     4,     4,     5,
1284 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1285 <       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1286 <       3,     1,     1,     1,     3,     1,     1,     1,     4,     4,
1287 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1288 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1289 <       4,     5,     2,     1,     1,     1,     2,     4,     0,     6,
1290 <       2,     1,     1,     1,     1,     2,     4,     4,     4,     0,
1291 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1292 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1293 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     0,
1294 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1295 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1296 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1297 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1298 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1299 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1300 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1301 <       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1302 <       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1303 <       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1304 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1305 <       1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1306 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1307 <       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1308 <       2,     4,     4,     4,     5,     2,     1,     1,     1,     4,
1309 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1310 <       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1311 <       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1312 <       2,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1313 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1314 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1315 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1316 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1317 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1318 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1319 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1320 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1321 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1322 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1323 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1324 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1325 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1326 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1327 <       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1328 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1329 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1330 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1331 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1332 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1333 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1334 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1335 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1336 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1337 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1338 <       1,     1,     1,     1,     1,     4,     4,     0,     5,     3,
1339 <       1,     1,     1,     4,     4,     0,     5,     3,     1,     1,
1340 <       1,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1341 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1342 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1343 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1344 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1345 <       1,     1,     4,     4,     4,     4,     4,     4,     4
1279 >    -740,   634,  -740,  -140,  -211,  -205,  -740,  -740,  -740,  -197,
1280 >    -740,  -195,  -740,  -740,  -740,  -181,  -740,  -740,  -740,  -176,
1281 >    -144,  -740,  -125,  -740,  -111,  -740,  -740,  -740,  -740,  -740,
1282 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1283 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1284 >    -740,    23,   911,   -99,   -88,   -83,    21,   -77,   401,   -70,
1285 >     -69,   -55,   183,   -50,   -38,   -17,   538,   506,    -5,    18,
1286 >      55,    17,    56,  -188,   -24,    64,    68,    51,  -740,  -740,
1287 >    -740,  -740,  -740,    69,    75,    78,    79,    84,    89,    92,
1288 >     102,   103,   106,   107,   109,   111,   112,   243,  -740,  -740,
1289 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1290 >    -740,  -740,  -740,   630,   566,    22,  -740,   121,    28,  -740,
1291 >    -740,    19,  -740,   123,   125,   127,   128,   129,   130,   131,
1292 >     135,   137,   139,   144,   146,   147,   158,   159,   160,   168,
1293 >     170,   172,   176,   179,   180,   181,   185,   186,  -740,  -740,
1294 >     187,   188,   189,   195,   197,   199,   201,   206,   207,   208,
1295 >     209,   210,   212,   218,   219,   220,   221,   223,    40,  -740,
1296 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1297 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1298 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1299 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1300 >    -740,  -740,  -740,  -740,  -740,   330,    15,   308,   148,   226,
1301 >     227,    11,  -740,  -740,  -740,    35,   328,   309,  -740,   229,
1302 >     230,   231,   234,   237,   238,   249,   251,   252,    24,  -740,
1303 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,   166,
1304 >     253,   254,   255,   257,   259,   263,   266,   267,   268,   270,
1305 >     271,   272,   273,   276,   279,   145,  -740,  -740,  -740,  -740,
1306 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1307 >    -740,  -740,    65,   283,   287,    47,  -740,  -740,  -740,   119,
1308 >       3,  -740,   288,    42,  -740,  -740,     7,  -740,   282,   399,
1309 >     400,   296,  -740,   246,   420,   318,   423,   420,   420,   420,
1310 >     424,   420,   420,   426,   428,   429,   431,   312,  -740,   313,
1311 >     311,   315,   316,  -740,   320,   322,   332,   333,   337,   342,
1312 >     343,   345,   346,   347,   358,   150,  -740,  -740,  -740,  -740,
1313 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1314 >    -740,  -740,   321,   363,   364,   365,   367,   369,   375,  -740,
1315 >     376,   379,   380,   387,   388,   389,   394,   173,  -740,  -740,
1316 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1317 >    -740,  -740,  -740,  -740,   397,   406,    54,  -740,  -740,  -740,
1318 >     422,   402,  -740,  -740,   409,   410,    59,  -740,  -740,  -740,
1319 >     417,   420,   532,   420,   420,   432,   537,   420,   437,   542,
1320 >     545,   548,   446,   450,   420,   555,   556,   557,   567,   420,
1321 >     568,   569,   570,   571,   473,   454,   455,   479,   420,   420,
1322 >     482,   483,   486,  -130,     9,   487,   489,   490,   491,   596,
1323 >     420,   420,   420,   494,   600,   480,  -740,   481,   485,   493,
1324 >    -740,   499,   510,   511,   514,   515,   224,  -740,  -740,  -740,
1325 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,   517,   518,    61,
1326 >    -740,  -740,  -740,   492,   520,   521,  -740,   522,  -740,    27,
1327 >    -740,  -740,  -740,  -740,  -740,   588,   589,   509,  -740,   526,
1328 >     524,   525,    44,  -740,  -740,  -740,   529,   527,   528,  -740,
1329 >     530,   531,   541,   543,  -740,   544,   547,   247,  -740,  -740,
1330 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,   535,
1331 >     549,   550,   554,    16,  -740,  -740,  -740,  -740,   507,   508,
1332 >     420,   599,   512,   638,   558,   576,   577,   551,  -740,  -740,
1333 >     681,   667,   581,   670,   687,   688,   671,   674,   675,   676,
1334 >     677,   678,   680,   685,   689,   575,  -740,   580,   590,  -740,
1335 >     122,  -740,  -740,  -740,  -740,   615,   598,  -740,   601,   602,
1336 >     604,   608,   610,   611,     2,  -740,  -740,  -740,  -740,  -740,
1337 >     707,   605,  -740,   616,   621,  -740,   622,    58,  -740,  -740,
1338 >    -740,  -740,   617,   618,   619,  -740,   628,   248,   631,   633,
1339 >     635,   636,   642,   643,   644,   646,   647,   648,   651,   652,
1340 >     656,  -740,  -740,   759,   762,   420,   654,   779,   420,   780,
1341 >     420,   770,   789,   792,   794,   420,   796,   796,   683,  -740,
1342 >    -740,   782,   -84,   784,   702,   793,   797,   693,   798,   803,
1343 >     807,   804,   808,   809,   810,   701,  -740,   812,   815,   710,
1344 >    -740,   711,  -740,   818,   819,   715,  -740,   716,   717,   718,
1345 >     719,   720,   721,   722,   724,   727,   728,   729,   730,   731,
1346 >     732,   733,   734,   735,   736,   737,   739,   740,   741,   747,
1347 >     749,   750,   726,   641,   751,   752,   753,   754,   755,   756,
1348 >     760,   761,   763,   767,   769,   771,   772,   773,   774,   775,
1349 >     776,   777,   778,   781,  -740,  -740,   854,   706,   783,   868,
1350 >     891,   885,   886,   888,   785,  -740,   889,   890,   787,  -740,
1351 >    -740,   894,   895,   788,   913,   790,  -740,   795,   799,  -740,
1352 >    -740,   899,   900,   800,  -740,  -740,   902,   816,   801,   903,
1353 >     907,   908,   821,   802,   912,   914,   811,  -740,  -740,   915,
1354 >     916,   918,   813,  -740,   814,   817,   820,   822,   823,   824,
1355 >     825,   826,   827,  -740,   828,   829,   830,   831,   832,   833,
1356 >     834,   835,   836,   837,   838,   839,   840,   841,   842,  -740,
1357 >    -740,   921,   843,   844,  -740,   845,  -740,    12,  -740,   922,
1358 >     924,   925,   927,   847,  -740,   848,  -740,  -740,   949,   846,
1359 >     956,   851,  -740,  -740,  -740,  -740,  -740,   420,   420,   420,
1360 >     420,   420,   420,   420,  -740,  -740,  -740,  -740,  -740,  -740,
1361 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,   852,
1362 >     853,   855,   -27,   856,   857,   858,   859,   860,   861,   862,
1363 >     863,   864,    20,   865,   866,  -740,   867,   869,   870,   871,
1364 >     872,   873,   874,     6,   875,   876,   877,   878,   879,   880,
1365 >     881,  -740,   882,   883,  -740,  -740,   884,   887,  -740,  -740,
1366 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1367 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1368 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1369 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1370 >    -740,  -740,  -740,  -740,  -740,  -219,  -740,  -740,  -740,  -740,
1371 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1372 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1373 >    -200,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1374 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1375 >    -740,  -740,   892,   893,   408,   896,   897,   898,   901,   904,
1376 >    -740,   905,   906,  -740,   909,   910,   -10,   919,   850,  -740,
1377 >    -740,  -740,  -740,   917,   920,  -740,   923,   926,   396,   928,
1378 >     929,   930,   931,   686,   932,   933,  -740,   934,   935,   936,
1379 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1380 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1381 >    -740,  -740,  -740,  -740,  -740,   937,   564,  -740,  -740,   938,
1382 >     939,   940,  -740,   163,  -740,  -740,  -740,  -740,   941,   944,
1383 >     945,   946,  -740,  -740,   947,   748,   948,  -740,  -740,  -740,
1384 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1385 >    -190,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1386 >    -740,   796,   796,   796,  -740,  -740,  -740,  -740,  -740,  -740,
1387 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -163,  -740,  -740,
1388 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1389 >    -740,   726,  -740,   641,  -740,  -740,  -740,  -740,  -740,  -740,
1390 >    -740,  -740,  -740,  -740,  -740,  -740,  -124,  -740,  -740,  -740,
1391 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1392 >     -65,  -740,   989,   913,   950,  -740,  -740,  -740,  -740,  -740,
1393 >    -740,   951,  -740,   952,   953,  -740,  -740,   954,   955,  -740,
1394 >    -740,   957,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1395 >    -740,  -740,  -740,  -740,   -51,  -740,  -740,  -740,  -740,  -740,
1396 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1397 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1398 >    -740,  -740,  -740,   -39,  -740,  -740,  -740,  -740,  -740,  -740,
1399 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1400 >    -740,   -23,  -740,  -740,   991,   -71,   958,   963,  -740,  -740,
1401 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1402 >    -740,  -740,  -740,  -740,   -16,  -740,  -740,  -740,   -27,  -740,
1403 >    -740,  -740,  -740,     6,  -740,  -740,  -740,   408,  -740,   -10,
1404 >    -740,  -740,  -740,   986,   987,   988,   992,   990,   995,  -740,
1405 >     396,  -740,   686,  -740,   564,   964,   965,   966,   614,  -740,
1406 >    -740,   748,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1407 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1408 >    -740,  -740,  -740,  -740,  -740,  -740,   -14,  -740,  -740,  -740,
1409 >     614,  -740
1410   };
1411  
1412 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1413 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1414 <   means the default is an error.  */
1412 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1413 >     Performed when YYTABLE does not specify something else to do.  Zero
1414 >     means the default is an error.  */
1415   static const yytype_uint16 yydefact[] =
1416   {
1417 <       2,     0,     1,     0,     0,     0,   195,   346,   400,     0,
1418 <     415,     0,   584,   250,   385,   226,     0,     0,   130,   283,
1419 <       0,     0,   300,   324,     0,     3,    24,    11,     4,     5,
1420 <       6,     8,     9,    10,    13,    14,    15,    16,    17,    18,
1421 <      19,    20,    23,    21,    22,     7,    12,    25,    26,     0,
1422 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1417 >       2,     0,     1,     0,     0,     0,   231,   392,   440,     0,
1418 >     455,     0,   295,   431,   271,     0,    96,   148,   329,     0,
1419 >       0,   370,     0,   105,     0,   346,     3,    23,    11,     4,
1420 >      24,    25,     5,     6,     8,     9,    10,    13,    14,    15,
1421 >      16,    17,    18,    19,    20,    22,    21,     7,    12,    26,
1422 >      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1423         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1424 <       0,     0,     0,     0,     0,    93,    94,    96,    95,   632,
1424 >       0,     0,     0,     0,     0,     0,     0,     0,    88,    89,
1425 >      91,    90,   627,     0,     0,     0,     0,     0,     0,     0,
1426 >       0,     0,     0,     0,     0,     0,     0,     0,   612,   626,
1427 >     615,   616,   617,   618,   619,   620,   621,   622,   623,   613,
1428 >     614,   624,   625,     0,     0,     0,   453,     0,     0,   451,
1429 >     452,     0,   512,     0,     0,     0,     0,     0,     0,     0,
1430         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1431 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   613,
1708 <     631,   626,   614,   615,   616,   617,   619,   620,   621,   622,
1709 <     618,   623,   624,   625,   627,   628,   629,   630,     0,     0,
1710 <       0,   413,     0,     0,   411,   412,     0,   484,     0,     0,
1431 >       0,     0,     0,     0,     0,     0,     0,     0,   581,   554,
1432         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1433 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   466,
1434 +     467,   468,   510,   474,   511,   505,   506,   507,   508,   478,
1435 +     469,   470,   471,   472,   473,   475,   476,   477,   479,   480,
1436 +     509,   484,   485,   486,   487,   483,   482,   488,   495,   496,
1437 +     489,   490,   491,   481,   493,   503,   504,   501,   502,   494,
1438 +     492,   499,   500,   497,   498,     0,     0,     0,     0,     0,
1439 +       0,     0,    46,    47,    48,     0,     0,     0,   654,     0,
1440 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   644,
1441 +     645,   646,   647,   648,   649,   650,   652,   651,   653,     0,
1442         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1443 <       0,     0,     0,     0,     0,     0,   556,     0,   532,     0,
1443 >       0,     0,     0,     0,     0,     0,    54,    67,    65,    63,
1444 >      68,    69,    64,    55,    66,    57,    58,    59,    60,    61,
1445 >      62,    56,     0,     0,     0,     0,   120,   121,   122,     0,
1446 >       0,   344,     0,     0,   342,   343,     0,    92,     0,     0,
1447 >       0,     0,    87,     0,     0,     0,     0,     0,     0,     0,
1448 >       0,     0,     0,     0,     0,     0,     0,     0,   611,     0,
1449 >       0,     0,     0,   265,     0,     0,     0,     0,     0,     0,
1450 >       0,     0,     0,     0,     0,     0,   234,   235,   238,   240,
1451 >     241,   242,   243,   244,   245,   246,   236,   237,   239,   247,
1452 >     248,   249,     0,     0,     0,     0,     0,     0,     0,   420,
1453 >       0,     0,     0,     0,     0,     0,     0,     0,   395,   396,
1454 >     397,   398,   399,   400,   401,   403,   402,   405,   409,   406,
1455 >     407,   408,   404,   446,     0,     0,     0,   443,   444,   445,
1456 >       0,     0,   450,   461,     0,     0,     0,   458,   459,   460,
1457         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1458         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1716     432,   482,   477,   478,   479,   480,   476,   443,   433,   434,
1717     470,   435,   436,   437,   438,   439,   440,   441,   442,   473,
1718     444,   445,   446,   447,   481,   449,   454,   450,   452,   451,
1719     465,   466,   453,   455,   456,   457,   458,   459,   448,   461,
1720     462,   463,   483,   474,   475,   472,   464,   460,   468,   469,
1721     467,   471,     0,     0,     0,     0,     0,     0,     0,   103,
1722     104,   105,     0,     0,     0,     0,     0,    43,    44,    45,
1723       0,     0,   661,     0,     0,     0,     0,     0,     0,     0,
1724       0,   653,   654,   655,   659,   656,   658,   657,   660,     0,
1459         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1726       0,     0,     0,     0,     0,     0,    51,    64,    65,    63,
1727      60,    59,    66,    52,    62,    55,    56,    57,    53,    61,
1728      58,    54,     0,     0,   298,     0,     0,   296,   297,    97,
1729       0,     0,     0,     0,    92,     0,     0,     0,     0,     0,
1460         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1461 <       0,     0,     0,     0,   612,     0,     0,     0,     0,     0,
1461 >       0,     0,     0,     0,     0,     0,   465,     0,     0,     0,
1462 >     312,     0,     0,     0,     0,     0,     0,   298,   299,   300,
1463 >     301,   306,   302,   303,   304,   305,   437,     0,     0,     0,
1464 >     434,   435,   436,     0,     0,     0,   273,     0,   283,     0,
1465 >     281,   282,   284,   285,    49,     0,     0,     0,    45,     0,
1466 >       0,     0,     0,    99,   100,   101,     0,     0,     0,   198,
1467 >       0,     0,     0,     0,   171,     0,     0,     0,   151,   152,
1468 >     153,   154,   155,   158,   159,   160,   157,   156,   161,     0,
1469 >       0,     0,     0,     0,   332,   333,   334,   335,     0,     0,
1470 >       0,     0,     0,     0,     0,     0,     0,     0,   643,    70,
1471         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1472 <     198,   199,   202,   203,   205,   206,   207,   208,   209,   210,
1473 <     211,   200,   201,   204,     0,     0,     0,     0,     0,   372,
1474 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   349,
1475 <     350,   351,   352,   353,   354,   356,   355,   358,   362,   359,
1476 <     360,   361,   357,   406,     0,     0,     0,   403,   404,   405,
1738 <       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1739 <     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1472 >       0,     0,     0,     0,     0,     0,    53,     0,     0,   378,
1473 >       0,   373,   374,   375,   123,     0,     0,   119,     0,     0,
1474 >       0,     0,     0,     0,     0,   108,   109,   111,   110,   112,
1475 >       0,     0,   341,     0,     0,   356,     0,     0,   349,   350,
1476 >     351,   352,     0,     0,     0,    86,     0,    28,     0,     0,
1477         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1478 +       0,   610,   250,     0,     0,     0,     0,     0,     0,     0,
1479 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   233,
1480 +     410,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1481 +       0,     0,     0,     0,     0,     0,   394,     0,     0,     0,
1482 +     442,     0,   449,     0,     0,     0,   457,     0,     0,     0,
1483         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1484         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1485         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1744       0,     0,     0,     0,   431,   594,   605,     0,     0,   597,
1745       0,     0,     0,   587,   588,   589,   590,   591,   592,   593,
1746       0,     0,     0,   267,     0,     0,     0,     0,     0,     0,
1747     253,   254,   255,   256,   261,   257,   258,   259,   260,   397,
1748       0,   387,     0,   396,     0,   393,   394,   395,     0,   228,
1749       0,     0,     0,   238,     0,   236,   237,   239,   240,   106,
1750       0,     0,   102,     0,    46,     0,     0,     0,    42,     0,
1751       0,     0,   173,     0,     0,     0,   149,     0,     0,   133,
1752     134,   135,   136,   139,   140,   138,   137,   141,     0,     0,
1753       0,     0,     0,   286,   287,   288,   289,     0,     0,     0,
1754       0,     0,     0,     0,     0,   652,    67,     0,     0,     0,
1486         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1487 <       0,     0,     0,    50,     0,     0,   310,     0,     0,   303,
1488 <     304,   305,   306,     0,     0,   332,     0,   327,   328,   329,
1489 <       0,     0,   295,     0,     0,     0,    91,     0,     0,     0,
1490 <       0,     0,    27,     0,     0,     0,     0,     0,     0,     0,
1491 <       0,     0,     0,     0,     0,     0,   611,   212,     0,     0,
1487 >       0,     0,     0,     0,   464,   307,     0,     0,     0,     0,
1488 >       0,     0,     0,     0,     0,   297,     0,     0,     0,   433,
1489 >     286,     0,     0,     0,     0,     0,   280,     0,     0,    44,
1490 >     102,     0,     0,     0,    98,   162,     0,     0,     0,     0,
1491 >       0,     0,     0,     0,     0,     0,     0,   150,   336,     0,
1492 >       0,     0,     0,   331,     0,     0,     0,     0,     0,     0,
1493 >       0,     0,     0,   642,     0,     0,     0,     0,     0,     0,
1494 >       0,     0,     0,     0,     0,     0,     0,     0,     0,    52,
1495 >     376,     0,     0,     0,   372,     0,   118,     0,   113,     0,
1496 >       0,     0,     0,     0,   107,     0,   340,   353,     0,     0,
1497 >       0,     0,   348,    95,    94,    93,   640,    28,    28,    28,
1498 >      28,    28,    28,    28,    30,    29,   641,   628,   629,   630,
1499 >     631,   632,   633,   634,   635,   638,   639,   636,   637,     0,
1500         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1501 <       0,     0,   197,   363,     0,     0,     0,     0,     0,     0,
1763 <       0,     0,     0,     0,     0,     0,     0,     0,   348,     0,
1764 <       0,     0,   402,     0,   409,     0,     0,     0,     0,   422,
1501 >       0,     0,    38,     0,     0,   232,     0,     0,     0,     0,
1502         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1503 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1504 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1505 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1506 <       0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
1507 <       0,     0,     0,     0,   430,     0,     0,     0,     0,     0,
1508 <       0,     0,   586,   262,     0,     0,     0,     0,     0,     0,
1509 <       0,     0,     0,   252,     0,     0,     0,     0,   392,   241,
1510 <       0,     0,     0,     0,     0,   235,     0,   101,     0,     0,
1511 <       0,    41,   142,     0,     0,     0,     0,     0,     0,     0,
1512 <       0,     0,   132,   290,     0,     0,     0,     0,   285,     0,
1513 <       0,     0,     0,     0,     0,     0,   651,     0,     0,     0,
1514 <       0,     0,     0,     0,     0,    72,    73,     0,    71,    76,
1515 <      77,     0,    75,     0,     0,     0,     0,     0,    49,   307,
1516 <       0,     0,     0,     0,   302,   330,     0,     0,     0,   326,
1517 <       0,   294,   100,    99,    98,   648,   645,   644,   633,   635,
1518 <      27,    27,    27,    27,    27,    29,    28,   639,   640,   643,
1519 <     641,   646,   647,   649,   650,   642,   634,   636,   637,   638,
1520 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1521 <       0,     0,     0,   196,     0,     0,     0,     0,     0,     0,
1522 <       0,     0,     0,     0,     0,     0,     0,     0,   347,     0,
1523 <       0,   401,   414,     0,     0,     0,   416,   496,   500,   516,
1524 <     582,   530,   494,   524,   527,   495,   486,   487,   503,   492,
1525 <     493,   506,   491,   505,   504,   499,   498,   497,   525,   485,
1526 <     523,   580,   581,   520,   517,   567,   560,   577,   578,   561,
1527 <     562,   563,   564,   572,   565,   575,   579,   568,   573,   569,
1528 <     574,   566,   571,   570,   576,     0,   559,   522,   542,   536,
1529 <     553,   554,   537,   538,   539,   540,   548,   541,   551,   555,
1530 <     544,   549,   545,   550,   543,   547,   546,   552,     0,   535,
1531 <     515,   518,   529,   489,   490,   519,   508,   513,   514,   511,
1532 <     512,   509,   510,   502,   501,    35,    35,    35,    37,    36,
1533 <     583,   528,   531,   521,   526,   488,   507,     0,     0,     0,
1534 <       0,     0,     0,   585,     0,     0,     0,     0,     0,     0,
1535 <       0,     0,   251,     0,     0,     0,   386,     0,     0,     0,
1536 <     246,   242,   245,   227,   107,     0,     0,   119,     0,     0,
1537 <     111,   112,   114,   113,    47,    48,     0,     0,     0,     0,
1538 <       0,     0,     0,     0,   131,     0,     0,     0,   284,   667,
1539 <     662,   666,   664,   668,   663,   665,    84,    90,    82,    86,
1540 <      85,    79,    78,    80,    68,     0,    69,     0,    83,    81,
1541 <      89,    87,    88,     0,     0,     0,   301,     0,     0,   325,
1542 <     299,    30,    31,    32,    33,    34,   223,   224,   217,   219,
1543 <     221,   220,   218,   213,   225,   216,   214,   215,   222,   368,
1544 <     370,   371,   383,   380,   376,   377,   379,   378,     0,   375,
1545 <     365,   381,   382,   364,   369,   367,   384,   366,   407,   408,
1546 <     428,   429,   421,     0,   420,   557,     0,   533,     0,    38,
1547 <      39,    40,   610,   609,     0,   608,   596,   595,   602,   601,
1811 <       0,   600,   604,   603,   265,   266,   275,   272,   277,   274,
1812 <     273,   279,   276,   278,   271,     0,   270,   264,   282,   281,
1813 <     280,   263,   399,   391,     0,   390,   398,   233,   234,   232,
1814 <       0,   231,   249,   248,     0,     0,     0,   115,     0,     0,
1815 <       0,     0,   110,   148,   146,   188,   185,   184,   177,   179,
1816 <     194,   189,   192,   187,   178,   193,   181,   190,   182,   191,
1817 <     186,   180,   183,     0,   176,   143,   145,   147,   159,   153,
1818 <     170,   171,   154,   155,   156,   157,   165,   158,   168,   172,
1819 <     161,   166,   162,   167,   160,   164,   163,   169,     0,   152,
1820 <     144,   292,   293,   291,    70,    74,   308,   314,   320,   323,
1821 <     316,   322,   317,   321,   319,   315,   318,     0,   313,   309,
1822 <     331,   336,   342,   345,   338,   344,   339,   343,   341,   337,
1823 <     340,     0,   335,   373,     0,   418,     0,   558,   534,   606,
1824 <       0,   598,     0,   268,     0,   388,     0,   229,     0,   247,
1825 <     244,   243,     0,     0,     0,     0,   109,   174,     0,   150,
1826 <       0,   311,     0,   333,     0,   374,   419,   607,   599,   269,
1827 <     389,   230,   116,   125,   128,   127,   124,   129,   126,   123,
1828 <       0,   122,   118,   117,   175,   151,   312,   334,   120,     0,
1829 <     121
1503 >       0,   393,     0,     0,   441,   454,     0,     0,   456,   524,
1504 >     528,   513,   514,   543,   517,   608,   609,   551,   518,   519,
1505 >     548,   523,   531,   522,   520,   521,   527,   526,   525,   549,
1506 >     515,   606,   607,   547,   605,   591,   585,   601,   586,   587,
1507 >     588,   596,   604,   589,   598,   602,   592,   603,   593,   597,
1508 >     590,   600,   595,   594,   599,     0,   584,   580,   563,   564,
1509 >     565,   558,   576,   559,   560,   561,   571,   579,   562,   573,
1510 >     577,   567,   578,   568,   572,   566,   575,   570,   569,   574,
1511 >       0,   557,   544,   542,   545,   550,   546,   533,   540,   541,
1512 >     538,   539,   534,   535,   536,   537,   552,   553,   530,   529,
1513 >     532,   516,     0,     0,     0,     0,     0,     0,     0,     0,
1514 >     296,     0,     0,   432,     0,     0,     0,   291,   287,   290,
1515 >     272,    50,    51,     0,     0,    97,     0,     0,     0,     0,
1516 >       0,     0,     0,     0,     0,     0,   149,     0,     0,     0,
1517 >     330,   658,   655,   656,   657,   662,   661,   663,   659,   660,
1518 >      82,    79,    85,    78,    83,    84,    77,    81,    80,    72,
1519 >      71,    76,    73,    75,    74,     0,     0,   371,   124,     0,
1520 >       0,     0,   136,     0,   128,   129,   131,   130,     0,     0,
1521 >       0,     0,   106,   345,     0,     0,     0,   347,    31,    32,
1522 >      33,    34,    35,    36,    37,   260,   261,   255,   270,   269,
1523 >       0,   268,   256,   264,   257,   263,   251,   262,   254,   253,
1524 >     252,    38,    38,    38,    40,    39,   258,   259,   415,   418,
1525 >     419,   429,   426,   412,   427,   424,   425,     0,   423,   428,
1526 >     411,   417,   414,   416,   413,   430,   447,   448,   462,   463,
1527 >     582,     0,   555,     0,   310,   311,   321,   317,   318,   320,
1528 >     325,   322,   323,   316,   324,   319,     0,   315,   309,   328,
1529 >     327,   326,   308,   439,   438,   294,   293,   278,   279,   277,
1530 >       0,   276,     0,     0,     0,   103,   104,   170,   167,   218,
1531 >     230,   205,   214,     0,   203,   208,   224,     0,   217,   222,
1532 >     228,   207,   210,   219,   221,   225,   215,   223,   211,   229,
1533 >     213,   220,   209,   212,     0,   201,   163,   165,   168,   169,
1534 >     197,   180,   181,   182,   175,   193,   176,   177,   178,   188,
1535 >     196,   179,   190,   194,   184,   195,   185,   189,   183,   192,
1536 >     187,   186,   191,     0,   174,   164,   166,   339,   337,   338,
1537 >     377,   382,   388,   391,   384,   390,   385,   389,   387,   383,
1538 >     386,     0,   381,   132,     0,     0,     0,     0,   127,   115,
1539 >     114,   116,   117,   354,   360,   366,   369,   362,   368,   363,
1540 >     367,   365,   361,   364,     0,   359,   355,   266,     0,    41,
1541 >      42,    43,   421,     0,   583,   556,   313,     0,   274,     0,
1542 >     292,   289,   288,     0,     0,     0,     0,     0,     0,   199,
1543 >       0,   172,     0,   379,     0,     0,     0,     0,     0,   126,
1544 >     357,     0,   267,   422,   314,   275,   204,   227,   202,   226,
1545 >     216,   206,   200,   173,   380,   133,   135,   134,   146,   145,
1546 >     141,   143,   147,   144,   140,   142,     0,   139,   358,   137,
1547 >       0,   138
1548   };
1549  
1550 < /* YYDEFGOTO[NTERM-NUM].  */
1551 < static const yytype_int16 yydefgoto[] =
1834 < {
1835 <      -1,     1,    25,   835,   836,   978,   979,    26,   246,   247,
1836 <     248,   249,    27,   285,   286,   287,   288,   797,   798,   801,
1837 <     802,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1838 <     298,   299,   300,   301,    28,    74,    75,    76,    77,    78,
1839 <      29,   238,   239,   240,   241,   242,  1019,  1020,  1021,  1022,
1840 <    1023,  1169,  1300,  1301,    30,    63,   538,   539,   540,   541,
1841 <     542,   543,   544,   545,   546,   769,  1218,  1219,   547,   765,
1842 <    1193,  1194,    31,    51,   349,   350,   351,   352,   353,   354,
1843 <     355,   356,   357,   358,   359,   360,   361,   362,   363,    32,
1844 <      60,   513,   750,  1160,  1161,   514,   515,   516,  1166,  1011,
1845 <    1012,   517,   518,    33,    58,   489,   490,   491,   492,   493,
1846 <     494,   495,   736,  1145,  1146,   496,   497,   498,    34,    64,
1847 <     552,   553,   554,   555,   556,    35,   306,   307,   308,    36,
1848 <      67,   588,   589,   590,   591,   592,   811,  1237,  1238,    37,
1849 <      68,   596,   597,   598,   599,   817,  1251,  1252,    38,    52,
1850 <     378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
1851 <     648,  1098,  1099,   388,   389,   390,   391,   392,    39,    59,
1852 <     503,   745,  1154,  1155,   504,   505,   506,   507,    40,    53,
1853 <     396,   397,   398,   399,    41,   123,   124,   125,    42,    55,
1854 <     407,   667,  1113,  1114,   408,   409,   410,   411,    43,   179,
1855 <     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1856 <     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1857 <     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1858 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1859 <     220,   221,   222,   223,   224,   225,   226,   442,   958,   959,
1860 <     227,   440,   935,   936,   228,   229,   230,   231,    44,    57,
1861 <     472,   473,   474,   475,   476,   728,  1130,  1131,   477,   478,
1862 <     479,   725,  1124,  1125,    45,    98,    99,   100,   101,   102,
1863 <     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1864 <     113,   114,   115,   116,   117,    46,   260,   261,   262,   263,
1865 <     264,   265,   266,   267,   268
1866 < };
1867 <
1868 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1869 <   STATE-NUM.  */
1870 < #define YYPACT_NINF -560
1871 < static const yytype_int16 yypact[] =
1550 >  /* YYPGOTO[NTERM-NUM].  */
1551 > static const yytype_int16 yypgoto[] =
1552   {
1553 <    -560,   667,  -560,  -206,  -223,  -221,  -560,  -560,  -560,  -218,
1554 <    -560,  -191,  -560,  -560,  -560,  -560,  -189,  -183,  -560,  -560,
1555 <    -154,  -136,  -560,  -560,  -133,  -560,  -560,  -560,  -560,  -560,
1556 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1557 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    42,
1558 <     544,  -115,  -109,   -80,    32,   -72,   375,   -70,   -53,   -51,
1559 <     -33,    60,    87,   -20,   -18,   324,   334,    -5,    -3,    20,
1560 <     -89,    17,    35,    51,     9,  -560,  -560,  -560,  -560,  -560,
1561 <      61,    63,    73,    79,    96,   111,   117,   125,   131,   136,
1562 <     137,   152,   154,   156,   159,   162,   170,   175,   180,  -560,
1563 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1564 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   709,   461,
1565 <      98,  -560,   195,    10,  -560,  -560,   266,  -560,   198,   199,
1566 <     202,   203,   206,   213,   214,   216,   217,   219,   229,   230,
1567 <     231,   232,   242,   243,   246,   250,   253,   256,   257,   259,
1568 <     261,   263,   265,   268,   275,   276,  -560,   277,  -560,   281,
1569 <     282,   284,   287,   291,   293,   295,   296,   299,   300,   307,
1570 <     314,   315,   316,   318,   319,   321,   322,   323,   327,   110,
1571 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1572 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1573 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1574 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1575 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1576 <    -560,  -560,     2,   509,    16,   326,    57,   330,    36,  -560,
1577 <    -560,  -560,     7,    77,   331,   332,    28,  -560,  -560,  -560,
1578 <     279,   211,  -560,   335,   338,   339,   341,   342,   343,   344,
1579 <       3,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   200,
1580 <     345,   346,   348,   349,   352,   355,   356,   357,   358,   360,
1581 <     362,   363,   365,   366,   367,    74,  -560,  -560,  -560,  -560,
1582 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1903 <    -560,  -560,   197,     6,  -560,   368,    46,  -560,  -560,  -560,
1904 <     140,   173,   392,   329,  -560,   438,   328,   505,   441,   445,
1905 <     514,   514,   515,   516,   451,   452,   521,   514,   456,   457,
1906 <     459,   460,   462,   396,  -560,   398,   397,   401,   402,   403,
1907 <     404,   408,   409,   410,   411,   412,   413,   415,   416,     4,
1908 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1909 <    -560,  -560,  -560,  -560,   399,   417,   418,   419,   420,  -560,
1910 <     425,   426,   429,   430,   431,   433,   435,   436,   290,  -560,
1911 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1912 <    -560,  -560,  -560,  -560,   439,   440,    11,  -560,  -560,  -560,
1913 <     511,   446,  -560,  -560,   442,   449,  -560,  -560,    12,  -560,
1914 <    -560,  -560,   522,   514,   514,   590,   525,   526,   593,   573,
1915 <     532,   597,   599,   601,   546,   550,   551,   514,   598,   552,
1916 <     624,   627,   514,   628,   630,   610,   636,   637,   572,   575,
1917 <     508,   577,   510,   514,   514,   579,   514,   580,   583,   584,
1918 <    -105,   -99,   585,   586,   514,   514,   653,   633,   514,   589,
1919 <     592,   594,   595,   528,  -560,  -560,  -560,   533,   534,  -560,
1920 <     535,   536,    14,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1921 <     540,   539,   541,  -560,   543,   545,   547,   548,   549,    33,
1922 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1923 <     555,  -560,   556,  -560,    22,  -560,  -560,  -560,   553,  -560,
1924 <     558,   559,   560,  -560,     8,  -560,  -560,  -560,  -560,  -560,
1925 <     596,   554,  -560,   212,  -560,   645,   657,   564,  -560,   565,
1926 <     563,   566,  -560,   567,   568,   569,  -560,   570,    15,  -560,
1927 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   574,   576,
1928 <     581,   582,    27,  -560,  -560,  -560,  -560,   608,   614,   632,
1929 <     685,   641,   643,   514,   588,  -560,  -560,   692,   648,   699,
1930 <     702,   703,   704,   705,   708,   -63,   -49,   710,   711,   730,
1931 <     712,   713,   604,  -560,   611,   607,  -560,   612,    97,  -560,
1932 <    -560,  -560,  -560,   619,   617,  -560,    30,  -560,  -560,  -560,
1933 <     724,   622,  -560,   631,   634,   635,  -560,   654,   656,   660,
1934 <     664,   665,   272,   676,   677,   681,   684,   693,   695,   696,
1935 <     698,   701,   706,   707,   714,   715,  -560,  -560,   761,   764,
1936 <     514,   767,   768,   776,   779,   763,   823,   828,   514,   514,
1937 <     653,   716,  -560,  -560,   809,   -75,   812,   770,   700,   818,
1938 <     819,   820,   821,   843,   827,   829,   830,   718,  -560,   831,
1939 <     832,   723,  -560,   726,  -560,   834,   835,   728,   727,  -560,
1940 <     729,   732,   733,   734,   735,   736,   737,   739,   740,   741,
1941 <     742,   743,   744,   745,   746,   747,   748,   749,   750,   751,
1942 <     752,   753,   754,   755,   756,   757,   758,   759,   663,   760,
1943 <     697,   762,   765,   766,   769,   771,   772,   773,   774,   775,
1944 <     777,   778,   780,   782,   783,   784,    54,   785,   786,   787,
1945 <     788,   789,   790,   791,  -560,   792,   514,   793,   794,   871,
1946 <     873,   796,  -560,  -560,   874,   833,   795,   877,   844,   880,
1947 <     886,   889,   800,  -560,   902,   798,   903,   802,  -560,  -560,
1948 <     801,   904,   913,   936,   806,  -560,   807,  -560,   194,   808,
1949 <     810,  -560,  -560,   919,   876,   811,   922,   923,   925,   813,
1950 <     927,   822,  -560,  -560,   928,   929,   930,   824,  -560,   825,
1951 <     826,   836,   837,   838,   839,   840,  -560,   841,   842,   845,
1952 <     846,   847,   848,   849,   850,  -560,  -560,  -199,  -560,  -560,
1953 <    -560,  -196,  -560,   851,   852,   853,   854,   855,  -560,  -560,
1954 <     931,   856,   933,   857,  -560,  -560,   937,   858,   860,  -560,
1955 <     862,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1956 <     514,   514,   514,   514,   514,  -560,  -560,  -560,  -560,  -560,
1957 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1958 <     863,   864,   865,   866,   867,   868,   869,   872,   875,   878,
1959 <     879,   881,   882,  -560,   883,   884,   885,   887,   888,   141,
1960 <     890,   891,   892,   893,   894,   895,   896,   897,  -560,   898,
1961 <     899,  -560,  -560,   900,   901,   934,  -560,  -560,  -560,  -560,
1962 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1963 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1964 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1965 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1966 <    -560,  -560,  -560,  -560,  -560,  -182,  -560,  -560,  -560,  -560,
1967 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1968 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   -30,  -560,
1969 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1970 <    -560,  -560,  -560,  -560,  -560,   653,   653,   653,  -560,  -560,
1971 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,    13,   905,   906,
1972 <      21,   907,   908,  -560,   909,   910,   870,   911,   912,   914,
1973 <     915,   916,  -560,   917,   935,   918,  -560,   -47,   920,   921,
1974 <     940,   924,  -560,  -560,  -560,   926,   932,  -560,   938,    89,
1975 <    -560,  -560,  -560,  -560,  -560,  -560,   939,   942,   479,   943,
1976 <     944,   945,   725,   946,  -560,   947,   948,   949,  -560,  -560,
1977 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1978 <    -560,  -560,  -560,  -560,  -560,   -63,  -560,   -49,  -560,  -560,
1979 <    -560,  -560,  -560,   950,   507,   951,  -560,   952,   531,  -560,
1980 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1981 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1982 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    -6,  -560,
1983 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1984 <    -560,  -560,  -560,    65,  -560,  -560,   663,  -560,   697,  -560,
1985 <    -560,  -560,  -560,  -560,   100,  -560,  -560,  -560,  -560,  -560,
1986 <     101,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1987 <    -560,  -560,  -560,  -560,  -560,   106,  -560,  -560,  -560,  -560,
1988 <    -560,  -560,  -560,  -560,   109,  -560,  -560,  -560,  -560,  -560,
1989 <     112,  -560,  -560,  -560,   959,   936,   953,  -560,   941,   954,
1990 <     -91,   955,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1991 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1992 <    -560,  -560,  -560,   123,  -560,  -560,  -560,  -560,  -560,  -560,
1993 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1994 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   126,  -560,
1995 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1996 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,   133,  -560,  -560,
1997 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1998 <    -560,   148,  -560,  -560,   141,  -560,   934,  -560,  -560,  -560,
1999 <      13,  -560,    21,  -560,   870,  -560,   935,  -560,   -47,  -560,
2000 <    -560,  -560,   956,   262,   958,   960,  -560,  -560,   479,  -560,
2001 <     725,  -560,   507,  -560,   531,  -560,  -560,  -560,  -560,  -560,
2002 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
2003 <     150,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   262,
2004 <    -560
1553 >    -740,  -740,  -740,  -139,  -302,  -739,  -626,  -740,  -740,   960,
1554 >    -740,  -740,  -740,  -740,   942,  -740,  -740,  -740,  -740,  -740,
1555 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1556 >    -740,  -740,  1044,  -740,  -740,  -740,  -740,  -740,  -740,   637,
1557 >    -740,  -740,  -740,  -740,  -740,   463,  -740,  -740,  -740,  -740,
1558 >    -740,  -740,   943,  -740,  -740,  -740,  -740,    97,  -740,  -740,
1559 >    -740,  -740,  -740,  -168,  -740,  -740,  -740,   626,  -740,  -740,
1560 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -121,
1561 >    -740,  -740,  -740,  -122,  -740,  -740,  -740,   849,  -740,  -740,
1562 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1563 >    -740,  -740,  -740,  -740,  -740,   -96,  -740,  -740,  -740,  -740,
1564 >    -740,  -106,  -740,   665,  -740,  -740,  -740,    13,  -740,  -740,
1565 >    -740,  -740,  -740,   692,  -740,  -740,  -740,  -740,  -740,  -740,
1566 >    -740,  -102,  -740,  -740,  -740,  -740,  -740,  -740,   629,  -740,
1567 >    -740,  -740,  -740,  -740,   959,  -740,  -740,  -740,  -740,   562,
1568 >    -740,  -740,  -740,  -740,  -740,  -120,  -740,  -740,  -740,   594,
1569 >    -740,  -740,  -740,  -740,  -109,  -740,  -740,  -740,   961,  -740,
1570 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1571 >     -86,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,   700,
1572 >    -740,  -740,  -740,  -740,  -740,   962,  -740,  -740,  -740,  -740,
1573 >    1052,  -740,  -740,  -740,  -740,   786,  -740,  -740,  -740,  -740,
1574 >    1011,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1575 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1576 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1577 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1578 >    -740,  -740,  -740,    80,  -740,  -740,  -740,    96,  -740,  -740,
1579 >    -740,  -740,  -740,  -740,  1088,  -740,  -740,  -740,  -740,  -740,
1580 >    -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1581 >    -740,   967,  -740,  -740,  -740,  -740,  -740,  -740,  -740,  -740,
1582 >    -740
1583   };
1584  
1585 < /* YYPGOTO[NTERM-NUM].  */
1586 < static const yytype_int16 yypgoto[] =
1585 >  /* YYDEFGOTO[NTERM-NUM].  */
1586 > static const yytype_int16 yydefgoto[] =
1587   {
1588 <    -560,  -560,  -560,  -316,  -319,  -559,  -456,  -560,  -560,   957,
1589 <    -560,  -560,  -560,  -560,   799,  -560,  -560,  -560,    18,  -560,
1590 <      19,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1591 <    -560,  -560,  -560,  -560,  -560,  -560,  1000,  -560,  -560,  -560,
1592 <    -560,  -560,   859,  -560,  -560,  -560,  -560,    56,  -560,  -560,
1593 <    -560,  -560,  -560,  -224,  -560,  -560,  -560,   561,  -560,  -560,
1594 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -169,  -560,  -560,
1595 <    -560,  -166,  -560,  -560,  -560,   781,  -560,  -560,  -560,  -560,
1596 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1597 <    -560,  -560,  -560,  -560,  -153,  -560,   600,  -560,  -560,  -560,
1598 <     -48,  -560,  -560,  -560,  -560,  -560,   629,  -560,  -560,  -560,
1599 <    -560,  -560,  -560,  -560,  -137,  -560,  -560,  -560,  -560,  -560,
1600 <    -560,   591,  -560,  -560,  -560,  -560,  -560,   961,  -560,  -560,
1601 <    -560,  -560,   557,  -560,  -560,  -560,  -560,  -560,  -138,  -560,
1602 <    -560,  -560,   578,  -560,  -560,  -560,  -560,  -130,  -560,  -560,
1603 <    -560,   797,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1604 <    -560,  -560,   -94,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1605 <    -560,  -560,  -560,  -103,  -560,   661,  -560,  -560,  -560,  -560,
1606 <    -560,   804,  -560,  -560,  -560,  -560,  1041,  -560,  -560,  -560,
1607 <    -560,  -560,  -560,   -90,  -560,   803,  -560,  -560,  -560,  -560,
1608 <     989,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1609 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1610 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1611 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1612 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    52,
1613 <    -560,  -560,  -560,    55,  -560,  -560,  -560,  -560,  -560,  -560,
1614 <    -560,   738,  -560,  -560,  -560,  -560,  -560,   -85,  -560,  -560,
1615 <    -560,  -560,  -560,   -88,  -560,  -560,  1075,  -560,  -560,  -560,
1616 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1617 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,   962,  -560,  -560,
2040 <    -560,  -560,  -560,  -560,  -560
1588 >      -1,     1,    26,   814,   815,  1074,  1075,    27,   221,   222,
1589 >     223,   224,    28,   265,   266,   267,   268,   269,   270,   271,
1590 >     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1591 >      29,    77,    78,    79,    80,    81,    30,    63,   492,   493,
1592 >     494,   495,    31,    70,   574,   575,   576,   577,   578,   579,
1593 >      32,   285,   286,   287,   288,   289,  1033,  1034,  1035,  1036,
1594 >    1037,  1216,  1296,  1297,    33,    64,   507,   508,   509,   510,
1595 >     511,   512,   513,   514,   515,   516,   517,   743,  1193,  1194,
1596 >     518,   738,  1164,  1165,    34,    53,   335,   336,   337,   338,
1597 >     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
1598 >     349,   350,   351,   616,  1060,  1061,    35,    61,   478,   723,
1599 >    1130,  1131,   479,   480,   481,  1134,   978,   979,   482,   483,
1600 >      36,    59,   456,   457,   458,   459,   460,   461,   462,   708,
1601 >    1116,  1117,   463,   464,   465,    37,    65,   523,   524,   525,
1602 >     526,   527,    38,   293,   294,   295,    39,    72,   587,   588,
1603 >     589,   590,   591,   799,  1234,  1235,    40,    68,   560,   561,
1604 >     562,   563,   782,  1211,  1212,    41,    54,   367,   368,   369,
1605 >     370,   371,   372,   373,   374,   375,   376,   377,   637,  1087,
1606 >    1088,   378,   379,   380,   381,   382,    42,    60,   469,   470,
1607 >     471,   472,    43,    55,   386,   387,   388,   389,    44,   118,
1608 >     119,   120,    45,    57,   396,   397,   398,   399,    46,   168,
1609 >     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1610 >     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1611 >     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1612 >     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1613 >     209,   426,   940,   941,   210,   425,   915,   916,   211,   212,
1614 >     213,   214,    47,    97,    98,    99,   100,   101,   102,   103,
1615 >     104,   105,   106,   107,   108,   109,   110,   111,   112,    48,
1616 >     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1617 >     248
1618   };
1619  
1620 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1621 <   positive, shift that token.  If negative, reduce the rule which
1622 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
2046 < #define YYTABLE_NINF -109
1620 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1621 >     positive, shift that token.  If negative, reduce the rule whose
1622 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1623   static const yytype_int16 yytable[] =
1624   {
1625 <     717,   613,   614,   465,   252,   335,   466,   593,   620,   508,
1626 <      70,   121,   393,   403,  1157,   465,   529,   499,   466,   716,
1627 <      49,   304,    50,   499,  1122,    54,   336,   337,   548,   243,
1628 <     338,   593,  1128,   121,   480,    47,    48,   236,   253,   530,
1629 <      71,   467,  1054,    70,   468,  1056,  1055,   304,   549,  1057,
1630 <      72,   254,    56,   467,    61,   509,   468,   481,   531,  1115,
1631 <      62,   236,   532,  1116,   255,   256,   257,   258,   975,   976,
1632 <     977,   708,   709,    71,   510,   269,   482,   710,   711,   511,
1633 <     483,   122,   394,    72,   259,   469,   795,   796,   243,    65,
1634 <    1015,   339,   340,   341,   671,   672,   342,   469,   584,   393,
1635 <     799,   800,   470,   122,   343,   270,   594,    66,   685,    73,
1636 <      69,   127,   404,   690,   470,   533,   344,   345,   128,   129,
1637 <     305,  1274,   865,   866,   701,   702,   244,   704,   118,   130,
1638 <     594,   550,   346,   347,   119,   714,   715,   131,   512,   719,
1639 <     534,   271,    73,   132,   395,   405,   305,   133,   134,   500,
1640 <     135,  1094,   309,  1095,   245,   500,   136,  1158,   484,   535,
1641 <     551,  1159,   348,   120,   716,   137,   138,   485,   486,   394,
1642 <     139,   126,   595,   232,   272,   140,   273,   274,   406,   141,
1643 <     142,    79,   501,   143,   862,   244,   144,   145,   501,  1016,
1644 <     233,  1123,   234,    80,   146,  1015,   595,   585,   584,  1129,
1645 <     147,   148,   487,   149,   150,   151,   152,   153,    81,    82,
1646 <     235,  1117,   548,   245,    83,  1118,    84,   275,   154,   276,
1647 <     277,   278,   279,   250,   536,   251,   155,   156,   157,   471,
1648 <     158,   395,   549,   159,   160,  1253,   280,   161,   302,  1254,
1649 <     303,   471,   537,   502,   785,   564,   641,   523,   162,   502,
1650 <     754,   313,   401,   661,   668,  1017,   731,   771,    85,    86,
1651 <     488,   310,   281,   586,   747,    87,    88,   403,   237,   777,
1652 <     527,   603,   818,   163,   282,   742,  -108,   164,   521,   311,
1653 <     529,   165,   166,   167,   168,   169,    89,    90,   601,   170,
1654 <     171,   364,   237,   365,  1016,   312,   366,   585,   519,   172,
1655 <    -108,    91,    92,   530,   604,   315,  1255,   316,   283,   284,
1656 <    1256,   852,    93,  1293,   367,   550,   582,   317,   524,   860,
1657 <     861,    94,   531,   318,   587,   252,   532,   508,  1018,   173,
1658 <     174,  1171,   175,   368,  1294,   269,  1295,   369,   176,   813,
1659 <     319,  1259,  1261,   177,   551,  1260,  1262,  1263,   178,  1096,
1660 <    1265,  1264,   463,  1267,  1266,   320,   370,  1268,   371,   253,
1661 <    1017,   321,  1097,   586,  1277,   270,   404,  1279,  1278,   322,
1662 <     372,  1280,   254,   509,  1281,   323,   127,  1296,  1282,   533,
1663 <     324,   325,   612,   128,   129,   255,   256,   257,   258,  1283,
1664 <     373,  1308,   510,  1284,   130,  1309,   326,   511,   327,   405,
1665 <     328,   271,   131,   329,   534,   259,   330,   988,   132,    95,
1666 <      96,    97,   133,   134,   331,   135,  1119,  1120,  1121,   332,
1667 <     374,   136,   333,   535,   587,   830,   831,   832,   833,   834,
1668 <     137,   138,   406,  1018,   272,   139,   273,   274,   608,   400,
1669 <     140,   566,   412,   413,   141,   142,   414,   415,   143,   375,
1670 <     416,   144,   145,  1297,  1298,   758,   512,   417,   418,   146,
1671 <     419,   420,   364,   421,   365,   147,   148,   366,   149,   150,
1672 <     151,   152,   153,   422,   423,   424,   425,   275,   376,   276,
1673 <     277,   278,   279,   154,  1175,   367,   426,   427,   536,  1299,
1674 <     428,   155,   156,   157,   429,   158,   280,   430,   159,   160,
1675 <     431,   432,   161,   433,   368,   434,   537,   435,   369,   436,
1676 <     480,  1176,   437,   162,  1071,  1072,  1073,  1074,  1075,   438,
1677 <     439,   441,   281,   605,   377,   443,   444,   370,   445,   371,
1678 <    1177,   446,   657,   481,   282,   447,  1178,   448,   163,   449,
1679 <     450,   372,   164,   451,   452,    79,   165,   166,   167,   168,
1680 <     169,   453,   482,  1179,   170,   171,   483,    80,   454,   455,
1681 <     456,   373,   457,   458,   172,   459,   460,   461,   283,   284,
1682 <     606,   462,    81,    82,   520,   525,   526,  1180,    83,   557,
1683 <      84,  1227,   558,   559,  1181,   560,   561,   562,   563,   567,
1684 <     568,   374,   569,   570,   173,   174,   571,   175,  1182,   572,
1685 <     573,   574,   575,   176,   576,  1241,   577,   578,   177,   579,
1686 <     580,   581,   600,   178,   607,   609,  1183,   610,  1184,  1185,
1687 <     375,   611,    85,    86,   612,   615,   616,   617,   618,    87,
1688 <      88,   619,   621,   622,   484,   623,   624,   626,   625,   627,
1689 <     643,   628,   663,   485,   486,   629,   630,   631,   632,   376,
1690 <      89,    90,   633,   634,   635,   636,   637,   638,  1228,   639,
1691 <     640,   644,   645,   646,   647,    91,    92,     2,     3,   649,
1692 <     650,  1186,     4,   651,   652,   653,    93,   654,   487,   655,
1693 <     656,  1187,  1242,   659,   660,    94,   665,   664,     5,  1229,
1694 <    1188,     6,     7,   666,  1189,   377,  1190,     8,   670,  1230,
1695 <     673,   674,   675,   676,   677,  1191,  1231,   679,   678,   680,
1696 <     335,   681,     9,  1243,  1275,  1192,    10,    11,  1232,    12,
1697 <    1233,  1234,   682,  1244,   915,    13,   683,   684,   687,   686,
1698 <    1245,   336,   337,  1235,   688,   338,   488,   689,   691,    14,
1699 <     692,   693,  1246,  1236,  1247,  1248,   694,   695,   696,    15,
1700 <      16,   697,   698,   699,   700,   703,   705,  1249,   938,   706,
1701 <     707,   712,   713,   716,   718,   720,    17,  1250,   721,   724,
1702 <     722,   723,   756,    95,    96,    97,   759,   726,   727,   729,
1703 <     730,   733,    18,   734,   779,   735,  1198,   737,   760,   738,
1704 <     780,   739,   740,   741,   749,   757,   339,   340,   341,   744,
1705 <     746,   342,   751,   752,   753,   761,   762,   763,   781,   343,
1706 <     764,   766,   767,   768,   770,   773,   782,   783,    19,   784,
1707 <     774,   344,   345,   787,   788,   775,   776,    20,    21,   786,
1708 <     789,    22,    23,   790,   791,   792,   793,   346,   347,   794,
1709 <     805,   803,   804,   806,   807,   808,   916,   917,   918,   919,
1710 <     920,   810,   809,   921,   922,   820,   812,   923,   924,   925,
1711 <     815,   816,   926,   821,   927,   928,   929,   348,   930,   931,
1712 <     932,   850,   822,   933,   851,   823,   824,   853,   854,   934,
1713 <     939,   940,   941,   942,   943,    24,   855,   944,   945,   856,
1714 <    1136,   946,   947,   948,   857,   825,   949,   826,   950,   951,
1715 <     952,   827,   953,   954,   955,   828,   829,   956,  1199,  1200,
1716 <    1201,  1202,  1203,   957,  1137,  1204,  1205,   837,   838,  1206,
1717 <    1207,  1208,   839,  1138,  1209,   840,  1210,  1211,  1212,  1139,
1718 <    1213,  1214,  1215,   858,   841,  1216,   842,   843,   859,   844,
1719 <     864,  1217,   845,   867,   869,  1140,   868,   846,   847,   870,
1720 <     871,   872,   873,   874,   998,   848,   849,   863,   875,   878,
1721 <     876,   877,   879,   880,   881,   883,   884,   882,   886,   989,
1722 <     887,  1141,   885,   888,   889,   890,   891,   892,   893,  1142,
1723 <     894,   895,   896,   897,   898,   899,   900,   901,   902,   903,
1724 <     904,   905,   906,   907,   908,   909,   910,   911,   912,   913,
1725 <     914,   937,   991,   960,   992,   994,   961,   962,   997,   995,
1726 <     963,   999,   964,   965,   966,   967,   968,  1000,   969,   970,
1727 <    1001,   971,  1143,   972,   973,   974,   980,   981,   982,   983,
1728 <     984,   985,   986,  1003,  1005,  1008,   987,   993,   990,   996,
1729 <    1144,  1002,  1004,  1006,  1009,  1007,  1010,  1013,  1014,  1024,
1730 <    1026,  1025,  1027,  1029,  1030,  1028,  1031,  1032,  1033,  1035,
1731 <    1036,  1037,  1063,  1034,  1065,  1038,  1039,  1040,  1067,  1269,
1732 <    1112,  1153,  1272,  1224,   314,  1172,  1225,  1041,  1042,  1043,
1733 <    1044,  1045,  1046,  1047,   583,  1310,  1048,  1049,  1050,  1051,
1734 <    1052,  1053,  1058,  1059,  1060,  1061,  1062,   522,  1066,   772,
1735 <    1064,  1069,  1068,  1070,  1076,  1077,  1078,  1079,  1080,  1081,
1736 <    1082,  1305,  1304,  1083,   755,  1291,  1084,  1270,   743,  1085,
1737 <    1086,  1164,  1087,  1088,  1089,  1090,  1091,  1289,  1092,  1093,
1738 <     642,  1100,  1101,  1102,  1103,  1104,  1105,  1106,  1107,  1108,
1739 <    1109,  1110,  1111,   778,  1306,   814,  1126,  1127,  1132,  1133,
1740 <    1134,  1135,  1147,  1148,  1307,  1149,  1150,  1151,  1152,  1156,
1741 <    1285,  1162,  1163,  1290,   402,   748,  1286,  1167,   464,  1165,
1742 <    1258,  1257,  1287,   334,   819,   658,  1168,  1288,     0,     0,
1743 <    1173,     0,  1170,  1174,  1195,  1196,  1197,  1220,  1221,  1222,
1744 <    1223,  1226,  1239,  1240,  1271,     0,  1276,  1292,  1273,  1302,
1745 <     662,  1303,     0,   528,     0,     0,     0,     0,     0,     0,
1746 <     732,   669,     0,     0,     0,     0,     0,     0,     0,     0,
1747 <       0,     0,   565,     0,     0,     0,     0,     0,     0,     0,
1625 >     843,   844,   598,   569,   569,   601,   602,   603,   583,   605,
1626 >     606,  1100,   218,  1029,  1085,  1101,   466,   519,   291,   283,
1627 >     393,    51,   116,   383,    73,   228,  1058,    52,   473,   116,
1628 >    1102,  1071,  1072,  1073,  1103,    56,   489,    58,   842,  1127,
1629 >    1237,   122,   297,   291,  1238,   489,   123,   124,   283,   125,
1630 >     126,    62,    73,    74,   127,   383,    66,   520,   229,   583,
1631 >     393,    75,   466,   128,   129,   130,   557,  1242,   230,   231,
1632 >     232,  1243,   131,   233,   234,   132,   133,   134,   235,   236,
1633 >     237,    74,   690,   135,   474,   691,   117,   384,    67,    75,
1634 >      49,    50,   475,   117,   476,   847,   848,   521,  1059,   658,
1635 >     136,   660,   661,   570,   570,   664,  1246,    69,   584,   219,
1636 >    1247,   137,   671,  1030,   138,   139,   490,   676,   292,   384,
1637 >     394,    71,   140,   557,    76,   490,   685,   686,   141,   842,
1638 >     142,   220,   143,   113,   144,  1266,   145,   146,   699,   700,
1639 >     701,   467,   522,   292,   114,   395,   249,   147,   385,   115,
1640 >     477,   319,    76,   148,   149,   121,   150,   151,   152,   584,
1641 >     394,   153,   215,   216,  1029,  1248,   558,   320,   321,  1249,
1642 >     571,   571,   322,   250,   352,   251,   353,   217,   354,  1259,
1643 >     385,  1128,   225,  1260,   218,   395,   154,   467,   572,   572,
1644 >    1129,  1261,   355,  -125,   226,  1262,   155,   156,   157,   158,
1645 >     159,   160,   161,   252,   573,   573,  1086,  1263,  1031,   298,
1646 >     491,  1264,   356,   253,  1270,   227,  1299,   323,  1271,   491,
1647 >    1300,   692,  -125,   558,   693,   447,   585,   282,   756,   586,
1648 >     357,  1032,   358,   793,   254,   324,   325,   468,   255,   284,
1649 >     359,   326,   487,   448,    82,   327,   256,   752,   496,   257,
1650 >     258,   328,   360,   162,   163,   537,   164,   165,   725,   391,
1651 >     329,   330,   331,   449,  1030,   166,   497,   167,   284,    83,
1652 >      84,   445,   332,   581,   361,   733,    85,   585,   566,   259,
1653 >     586,   219,   301,   468,   559,   649,   498,   290,   296,   801,
1654 >     655,   450,   718,   333,   568,   260,   362,   299,   261,   262,
1655 >     263,   300,   303,   220,    86,    87,    88,    89,   304,   473,
1656 >     519,   305,   306,   831,   499,   363,   834,   307,   836,    90,
1657 >      91,    92,   308,   841,   364,   309,    93,    94,    95,   496,
1658 >      96,   447,  1239,  1240,  1241,   310,   311,   365,   334,   312,
1659 >     313,   559,   314,   451,   315,   316,   264,   497,   500,   448,
1660 >     520,   452,   453,   783,   390,   596,   400,   597,   401,  1031,
1661 >     402,   403,   404,   405,   406,   474,   501,   498,   407,   449,
1662 >     408,   454,   409,   475,   366,   476,   555,   410,   484,   411,
1663 >     412,   628,  1032,   807,   808,   809,   810,   811,   812,   813,
1664 >     521,   413,   414,   415,  1217,   499,   539,   450,   502,   503,
1665 >    1139,   416,   122,   417,   645,   418,   592,   123,   124,   419,
1666 >     125,   126,   420,   421,   422,   127,  1140,  1141,   423,   424,
1667 >     427,   428,   429,  1106,   128,   129,   130,  1142,   430,   500,
1668 >     431,   477,   432,   131,   433,   522,   132,   133,   134,   434,
1669 >     435,   436,   437,   438,   135,   439,   455,   501,  1107,   451,
1670 >     504,   440,   441,   442,   443,   714,   444,   452,   453,   485,
1671 >     486,   136,   528,   529,   530,  1143,  1144,   531,  1145,   505,
1672 >     532,   533,   137,   506,   317,   138,   139,   454,   746,   502,
1673 >     503,  1108,   534,   140,   535,   536,   540,   541,   542,   141,
1674 >     543,   142,   544,   143,  1146,   144,   545,   145,   146,   546,
1675 >     547,   548,  1147,   549,   550,   551,   552,   249,   147,   553,
1676 >    1109,  1110,   554,   564,   148,   149,  1111,   150,   151,   152,
1677 >     565,   580,   153,   593,   594,  1148,   595,  1149,  1150,   597,
1678 >     599,   504,   600,   604,   250,   607,   251,   608,   609,   228,
1679 >     610,  1112,   611,   612,   613,  1151,   651,   154,   614,   615,
1680 >     505,   630,   455,   617,   506,   618,  1113,   155,   156,   157,
1681 >     158,   159,   160,   161,   252,   619,   620,   352,  1152,   353,
1682 >     621,   354,   229,  1153,   253,   622,   623,  1154,   624,   625,
1683 >     626,  1155,   230,   231,   232,   355,  1156,   233,   234,  1267,
1684 >    1157,   627,   235,   236,   237,   254,   631,   632,   633,   255,
1685 >     634,  1158,   635,  1159,  1160,   356,  1161,   256,   636,   638,
1686 >     257,   258,   639,   640,   162,   163,  1162,   164,   165,  1114,
1687 >     641,   642,   643,   357,  1163,   358,   166,   644,   167,   657,
1688 >     647,   319,   652,   359,     2,     3,  1201,  1115,     4,   648,
1689 >     259,   659,   653,   654,   662,   360,   663,   320,   321,   665,
1690 >       5,   666,   322,     6,   667,     7,   260,   668,   669,   261,
1691 >     262,   263,   670,     8,   672,   673,   674,   361,  1048,  1049,
1692 >    1050,  1051,  1052,  1053,  1054,     9,   675,   677,   678,   679,
1693 >     680,    10,    11,   917,  1288,   681,  1289,   682,   683,   362,
1694 >     918,   684,   919,   920,   687,   688,  1202,   323,   689,   694,
1695 >      12,   695,   696,   697,    13,   698,   702,   264,   363,   703,
1696 >     704,   705,   727,   728,    14,   324,   325,   364,   706,   754,
1697 >     755,   326,   720,   757,   758,   327,   707,  1203,  1170,  1290,
1698 >     365,   328,   709,    15,    16,  1171,  1204,  1172,  1173,   729,
1699 >     329,   330,   331,   710,   711,  1205,  1291,   712,   713,    17,
1700 >     716,   717,   332,   721,   722,   724,   730,   731,   732,   735,
1701 >     736,   737,   759,   739,   740,   748,    18,   366,   894,  1206,
1702 >     760,  1207,  1208,   333,   741,   895,   742,   744,    19,    20,
1703 >     745,   763,   749,   750,  1209,  1292,  1293,   751,   761,   762,
1704 >     764,   765,  1210,   766,   767,   770,   768,   769,   771,   772,
1705 >     773,   774,   775,    21,   776,   779,   921,   922,   923,   777,
1706 >     780,   924,   925,   778,   926,   927,    22,   928,   334,   929,
1707 >    1224,    23,   930,   781,   931,   932,    24,   785,   786,    25,
1708 >     933,   795,   788,   787,   934,   796,  1294,   789,   935,   936,
1709 >     937,   790,  1295,   791,   792,   938,   797,   803,   804,   805,
1710 >     939,  1174,  1175,  1176,   798,   800,  1177,  1178,   806,  1179,
1711 >    1180,   816,  1181,   817,  1182,   818,   819,  1183,   829,  1184,
1712 >    1185,   830,   820,   821,   822,  1186,   823,   824,   825,  1187,
1713 >    1225,   826,   827,  1188,  1189,  1190,   828,   832,   833,   835,
1714 >    1191,   896,   897,   898,   837,  1192,   899,   900,   838,   901,
1715 >     902,   839,   903,   840,   904,   842,   846,   905,   849,   906,
1716 >     907,  1226,    82,   845,   850,   908,   856,   851,   963,   909,
1717 >    1227,   852,   854,   910,   911,   912,   853,   855,   857,  1228,
1718 >     913,   861,   858,   859,   860,   914,   862,    83,    84,   863,
1719 >     864,   865,   866,   867,    85,   868,   869,   870,   871,   872,
1720 >     873,   874,   875,  1229,   876,  1230,  1231,   877,   878,   879,
1721 >     880,   881,   882,   883,   884,   885,   886,   887,  1232,   888,
1722 >     889,   890,    86,    87,    88,    89,  1233,   891,   962,   892,
1723 >     893,   942,   943,   944,   945,   946,   947,    90,    91,    92,
1724 >     948,   949,   965,   950,    93,    94,    95,   951,    96,   952,
1725 >     966,   953,   954,   955,   956,   957,   958,   959,   960,   967,
1726 >     968,   961,   969,   971,   972,   970,   964,   973,   974,   975,
1727 >     980,   976,   977,   983,   984,   981,   986,   989,   987,   982,
1728 >     985,   990,   991,   992,   988,   993,   994,   794,   995,   997,
1729 >     998,   996,   999,  1000,  1001,  1025,  1038,  1002,  1039,  1040,
1730 >    1003,  1041,  1004,  1005,  1006,  1007,  1008,  1009,  1010,  1011,
1731 >    1012,  1013,  1014,  1015,  1016,  1017,  1018,  1019,  1020,  1021,
1732 >    1022,  1023,  1024,  1044,  1027,  1028,  1026,  1042,  1043,  1045,
1733 >    1046,  1047,  1055,  1056,  1133,  1057,  1062,  1063,  1064,  1065,
1734 >    1066,  1067,  1068,  1069,  1070,  1076,  1077,  1078,  1250,  1079,
1735 >    1080,  1081,  1082,  1083,  1084,  1089,  1090,  1091,  1092,  1093,
1736 >    1094,  1095,  1096,  1097,  1098,  1265,  1276,  1099,  1278,  1277,
1737 >    1280,   302,  1104,  1105,  1279,  1281,  1118,  1119,  1120,   734,
1738 >    1218,  1121,  1301,   747,  1122,  1123,  1124,  1132,  1282,  1125,
1739 >    1126,  1283,  1272,  1275,   726,  1274,  1251,  1135,   715,   802,
1740 >    1136,  1298,   753,  1137,   784,  1284,  1138,  1273,  1166,  1167,
1741 >    1168,  1169,  1195,  1196,  1197,  1198,  1199,  1200,  1213,   719,
1742 >     392,  1219,  1214,  1215,  1220,  1221,  1222,  1223,  1236,   446,
1743 >    1252,   488,   656,  1245,   629,   318,  1253,  1254,  1255,  1256,
1744 >    1257,  1268,  1258,  1269,  1285,  1286,  1287,  1244,     0,     0,
1745 >       0,     0,     0,     0,     0,   538,     0,   556,     0,     0,
1746 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1747 >       0,     0,     0,     0,     0,     0,     0,     0,   567,     0,
1748 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1749         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1750 +       0,     0,   582,     0,     0,     0,     0,     0,     0,     0,
1751         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1752         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1753 <       0,     0,     0,     0,     0,     0,     0,   602
1753 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1754 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1755 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1756 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1757 >       0,     0,     0,     0,     0,     0,     0,     0,   646,     0,
1758 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1759 >       0,     0,     0,     0,     0,     0,     0,     0,   650
1760   };
1761  
2178 #define yypact_value_is_default(yystate) \
2179  ((yystate) == (-560))
2180
2181 #define yytable_value_is_error(yytable_value) \
2182  YYID (0)
2183
1762   static const yytype_int16 yycheck[] =
1763   {
1764 <     456,   320,   321,     1,     1,     1,     4,     1,   327,     1,
1765 <       1,     1,     1,     1,    61,     1,     1,     1,     4,   110,
1766 <     243,     1,   243,     1,    11,   243,    22,    23,     1,     1,
1767 <      26,     1,    11,     1,     1,   241,   242,     1,    35,    24,
1768 <      31,    39,   241,     1,    42,   241,   245,     1,    21,   245,
1769 <      41,    48,   243,    39,   243,    47,    42,    24,    43,   241,
1770 <     243,     1,    47,   245,    61,    62,    63,    64,    14,    15,
1771 <      16,   176,   177,    31,    66,     1,    43,   176,   177,    71,
1772 <      47,    71,    71,    41,    81,    83,   149,   150,     1,   243,
1773 <       1,    87,    88,    89,   413,   414,    92,    83,     1,     1,
1774 <     149,   150,   100,    71,   100,    31,   100,   243,   427,   100,
1775 <     243,     1,   100,   432,   100,   100,   112,   113,     8,     9,
1776 <     100,   212,   197,   198,   443,   444,    98,   446,   243,    19,
1777 <     100,   104,   128,   129,   243,   454,   455,    27,   130,   458,
1778 <     125,    67,   100,    33,   133,   133,   100,    37,    38,   133,
1779 <      40,    10,   241,    12,   126,   133,    46,   204,   125,   144,
1780 <     133,   208,   158,   243,   110,    55,    56,   134,   135,    71,
1781 <      60,   243,   166,   243,   100,    65,   102,   103,   166,    69,
1782 <      70,     1,   166,    73,   640,    98,    76,    77,   166,   100,
1783 <     243,   178,   243,    13,    84,     1,   166,   100,     1,   178,
1784 <      90,    91,   169,    93,    94,    95,    96,    97,    28,    29,
1785 <     243,   241,     1,   126,    34,   245,    36,   143,   108,   145,
1786 <     146,   147,   148,   243,   209,   243,   116,   117,   118,   227,
1787 <     120,   133,    21,   123,   124,   241,   162,   127,   243,   245,
1788 <     243,   227,   227,   227,   563,   242,   242,   240,   138,   227,
1789 <     242,   242,   242,   242,   242,   166,   242,   242,    78,    79,
1790 <     227,   244,   188,   166,   242,    85,    86,     1,   232,   242,
1791 <     242,   131,   242,   163,   200,   242,   240,   167,   242,   244,
1792 <       1,   171,   172,   173,   174,   175,   106,   107,   242,   179,
1793 <     180,     1,   232,     3,   100,   244,     6,   100,   241,   189,
1794 <     240,   121,   122,    24,   131,   244,   241,   244,   234,   235,
1795 <     245,   630,   132,    51,    24,   104,   242,   244,   241,   638,
1796 <     639,   141,    43,   244,   227,     1,    47,     1,   239,   219,
1797 <     220,   242,   222,    43,    72,     1,    74,    47,   228,   242,
1798 <     244,   241,   241,   233,   133,   245,   245,   241,   238,   208,
1799 <     241,   245,   242,   241,   245,   244,    66,   245,    68,    35,
1800 <     166,   244,   221,   166,   241,    31,   100,   241,   245,   244,
1801 <      80,   245,    48,    47,   241,   244,     1,   115,   245,   100,
1802 <     244,   244,   110,     8,     9,    61,    62,    63,    64,   241,
1803 <     100,   241,    66,   245,    19,   245,   244,    71,   244,   133,
1804 <     244,    67,    27,   244,   125,    81,   244,   726,    33,   229,
1805 <     230,   231,    37,    38,   244,    40,   975,   976,   977,   244,
1806 <     130,    46,   242,   144,   227,   153,   154,   155,   156,   157,
1807 <      55,    56,   166,   239,   100,    60,   102,   103,   110,   244,
1808 <      65,   241,   244,   244,    69,    70,   244,   244,    73,   159,
1809 <     244,    76,    77,   191,   192,   243,   130,   244,   244,    84,
1810 <     244,   244,     1,   244,     3,    90,    91,     6,    93,    94,
1811 <      95,    96,    97,   244,   244,   244,   244,   143,   188,   145,
1812 <     146,   147,   148,   108,     5,    24,   244,   244,   209,   227,
1813 <     244,   116,   117,   118,   244,   120,   162,   244,   123,   124,
1814 <     244,   244,   127,   244,    43,   244,   227,   244,    47,   244,
1815 <       1,    32,   244,   138,   830,   831,   832,   833,   834,   244,
1816 <     244,   244,   188,   131,   234,   244,   244,    66,   244,    68,
1817 <      51,   244,   242,    24,   200,   244,    57,   244,   163,   244,
1818 <     244,    80,   167,   244,   244,     1,   171,   172,   173,   174,
1819 <     175,   244,    43,    74,   179,   180,    47,    13,   244,   244,
1820 <     244,   100,   244,   244,   189,   244,   244,   244,   234,   235,
1821 <     241,   244,    28,    29,   244,   244,   244,    98,    34,   244,
1822 <      36,    74,   244,   244,   105,   244,   244,   244,   244,   244,
1823 <     244,   130,   244,   244,   219,   220,   244,   222,   119,   244,
1824 <     244,   244,   244,   228,   244,    74,   244,   244,   233,   244,
1825 <     244,   244,   244,   238,   176,   110,   137,   176,   139,   140,
1826 <     159,   176,    78,    79,   110,   110,   110,   176,   176,    85,
1827 <      86,   110,   176,   176,   125,   176,   176,   241,   176,   241,
1828 <     241,   244,   131,   134,   135,   244,   244,   244,   244,   188,
1829 <     106,   107,   244,   244,   244,   244,   244,   244,   151,   244,
1830 <     244,   244,   244,   244,   244,   121,   122,     0,     1,   244,
1831 <     244,   192,     5,   244,   244,   244,   132,   244,   169,   244,
1832 <     244,   202,   151,   244,   244,   141,   244,   241,    21,   182,
1833 <     211,    24,    25,   244,   215,   234,   217,    30,   176,   192,
1834 <     110,   176,   176,   110,   131,   226,   199,   110,   176,   110,
1835 <       1,   110,    45,   182,  1170,   236,    49,    50,   211,    52,
1836 <     213,   214,   176,   192,    61,    58,   176,   176,   176,   131,
1837 <     199,    22,    23,   226,   110,    26,   227,   110,   110,    72,
1838 <     110,   131,   211,   236,   213,   214,   110,   110,   176,    82,
1839 <      83,   176,   244,   176,   244,   176,   176,   226,    61,   176,
1840 <     176,   176,   176,   110,   131,   176,    99,   236,   176,   241,
1841 <     176,   176,   176,   229,   230,   231,   131,   244,   244,   244,
1842 <     244,   241,   115,   244,   176,   244,    61,   244,   131,   244,
1843 <     176,   244,   244,   244,   241,   241,    87,    88,    89,   244,
1844 <     244,    92,   244,   244,   244,   241,   241,   244,   176,   100,
1845 <     244,   244,   244,   244,   244,   241,   131,   176,   151,   176,
1846 <     244,   112,   113,   131,   176,   244,   244,   160,   161,   241,
1847 <     131,   164,   165,   131,   131,   131,   131,   128,   129,   131,
1848 <     110,   131,   131,   131,   131,   241,   183,   184,   185,   186,
1849 <     187,   244,   241,   190,   191,   131,   244,   194,   195,   196,
1850 <     241,   244,   199,   241,   201,   202,   203,   158,   205,   206,
1851 <     207,   110,   241,   210,   110,   241,   241,   110,   110,   216,
1852 <     183,   184,   185,   186,   187,   218,   110,   190,   191,   110,
1853 <      20,   194,   195,   196,   131,   241,   199,   241,   201,   202,
1854 <     203,   241,   205,   206,   207,   241,   241,   210,   183,   184,
1855 <     185,   186,   187,   216,    44,   190,   191,   241,   241,   194,
1856 <     195,   196,   241,    53,   199,   241,   201,   202,   203,    59,
1857 <     205,   206,   207,   110,   241,   210,   241,   241,   110,   241,
1858 <     131,   216,   241,   131,   244,    75,   176,   241,   241,   131,
1859 <     131,   131,   131,   110,   110,   241,   241,   241,   131,   241,
1860 <     131,   131,   131,   131,   241,   131,   131,   241,   241,   176,
1861 <     241,   101,   244,   241,   241,   241,   241,   241,   241,   109,
1862 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
1863 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
1864 <     241,   241,   131,   241,   131,   131,   241,   241,   131,   176,
1865 <     241,   131,   241,   241,   241,   241,   241,   131,   241,   241,
1866 <     131,   241,   152,   241,   241,   241,   241,   241,   241,   241,
1867 <     241,   241,   241,   131,   131,   131,   244,   241,   244,   244,
1868 <     170,   241,   244,   241,   131,   244,   110,   241,   241,   241,
1869 <     131,   241,   176,   131,   131,   244,   131,   244,   131,   131,
1870 <     131,   131,   131,   241,   131,   241,   241,   241,   131,   110,
1871 <     136,   136,   131,  1055,    74,  1019,  1057,   241,   241,   241,
1872 <     241,   241,   241,   241,   285,  1309,   241,   241,   241,   241,
1873 <     241,   241,   241,   241,   241,   241,   241,   238,   241,   538,
1874 <     244,   241,   244,   241,   241,   241,   241,   241,   241,   241,
1875 <     241,  1280,  1278,   241,   514,  1268,   241,  1165,   489,   241,
1876 <     241,   181,   241,   241,   241,   241,   241,  1264,   241,   241,
1877 <     349,   241,   241,   241,   241,   241,   241,   241,   241,   241,
1878 <     241,   241,   241,   552,  1282,   588,   241,   241,   241,   241,
1879 <     241,   241,   241,   241,  1284,   241,   241,   241,   241,   241,
1880 <    1254,   241,   241,  1266,   123,   504,  1256,   241,   179,   245,
1881 <    1118,  1116,  1260,    98,   596,   378,   244,  1262,    -1,    -1,
1882 <     241,    -1,   244,   241,   241,   241,   241,   241,   241,   241,
1883 <     241,   241,   241,   241,   241,    -1,   241,   241,   244,   241,
1884 <     396,   241,    -1,   246,    -1,    -1,    -1,    -1,    -1,    -1,
1885 <     472,   408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1886 <      -1,    -1,   260,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1764 >     626,   627,   304,     1,     1,   307,   308,   309,     1,   311,
1765 >     312,   230,     1,     1,     8,   234,     1,     1,     1,     1,
1766 >       1,   232,     1,     1,     1,     1,    53,   232,     1,     1,
1767 >     230,    11,    12,    13,   234,   232,     1,   232,   109,    49,
1768 >     230,     1,   230,     1,   234,     1,     6,     7,     1,     9,
1769 >      10,   232,     1,    30,    14,     1,   232,    41,    34,     1,
1770 >       1,    38,     1,    23,    24,    25,     1,   230,    44,    45,
1771 >      46,   234,    32,    49,    50,    35,    36,    37,    54,    55,
1772 >      56,    30,   212,    43,    57,   215,    65,    65,   232,    38,
1773 >     230,   231,    65,    65,    67,   179,   180,    81,   125,   401,
1774 >      60,   403,   404,   101,   101,   407,   230,   232,   101,    98,
1775 >     234,    71,   414,   101,    74,    75,    81,   419,   101,    65,
1776 >     101,   232,    82,     1,   101,    81,   428,   429,    88,   109,
1777 >      90,   120,    92,   232,    94,   206,    96,    97,   440,   441,
1778 >     442,   126,   126,   101,   232,   126,     1,   107,   126,   232,
1779 >     123,     1,   101,   113,   114,   232,   116,   117,   118,   101,
1780 >     101,   121,   232,   232,     1,   230,   101,    17,    18,   234,
1781 >     168,   168,    22,    28,     1,    30,     3,   232,     5,   230,
1782 >     126,   191,   232,   234,     1,   126,   146,   126,   186,   186,
1783 >     200,   230,    19,   175,   232,   234,   156,   157,   158,   159,
1784 >     160,   161,   162,    58,   202,   202,   200,   230,   196,   233,
1785 >     175,   234,    39,    68,   230,   232,   230,    67,   234,   175,
1786 >     234,   212,   175,   101,   215,     1,   219,   232,   530,   222,
1787 >      57,   219,    59,   231,    89,    85,    86,   222,    93,   221,
1788 >      67,    91,   231,    19,     1,    95,   101,   231,     1,   104,
1789 >     105,   101,    79,   213,   214,   231,   216,   217,   231,   231,
1790 >     110,   111,   112,    39,   101,   225,    19,   227,   221,    26,
1791 >      27,   231,   122,   231,   101,   231,    33,   219,   231,   134,
1792 >     222,    98,   231,   222,   219,   231,    39,   232,   232,   231,
1793 >     231,    67,   231,   143,   175,   150,   123,   233,   153,   154,
1794 >     155,   233,   233,   120,    61,    62,    63,    64,   233,     1,
1795 >       1,   233,   233,   615,    67,   142,   618,   233,   620,    76,
1796 >      77,    78,   233,   625,   151,   233,    83,    84,    85,     1,
1797 >      87,     1,  1071,  1072,  1073,   233,   233,   164,   188,   233,
1798 >     233,   219,   233,   119,   233,   233,   201,    19,   101,    19,
1799 >      41,   127,   128,   231,   233,   109,   233,   109,   233,   196,
1800 >     233,   233,   233,   233,   233,    57,   119,    39,   233,    39,
1801 >     233,   147,   233,    65,   201,    67,   231,   233,   230,   233,
1802 >     233,   231,   219,   135,   136,   137,   138,   139,   140,   141,
1803 >      81,   233,   233,   233,   231,    67,   230,    67,   151,   152,
1804 >       4,   233,     1,   233,   231,   233,   124,     6,     7,   233,
1805 >       9,    10,   233,   233,   233,    14,    20,    21,   233,   233,
1806 >     233,   233,   233,    15,    23,    24,    25,    31,   233,   101,
1807 >     233,   123,   233,    32,   233,   126,    35,    36,    37,   233,
1808 >     233,   233,   233,   233,    43,   233,   222,   119,    40,   119,
1809 >     203,   233,   233,   233,   233,   231,   233,   127,   128,   233,
1810 >     233,    60,   233,   233,   233,    69,    70,   233,    72,   222,
1811 >     233,   233,    71,   226,   231,    74,    75,   147,   231,   151,
1812 >     152,    73,   233,    82,   233,   233,   233,   233,   233,    88,
1813 >     233,    90,   233,    92,    98,    94,   233,    96,    97,   233,
1814 >     233,   233,   106,   233,   233,   233,   233,     1,   107,   233,
1815 >     102,   103,   233,   230,   113,   114,   108,   116,   117,   118,
1816 >     233,   233,   121,   124,   124,   129,   230,   131,   132,   109,
1817 >     212,   203,   109,   109,    28,   109,    30,   109,   109,     1,
1818 >     109,   133,   230,   230,   233,   149,   124,   146,   233,   233,
1819 >     222,   230,   222,   233,   226,   233,   148,   156,   157,   158,
1820 >     159,   160,   161,   162,    58,   233,   233,     1,   172,     3,
1821 >     233,     5,    34,   177,    68,   233,   233,   181,   233,   233,
1822 >     233,   185,    44,    45,    46,    19,   190,    49,    50,  1215,
1823 >     194,   233,    54,    55,    56,    89,   233,   233,   233,    93,
1824 >     233,   205,   233,   207,   208,    39,   210,   101,   233,   233,
1825 >     104,   105,   233,   233,   213,   214,   220,   216,   217,   211,
1826 >     233,   233,   233,    57,   228,    59,   225,   233,   227,   212,
1827 >     233,     1,   230,    67,     0,     1,    72,   229,     4,   233,
1828 >     134,   109,   233,   233,   212,    79,   109,    17,    18,   212,
1829 >      16,   109,    22,    19,   109,    21,   150,   109,   212,   153,
1830 >     154,   155,   212,    29,   109,   109,   109,   101,   807,   808,
1831 >     809,   810,   811,   812,   813,    41,   109,   109,   109,   109,
1832 >     109,    47,    48,    42,    70,   212,    72,   233,   233,   123,
1833 >      49,   212,    51,    52,   212,   212,   132,    67,   212,   212,
1834 >      66,   212,   212,   212,    70,   109,   212,   201,   142,   109,
1835 >     230,   230,   124,   124,    80,    85,    86,   151,   233,   212,
1836 >     212,    91,   230,   124,   212,    95,   233,   163,    42,   115,
1837 >     164,   101,   233,    99,   100,    49,   172,    51,    52,   230,
1838 >     110,   111,   112,   233,   233,   181,   132,   233,   233,   115,
1839 >     233,   233,   122,   233,   233,   233,   230,   233,   233,   230,
1840 >     233,   233,   124,   233,   233,   230,   132,   201,    42,   205,
1841 >     212,   207,   208,   143,   233,    49,   233,   233,   144,   145,
1842 >     233,   230,   233,   233,   220,   171,   172,   233,   212,   212,
1843 >     109,   124,   228,   212,   124,   124,   109,   109,   124,   124,
1844 >     124,   124,   124,   169,   124,   230,   165,   166,   167,   124,
1845 >     230,   170,   171,   124,   173,   174,   182,   176,   188,   178,
1846 >      72,   187,   181,   233,   183,   184,   192,   212,   230,   195,
1847 >     189,   124,   230,   232,   193,   230,   222,   233,   197,   198,
1848 >     199,   233,   228,   233,   233,   204,   230,   230,   230,   230,
1849 >     209,   165,   166,   167,   233,   233,   170,   171,   230,   173,
1850 >     174,   230,   176,   230,   178,   230,   230,   181,   109,   183,
1851 >     184,   109,   230,   230,   230,   189,   230,   230,   230,   193,
1852 >     132,   230,   230,   197,   198,   199,   230,   233,   109,   109,
1853 >     204,   165,   166,   167,   124,   209,   170,   171,   109,   173,
1854 >     174,   109,   176,   109,   178,   109,   124,   181,   124,   183,
1855 >     184,   163,     1,   230,   212,   189,   109,   124,   212,   193,
1856 >     172,   124,   124,   197,   198,   199,   233,   124,   124,   181,
1857 >     204,   230,   124,   124,   124,   209,   124,    26,    27,   124,
1858 >     230,   230,   124,   124,    33,   230,   230,   230,   230,   230,
1859 >     230,   230,   230,   205,   230,   207,   208,   230,   230,   230,
1860 >     230,   230,   230,   230,   230,   230,   230,   230,   220,   230,
1861 >     230,   230,    61,    62,    63,    64,   228,   230,   124,   230,
1862 >     230,   230,   230,   230,   230,   230,   230,    76,    77,    78,
1863 >     230,   230,   124,   230,    83,    84,    85,   230,    87,   230,
1864 >     109,   230,   230,   230,   230,   230,   230,   230,   230,   124,
1865 >     124,   230,   124,   124,   124,   230,   233,   230,   124,   124,
1866 >     230,   233,   109,   124,   124,   230,   124,   124,   212,   230,
1867 >     230,   124,   124,   212,   233,   233,   124,   574,   124,   124,
1868 >     124,   230,   124,   230,   230,   124,   124,   230,   124,   124,
1869 >     230,   124,   230,   230,   230,   230,   230,   230,   230,   230,
1870 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1871 >     230,   230,   230,   124,   230,   230,   233,   230,   230,   233,
1872 >     124,   230,   230,   230,   234,   230,   230,   230,   230,   230,
1873 >     230,   230,   230,   230,   230,   230,   230,   230,   109,   230,
1874 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1875 >     230,   230,   230,   230,   230,   124,   130,   230,   130,   132,
1876 >     130,    77,   230,   230,   132,   130,   230,   230,   230,   492,
1877 >    1033,   230,  1300,   507,   230,   230,   230,   218,  1260,   230,
1878 >     230,  1262,  1238,  1249,   479,  1247,  1133,   230,   456,   587,
1879 >     230,  1271,   523,   230,   560,  1264,   230,  1243,   230,   230,
1880 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   469,
1881 >     118,   230,   233,   233,   230,   230,   230,   230,   230,   168,
1882 >     230,   221,   396,  1103,   335,    97,   235,   235,   235,   235,
1883 >     235,   233,   235,   230,   230,   230,   230,  1101,    -1,    -1,
1884 >      -1,    -1,    -1,    -1,    -1,   238,    -1,   265,    -1,    -1,
1885 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1886 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   285,    -1,
1887 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1888 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1889 >      -1,    -1,   293,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1890 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1891 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1892 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1893        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1894        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1895        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1896 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   306
1896 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,
1897 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1898 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   386
1899   };
1900  
1901 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1902 <   symbol of state STATE-NUM.  */
1901 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1902 >     symbol of state STATE-NUM.  */
1903   static const yytype_uint16 yystos[] =
1904   {
1905 <       0,   247,     0,     1,     5,    21,    24,    25,    30,    45,
1906 <      49,    50,    52,    58,    72,    82,    83,    99,   115,   151,
1907 <     160,   161,   164,   165,   218,   248,   253,   258,   280,   286,
1908 <     300,   318,   335,   349,   364,   371,   375,   385,   394,   414,
1909 <     424,   430,   434,   444,   504,   520,   541,   241,   242,   243,
1910 <     243,   319,   395,   425,   243,   435,   243,   505,   350,   415,
1911 <     336,   243,   243,   301,   365,   243,   243,   376,   386,   243,
1912 <       1,    31,    41,   100,   281,   282,   283,   284,   285,     1,
1913 <      13,    28,    29,    34,    36,    78,    79,    85,    86,   106,
1914 <     107,   121,   122,   132,   141,   229,   230,   231,   521,   522,
1915 <     523,   524,   525,   526,   527,   528,   529,   530,   531,   532,
1916 <     533,   534,   535,   536,   537,   538,   539,   540,   243,   243,
1917 <     243,     1,    71,   431,   432,   433,   243,     1,     8,     9,
1918 <      19,    27,    33,    37,    38,    40,    46,    55,    56,    60,
1919 <      65,    69,    70,    73,    76,    77,    84,    90,    91,    93,
1920 <      94,    95,    96,    97,   108,   116,   117,   118,   120,   123,
1921 <     124,   127,   138,   163,   167,   171,   172,   173,   174,   175,
1922 <     179,   180,   189,   219,   220,   222,   228,   233,   238,   445,
1923 <     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
1924 <     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1925 <     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1926 <     476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
1927 <     486,   487,   488,   489,   490,   491,   492,   496,   500,   501,
1928 <     502,   503,   243,   243,   243,   243,     1,   232,   287,   288,
1929 <     289,   290,   291,     1,    98,   126,   254,   255,   256,   257,
1930 <     243,   243,     1,    35,    48,    61,    62,    63,    64,    81,
1931 <     542,   543,   544,   545,   546,   547,   548,   549,   550,     1,
1932 <      31,    67,   100,   102,   103,   143,   145,   146,   147,   148,
1933 <     162,   188,   200,   234,   235,   259,   260,   261,   262,   267,
1934 <     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1935 <     278,   279,   243,   243,     1,   100,   372,   373,   374,   241,
1936 <     244,   244,   244,   242,   282,   244,   244,   244,   244,   244,
1937 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
1938 <     244,   244,   244,   242,   522,     1,    22,    23,    26,    87,
1939 <      88,    89,    92,   100,   112,   113,   128,   129,   158,   320,
1940 <     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
1941 <     331,   332,   333,   334,     1,     3,     6,    24,    43,    47,
1942 <      66,    68,    80,   100,   130,   159,   188,   234,   396,   397,
1943 <     398,   399,   400,   401,   402,   403,   404,   405,   409,   410,
1944 <     411,   412,   413,     1,    71,   133,   426,   427,   428,   429,
1945 <     244,   242,   432,     1,   100,   133,   166,   436,   440,   441,
1946 <     442,   443,   244,   244,   244,   244,   244,   244,   244,   244,
1947 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
1948 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
1949 <     497,   244,   493,   244,   244,   244,   244,   244,   244,   244,
1950 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
1951 <     244,   244,   244,   242,   446,     1,     4,    39,    42,    83,
1952 <     100,   227,   506,   507,   508,   509,   510,   514,   515,   516,
1953 <       1,    24,    43,    47,   125,   134,   135,   169,   227,   351,
1954 <     352,   353,   354,   355,   356,   357,   361,   362,   363,     1,
1955 <     133,   166,   227,   416,   420,   421,   422,   423,     1,    47,
1956 <      66,    71,   130,   337,   341,   342,   343,   347,   348,   241,
1957 <     244,   242,   288,   240,   241,   244,   244,   242,   255,     1,
1958 <      24,    43,    47,   100,   125,   144,   209,   227,   302,   303,
1959 <     304,   305,   306,   307,   308,   309,   310,   314,     1,    21,
1960 <     104,   133,   366,   367,   368,   369,   370,   244,   244,   244,
1961 <     244,   244,   244,   244,   242,   543,   241,   244,   244,   244,
1962 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
1963 <     244,   244,   242,   260,     1,   100,   166,   227,   377,   378,
1964 <     379,   380,   381,     1,   100,   166,   387,   388,   389,   390,
1965 <     244,   242,   373,   131,   131,   131,   241,   176,   110,   110,
1966 <     176,   176,   110,   250,   250,   110,   110,   176,   176,   110,
1967 <     250,   176,   176,   176,   176,   176,   241,   241,   244,   244,
1968 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
1969 <     244,   242,   321,   241,   244,   244,   244,   244,   406,   244,
1970 <     244,   244,   244,   244,   244,   244,   244,   242,   397,   244,
1971 <     244,   242,   427,   131,   241,   244,   244,   437,   242,   441,
1972 <     176,   250,   250,   110,   176,   176,   110,   131,   176,   110,
1973 <     110,   110,   176,   176,   176,   250,   131,   176,   110,   110,
1974 <     250,   110,   110,   131,   110,   110,   176,   176,   244,   176,
1975 <     244,   250,   250,   176,   250,   176,   176,   176,   176,   177,
1976 <     176,   177,   176,   176,   250,   250,   110,   252,   131,   250,
1977 <     176,   176,   176,   176,   241,   517,   244,   244,   511,   244,
1978 <     244,   242,   507,   241,   244,   244,   358,   244,   244,   244,
1979 <     244,   244,   242,   352,   244,   417,   244,   242,   421,   241,
1980 <     338,   244,   244,   244,   242,   342,   176,   241,   243,   131,
1981 <     131,   241,   241,   244,   244,   315,   244,   244,   244,   311,
1982 <     244,   242,   303,   241,   244,   244,   244,   242,   367,   176,
1983 <     176,   176,   131,   176,   176,   250,   241,   131,   176,   131,
1984 <     131,   131,   131,   131,   131,   149,   150,   263,   264,   149,
1985 <     150,   265,   266,   131,   131,   110,   131,   131,   241,   241,
1986 <     244,   382,   244,   242,   378,   241,   244,   391,   242,   388,
1987 <     131,   241,   241,   241,   241,   241,   241,   241,   241,   241,
1988 <     153,   154,   155,   156,   157,   249,   250,   241,   241,   241,
1989 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
1990 <     110,   110,   250,   110,   110,   110,   110,   131,   110,   110,
1991 <     250,   250,   252,   241,   131,   197,   198,   131,   176,   244,
1992 <     131,   131,   131,   131,   110,   131,   131,   131,   241,   131,
1993 <     131,   241,   241,   131,   131,   244,   241,   241,   241,   241,
1994 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
1995 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
1996 <     241,   241,   241,   241,   241,    61,   183,   184,   185,   186,
1997 <     187,   190,   191,   194,   195,   196,   199,   201,   202,   203,
1998 <     205,   206,   207,   210,   216,   498,   499,   241,    61,   183,
1999 <     184,   185,   186,   187,   190,   191,   194,   195,   196,   199,
2000 <     201,   202,   203,   205,   206,   207,   210,   216,   494,   495,
2001 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2002 <     241,   241,   241,   241,   241,    14,    15,    16,   251,   252,
2003 <     241,   241,   241,   241,   241,   241,   241,   244,   250,   176,
2004 <     244,   131,   131,   241,   131,   176,   244,   131,   110,   131,
2005 <     131,   131,   241,   131,   244,   131,   241,   244,   131,   131,
2006 <     110,   345,   346,   241,   241,     1,   100,   166,   239,   292,
2007 <     293,   294,   295,   296,   241,   241,   131,   176,   244,   131,
2008 <     131,   131,   244,   131,   241,   131,   131,   131,   241,   241,
2009 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2010 <     241,   241,   241,   241,   241,   245,   241,   245,   241,   241,
2011 <     241,   241,   241,   131,   244,   131,   241,   131,   244,   241,
2012 <     241,   249,   249,   249,   249,   249,   241,   241,   241,   241,
2013 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2014 <     241,   241,   241,   241,    10,    12,   208,   221,   407,   408,
2015 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2016 <     241,   241,   136,   438,   439,   241,   245,   241,   245,   251,
2017 <     251,   251,    11,   178,   518,   519,   241,   241,    11,   178,
2018 <     512,   513,   241,   241,   241,   241,    20,    44,    53,    59,
2019 <      75,   101,   109,   152,   170,   359,   360,   241,   241,   241,
2020 <     241,   241,   241,   136,   418,   419,   241,    61,   204,   208,
2021 <     339,   340,   241,   241,   181,   245,   344,   241,   244,   297,
2022 <     244,   242,   293,   241,   241,     5,    32,    51,    57,    74,
2023 <      98,   105,   119,   137,   139,   140,   192,   202,   211,   215,
2024 <     217,   226,   236,   316,   317,   241,   241,   241,    61,   183,
2025 <     184,   185,   186,   187,   190,   191,   194,   195,   196,   199,
2026 <     201,   202,   203,   205,   206,   207,   210,   216,   312,   313,
2027 <     241,   241,   241,   241,   264,   266,   241,    74,   151,   182,
2028 <     192,   199,   211,   213,   214,   226,   236,   383,   384,   241,
2029 <     241,    74,   151,   182,   192,   199,   211,   213,   214,   226,
2030 <     236,   392,   393,   241,   245,   241,   245,   499,   495,   241,
2031 <     245,   241,   245,   241,   245,   241,   245,   241,   245,   110,
2032 <     346,   241,   131,   244,   212,   252,   241,   241,   245,   241,
2033 <     245,   241,   245,   241,   245,   408,   439,   519,   513,   360,
2034 <     419,   340,   241,    51,    72,    74,   115,   191,   192,   227,
2035 <     298,   299,   241,   241,   317,   313,   384,   393,   241,   245,
2450 <     299
1905 >       0,   237,     0,     1,     4,    16,    19,    21,    29,    41,
1906 >      47,    48,    66,    70,    80,    99,   100,   115,   132,   144,
1907 >     145,   169,   182,   187,   192,   195,   238,   243,   248,   266,
1908 >     272,   278,   286,   300,   320,   342,   356,   371,   378,   382,
1909 >     392,   401,   422,   428,   434,   438,   444,   498,   515,   230,
1910 >     231,   232,   232,   321,   402,   429,   232,   439,   232,   357,
1911 >     423,   343,   232,   273,   301,   372,   232,   232,   393,   232,
1912 >     279,   232,   383,     1,    30,    38,   101,   267,   268,   269,
1913 >     270,   271,     1,    26,    27,    33,    61,    62,    63,    64,
1914 >      76,    77,    78,    83,    84,    85,    87,   499,   500,   501,
1915 >     502,   503,   504,   505,   506,   507,   508,   509,   510,   511,
1916 >     512,   513,   514,   232,   232,   232,     1,    65,   435,   436,
1917 >     437,   232,     1,     6,     7,     9,    10,    14,    23,    24,
1918 >      25,    32,    35,    36,    37,    43,    60,    71,    74,    75,
1919 >      82,    88,    90,    92,    94,    96,    97,   107,   113,   114,
1920 >     116,   117,   118,   121,   146,   156,   157,   158,   159,   160,
1921 >     161,   162,   213,   214,   216,   217,   225,   227,   445,   446,
1922 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1923 >     457,   458,   459,   460,   461,   462,   463,   464,   465,   466,
1924 >     467,   468,   469,   470,   471,   472,   473,   474,   475,   476,
1925 >     477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1926 >     490,   494,   495,   496,   497,   232,   232,   232,     1,    98,
1927 >     120,   244,   245,   246,   247,   232,   232,   232,     1,    34,
1928 >      44,    45,    46,    49,    50,    54,    55,    56,   516,   517,
1929 >     518,   519,   520,   521,   522,   523,   524,   525,   526,     1,
1930 >      28,    30,    58,    68,    89,    93,   101,   104,   105,   134,
1931 >     150,   153,   154,   155,   201,   249,   250,   251,   252,   253,
1932 >     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1933 >     264,   265,   232,     1,   221,   287,   288,   289,   290,   291,
1934 >     232,     1,   101,   379,   380,   381,   232,   230,   233,   233,
1935 >     233,   231,   268,   233,   233,   233,   233,   233,   233,   233,
1936 >     233,   233,   233,   233,   233,   233,   233,   231,   500,     1,
1937 >      17,    18,    22,    67,    85,    86,    91,    95,   101,   110,
1938 >     111,   112,   122,   143,   188,   322,   323,   324,   325,   326,
1939 >     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
1940 >     337,   338,     1,     3,     5,    19,    39,    57,    59,    67,
1941 >      79,   101,   123,   142,   151,   164,   201,   403,   404,   405,
1942 >     406,   407,   408,   409,   410,   411,   412,   413,   417,   418,
1943 >     419,   420,   421,     1,    65,   126,   430,   431,   432,   433,
1944 >     233,   231,   436,     1,   101,   126,   440,   441,   442,   443,
1945 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1946 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1947 >     233,   233,   233,   233,   233,   491,   487,   233,   233,   233,
1948 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1949 >     233,   233,   233,   233,   233,   231,   446,     1,    19,    39,
1950 >      67,   119,   127,   128,   147,   222,   358,   359,   360,   361,
1951 >     362,   363,   364,   368,   369,   370,     1,   126,   222,   424,
1952 >     425,   426,   427,     1,    57,    65,    67,   123,   344,   348,
1953 >     349,   350,   354,   355,   230,   233,   233,   231,   245,     1,
1954 >      81,   175,   274,   275,   276,   277,     1,    19,    39,    67,
1955 >     101,   119,   151,   152,   203,   222,   226,   302,   303,   304,
1956 >     305,   306,   307,   308,   309,   310,   311,   312,   316,     1,
1957 >      41,    81,   126,   373,   374,   375,   376,   377,   233,   233,
1958 >     233,   233,   233,   233,   233,   233,   233,   231,   517,   230,
1959 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1960 >     233,   233,   233,   233,   233,   231,   250,     1,   101,   219,
1961 >     394,   395,   396,   397,   230,   233,   231,   288,   175,     1,
1962 >     101,   168,   186,   202,   280,   281,   282,   283,   284,   285,
1963 >     233,   231,   380,     1,   101,   219,   222,   384,   385,   386,
1964 >     387,   388,   124,   124,   124,   230,   109,   109,   240,   212,
1965 >     109,   240,   240,   240,   109,   240,   240,   109,   109,   109,
1966 >     109,   230,   230,   233,   233,   233,   339,   233,   233,   233,
1967 >     233,   233,   233,   233,   233,   233,   233,   233,   231,   323,
1968 >     230,   233,   233,   233,   233,   233,   233,   414,   233,   233,
1969 >     233,   233,   233,   233,   233,   231,   404,   233,   233,   231,
1970 >     431,   124,   230,   233,   233,   231,   441,   212,   240,   109,
1971 >     240,   240,   212,   109,   240,   212,   109,   109,   109,   212,
1972 >     212,   240,   109,   109,   109,   109,   240,   109,   109,   109,
1973 >     109,   212,   233,   233,   212,   240,   240,   212,   212,   212,
1974 >     212,   215,   212,   215,   212,   212,   212,   212,   109,   240,
1975 >     240,   240,   212,   109,   230,   230,   233,   233,   365,   233,
1976 >     233,   233,   233,   233,   231,   359,   233,   233,   231,   425,
1977 >     230,   233,   233,   345,   233,   231,   349,   124,   124,   230,
1978 >     230,   233,   233,   231,   275,   230,   233,   233,   317,   233,
1979 >     233,   233,   233,   313,   233,   233,   231,   303,   230,   233,
1980 >     233,   233,   231,   374,   212,   212,   240,   124,   212,   124,
1981 >     212,   212,   212,   230,   109,   124,   212,   124,   109,   109,
1982 >     124,   124,   124,   124,   124,   124,   124,   124,   124,   230,
1983 >     230,   233,   398,   231,   395,   212,   230,   232,   230,   233,
1984 >     233,   233,   233,   231,   281,   124,   230,   230,   233,   389,
1985 >     233,   231,   385,   230,   230,   230,   230,   135,   136,   137,
1986 >     138,   139,   140,   141,   239,   240,   230,   230,   230,   230,
1987 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   109,
1988 >     109,   240,   233,   109,   240,   109,   240,   124,   109,   109,
1989 >     109,   240,   109,   242,   242,   230,   124,   179,   180,   124,
1990 >     212,   124,   124,   233,   124,   124,   109,   124,   124,   124,
1991 >     124,   230,   124,   124,   230,   230,   124,   124,   230,   230,
1992 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1993 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1994 >     230,   230,   230,   230,    42,    49,   165,   166,   167,   170,
1995 >     171,   173,   174,   176,   178,   181,   183,   184,   189,   193,
1996 >     197,   198,   199,   204,   209,   492,   493,    42,    49,    51,
1997 >      52,   165,   166,   167,   170,   171,   173,   174,   176,   178,
1998 >     181,   183,   184,   189,   193,   197,   198,   199,   204,   209,
1999 >     488,   489,   230,   230,   230,   230,   230,   230,   230,   230,
2000 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2001 >     230,   230,   124,   212,   233,   124,   109,   124,   124,   124,
2002 >     230,   124,   124,   230,   124,   124,   233,   109,   352,   353,
2003 >     230,   230,   230,   124,   124,   230,   124,   212,   233,   124,
2004 >     124,   124,   212,   233,   124,   124,   230,   124,   124,   124,
2005 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2006 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2007 >     230,   230,   230,   230,   230,   124,   233,   230,   230,     1,
2008 >     101,   196,   219,   292,   293,   294,   295,   296,   124,   124,
2009 >     124,   124,   230,   230,   124,   233,   124,   230,   239,   239,
2010 >     239,   239,   239,   239,   239,   230,   230,   230,    53,   125,
2011 >     340,   341,   230,   230,   230,   230,   230,   230,   230,   230,
2012 >     230,    11,    12,    13,   241,   242,   230,   230,   230,   230,
2013 >     230,   230,   230,   230,   230,     8,   200,   415,   416,   230,
2014 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2015 >     230,   234,   230,   234,   230,   230,    15,    40,    73,   102,
2016 >     103,   108,   133,   148,   211,   229,   366,   367,   230,   230,
2017 >     230,   230,   230,   230,   230,   230,   230,    49,   191,   200,
2018 >     346,   347,   218,   234,   351,   230,   230,   230,   230,     4,
2019 >      20,    21,    31,    69,    70,    72,    98,   106,   129,   131,
2020 >     132,   149,   172,   177,   181,   185,   190,   194,   205,   207,
2021 >     208,   210,   220,   228,   318,   319,   230,   230,   230,   230,
2022 >      42,    49,    51,    52,   165,   166,   167,   170,   171,   173,
2023 >     174,   176,   178,   181,   183,   184,   189,   193,   197,   198,
2024 >     199,   204,   209,   314,   315,   230,   230,   230,   230,   230,
2025 >     230,    72,   132,   163,   172,   181,   205,   207,   208,   220,
2026 >     228,   399,   400,   230,   233,   233,   297,   231,   293,   230,
2027 >     230,   230,   230,   230,    72,   132,   163,   172,   181,   205,
2028 >     207,   208,   220,   228,   390,   391,   230,   230,   234,   241,
2029 >     241,   241,   230,   234,   493,   489,   230,   234,   230,   234,
2030 >     109,   353,   230,   235,   235,   235,   235,   235,   235,   230,
2031 >     234,   230,   234,   230,   234,   124,   206,   242,   233,   230,
2032 >     230,   234,   341,   416,   367,   347,   130,   132,   130,   132,
2033 >     130,   130,   319,   315,   400,   230,   230,   230,    70,    72,
2034 >     115,   132,   171,   172,   222,   228,   298,   299,   391,   230,
2035 >     234,   299
2036   };
2037  
2038 < #define yyerrok         (yyerrstatus = 0)
2039 < #define yyclearin       (yychar = YYEMPTY)
2040 < #define YYEMPTY         (-2)
2041 < #define YYEOF           0
2042 <
2043 < #define YYACCEPT        goto yyacceptlab
2044 < #define YYABORT         goto yyabortlab
2045 < #define YYERROR         goto yyerrorlab
2046 <
2047 <
2048 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2049 <   to ease the transition to the new meaning of YYERROR, for GCC.
2050 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2051 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2052 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2053 <   discussed.  */
2054 <
2055 < #define YYFAIL          goto yyerrlab
2056 < #if defined YYFAIL
2057 <  /* This is here to suppress warnings from the GCC cpp's
2058 <     -Wunused-macros.  Normally we don't worry about that warning, but
2059 <     some users do, and we want to make it easy for users to remove
2060 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2061 < #endif
2038 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2039 > static const yytype_uint16 yyr1[] =
2040 > {
2041 >       0,   236,   237,   237,   238,   238,   238,   238,   238,   238,
2042 >     238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
2043 >     238,   238,   238,   238,   238,   238,   238,   238,   239,   239,
2044 >     240,   240,   240,   240,   240,   240,   240,   240,   241,   241,
2045 >     242,   242,   242,   242,   243,   244,   244,   245,   245,   245,
2046 >     246,   247,   248,   249,   249,   250,   250,   250,   250,   250,
2047 >     250,   250,   250,   250,   250,   250,   250,   250,   250,   250,
2048 >     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2049 >     260,   261,   262,   263,   264,   265,   266,   267,   267,   268,
2050 >     268,   268,   268,   269,   270,   271,   273,   272,   274,   274,
2051 >     275,   275,   275,   276,   277,   279,   278,   280,   280,   281,
2052 >     281,   281,   281,   281,   282,   283,   284,   285,   286,   287,
2053 >     287,   288,   288,   288,   289,   291,   290,   292,   292,   293,
2054 >     293,   293,   293,   294,   295,   295,   297,   296,   298,   298,
2055 >     299,   299,   299,   299,   299,   299,   299,   299,   301,   300,
2056 >     302,   302,   303,   303,   303,   303,   303,   303,   303,   303,
2057 >     303,   303,   303,   304,   305,   306,   307,   308,   309,   310,
2058 >     311,   313,   312,   314,   314,   315,   315,   315,   315,   315,
2059 >     315,   315,   315,   315,   315,   315,   315,   315,   315,   315,
2060 >     315,   315,   315,   315,   315,   315,   315,   315,   317,   316,
2061 >     318,   318,   319,   319,   319,   319,   319,   319,   319,   319,
2062 >     319,   319,   319,   319,   319,   319,   319,   319,   319,   319,
2063 >     319,   319,   319,   319,   319,   319,   319,   319,   319,   319,
2064 >     319,   321,   320,   322,   322,   323,   323,   323,   323,   323,
2065 >     323,   323,   323,   323,   323,   323,   323,   323,   323,   323,
2066 >     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2067 >     333,   334,   335,   336,   337,   339,   338,   340,   340,   341,
2068 >     341,   343,   342,   345,   344,   346,   346,   347,   347,   347,
2069 >     348,   348,   349,   349,   349,   349,   349,   351,   350,   352,
2070 >     352,   353,   353,   354,   355,   357,   356,   358,   358,   359,
2071 >     359,   359,   359,   359,   359,   359,   359,   359,   360,   361,
2072 >     362,   363,   365,   364,   366,   366,   367,   367,   367,   367,
2073 >     367,   367,   367,   367,   367,   367,   368,   369,   370,   372,
2074 >     371,   373,   373,   374,   374,   374,   374,   375,   376,   377,
2075 >     378,   379,   379,   380,   380,   381,   383,   382,   384,   384,
2076 >     385,   385,   385,   385,   386,   387,   389,   388,   390,   390,
2077 >     391,   391,   391,   391,   391,   391,   391,   391,   391,   391,
2078 >     393,   392,   394,   394,   395,   395,   395,   396,   398,   397,
2079 >     399,   399,   400,   400,   400,   400,   400,   400,   400,   400,
2080 >     400,   400,   402,   401,   403,   403,   404,   404,   404,   404,
2081 >     404,   404,   404,   404,   404,   404,   404,   404,   404,   404,
2082 >     404,   405,   406,   407,   408,   409,   410,   411,   412,   412,
2083 >     414,   413,   415,   415,   416,   416,   417,   418,   419,   420,
2084 >     421,   423,   422,   424,   424,   425,   425,   425,   426,   427,
2085 >     429,   428,   430,   430,   431,   431,   431,   432,   433,   434,
2086 >     435,   435,   436,   436,   437,   439,   438,   440,   440,   441,
2087 >     441,   441,   442,   443,   444,   445,   445,   446,   446,   446,
2088 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2089 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2090 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2091 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2092 >     446,   446,   446,   447,   448,   449,   450,   451,   452,   453,
2093 >     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2094 >     464,   465,   466,   467,   468,   469,   470,   471,   472,   472,
2095 >     473,   473,   474,   475,   476,   477,   478,   479,   480,   481,
2096 >     482,   483,   484,   485,   487,   486,   488,   488,   489,   489,
2097 >     489,   489,   489,   489,   489,   489,   489,   489,   489,   489,
2098 >     489,   489,   489,   489,   489,   489,   489,   489,   489,   489,
2099 >     489,   491,   490,   492,   492,   493,   493,   493,   493,   493,
2100 >     493,   493,   493,   493,   493,   493,   493,   493,   493,   493,
2101 >     493,   493,   493,   493,   493,   493,   494,   495,   496,   497,
2102 >     498,   499,   499,   500,   500,   500,   500,   500,   500,   500,
2103 >     500,   500,   500,   500,   500,   500,   500,   500,   501,   502,
2104 >     503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
2105 >     513,   514,   515,   516,   516,   517,   517,   517,   517,   517,
2106 >     517,   517,   517,   517,   517,   518,   519,   520,   521,   522,
2107 >     523,   524,   525,   526
2108 > };
2109  
2110 < #define YYRECOVERING()  (!!yyerrstatus)
2110 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2111 > static const yytype_uint8 yyr2[] =
2112 > {
2113 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2114 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2115 >       1,     1,     1,     1,     1,     1,     2,     2,     0,     1,
2116 >       2,     3,     3,     3,     3,     3,     3,     3,     0,     1,
2117 >       2,     3,     3,     3,     5,     2,     1,     1,     1,     2,
2118 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2119 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2120 >       2,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2121 >       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
2122 >       1,     1,     2,     4,     4,     4,     0,     6,     2,     1,
2123 >       1,     1,     2,     4,     4,     0,     6,     2,     1,     1,
2124 >       1,     1,     1,     2,     4,     4,     4,     4,     5,     2,
2125 >       1,     1,     1,     2,     4,     0,     6,     2,     1,     1,
2126 >       1,     1,     2,     4,     4,     4,     0,     5,     3,     1,
2127 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
2128 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2129 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
2130 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2131 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2132 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     5,
2133 >       3,     1,     3,     1,     3,     1,     3,     1,     1,     1,
2134 >       1,     1,     1,     1,     1,     1,     3,     1,     1,     1,
2135 >       1,     1,     1,     1,     1,     1,     3,     3,     1,     1,
2136 >       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
2137 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2138 >       2,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2139 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2140 >       1,     0,     6,     0,     5,     3,     1,     1,     1,     1,
2141 >       2,     1,     1,     1,     1,     1,     2,     0,     5,     3,
2142 >       1,     1,     3,     4,     4,     0,     6,     2,     1,     1,
2143 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
2144 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2145 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     0,
2146 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2147 >       5,     2,     1,     1,     1,     4,     0,     6,     2,     1,
2148 >       1,     1,     1,     2,     4,     4,     0,     5,     3,     1,
2149 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2150 >       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
2151 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2152 >       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2153 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2154 >       2,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2155 >       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
2156 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
2157 >       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
2158 >       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
2159 >       1,     1,     4,     4,     5,     2,     1,     1,     1,     1,
2160 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2161 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2162 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2163 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2164 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2165 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2166 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2167 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2168 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2169 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2170 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2171 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2172 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2173 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
2174 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2175 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
2176 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2177 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2178 >       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
2179 >       4,     4,     4,     4
2180 > };
2181  
2480 #define YYBACKUP(Token, Value)                                  \
2481 do                                                              \
2482  if (yychar == YYEMPTY && yylen == 1)                          \
2483    {                                                           \
2484      yychar = (Token);                                         \
2485      yylval = (Value);                                         \
2486      YYPOPSTACK (1);                                           \
2487      goto yybackup;                                            \
2488    }                                                           \
2489  else                                                          \
2490    {                                                           \
2491      yyerror (YY_("syntax error: cannot back up")); \
2492      YYERROR;                                                  \
2493    }                                                           \
2494 while (YYID (0))
2495
2496
2497 #define YYTERROR        1
2498 #define YYERRCODE       256
2499
2500
2501 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2502   If N is 0, then set CURRENT to the empty location which ends
2503   the previous symbol: RHS[0] (always defined).  */
2504
2505 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2506 #ifndef YYLLOC_DEFAULT
2507 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2508    do                                                                  \
2509      if (YYID (N))                                                    \
2510        {                                                               \
2511          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2512          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2513          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2514          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2515        }                                                               \
2516      else                                                              \
2517        {                                                               \
2518          (Current).first_line   = (Current).last_line   =              \
2519            YYRHSLOC (Rhs, 0).last_line;                                \
2520          (Current).first_column = (Current).last_column =              \
2521            YYRHSLOC (Rhs, 0).last_column;                              \
2522        }                                                               \
2523    while (YYID (0))
2524 #endif
2182  
2183 + #define yyerrok         (yyerrstatus = 0)
2184 + #define yyclearin       (yychar = YYEMPTY)
2185 + #define YYEMPTY         (-2)
2186 + #define YYEOF           0
2187 +
2188 + #define YYACCEPT        goto yyacceptlab
2189 + #define YYABORT         goto yyabortlab
2190 + #define YYERROR         goto yyerrorlab
2191  
2527 /* This macro is provided for backward compatibility. */
2192  
2193 < #ifndef YY_LOCATION_PRINT
2530 < # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2531 < #endif
2193 > #define YYRECOVERING()  (!!yyerrstatus)
2194  
2195 + #define YYBACKUP(Token, Value)                                    \
2196 +  do                                                              \
2197 +    if (yychar == YYEMPTY)                                        \
2198 +      {                                                           \
2199 +        yychar = (Token);                                         \
2200 +        yylval = (Value);                                         \
2201 +        YYPOPSTACK (yylen);                                       \
2202 +        yystate = *yyssp;                                         \
2203 +        goto yybackup;                                            \
2204 +      }                                                           \
2205 +    else                                                          \
2206 +      {                                                           \
2207 +        yyerror (YY_("syntax error: cannot back up")); \
2208 +        YYERROR;                                                  \
2209 +      }                                                           \
2210 +  while (0)
2211 +
2212 + /* Error token number */
2213 + #define YYTERROR        1
2214 + #define YYERRCODE       256
2215  
2534 /* YYLEX -- calling `yylex' with the right arguments.  */
2216  
2536 #ifdef YYLEX_PARAM
2537 # define YYLEX yylex (YYLEX_PARAM)
2538 #else
2539 # define YYLEX yylex ()
2540 #endif
2217  
2218   /* Enable debugging if requested.  */
2219   #if YYDEBUG
# Line 2547 | Line 2223 | while (YYID (0))
2223   #  define YYFPRINTF fprintf
2224   # endif
2225  
2226 < # define YYDPRINTF(Args)                        \
2227 < do {                                            \
2228 <  if (yydebug)                                  \
2229 <    YYFPRINTF Args;                             \
2230 < } while (YYID (0))
2231 <
2232 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2233 < do {                                                                      \
2234 <  if (yydebug)                                                            \
2559 <    {                                                                     \
2560 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2561 <      yy_symbol_print (stderr,                                            \
2562 <                  Type, Value); \
2563 <      YYFPRINTF (stderr, "\n");                                           \
2564 <    }                                                                     \
2565 < } while (YYID (0))
2566 <
2567 <
2568 < /*--------------------------------.
2569 < | Print this symbol on YYOUTPUT.  |
2570 < `--------------------------------*/
2571 <
2572 < /*ARGSUSED*/
2573 < #if (defined __STDC__ || defined __C99__FUNC__ \
2574 <     || defined __cplusplus || defined _MSC_VER)
2575 < static void
2576 < yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2577 < #else
2578 < static void
2579 < yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2580 <    FILE *yyoutput;
2581 <    int yytype;
2582 <    YYSTYPE const * const yyvaluep;
2226 > # define YYDPRINTF(Args)                        \
2227 > do {                                            \
2228 >  if (yydebug)                                  \
2229 >    YYFPRINTF Args;                             \
2230 > } while (0)
2231 >
2232 > /* This macro is provided for backward compatibility. */
2233 > #ifndef YY_LOCATION_PRINT
2234 > # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2235   #endif
2236 +
2237 +
2238 + # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2239 + do {                                                                      \
2240 +  if (yydebug)                                                            \
2241 +    {                                                                     \
2242 +      YYFPRINTF (stderr, "%s ", Title);                                   \
2243 +      yy_symbol_print (stderr,                                            \
2244 +                  Type, Value); \
2245 +      YYFPRINTF (stderr, "\n");                                           \
2246 +    }                                                                     \
2247 + } while (0)
2248 +
2249 +
2250 + /*-----------------------------------.
2251 + | Print this symbol's value on YYO.  |
2252 + `-----------------------------------*/
2253 +
2254 + static void
2255 + yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2256   {
2257 +  FILE *yyoutput = yyo;
2258 +  YYUSE (yyoutput);
2259    if (!yyvaluep)
2260      return;
2261   # ifdef YYPRINT
2262    if (yytype < YYNTOKENS)
2263 <    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2590 < # else
2591 <  YYUSE (yyoutput);
2263 >    YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
2264   # endif
2265 <  switch (yytype)
2594 <    {
2595 <      default:
2596 <        break;
2597 <    }
2265 >  YYUSE (yytype);
2266   }
2267  
2268  
2269 < /*--------------------------------.
2270 < | Print this symbol on YYOUTPUT.  |
2271 < `--------------------------------*/
2269 > /*---------------------------.
2270 > | Print this symbol on YYO.  |
2271 > `---------------------------*/
2272  
2605 #if (defined __STDC__ || defined __C99__FUNC__ \
2606     || defined __cplusplus || defined _MSC_VER)
2273   static void
2274 < yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2609 < #else
2610 < static void
2611 < yy_symbol_print (yyoutput, yytype, yyvaluep)
2612 <    FILE *yyoutput;
2613 <    int yytype;
2614 <    YYSTYPE const * const yyvaluep;
2615 < #endif
2274 > yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2275   {
2276 <  if (yytype < YYNTOKENS)
2277 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2619 <  else
2620 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2276 >  YYFPRINTF (yyo, "%s %s (",
2277 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2278  
2279 <  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2280 <  YYFPRINTF (yyoutput, ")");
2279 >  yy_symbol_value_print (yyo, yytype, yyvaluep);
2280 >  YYFPRINTF (yyo, ")");
2281   }
2282  
2283   /*------------------------------------------------------------------.
# Line 2628 | Line 2285 | yy_symbol_print (yyoutput, yytype, yyval
2285   | TOP (included).                                                   |
2286   `------------------------------------------------------------------*/
2287  
2631 #if (defined __STDC__ || defined __C99__FUNC__ \
2632     || defined __cplusplus || defined _MSC_VER)
2288   static void
2289   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2635 #else
2636 static void
2637 yy_stack_print (yybottom, yytop)
2638    yytype_int16 *yybottom;
2639    yytype_int16 *yytop;
2640 #endif
2290   {
2291    YYFPRINTF (stderr, "Stack now");
2292    for (; yybottom <= yytop; yybottom++)
# Line 2648 | Line 2297 | yy_stack_print (yybottom, yytop)
2297    YYFPRINTF (stderr, "\n");
2298   }
2299  
2300 < # define YY_STACK_PRINT(Bottom, Top)                            \
2301 < do {                                                            \
2302 <  if (yydebug)                                                  \
2303 <    yy_stack_print ((Bottom), (Top));                           \
2304 < } while (YYID (0))
2300 > # define YY_STACK_PRINT(Bottom, Top)                            \
2301 > do {                                                            \
2302 >  if (yydebug)                                                  \
2303 >    yy_stack_print ((Bottom), (Top));                           \
2304 > } while (0)
2305  
2306  
2307   /*------------------------------------------------.
2308   | Report that the YYRULE is going to be reduced.  |
2309   `------------------------------------------------*/
2310  
2662 #if (defined __STDC__ || defined __C99__FUNC__ \
2663     || defined __cplusplus || defined _MSC_VER)
2664 static void
2665 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2666 #else
2311   static void
2312 < yy_reduce_print (yyvsp, yyrule)
2669 <    YYSTYPE *yyvsp;
2670 <    int yyrule;
2671 < #endif
2312 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2313   {
2314 +  unsigned long yylno = yyrline[yyrule];
2315    int yynrhs = yyr2[yyrule];
2316    int yyi;
2675  unsigned long int yylno = yyrline[yyrule];
2317    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2318 <             yyrule - 1, yylno);
2318 >             yyrule - 1, yylno);
2319    /* The symbols being reduced.  */
2320    for (yyi = 0; yyi < yynrhs; yyi++)
2321      {
2322        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2323 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2324 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2325 <                                       );
2323 >      yy_symbol_print (stderr,
2324 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2325 >                       &yyvsp[(yyi + 1) - (yynrhs)]
2326 >                                              );
2327        YYFPRINTF (stderr, "\n");
2328      }
2329   }
2330  
2331 < # define YY_REDUCE_PRINT(Rule)          \
2332 < do {                                    \
2333 <  if (yydebug)                          \
2334 <    yy_reduce_print (yyvsp, Rule); \
2335 < } while (YYID (0))
2331 > # define YY_REDUCE_PRINT(Rule)          \
2332 > do {                                    \
2333 >  if (yydebug)                          \
2334 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2335 > } while (0)
2336  
2337   /* Nonzero means print parse trace.  It is left uninitialized so that
2338     multiple parsers can coexist.  */
# Line 2704 | Line 2346 | int yydebug;
2346  
2347  
2348   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2349 < #ifndef YYINITDEPTH
2349 > #ifndef YYINITDEPTH
2350   # define YYINITDEPTH 200
2351   #endif
2352  
# Line 2727 | Line 2369 | int yydebug;
2369   #   define yystrlen strlen
2370   #  else
2371   /* Return the length of YYSTR.  */
2730 #if (defined __STDC__ || defined __C99__FUNC__ \
2731     || defined __cplusplus || defined _MSC_VER)
2372   static YYSIZE_T
2373   yystrlen (const char *yystr)
2734 #else
2735 static YYSIZE_T
2736 yystrlen (yystr)
2737    const char *yystr;
2738 #endif
2374   {
2375    YYSIZE_T yylen;
2376    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2751 | Line 2386 | yystrlen (yystr)
2386   #  else
2387   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2388     YYDEST.  */
2754 #if (defined __STDC__ || defined __C99__FUNC__ \
2755     || defined __cplusplus || defined _MSC_VER)
2389   static char *
2390   yystpcpy (char *yydest, const char *yysrc)
2758 #else
2759 static char *
2760 yystpcpy (yydest, yysrc)
2761    char *yydest;
2762    const char *yysrc;
2763 #endif
2391   {
2392    char *yyd = yydest;
2393    const char *yys = yysrc;
# Line 2790 | Line 2417 | yytnamerr (char *yyres, const char *yyst
2417        char const *yyp = yystr;
2418  
2419        for (;;)
2420 <        switch (*++yyp)
2421 <          {
2422 <          case '\'':
2423 <          case ',':
2424 <            goto do_not_strip_quotes;
2425 <
2426 <          case '\\':
2427 <            if (*++yyp != '\\')
2428 <              goto do_not_strip_quotes;
2429 <            /* Fall through.  */
2430 <          default:
2431 <            if (yyres)
2432 <              yyres[yyn] = *yyp;
2433 <            yyn++;
2434 <            break;
2435 <
2436 <          case '"':
2437 <            if (yyres)
2438 <              yyres[yyn] = '\0';
2439 <            return yyn;
2440 <          }
2420 >        switch (*++yyp)
2421 >          {
2422 >          case '\'':
2423 >          case ',':
2424 >            goto do_not_strip_quotes;
2425 >
2426 >          case '\\':
2427 >            if (*++yyp != '\\')
2428 >              goto do_not_strip_quotes;
2429 >            else
2430 >              goto append;
2431 >
2432 >          append:
2433 >          default:
2434 >            if (yyres)
2435 >              yyres[yyn] = *yyp;
2436 >            yyn++;
2437 >            break;
2438 >
2439 >          case '"':
2440 >            if (yyres)
2441 >              yyres[yyn] = '\0';
2442 >            return yyn;
2443 >          }
2444      do_not_strip_quotes: ;
2445      }
2446  
2447    if (! yyres)
2448      return yystrlen (yystr);
2449  
2450 <  return yystpcpy (yyres, yystr) - yyres;
2450 >  return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
2451   }
2452   # endif
2453  
# Line 2833 | Line 2463 | static int
2463   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2464                  yytype_int16 *yyssp, int yytoken)
2465   {
2466 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2466 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2467    YYSIZE_T yysize = yysize0;
2838  YYSIZE_T yysize1;
2468    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2469    /* Internationalized format string. */
2470 <  const char *yyformat = 0;
2470 >  const char *yyformat = YY_NULLPTR;
2471    /* Arguments of yyformat. */
2472    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2473    /* Number of reported tokens (one for the "unexpected", one per
# Line 2846 | Line 2475 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2475    int yycount = 0;
2476  
2477    /* There are many possibilities here to consider:
2849     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2850       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2851       for details.  YYERROR is fine as it does not invoke this
2852       function.
2478       - If this state is a consistent state with a default action, then
2479         the only way this function was invoked is if the default action
2480         is an error action.  In that case, don't check for expected
# Line 2898 | Line 2523 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2523                      break;
2524                    }
2525                  yyarg[yycount++] = yytname[yyx];
2526 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2527 <                if (! (yysize <= yysize1
2528 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2529 <                  return 2;
2530 <                yysize = yysize1;
2526 >                {
2527 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2528 >                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2529 >                    yysize = yysize1;
2530 >                  else
2531 >                    return 2;
2532 >                }
2533                }
2534          }
2535      }
# Line 2913 | Line 2540 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2540        case N:                               \
2541          yyformat = S;                       \
2542        break
2543 +    default: /* Avoid compiler warnings. */
2544        YYCASE_(0, YY_("syntax error"));
2545        YYCASE_(1, YY_("syntax error, unexpected %s"));
2546        YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
# Line 2922 | Line 2550 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2550   # undef YYCASE_
2551      }
2552  
2553 <  yysize1 = yysize + yystrlen (yyformat);
2554 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2555 <    return 2;
2556 <  yysize = yysize1;
2553 >  {
2554 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2555 >    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2556 >      yysize = yysize1;
2557 >    else
2558 >      return 2;
2559 >  }
2560  
2561    if (*yymsg_alloc < yysize)
2562      {
# Line 2962 | Line 2593 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2593   | Release the memory associated to this symbol.  |
2594   `-----------------------------------------------*/
2595  
2965 /*ARGSUSED*/
2966 #if (defined __STDC__ || defined __C99__FUNC__ \
2967     || defined __cplusplus || defined _MSC_VER)
2596   static void
2597   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2970 #else
2971 static void
2972 yydestruct (yymsg, yytype, yyvaluep)
2973    const char *yymsg;
2974    int yytype;
2975    YYSTYPE *yyvaluep;
2976 #endif
2598   {
2599    YYUSE (yyvaluep);
2979
2600    if (!yymsg)
2601      yymsg = "Deleting";
2602    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2603  
2604 <  switch (yytype)
2605 <    {
2606 <
2987 <      default:
2988 <        break;
2989 <    }
2604 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2605 >  YYUSE (yytype);
2606 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2607   }
2608  
2609  
2993 /* Prevent warnings from -Wmissing-prototypes.  */
2994 #ifdef YYPARSE_PARAM
2995 #if defined __STDC__ || defined __cplusplus
2996 int yyparse (void *YYPARSE_PARAM);
2997 #else
2998 int yyparse ();
2999 #endif
3000 #else /* ! YYPARSE_PARAM */
3001 #if defined __STDC__ || defined __cplusplus
3002 int yyparse (void);
3003 #else
3004 int yyparse ();
3005 #endif
3006 #endif /* ! YYPARSE_PARAM */
2610  
2611  
2612   /* The lookahead symbol.  */
# Line 3011 | Line 2614 | int yychar;
2614  
2615   /* The semantic value of the lookahead symbol.  */
2616   YYSTYPE yylval;
3014
2617   /* Number of syntax errors so far.  */
2618   int yynerrs;
2619  
# Line 3020 | Line 2622 | int yynerrs;
2622   | yyparse.  |
2623   `----------*/
2624  
3023 #ifdef YYPARSE_PARAM
3024 #if (defined __STDC__ || defined __C99__FUNC__ \
3025     || defined __cplusplus || defined _MSC_VER)
3026 int
3027 yyparse (void *YYPARSE_PARAM)
3028 #else
3029 int
3030 yyparse (YYPARSE_PARAM)
3031    void *YYPARSE_PARAM;
3032 #endif
3033 #else /* ! YYPARSE_PARAM */
3034 #if (defined __STDC__ || defined __C99__FUNC__ \
3035     || defined __cplusplus || defined _MSC_VER)
2625   int
2626   yyparse (void)
3038 #else
3039 int
3040 yyparse ()
3041
3042 #endif
3043 #endif
2627   {
2628      int yystate;
2629      /* Number of tokens to shift before error messages enabled.  */
2630      int yyerrstatus;
2631  
2632      /* The stacks and their tools:
2633 <       `yyss': related to states.
2634 <       `yyvs': related to semantic values.
2633 >       'yyss': related to states.
2634 >       'yyvs': related to semantic values.
2635  
2636 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2636 >       Refer to the stacks through separate pointers, to allow yyoverflow
2637         to reallocate them elsewhere.  */
2638  
2639      /* The state stack.  */
# Line 3068 | Line 2651 | yyparse ()
2651    int yyn;
2652    int yyresult;
2653    /* Lookahead token as an internal (translated) token number.  */
2654 <  int yytoken;
2654 >  int yytoken = 0;
2655    /* The variables used to return semantic value and location from the
2656       action routines.  */
2657    YYSTYPE yyval;
# Line 3086 | Line 2669 | yyparse ()
2669       Keep to zero when no symbol should be popped.  */
2670    int yylen = 0;
2671  
2672 <  yytoken = 0;
2673 <  yyss = yyssa;
3091 <  yyvs = yyvsa;
2672 >  yyssp = yyss = yyssa;
2673 >  yyvsp = yyvs = yyvsa;
2674    yystacksize = YYINITDEPTH;
2675  
2676    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3097 | Line 2679 | yyparse ()
2679    yyerrstatus = 0;
2680    yynerrs = 0;
2681    yychar = YYEMPTY; /* Cause a token to be read.  */
3100
3101  /* Initialize stack pointers.
3102     Waste one element of value and location stack
3103     so that they stay on the same level as the state stack.
3104     The wasted elements are never initialized.  */
3105  yyssp = yyss;
3106  yyvsp = yyvs;
3107
2682    goto yysetstate;
2683  
2684 +
2685   /*------------------------------------------------------------.
2686 < | yynewstate -- Push a new state, which is found in yystate.  |
2686 > | yynewstate -- push a new state, which is found in yystate.  |
2687   `------------------------------------------------------------*/
2688 < yynewstate:
2688 > yynewstate:
2689    /* In all cases, when you get here, the value and location stacks
2690       have just been pushed.  So pushing a state here evens the stacks.  */
2691    yyssp++;
2692  
2693 < yysetstate:
2694 <  *yyssp = yystate;
2693 >
2694 > /*--------------------------------------------------------------------.
2695 > | yynewstate -- set current state (the top of the stack) to yystate.  |
2696 > `--------------------------------------------------------------------*/
2697 > yysetstate:
2698 >  *yyssp = (yytype_int16) yystate;
2699  
2700    if (yyss + yystacksize - 1 <= yyssp)
2701 + #if !defined yyoverflow && !defined YYSTACK_RELOCATE
2702 +    goto yyexhaustedlab;
2703 + #else
2704      {
2705        /* Get the current used size of the three stacks, in elements.  */
2706 <      YYSIZE_T yysize = yyssp - yyss + 1;
2706 >      YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
2707  
2708 < #ifdef yyoverflow
2708 > # if defined yyoverflow
2709        {
2710 <        /* Give user a chance to reallocate the stack.  Use copies of
2711 <           these so that the &'s don't force the real ones into
2712 <           memory.  */
2713 <        YYSTYPE *yyvs1 = yyvs;
2714 <        yytype_int16 *yyss1 = yyss;
2715 <
2716 <        /* Each stack pointer address is followed by the size of the
2717 <           data in use in that stack, in bytes.  This used to be a
2718 <           conditional around just the two extra args, but that might
2719 <           be undefined if yyoverflow is a macro.  */
2720 <        yyoverflow (YY_("memory exhausted"),
2721 <                    &yyss1, yysize * sizeof (*yyssp),
2722 <                    &yyvs1, yysize * sizeof (*yyvsp),
2723 <                    &yystacksize);
2724 <
2725 <        yyss = yyss1;
3144 <        yyvs = yyvs1;
2710 >        /* Give user a chance to reallocate the stack.  Use copies of
2711 >           these so that the &'s don't force the real ones into
2712 >           memory.  */
2713 >        YYSTYPE *yyvs1 = yyvs;
2714 >        yytype_int16 *yyss1 = yyss;
2715 >
2716 >        /* Each stack pointer address is followed by the size of the
2717 >           data in use in that stack, in bytes.  This used to be a
2718 >           conditional around just the two extra args, but that might
2719 >           be undefined if yyoverflow is a macro.  */
2720 >        yyoverflow (YY_("memory exhausted"),
2721 >                    &yyss1, yysize * sizeof (*yyssp),
2722 >                    &yyvs1, yysize * sizeof (*yyvsp),
2723 >                    &yystacksize);
2724 >        yyss = yyss1;
2725 >        yyvs = yyvs1;
2726        }
2727 < #else /* no yyoverflow */
3147 < # ifndef YYSTACK_RELOCATE
3148 <      goto yyexhaustedlab;
3149 < # else
2727 > # else /* defined YYSTACK_RELOCATE */
2728        /* Extend the stack our own way.  */
2729        if (YYMAXDEPTH <= yystacksize)
2730 <        goto yyexhaustedlab;
2730 >        goto yyexhaustedlab;
2731        yystacksize *= 2;
2732        if (YYMAXDEPTH < yystacksize)
2733 <        yystacksize = YYMAXDEPTH;
2733 >        yystacksize = YYMAXDEPTH;
2734  
2735        {
2736 <        yytype_int16 *yyss1 = yyss;
2737 <        union yyalloc *yyptr =
2738 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2739 <        if (! yyptr)
2740 <          goto yyexhaustedlab;
2741 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2742 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2743 < #  undef YYSTACK_RELOCATE
2744 <        if (yyss1 != yyssa)
2745 <          YYSTACK_FREE (yyss1);
2736 >        yytype_int16 *yyss1 = yyss;
2737 >        union yyalloc *yyptr =
2738 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2739 >        if (! yyptr)
2740 >          goto yyexhaustedlab;
2741 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2742 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2743 > # undef YYSTACK_RELOCATE
2744 >        if (yyss1 != yyssa)
2745 >          YYSTACK_FREE (yyss1);
2746        }
2747   # endif
3170 #endif /* no yyoverflow */
2748  
2749        yyssp = yyss + yysize - 1;
2750        yyvsp = yyvs + yysize - 1;
2751  
2752        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2753 <                  (unsigned long int) yystacksize));
2753 >                  (unsigned long) yystacksize));
2754  
2755        if (yyss + yystacksize - 1 <= yyssp)
2756 <        YYABORT;
2756 >        YYABORT;
2757      }
2758 + #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
2759  
2760    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2761  
# Line 3186 | Line 2764 | yyparse ()
2764  
2765    goto yybackup;
2766  
2767 +
2768   /*-----------.
2769   | yybackup.  |
2770   `-----------*/
2771   yybackup:
3193
2772    /* Do appropriate processing given the current state.  Read a
2773       lookahead token if we need one and don't already have one.  */
2774  
# Line 3205 | Line 2783 | yybackup:
2783    if (yychar == YYEMPTY)
2784      {
2785        YYDPRINTF ((stderr, "Reading a token: "));
2786 <      yychar = YYLEX;
2786 >      yychar = yylex ();
2787      }
2788  
2789    if (yychar <= YYEOF)
# Line 3245 | Line 2823 | yybackup:
2823    yychar = YYEMPTY;
2824  
2825    yystate = yyn;
2826 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2827    *++yyvsp = yylval;
2828 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2829  
2830    goto yynewstate;
2831  
# Line 3261 | Line 2841 | yydefault:
2841  
2842  
2843   /*-----------------------------.
2844 < | yyreduce -- Do a reduction.  |
2844 > | yyreduce -- do a reduction.  |
2845   `-----------------------------*/
2846   yyreduce:
2847    /* yyn is the number of a rule to reduce with.  */
2848    yylen = yyr2[yyn];
2849  
2850    /* If YYLEN is nonzero, implement the default value of the action:
2851 <     `$$ = $1'.
2851 >     '$$ = $1'.
2852  
2853       Otherwise, the following line sets YYVAL to garbage.
2854       This behavior is undocumented and Bison
# Line 3281 | Line 2861 | yyreduce:
2861    YY_REDUCE_PRINT (yyn);
2862    switch (yyn)
2863      {
2864 <        case 27:
2865 <
3286 < /* Line 1806 of yacc.c  */
3287 < #line 407 "conf_parser.y"
2864 >        case 28:
2865 > #line 405 "conf_parser.y" /* yacc.c:1652  */
2866      { (yyval.number) = 0; }
2867 <    break;
3290 <
3291 <  case 29:
3292 <
3293 < /* Line 1806 of yacc.c  */
3294 < #line 409 "conf_parser.y"
3295 <    {
3296 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3297 <                }
2867 > #line 2868 "conf_parser.c" /* yacc.c:1652  */
2868      break;
2869  
2870    case 30:
2871 <
2872 < /* Line 1806 of yacc.c  */
2873 < #line 413 "conf_parser.y"
3304 <    {
3305 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3306 <                }
2871 > #line 406 "conf_parser.y" /* yacc.c:1652  */
2872 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2873 > #line 2874 "conf_parser.c" /* yacc.c:1652  */
2874      break;
2875  
2876    case 31:
2877 <
2878 < /* Line 1806 of yacc.c  */
2879 < #line 417 "conf_parser.y"
3313 <    {
3314 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3315 <                }
2877 > #line 407 "conf_parser.y" /* yacc.c:1652  */
2878 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2879 > #line 2880 "conf_parser.c" /* yacc.c:1652  */
2880      break;
2881  
2882    case 32:
2883 <
2884 < /* Line 1806 of yacc.c  */
2885 < #line 421 "conf_parser.y"
3322 <    {
3323 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3324 <                }
2883 > #line 408 "conf_parser.y" /* yacc.c:1652  */
2884 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2885 > #line 2886 "conf_parser.c" /* yacc.c:1652  */
2886      break;
2887  
2888    case 33:
2889 <
2890 < /* Line 1806 of yacc.c  */
2891 < #line 425 "conf_parser.y"
3331 <    {
3332 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3333 <                }
2889 > #line 409 "conf_parser.y" /* yacc.c:1652  */
2890 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2891 > #line 2892 "conf_parser.c" /* yacc.c:1652  */
2892      break;
2893  
2894    case 34:
2895 <
2896 < /* Line 1806 of yacc.c  */
2897 < #line 429 "conf_parser.y"
3340 <    {
3341 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3342 <                }
2895 > #line 410 "conf_parser.y" /* yacc.c:1652  */
2896 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2897 > #line 2898 "conf_parser.c" /* yacc.c:1652  */
2898      break;
2899  
2900    case 35:
2901 + #line 411 "conf_parser.y" /* yacc.c:1652  */
2902 +    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2903 + #line 2904 "conf_parser.c" /* yacc.c:1652  */
2904 +    break;
2905  
2906 < /* Line 1806 of yacc.c  */
2907 < #line 434 "conf_parser.y"
2908 <    { (yyval.number) = 0; }
2906 >  case 36:
2907 > #line 412 "conf_parser.y" /* yacc.c:1652  */
2908 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2909 > #line 2910 "conf_parser.c" /* yacc.c:1652  */
2910      break;
2911  
2912    case 37:
2913 <
2914 < /* Line 1806 of yacc.c  */
2915 < #line 435 "conf_parser.y"
3356 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2913 > #line 413 "conf_parser.y" /* yacc.c:1652  */
2914 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2915 > #line 2916 "conf_parser.c" /* yacc.c:1652  */
2916      break;
2917  
2918    case 38:
2919 <
2920 < /* Line 1806 of yacc.c  */
2921 < #line 436 "conf_parser.y"
3363 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2919 > #line 416 "conf_parser.y" /* yacc.c:1652  */
2920 >    { (yyval.number) = 0; }
2921 > #line 2922 "conf_parser.c" /* yacc.c:1652  */
2922      break;
2923  
2924 <  case 39:
2925 <
2926 < /* Line 1806 of yacc.c  */
2927 < #line 437 "conf_parser.y"
3370 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2924 >  case 40:
2925 > #line 417 "conf_parser.y" /* yacc.c:1652  */
2926 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2927 > #line 2928 "conf_parser.c" /* yacc.c:1652  */
2928      break;
2929  
2930 <  case 40:
2930 >  case 41:
2931 > #line 418 "conf_parser.y" /* yacc.c:1652  */
2932 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2933 > #line 2934 "conf_parser.c" /* yacc.c:1652  */
2934 >    break;
2935  
2936 < /* Line 1806 of yacc.c  */
2937 < #line 438 "conf_parser.y"
2938 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2936 >  case 42:
2937 > #line 419 "conf_parser.y" /* yacc.c:1652  */
2938 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2939 > #line 2940 "conf_parser.c" /* yacc.c:1652  */
2940      break;
2941  
2942 <  case 47:
2942 >  case 43:
2943 > #line 420 "conf_parser.y" /* yacc.c:1652  */
2944 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2945 > #line 2946 "conf_parser.c" /* yacc.c:1652  */
2946 >    break;
2947  
2948 < /* Line 1806 of yacc.c  */
2949 < #line 452 "conf_parser.y"
2948 >  case 50:
2949 > #line 433 "conf_parser.y" /* yacc.c:1652  */
2950      {
2951    if (conf_parser_ctx.pass == 2)
2952      add_conf_module(libio_basename(yylval.string));
2953   }
2954 + #line 2955 "conf_parser.c" /* yacc.c:1652  */
2955      break;
2956  
2957 <  case 48:
2958 <
3392 < /* Line 1806 of yacc.c  */
3393 < #line 458 "conf_parser.y"
2957 >  case 51:
2958 > #line 439 "conf_parser.y" /* yacc.c:1652  */
2959      {
2960    if (conf_parser_ctx.pass == 2)
2961      mod_add_path(yylval.string);
2962   }
2963 + #line 2964 "conf_parser.c" /* yacc.c:1652  */
2964      break;
2965  
2966 <  case 72:
2967 <
3402 < /* Line 1806 of yacc.c  */
3403 < #line 483 "conf_parser.y"
3404 <    {
3405 < #ifdef HAVE_LIBCRYPTO
3406 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3407 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3408 < #endif
3409 < }
3410 <    break;
3411 <
3412 <  case 73:
3413 <
3414 < /* Line 1806 of yacc.c  */
3415 < #line 489 "conf_parser.y"
3416 <    {
3417 < #ifdef HAVE_LIBCRYPTO
3418 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3419 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3420 < #endif
3421 < }
3422 <    break;
3423 <
3424 <  case 76:
3425 <
3426 < /* Line 1806 of yacc.c  */
3427 < #line 498 "conf_parser.y"
2966 >  case 71:
2967 > #line 470 "conf_parser.y" /* yacc.c:1652  */
2968      {
2969 < #ifdef HAVE_LIBCRYPTO
2970 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2971 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
2972 < #endif
2969 >  if (conf_parser_ctx.pass == 2)
2970 >  {
2971 >    xfree(ConfigServerInfo.ssl_certificate_file);
2972 >    ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
2973 >  }
2974   }
2975 + #line 2976 "conf_parser.c" /* yacc.c:1652  */
2976      break;
2977  
2978 <  case 77:
2979 <
3438 < /* Line 1806 of yacc.c  */
3439 < #line 504 "conf_parser.y"
2978 >  case 72:
2979 > #line 479 "conf_parser.y" /* yacc.c:1652  */
2980      {
2981 < #ifdef HAVE_LIBCRYPTO
2982 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2983 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
2984 < #endif
2981 >  if (conf_parser_ctx.pass == 2)
2982 >  {
2983 >    xfree(ConfigServerInfo.rsa_private_key_file);
2984 >    ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
2985 >  }
2986   }
2987 + #line 2988 "conf_parser.c" /* yacc.c:1652  */
2988      break;
2989  
2990 <  case 78:
2991 <
3450 < /* Line 1806 of yacc.c  */
3451 < #line 512 "conf_parser.y"
2990 >  case 73:
2991 > #line 488 "conf_parser.y" /* yacc.c:1652  */
2992      {
2993 < #ifdef HAVE_LIBCRYPTO
3454 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2993 >  if (conf_parser_ctx.pass == 2)
2994    {
2995 <    if (!ServerInfo.rsa_private_key_file)
2996 <    {
3458 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3459 <      break;
3460 <    }
3461 <
3462 <    if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3463 <                                     SSL_FILETYPE_PEM) <= 0 ||
3464 <        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3465 <                                     SSL_FILETYPE_PEM) <= 0)
3466 <    {
3467 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3468 <      break;
3469 <    }
3470 <
3471 <    if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3472 <                                    SSL_FILETYPE_PEM) <= 0 ||
3473 <        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3474 <                                    SSL_FILETYPE_PEM) <= 0)
3475 <    {
3476 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3477 <      break;
3478 <    }
3479 <
3480 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3481 <        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3482 <    {
3483 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3484 <      break;
3485 <    }
2995 >    xfree(ConfigServerInfo.ssl_dh_param_file);
2996 >    ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
2997    }
3487 #endif
2998   }
2999 + #line 3000 "conf_parser.c" /* yacc.c:1652  */
3000      break;
3001  
3002 <  case 79:
3003 <
3493 < /* Line 1806 of yacc.c  */
3494 < #line 551 "conf_parser.y"
3002 >  case 74:
3003 > #line 497 "conf_parser.y" /* yacc.c:1652  */
3004      {
3005 < #ifdef HAVE_LIBCRYPTO
3497 <  if (conf_parser_ctx.pass == 1)
3005 >  if (conf_parser_ctx.pass == 2)
3006    {
3007 <    BIO *file;
3008 <
3501 <    if (ServerInfo.rsa_private_key)
3502 <    {
3503 <      RSA_free(ServerInfo.rsa_private_key);
3504 <      ServerInfo.rsa_private_key = NULL;
3505 <    }
3506 <
3507 <    if (ServerInfo.rsa_private_key_file)
3508 <    {
3509 <      MyFree(ServerInfo.rsa_private_key_file);
3510 <      ServerInfo.rsa_private_key_file = NULL;
3511 <    }
3512 <
3513 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3514 <
3515 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3516 <    {
3517 <      yyerror("File open failed, ignoring");
3518 <      break;
3519 <    }
3520 <
3521 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3522 <
3523 <    BIO_set_close(file, BIO_CLOSE);
3524 <    BIO_free(file);
3525 <
3526 <    if (ServerInfo.rsa_private_key == NULL)
3527 <    {
3528 <      yyerror("Couldn't extract key, ignoring");
3529 <      break;
3530 <    }
3531 <
3532 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3533 <    {
3534 <      RSA_free(ServerInfo.rsa_private_key);
3535 <      ServerInfo.rsa_private_key = NULL;
3536 <
3537 <      yyerror("Invalid key, ignoring");
3538 <      break;
3539 <    }
3540 <
3541 <    /* require 2048 bit (256 byte) key */
3542 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3543 <    {
3544 <      RSA_free(ServerInfo.rsa_private_key);
3545 <      ServerInfo.rsa_private_key = NULL;
3546 <
3547 <      yyerror("Not a 2048 bit key, ignoring");
3548 <    }
3007 >    xfree(ConfigServerInfo.ssl_cipher_list);
3008 >    ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
3009    }
3550 #endif
3010   }
3011 + #line 3012 "conf_parser.c" /* yacc.c:1652  */
3012      break;
3013  
3014 <  case 80:
3015 <
3556 < /* Line 1806 of yacc.c  */
3557 < #line 610 "conf_parser.y"
3014 >  case 75:
3015 > #line 506 "conf_parser.y" /* yacc.c:1652  */
3016      {
3017 < /* TBD - XXX: error reporting */
3560 < #ifdef HAVE_LIBCRYPTO
3561 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3017 >  if (conf_parser_ctx.pass == 2)
3018    {
3019 <    BIO *file = BIO_new_file(yylval.string, "r");
3020 <
3565 <    if (file)
3566 <    {
3567 <      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3568 <
3569 <      BIO_free(file);
3570 <
3571 <      if (dh)
3572 <      {
3573 <        SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3574 <        DH_free(dh);
3575 <      }
3576 <    }
3019 >    xfree(ConfigServerInfo.ssl_message_digest_algorithm);
3020 >    ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
3021    }
3578 #endif
3022   }
3023 + #line 3024 "conf_parser.c" /* yacc.c:1652  */
3024      break;
3025  
3026 <  case 81:
3027 <
3584 < /* Line 1806 of yacc.c  */
3585 < #line 634 "conf_parser.y"
3026 >  case 76:
3027 > #line 515 "conf_parser.y" /* yacc.c:1652  */
3028      {
3029 < #ifdef HAVE_LIBCRYPTO
3030 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3031 <    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3032 < #endif
3029 >  if (conf_parser_ctx.pass == 2)
3030 >  {
3031 >    xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3032 >    ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3033 >  }
3034   }
3035 + #line 3036 "conf_parser.c" /* yacc.c:1652  */
3036      break;
3037  
3038 <  case 82:
3039 <
3596 < /* Line 1806 of yacc.c  */
3597 < #line 642 "conf_parser.y"
3038 >  case 77:
3039 > #line 524 "conf_parser.y" /* yacc.c:1652  */
3040      {
3041 <  /* this isn't rehashable */
3042 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3041 >  /* This isn't rehashable */
3042 >  if (conf_parser_ctx.pass == 2 && ConfigServerInfo.name == NULL)
3043    {
3044 <    if (valid_servname(yylval.string))
3045 <      DupString(ServerInfo.name, yylval.string);
3044 >    if (server_valid_name(yylval.string) == true)
3045 >      ConfigServerInfo.name = xstrdup(yylval.string);
3046      else
3047      {
3048 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3049 <      exit(0);
3048 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3049 >      exit(EXIT_FAILURE);
3050      }
3051    }
3052   }
3053 + #line 3054 "conf_parser.c" /* yacc.c:1652  */
3054      break;
3055  
3056 <  case 83:
3057 <
3615 < /* Line 1806 of yacc.c  */
3616 < #line 657 "conf_parser.y"
3056 >  case 78:
3057 > #line 539 "conf_parser.y" /* yacc.c:1652  */
3058      {
3059 <  /* this isn't rehashable */
3060 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3059 >  /* This isn't rehashable */
3060 >  if (conf_parser_ctx.pass == 2 && ConfigServerInfo.sid == NULL)
3061    {
3062      if (valid_sid(yylval.string))
3063 <      DupString(ServerInfo.sid, yylval.string);
3063 >      ConfigServerInfo.sid = xstrdup(yylval.string);
3064      else
3065      {
3066 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3067 <      exit(0);
3066 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3067 >      exit(EXIT_FAILURE);
3068      }
3069    }
3070   }
3071 + #line 3072 "conf_parser.c" /* yacc.c:1652  */
3072      break;
3073  
3074 <  case 84:
3075 <
3634 < /* Line 1806 of yacc.c  */
3635 < #line 672 "conf_parser.y"
3074 >  case 79:
3075 > #line 554 "conf_parser.y" /* yacc.c:1652  */
3076      {
3077    if (conf_parser_ctx.pass == 2)
3078    {
3079 <    MyFree(ServerInfo.description);
3080 <    DupString(ServerInfo.description,yylval.string);
3079 >    xfree(ConfigServerInfo.description);
3080 >    ConfigServerInfo.description = xstrdup(yylval.string);
3081 >    strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3082    }
3083   }
3084 + #line 3085 "conf_parser.c" /* yacc.c:1652  */
3085      break;
3086  
3087 <  case 85:
3088 <
3647 < /* Line 1806 of yacc.c  */
3648 < #line 681 "conf_parser.y"
3087 >  case 80:
3088 > #line 564 "conf_parser.y" /* yacc.c:1652  */
3089      {
3090    if (conf_parser_ctx.pass == 2)
3091    {
3092      char *p;
3093  
3094 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3095 <      p = '\0';
3094 >    if ((p = strchr(yylval.string, ' ')))
3095 >      *p = '\0';
3096  
3097 <    MyFree(ServerInfo.network_name);
3098 <    DupString(ServerInfo.network_name, yylval.string);
3097 >    xfree(ConfigServerInfo.network_name);
3098 >    ConfigServerInfo.network_name = xstrdup(yylval.string);
3099    }
3100   }
3101 + #line 3102 "conf_parser.c" /* yacc.c:1652  */
3102      break;
3103  
3104 <  case 86:
3105 <
3665 < /* Line 1806 of yacc.c  */
3666 < #line 695 "conf_parser.y"
3104 >  case 81:
3105 > #line 578 "conf_parser.y" /* yacc.c:1652  */
3106      {
3107 <  if (conf_parser_ctx.pass == 2)
3669 <  {
3670 <    MyFree(ServerInfo.network_desc);
3671 <    DupString(ServerInfo.network_desc, yylval.string);
3672 <  }
3673 < }
3107 >  if (conf_parser_ctx.pass != 2)
3108      break;
3109  
3110 <  case 87:
3111 <
3678 < /* Line 1806 of yacc.c  */
3679 < #line 704 "conf_parser.y"
3680 <    {
3681 <  if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3682 <  {
3683 <    struct addrinfo hints, *res;
3684 <
3685 <    memset(&hints, 0, sizeof(hints));
3686 <
3687 <    hints.ai_family   = AF_UNSPEC;
3688 <    hints.ai_socktype = SOCK_STREAM;
3689 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3690 <
3691 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3692 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3693 <    else
3694 <    {
3695 <      assert(res != NULL);
3696 <
3697 <      memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3698 <      ServerInfo.ip.ss.ss_family = res->ai_family;
3699 <      ServerInfo.ip.ss_len = res->ai_addrlen;
3700 <      freeaddrinfo(res);
3701 <
3702 <      ServerInfo.specific_ipv4_vhost = 1;
3703 <    }
3704 <  }
3110 >  xfree(ConfigServerInfo.network_desc);
3111 >  ConfigServerInfo.network_desc = xstrdup(yylval.string);
3112   }
3113 + #line 3114 "conf_parser.c" /* yacc.c:1652  */
3114      break;
3115  
3116 <  case 88:
3117 <
3710 < /* Line 1806 of yacc.c  */
3711 < #line 732 "conf_parser.y"
3116 >  case 82:
3117 > #line 587 "conf_parser.y" /* yacc.c:1652  */
3118      {
3119 < #ifdef IPV6
3120 <  if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3715 <  {
3716 <    struct addrinfo hints, *res;
3717 <
3718 <    memset(&hints, 0, sizeof(hints));
3719 <
3720 <    hints.ai_family   = AF_UNSPEC;
3721 <    hints.ai_socktype = SOCK_STREAM;
3722 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3119 >  if (conf_parser_ctx.pass != 2)
3120 >    break;
3121  
3122 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3123 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3124 <    else
3125 <    {
3126 <      assert(res != NULL);
3122 >  if ((yyvsp[-1].number) < 1)
3123 >  {
3124 >    conf_error_report("default_max_clients too low, setting to 1");
3125 >    ConfigServerInfo.default_max_clients = 1;
3126 >  }
3127 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3128 >  {
3129 >    char buf[IRCD_BUFSIZE] = "";
3130  
3131 <      memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3132 <      ServerInfo.ip6.ss.ss_family = res->ai_family;
3732 <      ServerInfo.ip6.ss_len = res->ai_addrlen;
3733 <      freeaddrinfo(res);
3131 >    snprintf(buf, sizeof(buf), "default_max_clients too high, setting to %d", MAXCLIENTS_MAX);
3132 >    conf_error_report(buf);
3133  
3134 <      ServerInfo.specific_ipv6_vhost = 1;
3736 <    }
3134 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3135    }
3136 < #endif
3136 >  else
3137 >    ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3138   }
3139 + #line 3140 "conf_parser.c" /* yacc.c:1652  */
3140      break;
3141  
3142 <  case 89:
3143 <
3744 < /* Line 1806 of yacc.c  */
3745 < #line 762 "conf_parser.y"
3142 >  case 83:
3143 > #line 610 "conf_parser.y" /* yacc.c:1652  */
3144      {
3145 <  if (conf_parser_ctx.pass == 2)
3145 >  if (conf_parser_ctx.pass != 2)
3146 >    break;
3147 >
3148 >  if ((yyvsp[-1].number) < 9)
3149 >  {
3150 >    conf_error_report("max_nick_length too low, setting to 9");
3151 >    ConfigServerInfo.max_nick_length = 9;
3152 >  }
3153 >  else if ((yyvsp[-1].number) > NICKLEN)
3154    {
3155 <    recalc_fdlimit(NULL);
3155 >    char buf[IRCD_BUFSIZE] = "";
3156  
3157 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3158 <    {
3159 <      char buf[IRCD_BUFSIZE];
3160 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3755 <      yyerror(buf);
3756 <    }
3757 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3758 <    {
3759 <      char buf[IRCD_BUFSIZE];
3760 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3761 <      yyerror(buf);
3762 <    }
3763 <    else
3764 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3157 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3158 >    conf_error_report(buf);
3159 >
3160 >    ConfigServerInfo.max_nick_length = NICKLEN;
3161    }
3162 +  else
3163 +    ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3164   }
3165 + #line 3166 "conf_parser.c" /* yacc.c:1652  */
3166      break;
3167  
3168 <  case 90:
3169 <
3771 < /* Line 1806 of yacc.c  */
3772 < #line 785 "conf_parser.y"
3168 >  case 84:
3169 > #line 633 "conf_parser.y" /* yacc.c:1652  */
3170      {
3171 <  if (conf_parser_ctx.pass == 2)
3775 <    ServerInfo.hub = yylval.number;
3776 < }
3171 >  if (conf_parser_ctx.pass != 2)
3172      break;
3173  
3174 <  case 98:
3780 <
3781 < /* Line 1806 of yacc.c  */
3782 < #line 800 "conf_parser.y"
3783 <    {
3784 <  if (conf_parser_ctx.pass == 2)
3174 >  if ((yyvsp[-1].number) < 80)
3175    {
3176 <    MyFree(AdminInfo.name);
3177 <    DupString(AdminInfo.name, yylval.string);
3176 >    conf_error_report("max_topic_length too low, setting to 80");
3177 >    ConfigServerInfo.max_topic_length = 80;
3178    }
3179 < }
3180 <    break;
3179 >  else if ((yyvsp[-1].number) > TOPICLEN)
3180 >  {
3181 >    char buf[IRCD_BUFSIZE] = "";
3182  
3183 <  case 99:
3183 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3184 >    conf_error_report(buf);
3185  
3186 < /* Line 1806 of yacc.c  */
3795 < #line 809 "conf_parser.y"
3796 <    {
3797 <  if (conf_parser_ctx.pass == 2)
3798 <  {
3799 <    MyFree(AdminInfo.email);
3800 <    DupString(AdminInfo.email, yylval.string);
3186 >    ConfigServerInfo.max_topic_length = TOPICLEN;
3187    }
3188 +  else
3189 +    ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3190   }
3191 + #line 3192 "conf_parser.c" /* yacc.c:1652  */
3192      break;
3193  
3194 <  case 100:
3195 <
3807 < /* Line 1806 of yacc.c  */
3808 < #line 818 "conf_parser.y"
3194 >  case 85:
3195 > #line 656 "conf_parser.y" /* yacc.c:1652  */
3196      {
3197    if (conf_parser_ctx.pass == 2)
3198 <  {
3812 <    MyFree(AdminInfo.description);
3813 <    DupString(AdminInfo.description, yylval.string);
3814 <  }
3198 >    ConfigServerInfo.hub = yylval.number;
3199   }
3200 + #line 3201 "conf_parser.c" /* yacc.c:1652  */
3201      break;
3202  
3203 <  case 107:
3204 <
3820 < /* Line 1806 of yacc.c  */
3821 < #line 836 "conf_parser.y"
3203 >  case 93:
3204 > #line 674 "conf_parser.y" /* yacc.c:1652  */
3205      {
3206 <  if (conf_parser_ctx.pass == 2)
3824 <    ConfigLoggingEntry.use_logging = yylval.number;
3825 < }
3206 >  if (conf_parser_ctx.pass != 2)
3207      break;
3208  
3209 <  case 108:
3210 <
3830 < /* Line 1806 of yacc.c  */
3831 < #line 842 "conf_parser.y"
3832 <    {
3833 <  lfile[0] = '\0';
3834 <  ltype = 0;
3835 <  lsize = 0;
3209 >  xfree(ConfigAdminInfo.name);
3210 >  ConfigAdminInfo.name = xstrdup(yylval.string);
3211   }
3212 + #line 3213 "conf_parser.c" /* yacc.c:1652  */
3213      break;
3214  
3215 <  case 109:
3216 <
3841 < /* Line 1806 of yacc.c  */
3842 < #line 847 "conf_parser.y"
3215 >  case 94:
3216 > #line 683 "conf_parser.y" /* yacc.c:1652  */
3217      {
3218 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3845 <    log_add_file(ltype, lsize, lfile);
3846 < }
3218 >  if (conf_parser_ctx.pass != 2)
3219      break;
3220  
3221 <  case 116:
3222 <
3851 < /* Line 1806 of yacc.c  */
3852 < #line 859 "conf_parser.y"
3853 <    {
3854 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3221 >  xfree(ConfigAdminInfo.email);
3222 >  ConfigAdminInfo.email = xstrdup(yylval.string);
3223   }
3224 + #line 3225 "conf_parser.c" /* yacc.c:1652  */
3225      break;
3226  
3227 <  case 117:
3228 <
3860 < /* Line 1806 of yacc.c  */
3861 < #line 864 "conf_parser.y"
3227 >  case 95:
3228 > #line 692 "conf_parser.y" /* yacc.c:1652  */
3229      {
3230 <  lsize = (yyvsp[(3) - (4)].number);
3864 < }
3230 >  if (conf_parser_ctx.pass != 2)
3231      break;
3232  
3233 <  case 118:
3234 <
3869 < /* Line 1806 of yacc.c  */
3870 < #line 867 "conf_parser.y"
3871 <    {
3872 <  lsize = 0;
3233 >  xfree(ConfigAdminInfo.description);
3234 >  ConfigAdminInfo.description = xstrdup(yylval.string);
3235   }
3236 + #line 3237 "conf_parser.c" /* yacc.c:1652  */
3237      break;
3238  
3239 <  case 119:
3240 <
3878 < /* Line 1806 of yacc.c  */
3879 < #line 872 "conf_parser.y"
3239 >  case 96:
3240 > #line 705 "conf_parser.y" /* yacc.c:1652  */
3241      {
3242    if (conf_parser_ctx.pass == 2)
3243 <    ltype = 0;
3243 >    reset_block_state();
3244   }
3245 + #line 3246 "conf_parser.c" /* yacc.c:1652  */
3246      break;
3247  
3248 <  case 123:
3249 <
3888 < /* Line 1806 of yacc.c  */
3889 < #line 879 "conf_parser.y"
3248 >  case 97:
3249 > #line 709 "conf_parser.y" /* yacc.c:1652  */
3250      {
3251 <  if (conf_parser_ctx.pass == 2)
3252 <    ltype = LOG_TYPE_USER;
3253 < }
3251 >  dlink_node *node = NULL;
3252 >
3253 >  if (conf_parser_ctx.pass != 2)
3254      break;
3255  
3256 <  case 124:
3256 >  if (!block_state.file.buf[0])
3257 >    break;
3258  
3259 < /* Line 1806 of yacc.c  */
3260 < #line 883 "conf_parser.y"
3900 <    {
3901 <  if (conf_parser_ctx.pass == 2)
3902 <    ltype = LOG_TYPE_OPER;
3259 >  DLINK_FOREACH(node, block_state.mask.list.head)
3260 >    motd_add(node->data, block_state.file.buf);
3261   }
3262 + #line 3263 "conf_parser.c" /* yacc.c:1652  */
3263      break;
3264  
3265 <  case 125:
3266 <
3908 < /* Line 1806 of yacc.c  */
3909 < #line 887 "conf_parser.y"
3265 >  case 103:
3266 > #line 726 "conf_parser.y" /* yacc.c:1652  */
3267      {
3268    if (conf_parser_ctx.pass == 2)
3269 <    ltype = LOG_TYPE_GLINE;
3269 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3270   }
3271 + #line 3272 "conf_parser.c" /* yacc.c:1652  */
3272      break;
3273  
3274 <  case 126:
3275 <
3918 < /* Line 1806 of yacc.c  */
3919 < #line 891 "conf_parser.y"
3274 >  case 104:
3275 > #line 732 "conf_parser.y" /* yacc.c:1652  */
3276      {
3277    if (conf_parser_ctx.pass == 2)
3278 <    ltype = LOG_TYPE_DLINE;
3278 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3279   }
3280 + #line 3281 "conf_parser.c" /* yacc.c:1652  */
3281      break;
3282  
3283 <  case 127:
3284 <
3928 < /* Line 1806 of yacc.c  */
3929 < #line 895 "conf_parser.y"
3283 >  case 105:
3284 > #line 742 "conf_parser.y" /* yacc.c:1652  */
3285      {
3286    if (conf_parser_ctx.pass == 2)
3287 <    ltype = LOG_TYPE_KLINE;
3287 >    reset_block_state();
3288   }
3289 + #line 3290 "conf_parser.c" /* yacc.c:1652  */
3290      break;
3291  
3292 <  case 128:
3293 <
3938 < /* Line 1806 of yacc.c  */
3939 < #line 899 "conf_parser.y"
3292 >  case 106:
3293 > #line 746 "conf_parser.y" /* yacc.c:1652  */
3294      {
3295 <  if (conf_parser_ctx.pass == 2)
3942 <    ltype = LOG_TYPE_KILL;
3943 < }
3295 >  if (conf_parser_ctx.pass != 2)
3296      break;
3297  
3298 <  case 129:
3298 >  if (!block_state.command.buf[0] ||
3299 >      !block_state.name.buf[0] ||
3300 >      !block_state.nick.buf[0] ||
3301 >      !block_state.host.buf[0])
3302 >    break;
3303  
3304 < /* Line 1806 of yacc.c  */
3305 < #line 903 "conf_parser.y"
3950 <    {
3951 <  if (conf_parser_ctx.pass == 2)
3952 <    ltype = LOG_TYPE_DEBUG;
3304 >  pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3305 >                  block_state.prepend.buf, block_state.command.buf);
3306   }
3307 + #line 3308 "conf_parser.c" /* yacc.c:1652  */
3308      break;
3309  
3310 <  case 130:
3311 <
3958 < /* Line 1806 of yacc.c  */
3959 < #line 913 "conf_parser.y"
3310 >  case 114:
3311 > #line 764 "conf_parser.y" /* yacc.c:1652  */
3312      {
3313    if (conf_parser_ctx.pass == 2)
3314 <  {
3963 <    yy_conf = make_conf_item(OPER_TYPE);
3964 <    yy_aconf = map_to_conf(yy_conf);
3965 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3966 <  }
3967 <  else
3968 <  {
3969 <    MyFree(class_name);
3970 <    class_name = NULL;
3971 <  }
3314 >    strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3315   }
3316 + #line 3317 "conf_parser.c" /* yacc.c:1652  */
3317      break;
3318  
3319 <  case 131:
3320 <
3977 < /* Line 1806 of yacc.c  */
3978 < #line 926 "conf_parser.y"
3319 >  case 115:
3320 > #line 770 "conf_parser.y" /* yacc.c:1652  */
3321      {
3322    if (conf_parser_ctx.pass == 2)
3323 <  {
3982 <    struct CollectItem *yy_tmp;
3983 <    dlink_node *ptr;
3984 <    dlink_node *next_ptr;
3985 <
3986 <    conf_add_class_to_conf(yy_conf, class_name);
3987 <
3988 <    /* Now, make sure there is a copy of the "base" given oper
3989 <     * block in each of the collected copies
3990 <     */
3991 <
3992 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3993 <    {
3994 <      struct AccessItem *new_aconf;
3995 <      struct ConfItem *new_conf;
3996 <      yy_tmp = ptr->data;
3997 <
3998 <      new_conf = make_conf_item(OPER_TYPE);
3999 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4000 <
4001 <      new_aconf->flags = yy_aconf->flags;
4002 <
4003 <      if (yy_conf->name != NULL)
4004 <        DupString(new_conf->name, yy_conf->name);
4005 <      if (yy_tmp->user != NULL)
4006 <        DupString(new_aconf->user, yy_tmp->user);
4007 <      else
4008 <        DupString(new_aconf->user, "*");
4009 <      if (yy_tmp->host != NULL)
4010 <        DupString(new_aconf->host, yy_tmp->host);
4011 <      else
4012 <        DupString(new_aconf->host, "*");
4013 <
4014 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->ipnum,
4015 <                                     &new_aconf->bits);
4016 <
4017 <      conf_add_class_to_conf(new_conf, class_name);
4018 <      if (yy_aconf->passwd != NULL)
4019 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4020 <
4021 <      new_aconf->port = yy_aconf->port;
4022 < #ifdef HAVE_LIBCRYPTO
4023 <      if (yy_aconf->rsa_public_key_file != NULL)
4024 <      {
4025 <        BIO *file;
4026 <
4027 <        DupString(new_aconf->rsa_public_key_file,
4028 <                  yy_aconf->rsa_public_key_file);
4029 <
4030 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4031 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4032 <                                                           NULL, 0, NULL);
4033 <        BIO_set_close(file, BIO_CLOSE);
4034 <        BIO_free(file);
4035 <      }
4036 < #endif
4037 <
4038 < #ifdef HAVE_LIBCRYPTO
4039 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4040 <          && yy_tmp->host)
4041 < #else
4042 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4043 < #endif
4044 <      {
4045 <        conf_add_class_to_conf(new_conf, class_name);
4046 <        if (yy_tmp->name != NULL)
4047 <          DupString(new_conf->name, yy_tmp->name);
4048 <      }
4049 <
4050 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4051 <      free_collect_item(yy_tmp);
4052 <    }
4053 <
4054 <    yy_conf = NULL;
4055 <    yy_aconf = NULL;
4056 <
4057 <
4058 <    MyFree(class_name);
4059 <    class_name = NULL;
4060 <  }
3323 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3324   }
3325 + #line 3326 "conf_parser.c" /* yacc.c:1652  */
3326      break;
3327  
3328 <  case 143:
3329 <
4066 < /* Line 1806 of yacc.c  */
4067 < #line 1016 "conf_parser.y"
3328 >  case 116:
3329 > #line 776 "conf_parser.y" /* yacc.c:1652  */
3330      {
3331    if (conf_parser_ctx.pass == 2)
3332 <  {
4071 <    if (strlen(yylval.string) > OPERNICKLEN)
4072 <      yylval.string[OPERNICKLEN] = '\0';
4073 <
4074 <    MyFree(yy_conf->name);
4075 <    DupString(yy_conf->name, yylval.string);
4076 <  }
3332 >    strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3333   }
3334 + #line 3335 "conf_parser.c" /* yacc.c:1652  */
3335      break;
3336  
3337 <  case 144:
3338 <
4082 < /* Line 1806 of yacc.c  */
4083 < #line 1028 "conf_parser.y"
3337 >  case 117:
3338 > #line 782 "conf_parser.y" /* yacc.c:1652  */
3339      {
3340    if (conf_parser_ctx.pass == 2)
3341    {
# Line 4088 | Line 3343 | yyreduce:
3343  
3344      nuh.nuhmask  = yylval.string;
3345      nuh.nickptr  = NULL;
3346 <    nuh.userptr  = userbuf;
3347 <    nuh.hostptr  = hostbuf;
4093 <
3346 >    nuh.userptr  = block_state.nick.buf;
3347 >    nuh.hostptr  = block_state.host.buf;
3348      nuh.nicksize = 0;
3349 <    nuh.usersize = sizeof(userbuf);
3350 <    nuh.hostsize = sizeof(hostbuf);
3349 >    nuh.usersize = sizeof(block_state.nick.buf);
3350 >    nuh.hostsize = sizeof(block_state.host.buf);
3351  
3352      split_nuh(&nuh);
4099
4100    if (yy_aconf->user == NULL)
4101    {
4102      DupString(yy_aconf->user, userbuf);
4103      DupString(yy_aconf->host, hostbuf);
4104
4105      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->ipnum,
4106                                    &yy_aconf->bits);
4107    }
4108    else
4109    {
4110      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
4111
4112      DupString(yy_tmp->user, userbuf);
4113      DupString(yy_tmp->host, hostbuf);
4114
4115      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4116    }
3353    }
3354   }
3355 + #line 3356 "conf_parser.c" /* yacc.c:1652  */
3356      break;
3357  
3358 <  case 145:
3359 <
4123 < /* Line 1806 of yacc.c  */
4124 < #line 1065 "conf_parser.y"
3358 >  case 124:
3359 > #line 810 "conf_parser.y" /* yacc.c:1652  */
3360      {
3361    if (conf_parser_ctx.pass == 2)
3362 <  {
4128 <    if (yy_aconf->passwd != NULL)
4129 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4130 <
4131 <    MyFree(yy_aconf->passwd);
4132 <    DupString(yy_aconf->passwd, yylval.string);
4133 <  }
3362 >    ConfigLog.use_logging = yylval.number;
3363   }
3364 + #line 3365 "conf_parser.c" /* yacc.c:1652  */
3365      break;
3366  
3367 <  case 146:
3368 <
4139 < /* Line 1806 of yacc.c  */
4140 < #line 1077 "conf_parser.y"
3367 >  case 125:
3368 > #line 816 "conf_parser.y" /* yacc.c:1652  */
3369      {
3370    if (conf_parser_ctx.pass == 2)
3371 <  {
4144 <    if (yylval.number)
4145 <      SetConfEncrypted(yy_aconf);
4146 <    else
4147 <      ClearConfEncrypted(yy_aconf);
4148 <  }
3371 >    reset_block_state();
3372   }
3373 + #line 3374 "conf_parser.c" /* yacc.c:1652  */
3374      break;
3375  
3376 <  case 147:
3377 <
4154 < /* Line 1806 of yacc.c  */
4155 < #line 1088 "conf_parser.y"
3376 >  case 126:
3377 > #line 820 "conf_parser.y" /* yacc.c:1652  */
3378      {
3379 < #ifdef HAVE_LIBCRYPTO
3380 <  if (conf_parser_ctx.pass == 2)
4159 <  {
4160 <    BIO *file;
3379 >  if (conf_parser_ctx.pass != 2)
3380 >    break;
3381  
3382 <    if (yy_aconf->rsa_public_key != NULL)
3383 <    {
3384 <      RSA_free(yy_aconf->rsa_public_key);
3385 <      yy_aconf->rsa_public_key = NULL;
3386 <    }
3382 >  if (block_state.type.value && block_state.file.buf[0])
3383 >    log_set_file(block_state.type.value, block_state.size.value,
3384 >                 block_state.file.buf);
3385 > }
3386 > #line 3387 "conf_parser.c" /* yacc.c:1652  */
3387 >    break;
3388  
3389 <    if (yy_aconf->rsa_public_key_file != NULL)
3389 >  case 133:
3390 > #line 836 "conf_parser.y" /* yacc.c:1652  */
3391      {
3392 <      MyFree(yy_aconf->rsa_public_key_file);
3393 <      yy_aconf->rsa_public_key_file = NULL;
4172 <    }
3392 >  if (conf_parser_ctx.pass != 2)
3393 >    break;
3394  
3395 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3396 <    file = BIO_new_file(yylval.string, "r");
3395 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3396 > }
3397 > #line 3398 "conf_parser.c" /* yacc.c:1652  */
3398 >    break;
3399  
3400 <    if (file == NULL)
3400 >  case 134:
3401 > #line 844 "conf_parser.y" /* yacc.c:1652  */
3402      {
3403 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3404 <      break;
3405 <    }
3406 <
4183 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3403 >  block_state.size.value = (yyvsp[-1].number);
3404 > }
3405 > #line 3406 "conf_parser.c" /* yacc.c:1652  */
3406 >    break;
3407  
3408 <    if (yy_aconf->rsa_public_key == NULL)
3408 >  case 135:
3409 > #line 847 "conf_parser.y" /* yacc.c:1652  */
3410      {
3411 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4188 <      break;
4189 <    }
4190 <
4191 <    BIO_set_close(file, BIO_CLOSE);
4192 <    BIO_free(file);
4193 <  }
4194 < #endif /* HAVE_LIBCRYPTO */
3411 >  block_state.size.value = 0;
3412   }
3413 + #line 3414 "conf_parser.c" /* yacc.c:1652  */
3414      break;
3415  
3416 <  case 148:
3417 <
4200 < /* Line 1806 of yacc.c  */
4201 < #line 1130 "conf_parser.y"
3416 >  case 136:
3417 > #line 852 "conf_parser.y" /* yacc.c:1652  */
3418      {
3419    if (conf_parser_ctx.pass == 2)
3420 <  {
4205 <    MyFree(class_name);
4206 <    DupString(class_name, yylval.string);
4207 <  }
3420 >    block_state.type.value = 0;
3421   }
3422 + #line 3423 "conf_parser.c" /* yacc.c:1652  */
3423      break;
3424  
3425 <  case 149:
3426 <
4213 < /* Line 1806 of yacc.c  */
4214 < #line 1139 "conf_parser.y"
3425 >  case 140:
3426 > #line 859 "conf_parser.y" /* yacc.c:1652  */
3427      {
3428    if (conf_parser_ctx.pass == 2)
3429 <    yy_aconf->modes = 0;
3429 >    block_state.type.value = LOG_TYPE_USER;
3430   }
3431 + #line 3432 "conf_parser.c" /* yacc.c:1652  */
3432      break;
3433  
3434 <  case 153:
3435 <
4223 < /* Line 1806 of yacc.c  */
4224 < #line 1146 "conf_parser.y"
3434 >  case 141:
3435 > #line 863 "conf_parser.y" /* yacc.c:1652  */
3436      {
3437    if (conf_parser_ctx.pass == 2)
3438 <    yy_aconf->modes |= UMODE_BOTS;
3438 >    block_state.type.value = LOG_TYPE_OPER;
3439   }
3440 + #line 3441 "conf_parser.c" /* yacc.c:1652  */
3441      break;
3442  
3443 <  case 154:
3444 <
4233 < /* Line 1806 of yacc.c  */
4234 < #line 1150 "conf_parser.y"
3443 >  case 142:
3444 > #line 867 "conf_parser.y" /* yacc.c:1652  */
3445      {
3446    if (conf_parser_ctx.pass == 2)
3447 <    yy_aconf->modes |= UMODE_CCONN;
3447 >    block_state.type.value = LOG_TYPE_XLINE;
3448   }
3449 + #line 3450 "conf_parser.c" /* yacc.c:1652  */
3450      break;
3451  
3452 <  case 155:
3453 <
4243 < /* Line 1806 of yacc.c  */
4244 < #line 1154 "conf_parser.y"
3452 >  case 143:
3453 > #line 871 "conf_parser.y" /* yacc.c:1652  */
3454      {
3455    if (conf_parser_ctx.pass == 2)
3456 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3456 >    block_state.type.value = LOG_TYPE_RESV;
3457   }
3458 + #line 3459 "conf_parser.c" /* yacc.c:1652  */
3459      break;
3460  
3461 <  case 156:
3462 <
4253 < /* Line 1806 of yacc.c  */
4254 < #line 1158 "conf_parser.y"
3461 >  case 144:
3462 > #line 875 "conf_parser.y" /* yacc.c:1652  */
3463      {
3464    if (conf_parser_ctx.pass == 2)
3465 <    yy_aconf->modes |= UMODE_DEAF;
3465 >    block_state.type.value = LOG_TYPE_DLINE;
3466   }
3467 + #line 3468 "conf_parser.c" /* yacc.c:1652  */
3468      break;
3469  
3470 <  case 157:
3471 <
4263 < /* Line 1806 of yacc.c  */
4264 < #line 1162 "conf_parser.y"
3470 >  case 145:
3471 > #line 879 "conf_parser.y" /* yacc.c:1652  */
3472      {
3473    if (conf_parser_ctx.pass == 2)
3474 <    yy_aconf->modes |= UMODE_DEBUG;
3474 >    block_state.type.value = LOG_TYPE_KLINE;
3475   }
3476 + #line 3477 "conf_parser.c" /* yacc.c:1652  */
3477      break;
3478  
3479 <  case 158:
3480 <
4273 < /* Line 1806 of yacc.c  */
4274 < #line 1166 "conf_parser.y"
3479 >  case 146:
3480 > #line 883 "conf_parser.y" /* yacc.c:1652  */
3481      {
3482    if (conf_parser_ctx.pass == 2)
3483 <    yy_aconf->modes |= UMODE_FULL;
3483 >    block_state.type.value = LOG_TYPE_KILL;
3484   }
3485 + #line 3486 "conf_parser.c" /* yacc.c:1652  */
3486      break;
3487  
3488 <  case 159:
3489 <
4283 < /* Line 1806 of yacc.c  */
4284 < #line 1170 "conf_parser.y"
3488 >  case 147:
3489 > #line 887 "conf_parser.y" /* yacc.c:1652  */
3490      {
3491    if (conf_parser_ctx.pass == 2)
3492 <    yy_aconf->modes |= UMODE_HIDDEN;
3492 >    block_state.type.value = LOG_TYPE_DEBUG;
3493   }
3494 + #line 3495 "conf_parser.c" /* yacc.c:1652  */
3495      break;
3496  
3497 <  case 160:
3498 <
4293 < /* Line 1806 of yacc.c  */
4294 < #line 1174 "conf_parser.y"
3497 >  case 148:
3498 > #line 897 "conf_parser.y" /* yacc.c:1652  */
3499      {
3500 <  if (conf_parser_ctx.pass == 2)
4297 <    yy_aconf->modes |= UMODE_SKILL;
4298 < }
3500 >  if (conf_parser_ctx.pass != 2)
3501      break;
3502  
3503 <  case 161:
3503 >  reset_block_state();
3504 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3505 > }
3506 > #line 3507 "conf_parser.c" /* yacc.c:1652  */
3507 >    break;
3508  
3509 < /* Line 1806 of yacc.c  */
3510 < #line 1178 "conf_parser.y"
3509 >  case 149:
3510 > #line 904 "conf_parser.y" /* yacc.c:1652  */
3511      {
3512 <  if (conf_parser_ctx.pass == 2)
3513 <    yy_aconf->modes |= UMODE_NCHANGE;
3514 < }
3512 >  dlink_node *node = NULL;
3513 >
3514 >  if (conf_parser_ctx.pass != 2)
3515      break;
3516  
3517 <  case 162:
3517 >  if (!block_state.name.buf[0])
3518 >    break;
3519  
3520 < /* Line 1806 of yacc.c  */
3521 < #line 1182 "conf_parser.y"
3522 <    {
3523 <  if (conf_parser_ctx.pass == 2)
3524 <    yy_aconf->modes |= UMODE_REJ;
3520 >  if (!block_state.rpass.buf[0])
3521 >    break;
3522 >
3523 >  DLINK_FOREACH(node, block_state.mask.list.head)
3524 >  {
3525 >    struct split_nuh_item nuh;
3526 >    char *s = node->data;
3527 >
3528 >    if (EmptyString(s))
3529 >      continue;
3530 >
3531 >    nuh.nuhmask  = s;
3532 >    nuh.nickptr  = NULL;
3533 >    nuh.userptr  = block_state.user.buf;
3534 >    nuh.hostptr  = block_state.host.buf;
3535 >
3536 >    nuh.nicksize = 0;
3537 >    nuh.usersize = sizeof(block_state.user.buf);
3538 >    nuh.hostsize = sizeof(block_state.host.buf);
3539 >
3540 >    split_nuh(&nuh);
3541 >
3542 >    struct MaskItem *conf = conf_make(CONF_OPER);
3543 >    conf->addr = xcalloc(sizeof(*conf->addr));
3544 >    conf->name = xstrdup(block_state.name.buf);
3545 >    conf->user = xstrdup(block_state.user.buf);
3546 >    conf->host = xstrdup(block_state.host.buf);
3547 >
3548 >    if (block_state.cert.buf[0])
3549 >      conf->certfp = xstrdup(block_state.cert.buf);
3550 >
3551 >    if (block_state.rpass.buf[0])
3552 >      conf->passwd = xstrdup(block_state.rpass.buf);
3553 >
3554 >    if (block_state.whois.buf[0])
3555 >      conf->whois = xstrdup(block_state.whois.buf);
3556 >
3557 >    conf->flags = block_state.flags.value;
3558 >    conf->modes = block_state.modes.value;
3559 >    conf->port  = block_state.port.value;
3560 >    conf->htype = parse_netmask(conf->host, conf->addr, &conf->bits);
3561 >
3562 >    conf_add_class_to_conf(conf, block_state.class.buf);
3563 >  }
3564   }
3565 + #line 3566 "conf_parser.c" /* yacc.c:1652  */
3566      break;
3567  
3568    case 163:
3569 <
4323 < /* Line 1806 of yacc.c  */
4324 < #line 1186 "conf_parser.y"
3569 > #line 973 "conf_parser.y" /* yacc.c:1652  */
3570      {
3571    if (conf_parser_ctx.pass == 2)
3572 <    yy_aconf->modes |= UMODE_UNAUTH;
3572 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3573   }
3574 + #line 3575 "conf_parser.c" /* yacc.c:1652  */
3575      break;
3576  
3577    case 164:
3578 <
4333 < /* Line 1806 of yacc.c  */
4334 < #line 1190 "conf_parser.y"
3578 > #line 979 "conf_parser.y" /* yacc.c:1652  */
3579      {
3580    if (conf_parser_ctx.pass == 2)
3581 <    yy_aconf->modes |= UMODE_SPY;
3581 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3582   }
3583 + #line 3584 "conf_parser.c" /* yacc.c:1652  */
3584      break;
3585  
3586    case 165:
3587 <
4343 < /* Line 1806 of yacc.c  */
4344 < #line 1194 "conf_parser.y"
3587 > #line 985 "conf_parser.y" /* yacc.c:1652  */
3588      {
3589    if (conf_parser_ctx.pass == 2)
3590 <    yy_aconf->modes |= UMODE_EXTERNAL;
3590 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3591   }
3592 + #line 3593 "conf_parser.c" /* yacc.c:1652  */
3593      break;
3594  
3595    case 166:
3596 <
4353 < /* Line 1806 of yacc.c  */
4354 < #line 1198 "conf_parser.y"
3596 > #line 991 "conf_parser.y" /* yacc.c:1652  */
3597      {
3598    if (conf_parser_ctx.pass == 2)
3599 <    yy_aconf->modes |= UMODE_OPERWALL;
3599 >    strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3600   }
3601 + #line 3602 "conf_parser.c" /* yacc.c:1652  */
3602      break;
3603  
3604    case 167:
3605 <
4363 < /* Line 1806 of yacc.c  */
4364 < #line 1202 "conf_parser.y"
3605 > #line 997 "conf_parser.y" /* yacc.c:1652  */
3606      {
3607 <  if (conf_parser_ctx.pass == 2)
3608 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3607 >  if (conf_parser_ctx.pass != 2)
3608 >    break;
3609 >
3610 >  if (yylval.number)
3611 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3612 >  else
3613 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3614   }
3615 + #line 3616 "conf_parser.c" /* yacc.c:1652  */
3616      break;
3617  
3618    case 168:
3619 <
4373 < /* Line 1806 of yacc.c  */
4374 < #line 1206 "conf_parser.y"
3619 > #line 1008 "conf_parser.y" /* yacc.c:1652  */
3620      {
3621    if (conf_parser_ctx.pass == 2)
3622 <    yy_aconf->modes |= UMODE_INVISIBLE;
3622 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3623   }
3624 + #line 3625 "conf_parser.c" /* yacc.c:1652  */
3625      break;
3626  
3627    case 169:
3628 <
4383 < /* Line 1806 of yacc.c  */
4384 < #line 1210 "conf_parser.y"
3628 > #line 1014 "conf_parser.y" /* yacc.c:1652  */
3629      {
3630 <  if (conf_parser_ctx.pass == 2)
3631 <    yy_aconf->modes |= UMODE_WALLOP;
3630 >  if (conf_parser_ctx.pass != 2)
3631 >    break;
3632 >
3633 >  if (yylval.number)
3634 >    block_state.flags.value |= CONF_FLAGS_SSL;
3635 >  else
3636 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3637   }
3638 + #line 3639 "conf_parser.c" /* yacc.c:1652  */
3639      break;
3640  
3641    case 170:
3642 <
4393 < /* Line 1806 of yacc.c  */
4394 < #line 1214 "conf_parser.y"
3642 > #line 1025 "conf_parser.y" /* yacc.c:1652  */
3643      {
3644    if (conf_parser_ctx.pass == 2)
3645 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
3645 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3646   }
3647 + #line 3648 "conf_parser.c" /* yacc.c:1652  */
3648      break;
3649  
3650    case 171:
3651 <
4403 < /* Line 1806 of yacc.c  */
4404 < #line 1218 "conf_parser.y"
3651 > #line 1031 "conf_parser.y" /* yacc.c:1652  */
3652      {
3653    if (conf_parser_ctx.pass == 2)
3654 <    yy_aconf->modes |= UMODE_CALLERID;
3654 >    block_state.modes.value = 0;
3655   }
3656 + #line 3657 "conf_parser.c" /* yacc.c:1652  */
3657      break;
3658  
3659 <  case 172:
3660 <
4413 < /* Line 1806 of yacc.c  */
4414 < #line 1222 "conf_parser.y"
3659 >  case 175:
3660 > #line 1038 "conf_parser.y" /* yacc.c:1652  */
3661      {
3662    if (conf_parser_ctx.pass == 2)
3663 <    yy_aconf->modes |= UMODE_LOCOPS;
3663 >    block_state.modes.value |= UMODE_BOTS;
3664   }
3665 + #line 3666 "conf_parser.c" /* yacc.c:1652  */
3666      break;
3667  
3668 <  case 173:
3669 <
4423 < /* Line 1806 of yacc.c  */
4424 < #line 1228 "conf_parser.y"
3668 >  case 176:
3669 > #line 1042 "conf_parser.y" /* yacc.c:1652  */
3670      {
3671    if (conf_parser_ctx.pass == 2)
3672 <    yy_aconf->port = 0;
3672 >    block_state.modes.value |= UMODE_CCONN;
3673   }
3674 + #line 3675 "conf_parser.c" /* yacc.c:1652  */
3675      break;
3676  
3677    case 177:
3678 <
4433 < /* Line 1806 of yacc.c  */
4434 < #line 1235 "conf_parser.y"
3678 > #line 1046 "conf_parser.y" /* yacc.c:1652  */
3679      {
3680    if (conf_parser_ctx.pass == 2)
3681 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
3681 >    block_state.modes.value |= UMODE_DEAF;
3682   }
3683 + #line 3684 "conf_parser.c" /* yacc.c:1652  */
3684      break;
3685  
3686    case 178:
3687 <
4443 < /* Line 1806 of yacc.c  */
4444 < #line 1239 "conf_parser.y"
3687 > #line 1050 "conf_parser.y" /* yacc.c:1652  */
3688      {
3689    if (conf_parser_ctx.pass == 2)
3690 <    yy_aconf->port |= OPER_FLAG_REMOTE;
3690 >    block_state.modes.value |= UMODE_DEBUG;
3691   }
3692 + #line 3693 "conf_parser.c" /* yacc.c:1652  */
3693      break;
3694  
3695    case 179:
3696 <
4453 < /* Line 1806 of yacc.c  */
4454 < #line 1243 "conf_parser.y"
3696 > #line 1054 "conf_parser.y" /* yacc.c:1652  */
3697      {
3698    if (conf_parser_ctx.pass == 2)
3699 <    yy_aconf->port |= OPER_FLAG_K;
3699 >    block_state.modes.value |= UMODE_FULL;
3700   }
3701 + #line 3702 "conf_parser.c" /* yacc.c:1652  */
3702      break;
3703  
3704    case 180:
3705 <
4463 < /* Line 1806 of yacc.c  */
4464 < #line 1247 "conf_parser.y"
3705 > #line 1058 "conf_parser.y" /* yacc.c:1652  */
3706      {
3707    if (conf_parser_ctx.pass == 2)
3708 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
3708 >    block_state.modes.value |= UMODE_HIDDEN;
3709   }
3710 + #line 3711 "conf_parser.c" /* yacc.c:1652  */
3711      break;
3712  
3713    case 181:
3714 <
4473 < /* Line 1806 of yacc.c  */
4474 < #line 1251 "conf_parser.y"
3714 > #line 1062 "conf_parser.y" /* yacc.c:1652  */
3715      {
3716    if (conf_parser_ctx.pass == 2)
3717 <    yy_aconf->port |= OPER_FLAG_DLINE;
3717 >    block_state.modes.value |= UMODE_HIDECHANS;
3718   }
3719 + #line 3720 "conf_parser.c" /* yacc.c:1652  */
3720      break;
3721  
3722    case 182:
3723 <
4483 < /* Line 1806 of yacc.c  */
4484 < #line 1255 "conf_parser.y"
3723 > #line 1066 "conf_parser.y" /* yacc.c:1652  */
3724      {
3725    if (conf_parser_ctx.pass == 2)
3726 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
3726 >    block_state.modes.value |= UMODE_HIDEIDLE;
3727   }
3728 + #line 3729 "conf_parser.c" /* yacc.c:1652  */
3729      break;
3730  
3731    case 183:
3732 <
4493 < /* Line 1806 of yacc.c  */
4494 < #line 1259 "conf_parser.y"
3732 > #line 1070 "conf_parser.y" /* yacc.c:1652  */
3733      {
3734    if (conf_parser_ctx.pass == 2)
3735 <    yy_aconf->port |= OPER_FLAG_X;
3735 >    block_state.modes.value |= UMODE_SKILL;
3736   }
3737 + #line 3738 "conf_parser.c" /* yacc.c:1652  */
3738      break;
3739  
3740    case 184:
3741 <
4503 < /* Line 1806 of yacc.c  */
4504 < #line 1263 "conf_parser.y"
3741 > #line 1074 "conf_parser.y" /* yacc.c:1652  */
3742      {
3743    if (conf_parser_ctx.pass == 2)
3744 <    yy_aconf->port |= OPER_FLAG_GLINE;
3744 >    block_state.modes.value |= UMODE_NCHANGE;
3745   }
3746 + #line 3747 "conf_parser.c" /* yacc.c:1652  */
3747      break;
3748  
3749    case 185:
3750 <
4513 < /* Line 1806 of yacc.c  */
4514 < #line 1267 "conf_parser.y"
3750 > #line 1078 "conf_parser.y" /* yacc.c:1652  */
3751      {
3752    if (conf_parser_ctx.pass == 2)
3753 <    yy_aconf->port |= OPER_FLAG_DIE;
3753 >    block_state.modes.value |= UMODE_REJ;
3754   }
3755 + #line 3756 "conf_parser.c" /* yacc.c:1652  */
3756      break;
3757  
3758    case 186:
3759 <
4523 < /* Line 1806 of yacc.c  */
4524 < #line 1271 "conf_parser.y"
3759 > #line 1082 "conf_parser.y" /* yacc.c:1652  */
3760      {
3761    if (conf_parser_ctx.pass == 2)
3762 <    yy_aconf->port |= OPER_FLAG_RESTART;
3762 >    block_state.modes.value |= UMODE_UNAUTH;
3763   }
3764 + #line 3765 "conf_parser.c" /* yacc.c:1652  */
3765      break;
3766  
3767    case 187:
3768 <
4533 < /* Line 1806 of yacc.c  */
4534 < #line 1275 "conf_parser.y"
3768 > #line 1086 "conf_parser.y" /* yacc.c:1652  */
3769      {
3770    if (conf_parser_ctx.pass == 2)
3771 <    yy_aconf->port |= OPER_FLAG_REHASH;
3771 >    block_state.modes.value |= UMODE_SPY;
3772   }
3773 + #line 3774 "conf_parser.c" /* yacc.c:1652  */
3774      break;
3775  
3776    case 188:
3777 <
4543 < /* Line 1806 of yacc.c  */
4544 < #line 1279 "conf_parser.y"
3777 > #line 1090 "conf_parser.y" /* yacc.c:1652  */
3778      {
3779    if (conf_parser_ctx.pass == 2)
3780 <    yy_aconf->port |= OPER_FLAG_ADMIN;
3780 >    block_state.modes.value |= UMODE_EXTERNAL;
3781   }
3782 + #line 3783 "conf_parser.c" /* yacc.c:1652  */
3783      break;
3784  
3785    case 189:
3786 <
4553 < /* Line 1806 of yacc.c  */
4554 < #line 1283 "conf_parser.y"
3786 > #line 1094 "conf_parser.y" /* yacc.c:1652  */
3787      {
3788    if (conf_parser_ctx.pass == 2)
3789 <    yy_aconf->port |= OPER_FLAG_N;
3789 >    block_state.modes.value |= UMODE_SERVNOTICE;
3790   }
3791 + #line 3792 "conf_parser.c" /* yacc.c:1652  */
3792      break;
3793  
3794    case 190:
3795 <
4563 < /* Line 1806 of yacc.c  */
4564 < #line 1287 "conf_parser.y"
3795 > #line 1098 "conf_parser.y" /* yacc.c:1652  */
3796      {
3797    if (conf_parser_ctx.pass == 2)
3798 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
3798 >    block_state.modes.value |= UMODE_INVISIBLE;
3799   }
3800 + #line 3801 "conf_parser.c" /* yacc.c:1652  */
3801      break;
3802  
3803    case 191:
3804 <
4573 < /* Line 1806 of yacc.c  */
4574 < #line 1291 "conf_parser.y"
3804 > #line 1102 "conf_parser.y" /* yacc.c:1652  */
3805      {
3806    if (conf_parser_ctx.pass == 2)
3807 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
3807 >    block_state.modes.value |= UMODE_WALLOP;
3808   }
3809 + #line 3810 "conf_parser.c" /* yacc.c:1652  */
3810      break;
3811  
3812    case 192:
3813 <
4583 < /* Line 1806 of yacc.c  */
4584 < #line 1295 "conf_parser.y"
3813 > #line 1106 "conf_parser.y" /* yacc.c:1652  */
3814      {
3815    if (conf_parser_ctx.pass == 2)
3816 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
3816 >    block_state.modes.value |= UMODE_SOFTCALLERID;
3817   }
3818 + #line 3819 "conf_parser.c" /* yacc.c:1652  */
3819      break;
3820  
3821    case 193:
3822 <
4593 < /* Line 1806 of yacc.c  */
4594 < #line 1299 "conf_parser.y"
3822 > #line 1110 "conf_parser.y" /* yacc.c:1652  */
3823      {
3824    if (conf_parser_ctx.pass == 2)
3825 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
3825 >    block_state.modes.value |= UMODE_CALLERID;
3826   }
3827 + #line 3828 "conf_parser.c" /* yacc.c:1652  */
3828      break;
3829  
3830    case 194:
3831 <
4603 < /* Line 1806 of yacc.c  */
4604 < #line 1303 "conf_parser.y"
3831 > #line 1114 "conf_parser.y" /* yacc.c:1652  */
3832      {
3833    if (conf_parser_ctx.pass == 2)
3834 <    yy_aconf->port |= OPER_FLAG_MODULE;
3834 >    block_state.modes.value |= UMODE_LOCOPS;
3835   }
3836 + #line 3837 "conf_parser.c" /* yacc.c:1652  */
3837      break;
3838  
3839    case 195:
3840 <
4613 < /* Line 1806 of yacc.c  */
4614 < #line 1313 "conf_parser.y"
3840 > #line 1118 "conf_parser.y" /* yacc.c:1652  */
3841      {
3842 <  if (conf_parser_ctx.pass == 1)
3843 <  {
4618 <    yy_conf = make_conf_item(CLASS_TYPE);
4619 <    yy_class = map_to_conf(yy_conf);
4620 <  }
3842 >  if (conf_parser_ctx.pass == 2)
3843 >    block_state.modes.value |= UMODE_REGONLY;
3844   }
3845 + #line 3846 "conf_parser.c" /* yacc.c:1652  */
3846      break;
3847  
3848    case 196:
3849 <
4626 < /* Line 1806 of yacc.c  */
4627 < #line 1320 "conf_parser.y"
3849 > #line 1122 "conf_parser.y" /* yacc.c:1652  */
3850      {
3851 <  if (conf_parser_ctx.pass == 1)
3852 <  {
3853 <    struct ConfItem *cconf = NULL;
3854 <    struct ClassItem *class = NULL;
3851 >  if (conf_parser_ctx.pass == 2)
3852 >    block_state.modes.value |= UMODE_FARCONNECT;
3853 > }
3854 > #line 3855 "conf_parser.c" /* yacc.c:1652  */
3855 >    break;
3856  
3857 <    if (yy_class_name == NULL)
3858 <      delete_conf_item(yy_conf);
4636 <    else
3857 >  case 197:
3858 > #line 1126 "conf_parser.y" /* yacc.c:1652  */
3859      {
3860 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
3861 <
4640 <      if (cconf != NULL)                /* The class existed already */
4641 <      {
4642 <        int user_count = 0;
4643 <
4644 <        rebuild_cidr_class(cconf, yy_class);
4645 <
4646 <        class = map_to_conf(cconf);
4647 <
4648 <        user_count = class->curr_user_count;
4649 <        memcpy(class, yy_class, sizeof(*class));
4650 <        class->curr_user_count = user_count;
4651 <        class->active = 1;
4652 <
4653 <        delete_conf_item(yy_conf);
4654 <
4655 <        MyFree(cconf->name);            /* Allows case change of class name */
4656 <        cconf->name = yy_class_name;
4657 <      }
4658 <      else      /* Brand new class */
4659 <      {
4660 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4661 <        yy_conf->name = yy_class_name;
4662 <        yy_class->active = 1;
4663 <      }
4664 <    }
4665 <
4666 <    yy_class_name = NULL;
4667 <  }
3860 >  if (conf_parser_ctx.pass == 2)
3861 >    block_state.modes.value |= UMODE_EXPIRATION;
3862   }
3863 + #line 3864 "conf_parser.c" /* yacc.c:1652  */
3864      break;
3865  
3866 <  case 213:
3867 <
4673 < /* Line 1806 of yacc.c  */
4674 < #line 1378 "conf_parser.y"
3866 >  case 198:
3867 > #line 1132 "conf_parser.y" /* yacc.c:1652  */
3868      {
3869 <  if (conf_parser_ctx.pass == 1)
3870 <  {
4678 <    MyFree(yy_class_name);
4679 <    DupString(yy_class_name, yylval.string);
4680 <  }
3869 >  if (conf_parser_ctx.pass == 2)
3870 >    block_state.port.value = 0;
3871   }
3872 + #line 3873 "conf_parser.c" /* yacc.c:1652  */
3873      break;
3874  
3875 <  case 214:
3876 <
4686 < /* Line 1806 of yacc.c  */
4687 < #line 1387 "conf_parser.y"
3875 >  case 202:
3876 > #line 1139 "conf_parser.y" /* yacc.c:1652  */
3877      {
3878 <  if (conf_parser_ctx.pass == 1)
3879 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
3878 >  if (conf_parser_ctx.pass == 2)
3879 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
3880   }
3881 + #line 3882 "conf_parser.c" /* yacc.c:1652  */
3882      break;
3883  
3884 <  case 215:
3885 <
4696 < /* Line 1806 of yacc.c  */
4697 < #line 1393 "conf_parser.y"
3884 >  case 203:
3885 > #line 1143 "conf_parser.y" /* yacc.c:1652  */
3886      {
3887 <  if (conf_parser_ctx.pass == 1)
3888 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
3887 >  if (conf_parser_ctx.pass == 2)
3888 >    block_state.port.value |= OPER_FLAG_KILL;
3889   }
3890 + #line 3891 "conf_parser.c" /* yacc.c:1652  */
3891      break;
3892  
3893 <  case 216:
3894 <
4706 < /* Line 1806 of yacc.c  */
4707 < #line 1399 "conf_parser.y"
3893 >  case 204:
3894 > #line 1147 "conf_parser.y" /* yacc.c:1652  */
3895      {
3896 <  if (conf_parser_ctx.pass == 1)
3897 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
3896 >  if (conf_parser_ctx.pass == 2)
3897 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
3898   }
3899 + #line 3900 "conf_parser.c" /* yacc.c:1652  */
3900      break;
3901  
3902 <  case 217:
3903 <
4716 < /* Line 1806 of yacc.c  */
4717 < #line 1405 "conf_parser.y"
3902 >  case 205:
3903 > #line 1151 "conf_parser.y" /* yacc.c:1652  */
3904      {
3905 <  if (conf_parser_ctx.pass == 1)
3906 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
3905 >  if (conf_parser_ctx.pass == 2)
3906 >    block_state.port.value |= OPER_FLAG_CONNECT;
3907   }
3908 + #line 3909 "conf_parser.c" /* yacc.c:1652  */
3909      break;
3910  
3911 <  case 218:
3912 <
4726 < /* Line 1806 of yacc.c  */
4727 < #line 1411 "conf_parser.y"
3911 >  case 206:
3912 > #line 1155 "conf_parser.y" /* yacc.c:1652  */
3913      {
3914 <  if (conf_parser_ctx.pass == 1)
3915 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
3914 >  if (conf_parser_ctx.pass == 2)
3915 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
3916   }
3917 + #line 3918 "conf_parser.c" /* yacc.c:1652  */
3918      break;
3919  
3920 <  case 219:
3921 <
4736 < /* Line 1806 of yacc.c  */
4737 < #line 1417 "conf_parser.y"
3920 >  case 207:
3921 > #line 1159 "conf_parser.y" /* yacc.c:1652  */
3922      {
3923 <  if (conf_parser_ctx.pass == 1)
3924 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
3923 >  if (conf_parser_ctx.pass == 2)
3924 >    block_state.port.value |= OPER_FLAG_SQUIT;
3925   }
3926 + #line 3927 "conf_parser.c" /* yacc.c:1652  */
3927      break;
3928  
3929 <  case 220:
3930 <
4746 < /* Line 1806 of yacc.c  */
4747 < #line 1423 "conf_parser.y"
3929 >  case 208:
3930 > #line 1163 "conf_parser.y" /* yacc.c:1652  */
3931      {
3932 <  if (conf_parser_ctx.pass == 1)
3933 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
3932 >  if (conf_parser_ctx.pass == 2)
3933 >    block_state.port.value |= OPER_FLAG_KLINE;
3934   }
3935 + #line 3936 "conf_parser.c" /* yacc.c:1652  */
3936      break;
3937  
3938 <  case 221:
3939 <
4756 < /* Line 1806 of yacc.c  */
4757 < #line 1429 "conf_parser.y"
3938 >  case 209:
3939 > #line 1167 "conf_parser.y" /* yacc.c:1652  */
3940      {
3941 <  if (conf_parser_ctx.pass == 1)
3942 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
3941 >  if (conf_parser_ctx.pass == 2)
3942 >    block_state.port.value |= OPER_FLAG_UNKLINE;
3943   }
3944 + #line 3945 "conf_parser.c" /* yacc.c:1652  */
3945      break;
3946  
3947 <  case 222:
3948 <
4766 < /* Line 1806 of yacc.c  */
4767 < #line 1435 "conf_parser.y"
3947 >  case 210:
3948 > #line 1171 "conf_parser.y" /* yacc.c:1652  */
3949      {
3950 <  if (conf_parser_ctx.pass == 1)
3951 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
3950 >  if (conf_parser_ctx.pass == 2)
3951 >    block_state.port.value |= OPER_FLAG_DLINE;
3952   }
3953 + #line 3954 "conf_parser.c" /* yacc.c:1652  */
3954      break;
3955  
3956 <  case 223:
3957 <
4776 < /* Line 1806 of yacc.c  */
4777 < #line 1441 "conf_parser.y"
3956 >  case 211:
3957 > #line 1175 "conf_parser.y" /* yacc.c:1652  */
3958      {
3959 <  if (conf_parser_ctx.pass == 1)
3960 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
3959 >  if (conf_parser_ctx.pass == 2)
3960 >    block_state.port.value |= OPER_FLAG_UNDLINE;
3961   }
3962 + #line 3963 "conf_parser.c" /* yacc.c:1652  */
3963      break;
3964  
3965 <  case 224:
3966 <
4786 < /* Line 1806 of yacc.c  */
4787 < #line 1447 "conf_parser.y"
3965 >  case 212:
3966 > #line 1179 "conf_parser.y" /* yacc.c:1652  */
3967      {
3968 <  if (conf_parser_ctx.pass == 1)
3969 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
3968 >  if (conf_parser_ctx.pass == 2)
3969 >    block_state.port.value |= OPER_FLAG_XLINE;
3970   }
3971 + #line 3972 "conf_parser.c" /* yacc.c:1652  */
3972      break;
3973  
3974 <  case 225:
3975 <
4796 < /* Line 1806 of yacc.c  */
4797 < #line 1453 "conf_parser.y"
3974 >  case 213:
3975 > #line 1183 "conf_parser.y" /* yacc.c:1652  */
3976      {
3977 <  if (conf_parser_ctx.pass == 1)
3978 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
3977 >  if (conf_parser_ctx.pass == 2)
3978 >    block_state.port.value |= OPER_FLAG_UNXLINE;
3979   }
3980 + #line 3981 "conf_parser.c" /* yacc.c:1652  */
3981      break;
3982  
3983 <  case 226:
3984 <
4806 < /* Line 1806 of yacc.c  */
4807 < #line 1462 "conf_parser.y"
3983 >  case 214:
3984 > #line 1187 "conf_parser.y" /* yacc.c:1652  */
3985      {
3986    if (conf_parser_ctx.pass == 2)
3987 <  {
4811 <    listener_address = NULL;
4812 <    listener_flags = 0;
4813 <  }
3987 >    block_state.port.value |= OPER_FLAG_DIE;
3988   }
3989 + #line 3990 "conf_parser.c" /* yacc.c:1652  */
3990      break;
3991  
3992 <  case 227:
3993 <
4819 < /* Line 1806 of yacc.c  */
4820 < #line 1469 "conf_parser.y"
3992 >  case 215:
3993 > #line 1191 "conf_parser.y" /* yacc.c:1652  */
3994      {
3995    if (conf_parser_ctx.pass == 2)
3996 <  {
4824 <    MyFree(listener_address);
4825 <    listener_address = NULL;
4826 <  }
3996 >    block_state.port.value |= OPER_FLAG_RESTART;
3997   }
3998 + #line 3999 "conf_parser.c" /* yacc.c:1652  */
3999      break;
4000  
4001 <  case 228:
4002 <
4832 < /* Line 1806 of yacc.c  */
4833 < #line 1478 "conf_parser.y"
4001 >  case 216:
4002 > #line 1195 "conf_parser.y" /* yacc.c:1652  */
4003      {
4004 <  listener_flags = 0;
4004 >  if (conf_parser_ctx.pass == 2)
4005 >    block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
4006   }
4007 + #line 4008 "conf_parser.c" /* yacc.c:1652  */
4008      break;
4009  
4010 <  case 232:
4011 <
4841 < /* Line 1806 of yacc.c  */
4842 < #line 1484 "conf_parser.y"
4010 >  case 217:
4011 > #line 1199 "conf_parser.y" /* yacc.c:1652  */
4012      {
4013    if (conf_parser_ctx.pass == 2)
4014 <    listener_flags |= LISTENER_SSL;
4014 >    block_state.port.value |= OPER_FLAG_REHASH;
4015   }
4016 + #line 4017 "conf_parser.c" /* yacc.c:1652  */
4017      break;
4018  
4019 <  case 233:
4020 <
4851 < /* Line 1806 of yacc.c  */
4852 < #line 1488 "conf_parser.y"
4019 >  case 218:
4020 > #line 1203 "conf_parser.y" /* yacc.c:1652  */
4021      {
4022    if (conf_parser_ctx.pass == 2)
4023 <    listener_flags |= LISTENER_HIDDEN;
4023 >    block_state.port.value |= OPER_FLAG_ADMIN;
4024   }
4025 + #line 4026 "conf_parser.c" /* yacc.c:1652  */
4026      break;
4027  
4028 <  case 234:
4029 <
4861 < /* Line 1806 of yacc.c  */
4862 < #line 1492 "conf_parser.y"
4028 >  case 219:
4029 > #line 1207 "conf_parser.y" /* yacc.c:1652  */
4030      {
4031    if (conf_parser_ctx.pass == 2)
4032 <    listener_flags |= LISTENER_SERVER;
4032 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4033   }
4034 + #line 4035 "conf_parser.c" /* yacc.c:1652  */
4035      break;
4036  
4037 <  case 242:
4038 <
4039 < /* Line 1806 of yacc.c  */
4040 < #line 1502 "conf_parser.y"
4041 <    { listener_flags = 0; }
4037 >  case 220:
4038 > #line 1211 "conf_parser.y" /* yacc.c:1652  */
4039 >    {
4040 >  if (conf_parser_ctx.pass == 2)
4041 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4042 > }
4043 > #line 4044 "conf_parser.c" /* yacc.c:1652  */
4044      break;
4045  
4046 <  case 246:
4047 <
4878 < /* Line 1806 of yacc.c  */
4879 < #line 1507 "conf_parser.y"
4046 >  case 221:
4047 > #line 1215 "conf_parser.y" /* yacc.c:1652  */
4048      {
4049    if (conf_parser_ctx.pass == 2)
4050 <  {
4883 <    if ((listener_flags & LISTENER_SSL))
4884 < #ifdef HAVE_LIBCRYPTO
4885 <      if (!ServerInfo.server_ctx)
4886 < #endif
4887 <      {
4888 <        yyerror("SSL not available - port closed");
4889 <        break;
4890 <      }
4891 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4892 <  }
4050 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4051   }
4052 + #line 4053 "conf_parser.c" /* yacc.c:1652  */
4053      break;
4054  
4055 <  case 247:
4056 <
4898 < /* Line 1806 of yacc.c  */
4899 < #line 1521 "conf_parser.y"
4055 >  case 222:
4056 > #line 1219 "conf_parser.y" /* yacc.c:1652  */
4057      {
4058    if (conf_parser_ctx.pass == 2)
4059 <  {
4903 <    int i;
4904 <
4905 <    if ((listener_flags & LISTENER_SSL))
4906 < #ifdef HAVE_LIBCRYPTO
4907 <      if (!ServerInfo.server_ctx)
4908 < #endif
4909 <      {
4910 <        yyerror("SSL not available - port closed");
4911 <        break;
4912 <      }
4913 <
4914 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4915 <      add_listener(i, listener_address, listener_flags);
4916 <  }
4059 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4060   }
4061 + #line 4062 "conf_parser.c" /* yacc.c:1652  */
4062      break;
4063  
4064 <  case 248:
4065 <
4922 < /* Line 1806 of yacc.c  */
4923 < #line 1541 "conf_parser.y"
4064 >  case 223:
4065 > #line 1223 "conf_parser.y" /* yacc.c:1652  */
4066      {
4067    if (conf_parser_ctx.pass == 2)
4068 <  {
4927 <    MyFree(listener_address);
4928 <    DupString(listener_address, yylval.string);
4929 <  }
4068 >    block_state.port.value |= OPER_FLAG_SET;
4069   }
4070 + #line 4071 "conf_parser.c" /* yacc.c:1652  */
4071      break;
4072  
4073 <  case 249:
4073 >  case 224:
4074 > #line 1227 "conf_parser.y" /* yacc.c:1652  */
4075 >    {
4076 >  if (conf_parser_ctx.pass == 2)
4077 >    block_state.port.value |= OPER_FLAG_MODULE;
4078 > }
4079 > #line 4080 "conf_parser.c" /* yacc.c:1652  */
4080 >    break;
4081  
4082 < /* Line 1806 of yacc.c  */
4083 < #line 1550 "conf_parser.y"
4082 >  case 225:
4083 > #line 1231 "conf_parser.y" /* yacc.c:1652  */
4084      {
4085    if (conf_parser_ctx.pass == 2)
4086 <  {
4940 <    MyFree(listener_address);
4941 <    DupString(listener_address, yylval.string);
4942 <  }
4086 >    block_state.port.value |= OPER_FLAG_OPME;
4087   }
4088 + #line 4089 "conf_parser.c" /* yacc.c:1652  */
4089      break;
4090  
4091 <  case 250:
4091 >  case 226:
4092 > #line 1235 "conf_parser.y" /* yacc.c:1652  */
4093 >    {
4094 >  if (conf_parser_ctx.pass == 2)
4095 >    block_state.port.value |= OPER_FLAG_NICK_RESV;
4096 > }
4097 > #line 4098 "conf_parser.c" /* yacc.c:1652  */
4098 >    break;
4099  
4100 < /* Line 1806 of yacc.c  */
4101 < #line 1562 "conf_parser.y"
4100 >  case 227:
4101 > #line 1239 "conf_parser.y" /* yacc.c:1652  */
4102      {
4103    if (conf_parser_ctx.pass == 2)
4104 <  {
4953 <    yy_conf = make_conf_item(CLIENT_TYPE);
4954 <    yy_aconf = map_to_conf(yy_conf);
4955 <  }
4956 <  else
4957 <  {
4958 <    MyFree(class_name);
4959 <    class_name = NULL;
4960 <  }
4104 >    block_state.port.value |= OPER_FLAG_JOIN_RESV;
4105   }
4106 + #line 4107 "conf_parser.c" /* yacc.c:1652  */
4107      break;
4108  
4109 <  case 251:
4109 >  case 228:
4110 > #line 1243 "conf_parser.y" /* yacc.c:1652  */
4111 >    {
4112 >  if (conf_parser_ctx.pass == 2)
4113 >    block_state.port.value |= OPER_FLAG_RESV;
4114 > }
4115 > #line 4116 "conf_parser.c" /* yacc.c:1652  */
4116 >    break;
4117  
4118 < /* Line 1806 of yacc.c  */
4119 < #line 1574 "conf_parser.y"
4118 >  case 229:
4119 > #line 1247 "conf_parser.y" /* yacc.c:1652  */
4120      {
4121    if (conf_parser_ctx.pass == 2)
4122 <  {
4123 <    struct CollectItem *yy_tmp = NULL;
4124 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4122 >    block_state.port.value |= OPER_FLAG_UNRESV;
4123 > }
4124 > #line 4125 "conf_parser.c" /* yacc.c:1652  */
4125 >    break;
4126  
4127 <    if (yy_aconf->user && yy_aconf->host)
4127 >  case 230:
4128 > #line 1251 "conf_parser.y" /* yacc.c:1652  */
4129      {
4130 <      conf_add_class_to_conf(yy_conf, class_name);
4131 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4132 <    }
4133 <    else
4134 <      delete_conf_item(yy_conf);
4130 >  if (conf_parser_ctx.pass == 2)
4131 >    block_state.port.value |= OPER_FLAG_CLOSE;
4132 > }
4133 > #line 4134 "conf_parser.c" /* yacc.c:1652  */
4134 >    break;
4135  
4136 <    /* copy over settings from first struct */
4137 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4136 >  case 231:
4137 > #line 1261 "conf_parser.y" /* yacc.c:1652  */
4138      {
4139 <      struct AccessItem *new_aconf;
4140 <      struct ConfItem *new_conf;
4139 >  if (conf_parser_ctx.pass != 1)
4140 >    break;
4141  
4142 <      new_conf = make_conf_item(CLIENT_TYPE);
4989 <      new_aconf = map_to_conf(new_conf);
4142 >  reset_block_state();
4143  
4144 <      yy_tmp = ptr->data;
4144 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4145 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4146 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4147 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4148 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4149 > }
4150 > #line 4151 "conf_parser.c" /* yacc.c:1652  */
4151 >    break;
4152 >
4153 >  case 232:
4154 > #line 1273 "conf_parser.y" /* yacc.c:1652  */
4155 >    {
4156 >  if (conf_parser_ctx.pass != 1)
4157 >    break;
4158  
4159 <      assert(yy_tmp->user && yy_tmp->host);
4159 >  if (!block_state.class.buf[0])
4160 >    break;
4161  
4162 <      if (yy_aconf->passwd != NULL)
4163 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4164 <      if (yy_conf->name != NULL)
4998 <        DupString(new_conf->name, yy_conf->name);
4999 <      if (yy_aconf->passwd != NULL)
5000 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4162 >  struct ClassItem *class = class_find(block_state.class.buf, false);
4163 >  if (class == NULL)
4164 >    class = class_make();
4165  
4166 <      new_aconf->flags = yy_aconf->flags;
4167 <      new_aconf->port  = yy_aconf->port;
4166 >  class->active = true;
4167 >  xfree(class->name);
4168 >  class->name = xstrdup(block_state.class.buf);
4169 >  class->ping_freq = block_state.ping_freq.value;
4170 >  class->max_perip_local = block_state.max_perip_local.value;
4171 >  class->max_perip_global = block_state.max_perip_global.value;
4172 >  class->con_freq = block_state.con_freq.value;
4173 >  class->max_total = block_state.max_total.value;
4174 >  class->max_sendq = block_state.max_sendq.value;
4175 >  class->max_recvq = block_state.max_recvq.value;
4176 >  class->max_channels = block_state.max_channels.value;
4177  
4178 <      DupString(new_aconf->user, yy_tmp->user);
4179 <      collapse(new_aconf->user);
4178 >  if (block_state.min_idle.value > block_state.max_idle.value)
4179 >  {
4180 >    block_state.min_idle.value = 0;
4181 >    block_state.max_idle.value = 0;
4182 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4183 >  }
4184  
4185 <      DupString(new_aconf->host, yy_tmp->host);
4186 <      collapse(new_aconf->host);
4185 >  class->flags = block_state.flags.value;
4186 >  class->min_idle = block_state.min_idle.value;
4187 >  class->max_idle = block_state.max_idle.value;
4188  
4189 <      conf_add_class_to_conf(new_conf, class_name);
4190 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4191 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4192 <      free_collect_item(yy_tmp);
4193 <    }
4189 >  bool diff = (class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value ||
4190 >               class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value);
4191 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4192 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4193 >  class->number_per_cidr = block_state.number_per_cidr.value;
4194  
4195 <    MyFree(class_name);
4196 <    class_name = NULL;
5019 <    yy_conf = NULL;
5020 <    yy_aconf = NULL;
5021 <  }
4195 >  if (diff)
4196 >    class_ip_limit_rebuild(class);
4197   }
4198 + #line 4199 "conf_parser.c" /* yacc.c:1652  */
4199      break;
4200  
4201 <  case 263:
4202 <
5027 < /* Line 1806 of yacc.c  */
5028 < #line 1636 "conf_parser.y"
4201 >  case 251:
4202 > #line 1336 "conf_parser.y" /* yacc.c:1652  */
4203      {
4204 <  if (conf_parser_ctx.pass == 2)
4205 <  {
4206 <    struct CollectItem *yy_tmp = NULL;
4207 <    struct split_nuh_item nuh;
4208 <
5035 <    nuh.nuhmask  = yylval.string;
5036 <    nuh.nickptr  = NULL;
5037 <    nuh.userptr  = userbuf;
5038 <    nuh.hostptr  = hostbuf;
5039 <
5040 <    nuh.nicksize = 0;
5041 <    nuh.usersize = sizeof(userbuf);
5042 <    nuh.hostsize = sizeof(hostbuf);
5043 <
5044 <    split_nuh(&nuh);
4204 >  if (conf_parser_ctx.pass == 1)
4205 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4206 > }
4207 > #line 4208 "conf_parser.c" /* yacc.c:1652  */
4208 >    break;
4209  
4210 <    if (yy_aconf->user == NULL)
4210 >  case 252:
4211 > #line 1342 "conf_parser.y" /* yacc.c:1652  */
4212      {
4213 <      DupString(yy_aconf->user, userbuf);
4214 <      DupString(yy_aconf->host, hostbuf);
5050 <    }
5051 <    else
5052 <    {
5053 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
5054 <
5055 <      DupString(yy_tmp->user, userbuf);
5056 <      DupString(yy_tmp->host, hostbuf);
5057 <
5058 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
5059 <    }
5060 <  }
4213 >  if (conf_parser_ctx.pass == 1)
4214 >    block_state.ping_freq.value = (yyvsp[-1].number);
4215   }
4216 + #line 4217 "conf_parser.c" /* yacc.c:1652  */
4217      break;
4218  
4219 <  case 264:
4220 <
5066 < /* Line 1806 of yacc.c  */
5067 < #line 1673 "conf_parser.y"
4219 >  case 253:
4220 > #line 1348 "conf_parser.y" /* yacc.c:1652  */
4221      {
4222 <  if (conf_parser_ctx.pass == 2)
4223 <  {
5071 <    /* be paranoid */
5072 <    if (yy_aconf->passwd != NULL)
5073 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5074 <
5075 <    MyFree(yy_aconf->passwd);
5076 <    DupString(yy_aconf->passwd, yylval.string);
5077 <  }
4222 >  if (conf_parser_ctx.pass == 1)
4223 >    block_state.max_perip_local.value = (yyvsp[-1].number);
4224   }
4225 + #line 4226 "conf_parser.c" /* yacc.c:1652  */
4226      break;
4227  
4228 <  case 265:
4229 <
5083 < /* Line 1806 of yacc.c  */
5084 < #line 1686 "conf_parser.y"
4228 >  case 254:
4229 > #line 1354 "conf_parser.y" /* yacc.c:1652  */
4230      {
4231 <  if (conf_parser_ctx.pass == 2)
4232 <  {
5088 <    MyFree(class_name);
5089 <    DupString(class_name, yylval.string);
5090 <  }
4231 >  if (conf_parser_ctx.pass == 1)
4232 >    block_state.max_perip_global.value = (yyvsp[-1].number);
4233   }
4234 + #line 4235 "conf_parser.c" /* yacc.c:1652  */
4235      break;
4236  
4237 <  case 266:
4238 <
5096 < /* Line 1806 of yacc.c  */
5097 < #line 1695 "conf_parser.y"
4237 >  case 255:
4238 > #line 1360 "conf_parser.y" /* yacc.c:1652  */
4239      {
4240 <  if (conf_parser_ctx.pass == 2)
4241 <  {
5101 <    if (yylval.number)
5102 <      SetConfEncrypted(yy_aconf);
5103 <    else
5104 <      ClearConfEncrypted(yy_aconf);
5105 <  }
4240 >  if (conf_parser_ctx.pass == 1)
4241 >    block_state.con_freq.value = (yyvsp[-1].number);
4242   }
4243 + #line 4244 "conf_parser.c" /* yacc.c:1652  */
4244      break;
4245  
4246 <  case 267:
4247 <
5111 < /* Line 1806 of yacc.c  */
5112 < #line 1706 "conf_parser.y"
4246 >  case 256:
4247 > #line 1366 "conf_parser.y" /* yacc.c:1652  */
4248      {
4249 +  if (conf_parser_ctx.pass == 1)
4250 +    block_state.max_channels.value = (yyvsp[-1].number);
4251   }
4252 + #line 4253 "conf_parser.c" /* yacc.c:1652  */
4253      break;
4254  
4255 <  case 271:
4256 <
5119 < /* Line 1806 of yacc.c  */
5120 < #line 1711 "conf_parser.y"
4255 >  case 257:
4256 > #line 1372 "conf_parser.y" /* yacc.c:1652  */
4257      {
4258 <  if (conf_parser_ctx.pass == 2)
4259 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4258 >  if (conf_parser_ctx.pass == 1)
4259 >    block_state.max_total.value = (yyvsp[-1].number);
4260   }
4261 + #line 4262 "conf_parser.c" /* yacc.c:1652  */
4262      break;
4263  
4264 <  case 272:
4265 <
5129 < /* Line 1806 of yacc.c  */
5130 < #line 1715 "conf_parser.y"
4264 >  case 258:
4265 > #line 1378 "conf_parser.y" /* yacc.c:1652  */
4266      {
4267 <  if (conf_parser_ctx.pass == 2)
4268 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4267 >  if (conf_parser_ctx.pass == 1)
4268 >    block_state.max_sendq.value = (yyvsp[-1].number);
4269   }
4270 + #line 4271 "conf_parser.c" /* yacc.c:1652  */
4271      break;
4272  
4273 <  case 273:
4274 <
5139 < /* Line 1806 of yacc.c  */
5140 < #line 1719 "conf_parser.y"
4273 >  case 259:
4274 > #line 1384 "conf_parser.y" /* yacc.c:1652  */
4275      {
4276 <  if (conf_parser_ctx.pass == 2)
4277 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4276 >  if (conf_parser_ctx.pass == 1)
4277 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4278 >      block_state.max_recvq.value = (yyvsp[-1].number);
4279   }
4280 + #line 4281 "conf_parser.c" /* yacc.c:1652  */
4281      break;
4282  
4283 <  case 274:
4284 <
5149 < /* Line 1806 of yacc.c  */
5150 < #line 1723 "conf_parser.y"
4283 >  case 260:
4284 > #line 1391 "conf_parser.y" /* yacc.c:1652  */
4285      {
4286 <  if (conf_parser_ctx.pass == 2)
4287 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4286 >  if (conf_parser_ctx.pass == 1)
4287 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4288   }
4289 + #line 4290 "conf_parser.c" /* yacc.c:1652  */
4290      break;
4291  
4292 <  case 275:
4293 <
5159 < /* Line 1806 of yacc.c  */
5160 < #line 1727 "conf_parser.y"
4292 >  case 261:
4293 > #line 1397 "conf_parser.y" /* yacc.c:1652  */
4294      {
4295 <  if (conf_parser_ctx.pass == 2)
4296 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4295 >  if (conf_parser_ctx.pass == 1)
4296 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4297   }
4298 + #line 4299 "conf_parser.c" /* yacc.c:1652  */
4299      break;
4300  
4301 <  case 276:
4302 <
5169 < /* Line 1806 of yacc.c  */
5170 < #line 1731 "conf_parser.y"
4301 >  case 262:
4302 > #line 1403 "conf_parser.y" /* yacc.c:1652  */
4303      {
4304 <  if (conf_parser_ctx.pass == 2)
4305 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4304 >  if (conf_parser_ctx.pass == 1)
4305 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4306   }
4307 + #line 4308 "conf_parser.c" /* yacc.c:1652  */
4308      break;
4309  
4310 <  case 277:
4311 <
5179 < /* Line 1806 of yacc.c  */
5180 < #line 1735 "conf_parser.y"
4310 >  case 263:
4311 > #line 1409 "conf_parser.y" /* yacc.c:1652  */
4312      {
4313 <  if (conf_parser_ctx.pass == 2)
5183 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5184 < }
4313 >  if (conf_parser_ctx.pass != 1)
4314      break;
4315  
4316 <  case 278:
4316 >  block_state.min_idle.value = (yyvsp[-1].number);
4317 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4318 > }
4319 > #line 4320 "conf_parser.c" /* yacc.c:1652  */
4320 >    break;
4321  
4322 < /* Line 1806 of yacc.c  */
4323 < #line 1739 "conf_parser.y"
4322 >  case 264:
4323 > #line 1418 "conf_parser.y" /* yacc.c:1652  */
4324      {
4325 <  if (conf_parser_ctx.pass == 2)
5193 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5194 < }
4325 >  if (conf_parser_ctx.pass != 1)
4326      break;
4327  
4328 <  case 279:
4328 >  block_state.max_idle.value = (yyvsp[-1].number);
4329 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4330 > }
4331 > #line 4332 "conf_parser.c" /* yacc.c:1652  */
4332 >    break;
4333  
4334 < /* Line 1806 of yacc.c  */
4335 < #line 1743 "conf_parser.y"
4334 >  case 265:
4335 > #line 1427 "conf_parser.y" /* yacc.c:1652  */
4336      {
4337 <  if (conf_parser_ctx.pass == 2)
4338 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4337 >  if (conf_parser_ctx.pass == 1)
4338 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4339   }
4340 + #line 4341 "conf_parser.c" /* yacc.c:1652  */
4341      break;
4342  
4343 <  case 280:
4344 <
5209 < /* Line 1806 of yacc.c  */
5210 < #line 1750 "conf_parser.y"
4343 >  case 269:
4344 > #line 1434 "conf_parser.y" /* yacc.c:1652  */
4345      {
4346 <  if (conf_parser_ctx.pass == 2)
4347 <  {
4348 <    MyFree(yy_conf->name);
4346 >  if (conf_parser_ctx.pass == 1)
4347 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4348 > }
4349 > #line 4350 "conf_parser.c" /* yacc.c:1652  */
4350 >    break;
4351  
4352 <    if (strlen(yylval.string) < HOSTLEN)
4353 <    {    
5218 <      DupString(yy_conf->name, yylval.string);
5219 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5220 <    }
5221 <    else
4352 >  case 270:
4353 > #line 1438 "conf_parser.y" /* yacc.c:1652  */
4354      {
4355 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
4356 <      yy_conf->name = NULL;
5225 <    }
5226 <  }
4355 >  if (conf_parser_ctx.pass == 1)
4356 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4357   }
4358 + #line 4359 "conf_parser.c" /* yacc.c:1652  */
4359      break;
4360  
4361 <  case 281:
4362 <
5232 < /* Line 1806 of yacc.c  */
5233 < #line 1769 "conf_parser.y"
4361 >  case 271:
4362 > #line 1448 "conf_parser.y" /* yacc.c:1652  */
4363      {
4364    if (conf_parser_ctx.pass == 2)
4365 <  {
5237 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5238 <    MyFree(yy_conf->name);
5239 <    DupString(yy_conf->name, yylval.string);
5240 <  }
4365 >    reset_block_state();
4366   }
4367 + #line 4368 "conf_parser.c" /* yacc.c:1652  */
4368      break;
4369  
4370 <  case 282:
4371 <
5246 < /* Line 1806 of yacc.c  */
5247 < #line 1779 "conf_parser.y"
4370 >  case 273:
4371 > #line 1454 "conf_parser.y" /* yacc.c:1652  */
4372      {
4373 <  if (conf_parser_ctx.pass == 2)
5250 <  {
5251 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5252 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5253 <  }
4373 >  block_state.flags.value = 0;
4374   }
4375 + #line 4376 "conf_parser.c" /* yacc.c:1652  */
4376      break;
4377  
4378 <  case 283:
4379 <
5259 < /* Line 1806 of yacc.c  */
5260 < #line 1792 "conf_parser.y"
4378 >  case 277:
4379 > #line 1460 "conf_parser.y" /* yacc.c:1652  */
4380      {
4381    if (conf_parser_ctx.pass == 2)
4382 <  {
5264 <    MyFree(resv_reason);
5265 <    resv_reason = NULL;
5266 <  }
4382 >    block_state.flags.value |= LISTENER_SSL;
4383   }
4384 + #line 4385 "conf_parser.c" /* yacc.c:1652  */
4385      break;
4386  
4387 <  case 284:
4388 <
5272 < /* Line 1806 of yacc.c  */
5273 < #line 1799 "conf_parser.y"
4387 >  case 278:
4388 > #line 1464 "conf_parser.y" /* yacc.c:1652  */
4389      {
4390    if (conf_parser_ctx.pass == 2)
4391 <  {
5277 <    MyFree(resv_reason);
5278 <    resv_reason = NULL;
5279 <  }
4391 >    block_state.flags.value |= LISTENER_HIDDEN;
4392   }
4393 + #line 4394 "conf_parser.c" /* yacc.c:1652  */
4394      break;
4395  
4396 <  case 291:
4397 <
5285 < /* Line 1806 of yacc.c  */
5286 < #line 1811 "conf_parser.y"
4396 >  case 279:
4397 > #line 1468 "conf_parser.y" /* yacc.c:1652  */
4398      {
4399    if (conf_parser_ctx.pass == 2)
4400 <  {
5290 <    MyFree(resv_reason);
5291 <    DupString(resv_reason, yylval.string);
5292 <  }
4400 >   block_state.flags.value |= LISTENER_SERVER;
4401   }
4402 + #line 4403 "conf_parser.c" /* yacc.c:1652  */
4403      break;
4404  
4405 <  case 292:
4405 >  case 287:
4406 > #line 1476 "conf_parser.y" /* yacc.c:1652  */
4407 >    { block_state.flags.value = 0; }
4408 > #line 4409 "conf_parser.c" /* yacc.c:1652  */
4409 >    break;
4410  
4411 < /* Line 1806 of yacc.c  */
4412 < #line 1820 "conf_parser.y"
4411 >  case 291:
4412 > #line 1481 "conf_parser.y" /* yacc.c:1652  */
4413      {
4414    if (conf_parser_ctx.pass == 2)
4415    {
4416 <    if (IsChanPrefix(*yylval.string))
4416 > #ifndef HAVE_TLS
4417 >    if (block_state.flags.value & LISTENER_SSL)
4418      {
4419 <      char def_reason[] = "No reason";
4420 <
5307 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4419 >      conf_error_report("TLS not available - port closed");
4420 >      break;
4421      }
4422 + #endif
4423 +    listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4424    }
5310  /* ignore it for now.. but we really should make a warning if
5311   * its an erroneous name --fl_ */
4425   }
4426 + #line 4427 "conf_parser.c" /* yacc.c:1652  */
4427      break;
4428  
4429 <  case 293:
4430 <
5317 < /* Line 1806 of yacc.c  */
5318 < #line 1835 "conf_parser.y"
4429 >  case 292:
4430 > #line 1494 "conf_parser.y" /* yacc.c:1652  */
4431      {
4432    if (conf_parser_ctx.pass == 2)
4433    {
4434 <    char def_reason[] = "No reason";
4434 > #ifndef HAVE_TLS
4435 >    if (block_state.flags.value & LISTENER_SSL)
4436 >    {
4437 >      conf_error_report("TLS not available - port closed");
4438 >      break;
4439 >    }
4440 > #endif
4441  
4442 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4442 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4443 >      listener_add(i, block_state.addr.buf, block_state.flags.value);
4444    }
4445   }
4446 + #line 4447 "conf_parser.c" /* yacc.c:1652  */
4447      break;
4448  
4449 <  case 299:
4450 <
5331 < /* Line 1806 of yacc.c  */
5332 < #line 1853 "conf_parser.y"
4449 >  case 293:
4450 > #line 1511 "conf_parser.y" /* yacc.c:1652  */
4451      {
4452    if (conf_parser_ctx.pass == 2)
4453 <  {
5336 <    if (valid_servname(yylval.string))
5337 <    {
5338 <      yy_conf = make_conf_item(SERVICE_TYPE);
5339 <      DupString(yy_conf->name, yylval.string);
5340 <    }
5341 <  }
4453 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4454   }
4455 + #line 4456 "conf_parser.c" /* yacc.c:1652  */
4456      break;
4457  
4458 <  case 300:
4459 <
5347 < /* Line 1806 of yacc.c  */
5348 < #line 1868 "conf_parser.y"
4458 >  case 294:
4459 > #line 1517 "conf_parser.y" /* yacc.c:1652  */
4460      {
4461    if (conf_parser_ctx.pass == 2)
4462 <  {
5352 <    yy_conf = make_conf_item(ULINE_TYPE);
5353 <    yy_match_item = map_to_conf(yy_conf);
5354 <    yy_match_item->action = SHARED_ALL;
5355 <  }
4462 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4463   }
4464 + #line 4465 "conf_parser.c" /* yacc.c:1652  */
4465      break;
4466  
4467 <  case 301:
4468 <
5361 < /* Line 1806 of yacc.c  */
5362 < #line 1876 "conf_parser.y"
4467 >  case 295:
4468 > #line 1527 "conf_parser.y" /* yacc.c:1652  */
4469      {
4470    if (conf_parser_ctx.pass == 2)
4471 <  {
5366 <    yy_conf = NULL;
5367 <  }
4471 >    reset_block_state();
4472   }
4473 + #line 4474 "conf_parser.c" /* yacc.c:1652  */
4474      break;
4475  
4476 <  case 308:
4477 <
5373 < /* Line 1806 of yacc.c  */
5374 < #line 1887 "conf_parser.y"
4476 >  case 296:
4477 > #line 1531 "conf_parser.y" /* yacc.c:1652  */
4478      {
4479 <  if (conf_parser_ctx.pass == 2)
5377 <  {
5378 <    MyFree(yy_conf->name);
5379 <    DupString(yy_conf->name, yylval.string);
5380 <  }
5381 < }
5382 <    break;
4479 >  dlink_node *node = NULL;
4480  
4481 <  case 309:
4481 >  if (conf_parser_ctx.pass != 2)
4482 >    break;
4483  
4484 < /* Line 1806 of yacc.c  */
5387 < #line 1896 "conf_parser.y"
5388 <    {
5389 <  if (conf_parser_ctx.pass == 2)
4484 >  DLINK_FOREACH(node, block_state.mask.list.head)
4485    {
4486      struct split_nuh_item nuh;
4487 +    char *s = node->data;
4488  
4489 <    nuh.nuhmask  = yylval.string;
4489 >    if (EmptyString(s))
4490 >      continue;
4491 >
4492 >    nuh.nuhmask  = s;
4493      nuh.nickptr  = NULL;
4494 <    nuh.userptr  = userbuf;
4495 <    nuh.hostptr  = hostbuf;
4494 >    nuh.userptr  = block_state.user.buf;
4495 >    nuh.hostptr  = block_state.host.buf;
4496  
4497      nuh.nicksize = 0;
4498 <    nuh.usersize = sizeof(userbuf);
4499 <    nuh.hostsize = sizeof(hostbuf);
4498 >    nuh.usersize = sizeof(block_state.user.buf);
4499 >    nuh.hostsize = sizeof(block_state.host.buf);
4500  
4501      split_nuh(&nuh);
4502  
4503 <    DupString(yy_match_item->user, userbuf);
4504 <    DupString(yy_match_item->host, hostbuf);
4503 >    struct MaskItem *conf = conf_make(CONF_CLIENT);
4504 >    conf->user = xstrdup(block_state.user.buf);
4505 >    conf->host = xstrdup(block_state.host.buf);
4506 >
4507 >    if (block_state.rpass.buf[0])
4508 >      conf->passwd = xstrdup(block_state.rpass.buf);
4509 >    if (block_state.name.buf[0])
4510 >      conf->name = xstrdup(block_state.name.buf);
4511 >
4512 >    conf->flags = block_state.flags.value;
4513 >    conf->port  = block_state.port.value;
4514 >
4515 >    conf_add_class_to_conf(conf, block_state.class.buf);
4516 >    add_conf_by_address(CONF_CLIENT, conf);
4517    }
4518   }
4519 + #line 4520 "conf_parser.c" /* yacc.c:1652  */
4520      break;
4521  
4522 <  case 310:
4523 <
5412 < /* Line 1806 of yacc.c  */
5413 < #line 1918 "conf_parser.y"
4522 >  case 308:
4523 > #line 1585 "conf_parser.y" /* yacc.c:1652  */
4524      {
4525    if (conf_parser_ctx.pass == 2)
4526 <    yy_match_item->action = 0;
4526 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4527   }
4528 + #line 4529 "conf_parser.c" /* yacc.c:1652  */
4529      break;
4530  
4531 <  case 314:
4531 >  case 309:
4532 > #line 1591 "conf_parser.y" /* yacc.c:1652  */
4533 >    {
4534 >  if (conf_parser_ctx.pass == 2)
4535 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4536 > }
4537 > #line 4538 "conf_parser.c" /* yacc.c:1652  */
4538 >    break;
4539  
4540 < /* Line 1806 of yacc.c  */
4541 < #line 1925 "conf_parser.y"
4540 >  case 310:
4541 > #line 1597 "conf_parser.y" /* yacc.c:1652  */
4542      {
4543    if (conf_parser_ctx.pass == 2)
4544 <    yy_match_item->action |= SHARED_KLINE;
4544 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4545   }
4546 + #line 4547 "conf_parser.c" /* yacc.c:1652  */
4547      break;
4548  
4549 <  case 315:
4549 >  case 311:
4550 > #line 1603 "conf_parser.y" /* yacc.c:1652  */
4551 >    {
4552 >  if (conf_parser_ctx.pass == 2)
4553 >  {
4554 >    if (yylval.number)
4555 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4556 >    else
4557 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4558 >  }
4559 > }
4560 > #line 4561 "conf_parser.c" /* yacc.c:1652  */
4561 >    break;
4562  
4563 < /* Line 1806 of yacc.c  */
4564 < #line 1929 "conf_parser.y"
4563 >  case 312:
4564 > #line 1614 "conf_parser.y" /* yacc.c:1652  */
4565      {
4566    if (conf_parser_ctx.pass == 2)
4567 <    yy_match_item->action |= SHARED_UNKLINE;
4567 >    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4568   }
4569 + #line 4570 "conf_parser.c" /* yacc.c:1652  */
4570      break;
4571  
4572    case 316:
4573 <
5442 < /* Line 1806 of yacc.c  */
5443 < #line 1933 "conf_parser.y"
4573 > #line 1621 "conf_parser.y" /* yacc.c:1652  */
4574      {
4575    if (conf_parser_ctx.pass == 2)
4576 <    yy_match_item->action |= SHARED_DLINE;
4576 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4577   }
4578 + #line 4579 "conf_parser.c" /* yacc.c:1652  */
4579      break;
4580  
4581    case 317:
4582 <
5452 < /* Line 1806 of yacc.c  */
5453 < #line 1937 "conf_parser.y"
4582 > #line 1625 "conf_parser.y" /* yacc.c:1652  */
4583      {
4584    if (conf_parser_ctx.pass == 2)
4585 <    yy_match_item->action |= SHARED_UNDLINE;
4585 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4586   }
4587 + #line 4588 "conf_parser.c" /* yacc.c:1652  */
4588      break;
4589  
4590    case 318:
4591 <
5462 < /* Line 1806 of yacc.c  */
5463 < #line 1941 "conf_parser.y"
4591 > #line 1629 "conf_parser.y" /* yacc.c:1652  */
4592      {
4593    if (conf_parser_ctx.pass == 2)
4594 <    yy_match_item->action |= SHARED_XLINE;
4594 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4595   }
4596 + #line 4597 "conf_parser.c" /* yacc.c:1652  */
4597      break;
4598  
4599    case 319:
4600 <
5472 < /* Line 1806 of yacc.c  */
5473 < #line 1945 "conf_parser.y"
4600 > #line 1633 "conf_parser.y" /* yacc.c:1652  */
4601      {
4602    if (conf_parser_ctx.pass == 2)
4603 <    yy_match_item->action |= SHARED_UNXLINE;
4603 >    block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4604   }
4605 + #line 4606 "conf_parser.c" /* yacc.c:1652  */
4606      break;
4607  
4608    case 320:
4609 <
5482 < /* Line 1806 of yacc.c  */
5483 < #line 1949 "conf_parser.y"
4609 > #line 1637 "conf_parser.y" /* yacc.c:1652  */
4610      {
4611    if (conf_parser_ctx.pass == 2)
4612 <    yy_match_item->action |= SHARED_RESV;
4612 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4613   }
4614 + #line 4615 "conf_parser.c" /* yacc.c:1652  */
4615      break;
4616  
4617    case 321:
4618 <
5492 < /* Line 1806 of yacc.c  */
5493 < #line 1953 "conf_parser.y"
4618 > #line 1641 "conf_parser.y" /* yacc.c:1652  */
4619      {
4620    if (conf_parser_ctx.pass == 2)
4621 <    yy_match_item->action |= SHARED_UNRESV;
4621 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4622   }
4623 + #line 4624 "conf_parser.c" /* yacc.c:1652  */
4624      break;
4625  
4626    case 322:
4627 <
5502 < /* Line 1806 of yacc.c  */
5503 < #line 1957 "conf_parser.y"
4627 > #line 1645 "conf_parser.y" /* yacc.c:1652  */
4628      {
4629    if (conf_parser_ctx.pass == 2)
4630 <    yy_match_item->action |= SHARED_LOCOPS;
4630 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4631   }
4632 + #line 4633 "conf_parser.c" /* yacc.c:1652  */
4633      break;
4634  
4635    case 323:
4636 <
5512 < /* Line 1806 of yacc.c  */
5513 < #line 1961 "conf_parser.y"
4636 > #line 1649 "conf_parser.y" /* yacc.c:1652  */
4637      {
4638    if (conf_parser_ctx.pass == 2)
4639 <    yy_match_item->action = SHARED_ALL;
4639 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4640   }
4641 + #line 4642 "conf_parser.c" /* yacc.c:1652  */
4642      break;
4643  
4644    case 324:
4645 <
5522 < /* Line 1806 of yacc.c  */
5523 < #line 1970 "conf_parser.y"
4645 > #line 1653 "conf_parser.y" /* yacc.c:1652  */
4646      {
4647    if (conf_parser_ctx.pass == 2)
4648 <  {
5527 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5528 <    yy_conf->flags = SHARED_ALL;
5529 <  }
4648 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4649   }
4650 + #line 4651 "conf_parser.c" /* yacc.c:1652  */
4651      break;
4652  
4653    case 325:
4654 <
5535 < /* Line 1806 of yacc.c  */
5536 < #line 1977 "conf_parser.y"
4654 > #line 1657 "conf_parser.y" /* yacc.c:1652  */
4655      {
4656    if (conf_parser_ctx.pass == 2)
4657 +    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4658 + }
4659 + #line 4660 "conf_parser.c" /* yacc.c:1652  */
4660 +    break;
4661 +
4662 +  case 326:
4663 + #line 1663 "conf_parser.y" /* yacc.c:1652  */
4664 +    {
4665 +  if (conf_parser_ctx.pass != 2)
4666 +    break;
4667 +
4668 +  if (valid_hostname(yylval.string))
4669    {
4670 <    if (yy_conf->name == NULL)
4671 <      DupString(yy_conf->name, "*");
5542 <    yy_conf = NULL;
4670 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4671 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4672    }
4673 +  else
4674 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4675   }
4676 + #line 4677 "conf_parser.c" /* yacc.c:1652  */
4677      break;
4678  
4679 <  case 331:
4680 <
5549 < /* Line 1806 of yacc.c  */
5550 < #line 1990 "conf_parser.y"
4679 >  case 327:
4680 > #line 1677 "conf_parser.y" /* yacc.c:1652  */
4681      {
4682 <  if (conf_parser_ctx.pass == 2)
5553 <    DupString(yy_conf->name, yylval.string);
5554 < }
4682 >  if (conf_parser_ctx.pass != 2)
4683      break;
4684  
4685 <  case 332:
4685 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4686 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4687 > }
4688 > #line 4689 "conf_parser.c" /* yacc.c:1652  */
4689 >    break;
4690  
4691 < /* Line 1806 of yacc.c  */
4692 < #line 1996 "conf_parser.y"
4691 >  case 328:
4692 > #line 1686 "conf_parser.y" /* yacc.c:1652  */
4693      {
4694 <  if (conf_parser_ctx.pass == 2)
4695 <    yy_conf->flags = 0;
4694 >  if (conf_parser_ctx.pass != 2)
4695 >    break;
4696 >
4697 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4698 >  block_state.port.value = (yyvsp[-1].number);
4699   }
4700 + #line 4701 "conf_parser.c" /* yacc.c:1652  */
4701 +    break;
4702 +
4703 +  case 329:
4704 + #line 1699 "conf_parser.y" /* yacc.c:1652  */
4705 +    {
4706 +  if (conf_parser_ctx.pass != 2)
4707      break;
4708  
4709 <  case 336:
4709 >  reset_block_state();
4710 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4711 > }
4712 > #line 4713 "conf_parser.c" /* yacc.c:1652  */
4713 >    break;
4714  
4715 < /* Line 1806 of yacc.c  */
4716 < #line 2003 "conf_parser.y"
4715 >  case 330:
4716 > #line 1706 "conf_parser.y" /* yacc.c:1652  */
4717      {
4718 <  if (conf_parser_ctx.pass == 2)
4719 <    yy_conf->flags |= SHARED_KLINE;
4718 >  if (conf_parser_ctx.pass != 2)
4719 >    break;
4720 >
4721 >  resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4722   }
4723 + #line 4724 "conf_parser.c" /* yacc.c:1652  */
4724      break;
4725  
4726    case 337:
4727 <
5579 < /* Line 1806 of yacc.c  */
5580 < #line 2007 "conf_parser.y"
4727 > #line 1717 "conf_parser.y" /* yacc.c:1652  */
4728      {
4729    if (conf_parser_ctx.pass == 2)
4730 <    yy_conf->flags |= SHARED_UNKLINE;
4730 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4731   }
4732 + #line 4733 "conf_parser.c" /* yacc.c:1652  */
4733      break;
4734  
4735    case 338:
4736 <
5589 < /* Line 1806 of yacc.c  */
5590 < #line 2011 "conf_parser.y"
4736 > #line 1723 "conf_parser.y" /* yacc.c:1652  */
4737      {
4738    if (conf_parser_ctx.pass == 2)
4739 <    yy_conf->flags |= SHARED_DLINE;
4739 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4740   }
4741 + #line 4742 "conf_parser.c" /* yacc.c:1652  */
4742      break;
4743  
4744    case 339:
4745 <
5599 < /* Line 1806 of yacc.c  */
5600 < #line 2015 "conf_parser.y"
4745 > #line 1729 "conf_parser.y" /* yacc.c:1652  */
4746      {
4747    if (conf_parser_ctx.pass == 2)
4748 <    yy_conf->flags |= SHARED_UNDLINE;
4748 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4749   }
4750 + #line 4751 "conf_parser.c" /* yacc.c:1652  */
4751      break;
4752  
4753 <  case 340:
4754 <
5609 < /* Line 1806 of yacc.c  */
5610 < #line 2019 "conf_parser.y"
4753 >  case 345:
4754 > #line 1744 "conf_parser.y" /* yacc.c:1652  */
4755      {
4756 <  if (conf_parser_ctx.pass == 2)
5613 <    yy_conf->flags |= SHARED_XLINE;
5614 < }
4756 >  if (conf_parser_ctx.pass != 2)
4757      break;
4758  
4759 <  case 341:
4759 >  if (server_valid_name(yylval.string) == true)
4760 >  {
4761 >    struct ServiceItem *service = service_make();
4762 >    service->name = xstrdup(yylval.string);
4763 >  }
4764 > }
4765 > #line 4766 "conf_parser.c" /* yacc.c:1652  */
4766 >    break;
4767  
4768 < /* Line 1806 of yacc.c  */
4769 < #line 2023 "conf_parser.y"
4768 >  case 346:
4769 > #line 1760 "conf_parser.y" /* yacc.c:1652  */
4770      {
4771 <  if (conf_parser_ctx.pass == 2)
4772 <    yy_conf->flags |= SHARED_UNXLINE;
4771 >  if (conf_parser_ctx.pass != 2)
4772 >    break;
4773 >
4774 >  reset_block_state();
4775 >
4776 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4777 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4778 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4779 >  block_state.flags.value = SHARED_ALL;
4780   }
4781 + #line 4782 "conf_parser.c" /* yacc.c:1652  */
4782      break;
4783  
4784 <  case 342:
4784 >  case 347:
4785 > #line 1771 "conf_parser.y" /* yacc.c:1652  */
4786 >    {
4787 >  if (conf_parser_ctx.pass != 2)
4788 >    break;
4789 >
4790 >  struct SharedItem *shared = shared_make();
4791 >  shared->type = block_state.flags.value;
4792 >  shared->server = xstrdup(block_state.name.buf);
4793 >  shared->user = xstrdup(block_state.user.buf);
4794 >  shared->host = xstrdup(block_state.host.buf);
4795 > }
4796 > #line 4797 "conf_parser.c" /* yacc.c:1652  */
4797 >    break;
4798  
4799 < /* Line 1806 of yacc.c  */
4800 < #line 2027 "conf_parser.y"
4799 >  case 354:
4800 > #line 1786 "conf_parser.y" /* yacc.c:1652  */
4801      {
4802    if (conf_parser_ctx.pass == 2)
4803 <    yy_conf->flags |= SHARED_RESV;
4803 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4804   }
4805 + #line 4806 "conf_parser.c" /* yacc.c:1652  */
4806      break;
4807  
4808 <  case 343:
4809 <
5639 < /* Line 1806 of yacc.c  */
5640 < #line 2031 "conf_parser.y"
4808 >  case 355:
4809 > #line 1792 "conf_parser.y" /* yacc.c:1652  */
4810      {
4811    if (conf_parser_ctx.pass == 2)
4812 <    yy_conf->flags |= SHARED_UNRESV;
4812 >  {
4813 >    struct split_nuh_item nuh;
4814 >
4815 >    nuh.nuhmask  = yylval.string;
4816 >    nuh.nickptr  = NULL;
4817 >    nuh.userptr  = block_state.user.buf;
4818 >    nuh.hostptr  = block_state.host.buf;
4819 >
4820 >    nuh.nicksize = 0;
4821 >    nuh.usersize = sizeof(block_state.user.buf);
4822 >    nuh.hostsize = sizeof(block_state.host.buf);
4823 >
4824 >    split_nuh(&nuh);
4825 >  }
4826   }
4827 + #line 4828 "conf_parser.c" /* yacc.c:1652  */
4828      break;
4829  
4830 <  case 344:
4831 <
5649 < /* Line 1806 of yacc.c  */
5650 < #line 2035 "conf_parser.y"
4830 >  case 356:
4831 > #line 1811 "conf_parser.y" /* yacc.c:1652  */
4832      {
4833    if (conf_parser_ctx.pass == 2)
4834 <    yy_conf->flags |= SHARED_LOCOPS;
4834 >    block_state.flags.value = 0;
4835   }
4836 + #line 4837 "conf_parser.c" /* yacc.c:1652  */
4837      break;
4838  
4839 <  case 345:
4840 <
5659 < /* Line 1806 of yacc.c  */
5660 < #line 2039 "conf_parser.y"
4839 >  case 360:
4840 > #line 1818 "conf_parser.y" /* yacc.c:1652  */
4841      {
4842    if (conf_parser_ctx.pass == 2)
4843 <    yy_conf->flags = SHARED_ALL;
4843 >    block_state.flags.value |= SHARED_KLINE;
4844   }
4845 + #line 4846 "conf_parser.c" /* yacc.c:1652  */
4846      break;
4847  
4848 <  case 346:
4849 <
5669 < /* Line 1806 of yacc.c  */
5670 < #line 2048 "conf_parser.y"
4848 >  case 361:
4849 > #line 1822 "conf_parser.y" /* yacc.c:1652  */
4850      {
4851    if (conf_parser_ctx.pass == 2)
4852 <  {
5674 <    yy_conf = make_conf_item(SERVER_TYPE);
5675 <    yy_aconf = map_to_conf(yy_conf);
5676 <
5677 <    /* defaults */
5678 <    yy_aconf->port = PORTNUM;
5679 <  }
5680 <  else
5681 <  {
5682 <    MyFree(class_name);
5683 <    class_name = NULL;
5684 <  }
4852 >    block_state.flags.value |= SHARED_UNKLINE;
4853   }
4854 + #line 4855 "conf_parser.c" /* yacc.c:1652  */
4855      break;
4856  
4857 <  case 347:
4858 <
5690 < /* Line 1806 of yacc.c  */
5691 < #line 2063 "conf_parser.y"
4857 >  case 362:
4858 > #line 1826 "conf_parser.y" /* yacc.c:1652  */
4859      {
4860    if (conf_parser_ctx.pass == 2)
4861 <  {
4862 <    struct CollectItem *yy_hconf=NULL;
4863 <    struct CollectItem *yy_lconf=NULL;
4864 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4861 >    block_state.flags.value |= SHARED_DLINE;
4862 > }
4863 > #line 4864 "conf_parser.c" /* yacc.c:1652  */
4864 >    break;
4865  
4866 <    if (yy_aconf->host &&
4867 <        yy_aconf->passwd && yy_aconf->spasswd)
5701 <    {
5702 <      if (conf_add_server(yy_conf, class_name) == -1)
5703 <      {
5704 <        delete_conf_item(yy_conf);
5705 <        yy_conf = NULL;
5706 <        yy_aconf = NULL;
5707 <      }
5708 <    }
5709 <    else
4866 >  case 363:
4867 > #line 1830 "conf_parser.y" /* yacc.c:1652  */
4868      {
4869 <      /* Even if yy_conf ->name is NULL
4870 <       * should still unhook any hub/leaf confs still pending
5713 <       */
5714 <      unhook_hub_leaf_confs();
5715 <
5716 <      if (yy_conf->name != NULL)
5717 <      {
5718 <        if (yy_aconf->host == NULL)
5719 <          yyerror("Ignoring connect block -- missing host");
5720 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5721 <          yyerror("Ignoring connect block -- missing password");
5722 <      }
5723 <
5724 <
5725 <      /* XXX
5726 <       * This fixes a try_connections() core (caused by invalid class_ptr
5727 <       * pointers) reported by metalrock. That's an ugly fix, but there
5728 <       * is currently no better way. The entire config subsystem needs an
5729 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5730 <       * a doubly linked list immediately without any sanity checks!  -Michael
5731 <       */
5732 <      delete_conf_item(yy_conf);
5733 <
5734 <      yy_aconf = NULL;
5735 <      yy_conf = NULL;
5736 <    }
5737 <
5738 <      /*
5739 <       * yy_conf is still pointing at the server that is having
5740 <       * a connect block built for it. This means, y_aconf->name
5741 <       * points to the actual irc name this server will be known as.
5742 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5743 <       * given in the link list at yy_hconf. Fill in the HUB confs
5744 <       * from this link list now.
5745 <       */        
5746 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5747 <      {
5748 <        struct ConfItem *new_hub_conf;
5749 <        struct MatchItem *match_item;
5750 <
5751 <        yy_hconf = ptr->data;
5752 <
5753 <        /* yy_conf == NULL is a fatal error for this connect block! */
5754 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5755 <        {
5756 <          new_hub_conf = make_conf_item(HUB_TYPE);
5757 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5758 <          DupString(new_hub_conf->name, yy_conf->name);
5759 <          if (yy_hconf->user != NULL)
5760 <            DupString(match_item->user, yy_hconf->user);
5761 <          else
5762 <            DupString(match_item->user, "*");
5763 <          if (yy_hconf->host != NULL)
5764 <            DupString(match_item->host, yy_hconf->host);
5765 <          else
5766 <            DupString(match_item->host, "*");
5767 <        }
5768 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5769 <        free_collect_item(yy_hconf);
5770 <      }
5771 <
5772 <      /* Ditto for the LEAF confs */
5773 <
5774 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5775 <      {
5776 <        struct ConfItem *new_leaf_conf;
5777 <        struct MatchItem *match_item;
5778 <
5779 <        yy_lconf = ptr->data;
5780 <
5781 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5782 <        {
5783 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5784 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5785 <          DupString(new_leaf_conf->name, yy_conf->name);
5786 <          if (yy_lconf->user != NULL)
5787 <            DupString(match_item->user, yy_lconf->user);
5788 <          else
5789 <            DupString(match_item->user, "*");
5790 <          if (yy_lconf->host != NULL)
5791 <            DupString(match_item->host, yy_lconf->host);
5792 <          else
5793 <            DupString(match_item->host, "*");
5794 <        }
5795 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
5796 <        free_collect_item(yy_lconf);
5797 <      }
5798 <      MyFree(class_name);
5799 <      class_name = NULL;
5800 <      yy_conf = NULL;
5801 <      yy_aconf = NULL;
5802 <  }
4869 >  if (conf_parser_ctx.pass == 2)
4870 >    block_state.flags.value |= SHARED_UNDLINE;
4871   }
4872 + #line 4873 "conf_parser.c" /* yacc.c:1652  */
4873      break;
4874  
4875    case 364:
4876 <
5808 < /* Line 1806 of yacc.c  */
5809 < #line 2185 "conf_parser.y"
4876 > #line 1834 "conf_parser.y" /* yacc.c:1652  */
4877      {
4878    if (conf_parser_ctx.pass == 2)
4879 <  {
5813 <    if (yy_conf->name != NULL)
5814 <      yyerror("Multiple connect name entry");
5815 <
5816 <    MyFree(yy_conf->name);
5817 <    DupString(yy_conf->name, yylval.string);
5818 <  }
4879 >    block_state.flags.value |= SHARED_XLINE;
4880   }
4881 + #line 4882 "conf_parser.c" /* yacc.c:1652  */
4882      break;
4883  
4884    case 365:
4885 <
5824 < /* Line 1806 of yacc.c  */
5825 < #line 2197 "conf_parser.y"
4885 > #line 1838 "conf_parser.y" /* yacc.c:1652  */
4886      {
4887    if (conf_parser_ctx.pass == 2)
4888 <  {
5829 <    MyFree(yy_aconf->host);
5830 <    DupString(yy_aconf->host, yylval.string);
5831 <  }
4888 >    block_state.flags.value |= SHARED_UNXLINE;
4889   }
4890 + #line 4891 "conf_parser.c" /* yacc.c:1652  */
4891      break;
4892  
4893    case 366:
4894 <
5837 < /* Line 1806 of yacc.c  */
5838 < #line 2206 "conf_parser.y"
4894 > #line 1842 "conf_parser.y" /* yacc.c:1652  */
4895      {
4896    if (conf_parser_ctx.pass == 2)
4897 <  {
5842 <    struct addrinfo hints, *res;
5843 <
5844 <    memset(&hints, 0, sizeof(hints));
5845 <
5846 <    hints.ai_family   = AF_UNSPEC;
5847 <    hints.ai_socktype = SOCK_STREAM;
5848 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5849 <
5850 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5851 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5852 <    else
5853 <    {
5854 <      assert(res != NULL);
5855 <
5856 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5857 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5858 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5859 <      freeaddrinfo(res);
5860 <    }
5861 <  }
4897 >    block_state.flags.value |= SHARED_RESV;
4898   }
4899 + #line 4900 "conf_parser.c" /* yacc.c:1652  */
4900      break;
4901  
4902    case 367:
4903 <
5867 < /* Line 1806 of yacc.c  */
5868 < #line 2232 "conf_parser.y"
4903 > #line 1846 "conf_parser.y" /* yacc.c:1652  */
4904      {
4905    if (conf_parser_ctx.pass == 2)
4906 <  {
5872 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5873 <      yyerror("Server passwords cannot begin with a colon");
5874 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5875 <      yyerror("Server passwords cannot contain spaces");
5876 <    else {
5877 <      if (yy_aconf->spasswd != NULL)
5878 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5879 <
5880 <      MyFree(yy_aconf->spasswd);
5881 <      DupString(yy_aconf->spasswd, yylval.string);
5882 <    }
5883 <  }
4906 >    block_state.flags.value |= SHARED_UNRESV;
4907   }
4908 + #line 4909 "conf_parser.c" /* yacc.c:1652  */
4909      break;
4910  
4911    case 368:
4912 <
5889 < /* Line 1806 of yacc.c  */
5890 < #line 2250 "conf_parser.y"
4912 > #line 1850 "conf_parser.y" /* yacc.c:1652  */
4913      {
4914    if (conf_parser_ctx.pass == 2)
4915 <  {
5894 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5895 <      yyerror("Server passwords cannot begin with a colon");
5896 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5897 <      yyerror("Server passwords cannot contain spaces");
5898 <    else {
5899 <      if (yy_aconf->passwd != NULL)
5900 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5901 <
5902 <      MyFree(yy_aconf->passwd);
5903 <      DupString(yy_aconf->passwd, yylval.string);
5904 <    }
5905 <  }
4915 >    block_state.flags.value |= SHARED_LOCOPS;
4916   }
4917 + #line 4918 "conf_parser.c" /* yacc.c:1652  */
4918      break;
4919  
4920    case 369:
4921 <
5911 < /* Line 1806 of yacc.c  */
5912 < #line 2268 "conf_parser.y"
4921 > #line 1854 "conf_parser.y" /* yacc.c:1652  */
4922      {
4923    if (conf_parser_ctx.pass == 2)
4924 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4924 >    block_state.flags.value = SHARED_ALL;
4925   }
4926 + #line 4927 "conf_parser.c" /* yacc.c:1652  */
4927      break;
4928  
4929    case 370:
4930 <
5921 < /* Line 1806 of yacc.c  */
5922 < #line 2274 "conf_parser.y"
4930 > #line 1864 "conf_parser.y" /* yacc.c:1652  */
4931      {
4932 <  if (conf_parser_ctx.pass == 2)
5925 <    yy_aconf->aftype = AF_INET;
5926 < }
4932 >  if (conf_parser_ctx.pass != 2)
4933      break;
4934  
4935 <  case 371:
4935 >  reset_block_state();
4936  
4937 < /* Line 1806 of yacc.c  */
4938 < #line 2278 "conf_parser.y"
5933 <    {
5934 < #ifdef IPV6
5935 <  if (conf_parser_ctx.pass == 2)
5936 <    yy_aconf->aftype = AF_INET6;
5937 < #endif
4937 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4938 >  block_state.flags.value = CLUSTER_ALL;
4939   }
4940 + #line 4941 "conf_parser.c" /* yacc.c:1652  */
4941      break;
4942  
4943 <  case 372:
4944 <
5943 < /* Line 1806 of yacc.c  */
5944 < #line 2286 "conf_parser.y"
4943 >  case 371:
4944 > #line 1873 "conf_parser.y" /* yacc.c:1652  */
4945      {
4946 < }
4946 >  if (conf_parser_ctx.pass != 2)
4947      break;
4948  
4949 <  case 376:
4950 <
4951 < /* Line 1806 of yacc.c  */
5952 < #line 2291 "conf_parser.y"
5953 <    {
5954 <  if (conf_parser_ctx.pass == 2)
5955 <    SetConfAllowAutoConn(yy_aconf);
4949 >  struct ClusterItem *cluster = cluster_make();
4950 >  cluster->type = block_state.flags.value;
4951 >  cluster->server = xstrdup(block_state.name.buf);
4952   }
4953 + #line 4954 "conf_parser.c" /* yacc.c:1652  */
4954      break;
4955  
4956    case 377:
4957 <
5961 < /* Line 1806 of yacc.c  */
5962 < #line 2295 "conf_parser.y"
4957 > #line 1886 "conf_parser.y" /* yacc.c:1652  */
4958      {
4959    if (conf_parser_ctx.pass == 2)
4960 <    SetConfAwayBurst(yy_aconf);
4960 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4961   }
4962 + #line 4963 "conf_parser.c" /* yacc.c:1652  */
4963      break;
4964  
4965    case 378:
4966 <
5971 < /* Line 1806 of yacc.c  */
5972 < #line 2299 "conf_parser.y"
4966 > #line 1892 "conf_parser.y" /* yacc.c:1652  */
4967      {
4968    if (conf_parser_ctx.pass == 2)
4969 <    SetConfTopicBurst(yy_aconf);
4969 >    block_state.flags.value = 0;
4970   }
4971 + #line 4972 "conf_parser.c" /* yacc.c:1652  */
4972      break;
4973  
4974 <  case 379:
4975 <
5981 < /* Line 1806 of yacc.c  */
5982 < #line 2303 "conf_parser.y"
4974 >  case 382:
4975 > #line 1899 "conf_parser.y" /* yacc.c:1652  */
4976      {
4977    if (conf_parser_ctx.pass == 2)
4978 <    SetConfSSL(yy_aconf);
4978 >    block_state.flags.value |= CLUSTER_KLINE;
4979   }
4980 + #line 4981 "conf_parser.c" /* yacc.c:1652  */
4981      break;
4982  
4983 <  case 380:
4984 <
5991 < /* Line 1806 of yacc.c  */
5992 < #line 2309 "conf_parser.y"
4983 >  case 383:
4984 > #line 1903 "conf_parser.y" /* yacc.c:1652  */
4985      {
4986    if (conf_parser_ctx.pass == 2)
4987 <  {
5996 <    if (yylval.number)
5997 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5998 <    else
5999 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
6000 <  }
4987 >    block_state.flags.value |= CLUSTER_UNKLINE;
4988   }
4989 + #line 4990 "conf_parser.c" /* yacc.c:1652  */
4990      break;
4991  
4992 <  case 381:
4993 <
6006 < /* Line 1806 of yacc.c  */
6007 < #line 2320 "conf_parser.y"
4992 >  case 384:
4993 > #line 1907 "conf_parser.y" /* yacc.c:1652  */
4994      {
4995    if (conf_parser_ctx.pass == 2)
4996 <  {
6011 <    struct CollectItem *yy_tmp;
6012 <
6013 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6014 <    DupString(yy_tmp->host, yylval.string);
6015 <    DupString(yy_tmp->user, "*");
6016 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6017 <  }
4996 >    block_state.flags.value |= CLUSTER_DLINE;
4997   }
4998 + #line 4999 "conf_parser.c" /* yacc.c:1652  */
4999      break;
5000  
5001 <  case 382:
5002 <
6023 < /* Line 1806 of yacc.c  */
6024 < #line 2333 "conf_parser.y"
5001 >  case 385:
5002 > #line 1911 "conf_parser.y" /* yacc.c:1652  */
5003      {
5004    if (conf_parser_ctx.pass == 2)
5005 <  {
6028 <    struct CollectItem *yy_tmp;
6029 <
6030 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6031 <    DupString(yy_tmp->host, yylval.string);
6032 <    DupString(yy_tmp->user, "*");
6033 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6034 <  }
5005 >    block_state.flags.value |= CLUSTER_UNDLINE;
5006   }
5007 + #line 5008 "conf_parser.c" /* yacc.c:1652  */
5008      break;
5009  
5010 <  case 383:
5011 <
6040 < /* Line 1806 of yacc.c  */
6041 < #line 2346 "conf_parser.y"
5010 >  case 386:
5011 > #line 1915 "conf_parser.y" /* yacc.c:1652  */
5012      {
5013    if (conf_parser_ctx.pass == 2)
5014 <  {
6045 <    MyFree(class_name);
6046 <    DupString(class_name, yylval.string);
6047 <  }
5014 >    block_state.flags.value |= CLUSTER_XLINE;
5015   }
5016 + #line 5017 "conf_parser.c" /* yacc.c:1652  */
5017      break;
5018  
5019 <  case 384:
5020 <
6053 < /* Line 1806 of yacc.c  */
6054 < #line 2355 "conf_parser.y"
5019 >  case 387:
5020 > #line 1919 "conf_parser.y" /* yacc.c:1652  */
5021      {
6056 #ifdef HAVE_LIBCRYPTO
6057  if (conf_parser_ctx.pass == 2)
6058  {
6059    MyFree(yy_aconf->cipher_list);
6060    DupString(yy_aconf->cipher_list, yylval.string);
6061  }
6062 #else
5022    if (conf_parser_ctx.pass == 2)
5023 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
6065 < #endif
5023 >    block_state.flags.value |= CLUSTER_UNXLINE;
5024   }
5025 + #line 5026 "conf_parser.c" /* yacc.c:1652  */
5026      break;
5027  
5028 <  case 385:
5029 <
6071 < /* Line 1806 of yacc.c  */
6072 < #line 2373 "conf_parser.y"
5028 >  case 388:
5029 > #line 1923 "conf_parser.y" /* yacc.c:1652  */
5030      {
5031    if (conf_parser_ctx.pass == 2)
5032 <  {
6076 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6077 <    regex_ban = 0;
6078 <  }
5032 >    block_state.flags.value |= CLUSTER_RESV;
5033   }
5034 + #line 5035 "conf_parser.c" /* yacc.c:1652  */
5035      break;
5036  
5037 <  case 386:
5038 <
6084 < /* Line 1806 of yacc.c  */
6085 < #line 2380 "conf_parser.y"
5037 >  case 389:
5038 > #line 1927 "conf_parser.y" /* yacc.c:1652  */
5039      {
5040    if (conf_parser_ctx.pass == 2)
5041 <  {
6089 <    if (userbuf[0] && hostbuf[0])
6090 <    {
6091 <      if (regex_ban)
6092 <      {
6093 < #ifdef HAVE_LIBPCRE
6094 <        void *exp_user = NULL;
6095 <        void *exp_host = NULL;
6096 <        const char *errptr = NULL;
6097 <
6098 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6099 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6100 <        {
6101 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
6102 <               errptr);
6103 <          break;
6104 <        }
6105 <
6106 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6107 <        yy_aconf->regexuser = exp_user;
6108 <        yy_aconf->regexhost = exp_host;
6109 <
6110 <        DupString(yy_aconf->user, userbuf);
6111 <        DupString(yy_aconf->host, hostbuf);
6112 <
6113 <        if (reasonbuf[0])
6114 <          DupString(yy_aconf->reason, reasonbuf);
6115 <        else
6116 <          DupString(yy_aconf->reason, "No reason");
6117 < #else
6118 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
6119 <        break;
6120 < #endif
6121 <      }
6122 <      else
6123 <      {
6124 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6125 <
6126 <        DupString(yy_aconf->user, userbuf);
6127 <        DupString(yy_aconf->host, hostbuf);
6128 <
6129 <        if (reasonbuf[0])
6130 <          DupString(yy_aconf->reason, reasonbuf);
6131 <        else
6132 <          DupString(yy_aconf->reason, "No reason");
6133 <        add_conf_by_address(CONF_KILL, yy_aconf);
6134 <      }
6135 <    }
6136 <
6137 <    yy_aconf = NULL;
6138 <  }
5041 >    block_state.flags.value |= CLUSTER_UNRESV;
5042   }
5043 + #line 5044 "conf_parser.c" /* yacc.c:1652  */
5044      break;
5045  
5046 <  case 387:
5047 <
6144 < /* Line 1806 of yacc.c  */
6145 < #line 2436 "conf_parser.y"
5046 >  case 390:
5047 > #line 1931 "conf_parser.y" /* yacc.c:1652  */
5048      {
5049 +  if (conf_parser_ctx.pass == 2)
5050 +    block_state.flags.value |= CLUSTER_LOCOPS;
5051   }
5052 + #line 5053 "conf_parser.c" /* yacc.c:1652  */
5053      break;
5054  
5055    case 391:
5056 <
6152 < /* Line 1806 of yacc.c  */
6153 < #line 2441 "conf_parser.y"
5056 > #line 1935 "conf_parser.y" /* yacc.c:1652  */
5057      {
5058    if (conf_parser_ctx.pass == 2)
5059 <    regex_ban = 1;
5059 >    block_state.flags.value = CLUSTER_ALL;
5060   }
5061 + #line 5062 "conf_parser.c" /* yacc.c:1652  */
5062      break;
5063  
5064 <  case 398:
5065 <
6162 < /* Line 1806 of yacc.c  */
6163 < #line 2450 "conf_parser.y"
5064 >  case 392:
5065 > #line 1945 "conf_parser.y" /* yacc.c:1652  */
5066      {
6165  if (conf_parser_ctx.pass == 2)
6166  {
6167    struct split_nuh_item nuh;
6168
6169    nuh.nuhmask  = yylval.string;
6170    nuh.nickptr  = NULL;
6171    nuh.userptr  = userbuf;
6172    nuh.hostptr  = hostbuf;
5067  
5068 <    nuh.nicksize = 0;
5069 <    nuh.usersize = sizeof(userbuf);
6176 <    nuh.hostsize = sizeof(hostbuf);
5068 >  if (conf_parser_ctx.pass != 2)
5069 >    break;
5070  
5071 <    split_nuh(&nuh);
5072 <  }
5071 >  reset_block_state();
5072 >  block_state.aftype.value = AF_INET;
5073 >  block_state.port.value = PORTNUM;
5074   }
5075 + #line 5076 "conf_parser.c" /* yacc.c:1652  */
5076      break;
5077  
5078 <  case 399:
5079 <
6185 < /* Line 1806 of yacc.c  */
6186 < #line 2469 "conf_parser.y"
5078 >  case 393:
5079 > #line 1954 "conf_parser.y" /* yacc.c:1652  */
5080      {
5081 <  if (conf_parser_ctx.pass == 2)
5082 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5083 < }
5081 >  struct addrinfo hints, *res;
5082 >
5083 >  if (conf_parser_ctx.pass != 2)
5084      break;
5085  
5086 <  case 400:
5086 >  if (!block_state.name.buf[0] ||
5087 >      !block_state.host.buf[0])
5088 >    break;
5089  
5090 < /* Line 1806 of yacc.c  */
5091 < #line 2478 "conf_parser.y"
6197 <    {
6198 <  if (conf_parser_ctx.pass == 2)
6199 <    hostbuf[0] = reasonbuf[0] = '\0';
6200 < }
5090 >  if (!block_state.rpass.buf[0] ||
5091 >      !block_state.spass.buf[0])
5092      break;
5093  
5094 <  case 401:
5094 >  if (server_valid_name(block_state.name.buf) == false)
5095 >    break;
5096  
5097 < /* Line 1806 of yacc.c  */
5098 < #line 2482 "conf_parser.y"
5099 <    {
5100 <  if (conf_parser_ctx.pass == 2)
5097 >  if (has_wildcards(block_state.name.buf) ||
5098 >      has_wildcards(block_state.host.buf))
5099 >    break;
5100 >
5101 >  struct MaskItem *conf = conf_make(CONF_SERVER);
5102 >  conf->addr = xcalloc(sizeof(*conf->addr));
5103 >  conf->port = block_state.port.value;
5104 >  conf->flags = block_state.flags.value;
5105 >  conf->aftype = block_state.aftype.value;
5106 >  conf->host = xstrdup(block_state.host.buf);
5107 >  conf->name = xstrdup(block_state.name.buf);
5108 >  conf->passwd = xstrdup(block_state.rpass.buf);
5109 >  conf->spasswd = xstrdup(block_state.spass.buf);
5110 >
5111 >  if (block_state.cert.buf[0])
5112 >    conf->certfp = xstrdup(block_state.cert.buf);
5113 >
5114 >  if (block_state.ciph.buf[0])
5115 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5116 >
5117 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5118 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5119 >
5120 >  if (block_state.bind.buf[0])
5121    {
5122 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5122 >    memset(&hints, 0, sizeof(hints));
5123 >
5124 >    hints.ai_family   = AF_UNSPEC;
5125 >    hints.ai_socktype = SOCK_STREAM;
5126 >    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5127 >
5128 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5129 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server bind(%s)", block_state.bind.buf);
5130 >    else
5131      {
5132 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6213 <      DupString(yy_aconf->host, hostbuf);
5132 >      assert(res);
5133  
5134 <      if (reasonbuf[0])
5135 <        DupString(yy_aconf->reason, reasonbuf);
5136 <      else
5137 <        DupString(yy_aconf->reason, "No reason");
5138 <      add_conf_by_address(CONF_DLINE, yy_aconf);
6220 <      yy_aconf = NULL;
5134 >      conf->bind = xcalloc(sizeof(*conf->bind));
5135 >
5136 >      memcpy(conf->bind, res->ai_addr, res->ai_addrlen);
5137 >      conf->bind->ss_len = res->ai_addrlen;
5138 >      freeaddrinfo(res);
5139      }
5140    }
5141 +
5142 +  conf_add_class_to_conf(conf, block_state.class.buf);
5143 +  lookup_confhost(conf);
5144   }
5145 + #line 5146 "conf_parser.c" /* yacc.c:1652  */
5146      break;
5147  
5148 <  case 407:
5149 <
6228 < /* Line 1806 of yacc.c  */
6229 < #line 2504 "conf_parser.y"
5148 >  case 411:
5149 > #line 2038 "conf_parser.y" /* yacc.c:1652  */
5150      {
5151    if (conf_parser_ctx.pass == 2)
5152 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5152 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5153   }
5154 + #line 5155 "conf_parser.c" /* yacc.c:1652  */
5155      break;
5156  
5157 <  case 408:
5158 <
6238 < /* Line 1806 of yacc.c  */
6239 < #line 2510 "conf_parser.y"
5157 >  case 412:
5158 > #line 2044 "conf_parser.y" /* yacc.c:1652  */
5159      {
5160    if (conf_parser_ctx.pass == 2)
5161 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5161 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5162   }
5163 + #line 5164 "conf_parser.c" /* yacc.c:1652  */
5164      break;
5165  
5166 <  case 414:
5167 <
6248 < /* Line 1806 of yacc.c  */
6249 < #line 2524 "conf_parser.y"
5166 >  case 413:
5167 > #line 2050 "conf_parser.y" /* yacc.c:1652  */
5168      {
5169    if (conf_parser_ctx.pass == 2)
5170 <  {
5171 <    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5170 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5171 > }
5172 > #line 5173 "conf_parser.c" /* yacc.c:1652  */
5173 >    break;
5174 >
5175 >  case 414:
5176 > #line 2056 "conf_parser.y" /* yacc.c:1652  */
5177      {
5178 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5179 <      DupString(yy_aconf->host, yylval.string);
5178 >  if (conf_parser_ctx.pass != 2)
5179 >    break;
5180  
5181 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5182 <      yy_aconf = NULL;
5183 <    }
5184 <  }
5181 >  if (*yylval.string == ':')
5182 >    conf_error_report("Server passwords cannot begin with a colon");
5183 >  else if (strchr(yylval.string, ' '))
5184 >    conf_error_report("Server passwords cannot contain spaces");
5185 >  else
5186 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5187   }
5188 + #line 5189 "conf_parser.c" /* yacc.c:1652  */
5189      break;
5190  
5191    case 415:
5192 <
6267 < /* Line 1806 of yacc.c  */
6268 < #line 2542 "conf_parser.y"
5192 > #line 2069 "conf_parser.y" /* yacc.c:1652  */
5193      {
5194 <  if (conf_parser_ctx.pass == 2)
5195 <  {
5196 <    regex_ban = 0;
5197 <    reasonbuf[0] = gecos_name[0] = '\0';
5198 <  }
5194 >  if (conf_parser_ctx.pass != 2)
5195 >    break;
5196 >
5197 >  if (*yylval.string == ':')
5198 >    conf_error_report("Server passwords cannot begin with a colon");
5199 >  else if (strchr(yylval.string, ' '))
5200 >    conf_error_report("Server passwords cannot contain spaces");
5201 >  else
5202 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5203   }
5204 + #line 5205 "conf_parser.c" /* yacc.c:1652  */
5205      break;
5206  
5207    case 416:
5208 <
6280 < /* Line 1806 of yacc.c  */
6281 < #line 2549 "conf_parser.y"
5208 > #line 2082 "conf_parser.y" /* yacc.c:1652  */
5209      {
5210    if (conf_parser_ctx.pass == 2)
5211 <  {
6285 <    if (gecos_name[0])
6286 <    {
6287 <      if (regex_ban)
6288 <      {
6289 < #ifdef HAVE_LIBPCRE
6290 <        void *exp_p = NULL;
6291 <        const char *errptr = NULL;
6292 <
6293 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
6294 <        {
6295 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
6296 <               errptr);
6297 <          break;
6298 <        }
6299 <
6300 <        yy_conf = make_conf_item(RXLINE_TYPE);
6301 <        yy_conf->regexpname = exp_p;
6302 < #else
6303 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
6304 <        break;
6305 < #endif
6306 <      }
6307 <      else
6308 <        yy_conf = make_conf_item(XLINE_TYPE);
6309 <
6310 <      yy_match_item = map_to_conf(yy_conf);
6311 <      DupString(yy_conf->name, gecos_name);
6312 <
6313 <      if (reasonbuf[0])
6314 <        DupString(yy_match_item->reason, reasonbuf);
6315 <      else
6316 <        DupString(yy_match_item->reason, "No reason");
6317 <    }
6318 <  }
5211 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5212   }
5213 + #line 5214 "conf_parser.c" /* yacc.c:1652  */
5214      break;
5215  
5216    case 417:
5217 <
6324 < /* Line 1806 of yacc.c  */
6325 < #line 2589 "conf_parser.y"
6326 <    {
6327 < }
6328 <    break;
6329 <
6330 <  case 421:
6331 <
6332 < /* Line 1806 of yacc.c  */
6333 < #line 2594 "conf_parser.y"
5217 > #line 2088 "conf_parser.y" /* yacc.c:1652  */
5218      {
5219    if (conf_parser_ctx.pass == 2)
5220 <    regex_ban = 1;
5220 >    block_state.port.value = (yyvsp[-1].number);
5221   }
5222 + #line 5223 "conf_parser.c" /* yacc.c:1652  */
5223      break;
5224  
5225 <  case 428:
5226 <
6342 < /* Line 1806 of yacc.c  */
6343 < #line 2603 "conf_parser.y"
5225 >  case 418:
5226 > #line 2094 "conf_parser.y" /* yacc.c:1652  */
5227      {
5228    if (conf_parser_ctx.pass == 2)
5229 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5229 >    block_state.aftype.value = AF_INET;
5230   }
5231 + #line 5232 "conf_parser.c" /* yacc.c:1652  */
5232      break;
5233  
5234 <  case 429:
5235 <
6352 < /* Line 1806 of yacc.c  */
6353 < #line 2609 "conf_parser.y"
5234 >  case 419:
5235 > #line 2098 "conf_parser.y" /* yacc.c:1652  */
5236      {
5237    if (conf_parser_ctx.pass == 2)
5238 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5238 >    block_state.aftype.value = AF_INET6;
5239   }
5240 + #line 5241 "conf_parser.c" /* yacc.c:1652  */
5241      break;
5242  
5243 <  case 485:
5244 <
6362 < /* Line 1806 of yacc.c  */
6363 < #line 2653 "conf_parser.y"
5243 >  case 420:
5244 > #line 2104 "conf_parser.y" /* yacc.c:1652  */
5245      {
5246 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5246 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5247   }
5248 + #line 5249 "conf_parser.c" /* yacc.c:1652  */
5249      break;
5250  
5251 <  case 486:
5252 <
6371 < /* Line 1806 of yacc.c  */
6372 < #line 2658 "conf_parser.y"
5251 >  case 424:
5252 > #line 2110 "conf_parser.y" /* yacc.c:1652  */
5253      {
5254 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5254 >  if (conf_parser_ctx.pass == 2)
5255 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5256   }
5257 + #line 5258 "conf_parser.c" /* yacc.c:1652  */
5258      break;
5259  
5260 <  case 487:
5261 <
6380 < /* Line 1806 of yacc.c  */
6381 < #line 2663 "conf_parser.y"
5260 >  case 425:
5261 > #line 2114 "conf_parser.y" /* yacc.c:1652  */
5262      {
5263 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5263 >  if (conf_parser_ctx.pass == 2)
5264 >    block_state.flags.value |= CONF_FLAGS_SSL;
5265   }
5266 + #line 5267 "conf_parser.c" /* yacc.c:1652  */
5267      break;
5268  
5269 <  case 488:
5270 <
6389 < /* Line 1806 of yacc.c  */
6390 < #line 2668 "conf_parser.y"
5269 >  case 426:
5270 > #line 2120 "conf_parser.y" /* yacc.c:1652  */
5271      {
5272 <  ConfigFileEntry.use_whois_actually = yylval.number;
5272 >  if (conf_parser_ctx.pass == 2)
5273 >  {
5274 >    if (yylval.number)
5275 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5276 >    else
5277 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5278 >  }
5279   }
5280 + #line 5281 "conf_parser.c" /* yacc.c:1652  */
5281      break;
5282  
5283 <  case 489:
5284 <
6398 < /* Line 1806 of yacc.c  */
6399 < #line 2673 "conf_parser.y"
5283 >  case 427:
5284 > #line 2131 "conf_parser.y" /* yacc.c:1652  */
5285      {
5286 <  GlobalSetOptions.rejecttime = yylval.number;
5286 >  if (conf_parser_ctx.pass == 2)
5287 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5288   }
5289 + #line 5290 "conf_parser.c" /* yacc.c:1652  */
5290      break;
5291  
5292 <  case 490:
5293 <
6407 < /* Line 1806 of yacc.c  */
6408 < #line 2678 "conf_parser.y"
5292 >  case 428:
5293 > #line 2137 "conf_parser.y" /* yacc.c:1652  */
5294      {
5295 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5295 >  if (conf_parser_ctx.pass == 2)
5296 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5297   }
5298 + #line 5299 "conf_parser.c" /* yacc.c:1652  */
5299      break;
5300  
5301 <  case 491:
5302 <
6416 < /* Line 1806 of yacc.c  */
6417 < #line 2683 "conf_parser.y"
5301 >  case 429:
5302 > #line 2143 "conf_parser.y" /* yacc.c:1652  */
5303      {
5304 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5304 >  if (conf_parser_ctx.pass == 2)
5305 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5306   }
5307 + #line 5308 "conf_parser.c" /* yacc.c:1652  */
5308      break;
5309  
5310 <  case 492:
5311 <
6425 < /* Line 1806 of yacc.c  */
6426 < #line 2688 "conf_parser.y"
5310 >  case 430:
5311 > #line 2149 "conf_parser.y" /* yacc.c:1652  */
5312      {
5313 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5313 > #ifdef HAVE_TLS
5314 >  if (conf_parser_ctx.pass == 2)
5315 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5316 > #else
5317 >  if (conf_parser_ctx.pass == 2)
5318 >    conf_error_report("Ignoring connect::ciphers -- no TLS support");
5319 > #endif
5320   }
5321 + #line 5322 "conf_parser.c" /* yacc.c:1652  */
5322      break;
5323  
5324 <  case 493:
5325 <
6434 < /* Line 1806 of yacc.c  */
6435 < #line 2693 "conf_parser.y"
5324 >  case 431:
5325 > #line 2164 "conf_parser.y" /* yacc.c:1652  */
5326      {
5327 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5327 >  if (conf_parser_ctx.pass == 2)
5328 >    reset_block_state();
5329   }
5330 + #line 5331 "conf_parser.c" /* yacc.c:1652  */
5331      break;
5332  
5333 <  case 494:
5334 <
6443 < /* Line 1806 of yacc.c  */
6444 < #line 2698 "conf_parser.y"
5333 >  case 432:
5334 > #line 2168 "conf_parser.y" /* yacc.c:1652  */
5335      {
5336 <  ConfigFileEntry.disable_remote = yylval.number;
6447 < }
5336 >  if (conf_parser_ctx.pass != 2)
5337      break;
5338  
5339 <  case 495:
5340 <
6452 < /* Line 1806 of yacc.c  */
6453 < #line 2703 "conf_parser.y"
6454 <    {
6455 <  ConfigFileEntry.failed_oper_notice = yylval.number;
6456 < }
5339 >  if (!block_state.user.buf[0] ||
5340 >      !block_state.host.buf[0])
5341      break;
5342  
5343 <  case 496:
5343 >  struct MaskItem *conf = conf_make(CONF_KLINE);
5344 >  conf->user = xstrdup(block_state.user.buf);
5345 >  conf->host = xstrdup(block_state.host.buf);
5346  
5347 < /* Line 1806 of yacc.c  */
5348 < #line 2708 "conf_parser.y"
5349 <    {
5350 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5347 >  if (block_state.rpass.buf[0])
5348 >    conf->reason = xstrdup(block_state.rpass.buf);
5349 >  else
5350 >    conf->reason = xstrdup(CONF_NOREASON);
5351 >  add_conf_by_address(CONF_KLINE, conf);
5352   }
5353 + #line 5354 "conf_parser.c" /* yacc.c:1652  */
5354      break;
5355  
5356 <  case 497:
5357 <
6470 < /* Line 1806 of yacc.c  */
6471 < #line 2713 "conf_parser.y"
5356 >  case 438:
5357 > #line 2191 "conf_parser.y" /* yacc.c:1652  */
5358      {
6473  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
6474 }
6475    break;
5359  
5360 <  case 498:
5360 >  if (conf_parser_ctx.pass == 2)
5361 >  {
5362 >    struct split_nuh_item nuh;
5363  
5364 < /* Line 1806 of yacc.c  */
5365 < #line 2718 "conf_parser.y"
5366 <    {
5367 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
6483 < }
6484 <    break;
5364 >    nuh.nuhmask  = yylval.string;
5365 >    nuh.nickptr  = NULL;
5366 >    nuh.userptr  = block_state.user.buf;
5367 >    nuh.hostptr  = block_state.host.buf;
5368  
5369 <  case 499:
5369 >    nuh.nicksize = 0;
5370 >    nuh.usersize = sizeof(block_state.user.buf);
5371 >    nuh.hostsize = sizeof(block_state.host.buf);
5372  
5373 < /* Line 1806 of yacc.c  */
5374 < #line 2723 "conf_parser.y"
6490 <    {
6491 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5373 >    split_nuh(&nuh);
5374 >  }
5375   }
5376 + #line 5377 "conf_parser.c" /* yacc.c:1652  */
5377      break;
5378  
5379 <  case 500:
5380 <
6497 < /* Line 1806 of yacc.c  */
6498 < #line 2728 "conf_parser.y"
5379 >  case 439:
5380 > #line 2211 "conf_parser.y" /* yacc.c:1652  */
5381      {
5382 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5382 >  if (conf_parser_ctx.pass == 2)
5383 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5384   }
5385 + #line 5386 "conf_parser.c" /* yacc.c:1652  */
5386      break;
5387  
5388 <  case 501:
5389 <
6506 < /* Line 1806 of yacc.c  */
6507 < #line 2733 "conf_parser.y"
5388 >  case 440:
5389 > #line 2221 "conf_parser.y" /* yacc.c:1652  */
5390      {
5391 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5391 >  if (conf_parser_ctx.pass == 2)
5392 >    reset_block_state();
5393   }
5394 + #line 5395 "conf_parser.c" /* yacc.c:1652  */
5395      break;
5396  
5397 <  case 502:
5398 <
6515 < /* Line 1806 of yacc.c  */
6516 < #line 2738 "conf_parser.y"
5397 >  case 441:
5398 > #line 2225 "conf_parser.y" /* yacc.c:1652  */
5399      {
5400 <  if (conf_parser_ctx.pass == 2)
6519 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6520 < }
5400 >  if (conf_parser_ctx.pass != 2)
5401      break;
5402  
5403 <  case 503:
5403 >  if (!block_state.addr.buf[0])
5404 >    break;
5405  
5406 < /* Line 1806 of yacc.c  */
6526 < #line 2744 "conf_parser.y"
6527 <    {
6528 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5406 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5407    {
5408 <    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5409 <    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5410 <    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5411 <    exit(0);
5408 >    struct MaskItem *conf = conf_make(CONF_DLINE);
5409 >    conf->host = xstrdup(block_state.addr.buf);
5410 >
5411 >    if (block_state.rpass.buf[0])
5412 >      conf->reason = xstrdup(block_state.rpass.buf);
5413 >    else
5414 >      conf->reason = xstrdup(CONF_NOREASON);
5415 >    add_conf_by_address(CONF_DLINE, conf);
5416    }
5417   }
5418 + #line 5419 "conf_parser.c" /* yacc.c:1652  */
5419      break;
5420  
5421 <  case 504:
5422 <
6540 < /* Line 1806 of yacc.c  */
6541 < #line 2755 "conf_parser.y"
5421 >  case 447:
5422 > #line 2249 "conf_parser.y" /* yacc.c:1652  */
5423      {
5424 <  ConfigFileEntry.kline_with_reason = yylval.number;
5424 >  if (conf_parser_ctx.pass == 2)
5425 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5426   }
5427 + #line 5428 "conf_parser.c" /* yacc.c:1652  */
5428      break;
5429  
5430 <  case 505:
5431 <
6549 < /* Line 1806 of yacc.c  */
6550 < #line 2760 "conf_parser.y"
5430 >  case 448:
5431 > #line 2255 "conf_parser.y" /* yacc.c:1652  */
5432      {
5433    if (conf_parser_ctx.pass == 2)
5434 <  {
6554 <    MyFree(ConfigFileEntry.kline_reason);
6555 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6556 <  }
5434 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5435   }
5436 + #line 5437 "conf_parser.c" /* yacc.c:1652  */
5437      break;
5438  
5439 <  case 506:
5440 <
6562 < /* Line 1806 of yacc.c  */
6563 < #line 2769 "conf_parser.y"
5439 >  case 454:
5440 > #line 2270 "conf_parser.y" /* yacc.c:1652  */
5441      {
5442 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5442 >  if (conf_parser_ctx.pass == 2)
5443 >  {
5444 >    if (*yylval.string && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5445 >    {
5446 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5447 >      conf->host = xstrdup(yylval.string);
5448 >
5449 >      add_conf_by_address(CONF_EXEMPT, conf);
5450 >    }
5451 >  }
5452   }
5453 + #line 5454 "conf_parser.c" /* yacc.c:1652  */
5454      break;
5455  
5456 <  case 507:
5457 <
6571 < /* Line 1806 of yacc.c  */
6572 < #line 2774 "conf_parser.y"
5456 >  case 455:
5457 > #line 2287 "conf_parser.y" /* yacc.c:1652  */
5458      {
5459 <  ConfigFileEntry.warn_no_nline = yylval.number;
5459 >  if (conf_parser_ctx.pass == 2)
5460 >    reset_block_state();
5461   }
5462 + #line 5463 "conf_parser.c" /* yacc.c:1652  */
5463      break;
5464  
5465 <  case 508:
5466 <
6580 < /* Line 1806 of yacc.c  */
6581 < #line 2779 "conf_parser.y"
5465 >  case 456:
5466 > #line 2291 "conf_parser.y" /* yacc.c:1652  */
5467      {
5468 <  ConfigFileEntry.stats_e_disabled = yylval.number;
6584 < }
5468 >  if (conf_parser_ctx.pass != 2)
5469      break;
5470  
5471 <  case 509:
6588 <
6589 < /* Line 1806 of yacc.c  */
6590 < #line 2784 "conf_parser.y"
6591 <    {
6592 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
6593 < }
5471 >  if (!block_state.name.buf[0])
5472      break;
5473  
5474 <  case 510:
5474 >  struct GecosItem *gecos = gecos_make();
5475 >  gecos->mask = xstrdup(block_state.name.buf);
5476  
5477 < /* Line 1806 of yacc.c  */
5478 < #line 2789 "conf_parser.y"
5479 <    {
5480 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
5477 >  if (block_state.rpass.buf[0])
5478 >    gecos->reason = xstrdup(block_state.rpass.buf);
5479 >  else
5480 >    gecos->reason = xstrdup(CONF_NOREASON);
5481   }
5482 + #line 5483 "conf_parser.c" /* yacc.c:1652  */
5483      break;
5484  
5485 <  case 511:
5486 <
6607 < /* Line 1806 of yacc.c  */
6608 < #line 2794 "conf_parser.y"
5485 >  case 462:
5486 > #line 2311 "conf_parser.y" /* yacc.c:1652  */
5487      {
5488 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5488 >  if (conf_parser_ctx.pass == 2)
5489 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5490   }
5491 + #line 5492 "conf_parser.c" /* yacc.c:1652  */
5492      break;
5493  
5494 <  case 512:
5495 <
6616 < /* Line 1806 of yacc.c  */
6617 < #line 2797 "conf_parser.y"
5494 >  case 463:
5495 > #line 2317 "conf_parser.y" /* yacc.c:1652  */
5496      {
5497 <  ConfigFileEntry.stats_k_oper_only = 1;
5497 >  if (conf_parser_ctx.pass == 2)
5498 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5499   }
5500 + #line 5501 "conf_parser.c" /* yacc.c:1652  */
5501      break;
5502  
5503    case 513:
5504 <
6625 < /* Line 1806 of yacc.c  */
6626 < #line 2802 "conf_parser.y"
5504 > #line 2378 "conf_parser.y" /* yacc.c:1652  */
5505      {
5506 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5506 >  ConfigGeneral.away_count = (yyvsp[-1].number);
5507   }
5508 + #line 5509 "conf_parser.c" /* yacc.c:1652  */
5509      break;
5510  
5511    case 514:
5512 <
6634 < /* Line 1806 of yacc.c  */
6635 < #line 2805 "conf_parser.y"
5512 > #line 2383 "conf_parser.y" /* yacc.c:1652  */
5513      {
5514 <  ConfigFileEntry.stats_i_oper_only = 1;
5514 >  ConfigGeneral.away_time = (yyvsp[-1].number);
5515   }
5516 + #line 5517 "conf_parser.c" /* yacc.c:1652  */
5517      break;
5518  
5519    case 515:
5520 <
6643 < /* Line 1806 of yacc.c  */
6644 < #line 2810 "conf_parser.y"
5520 > #line 2388 "conf_parser.y" /* yacc.c:1652  */
5521      {
5522 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5522 >  ConfigGeneral.max_watch = (yyvsp[-1].number);
5523   }
5524 + #line 5525 "conf_parser.c" /* yacc.c:1652  */
5525      break;
5526  
5527    case 516:
5528 <
6652 < /* Line 1806 of yacc.c  */
6653 < #line 2815 "conf_parser.y"
5528 > #line 2393 "conf_parser.y" /* yacc.c:1652  */
5529      {
5530 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5530 >  ConfigGeneral.whowas_history_length = (yyvsp[-1].number);
5531   }
5532 + #line 5533 "conf_parser.c" /* yacc.c:1652  */
5533      break;
5534  
5535    case 517:
5536 <
6661 < /* Line 1806 of yacc.c  */
6662 < #line 2820 "conf_parser.y"
5536 > #line 2398 "conf_parser.y" /* yacc.c:1652  */
5537      {
5538 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5538 >  ConfigGeneral.cycle_on_host_change = yylval.number;
5539   }
5540 + #line 5541 "conf_parser.c" /* yacc.c:1652  */
5541      break;
5542  
5543    case 518:
5544 <
6670 < /* Line 1806 of yacc.c  */
6671 < #line 2825 "conf_parser.y"
5544 > #line 2403 "conf_parser.y" /* yacc.c:1652  */
5545      {
5546 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5546 >  ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5547   }
5548 + #line 5549 "conf_parser.c" /* yacc.c:1652  */
5549      break;
5550  
5551    case 519:
5552 <
6679 < /* Line 1806 of yacc.c  */
6680 < #line 2830 "conf_parser.y"
5552 > #line 2408 "conf_parser.y" /* yacc.c:1652  */
5553      {
5554 <  ConfigFileEntry.short_motd = yylval.number;
5554 >  ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5555   }
5556 + #line 5557 "conf_parser.c" /* yacc.c:1652  */
5557      break;
5558  
5559    case 520:
5560 <
6688 < /* Line 1806 of yacc.c  */
6689 < #line 2835 "conf_parser.y"
5560 > #line 2413 "conf_parser.y" /* yacc.c:1652  */
5561      {
5562 <  ConfigFileEntry.no_oper_flood = yylval.number;
5562 >  ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5563   }
5564 + #line 5565 "conf_parser.c" /* yacc.c:1652  */
5565      break;
5566  
5567    case 521:
5568 <
6697 < /* Line 1806 of yacc.c  */
6698 < #line 2840 "conf_parser.y"
5568 > #line 2418 "conf_parser.y" /* yacc.c:1652  */
5569      {
5570 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
5570 >  ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5571   }
5572 + #line 5573 "conf_parser.c" /* yacc.c:1652  */
5573      break;
5574  
5575    case 522:
5576 <
6706 < /* Line 1806 of yacc.c  */
6707 < #line 2845 "conf_parser.y"
5576 > #line 2423 "conf_parser.y" /* yacc.c:1652  */
5577      {
5578 <  ConfigFileEntry.oper_pass_resv = yylval.number;
5578 >  ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5579   }
5580 + #line 5581 "conf_parser.c" /* yacc.c:1652  */
5581      break;
5582  
5583    case 523:
5584 <
6715 < /* Line 1806 of yacc.c  */
6716 < #line 2850 "conf_parser.y"
5584 > #line 2428 "conf_parser.y" /* yacc.c:1652  */
5585      {
5586 <  if (conf_parser_ctx.pass == 2)
6719 <  {
6720 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6721 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6722 <
6723 <    set_locale(yylval.string);
6724 <  }
5586 >  ConfigGeneral.failed_oper_notice = yylval.number;
5587   }
5588 + #line 5589 "conf_parser.c" /* yacc.c:1652  */
5589      break;
5590  
5591    case 524:
5592 <
6730 < /* Line 1806 of yacc.c  */
6731 < #line 2861 "conf_parser.y"
5592 > #line 2433 "conf_parser.y" /* yacc.c:1652  */
5593      {
5594 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5594 >  ConfigGeneral.anti_nick_flood = yylval.number;
5595   }
5596 + #line 5597 "conf_parser.c" /* yacc.c:1652  */
5597      break;
5598  
5599    case 525:
5600 <
6739 < /* Line 1806 of yacc.c  */
6740 < #line 2866 "conf_parser.y"
5600 > #line 2438 "conf_parser.y" /* yacc.c:1652  */
5601      {
5602 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5602 >  ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5603   }
5604 + #line 5605 "conf_parser.c" /* yacc.c:1652  */
5605      break;
5606  
5607    case 526:
5608 <
6748 < /* Line 1806 of yacc.c  */
6749 < #line 2871 "conf_parser.y"
5608 > #line 2443 "conf_parser.y" /* yacc.c:1652  */
5609      {
5610 <  ConfigFileEntry.use_egd = yylval.number;
5610 >  ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5611   }
5612 + #line 5613 "conf_parser.c" /* yacc.c:1652  */
5613      break;
5614  
5615    case 527:
5616 <
6757 < /* Line 1806 of yacc.c  */
6758 < #line 2876 "conf_parser.y"
5616 > #line 2448 "conf_parser.y" /* yacc.c:1652  */
5617      {
5618 <  if (conf_parser_ctx.pass == 2)
6761 <  {
6762 <    MyFree(ConfigFileEntry.egdpool_path);
6763 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6764 <  }
5618 >  ConfigGeneral.max_accept = (yyvsp[-1].number);
5619   }
5620 + #line 5621 "conf_parser.c" /* yacc.c:1652  */
5621      break;
5622  
5623    case 528:
5624 <
6770 < /* Line 1806 of yacc.c  */
6771 < #line 2885 "conf_parser.y"
5624 > #line 2453 "conf_parser.y" /* yacc.c:1652  */
5625      {
5626 <  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6774 <  {
6775 <    MyFree(ConfigFileEntry.service_name);
6776 <    DupString(ConfigFileEntry.service_name, yylval.string);
6777 <  }
5626 >  ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5627   }
5628 + #line 5629 "conf_parser.c" /* yacc.c:1652  */
5629      break;
5630  
5631    case 529:
5632 <
6783 < /* Line 1806 of yacc.c  */
6784 < #line 2894 "conf_parser.y"
5632 > #line 2458 "conf_parser.y" /* yacc.c:1652  */
5633      {
5634 <  ConfigFileEntry.ping_cookie = yylval.number;
5634 >  ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5635   }
5636 + #line 5637 "conf_parser.c" /* yacc.c:1652  */
5637      break;
5638  
5639    case 530:
5640 <
6792 < /* Line 1806 of yacc.c  */
6793 < #line 2899 "conf_parser.y"
5640 > #line 2463 "conf_parser.y" /* yacc.c:1652  */
5641      {
5642 <  ConfigFileEntry.disable_auth = yylval.number;
5642 >  ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5643   }
5644 + #line 5645 "conf_parser.c" /* yacc.c:1652  */
5645      break;
5646  
5647    case 531:
5648 <
6801 < /* Line 1806 of yacc.c  */
6802 < #line 2904 "conf_parser.y"
5648 > #line 2468 "conf_parser.y" /* yacc.c:1652  */
5649      {
5650 <  ConfigFileEntry.throttle_time = yylval.number;
5650 >  ConfigGeneral.invisible_on_connect = yylval.number;
5651   }
5652 + #line 5653 "conf_parser.c" /* yacc.c:1652  */
5653      break;
5654  
5655    case 532:
5656 + #line 2473 "conf_parser.y" /* yacc.c:1652  */
5657 +    {
5658 +  ConfigGeneral.warn_no_connect_block = yylval.number;
5659 + }
5660 + #line 5661 "conf_parser.c" /* yacc.c:1652  */
5661 +    break;
5662  
5663 < /* Line 1806 of yacc.c  */
5664 < #line 2909 "conf_parser.y"
5663 >  case 533:
5664 > #line 2478 "conf_parser.y" /* yacc.c:1652  */
5665      {
5666 <  ConfigFileEntry.oper_umodes = 0;
5666 >  ConfigGeneral.stats_e_disabled = yylval.number;
5667   }
5668 + #line 5669 "conf_parser.c" /* yacc.c:1652  */
5669      break;
5670  
5671 <  case 536:
5671 >  case 534:
5672 > #line 2483 "conf_parser.y" /* yacc.c:1652  */
5673 >    {
5674 >  ConfigGeneral.stats_m_oper_only = yylval.number;
5675 > }
5676 > #line 5677 "conf_parser.c" /* yacc.c:1652  */
5677 >    break;
5678  
5679 < /* Line 1806 of yacc.c  */
5680 < #line 2915 "conf_parser.y"
5679 >  case 535:
5680 > #line 2488 "conf_parser.y" /* yacc.c:1652  */
5681      {
5682 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5682 >  ConfigGeneral.stats_o_oper_only = yylval.number;
5683   }
5684 + #line 5685 "conf_parser.c" /* yacc.c:1652  */
5685      break;
5686  
5687 <  case 537:
5687 >  case 536:
5688 > #line 2493 "conf_parser.y" /* yacc.c:1652  */
5689 >    {
5690 >  ConfigGeneral.stats_P_oper_only = yylval.number;
5691 > }
5692 > #line 5693 "conf_parser.c" /* yacc.c:1652  */
5693 >    break;
5694  
5695 < /* Line 1806 of yacc.c  */
5696 < #line 2918 "conf_parser.y"
5695 >  case 537:
5696 > #line 2498 "conf_parser.y" /* yacc.c:1652  */
5697      {
5698 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5698 >  ConfigGeneral.stats_u_oper_only = yylval.number;
5699   }
5700 + #line 5701 "conf_parser.c" /* yacc.c:1652  */
5701      break;
5702  
5703    case 538:
5704 <
6837 < /* Line 1806 of yacc.c  */
6838 < #line 2921 "conf_parser.y"
5704 > #line 2503 "conf_parser.y" /* yacc.c:1652  */
5705      {
5706 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
5706 >  ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5707   }
5708 + #line 5709 "conf_parser.c" /* yacc.c:1652  */
5709      break;
5710  
5711    case 539:
5712 <
6846 < /* Line 1806 of yacc.c  */
6847 < #line 2924 "conf_parser.y"
5712 > #line 2506 "conf_parser.y" /* yacc.c:1652  */
5713      {
5714 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
5714 >  ConfigGeneral.stats_k_oper_only = 1;
5715   }
5716 + #line 5717 "conf_parser.c" /* yacc.c:1652  */
5717      break;
5718  
5719    case 540:
5720 <
6855 < /* Line 1806 of yacc.c  */
6856 < #line 2927 "conf_parser.y"
5720 > #line 2511 "conf_parser.y" /* yacc.c:1652  */
5721      {
5722 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
5722 >  ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5723   }
5724 + #line 5725 "conf_parser.c" /* yacc.c:1652  */
5725      break;
5726  
5727    case 541:
5728 <
6864 < /* Line 1806 of yacc.c  */
6865 < #line 2930 "conf_parser.y"
5728 > #line 2514 "conf_parser.y" /* yacc.c:1652  */
5729      {
5730 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
5730 >  ConfigGeneral.stats_i_oper_only = 1;
5731   }
5732 + #line 5733 "conf_parser.c" /* yacc.c:1652  */
5733      break;
5734  
5735    case 542:
5736 <
6873 < /* Line 1806 of yacc.c  */
6874 < #line 2933 "conf_parser.y"
5736 > #line 2519 "conf_parser.y" /* yacc.c:1652  */
5737      {
5738 <  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
5738 >  ConfigGeneral.pace_wait = (yyvsp[-1].number);
5739   }
5740 + #line 5741 "conf_parser.c" /* yacc.c:1652  */
5741      break;
5742  
5743    case 543:
5744 <
6882 < /* Line 1806 of yacc.c  */
6883 < #line 2936 "conf_parser.y"
5744 > #line 2524 "conf_parser.y" /* yacc.c:1652  */
5745      {
5746 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
5746 >  ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5747   }
5748 + #line 5749 "conf_parser.c" /* yacc.c:1652  */
5749      break;
5750  
5751    case 544:
5752 <
6891 < /* Line 1806 of yacc.c  */
6892 < #line 2939 "conf_parser.y"
5752 > #line 2529 "conf_parser.y" /* yacc.c:1652  */
5753      {
5754 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
5754 >  ConfigGeneral.opers_bypass_callerid = yylval.number;
5755   }
5756 + #line 5757 "conf_parser.c" /* yacc.c:1652  */
5757      break;
5758  
5759    case 545:
5760 <
6900 < /* Line 1806 of yacc.c  */
6901 < #line 2942 "conf_parser.y"
5760 > #line 2534 "conf_parser.y" /* yacc.c:1652  */
5761      {
5762 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
5762 >  ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5763   }
5764 + #line 5765 "conf_parser.c" /* yacc.c:1652  */
5765      break;
5766  
5767    case 546:
5768 <
6909 < /* Line 1806 of yacc.c  */
6910 < #line 2945 "conf_parser.y"
5768 > #line 2539 "conf_parser.y" /* yacc.c:1652  */
5769      {
5770 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
5770 >  ConfigGeneral.short_motd = yylval.number;
5771   }
5772 + #line 5773 "conf_parser.c" /* yacc.c:1652  */
5773      break;
5774  
5775    case 547:
5776 <
6918 < /* Line 1806 of yacc.c  */
6919 < #line 2948 "conf_parser.y"
5776 > #line 2544 "conf_parser.y" /* yacc.c:1652  */
5777      {
5778 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
5778 >  ConfigGeneral.no_oper_flood = yylval.number;
5779   }
5780 + #line 5781 "conf_parser.c" /* yacc.c:1652  */
5781      break;
5782  
5783    case 548:
5784 <
6927 < /* Line 1806 of yacc.c  */
6928 < #line 2951 "conf_parser.y"
5784 > #line 2549 "conf_parser.y" /* yacc.c:1652  */
5785      {
5786 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
5786 >  ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5787   }
5788 + #line 5789 "conf_parser.c" /* yacc.c:1652  */
5789      break;
5790  
5791    case 549:
5792 <
6936 < /* Line 1806 of yacc.c  */
6937 < #line 2954 "conf_parser.y"
5792 > #line 2554 "conf_parser.y" /* yacc.c:1652  */
5793      {
5794 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
5794 >  ConfigGeneral.max_targets = (yyvsp[-1].number);
5795   }
5796 + #line 5797 "conf_parser.c" /* yacc.c:1652  */
5797      break;
5798  
5799    case 550:
5800 <
6945 < /* Line 1806 of yacc.c  */
6946 < #line 2957 "conf_parser.y"
5800 > #line 2559 "conf_parser.y" /* yacc.c:1652  */
5801      {
5802 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
5802 >  ConfigGeneral.ping_cookie = yylval.number;
5803   }
5804 + #line 5805 "conf_parser.c" /* yacc.c:1652  */
5805      break;
5806  
5807    case 551:
5808 <
6954 < /* Line 1806 of yacc.c  */
6955 < #line 2960 "conf_parser.y"
5808 > #line 2564 "conf_parser.y" /* yacc.c:1652  */
5809      {
5810 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
5810 >  ConfigGeneral.disable_auth = yylval.number;
5811   }
5812 + #line 5813 "conf_parser.c" /* yacc.c:1652  */
5813      break;
5814  
5815    case 552:
5816 <
6963 < /* Line 1806 of yacc.c  */
6964 < #line 2963 "conf_parser.y"
5816 > #line 2569 "conf_parser.y" /* yacc.c:1652  */
5817      {
5818 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
5818 >  ConfigGeneral.throttle_count = (yyvsp[-1].number);
5819   }
5820 + #line 5821 "conf_parser.c" /* yacc.c:1652  */
5821      break;
5822  
5823    case 553:
5824 <
6972 < /* Line 1806 of yacc.c  */
6973 < #line 2966 "conf_parser.y"
5824 > #line 2574 "conf_parser.y" /* yacc.c:1652  */
5825      {
5826 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
5826 >  ConfigGeneral.throttle_time = (yyvsp[-1].number);
5827   }
5828 + #line 5829 "conf_parser.c" /* yacc.c:1652  */
5829      break;
5830  
5831    case 554:
5832 <
6981 < /* Line 1806 of yacc.c  */
6982 < #line 2969 "conf_parser.y"
5832 > #line 2579 "conf_parser.y" /* yacc.c:1652  */
5833      {
5834 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
5834 >  ConfigGeneral.oper_umodes = 0;
5835   }
5836 + #line 5837 "conf_parser.c" /* yacc.c:1652  */
5837      break;
5838  
5839 <  case 555:
5840 <
6990 < /* Line 1806 of yacc.c  */
6991 < #line 2972 "conf_parser.y"
5839 >  case 558:
5840 > #line 2585 "conf_parser.y" /* yacc.c:1652  */
5841      {
5842 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
5842 >  ConfigGeneral.oper_umodes |= UMODE_BOTS;
5843   }
5844 + #line 5845 "conf_parser.c" /* yacc.c:1652  */
5845      break;
5846  
5847 <  case 556:
5848 <
6999 < /* Line 1806 of yacc.c  */
7000 < #line 2977 "conf_parser.y"
5847 >  case 559:
5848 > #line 2588 "conf_parser.y" /* yacc.c:1652  */
5849      {
5850 <  ConfigFileEntry.oper_only_umodes = 0;
5850 >  ConfigGeneral.oper_umodes |= UMODE_CCONN;
5851   }
5852 + #line 5853 "conf_parser.c" /* yacc.c:1652  */
5853      break;
5854  
5855    case 560:
5856 <
7008 < /* Line 1806 of yacc.c  */
7009 < #line 2983 "conf_parser.y"
5856 > #line 2591 "conf_parser.y" /* yacc.c:1652  */
5857      {
5858 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
5858 >  ConfigGeneral.oper_umodes |= UMODE_DEAF;
5859   }
5860 + #line 5861 "conf_parser.c" /* yacc.c:1652  */
5861      break;
5862  
5863    case 561:
5864 <
7017 < /* Line 1806 of yacc.c  */
7018 < #line 2986 "conf_parser.y"
5864 > #line 2594 "conf_parser.y" /* yacc.c:1652  */
5865      {
5866 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
5866 >  ConfigGeneral.oper_umodes |= UMODE_DEBUG;
5867   }
5868 + #line 5869 "conf_parser.c" /* yacc.c:1652  */
5869      break;
5870  
5871    case 562:
5872 <
7026 < /* Line 1806 of yacc.c  */
7027 < #line 2989 "conf_parser.y"
5872 > #line 2597 "conf_parser.y" /* yacc.c:1652  */
5873      {
5874 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
5874 >  ConfigGeneral.oper_umodes |= UMODE_FULL;
5875   }
5876 + #line 5877 "conf_parser.c" /* yacc.c:1652  */
5877      break;
5878  
5879    case 563:
5880 <
7035 < /* Line 1806 of yacc.c  */
7036 < #line 2992 "conf_parser.y"
5880 > #line 2600 "conf_parser.y" /* yacc.c:1652  */
5881      {
5882 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
5882 >  ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
5883   }
5884 + #line 5885 "conf_parser.c" /* yacc.c:1652  */
5885      break;
5886  
5887    case 564:
5888 <
7044 < /* Line 1806 of yacc.c  */
7045 < #line 2995 "conf_parser.y"
5888 > #line 2603 "conf_parser.y" /* yacc.c:1652  */
5889      {
5890 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
5890 >  ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
5891   }
5892 + #line 5893 "conf_parser.c" /* yacc.c:1652  */
5893      break;
5894  
5895    case 565:
5896 <
5897 < /* Line 1806 of yacc.c  */
5898 < #line 2998 "conf_parser.y"
7055 <    {
7056 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
5896 > #line 2606 "conf_parser.y" /* yacc.c:1652  */
5897 >    {
5898 >  ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
5899   }
5900 + #line 5901 "conf_parser.c" /* yacc.c:1652  */
5901      break;
5902  
5903    case 566:
5904 <
7062 < /* Line 1806 of yacc.c  */
7063 < #line 3001 "conf_parser.y"
5904 > #line 2609 "conf_parser.y" /* yacc.c:1652  */
5905      {
5906 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
5906 >  ConfigGeneral.oper_umodes |= UMODE_SKILL;
5907   }
5908 + #line 5909 "conf_parser.c" /* yacc.c:1652  */
5909      break;
5910  
5911    case 567:
5912 <
7071 < /* Line 1806 of yacc.c  */
7072 < #line 3004 "conf_parser.y"
5912 > #line 2612 "conf_parser.y" /* yacc.c:1652  */
5913      {
5914 <  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
5914 >  ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
5915   }
5916 + #line 5917 "conf_parser.c" /* yacc.c:1652  */
5917      break;
5918  
5919    case 568:
5920 <
7080 < /* Line 1806 of yacc.c  */
7081 < #line 3007 "conf_parser.y"
5920 > #line 2615 "conf_parser.y" /* yacc.c:1652  */
5921      {
5922 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
5922 >  ConfigGeneral.oper_umodes |= UMODE_REJ;
5923   }
5924 + #line 5925 "conf_parser.c" /* yacc.c:1652  */
5925      break;
5926  
5927    case 569:
5928 <
7089 < /* Line 1806 of yacc.c  */
7090 < #line 3010 "conf_parser.y"
5928 > #line 2618 "conf_parser.y" /* yacc.c:1652  */
5929      {
5930 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
5930 >  ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
5931   }
5932 + #line 5933 "conf_parser.c" /* yacc.c:1652  */
5933      break;
5934  
5935    case 570:
5936 <
7098 < /* Line 1806 of yacc.c  */
7099 < #line 3013 "conf_parser.y"
5936 > #line 2621 "conf_parser.y" /* yacc.c:1652  */
5937      {
5938 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
5938 >  ConfigGeneral.oper_umodes |= UMODE_SPY;
5939   }
5940 + #line 5941 "conf_parser.c" /* yacc.c:1652  */
5941      break;
5942  
5943    case 571:
5944 <
7107 < /* Line 1806 of yacc.c  */
7108 < #line 3016 "conf_parser.y"
5944 > #line 2624 "conf_parser.y" /* yacc.c:1652  */
5945      {
5946 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
5946 >  ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
5947   }
5948 + #line 5949 "conf_parser.c" /* yacc.c:1652  */
5949      break;
5950  
5951    case 572:
5952 <
7116 < /* Line 1806 of yacc.c  */
7117 < #line 3019 "conf_parser.y"
5952 > #line 2627 "conf_parser.y" /* yacc.c:1652  */
5953      {
5954 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
5954 >  ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
5955   }
5956 + #line 5957 "conf_parser.c" /* yacc.c:1652  */
5957      break;
5958  
5959    case 573:
5960 <
7125 < /* Line 1806 of yacc.c  */
7126 < #line 3022 "conf_parser.y"
5960 > #line 2630 "conf_parser.y" /* yacc.c:1652  */
5961      {
5962 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
5962 >  ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
5963   }
5964 + #line 5965 "conf_parser.c" /* yacc.c:1652  */
5965      break;
5966  
5967    case 574:
5968 <
7134 < /* Line 1806 of yacc.c  */
7135 < #line 3025 "conf_parser.y"
5968 > #line 2633 "conf_parser.y" /* yacc.c:1652  */
5969      {
5970 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
5970 >  ConfigGeneral.oper_umodes |= UMODE_WALLOP;
5971   }
5972 + #line 5973 "conf_parser.c" /* yacc.c:1652  */
5973      break;
5974  
5975    case 575:
5976 <
7143 < /* Line 1806 of yacc.c  */
7144 < #line 3028 "conf_parser.y"
5976 > #line 2636 "conf_parser.y" /* yacc.c:1652  */
5977      {
5978 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
5978 >  ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
5979   }
5980 + #line 5981 "conf_parser.c" /* yacc.c:1652  */
5981      break;
5982  
5983    case 576:
5984 <
7152 < /* Line 1806 of yacc.c  */
7153 < #line 3031 "conf_parser.y"
5984 > #line 2639 "conf_parser.y" /* yacc.c:1652  */
5985      {
5986 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
5986 >  ConfigGeneral.oper_umodes |= UMODE_CALLERID;
5987   }
5988 + #line 5989 "conf_parser.c" /* yacc.c:1652  */
5989      break;
5990  
5991    case 577:
5992 <
7161 < /* Line 1806 of yacc.c  */
7162 < #line 3034 "conf_parser.y"
5992 > #line 2642 "conf_parser.y" /* yacc.c:1652  */
5993      {
5994 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
5994 >  ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
5995   }
5996 + #line 5997 "conf_parser.c" /* yacc.c:1652  */
5997      break;
5998  
5999    case 578:
6000 <
7170 < /* Line 1806 of yacc.c  */
7171 < #line 3037 "conf_parser.y"
6000 > #line 2645 "conf_parser.y" /* yacc.c:1652  */
6001      {
6002 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6002 >  ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6003   }
6004 + #line 6005 "conf_parser.c" /* yacc.c:1652  */
6005      break;
6006  
6007    case 579:
6008 <
7179 < /* Line 1806 of yacc.c  */
7180 < #line 3040 "conf_parser.y"
6008 > #line 2648 "conf_parser.y" /* yacc.c:1652  */
6009      {
6010 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6010 >  ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6011   }
6012 + #line 6013 "conf_parser.c" /* yacc.c:1652  */
6013      break;
6014  
6015    case 580:
6016 <
7188 < /* Line 1806 of yacc.c  */
7189 < #line 3045 "conf_parser.y"
6016 > #line 2651 "conf_parser.y" /* yacc.c:1652  */
6017      {
6018 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6018 >  ConfigGeneral.oper_umodes |= UMODE_EXPIRATION;
6019   }
6020 + #line 6021 "conf_parser.c" /* yacc.c:1652  */
6021      break;
6022  
6023    case 581:
6024 + #line 2656 "conf_parser.y" /* yacc.c:1652  */
6025 +    {
6026 +  ConfigGeneral.oper_only_umodes = 0;
6027 + }
6028 + #line 6029 "conf_parser.c" /* yacc.c:1652  */
6029 +    break;
6030  
6031 < /* Line 1806 of yacc.c  */
6032 < #line 3050 "conf_parser.y"
6031 >  case 585:
6032 > #line 2662 "conf_parser.y" /* yacc.c:1652  */
6033      {
6034 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6034 >  ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6035   }
6036 + #line 6037 "conf_parser.c" /* yacc.c:1652  */
6037      break;
6038  
6039 <  case 582:
6039 >  case 586:
6040 > #line 2665 "conf_parser.y" /* yacc.c:1652  */
6041 >    {
6042 >  ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6043 > }
6044 > #line 6045 "conf_parser.c" /* yacc.c:1652  */
6045 >    break;
6046  
6047 < /* Line 1806 of yacc.c  */
6048 < #line 3055 "conf_parser.y"
6047 >  case 587:
6048 > #line 2668 "conf_parser.y" /* yacc.c:1652  */
6049      {
6050 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6050 >  ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6051   }
6052 + #line 6053 "conf_parser.c" /* yacc.c:1652  */
6053      break;
6054  
6055 <  case 583:
6055 >  case 588:
6056 > #line 2671 "conf_parser.y" /* yacc.c:1652  */
6057 >    {
6058 >  ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6059 > }
6060 > #line 6061 "conf_parser.c" /* yacc.c:1652  */
6061 >    break;
6062  
6063 < /* Line 1806 of yacc.c  */
6064 < #line 3060 "conf_parser.y"
6063 >  case 589:
6064 > #line 2674 "conf_parser.y" /* yacc.c:1652  */
6065      {
6066 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
6066 >  ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6067   }
6068 + #line 6069 "conf_parser.c" /* yacc.c:1652  */
6069      break;
6070  
6071 <  case 584:
6071 >  case 590:
6072 > #line 2677 "conf_parser.y" /* yacc.c:1652  */
6073 >    {
6074 >  ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6075 > }
6076 > #line 6077 "conf_parser.c" /* yacc.c:1652  */
6077 >    break;
6078  
6079 < /* Line 1806 of yacc.c  */
6080 < #line 3069 "conf_parser.y"
6079 >  case 591:
6080 > #line 2680 "conf_parser.y" /* yacc.c:1652  */
6081      {
6082 <  if (conf_parser_ctx.pass == 2)
7228 <  {
7229 <    yy_conf = make_conf_item(GDENY_TYPE);
7230 <    yy_aconf = map_to_conf(yy_conf);
7231 <  }
6082 >  ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6083   }
6084 + #line 6085 "conf_parser.c" /* yacc.c:1652  */
6085      break;
6086  
6087 <  case 585:
6087 >  case 592:
6088 > #line 2683 "conf_parser.y" /* yacc.c:1652  */
6089 >    {
6090 >  ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6091 > }
6092 > #line 6093 "conf_parser.c" /* yacc.c:1652  */
6093 >    break;
6094  
6095 < /* Line 1806 of yacc.c  */
6096 < #line 3076 "conf_parser.y"
6095 >  case 593:
6096 > #line 2686 "conf_parser.y" /* yacc.c:1652  */
6097      {
6098 <  if (conf_parser_ctx.pass == 2)
6099 <  {
6100 <    /*
6101 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
6102 <     * end we will have one extra, so we should free it.
6103 <     */
6104 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
6098 >  ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6099 > }
6100 > #line 6101 "conf_parser.c" /* yacc.c:1652  */
6101 >    break;
6102 >
6103 >  case 594:
6104 > #line 2689 "conf_parser.y" /* yacc.c:1652  */
6105      {
6106 <      delete_conf_item(yy_conf);
7249 <      yy_conf = NULL;
7250 <      yy_aconf = NULL;
7251 <    }
7252 <  }
6106 >  ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6107   }
6108 + #line 6109 "conf_parser.c" /* yacc.c:1652  */
6109      break;
6110  
6111    case 595:
6112 <
7258 < /* Line 1806 of yacc.c  */
7259 < #line 3102 "conf_parser.y"
6112 > #line 2692 "conf_parser.y" /* yacc.c:1652  */
6113      {
6114 <  if (conf_parser_ctx.pass == 2)
7262 <    ConfigFileEntry.glines = yylval.number;
6114 >  ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6115   }
6116 + #line 6117 "conf_parser.c" /* yacc.c:1652  */
6117      break;
6118  
6119    case 596:
6120 <
7268 < /* Line 1806 of yacc.c  */
7269 < #line 3108 "conf_parser.y"
6120 > #line 2695 "conf_parser.y" /* yacc.c:1652  */
6121      {
6122 <  if (conf_parser_ctx.pass == 2)
7272 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
6122 >  ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6123   }
6124 + #line 6125 "conf_parser.c" /* yacc.c:1652  */
6125      break;
6126  
6127    case 597:
6128 <
7278 < /* Line 1806 of yacc.c  */
7279 < #line 3114 "conf_parser.y"
6128 > #line 2698 "conf_parser.y" /* yacc.c:1652  */
6129      {
6130 <  if (conf_parser_ctx.pass == 2)
7282 <    ConfigFileEntry.gline_logging = 0;
6130 >  ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6131   }
6132 + #line 6133 "conf_parser.c" /* yacc.c:1652  */
6133      break;
6134  
6135 <  case 601:
6136 <
7288 < /* Line 1806 of yacc.c  */
7289 < #line 3120 "conf_parser.y"
6135 >  case 598:
6136 > #line 2701 "conf_parser.y" /* yacc.c:1652  */
6137      {
6138 <  if (conf_parser_ctx.pass == 2)
7292 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
6138 >  ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6139   }
6140 + #line 6141 "conf_parser.c" /* yacc.c:1652  */
6141      break;
6142  
6143 <  case 602:
6144 <
7298 < /* Line 1806 of yacc.c  */
7299 < #line 3124 "conf_parser.y"
6143 >  case 599:
6144 > #line 2704 "conf_parser.y" /* yacc.c:1652  */
6145      {
6146 <  if (conf_parser_ctx.pass == 2)
7302 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
6146 >  ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6147   }
6148 + #line 6149 "conf_parser.c" /* yacc.c:1652  */
6149      break;
6150  
6151 <  case 603:
6152 <
7308 < /* Line 1806 of yacc.c  */
7309 < #line 3130 "conf_parser.y"
6151 >  case 600:
6152 > #line 2707 "conf_parser.y" /* yacc.c:1652  */
6153      {
6154 <  if (conf_parser_ctx.pass == 2)
6155 <  {
6156 <    struct split_nuh_item nuh;
6157 <
7315 <    nuh.nuhmask  = yylval.string;
7316 <    nuh.nickptr  = NULL;
7317 <    nuh.userptr  = userbuf;
7318 <    nuh.hostptr  = hostbuf;
7319 <
7320 <    nuh.nicksize = 0;
7321 <    nuh.usersize = sizeof(userbuf);
7322 <    nuh.hostsize = sizeof(hostbuf);
7323 <
7324 <    split_nuh(&nuh);
6154 >  ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6155 > }
6156 > #line 6157 "conf_parser.c" /* yacc.c:1652  */
6157 >    break;
6158  
6159 <    if (yy_aconf->user == NULL)
6160 <    {
7328 <      DupString(yy_aconf->user, userbuf);
7329 <      DupString(yy_aconf->host, hostbuf);
7330 <    }
7331 <    else
6159 >  case 601:
6160 > #line 2710 "conf_parser.y" /* yacc.c:1652  */
6161      {
6162 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
6162 >  ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6163 > }
6164 > #line 6165 "conf_parser.c" /* yacc.c:1652  */
6165 >    break;
6166  
6167 <      DupString(yy_tmp->user, userbuf);
6168 <      DupString(yy_tmp->host, hostbuf);
6167 >  case 602:
6168 > #line 2713 "conf_parser.y" /* yacc.c:1652  */
6169 >    {
6170 >  ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6171 > }
6172 > #line 6173 "conf_parser.c" /* yacc.c:1652  */
6173 >    break;
6174  
6175 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
6176 <    }
6177 <  }
6175 >  case 603:
6176 > #line 2716 "conf_parser.y" /* yacc.c:1652  */
6177 >    {
6178 >  ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6179   }
6180 + #line 6181 "conf_parser.c" /* yacc.c:1652  */
6181      break;
6182  
6183    case 604:
6184 <
7346 < /* Line 1806 of yacc.c  */
7347 < #line 3164 "conf_parser.y"
6184 > #line 2719 "conf_parser.y" /* yacc.c:1652  */
6185      {
6186 <  if (conf_parser_ctx.pass == 2)  
7350 <  {
7351 <    MyFree(yy_conf->name);
7352 <    DupString(yy_conf->name, yylval.string);
7353 <  }
6186 >  ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6187   }
6188 + #line 6189 "conf_parser.c" /* yacc.c:1652  */
6189      break;
6190  
6191    case 605:
6192 <
7359 < /* Line 1806 of yacc.c  */
7360 < #line 3173 "conf_parser.y"
6192 > #line 2722 "conf_parser.y" /* yacc.c:1652  */
6193      {
6194 <  if (conf_parser_ctx.pass == 2)
7363 <    yy_aconf->flags = 0;
6194 >  ConfigGeneral.oper_only_umodes |= UMODE_EXPIRATION;
6195   }
6196 + #line 6197 "conf_parser.c" /* yacc.c:1652  */
6197      break;
6198  
6199    case 606:
6200 <
7369 < /* Line 1806 of yacc.c  */
7370 < #line 3177 "conf_parser.y"
6200 > #line 2727 "conf_parser.y" /* yacc.c:1652  */
6201      {
6202 <  if (conf_parser_ctx.pass == 2)
7373 <  {
7374 <    struct CollectItem *yy_tmp = NULL;
7375 <    dlink_node *ptr, *next_ptr;
7376 <
7377 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7378 <    {
7379 <      struct AccessItem *new_aconf;
7380 <      struct ConfItem *new_conf;
7381 <
7382 <      yy_tmp = ptr->data;
7383 <      new_conf = make_conf_item(GDENY_TYPE);
7384 <      new_aconf = map_to_conf(new_conf);
7385 <
7386 <      new_aconf->flags = yy_aconf->flags;
7387 <
7388 <      if (yy_conf->name != NULL)
7389 <        DupString(new_conf->name, yy_conf->name);
7390 <      else
7391 <        DupString(new_conf->name, "*");
7392 <      if (yy_aconf->user != NULL)
7393 <         DupString(new_aconf->user, yy_tmp->user);
7394 <      else  
7395 <        DupString(new_aconf->user, "*");
7396 <      if (yy_aconf->host != NULL)
7397 <        DupString(new_aconf->host, yy_tmp->host);
7398 <      else
7399 <        DupString(new_aconf->host, "*");
7400 <
7401 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7402 <    }
7403 <
7404 <    /*
7405 <     * In case someone has fed us with more than one action= after user/name
7406 <     * which would leak memory  -Michael
7407 <     */
7408 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7409 <      delete_conf_item(yy_conf);
7410 <
7411 <    yy_conf = make_conf_item(GDENY_TYPE);
7412 <    yy_aconf = map_to_conf(yy_conf);
7413 <  }
6202 >  ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6203   }
6204 + #line 6205 "conf_parser.c" /* yacc.c:1652  */
6205      break;
6206  
6207 <  case 609:
6208 <
7419 < /* Line 1806 of yacc.c  */
7420 < #line 3224 "conf_parser.y"
6207 >  case 607:
6208 > #line 2732 "conf_parser.y" /* yacc.c:1652  */
6209      {
6210 <  if (conf_parser_ctx.pass == 2)
7423 <    yy_aconf->flags |= GDENY_REJECT;
6210 >  ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6211   }
6212 + #line 6213 "conf_parser.c" /* yacc.c:1652  */
6213      break;
6214  
6215 <  case 610:
6216 <
7429 < /* Line 1806 of yacc.c  */
7430 < #line 3228 "conf_parser.y"
6215 >  case 608:
6216 > #line 2737 "conf_parser.y" /* yacc.c:1652  */
6217      {
6218 <  if (conf_parser_ctx.pass == 2)
7433 <    yy_aconf->flags |= GDENY_BLOCK;
6218 >  ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6219   }
6220 + #line 6221 "conf_parser.c" /* yacc.c:1652  */
6221      break;
6222  
6223 <  case 633:
6224 <
7439 < /* Line 1806 of yacc.c  */
7440 < #line 3252 "conf_parser.y"
6223 >  case 609:
6224 > #line 2742 "conf_parser.y" /* yacc.c:1652  */
6225      {
6226 <  ConfigChannel.disable_fake_channels = yylval.number;
6226 >  ConfigGeneral.default_floodtime = (yyvsp[-1].number);
6227   }
6228 + #line 6229 "conf_parser.c" /* yacc.c:1652  */
6229      break;
6230  
6231 <  case 634:
6232 <
7448 < /* Line 1806 of yacc.c  */
7449 < #line 3257 "conf_parser.y"
6231 >  case 628:
6232 > #line 2770 "conf_parser.y" /* yacc.c:1652  */
6233      {
6234 <  ConfigChannel.restrict_channels = yylval.number;
6234 >  ConfigChannel.disable_fake_channels = yylval.number;
6235   }
6236 + #line 6237 "conf_parser.c" /* yacc.c:1652  */
6237      break;
6238  
6239 <  case 635:
6240 <
7457 < /* Line 1806 of yacc.c  */
7458 < #line 3262 "conf_parser.y"
6239 >  case 629:
6240 > #line 2775 "conf_parser.y" /* yacc.c:1652  */
6241      {
6242 <  ConfigChannel.disable_local_channels = yylval.number;
6242 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6243   }
6244 + #line 6245 "conf_parser.c" /* yacc.c:1652  */
6245      break;
6246  
6247 <  case 636:
6248 <
7466 < /* Line 1806 of yacc.c  */
7467 < #line 3267 "conf_parser.y"
6247 >  case 630:
6248 > #line 2780 "conf_parser.y" /* yacc.c:1652  */
6249      {
6250 <  ConfigChannel.use_except = yylval.number;
6250 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6251   }
6252 + #line 6253 "conf_parser.c" /* yacc.c:1652  */
6253      break;
6254  
6255 <  case 637:
6256 <
7475 < /* Line 1806 of yacc.c  */
7476 < #line 3272 "conf_parser.y"
6255 >  case 631:
6256 > #line 2785 "conf_parser.y" /* yacc.c:1652  */
6257      {
6258 <  ConfigChannel.use_invex = yylval.number;
6258 >  ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6259   }
6260 + #line 6261 "conf_parser.c" /* yacc.c:1652  */
6261      break;
6262  
6263 <  case 638:
6264 <
7484 < /* Line 1806 of yacc.c  */
7485 < #line 3277 "conf_parser.y"
6263 >  case 632:
6264 > #line 2790 "conf_parser.y" /* yacc.c:1652  */
6265      {
6266 <  ConfigChannel.use_knock = yylval.number;
6266 >  ConfigChannel.invite_expire_time = (yyvsp[-1].number);
6267   }
6268 + #line 6269 "conf_parser.c" /* yacc.c:1652  */
6269      break;
6270  
6271 <  case 639:
6272 <
7493 < /* Line 1806 of yacc.c  */
7494 < #line 3282 "conf_parser.y"
6271 >  case 633:
6272 > #line 2795 "conf_parser.y" /* yacc.c:1652  */
6273      {
6274 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6274 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6275   }
6276 + #line 6277 "conf_parser.c" /* yacc.c:1652  */
6277      break;
6278  
6279 <  case 640:
6280 <
7502 < /* Line 1806 of yacc.c  */
7503 < #line 3287 "conf_parser.y"
6279 >  case 634:
6280 > #line 2800 "conf_parser.y" /* yacc.c:1652  */
6281      {
6282 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6282 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6283   }
6284 + #line 6285 "conf_parser.c" /* yacc.c:1652  */
6285      break;
6286  
6287 <  case 641:
6288 <
7511 < /* Line 1806 of yacc.c  */
7512 < #line 3292 "conf_parser.y"
6287 >  case 635:
6288 > #line 2805 "conf_parser.y" /* yacc.c:1652  */
6289      {
6290 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6290 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6291   }
6292 + #line 6293 "conf_parser.c" /* yacc.c:1652  */
6293      break;
6294  
6295 <  case 642:
6296 <
7520 < /* Line 1806 of yacc.c  */
7521 < #line 3297 "conf_parser.y"
6295 >  case 636:
6296 > #line 2810 "conf_parser.y" /* yacc.c:1652  */
6297      {
6298 <  ConfigChannel.quiet_on_ban = yylval.number;
6298 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6299   }
6300 + #line 6301 "conf_parser.c" /* yacc.c:1652  */
6301      break;
6302  
6303 <  case 643:
6304 <
7529 < /* Line 1806 of yacc.c  */
7530 < #line 3302 "conf_parser.y"
6303 >  case 637:
6304 > #line 2815 "conf_parser.y" /* yacc.c:1652  */
6305      {
6306 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6306 >  ConfigChannel.max_invites = (yyvsp[-1].number);
6307   }
6308 + #line 6309 "conf_parser.c" /* yacc.c:1652  */
6309      break;
6310  
6311 <  case 644:
6312 <
7538 < /* Line 1806 of yacc.c  */
7539 < #line 3307 "conf_parser.y"
6311 >  case 638:
6312 > #line 2820 "conf_parser.y" /* yacc.c:1652  */
6313      {
6314 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6314 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6315   }
6316 + #line 6317 "conf_parser.c" /* yacc.c:1652  */
6317      break;
6318  
6319 <  case 645:
6320 <
7547 < /* Line 1806 of yacc.c  */
7548 < #line 3312 "conf_parser.y"
6319 >  case 639:
6320 > #line 2825 "conf_parser.y" /* yacc.c:1652  */
6321      {
6322 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6322 >  ConfigChannel.max_bans_large = (yyvsp[-1].number);
6323   }
6324 + #line 6325 "conf_parser.c" /* yacc.c:1652  */
6325      break;
6326  
6327 <  case 646:
6328 <
7556 < /* Line 1806 of yacc.c  */
7557 < #line 3317 "conf_parser.y"
6327 >  case 640:
6328 > #line 2830 "conf_parser.y" /* yacc.c:1652  */
6329      {
6330 <  ConfigChannel.no_create_on_split = yylval.number;
6330 >  ConfigChannel.default_join_flood_count = yylval.number;
6331   }
6332 + #line 6333 "conf_parser.c" /* yacc.c:1652  */
6333      break;
6334  
6335 <  case 647:
6336 <
7565 < /* Line 1806 of yacc.c  */
7566 < #line 3322 "conf_parser.y"
6335 >  case 641:
6336 > #line 2835 "conf_parser.y" /* yacc.c:1652  */
6337      {
6338 <  ConfigChannel.no_join_on_split = yylval.number;
6338 >  ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6339   }
6340 + #line 6341 "conf_parser.c" /* yacc.c:1652  */
6341      break;
6342  
6343 <  case 648:
6344 <
7574 < /* Line 1806 of yacc.c  */
7575 < #line 3327 "conf_parser.y"
6343 >  case 655:
6344 > #line 2858 "conf_parser.y" /* yacc.c:1652  */
6345      {
6346 <  ConfigChannel.burst_topicwho = yylval.number;
6346 >  if (conf_parser_ctx.pass == 2)
6347 >    ConfigServerHide.flatten_links = yylval.number;
6348   }
6349 + #line 6350 "conf_parser.c" /* yacc.c:1652  */
6350      break;
6351  
6352 <  case 649:
6353 <
7583 < /* Line 1806 of yacc.c  */
7584 < #line 3332 "conf_parser.y"
6352 >  case 656:
6353 > #line 2864 "conf_parser.y" /* yacc.c:1652  */
6354      {
6355 <  GlobalSetOptions.joinfloodcount = yylval.number;
6355 >  if (conf_parser_ctx.pass == 2)
6356 >  {
6357 >    if ((yyvsp[-1].number) > 0)
6358 >    {
6359 >      event_write_links_file.when = (yyvsp[-1].number);
6360 >      event_add(&event_write_links_file, NULL);
6361 >    }
6362 >    else
6363 >     event_delete(&event_write_links_file);
6364 >
6365 >    ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6366 >  }
6367   }
6368 + #line 6369 "conf_parser.c" /* yacc.c:1652  */
6369      break;
6370  
6371 <  case 650:
6372 <
7592 < /* Line 1806 of yacc.c  */
7593 < #line 3337 "conf_parser.y"
6371 >  case 657:
6372 > #line 2880 "conf_parser.y" /* yacc.c:1652  */
6373      {
6374 <  GlobalSetOptions.joinfloodtime = yylval.number;
6374 >  if (conf_parser_ctx.pass == 2)
6375 >  {
6376 >    xfree(ConfigServerHide.flatten_links_file);
6377 >    ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6378 >  }
6379   }
6380 + #line 6381 "conf_parser.c" /* yacc.c:1652  */
6381      break;
6382  
6383 <  case 662:
6384 <
7601 < /* Line 1806 of yacc.c  */
7602 < #line 3356 "conf_parser.y"
6383 >  case 658:
6384 > #line 2889 "conf_parser.y" /* yacc.c:1652  */
6385      {
6386    if (conf_parser_ctx.pass == 2)
6387 <    ConfigServerHide.flatten_links = yylval.number;
6387 >    ConfigServerHide.disable_remote_commands = yylval.number;
6388   }
6389 + #line 6390 "conf_parser.c" /* yacc.c:1652  */
6390      break;
6391  
6392 <  case 663:
6393 <
7611 < /* Line 1806 of yacc.c  */
7612 < #line 3362 "conf_parser.y"
6392 >  case 659:
6393 > #line 2895 "conf_parser.y" /* yacc.c:1652  */
6394      {
6395    if (conf_parser_ctx.pass == 2)
6396      ConfigServerHide.hide_servers = yylval.number;
6397   }
6398 + #line 6399 "conf_parser.c" /* yacc.c:1652  */
6399      break;
6400  
6401 <  case 664:
6402 <
7621 < /* Line 1806 of yacc.c  */
7622 < #line 3368 "conf_parser.y"
6401 >  case 660:
6402 > #line 2901 "conf_parser.y" /* yacc.c:1652  */
6403      {
6404    if (conf_parser_ctx.pass == 2)
6405 <  {
7626 <    MyFree(ConfigServerHide.hidden_name);
7627 <    DupString(ConfigServerHide.hidden_name, yylval.string);
7628 <  }
6405 >    ConfigServerHide.hide_services = yylval.number;
6406   }
6407 + #line 6408 "conf_parser.c" /* yacc.c:1652  */
6408      break;
6409  
6410 <  case 665:
6411 <
7634 < /* Line 1806 of yacc.c  */
7635 < #line 3377 "conf_parser.y"
6410 >  case 661:
6411 > #line 2907 "conf_parser.y" /* yacc.c:1652  */
6412      {
6413    if (conf_parser_ctx.pass == 2)
6414    {
6415 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6416 <    {
7641 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
7642 <      ConfigServerHide.links_disabled = 0;
7643 <    }
7644 <
7645 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6415 >    xfree(ConfigServerHide.hidden_name);
6416 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6417    }
6418   }
6419 + #line 6420 "conf_parser.c" /* yacc.c:1652  */
6420      break;
6421  
6422 <  case 666:
6423 <
7652 < /* Line 1806 of yacc.c  */
7653 < #line 3391 "conf_parser.y"
6422 >  case 662:
6423 > #line 2916 "conf_parser.y" /* yacc.c:1652  */
6424      {
6425    if (conf_parser_ctx.pass == 2)
6426      ConfigServerHide.hidden = yylval.number;
6427   }
6428 + #line 6429 "conf_parser.c" /* yacc.c:1652  */
6429      break;
6430  
6431 <  case 667:
6432 <
7662 < /* Line 1806 of yacc.c  */
7663 < #line 3397 "conf_parser.y"
7664 <    {
7665 <  if (conf_parser_ctx.pass == 2)
7666 <    ConfigServerHide.disable_hidden = yylval.number;
7667 < }
7668 <    break;
7669 <
7670 <  case 668:
7671 <
7672 < /* Line 1806 of yacc.c  */
7673 < #line 3403 "conf_parser.y"
6431 >  case 663:
6432 > #line 2922 "conf_parser.y" /* yacc.c:1652  */
6433      {
6434    if (conf_parser_ctx.pass == 2)
6435      ConfigServerHide.hide_server_ips = yylval.number;
6436   }
6437 + #line 6438 "conf_parser.c" /* yacc.c:1652  */
6438      break;
6439  
6440  
6441 <
7682 < /* Line 1806 of yacc.c  */
7683 < #line 7684 "conf_parser.c"
6441 > #line 6442 "conf_parser.c" /* yacc.c:1652  */
6442        default: break;
6443      }
6444    /* User semantic actions sometimes alter yychar, and that requires
# Line 7702 | Line 6460 | yyreduce:
6460  
6461    *++yyvsp = yyval;
6462  
6463 <  /* Now `shift' the result of the reduction.  Determine what state
6463 >  /* Now 'shift' the result of the reduction.  Determine what state
6464       that goes to, based on the state we popped back to and the rule
6465       number reduced by.  */
6466 <
6467 <  yyn = yyr1[yyn];
6468 <
6469 <  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
6470 <  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6471 <    yystate = yytable[yystate];
6472 <  else
7715 <    yystate = yydefgoto[yyn - YYNTOKENS];
6466 >  {
6467 >    const int yylhs = yyr1[yyn] - YYNTOKENS;
6468 >    const int yyi = yypgoto[yylhs] + *yyssp;
6469 >    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
6470 >               ? yytable[yyi]
6471 >               : yydefgoto[yylhs]);
6472 >  }
6473  
6474    goto yynewstate;
6475  
6476  
6477 < /*------------------------------------.
6478 < | yyerrlab -- here on detecting error |
6479 < `------------------------------------*/
6477 > /*--------------------------------------.
6478 > | yyerrlab -- here on detecting error.  |
6479 > `--------------------------------------*/
6480   yyerrlab:
6481    /* Make sure we have latest lookahead translation.  See comments at
6482       user semantic actions for why this is necessary.  */
# Line 7770 | Line 6527 | yyerrlab:
6527    if (yyerrstatus == 3)
6528      {
6529        /* If just tried and failed to reuse lookahead token after an
6530 <         error, discard it.  */
6530 >         error, discard it.  */
6531  
6532        if (yychar <= YYEOF)
6533 <        {
6534 <          /* Return failure if at end of input.  */
6535 <          if (yychar == YYEOF)
6536 <            YYABORT;
6537 <        }
6533 >        {
6534 >          /* Return failure if at end of input.  */
6535 >          if (yychar == YYEOF)
6536 >            YYABORT;
6537 >        }
6538        else
6539 <        {
6540 <          yydestruct ("Error: discarding",
6541 <                      yytoken, &yylval);
6542 <          yychar = YYEMPTY;
6543 <        }
6539 >        {
6540 >          yydestruct ("Error: discarding",
6541 >                      yytoken, &yylval);
6542 >          yychar = YYEMPTY;
6543 >        }
6544      }
6545  
6546    /* Else will try to reuse lookahead token after shifting the error
# Line 7795 | Line 6552 | yyerrlab:
6552   | yyerrorlab -- error raised explicitly by YYERROR.  |
6553   `---------------------------------------------------*/
6554   yyerrorlab:
6555 +  /* Pacify compilers when the user code never invokes YYERROR and the
6556 +     label yyerrorlab therefore never appears in user code.  */
6557 +  if (0)
6558 +    YYERROR;
6559  
6560 <  /* Pacify compilers like GCC when the user code never invokes
7800 <     YYERROR and the label yyerrorlab therefore never appears in user
7801 <     code.  */
7802 <  if (/*CONSTCOND*/ 0)
7803 <     goto yyerrorlab;
7804 <
7805 <  /* Do not reclaim the symbols of the rule which action triggered
6560 >  /* Do not reclaim the symbols of the rule whose action triggered
6561       this YYERROR.  */
6562    YYPOPSTACK (yylen);
6563    yylen = 0;
# Line 7815 | Line 6570 | yyerrorlab:
6570   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6571   `-------------------------------------------------------------*/
6572   yyerrlab1:
6573 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6573 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6574  
6575    for (;;)
6576      {
6577        yyn = yypact[yystate];
6578        if (!yypact_value_is_default (yyn))
6579 <        {
6580 <          yyn += YYTERROR;
6581 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6582 <            {
6583 <              yyn = yytable[yyn];
6584 <              if (0 < yyn)
6585 <                break;
6586 <            }
6587 <        }
6579 >        {
6580 >          yyn += YYTERROR;
6581 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6582 >            {
6583 >              yyn = yytable[yyn];
6584 >              if (0 < yyn)
6585 >                break;
6586 >            }
6587 >        }
6588  
6589        /* Pop the current state because it cannot handle the error token.  */
6590        if (yyssp == yyss)
6591 <        YYABORT;
6591 >        YYABORT;
6592  
6593  
6594        yydestruct ("Error: popping",
6595 <                  yystos[yystate], yyvsp);
6595 >                  yystos[yystate], yyvsp);
6596        YYPOPSTACK (1);
6597        yystate = *yyssp;
6598        YY_STACK_PRINT (yyss, yyssp);
6599      }
6600  
6601 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6602    *++yyvsp = yylval;
6603 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6604  
6605  
6606    /* Shift the error token.  */
# Line 7860 | Line 6617 | yyacceptlab:
6617    yyresult = 0;
6618    goto yyreturn;
6619  
6620 +
6621   /*-----------------------------------.
6622   | yyabortlab -- YYABORT comes here.  |
6623   `-----------------------------------*/
# Line 7867 | Line 6625 | yyabortlab:
6625    yyresult = 1;
6626    goto yyreturn;
6627  
6628 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6628 >
6629 > #if !defined yyoverflow || YYERROR_VERBOSE
6630   /*-------------------------------------------------.
6631   | yyexhaustedlab -- memory exhaustion comes here.  |
6632   `-------------------------------------------------*/
# Line 7877 | Line 6636 | yyexhaustedlab:
6636    /* Fall through.  */
6637   #endif
6638  
6639 +
6640 + /*-----------------------------------------------------.
6641 + | yyreturn -- parsing is finished, return the result.  |
6642 + `-----------------------------------------------------*/
6643   yyreturn:
6644    if (yychar != YYEMPTY)
6645      {
# Line 7886 | Line 6649 | yyreturn:
6649        yydestruct ("Cleanup: discarding lookahead",
6650                    yytoken, &yylval);
6651      }
6652 <  /* Do not reclaim the symbols of the rule which action triggered
6652 >  /* Do not reclaim the symbols of the rule whose action triggered
6653       this YYABORT or YYACCEPT.  */
6654    YYPOPSTACK (yylen);
6655    YY_STACK_PRINT (yyss, yyssp);
6656    while (yyssp != yyss)
6657      {
6658        yydestruct ("Cleanup: popping",
6659 <                  yystos[*yyssp], yyvsp);
6659 >                  yystos[*yyssp], yyvsp);
6660        YYPOPSTACK (1);
6661      }
6662   #ifndef yyoverflow
# Line 7904 | Line 6667 | yyreturn:
6667    if (yymsg != yymsgbuf)
6668      YYSTACK_FREE (yymsg);
6669   #endif
6670 <  /* Make sure YYID is used.  */
7908 <  return YYID (yyresult);
6670 >  return yyresult;
6671   }
7910
7911
7912

Diff Legend

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